0
OSGiTM
Un système dynamique de services
Java
devenue un framework à composants
Christophe Saint-Marcel
MIAGE M1

MIAGE M1 ...
Définitions
OSGi™ - The Dynamic Module System for Java™

…new service-oriented programming model, referred to by some
as “...
Caractéristiques principales









Modularisation des applications
Chargement/Déchargement de code dynamique
pour...
Domaines d’applications






Initialement, Systèmes embarqués
– Véhicule de transport (automotive)
– Passerelle réside...
Schneider et OSGiTM: Résidentiel

MIAGE M1 St-Marcel - @VELOSSITY
Schneider et OSGiTM: Building

MIAGE M1 St-Marcel - @VELOSSITY
Un marché pour le résidentiel

From Orange Open Home Automation Infrastructure - J.M. Ortholand, A. Bottaro, nov 2011

MIA...
Démonstrateur
 Cf.

HOMES MULTISENSOR

 http://www2.schneider-

electric.com/sites/corporate/fr/presse/dossier
s/projet-...
Un peu d’histoire





Mars 1999 : Fondation de l’OSGi Alliance, un consortium
d’industriels
Aujourd’hui, plus de 40 s...
Un standard en construction
R4

ei bo M
l

R3

e c he V
l i

R2

uA e m H
o

R1

Framework
Http
Log
Device Access

Package...
OSGi R5
 Sortie

officielle en juin 2012
Core
Resource API
Version range
Compendium & Enterprise
Repository Service
Resol...
Fournisseurs de solutions
 Equinox

