Apache ServiceMix 4.0 - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Apache ServiceMix 4.0

Description:

Apache Camel. Java DSL for EIP. from('http://localhost:8080/requests/'). tryBlock ... support for Camel. Roundtrip with Camel. Roadmap. ServiceMix 3.1.2 ... – PowerPoint PPT presentation

Number of Views:943
Avg rating:3.0/5.0
Slides: 30
Provided by: droe
Category:

less

Transcript and Presenter's Notes

Title: Apache ServiceMix 4.0


1
Apache ServiceMix 4.0
  • The Next Generation ESB

Guillaume Nodet
2
About the author
Guillaume Nodet
  • Open Source
  • PMC Chair of the Apache ServiceMix project
  • Involved in Apache Geronimo, Apache ActiveMQ,
    Apache ODE, Apache CXF, Jencks
  • Previously involved in XFire, Mule
  • IONA Principal Engineer
  • Since LogicBlaze acquisition in April 2007

3
Schedule
  • JBI 1.0
  • Overview
  • Architecture
  • WSDL Messaging Model
  • Normalized Message Router
  • Lessons learned
  • Apache ServiceMix 4.0
  • Goal
  • Standard based
  • Simplified API
  • Building blocks
  • OSGi as a platform
  • Spring for configuration
  • Intuitive EIP router
  • High performance message broker
  • Easy to use Services Framework
  • Around the container
  • Eclipse tooling
  • Long term
  • JBI 2.0, SCA
  • Demo

4
JBI 1.0 what is JBI?
  • Integration Systems
  • Plug-in Components
  • Normalized exchanges
  • WSDL
  • Decoupling

5
JBI 1.0 architecture
6
JBI 1.0 WSDL messaging model
  • Abstract model
  • Concrete model
  • Service providers
  • Service consumers

7
JBI 1.0 WSDL messaging model
Abstract model
  • Message type
  • Normal
  • Faults
  • Operation
  • Qualified name
  • Message Exchange Pattern
  • Message types
  • Interface
  • Qualified name
  • Operations
  • Extended interfaces

8
JBI 1.0 WSDL messaging model
Concrete model
  • Binding type
  • Endpoint
  • Endpoint name
  • Binding type
  • Service
  • Qualified name
  • Interface name
  • Endpoints

9
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints

10
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints
  • Consumers and providers
  • WSDL description
  • Abstract model
  • Decoupled

11
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints
  • Normalized Message
  • XML payload
  • Properties
  • Attachments

12
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints
  • Delivery Channel
  • Communication between a component and the NMR

13
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints
  • Endpoint activation
  • Declaring Service endpoint
  • Providing metadata

14
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints
  • Service invocation and MEP
  • In-Only
  • Robust-In-Only
  • In-Out
  • In-Optional-Out

15
JBI 1.0 Normalized Message Router
  • Consumers and providers
  • Normalized Message
  • Delivery Channel
  • Run-time Endpoint Activation
  • Service invocation and MEPs
  • Message Exchange
  • Endpoints
  • Endpoints
  • External
  • Internal
  • Addressing
  • Implicit
  • Explicit
  • Dynamic

16
JBI 1.0 Lessons learned
  • Pros
  • Normalized exchanges
  • Normalized Message Router
  • Cons
  • Classloader architecture
  • JBI packaging
  • Writing components is complex
  • Role of the component ?

17
ServiceMix 4.0 Goal
  • Enterprise OSGi Container
  • Lightweight
  • ESB and SOA container
  • Ease of use

18
ServiceMix 4.0 Standard based
  • Short Term
  • JBI 1.0
  • JAX-WS, WS-
  • On the long term
  • JBI 2.0 support
  • SCA
  • IONA Support
  • Involved in JBI 2.0 EG, OSGi Alliance (leading
    OSGi Enterprise Edition EG), SCA

19
ServiceMix 4.0 Simplified API
  • No more components
  • Deployment / Classloader is delegated to OSGi
  • Bundles as the packaging and extension mechanism
  • Leverages OSGi architecture
  • Leverage spring-osgi (optionally)
  • Endpoints as first-class citizens
  • Endpoint are activated when registered in the
    OSGi registry
  • Channel is now on the Endpoint
  • Endpoints use push delivery rather than pulling
    the channel

