Integration durch JBI und OSGi Apache ServiceMix 4 Hello World! Kristian Köhler Diplom-Wirtschaftsinformatiker (BA) Freiberuflicher Software Architekt, Berater und Trainer Agenda • Apache ServiceMix – Java Business Integration (JBI) – Architekturüberblick – JBI Demo • Apache ServiceMix Kernel (Apache Karaf) – Shell, Deployment, Features – Kernel Demo Apache ServiceMix • Open Source Enterprise Service Bus – Apache Lizenz 2.0 – Unterstützt Java Business Integration (JBI) • Aktuelle Version (April 2009) – Version 3.3 – Version 4.0.0 (März 09) • OSGi basiert • http://servicemix.apache.org Java Business Integration - JBI • Durch JCP entwickelter Java Spezifikation zum Erstellen von Integrationslösungen – Java Specification Request (JSR) 208 – Momentan aktuell Version 1.0 • Plugin Architektur, deren Komponenten über „Normalized Message Exchanges“ zusammen arbeiten – Message Exchange Modell ist WSDL basiert – Aber: JBI 2.0 nicht nur zwingend XML Daten Quelle: http://servicemix.apache.org/5-jbi.data/jbi-architecture.png ServiceMix JBI Komponenten • Bean • Camel • CXF • Drools • EIP • File • FTP • HTTP • JMS • Mail • OSWorkflow • Quartz • Script • SNMP • Validation •… Liste unter servicemix.apache.org Neues in ServiceMix 4.0 (I) • Umstellung auf OSGi Runtime – Classloader Architektur – Container Services, Registry • Bessere Administration – Shell Commands (remote SSH Support) – JMX Unterstützung • Verbesserte Provisioning Unterstützung – Maven, Feature Hotdeployment... Neues in ServiceMix 4.0 (II) • Verbesserte Deployment Architektur – Zusätzliche Deployment Möglichkeiten • Web Archiven, Spring XML Config, Configs • „Feature“ Definitionen • „Exploded Archives“ • Verbesserte Spring Unterstützung – „osgi/list“ Command zeigt z. B. Spring Status • Container Level Locking – Master/ Slave Deployment, Hot-Standby ServiceMix/JBI DEMO Apache Camel (Exkurs) • OpenSource Integration Framework – Apache Licence 2.0 • Umsetzung von Enterprise Integration Patterns (EIP) – Routing und Mediation Regeln • Unterstützung mehrer „Sprachen“ – Java, Spring XML, Scala Beispielkonfiguration <bean id="myTransform" class="org.apache.servicemix.examples.cxfcamel.MyTransform"> <property name="value"> <value><![CDATA[<soap:Envelope ...]]></value> </property> </bean> <jaxws:endpoint id="helloWorld" implementor="org.apache.servicemix.examples.cxfcamel.HelloWorldImpl" address="nmr:HelloWorld" /> <camel-osgi:camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <!-- Route periodically sent events into the NMR --> <route> <from uri="timer://myTimer?fixedRate=true&amp;period=5000..." /> <bean ref="myTransform" method="transform"/> <to uri="nmr:HelloWorld"/> <bean ref="myTransform" method="display" /> </route> </camel-osgi:camelContext> ServiceMix Deployer Quelle: http://servicemix.apache.org/SMX4KNL/44-deployer.data/smx4-deployer.png Apache ServiceMix 4 Architektur Agenda • Apache ServiceMix – Java Business Integration (JBI) – Architekturüberblick – JBI Demo • Apache ServiceMix Kernel (Apache Karaf) – Shell, Deployment, Features – Kernel Demo ServiceMix Kernel/ Apache Karaf • Wechsel von ServiceMix zu Apache Felix – Apache Karaf • Nicht auf Felix Runtime beschränkt – Eventuell mehrere Distributionen • Überlegungen zum Einsatz in – Apache James – Apache Directory – Apache ActiveMQ DEMO ServiceMix Kernel Highlights • Instanzverwaltung • Features • Shell • Provisioning • Deployment • Logging Vielen Dank für Ihre Aufmerksamkeit Kristian Köhler http://www.kkoehler.com