-
Die Erfindung betrifft ein Verfahren zur Übermittlung von Daten in einem digitalen Netzwerk mit mehreren Knoten, die jeweils auf einer Hardware-Plattform realisiert sind und die durch Kommunikationskanäle miteinander verbunden sind und die jeweils dazu konfiguriert sind, Daten in einem spezifischen, durch die Hardware-Plattform festgelegten Format zu verarbeiten, das durch einen Satz von Attributen gekennzeichnet ist, wobei die Attribute beschreiben, wie die Daten in einem Knoten intern dargestellt werden, und wobei in einem Kommunikationsakt Daten von einem Knoten über die Kommunikationskanäle an mindestens einen anderen Knoten übermittelt werden.
-
Insbesondere befasst sich die Erfindung mit der Datenübermittlung in einem Steuerungsnetzwerk einer Maschine, beispielsweise eines Druckers.
-
In der Steuerungsebene einer komplexeren Maschine, beispielsweise eines Hochleistungsdruckers, existieren mehrere Kommunikationsnetzwerke, die zumeist hierarchisch strukturiert sind. Beispielsweise sind einzelne Steuerungsbaugruppen untereinander über ein Steuerungs-LAN verbunden, und zugleich können diese Steuerungsbaugruppen über weitere LAN-Schnittstellen in andere Kommunikationsnetze eingebunden sein, die beispielsweise zur Steuerung des Papierlaufes in einem Drucker dienen. Jede Steuerungsbaugruppe kann mehrere Komponenten umfassen, die über ein untergeordnetes Kommunikationsnetz, beispielsweise ein CAN-Netz miteinander verbunden sind. Auch die lokale Kommunikation zwischen verschiedenen Steuerungsprozessen, die auf derselben Steuerungsbaugruppe laufen, kann als ein untergeordnetes Kommunikationsnetzwerk betrachtet werden.
-
Die Kommunikation zwischen den Knoten (Steuerungsbaugruppen) in dem Netzwerk kann über einen Kommunikationskanal erfolgten, der die beiden Knoten direkt miteinander verbindet, gegebenenfalls jedoch auch mittelbar über mehrere andere Knoten, die als Zwischenstationen fungieren. Die Wahl des jeweiligen Kommunikationsweges ist dabei für die beteiligen Steuerungsbaugruppen transparent. Wenn Daten von einem Startknoten zu einem Zielknoten übermittelt werden sollen, so wird im Startknoten lediglich der Zielknoten spezifiziert, und die Steuerung des Datenverkehrs erfolgt dann über Routingfunktionen, auf welche die beteiligten Start- und Zielknoten keinen Einfluss nehmen. Umgekehrt werden die Knoten, die lediglich als Relaisstationen zur Weiterleitung der Daten fungieren, generell von dem Inhalt der übermittelten Daten keine Notiz nehmen.
-
Die zu übermittelnden Daten werden im Startknoten zunächst zu einer „Nachricht“ (Message) zusammengestellt, die dann an den Zielknoten übermittelt wird. Dieser Prozess wird als „Serialisierung“ bezeichnet.
-
Im Zielknoten wird die Nachricht dann deserialisiert, d. h. in einem bestimmten Format in einem internen Speicher des Zielknotens abgelegt. Die hier verwendeten Begriffe „Serialisierung“ und „Deserialisierung“ sind nicht als Festlegung darauf zu verstehen, dass die Datenübertragung tatsächlich bit-seriell erfolgen muss.
-
Im allgemeinen wird das Netzwerk Knoten enthalten, die auf verschiedenen Hardware-Plattformen realisiert sind. In dem Fall ist das spezielle Format, in dem die Daten intern innerhalb eines Knotens verarbeitet werden, durch die Hardware-Plattform festgelegt. Wenn die im Startknoten und im Zielknoten verwendeten Formate voneinander verschieden sind, muss entweder bei der Serialisierung auf Seiten des Startknotens oder bei der Deserialisierung auf Seiten des Zielknotens eine Konvertierung der Daten in das im Zielknoten verwendete Format stattfinden. Die in den verschiedenen Knoten verwendeten Formate können sich beispielsweise in der verwendeten Byte-Reihenfolge (der Endianness), der Speicheraufteilung (Alignment) oder in der internen Darstellung der Daten (z. B. Fließkommaformate) unterschieden. In einigen bekannten Steuerungsnetzwerken ist für alle Knoten eine einheitliche Serialisierungsmethode festgelegt, so dass die Kompatibilität der Datenformate gewährleistet ist. In anderen Netzwerken kann der Anwender individuell für jede Datenverbindung die zu verwendende Serialisierungsmethode festlegen. Weiterhin gibt es Netzwerke, in denen die Serialisierungsmethode durch das Transportmedium in dem jeweiligen Kommunikationskanal bestimmt wird.
-
In dem Dokument RFC 1700 (Oktober 1994), https://datatracker.ietf.org/doc/html/rfc1700, wird auf Seiten 2 und 3 ein Beispiel für ein Kommunikationsverfahren beschrieben in dem Daten in der sogenannten „big-endian“ Byte-Reihenfolge übermittelt werden.
-
US 2017 / 0 142 168 A1 beschreibt ein Verfahren, bei dem die Knoten über einen Server miteinander kommunizieren.
US 2001 / 0 038 638 A1 beschreibt ein Verfahren, bei dem Videodaten an Knoten übermittelt werden, die mit unterschiedlicher Kompressions- und Dekompressionssoftware arbeiten.
-
Aufgabe der Erfindung ist es, ein Verfahren anzugeben, das eine effiziente Datenübermittlung und insbesondere eine Verminderung der für die Konvertierung in verschiedene Formate erforderlichen Prozessorlast ermöglicht.
-
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, dass jeder Kommunikationsakt die folgenden Schritte umfasst:
- - ein erster Knoten sendet eine Kontaktanfrage sowie seine Attribute an eine Verhandlungsinstanz;
- - die Verhandlungsinstanz leitet die Kontaktanfrage an jeden Knoten weiter, der in der Kontaktanfrage als Kommunikationspartner bestimmt ist;
- - jeder bestimmte Kommunikationspartner sendet seine Attribute an die Verhandlungsinstanz;
- - die Verhandlungsinstanz bestimmt anhand der von den beteiligten Kommunikationspartnern gesendeten Attribute, nach vorbestimmten Regeln, ein Datenformat, in dem die Daten dann zwischen den Knoten übermittelt werden.
-
Die vorbestimmten Regeln, nach denen das Datenformat bestimmt wird, sind von der Natur der in Betracht kommenden Datenformate sowie von den Eigenschaften und Fähigkeiten der Hardwareplattformen der Knoten abhängig und werden im Einzelfall so gewählt, dass die Anzahl und der Umfang der notwendigen Konvertierungsprozesse und die für die Konvertierungen benötigte Zeit oder Prozessorlast minimiert werden. Beispielsweise kann eine dieser Regeln beinhalten, dass, sofern es ein Format gibt, das sowohl vom Startknoten als auch vom Zielknoten verarbeitet werden kann, dieses Format für die Datenübermittlung ausgewählt wird. Wenn es ein solches Format nicht gibt, kann eine andere Regel beinhalten, dass dasjenige Format gewählt wird, bei dem die insgesamt für die Serialisierung und Deserialisierung benötigte Zeit minimiert ist. Sofern die Daten an mehr als einen Zielknoten zu übermitteln sind, kann eine weitere Regel beinhalten, dass dasjenige Format gewählt wird, das von den meisten Zielknoten verstanden wird ohne Konvertierung. In jedem Fall wird dadurch, dass das Datenformat zwischen den beteiligten Knoten ausgehandelt wird, eine Optimierung des Datenverkehrs ermöglicht.
-
Die Attribute beschreiben, wie die Daten in einem Knoten intern dargestellt werden, zum Beispiel eine Byte-ReihenFolge, eine Speicheraufteilung oder ein Fließkommaformat. Die Attribute beschreiben nicht die Eigenschaften des Kommunikationskanals, wie zum Beispiel eine Übertragungsgeschwindigkeit.
-
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
In einer Ausführungsform enthalten die Attribute zumindest einiger der Knoten auch eine Angabe über die Leistungsfähigkeit des betreffenden Knotens. In dem Fall kann eine Regel für die Bestimmung des Datenformats auch beinhalten, dass jeweils das Format gewählt wird, bei dem die größte Konvertierungslast von dem leistungsfähigsten Knoten getragen wird.
-
Bei einem hierarchisch strukturiertem Netzwerk kann die Wahl des Datenformats auf der höheren Hierarchiestufe auch davon abhängig sein, welche Serialisierungsmethoden in den untergeordneten Netzwerken angewandt werden oder verfügbar sind, so dass die Daten mit geringstmöglichem Konvertierungsaufwand von der Datenquelle im untergeordneten Netzwerk des Startknotens an den Endempfänger im untergeordneten Netzwerk des Zielknotens übermittelt werden können.
-
Gegenstand der Erfindung sind auch ein Kommunikationsnetzwerk, mit dem das erfindungsgemäße Verfahren ausführbar ist, ein für die Ausführung des Verfahrens ausgebildeter Steuerrechner sowie ein Softwareprodukt für die Ausführung des Verfahrens.
-
Im folgenden werden Ausführungsbeispiele anhand der Zeichnung näher erläutert.
-
Es zeigen:
- 1 eine Skizze eines Kommunikationsnetzwerkes, bei dem das erfindungsgemäße Verfahren anwendbar ist;
- 2 ein detaillierteres Diagramm zweier Knoten in dem Kommunikationsnetzwerk; und
- 3 ein Flussdiagramm zur Erläuterung des Ablaufes eines einzelnen Kommunikationsaktes nach dem erfindungsgemäßen Verfahren.
-
In 1 ist schematisch ein Kommunikationsnetzwerk 10 gezeigt, das beispielsweise zur Steuerung der mechanischen und elektronischen Komponenten eines Druckers 12 dient. Das Kommunikationsnetzwerk 10 weist eine Anzahl von Knoten 14 auf, die durch Kommunikationskanäle 16, 18 miteinander verbunden sind.
-
Die Kommunikationskanäle 16, 18 können durch verschiedene Netzwerk-Träger wie beispielsweise TCP, QNX oder Unix Domain Sockets gebildet werden, und es können auch unterschiedliche Träger in demselben Netzwerk miteinander kombiniert werden. Gegebenenfalls können für Nachrichten gleichen Inhalts auch unterschiedliche Träger zur Auswahl stehen.
-
Zwei Knoten 14 können unmittelbar durch einen Kommunikationskanal 16 und/oder 18 miteinander verbunden sein. Im gezeigten Beispiel verbindet der Kommunikationskanal 18 zwei Knoten, die parallel dazu auch durch einen der Kommunikationskanäle 16 miteinander verbunden sind. Die Auswahl des Kommunikationskanals kann sich dann beispielsweise nach Art und Umfang der zu übermittelten Daten richten. Andererseits enthält das Netzwerk auch Paare von Knoten 14, die nicht unmittelbar miteinander verbunden sind, so dass die Kommunikation nur über einen anderen der Knoten 14 als Zwischenstation erfolgen kann. Der als Zwischenstation fungierende Knoten wird im allgemeinen die empfangenen Daten nicht analysieren sondern unverändert und ungelesen an die Zieladresse oder einen anderen Zwischenknoten weiterleiten. Das hier beschriebene Verfahren ist jedoch auch in den Fällen anwendbar, in denen ein Zwischenknoten die empfangenen Daten bearbeitet, beispielsweise indem er die Daten entschlüsselt und dann neu verschlüsselt oder unverschlüsselt an den nächsten Knoten weitergibt.
-
Jeder Knoten 14 hat eine Instanz, die hier als Verteiler 20 bezeichnet werden soll, die für die Serialisierung der von diesem Knoten gesendeten Daten und die Deserialisierung der an diesem Knoten eintreffenden Daten zuständig ist und gegebenenfalls auch Routingfunktionen für die Weiterleitung von Nachrichten an die jeweilige Zieladresse übernimmt.
-
Die Software der einzelnen Knoten 14 wird im allgemeinen auf unterschiedlichen Hardware-Plattformen laufen, die für die Verarbeitung der Daten jeweils unterschiedliche Datenformate erfordern, beispielsweise unterschiedliche Serialisierungsmethoden für die interne Kommunikation zwischen verschiedenen Prozessen innerhalb des Knotens und/oder zwischen Knoten eines Subnetzes. Die in einem gegebenen Knoten benötigten bzw. verfügbaren Formate werden durch einen Satz von Attributen 22 gekennzeichnet. Im gezeigten Beispiel sind in jedem Knoten 14 die für diesen Knoten zutreffenden Attribute in einer Datei gespeichert. Zu den Attributen gehört optional auch mindestens ein Parameter, der die Leistungsfähigkeit, insbesondere die Rechenkapazität des betreffenden Knotens kennzeichnet.
-
In 2 sind zwei der Knoten 14 des in 1 gezeigten Netzwerkes etwas detaillierter dargestellt. Die Knoten sind hier zur besseren Unterscheidung mit 14A und 14B bezeichnet. Entsprechend sind auch die zugehörigen Verteiler mit 20A und 20B und die Attribute mit 22A und 22B bezeichnet. Der Knoten 14A läuft auf einer Hardware-Plattform A, beispielsweise einem Power PC mit Betriebssystem LINUX, während der Knoten 14B auf einer Hardware-Plattform B läuft, beispielsweise einem Intel x86_64 mit Betriebssystem Windows. Die in den beiden Knoten hinterlegten Attribute 22A und 22B kennzeichnen deshalb unterschiedliche Datenformate und Eigenschaften. Beispielswese haben die Attribute für die Hardware-Plattform A den folgenden Inhalt:
- Attribute 22A:
- - Big Endian
- - Alignment auf 4 Bytes
- - Float nach IEEE 757, 64bit
- - geringe Leistung
-
Die Attribute für die Hardware-Plattform B haben beispielsweise folgenden Inhalt:
- Attribute 22B:
- - Little Endian
- - Alignment unnötig
- - Float nach IEEE 754, 64-bit
- - hohe Leistung
-
Im Knoten 14A laufen intern drei Prozesse A1, A2 und A3, durch die bestimmte Komponenten des Druckers 12 gesteuert werden. Die lokale Vernetzung dieser Prozesse sowie die Kommunikation mit dem Verteiler 20A erfolgt über ein Subnetzwerk 24, das durch sogenannte Pipes gebildet wird.
-
Im Knoten 14B laufen drei Prozesse B1, B2 und B3, durch die andere Komponenten des Druckers gesteuert werden. Die lokale Vernetzung erfolgt hier über eine Subnetzwerk 26, das auf Windows-Messages basiert.
-
In beiden Knoten kann für die interne Kommunikation über das Subnetzwerk 24 bzw. 26 eine sehr effiziente Serialisierungsmethode verwendet werden, nämlich ein einfacher Speicherabzug, bei dem der Speicherinhalt vom Speicher des einen Prozesses in einen Speicher des anderen Prozesses kopiert wird, ohne dass irgendeine Änderung des Formats erfolgt.
-
Der Kommunikationskanal 16, der die beiden Knoten 14A und 14B verbindet, ist beispielsweise ein TCP-Kanal. Auf diesem Kanal werden die Daten in einem Format 28 übermittelt, dass zwischen den beiden Knoten 14A und 14B gemäß einer Prozedur verhandelt wird, die in 3 dargestellt ist.
-
In Schritt S1 sendet der Verteiler 20A des Knotens 14A eine Kontaktanfrage 32, die auch die Attribute 22A dieses Knotens enthält, über eine Verhandlungsinstanz 30 an den Verteiler 20B des anderen Knotens.
-
In Schritt S2 sendet der Verteiler 20B seine eigenen Attribute 22B an die Verhandlungsinstanz 30 zurück.
-
In Schritt S3 vergleicht die Verhandlungsinstanz 30 die beiden Attribute 22A und 22B und ermittelt alle denkbaren Formate, in denen in Anbetracht der Attribute eine Kommunikation zwischen den Knoten möglich wäre.
-
In Schritt S4 berechnet die Verhandlungsinstanz für jedes Format anhand der Attribute die notwendigen Konvertierungsprozesse, und sie berechnet anhand der in den Attributen enthaltenen Information über die Leistungsfähigkeit der Plattformen einen Hinweis der für die Konvertierungen benötigte Zeit.
-
In Schritt S5 wird dann dasjenige Format ausgewählt, für das die Konvertierungszeit minimal ist.
-
In Schritt S6 sendet dann die Verhandlungsinstanz 30 das in dieser Weise ausgewählte Format als das gültige Format 28 an beide Verteiler 20A und 20B. Damit wird der Verteiler 20A angewiesen, die Daten aus seinem internen Format in das Format 28 zu konvertieren, und der Verteiler 20B wird angewiesen, die empfangenen Daten aus dem Format 28 in sein internes Format zu konvertieren.
-
In Schritt S7 werden dann die Daten in dem Format 28 über den Kommunikationskanal 16 übermittelt.
-
Bei den oben als Beispiel betrachteten Inhalten der Attribute 22A und 22B könnte das Format 28 etwa wie folgt spezifiziert werden.
-
Gültiges Format:
- - Big Endian (Netzwerk-Bytereihenfolge)
- - Alignment auf 4 Bytes
- - Floats unverändert
-
Durch dieses Format wird die Hardware-Plattform A, die die geringere Leistungsfähigkeit hat, entlastet, da im Verteiler 20A keine Konvertierung erforderlich ist, sondern die Serialisierung der über den Kommunikationskanal 16 zu übermittelnden Daten nach der gleichen Serialisierungsmethode „Speicherabzug“ erfolgen kann, die auch intern in dieser Plattform verwendet wird. Die Konvertierung auf das in der Hardware-Plattform B verwendete Format (Little Endian) wird dann dieser leistungsfähigeren Plattform überlassen, so dass die für die Konvertierung benötigte Zeit kürzer ist als im umgekehrten Fall.
-
In einer modifizierten Ausführungsform könnten die Prozesse A1, A2 und A3 auch Datenformate verwenden, die sich, obgleich sie auf derselben Plattform laufen, etwas unterscheiden. Dasselbe gilt für die Prozesse B1, B2 und B3. In dem Fall würden in den Verteilern 20A und 20B spezifische Sätze von Attributen für die verschiedenen Prozesse gespeichert. Wenn dann beispielsweise Daten von dem Prozess A1 an den Prozess B2 zu übermitteln sind, so erfolgt die Verhandlung des Formats 28 durch die Verhandlungsinstanz 30 auf der Basis der spezifischen Attribute, die für A1 und B2 gelten.
-
Wenn die Hardware-Plattform A mit einem Knoten kommuniziert, der auf der gleichen Hardware-Plattform läuft, so hätte die Verhandlung des Formats durch die Verhandlungsinstanz 30 das Ergebnis, dass in dem Kommunikationskanal 16 dasselbe Format verwendet wird wie bei der internen Kommunikation innerhalb der Knoten, so dass keine Konvertierungen erforderlich sind. Ob in einem Verteiler, beispielsweise im Verteiler 20B, eine Konvertierung stattfindet oder nicht, hängt also jeweils davon ab, mit welchem Knoten dieser Verteiler gerade kommuniziert.
-
Die Verhandlungsinstanz 30 kann sich an irgendeiner beliebigen Stelle im Kommunikationsnetzwerk 10 befinden. In einer Ausführungsform ist eine Verhandlungsinstanz 30 in jedem Knoten 14 des Netzwerkes implementiert, z.B. im Verteiler 20. Es kann jeweils die Verhandlungsinstanz desjenigen Knotens benutzt werden, der die Kontaktanfrage sendet. Wahlweise könnte auch die Verhandlungsinstanz des Knotens benutzt werden, an den sich die Kontaktanfrage richtet. Die Kommunikation mit der Verhandlungsinstanz könnte in beiden Fällen über den Kommunikationskanal 16 erfolgen oder wahlweise auch über einen separaten Kommunikationskanal. Der Knoten, der die Kontaktanfrage sendet, muss nicht notwendigerweise der Knoten sein, von dem aus Daten übermittelt werden sollen. Denkbar wäre auch, dass der Knoten, der die Daten empfängt, eine Kontaktanfrage an den sendenden Knoten richtet und damit die Daten anfordert.
-
Das Verfahren ist nicht darauf beschränkt, dass in einem einzelnen Kommunikationsakt Daten nur an einen einzigen Zielknoten übermittelt werden, sondern ist auch in den Fällen anwendbar, in denen dieselben Daten gleichzeitig an mehrere Zielknoten übermittelt werden. In dem Fall wird die Verhandlungsinstanz 30 die Attribute aller beteiligten Knoten miteinander vergleichen, und die Auswahl des Formats wird im allgemeinen auch davon abhängig sein, in wie vielen der beteiligten Knoten eine Konvertierung erforderlich ist.