SlideShare a Scribd company logo
1 of 47
Download to read offline
Le nouveau Portail
OSGi + Vaadin + Felix + iPojo
● La soupe technologique
● Le portail : plate-forme d’entreprise
● L’existant
● La migration
Le nouveau Portail
La soupe technologique
● Une vieille idée
o Consortium fondée en 1999
La soupe technologique : OSGi
● Un objectif : la modularité
o Et si on pouvait déployer/installer des
briques logicielles JAVA à chaud ?
o Et si on pouvait faire coexister deux versions
d’une même implémentations ?
o Et si on pouvait consommer et exposer
dynamiquement des services ?
o Etc.
La soupe technologique : OSGi
● Une architecture en couche
La soupe technologique : OSGi
● Bundle : l’unité de base
o Petit livrable se présentant sous la forme d’un JAR
o Activator : implémente BundleActivator, point d’entrée et de
sortie du bundle
o Manifest : fichier text décrivant le bundle (version,
dépendances, etc.)
La soupe technologique : OSGi
● La couche service
o Permet de gérer la consommation et
l’exposition dynamique des services
o Le service est là / pas là / sera là / doit être
là / était là mais il est parti
La soupe technologique : OSGi
● Le cycle de vie : une norme
o Géré par l’API : c’est comme ça et puis c’est
tout !!!
La soupe technologique : OSGi
● La couche modules
o Décrit la manière dont un bundle importe et
exporte du code
o Différent de la notion de service
o MANIFEST.MF au centre de ce mécanisme
La soupe technologique : OSGi
● La couche sécurité
o Qui a le droit d’accéder à quoi
● L’environnement d’exécution
o Chaque instance de bundle est cloisonnée
o Plus de contexte commun
o Configuration des imports/exports
fondamentale
La soupe technologique : OSGi
● Articulation autour d’une spécification
o Version actuelle : OSGi release 6 (Juin
2014)
o Version SCL : OSGi release 5 (Juin 2012)
● Implémentation
o Felix
o Equinox (Eclipse)
La soupe technologique : OSGi
● Implémentations Apache d’OSGi
o Core : principe de base (lifecycle,
environnement d’execution)
o Compendium : service standardisé (log,
event, configuration, persistence, etc.)
La soupe technologique : Felix
● Peut être le contenant ou le contenu d’un
autre contexte d’exécution
o Chez SCL : instancié par une webapp
(portal, backoffice-externe)
La soupe technologique : Felix
● Fait parti du projet Felix Apache
● Facilite la gestion de la modularité OSGi
● Diminue drastiquement la “boiler plate”
inhérente à OSGi
La soupe technologique : iPOJO
● Rend l’exposition et la consommation de
service beaucoup plus simple
La soupe technologique : iPOJO
Expose un service
Consomme un service
● Permet de se brancher sur le lifecycle simplement par
callback
La soupe technologique : iPOJO
● Le pattern Factory à l’honneur
o Chaque composant sous entend une factory gérée
par iPOJO et dont sont issues les instances
o Possibilité de récupéré une référence de cette factory
La soupe technologique : iPOJO
● Gestion des event par callback
La soupe technologique : iPOJO
● Modification du byte code à la compilation
La soupe technologique : iPOJO
● Framework de création d’application web
o Fourni un jeu de composants
o Basé sur GWT
o Développement en JAVA
La soupe technologique : Vaadin
● Nombreux add-ons fournis par la
communauté
La soupe technologique : Vaadin
Le portail : plate-forme d’entreprise
● Une stack technique partagée
● Factorisation
o Authentification
o Composants graphiques / Menu
● Unicité de la charte graphique
● Cohérence ergonomique
Le portail : plate-forme d’entreprise
● Un contenant dans lequel on déploie les
applications
Le portail : plate-forme d’entreprise
L’existant
● Objectif initial : proposé une alternative
crédible à Notes
● Basé sur Felix, Vaadin, Spring et Gemini
● Première version faites un week-end
L’existant
● Problèmes rencontrés
o Pas de gestion réellement dynamique
o Rechargement à chaud souvent impossible
o Mauvaise gestion des propriétés
o Pas de gestion du bus d’event
o Fichier de configuration Spring nécessaire
o Pas de migration sur Spring 4 prévu à moyen
terme
L’existant
● Autres problèmes
o Remontée des erreurs aléatoire et peu parlant
o Gestion du publish/subscribe via un bundle
non-system
o Beaucoup, beaucoup de package-export à
gérer dans le felix.properties
L’existant
La migration
● Anticiper la migration Spring 4
● Profiter des retex pour améliorer
o Un véritable rechargement à chaud
o Un mécanisme d’event natif
o Une meilleure articulation View / Presenter
o Une meilleure gestion des erreurs et des log
o Une amélioration de la productivité
La migration
● Mise en place de bundle system issue du projet
Apache Felix
La migration
Avant
MIGRATION !!!!!
Après
● Mise en place du bus d’event natif
La migration
● Plus aucune logique d’héritage pour créer un module et
des vues
La migration
● Plus aucune logique d’héritage pour créer un module et
des vues
La migration
● Instanciation des modules via un fichier de config
● Création des vues via un fichier de config
La migration
● Gestion des logs par un service OSGi
La migration
● Une ligne de commande pour simplifier le debugage et
mieux appréhender l’environnement
La migration
● Une ligne de commande pour simplifier le debugage et
mieux appréhender l’environnement
La migration
● Une ligne de commande pour simplifier le debugage et
mieux appréhender l’environnement
La migration
La migration
La migration
La migration
La migration
La migration
● Et plus encore
o Installation des dépendances automatiquement
(OBR)
o Push sur le portail pour interagir directement avec
l’utilisateur
o Etc.
La migration
Questions ?

