Nuxeo Runtime Bogdan Stefanescu - Solutions Linux 2007



Documents pareils
1 JBoss Entreprise Middleware

JOnAS Day 5.1. Outils de développements

Java pour le Web. Cours Java - F. Michel

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Un business model d éditeur open source

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

ECLIPSE RCP. Introduction

JOnAS 5 Enterprise OSGi javaee compliant

Toutatice, une plateforme Portail/ECM open source pour la publication de contenus et de services métiers


SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

2.1 Liferay en un clin d'oeil Forces, faiblesses, opportunités et menaces Résumé de notre évaluation... 5

Serveur d'application à la juste taille

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

L'automatisation open source pour SI complexes

Famille IBM WebSphere Application Server

Applications distribuées: le retour du client "riche"

JOnAS 5. Serveur d application d

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Mise en œuvre des serveurs d application

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Environnements de Développement

WEBSPHERE & RATIONAL. Jacques Rage

Le moteur de workflow JBPM

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Open Source & Innovation exo Platform Oualid Chaker,

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Configuration Interface for MEssage ROuting

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Petit Déjeuner Pépinière du Logiciel Libre. 25 juin 2008

Rendez-vous la liberté avec Rational Quality Manager

EXA1415 : Annotations

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Nuxeo 5.4 : les nouveautés

JASMINe, smart tool for your SOA platform management

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

Direction des Technologies de l Information. Présentation OCDE. Contribution du Parlement européen. L utilisation de l OPEN SOURCE au PE

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

PRODUCTS LIST (updated 11th January 2010)

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

Modernisation et développement d applications IBM i Stratégies, technologies et outils

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Catalogue des Formations Techniques

J2EE in practice. Olivier Liechti Patrik Fuhrer. Department of Informatics. Computer Science Master Course - SH 2004/05

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

Présentation Alfresco

LES SOLUTIONS OPEN SOURCE RED HAT

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Introduction à la plateforme J2EE

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Celui qui vous parle. Yann Vigara

Pierre Racine Professionnel de recherche Centre d étude de la forêt Département des sciences du bois et de la forêt, Université Laval, Québec

Notre Catalogue des Formations IT / 2015

Intégration de l interface graphique de Ptidej dans Eclipse

Fiche de l'awt Intégration des applications

L ECM. Un exemple avec Alfresco. Paul HAING IR3 Le Jeudi 18 Janvier 2011

Refonte front-office / back-office - Architecture & Conception -

Plateforme IoT flexible et configurable:

Glossaire Produit, Solution (éventuellt sur Web20) et Services TIC

Projet de développement

Plateformes de gestion de contenu: l'évolution de la Gestion de Contenu d'entreprise (ECM)

Logiciels libres et Open source

SFR utilise la version JBoss EAP de Red Hat

Industrialisation du déploiement d'applications et de socles techniques

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Jean-Philippe VIOLET Solutions Architect

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

JASMINe. Outils de gestion et supervision d'infrastructure intergicielle.

Introduction au Déploiement

PRESENTATION D ADOBE LIVECYCLE ES4

Analyse comparative entre différents outils de BI (Business Intelligence) :

JOnAS Day 5.1. Clustering

Messagerie asynchrone et Services Web

RMLL Présentation Activité Pentaho

IBM Business Process Manager

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Cedric Dumoulin (C) The Java EE 7 Tutorial

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

IBM CommonStore for SAP V8.4 fournit un nouveau support complet pour ILM à partir de la gestion de la rétention des données SAP

1. Installation d'un serveur d'application JBoss:

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Silk Central Notes de Release

Qu'est-ce que le BPM?

Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé

Maîtrisez la modernisation de votre patrimoine applicatif

CHEF DE PROJET - DÉVELOPPEUR EXPÉRIMENT É PHP - JAVA -.NET. 28 ans - 7 ans d'expérience

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Logiciels Open Sources et le Secteur Privé

J2EE - Introduction. Développement web - Java. Plan du chapitre

Installation de IBM SPSS Modeler Server Adapter

Transcription:

Nuxeo Runtime Bogdan Stefanescu - Solutions Linux 2007

Qui suis-je? Bogdan Stefanescu mailto:bs@nuxeo.com Architecte / Team Leader chez Nuxeo http://www.nuxeo.com/ Lead Architect et Team Leader du projet Apogée http://apogee.nuxeo.org/ Lead Architect de Nuxeo Runtime et des projets ECM Core http://www.nuxeo.org/

