380 likes | 493 Views
l BeJUG – Enterprise SOA’07 Conference. l 09/10/2007. l Belgium French Community goes SOA Open Source with Servicemix and BULL. l Guillaume Nodet - IONA. l Anne Noseda - BULL. l Speakers. l 09/10/2007. Guillaume Nodet IONA Principal Engineer
E N D
l BeJUG – Enterprise SOA’07 Conference l 09/10/2007 l Belgium French Community goes SOA Open Source with Servicemix and BULL l Guillaume Nodet - IONA l Anne Noseda - BULL
l Speakers l 09/10/2007 • Guillaume Nodet • IONA Principal Engineer • PMC Chair of the Apache ServiceMix project • Involved in several Open Source projects (Apache ActiveMQ, Apache CXF, Apache Ode, Apache Geronimo) • Previously involved in XFire, Mule • Anne Noseda • Bull Open Source BU • Worked with OW2 projects (Bonita and Orchestra) • Technical Director of the Open Source ESB project at the French Community of Belgium
l BeJUG – Enterprise SOA’07 Conference l 09/10/2007 l First part : Apache Servicemix l Guillaume Nodet - IONA
l The Agile ESB l Apache Servicemix Standards Based Flexible Reliable Breadth of connectivity The Agile ESB • Standards based • Flexible • Reliable • Breadth of Connectivity
l Java Business Integration l Apache Servicemix u Standards Based Flexible Reliable Breadth of connectivity • Java Business Integration • Integration Systems • Plug-In Components • WSDL • Decoupling
l Java Business Integration l Apache Servicemix u Standards Based Flexible Reliable Breadth of connectivity • JBI 1.0: architecture
l Java Business Integration l Apache Servicemix u Standards Based Flexible Reliable Breadth of connectivity • JBI 1.0: WSDL messaging model • Abstract model • Concrete model • Service providers • Service Consumers
l Java Business Integration l Apache Servicemix u Standards Based Flexible Reliable Breadth of connectivity • JBI 1.0: Normalized Message Router • Normalized Message • Runtime Endpoint Activation • Delivery Channel • Service Invocation using MEPs • Addressing Endpoints
l Java Business Integration l Apache Servicemix u Standards Based Flexible Reliable Breadth of connectivity • JBI 1.0: Invocation example
l Java Business Integration l Apache Servicemix u Standards Based Flexible Reliable Breadth of connectivity • JBI 1.0: Packaging • META-INF/jbi.xml • Components • Shared Libraries • Service Units • Service Assemblies
l Reliable l Apache Servicemix Standards Based Flexible Reliable Breadth of connectivity • Reliable u • Flows • ST • SEDA • JMS • JCA • QoS attributes • Sync / Async • Persistent • Transactional • Clustered
l Breadth of Connectivity l Apache Servicemix Standards Based Flexible Reliable Breadth of connectivity • Breadth of Connectivity u • Binding Components • http (http/soap), jms (jms/soap) • file, ftp, xmpp • Email, RSS, Jabber… • Service Engines • Bean, EIP, Camel, JAX-WS, Drools, Quartz, Saxon, Script, WS-Notification • Third Party Components • ODE, CICS, Corba
l Roadmap l Apache Servicemix Standards Based Flexible Reliable Breadth of connectivity • Roadmap • ServiceMix 3.1.2 released in December • ServiceMix 3.2 in October • Work has began on ServiceMix 4.0 • Simplified internal API • Based on OSGi • Built on top of Apache Camel
l ServiceMix 4.0: routing DSL l Apache Servicemix Standards Based Flexible Reliable Breadth of connectivity • ServiceMix 4.0:routing DSL from(“http://localhost:8080/requests/”). tryBlock(). to(“activemq:queue:requests”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”)); from((“activemq:queue:requests?transacted=true”). process(requestTransformer). to(“http://host:8080/Request”). filter(xpath(“//nack”)). process(nackTransformer). to(“jdbc:store”); from(“http://localhost:8080/responses/”). tryBlock(). to(“activemq:queue:responses”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”)); from(“activemq:queue:responses?transacted=true”). process(responseTransformer). to(“jdbc:store”); from(“http://localhost:8080/pull/”). to(“jdbc:load”); from(“http://localhost:8080/requests/”). tryBlock(). to(“activemq:queue:requests”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”));
l BeJUG – Enterprise SOA’07 Conference l 09/10/2007 l Second part : Belgian Success Story l Anne Noseda - BULL
l Context of the project – Actors l Belgian Success Story Context Architecture Development Administration Stress Tests • Belgium’s French Community • culture • education • research and training • health (preventive) • youth • sports • ETNIC • Information Technology agency of the Belgium’s French Community • founded in 2002 • 130 IT specialists • budget of € 24 million u
l Context of the project – Goals l Belgian Success Story Context Architecture Development Administration Stress Tests • Goals • Improve communication between Belgium’s French Community and other actors • Implement SOA • Use Case : pupils registration • Before : various communication ways (paper documents, mails, excel sheets, …) u
l Context of the project – Difficulties l Belgian Success Story Context Architecture Development Administration Stress Tests Difficulties : • Different actors coordination • 3,500 schools • PO • Belgium’s French Community • … • Different systems interoperability • 8,000 local applications • Delphi • .NET • Java • Access • … • Enterprise internal flows • Cobol • FTP • Web Services • … u
l Context of the project – Needs l Belgian Success Story Context Architecture Development Administration Stress Tests • Needs • Loose coupling, transport of messages, interoperability ESB • Security (authentication & authorisation) • Synchronous & asynchronous mode • Good performance (20 transactions / second) • Robustness • Overall management of errors • Development tools • Administration, monitoring and audit tools • Technical obligations • ESB JBI standard • BPEL engine • WS-Security & X509 Certificate Token • WS-Addressing u
l Context of the project – Timeline l Belgian Success Story Context Architecture Development Administration Stress Tests • Project Timeline • 3 steps u 2007 2006 time 01/09 01/10 01/07 01/01 Tools Development of the solution POC + regular synchronisation points & testing with all the actors Evolution of the architecture • Proof Of Concept • performance • stability, robustness • functionalities
l Architecture l Belgian Success Story Context Architecture Development Administration Stress Tests • General architecture of the solution • Servicemix Centralized Authentication Service : security • Servicemix Work : business • Broker JMS ActiveMQ • Servicemix tools (development & administration tools) u
l Components l Belgian Success Story Context Architecture Development Administration Stress Tests • Components used • BC servicemix-http • ws-addressing • ws-security • specific security module • BC servicemix-jms • transaction • SE servicemix-eip • pipeline for MEP transformation • SE / BC servicemix-bean • specific needs java development • JBI concerns • id generation, orchestration, schema validation, polling u
l Components l Belgian Success Story Context Architecture Development Administration Stress Tests • Components used • SE / BC servicemix-jsr181 • specific needs java development • no JBI concerns (XFire) • security enricher, response writer, fault handler • SE Apache ODE • BPEL engine • SMX-WORK orchestration • heart of loose coupling u
l Asynchronous mode l Belgian Success Story Context Architecture Development Administration Stress Tests • Asynchronous communication • JMS between SMX-CAS and SMX-WORK • polling to retrieve responses u
l Asynchronous mode - polling l Belgian Success Story Context Architecture Development Administration Stress Tests • Polling – correlation • <wsa:MessageID> • <wsa:RelatesTo> u
l Synchronous mode l Belgian Success Story Context Architecture Development Administration Stress Tests • Synchronous communication • same SMX-CAS • HTTP between SMX-CAS and SMX-WORK • no Responses DB u
l JBI process development l Belgian Success Story Context Architecture Development Administration Stress Tests • Cimero • Open Source • plug-in Eclipse • developed by BULL • drag and drop u
l JBI process development l Belgian Success Story Context Architecture Development Administration Stress Tests • Cimero • Properties (icons, colours) • Generic SU open • xbean.xml generation • ant task to rebuild SU & SA after xbean.xml modifications u
l BPEL process development l Belgian Success Story Context Architecture Development Administration Stress Tests • Intalio Designer • Open Source • plug-in Eclipse • drag and drop, mapper, data editor u
l Administration tools l Belgian Success Story Context Architecture Development Administration Stress Tests • Servicemix administration • Web application • Installation, deployment, list, start, stop of components, SA, SU u
l Administration tools l Belgian Success Story Context Architecture Development Administration Stress Tests • ActiveMQ administration • Web application • Queues and topics administration (view, purge, …) • Sending JMS messages u
l Monitoring tools l Belgian Success Story Context Architecture Development Administration Stress Tests • OpenNMS • Open Source • 3 parts • Java web application – console • daemons (collecting data, …) • DB PostgreSQL u
l Audit tools l Belgian Success Story Context Architecture Development Administration Stress Tests • Spagic • Open Source • 4 parts • Console - Java web application • Listeners : collecting messages • Monitors : messages • Meta DB u
l Audit tools l Belgian Success Story Context Architecture Development Administration Stress Tests • Spagic console • Process instances • Messages XML u
l Stress Tests l Belgian Success Story Context Architecture Development Administration Stress Tests • Environment • Linux Redhat • Bi-processor quad core (8 CPU) • Servicemix 3.1.1 • Stress Tests • 1 to 1,000 threads • 100 to 100,000 messages • throughput SMX-CAS : 40 to 75 msg/s • throughput SMX-WORK : 20 msg/s • Stability & Reliability Tests • 2,300,000 messages in 30 hours u
l Conclusion l Belgian Success Story • Solution : • 100% Open Source • Scalable • Apache Servicemix • able to cover all needs • high-performance • robust • Future at ETNIC • ESB and SOA will be a standard • solution will be extended to all communications between Belgium’s French Community and other actors
l Questions ? Guillaume Nodet • Blog: http://gnodet.blogspot.com • Email: gnodet@gmail.com Anne Noseda • Email: noseda.anne@gmail.com