SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
NovaForge ™, une forge logicielle OSGi
Stéphane Benoist
Guillaume Lamirand
Plan

    -Qu'est ce que NovaForge ™ ?
      -   Le produit
      -   Fonctionnalités
      -   Démonstration


    -Architecture technique
      -   Retour d'expérience sur la version précédente
      -   Vue globale de la nouvelle version


    -Retour d'expérience
    -Pour le futur ...
2         ©Bull, 2011         Novaforge, une forge logicielle OSGi
Qu'est ce que NovaForge ™ ?
    Le produit
    - Forge de développement collaborative et d'entreprise
      -   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 d'outils open-source
      -   Gestion des faits techniques – Mantis
      -   Gestion électronique de documents – Alfresco
      -   Gestion des sources – SVN
      -   ...

3          ©Bull, 2011         Novaforge, une forge logicielle OSGi
Qu'est 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
          •    Migration
4             ©Bull, 2011           Novaforge, une forge logicielle OSGi
Qu'est ce que NovaForge ™ ?
    Données métiers




5      ©Bull, 2011         Novaforge, une forge logicielle OSGi
Qu'est 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 forges

6       ©Bull, 2011        Novaforge, une forge logicielle OSGi
Démonstration
    Démonstration fonctionnelle


    -Création d'un utilisateur
    -Création d'un projet
    -Validation du projet par l'administrateur
    -Création d'un rôle
    -Association des deux autres utilisateurs aux projets
    -Ajout d'une application



7       ©Bull, 2011      Novaforge, une forge logicielle OSGi
Plan

    -Qu'est ce que NovaForge ™ ?
      -   Le projet et l'équipe
      -   Fonctionnalités
      -   Démonstration


    -Architecture technique
      -   Retour d'expérience sur la version précédente
      -   Vue globale de la nouvelle version


    -Retour d'expérience
    -Pour le futur ...
8          ©Bull, 2011            Novaforge, une forge logicielle OSGi
Retour d'expé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 d'un outil
    -Complexité de construire une forge à la carte
      -   À l'installation
      -   À l'utilisation
    - Déployer à chaud des versions différentes d'un même
      outil
    -Besoin de modularité et de dynamisme
      -   Cloisonnement en terme de responsabilités
      -   Mise en place de services dégradés


9             ©Bull, 2011            Novaforge, une forge logicielle OSGi
Lexique


     -Connecteur
      -   interface entre la forge et un outil


     -« Plugin »
      -   Définie l'ensemble 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
Vue globale




11   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Vue globale




12   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Vue globale




13   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Vue globale




14   ©Bull, 2011   Novaforge, une forge logicielle OSGi
Focus sur la partie « cœur »
     Composition




15      ©Bull, 2011         Novaforge, une forge logicielle OSGi
Focus sur la partie « coeur »
     Structure
     - Proxy
        -   Contextuel
        -   Gère les permissions d'accès
            •    Développement d'un 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
Focus sur la partie « coeur »
     Structure
     - Manager
       -   Contrôle de surface
       -   Contient les règles métiers
           •    Création d'un utilisateur
           •    Ajout de l’utilisateur au projet central
           •    Envoi d'un e-mail
      @OSGiResource
      private ProjectNodeSessionFacadeRemote projectNodeSessionFacadeRemote;




     - Session façade
       -   Composition de DAO
     - Data Access Object
       -   Actions de persistance

17             ©Bull, 2011                      Novaforge, une forge logicielle OSGi
Eléments externes

     - Apache Shiro
      -   Gestion des éléments de sécurité
          •   Authentification
          •   Permissions
      -   Intégré à OSGi au niveau package
          •   Développement d'un service spécifique


     - Hibernate
      -   Gestion de la persistence
      -   Implémentation de JPA 2.0
      -   Intégré à JOnAS




18            ©Bull, 2011          Novaforge, une forge logicielle OSGi
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
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 d'un cycle de vie spécifique
           •   Utilisation d'un annuaire interne
     - Isolé grâce au Composite iPOJO
     - Générique
       -   Services génériques pour la propagation
       -   Facilité d'intégration d'outils



20             ©Bull, 2011            Novaforge, une forge logicielle OSGi
Focus sur la partie «plugins»
     Cycle de vie




21       ©Bull, 2011         Novaforge, une forge logicielle OSGi
Focus sur la partie «plugins»
     Structure




22       ©Bull, 2011         Novaforge, une forge logicielle OSGi
Plan

     -Qu'est ce que NovaForge ?
       -   Le projet et l'équipe
       -   Fonctionnalités
       -   Démonstration


     -Architecture technique
       -   Retour d'expérience sur la version précédente
       -   Vue globale de la nouvelle version


     -Retour d'expérience
     -Pour le futur ...
