-
Die vorliegende Beschreibung bezieht sich auf eine Vorrichtung, ein Verfahren und ein System für eine Schnittstelle zur Datenübertragung von einem ersten datenverarbeitenden System zu einem zweiten datenverarbeitenden System. Insbesondere kann die Schnittstelle zur Kopplung von privaten Rechnern, Datenbanken oder Netzwerken mit öffentlichen Netzwerken wie dem Internet oder anderen Netzwerken verwendet werden.
-
Datenbanken bilden in Unternehmen heutzutage die zentrale Stelle in der alle relevanten Informationen des Unternehmens abgelegt werden. Einerseits müssen alle Mitarbeiter und Prozesse der Firma Zugriff auf diesen Datenbestand haben. Andererseits müssen diese Daten auch vor unbefugten Zugriffen geschützt werden. Der Aufwand, den man für diesen Schutz betreiben muss, steigt, je mehr Nutzer Zugriff auf potentiellen Zugangsstellen haben. Dabei steigt gleichzeitig das Risiko, eine offene Lücke in der Sicherheitsstruktur zu haben.
-
Eine der kritischsten Stellen in der sicherheitstechnischen Infrastruktur bildet der Übergang zwischen Sicherheitsbereichen, z. B. zwischen einem internen Firmennetz und einem externen Netz (meist das Internet). Gerade das Internet, als universelle Schnittstelle zu fast jeder Person, nimmt eine zentrale Rolle in der Kooperation zwischen Kunden/Partnern und Firma ein.
-
Aus diesem Grund werden immer mehr Informationen und Prozesse über diese Schnittstelle abgebildet. Als Beispiele aus dem Bankensektor sind das Online Banking oder das Anlegen eines Kontos über das Internet zu nennen. Ein weiteres Beispiel ist die Übertragung von Messwerten aus privaten Windparks in das Leitsystem großer Energieversorger. Diese Beispiele stehen stellvertretend für eine Vielzahl andere Fälle, bei denen ein Netzwerkübergreifenden Datenaustausch und der Zugriff auf konkrete Anwendungen gewünscht ist.
-
Anhand der ständig steigenden Anzahl von veröffentlichten Schwachstellen in IT-Produkten zeigt sich das Risiko, dass immer mehr Systeme ohne viel Aufwand gekapert werden können, wodurch diese unberechtigten Personen relativ leicht Zugriff auf sensible Daten des Unternehmens erhalten.
-
Um einem Nutzer keinen direkten Zugriff auf eine zentrale Datenbank bzw. eine Anwendung zu geben, werden zusätzliche Datenbanken installiert. Diese zusätzlichen Datenbanken enthalten nur den Datenbestand oder Kopien der Daten, die für die jeweilige Anwendung notwendig ist.
-
Das sicherheitstechnische Risiko entsteht an der Stelle, wo es zu einem Datenabgleich kommt. Heutzutage kommen Techniken der Replizierung zum Einsatz um einen konsistenten Datenbestand zu erhalten. Wenn man diesen Abgleich in einer kontrollierten Umgebung, z. B. zu festgelegten Zeiten, unter Aufsicht von Personal durchführt, ist das Risiko, dass ein Eindringling diese Kommunikationsleitung erfolgreich nutzt, um in das Firmennetz oder an den Datenbestand zu kommen, gering. Dieser eher theoretische Ansatz findet keine Akzeptanz beim Nutzer, da dieser erst nach Stunden oder sogar nur einmal am Tag eine Rückmeldung auf eine seiner Aktionen bekommt. Ein zweiter Nachteil liegt beim benötigten Personal, das solche monotonen Prozesse zyklisch durchführen muss.
-
Aus diesem Grund existieren permanente Kommunikationsverbindungen bzw. Schnittstellen, wie Ethernet, InfiniBand oder TCP/IP basierende Verbindungen (Kommunikationsnetzwerk) zwischen internen und externen Netzen die jederzeit durch einen erfolgreichen Angriff ausgenutzt werden können, um sich Zugang zu den sensibelsten Daten zu verschaffen.
-
Zur Verhinderung eines direkten Routings durch eine Kommunikationsverbindung schlägt die
WO 2009/075656 eine „virtual air gap” genannte Schnittstelle vor, bei welcher ein internes Netzwerk und ein externes Netzwerk jeweils mit einem internen bzw. externen Sicherheitselement kommunizieren. Die Sicherheitselemente übersetzen Anweisungen aus dem externen Netzwerk in ein speziell verschlüsseltes Format und speichern es auf einem gemeinsamen Speicher ab, wovon die verschlüsselte Information gelesen und zurück in die Anweisung übersetzt wird.
-
Die Kommunikation erfolgt auf einer der unteren Schichten (TCP/IP, Layer 4 ISO/OSI-Modell). Zudem kommt zur Absicherung eine Verschlüsselung zum Einsatz.
-
Der vorliegenden Erfindung liegt daher die Aufgabe zu Grunde ein sichere Schnittstelle bereitzustellen, welche die Nachteile des Standes der Technik überwindet.
-
Zusammenfassung der Erfindung
-
Die vorliegende Beschreibung schlägt eine Schnittstelle, ein Verfahren und ein System zur Datenübertragung von einem ersten datenverarbeitenden System zu zumindest einem zweiten datenverarbeitenden System vor. Die datenverarbeitenden Systeme können dabei einzelne Rechner oder Prozessoren sein oder Netzwerke umfassen. Beispielsweise kann das erste datenverarbeitende System ein geschütztes privates Netzwerk sein und das zweite datenverarbeitende System ist das Internet.
-
Das System umfasst einen ersten anwendungsspezifischen Konnektor, welcher mit einer ersten Anwendung des ersten datenverarbeitenden Systems für die erste Anwendung spezifische Daten austauschen kann, zumindest einen zweiten anwendungsspezifischen Konnektor, welcher mit einer zweiten Anwendung zumindest eines zweiten datenverarbeitenden Systems für die zweite Anwendung spezifische Daten austauschen kann, und einen Datenspeicher auf den der erster Konnektor und der zweite Konnektor Zugriff haben. Eine Instruktion aus der ersten Anwendung wird von dem ersten Konnektor in dem Speicher abgelegt und wird von dem zweiten Konnektor aus dem Speicher gelesen.
-
Die Schnittstelle umfasst einen ersten anwendungsspezifischen Konnektor, welcher mit einer ersten Anwendung des ersten datenverarbeitenden Systems für die erste Anwendung spezifische Daten austauschen kann, zumindest einen zweiten anwendungsspezifischen Konnektor, welcher mit einer zweiten Anwendung zumindest eines zweiten datenverarbeitenden Systems für die zweite Anwendung spezifische Daten austauschen kann, und einen Datenspeicher auf den der erster Konnektor und der zweite Konnektor Zugriff haben.
-
Das Verfahren umfasst ein Empfangen einer zu übertragenden Änderung oder Instruktion von einer ersten Anwendung aus dem ersten datenverarbeitenden System, ein Speichern der zu übertragenden Änderung in einem Speicher durch einen ersten Konnektor, ein Lesen der gespeicherten zu übertragenden Änderung in dem Speicher durch einen zweiten Konnektor, ein Bestimmen, ob die zu übertragende Änderung in das zweite datenverarbeitende System weitergeleitet werden soll, und ein Weiterleiten der zu übertragenden Änderung an eine zweite Anwendung in dem zweiten datenverarbeitende System, wenn bestimmt wurde dass die zu übertragende Instruktion in das zweite datenverarbeitende System weitergeleitet werden soll.
-
Mit der Vorrichtung, dem Verfahren und dem System können in einer neuartigen Art zwei oder mehrere datenverarbeitende Systeme, die in beliebiger Weise miteinander kommunizieren sollen, asynchron und nicht routingfähig miteinander verbunden werden.
-
Das erste und oder zweite datenverarbeitende System kann dabei ein einzelner Prozessor oder eine Datenbank sein. Insbesondere kann das datenverarbeitenden System auch ein Netzwerk aus mehreren Rechnern sein, wie beispielsweise ein firmeninternes Netzwerk oder ein allgemein zugängliches oder externes Netzwerk wie das Internet. Der Ausdruck erstes datenverarbeitendes System und zweites datenverarbeitendes System können dabei austauschbar sein, wenn die Verbindung bidirektional ist. Beispielsweise kann das erste datenverarbeitende System ein externes Netzwerk sein und das zweite datenverarbeitende System ist ein Rechner oder ein internes Netzwerk, oder umgekehrt. Die erfindungsgemäße Schnittstelle kann an jeder Schnittstelle zwischen zwei Systemen eingesetzt werden, welche Daten miteinander austauschen.
-
Durch den Einsatz der vorgeschlagenen Vorrichtung, Verfahren und/oder Systems wird eine sichere Netztrennung geschaffen, welche das unberechtigte Übergreifen aus dem ersten Netzwerk in das zweites Netzwerk zuverlässig verhindert. Das erste datenverarbeitende System und das zweite datenverarbeitende System können voneinander physikalisch getrennte Datennetzwerke sein, wobei die einzige physikalische Verbindung der Speicher darstellt. Die vollständige Netztrennung lässt sich realisieren, weil die Kommunikation zwischen den Netzwerken gemäß der vorliegenden Offenbarung vom Prinzip der Datenübertragung (ISO/OSI) auf das Prinzip der Datenspeicherung umgesetzt wird. Damit wird auf der technischen Ebene der Kommunikation eine vollständige Entkopplung erreicht, die nicht auf bestimmte Netzwerk-Konfigurationen und/oder Anwendungsfälle beschränkt ist.
-
Der erste anwendungsspezifische Konnektor empfängt und ggf. übermittelt Daten direkt von der ersten Anwendung. Die Daten oder Änderungen der Daten bzw. Anweisungen oder Instruktionen sind für die jeweilige Anwendung, beispielsweise eine Datenbank spezifisch. Die Daten oder Änderungen der Daten bzw. Anweisungen oder Instruktionen können beispielsweise SQL-spezifisch oder spezifisch für Oracle Datenbanken sein. Die Daten oder Änderungen der Daten bzw. Anweisungen oder Instruktionen können auf einer höheren ISO/OSI Ebene übertragen werden, beispielsweise auf zumindest einer aus den Ebenen 5 (Sessionebene), 6 (Darstellungsebene) oder 7 (Anwendungsebene).
-
In gleicher Weise übermittelt und ggf. empfängt der zweite Konnektor Daten direkt an die/von der zweite(n) Anwendung. Die ersten Anwendung und die zweite Anwendung können gleich oder voneinander verschieden sein.
-
Der erste Konnektor kann die Daten in einem allgemein gültigen oder universellen Format auf dem Speicher ablegen. Der zweite Konnektor liest dann die Daten in dem allgemein gültigen oder universellen Format ändert sie in für die zweite Anwendung spezifische Daten, Änderungen, Anweisungen oder Instruktionen und übermittel sie an die zweite Anwendung.
-
Die Verwendung des ersten anwendungsspezifischen Konnektors und des zweiten anwendungsspezifischen Konnektors ermöglicht es auf eine Kodierung der in dem Speicher abgelegten Daten oder Informationen zu verzichten.
-
Der Speicher kann zumindest einen ersten Bereich umfassen, in welchen ausschließlich der erste Konnektor schreiben kann. Der zumindest zweite Konnektor und ggf. weitere Konnektoren können diesen ersten Bereicht lesen. Für eine zumindest bidirektionale Schnittstelle kann der Speicher zumindest einen zweiten Bereich umfassen, in welchen ausschließlich der zweite Konnektor schreiben kann. Der zumindest erste Konnektor und ggf. weitere Konnektoren können diesen ersten Bereich lesen.
-
Beispielsweise ist es mit der vorliegenden Offenbarung möglich, einen in jedem Netzwerk durch Dopplung separat vorhandenen Datenbestand im laufenden Betrieb so zu synchronisieren, dass die Integrität der Daten gewährleistet ist und die separaten Datenbestände in jedem der beteiligten Netzwerke wie ein einziger Datenbestand erscheinen (virtueller Datenbestand).
-
Es ist ebenso möglich, verschiedene heterogene Netzwerke in beliebiger Weise kommunizieren und diese einem Benutzer der Kommunikation als homogen erscheinen zu lassen (virtuelles Netzwerk, Cloud).
-
Figurenbeschreibung
-
Beispiele der vorliegenden Erfindung werden im Folgenden anhand der beiliegenden Figuren erläutert, welche lediglich beispielhaft die vorliegende Beschreibung darstellen und welche zeigen:
-
1 eine Schnittstelle gemäß dem Stand der Technik;
-
2 eine Schnittstelle wie sie mit der vorliegenden Beschreibung verwendet werden kann;
-
3 die Verbindung innerhalb der Konnektoren die zentralen Elemente der Schnittstelle;
-
4 die zentralen Elemente einer Seite der Schnittstelle;
-
5 die OSI Schichten einer Schnittstelle; und
-
6 die Kommunikationsebenen in einer Schnittstelle.
-
Detaillierte Beschreibung
-
Die nachfolgende Beschreibung von Beispielen der vorliegenden Erfindung ist lediglich beispielhaft und nicht einschränkend. Ein Fachmann wird erkennen, dass die beschriebenen Merkmale nicht alle zur Ausführung der Erfindung erforderlich sind und das die verschiedenen Merkmale frei miteinander kombiniert werden können.
-
Ein Netzwerk im Sinne der vorliegenden. Beschreibung umfasst dabei ein Datenverarbeitungsnetzwerk (DV-Netzwerk). Ein Netzwerk ist eine Datenverarbeitungsumgebung, in der DV-Komponenten, im Folgenden auch als Komponenten bezeichnet, über ein gemeinsames Protokoll miteinander kommunizieren.
-
Ein Netzwerk kann öffentlich sein, d. h. die Komponenten sind von beliebigen anderen Komponenten zugreifbar bzw. nutzbar. Es besteht keine Form einer nicht technischen Zugehörigkeit zwischen den Komponenten. Eine Authentifizierung der Komponenten ist davon unabhängig. Beispiele: Internet, sog. Public Clouds, Kiosksysteme, etc.
-
Ein Netzwerk kann nicht öffentlich, d. h. privat oder intern sein. In diesem Fall existiert eine Form der nicht technischen Zugehörigkeit von Komponenten, welche die Privatheit definiert oder spezifiziert. Die Komponenten eines privaten Netzwerks stehen nur solchen Komponenten zur Verfügung, die entweder derselben oder einer anderen, in diesem Fall jedoch von oder durch die Erstere autorisierten, nicht technischen Zugehörigkeit unterliegen. Eine Authentifizierung der Komponenten ist davon ebenfalls unabhängig. Beispiele: Firmen- oder Behördennetze, sog. Intranets, sog. Private Clouds, etc.
-
1 zeigt eine Schnittstelle wie sie üblicherweise zur Verbindung von Netzwerken verwendet wird. Für viele Anwendungen ist ein netzwerkübergreifender Datenaustausch von einem externen oder öffentlichen Netzwerk 10, wie beispielsweise dem Internet auf Daten eines internen oder privaten Netzwerks 90 erforderlich. Die internen Daten sind dabei in vielen Fällen in einer internen oder zentralen Datenbank 70 gespeichert. Um einem Nutzer keinen direkten Zugriff auf die zentrale Datenbank 70 zu geben, werden zusätzliche Datenbanken 50 installiert, auf die ein Anwender zugreifen darf. Diese zusätzlichen Datenbanken 50 enthalten nur den Datenbestand, der für die jeweilige Anwendung notwendig ist.
-
Ein sicherheitstechnisches Risiko entsteht an der Schnittstelle 60 zwischen der zentralen Datenbank 70 und der zusätzlichen Datenbank 50, an der es zu einem Datenabgleich kommt. Heutzutage kommen an dieser Schnittstelle 60 Techniken der Replizierung zum Einsatz um einen konsistenten Datenbestand in der zentralen Datenbank 70 und der zusätzlichen Datenbank 50 zu erhalten. Dazu existieren permanente Kommunikationsverbindungen 6 zwischen internen 90 und externen Netzen 10, die jederzeit durch einen erfolgreichen Angriff ausgenutzt werden können, um sich Zugang zu den sensibelsten Daten zu verschaffen.
-
Ein Protokoll ist eine Vereinbarung über das Verhalten von Komponenten in bestimmten Situationen der Kommunikation und/oder der Verwendung untereinander. Protokolle legen fest, was eine Komponente zu tun oder wie sie zu reagieren hat, wenn eine andere Komponente sich bei ihr mit einem bestimmten Auf- oder Antrag meldet. Die in Netzwerken verwendeten Protokolle zur Kommunikation können einheitlich oder unterschiedlich sein (Beispiele: HTTP, WAP, CSMA/CD, TCP/IP, UDP/IP, etc.).
-
Die in 1 gezeigte Schnittstelle 60 ist prinzipiell routing-fähig. Der Begriff routing-fähig beschreibt die Möglichkeit, technisch einen Übergang zwischen zwei oder mehreren Knoten eines Netzwerks herstellen zu können – z. B. zwischen den jeweiligen Endknoten zweier Netzwerke.
-
Die in 1 gezeigte Schnittstelle 60 über eine Kommunikationsverbindung ist eine synchrone Kommunikationsverbindung. Eine synchrone Kommunikation setzt voraus, dass die kommunizierenden Komponenten zeitgleich und einem Protokoll folgend, einen Informations- oder Datenaustausch durchführen. Beispiel: Telefon, Session Initiation Protocol (SIP).
-
2 zeigt eine Schnittstelle zwischen einem externen datenverarbeitenden System 10, 30, wie beispielsweise dem Internet 10 und/oder damit verbunden Rechnern 30 und einem internen datenverarbeitenden System 90. Im Gegensatz zur gemeinen Ausführungsform der 1 gibt es keine direkte oder routingfähige Verbindung zwischen dem externen datenverarbeitenden System 10, 30 und dem internen datenverarbeitenden System 90 und damit auch keine direkte oder synchrone Verbindung der zentralen Datenbank 70 mit der zusätzlichen Datenbank 50.
-
Bei der in der 2 dargestellten Schnittstelle ist ein Speicher 600 vorgesehen, welcher die einzige Verbindung zwischen dem externen datenverarbeitenden System 10, 30 und dem internen datenverarbeitenden System 90 darstellt, eine Kommunikationsverbindung parallel zu dem Speicher gibt es nicht. Der Speicher 600 kann eine oder mehrere Festplatten, Fibre-Channel- oder andere Speicherelemente oder eine Kombination daraus umfassen. Mindestens zwei Konnektoren 500, 700 haben Zugriff auf den Speicher 600, wobei zumindest ein externer Konnektor 500 mit dem externen datenverarbeitenden System 10, 30 kommuniziert und zumindest ein interner Konnektor 700 mit dem internen datenverarbeitenden System 90 kommuniziert.
-
Jeder der Konnektoren umfasst dabei zumindest einen Verbinder und einen Verarbeiter, wobei der Verbinder mit dem jeweiligen datenverarbeitenden System über eine an sich bekannte Schnittstelle kommuniziert und Daten austauschen kann. Der Verarbeiter verarbeitet die von dem Verbinder empfangenen Daten und gibt diese an den Speicher 600 weiter oder liest Daten aus dem Speicher 600 und übergibt sie an den Verbinder zur weiteren Übermittlung.
-
Der Konnektor kann als Softwaremodul oder als Hardwaremodul oder einer Kombination aus beiden ausgeführt sein.
-
In dem in der 2 dargestellten Beispiel umfasst der externe Konnektor 500 einen externen Verbinder 530 in Kommunikationsverbindung mit dem externen datenverarbeitenden System 10, 30 und einen externen Verarbeiter 560, welcher auf den Speicher 600 zugreift. Der interne Konnektor 700 umfasst einen internen Verbinder 730 in Kommunikation mit dem internen datenverarbeitenden System 90 und einen internen Verarbeiter 760, welcher ebenfalls auf den Speicher 600 zugreift.
-
Die Verbindung ist in diesem Fall eine asynchrone Kommunikationsverbindung. Asynchrone Kommunikation gestattet kommunizierenden Komponenten einen zeitversetzten, ebenfalls einem Protokoll folgenden, Austausch von Information oder Daten. Beispiel: eMail, Simple Mail Transfer Protocol (SMTP).
-
Wie in der 3 gezeigt und oben angedeutet, wird der Speicher 600 exklusiv durch den internen Verarbeiter 560 und den externen Verarbeiter 760 und gegebenenfalls durch weitere Verarbeiter genutzt. Andere Komponenten als die Verarbeiter können nicht auf den Speicher 600 zugreifen, in jedem Fall nicht auf diesen Schreiben. Die externen und internen Verarbeiter 560, 750 können auf dem Speicher 600 lesen und schreiben, ohne auf eine Synchronisation angewiesen zu sein. Das Verfahren arbeitet asynchron und der Speicher 600 kann nur von den Verarbeitern 560, 760 genutzt werden. Es bietet keinerlei Filesystemfunktionalitäten an.
-
Für jeden Verarbeiter ist zumindest ein Bereich in dem Speicher 600 reserviert, in den nur der entsprechende Verarbeiter schreiben kann. So ist ein externer Bereich 650 in dem Speicher 600 für den externen Verarbeiter 560 reserviert. Nur der externe Verarbeiter 560 kann in diesen externen Bereich 650 des Speichers 600 schreiben. Der externe Bereich 65 kann von dem internen Verarbeiter 760 und ggf. von weiteren Verarbeitern gelesen werden. Genauso ist für den internen Verarbeiter 760 ein interner Bereich 670 auf dem Speicher reserviert, in den ausschließlich der interne Verarbeiter 760 schreiben darf. Der externe Verarbeiter 560 und ggf. weitere Verarbeiter können diesen internen Bereich 670 lesen. Die Kommunikation über den Speicher kann daher asynchron bezeichnet werden.
-
An diese Verarbeiter 560, 760 sind die jeweiligen Verbinder 530, 730 angedockt. Die Verbinder können den Verarbeitern Nachrichten zusenden und Nachrichten von diesem Empfangen. Eine Nachricht kann eine Kombination von Empfängerteil und Datenteil sein, wodurch eine gesteuerte Verteilung von Informationen realisiert wird. Der Verbinder ist die Schnittstelle zum jeweiligen Kommunikationsnetz oder datenverarbeitenden System, so ist der externe Verbinder 530 die Schnittstelle zu dem externen datenverarbeitenden System 10, 30 und der interne Verbinder 730 die Schnittstelle zu dem internen datenverarbeitenden System 90. Jeder Verbinder 530, 730 verfügt über die Möglichkeit Verbindungen anzunehmen. Er kann selbstständig Verbindungen aufbauen. Beispielsweise kann sich der externe Verbinder 530 mit der zusätzlichen Datenbank 50 oder dem externen Rechner 30 verbinden. Genau so kann sich der interne Verbinder 730 mit der zentralen Datenbank 70 oder einem internen Rechner 90 verbinden und mit diesem Daten austauschen. Jeder Verbinder hat einen speziellen Typ, der an die Datenquelle und/oder die Anwendung angepasst ist. So kann ein Verbinder beispielsweise direkt mit einer Oracle Datenbank oder in SQL mit einer Datenbank kommunizieren und Daten aus dieser abfragen oder diese verändern. Dafür wird hier allgemein der Begriff Änderung verwendet.
-
Eine durchzuführende Änderung beginnt mit der Annahme einer Kommunikationsverbindung. Ein Datenänderungsauftrag wird von einem Nutzer, der vom Internet 10 aus Zugriff hat, über den externen Verbinder 530 an den externen Verarbeiter 560 gesendet. Dieser reicht den Auftrag an die zusätzliche Datenbank 50 weiter und adressiert parallel dazu diesen Änderungsauftrag an den internen Verarbeiter 760, indem er ihn auf den Speicher 600 schreibt. Der interne Verarbeiter 760 prüft in definierten zeitlichen Abständen ob neue Änderungsaufträge in dem Speicher 600 vorhanden sind und findet somit den neuen Auftrag. Daraufhin reicht der interne Verarbeiter 760 diesen Auftrag über den internen Verbinder 730 beispielsweise an die zentrale Datenbank 70 weiter. Nach Abarbeitung des Auftrages erfolgt über den gleichen Weg eine Rückmeldung an den externen Verarbeiter 560. Nach diesem Postfachprinzip würde auch eine Abarbeitung von Aufträgen in die entgegengesetzte Richtung oder von Aufträgen an weitere Konnektoren 800 erfolgen.
-
Die Begriffe extern und intern werden in der vorliegenden Beschreibung lediglich beispielhaft verwendet um die Schnittstelle und deren Funktionsweise anhand einer Schnittstelle zwischen einem externen Netzwerk, wie beispielsweise dem Internet und einem internen Netzwerk oder Rechner, wie beispielsweise einem Firmennetzwerk zu beschreiben. Diese Darstellung entspricht jedoch lediglich einem Anwendungsbeispiel und die Schnittstelle kann genauso für jede andere Art der Verbindung von datenverarbeitenden Systemen verwendet werden.
-
Auch zeigt die Darstellung der 2 und 3 zu illustrativen Zwecken lediglich die Verbindung von zwei datenverarbeitenden Systemen. Die vorliegenden Offenbarung ist jedoch keinesfalls darauf beschränkt, sondern es können beliebig viele Konnektoren mit dem Speicher 600 verbunden werden. 4 zeigt beispielhaft, dass auf dem Speicher neben dem externen Konnektor 500 und dem internen Konnektor 700 zusätzlich ein dritter Konnektor 800 operieren kann. Beliebig viele weitere Konnektoren können zugefügt werden, wenn gewünscht. Der dritte Konnektor kann dabei mit dem externen datenverarbeitenden System 10, 30, dem internen datenverarbeitenden System 90 oder einem dritten datenverarbeitenden System verbunden sein.
-
Als Beispiel kann ein Web-Service Verbinder, als welcher in diesem Beispiel der externe Verbinder 530 implementiert sein kann, von einer Datenquelle aus, mittels HTTP-Protokoll, Anweisungen entgegennehmen, welche dann durch ihn selbst oder mittels Verteilung an andere Verbinder wie den internen Verbinder 730 in anderen Netzwerken ausgeführt werden. Nach erfolgreicher Abarbeitung sendet der Web-Service eine Bestätigung zurück.
-
Ein Beispiel für die Aktionen eines Konnektors zum Zwecke der Datenverwaltung in unterschiedlichen Netzwerken (Führung eines virtuellen Datenbestandes) wäre:
| Daten lesen | – Eine Kommunikation mit einem anderen Netzwerk ist nicht notwendig. Es erfolgt keine eigene Aktion. Der Befehl wird an die Datenverwaltung im eigenen Netzwerk ohne Änderung weitergeleitet. |
| Alle anderen Befehle: | |
| Senden | – Weiterleitung des Befehls an die Datenverwaltung im eigenen Netzwerk. Weiterleitung des Befehls an den Konnektor, der dem Netzwerk, mit dem kommuniziert werden soll, zugeordnet ist. |
| Empfangen | – Entgegennehmen eines Befehls vom Speicher durch den, dem eigenen Netzwerk zugeordneten, Konnektor. Weiterleitung des Befehls an die Datenverwaltung im eigenen Netzwerk. |
-
Ein anderes Beispiel wären die Aktionen eines Konnektors zum Zwecke der Datenverwaltung in unterschiedlichen Netzwerken (Führung eines virtuellen Datenbestandes):
| Senden | – Umwandlung des Befehls aus der spezifischen Form der Datenverwaltung im eigenen Netzwerk in eine interne, neutrale Form.
Schreiben des umgewandelten Befehls in ein zur Kommunikation mit dem entsprechenden Konnektor für das andere Netzwerk festgelegtes Postfach. |
| Empfangen | – Kontinuierlich wiederkehrendes Lesen (sog. Polling) des ihm zugeordneten Postfaches, bzw. der ihm zugeordneten Postfächer.
Bei Erhalt von Befehlen (d. h. das gelesene Postfach war gefüllt), Umwandlung des internen, neutralen Befehls in die spezifische Form der Datenverwaltung im eigenen Netzwerk. Weitergabe des Befehls an diese. |
-
Die Kommunikation zwischen Anwendung und Konnektor erfolgt dabei anwendungsspezifisch und auf der entsprechenden Kommunikationsebene. In dem OSI Standard entspricht die Kommunikation den Schichten fünf bis sieben, d. h dem Session Layer (Layer 5), dem Presentation Layer (Layer 6) und insbesondere dem Application Layer (Layer 7), das heißt, es wird ein Anwendungsprotokoll verwendet. Die Ebenen des OSI Standards sind in der 5 dargestellt. Der OSI Standard umfasst sieben Ebenen:
- a) Anwendungsebene (application layer), Ebene 7;
- b) Darstellungsebene (presentation layer), Ebene. 6;
- c) Sitzungsebene (session layer), Ebene 5;
- d) Transportebene (transport layer), Ebene 4;
- e) Netzwerkebene (network layer), Ebene 3;
- f) Datenverbindungsebene (data link layer), Ebene 2;
- g) Physikalische Ebene (physical layer), Ebene 1.
-
6a und 6b zeigen die Kommunikation der vorliegenden Beschreibung. Die Kommunikation findet nicht im Sinne der Standardimplementierungen der Ebenenhierarchie der ISO/OSI-Spezifikation statt (zum Beispiel TCP/IP). Die normalerweise auf ISO/OSI-Ebene 7 übertragenen Anwendungsbefehle werden durch die Konnektoren 500, 700, 800 abgefangen. Die Übertragung erfolgt auf einem eigenen Protokollstack, der die Anwendung direkt auf den hohen Ebenen, mittels Konnektoren verbindet. Es existiert keine vertikale Kommunikation (von Ebene-N zu Ebene-(N – 1) bis zur physischen Netzwerkebene und dann wieder nach oben). Der Einflussbereich des sendenden Netzwerks endet damit endgültig an den Konnektoren 500, 700, 800. Damit lassen sich Informationen auf Anwendungsebene horizontal und parallel an mehrere Systeme übertragen.
-
Um einen konsistenten Datenbestand in den verteilten Datenbanken 50, 70 zu realisieren, nutzten die Konnektoren 500, 700 folgende Strategie, welche am Beispiel von SQL-fähigen Datenbanken dargestellt wird:
- • Führe alle DQL-Anweisungen (Data Query Language) auf der lokalen DB durch
- • Für alle anderen Anweisungen (Data Definition Language [DDL], Data Manipulation Language [DML], Data Control Language [DCL]):
– verpacke sie in eine Transaction Control Umgebung und führe sie jeweils auf den lokalen und auf den jeweiligen anderen Datenquellen aus.
– Nach vollständiger Ausführung ohne Fehler, sende ein COMMIT an alle.
– Im Fehlerfall sende ein ROLLBACK an alle.
-
Optional ist es mit Hilfe von Query-Transformationen leicht möglich, dass selbst Datenquellen die unterschiedliche SQL-Dialekte haben, identische Statements ausführen.
-
Das System kann als Software oder als Hardware oder einer Kombination daraus implementiert werden.
-
Ein Fachmann wird beim Lesen der vorliegenden Beschreibung erkennen, dass einzelne der in den Beispielen beschriebenen Merkmale weggelassen oder hinzugefügt werden können, und dass nicht alle Merkmale für die Ausführung der Erfindung notwendig sind.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-