SlideShare une entreprise Scribd logo
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

Recommandé pour vous

[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 ...

Une infrastructure Cloud et une solution IDaaS 100% libres

open sourceinfrastructureiam
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

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
microsoftsqlsharepoint
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é

Recommandé pour vous

20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications

Automatisation - formation et certifications

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

Découvrez les nouveautés de la version de Bonita 7.10 ainsi que les évolutions à venir

bpm
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

Dans cette session, nous aborderons les différentes actions qui nous ont permis de mener à bien ce projet ainsi que les contraintes et comment nous les avons contourner afin d'arriver à une infrastructure et garantir un PCA sur cette application.

microsoft azureexperience
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é

Recommandé pour vous

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)

La gestion de projet Web par Tribu and Co... Tout un programme. Résolument engagé dans un web libre et transparent, Tribu and co dévoile ses secrets de fabrication. Du cahier des charges à la mise en ligne du site Internet, tous les points ont été abordés...en moins de deux heures !

webschool toursgestion projet website internet
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

Recommandé pour vous

Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0

Présentation Ippon Technologies REX GWT 2.0 du jeudi 10/06/2010 www.ippon.fr blog.ippon.fr

gwtippon technologies
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...

Retour d’expérience et témoignage d’un client qui a souhaité industrialiser et homogénéiser ses processus et outils de gestion de projets. Nous détaillerons ensemble les prérequis et les éléments à prendre en considération. Nous reviendrons sur la phase d’upgrade du projet pilote lancé un an plus tôt sur Project Server et SharePoint. Speakers : Giampaolo Battaglia (Microsoft France), Charbel Abdo (Avanade)

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

Mettre en place une solution EPM 2013 avec le couple SharePoint et Project Server 2013 pour garantir le succès de tous vos projets métier et IT. Cette présentation couvre également la bonne démarche à adopter pour mettre votre solution EPM 201 vers la version 2013

project serverepmppm
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

Recommandé pour vous

TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows Azure

Toutes les recettes pratiques pour réussir son premier projet Windows Azure

windows azuretechdays
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

Retour d'expérience ProxiAD donné à l'Eclipse Day Paris le 5 Novembre 2010.

eclipsedayparismdelanguage
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

https://bit.ly/2TGvsG9 L'une des idées fondamentales derrière la virtualisation des données est le découplage des sources de données avec les méthodes de consommation. Pourquoi le besoin en requêtes de données dans JSON sur HTTP devrait-il nécessiter du développement supplémentaire? Denodo fournit un accès immédiat à ses ensembles de données via REST, OData 4, GeoJSON et d'autres protocoles, sans codage requis. Facile à faire évoluer, cloud-compatible et directement intégrable aux plateformes de gestion d'API, Denodo est l'outil idéal pour réussir votre stratégie API ! Dans cette session, nous aborderons les points suivants : - Le rôle de Denodo dans une stratégie API - L’intégration entre Denodo et les autres éléments du stack API, comme les plateformes de gestion d'API - La facilité d'accès à Denodo en tant que fournisseur d’API REST - Les options avancées des services Web Denodo: authentification via OAuth ou SAML, documentation OpenAPI, capacités géographiques, etc.

api managementdata virtualizationdata architecture
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.

Recommandé pour vous

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

Cette présentation (en français) explique les fondamentaux de l'innovation Agile des 10 dernières années, et propose un panorama des frameworks JavaScript client, serveur, desktop et mobiles permettant d'accélérer votre processus d'ingénierie, de l'idée au produit.

lean startupagile software developmentjavascript
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf

c

É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 javascript
jp_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 2017
Jasmine 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 Engie
LeClubQualiteLogicielle
 
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
Microsoft Technet France
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications
LeClubQualiteLogicielle
 

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 2019
Bonitasoft
 
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
AZUG FR
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
Mohammed 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.0
Ippon
 
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 2013
Charbel Abdo
 
TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows Azure
Jason 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.0
Cedric 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 API
Denodo
 
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
michael_bailly
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Frederic Leger
 
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 core
Sé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 à M6Web
Olivier 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 Foundation
Sté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
 
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
 
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
 

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