Upload
jalena
View
65
Download
0
Tags:
Embed Size (px)
DESCRIPTION
ServiceMix future. Jean-Baptiste Onofré, Talend [email protected], 2011-11-10. Summary. SMX versions Current state: architecture and NMR features Short term: SMX 4.4 Middle term: SMX 5. My Background. Jean-Baptiste Onofré Software Architect at Talend ASF member - PowerPoint PPT Presentation
Citation preview
ServiceMix future
Jean-Baptiste Onofré, [email protected], 2011-11-10
Summary SMX versions Current state: architecture and NMR
features Short term: SMX 4.4 Middle term: SMX 5
My Background Jean-Baptiste Onofré Software Architect at Talend ASF member PMC for Karaf and ServiceMix Committer for ACE, Camel, Kalumet
ServiceMix ? Apache ESB Reliable messaging Routing/messaging/EIP WS/REST WS-BPEL Production ready feature (provisioning,
cluster, etc)
SMX 3: old stable
Spring
ActiveMQ
ServiceMix JBI ComponentsCamel CXF
Very popular in production Powered by Spring, and JBI oriented
SMX 4: current stable
Karaf
ActiveMQ
OSGi/Karaf powered NMR layer JBI backward compatible
Camel CXF
NMR JBI
ServiceMix JBI ComponentsCamel CXF
Pro/Cons
ServiceMix 3 ServoceMix 4
+ Great adoption + Very stable
+ Documentation - Poor documentation/website
- Only JBI and Spring +OSGi/Karaf, highly extendable
- Production tooling/features + Provisioning, failover, enterprise feature
Short term SMX JBI Components 2011.02:
dependencies upgrade (ActiveMQ 5.5.0, Camel 2.8.3, CXF 2.5.0)
SMX Specs 1.9.0 SMX Utils 1.5.0 SMX 3.4: last SMX3 release, just
dependencies upgrade
Short term: SMX 4.4
Dependencies upgrade: Karaf 2.2.4, ActiveMQ 5.5.0, Camel 2.8.3, CXF 2.4.4
Documentation/website Improvement on build and remove the
JBI layer by default Focus on the NMR 1.5.0 features
Current NMR status
NMR is a feature: core bus of SMX4 NMR is highly plug and play JBI is just a subset of the NMR
NMR security Users authentication Endpoint access authorization Exposed as OSGi services:
org.apache.servicemix.nmr.api.security.AuthenticationService org.apache.servicemix.nmr.api.security.AuthorizationService
Configured as service properties: endpoint, operation, type, roles, rank
NMR JNDI
Provide a JNDI context factory Expose OSGi service as JNDI using
osgi:services/<interfaces>[/filter]InitialContext context = new InitialContext();ExampleService = (ExampleService)
context.lookup("osgi:services/com.example.ExampleService");
NMR Interceptors
Intercept messages between NMR endpoints using:– NMR events (global)– Wires (specific from/to)
NMR Events API receiving notifications EndpointListenerpublic interface EndpointListener { void endpointRegistered(InternalEndpoint endpoint); void endpointUnregistered(InternalEndpoint endpoint);}
ExchangeListenerpublic interface ExchangeListener { void exchangeSent(Exchange exchange); void exchangeDelivered(Exchange exchange); void exchangeFailed(Exchange exchange);}
Registration as OSGi services
NMR Audit File or JBDC auditor Store all exchanges including mep,
status, role, properties, in (content and properties), out (content and properties), fault (content and properties)
Shell commands to manipulate the audit log:
audit/find “status: error”
SMX5, Karaf Karaf 3 with profiles, OSGi subsystem, etcKaraf Cellar cluster support (especially around DOSGi) Karaf Cave as default repository/registryProvide a complete pro console (leveraging the new Karaf WebConsole sub-project)
SMX5, from NMR to Camel
• Promote Camel as the premium solution for routing (replacement of the NMR)• Refactor most interesting NMR features to be Camel oriented (audit, events, tracing, etc)• Leverage Camel new features: support of async transactions, unified statistics, improvement of the ThreadPoolProfile for thread management, etc
SMX5, CXF
Leverage new CXF features:• Better OSGi/Karaf integration (new shell commands, etc), including config admin to configure CXF workqueues• Better management capabilities• Better performance especially around WS-Security• Security: STS, WS-Trust support, JAX-RS security (OAuth 2, SAML, etc)• Update to WS-RM 1.1• Update to use CXF WS-Notification
Sources Links– servicemix.apache.org– karaf.apache.org– camel.apache.org– cxf.apache.org– activemq.apache.org