15.05.2007 15:44:46 Uhr 15:44:46 15.05.2007 1 42846_ms_javaMa0707_weapons.indd1

© 2007 Microsoft Corporation. Alle Rechte vorbehalten. Rechte Alle Corporation. Microsoft 2007 ©

Herausforderungsmeister.de Tools unter unter Tools

SIE SICH DIESER WEBANWENDUNG STELLEN. WEBANWENDUNG DIESER SICH SIE

bereit, es mit jedem Browser aufzunehmen. Mehr Tipps und und Tipps Mehr aufzunehmen. Browser jedem mit es bereit,

sind Sie Sie sind ASP.NET AJAX Control Toolkits von Visual Studio Visual von Toolkits Control AJAX ASP.NET

® VERSCHAFFEN SIE SICH DIE RICHTIGE WAFFE, BEVOR BEVOR WAFFE, RICHTIGE DIE SICH SIE VERSCHAFFEN

gestalten. Meistern Sie diese: Mit den standardkonformen standardkonformen den Mit diese: Sie Meistern gestalten.

Ihre Herausforderung: beeindruckende, interaktive Webseiten Webseiten interaktive beeindruckende, Herausforderung: Ihre

Ihr Potenzial. Unser Antrieb. Unser Potenzial. Ihr

• • • • • • Crossmedia mit XML mit Crossmedia Spring-Avalon-Migration Formate wissenschaftliche Internationale 275: JSR unternehmensweit Reporting Projekten großen in JSF Source Open mit SOA Javas? Zukunft Die – OSGi 8.07 OSGi bedient viele Formate viele bedient Forrest Apache Crossmedia mitXML Praxisbericht ein – Avalon-Spring-Migration Spring-Framework Formate wissenschaftliche Internationale 275: JSR Zahlen &Fakten Zeilen 1.000 als mehr sagt Bericht Ein Reporting unternehmensweit Projekten großen in Praxis JSF imHärtetest SOA mit Open Source ➔ ➔ Was leistendiefreien Tools?

Mit Eclipse OSGi-Bundles entwerfen Komponenten in Java, jetzt aber richtig! Alle InfosaufS. 3 CD Auf

Internet Internet & Enterprise Technology Testversionen & more & Testversionen Groovy 1.0 • TeamCity 2.1 • JAX-TV: InterviewmitDierkKönig • Die Zukunft Javas? Javas? Zukunft Die DbUnit2.2 • ApacheForrest 0.8 • Ivy1.4.1 • Deutschland ➔ Lesen SieimHeftabSeite67!

€ 6,50

D 45 86 7 www.javamagazin.de Schweiz sFr 12,70 Österreich Niederlande

7,50 € 7,80

Open Source SOA

Realisierung einer serviceorientierten Architektur auf der Basis von Open Source SOA auf die leichte Art

VON WOLFGANG PLEUS

Derzeit positionieren sich die Großen der Branche als Anbieter von Plattformen für serviceorientierte Architek- turen (SOA). Dies lässt erahnen, wie bestimmend das SOA-Paradigma für die nähere Zukunft sein wird. Auch jenseits der etablierten Anbieter entstehen anspruchvolle Produkte im Open-Source-Bereich, die jedoch mangels Marketing oft kaum wahrgenommen werden. Dabei haben auch diese Produkte eine Menge zu bieten.

