SlideShare une entreprise Scribd logo
Document confidentiel -  Ce document est la propriété exclusive d’Ippon Technologies et il ne peut être reproduit, publi é  ou divulgu é  sans son autorisation préalable Sommaire Effectifs par agence OSGi Are You Ready ? 25 Février 2010 Arrault Fabien Ippon Technologies
[object Object]
Vous êtes libres :  ,[object Object],[object Object],[object Object]
A chaque réutilisation ou distribution de cette création, vous devez faire apparaître clairement au public les conditions contractuelles de sa mise à disposition sous licence identique Creative Commons Share Alike.
Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits sur cette œuvre.
Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs.
Introduction ,[object Object],[object Object]
Il est défini par l'OSGi Alliance, consortium d'industriels fondé en 1999
Introduction ,[object Object],[object Object]
Cette techno est maintenant utilisée comme socle technique interne de la plupart des serveurs d'applications ou d'IDE comme Eclipse
Introduction ,[object Object],[object Object],[object Object]
Sommaire ,[object Object]
Leurs mises en oeuvre avec dm Server
OSGi et les applications de gestion ?
[object Object],Les concepts de OSGi http://www.osgi.org/About/WhatIsOSGi
Bundles ,[object Object]
Ce sont de archives java classiques (JARs) pour lesquelles le manifest contient des méta-données supplémentaires : Manifest-Version : 1.0 Bundle-ManifestVersion : 2 Bundle-Version : 1.0.0 Bundle-Name : Hello_world Bundle Bundle-SymbolicName : hello_world Bundle-Activator : com.ippon.osgi.Activator Import-Package : org.osgi.framework
Bundle Lifecycle ,[object Object],http://static.springsource.org/osgi/docs/current/reference/html/bnd-app-ctx.html#bnd-app-ctx:bnd-lifecycle
Dépendance Statique ,[object Object]
Un bundle doit importer les packages java externes dont il a besoin Imports package com.B Exports package com.B Imports package com.C Exports package com.C
Dépendance Statique ,[object Object]
Import-Package Manifest-Version : 1.0 Bundle-ManifestVersion : 2 Bundle-Version : 2.1.6 Bundle-Name : Logutil Bundle Bundle-SymbolicName : logutil Export-Package :  com.ippon.osgi.util; version =2.1 Import-Package : org.apache.log4j; version ="[1.2.15,1.2.15]"
Dépendance Statique ,[object Object]
Ces classloader reliés entre eux à partir de ces méta-données d'export/import et se délèguent l'un l'autre le chargement des classes dont ils ont la responsabilité : ,[object Object],Classloader A Loads all internal class from bundle Delegates load of class com.B.* Delegates load of  class java.* Delegates load of class com.C.* Delegates load of  class java.* Bundle A Import-Package:   com.B, com.C Classloader B System Classloader Classloader C Bundle B Bundle C Export-Package:   com.B Export-Package:   com.C
Dépendance Dynamique ,[object Object]
Le « Service Registry » permet aux bundles d'exposer ou de rechercher puis utiliser des services http://www.osgi.org/About/WhatIsOSGi
Dépendance Dynamique ,[object Object]
Lorsqu'un bundle est arrêté, les services qu'ils exposent sont automatiquement retirés. ,[object Object]
Dépendance Dynamique ,[object Object]
Service property ,[object Object],[object Object]
Mais un mécanisme de filtre permet aux bundles clients d'utiliser aussi les property pour sélectionner le ou les services qui les intéressent parmi les différents candidats
Focus : Components Models ,[object Object]
spécification Declarative Services
Apache iPojo ,[object Object],[object Object]
A influencer très fortement la création de la spécification OSGi nommée « Blueprint Container ». La v2 est d'ailleurs son implémentation de référence
Dépendance Dynamique ,[object Object],[object Object]
Import d'un service dans le contexte Spring : < beans   xmlns = &quot;http://www.springframework.org/schema/beans&quot; xmlns:osgi = &quot;http://www.springframework.org/schema/osgi&quot; > < bean   id = &quot;helloworldservice&quot;   class = &quot;com.ippon.osgi.hello.HelloWorldSingleton&quot; /> < osgi:service   ref = &quot;helloworldservice&quot;   interface = &quot;com.ippon.osgi.publichello.HelloWorldService&quot; /> </ beans > < beans   xmlns = &quot;http://www.springframework.org/schema/beans&quot; xmlns:osgi = &quot;http://www.springframework.org/schema/osgi&quot; > < osgi:reference   id = &quot;helloworldservice&quot;   interface = &quot;com.ippon.osgi.publichello.HelloWorldService&quot; /> < bean   id = &quot;consumer&quot;   class = &quot; com.ippon.osgi.client.HelloConsumer &quot; > < property   name = &quot;service&quot;   ref = &quot;helloworldservice&quot; /> </ bean > </ beans >
Dépendance statique vs. dynamique ,[object Object],[object Object]
Réutilisation d'une implémentation : couplage assez fort
Mais OSGi permet de limiter le couplage aux apis publics de l'implémentation  ,[object Object]
On ne partage pas une implémentation, on obtient la référence à un objet avec lequel collaborer
Permet un remplacement dynamique du service : nouvelle implémentation ou nouvelle configuration, etc …
Versioning ,[object Object]