More Related Content

What's hot

Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Redeploiement d’une plateforme eZpublish multisites internationale
Redeploiement d’une plateforme eZpublish multisites internationaleRedeploiement d’une plateforme eZpublish multisites internationale
Redeploiement d’une plateforme eZpublish multisites internationaleKaliop-slide
 
Du développement à la livraison avec JavaFX et le JDK9
Du développement à la livraison avec JavaFX et le JDK9Du développement à la livraison avec JavaFX et le JDK9
Du développement à la livraison avec JavaFX et le JDK9Thierry Wasylczenko
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to HeroCellenza
 
Kit de Developpement Synolia
Kit de Developpement SynoliaKit de Developpement Synolia
Kit de Developpement SynoliaRachid Zarouali
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile AppHabib MAALEM
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIHugo Hamon
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherAnthony Sigogne
 
Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitIppon
 
Hermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelHermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelCocoaHeads France
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git labAbdelghani Azri
 
Présentation de Carthage par Simone Civetta
Présentation de Carthage par Simone CivettaPrésentation de Carthage par Simone Civetta
Présentation de Carthage par Simone CivettaCocoaHeads France
 
Zend Framework - Simplicity Meet Power
Zend Framework - Simplicity Meet PowerZend Framework - Simplicity Meet Power
Zend Framework - Simplicity Meet PowerALTAIDE
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
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
 
Trouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesTrouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesGauthier Delamarre
 

What's hot (20)

Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Redeploiement d’une plateforme eZpublish multisites internationale
Redeploiement d’une plateforme eZpublish multisites internationaleRedeploiement d’une plateforme eZpublish multisites internationale
Redeploiement d’une plateforme eZpublish multisites internationale
 
Du développement à la livraison avec JavaFX et le JDK9
Du développement à la livraison avec JavaFX et le JDK9Du développement à la livraison avec JavaFX et le JDK9
Du développement à la livraison avec JavaFX et le JDK9
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
 
Kit de Developpement Synolia
Kit de Developpement SynoliaKit de Developpement Synolia
Kit de Developpement Synolia
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec Rancher
 
Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur Git
 
Hermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelHermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter Meuel
 
Meetup aix-js-28-08-2017
Meetup aix-js-28-08-2017Meetup aix-js-28-08-2017
Meetup aix-js-28-08-2017
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git lab
 
Jenkins Workflow
Jenkins WorkflowJenkins Workflow
Jenkins Workflow
 
