LOG4430 : Architecture logicielle et conception avancée



Documents pareils
Derrière toi Une machine virtuelle!

Bases Java - Eclipse / Netbeans

Dis papa, c est quoi un bus logiciel réparti?

Projet gestion d'objets dupliqués

Java Naming and Directory Interface

Création d un service web avec NetBeans 5.5 et SJAS 9

LOG4430 : Architecture logicielle et conception avancée

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

Remote Method Invocation (RMI)

Intégration de l interface graphique de Ptidej dans Eclipse

JOnAS 5. Serveur d application d

Architecture Orientée Service, JSON et API REST

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

LOG4430 : Architecture logicielle et conception avancée

TP1 : Initiation à Java et Eclipse

OpenPaaS Le réseau social d'entreprise

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Programmation Par Objets

Introduction au Génie Logiciel

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

IFT6251 : Sujets spéciaux en génie logiciel

EXA1415 : Annotations

Projet de Veille Technologique

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Construire des plug-ins pour SAS Management Console SAS 9.1

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

WPKG Gestion de paquets pour Windows

Cours 1: Java et les objets

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Rapport de Mini-Projet en ArcGIS Engine

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Avira Version 2012 (Windows)

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

TP1 : Initiation à Java et Eclipse

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Travaux publics et Services gouvernementaux Canada. Title - Sujet Portes d'acier. Solicitation No. - N de l'invitation 21C /A

Remote Method Invocation en Java (RMI)

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Serveur d'application à la juste taille

Famille IBM WebSphere Application Server

Composants Logiciels. Le modèle de composant de CORBA. Plan

L ÉCHANGE DE DONNÉES TEMPS RÉEL

Alfstore workflow framework Spécification technique

B-COMM. ERP 4 HR Access. Solutions d acquisition des temps de travail pour la gestion des temps et des activités d HR Access

Eclipse atelier Java

Plateforme IoT flexible et configurable:

Travaux publics et Services gouvernementaux Canada. Title - Sujet INTEGRATED IT PROF. SERV. CONTRACT

les GDT dans le Système d Information informatisé Muriel Pinel Laurent Tabourot

Remote Method Invocation Les classes implémentant Serializable

ELOECM Conference2015

Héritage presque multiple en Java (1/2)

JOnAS Day 5.1. Outils de développements

Java - RMI Remote Method Invocation. Java - RMI

Les Architectures Orientées Services (SOA)

Master Data Management en Open Source C est le Bon Moment

Projet de programmation (IK3) : TP n 1 Correction

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

1. Installation d'un serveur d'application JBoss:

Calcul Parallèle. Cours 5 - JAVA RMI

Présentation de la plateforme WINDCHILL. Invitation à rejoindre la plateforme

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Sécurisation des architectures traditionnelles et des SOA

Plateforme de capture et d analyse de sites Web AspirWeb

Accès réseau Banque-Carrefour par l Internet Version /06/2005

Automatiser le Software-Defined Data Center avec vcloud Automation Center

Programmer en JAVA. par Tama

Architecture client riche Evolution ou révolution? Thomas Coustenoble IBM Lotus Market Manager

Créer et gérer un site de e-commerce

Environnements de développement (intégrés)

Rendez-vous la liberté avec Rational Quality Manager

Mise en œuvre des serveurs d application

La base de données XML exist. A. Belaïd

V3 - Une Appliance Conçue pour le VDI

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Création d objet imbriqué sous PowerShell.

OUTIL DE TRAVAIL COLLABORATIF

CONFIGURER ET DÉPLOYER UN CLOUD PRIVÉ AVEC SYSTEM CENTER 2012

Android et le Cloud Computing

Optimisations des SGBDR. Étude de cas : MySQL

Système global d Output Management

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

Tutoriel d installation de Hibernate avec Eclipse

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Firewall Net Integrator Vue d ensemble

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Java DataBaseConnectivity

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Applications distribuées: le retour du client "riche"

Transcription:

LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cadres de référence et plugiciels Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc, 2013

Plan 1. Introduction 2. Un exemple de plugiciel 3. OSGi Eclipse Extensions Architecture Gestion du cycle de vie Service d enregistrement Environnement d exécution 4. Gestion du cycle de vie Gestion de besoin Architecture Implantation Test Suivi des problèmes Gestion des versions 2/18

1. Introduction Aujourd hui (et demain), les programmes Sont de plus en plus complexes Doivent être livrés de plus en plus rapidement Doivent fonctionner avec un minimum d arrêt 3/18

Introduction Les programmes nécessitent donc Une plateforme de programmation favorisant l indépendance des composants du programme Un format de livraison «standardisé» Une plateforme d exécution permettant le remplacement à chaud Les programmes doivent donc être formés de composants réutilisables et interchangeables en cours d exécution 4/18

2. Un exemple de plugiciel «Un [plugiciel] est un programme qui interagit avec un logiciel principal, appelé programme hôte, pour lui apporter de nouvelles fonctionnalités» [Wikipedia] 5/18

Un exemple de plugiciel Eclipse 6/18

Un exemple de plugiciel Extensions Points d extension Extension Registre des extensions (Extension Registry) Chargement à la demande 7/18

Un exemple de plugiciel Extensions [http://www.eclipsezone.com/articles/extensions-vs-services/images/extensions.png] 8/18

3. OSGi Modèle à composants complet et dynamique Complémente la machine virtuelle Java Réduit la complexité : encapsulation, interface de programmation Réutilisation : composants depuis l étagère Déploiement simplifié : gestion du cycle de vie Mises à jour dynamiques : voir ci-dessus Adaptation : les services peuvent aller et venir Transparence : composants independants [http://aneeshkumarkb.blogspot.com/] 9/18

OSGi Eclipse implemantion d OSGi Equinox [http://aneeshkumarkb.blogspot.com/] 10/18

OSGi Architecture Bundles = composants Services = publication, recherche et connexion d objets Java Life Cycle = gestion du cycle de vie des objets Module = fonctions basiques de gestion Security = gestion des aspects de sécurité Execution Environment = plateforme d exécution [http://www.osgi.org] 11/18

OSGi Services 12/18

OSGi Services d enregistrement [http://www.eclipsezone.com/articles/extensions-vs-services/images/extensions.png] 13/18

OSGi Services d enregistrement [http://www.eclipsezone.com/articles/extensions-vs-services/images/extensions.png] 14/18

OSGi Services d enregistrement public void start(bundlecontext context) { // Create the service object DbCustomerLookup lookup = new DbCustomerLookup( "jdbc:mysql:localhost/customers"); } // Create the properties to register with the service Dictionary properties = new Hashtable(); properties.put("dbname", "local"); // Register the service context.registerservice( ICustomerLookup.class.getName(), lookup, properties); public void start(bundlecontext context) { this.context = context; } public String getcustomername(long id) { ServiceReference ref = context.getservicereference( ICustomerLookup.class.getName()); if(ref!= null) { ICustomerLookup lookup = (ICustomerLookup) context.getservice(ref); if(lookup!= null) { Customer cust = lookup.findbyid(id); context.ungetservice(ref); return cust.getname(); } } } // Couldn't get name -- service not available return null; [http://www.eclipsezone.com/articles/extensions-vs-services/images/extensions.png] 15/18

OSGi Environnement d exécution Modèle de collaboration 16/18

4. Gestion du cycle de vie Gestion de besoin Architecture Implantation Test Suivi des problèmes Gestion des versions 17/18

Gestion du cycle de vie Problème de la traçabilité Besoins conception Besoins code Besoins tests Besoins bogues Besoins versions Code tests Code bogues Code versions 18/18