<<HOME <TechDocs

Alexander von Boguszewski

Vergleich TIBCO BWCE mit BW6


Ein Enterprise Service Bus (ESB) wird in vielen Unternehmen als strategische Integrationsplattform zwischen verschiedenen Anwendungen, kommerzieller Standardsoftware, Legacy-Anwendungen, Datenbanken und Cloud Services eingesetzt. In geschäftskritischen Einsätzen bei Banken, Einzelhändlern, Fluggesellschaften, Telekommunikationsunternehmen und anderen Unternehmen könnte ein zentrales ESB mit hoher Performance, hoher Verfügbarkeit und Fehlertoleranz auch in Zukunft eine gute Wahl sein.

Andererseits ist ein ESB eine komplexe Angelegenheit und schwergewichtiges Biest. Diese Komplexität ist auch einer der Gründe, warum viele SOA-Projekte gescheitert sind. Aber im Allgemeinen ist ein ESB mittlerweile eine ausgereifte, stabile und einfach zu bedienende Komponente. Ein ESB integriert in der Regel:

Mit Microservices und Containerisierung ist ein neues hersteller- bzw. technologieunabhängig Architekturkonzept zur Service-orientierte Architektur (SOA) entstanden. Daher ist keine eindeutige Standarddefinition oder Spezifikation verfügbar.

Dies ist sehr ähnlich wie bei einem On-Premise ESB und wird für die Implementierung von “Core Services”, d.h. zentralen, oft komplexen und geschäftskritischen Diensten, verwendet. Der Hauptunterschied besteht jedoch darin, dass die Lösung anstatt auf einem Integrierten System auf Container und Microservices basiert. Mit dieser Art von Integrationsmiddleware können Integrationsanwendunge nativ auf einer PaaS-Plattform wie Cloud Foundry oder OpenShift eingesetzt werden. TIBCO BusinessWorks Container Edition ist ein herstellerunabhängiges Beispiel, das CloudFoundry, Docker, Kubernetes, AWS ECS, etc. unterstützt. JBoss Middleware Services ermöglicht die Bereitstellung seiner Middleware-Anwendungen (einschließlich JBoss Fuse und A-MQ) auf OpenShift.

Während die Diskussion über Mikroservice-Architekturen durch Martin Fowler schon im Jahr 2014 begonnen wurde, entstanden die ersten Implementierung erst später. Getrieben wurde dieser Ansatz insbesondere von Netflix. Das Unternehmen hat eine Vielzahl von Frameworks für die Implementierung von Mikroservices zur Verfügung gestellt. Im Gegensatz zu Microservices gibt es mehrere spezifische Implementierungen von Container-Software. Der größte Teil der Dynamik dieser Tage steckt hinter Docker. Sein Ökosystem wächst täglich. Diese wird sich in den nächsten Jahren definitiv wieder festigen, aber auch deutlich reifer werden als heute. Weitere Beispiele für Containertechnologien sind CoreOS' rkt (Rocket) oder Cloud Foundry’s Garden / Warden. All diese Container-Konzepte nichts Neues sind, sondern seit Jahren in UNIX-Systemen zum Einsatz kommen, z.B. bei Solaris Zones oder BSD Jails. Microservices und Container sind das Fundament einer Cloud-Native-Architektur. Viele integrierten Features eines on-premise ESB, wie Orchestrierung, Skalierbarkeit oder Failover werden über herstellerunabhängige Komponenten gelöst. Für die Orchestrierung der Container kann beispielsweise Docker Swarm oder Kubernetes eingesetzt werden. Load Balancing ist mit Microservices und Containern wesentlich anspruchsvoller (und damit komplexer) als On-Premis. Eine reine Lastverteilung auf Basis bekannter IP-Adressen und Hosts reicht nicht mehr aus. Konzepte wie der gewichtete Lastausgleich, der auf mehreren Faktoren wie Verkehr, Ressourcenverbrauch oder Fehlerbedingungen basiert, sorgen aber für mehr Flexibilität.

Vergleich BW6 und BWCE

Beide Produkte, BW6 und BWCE, haben ihre Stärken. BW6 glänzt mit dem Monitoring- und Management-Dashboard von TIBCO TEA. BWCE glänzt durch seine Fähigkeit, sich nativ in das Container/Cloud Ökosystem einzufügen. Wenn wir eine Container-basierte Plattformen aufbauen, können wir die Integrationsschicht mit BWCE als Runtime gut hierin einbinden.

TIBCO ActiveMatrix BusinessWorks (BW6)

BW6 ist die Weiterentwicklung der Integrations- und Service-Delivery-Plattform von TIBCO. Die Plattform kann eine hohe Performance, Hochverfügbarkeit, Fehlertoleranz und garantierte Transaktionsabwicklung gewährleisten. Ausgelegt ist BW6 als integriertes System zum Betrieb im eigenen Rechenzentrum. Wir können die Software selbstverständlich auch in der Cloud deployen, aber das ist mehr “cloud-washed”! Alle Konzepte zur Skalierung und Fault Tolerance sind für den betrieb auf dezidierten Servern ausgelegt, sodass wir die Vorteile der Cloud nicht/kaum nutzen können.

TIBCO BusinessWorks Container Edition (BWCE)

