Key Visual - Manage Your Business Integration
 

Mär

03

Standards von Opensource ESB's

By Frank Erbsen on Th, Mar/03/2011

Können bestehende, ausführbare Mediationen auf eine SOA Platform portiert werden? Wann wäre dieser Übergang sinnvoll? Was tragen OSGi und JBI zu einer SOA bei?

Übergang von der Ausführung einzelner Mediationen zum ESB als Laufzeitumgebung für Mediationen

Durch die Implementierung einer unmittelbaren Mediationslösung wird Konnektivität zwischen Anwendungen ermöglicht. Bei geringer Anzahl an zu integrierenden Anwendungen mag die noch sinnvoll sein. Mit zunehmender Zahl der Anwendungen wird der Realisierungsaufwand allerdings rasant steigen.

Ebenso wird es immer schwerer den Überblick über die bestehende Integrationslandschaft zu wahren. Zusätzlich müssen häufig alle Verarbeitungsschritte innerhalb einer Route in einem transaktionalem Kontext gesehen werden. Ebenso soll gewährleistet sein, dass Sicherheitsaspekte (wie zum Beispiel Authentifizierung und Autorisierung) bei dem Aufruf der Services erfüllt sind. Apache Camel stößt hier schnell an seine Grenzen. Um solche Aspekte lösen zu können, empfiehlt sich der Einsatz eines sogenannten ESB’s (
Enterprise Service Bus). Neben Apache Servicemix, existieren im Open Source Bereich noch Mule ESB, JBoss ESB, Sun Open ESB und WSO2 ESB. Eine Sonderrolle nimmt hier Eclipse Swordfish ein, welcher sich selbst als verteilten ESB sieht und damit im Gegensatz zu herkömmlichen ESB’s steht.