Plan Nuxeo Runtime - Introduction Court historique Inconvénients de J2EE Qu'est-ce? Fonctionnalités OSGi Qu'est-ce que OSGi? OSGi Bundle Manifest Nuxeo Runtime - Implémentation Packaging Composants, points d'extension Plans futurs

Nuxeo Runtime - court historique Nuxeo a migré de Python (Zope) vers Java CPS est un produit ECM open source très dynamique et configurable CPS a été complètement réécrit en Java EE Nuxeo EP 5 est la nouvelle génération de CPS basée sur les dernières avancées technologiques Java EE JBoss Application Server EJB3, JSF, JBoss Seam Nuxeo est donc passé d'une platforme très dynamique à une technologie plus puissante, mais moins flexible Comment retrouver la même flexibilité qu'avant? Nuxeo Runtime!

Inconvénients de Java EE Manque de flexibilité au niveau du déploiement Les descripteurs des modules (XML) ne permettent pas la fragmentation des modules Références en dur vers les noms des packages dans les descripteurs XML des modules ou dans le code Impossible de rajouter une fonctionnalité sans devoir reconstruire et redéployer entièrement l'application Pas de modèle d'extensions (plugins) Impossible de rajouter dynamiquement des extensions sans modifier les modules déjà déployés Pas de notion de dépendance entre modules Pas de support pour le versioning des modules Modules difficilement réutilisables sur autres platformes non Java EE

Nuxeo Runtime? Un modèle de composants extensibles et déployables partout Rassemble des concepts déjà existants pour un gain en flexibilité et en dynamisme dans les applications Java (EE) Composants descriptifs et points d'extensions OSGi Infrastructure technique de Nuxeo 5 Definit le modèle de composants utilisé par Nuxeo 5 Assure le dynamisme et la flexibilité perdus lors du passage à JEE Rend les composants multi-plateformes Le cœur de Nuxeo 5 fonctionne sur JBoss AS et Eclipse RCP (Equinox) sans aucune modification ni recompilation

Nuxeo Runtime Nuxeo 5 Nuxeo 5 Core Security Service LifeCycle Service Type Service (Schemas) Repository Service (JCR) Query Service (NXQL) Nuxeo Runtime Nuxeo OSGi Adapter JBoss AS Eclipse (framework OSGi) Autre framework OSGi

Nuxeo Runtime Nuxeo 5 Nuxeo Core Adapter Service Blog Adapter Blog Module Blog Extensions Type Service Blog Document Storage Module Storage Service JackRabbit Strorage

Nuxeo Runtime Nuxeo 5 Nuxeo RCP - Eclipse Nuxeo ECM - Web RCP UI Infrastructure Web Infratructure ECM Client API Nuxeo Ecm - Core Nuxeo Enterprise Platform ECM Client API NXRuntime Core Services NXRuntime Repository Storage NXRuntime

Nuxeo Runtime fonctionnalités Modularité les composants peuvent être installés et désinstallés à tout moment et dans n'importe quel ordre sans affecter le reste de l'application Extensibilité les composants peuvent contribuer de nouvelles fonctionnalités à d'autres composants ou même les remplacer Compatibilité OSGi Nuxeo Runtime peut être installé sur n'importe quelle platforme compatible OSGi et utilise le modèle de bundle OSGi Deployable partout Nuxeo Runtime peut être installé sur n'importe quelle platforme dès qu'un adapteur OSGi existe

Nuxeo Runtime remoting NXRuntime apporte un système de déploiement multimachines pour faciliter la mise en place d'architecture Java EE modulaires et distribuée Registry de composant partagée Distribution des extensions et des ressources associées aux machines du cluster Détection automatique des nouveaux noeuds Posibilite de remplacer le système de communication et detection par des protocoles tels que Jgroups ou JXTA Cluster de composants Nuxeo Runtime Accès aux composants depuis des machines distantes

