Integration von IT-Anwendungen (EAI)

Als Architekt eines JEE basierten EAI Systems, das seit mehreren Jahren erfolgreich im Einsatz ist, bin ich immer wieder über kommerzielle EAI Systeme erstaunt, bei denen sich selbst einfache Integrationsszenarien nur mit hohem Aufwand implementieren lassen.
Die Wenigsten besitzen eine durchgängige Konnektor-Architektur, die es ermöglichen würde, die gleichen Konfigurations-, Steuerungs- (z.B. zur Steuerung von Transaktionen) und Deployment-Konzepte für alle Konnektorarten zu verwenden. Ebenso sind viele Systeme rein Messaging basiert, was ihnen in der Regel nicht ermöglicht, verteilte Transaktionen über mehrere angebundene Endsysteme zu realisieren.
Ein Manko, das ich bei anderen EAI Systemen meist sehe ist, dass die Endpunkt-Konfiguration (Connect-Info) der Systeme, auf die im Rahmen eines Integrationsprozesses zugegriffen wird, entweder im Prozess selbst oder im EAI Laufzeitcontainer konfiguriert ist.
Das bedeutet in der Regel, dass alle Prozessinstanzen eines Prozesses in einem Laufzeitcontainer ausschließlich auf das selbe Tupel von Endpunkten zugreifen können. Es können also keine Instanzen ausgeführt werden, die auf ein anderes Tupel von Endsystemen zugreifen.
In vielen Szenarien ist das aber nötig, wenn z.B. die Daten eines zentralen PPS-Systems an mehrere gleichartige Shopfloor-Systeme an verschiedenen Standorten verteilt werden müssen. Das von mir entworfene System lagert die Endpunktkonfiguration in einen neuen Artefakt-Typ "Prozess-Konfiguration" aus. Dies ermöglicht die Ausführung eines Prozesses in mehreren Instanzen, die jeweils durch die Nutzung verschiedener Konfigurationen auf verschiedene Endsysteme zugreifen können.