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/[/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é • •

[email protected]

http://blog.nanthrax.net

Q&A