Getrieben vom eigenen Produktportfolio wird die Verwaltung von Services, Regeln genannten Bausteine Open-Source-ba- hat jeder Hersteller eine eigene Vorstellung oder Richtlinien erschwert. Eine Registry/ sierte Implementierungen mit einem zu- von der technischen Ausgestaltung einer Repository hilft dabei, die Komplexität zu friedenstellenden Reifegrad (Tabelle 2). serviceorientierten Architektur. Unabhän- beherrschen. Sicherheitsaspekte wie Au- Da es den Umfang des Artikels sprengen gig von den Unterschieden fi nden sich aber thentifi zierung und Autorisierung werden würde, alle Bausteine im Detail zu be- immer wieder gleiche Funktionalitäten, durch ein Identity-Management-System trachten, konzentrieren wir uns zunächst sodass eine serviceorientierte Referenzar- abgebildet. Und schließlich bedarf es der auf die Kernbausteine Enterprise Service chitektur in der Regel einen oder mehrere Möglichkeit, eine SOA zu überwachen. Bus und Business Process Management. Bausteine aus Tabelle 1 umfasst. Da die Interaktion häufi g asynchron und Mit Apache ServiceMix steht ein Ja- Der Enterprise Service Bus sowie das verteilt abläuft, stellt dies eine echte Her- va Business Integration-(JBI-)konformer Business Process Management stellen die ausforderung dar. Durch Health Tracking ESB zur Verfügung, während Apache Kernfunktionalitäten einer SOA bereit, da lassen sich Fehlersituationen aufspüren Ode die Laufzeitumgebung für Business sie es ermöglichen, Prozesse zu defi nieren und beseitigen, während Business Activi- Process Execution Language (BPEL) be- und auszuführen. Eine Rule Engine erlaubt ty Monitoring zur statistischen Aufberei- reitstellt. JBI [6] ermöglicht die herstel- es, fachliche Regeln in die Prozesse einzu- tung der erfassten Daten dient. Daduch lerunabhängige Wiederverwendung von beziehen und dynamisch anzupassen. Mit lassen sich beispielsweise Nutzungsprofi le JBI-Komponenten und erhöht somit die zunehmender Komplexität einer SOA für einzelne Services erstellen. Investitionssicherheit. Dieses Verspre- chen ist nicht neu, wurde ein ähnliches Open-Source-Bausteine Ziel doch auch mit EJB als Komponen- Quellcode auf CD Mit Ausnahme der Tracking- und Moni- tenmodell verfolgt. Dies war aber nur toring-Funktionalität gibt es für die oben bedingt erfolgreich, da wichtige Details

www.javamagazin.de 8.2007 67 Open Source SOA

Abb. 1: unterscheiden. Mediationsprozesse die- Inte- griertes nen der Entkopplung von Services, indem Szenario sie zwischen dem Konsumenten und dem Anbieter vermitteln. Mediation umfasst:

• Protokollumsetzung, zum Beispiel von FTP nach HTTP • Formatkonversion, zum Beispiel Flat- File nach XML • Schematransformation, zum Beispiel Kunde1.xsd nach Kunde2.xsd • Routing, zum Beispiel Auftragswert > 500 – Lieferant A sonst Lieferant B

