NovaForge ™, une forge logicielle OSGiStéphane BenoistGuillaume Lamirand
Plan    -Quest ce que NovaForge ™ ?      -   Le produit      -   Fonctionnalités      -   Démonstration    -Architecture t...
Quest ce que NovaForge ™ ?    Le produit    - Forge de développement collaborative et dentreprise      -   Mutualisation d...
Quest ce que NovaForge ™ ?    Lévolution du produit    - Version 1 extension de GForge      -   Forge interne à Bull Franc...
Quest ce que NovaForge ™ ?    Données métiers5      ©Bull, 2011         Novaforge, une forge logicielle OSGi
Quest ce que NovaForge ?    Fonctionnalités    - Gestion des données métiers    - Choix des outils pour un projet    - Aut...
Démonstration    Démonstration fonctionnelle    -Création dun utilisateur    -Création dun projet    -Validation du projet...
Plan    -Quest ce que NovaForge ™ ?      -   Le projet et léquipe      -   Fonctionnalités      -   Démonstration    -Arch...
Retour dexpériences sur la version précédente    -Interruption de service suite à maintenance      -   Maintenance à chaud...
Lexique     -Connecteur      -   interface entre la forge et un outil     -« Plugin »      -   Définie lensemble connecteu...
Vue globale11   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Vue globale12   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Vue globale13   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Vue globale14   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Focus sur la partie « cœur »     Composition15      ©Bull, 2011         Novaforge, une forge logicielle OSGi
Focus sur la partie « coeur »     Structure     - Proxy        -   Contextuel        -   Gère les permissions daccès      ...
Focus sur la partie « coeur »     Structure     - Manager       -   Contrôle de surface       -   Contient les règles méti...
Eléments externes     - Apache Shiro      -   Gestion des éléments de sécurité          •   Authentification          •   ...
Eléments externes     - OAuth       -   Gestion du Single Sign-On       -   Intégré dans le framework Shindig       -   No...
Focus sur la partie «plugins»     Description     - Connecteur + outil     - Implémente une interface PluginService       ...
Focus sur la partie «plugins»     Cycle de vie21       ©Bull, 2011         Novaforge, une forge logicielle OSGi
Focus sur la partie «plugins»     Structure22       ©Bull, 2011         Novaforge, une forge logicielle OSGi
Plan     -Quest ce que NovaForge ?       -   Le projet et léquipe       -   Fonctionnalités       -   Démonstration     -A...
Points positifs     Facilité de développement     - OSGi – iPOJO       -   Gestion de versions       -   Masque la complex...
Points positifs     Facilité de contribution     - Intégration dun nouveau membre à léquipe       -   Utilisation dun pane...
Points positifs     Facilité de maintenance et de configuration     - OSGi       -   Console Felix       -   Introspection...
Points négatifs     Composition de services     - Cycle de dépendances       -   A>B>C>D>A     - « Granularité de la modul...
Points négatifs     Utilisation J2EE ↔ OSGi     - Disponibilité en tant que bundle     Mise en place denvironnements distr...
Plan     -Quest ce que NovaForge ?       -   Le projet et léquipe       -   Fonctionnalités       -   Démonstration     -A...
Pour le futur ...     Améliorations     - Distribution et répartition     - Dynamisme avancé des IHMs et uniformisation   ...
Développement d'une forge logicielle avec OSGi
Prochain SlideShare
Chargement dans…5
×

Développement d'une forge logicielle avec OSGi

1 085 vues

Publié le

NovaForge(TM) est une forge open-source permettant d'intégrer des outils visant à faciliter le développement de projets et de logiciels.
Chaque outil est défini comme un fournisseur de services qui vient enrichir la liste des services disponibles de la forge. Pour appréhender les contraintes de modularité et de dynamisme, une plate-forme OSGI a été envisagée dès les premiers pas de la V3. Une autre des volontés de l'équipe a été de se baser principalement sur des standards J2EE (EJB3, JPA2, JMS) et des outils open-source bénéficiant d'une communauté importante (CAMEL, SHIRO, Shindig, OpenAuth...) pour bénéficier de l'experience acquise et faciliter les contributions externes. Nous allons vous présenter comment l'équipe a pu résoudre l'équation OSGI-J2EE en utilisant le travail effectué sur JOnAS et EasyBeans et l'implémentation IPojo.