OSGi c'est quoi? OSGi = Open Services Gateway initiative http://www.osgi.org/ Un ensemble de spécifications définissant une plateforme de services pour Java Principales fonctionnalités Déploiement modulaire basé sur deux types de modules nommés bundles (archives.jar) et fragments (fragments d'un bundle maître) qui contiennent un MANIFEST spécifique Un module (ou bundle) OSGi peut définir plusieurs services (ou composants) Un module est identifié par un nom symbolique unique. Exemple: org.nuxeo.ecm.core Un module peut déclarer des dépendances sur d'autres modules

OSGi - Bundle Manifest Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Nuxeo ECM Core Bundle-SymbolicName: org.nuxeo.ecm.core;singleton:=true Bundle-Version: 1.0.0 Bundle-Vendor: Nuxeo Bundle-Localization: bundle Bundle-Activator: org.nuxeo.ecm.core.nxcoreactivator Bundle-ClassPath:., lib/xsom.jar, lib/connector-api.jar, lib/java-cup-v11a.jar Export-Package: org.nuxeo.ecm.core, org.nuxeo.ecm.core.api, org.nuxeo.ecm.core.api.local, org.nuxeo.ecm.core.jca, org.nuxeo.ecm.core.lifecycle, org.nuxeo.ecm.core.model Require-Bundle: org.nuxeo.ecm.core.api, org.nuxeo.runtime Nuxeo-Component: OSGI-INF/CoreService.xml, OSGI-INF/TypeService.xml, OSGI-INF/RepositoryService.xml, OSGI-INF/CoreExtensions.xml, OSGI-INF/SecurityService.xml

Nuxeo Runtime implémentation Packaging Les composants Points d'extension Platformes supportées Toutes platformes compatible OSGi (dont Eclipse) JBoss Application Server

Nuxeo Runtime packaging Le packaging se fait sous forme de bundles OSGi Un module (ou bundle) peut définir plusieurs composants Un composant est défini par l'intermédiaire d'un fichier descriptif XML Nuxeo Runtime peut aussi être utilisé en dehors d'une platforme OSGi Ceci simplifie le test des composants mais aussi l'intégration dans n'importe quel type d'application Java Ouvre la possibilité d'intégration avec des plateformes basiques telles que Tomcat

Nuxeo Runtime les composants Chaque composant est défini par un descripteur XML Un composant peut déclarer des dépendances sur d'autres composants Le composant va être installé et démarré seulement quand toutes ses dependances auront été resolues Les composants sont desinstallés dans l'ordre inverse de leur installation Un composant peut déclarer plusieurs point d'extensions pour permettre à d'autres composants de contribuer des extensions Un composant peut déclarer plusieurs extensions pour n'importe quel composant qui définit des points d'extension

Descripteur XML <?xml version="1.0"?> <component name="org.nuxeo.ecm.core.schema.typeservice"> <implementation class="org.nuxeo.ecm.core.schema.typeservice"/> <extension-point name="doctype"> <object class="org.nuxeo.ecm.core.schema.documenttypedescriptor"/> </extension-point> <extension-point name="schema"> <object class="org.nuxeo.ecm.core.schema.schemabindingdescriptor"/> </extension-point> <extension-point name="schema"> <object class="org.nuxeo.ecm.core.schema.schemabindingdescriptor"/> </extension-point> <extension target="org.nuxeo.ecm.core.api.coreservice" point="sessionfactory"> <factory class="org.nuxeo.ecm.core.api.local.localsessionfactory" /> </extension> </component>

Nuxeo Runtime points d'extension Les points d'extension sont inspirés du mécanisme d'extension utilisé par Eclipse Un point d'extension est déclaré par un composant et permet l'extension du composant depuis l'extérieur D'autres composants peuvent ajouter des extensions au composant qui déclare des points d'extensions Cela permet l'ajout des nouvelles fonctionnalités ou la configuration d'un composant depuis l'extérieur et d'une manière flexible, sans modifier le code du composant ou le réinstaller Une application devient un ensemble de composants qui s'étendent mutuellement!

Points d'extensions Bundle 1 XPoint1 Composant 1 Composant 2 XPoint2 Extension Extension Bundle 2 Composant 3 Bundle 3 XPoint1 Composant 4 Composant 5 Extension XPoint1 Composant 6 XPoint2

Nuxeo Runtime l'avenir Versioning Gérer les versions des composants dans les dépendances Alignement avec les services descriptifs OSGi Plus de serveurs d'application supportés GlassFish (Reference Implementation) Apache Geronimo (OSGi) BEA WebLogic

Merci!