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

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)

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

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

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

LOG4430 : Architecture logicielle et conception avancée

TP1 : Initiation à Java et Eclipse

Alfstore workflow framework Spécification technique

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

OpenPaaS Le réseau social d'entreprise

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

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

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

Famille IBM WebSphere Application Server

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

EXA1415 : Annotations

IFT6251 : Sujets spéciaux en génie logiciel

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

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

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

WPKG Gestion de paquets pour Windows

Cours 1: Java et les objets

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

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

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.

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

Avira Version 2012 (Windows)

StruxureWare Power Monitoring v7.0. La nouvelle génération en matière de logiciel de gestion complète d énergie

TP1 : Initiation à Java et Eclipse

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

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

Apps Sage : les 10 étapes pour publier vos données dans le Cloud.

Virtualisation et ou Sécurité

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

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

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

Web Tier : déploiement de servlets

L ÉCHANGE DE DONNÉES TEMPS RÉEL

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

Déploiement de SAS Foundation

Plateforme IoT flexible et configurable:

Android et le Cloud Computing

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

Cours: Administration d'une Base de Données

Les processus métiers : concepts, modèles et systèmes

2 Chapitre 1 Introduction

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

JOnAS Day 5.1. Outils de développements

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

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»

Déploiement OOo en environnement Windows Terminal Server

Synergies entre Artisan Studio et outils PLM

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

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

Calcul Parallèle. Cours 5 - JAVA RMI

JOnAS 5 Enterprise OSGi javaee compliant

Installer Enterprise Miner 5.1 en SAS environnement Windows

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

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

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

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 2009

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/17

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/17

Introduction Les programmes nécessitent donc Une plateforme de programmation favorisant l indépendance des composants 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 (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 7 11) 4/17

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/17

Un exemple de plugiciel Eclipse 6/17

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

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

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 indépendants [http://aneeshkumarkb.blogspot.com/] 9/17

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] 10/17

OSGi Architecture (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 12 21) Eclipse implemantion d OSGi Equinox (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 22 26) 11/17

OSGi Services d enregistrement (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 48 50) [http://www.eclipsezone.com/articles/extensions-vs-services/images/extensions.png] 12/17

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

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] 14/17

OSGi Collaborative model (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 41 51) Component model (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 52 58) Example (cf. «Cours 5 - Cadres de reference et plugiciels (JAOO06-OSGi_Tutorial).pdf», pages 27 40) 15/17

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

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 17/17