- Osgi
-
OSGi
OSGi Service Platform Développeur OSGi Alliance Dernière version 4.1 (le mai 2007) [+/−] Licence OSGi Specification License Site Web www.osgi.org L’OSGi Alliance (précédemment connue sous le nom de Open Services Gateway initiative) est une organisation fondée en mars 1999. L’Alliance et ses membres ont spécifié une plate-forme de services basée sur le langage Java qui peut être gérée de manière distante. Le cœur de cette spécification est un framework (cadriciel) qui définit un modèle de gestion de cycle de vie d’une application, un référentiel (registry) de services, un environnement d'exécution et des modules. Basés sur ce framework, un grand nombre de couches (Layers) OSGI, d’API et de services ont été définis :
- journalisation (log or Data logging = enregistrement chronologique des données),
- gestion des configurations (configuration management), des préférences,
- le service HTTP (en exécutant des servlets),
- l’analyse syntaxique XML, l’accès aux dispositifs (Device Access),
- l’administration de paquetage (Package Admin),
- l’administration des permissions (Permission Admin),
- le niveau de démarrage (Start Level),
- la gestion des utilisateurs (User Admin),
- le connecteur d'ES (IO Connector; IO = Input Output = Entrées Sorties),
- la gestion des connexions (Wire Admin),
- Jini, l’exportateur UPnP (UPnP Exporter),
- le pistage applicatif (Application Tracking),
- les paquets signés (Signed Bundles),
- les services déclaratifs (Declarative Services),
- la gestion de l’énergie (Power Management),
- la gestion des dispositifs (Device Management),
- les politiques de sécurité (Security Policies),
- diagnostic/contrôle et organisation en couches du cadriciel (Diagnostic/Monitoring and Framework Layering).
Étendue du cadriciel OSGi
Description graphique de l’architecture
Le framework 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.
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 des applications allant des téléphones portables à l’IDE Eclipse (sous-projet Equinox). D’autres domaines d'application incluent les automobiles, l’automatisme industriel, les PDAs, le calcul grid, les loisirs (e.g. iPronto), la gestion de flottes et les serveurs d'applications.
Processus de spécification
La spécification OSGI est développée par les membres du consortium au travers d’un processus ouvert et rendu disponible gratuitement sous la OSGi Spécification Licence. L’alliance OSGI possède un programme de conformité qui est ouvert aux membres seulement. À la date d'octobre 2007, la liste des implémentations certifiées se résume à six entrées.
Organisation
L’OSGi Alliance a été fondée par Ericsson, IBM, Oracle, Sun Microsystems et d’autres en Mars 1999.
On trouve parmi ses membres à la date de mai 2007 plus de 35 compagnies comme par exemple IONA Technologies, Ericsson, Deutsche Telekom, IBM, Makewave (anciennement Gatespace Telematics), Motorola, Nokia, NTT, Oracle, ProSyst, Red Hat, Samsung Electronics, Siemens, et Telefonica.
L’alliance possède un bureau de directeurs qui fournit une gouvernance globale de l'organisation. Les OSGi officers ont des rôles et des responsabilités variés dans ce cadre. Les travaux techniques sont conduits au sein de l’Expert Groups et ont pour objectifs de développer les spécifications, d’établir des implémentations de référence et de produire des tests de validation et de conformité. Ces Expert Groups, travaillant de concert, ont produit quatre versions majeures à la date de 2007. Les travaux non-techniques sont conduits par divers groupes et comités.
Il existe des groupes d’experts dédiés pour l’entreprise, le mobile, les véhicules et les core platforms. L’Enterprise Expert Group (EEG) est le plus récent EG et s'adresse aux applications entreprise/côté serveur.
Composition du bureau (Board of Directors) en Mars 2008
- Dan Bandera (IBM)
- John R. Barr, Ph.D (Motorola)
- Edward Cobb (BEA)
- Anish Karmarkar (Oracle)
- Ryutaro Kawamura, Ph.D (NTT)
- Seok-Ha Koh (Samsung)
- Kimmo Löytänä (Nokia)
- Frank Mittag (SAP)
- Stan Moyer (Telcordia)
- Eric Newcomer (IONA)
- Susan Schwarze, Dr. (ProSyst)
Versions de spécification
- OSGi Release 1 (R1): mai 2000
- OSGi Release 2 (R2): octobre 2001
- OSGi Release 3 (R3): Mars 2003
- OSGi Release 4 (R4): octobre 2005 / septembre 2006
- Core Specification (R4 Core) : octobre 2005
- Mobile Specification (R4 Mobile / JSR-232) : septembre 2006
- OSGi Release 4.1 (R4.1): mai 2007 (AKA JSR-291)
Nouveautés dans la Release 4 d’OSGI
- Nouvelle capacités très puissantes de modularisation améliorant grandement les services réseaux qui partagent une même et seule VM.
- Classe modularisée partageant et cachant les détails d’implémentation.
- Gestion avancée des multiples versions de la même classe si bien que d’anciennes et nouvelles applications peuvent partager la même VM.
- Localisation des manifestes de bundle OSGI permettant le déploiement des services n’importe où.
- Amélioration de la politique de sécurité.
- Une spécification déclarative des services qui résout les problématiques d'empreinte mémoire qui peut prévenir les devices/matériels embarqués d'utiliser un service orienté architecture pour supporter des applications multiples
Cadriciels OSGi
L’implémentation de référence de l’OSGi Alliance n’est pas conçue pour un contexte de production, mais sert de référence pour d'autres implémentations.
Les cadriciels “production-ready” sont proposés par divers éditeurs, aussi bien Open Source que commerciaux. Les deux approches ont des avantages et des inconvénients.
Les cadriciels commerciaux OSGi
Les frameworks commerciaux sont et doivent être certifiés, et ciblent des applications plus pointues nécessitant des optimisations. Ils permettent également de prendre en compte des besoins spécifiques des clients par l’ajout de modules correspondants à leurs besoins, ou des implémentations correspondant à leur architecture matérielle (par exemple dans le domaine des appareils mobiles, les architectures sont très variées). Tout cela a évidemment un coût, et lie les clients avec leur fournisseur. Mais ceci est contre-balancé par le fait que la spécification est libre, et que des implémentations open source existent, permettant éventuellement à un coût raisonnable de changer de fournisseur.
Les cadriciels OSGi Open Source
Les frameworks sont généralement moins ciblés dans le type d’application envisagé - ou au contraire focalisent sur un domaine bien spécifique comme Eclipse/Equinox ou/et sont dominés par une seule Entreprise, qui a découplé son framework d'un produit commercial existant, ou qui a conçu le cadriciel au départ comme un produit commercial devenu Open Source. L’important est tout de même la visibilité du code rendue par la mise en Open Source de ce code.
Liste des cadriciels OSGi Open source
- Equinox (OSGi-Framework – du projet Eclipse (Enterprise)
- mBedded Server Equinox Edition – basé sur le framework Equinox d’Eclipse ci-dessus
- Oscar – originellement un projet universitaire, puis développé sous le nom de projet Apache Felix ci-dessous
- Apache Felix – projet de la communauté Apache
- Knopflerfish – originellement commercialisé comme un produit embarqué de Gatespace
- Concierge – Implémentation très légère pour les mobiles et les systèmes embarqués
- Jadabs – implémentation rudimentaire selon l'expression : “A dynamic lightweight container for small devices in a distributed environment”
Guides et échanges d'information
- Frequently Asked Questions
- OSGi Developer Mail List
- Eclipse Equinox Article Index - Articles on an open source OSGi implementation
- ProSyst - Access to supported Open Source and Commercial OSGi implementations as well as to 100+ inhouse OSGi developers, seminars, trainings, consulting and custom development services
- aQute: OSGi Info - Information about OSGi and access to seminars
- OSGi Users' Forums - Japan, Korea, France, Spain, Sweden, and soon : Italy, Germany
OSGi dans le cadre du processus JCP
OSGi est inscrit en tant que JSR 291: Dynamic Component Support for Java SE dans le cadre du processus Communautaire Java (JCP) comme le modèle de composant dynamique officiel pour les développement java – à côté de la "JSR 232: Mobile Operational Management", qui traite des problématiques des mobiles traités pat JME. La JSR-232 correspond à spécification Mobile R4 (MEG) et la JSR-291 correspondant à OSGi R4.1.
Liste des JSR associées
- RFC-2608 (Service Location Protocol)
- Sun JINI (Java Intelligent Network Infrastructure)
- Sun JCP JSR-8 (Open Services Gateway Specification)
- Sun JCP JSR-232 (Mobile Operational Management)
- Sun JCP JSR-246 (Device Management API)
- Sun JCP JSR-249 (Mobile Service Architecture for CDC)
- Sun JCP JSR-277 (Java Module System)
- Sun JCP JSR-291 (Dynamic Component Support for Java SE - AKA OSGi 4.1)
- Sun JCP JSR-294 (Improved Modularity Support in the Java Programming Language)
Standards technologiques associés
- MHP / OCAP
- Universal Plug and Play (UPnP)
- Universal Powerline Association
- HomePlug
- LonWorks
- CORBA
- CEBus
- EHS (KNX) / CECED CHAIN
- X10
- Java Management Extensions
Exemples de projets utilisant OSGi
- Datanucleus - open source data services and persistence platform in service oriented architectures
- EasyBeans - open source EJB 3 container
- Eclipse - open source IDE and rich client platform
- Nuxeo - open source ECM Service Platform
- JOnAS 5 - open source Java EE 5 application server
- JPOX - open source object-relational mapper
- Newton - open source distributed OSGi/SCA runtime
- Business Intelligence and Reporting Tools (BIRT) Project - Open source reporting engine
- Apache Sling - OSGi-based applications layer for JCR content repositories.
- GlassFish (v3) - application server for J2EE
- Project Fuji in Open ESB v3 - light weight and modular ESB core runtime.
- SIP Communicator - open source Java VoIP and multi-protocol instant messenger
- Spring Source Application Platform - A module-based Java application server built on Spring, Tomcat and OSGi-based technologies.
Livres
- OSGi Service Platform, Release 3, IOS Press, ISBN 1-58603-311-5
- Programming Open Service Gateways with Java Embedded Server(TM) Technology, ISBN 0-20171-102-8
Webinar
- (en)Part 1 of a webinar series on OSGi – Running OSGi
- (en)Part 2 of a webinar series on OSGi - Installing some bundles
- (en)Part 3 of a webinar series on OSGi – Running some games
- (en)Part 4 of a webinar series on OSGi – Installing a php wiki on top of OSGi
- (en)OSGi Best Practices by OSGi Fellows Hargrave and Kriens at JavaOne 2007
- (en)OSGi, the good the bad the ugly
Voir aussi
- Knopflerfish
- Apache Felix
- Equinox
- Concierge OSGi
- Springsource dm server
Liens externes
- (en)OSGi Technology
- (en)OSGi web site
- (en)OSGi Alliance Developer Site
- (en)The Eclipse 3.0 platform: Adopting OSGi technology
- (en)ApacheCon EU 2006 presentation about OSGi best practices by Marcel Offermans.
- (en)Nuxeo Runtime Documentation -- Nuxeo, open source Enterprise Content Management (ECM) solution built on OSGi technology
- (en)Interview with Kriens and Hargrave (Podcast)
- (en)An Introduction to OSGi on the Server Side by Daniel Rubio
- (en)SOA World Article: What's happening with OSGi and why you should care by David Chappell and Khanderao Kand
- Portail de l’informatique
Catégories : Organisme de normalisation | Java
Wikimedia Foundation. 2010.