23          ©Bull, 2011            Novaforge, une forge logicielle OSGi
Points positifs
     Facilité de développement
     - OSGi – iPOJO
       -   Gestion de versions
       -   Masque la complexité OSGi
       -   Facilite l'utilisation des patterns OSGi (Extender, WhiteBoard)
       -   Propose d'autres patterns (Composite)
       -   Concentration sur le code métier


     - J2EE - Easybeans
       -   Mise en place d'un pont J2EE ↔ OSGi


     - ESB – Camel Jonas
       -   Routage dynamique
       -   Utilisation de services OSGi
24          ©Bull, 2011          Novaforge, une forge logicielle OSGi
Points positifs
     Facilité de contribution


     - Intégration d'un nouveau membre à l'équipe
       -   Utilisation d'un panel de services disponibles
       -   Intégration d'IHM sans compétence OSGi



     - Contributions externes
       -   Équipe projet décentralisée
           •    Échange de services




25             ©Bull, 2011            Novaforge, une forge logicielle OSGi
Points positifs
     Facilité de maintenance et de configuration

     - OSGi
       -   Console Felix
       -   Introspection des bundles


     - iPOJO
       -   Handler Architecture
       -   Introspection de l'état d'un POJO


     - File install
       -   Configuration dynamique


26          ©Bull, 2011         Novaforge, une forge logicielle OSGi
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
Points négatifs


     Utilisation J2EE ↔ OSGi
     - Disponibilité en tant que bundle
     Mise en place d'environnements distribués
     - Utilisation de DOSGi avec Zookeeper
       -   Problème de synchronisation entre les services distants et
           l'annuaire local




28          ©Bull, 2011         Novaforge, une forge logicielle OSGi
Plan

     -Qu'est ce que NovaForge ?
       -   Le projet et l'équipe
       -   Fonctionnalités
       -   Démonstration


     -Architecture technique
       -   Retour d'expérience sur la version précédente
       -   Vue globale de la nouvelle version


     - Retour d'expérience
     -Pour le futur...
29          ©Bull, 2011            Novaforge, une forge logicielle OSGi
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 d'outils entre forge
     - Intégration d'un module LDAP
     - Gestion de la migration et mise à jour
     - Passage à l'échelle
     - Solution de supervision > JASMINe
30          ©Bull, 2011        Novaforge, une forge logicielle OSGi
Développement d'une forge logicielle avec OSGi

Más contenido relacionado

La actualidad más candente

Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Ippon
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryDamien Goldenberg
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 

La actualidad más candente (6)

#2 Architecture OSGi
#2 Architecture OSGi#2 Architecture OSGi
#2 Architecture OSGi
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
ROM Android Customs
ROM Android Customs ROM Android Customs
ROM Android Customs
 

Destacado

Weekly Awards Presentation - Part 4 of 4
Weekly Awards Presentation - Part 4 of 4Weekly Awards Presentation - Part 4 of 4
Weekly Awards Presentation - Part 4 of 4S.C. Press Association
 
Citizen Act - Next steps
Citizen Act - Next stepsCitizen Act - Next steps
Citizen Act - Next stepsCITIZEN ACT
 
Post-Achat: Le Big Bang du CRM
Post-Achat: Le Big Bang du CRMPost-Achat: Le Big Bang du CRM
Post-Achat: Le Big Bang du CRMCome&Stay
 
Project HealthDesign -Technical Architecture Diagrams
Project HealthDesign -Technical Architecture DiagramsProject HealthDesign -Technical Architecture Diagrams
Project HealthDesign -Technical Architecture DiagramsProject HealthDesign
 
La répartition de la population
La répartition de la populationLa répartition de la population
La répartition de la populationjlealleon
 
La classification des vivants
La classification des vivantsLa classification des vivants
La classification des vivantsjlealleon
 
FelixDroid: Application de gestion du framework Felix pour Android
FelixDroid: Application de gestion du framework Felix pour AndroidFelixDroid: Application de gestion du framework Felix pour Android
FelixDroid: Application de gestion du framework Felix pour AndroidOSGi User Group France
 
Isandla tech - psem2m sdk - tools v1.0 - ougf
Isandla tech - psem2m sdk - tools v1.0 - ougfIsandla tech - psem2m sdk - tools v1.0 - ougf
Isandla tech - psem2m sdk - tools v1.0 - ougfOSGi User Group France
 
امتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التاني
امتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التانيامتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التاني
امتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التانيSalah Abdelsalam
 

Destacado (12)

Cash business2x2
Cash business2x2Cash business2x2
Cash business2x2
 
Weekly Awards Presentation - Part 4 of 4
Weekly Awards Presentation - Part 4 of 4Weekly Awards Presentation - Part 4 of 4
Weekly Awards Presentation - Part 4 of 4
 
Citizen Act - Next steps
Citizen Act - Next stepsCitizen Act - Next steps
Citizen Act - Next steps
 
Post-Achat: Le Big Bang du CRM
Post-Achat: Le Big Bang du CRMPost-Achat: Le Big Bang du CRM
Post-Achat: Le Big Bang du CRM
 
Project HealthDesign -Technical Architecture Diagrams
Project HealthDesign -Technical Architecture DiagramsProject HealthDesign -Technical Architecture Diagrams
Project HealthDesign -Technical Architecture Diagrams
 
La répartition de la population
La répartition de la populationLa répartition de la population
La répartition de la population
 
La classification des vivants
La classification des vivantsLa classification des vivants
La classification des vivants
 
Mall favori
Mall favoriMall favori
Mall favori
 
FelixDroid: Application de gestion du framework Felix pour Android
FelixDroid: Application de gestion du framework Felix pour AndroidFelixDroid: Application de gestion du framework Felix pour Android
FelixDroid: Application de gestion du framework Felix pour Android
 
Isandla tech - psem2m sdk - tools v1.0 - ougf
Isandla tech - psem2m sdk - tools v1.0 - ougfIsandla tech - psem2m sdk - tools v1.0 - ougf
Isandla tech - psem2m sdk - tools v1.0 - ougf
 
امتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التاني
امتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التانيامتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التاني
امتحان علي الوحدة السابعه للصف الثالث الابتدائى الترم التاني
 
IE_Presentation_106
IE_Presentation_106IE_Presentation_106
IE_Presentation_106
 

Similar a Développement d'une forge logicielle avec OSGi

PréSentation Nuxeo Openadira
PréSentation Nuxeo   OpenadiraPréSentation Nuxeo   Openadira
PréSentation Nuxeo OpenadiraThierry CHABROL
 
1er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 20171er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 2017igouverte
 
Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...
Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...
Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...Ojdoc Quen
 
