#2 Architecture OSGi

1 716 vues

Publié le

Attribution: Guillaume Sauthier

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 716
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • registry jmx et depmonitor
  • #2 Architecture OSGi

    1. 1. JOnAS : un serveur d'application OSGi TM JOnAS Day 5.1
    2. 2. Agenda <ul><li>OSGi, mais qu'est ce que c'est ?
    3. 3. JOnAS </li><ul><li>Une plateforme modulaire et extensible
    4. 4. Un serveur d'application Java EE
    5. 5. Une plateforme d'entreprise OSGi
    6. 6. Un socle pour le SOA
    7. 7. Une plateforme à la demande
    8. 8. Un support d'applications hybrides </li></ul><li>Profils </li><ul><li>Java EE 6
    9. 9. JOnAS </li></ul></ul>
    10. 10. OSGi TM <ul><li>OSGi alliance (IBM, Oracle, Samsung, Nokia, …)
    11. 11. Créé à l'origine pour les besoins de la domotique </li><ul><li>Mise à jour de services à chaud
    12. 12. Embarqué </li></ul><li>Socle de l'IDE Eclipse </li><ul><li>Ce qui a fait connaître la technologie (plugins) </li></ul><li>Aujourd'hui très répandu dans les AS & ESB car il facilite l'assemblage de briques logicielles </li><ul><li>Modules </li></ul></ul>Système de modules dynamiques pour Java
    13. 13. OSGi TM : Bundles & Services <ul><li>Les Bundles sont les unités de déploiement OSGi (modules) </li><ul><li>Packaging: jar
    14. 14. Méta-données: MANIFEST </li><ul><li>Identifiant
    15. 15. Import/Export : liaisons avec d'autres bundles </li></ul><li>Contiennent des classes et des ressources
    16. 16. Suivent un cycle de vie
    17. 17. Offrent des services </li></ul><li>Un service OSGi est une instance de classe Java </li><ul><li>Mise à disposition dans un registre
    18. 18. Associé à une interface fonctionnelle ...
    19. 19. … et à des propriétés pour faire du filtrage </li></ul></ul>Concepts de base
    20. 20. OSGi TM : Dynamisme <ul><li>Les bundles sont des unités désinstallables </li><ul><li>Nature dynamique </li></ul><li>Les services offerts par ces mêmes bundles sont donc eux aussi dynamiques : </li><ul><li>Départ et arrivée durant l'éxécution de l'application </li></ul><li>Avantages </li><ul><li>Mise à jour incrémentales
    21. 21. Services potentiellement interchangeables </li></ul><li>Contraintes </li><ul><li>Force les bonnes pratiques </li><ul><li>Utilisation d'APIs entre services </li></ul><li>L'application doit “gérer” le dynamisme </li></ul></ul>Services dynamiques
    22. 22. OSGi TM : Dynamisme <ul><li>OSGi offre des API très bas niveau pour gérer le dynamisme </li><ul><li>BundleListener, ServiceListener, ...
    23. 23. Fonctionnel mais peu pratique à utiliser </li></ul><li>Des modèles de services à composants ont vu le jour pour pallier à ce probleme </li><ul><li>ServiceBinder, Declarative Service, Blueprint, iPOJO, …
    24. 24. Approche de programmation déclarative </li><ul><li>Le conteneur s'occupe de gérer le dynamisme déclaré dans la description du composant
    25. 25. Ecriture simplifiée
    26. 26. Risque d'erreurs réduit </li></ul></ul></ul>Gestion du dynamisme
    27. 27. Agenda <ul><li>OSGi, mais qu'est ce que c'est ?
    28. 28. JOnAS </li><ul><li>Une plateforme modulaire et extensible
    29. 29. Un serveur d'application Java EE
    30. 30. Une plateforme d'entreprise OSGi
    31. 31. Un socle pour le SOA
    32. 32. Une plateforme à la demande
    33. 33. Un support d'applications hybrides </li></ul><li>Profils </li><ul><li>Java EE 6
    34. 34. JOnAS </li></ul></ul>
    35. 35. JOnAS : Une plate-forme modulaire et extensible
    36. 36. JOnAS : Une plate-forme modulaire et extensible <ul><li>Modularité : </li><ul><li>Chaque partie du serveur JOnAS est proprement découpée </li><ul><li>Inter-dépendances réduites et contrôlée par OSGi </li></ul><li>Résultat de recherches avancées dans le domaine des composants et des services </li><ul><li>Apache Felix iPOJO ( http://www.ipojo.org ) </li></ul></ul><li>Dynamisme : </li><ul><li>Les applications OSGi peuvent supporter les liaisons dynamiques entre services </li></ul><li>Extensibilité </li><ul><li>Ajout et retrait dynamique de modules </li></ul><li>Flexibilité </li><ul><li>Services à la demande / Serveur &quot;à la carte&quot;
    37. 37. Serveur &quot;léger&quot; (10M) : µJOnAS </li></ul></ul>
    38. 38. JOnAS : Un serveur d'application Java EE <ul><li>Certifié Java EE 5
    39. 39. Chaque brique technique étant disponible sous forme d'un (ou plusieurs) bundles </li><ul><li>Conteneur Web : Tomcat / Jetty
    40. 40. Persistance EJB3/JPA : EasyBeans </li><ul><li>EclipseLink et Hibernate </li></ul><li>Transactions : JOTM
    41. 41. Clustering : CMI
    42. 42. Web Services : CXF / Axis2
    43. 43. Messages asynchrones : JORAM </li></ul></ul>
    44. 44. JOnAS : Une plateforme d'entreprise OSGi TM <ul><li>Repose sur Apache Felix et iPOJO
    45. 45. Supporte le déploiement d'applications pure OSGi
    46. 46. S'appuie sur l'AS pour fournir des fonctions typé entreprise aux applications OSGi </li><ul><li>Transaction, persistence, web, ... </li></ul><li>Fourniture de passerelles entre les deux paradigmes
    47. 47. Vers une nouvelle génération d'AS </li><ul><ul><li>serveur “à la carte” optimisant l'empreinte sur le système
    48. 48. serveur “à la demande” optimisant la consommation de ressources
    49. 49. En ligne avec les besoins du Cloud Computing
    50. 50. Qui satisfait les besoins de l'ambiant & ubiquitous computing </li></ul></ul></ul>
    51. 51. JOnAS : Un socle priviligié pour le SOA <ul><li>Plate-forme d'intégration </li><ul><li>Un ensemble de services techniques horizontaux </li><ul><li>Intégration aisée de composants technique annexes pour construire des applications SOA </li><ul><li>Ex : Camel, Drools </li></ul></ul><li>Les applications sont intégrées et déployées comme des services verticaux </li><ul><li>Consommateurs des services techniques </li></ul></ul></ul>for (IRulePackage rulePackage : rulePackages) { // Write it to a file File file = new File(rulePackage.getSystemName() + date + &quot;.xml&quot;); FileOutputStream fileOutStream = new FileOutputStream(file); fileOutStream.write( ruleEngineManager.exportRulePackageToXML( rebuildPackage(rulePackage) ).getBytes() ); fileOutStream.close(); } OSGi Platform EasyBeans Tomcat CXF CAMEL Registry JMX Connecteur 1 Connecteur 2 Java EE App Service 1 Service 2 JORAM
    52. 52. JOnAS : Un serveur d'application à la demande <ul><li>Composition du serveur guidée par l'application </li><ul><li>L'application “déclenche” l'installation et le démarrage des services
    53. 53. Entrée du MANIFEST :
    54. 54. Evite d'avoir à gérer la liste des services dans jonas.properties </li></ul><li>Configuration automatique du serveur </li><ul><li>Description des dépendances inter-services (même principe) </li></ul><li>Chargement différé du conteneur Web </li><ul><li>Au premier accès à une application web
    55. 55. Les applications web sont aussi chargées au premier accès </li></ul><li>Démarrage du serveur en quelques secondes </li></ul>
    56. 56. JOnAS : Pour les applications hybrides <ul><li>Possibilité de déployer des application hybrides (Java EE et OSGi)
    57. 57. Les applications Java EE peuvent accéder au monde OSGi™
    58. 58. Les applications OSGi™ peuvent bénéficier des fonctions Java EE </li><ul><li>Des Session Beans peuvent être exposés comme services OSGi™ </li><ul><li>Les Stateless Bean offrent un point d'entrée au monde Java EE™ </li></ul><li>Avantages : </li><ul><li>Accès à la persistance, aux transactions, aux objets Remote …
    59. 59. Modèle de programmation connu </li></ul></ul></ul>Java EE vers OSGi TM et inversement
    60. 60. Agenda <ul><li>OSGi, mais qu'est ce que c'est ?
    61. 61. JOnAS </li><ul><li>Une plateforme modulaire et extensible
    62. 62. Un serveur d'application Java EE
    63. 63. Une plateforme d'entreprise OSGi
    64. 64. Un socle pour le SOA
    65. 65. Une plateforme à la demande
    66. 66. Un support d'applications hybrides </li></ul><li>Profils </li><ul><li>Java EE 6
    67. 67. JOnAS </li></ul></ul>
    68. 68. JOnAS : Profils Java EE 6 <ul><li>Java EE 6 </li><ul><li>Sonne la fin de l'approche du serveur d'application monolithique
    69. 69. “On ne prend que ce dont on a besoin” </li></ul><li>&quot;Full Profile&quot; </li><ul><li>L'ensemble de toutes les spécification Java EE 6 (EJB 3.1, Servlet 3.0, JAX-WS, ...) </li></ul><li>&quot;Web Profile&quot; </li><ul><li>Un sous-ensemble des spécifications (EJB 3.1 lite, Servlet 3.0, ...)
    70. 70. Cible les fonctions essentielles pour les applications web (présentation, métier local, persistance simple, transaction et web services) </li></ul></ul>
    71. 71. JOnAS : Profils et JOnAS 5 <ul><li>Dans la perspective de Java EE 6, JOnAS 5 offre déjà la notion de profils
    72. 72. Qu'est-ce qu'un profil JOnAS ? </li><ul><li>Un assemblage de bundles et ressources constituant un serveur d'application exécutable
    73. 73. Cet ensemble de ressources définit le niveau de fonctionnalité offert
    74. 74. Un ensemble de services techniques JOnAS (ejb, tx, ...) </li></ul><li>Profils disponibles </li><ul><li>Micro JOnAS
    75. 75. Full JOnAS (certifié Java EE 5)
    76. 76. Profil Web (à venir) </li></ul></ul>
    77. 77. JOnAS : Profils et JOnAS 5 <ul><li>micro JOnAS </li><ul><li>JOnAS ultra light (< 9 Mo, OK pour set top box, PDA, …)
    78. 78. Démarrage rapide (~3 secondes)
    79. 79. Administrable (JMX, RMI Connector)
    80. 80. Inclut une fabrique de bundles automatique </li><ul><li>Convertit un fichier jar file en un bundle (déposer le jar dans lib/ext/) </li></ul><li>Système de déploiement extensible (plans de déploiement) </li></ul><li>Exemples de profils web potentiels </li><ul><li>Micro + Tomcat + CXF + EasyBeans + EclipseLink
    81. 81. Micro + Jetty + Axis2 + EasyBeans + Hibernate </li></ul></ul>

    ×