Transcript ServiceMix
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 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
Very popular in production Powered by Spring, and JBI oriented CXF ActiveMQ Spring
SMX 4: current stable
OSGi/Karaf powered NMR layer JBI backward compatible ActiveMQ NMR Camel Karaf CXF JBI CXF
ServiceMix 3 + Great adoption + Documentation - Only JBI and Spring - Production tooling/features
Pro/Cons
ServoceMix 4 + Very stable - Poor documentation/website +OSGi/Karaf, highly extendable + 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/
NMR Interceptors
Intercept messages between NMR endpoints using: – NMR events (global) – Wires (specific from/to)
NMR Events
API receiving notifications } EndpointListener public interface EndpointListener { void endpointRegistered(InternalEndpoint endpoint); void endpointUnregistered(InternalEndpoint endpoint); ExchangeListener } public 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, etc Karaf Cellar cluster support (especially around DOSGi) Karaf Cave as default repository/registry Provide 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
Contact
Jean-Baptiste (JB) Onofré • •
http://blog.nanthrax.net