O S G I. Modèle de composants dynamiques A.U. 2010/2011. Ecole Supérieure de Technologie et d Informatique

Dimension: px
Commencer à balayer dès la page:

Download "O S G I. Modèle de composants dynamiques A.U. 2010/2011. Ecole Supérieure de Technologie et d Informatique"

Transcription

1 Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Université du 7 Novembre à Carthage Ecole Supérieure de Technologie et d Informatique A.U. 2010/2011 O S G I Modèle de composants dynamiques Définit un conteneur de déploiement dynamique d applications Canevas d exécution de services Java avec un faible couplage Résolution des dépendances versionnées de code Multi-fournisseur, télé-administré Cible: set top box, passerelle résidentielle dédiée, contrôle industriel, téléphonie mobile Source principal: Didier Donsez Université Joseph Fourier (Grenoble 1) PolyTech Grenoble LIG/ADELE

2 Table des matières Table des matières Problématique Modèle à base de composants dynamiques La Technologie OSGI Standard Framework OSGI Environnement d exécution Modules Cycle de vie Annuaire de service Bundles Modèle de Services Services standrads Services framework Services systèmes Services protocolaires Autres services Concepts OSGI Application Java Le composant OSGI: Bundle Conclusion... 23

3 1. Problématique La complexité des logiciels ne cessent de s accroîtrent avec une vitesse gigantesque. Un grand part de cette complexité vient du fait que le cycle de vie de produit a été très réduit que se soit dans son développement, ou son déploiement. Le but étant de bien gérer les variations que ce soit du côté matériel que se soit du côté logiciel autour d un même produit. De ces jours nous observons que le développement de logiciel se concentre plus sur des efforts d adaptation de produits existants pour offrir de nouvelles fonctionnalités. Ces efforts d adaptation de briques existantes ont provoqué un problème de montée en complexité, du fait de la dépendance des briques les uns des autres et le besoin de répondre le plus rapidement possible à une exigence du marché. Bien sûr que le développement entier de logiciels restent le plus coûteux, par contre intégrer sans règles précises et sans standard nous mène à des échecs certains. La clé derrière tout ceci est la commutation totale vers la mise en place de normes et standard permettant l intégration intelligente et ordonnée de composants réutilisables, robustes et à bas prix que se soit dans l avant vente que se soit dans l après vente. 2. Modèle à base de composants dynamiques Les modèles à base de composants viennent naturellement pour répondre à la problématique ci-dessus dans le but d assurer un développement modulaire et une maintenance plus aisée des applications. Parmi les principaux modèles, on peut citer : - JavaBeans [Sun97], - EJB[Sun01], - CCM [OMG99]. Pour rappel, un composant est un module logiciel décrit par des contrats proposés, des contrats requis, des propriétés configurables et par des contraintes techniques. Les contrats sont définis par des interfaces et des événements. De ce fait, les applications sont obtenues par assemblage (ou tissage) de composants configurés. L assemblage consiste à connecter les composants entre eux par les contrats requis et fournis. L exécution de l application est démarrée lorsque ses composants sont déployés sur la plate-forme à composants (qui peut être distribuée sur plusieurs hôtes). Chaque composant est pris en charge par un conteneur dont le rôle consiste à isoler le composant de l environnement et de prendre en charge les contraintes techniques liées aux aspects non fonctionnels (distribution, persistance, fiabilité, sécurité, ). Traditionnellement, le cycle de vie de l application suit les phases strictement successives de développement, assemblage, configuration, déploiement et exécution. La maintenance de l application comporte généralement des opérations de reconfiguration et d adaptation de composants. La reconfiguration consiste à changer les valeurs des propriétés des composants. L adaptation consiste en général à remplacer un composant par un autre qui peut éventuellement fournir et requérir des contrats différents du composant initial. L adaptation revient à déconnecter le composant de l application, à transférer son état courant vers un nouveau composant et à connecter ce dernier à l application. Traditionnellement, l opération d adaptation requiert généralement l arrêt de l application et oblige à reprendre le cycle de vie à partir de la phase d assemblage. L adaptation peut être réalisée pour corriger le mauvais comportement d'un composant, pour répondre aux changements affectant

