SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
SaaS Libre
Grégoire Rolland – jSpirit – RMLL 2010
Plan
●   Qu'est-ce que le SaaS ?
●   L'architecture Multi-Tenant
●   J2EE pour le SaaS Multi-Tenant
●   JSpirit, un socle technique open-source pour le
    SaaS et le Multi-Tenant
●   Premier retour d'expérience
●   Évolution
Qu'est-ce que le SaaS ?
●   Mode de distribution par internet du logiciel
●   Distribution par abonnement
●   Pas de vente de licence
●   Modes d'utilisation multiples
    ●   Webservices, Interface REST, Navigateur
●   Tout Type d'application
    ●   CRM, HRM, Groupware, ERP, ...
Avantages économiques
●   Pour l'entreprise utilisatrice
    ●   Charges fixes d'utilisation, fonction du nombre
        d'utilisateurs
    ●   Rapidité de déploiement, solution à la demande
●   Pour l'éditeur
    ●   Apport d'un revenu récurent
    ●   Diminution des coûts de maintenance
    ●   Diminution des coûts de déploiement
    ●   Mutualisation des ressources
Contraintes Techniques
●   Haute disponibilité
●   Sécurité/Confidentialité des données
●   Adaptation à la charge
●   Intégration/Migration des données
●   Maintenance et déploiement critiques
Architecture Multi-Tenant
●   Architecture de mutualisation des ressources
    physiques et logiques de l'application
Multi-Tenant
●   Plusieurs clients (Tenants) partagent la même
    application
●   La séparation entre Tenants est prise en charge
    par l'application (design-time)
●   Il n'y a plus de rapport entre nombre de serveurs
    et nombre de clients
Contraintes d'Architecture
●   La charge doit être indépendante du nombre de
    Tenants
    ●   Elle est fonction du nombre d'utilisateurs simultanés
●   Les services fournis doivent être indépendants du
    Tenant
●   Les données doivent être clairement séparées
    entre les différents Tenants : garantie de
    confidentialité
Haute Disponibilité
●   Redondance des Services Logiciels
    ●   Plusieurs serveurs d'application :distribution des traitements
        sur N nœuds
    ●   Plusieurs serveurs Web : load-balancing des requêtes
    ●   Plusieurs serveurs de base de données
●   Redondance Physique
    ●   Plusieurs serveurs physiques
    ●   RAID 1+0
●   Le résultat d'une requête d'un Tenant est indépendante
    du lieu d'exécution de la requête
Adaptation à la charge
●   Ajout transparent de serveur physique
    ●   Virtualisation
●   Ajout transparent de serveur logique
    ●   Serveur web
    ●   Serveur d'application
    ●   Serveur de base de données
●   N services logiques + M services physiques
    délivrent une application à P Tenants
Orienté Service
●   Application = Ensemble de services sans état
    interconnectés s'exécutant dans un contexte
●   Services utilisables entre les différents Tenants
●   Les services peuvent être surchargés pour un
    Tenant particulier
    ●   Implémentation de comportements spécifiques
    ●   La découverte de services est fonction du Tenant
Déploiement / Maintenance
●   Diminution des coûts de déploiement
    ●   une seule application est déployée pour tous les clients
●   Diminution des coûts de maintenance
    ●   Les défauts ne sont corrigés qu'une seule fois
●   Mais
    ●   Le développement initial est plus complexe
    ●   L'application doit être plus robuste
    ●   Le niveau de sécurité doit être élevé
J2EE ?
●   Spécifiquement développé pour les applications
    d'entreprise
●   Leader de l'industrie devant MS .NET
●   Standardisé
●   Implémentation libre de la JVM (open-jdk)
●   Implémentation de référence libre
●   Serveurs d'applications libres
●   Design-patterns standards
●   Portable
J2EE : Complexité
●   Nombre de modules élevé
    ●   32 spécifications pour JEE 6
    ●   22 spécifications pour JEE 5
●   API quelquefois complexe
●   Compatibilité des implémentations open-source pas
    toujours évidente
●   La gestion de dépendance de librairies devient un
    vrai casse-tête sur un projet conséquent
●   Ressources expertes rares
Besoin d'architecture
●   Pour standardiser les développements
●   Choisir les bons composants et les intégrer
●   Appliquer des modèles de conception standards
●   Délivrer les développeurs de la complexité de
    J2EE et se recentrer sur les développements
    métiers
