Open-Source-Tools sparen SOA-Kosten

22.03.2007
Von Torsten Fink
Alternativ zu kommerziellen Produkten lässt sich aus quelloffenen Entwicklungswerkzeugen eine Plattform für Service-orientierte Geschäftsanwendungen zusammenstellen.
Viele Anforderungen eines Open-Source-Stacks für SOA lassen sich mit der Middleware-Suite von Jboss/Red Hat abdecken.
Viele Anforderungen eines Open-Source-Stacks für SOA lassen sich mit der Middleware-Suite von Jboss/Red Hat abdecken.

Praktisch jeder Hersteller von Entwicklungs-Tools für Business-Applikationen offeriert mittlerweile SOA-Erweiterungen für seine Produktpalette. Doch die kommerziellen Werkzeuge sind nicht billig. Wer sich einmal für ein Produkt entschieden hat, kann dies nur mit größerem Aufwand rückgängig machen.

Fazit

Mit dem vorgestellten Open-Source-Stack können Unternehmen leistungsfähige Geschäftsanwendungen nach SOA- Prinzipien entwickeln und betreiben. Der Großteil der Technologien entstammt der "Jboss Enterprise Middleware Suite" (Jems) und wird damit von der Firma Red Hat "aus einer Hand" angeboten. Der Stack bietet eine Menge gut zusammenpassender Techniken, die zukunftssicher sind und für die es professionelle Support- und Schulungsangebote gibt.

Open-Source- Produkte

• ActiveBPEL www.activebpel.org;

• ActiveMQ www.activemq.org;

• Facelets facelets.dev.java.net;

• Jems www.jboss.org

• Mule mule.mulesource.org.

• myFaces, Tomahawk myfaces.apache.org.

Hier lesen Sie ...

• aus welchen Komponenten ein Open-Source-Stack für SOA-Anwendungen bestehen kann;

• was die quelloffenen Systeme leisten;

• wo die Grenzen der Middleware-Suite von Jboss liegen.

Mehr zum Thema

www.computerwoche.de/

580733: Ein Plädoyer für Open-Source-SOA;

589357: SOA-Tools: IBM und SAP im Vergleich;

576246: Die Spaghetti-Falle droht auch bei SOA.

www.computerwoche.de/ soa-expertenrat

Open-Source Produkte können vor diesem Hintergrund Vorteile bringen: Erstens fallen keine Lizenzgebühren an, was mehr finanziellen Spielraum in der strategischen Planung er- weitert. Zweitens steht der Quellcode zur Verfügung, und zwar sowohl zur Einsicht für Problemanalysen als auch zum Bear- beiten, falls Anpassungen notwendig sind. Dies vermindert Abhängigkeiten von einem Hersteller.

JEE als Grundlage

Das von Red Hat übernommene Softwarehaus Jboss beispielsweise offeriert mit der quelloffenen "Jboss Enterprise Middleware Suite" (Jems) eine Java-basierende Produktpalette, die das Erstellen leistungsfähiger Geschäftsanwendungen ermöglichen soll. Jems setzt im Wesentlichen auf der Java Enterprise Edition (JEE) auf und erweitert diese um Produkte, die für eine SOA notwendig sind. Neben den von Jboss entwickelten und gepflegten Produkten enthält Jems weitere Standardkomponenten aus dem Open-Source Bereich, beispielsweise die JSF-Implementierung von Apache (JSF = Java Server Faces). Aktuell deckt Jems allerdings einige SOA-Bereiche noch nicht zufrieden stellend ab, so dass Nutzer auf alternative Produkte wie Mule und ActiveBPEL ausweichen müssen.

Die einzelnen Systeme eines Open-Source-Stacks für die SOA-Entwicklung werden im Folgenden nicht detailliert dargestellt; vielmehr stehen die wichtigsten Kriterien für die getroffene Auswahl im Mittelpunkt. Weitergehende Informationen finden sich in den Quellen, die im Kasten "Open-Source-Produkte" aufgelistet sind.

Grafische Benutzeroberflächen

Heutige Benutzeroberflächen sind in der Regel Desktop- oder Web-Anwendungen. Zum Entwickeln von Desktop-Applikationen bietet Java mit seinem GUI-Framework Swing ausreichend Unterstützung. Für Mobilgeräte lässt sich die Java Micro Edition (Java ME) einsetzen. Als Framework für Web-Anwendungen enthält die Java Enterprise Edi- tion JSF. Apache bietet mit myFaces eine leistungsfähige und erprobte Implementierung, mit Tomahawk zudem eine Bibliothek nützlicher Oberflächenelemente. Hinzu kommt das schlanke Framework Facelets zum Erstellen von JSF-Oberflächen. Ein standardkonformes Portal steht mit dem Jboss Portal zur Verfügung.