Im kommerziellen Bereich stehen den IBM Produkten (WebSphere Message Broker, WebSphere Datapower XI-50 und WebSphere ESB), Oracle Service Bus von Oracle, NetWeaver von SAP sowie ActiveMatrix Service Bus und ActieMatrix Business Works von TIBCO gegenüber. Ich möchte nun Apache Servicemix als Stellvertreter für Open Source ESB’s dem IBM WebSphere Message Broker gegenüberstellen.
    Apache Camel stellt prinzipiell 2 Klassen zum Management des Deployments von Integrationslösungen zur Verfügung. Eine Route bildet ein konkretes Integrationsszenario ab. Innerhalb eines
    Java Programmes wird eine Instanz der Klasse DefaultCamelContext erstellt. Nun kann man dieser mittels der Methode addRoutes() Routen hinzufügen. Diese werden aktiv, sobald die Methode start() des Context-Objektes aufgerufen wird.

    Abbildung 1: Deploymentstruktur des Beispielszenarios

    Abbildung 1 - Deploymentstruktur des Beispielszenarios

    Apache Servicemix basiert auf zwei Standards – OSGi und JBI.

    OSGi

    OSGi ermöglicht neue Routen, die in OSGi Bundles zusammengefasst werden zur Laufzeit von Apache Servicemix hinzuzufügen. Die OSGi Bundles können separat voneinander gestartet und gestoppt werden. Jedem Bundle ist ein eigener Classloader zugewiesen. Zugleich werden die einzelnen Komponenten, die Apache Camel zur Anbindung von Anwendungen bereitstellt (z.B. Active MQ-Komponente) einmalig als Bundle installiert. Sie können nun von allen implementierten Routen genutzt werden.

    Abbildung 2: Vorteile von OSGi

    Abbildung 2 - Vorteile von OSGi

    JBI

    JBI steht für Java Business Integration und ist ein Standard, der SOA ermöglichen soll. JBI bietetet mit den JBI Binding Components eine Alternative zu den Apache Camel Adaptern an, um Anwendungen anzubinden. Im Gegensatz zu Camel, wird eine mittels Binding Component angebundene Anwendung allerdings an einer zentralen Stelle registriert. An dieser zentralen Stelle kann später nachgefragt werden ob die gewünschte Anwendung über eine JBI Binding Component ansprechbar ist. Die Binding Components überführen die Ein- beziehungsweise Ausgabedaten einer Anwendung in eine einheitliche Normalized Message Diese Messages weisen zwar alle dasselbe physische Format auf, hinsichtlich der logischen Struktur existieren allerdings immer noch große Unterschiede, Somit ist eine direkte Integration zwischen Anwendungen auf Basis von JBI vorerst nicht möglich. Das bedeutet, dass eine Mediation zwischen den verschiedenen Normalized Messages nötig wird um die Anwendungen miteinander integrieren zu können. In ihrem Buch Open-Source ESB in Action merken Tijs-Rademakers und Jos Dirksen folgerichtig im Kapitel Routing and Transformation an, dass die zwei wesentlichen Konzepte von Servicemix (OSGi und JBI) keine Vorgaben zu Transformationen und Routing liefern. Dazu wird die Zwischenschaltung einer sogenannten Apache Servicemix Service Engine nötig oder der Einsatz von Apache Camel. Da die Apache Servicemix Service Engine lediglich XSL basierte Transformationen beherrscht, muss häufig auf Apache Camel zurückgegriffen werden. Apache Camel übernimmt somit die Mediation zwischen den beiden Anwendungen. Dazu bilden die über die Binding Components angebundenen Anwendungen jeweils den Start- und Endpunkt einer Mediation. Sie können über den JBI Adapter in Apache Camel direkt angesprochen werden. Im Gegensatz zur Apache Servicemix Service Engine stellt Apache Camel theoretisch die benötigte Funktionalität bereit um Flatfile Formate in XML beziehungsweise andere Flatfile Formate zu überführen. Allerdings müssen diese Transformationen vollständig ausprogrammiert werden.

      Abbildung 3: Überblick JBI

      Abbildung 3 - Überblick JBI

      Fazit: Für die Anwendungsintegration auf Basis von Open Source existieren gute Ansätze, aber keine Komplettlösungen im Sinne eines kommerziellen ESB

      Abschließend möchte ich noch auf ein paar Erfahrungen eingehen, welche ich bei der Recherche für diesen Artikel sammelte. Diese gestaltete sich nämlich als außerordentlich schwer. Der Einstieg in Servicemix war schnell über ein kostenloses progress FUSE ESB/ Apache Servicemix Webinar gefunden. Mit dem Resultat, dass ich nun um noch mehr Fragen reicher war als an Antworten. Für Verwirrung und Frust statt Erleuchtung sorgte besonders die Livedemo. Der dabei aufgezeigte Entwicklungsprozess schien wenig sinnvoll. Bei dem Versuch das Szenario selbst zu implementieren traten dann diverse Fehler und Probleme auf, die nicht einmal ansatzweise in der Livedemo geschildert wurden. Die Anforderungen bezüglich der Kenntnisse zu Maven, Spring, OSGi und JBI wurden kaum herausgestellt. Also informierte ich mich näher zu den einzelnen Bereichen. Dabei gestaltete sich nicht primär die Einarbeitung in diese Tools als Problem, sondern die Verknüpfung zwischen den Techniken. Sobald mehrere Tools miteinander kombiniert wurden, traten Fehler auf, zu denen kaum Informationen aufzufinden waren. Nach einer weiteren ausführlichen Recherche stieß ich dann auf eine Videoreihe von progress, die zumindest ansatzweise den Entwicklungsprozess darstellte, aber immer noch viele kleinere Probleme ausblendete. Hier wurde klar, wie aufwändig die Entwicklung von Integrationslösungen mittels der Apache Produkte gegenüber der Realisierung mit dem WebSphere Message Broker ist. Zudem zeigten die Videos natürlich nur auf Servicemix zugeschnittene Szenarien. Eine dritte ausführliche Recherche zum Thema Transformation, dass immer wieder auftauchte und aus meiner Sicht eine bedeutende Rolle spielt ergab dann, das aktuell kein kostenloses Open Source Tooling existiert um schnell komplexe Transformationen zu realisieren. Es existieren lediglich Ansätze wie Smooks, die aufzeigen, dass sich Open Source Anbieter generell dieses Sachverhaltes bewusst sind. So bietet Camel zum Beispiel eine Einbindung von Smooks in bestehende Routen an. Die zweite große Frage die aufkam war, inwiefern ein grafisches Tooling existiert um Flows abzubilden und die Verständlichkeit von Mediationen zu erhöhen. Auch dieser Schwäche sind sich die Open Source Anbieter bewusst. Vielleicht gelingt es dem Eclipse SOA Tools Platform Project diesen so offensichtlichen Mangel zu beseitigen.


      Margin
      Blog-Autor
      Frank Erbsen
      Frank Erbsen
      Software Engineer
      +49 221 97343-47
      Margin
      Informationen
      7.0.1  7.0.2  8.0  Absatzmarkt  Active MQ  Active  Administration  Agile Lösungen  Agility  AMS  Analyst  Analytics  Anbindung  Anforderungen  Anwenderkonfernz  Apache  Application Server  API Management  API  AS2  ASP  Automatisierung  b2b  B2B Integration  Basic  Big Data  Blogreihe  Bluemix  Blueworks  BPM  Broker  BRMS  Bus  Business Process Management  Business Rules  Buzzword  Camel  Cast Iron  Cloud API  Cloud Computing  Cloud Integration  Cloud  Commerce  Compliance  Conference  Connect:Direct  CPLEX  CXF  DataPower  Decision Server Insights  Deployer  Deployment  Development  DFDL  Digitalisierte Prozesse  Digitalisierung  Domino  DSI  e-Fachverfahren  ersteinrichtung  Edi  Edition  Einführung  Einsatz  Entscheidung  Entwicklung  ESB  Excel  Fahrplanoptimierung  Features  Federated Connectivity  File Transfer  Filetransfer  Finance  FTE  gentran  gis  Geschäftsprozesse  Go Live  Google  Governance  Hardware ESB  Hosting  Hybrid-Cloud  Hybrid Cloud  Hybrid  IBM Blueworks  IBM BPM  IBM Integration Bus  IBM InterConnect  IBM  ILOG DOC  ILOG LNP  ILOG Transportation Analyst  ILOG  Impact  Infrastruktur  Installation  Integration as a Service  Integration Bus  Integration  Integrator  Interoperabilität  IT-Business-Alignment  Konfiguration  Linear  LNP  Logistik  monitoring  M2M  Manage File Transfer  Management  Marktplatz  Mathematik  Mediation  Message Broker  Messages  Messagesight  Messaging  MFT  Migration  Modellierung  MQ  MQTT  Multicast  Muster  Nachlese  Neuerungen in V7.0.1  Neuerungen  off-premise  on-premise  ODM  ODME  Öffentliche Verwaltung  Open Source  Operational Decision Management  Optimierung  OPL  OSGi  Outsourcing  PaaS  Pattern Integration  Pattern  Patterns  Performance  Portfolio  Praxis  Private  Process Server  Produktionsplanung  Prozessautomatisierung  Prozessintegration  Prozessmodelierung  Prozessoptimierung  PureSystem  Qualität  Real Time  Regelmanagement  Rollen  Routenplanung  Routing  ROI  SaaS API  SaaS Integration  SaaS  Salesforce  Schwerpunktanalyse  Script  SCM  Security  Service Federation Management  Servicemix  SFM  SI  Slotting  SoapUI  SOA Cloud Symposium  SOA  SPSS  Standard  Standardplattform  Standardtool  Standortoptimierung  Sterling Integrator  Sterling  SugarCRM  Symposium  Template  TIP  TM1  TOSCA  Transportation  Transportoptimierung  Übersicht  Umstieg  Unix  Update  vergleich  Vorteile  worklight  workload  wtc  Wartung  Websphere  Websphere: Rollen  WebService Security  WebSphere Enterprise Service Bus  WebSphere ESB  WebSphere MessageBroker  WebSphere Technical Conference  WebSphere  WESB  Workloads  WODM  XAR