Guillaume Lamirand et Stéphane Benoist, Bull SAS

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

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

Aucune remarque pour cette diapositive

Développement d'une forge logicielle avec OSGi

  1. 1. NovaForge ™, une forge logicielle OSGiStéphane BenoistGuillaume Lamirand
  2. 2. Plan -Quest ce que NovaForge ™ ? - Le produit - Fonctionnalités - Démonstration -Architecture technique - Retour dexpérience sur la version précédente - Vue globale de la nouvelle version -Retour dexpérience -Pour le futur ...2 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  3. 3. Quest ce que NovaForge ™ ? Le produit - Forge de développement collaborative et dentreprise - Mutualisation des moyens de développements - Amélioration de la productivité des équipes - Optimisation de la communication inter-équipe - Stratégie open-source - Intégration doutils open-source - Gestion des faits techniques – Mantis - Gestion électronique de documents – Alfresco - Gestion des sources – SVN - ...3 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  4. 4. Quest ce que NovaForge ™ ? Lévolution du produit - Version 1 extension de GForge - Forge interne à Bull France - Version 2 basée sur le portail ExoPlatform - Forge interne à Bull France: 50 projets avec 500 utilisateurs - Bull Brésil et Espagne - CETE, Schneider - Version 3 avec un portail spécifique GWT - Projet safr@n : Ministère de la défense • Équipe répartie sur deux sites : 20 personnes - Forge interne à Bull • Migration4 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  5. 5. Quest ce que NovaForge ™ ? Données métiers5 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  6. 6. Quest ce que NovaForge ? Fonctionnalités - Gestion des données métiers - Choix des outils pour un projet - Authentification unique - Propagation des données vers les outils Fonctionnalités avancées - Interaction entre les outils - Agrégation de données – tableaux de bord - Gestion de projet public ou privé - Hiérarchie de forges6 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  7. 7. Démonstration Démonstration fonctionnelle -Création dun utilisateur -Création dun projet -Validation du projet par ladministrateur -Création dun rôle -Association des deux autres utilisateurs aux projets -Ajout dune application7 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  8. 8. Plan -Quest ce que NovaForge ™ ? - Le projet et léquipe - Fonctionnalités - Démonstration -Architecture technique - Retour dexpérience sur la version précédente - Vue globale de la nouvelle version -Retour dexpérience -Pour le futur ...8 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  9. 9. Retour dexpériences sur la version précédente -Interruption de service suite à maintenance - Maintenance à chaud • Mise à jour des services de la forge • Ajout, suppression et mise à jour dun outil -Complexité de construire une forge à la carte - À linstallation - À lutilisation - Déployer à chaud des versions différentes dun même outil -Besoin de modularité et de dynamisme - Cloisonnement en terme de responsabilités - Mise en place de services dégradés9 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  10. 10. Lexique -Connecteur - interface entre la forge et un outil -« Plugin » - Définie lensemble connecteur et outil - Associé à la forge via un service spécifique - un « plugin » ne peut pas venir étendre un autre « plugin »10 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  11. 11. Vue globale11 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  12. 12. Vue globale12 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  13. 13. Vue globale13 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  14. 14. Vue globale14 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  15. 15. Focus sur la partie « cœur » Composition15 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  16. 16. Focus sur la partie « coeur » Structure - Proxy - Contextuel - Gère les permissions daccès • Développement dun handler iPOJO @Override public Application addApplication( @ResourceAuthorization(actions = { PermissionAction.CREATE }, resource = Application.class) final String pProjectId, final String pApplicationLabel, final UUID pPluginUUID, final Map<String, String> pRolesMapping) throws NodeServiceException { String username = this.authentificationService.getCurrentUser(); return nodeManager.addApplication(pProjectId, pParentNodeUri, pApplicationLabel, pPluginUUID, pRolesMapping, username); }16 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  17. 17. Focus sur la partie « coeur » Structure - Manager - Contrôle de surface - Contient les règles métiers • Création dun utilisateur • Ajout de l’utilisateur au projet central • Envoi dun e-mail @OSGiResource private ProjectNodeSessionFacadeRemote projectNodeSessionFacadeRemote; - Session façade - Composition de DAO - Data Access Object - Actions de persistance17 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  18. 18. Eléments externes - Apache Shiro - Gestion des éléments de sécurité • Authentification • Permissions - Intégré à OSGi au niveau package • Développement dun service spécifique - Hibernate - Gestion de la persistence - Implémentation de JPA 2.0 - Intégré à JOnAS18 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  19. 19. Eléments externes - OAuth - Gestion du Single Sign-On - Intégré dans le framework Shindig - Non OSGi - CXF - DOSGI - Exposition de services OSGi en web services <property name="service.exported.interfaces" type="java.lang.String" value="*" mandatory="true" /> <property name="service.exported.configs" type="java.lang.String" value="org.apache.cxf.ws" mandatory="true" /> <property name="org.apache.cxf.ws.httpservice.context" type="java.lang.String" value="/mantisService" />19 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  20. 20. Focus sur la partie «plugins» Description - Connecteur + outil - Implémente une interface PluginService - Détection de ce service par la forge • Utilisation du WhiteBoard Pattern - Gestion dun cycle de vie spécifique • Utilisation dun annuaire interne - Isolé grâce au Composite iPOJO - Générique - Services génériques pour la propagation - Facilité dintégration doutils20 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  21. 21. Focus sur la partie «plugins» Cycle de vie21 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  22. 22. Focus sur la partie «plugins» Structure22 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  23. 23. Plan -Quest ce que NovaForge ? - Le projet et léquipe - Fonctionnalités - Démonstration -Architecture technique - Retour dexpérience sur la version précédente - Vue globale de la nouvelle version -Retour dexpérience -Pour le futur ...23 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  24. 24. Points positifs Facilité de développement - OSGi – iPOJO - Gestion de versions - Masque la complexité OSGi - Facilite lutilisation des patterns OSGi (Extender, WhiteBoard) - Propose dautres patterns (Composite) - Concentration sur le code métier - J2EE - Easybeans - Mise en place dun pont J2EE ↔ OSGi - ESB – Camel Jonas - Routage dynamique - Utilisation de services OSGi24 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  25. 25. Points positifs Facilité de contribution - Intégration dun nouveau membre à léquipe - Utilisation dun panel de services disponibles - Intégration dIHM sans compétence OSGi - Contributions externes - Équipe projet décentralisée • Échange de services25 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  26. 26. Points positifs Facilité de maintenance et de configuration - OSGi - Console Felix - Introspection des bundles - iPOJO - Handler Architecture - Introspection de létat dun POJO - File install - Configuration dynamique26 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  27. 27. Points négatifs Composition de services - Cycle de dépendances - A>B>C>D>A - « Granularité de la modularité » - Où s’arrêter ? - Manager, Session Façade et DAO Utilisation J2EE ↔ OSGi - Cloisonnement des classloaders avec J2EE - JNDI, JavaMail ClassLoader theGoodOne = getClass().getClassLoader(); ClassLoader theOldOne = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(theGoodOne); Context initalContext = new InitialContext(); Thread.currentThread().setContextClassLoader(theOldOne);27 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  28. 28. Points négatifs Utilisation J2EE ↔ OSGi - Disponibilité en tant que bundle Mise en place denvironnements distribués - Utilisation de DOSGi avec Zookeeper - Problème de synchronisation entre les services distants et lannuaire local28 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  29. 29. Plan -Quest ce que NovaForge ? - Le projet et léquipe - Fonctionnalités - Démonstration -Architecture technique - Retour dexpérience sur la version précédente - Vue globale de la nouvelle version - Retour dexpérience -Pour le futur...29 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  30. 30. Pour le futur ... Améliorations - Distribution et répartition - Dynamisme avancé des IHMs et uniformisation - Gestion de la sécurité - Accès aux services centraux - Cloisonnement > OSGi 4.3 Nouveautés - Mutualisation doutils entre forge - Intégration dun module LDAP - Gestion de la migration et mise à jour - Passage à léchelle - Solution de supervision > JASMINe30 ©Bull, 2011 Novaforge, une forge logicielle OSGi

×