Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | stephen-best |
View: | 20 times |
Download: | 1 times |
© BULL / IONA / 2007
1
l Belgium French Community goes SOA Open Source with Servicemix and BULL
l Anne Noseda - BULL
l Guillaume Nodet - IONA
l 09/10/2007l BeJUG – Enterprise SOA’07 Conference
© BULL / IONA / 2007
2
l Speakers
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 09/10/2007
© BULL / IONA / 2007
3
l First part : Apache Servicemix
l Guillaume Nodet - IONA
l 09/10/2007l BeJUG – Enterprise SOA’07 Conference
© BULL / IONA / 2007
4
l Apache Servicemixl The Agile ESB
Standards Based
Flexible
Reliable
Breadth of connectivity
Standards based
Flexible
Reliable
Breadth of
Connectivity
The Agile ESB
© BULL / IONA / 2007
5
l Apache Servicemix
l Java Business Integration
Standards Based
Flexible
Reliable
Breadth of connectivity
Integration Systems Plug-In Components WSDL Decoupling
Java Business Integration
© BULL / IONA / 2007
6
l Apache Servicemixl Java Business Integration
JBI 1.0: architecture Standards Based
Flexible
Reliable
Breadth of connectivity
© BULL / IONA / 2007
7
l Apache Servicemixl Java Business Integration
JBI 1.0: WSDL messaging model
Abstract model Concrete model
Service providers Service Consumers
Standards Based
Flexible
Reliable
Breadth of connectivity
© BULL / IONA / 2007
8
l Apache Servicemixl Java Business Integration
JBI 1.0: Normalized Message Router
Normalized Message
Runtime Endpoint Activation
Delivery Channel
Service Invocation using MEPs
Addressing Endpoints
Standards Based
Flexible
Reliable
Breadth of connectivity
© BULL / IONA / 2007
9
l Apache Servicemixl Java Business Integration
JBI 1.0: Invocation example
Standards Based
Flexible
Reliable
Breadth of connectivity
© BULL / IONA / 2007
10
l Apache Servicemixl Java Business Integration
JBI 1.0: Packaging
META-INF/jbi.xml
Components
Shared Libraries
Service Units
Service Assemblies
Standards Based
Flexible
Reliable
Breadth of connectivity
© BULL / IONA / 2007
11
l Apache Servicemix
l Reliable
Standards Based
Flexible
Reliable
Breadth of connectivity QoS attributes
● Sync / Async● Persistent● Transactional● Clustered
Reliable Flows
● ST● SEDA● JMS● JCA
© BULL / IONA / 2007
12
l Apache Servicemix
l Breadth of Connectivity
Standards Based
Flexible
Reliable
Breadth of connectivity
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
Breadth of Connectivity
© BULL / IONA / 2007
13
l Apache Servicemixl Roadmap
Standards Based
Flexible
Reliable
Breadth of connectivity
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
Roadmap
© BULL / IONA / 2007
14
l Apache Servicemixl ServiceMix 4.0: routing DSL
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/>”));
© BULL / IONA / 2007
15
l Second part : Belgian Success Story
l Anne Noseda - BULL
l 09/10/2007l BeJUG – Enterprise SOA’07 Conference
© BULL / IONA / 2007
16
l Belgian Success Storyl Context of the project – Actors
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
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
17
l Belgian Success Storyl Context of the project – Goals
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, …)
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
18
l Belgian Success Storyl Context of the project – Difficulties
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
~ …
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
19
l Belgian Success Storyl Context of the project – Needs
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
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
20
l Belgian Success Storyl Context of the project – Timeline
time
2006 2007
01/10
POC Development of the solution
01/01 01/07 01/09
Tools
Project Timeline
● 3 steps
Proof Of Concept
● performance
● stability, robustness
● functionalities
Context
Architecture
Development
Administration
Stress Tests
+ regular synchronisation points & testing with all the actors
Evolution of the architecture
© BULL / IONA / 2007
21
l Architecture l Belgian Success Story
General architecture of the solution● Servicemix Centralized Authentication Service : security
● Servicemix Work : business
● Broker JMS ActiveMQ
● Servicemix tools (development & administration tools)
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
22
l Components l Belgian Success Story
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
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
23
l Components l Belgian Success Story
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
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
24
l Asynchronous mode l Belgian Success Story
Asynchronous communication● JMS between SMX-CAS and SMX-WORK
● polling to retrieve responses
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
25
l Asynchronous mode - polling l Belgian Success Story
Polling – correlation● <wsa:MessageID>
● <wsa:RelatesTo>
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
26
l Synchronous mode l Belgian Success Story
Synchronous communication● same SMX-CAS
● HTTP between SMX-CAS and SMX-WORK
● no Responses DB
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
27
l JBI process development l Belgian Success Story
Cimero● Open Source
● plug-in Eclipse
● developed by BULL
● drag and drop
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
28
l JBI process development l Belgian Success Story
Cimero● Properties (icons, colours)
● Generic SU open
● xbean.xml generation
● ant task to rebuild SU & SA after xbean.xml modifications
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
29
l BPEL process development l Belgian Success Story
Intalio Designer
● Open Source
● plug-in Eclipse
● drag and drop, mapper, data editor
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
30
l Administration tools l Belgian Success Story
Servicemix administration
● Web application
● Installation, deployment, list, start, stop of components, SA, SU
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
31
l Administration tools l Belgian Success Story
ActiveMQ administration
● Web application
● Queues and topics administration (view, purge, …)
● Sending JMS messages
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
32
l Monitoring tools l Belgian Success Story
OpenNMS
● Open Source
● 3 parts
~ Java web application – console
~ daemons (collecting data, …)
~ DB PostgreSQL
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
33
l Audit tools l Belgian Success Story
Spagic
● Open Source
● 4 parts
~ Console - Java web application
~ Listeners : collecting messages
~ Monitors : messages
~ Meta DB
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
34
l Audit tools l Belgian Success Story
Spagic console
● Process instances
● Messages XML
Context
Architecture
Development
Administration
Stress Tests
© BULL / IONA / 2007
35
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
© BULL / IONA / 2007
36
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
© BULL / IONA / 2007
37
l Questions ?
Guillaume Nodet• Blog: http://gnodet.blogspot.com• Email: [email protected] Noseda• Email: [email protected]