Document de travail Groupe Français des utilisateurs OSGiTM Formation à la technologie OSGiTM Stéphane Frénot, Didier Donsez, Michel d'Hooge, Alain Moreau A) Présentation générale I.1) Objectif général L'objectif de ce groupe est de définir une structure générale de formation autour d'OSGiTM. Cette structure peut être déclinée de différentes manières (formation universitaire, école d'ingénieurs, formation continue, formation professionnelle). Le groupe des utilisateurs OSGi fait cette proposition afin de définir des lignes générales d'une telle formation, et d'en fédérer les différents acteurs. Les modalités de financement et de certifications sont pour l'instant en dehors du cadre de cette proposition. I.2) Structure générale Cette proposition se décline selon 2 axes • Les développeurs qui veulent parfaitement maîtriser la technologie OSGiTM • Les décideurs qui veulent rapidement connaître la technologie et savoir dans quoi ils vont éventuellement s'engager. I.2.1) Axe Développeurs Cet axe doit permettre à des développeurs à différents niveaux de compétence de devenir autonomes autour de la technologie. La durée de formation est de l'ordre d'une semaine pour l'ensemble de l'axe et se reparti entre Cours et TP machines à raison de 1/3 et 2/3 respectivement. Nous proposons de structurer cet axe selon 5 blocs1 : N.B. : un descriptif détaillé de chacun des blocs est donné dans la section II du document. Core 1 : doit permettre de comprendre le framework OSGi et de pouvoir développer les premiers bundles2 dessus Core 2 : permet de comprendre l'intégralité de la spécification OSGi, ainsi que certains services spécifiques Inside : donne les indication techniques permettant de comprendre les fondements 1 La durée de formation d'un bloc est d'environ 1 journée 2 Bundle se traduit en français par paquet, ballot, liasse. Afin d'éviter certaine confusion nous conservons le terme anglo-saxon Stéphane Frénot Groupe des utilisateurs français d'OSGi 20/05/05 1/5 technologique sur lesquels repose OSGi Service Management : présente les services liés à la supervision de passerelles OSGi Service Communication : présente les services liés à l'interaction avec des passerelles I.2.2) Axe Décideurs Cet axe propose une formation d'environ une journée. Elle permet aux auditeurs de faire des choix justifiés concernant la technologie. C'est une approche orientée évangélisation de technologie. La présentation de l'axe repose sur des cours magistraux avec des « cas d'utilisation », des « success stories » et des « exemples type, d'utilisation ». Nous proposons de décomposer l'axe en deux blocs : Décideur 1 : est une présentation générale autour de l'infrastructure OSGi (Business model, OSGi Alliance, OSGi framework) Décideur 2 : est une présentation sur la gestion de projet autour d'OSGi. Quelles sont les implications liées au montage d'un projet autour d'OSGi I.3) Parcours Le schéma bloc suivant représente les différents sections de la formation core1 Décideurs 1 core2 Décideurs 2 inside management communications Il est certainement possible d'envisager plusieurs parcours de formation possible. Les blocs « inside, management et communications » sont des blocs plutôt orientés domaines d'application, ils peuvent donc être pris de manière indépendante les uns des autres et indépendamment des modules core. Stéphane Frénot Groupe des utilisateurs français d'OSGi 20/05/05 2/5 B) Proposition de description des blocs II.1) Axe développeurs II.1.1) Core 1 Pré-requis : programmation java Business Model d'OSGi Principes de programmation java : Programmation orientée services (interface) Programmation orientée services dynamique Principes de la plate-forme OSGi Bundle, Package et Services Activator Manifest Négociation de services (propriété et filtres) Listeners Offre de passerelles Liste des passerelles, Modèles de licence II.1.2) Core 2 Pré-requis: programmation java+Core1+ant Mécanisme de gestion des bundles import/export et matching de version imports dynamiques Utilisation de code natif Emballage de librairies externes java Modèle de sécurité de bundles Services de base Service de log XML parser HTTP service Services de Combinaison et de gestion de cycle de vie Service Factory, Service Binder, Service Tracker Stéphane Frénot Groupe des utilisateurs français d'OSGi 20/05/05 3/5 Services de Communications locales Wire service Device Access Manager II.1.3) Inside Programmation java avancée Chargement de classes Classloaders, packages, javax Sécurité java Servlet Génie logiciel Packaging (Contrat/implémentation) (best practice) Chaîne de projet OSGi (ant, maven) Modèle de développement de services Proactif (http), Réactif (device discovery) Outillages vi, eclipse, ant, maven Optimisations Machines virtuelles et environnements (choix) II.1.4) Management Services Pré-requis: programmation java+Core2+ant Services liés au management d'OSGi : Shell gui, tui, tiny + équivalent sur les autres plates-formes telnet Permission Admin ConfigurationManager UserAdmin Preferences Start level Initial provisionning JMX (agent, console, remoting) Obr Stéphane Frénot Groupe des utilisateurs français d'OSGi 20/05/05 4/5 II.1.5) Communication services Pré-requis: programmation java+Core2+ant Services liés à la communication sous OSGi : Communication inter applications : http, JMS IOConnector, URL handler Remoting : RMI, SOAP Infrastructures tiers : UPnP, JINI II.2) Axe Décideurs II.2.1) Principes Pré-requis : le monde java Business model d'OSGi OSGi Alliance Grandes lignes du framework (forces et faiblesses) Services majeurs de la plate-forme Environnements java associés II.2.2) Exemples de mise en oeuvre Exemples de success stories (et anti-patterns ?) Prendre en main un projet OSGi Équipe, outils, infrastructure Domaines d'applications Réseaux actifs, réseaux de capteurs... Environnement technique Panel de gateway (ibm, prosyst, oscar, kf...) Approches open-source Stéphane Frénot Groupe des utilisateurs français d'OSGi 20/05/05 5/5