4 l'environnement d'exécution, pour étendre l'application avec de nouvelles fonctionnalités ou pour améliorer ses performances. L'adaptation est un événement de plus en plus fréquent dans le cycle de vie d'une application. L'opération d'adaptation doit répondre à plusieurs contraintes comme la sécurité, la complétude et la possibilité de retour en arrière au cas où l'adaptation ne peut se terminer avec succès. L adaptation dynamique consiste à introduire des modifications dans l application au cours de son exécution contrairement à l approche traditionnelle qui nécessite l arrêt total de l application. Le bénéfice essentiel est l amélioration de mis sur le marché de nouveau produit par la réduction du coût de développement parce que cette techno offre le moyen d intégration de briques compilés (prêtes à l emploi), testés et configurables. Cette technologie offre aussi bien l avantage de réduire le coût de déploiement et de maintenance avec des configurations différentes qui pourront satisfaire le marché et s adapter sur le plan coût et sur le plan fonctionnel répondnat aisni à un marché dynamique, exigeant et extrêmement concurrentiel 3. La Technologie OSGI Le standard OSGI implémente un modèle de composants dynamique et complet, comblant un manque dans les environnements Java/VM traditionnels. Les applications et composants (se trouvant sous la forme de bundles pour le déploiement) peuvent être installés, arrêtés, démarrés, mis à jour et désinstallés de manière distante sans nécessiter de redémarrage ; la gestion des classes/paquetages Java est spécifiée de manière très détaillée. La gestion du cycle de vie est effectuée à travers une API en appliquant une politique de gestion des téléchargements distants. Le référentiel (registry) de services permet aux bundles de détecter l addition de nouveaux services, ou la suppression de services et de s'y adapter. 1. Standard Open Services Gateway Initiative (OSGi) est une corporation indépendante qui a pour but de définir et de promouvoir des spécifications ouvertes pour la livraison de services administrables dans des réseaux résidentiels, véhiculaires et autres types d'environnements. OSGi définit la spécification d'une plate-forme de services qui inclut un modèle à composants minimal et un framework de petite taille pour administrer les composants. Les composants sont conditionnés dans un format spécifique. L'objectif original se focalisait sur les passerelles (gateways) de services mais sa mise en application s est avérée bien plus étendue. Les spécifications sont désormais utilisées dans plusieurs domaines allant de l informatique embarquée autour des applications des téléphones

5 portables à d autres domaines d'application incluant les automobiles, l automatisme industriel, la gestion de flottes et les serveurs d'applications. Les spécifications OSGi sont si largement applicables parce que la plate-forme permet à plusieurs composants Java basée à coopérer efficacement dans une seule machine virtuelle Java (JVM). Il offre un vaste modèle de sécurité de façon que les composants peuvent fonctionner dans un environnement sécurisé. Toutefois, avec les permissions adéquates, la réutilisation et la coopération entre les composants sont possibles, L adoption des spécifications OSGi peut donc réduire les coûts de développement de logiciels ainsi que de fournir de nouvelles occasions d'affaires Exemple d applications Une Imprimante Photocopie est installé en location chez un client (26% du Marché de Ricoh) : Le loueur (organisme financier) facture mensuellement à la consommation : Fixe mensuel + tarif par feuille Le Loueur gère les dispositions contractuelles à distance Le loueur soustraite la maintenance simple à une société spécialisée La société de maintenance réalise un diagnostic à distance avant d envoyer un agent L agent de maintenance interroge sur place le logiciel de diagnostic Le fabricant peut mettre à jour le logiciel embarqué

6 2. Framework OSGI Le Framework OSGI offre une plateforme standardisé pour des applications (bundles) pour s exécuter. Il est divisé en 4 couches : L0 : Env d exécution L1 : Modules L2 : Gestion de cycle de vie L3 : Service de registry 2.1 Environnement d exécution Cette couche est la couche d exécution correspondante à l environnement Java2: J2SE. La plateforme OSGI a aussi spécifié un environnement d excution minima allant avec les devices en carence de ressources mémoire et s daptant avec les ressources nécessaires par les bundles. 2.2 Modules Cette couche définit la les régles de chargement des classes. Le Framework repose essentiellement sur Java basé sur une unique classpath qui doit décrire toutes les endroits de ressources.le OSGI rajoute une couche supplémentaire au niveau de chaque module avec une classpath privée pour la recherche des classes en cours d exécution ou en cours de linkage. Cette couche déploie aussi une architecture sécurisée faisant abstraction aux différents domaines de constructeurs.

7 2.3 Cycle de vie Cette couche gère le cycle de vie des bundles dynamiquement:install, start,stop, update, uninstall. Les bundles seront chargés par la couche module mais rajoute une API standard pour une gestion dynamique. Un mécanisme de dépendance dynamqiue est mis en œuvre afin d assurer cette gestion et de préserver l intégrité et la sécurisation de l environnment. 2.4 Annuaire de service Cette couche rajoute un modèle de cooperation dynamique entre les bundles. Les bundles peuvent coopérer via le partage de classes clasique. Mais si nous rajoutant l aspect install/uninstall de code. Un certain nombre d évenment au sein de ce modèle est prévu pour gérer la montée et la disparition de services dans le système. Less ervices sont en fait des Objets serveurs comme le serveur http. 2.5 Bundles Un bundle est une unité physique de livraison ainsi qu'un concept logique employé par le framework pour organiser son état interne. Concrètement, un bundle est une archive Java qui contient un manifeste et un ensemble de classes, des bibliothèques de code natif et d autres ressources associées. Un bundle installé est identifiable de manière unique.