(OSGi-Framework – du projet
Eclipse (Enterprise)
 Apache Felix – projet de la commun...
Plateforme

Architecture d’une plateforme OSGiTM

MIAGE M1 St-Marcel - @VELOSSITY
Framework

Architecture du framework




La couche Services offre la
possibilité de mettre à disposition
des services au...
Module

Comment ça marche : le bundle
 L’unité

de déploiement: le bundle est le bloc
de légoTM
– Unité de livraison et d...
Module

Structure d’un bundle

MIAGE M1 St-Marcel - @VELOSSITY
Cycle de vie

Déploiement du bundle


Le Framework:
– Lit le manifest du jar
– Installe le code et les ressources
– Résol...
Cycle de vie

Cycle de vie du bundle

MIAGE M1 St-Marcel - @VELOSSITY
Services

Comment ça marche : µSOA
 Architecture










orienté service (µServices)

Le service est défini par un...
Mais où sont les composants?
 Le

service ?
 Le bundle ?
⇒ Le

framework OSGiTM natif est un framework
à composants prim...
Les modèles à composants sur OSGiTM
 Plusieurs

approches concurrentes
 Basées sur un modèle déclaratif, chaque
composan...
Modélisation des composants
cmp Big Picture
REST Connector

RESTAdapter

Device
Business API
Multis ensor

HDDe vice
Field...
Solutions concurrentes
 Plusieurs
–
–
–
–
–

approches toutes compatibles:

Le SCR spécifié en 1.4
Blueprint
iPOJO, le pr...
Exemple de déclaration

MIAGE M1 St-Marcel - @VELOSSITY
OSGiTM : une technologie mature



Modèle à composants déclaratif de haut niveau
Nombreux bundles open-source
–



http...
OSGiTM : un paradoxe?

MIAGE M1 St-Marcel - @VELOSSITY
OSGiTM : un paradoxe?
DZone: How widespread is OSGi in the Java community and what are
your predictions for how adoption w...
OSGiTM : une solution ultime?
At this time, it has been decided to remove OSGi support from
WildFly for various reasons. O...
OSGiTM : la concurrence


Jigsaw
+ Java natif, modularisation du JRE intégrée à Java 8?
– Pas encore sorti et éprouvé


...
Bibliographie
 http://france.osgiusers.org/Main/HomePage
 Peter

Kriens –
http://www.aqute.biz/Main/HomePage
 Didier Do...
Upcoming SlideShare
Loading in...5
×

M1 presentation OSGi

847

Published on

Cours d'introduction au framework OSGi - Miage M1 Université de Grenoble

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
847
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • - Le divertissement et la culture ( Home Cinema, son multipièces
    , VOD , triple play, …..)
    - Sécurité des biens et des personnes ( contrôle d’intrusion,
    alertes fuites d’eau, gaz , ….)
    - Santé ( surveillance médicale à la maison, à distance,
    détection de chutes,….).
    - Confort ( commande des appareils électroménagers à
    distance, boutons d’ambiance « je lis » , « je regarde la télé »,
    télémaintenance, …. )
  • Transcript of "M1 presentation OSGi"

    1. 1. OSGiTM Un système dynamique de services Java devenue un framework à composants Christophe Saint-Marcel MIAGE M1 MIAGE M1 St-Marcel - @VELOSSITY
    2. 2. Définitions OSGi™ - The Dynamic Module System for Java™ …new service-oriented programming model, referred to by some as “SOA in a VM.” OSGI in Action ©Manning Publications Co Enfin, la réutilisation de logiciel à portée de la main! C. Saint-Marcel MIAGE M1 St-Marcel - @VELOSSITY
    3. 3. Caractéristiques principales       Modularisation des applications Chargement/Déchargement de code dynamique pour le langage Java Déploiement dynamique d’applications sans interruption de la plateforme Installation, Lancement, Mise à jour, Arrêt, Retrait No « reboot » Résolution des dépendances versionnées de code MIAGE M1 St-Marcel - @VELOSSITY
    4. 4. Domaines d’applications    Initialement, Systèmes embarqués – Véhicule de transport (automotive) – Passerelle résidentiel/domotique/immotique – Contrôle industriel – Téléphonie mobile Serveurs d’application – JOnAS 5, Geronimo, ApacheDS, JAMES, WebSphere, JBoss 5 … Eclipse ! MIAGE M1 St-Marcel - @VELOSSITY
    5. 5. Schneider et OSGiTM: Résidentiel MIAGE M1 St-Marcel - @VELOSSITY
    6. 6. Schneider et OSGiTM: Building MIAGE M1 St-Marcel - @VELOSSITY
    7. 7. Un marché pour le résidentiel From Orange Open Home Automation Infrastructure - J.M. Ortholand, A. Bottaro, nov 2011 MIAGE M1 St-Marcel - @VELOSSITY
    8. 8. Démonstrateur  Cf. HOMES MULTISENSOR  http://www2.schneider- electric.com/sites/corporate/fr/presse/dossier s/projet-homes.page MIAGE M1 St-Marcel - @VELOSSITY
    9. 9. Un peu d’histoire     Mars 1999 : Fondation de l’OSGi Alliance, un consortium d’industriels Aujourd’hui, plus de 40 sociétés membres Au départ une plateforme embarquée pour les passerelles résidentielles : Open Services Gateway initiative Plusieurs groupes d’experts: Core Platform Expert Group (CPEG) – Framework – Enterprise Expert Group (EEG) – Enterprise Issues – Residential Expert Group (EEG) – Home Automation Groupes inactifs: – Mobile Expert Group (MEG) – Mobile Telephony – Vehicle Expert Group (VEG) - Automobile – MIAGE M1 St-Marcel - @VELOSSITY
    10. 10. Un standard en construction R4 ei bo M l R3 e c he V l i R2 uA e m H o R1 Framework Http Log Device Access Package Admin R2 Configuration Admin Permission Admin User Admin Preferences MetaType Service Tracker 2000 From Peter Kriens, aQute 2001 UPnP Initial Provisioning Name Space Jini Start Level IO Connector Wire Admin XML Parser Measurement & State Position Execution Env. 2003 Application Manager Foreign App. Access Signed Bundles Declarative Services Device Management Security Policies Framework Layering Initial Provisioning UPnP Conditional Permissions … 2006 MIAGE M1 St-Marcel - @VELOSSITY
    11. 11. OSGi R5  Sortie officielle en juin 2012 Core Resource API Version range Compendium & Enterprise Repository Service Resolver Service Subsystems Service Service loader Mediator Common Namespaces … MIAGE M1 St-Marcel - @VELOSSITY
    12. 12. Fournisseurs de solutions  Equinox (OSGi-Framework – du projet Eclipse (Enterprise)  Apache Felix – projet de la communauté R4.3 Apache  Knopflerfish – originellement commercialisé comme un produit embarqué de Gatespace  ProSyst – Solution commerciale MIAGE M1 St-Marcel - @VELOSSITY
    13. 13. Plateforme Architecture d’une plateforme OSGiTM MIAGE M1 St-Marcel - @VELOSSITY
    14. 14. Framework Architecture du framework   La couche Services offre la possibilité de mettre à disposition des services au sein d'une même machine virtuelle tout en masquant leurs implémentations à leurs utilisateurs. La couche Cycle de vie prend en charge les états des bundles Services Cycle de vie Module  La couche Module adresse la gestion du chargement des classes (classloading), la gestion de leurs visibilités et de leurs versions dans chaque bundle. MIAGE M1 St-Marcel - @VELOSSITY
    15. 15. Module Comment ça marche : le bundle  L’unité de déploiement: le bundle est le bloc de légoTM – Unité de livraison et de déploiement sous forme de jar – Une application OSGiTM est un assemblage de bundles – Chaque bundle est un isolat MIAGE M1 St-Marcel - @VELOSSITY
    16. 16. Module Structure d’un bundle MIAGE M1 St-Marcel - @VELOSSITY
    17. 17. Cycle de vie Déploiement du bundle  Le Framework: – Lit le manifest du jar – Installe le code et les ressources – Résolve les dépendances – Contrôle le cycle de vie du bundle – Appelle le Bundle Activator pour démarrer le bundle MIAGE M1 St-Marcel - @VELOSSITY
    18. 18. Cycle de vie Cycle de vie du bundle MIAGE M1 St-Marcel - @VELOSSITY
    19. 19. Services Comment ça marche : µSOA  Architecture      orienté service (µServices) Le service est défini par un contrat (Service API) Le fournisseur publie le service dans le registre Le service a son propre cycle de vie, il peut venir et partir à tout moment Le consommateur demande un fournisseur de service au registre, il peut aussi être notifié de l’apparition et de la disparition d’un fournisseur Le consommateur s’associe au fournisseur, il invoque le service Component Java Interface Service registry Service API Notifies Publishes Requests Binds Service Provider Invoke Service Requester MIAGE M1 St-Marcel - @VELOSSITY
    20. 20. Mais où sont les composants?  Le service ?  Le bundle ? ⇒ Le framework OSGiTM natif est un framework à composants primitifs ! ⇒ Dynamique difficile à gérer ⇒ Mélange du code métier et technique MIAGE M1 St-Marcel - @VELOSSITY
    21. 21. Les modèles à composants sur OSGiTM  Plusieurs approches concurrentes  Basées sur un modèle déclaratif, chaque composant décrit ce qu’il fournit et ce qu’il requiert  Abstraction de la dynamicité pour se concentrer sur le métier  Un composant est déployé dans un bundle MIAGE M1 St-Marcel - @VELOSSITY
    22. 22. Modélisation des composants cmp Big Picture REST Connector RESTAdapter Device Business API Multis ensor HDDe vice Field bus MultiSensorStorage Database MultiSensor.storage ZigbeeFactory java.sql.Connection DataStorage MIAGE M1 St-Marcel - @VELOSSITY
    23. 23. Solutions concurrentes  Plusieurs – – – – – approches toutes compatibles: Le SCR spécifié en 1.4 Blueprint iPOJO, le préféré des Grenoblois Dependency Manager FROGi (Fractal over OSGiTM) MIAGE M1 St-Marcel - @VELOSSITY
    24. 24. Exemple de déclaration MIAGE M1 St-Marcel - @VELOSSITY
    25. 25. OSGiTM : une technologie mature   Modèle à composants déclaratif de haut niveau Nombreux bundles open-source –  http://wiki.chameleon.ow2.org/xwiki/bin/view/Main/WebHome Outils de construction adaptés – – – Maven: construction de bundles  http://mvnrepository.com/ Nexus: entrepôts de bundles Jenkins: intégration continue des bundles  http://velossity.zapto.org:8080/ MIAGE M1 St-Marcel - @VELOSSITY
    26. 26. OSGiTM : un paradoxe? MIAGE M1 St-Marcel - @VELOSSITY
    27. 27. OSGiTM : un paradoxe? DZone: How widespread is OSGi in the Java community and what are your predictions for how adoption will change based on the introduction of Jigsaw? Kirk: Fascinating question. Just about every software developer is an OSGi consumer today because just about every platform and every IDE use OSGi. The major platform vendors, including IBM, Oracle, and Red Hat are all using OSGi to build up their platforms. What's interesting is that OSGi hasn't penetrated the enterprise developer space yet. At least, it hasn't gone mainstream yet. Some people might complain that OSGi is too complex. But what they're really saying is that designing modular software is really really hard. Because it is. http://java.dzone.com/articles/osgi-vs-jigsaw-kirk MIAGE M1 St-Marcel - @VELOSSITY
    28. 28. OSGiTM : une solution ultime? At this time, it has been decided to remove OSGi support from WildFly for various reasons. OSGi support will continue within our SOA platform. I personally do not view OSGi as a viable technology but on the other hand it is possible that the winds may shift and that we may revisit this decision some day. Note that since we have a flexible low-level core in WildFly, the choice of specifications to support do not carry down into any kind of basic architectural lock-in so we're never really "too far" from supporting any given container specification or component model, so to me this isn't a terribly drastic choice, just a pragmatic one based on the current known factors David Lloyd at https://community.jboss.org/thread/229889?_sscc=t MIAGE M1 St-Marcel - @VELOSSITY
    29. 29. OSGiTM : la concurrence  Jigsaw + Java natif, modularisation du JRE intégrée à Java 8? – Pas encore sorti et éprouvé  Android (http://www.adon-line.de/kunden/prosystBlog/?p=18) + Simplicité, modèle d’application - Communication inter-process, Pas de versionnement  .Net (http://www.aqute.biz/presentations/WhyOSGI.ppt) + Managed Extensibility Framework (MEF) - Pas de standard / Single platform MIAGE M1 St-Marcel - @VELOSSITY
    30. 30. Bibliographie  http://france.osgiusers.org/Main/HomePage  Peter Kriens – http://www.aqute.biz/Main/HomePage  Didier Donsez - http://membresliglab.imag.fr/donsez/cours/exemplesosgi/ Cette présentation est à retrouver à l’adresse http://fr.slideshare.net/saintmar/m1-presentation-os-gi MIAGE M1 St-Marcel - @VELOSSITY
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×