Geschäftsprozesse dagegen modellieren wie Verteilung und Verwaltung nicht im Apache Ode [2] stellt eine Laufzeitum- Prozesse mit Relevanz zur jeweiligen fach- Standard geregelt waren. gebung für BPEL4WS 1.1- und WS-BPEL lichen Domäne. Beispielsweise könnte ein Wie es scheint, hat man dazugelernt 2.0-konforme Prozesse zur Verfügung. komplexer, lang laufender Buchungspro- und neben der Interaktion und Packetie- Die Integration von Ode und ServiceMix zess über BPEL abgebildet werden. Einer rung der Komponenten auch spezifiziert, erfolgt über eine JBI Service Engine. der Vorteile ist die grafische Repräsenta- wie eine Komponente installiert, gestartet tion des Prozesses und die damit verbun- und gestoppt wird. Zudem sind die Ver- Prozesse dene einfachere Kommunikation mit den antwortlichkeiten von JBI-Komponenten Je nachdem, in welchem Kontext eine Fachbereichen. Mediationsprozesse und klar umrissen. Es wird zwischen Binding serviceorientierte Architektur entsteht, Geschäftsprozesse ergänzen sich somit. Components und Service Engines un- liegt der Schwerpunkt entweder auf der terschieden. Während erstgenannte die Integration bestehender Systeme (EAI) Szenario Kommunikation zur Außenwelt regeln, oder der Abbildung von Geschäftspro- Soweit zur Theorie. Im Folgenden soll ge- also beispielsweise Protokolle wie FTP, zessen (BPM). Dies führt regelmäßig zu zeigt werden, wie sich Prozesse mit Open- FILE oder HTTP implementieren, sind Missverständnissen. Während die BPM- Source-Technologien implementieren las- letztere für die interne Verarbeitung be- Fraktion meist reflexartig mit BPEL oder sen. Als Beispiel dient das fiktive Szenario stimmt. Dazu gehören beispielsweise BPMN als Mittel der Wahl antwortet, einer Hotelbuchung (Abb. 1). XSLT-Transformationen oder die Im- führen die EAI-Verfechter meist die Mög- Im Kern steht dabei ein Geschäftspro- plentierung von Interaktionsmustern wie lichkeiten des ESB ins Feld. Dabei führt zess, der in BPEL implementiert und in Apa- Splitter oder Pipeline. Eine vollständige die naive Anwendung der einen oder an- che Ode ausgeführt wird. Der Geschäfts- Liste der verfügbaren Komponenten steht deren Technologie selten zum Erfolg. In prozess nutzt einen Service tour operator, auf der ServiceMix-Website zur Verfü- der Praxis hat es sich bewährt, zwischen der als POJO implementiert ist und durch gung [1]. Mediations- und Geschäftsprozessen zu die Komponente servicemix-jsr181 an den ESB angebunden wird. Dies stellt die einfachste Methode dar, um einen Service Baustein Verantwortlichkeit bereitzustellen. Hier wäre es auch möglich, Enterprise Service Bus (ESB) Entkopplung von Services, Vermittlung externe Services beispielsweise über HT- Business Process Management (BPM) Abbildung von Geschäftsprozessen TP anzubinden. Der Service tour operator Rule Engine Dynamische Änderung von Regeln liefert eine Liste möglicher Hotels in un- Registry/Repository Verwaltung von Artefakten terschiedlichen Preislagen. Der Geschäfts- Identity Management Authentifizierung, Autorisierung, Single Sign-On prozess ermittelt das günstigste Hotel und Health Tracking / Activity Monitoring (BAM) Überwachung sendet das Ergebnis an den Aufrufer. Der Tabelle 1: Bausteine einer SOA Geschäftsprozess kann entweder synchron über SOAP/HTTP oder asynchron über Baustein Verantwortlichkeit XML/Filedrop aufgerufen werden. Die Enterprise Service Bus Apache ServiceMix [1], Codehaus Mule [15], Sun OpenESB [16] Vermittlung und Umsetzung übernimmt Business Process Management Apache Ode, JBoss jBPM [17], Intalio BPMS [14] der Mediationsprozess im ESB. Rule Engine JBoss Drools [11] Die Einbindung einer Rule Engine Registry/Repository Apache jUDDI [10] durch die Komponente servicemix-drools Identity Management Internet 2 Shibboleth [9] wäre ebenfalls möglich. Diese würde sich Tabelle 2: Open-Source-Bausteine analog zu servicemix-jsr181 als Service

68 8.2007 www.javamagazin.de Open Source SOA