Contenu connexe

Tendances

Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
Ippon
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
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
Ippon
 
Introduction à Zend Framework 2
Introduction à Zend Framework 2Introduction à Zend Framework 2
Introduction à Zend Framework 2Mickael Perraud
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)
Celinio Fernandes
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
Arnaud Héritier
 
Spring 3.0
Spring 3.0Spring 3.0
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Rossi Oddet
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Ippon
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
Eric SIBER
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
SmartnSkilled
 
Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)
Celinio Fernandes
 
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
Marouan MOHAMED
 
Introduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuéesIntroduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuéesSOAT
 
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
Yves-Emmanuel Jutard
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVCNathaniel Richand
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
Maxime Gréau
 
JPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesJPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesIppon
 
Maven
MavenMaven

Tendances (20)

Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
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
 
Introduction à Zend Framework 2
Introduction à Zend Framework 2Introduction à Zend Framework 2
Introduction à Zend Framework 2
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
 
Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)
 
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
 
Introduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuéesIntroduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuées
 
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
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
 
JPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesJPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à Achilles
 
Maven
MavenMaven
Maven
 

En vedette

Ippevent - Regarde les instances tomber - 20 mai 2014
Ippevent - Regarde les instances tomber - 20 mai 2014Ippevent - Regarde les instances tomber - 20 mai 2014
Ippevent - Regarde les instances tomber - 20 mai 2014
vberetti
 
2010 presentation ippon_corp
2010 presentation ippon_corp2010 presentation ippon_corp
2010 presentation ippon_corpGeoffray Gruel
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Julien Dubois
 
Malakocktail 72 (été 2013)
Malakocktail 72 (été 2013)Malakocktail 72 (été 2013)
Malakocktail 72 (été 2013)Malakocktail
 
Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016
Stephan Lagraulet
 
Accessibilité & e-recrutement
Accessibilité & e-recrutementAccessibilité & e-recrutement
Accessibilité & e-recrutement
Sébastien Delorme
 
DevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - SpinnakerDevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - Spinnaker
Stephan Lagraulet
 
Nouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale IpponNouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale Ippon
Julien Dubois
 
Introduction à Cassandra
Introduction à CassandraIntroduction à Cassandra
Introduction à Cassandra
VMware Tanzu
 
Développer et déployer dans le cloud
Développer et déployer dans le cloudDévelopper et déployer dans le cloud
Développer et déployer dans le cloud
Julien Dubois
 
De Devoxx au CAC40
De Devoxx au CAC40De Devoxx au CAC40
De Devoxx au CAC40
Julien Dubois
 
JHipster à Devoxx 2015
JHipster à Devoxx 2015JHipster à Devoxx 2015
JHipster à Devoxx 2015
Julien Dubois
 
HTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilitéHTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilité
Julien Dubois
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
Alexis Seigneurin
 
Requêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraRequêtes multi-critères avec Cassandra
Requêtes multi-critères avec Cassandra
Julien Dubois
 
L'atelier e-Recrutement 2.0 (3eme partie)
L'atelier e-Recrutement 2.0 (3eme partie)L'atelier e-Recrutement 2.0 (3eme partie)
L'atelier e-Recrutement 2.0 (3eme partie)
Patrice Malaurie
 