Geschäftsoperationen

Ein Framework, das speziell für große, skalierbare und sichere Geschäftsanwendungen konzipiert wurde, ist Enterprise Javabeans (EJB). In der Version 2.1 war die Programmierung noch sehr kompliziert, viele Entwickler lehnten sie deshalb ab. Mit dem folgenden Release EJB3 wurde das Framework auf den neuesten Stand der Technik gebracht und insbesondere das Programmiermodell erheblich vereinfacht. Enthalten die Geschäftsoperationen viele Geschäftsregeln, ist es sinnvoll, diese außerhalb der eigentlichen Programmlogik mit Hilfe eines Regelinterpreters zu entwickeln. Jems enthält hierfür Jboss Rules. Dabei handelt es sich um eine Weiterentwicklung des bekannten Systems Drools.

Anwendungsprozesse

Für die Entwicklung von Anwendungsprozessen, sprich: Prozessen innerhalb einer Applikation, bietet Jems jBPM an. Dahinter verbirgt sich eine Bibliothek, die Zugriff auf persistente Prozesse ermöglicht. Sie lässt sich einfach in Applikationen und in deren Transaktionsverwaltung integrieren. Da jBPM zusätzlich Anwenderaufgaben (Tasks) unterstützt, eignet sich das System gut für das Umsetzen von Anwendungsprozessen.

Integrationsprozesse

Von den Anwendungs- sind Integrationsprozesse zu unterscheiden, die das Zusammenspiel verschiedener Anwendungen steuern. Als Industriestandard für die Spezifikation von Geschäftsprozessen hat sich die Business Process Execution Language (BPEL) etabliert. Auf jBPM aufsetzend, bietet jBPM WSBPEL eine Unterstützung für BPEL an. Das System befindet sich aber noch in einer finalen Betaphase. Als Alternative lässt sich ActiveBPEL einsetzen, ein Produkt, das schon lange auf dem Markt ist.

Persistenz

Als Standardprodukt für objektrelationales Mapping (O/R-Mapping) hat sich im Open-Source-Umfeld Hibernate etabliert. Dieses gehört ebenfalls zu Jems und ist gut mit den anderen Komponenten der Suite integriert. Eine Alternative bieten EJB3 Entity Beans: Sie offerieren ein Programmiermodell, das Hibernate sehr ähnlich ist; zugleich sind sie aber besser mit den anderen EJB3-Komponenten verknüpft.

Lokale Integration

Geht es um die lokale Integra- tion, steht mit der Java Connector Architecture (JCA) eine JEE-Spezifikation für den Zugriff auf externe Geschäftsinformationssysteme (EIS) zur Verfügung. Für eine asynchrone lokale Kopplung sollte ein Nachrichtendienst eingesetzt werden. Jems bietet als Bestandteil des Applikations-Servers ebenfalls seit langem eine eigene Implementierung an. Diese wird demnächst durch das neue Jboss Messaging abgelöst, das weitere Dienste insbesondere für große Geschäftsanwendungen bereithält.

Übergreifende Integration

Mit dem Jboss ESB enthält Jems zudem einen leistungsfähigen Enterprise Service Bus. Jboss hat ihn im Juni 2006 von einer kanadischen Firma erworben und in die Middleware Suite integriert. Die erste Version veröffentlichte der Anbieter im Februar 2007. Allerdings fehlen noch viele Funktionen, die für einen breiten Einsatz notwendig sind; Jboss bietet zudem noch keinen Support an.

Das Produkt Mule von der renommierten Open-Source-Gruppe Codehouse ist dagegen schon lange erfolgreich im Einsatz. Die Integration mit den anderen Jems-Komponenten, insbesondere mit dem Applikations-Server, stellt kein Problem dar, so dass sich Mule derzeit gut als ESB eignet.

Entwicklungswerkzeuge

Mit der Jboss IDE bietet Jems eine auf Eclipse basierende Entwicklungsumgebung, die Softwareexperten beim Einsatz von Jems-Komponenten weitreichend unterstützt. Sie lässt sich auf einfache Weise um weitere Plug-ins erweitern und so an das konkrete Projekt anpassen. Neben der Entwicklungsumgebung umfasst Jems mit Seam außerdem ein Entwicklungswerkzeug, das die Kombination von einzelnen Anwendungskomponenten unterschiedlicher Architekturschichten vereinfacht. (wh)