Présentation de Carthage par Simone Civetta
Présentation de Carthage par Simone CivettaPrésentation de Carthage par Simone Civetta
Présentation de Carthage par Simone Civetta
 
Zend Framework - Simplicity Meet Power
Zend Framework - Simplicity Meet PowerZend Framework - Simplicity Meet Power
Zend Framework - Simplicity Meet Power
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
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
 
Trouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesTrouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiques
 

Viewers also liked

Projet blogueurs Pro
Projet blogueurs ProProjet blogueurs Pro
Projet blogueurs ProWordpressCIV
 
Agregar y editar tablas
Agregar y editar tablasAgregar y editar tablas
Agregar y editar tablaskino2511
 
bonne_journée
bonne_journéebonne_journée
bonne_journéeeiryelio
 
Ejercicios ciencias de la tierra
Ejercicios ciencias de la tierraEjercicios ciencias de la tierra
Ejercicios ciencias de la tierraJulio Sanchez
 
Ford Focus 3 - Manuel D'utilisation
Ford Focus 3 - Manuel D'utilisationFord Focus 3 - Manuel D'utilisation
Ford Focus 3 - Manuel D'utilisationzzhicham
 
Logistique Asiatique
Logistique AsiatiqueLogistique Asiatique
Logistique Asiatiqueeiryelio
 
Estrategia del taller
Estrategia del tallerEstrategia del taller
Estrategia del tallerEspova
 
Organización pluricelular de los seres vivos
Organización pluricelular de los seres vivosOrganización pluricelular de los seres vivos
Organización pluricelular de los seres vivosJulio Sanchez
 
Asamblea En La CarpinteríA
Asamblea En La CarpinteríAAsamblea En La CarpinteríA
Asamblea En La CarpinteríAkkaarreenn
 

Viewers also liked (20)

Le monde de google
Le monde de google Le monde de google
Le monde de google
 
Projet blogueurs Pro
Projet blogueurs ProProjet blogueurs Pro
Projet blogueurs Pro
 
Agregar y editar tablas
Agregar y editar tablasAgregar y editar tablas
Agregar y editar tablas
 
bonne_journée
bonne_journéebonne_journée
bonne_journée
 
Ejercicios ciencias de la tierra
Ejercicios ciencias de la tierraEjercicios ciencias de la tierra
Ejercicios ciencias de la tierra
 
Cinéma 2020 (aperçu)
Cinéma 2020 (aperçu)Cinéma 2020 (aperçu)
Cinéma 2020 (aperçu)
 
Temas 3 y 4 Tercero de ESO
Temas 3 y 4 Tercero de ESOTemas 3 y 4 Tercero de ESO
Temas 3 y 4 Tercero de ESO
 
Hollerith
HollerithHollerith
Hollerith
 
Ford Focus 3 - Manuel D'utilisation
Ford Focus 3 - Manuel D'utilisationFord Focus 3 - Manuel D'utilisation
Ford Focus 3 - Manuel D'utilisation
 
Logistique Asiatique
Logistique AsiatiqueLogistique Asiatique
Logistique Asiatique
 
Estrategia del taller
Estrategia del tallerEstrategia del taller
Estrategia del taller
 
Questionnaire audio
Questionnaire audioQuestionnaire audio
Questionnaire audio
 
Organización pluricelular de los seres vivos
Organización pluricelular de los seres vivosOrganización pluricelular de los seres vivos
Organización pluricelular de los seres vivos
 
Consultation
ConsultationConsultation
Consultation
 
ron2
ron2ron2
ron2
 
cert 4
cert 4cert 4
cert 4
 
Transport 2 Roues
Transport 2 RouesTransport 2 Roues
Transport 2 Roues
 
Proteinaa
ProteinaaProteinaa
Proteinaa
 
Asamblea En La CarpinteríA
Asamblea En La CarpinteríAAsamblea En La CarpinteríA
Asamblea En La CarpinteríA
 
Enzimas
EnzimasEnzimas
Enzimas
 

Similar to Le nouveau portail