L'atelier e-Recrutement 2.0 (1ère partie)
L'atelier e-Recrutement 2.0 (1ère partie)L'atelier e-Recrutement 2.0 (1ère partie)
L'atelier e-Recrutement 2.0 (1ère partie)
Patrice Malaurie
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à Git
Pierre Templier
 
Annonces du french scrum user group v1.2
Annonces du french scrum user group   v1.2Annonces du french scrum user group   v1.2
Annonces du french scrum user group v1.2Xavier Warzee
 

En vedette (20)

Ippevent - Regarde les instances tomber - 20 mai 2014
Ippevent - Regarde les instances tomber - 20 mai 2014Ippevent - Regarde les instances tomber - 20 mai 2014
Ippevent - Regarde les instances tomber - 20 mai 2014
 
Pierre et Alexandre
Pierre et AlexandrePierre et Alexandre
Pierre et Alexandre
 
2010 presentation ippon_corp
2010 presentation ippon_corp2010 presentation ippon_corp
2010 presentation ippon_corp
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
 
Malakocktail 72 (été 2013)
Malakocktail 72 (été 2013)Malakocktail 72 (été 2013)
Malakocktail 72 (été 2013)
 
Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016
 
Accessibilité & e-recrutement
Accessibilité & e-recrutementAccessibilité & e-recrutement
Accessibilité & e-recrutement
 
DevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - SpinnakerDevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - Spinnaker
 
Nouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale IpponNouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale Ippon
 
Introduction à Cassandra
Introduction à CassandraIntroduction à Cassandra
Introduction à Cassandra
 
Développer et déployer dans le cloud
Développer et déployer dans le cloudDévelopper et déployer dans le cloud
Développer et déployer dans le cloud
 
De Devoxx au CAC40
De Devoxx au CAC40De Devoxx au CAC40
De Devoxx au CAC40
 
JHipster à Devoxx 2015
JHipster à Devoxx 2015JHipster à Devoxx 2015
JHipster à Devoxx 2015
 
HTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilitéHTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilité
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
 
Requêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraRequêtes multi-critères avec Cassandra
Requêtes multi-critères avec Cassandra
 
L'atelier e-Recrutement 2.0 (3eme partie)
L'atelier e-Recrutement 2.0 (3eme partie)L'atelier e-Recrutement 2.0 (3eme partie)
L'atelier e-Recrutement 2.0 (3eme partie)
 
L'atelier e-Recrutement 2.0 (1ère partie)
L'atelier e-Recrutement 2.0 (1ère partie)L'atelier e-Recrutement 2.0 (1ère partie)
L'atelier e-Recrutement 2.0 (1ère partie)
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à Git
 
Annonces du french scrum user group v1.2
Annonces du french scrum user group   v1.2Annonces du french scrum user group   v1.2
Annonces du french scrum user group v1.2
 

Similaire à 20100225 Ippon Osgi Are You Ready

Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Christian Charreyre
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
sahar dridi
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
Arnaud Héritier
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
Marwa OUNALLI
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
Julien Wittouck
 
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
DNG Consulting
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
Arnaud Héritier
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
MamadouHadyBah
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
Noel GUILBERT
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
Esokia
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
Romain Cambien
 
M1 presentation OSGi
M1 presentation OSGiM1 presentation OSGi
M1 presentation OSGi
Velossity
 
cours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfcours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdf
ssuser192642
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravo
Soumia Brabije
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
JEAN-GUILLAUME DUJARDIN
 
Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)Cyrille Le Clerc
 
Procédure de dépoiement d'une application Cloud sur Azure.pdf
Procédure de dépoiement d'une application Cloud sur Azure.pdfProcédure de dépoiement d'une application Cloud sur Azure.pdf
Procédure de dépoiement d'une application Cloud sur Azure.pdf
ssuser1d2a6b
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
Microsoft Technet France
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
vincent aniort
 

Similaire à 20100225 Ippon Osgi Are You Ready (20)

Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
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
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
M1 presentation OSGi
M1 presentation OSGiM1 presentation OSGi
M1 presentation OSGi
 
cours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfcours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdf
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravo
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)Soirée OSGi au Paris Jug (14/10/2008)
Soirée OSGi au Paris Jug (14/10/2008)
 
