OpenESB Libre, standard, outillé, documenté et supporté Alexis Moussine-Pouchkine Sun Microsystems, Inc. Constat • Les projets d'intégration sont mono-éditeur • Est-ce viable à long terme? Quel(s) Standard(s) pour l'intégration? JBI (Java Business Integration) • Standard JSR 208 issu du JCP • Architecture de plug-in pour: > “Service Engines”: logique métier > “Binding Components”: protocoles de communication • Cycle de vie des composants • Modèle de déploiement standard • Couplage lâche au travers de services décrits en WSDL • Implémentations: OpenESB, Petals, ServiceMix, ... Service Engine & Binding Components Transformation (XSLT) Java EE Normalized Normalized Message Message Router Router (NMR) WS-I BP SOAP AS2 JMS Java EE JBI Core Services System Management Orchestration (BPEL) Autres standards pour l'intégration • Présents > WS-* (Profils WS-I) et REST (HTTP) > JAX-WS 2.x • Futurs > Open SOA (ex-SCA) > http://www.osoa.org > http://www.oasis-opencsa.org > JBI 2.0 (JSR 312) prévu pour ~mi-2008 > Plus de dépendance WSDL, versioning services, intercepteurs, ... > “Alignment with the Service Component Architecture (SCA) specifications with the goal of making JBI 2.0 a standard Java runtime for SCA” OpenESB • ESB (Enterprise Service Bus) libre et conforme à JBI 1.0 > Bus d'intermédiation pour les applications composites > Conçu pour étendre les capacités de GlassFish (Sun AS) Architecture OpenESB “Fondations” GlassFish • Web Service “Metro” > Pile complète et intégrée pour Web Services: WS-I Basic Profile et standards WS-* (sécurité, fiabilité, transactions, ...) • Performance > Benchmark SPECjAppServer place GlassFish 10% devant WebLogic et 30% devant WebSphere (JBoss = ??) • Administration > Centralisée et complète (JMX) • Clustering > Intégré dand le coeur du produit > Simple de mise en oeuvre et d'administration JavaEE Service Engine • Idéal pour héberger la logique métier • Pont entre les conteneurs JavaEE et JBI • Propose le support > des transactions > de pools de ressources > de la sécurité • Réutilisation de code > Invocation de la logique EJB/Web depuis des composants OpenESB (BPEL Service Engine) > MDB ou Servlet appelant un processus BPEL > Invocation de logique Java EE avec des transports JMS, FTP, SMTP, ... Capacités OpenESB • Service Engines • Binding Comps > > > > > > > BPEL XSLT Java EE IEP (BAM) ETL SQL Workflow > > > > > > > > > > > MQSeries HL7 SAP SMTP HTTP (+REST) JMS File CICS DCOM CORBA ... • Autres > > > > Clustering CASA JBI Mock WSIT Tech • En cours > > > > > CAM Aspect SE Encoding SE Rules SE Scripting SE BPEL Service Engine • Standards > BPEL 2.0 > WSDL1.1 • Configuration > Nombre threads > Persistance > Failover • Editeur BPEL > BPMN > Debugger IEP (Intelligent Event Processing) • Création et déploiement d'un analyseur d'événement • Collection et notification d'événement en temps réel • Gestion des événements en temps réel > Langage de requêtage continu > Agrégation > Filtrage > Corrélation > Partition Ecosystème JBI JBI comme assurance vie pour le produit et ses utilisateurs NetBeans Outillage OpenESB : NetBeans • • • • • • • BPEL Module project XSLT Module project SQL Module project Composite Application project IEP Module project Worklist Module project ETL (Extract, Transform, and Load) Documentation OpenESB • Composite Applications > > > Creating a "Hello World" Composite Application Creating a Loan Processing Composite Application Creating a Simple SOA Application With NetBeans • Business Process Execution Language (BPEL) > > > > > > Developer Guide to the BPEL Designer Understanding the Travel Reservation Service Developing a Simple Asynchronous BPEL Process Developing a Simple Synchronous BPEL Process Using Correlation Sets, Properties, and Property Aliases in BPEL XPath Functions and Operations in the BPEL Mapper • WSDL Editor > > Developer Guide to the WSDL Editor Introducing the WSDL Editor's Partner View • XML Schema Tools > Getting Started With XML Schema Tools • XSLT Designer > > XSLT Designer Quick Start Guide Working With a Service Bridge XSL Transformation Service • Intelligent Event Processing > > Intelligent Event Processing Quick Start Guide Developer Guide to the Intelligent Event Processor • Identity > > Securing Web Services Using the SAML or UserNameToken Profiles JBI Component Technical Overview • Binding Component User's Guides > > > > > > > File Binding Component User's Guide FTP Binding Component User's Guide HTTP Binding Component User's Guide JDBC Binding Component User's Guide JMS Binding Component User's Guide SMTP Binding Component User's Guide WebSphere MQ Binding Component User's Guide • Service Engines User's Guides > > > > BPEL Service Engine User's Guide Java EE Service Engine User's Guide SQL Service Engine User's Guide XSLT Service Engine User's Guide De SeeBeyond à Java CAPS en passant par OpenESB • 2005: Rachat par Sun de SeeBeyond > Leader SOA > Architecture J2EE 1.4 > ICAN = Integrated Composite Applications Network • 2006/2007: OpenESB > Architecture GlassFish (Java EE 5) & JBI > Outillage NetBeans > Open Source! • 2008: JavaCAPS > “Powered by OpenESB and GlassFish” Open ESB vs. Java CAPS • Open ESB 2.x • Java CAPS 5.2 > Runtime JBI > Runtime JBI + Runtime > GlassFish v2.x > Tous les composants > > OpenESB > Outillage NetBeans v6 > Evolution permanente > Support communautaire > Beta 3 disponible > > > > JavaCAPS 5.1 GlassFish v2.x Sous-ensemble des composants OpenESB Outillage NetBeans v6 (incl Enterprise Designer) Stable pour production Support Sun 2008H1 Démonstration Liens • • • • http://open-esb.org http://wiki.open-esb.java.net http://netbeans.org http://glassfish.org [email protected] http://blogs.sun.com/alexismp