8 3. Modèle de Services Les services OSGi sont simplement des définitions d'interfaces Java avec une sémantique précise et tout objet qui implémente une interface de service est supposés obéir à son contrat. 3.1 Services standards L alliance OSGI a définit un certain nombre de services standards par le biais de Java Interface. Les Bundles peuvent implémenter ces interfaces et enregistre ensuite ce service dans la registry. Les clients peuvent rechercher ces services dans la registry ou reste en écoute quand au montée ou descente de ces services. Ceci est très similaire aux architectures SOA avec la différence que les SOA repose essentiellement sur les web services qui implémente une couche de transport pour véhiculer les données (SOAP/http). OSGI repose sur les mécanismes d invocation directes de tant plus que les composants OSGI réagit dynamiquement à l apparition et la disparition des services Dans ce qui suit un bref aperçu des services disponibles. A noter que chaque service est définit d une façon abstraite et peut être implémenté par différents constructeurs. 3.2 Services framework.les services Framework sont les suivants: Gestion des permissions: les permissions accordés au bundles existants et futures sont à gérer à ce niveau. Les permissions sont prises en compte immédiatement une fois définis

9 Administration des packages : Les Bundles partagent les packages avec les classes et ressources. Quand un bundle est mis à jour, il y a nécessité de recalculer ses dépendances. Ce service fournit les informations concernant l état des partages des packages et offre la possibilité de rafraîchir cet état. Niveau de lancement (Start Levels) Il s agit des bundles pré requis qui doivent être lances (ou initialisés) avant que d autres démarrent. Gestion des URL Ceci donnant la possibilité de faire collaborer plusieurs plateformes OSGI issus de plusieurs constructeurs. 3.3 Services systèmes Les services systèmes offrent des fonctionnalités horizontales nécessaires dans différents systèmes. Service de Journalisation Les informations de trace: warnings, debug, erreurs est gérés à ce niveau. Ce service reçoit les entrées du journal, puis envoie ces entrées à d'autres bundles qui ont souscrit à ce service. Service d Administration et de Configuration Ce service fournit un modèle dynamique, flexible afin de fixer et obtenir des informations de configuration. Device Access Service Device Access OSGi est le mécanisme pour trouver un pilote pour un nouvel appareil et de télécharger automatiquement un ensemble d'application de ce pilote. Il est utilisé pour Plug-and-Play scénarios. Service d administration des utilisateurs Ce service utilise une base de données avec les informations utilisateur (privé et public) pour fins d'authentification et d'autorisation. Service de para métrisation (préférences) Ce service donne accès à la base de données hiérarchique de propriétés, similaire à le Registre de Windows. Gestion de composants Le caractère dynamique des services (pouvant se charger/ décharger à tout moment) rend difficile l'écriture de logiciel. La spécification des

10 component Runtime permet de simplifier le traitement de ces aspects dynamiques en utilisant le formalisme XML pour décrire les dépendances. Administration des déploiements Le premier type de déploiement OSGi est le bundle, qui est un fichier JAR / ZIP. Ce service rajoute un nouveau format combinant le bundles avec des ressources propres en un seul livrable. Administration des événements De nombreux événements ont des interfaces spécifiques, ce qui rend difficile de recevoir et de filtrer les événements de manière générique. Ce service fournit un cadre générique et thématique, Administration des Applications Le bundle Osgi est différents des applications usuelles : desktop ou mobile. Ce service prévoit la gestion de telle application avec l allocation des ressources nécessaires 3.4 Services protocolaires The OSGi Alliance has defined a number of services that map an external protocol to an OSGi service. Service Http Ce service s exécute sous forme de servlet. Les bundles peuvent fournir des servlets qui pourront être accessible par le service http. Ce service fournit un serveur web très attractif avec toutes les possibilités d administration à distance pour charger / décharger de nouveaux servlets. Service UPnP Universal Plug and Play (UPnP) est un nouveau standard pour partager les ressources multimédia entre plusieurs équipements électronique. Ce service fournit une correspondance (passerelle) entre les les devices Upnp sur le réseau avec la registry. Et vice versa des services OSGI peuvent être exposé au réseau UpNP. 3.5 Autres services Wire Admin Service Normally bundles establish the rules to find services that they want to work with. However, in many cases this should be a deployment decision. The Wire Admin service therefore connects different services together as defined in a configuration file. The Wire Admin service uses the concept of a Consumer and Producer service that interchange objects over a wire. Service de parsing XML Ce service permet à un bundle de retrouver un parser avec les spécifités voulus. Service d accès aux applications distantes

