Open Source Service Oriented Architecture with Adrien LOUIS Chief architect EBM WebSourcing
Agenda SOA et ESB PEtALS un ESB européen Open Source La suite PEtALS Démo Roadmap
De la SOA... Quelques cas métiers Une grande administration cherche à ouvrir rapidement son Système d'information à ses partenaires, suite à de nouvelles règles de régulation Un consortium industriel propose des services à valeur ajoutée en orchestrant les services fournis par ses membres Une compagnie souhaite structurer son Système d'information dans une optique de réutilisation et de communication entre ses applications SOA : une façon incrémentale de faire évoluer un Système d'information vers l'indépendance des services, leur réutilisation, l'interopérabilité la modélisation et l'orchestration des processus métier (BPM)
... vers l' ESB L'instanciation d'une SOA instantiation passe par les 3 axes suivant : une approche orientée processus (BPM) une méthodologie pour identifier, modéliser et réutiliser les services (SOA governance) une infrastructure de services (ESB) Un ESB (Enterprise Service Bus), basé sur des standards tels que Java, JBI, et les Web Services représente la bonne technologie pour instantier une SOA
ESB : l'infrastructure de la SOA Un ESB réponds à tous les aspects non-fonctionels inherent à l'exposition de services en dehors du périmètre d'une application Service Level Agreement Securité Support des communications asynchrones Communication faiblement couplée Supervision et monitoring des échanges Robustesse, scalabilité,et load balancing des services De plus, un ESB permet d'accéder à des services propriétaires par une communication standardisée Enfin, un ESB est fourni avec un annuaire (UDDI, ebxml) ou s'intègre à l'annuaire de l'entreprise fourni un orchestrateur (BPEL) pour créer des services composites
Caractéristiques d'un ESB Caractéristiques de base XML, messaging, transformation, routage intelligent Connecteurs basiques (Web Services, J2EE connectors, JMS) Déploiement hautement distribué Administration Caractéristiques à valeur ajoutée Sécurité Robustesse Scalability et performance Large gamme de connecteurs outillage pour le déploiement et le développement
L' ESB par domaines Interface Exposition et appel de services (l'esb représente un proxy entre un consommateur et un fournisseur) Connecteurs Distribution et routage les appels de services sont routés vers le bon fournisseur Content Based routing Qualité de Service Transformation Transformer les données du format d'une application à celui d'une autre Exemple : transformation XSLT Orchestration Assembler des services pour créer des services à valeur ajoutée Administratation gestion du cycle de vie des Services
JBI : un standard pour l'esb JBI: Java Business Integration Definie par la JSR 208 Le standard Java pour la création de solutions d'intégration Basée sur l'état de l'art des Web Services Un conteneur à base de plugins un environnement JBI est un conteneur de conteneurs Permet de relier des composants JBI Un environnement pour gérer l'intégration et la configuration de ses composants Un conteneur basé sur l'échange messages échanges de message faiblement couplés description des services en WSDL messages au format XML
JBI : a standard for ESB Services externes XSL XSL Process Process EJB EJB Artifacts SOAP HTTP JMS MOM AS1/AS2 EDI XSLT BPEL EJB container Components JBI JBI container 2 types de composants : Service Engines: fournissent de la transformation et d'autres services d'intégration Binding Components: connecteurs vers des ressources externes
JBI en trois points Plugin based environment Provide the ability to tailor your integration solution to fit your needs Loosely coupled communication Based on WSDL for the Service description language Payload is XML Easily integrates with Web Services A JBI container must support at least one implementation of a WS-I Basic Profile BindingComponent
Agenda ESB Proposal for a definition PEtALS The European Open Source ESB Inside PEtALS Demo Roadmap
Identity card Project created in June 2005 Hosted by ObjectWeb Lead by EBM Websourcing Available at http://petals.objectweb.org Supported by the JonES project Version 1.0 reached in September 2006 More than 500 downloads per month and increasing... Version 1.1 reached in January 2007
Distributed JBI containers for a unified integration From JBI Business Services Business Services WS-BPEL JBI Env. JBI Env. XSLT To distributed JBI PEtALS WS-BPEL JBI Env. Centralized Administration and Monitoring Business Services Business Services Distributed registry
Objectives Support highly distributed deployments Focus on monitoring and manageability Support standard based connectivity Web Services (Axis supported), J2EE (integration with JonAS and JBoss), JMS (JORAM, MQ,...) Propose out of the box packaging Service infrastructure Routing Security and firewall pass-through patterns Monitoring Process orchestration solution BPEL engine XSLT and Xpath transformation engine Content based routing Interfaces with J2EE container (JonAS and JBoss) Interfaces with Workflows Engines for user interaction (Bonita and Shark) B2B integration solution focuses on specific Binding Components Odette FTP via integration of ObjectWeb odettej Integrate ebxml binding Integrate AS1, AS2 binding
Agenda ESB Proposal for a definition PEtALS The European Open Source ESB Inside PEtALS Demo Roadmap
PEtALS - Components The JBI container Service infrastructure Plugin-based system SLA, QoS, and Bus Monitoring Connectors (Binding Components) For standard middlewares : FTP, Mail, Web Services, JMS Integration engines (Service Engines) Orchestration (integration of Orchestra, Open source project from BULL) Transformation and data enrichment (XSLT engine, CSV engine,...) Demonstrators Mortgage Travel Agency Rent A Car
Component Development Kit Component Development Kit is a major element of PEtALS Objectives are to ease the development of new components to provide the basis to develop full JBI compliant components It contains abstract component classes with multi-threaded processing support utilities to handle WSDL description, JBI message contents mechanism to manage component configuration (ServiceUnit mgt) Components created with this CDK run on other JBI containers No dependency on PEtALS internal, only dependent of JBI APIs All components provided with PEtALS 1.1 are built using this framework
Configuration tool under development Collaborative work with BULL R&D
Other tools under development Wizards to create JBI components with the CDK JBI deployment descriptor editor PEtALS server integration as a Server With deployment and debugging features These tools will be available with the PEtALS 1.2 release
Monitoring and administration tool
Agenda ESB Proposal for a definition PEtALS The European Open Source ESB Inside PEtALS Demo Roadmap, Support and Professional Services
A Travel agency application Online travel booking web site From a web site, a customer books a flight and an hotel room. A confirmation email is sent back to the customer Services from the Airline company are accessible via Web Services Hotel booking service is accessible via JMS Service orchestration is done by a workflow engine Email confirmation is sent by the Mail-Component «Build an SOA application from existing services» article Adrien LOUIS - Java World
Integration with PEtALS Components Installation Online Book Travel Airline company web services Hotel JMS services SOAP, JMS Workflow, email
Integration with PEtALS Service assembly deployment Components are configured Web Site Airline web services Hotel JMS services SOAP BC JMS BC Workflow Engine Mail Engine
Integration with PEtALS Application is ready Links between components and external services are created. Web Site Airline web services Hotel JMS services SOAP/HTTP SOAP/HTTP JMS SOAP BC JMS BC Workflow Engine Mail Engine
Agenda ESB Proposal for a definition PEtALS The European Open Source ESB Inside PEtALS Demo Roadmap
PEtALS and the competition Other open source ESBs ServiceMix, Open ESB, Mule PEtALS license is LGPL PEtALS is fully built in respect to the specification PEtALS JBI components run on any container, whereas some competition JBI components are specifics PEtALS extends the specification scope with technological innovations Highly distributed PEtALS is being integrated in a larger SOA package with other ObjectWeb projects (SCOrWare) PEtALS is the only one to be developed in Europe
RoadMap Septembre 2006 : Release of version 1.0 500 downloads per month since then Two large European administrations already evaluated performances to start projects by this year January 2007 : Release of version 1.1 Creation of a component development framework Eases the development of 100% JBI components Better performance and robustness February 2007 : Release of version 1.2 Administration and monitoring web application BPEL engine with Orchestra March 2007 : Release 1.3 JBI TCK certified! Integration of PEtALS in J2EE application servers : JOnAS and JBoss,... Spring 2007 : Release of new Eclipse based development tools in the STP project September 2007 : Release of version 2 Integration with Commercial Integration Platform : IBM, Tibco and BEA
Thank you for your attention EBM WebSourcing 10, avenue de l Europe Parc Technologique du Canal 31 520 Ramonville St Agne : 05 61 28 56 20 : 05 62 24 40 90 Adrien LOUIS adrien.louis@ebmwebsourcing.com contact@ebmwebsourcing.com www.ebmwebsourcing.com Much more to come! Stay tuned!
good morning, my name is adrien louis, i work for (i)ebm websourcing, which is a startup located in Toulouse. i m going to present you PETALS, an enterprise service bus based on the JBI specification.
My introduction deals with the SOA and ESB concepts, Then, I will present you the PETALS enterpise service bus, Next, we'll see the different parts of the PETALS project. After that, I will show you an example of integration with PETALS. To conclude a brief description of the PETALS roadmap
So, why an SOA can be useful? I just give you some business cases to illustrate the SOA approach. X X X For each of these examples, you have to integrate existing or new functionalities in your Information System The SOA is a way to make xxxxxxxxx
SOA is a concept that instantiation is based on 3 pilars: X youneed to specify your business processes X X We think that an ESB, which is based on standards like JAVA JBI an webservices is the right...
What can we expect from an ESB? X X X X Furthermore... so you can re use your legacy systems and make them participating to your new Service Oriented Arch finally
there are fundamental characteristics that an ESB has to provide, such as * * * * Then, you have value added characteristics that make differences between ESBs *security aspects * * *
If we look at the features by domain, we have
The JavaBusinessIntegration is defined by the JSR 2 0 8 It is the java standard for creating integration solutions JBI is built on top of WS state of the art PLUGIN MODEL as we saw in the previous slide, a component is a container of services. so JBI is a container of containers; it links the components together and provides functionalities to monitor and manage them MESSAGING MODEL the JBI container allows the components to exchange messages each other, in a loosely coupled way The description language of the Services hosted by the components is WSDL And XML is the format of the data exchanged
Now, take a look at the Java Business Integration specification. A JBI environment is composed of a container whih provides communication and thechnical services to the JBI components that it hosts. The components that are plug in the JBI environment can be Artefacts... X X
To resume JBI, we can say that it is a plugin based env. xx Services are connected in a loosely coupled way A JBI container easily integrates web services
now I present you PETALS
the PETALS project was created in june 2 0 0 5 it is hastb by ObjectWeb and leaded by EBM WS x x x PETALS is supported by the Jones project that alain presented to you
The PETALS project proposes a distributed approach of JBI. Thus, you can have severals PETALS containers on your network, each server hosts its components that consume or provide services. The communication between those components, that are not in the same server, is completely transparent for them, and they exchange messages as if they were in the same container. Moreover, you can administrate the global PETALS environment as if it is a single server.
the objectives of PETALS are to support... and to propose out of the box packaging for specific needs. For instance, a package oriented ServiceInfrastructure, were PETALS is configured with routing security and monitoring functionalities, A process orchestration solution, containg BPEL engine, x x and for instance a B2B integration solution x x x
Now, we take a look inside PETALS
PETALS is composed of a distributed JBI container, which provides... x x x Connectors to external application, which are called Binding components)... Integration engines, the Service Engine... and some demonstrators.
PETALS provides a C D K, which allows you to ease the dev of your own JBI components, and provide the basis for full compliant components xx xx xx
we are also working on configuration tools, in collaboration with BULL This Eclipe plugin allows you to graphically assemble components, configure them and finally produce artefacts to instanciate this configuration
we are also working on wizards to create JBI comp with the PETALS CDK x x x
Monitoring and administration tool PETALS 1 dot 1 is provided with and early version of the monitoring and adminisration Web console, which allows to manage the global PETALS servers network
The demonstrator is a travel agency application
firstly, we have to install on PETALS the components that will interact with the external services, and the service engines
then, we have to configure each of these components. a component is configured by deploying artefacts on it. Those artefacts are called Service Units All the Service Units are packaged in a global package that is called a ServiceAssembly. It can be seen as the global application configuration artefact. for instance, a ServiceUnit deployed on the SOAP BC contains the web location of the external service to call,
Now that each component is configured, the application is ready. So I'm going to show you what i said. To simplify the demonstration, I use a FileTransfer BindingComp instead of the E mail BC
To conclude, i present you the PETALS roadmap