in den ESB integrieren. Prinzipiell ist es sekundär, welche Technologie für die Ent- wicklung eines Service verwendet wird. BPEL, Drools, Groovy oder POJOs sind gleichberechtigt und für den Aufrufer transparent. Der Aufruf erfolgt immer über klar definierte Schnittstellen. Somit stellt der ESB zusätzlich zur Mediations- funktionalität eine Laufzeitumgebung für Serviceimplementierungen bereit. Abb. 2: JBI-Artefakte Artefakte Die Entwicklung von prozessbasierten beispielsweise der touroperator service Build-Prozess, eine Java-Entwicklungs- Systemen erfolgt zum großen Teil dekla- als über HTTP bereitgestellt umgebung für die Bearbeitung von Ja- rativ. Einzig der tour operator-Service ist werden. va und XML sowie ein BPEL-Designer in Java realisiert. Bei BPEL verschwim- In der Regel bilden mehrere Service an. Einen wirklich vollständigen, freien men die Grenzen zwischen deklarativer Units einen Verbund, der beispielsweise BPEL-Designer gibt es momentan noch oder imperativer Programmierung. Spä- um einen Mediationsprozess abzubilden. nicht, vielversprechend sind aber Net- testens wenn komplexe Zuweisungen Dieser Verbund wird in Form einer Ser- Beans 5.5 inklusive Enterprise Pack [4] oder Transformationen entwickelt wer- vice Assembly realisiert. Dabei handelt und das Eclipse BPEL-Designer-Plug-in. den sollen, sind handfeste Entwicklungs- es sich ebenfalls um eine ZIP-Datei, die Insbesondere NetBeans verfügt über ei- kenntnisse erforderlich. alle erforderlichen Service Units enthält. ne anspruchsvolle, BPMN-ähnliche Vi- Die Hauptaufgabe bei der Entwick- Eine Service Assembly ist die Einheit, die sualisierung, unterstützt aber noch nicht lung besteht darin, die JBI-konformen in den JBI-Container deployt wird. Jedes all BPEL-Merkmale, wie beispielsweise Artefakte zu erstellen. JBI unterscheidet JBI-Artefakt enthält einen Deskriptor mit Kompensation. Dafür verfügt es über ei- zwischen Komponenten, Service Units Namen jbi., der zusätzliche Infor- nen BPEL Mapper, der bei der Erstellung und Service Assemblies (Abb. 2). mationen gemäß der JBI-Spezifikation von BPEL Assigns hilfreich ist (Abb. 3). Komponenten werden einmalig in der enthält. Diese Deskriptoren werden, wie JBI-Laufzeitumgebung installiert. Dabei später noch zu sehen sein wird, vollstän- kann es sich um bereits verfügbare oder dig generiert, sodass der Inhalt an dieser Listing 2 selbst entwickelte Komponenten handeln. Stelle nicht relevant ist. Um eine Komponente zu nutzen, muss sie parametrisiert werden. Dies erfolgt durch Entwicklungsprozess 4.0.0 eine Service Unit. Eine Service Unit ist eine Als Entwicklungsumgebung bietet sich net.pleus.globaltravel ZIP-Datei mit den für eine Komponente die Kombination von Maven2 für den booking-ode-su erforderlichen Konfigurationsdateien. Di- 1.0 ese Dateien können für jede Komponente jbi-service-unit unterschiedlich sein. Beispielsweise ent- Listing 1 booking-ode-su hält die Service Unit booking-ode-su.zip unter anderem eine BPEL-Datei für den org.apache.ode Buchungsprozess, während booking-file- ode-jbi su.zip nur die Datei xbean.xml enthält. http/1.0“ 2.0-SNAPSHOT Die ServiceMix-Komponenten werden xmlns:to=“http://www.pleus.net/globaltravel/ touroperator“> über XBean [3] konfiguriert, sodass die Datei xbean.xml in den meisten Service Units zu finden ist. Listing 1 zeigt dies am endpoint=“touroperatorSOA“ Beispiel der Konfiguration für die Kompo- role=“consumer“ nente servicemix-http. locationURI=“http://0.0.0.0:8191/ org.apache.servicemix.tooling Die Konfiguration der Endpunkte ist Touroperator/“ jbi-maven-plugin abhängig von der jeweiligen Komponen- defaultMep=“http://www.w3.org/2004/08/ true te. Ein Endpunkt beschreibt den Einstiegs- wsdl/in-out“ punkt für den Aufrufer innerhalb des ESB. soap=”true” Die Angaben service und endpoint adres- soapAction=”findHotels”/> sieren einen Endpunkt eindeutig. Über die in Listing 1 gezeigt Konfiguration könnte

www.javamagazin.de 8.2007 69 Open Source SOA

Abb. 3: NetBeans BPEL-Designer