11 4. Concepts OSGI 4.1 Application Java Un application java classique utilise un certains nombre de fichiers Jar placés statiquement sous $CLASSPATH ou $JRE_HOME/ext/lib. Ce type de conditionnement conduit généralement à deux problèmes. Le premier est l'absence d'une classe dans un des fichiers JAR listés dans le CLASSPATH et dans le $JRE_HOME/lib/ext qui provoque l'abandon d'une exécution de l'application qui peut être fort avancée. Le second problème concerne l'incompatibilité de version des classes présentes dans l'environnement opérationnel avec celui qui a servi à compiler l'application. Ceci provoque également des erreurs non récupérables à l'exécution. OSGi remédie à ces deux problèmes en introduisant la notion de bundle. 4.2 Le composant OSGI: Bundle Il représente l unité fonctionnelle : composant qui offre des services. Physiquement c est l unité de livraison et de déploiement versionnée sous forme de fichier Jar contenant le code binaire des classes, des ressources comme des fichiers de configuration ou des images, et des bibliothèques de code natives (c.a.d. dépendant du processeur et du système d'exploitation). De ce point de vue une application est un ensemble coopératif de bundles livrés dynamiquement. Dans OSGi, les bundles sont utilisés pour conditionner et livrer les services avec leurs implémentations et leurs ressources. Les services sont les unités principales de construction 'applications dans le framework OSGi, et la plupart des services OSGi sont construits en

12 éparant l'interface de son implémentation. Ceci a comme résultat que les applications OSGi sont construites exclusivement à partir de ces interfaces et qu elles n'ont aucune connaissance de leurs implémentations. De plus, les Une plate-forme a composants adaptables au dessus d OSGi 5 applications sont construites de façon dynamique, au moment où de nouveaux services apparaissent ou disparaissent. LA structure d un bundle est la suivante :

13 Cycle de vie d un bundle OSGI spécifie un modèle dynamique. Les bundles ont un cycle de vie indépendant de celui de la plateforme Java. Il est alors possible de les installer, désinstaller, mettre à jour, arrêter, démarrer sans redémarrer la plateforme Java. Il en est de même pour la gestion des configurations et de la sécurité entre autres que l on peut modifier dynamiquement. Le passage automatique à l état RESOLVED ne se fait que si toutes les classes que nécessite le bundle sont disponibles. De cet état le bundle est prêt à démarrer A la fin de starting propre, le bundle enregistre les services dans le service registry et obtient les services dont il a besoin. Ses services seront éliminés du registry une fois il a stoppé.

14 Dépendance et dynamisme Présentation de Service Le service au sens OSGI est composé de : -un ou plusieurs interfaces - multiples implémentations possibles conditionnées dans les bundles - normalement non publiques - se trouve dans différents packages - Qualifiés par des propriétés