[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FRNuxeo
 
OpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudOpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudMichel-Marie Maudet
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?rfelden
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez EngieLeClubQualiteLogicielle
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxThomasParaiso1
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du CloudLINAGORA
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...
Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...
Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...Nuxeo
 
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans ruptureInnover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans ruptureGuillaume Laforge
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Yves-Emmanuel Jutard
 
[Webinaire] Nuxeo Platform 5.8 : les nouveautés
[Webinaire] Nuxeo Platform 5.8 : les nouveautés[Webinaire] Nuxeo Platform 5.8 : les nouveautés
[Webinaire] Nuxeo Platform 5.8 : les nouveautésNuxeo
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentationOpenCascade
 

Similar a Développement d'une forge logicielle avec OSGi (20)

PréSentation Nuxeo Openadira
PréSentation Nuxeo   OpenadiraPréSentation Nuxeo   Openadira
PréSentation Nuxeo Openadira
 
1er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 20171er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 2017
 
Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...
Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...
Conception Et Mise En œUvre D’Une Plate Forme Edi Pour La Communaté Portuaire...
 
Le nouveau portail
Le nouveau portailLe nouveau portail
Le nouveau portail
 
Usine logicielle ios
Usine logicielle iosUsine logicielle ios
Usine logicielle ios
 
[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR
 
OpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudOpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du Cloud
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptx
 
Google appengine&guice
Google appengine&guiceGoogle appengine&guice
Google appengine&guice
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du Cloud
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...
Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...
Des cas d'intégration client par Sword: XL Airways, Ministere de la Culture...
 
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans ruptureInnover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014
 
[Webinaire] Nuxeo Platform 5.8 : les nouveautés
[Webinaire] Nuxeo Platform 5.8 : les nouveautés[Webinaire] Nuxeo Platform 5.8 : les nouveautés
[Webinaire] Nuxeo Platform 5.8 : les nouveautés
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation
 

Développement d'une forge logicielle avec OSGi

  • 1. NovaForge ™, une forge logicielle OSGi Stéphane Benoist Guillaume Lamirand
  • 2. Plan -Qu'est ce que NovaForge ™ ? - Le produit - Fonctionnalités - Démonstration -Architecture technique - Retour d'expérience sur la version précédente - Vue globale de la nouvelle version -Retour d'expérience -Pour le futur ... 2 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 3. Qu'est ce que NovaForge ™ ? Le produit - Forge de développement collaborative et d'entreprise - 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 d'outils 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. Qu'est 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 • Migration 4 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 5. Qu'est ce que NovaForge ™ ? Données métiers 5 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 6. Qu'est 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 forges 6 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 7. Démonstration Démonstration fonctionnelle -Création d'un utilisateur -Création d'un projet -Validation du projet par l'administrateur -Création d'un rôle -Association des deux autres utilisateurs aux projets -Ajout d'une application 7 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 8. Plan -Qu'est ce que NovaForge ™ ? - Le projet et l'équipe - Fonctionnalités - Démonstration -Architecture technique - Retour d'expérience sur la version précédente - Vue globale de la nouvelle version -Retour d'expérience -Pour le futur ... 8 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 9. Retour d'expé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 d'un outil -Complexité de construire une forge à la carte - À l'installation - À l'utilisation - Déployer à chaud des versions différentes d'un même outil -Besoin de modularité et de dynamisme - Cloisonnement en terme de responsabilités - Mise en place de services dégradés 9 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 10. Lexique -Connecteur - interface entre la forge et un outil -« Plugin » - Définie l'ensemble 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. Vue globale 11 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 12. Vue globale 12 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 13. Vue globale 13 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 14. Vue globale 14 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 15. Focus sur la partie « cœur » Composition 15 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 16. Focus sur la partie « coeur » Structure - Proxy - Contextuel - Gère les permissions d'accès • Développement d'un 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. Focus sur la partie « coeur » Structure - Manager - Contrôle de surface - Contient les règles métiers • Création d'un utilisateur • Ajout de l’utilisateur au projet central • Envoi d'un e-mail @OSGiResource private ProjectNodeSessionFacadeRemote projectNodeSessionFacadeRemote; - Session façade - Composition de DAO - Data Access Object - Actions de persistance 17 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 18. Eléments externes - Apache Shiro - Gestion des éléments de sécurité • Authentification • Permissions - Intégré à OSGi au niveau package • Développement d'un service spécifique - Hibernate - Gestion de la persistence - Implémentation de JPA 2.0 - Intégré à JOnAS 18 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 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. 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 d'un cycle de vie spécifique • Utilisation d'un annuaire interne - Isolé grâce au Composite iPOJO - Générique - Services génériques pour la propagation - Facilité d'intégration d'outils 20 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 21. Focus sur la partie «plugins» Cycle de vie 21 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 22. Focus sur la partie «plugins» Structure 22 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 23. Plan -Qu'est ce que NovaForge ? - Le projet et l'équipe - Fonctionnalités - Démonstration -Architecture technique - Retour d'expérience sur la version précédente - Vue globale de la nouvelle version -Retour d'expérience -Pour le futur ... 23 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 24. Points positifs Facilité de développement - OSGi – iPOJO - Gestion de versions - Masque la complexité OSGi - Facilite l'utilisation des patterns OSGi (Extender, WhiteBoard) - Propose d'autres patterns (Composite) - Concentration sur le code métier - J2EE - Easybeans - Mise en place d'un pont J2EE ↔ OSGi - ESB – Camel Jonas - Routage dynamique - Utilisation de services OSGi 24 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 25. Points positifs Facilité de contribution - Intégration d'un nouveau membre à l'équipe - Utilisation d'un panel de services disponibles - Intégration d'IHM sans compétence OSGi - Contributions externes - Équipe projet décentralisée • Échange de services 25 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 26. Points positifs Facilité de maintenance et de configuration - OSGi - Console Felix - Introspection des bundles - iPOJO - Handler Architecture - Introspection de l'état d'un POJO - File install - Configuration dynamique 26 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 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. Points négatifs Utilisation J2EE ↔ OSGi - Disponibilité en tant que bundle Mise en place d'environnements distribués - Utilisation de DOSGi avec Zookeeper - Problème de synchronisation entre les services distants et l'annuaire local 28 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 29. Plan -Qu'est ce que NovaForge ? - Le projet et l'équipe - Fonctionnalités - Démonstration -Architecture technique - Retour d'expérience sur la version précédente - Vue globale de la nouvelle version - Retour d'expérience -Pour le futur... 29 ©Bull, 2011 Novaforge, une forge logicielle OSGi
  • 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 d'outils entre forge - Intégration d'un module LDAP - Gestion de la migration et mise à jour - Passage à l'échelle - Solution de supervision > JASMINe 30 ©Bull, 2011 Novaforge, une forge logicielle OSGi