Um den manuellen Aufwand für die Die dependencies-Auflistung enthält Infor- • Starten und Stoppen von Komponenten Erstellung der JBI-Artefakte zu minimie- mationen zu den enthaltenen Service Units. und Service Assemblies ren, bietet ServiceMix das Maven-Plug-in Listing 3 verwendet exemplarisch die Ser- jbi-maven-plugin, mit dessen Hilfe sich vice Unit für die Ode BPEL Engine. Das Zusätzlich zu diesem Ansatz unterstützt Service Units, Service Assemblies und Ergebnis der Ausführung des Kommandos ServiceMix auch Hot Deployment über JBI-Komponenten inklusive der jbi.xml- mvn install ist eine Service Assembly mit das Dateisystem. Nach der Installation Deskriptoren generieren lassen. Listing 2 Namen globaltravel-sa-1.0.zip. der Distribution stehen die Verzeichnisse zeigt die Maven-Datei pom.xml zur Ge- install und deploy bereit. Standardmä- nerierung einer Service Unit für die Ode Deployment und Management ßig sind dort noch keine Komponenten BPEL Engine. Eine JBI-konforme Laufzeitumgebung installiert. Diese stehen im Verzeichnis Die Komponente, auf die sich die Ser- muss Java Management Extensions (JMX) components bereit. Um eine Komponen- vice Unit bezieht, wird durch das depen- in der Version 1.2 unterstützen. Durch die te zu installieren, muss sie lediglich in das dency-Element angegeben. Die Angabe bereitgestellten MBeans lassen sich die fol- install-Verzeichnis kopiert werden. All- jbi-service-unit genden Operationen ausführen: gemeine Klassen sind in der Bibliothek bewirkt die Erstellung einer Service Unit servicemix-shared enthalten. Daher muss mit Namen booking-ode-su-1.0.zip. Um • Installation von Komponenten und ge- diese zuerst installiert werden. mehrere Service Units zu einer Service As- meinsam genutzten Bibliotheken im lau- Die Komponente ode-jbi für die BPEL- sembly zusammenzufassen, kann das Ma- fenden Server (Hot Deployment) Integration ist nicht Teil der ServiceMix- ven Pom aus Listing 3 verwendet werden. • Hot Deployment von Service Units und Distribution und muss manuell erstellt Dieses Mal wird jbi-ser- Service Assemblies für installierte Kom- werden. Eine Beschreibung dazu findet vice-assembly angegeben. ponenten sich auf der Website von Apache Ode [2].

70 8.2007 www.javamagazin.de Open Source SOA

Service Assemblies, wie beispiels- die ebenfalls Teil der JBI-Spezifikation weise globaltravel-sa-1.0.zip aus dem sind. Somit lässt sich der gesamte Build- Beispiel, werden durch Kopieren in das Prozess inklusive Packetierung und Ver- deploy-Verzeichnis bereitgestellt. Zu- teilung automatisieren. sätzlich zu den JBI-konformen Merkma- len stellt ServiceMix noch ein leichtge- Erfahrungen und Potenziale wichtiges Verfahren für das Deployment Die gebotene Funktionalität ist bereits zur Verfügung. Dabei werden Kompo- sehr leistungsfähig. Dennoch gibt es Be- nenten direkt in der Startkonfiguration reiche, in denen es Verbesserungspotenzial servicemix.xml parametrisiert, die sich gibt. Durch den Zugriff auf den Source- im Verzeichnis conf befindet. Da dieses code lassen sich fehlende Merkmale mit Verfahren aber kein Hot Deployment vertretbarem Aufwand selbst entwickeln. erlaubt und nicht standardkonform ist, Die folgenden Abschnitte zeigen dies an sollten bestenfalls Prototypen auf dieser einigen Beispielen. Basis erstellt werden. Idealerweise sollte Sowohl ServiceMix als auch Ode be- die Datei servicemix.xml nur die unmit- finden sich noch im Inkubationsstatus. telbare Konfiguration des Containers Obwohl es zahlreiche Implementierungs- enthalten. beispiele gibt, ist die Entwicklung nicht Abb. 4: JMX-Management Durch die JMX-Fähigkeit kann jeder trivial. Oft sind es Kleinigkeiten, die die beliebige JMX-Client, wie beispielsweise Arbeit erschweren. Da viele Fehler erst JConsole für die Administration genutzt zur Laufzeit sichtbar werden, wie z.B. aktionszeiten sind kurz und liegen meist werden (Abb. 4). unterschiedliche XML-Namensräume in unterhalb einer Stunde. Die Abbildung zeigt die installier- den Deskriptoren, sind diese nur schwer ten Komponenten sowie die Service As- zu lokalisieren. Eine aktive Community Aktivierung sembly und Service Units. Alle MBeans und verschiedene Online-Foren [7], [8] In klassische Anwendungen, wie bei- sind ebenfalls über Ant-Tasks erreichbar, stehen als Hilfe zur Verfügung. Die Re- spielsweise Webanwendungen, werden