●   Garantir la qualité du logiciel
●   Organiser le développement
Des frameworks et un socle technique
Socle J2EE SOA Multi-Tenant
●   Définition d'une architecture logicielle standard
    ●   Multi-Tenant par identification du domaine (Full Qualified Domain Name)
    ●   N-tiers : Séparation des couches (Données – Persistance – Intégration –
        Business – Présentation - Navigation)
    ●   Définition des bus de services sur chaque tiers
    ●   Définition de couches d'indirection AOP sur chaque tiers
    ●   Intégration des problématiques Multi-Tenant à tous les modules : persistance,
        JCR, Cache, Thèmes, Sécurité, I18n, Scheduler, Services Web, Indexation …
    ●   Abstraction des API techniques facilitant leurs utilisations
    ●   Intégration de librairies tierces dans une API commune
    ●   Normalisation du code
    ●   Utilisation des Standards de l'industrie
Génération de code
●   Définition du modèle de données dans un langage
    XML descriptif, puis :
    ●   Génération des objets métiers
    ●   Génération des contraintes de format et d'intégrité
    ●   Génération des requêtes et méthode d'accès
    ●   Génération de l'indexation Lucene du modèle métier
    ●   Génération des services d'accès
●   Plus de 30% de code généré
Une pile applicative libre
●   Conteneur IOC : Spring Framework
●   AOP : AspectJ
●   Persistance - ORM : Hibernate
●   Transaction : Geronimo TM
●   Services Web : Apache CXF, Apache Abdera
●   CMS : Jackrabbit
●   Base de données : Postgresql
●   Mapping XML : Castor XML, XStream
●   Serveur d'application : Tomcat
●   Serveur Web : Apache HTTPD
Outils de développement et
             d'intégration Libres
●   IDE : Eclipse
●   Gestion des projets : Apache Maven 2
●   Générateur de code : Maven 2 + Velocity
●   Intégration continue : Hudson
●   Gestionnaire de Source : Subversion
●   Dépôt des artefacts construits : Artifactory
Modélisation - Organisation
●   Modélisation
    ●   UML 2.0
    ●   Utilisation des profils UML 2.0
    ●   Modèle de Domaine simplifiant la modélisation
●   Organisation
    ●   Horizontale, spécialisation des développeurs sur chaque
        couche / tache (couche intégration, couche business,
        couche présentation, reporting, import/export de données)
    ●   Agile : Approche incrémentale, Releases fréquentes,
        Intégration continue, Interaction directe avec les
        interlocuteurs fonctionnels, Binômes
Premier Retour : un ERP orienté
                   Négoce
●   Objet du projet :
    ●   Création d'un ERP SaaS et Multi-Tenant complet prenant en
        charge les métiers du négoce
    ●   Des phases d'approvisionnement aux phases de facturation
    ●   Interface Web, composant UI Riche
●   Contexte
    ●   Chez un éditeur de logiciel ayant une forte connaissance
        métier
    ●   Peu de ressources expérimentées disponibles : 4
        développeurs juniors (en stage puis en CDI)
Premier Échec
●   Conception et Développement de l'application sans socle technique
    ●   Définition de l'architecture très consommatrice de ressources
        –   prototypage, retour arrière, test de charge, ...
    ●   Choix des applicatifs
        –   Premier choix de DB2, abandon puis choix de Postgresql
    ●   Développement vertical, tout le monde doit tout connaître de la base de données au
        développement web
    ●   Pas de génération de code
    ●   Méthode dérivée de 2TUP, cycle long, peu de réactivité de l'équipe de développement au
        changement fonctionnel
●   Bilan après 3 ans de développement
    ●   Application non terminée, 30% du spectre fonctionnel
    ●   La maintenance corrective prend le pas sur le développement des nouvelles fonctionnalités
    ●   Application instable, régressions fréquentes
    ●   Difficulté d'ajouter de nouvelles fonctionnalités : il faut modifier l'application en profondeur
        pour le faire
