JOnAS : un serveur d'application OSGi TM JOnAS Day 5.1
Agenda <ul><li>OSGi, mais qu'est ce que c'est ?
JOnAS </li><ul><li>Une plateforme modulaire et extensible
Un serveur d'application Java EE
Une plateforme d'entreprise OSGi
Un socle pour le SOA
Une plateforme à la demande
Un support d'applications hybrides </li></ul><li>Profils </li><ul><li>Java EE 6
JOnAS </li></ul></ul>
OSGi TM <ul><li>OSGi alliance (IBM, Oracle, Samsung, Nokia, …)
Créé à l'origine pour les besoins de la domotique </li><ul><li>Mise à jour de services à chaud
Embarqué </li></ul><li>Socle de l'IDE Eclipse </li><ul><li>Ce qui a fait connaître la technologie (plugins) </li></ul><li>...
OSGi TM  : Bundles & Services <ul><li>Les Bundles sont les unités de déploiement OSGi (modules) </li><ul><li>Packaging: jar
Méta-données: MANIFEST </li><ul><li>Identifiant
Import/Export : liaisons avec d'autres bundles </li></ul><li>Contiennent des classes et des ressources
Suivent un cycle de vie
Offrent des services </li></ul><li>Un service OSGi est une instance de classe Java </li><ul><li>Mise à disposition dans un...
Associé à une interface fonctionnelle ...
… et à des propriétés pour faire du filtrage </li></ul></ul>Concepts de base
Upcoming SlideShare
Loading in …5
×

#2 Architecture OSGi

1,805 views

Published on

Attribution: Guillaume Sauthier

Published in: Technology
  • Be the first to comment

  • Be the first to like this

#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>

×