Listing 3

4.0.0

net.pleus.globaltravel globaltravel-sa 1.0 jbi-service-assembly globaltravel-sa

net.pleus.globaltravel booking-ode-su 1.0 Anzeige

...

org.apache.servicemix.tooling jbi-maven-plugin true

www.javamagazin.de

cp Personalanzeige 07-1 eclipse.1 1 25.04.2007 20:17:47 Uhr Open Source SOA

Aus den übermittelten Daten lassen sich der Prozessfluss und etwaige Fehler der Komponenten ableiten. Um einen Listener für Ode zu erstel- len, muss die Schnittstelle org.apache. ode.bpel.iapi.BpelEventListener imple- mentiert werden. Aufgrund einer Class- loader-Problematik muss der Listerner Bestandteil der JAR-Datei der Ode-Kom- ponente werden. Die JAR-Datei mit der Abb. 5: Broker-Netzwerk Implementierung wird dazu in der Datei pom.xml für Ode als Abhängigkeit defi- Prozesse häufig durch Zugriff von außen Eine Lösung besteht in der Entwicklung niert. Der Listener wird in der Datei ode- aktiviert. Dieses Muster wird auch von einer kombinierten Binding Compo- jbi.properties wie folgt registriert: ServiceMix, beispielsweise durch die nent/Service Engine, die sowohl durch Binding Component servicemix-http, eine Nachricht über den ESB aktiviert als ode-jbi.event.listeners=net.pleus.globaltravel.tracking. unterstützt. In prozessgetriebenen Sze- auch Daten externe Systeme anbindet. OdeListener narien erfolgt die Aktivierung ebenfalls ServiceMix stellt dafür die Basisklassen von innen. Beispielsweise dann, wenn DefaultComponent, ProviderEndpoint Nach der Kompilierung von Ode ist der regelmäßig Daten von einem FTP Server und ConsumerEndpoint im Paket org. Listener integraler Bestandteil der Kom- abgeholt werden sollen. Diese Art von apache.servicemix.common zur Verfüg­ ponente ode-jbi und wird mit ihr im ESB Prozess wird in der Regel zeitgesteuert ung. Im Zusammenhang mit dem Service­ installiert. ServiceMix stellt einfache Lis- aktiviert. Die ServiceMix-Binding Com- Mix-Maven-Plug-in und der Angabe tener für JDBC und Lucene im Paket org. ponents unterstützen einen einfachen, in- jbi-component beschränkt sich der Aufwand auf Konfiguration einer Komponente für den ein Minimum. Die Unterscheidung zwi- Produktiver Einsatz Datentransfer über FTP oder das Datei- schen Binding Components und Service Das wohl wichtigste Kriterium bei der system wird ein Intervall angegeben, wie Engines ist eher konzeptioneller Natur. Auswahl einer Technologie ist die Ein- das folgende Beispiel zeigt: Auf technischer Ebene sind die Unterschie­ setzbarkeit im produktiven Umfeld. de marginal. Hierbei sind Merkmale wie Skalierbar-

72 8.2007 www.javamagazin.de Open Source SOA