15 package org.device.print; public interface PrintService { public Job print(inputstream in, Dictionary printparams) throws PrintException; public Job[] list(); public interface Job { public final static int STATUS_WAITING=0; public final static int STATUS_ACTIVE=1; public final static int STATUS_STOPPED=2; public final static int STATUS_COMPLETED=3; public final static int STATUS_KILLED=4; public int getjobid(); public int getremainingpages(); public int getpages(); public int getstatus(); public void kill() throws PrintException; public class PrintService extends Exception { public interface Constants { public final static String TYPE="org.device.print.type"; public final static String DPI="org.device.print.dpi"; public final static String COLOR="org.device.print.color"; public final static String NPM="org.device.print.npm";

16 Les données de description Les méta-données d un bundle contiennent les informations nécessaires à l administration du bundle par le framework. Elles sont décrites dans un fichier associé au JAR du bundle appelé manifeste. Le manifeste contient un ensemble de paires attribut - valeur. Certains attributs sont standardisés par la spécification OSGi. Ils décrivent le chemin des classes (classpath) du bundle, les packages Java exportés ou importés par le bundle, Le manifeste peut également contenir un attribut qui spécifie une classe d'activation du bundle appelée «activateur» (Activator). L'activateur joue un rôle important car il permet au bundle d obtenir un contexte pour accéder aux fonctionnalités du framework. Le contexte permet aux bundles de rechercher des services dans le registre de services du framework, d enregistrer leurs propres services, d accéder à d'autres bundles et d installer des bundles additionnels. La classe activateur enregistre chaque service avec au minimum le nom de l interface qu il implémente, et éventuellement des propriétés supplémentaires (version, ). La Recherche de services se fait au moyen d une requête LDAP simple qui peut limiter la recherche à l ensemble des services qui ont des propriétés spécifiques (e.g. version>2.0). Une requête peut retourner zéro ou plusieurs références de services. Un bundle OSGi peut livrer des bibliothèques de fonctions natives. Ces bibliothèques sont décrites dans le manifeste grâce à l'entrée Bundle-NativeCode. Cette entrée décrit le chemin dans le fichier JAR, le processeur cible et le système d'exploitation requis. Une bibliothèque peut être liée à la JVM quand le bundle est activé et déliée quand le bundle est arrêté. Le chargeur vérifie préalablement la compatibilité du processeur et du système d'exploitation de la plate-forme avant de lier la bibliothèque. Cependant seuls les objets créés par le bundle peuvent invoquer les fonctions de la bibliothèque liée. L'invocation se fait via le mécanisme des JNI (Java Native Interface)

17 Permet en cours d exécution d importer des packages non présents à la résolution _ activator.getclass().getclassloader().loadclass(clazzname)

18 En introduisant le bundle comme l unité de deployment, OSGI impose la déclaration explicite des dépendances : Import-Package: org.osgi.framework;1.3 org.device.print; 1.0 Import-Service: org.device.print.printservice Bundle-Activator: org.eclipse.texteditor.impl.activator Bundle-Classpath:.;/lib/resources.jar Bundle-Name: TextEditor HP DeskJet Printer Import-Package: org.osgi.framework;1.3 org.device.print; 1.0, Export-Service: org.device.print.printservice, Bundle-Activator: com.hp.printer.deskjet.impl.activator Bundle-Name: HP Deskjet Printer HP OfficeDesk FaxPrinter : Import-Package: org.osgi.framework;1.3 org.device.print; 1.1, org.device.fax; 1.1 Export-Service: org.device.print.printservice, org.device.fax.faxservice Bundle-Activator: com.hp.printer.officedesk.impl.activator Bundle-Name: HP OfficeDesk FaxPrinter FaxServer Interface : Export-Package: org.device.fax; 1.1 Bundle-Name: FaxService Bundle-Version: PrintService Interface : Export-Package: org.device.print; 1.1 Bundle-Name: PrintService Bundle-Version: 2.0.1

19 Template de classe Bundle Le manifeste peut contenir un attribut qui spécifie une classe d'activation du bundle appelée (Activator). L'activateur joue un rôle important car il permet au bundle d obtenir un contexte pour accéder aux fonctionnalités du framework. Le contexte permet aux bundles de rechercher des services dans le registre de services du framework, d enregistrer leurs propres services, d accéder à d'autres bundles et d installer des bundles additionnels. La classe activateur enregistre chaque service avec au minimum le nom de l interface qu il implémente, et éventuellement des propriétés supplémentaires (version, ). La recherche de services se fait au moyen d une requête LDAP simple qui peut limiter la recherche à l ensemble des services qui ont des propriétés spécifiques (e.g. version>2.0). Une requête peut retourner zéro ou plusieurs références de services Le bundle ne requiert pas obligatoirement une classe activateur. Il peut être simplement une bibliothèque de packages Java qui ne nécessitent pas l accès au framework. Les classes publiques d activation du BundleActivator Start (BundleContext ctxt) Elle se déroule en général de la manière suivante : recherche des services nécessaires ou optionnels, liaison avec les services sélectionnés, création des objets implémentant les interfaces Java d'un contrat, enregistrement de ces objets comme des services avec les propriétés de courtage, positionnement d'écouteurs (listener) sur les événements de services, des bundles et de la plate-forme. Stop (BundleContext ctxt) Relâcher les références vers les objets de service utilisés et de libérer les ressources utilisées retrait des écouteurs désenregistrement des services enregistrés, Suppression des objets de services relâche des services auxquels il est lié, Libération de ressources, BundleContext Passé lors des appels de Start et stop de l activator et permet : 1. L enregistrement de services 2. Le courtage de services 3. L obtention et la libération des services 4. La souscription aux évènements du Framework 5. L accès aux ressources du bundle 6. L accès aux propriétés du framework 7. L installation de nouveaux bundles 8. L accès à la liste des bundles

20 Traitement des services L architecture OSGI permet un couplage faible entre bundles et un suivi de service à l exécution grâce aux notifications d évènements d apparition ou de disparition de service. C est un modèle SOA intra JVM. 1- Enregistrement de services (Lexmark Laser Printer) Import package org.osgi.framework package com.lexmark.printer.laser.impl; public class Activator implements BundleActivator { private ServiceRegistration reg=null; private PrintService theservice=null; public void start(bundlecontext ctxt) throws BundleException { theservice=new PrintServiceImpl(); Properties props=new Properties(); props.put("type", "laser"); props.put("dpi", "72,150,300,600,1200"); props.put("location", "1st floor"); reg=ctxt.registerservice("org.device.print.printservice", theservice, props); public void stop(bundlecontext ctxt) throws BundleException { if(reg!= null) reg.unregister();

21 2- Recherche de services (TextEditor) package org.eclispe.texteditor.impl import org.device.print.printservice; class Activator implements BundleActivator { public void start(bundlecontext ctxt) throws BundleException{ private PrintService ser; // Courtage : On va voir si quelqu'un offre un PrintService... ServiceReference[] temprefs =ctxt.getservicereferences ("org.device.print.printservice", "(location=1st floor)"); if(temprefs!=null) { System.out.println("Found a PrintService! I will use it!!!"); // On prend le premier offert! ser=(printservice) ctxt.getservice(temprefs[0]); Exemple de requêtes de Recherche de services Tous les services d impression refs=bundlecontext.getservicereferences("org.device.print.printservice", null); refs=bundlecontext.getservicereferences(null,"(objectclass=org.device.print.printservice)"); Certains services d impression refs=bundlecontext.getservicereferences("org.device.print.printservice", "(&(!(type=laser))(capability=double-sided)(!(dpi<=300))(location=*)" ); Tous les services de org.device refs=bundlecontext.getservicereferences(null,"(objectclass=org.device.*)"); Le service d impression et de fax au 3ième étage refs=bundlecontext.getservicereferences(null, "(&(objectclass=org.device.print.printservice)(objectclass=org.device.fax.faxservice)" + "(location=4th floor))" );

22 Traitement des evenments Les bundles «requesters» doivent impérativement prendre en compte l enregistrement et le retrait de services «importés». Dans l interface ServiceListener, la méthode servicechanged Permet le traitement séquentiel et synchrone des listeners public class PrintListenerActivator implements BundleActivator { private PrintServiceListener listener = null; public void start(bundlecontext context) { PrintServiceListener listener = new PrintServiceListener(context); context.addservicelistener(listener); public void stop(bundlecontext context) { context.removeservicelistener(listener); class PrintServiceListener implements ServiceListener { public void servicechanged(serviceevent e) { //Surcharge ServiceReference ref = e.getservicereference(); if(((string)ref.getproperty("objectclass").equals("org.device.print.printservice"))){ switch (e.gettype()) { case ServiceEvent.REGISTERED: println(ref + " has been registered by "+ ref.getbundle().getlocation()); break; case ServiceEvent.UNREGISTERING: println(ref + " is being unregistered"); break; case ServiceEvent.MODIFIED: println("properties of "+ref+" have been modified:"); String[] keys = ref.getpropertykeys(); for (int i=0; i<keys.length; i++) println(keys[i] + "=" + ref.getproperty(keys[i])); break; void println(string msg) { System.out.println("events: "+msg);

23 Le service d administration des événements Ce service permet d offrir un modèle de communication évenementiel entre les bundles. Le principe est basé sur le pattern Observer : création d un médiateur de publication-souscription d événement : - l éditeur poste un evenement au service EventAdmin - L EventAdmin le diffuse en parallèle à tous les souscripteurs du topic. - Chaque souscripteur enregistre un service EventHandler. - L'éditeur peut être synchronisé (ou non) sur la terminaison des exécutions de tous les services EventHandler concernés. 4. Conclusion OSGI apporte de l organisation à l exécution à la plateforme Java. C est un transfert de responsabilité du développeur au Framework OSGI. Le développeur est ainsi libérer de certaines tâches non essentielles et peut se consacrer pleinement au cœur de son métier : répondre aux exigences de son client. Il n est plus dans une intention constante d écriture de ligne de code, mais de composition et de réutilisation. Cette architecture de haut niveau a pour avantage d apporter de la discipline et de la lisibilité dans les développements des applications d entreprise.

La plate-forme dynamique de service OSGi

La plate-forme dynamique de service OSGi La plate-forme dynamique de service OSGi Didier Donsez Université Joseph Fourier (Grenoble 1) PolyTech Grenoble LIG/ADELE Firstname.Lastname@imag.fr Firstname.Lastname@ieee.org http://www-adele.imag.fr/users/didier.donsez/cours/osgi.pdf

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

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 - 2007, Frédéric Peschanski

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 - 2007, Frédéric Peschanski 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 - 2007, Frédéric Peschanski L a p l a t e f o r m e E c l i p s e Aperçu de la plateforme Eclipse Runtime Composants OSGI Equinoxe Plugins

Plus en détail

Serveur d'application à la juste taille

Serveur d'application à la juste taille Serveur d'application à la juste taille 18 Mars 2010 Benoit.Pelletier@bull.net Plan Contexte JOnAS 5, plate-forme de convergence JavaEE/OSGi Caractéristiques essentielles pour le Cloud Computing & l'autonomic

Plus en détail

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

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

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

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Derrière toi Une machine virtuelle!

Derrière toi Une machine virtuelle! Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Diagrammes de Package, de déploiement et de composants UML

Diagrammes de Package, de déploiement et de composants UML labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Mohamed Tounsi Institut Supérieur d'informatique et de Multimédia Sfax Septembre 2014 Mohamed Tounsi (ISIMS) Programmation Orientée Objet Septembre 2014 1 / 16 Responsable

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Introduction au Déploiement

Introduction au Déploiement Introduction au Déploiement Noël De Palma - Projet SARDES - INRIA - IMAG LSR Remerciement à d. donsez 03/03/06 PLAN Définition et problématique OSGI FRACTAL JADE Conclusion 03/03/06 2 Définition Environnement

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Gestion d identités PSL Exploitation IdP Authentic

Gestion d identités PSL Exploitation IdP Authentic Gestion d identités PSL Exploitation IdP Authentic Entr ouvert SCOP http ://www.entrouvert.com Table des matières 1 Arrêt et démarrage 2 2 Configuration 2 2.1 Intégration à la fédération............................

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

Plus en détail

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011 Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

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

Composants Logiciels. Le modèle de composant de CORBA. Plan Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Remote Method Invocation en Java (RMI)

Remote Method Invocation en Java (RMI) Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

Plus en détail

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

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

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Exposé Systèmes Réseaux

Exposé Systèmes Réseaux Exposé Systèmes Réseaux Domotique (Home Automation) Abderrahim ESSAIDI Ngoné DIOP Ingénieurs 2000 Filière Informatique et Réseaux 1 Objectif Montrer la dynamique actuelle et future du marché de la domotique

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat SOA Open Source Intégration des services et business process dans une architecture SOA Open Source Bruno Georges JBoss, a Division of Red Hat Agenda Cas d etude Contexte métier Les bénéfices Open Source

Plus en détail

Export et Import de modèles ICAR sous Trnsys 17

Export et Import de modèles ICAR sous Trnsys 17 Export et Import de modèles ICAR sous Trnsys 17 Export de modèles Trnsys 17 vers ICAR Une fonction permettant d exporter des modèles Trnsys vers des composants ICAR a été implémentée sous Simulation Studio.

Plus en détail

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

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

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

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

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies

Plus en détail

MANUEL D INSTALLATION 2015. du module Chronopost pour. version 1.0.5

MANUEL D INSTALLATION 2015. du module Chronopost pour. version 1.0.5 MANUEL D INSTALLATION 2015 du module Chronopost pour version 1.0.5 Objectif Ce document explique comment installer et utiliser le module Chronopost depuis votre site Magento. Périmètre Ce module permet

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Machine virtuelle Java pour Palm TX

Machine virtuelle Java pour Palm TX Machine virtuelle Java pour Palm TX Sommaire 1. Présentation de la machine virtuelle d IBM...1 2. Installation sur le Palm TX...2 2.1. Téléchargement...2 2.2. Installation...2 2.3. Application de test...2

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5 Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5 Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX Network Shutdown Module

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Auto-évaluation Aperçu de l architecture Java EE

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

Administration d'infrastructures logicielles avec Jade

Administration d'infrastructures logicielles avec Jade Administration d'infrastructures logicielles avec Jade Daniel Hagimont IRIT, décembre 2006 Contexte Infrastructures logicielles réparties Complexité et hétérogénéité Besoin d administration Fonctions d

Plus en détail

J2EE - Introduction. Développement web - Java. Plan du chapitre

J2EE - Introduction. Développement web - Java. Plan du chapitre Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Utiliser Java sans BlueJ

Utiliser Java sans BlueJ Conception objet en Java avec BlueJ une approche interactive Utiliser Java sans BlueJ Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec BlueJ une approche

Plus en détail

Mobile OGSI.NET: Grid Computing on Mobile Devices

Mobile OGSI.NET: Grid Computing on Mobile Devices Mobile OGSI.NET: Grid Computing on Mobile Devices David C.Chu Université de Californie, Berkeley Marty Humphrey Université de Virginie Publié en Novembre 2004 lors de la 5ième conférence IEEE/ACM International

Plus en détail

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

Applications distribuées: le retour du client riche Applications distribuées: le retour du client "riche" Markus Jaton, Olivier Liechti Olivier Liechti / Markus Jaton /1 Agenda Java a-t-il un avenir sur le "desktop"? Swing vs. AJAX: idées préconçues? Architecture

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

http://www.roboconf.net https://github.com/roboconf

http://www.roboconf.net https://github.com/roboconf http://www.roboconf.net https://github.com/roboconf Déploiement et reconfiguration dynamique pour le développeur et l'exploitant Licence : Apache 2.0 (c) Linagora / Université Joseph Fourier RMLL 2014

Plus en détail

Android et le Cloud Computing

Android et le Cloud Computing Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un

Plus en détail

Prise en compte des ressources dans les composants logiciels parallèles

Prise en compte des ressources dans les composants logiciels parallèles Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec Frederic.Guidec@univ-ubs.fr Action RASC Plan de cet exposé Contexte Motivations

Plus en détail

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

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

Projet Java EE Approfondi

Projet Java EE Approfondi EISTI Projet Java EE Approfondi Manuel d installation du framework Stripes Amaury Languillat, Yann Gonzalez, Arnaud Recher, Vincent Laronde, Anys Mechkar 10 Manuel d installation Téléchargement On part

Plus en détail

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 INTRODUCTION Bonjour à tous; Aujourd hui je publie une nouvelle version de l adaptation de la Sync Framework Toolkit,

Plus en détail

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

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi Nicolas Geoffray 1, Gaël Thomas 1, Gilles Muller 1, Pierre Parrend 2, Stéphane Frénot 3, Bertil Folliot 1 nicolas.geoffray@lip6.fr

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Fiche technique. www.omnikles.com 56 rue de Londres - 75008 Paris Tél. : 01 44 88 96 50 Mail : contact@omnikles.com

Fiche technique. www.omnikles.com 56 rue de Londres - 75008 Paris Tél. : 01 44 88 96 50 Mail : contact@omnikles.com Eléments de configuration - Utilisateur Les applications OK-BOX sont des applications Web accessibles pour les utilisateurs via le protocole Internet sécurisé : HTTPS. A ce titre, elles requièrent un poste

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Calcul Parallèle. Cours 5 - JAVA RMI

Calcul Parallèle. Cours 5 - JAVA RMI Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation

Plus en détail

Les fichiers de configuration d'openerp

Les fichiers de configuration d'openerp Les fichiers de configuration d'openerp Comme nous l'avons vu dans le cours précédent OpenErp (coté serveur) est basé sur trois briques logicielles : - le serveur (client) web OpenErp ; - le serveur d'application

Plus en détail

Macroscope et l'analyse d'affaires. Dave Couture Architecte principal Solutions Macroscope

Macroscope et l'analyse d'affaires. Dave Couture Architecte principal Solutions Macroscope Macroscope et l'analyse d'affaires Dave Couture Architecte principal Solutions Macroscope Avis Avis d intention Ce document a pour but de partager des éléments de vision et d intentions de Fujitsu quant

Plus en détail

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011 Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS Avant de commencer 1. Introduction 15 2. HTML5 oui, mais pas que... 15 2.1 HTML5 16 2.2 JavaScript 17 2.3 CSS 18 3. Les outils 18 Préparation des outils et création du projet 1. Introduction 21 2. Team

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Connaître la version de SharePoint installée

Connaître la version de SharePoint installée Connaître la version de SharePoint installée Comment savoir la version de SharePoint en cours Dans le cadre de la maintenance de plusieurs fermes SharePoint, il est indispensable de connaître les versions

Plus en détail

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,

Plus en détail

Plateforme IoT flexible et configurable:

Plateforme IoT flexible et configurable: Plateforme IoT flexible et configurable: Vers une intégration automatisée de dispositifs communicants Journée Capteurs connectés 2015 Prof. Nabil Ouerhani, HE-Arc Yverdon-les-Bains, 19.11.2014 Plan de

Plus en détail

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC lift 1 d j = ( + + Architecture Modularité Déploiements lift 2 plates-formes en 1 2 Se t Se Dat t Une architecture répondant à deux besoins : Elévation de la donnée Exploitation de la donnée publiée Des

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5) #45 #46 WiFi Security Camera Quick Start Guide Guide de départ rapide Caméra de surveillance Wi-Fi (P5) #47 Start Here 1 Is this you? TECH SUPPORT CTRL ALT DEL 2 If yes, turn to page three 1 3 If not,

Plus en détail