Über Oktopus
Oktopus ist nicht nur eine Software, sondern auch ein völlig neues Konzept der Integration. Im Gegensatz zu anderen Integrationsservern verwendet Oktopus nicht ein channelbasiertes Modell, in welchem Kanäle zwischen einzelnen Subsystemen aufgebaut werden. Oktopus nutzt ein Nachrichtenmodell, das alle eingehenden Daten in eine universelle Normalform umwandelt. Diese normalisierten Nachrichten können dann beliebig weiterverarbeitet werden und in jedwede Nachrichtenform umgewandelt werden. Oktopus ist in der Lage Nachrichten in unterschiedlichen Encodings zu verarbeiten. Dabei wird jede Nachricht zu Unicode dekodiert, der alle denkbaren Zeichen beinhalten kann. Die Nachrichten in der Normalform können dann in beliebigen Encodings dargestellt werden.
Ein weiteres Konzept von Oktopus besteht darin, alle Kommunikation nach außen mittels Nachrichten zu realisieren. Hierzu werden Nachrichten auf sogenannte virtuelle Schnittstellen geroutet. Auf diese Art und Weise kann Oktopus auch durch Nachrichten gesteuert werden, sowie alle relevanten Loggingformationen über jedes beliebiges Interface ausgeben. Dies macht Oktopus zu einem System, welches beliebige Workflows abbilden kann und auf jedes Event reagieren kann. So kann eine beliebige Nachricht eines Subsystems Oktopus steuern und beispielsweise ein Interface stoppen oder starten. Oktopus stellt sogenannte Systemschnittstellen zur Verfügung. Diese dienen nicht für der Kommunikation mit Subsystemen, sondern der Verarbeitung von Nachrichten. So können Nachrichten zwischengespeichert und bei Bedarf weitergeroutet, archiviert oder an eine andere Instanz von Oktopus weitergeleitet werden.
Plattformunabhängig
Durch den Einsatz der Scriptsprache Python ist Oktopus in der Lage auf verschiedenen Plattformen ausgeführt zu werden. Oktopus kann als Windows-
Dienst, als Linux-Daemon oder unter Apples iOS eingesetzt werden. Entwickelt wird Oktopus unter Debian-Linux und FreeBSD. Hierfür existiert auch ein Installationsscript, welches alle nötigen Pakete automatisch mittels des Paketmanagers DPKG installiert. Als Serversystem kann Oktopus somit ohne Lizenzkosten für das Serverbetriebssystem mit maximaler Stabilität betrieben werden.
Effizient
Beim Import von Python-Programmcode wird vom Interpreter Bytecode erzeugt, der es Oktopus erlaubt, äußerst performant zu arbeiten und die vorhandenen Ressourcen sehr effizient zu nutzen. Oktopus kann auf einfacher Hardware bereits ca. 25 HL7-Nachrichten pro Sekunde zerlegen, routen, neu zusammensetzen und weiterversenden. Dies ist durch die konsequente Entwicklung von auf Performance optimierten Code und das integriertes Loadbalancing möglich, durch welches jedes Interface soviel Rechenzeit wie nötig zur Verfügung gestellt bekommt.
Multithreadingfähig
Durch ein hervorragendes Multithreading ist Oktopus in der Lage, die Kommunikation zu den unterschiedlichen Subsystemen asynchron auszuführen. Exceptions eines Ausführungsfadens haben dadurch keine Auswirkung auf andere Schnittstellen. Ressourcen, welche von mehreren Schnittstellen benötigt werden, wie beispielsweise der Counter, der angibt, an wieviele Interfaces eine Nachricht versendet wurde, werden mittels Semaphoren immer nur einer Schnittstelle zugewiesen. Hierdurch kommt es nicht zu Wechselwirkungen zwischen den Schnittstellen.
Unsere Motivation
Unsere Gesellschaft und unsere Wirtschaft wird jeden Tag vernetzter. Unterschiedliche Lebensbereiche, in denen wir verschiedene Anwendungen und Softwaresysteme benutzen, tauschen Daten aus und verschmelzen zu einem allumfassenden System. Um die Kommunikation zwischen diesen unterschiedlichen Systemen und Bereichen zu ermöglichen, wurden unterschiedliche Standards und Normen geschaffen. SOAP, ODBC, FinTS, EDI oder im Krankenhausbereich HL7 versuchen die verschiedenen Anwendungen zu normieren und stellen den Versuch dar, aus unterschiedlichen Applikationen ein möglichst lückenlos integriertes Gesamtsystem zu erzeugen.
Allerdings liegt die Betonung auf dem Attribut „verschiedene“. Es existieren eine ganze Reihe solcher Standards und nur die Systeme, welche sich auf den gleichen festgelegt haben, lassen sich mit geringem Aufwand integrieren. Und genau an dieser Stelle setzt Oktopus an. Ziel ist es, Schnittstellen auf veschiedenen Layern des OSI-Schichtenmodelles anzubinden und alle Nachrichten in eine einheitliche universelle Form zu transformieren. Diese Nachrichten können dann als Trigger für einen komplexen Workflow verwendet werden. Oktopus macht somit aus einer heterogenen Umgebung unterschiedlicher Softwaresysteme ein hochintegriertes Gesamtsystem.