20
Building blocks
  • Avoid reinventing the wheel
  • Framework OSGi (Apache Felix)
  • SOAP support Apache CXF
  • JMS broker Apache ActiveMQ
  • Routing Engine Apache Camel

21
Apache Camel
  • Java DSL for EIP
  • from(http//localhost8080/requests/).
  • tryBlock().
  • to(activemqqueuerequests).
  • setOutBody(constant(ltack/gt)).
  • handle(Throwable.class).
  • setFaultBody(constant(ltnack/gt))
  • from((activemqqueuerequests?transacted
    true).
  • process(requestTransformer).
  • to(http//host8080/Request).
  • filter(xpath(//nack)).
  • process(nackTransformer).
  • to(jdbcstore)
  • from(http//localhost8080/responses/).
  • tryBlock().
  • to(activemqqueueresponses).
  • setOutBody(constant(ltack/gt)).
  • handle(Throwable.class).

22
Apache Camel
  • Java DSL for EIP
  • from(http//localhost8080/requests/).
  • tryBlock().
  • to(activemqqueuerequests).
  • setOutBody(constant(ltack/gt)).
  • handle(Throwable.class).
  • setFaultBody(constant(ltnack/gt))
  • from((activemqqueuerequests?transacted
    true).
  • process(requestTransformer).
  • to(http//host8080/Request).
  • filter(xpath(//nack)).
  • process(nackTransformer).
  • to(jdbcstore)
  • from(http//localhost8080/responses/).
  • tryBlock().
  • to(activemqqueueresponses).
  • setOutBody(constant(ltack/gt)).
  • handle(Throwable.class).

from(http//localhost8080/requests/).
tryBlock(). to(activemqqueue
requests). setOutBody(constant(lt
ack/gt)). handle(Throwable.class).
setFaultBody(constant(ltnack/gt))
23
Apache Camel
  • Java DSL for EIP
  • from(request).
  • tryBlock().
  • to(requestStorage).
  • setOutBody(constant(ack)).
  • handle(Throwable.class).
  • setFaultBody(constant(nack))
  • from(requestStorage).
  • process(requestTransformer).
  • to(requestProvider).
  • filter(isNack).
  • process(nackTransformer).
  • to(dbStorer)
  • from(responseConsumer).
  • tryBlock().
  • to(responseStorage).
  • setOutBody(constant(ack)).
  • handle(Throwable.class).

from(request). tryBlock().
to(requestStorage).
setOutBody(constant(ack)).
handle(Throwable.class).
setFaultBody(constant(nack))
24
Apache Camel
  • Java DSL for EIP
  • from(http//localhost8080/requests/).
  • tryBlock().
  • to(activemqqueuerequests).
  • setOutBody(constant(ltack/gt)).
  • handle(Throwable.class).
  • setFaultBody(constant(ltnack/gt))
  • from((activemqqueuerequests?transacted
    true).
  • process(requestTransformer).
  • to(http//host8080/Request).
  • filter(xpath(//nack)).
  • process(nackTransformer).
  • to(jdbcstore)
  • from(http//localhost8080/responses/).
  • tryBlock().
  • to(activemqqueueresponses).
  • setOutBody(constant(ltack/gt)).
  • handle(Throwable.class).

ltroutegt ltfrom urihttp//localhost8080/request
s/ /gt lttrygt ltto uriactivemqqueuerequest
s /gt ltprocess refsetAck /gt ltcatchgt
ltexceptiongtjava.lang.Throwablelt/exceptiongt
ltprocess refsetNack /gt lt/catchgt
lt/trygt lt/routegt
25
Tooling
  • Cimero

26
Tooling
  • Cimero
  • Contributed to Eclipse STP by Bull
  • Currently under IP process at Eclipse
  • Extend to provide support for Camel
  • Roundtrip with Camel

27
Roadmap
  • ServiceMix 3.1.2 being release(first official
    release after graduation)
  • ServiceMix 3.2 following (beginning of October)
  • ServiceMix 4.0-m1 in october
  • Milestones every month or so until 4.0 final (Q1
    2008)
  • Contributors are welcome!

28
Questions ?
  • Guillaume Nodet
  • Blog http//gnodet.blogspot.com
  • Email gnodet_at_gmail.com

29
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com