gesetzt werden. Um Hochverfügbarkeit deren Komponenten in einem Aktiv/Ak- für einzelne Knoten zu erreichen, kann tiv-Cluster bereitzustellen. ActiveMQ in einer Master/Slave-Konfi- guration betrieben werden, wobei jedem Fazit Master Broker ein oder mehrere Slave Mit Apache ServiceMix und Apache Broker zur Seite gestellt werden. Diese Ode stehen die Kernbausteine für die replizieren alle Nachrichten. Im Fehler- technische Implementierung einer ser- fall übernimmt einer der Slave Broker viceorentierten Architektur zur Verfü- die Verarbeitung und wird selbst zum gung. Zwar ist an einigen Stellen eigener Master. Entwicklungsaufwand erforderlich, um ActiveMQ implementiert Lastver- fehlende Merkmale zu realisieren. Aber teilung nach dem Round-Robin-Prinzip. dennoch lohnt sich der Aufwand, da sich Wenn ein Endpunkt auf mehreren Kno- auf dieser Basis bereits heute eine 100% ten in einem Cluster bereit steht, wird die Open-Source-basierte und standard- Last gleichmäßig auf den gesamten Clus- konforme SOA-Infrastruktur realisieren ter verteilt. Wenn ein Endpunkt nur auf lässt. einem Knoten zur Verfügung steht, wird Der vollständige Quellcode zu diesem die Nachricht an diesen Knoten gesen- Artikel befindet sich auf der beiliegenden det. Dadurch ist auch eine Distributed- CD. Broker-Konfiguration realisierbar. Das bedeutet, der ESB umfasst mehrere Kno- Wolfgang Pleus arbeitet als Technologie- ten, wobei die Knoten unterschiedliche berater, Autor und Trainer im Bereich ser- Komponenten und ServiceAssemblies viceorientierter Architekturen. Seit über10 Jahren unterstützt er internationale Unter- enthalten können. Ein Mediationspro- nehmen bei der Realisierung komplexer zess kann so auf den gesamten Cluster Geschäftslösungen auf der Basis von Java EE und .NET. Anzeige verteilt werden. Das kann erforderlich Sie erreichen ihn unter [email protected]. sein, wenn Komponenten eingesetzt werden, die eine spezielle Hardware oder Links & Literatur Lizenz benötigen, beispielsweise für eine [1] Apache ServiceMix: Verbindung zum Mainframe. Durch ei- incubator.apache.org/servicemix nen Distributed Broker lassen sich diese [2] Apache Ode: incubator.apache.org/ode Komponenten vom Rest des Clusters [3] Apache Xbean: geronimo.apache.org/xbean isolieren, wodurch Kosten gespart wer- [4] Netbeans: www..org den können. [5] Eclipse BPEL Designer: download.eclipse.org/ Die beschriebene Lastverteilung be- technology/bpel/update-site zieht sich auf die Verteilung innerhalb [6] JBI Spezifikation: jcp.org/aboutJava/ communityprocess/final/jsr208/index.html des Clusters. Ein vorgeschalteter Load [7] Apache Ode User Forum: www.nabble.com/ Balancer wird benötigt, um die Last auf Apache-Ode-User-f16255.html die einzelnen Knoten aufzuteilen. Für [8] ServiceMix User Forum: www.nabble.com/ eingehende Kommunikation wie HT- ServiceMix---User-f12050.html TP sind Verfahren, wie beispielsweise [9] Shibboleth: shibboleth.internet2.edu Hardware Load Balancer weitgehend [10] jUDDI:ws.apache.org/juddi etabliert. [11] JBoss Rules (Drools): labs.jboss.com/portal/ Für ausgehende Kommunikation, wie jbossrules/docs FTP oder File, sind diese Verfahren jedoch [12] Apache ActiveMQ: activemq.apache.org nicht brauchbar, da diese Komponen- [13] Apache Derby: db.apache.org/derby ten intern aktiviert werden. ServiceMix [14] Intalio: www.intalio.com verfügt noch nicht über Synchronisati- [15] Codehaus Mule: mule.codehaus.org onsmechanismen für Komponenten im [16] Sun OpenESB: open-esb.dev.java.net Cluster, sodass in der Beispielanwendung [17] JBoss jBPM: www.jboss.com/products/jbpm beide File-Komponenten gleichzeitig dieselbe Datei verarbeiten würden. Eine Lösung kann darin bestehen, einen Aktiv/ Die Redaktion freut sich über Ihr Artikel-Feedback: Passiv-Cluster für alle intern aktivierten [email protected] Komponenten zu verwenden und alle an- Feedback

www.javamagazin.de

in-Step.indd 1 23.04.2007 11:47:09