Utilisation du Socle jSpirit
●   Création d'une 2eme version de l'ERP basé sur jSpirit
    ●   Utilisation progressive des éléments du socle
        –   Librairie d'intégration et génération de code
        –   Gestion de dépendance
        –   Intégration Continue
    ●   Utilisation d'une méthode plus agile
        –   Spécialisation des développeurs
        –   Cycle court, dialogue développement – fonctionnel plus facile
    ●   Bilan après 2 ans
        –   Application terminée et stable, en production
        –   Bonne résistance au changement, évolution simple, les corrections
            nécessitent peu de temps
        –   L'équipe a multiplié sa productivité par 4.
Évolutions Prévues
●   Moteur de Règles Métiers
●   Business Process Management / Workflow
●   Support des Bases de Données NoSQL
●   Intégration PaaS, IaaS
Questions ?




Web : http://sourceforge.net/projects/jspirit/   Contact : grolland.jspirit@gmail.com

Contenu connexe

Tendances

Mise en place d’une usine logicielle pour technologies Microsoft et non...
Mise en place d’une usine logicielle pour technologies Microsoft et non...Mise en place d’une usine logicielle pour technologies Microsoft et non...
Mise en place d’une usine logicielle pour technologies Microsoft et non...Microsoft
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascriptjp_mouton
 
Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Jasmine Conseil
 
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...Worteks
 
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
 
SharePoint et SQL Server sur Windows Azure
SharePoint et SQL Server sur Windows AzureSharePoint et SQL Server sur Windows Azure
SharePoint et SQL Server sur Windows AzureMicrosoft Technet France
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certificationsLeClubQualiteLogicielle
 

Tendances (7)

Mise en place d’une usine logicielle pour technologies Microsoft et non...
Mise en place d’une usine logicielle pour technologies Microsoft et non...Mise en place d’une usine logicielle pour technologies Microsoft et non...
Mise en place d’une usine logicielle pour technologies Microsoft et non...
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
 
Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017
 
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
 
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
 
SharePoint et SQL Server sur Windows Azure
SharePoint et SQL Server sur Windows AzureSharePoint et SQL Server sur Windows Azure
SharePoint et SQL Server sur Windows Azure
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications
 

Similaire à Saas Libre

Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019Bonitasoft
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteAZUG FR
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applicationsMohammed Jaafar
 
Mythes et réalités des projets Web (Webschool tours)
Mythes et réalités des projets Web (Webschool tours)Mythes et réalités des projets Web (Webschool tours)
Mythes et réalités des projets Web (Webschool tours)TribuAndCo
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Microsoft Ideas
 
Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Charbel Abdo
 
TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureJason De Oliveira
 
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0Cedric Vidal
 
Denodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketmichael_bailly
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Microsoft experiences azure et asp.net core
Microsoft experiences   azure et asp.net coreMicrosoft experiences   azure et asp.net core
Microsoft experiences azure et asp.net coreSébastien Ollivier
 
Cloud or not Cloud, comment déployer Project… ? That is the question!
Cloud or not Cloud, comment déployer Project…  ? That is the question!Cloud or not Cloud, comment déployer Project…  ? That is the question!
Cloud or not Cloud, comment déployer Project… ? That is the question!Microsoft Technet France
 
Migration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6WebMigration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6WebOlivier NOEL
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 

Similaire à Saas Libre (20)

Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
Mythes et réalités des projets Web (Webschool tours)
Mythes et réalités des projets Web (Webschool tours)Mythes et réalités des projets Web (Webschool tours)
Mythes et réalités des projets Web (Webschool tours)
 
MERAZKA Messaoud
MERAZKA MessaoudMERAZKA Messaoud
MERAZKA Messaoud
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
 
Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013
 
TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows Azure
 
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
 
Denodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie API
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to market
 
RIA
RIARIA
RIA
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Microsoft experiences azure et asp.net core
Microsoft experiences   azure et asp.net coreMicrosoft experiences   azure et asp.net core
Microsoft experiences azure et asp.net core
 
Cloud or not Cloud, comment déployer Project… ? That is the question!
Cloud or not Cloud, comment déployer Project…  ? That is the question!Cloud or not Cloud, comment déployer Project…  ? That is the question!
Cloud or not Cloud, comment déployer Project… ? That is the question!
 
Migration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6WebMigration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6Web
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 