Procédure de dépoiement d'une application Cloud sur Azure.pdf
Procédure de dépoiement d'une application Cloud sur Azure.pdfProcédure de dépoiement d'une application Cloud sur Azure.pdf
Procédure de dépoiement d'une application Cloud sur Azure.pdf
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
 

Dernier

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (9)

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

20100225 Ippon Osgi Are You Ready

  • 1. Document confidentiel - Ce document est la propriété exclusive d’Ippon Technologies et il ne peut être reproduit, publi é ou divulgu é sans son autorisation préalable Sommaire Effectifs par agence OSGi Are You Ready ? 25 Février 2010 Arrault Fabien Ippon Technologies
  • 2.
  • 3.
  • 4. A chaque réutilisation ou distribution de cette création, vous devez faire apparaître clairement au public les conditions contractuelles de sa mise à disposition sous licence identique Creative Commons Share Alike.
  • 5. Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits sur cette œuvre.
  • 6. Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs.
  • 7.
  • 8. Il est défini par l'OSGi Alliance, consortium d'industriels fondé en 1999
  • 9.
  • 10. Cette techno est maintenant utilisée comme socle technique interne de la plupart des serveurs d'applications ou d'IDE comme Eclipse
  • 11.
  • 12.
  • 13. Leurs mises en oeuvre avec dm Server
  • 14. OSGi et les applications de gestion ?
  • 15.
  • 16.
  • 17. Ce sont de archives java classiques (JARs) pour lesquelles le manifest contient des méta-données supplémentaires : Manifest-Version : 1.0 Bundle-ManifestVersion : 2 Bundle-Version : 1.0.0 Bundle-Name : Hello_world Bundle Bundle-SymbolicName : hello_world Bundle-Activator : com.ippon.osgi.Activator Import-Package : org.osgi.framework
  • 18.
  • 19.
  • 20. Un bundle doit importer les packages java externes dont il a besoin Imports package com.B Exports package com.B Imports package com.C Exports package com.C
  • 21.
  • 22. Import-Package Manifest-Version : 1.0 Bundle-ManifestVersion : 2 Bundle-Version : 2.1.6 Bundle-Name : Logutil Bundle Bundle-SymbolicName : logutil Export-Package : com.ippon.osgi.util; version =2.1 Import-Package : org.apache.log4j; version =&quot;[1.2.15,1.2.15]&quot;
  • 23.
  • 24.
  • 25.
  • 26. Le « Service Registry » permet aux bundles d'exposer ou de rechercher puis utiliser des services http://www.osgi.org/About/WhatIsOSGi
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Mais un mécanisme de filtre permet aux bundles clients d'utiliser aussi les property pour sélectionner le ou les services qui les intéressent parmi les différents candidats
  • 32.
  • 34.
  • 35. A influencer très fortement la création de la spécification OSGi nommée « Blueprint Container ». La v2 est d'ailleurs son implémentation de référence
  • 36.
  • 37. Import d'un service dans le contexte Spring : < beans xmlns = &quot;http://www.springframework.org/schema/beans&quot; xmlns:osgi = &quot;http://www.springframework.org/schema/osgi&quot; > < bean id = &quot;helloworldservice&quot; class = &quot;com.ippon.osgi.hello.HelloWorldSingleton&quot; /> < osgi:service ref = &quot;helloworldservice&quot; interface = &quot;com.ippon.osgi.publichello.HelloWorldService&quot; /> </ beans > < beans xmlns = &quot;http://www.springframework.org/schema/beans&quot; xmlns:osgi = &quot;http://www.springframework.org/schema/osgi&quot; > < osgi:reference id = &quot;helloworldservice&quot; interface = &quot;com.ippon.osgi.publichello.HelloWorldService&quot; /> < bean id = &quot;consumer&quot; class = &quot; com.ippon.osgi.client.HelloConsumer &quot; > < property name = &quot;service&quot; ref = &quot;helloworldservice&quot; /> </ bean > </ beans >
  • 38.
  • 39. Réutilisation d'une implémentation : couplage assez fort
  • 40.
  • 41. On ne partage pas une implémentation, on obtient la référence à un objet avec lequel collaborer
  • 42. Permet un remplacement dynamique du service : nouvelle implémentation ou nouvelle configuration, etc …
  • 43.
  • 44. Les dépendances peuvent exprimer des contraintes sur les versions nécessaires
  • 45.
  • 46. Il exporte un package en version 2.1
  • 47. Il importe le package org.apache.log4j avec une contrainte sur la version : minimum 1.2.15 et strictement inférieure à 1.3 Manifest-Version : 1.0 Bundle-ManifestVersion : 2 Bundle-Version : 2.1.6 Bundle-Name : Logutil Bundle Bundle-SymbolicName : logutil Export-Package : com.ippon.osgi.util; version =2.1 Import-Package : org.apache.log4j; version =&quot;[1.2.15,1.3)&quot;
  • 48.
  • 49.
  • 50. SpringSource dm Server Mise en oeuvre OSGI avec SpringSource dm Server
  • 51.
  • 52. Premier serveur d'applications java dont le but est de proposer les fonctionnalités de OSGi aux applications hébergées
  • 53.
  • 54. La création du projet a été « approuvée » hier (24/02)
  • 55.
  • 56.
  • 57. Sans être obligatoire, le développement avec ces deux frameworks est facilité
  • 58.
  • 59.
  • 60. L'url est : http://www.springsource.com/repository/app/
  • 61. Attention, le repository est ouvert mais le packaging des librairies est toutefois spécifique à SpringSource ( et pas forcément compatible avec d'autres repository )
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. War allégé et librairies partagées : le war n'inclue plus les lib, il utilise les mécanismes OSGi pour déclarer ces dépendances. Les librairies sont partagées par toutes les applications.
  • 68. War consommateur de services : idem avec utilisation de services exposées via OSGi Schéma extrait de http://static.springsource.org/s2-dmserver/2.0.x/programmer-guide/html/ch05.html#migrating-to-osgi-web
  • 69.
  • 70. Cela pourra peut-être inciter les serveurs d'application commerciaux à faire de même et promouvoir ce modèle de développement
  • 71. Démo Démonstration : Déploiement de quelques bundles sous dm Server Et mise en oeuvre des concepts de base de OSGi
  • 72. OSGi et les applications de gestion ?
  • 73.
  • 74. Utilisant un grand nombre de librairies Open Source et en particulier Spring Framework
  • 76. Organisation : un ou plusieurs équipes de dev avec plus ou moins de débutants
  • 77. Une équipe de production qui installe et gère l'application
  • 78.
  • 79.
  • 80.
  • 81. mais au prix d'un couplage fort avec celui-ci : on devient ainsi dépendant de son cycle de mise à jour et sa complétude
  • 82.
  • 83.
  • 84.
  • 85. Intéressant surtout si plusieurs équipes interagissent
  • 86.
  • 87. ils réduisent voire éliminent la complexité de gestion de dépendance
  • 88. Mais comme par défaut ils exportent tous les packages du bundle et importent tous les packages dont il a besoin, certains pourront ne pas tirer parti du contrôle d'accès
  • 89.
  • 90.
  • 91. Hors exposer simultanément différentes versions d'un service (associé aux versioning de leurs dépendances) est souvent problématique dans une approche classique.
  • 92.
  • 93. en production : les processus de livraison sont souvent gérés par des équipes différentes avec passage par une phase de qualification qui rend difficile la livraison d'une partie de l'application
  • 94.
  • 95. Des approches classiques de type Proxy dynamique permettent de gérer ce use case (côté client)
  • 96.
  • 97.
  • 98.
  • 99.
  • 100. Leurs utilisations nécessitent parfois des adaptations ou sont soumises à certaines contraintes
  • 101. Elles ne sont pas pré-packagés
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107. La plupart du temps, c'est souvent un détail transparent pour les développeurs
  • 108. Mais les cas aux limites seront difficiles à comprendre/gérer pour des développeurs non aguerris
  • 109.
  • 110.
  • 111. Difficile d'avoir de la visibilité sur l'utilisation d'OSGi sur des projets avec un minimum d'envergure
  • 112. Le plus gros point est le manque d'expertise et de support pour des projets critiques
  • 113.
  • 114.
  • 115. Sensibiliser les équipes de dev et de prod à cette alternative grandissante
  • 116.
  • 117.