#4 Applications Convergentes JavaEE/OSGi

1 333 vues

Publié le

Attribution: Francois Fornaciari

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

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

Aucune remarque pour cette diapositive

#4 Applications Convergentes JavaEE/OSGi

  1. 1. Applications convergentes Java EE / OSGi JOnAS Day 5.1
  2. 2. Agenda <ul><li>Introduction
  3. 3. Convergence Java EE ™ / OSGi ™
  4. 4. Démo </li></ul>
  5. 5. Nouveaux usages des serveurs d'applications <ul><li>Applications mission-critique
  6. 6. Informatique ambiante </li><ul><li>Mini PC, box, équipement électronique réduit </li></ul><li>Exemple : </li><ul><li>Soin à domicile, téléphonie, domotique
  7. 7. M2M, applications RFID et réseau de capteurs
  8. 8. Applications combinant télécommunications et internet </li><ul><li>Convergence des technologies web et multimédia </li></ul></ul></ul>Introduction
  9. 9. Nouveaux domaines d'application Introduction Probes, sensors G G G G M2M gateways Enterprise Information System Internet Mobile Devices Application Servers Monitoring, self-management tools
  10. 10. Agenda <ul><li>Introduction
  11. 11. Convergence Java EE ™ / OSGi ™
  12. 12. Démos </li></ul>
  13. 13. Bénéfices <ul><li>Contrôle strict des dépendances de package
  14. 14. Gestion des versions
  15. 15. Mécanismes de déploiement offerts par la passerelle : </li><ul><li>Installation depuis une URL
  16. 16. Déploiement depuis un dépôt de bundles OSGi ™ (OBR) </li><ul><li>Déploiement des dépendances transitives </li></ul></ul><li>Homogénéisation de l’administration de la plate-forme : tout est bundle </li></ul>Une application EJB ™ 3 devient un bundle OSGi ™ <ul><li>Le code EJB ™ 3 reste inchangé
  17. 17. Ajout d'un MANIFEST OSGi ™ </li></ul>Couche modulaire d’OSGi ™ et applications EJB ™ 3
  18. 18. Permettre aux applications Java EE ™ d’interagir avec le monde OSGi ™ <ul><li>Accéder de façon transparente aux services OSGi ™ présents sur la plate-forme </li><ul><li>Services OSGi ™ standards
  19. 19. Services métier </li></ul><li>Réagir aux évènements de la plate-forme OSGi ™ (framework, bundle, service)
  20. 20. Enregistrer des services OSGi ™ qui pourront être utilisés par d’autres applications </li></ul>Services OSGi ™ depuis Java EE ™ (1/2)
  21. 21. Mise en œuvre <ul><li>Les applications EJB ™ 3 et les servlets ont accès : </li><ul><li>Au BundleContext : point d’entrée OSGi ™
  22. 22. Aux services OSGi ™ démarrés sur la plate-forme </li></ul><li>Les instances sont injectées par le conteneur </li><ul><li>Attribut de la classe ou méthode (setter)
  23. 23. Les services injectés sont optionnels (peuvent être null) </li></ul><li>Possibilité de définir des contraintes (filtres) sur les services </li></ul>@OSGiResource BundleContext bundleContext = null ; @OSGiResource (filter= &quot;(color=true)&quot; ) PrintService printService = null ; Services OSGi ™ depuis Java EE ™ (2/2)
  24. 24. Services techniques Java EE ™ depuis OSGi ™ (1/2) Objectif <ul><li>Offrir aux applications OSGi ™ un point d’entrée vers le monde Java EE ™ </li><ul><li>Bénéficier des services techniques Java EE ™ mâtures </li><ul><li>Persistance
  25. 25. Transaction </li></ul><li>Accéder aux objets Remote
  26. 26. Accéder au monde Java EE ™ de façon transparente pour les applications OSGi ™ </li></ul><li>Cas d’utilisation </li><ul><li>Remplacer un logger OSGi ™ simple par un logger persistant basé sur un EJB Entity </li></ul></ul>
  27. 27. Services techniques Java EE ™ depuis OSGi ™ (2/2) Mise en œuvre <ul><li>Les Session Beans de type Stateless sont enregistrés en tant que services OSGi ™ au travers de leur interface locale (@Local)
  28. 28. Une application OSGi ™ peut ensuite requérir le service comme n’importe quel autre service de la plate-forme </li></ul>BundleContext bundleContext = … ServiceReference serviceRef = bundleContext .getServiceReference(StatelessLocal. class .getName()); StatelessLocal stateless = bundleContext . getService(serviceRef ); Application EJB EJB 3.0 POJO manifest Bundle OSGi manifest
  29. 29. Le service HttpService d'OSGi ™ Service permettant d'enregistrer des servlets ou des ressources et de les publier via HTTP <ul><li>Accessible depuis les applications OSGi ™ (bundles)
  30. 30. Implémentation basée sur Tomcat
  31. 31. Bénéfices : </li><ul><li>Même implémentation pour le conteneur Web Java EE ™ et les applications OSGi ™
  32. 32. Service HttpService et servlets dans des JOnAS distants </li><ul><li>Mécanisme de distribution offerts par OSGi </li></ul><li>Gestion des mises à jour versionnées du service HttpService </li><ul><li>Possibilité de substituer une version du service par une autre
  33. 33. Possibilité de déployer plusieurs versions du service en parallèle </li></ul></ul><li>Première brique des services OSGi ™ Enterprise </li><ul><li>A venir : transaction, JPA, JNDI, ... </li></ul></ul>
  34. 34. Agenda <ul><li>Introduction
  35. 35. Convergence Java EE ™ / OSGi ™
  36. 36. Démo </li></ul>
  37. 37. Démo - Services OSGi ™ depuis Java EE ™ <ul><li>Enregistrement d’un service OSGi ™ donnant accès à la température (thermomètre USB)
  38. 38. Récupération du service OSGi ™ dans un EJB ™ 3 et affichage de la température dans un page web
  39. 39. Émission d’un mail si une température critique est atteinte </li></ul>EJB 3 WEB … Java EE technical services Applications USB Thermometer M A I L MY APP DRIVER

×