Saas Libre

  • 1. SaaS Libre Grégoire Rolland – jSpirit – RMLL 2010
  • 2. Plan ● Qu'est-ce que le SaaS ? ● L'architecture Multi-Tenant ● J2EE pour le SaaS Multi-Tenant ● JSpirit, un socle technique open-source pour le SaaS et le Multi-Tenant ● Premier retour d'expérience ● Évolution
  • 3. Qu'est-ce que le SaaS ? ● Mode de distribution par internet du logiciel ● Distribution par abonnement ● Pas de vente de licence ● Modes d'utilisation multiples ● Webservices, Interface REST, Navigateur ● Tout Type d'application ● CRM, HRM, Groupware, ERP, ...
  • 4. Avantages économiques ● Pour l'entreprise utilisatrice ● Charges fixes d'utilisation, fonction du nombre d'utilisateurs ● Rapidité de déploiement, solution à la demande ● Pour l'éditeur ● Apport d'un revenu récurent ● Diminution des coûts de maintenance ● Diminution des coûts de déploiement ● Mutualisation des ressources
  • 5. Contraintes Techniques ● Haute disponibilité ● Sécurité/Confidentialité des données ● Adaptation à la charge ● Intégration/Migration des données ● Maintenance et déploiement critiques
  • 6. Architecture Multi-Tenant ● Architecture de mutualisation des ressources physiques et logiques de l'application
  • 7. Multi-Tenant ● Plusieurs clients (Tenants) partagent la même application ● La séparation entre Tenants est prise en charge par l'application (design-time) ● Il n'y a plus de rapport entre nombre de serveurs et nombre de clients
  • 8. Contraintes d'Architecture ● La charge doit être indépendante du nombre de Tenants ● Elle est fonction du nombre d'utilisateurs simultanés ● Les services fournis doivent être indépendants du Tenant ● Les données doivent être clairement séparées entre les différents Tenants : garantie de confidentialité
  • 9. Haute Disponibilité ● Redondance des Services Logiciels ● Plusieurs serveurs d'application :distribution des traitements sur N nœuds ● Plusieurs serveurs Web : load-balancing des requêtes ● Plusieurs serveurs de base de données ● Redondance Physique ● Plusieurs serveurs physiques ● RAID 1+0 ● Le résultat d'une requête d'un Tenant est indépendante du lieu d'exécution de la requête
  • 10. Adaptation à la charge ● Ajout transparent de serveur physique ● Virtualisation ● Ajout transparent de serveur logique ● Serveur web ● Serveur d'application ● Serveur de base de données ● N services logiques + M services physiques délivrent une application à P Tenants
  • 11. Orienté Service ● Application = Ensemble de services sans état interconnectés s'exécutant dans un contexte ● Services utilisables entre les différents Tenants ● Les services peuvent être surchargés pour un Tenant particulier ● Implémentation de comportements spécifiques ● La découverte de services est fonction du Tenant
  • 12. Déploiement / Maintenance ● Diminution des coûts de déploiement ● une seule application est déployée pour tous les clients ● Diminution des coûts de maintenance ● Les défauts ne sont corrigés qu'une seule fois ● Mais ● Le développement initial est plus complexe ● L'application doit être plus robuste ● Le niveau de sécurité doit être élevé
  • 13. J2EE ? ● Spécifiquement développé pour les applications d'entreprise ● Leader de l'industrie devant MS .NET ● Standardisé ● Implémentation libre de la JVM (open-jdk) ● Implémentation de référence libre ● Serveurs d'applications libres ● Design-patterns standards ● Portable
  • 14. J2EE : Complexité ● Nombre de modules élevé ● 32 spécifications pour JEE 6 ● 22 spécifications pour JEE 5 ● API quelquefois complexe ● Compatibilité des implémentations open-source pas toujours évidente ● La gestion de dépendance de librairies devient un vrai casse-tête sur un projet conséquent ● Ressources expertes rares
  • 15. Besoin d'architecture ● Pour standardiser les développements ● Choisir les bons composants et les intégrer ● Appliquer des modèles de conception standards ● Délivrer les développeurs de la complexité de J2EE et se recentrer sur les développements métiers ● Garantir la qualité du logiciel ● Organiser le développement
  • 16. Des frameworks et un socle technique
  • 17. Socle J2EE SOA Multi-Tenant ● Définition d'une architecture logicielle standard ● Multi-Tenant par identification du domaine (Full Qualified Domain Name) ● N-tiers : Séparation des couches (Données – Persistance – Intégration – Business – Présentation - Navigation) ● Définition des bus de services sur chaque tiers ● Définition de couches d'indirection AOP sur chaque tiers ● Intégration des problématiques Multi-Tenant à tous les modules : persistance, JCR, Cache, Thèmes, Sécurité, I18n, Scheduler, Services Web, Indexation … ● Abstraction des API techniques facilitant leurs utilisations ● Intégration de librairies tierces dans une API commune ● Normalisation du code ● Utilisation des Standards de l'industrie
  • 18. Génération de code ● Définition du modèle de données dans un langage XML descriptif, puis : ● Génération des objets métiers ● Génération des contraintes de format et d'intégrité ● Génération des requêtes et méthode d'accès ● Génération de l'indexation Lucene du modèle métier ● Génération des services d'accès ● Plus de 30% de code généré
  • 19. Une pile applicative libre ● Conteneur IOC : Spring Framework ● AOP : AspectJ ● Persistance - ORM : Hibernate ● Transaction : Geronimo TM ● Services Web : Apache CXF, Apache Abdera ● CMS : Jackrabbit ● Base de données : Postgresql ● Mapping XML : Castor XML, XStream ● Serveur d'application : Tomcat ● Serveur Web : Apache HTTPD
  • 20. Outils de développement et d'intégration Libres ● IDE : Eclipse ● Gestion des projets : Apache Maven 2 ● Générateur de code : Maven 2 + Velocity ● Intégration continue : Hudson ● Gestionnaire de Source : Subversion ● Dépôt des artefacts construits : Artifactory
  • 21. Modélisation - Organisation ● Modélisation ● UML 2.0 ● Utilisation des profils UML 2.0 ● Modèle de Domaine simplifiant la modélisation ● Organisation ● Horizontale, spécialisation des développeurs sur chaque couche / tache (couche intégration, couche business, couche présentation, reporting, import/export de données) ● Agile : Approche incrémentale, Releases fréquentes, Intégration continue, Interaction directe avec les interlocuteurs fonctionnels, Binômes
  • 22. Premier Retour : un ERP orienté Négoce ● Objet du projet : ● Création d'un ERP SaaS et Multi-Tenant complet prenant en charge les métiers du négoce ● Des phases d'approvisionnement aux phases de facturation ● Interface Web, composant UI Riche ● Contexte ● Chez un éditeur de logiciel ayant une forte connaissance métier ● Peu de ressources expérimentées disponibles : 4 développeurs juniors (en stage puis en CDI)
  • 23. Premier Échec ● Conception et Développement de l'application sans socle technique ● Définition de l'architecture très consommatrice de ressources – prototypage, retour arrière, test de charge, ... ● Choix des applicatifs – Premier choix de DB2, abandon puis choix de Postgresql ● Développement vertical, tout le monde doit tout connaître de la base de données au développement web ● Pas de génération de code ● Méthode dérivée de 2TUP, cycle long, peu de réactivité de l'équipe de développement au changement fonctionnel ● Bilan après 3 ans de développement ● Application non terminée, 30% du spectre fonctionnel ● La maintenance corrective prend le pas sur le développement des nouvelles fonctionnalités ● Application instable, régressions fréquentes ● Difficulté d'ajouter de nouvelles fonctionnalités : il faut modifier l'application en profondeur pour le faire
  • 24. Utilisation du Socle jSpirit ● Création d'une 2eme version de l'ERP basé sur jSpirit ● Utilisation progressive des éléments du socle – Librairie d'intégration et génération de code – Gestion de dépendance – Intégration Continue ● Utilisation d'une méthode plus agile – Spécialisation des développeurs – Cycle court, dialogue développement – fonctionnel plus facile ● Bilan après 2 ans – Application terminée et stable, en production – Bonne résistance au changement, évolution simple, les corrections nécessitent peu de temps – L'équipe a multiplié sa productivité par 4.
  • 25. Évolutions Prévues ● Moteur de Règles Métiers ● Business Process Management / Workflow ● Support des Bases de Données NoSQL ● Intégration PaaS, IaaS
  • 26. Questions ? Web : http://sourceforge.net/projects/jspirit/ Contact : grolland.jspirit@gmail.com