JBI 1.0

arghtalentΔιαχείριση Δεδομένων

31 Ιαν 2013 (πριν από 4 χρόνια και 6 μήνες)

196 εμφανίσεις

©

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/2007

l
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/2007

l
BeJUG


Enterprise SOA’07 Conference

©

BULL / IONA / 2007

4

l
Apache Servicemix

l
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

u

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 Servicemix

l
Java Business Integration

JBI 1.0: architecture


u

Standards Based

Flexible

Reliable

Breadth of
connectivity


©

BULL / IONA / 2007

7

l
Apache Servicemix

l
Java Business Integration

JBI 1.0: WSDL messaging
model



Abstract model


Concrete model



Service providers


Service Consumers

u

Standards Based

Flexible

Reliable

Breadth of
connectivity


©

BULL / IONA / 2007

8

l
Apache Servicemix

l
Java Business Integration

JBI 1.0: Normalized
Message Router



Normalized Message


Runtime Endpoint Activation


Delivery Channel


Service Invocation using MEPs


Addressing Endpoints

u

Standards Based

Flexible

Reliable

Breadth of
connectivity


©

BULL / IONA / 2007

9

l
Apache Servicemix

l
Java Business Integration

JBI 1.0: Invocation
example


u

Standards Based

Flexible

Reliable

Breadth of
connectivity


©

BULL / IONA / 2007

10

l
Apache Servicemix

l
Java Business Integration

JBI 1.0: Packaging



META
-
INF/jbi.xml


Components


Shared Libraries


Service Units


Service Assemblies

u

Standards Based

Flexible

Reliable

Breadth of
connectivity


©

BULL / IONA / 2007

11

l
Apache Servicemix

u

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

u

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 Servicemix

l
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 Servicemix

l
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/2007

l
BeJUG


Enterprise SOA’07 Conference

©

BULL / IONA / 2007

16

l
Belgian Success Story

l
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


u

©

BULL / IONA / 2007

17

l
Belgian Success Story

l
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


u

©

BULL / IONA / 2007

18

l
Belgian Success Story

l
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


u

©

BULL / IONA / 2007

19

l
Belgian Success Story

l
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


u

©

BULL / IONA / 2007

20

l
Belgian Success Story

l
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



P
roof
O
f
C
oncept



performance



stability, robustness



functionalities

Context


Architecture

Development

Administration

Stress Tests


u

+ 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


u

©

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


u

©

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


u

©

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


u

©

BULL / IONA / 2007

25

l
Asynchronous mode
-

polling

l
Belgian Success Story



Polling


correlation



<wsa:MessageID>



<wsa:RelatesTo>

Context

Architecture

Development

Administration

Stress Tests


u

©

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


u

©

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


u

©

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


u

©

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


u

©

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


u

©

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


u

©

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


u

©

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


u

©

BULL / IONA / 2007

34

l
Audit tools

l
Belgian Success Story



Spagic console



Process instances



Messages XML

Context

Architecture

Development

Administration

Stress Tests


u

©

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

u

©

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:
gnodet@gmail.com

Anne Noseda


Email:
noseda.anne@gmail.com


©

BULL / IONA / 2007

38

l
Project's partners