200 likes | 410 Views
ServiceMix future. Jean-Baptiste Onofré, Talend jbonofre@apache.org, 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
E N D
ServiceMix future Jean-Baptiste Onofré, Talendjbonofre@apache.org, 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 ServiceMix JBI Components Camel CXF ActiveMQ Spring
SMX 4: current stable • OSGi/Karaf powered • NMR layer • JBI backward compatible ServiceMix JBI Components Camel CXF NMR JBI ActiveMQ Camel CXF Karaf
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 • 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é • jbonofre@apache.org • http://blog.nanthrax.net Q&A