Développement d'une forge logicielle avec OSGi
Développement d'une forge logicielle avec OSGiDéveloppement d'une forge logicielle avec OSGi
Développement d'une forge logicielle avec OSGiOSGi User Group France
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2th0masr
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
L'e-commerce sans accroc avec Sylius
L'e-commerce sans accroc avec SyliusL'e-commerce sans accroc avec Sylius
L'e-commerce sans accroc avec SyliusOlivier ALLAIN
 
ARII / OJS
 ARII / OJS ARII / OJS
ARII / OJSSOSPARIS
 
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
 
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACILPrésentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACILMaxime Chambreuil
 
20100225 Ippon Osgi Are You Ready
20100225 Ippon Osgi Are You Ready20100225 Ippon Osgi Are You Ready
20100225 Ippon Osgi Are You ReadyGeoffray Gruel
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureMarc Nazarian
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & KubernetesPerfect Memory
 
[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
 
201003 OSGi
201003 OSGi201003 OSGi
201003 OSGilyonjug
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous deliveryPatrice Ferlet
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 

Similar to Le nouveau portail (20)

Développement d'une forge logicielle avec OSGi
Développement d'une forge logicielle avec OSGiDéveloppement d'une forge logicielle avec OSGi
Développement d'une forge logicielle avec OSGi
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 
Yocto oe
Yocto oeYocto oe
Yocto oe
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
L'e-commerce sans accroc avec Sylius
L'e-commerce sans accroc avec SyliusL'e-commerce sans accroc avec Sylius
L'e-commerce sans accroc avec Sylius
 
ARII / OJS
 ARII / OJS ARII / OJS
ARII / OJS
 
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
 
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACILPrésentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
 
Présentation OSGI
Présentation OSGIPrésentation OSGI
Présentation OSGI
 
20100225 Ippon Osgi Are You Ready
20100225 Ippon Osgi Are You Ready20100225 Ippon Osgi Are You Ready
20100225 Ippon Osgi Are You Ready
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
 
[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
 
201003 OSGi
201003 OSGi201003 OSGi
201003 OSGi
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 

More from Cédric GILLET (6)

Agile
AgileAgile
Agile
 
GraphQL + relay
GraphQL + relayGraphQL + relay
GraphQL + relay
 
Spring.io
Spring.ioSpring.io
Spring.io
 
Java 8
Java 8Java 8
Java 8
 
GraphQL
GraphQLGraphQL
GraphQL
 
Liquibase
LiquibaseLiquibase
Liquibase
 

Le nouveau portail

  • 1. Le nouveau Portail OSGi + Vaadin + Felix + iPojo
  • 2. ● La soupe technologique ● Le portail : plate-forme d’entreprise ● L’existant ● La migration Le nouveau Portail
  • 4. ● Une vieille idée o Consortium fondée en 1999 La soupe technologique : OSGi
  • 5. ● Un objectif : la modularité o Et si on pouvait déployer/installer des briques logicielles JAVA à chaud ? o Et si on pouvait faire coexister deux versions d’une même implémentations ? o Et si on pouvait consommer et exposer dynamiquement des services ? o Etc. La soupe technologique : OSGi
  • 6. ● Une architecture en couche La soupe technologique : OSGi
  • 7. ● Bundle : l’unité de base o Petit livrable se présentant sous la forme d’un JAR o Activator : implémente BundleActivator, point d’entrée et de sortie du bundle o Manifest : fichier text décrivant le bundle (version, dépendances, etc.) La soupe technologique : OSGi
  • 8. ● La couche service o Permet de gérer la consommation et l’exposition dynamique des services o Le service est là / pas là / sera là / doit être là / était là mais il est parti La soupe technologique : OSGi
  • 9. ● Le cycle de vie : une norme o Géré par l’API : c’est comme ça et puis c’est tout !!! La soupe technologique : OSGi
  • 10. ● La couche modules o Décrit la manière dont un bundle importe et exporte du code o Différent de la notion de service o MANIFEST.MF au centre de ce mécanisme La soupe technologique : OSGi
  • 11. ● La couche sécurité o Qui a le droit d’accéder à quoi ● L’environnement d’exécution o Chaque instance de bundle est cloisonnée o Plus de contexte commun o Configuration des imports/exports fondamentale La soupe technologique : OSGi
  • 12. ● Articulation autour d’une spécification o Version actuelle : OSGi release 6 (Juin 2014) o Version SCL : OSGi release 5 (Juin 2012) ● Implémentation o Felix o Equinox (Eclipse) La soupe technologique : OSGi
  • 13. ● Implémentations Apache d’OSGi o Core : principe de base (lifecycle, environnement d’execution) o Compendium : service standardisé (log, event, configuration, persistence, etc.) La soupe technologique : Felix
  • 14. ● Peut être le contenant ou le contenu d’un autre contexte d’exécution o Chez SCL : instancié par une webapp (portal, backoffice-externe) La soupe technologique : Felix
  • 15. ● Fait parti du projet Felix Apache ● Facilite la gestion de la modularité OSGi ● Diminue drastiquement la “boiler plate” inhérente à OSGi La soupe technologique : iPOJO
  • 16. ● Rend l’exposition et la consommation de service beaucoup plus simple La soupe technologique : iPOJO Expose un service Consomme un service
  • 17. ● Permet de se brancher sur le lifecycle simplement par callback La soupe technologique : iPOJO
  • 18. ● Le pattern Factory à l’honneur o Chaque composant sous entend une factory gérée par iPOJO et dont sont issues les instances o Possibilité de récupéré une référence de cette factory La soupe technologique : iPOJO
  • 19. ● Gestion des event par callback La soupe technologique : iPOJO
  • 20. ● Modification du byte code à la compilation La soupe technologique : iPOJO
  • 21. ● Framework de création d’application web o Fourni un jeu de composants o Basé sur GWT o Développement en JAVA La soupe technologique : Vaadin
  • 22. ● Nombreux add-ons fournis par la communauté La soupe technologique : Vaadin
  • 23. Le portail : plate-forme d’entreprise
  • 24. ● Une stack technique partagée ● Factorisation o Authentification o Composants graphiques / Menu ● Unicité de la charte graphique ● Cohérence ergonomique Le portail : plate-forme d’entreprise
  • 25. ● Un contenant dans lequel on déploie les applications Le portail : plate-forme d’entreprise
  • 27. ● Objectif initial : proposé une alternative crédible à Notes ● Basé sur Felix, Vaadin, Spring et Gemini ● Première version faites un week-end L’existant
  • 28. ● Problèmes rencontrés o Pas de gestion réellement dynamique o Rechargement à chaud souvent impossible o Mauvaise gestion des propriétés o Pas de gestion du bus d’event o Fichier de configuration Spring nécessaire o Pas de migration sur Spring 4 prévu à moyen terme L’existant
  • 29. ● Autres problèmes o Remontée des erreurs aléatoire et peu parlant o Gestion du publish/subscribe via un bundle non-system o Beaucoup, beaucoup de package-export à gérer dans le felix.properties L’existant
  • 31. ● Anticiper la migration Spring 4 ● Profiter des retex pour améliorer o Un véritable rechargement à chaud o Un mécanisme d’event natif o Une meilleure articulation View / Presenter o Une meilleure gestion des erreurs et des log o Une amélioration de la productivité La migration
  • 32. ● Mise en place de bundle system issue du projet Apache Felix La migration Avant MIGRATION !!!!! Après
  • 33. ● Mise en place du bus d’event natif La migration
  • 34. ● Plus aucune logique d’héritage pour créer un module et des vues La migration
  • 35. ● Plus aucune logique d’héritage pour créer un module et des vues La migration
  • 36. ● Instanciation des modules via un fichier de config ● Création des vues via un fichier de config La migration
  • 37. ● Gestion des logs par un service OSGi La migration
  • 38. ● Une ligne de commande pour simplifier le debugage et mieux appréhender l’environnement La migration
  • 39. ● Une ligne de commande pour simplifier le debugage et mieux appréhender l’environnement La migration
  • 40. ● Une ligne de commande pour simplifier le debugage et mieux appréhender l’environnement La migration
  • 46. ● Et plus encore o Installation des dépendances automatiquement (OBR) o Push sur le portail pour interagir directement avec l’utilisateur o Etc. La migration