Title: ServiceMix future
1ServiceMix future
- Jean-Baptiste Onofré, Talendjbonofre_at_apache.org,
2011-11-10
2Summary
- SMX versions
- Current state architecture and NMR features
- Short term SMX 4.4
- Middle term SMX 5
3My Background
- Jean-Baptiste Onofré
- Software Architect at Talend
- ASF member
- PMC for Karaf and ServiceMix
- Committer for ACE, Camel, Kalumet
4ServiceMix ?
- Apache ESB
- Reliable messaging
- Routing/messaging/EIP
- WS/REST
- WS-BPEL
- Production ready feature (provisioning, cluster,
etc)
5SMX 3 old stable
- Very popular in production
- Powered by Spring, and JBI oriented
ServiceMix JBI Components
Camel
CXF
ActiveMQ
Spring
6SMX 4 current stable
- OSGi/Karaf powered
- NMR layer
- JBI backward compatible
ServiceMix JBI Components
Camel
CXF
NMR
JBI
ActiveMQ
Camel
CXF
Karaf
7Pro/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
8Short 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
9Short 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
10Current NMR status
- NMR is a feature core bus of SMX4
- NMR is highly plug and play
- JBI is just a subset of the NMR
11NMR security
- Users authentication
- Endpoint access authorization
- Exposed as OSGi services org.apache.servicemix.n
mr.api.security.AuthenticationService
org.apache.servicemix.nmr.api.security.Authorizati
onService - Configured as service properties endpoint,
operation, type, roles, rank
12NMR JNDI
- Provide a JNDI context factory
- Expose OSGi service as JNDI using
osgiservices/ltinterfacesgt/filter - InitialContext context new InitialContext()
- ExampleService (ExampleService)
context.lookup("osgiservices/com.example.ExampleS
ervice")
13NMR Interceptors
- Intercept messages between NMR endpoints using
- NMR events (global)
- Wires (specific from/to)
14NMR 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
15NMR 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
16SMX5, 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)
17SMX5, 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
18SMX5, 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
19Sources
- Links
- servicemix.apache.org
- karaf.apache.org
- camel.apache.org
- cxf.apache.org
- activemq.apache.org
20Contact
- Jean-Baptiste (JB) Onofré
- jbonofre_at_apache.org
- http//blog.nanthrax.net
QA