BWCE liefert eine Laufzeitumgebung für Cloud-Integrationsprojekte, die verschiedene PaaS- und Container-Plattformen wie Cloud Foundry, Docker, Kubernetes oder AWS ECS unterstützt. Die BWCE Services laufen nativ in diesen PaaS-Umgebungen und profitieren somit von den Tools dieser Plattformen. Das heißt, das PaaS kümmert sich um die Bereitstellung der Infrastruktur und kümmert sich um Service Discovery, Load Balancing, Skalierbarkeit, Cluster Management oder Failover out-of-the-box. Dies ermöglicht eine agilere Entwicklung, um neue Funktionen schnell und effizient umzusetzen. Auf der anderen Seite muss die Anwendungsentwicklung und -architektur an Cloud-basierte Konzepte angepasst werden. Der Betrieb erfolgt mit den Mitteln der PAAS

Funktionen

Palette BWCE BW6
Binding REST Binding, SOAP Binding REST Binding, SOAP Binding
Basic Activities Palette Constructor, Compensate, Critical Section, Empty, End, Exit, For Each, Get Context, Invoke, Iterate, Local Transaction, Set Context, Start, Rethrow, Reply, Repeat on Error , Repeat, Receive, Scope, Set EPR, Throw, While Critical Section, Local Transaction, For Each, Iterate, Repeat, Repeat on Error, Scope, While, Constructor, Compensate, Empty, Exit, Get Context, Invoke, Rethrow, Receive, Reply, Set Context, Set EPR, Throw, Start, End
File Palette Copy File, Create File, File Poller, List Files, Read File, Remove File, Rename File, Write File (only for Docker base Container) Copy File, Remove File, Create File, File Poller, List Files, Read File, Rename File, Wait for File Change, Write File
FTL Palette FTL Publisher, FTL Reply, FTL Request Reply, FTL Subscriber FTL Publisher, FTL Reply, FTL Request Reply, FTL Subscriber
FTP Palette FTP Change Default Directory, FTP Delete File, FTP Dir, FTP Get, FTP Get Default Directory, FTP Make Remote Directory, FTP Put, FTP Quote, FTP Remove Remote Directory, FTP Rename File, FTP SYS Type FTP Change Default Directory, FTP Delete File, FTP Dir, FTP Get, FTP Get Default Directory, FTP Make Remote Directory, FTP Put, FTP Quote, FTP Remove Remote Directory, FTP Rename File, FTP SYS Type
General Activities Assign, Confirm, Call Process, Get Shared Variable, Inspector, Log, Mapper, Notify, On Notification Timeout, Receive Notification, Set Shared Variable, Sleep, Timer, Wait for Notification Assign, Call Process, Checkpoint, Checkpoints and Confirm Activity, Confirm, External Command, Get Shared Variable, Inspector, Log, Mapper, Notify, Set Shared Variable, Sleep, Timer, Wait for Notification, On Notification Timeout, Receive Notification
HTTP Palette HTTP Receiver, Send HTTP Request, Sending Data in the HTTP Request, Send HTTP Response HTTP Receiver, Send HTTP Request, Wait for HTTP Request, Sending Data in the HTTP Request, Send HTTP Response
JAVA Palette Adding Java Nature to a Project, Converting JAVA Class to XML Schema, Creating Custom XPath Functions, Using Custom XPath Function at Design Time and Run Time, Deleting Custom XPath Functions, Java To XML, Java Invoke, XML To Java, Java Process Starter Configuring JAVA in BusinessWorks Application Module, Converting JAVA Class to XML Schema, Creating Custom XPath Functions, Using Custom XPath Function at Design Time and Run Time, Deleting Custom XPath Functions, Java Invoke, Java Process Starter, Java To XML, XML To Java
JDBC Palette JDBC Call Procedure, JDBC Query, JDBC Update, SQL Direct JDBC Call Procedure, JDBC Query, JDBC Update, SQL Direct
JMS Palette Get JMS Queue Message, JMS Receive Message, JMS Request Reply, JMS Send Message, Reply to JMS Message Get JMS Queue Message, JMS Receive Message, JMS Request Reply, JMS Send Message, Reply to JMS Message, Wait for JMS Request
Mail Palette Receive Mail, Send Mail Receive Mail, Send Mail
Parse Palette Parsing a Large Number of Records, MimeParser, Parse Data, Render Data MimeParser, Parse Data, Render Data
REST and JSON BW JSON Utils, Invoke REST API, Restrictions on XML Schema, Parse JSON, Render JSON BW JSON Utils, Invoke REST API, Restrictions on XML Schema, Parse JSON, Render JSON
XML Activities Palette Parse XML, Render XML, Transform XML Parse XML, Render XML, Transform XML
Shared Resources Data Format, FTL Realm Server Connection, FTP Connection, HTTP Client, HTTP Connector, Identity Provider, JDBC Connection, JMS Connection, JNDI Configuration, Java Global Instance, Keystore Provider, Notify Configuration, Proxy Configuration, SMTP Resource, SSL Client Configuration, Thread Pool Data Format, FTL Realm Server Connection, FTP Connection, HTTP Client, Persistent Connections. HTTP Connector. Identity Provider. JDBC Connection. JMS Connection. JNDI Configuration. Java Global Instance, Keystore Provider, LDAP Authentication, Proxy Configuration, Rendezvous Transport, SMTP Resource, SSL Server Configuration, SSL Client Configuration, Subject Provider, TCP Connection, Trust Provider, WSS Authentication, XML Authentication, Notify Configuration
TCP Palette - Read TCP Data, TCP Close Connection, TCP Open Connection, TCP Receiver, Wait for TCP Request, Write TCP Data
Thread Pool - Thread Pool
Rendezvous Palette - Rendezvous Publisher, Rendezvous Reply To Request, Rendezvous Subscriber, Rendezvous Request Reply, Wait for Rendezvous Message
Policy Resources - Basic Authentication, Basic Credential Mapping, WSS Consumer, WSS Provider

..