DE102011006490A1 - Computer-based system e.g. mechatronics system, for coordinating access to e.g. printers in distributed network system, has generator for determining address while reservation queue is updated, where queue is transferred with data - Google Patents
Computer-based system e.g. mechatronics system, for coordinating access to e.g. printers in distributed network system, has generator for determining address while reservation queue is updated, where queue is transferred with data Download PDFInfo
- Publication number
- DE102011006490A1 DE102011006490A1 DE201110006490 DE102011006490A DE102011006490A1 DE 102011006490 A1 DE102011006490 A1 DE 102011006490A1 DE 201110006490 DE201110006490 DE 201110006490 DE 102011006490 A DE102011006490 A DE 102011006490A DE 102011006490 A1 DE102011006490 A1 DE 102011006490A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- transaction
- computer
- reservation queue
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5014—Reservation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/523—Mode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Die vorliegende Erfindung liegt auf den Gebieten der Informationstechnologie und der Netzwerktechnik und betrifft insbesondere ein computerbasiertes System zur Zugriffskoordination auf begrenzte Ressourcen in einem verteilten Netzwerksystem.The present invention is in the fields of information technology and network technology, and more particularly relates to a computer-based system for access coordination to limited resources in a distributed network system.
Moderne Softwaresysteme sind in der Regel als sogenannte verteilte Systeme ausgelegt und weisen eine Rechnerarchitektur auf, die aus einer Vielzahl von rechnergestützten Knoten besteht, auf denen Datenverarbeitungsmaßnahmen ausgeführt werden. Insbesondere bei Systemen, die auf einer Service-basierten Architektur basieren (sog. service-oriented architecture – SOA), wird häufig auf ein zentrales Daten-Repository zurückgegriffen, das über das Netzwerk in Datenaustausch mit einer Vielzahl von Transaktionsknoten steht.Modern software systems are typically designed as so-called distributed systems and have a computer architecture consisting of a plurality of computer-aided nodes on which data processing operations are carried out. In particular, in systems based on a service-based architecture (so-called service-oriented architecture - SOA), a central data repository is frequently used, which communicates with a large number of transaction nodes over the network.
Nachteil solcher Systeme, die auf einem zentralen Daten-Repository basieren, ist es zum Einen, dass ein Performance-Engpass gegeben ist, der durch den notwendigen Datenaustausch mit dem zentralen Repository entsteht. Zum Anderen kann dies eine Sicherheitsschwachstelle darstellen. Ein weiterer Nachteil ist darin zu sehen, dass in einem großen Netzwerk mit (geografisch) sehr verteilten Netzwerkknoten lokale Stabilitätseigenschaften des Netzwerks nicht ausgenutzt werden können. Unter lokalen Stabilitätseigenschaften fallen hier Szenerien, bei denen ein lokales Sub-Netzwerk funktionsfähig ist, während ein anderes Sub-Netzwerk nicht mehr funktioniert oder bei denen Verbindungsstrukturen zwischen den Netzwerkknoten beeinträchtigt sind und nur im lokalen Sub-Netzwerk funktionieren. Nachteiligerweise ist es bei einem Netzwerk, das auf einem zentralen Daten-Repository basiert, in den vorstehend erwähnten Fehlerszenarien nicht mehr möglich, die lokal funktionierende Datenverarbeitung zu nützen. Somit können die Lokalitätseigenschaften nicht sinnvoll ausgenützt werden.Disadvantages of such systems, which are based on a central data repository, on the one hand, is that there is a performance bottleneck that results from the necessary data exchange with the central repository. On the other hand, this can represent a security vulnerability. Another disadvantage is the fact that in a large network with (geographically) very distributed network nodes local stability properties of the network can not be exploited. Local stability characteristics include scenarios in which one local subnetwork is functional, while another subnetwork is no longer working, or interconnect structures between the network nodes are compromised and only work on the local subnetwork. Disadvantageously, in a network based on a central data repository, it is no longer possible to use the locally functioning data processing in the aforementioned error scenarios. Thus, the locality properties can not be meaningfully exploited.
Grundsätzlich ist die Koordination von Zugriffen in der Datenbanktechnik ein bekanntes Problem. Je nach Auslegung des Datenbanksystems werden die Daten entweder zentral in einer Datenbank vorgehalten oder sind auf mehrere Datenbanken verteilt und werden über einen zentralen Koordinator verwaltet und angesprochen. Um nun eine konfliktfreie Datenbanktransaktion gewährleisten zu können, sollten die folgenden Eigenschaften zugesichert werden können: Atomarität, Konsistenz, Serialisierbarkeit und Persistenz der Daten. Um dies zu gewährleisten werden üblicherweise zentrale Sperr- bzw. Lockmechanismen bereitgestellt, um Zugriffe exklusiv zu sperren. Dabei werden die Daten zum bearbeitenden Client übertragen, dort bearbeitet und nach erfolgreicher Bearbeitung bzw. Änderung an das zentrale Datenbankrepository zurückgesendet. Anschließend (also nach erfolgreicher Datenbearbeitung) kann die Sperre wieder aufgehoben werden, sodass die Daten auch von anderen Clients zugreifbar (und bearbeitbar) werden. Erstreckt sich die Änderung über mehrere verteilte computerbasierte Instanzen oder Stationen wird im Stand der Technik häufig ein sogenanntes 2-Phasen-Commit-Protokoll für die Koordination verteilter Transaktionen eingesetzt. Bei dem 2-Phasen-Commit-Protokoll ist es allerdings notwendig, einen zentralen Koordinator bereitzustellen, der allen Transaktionsknoten bekannt sein muss und der die Koordination in zentraler Funktion übernimmt. Dies ist jedoch ein gravierender Nachteil, wenn bei verteilten Daten und verteilten Anwendungen eine dezentrale Koordination deutliche Vorteile, insbesondere Performancevorteile, bringt.Basically, the coordination of access in the database technology is a known problem. Depending on the design of the database system, the data is either stored centrally in a database or distributed over several databases and managed and addressed via a central coordinator. In order to be able to guarantee a conflict-free database transaction, the following features should be assured: atomicity, consistency, serializability and persistence of the data. To ensure this, central lock mechanisms are usually provided to lock accesses exclusively. The data is transferred to the processing client, edited there and sent back to the central database repository after successful processing or modification. Afterwards (after successful data processing), the lock can be released again, so that the data can also be accessed (and edited) by other clients. If the change extends over several distributed computer-based instances or stations, a so-called two-phase commit protocol for the coordination of distributed transactions is frequently used in the prior art. With the 2-phase commit protocol, however, it is necessary to provide a central coordinator, who must be known to all transaction nodes and who takes over the coordination in a central function. However, this is a serious drawback when decentralized coordination brings significant advantages, in particular performance advantages, for distributed data and distributed applications.
Darüber hinaus ist es im Stand der Technik auch bekannt, eine dezentrale Koordination bei Datenbankenzugriffen zu verwenden. Dabei werden mehrere Scheduler (oder Koordinatoren) eingesetzt, die jeweils zwischen einem anfragenden Knoten (Client) und den Daten angeordnet sind und die Zugriffe steuern und koordinieren. Die Daten liegen dabei stationär und fest auf der Datenbank und werden gegebenenfalls von einem oder mehreren Stationen bearbeitet und somit verändert und dann in einem veränderten Zustand wieder in die Datenbank zurück gespeichert. Bei den bekannten Verfahren liegen somit die Daten jeweils stationär an demselben Speicherort, nämlich in der Datenbank. Dies ist jedoch ein deutlicher Nachteil und teilweise nicht anwendbar, wenn die Daten flexibel und dezentral koordiniert werden sollen.Moreover, it is also known in the art to use decentralized database access coordination. In this case, several schedulers (or coordinators) are used, which are each arranged between a requesting node (client) and the data and control the accesses and coordinate. The data are stationary and fixed on the database and, if necessary, processed by one or more stations and thus changed and then stored back in an altered state back into the database. In the case of the known methods, the data are thus stationary in each case at the same storage location, namely in the database. However, this is a significant disadvantage and sometimes not applicable if the data is to be flexibly and decentrally coordinated.
Ausgehend von diesem Stand der Technik hat sich die vorliegende Erfindung zur Aufgabe gestellt, eine Möglichkeit aufzuzeigen, mit der die Zugriffskoordination in einem verteilten Netzwerk verbessert werden kann, ohne dabei die Konsistenzeigenschaften der Transaktionen zu gefährden. Darüber hinaus soll die Zugriffskoordination dezentral gestaltet werden.Based on this prior art, the present invention has the object of demonstrating a possibility with which the access coordination in a distributed network can be improved without compromising the consistency properties of the transactions. In addition, the access coordination should be decentralized.
Diese Aufgabe wird durch die beiliegenden Patentansprüche gelöst, insbesondere durch ein computerbasiertes System, ein computerbasiertes Verfahren und ein Computerprogrammprodukt. Dabei ist darauf hinzuweisen, dass das Verfahren computerimplementiert ist und als Software und/oder als Hardware realisiert werden kann.This object is solved by the appended claims, in particular by a computer-based system, a computer-based method and a computer program product. It should be noted that the method is computer implemented and can be implemented as software and / or hardware.
Im Folgenden wird die Lösung der Aufgabe gemäß einem Aspekt der Erfindung im Hinblick auf die verfahrensgemäße Lösung beschrieben. Hierbei erwähnte Vorteile, Merkmale und alternative Ausführungsformen sind ebenso auch auf die anderen Patentanspruchsformen bzw. Kategorien zu übertragen, also insbesondere auf das computerbasierte System und das Computerprogrammprodukt. Dabei ist zu erwähnen, dass entsprechende funktionale Merkmale des Verfahrens durch entsprechende Bausteine eines Mikroprozessors oder als sonstige Hardwareeinheiten realisiert werden, die die Funktionalität des entsprechenden Software-Merkmals übernehmen und umgekehrt. Nach einem Aspekt bezieht sich die vorliegende Erfindung somit auf ein computerbasiertes Verfahren zur Zugriffskoordination auf begrenzte Ressourcen in einem verteilten Computersystem. Dabei interagieren computerbasierte Instanzen in dem Computernetzwerk miteinander und tauschen Daten aus. Es ist vorgesehen, eine Vielzahl von Transaktionsknoten bereit zu stellen und eine Reservierungsschlange sowie einen Adressgeber.In the following, the solution of the problem will be described according to one aspect of the invention with regard to the method according to the solution. Here mentioned advantages, features and alternative embodiments are also to be transferred to the other patent claims or categories, ie in particular to the computer-based System and the computer program product. It should be mentioned that corresponding functional features of the method are implemented by corresponding components of a microprocessor or as other hardware units that take over the functionality of the corresponding software feature and vice versa. In one aspect, the present invention thus relates to a computer-based method for access coordination to limited resources in a distributed computer system. In doing so, computer-based instances in the computer network interact with each other and exchange data. It is intended to provide a plurality of transaction nodes and a reservation queue and an address provider.
Die Transaktionsknoten dienen zur Ausführung des Datenzugriffs, der üblicherweise im Rahmen einer Datenverarbeitung ausgeführt werden wird und dabei eine exklusive oder teilexklusive Hoheit über die zu verarbeitenden Daten erfordert.The transaction nodes are used to perform the data access, which will usually be carried out as part of a data processing and thereby requires an exclusive or parts-exclusive sovereignty over the data to be processed.
Die Reservierungsschlange (Queue) dient dazu, alle Zugriffsanfragen zur exklusiven oder teil-exklusiven Reservierung von Betriebsmitteln zu verwalten und den Zugriff zu koordinieren. Gemäß einem Aspekt der Erfindung ist es vorgesehen, dass die Reservierungsschlange jeweils an dem Transaktionsknoten vorgehalten wird, der aktuell die Datenverarbeitung ausführt und/oder der aktuell die Hoheit über die zu verarbeitenden Daten hat. Ein wesentlicher Aspekt der Erfindung bezieht sich darauf, dass die Reservierungsschlange mit den Daten mit transferiert wird. Somit wird die Reservierungsschlange gemeinsam mit den unter Zugriff stehenden Daten im Netzwerk übertragen.The queue is used to manage all access requests for exclusive or part-exclusive reservation of resources and to coordinate access. According to one aspect of the invention, provision is made for the reservation queue to be kept available in each case at the transaction node which currently carries out the data processing and / or which currently has the sovereignty over the data to be processed. An essential aspect of the invention relates to the fact that the reservation queue is transferred with the data. Thus, the reservation queue is transmitted along with the data under access in the network.
Der Adressgeber dient zur Ermittlung und Verwaltung einer Adresse, über die die Reservierungsschlange erreichbar und adressierbar ist. Die Adresse wird dynamisch vorgehalten und bei Änderung automatisch einem Update unterzogen, so dass sichergestellt ist, dass stets eine aktuelle Adresse der Reservierungsschlange zur Verfügung gestellt werden kann.The address generator is used to identify and manage an address via which the reservation queue can be reached and addressed. The address is maintained dynamically and automatically updated upon change, so that it is ensured that a current address of the reservation queue can always be made available.
Im Rahmen einer Transaktion oder Datenverarbeitung soll nun eine bestimmte Operationsfolge auf einem Datenbestand ausgeführt werden. Dies kann auf einem Transaktionsknoten des Netzwerks oder auf mehreren Transaktionsknoten erfolgen, wobei im letzteren Fall die Transaktionsknoten sequentiell adressiert oder angesprochen werden. Die Folge der Transaktionsknoten zur Ausführung des Zugriffs wird durch Einträge in der Reservierungsschlange definiert. Dabei ist es üblicherweise vorgesehen, dass ein Knoten eine Anfrage auf eine Ressource direkt in die Reservierungsschlange einträgt. Alternativ kann hier ein indirektes Beschreiben der Reservierungsschlange vorgesehen sein. Die einzelnen Transaktionsknoten der Reservierungsschlange werden dann in der vorgesehen Sequenz abgearbeitet bzw. angesprochen. Gemäß einem wesentlichen Aspekt werden dabei die Daten gemeinsam mit der Reservierungsschlange von Transaktionsknoten zu Transaktionsknoten übermittelt. Dabei wird die jeweils aktuelle Adresse der Reservierungsschlange bzw. desjenigen Transaktionsknotens mit Datenhoheit aktualisiert.As part of a transaction or data processing, a specific sequence of operations is now to be executed on a dataset. This can be done on a transaction node of the network or on several transaction nodes, in the latter case, the transaction nodes are addressed or addressed sequentially. The sequence of transaction nodes for performing the access is defined by entries in the reservation queue. It is usually provided that a node enters a request for a resource directly in the reservation queue. Alternatively, an indirect description of the reservation queue may be provided here. The individual transaction nodes of the reservation queue are then processed or addressed in the intended sequence. According to one essential aspect, the data is transmitted together with the reservation queue from transaction nodes to transaction nodes. The current address of the reservation queue or of that transaction node is updated with data sovereignty.
Im Folgenden werden die Begrifflichkeiten, die im Rahmen dieser Anmeldung verwendet werden, näher erläutert.In the following, the terms used in the context of this application are explained in more detail.
Das computerbasierte System ist als Netzwerksystem ausgelegt, das bspw. eine SOA-Architektur aufweist und bestimmte Dienste bereitstellt, die auf den Transaktionsknoten ausgeführt werden können. Dabei ist die Zuordnung zwischen Dienst und Transaktionsknoten frei, so dass es möglich ist, dass mehrere – auch unterschiedliche – Dienste auf einem Transaktionsknoten oder auch verteilt auf mehreren Transaktionsknoten zur Ausführung gebracht werden können. Ebenso ist es möglich, dass ein Dienst auf mehrere Transaktionsknoten und damit verteilt ausgeführt wird. Die Transaktionsknoten stehen in Datenaustausch über ein Netzwerk, das in unterschiedlichen Netzarten und/oder mit unterschiedlichen Topologien betrieben werden kann, bspw. als ein Local Area Network (LAN) oder als ein TCP/IP – basiertes Netzwerk.The computer-based system is designed as a network system having, for example, a SOA architecture and providing certain services that can be executed on the transaction nodes. In this case, the association between service and transaction node is free, so that it is possible that several - even different - services on a transaction node or distributed to multiple transaction nodes can be executed. It is also possible that a service is executed on several transaction nodes and thus distributed. The transaction nodes are in data exchange via a network that can be operated in different network types and / or with different topologies, for example as a Local Area Network (LAN) or as a TCP / IP-based network.
Bei den begrenzten Ressourcen kann es sich um Daten bzw. Datenbestände handeln, die mitunter auch verteilt auf unterschiedlichen Transaktionsknoten vorgehalten werden können. Ebenso unterfallen diesem Begriff andere Betriebsmittel, wie z. B. solche, die exklusiv oder teil-exklusiv betrieben und deshalb reserviert werden müssen. Beispielsweise fallen hierunter auch Drucker, Speichersysteme, zentrale Prozessoreinheiten (CPU's), Berechnungseinheiten, Kompressionsmodule, Teile eines mechatronischen Systems, Teile von Software- oder Hardwaresystemen, Steuereinheiten, Regelungseinheiten und andere Verarbeitungsmodule.The limited resources can be data or data stocks, which can sometimes be kept available distributed on different transaction nodes. Likewise, this term are subject to other resources, such. B. those that are operated exclusively or partially-exclusive and therefore must be reserved. These include, for example, printers, memory systems, central processing units (CPU's), computation units, compression modules, parts of a mechatronic system, parts of software or hardware systems, control units, control units and other processing modules.
Bei den Transaktionsknoten handelt es sich um computerbasierte Instanzen unterschiedlicher Kategorie. Somit unterfallen einem Transaktionsknoten Mikroprozessorchips ebenso wie Rechner, Rechnersysteme oder Rechnernetzwerke mit unterschiedlicher Rechnerarchitektur. Auf den jeweiligen Transaktionsknoten wird ein Datenzugriff ausgeführt, der eine exklusive oder teil-exklusive Hoheit über die zu verarbeitenden Daten erfordert. Dabei kann es sich um eine beliebige Zugriffsart handeln, also um einen Schreib-(WRITE-), einen Lese-(READ-)- und/oder um einen Ausführ-Zugriff (EXECUTE).The transaction nodes are computer-based instances of different categories. Thus, a transaction node is subject to microprocessor chips as well as computers, computer systems or computer networks with different computer architecture. At the respective transaction nodes, a data access is executed which requires an exclusive or partial exclusive sovereignty over the data to be processed. This can be any type of access, ie a write (WRITE), a read (READ) and / or an execute (EXECUTE) access.
Die Reservierungsschlange wird üblicherweise in Software implementiert sein und umfasst eine Folge von Einträgen für Zugriffe zur exklusiven oder teil-exklusiven Reservierung von Betriebsmitteln. Erfindungsgemäß ist es vorgesehen, dass die Zugriffe über die Reservierungsschlange koordiniert und verwaltet werden. Darüber hinaus werden die Transaktionsknoten gemäß der Reservierungsschlange angesprochen. In Abhängigkeit von den Einträgen in der Reservierungsschlange werden die Daten mit der Reservierungsschlange sequentiell von Knoten zu Knoten übermittelt. Dabei ist es wichtig, dass allen beteiligten computerbasierten Instanzen und damit auch allen Transaktionsknoten die jeweils aktuelle Adresse der Reservierungsschlange (und damit des Transaktionsknotens mit Datenhoheit) bekannt ist. Erfindungsgemäß wird die Reservierungsschlange zusammen mit den zu bearbeitenden Daten im Netzwerk übertragen. Gemäß einem Aspekt der Erfindung ist es dabei vorgesehen, dass die Reservierungsschlange und die Daten in einem gekapselten Paket und insbesondere über denselben Datenkanal übertragen werden. Alternativ können jedoch auch unterschiedliche Datenübertragungswege vorgesehen sein, die allerdings hinsichtlich Sender und Empfänger übereinstimmen. Ebenso ist es möglich, die Reservierungsschlange und die Daten zwar voneinander getrennt bzw. unabhängig voneinander aber über denselben Kommunikationskanal an denselben Adressaten zu versenden (z. B. in getrennten elektronischen Nachrichten). The reservation queue will usually be implemented in software and includes a sequence of entries for exclusive or part-exclusive resource reservation. According to the invention, it is provided that the accesses are coordinated and managed via the reservation queue. In addition, the transaction nodes are addressed according to the reservation queue. Depending on the entries in the reservation queue, the data with the reservation queue is transmitted sequentially from node to node. It is important that all participating computer-based instances and thus also all transaction nodes, the current address of the reservation queue (and thus the transaction node with data sovereignty) is known. According to the reservation queue is transmitted along with the data to be processed in the network. In accordance with one aspect of the invention, provision is made for the reservation queue and the data to be transmitted in an encapsulated packet and in particular over the same data channel. Alternatively, however, different data transmission paths can be provided, which, however, coincide with respect to sender and receiver. It is likewise possible for the reservation queue and the data to be sent to the same addressee separately from one another or independently of one another via the same communication channel (eg in separate electronic messages).
Unter dem „Adressgeber” ist eine Instanz zu verstehen, die zur Ermittlung der aktuellen Reservierungsschlangenadresse bestimmt ist. Mit anderen Worten wird es den beteiligten Transaktionsknoten ermöglicht, die aktuelle Adresse der Reservierungsschlange über den Adressgeber zu erfahren. Der Adressgeber kann auf unterschiedliche Weise implementier werden. So ist es in einer ersten Variante möglich, hier ein Broadcast Prinzip zu verwenden. Das Broadcast Prinzip sieht vor, dass der jeweilige Transaktionsknoten mit Datenhoheit seine Adresse an alle anderen Knoten sendet. In einer zweiten Variante kann ein zentraler Adressknoten vorgesehen sein, der die aktuelle Adresse der Reservierungsschlange verwaltet. In diesem Fall ist es vorgesehen, dass der jeweilige Transaktionsknoten mit Datenhoheit seine Adresse an den zentralen Adressknoten versendet und, dass die anfragenden Transaktionsknoten die aktuelle Adresse der Reservierungsschlange über den Adressknoten in Erfahrung bringen können. Üblicherweise wird der zentrale Adressknoten als Wurzelknoten ausgebildet sein, von dem aus die Transformation der Daten initiiert wird. Gemäß einer dritten Variante kann auch eine verteilte Hashtabelle bereit gestellt werden, über die die jeweils aktuelle Adresse der Reservierungsschlange ermittelbar wird.By the "address provider" is meant an instance that is intended to determine the current reservation queue address. In other words, the participating transaction nodes are enabled to know the current address of the reservation queue via the address provider. The address provider can be implemented in different ways. So it is possible in a first variant to use a broadcast principle here. The broadcast principle stipulates that the respective transaction node with data sovereignty sends its address to all other nodes. In a second variant, a central address node can be provided which manages the current address of the reservation queue. In this case, it is provided that the respective transaction node with data sovereignty sends its address to the central address node and that the requesting transaction nodes can find out the current address of the reservation queue via the address node. Usually, the central address node will be formed as a root node, from which the transformation of the data is initiated. According to a third variant, a distributed hash table can also be provided, via which the respectively current address of the reservation queue can be determined.
In der Erfindung sind vorzugsweise zwei Varianten vorgesehen, wie die Transaktionsknoten ihre Zugriffsanfrage bzw. Reservierungsanfrage übermitteln. Zum Einen kann der Transaktionsknoten bei Bedarf seine Reservierungsanfrage an den Adressgeber übermitteln. Dies wird vorzugsweise dann der Fall sein, wenn ein zentraler Knoten als Adressknoten vorgesehen wird. Zum Anderen ist es möglich, dass der jeweilige Transaktionsknoten seine Reservierungsanfrage direkt an den im Einsatz befindlichen Transaktionsknoten stellt und damit an den Transaktionsknoten, der zurzeit die Datenhoheit hat und auf dem die Reservierungsschlange vorgehalten wird. Selbstverständlich können gemäß alternativen Ausführungsformen auch noch weitere Computerinstanzen beteiligt werden, so dass die Reservierungsanfrage indirekt und somit mittelbar an den jeweiligen Reservierungsschlangenknoten weitergeleitet wird.In the invention, two variants are preferably provided, as the transaction nodes transmit their access request or reservation request. On the one hand, the transaction node can, if necessary, transmit its reservation request to the address provider. This will preferably be the case when a central node is provided as an address node. On the other hand, it is possible that the respective transaction node makes its reservation request directly to the transaction node in use and thus to the transaction node, which currently has the data sovereignty and on which the reservation queue is kept. Of course, according to alternative embodiments, other computer instances can also be involved, so that the reservation request is forwarded indirectly and thus indirectly to the respective reservation queue node.
Insbesondere in großen Netzwerksystemen, die über einen umfangreichen geografischen Bereich angeordnet sind (z. B. länderübergreifend) ist es vorzugsweise vorgesehen, dass eine Struktur von Transaktionsknoten bereitgestellt wird. Dabei ist es vorgesehen, dass eine bestimmte Menge bzw. Auswahl von Transaktionsknoten einem Sub-Netzwerk zugeordnet ist. Dabei werden die einzelnen Sub-Netzwerke üblicherweise getrennt bzw. unabhängig voneinander verwaltet. Als Beispiel seien hier firmeninterne Netzwerke (die üblicherweise als LAN organisiert sind) oder länderspezifische Sub-Netzwerke genannt. Ein wesentlicher Vorteil der erfindungsgemäßen Lösung ist nun darin zu sehen, dass selbst bei einem Ausfall eines ersten Sub-Netzwerkes, dennoch eine fehlerfreie Zugriffskoordination und Datenverarbeitung auf anderen Sub-Netzwerken ausgeführt werden kann. Ebenso ist es möglich, dass eine lokale Datenverarbeitung auch dann noch ausführbar ist, wenn externe Datenverbindungen (also außerhalb des internen Netzwerkes) korrumpiert sind.Particularly in large network systems that are arranged over a large geographical area (eg transnationally), it is preferably provided that a structure of transaction nodes is provided. It is provided that a certain amount or selection of transaction nodes is assigned to a subnetwork. The individual sub-networks are usually managed separately or independently of each other. As an example, corporate networks (usually organized as LANs) or country-specific subnetworks are mentioned here. An essential advantage of the solution according to the invention can now be seen in the fact that even in the event of a failure of a first sub-network, error-free access coordination and data processing can still be performed on other sub-networks. It is also possible that local data processing can still be performed even if external data connections (that is, outside the internal network) are corrupted.
Gemäß einer Variante der erfindungsgemäßen Lösung kann auch eine Hierarchie von Transaktionsknoten bereit gestellt werden. Beispielsweise können sog. Wurzelknoten bereitgestellt werden, von denen die Datenverarbeitung mit den jeweiligen Zugriffen initiiert wird und die sozusagen als erster Transaktionsknoten in der Sequenz von Transaktionsknoten angesprochen werden. Dabei kann auch eine Hierarchie von Wurzelknoten implementiert sein (z. B. ein globaler Wurzelknoten und ein länderspezifischer Wurzelknoten).According to a variant of the solution according to the invention, a hierarchy of transaction nodes can also be provided. For example, so-called root nodes can be provided, from which the data processing with the respective accesses is initiated and which are addressed, so to speak, as first transaction nodes in the sequence of transaction nodes. In this case, a hierarchy of root nodes can also be implemented (for example, a global root node and a country-specific root node).
Gemäß einem Aspekt der Erfindung ist es vorgesehen, dass die Daten zur Konfiguration von technischen Geräten verwendet werden, die in Folge angesprochen werden, wie bspw. eine Dekompressionseinheit, um empfangene Daten zu dekomprimieren und an eine Darstellungseinheit weiterzuleiten, die dann die Daten „rendert”. In einem nächsten Schritt werden diese Daten dann an den Drucker zur Erstellung eines Ausdrucks weitergeleitet. Neben der Verwendung der Daten zur Konfiguration von technischen Geräten, sind auch andere Datenverwendungen denkbar, z. B. zur reinen Datenverarbeitung. An dieser Stelle sei jedoch nochmals darauf hingewiesen, dass es für die Ausführung der Erfindung nicht zwingend erforderlich ist, dass die Daten an allen Transaktionsknoten bearbeitet werden. Somit ist es auch möglich, dass die Daten an den Transaktionsknoten nur eingelesen oder für nachrangige Bearbeitungsschritte verwendet werden.According to one aspect of the invention, it is provided that the data is used for the configuration of technical devices which are addressed in succession, such as a decompression unit for decompressing received data and forwarding it to a presentation unit, which then "renders" the data. , In one Next, this data will be forwarded to the printer to create a printout. In addition to the use of data for the configuration of technical devices, other data uses are conceivable, for. B. for pure data processing. At this point, however, it should again be noted that it is not absolutely necessary for the execution of the invention that the data be processed at all transaction nodes. Thus, it is also possible that the data is only read in to the transaction node or used for subordinate processing steps.
Erfindungsgemäß ist sichergestellt, dass der aktuelle Bearbeiter (in Form eines Transaktionsknotens) auch einen exklusiven Zugriff auf die Daten hat, wobei die Daten (für den Zugriff) ausschließlich lokal bei dem Transaktionsknoten vorliegen (und bei keinem anderen Transaktionsknoten des Netzwerkes).According to the invention, it is ensured that the current processor (in the form of a transaction node) also has exclusive access to the data, the data (for access) being available exclusively locally at the transaction node (and at no other transaction node of the network).
Im Unterschied zu bekannten Pipeline-Architekturen, ist es bei der erfindungsgemäßen Lösung vorgesehen, die Reihenfolge der Bearbeitung bzw. die Reihenfolge der zu verwendenden Transaktionsknoten nicht a priori festzulegen. Die Reihenfolge der zu verwendenden Transaktionsknoten kann erfindungsgemäß dynamisch von Fall zu Fall bestimmt werden. Darüber hinaus ist es erfindungsgemäß auch nicht vorgesehen, zwingend einen zentralen Verwalter bzw. Koordinator bereit zu stellen, der zur Verwaltung der Zugriffe verwendet wird. Erfindungsgemäß wird eine dezentrale Zugriffskoordination erwirkt, in dem die Reservierungsschlange als Zugriffskoordinator verwendet wird und gemeinsam mit den Daten von Transaktionsknoten zu Transaktionsknoten gesendet wird.In contrast to known pipeline architectures, it is provided in the solution according to the invention not to determine the order of processing or the order of the transaction nodes to be used a priori. According to the invention, the order of the transaction nodes to be used can be determined dynamically on a case by case basis. In addition, according to the invention, it is also not intended to make it absolutely necessary to provide a central administrator or coordinator who is used to manage the accesses. According to the invention, a decentralized access coordination is obtained, in which the reservation queue is used as an access coordinator and is sent together with the data from transaction nodes to transaction nodes.
Gemäß einer bevorzugten Ausführungsform sind unterschiedliche Optimierungen des Zugriffsverfahrens vorgesehen.According to a preferred embodiment, different optimizations of the access method are provided.
So kann zum Einen ein Rollback der Transaktionen vorgenommen werden, falls ein Fehler (im Netzwerk oder bei bestimmten Transaktionsknoten) festgestellt wird. Dafür kann es vorgesehen sein, dass auf den bisher beteiligten Transaktionsknoten eine Kopie der verarbeitenden Daten verbleibt. Vorzugsweise ist es konfigurierbar, an welchen und/oder auf wie vielen Transaktionsknoten vor dem aktuellen Transaktionsknoten die Daten redundant vorgehalten werden. Folgendes Beispiel soll dies näher erläutern: Wenn bspw. im Rahmen einer Zugriffskoordination folgende Knoten A, B, C, D, E und F bei den Transaktionen beteiligt waren und Knoten F der aktuelle Knoten ist, so kann eine dreifache Redundanz vorgesehen sein. Dies bedeutet, dass die Knoten E, D und C über eine Kopie des Datensatzes verfügen, wobei die Kopie der Bearbeitung durch den jeweiligen Knoten entspricht, so dass auf dem Knoten C eine Kopie des Datensatzes nach der Bearbeitung durch den Knoten C liegt und auf dem Knoten D ein Datensatz liegt, der der Verarbeitung durch den Knoten D entspricht etc.Thus, on the one hand, the transactions can be rolled back if an error is detected (in the network or at certain transaction nodes). For this purpose, it may be provided that a copy of the processing data remains on the previously involved transaction nodes. It is preferably configurable to which and / or on how many transaction nodes the data is stored redundantly before the current transaction node. The following example is intended to explain this in more detail: If, for example, the following nodes A, B, C, D, E and F were involved in the transactions within the context of an access coordination and node F is the current node, a triple redundancy can be provided. This means that the nodes E, D and C have a copy of the record, the copy corresponding to the processing by the respective node, so that on the node C is a copy of the record after processing by the node C and on the Node D is a record that corresponds to the processing by the node D etc.
Vorteilhafterweise kann mit dieser Ausführungsform die Sicherheit des Zugriffs erhöht werden, indem auf frühere Bearbeitungsversionen zurückgegriffen werden kann.Advantageously, with this embodiment, the security of access can be increased by resorting to earlier editing versions.
In einer weiteren Optimierung kann es vorgesehen sein, den Zugriffskoordinator mit weiteren Steuerungs- und/oder Regelungsmöglichkeiten auszubilden. So ist es bspw. möglich, dass automatisch erfasst wird, welche weiteren Einträge in der Reservierungsschlange existieren. Diese weiteren Einträge von Transaktionsknoten werden dann hinsichtlich bestimmter Kriterien ausgewertet. Beispielsweise wäre es denkbar zu analysieren, welche der zukünftigen Transaktionsknoten sich innerhalb desselben lokalen Sub-Netzwerkes befinden und somit im Fehlerfall eines anderen Sub-Netzwerkes dennoch ausführbar wären. Ebenso könnte eine Priorisierung von Transaktionsknoten vorgenommen werden.In a further optimization, it may be provided to design the access coordinator with further control and / or regulation options. For example, it is possible to automatically detect which other entries exist in the reservation queue. These further entries of transaction nodes are then evaluated with regard to certain criteria. For example, it would be conceivable to analyze which of the future transaction nodes are located within the same local subnetwork and would nevertheless be executable in the event of a fault of another subnetwork. Likewise, a prioritization of transaction nodes could be made.
Gemäß der erfindungsgemäßen Lösung ist es vorgesehen, dass die Daten in einer bestimmten Reihenfolge bei den ausgewählten Transaktionsknoten eintreffen. Die Transaktionsknoten, die in der Reservierungsschlange höher stehen, erhalten die Daten früher als diejenigen Transaktionsknoten, die an einer nachrangigen Position in der Reservierungsschlange eingetragen sind. Damit wird auch eine Sequenz der Bearbeitung definiert. Zu betonen ist, dass erfindungsgemäß keine zentrale Verwaltung notwendig wird und die Zugriffe auf die jeweiligen Transaktionsknoten dezentral verwaltet werden. Der Zugriffskoordinator wird zusammen mit den zu bearbeitenden Daten im Netzwerk übertragen. Damit ist sichergestellt, dass sich sowohl die Daten als auch der Zugriffskoordinator im gleichen physikalischen Kontext bzw. auf demselben Transaktionsknoten befinden, so dass selbst bei eingeschränkter Konnektivität die Daten immer noch bearbeitet werden können.According to the solution according to the invention, it is provided that the data arrive in a specific order at the selected transaction nodes. The transaction nodes that are higher in the reservation queue receive the data earlier than those transaction nodes that are registered at a subordinate position in the reservation queue. This also defines a sequence of the processing. It should be emphasized that according to the invention no central administration is necessary and the accesses to the respective transaction nodes are managed decentrally. The access coordinator is transmitted along with the data to be processed on the network. This ensures that both the data and the access coordinator are in the same physical context or on the same transaction node, so that even with limited connectivity, the data can still be processed.
Eine weitere Lösung der vorstehend genannten Aufgabe besteht in einem computerbasierten System, das zur Ausführung des vorstehend erwähnten Verfahrens bestimmt ist. Das System umfasst eine Vielzahl von Transaktionsknoten und eine Reservierungsschlange, sowie zumindest einen Adressgeber. Der Zugriffskoordinator in Form der Reservierungsschlange wird dabei zusammen mit den Daten von Knoten zu Knoten transferiert.Another solution to the above object is a computer-based system designed to carry out the above-mentioned method. The system includes a plurality of transaction nodes and a reservation queue, as well as at least one address provider. The access coordinator in the form of the reservation queue is thereby transferred together with the data from node to node.
Eine weitere Aufgabenlösung besteht in einer Reservierungsschlange, die als Datenstruktur bereit gestellt wird. Die Reservierungsschlange kann als Liste mit Einträgen zur Reservierung von Betriebsmitteln implementiert sein. Erfindungsgemäß wird die Reservierungsschlange als Datenstruktur gemeinsam mit den zu verarbeitenden Daten transferiert. Vorzugsweise kann dies in Form eines gemeinsamen Datenpaketes erfolgen oder innerhalb einer gemeinsamen Nachricht. Alternativ sind hier auch unterschiedliche Transformationsmechanismen denkbar, so dass die Reservierungsschlange in einer separaten Nachricht an denselben Empfänger wie die Daten D) versendet werden.Another task solution is a reservation queue, which is provided as a data structure. The reservation queue may be implemented as a list of resource reservation entries. According to the reservation queue is transferred as a data structure together with the data to be processed. This can preferably take the form of a common data packet or within a common message. Alternatively, different transformation mechanisms are also conceivable here, so that the reservation queue is sent in a separate message to the same recipient as the data D).
Eine andere Aufgabenlösung sieht ein Computerprogramm vor, das zur Ausführung des vorstehend beschriebenen Verfahrens bestimmt ist. Dabei ist es möglich, dass das Computerprogramm auf einen Datenträger gespeichert ist. Die Speicherung kann als ausführbare oder als geladener Code vorgesehen sein. Ebenso kann das Computerprogramm als Download von einem Server abrufbar sein. Alternativ kann das Computerprogramm auch auf einem sonstigen Speichermedium gespeichert sein oder als verteiltes System bereit gestellt werden, so dass einzelne Module des vorstehend beschriebenen Verfahrens auf einem Client und andere Module auf einem Server zur Ausführung kommen.Another task solution provides a computer program, which is intended for carrying out the method described above. It is possible that the computer program is stored on a disk. The storage can be provided as executable or as loaded code. Likewise, the computer program may be available as a download from a server. Alternatively, the computer program can also be stored on another storage medium or provided as a distributed system, so that individual modules of the method described above come on a client and other modules on a server for execution.
Eine alternative Lösung der Aufgaben besteht auch in einem computerimplementierten Verfahren gemäß dem beiliegenden Verfahrensanspruch, das in Form eines Computerprogramms vertrieben werden kann.An alternative solution of the tasks is also in a computer-implemented method according to the attached method claim, which can be distributed in the form of a computer program.
Weitere Lösungen der Aufgabe und alternative Ausführungsformen finden sich in den beiliegenden Patentansprüchen.Further solutions to the problem and alternative embodiments can be found in the accompanying claims.
In der folgenden, detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung beschrieben. In dieser zeigen:In the following detailed description of the figures, non-limiting exemplary embodiments with their features and further advantages will be described with reference to the drawing. In this show:
Im Folgenden wird – unter Bezugnahme auf die
Wie in
In
Erfindungsgemäß ist es also vorgesehen, dass anfragende computerbasierte Instanzen auf eine Reservierungsanfrage eine Nachricht mit einer Adresse desjenigen Transaktionsknotens T erhalten, der aktuell die Datenhoheit hat und auf dem die Daten D aktuell liegen. Daraufhin ist es den anfragenden Systemen ”System X” und ”System Y” möglich, jeweils eine Reservierungsanfrage direkt an den Transaktionsknoten T mit Datenhoheit zu stellen (hier: ”System R”).According to the invention, it is thus provided that requesting computer-based entities receive a message requesting a reservation with an address of the transaction node T which currently has the data sovereignty and on which the data D is currently located. Then it is the requesting systems "System X" and "System Y" possible to make each a reservation request directly to the transaction node T with data sovereignty (here: "System R").
Die Nachrichten, die von den anfragenden Systemen (”System X”, ”System Y”) an den Wurzelknoten (”Data Home”) gesendet werden, sind in
Nach Übermittlung der Reservierungsanfragen der anfragenden Systeme an den Transaktionsknoten T mit der Reservierungsschlange Q, werden die Reservierungseinträge automatisch in die Reservierungsschlange Q eingetragen. Dies ist in
Nach Fertigstellung der Bearbeitung der Daten auf den Transaktionsknoten T ”System R” werden die so bearbeiteten Daten D gemeinsam mit der Transaktionsschlange Q an denjenigen Transaktionsknoten T übermittelt, der an erster Stelle in der Reservierungsschlange Q steht. In dem in den
Das vorstehend beschriebene Verfahren wird iterativ auf allen Transaktionsknoten T ausgeführt, die in der Reservierungsschlange Q eingetragen sind, bis alle anstehenden Transaktionen ausgeführt sind oder bis die Datenverarbeitung fertig bearbeitet ist. Nach Abarbeitung der Reservierungsschlange sind grundsätzlich zwei Möglichkeiten vorgesehen:
- – Eine erste Ausführungsform sieht es vor, dass die so bearbeiteten Daten D auf dem letzten Transaktionsknoten T verbleiben.
- – Gemäß einer zweiten Ausführungsform ist es vorgesehen, dass die so bearbeiteten Daten von dem letzten Transaktionsknoten T an den Wurzelknoten ”Data Home” zurück übermittelt werden.
- A first embodiment provides that the data D thus processed remain on the last transaction node T.
- According to a second embodiment, it is provided that the data thus processed are transmitted back from the last transaction node T to the root node "Data Home".
Selbstverständlich liegen auch noch andere weitere Bearbeitungen oder Weiterleitungen an andere computerbasierte Instanzen im Rahmen der Erfindung.Of course, there are also other further processing or forwarding to other computer-based entities within the scope of the invention.
Im Zusammenhang mit
Vorzugsweise werden die Reservierungsschlange Q und die Daten in einem gemeinsamen Nachrichtenpaket Q, D übertragen. Dieses Nachrichtenpaket kann von anderen Nachrichten gekapselt sein. Üblicherweise wird das Nachrichtenpaket in einer Nachricht übertragen. Alternativ können hier jedoch auch unterschiedliche Nachrichten verwendet werden. Darüber hinaus ist es möglich, die Reservierungsschlange Q und die Daten D in separaten Nachrichten und/oder über separate Kommunikationskanäle (unterschiedliche Protokolle, unterschiedliche Netzwerkfrequenzen, unterschiedliche Datenleitungen etc.) zu versenden. Dies macht das System zwar flexibler, aber auch unsicherer, da bei einem Kanalausfall Inkonsistenzen überprüft werden müssen.Preferably, the reservation queue Q and the data are transmitted in a common message packet Q, D. This message packet may be encapsulated by other messages. Usually, the message packet is transmitted in a message. Alternatively, however, different messages can be used here. Moreover, it is possible to send the reservation queue Q and the data D in separate messages and / or via separate communication channels (different protocols, different network frequencies, different data lines, etc.). This makes the system more flexible, but also less secure because inconsistencies must be checked in the event of a channel failure.
In
Der Adressgeber A dient zum Bereitstellen der aktuellen Adresse der Reservierungsschlange Q bzw. des Transaktionsknotens T, der die Datenhoheit aktuell inne hat. Für die Realisierung des Adressgebers A sind unterschiedliche Varianten vorgesehen. Zum einen ist es möglich, dass der Adressgeber A durch den zentralen Wurzelknoten gebildet wird, der in den
Alternativ kann der Adressgeber A auch als verteilte Hashtabelle ausgebildet sein.Alternatively, the address generator A can also be designed as a distributed hash table.
In einer dritten Variante ist es möglich, die Funktion des Adressgebers A durch ein Broadcast-Prinzip zu realisieren. Gemäß dieser Variante ist es vorgesehen, dass der jeweils aktuelle Datenherrscherknoten seinen Zustand (Datenhoheit) an alle anderen Transaktionsknoten T sendet, die dem System über das Netzwerk N zugeschaltet sind. Diese dritte Variante entlastet zwar den Wurzelknoten, führt aber nachteiligerweise zu einem erhöhten Netzwerkverkehr, da bei einem Übergang von einem Datenherrscherknoten an den nächsten jeweils eine Vielzahl von Nachrichten ausgetauscht werden müssen. In a third variant, it is possible to realize the function of the address generator A by a broadcast principle. According to this variant, it is provided that the respectively current data controller node sends its state (data sovereignty) to all other transaction nodes T which are connected to the system via the network N. Although this third variant relieves the load on the root node, it disadvantageously leads to increased network traffic since, in the event of a transition from one data node to the next, a large number of messages must be exchanged.
Selbstverständlich liegt es auch im Rahmen der Erfindung, den Adressgeber A als separates Modul auf einem oder auf mehreren ausgewählten Transaktionsknoten T des Systems zu implementieren.Of course, it is also within the scope of the invention to implement the address generator A as a separate module on one or more selected transaction nodes T of the system.
Üblicherweise ist es vorgesehen, dass der Datenbestand nicht fragmentiert ist und somit nicht auf mehrere Transaktionsknoten T verteilt ist. Der Zugriff soll auf diesen Datenbestand sicher ausgeführt werden. Alternativ kann es jedoch auch vorgesehen sein, dass der Datenbestand fragmentiert und damit auf unterschiedliche Transaktionsknoten T verteilt ist. Dann wird das vorstehend beschriebene Verfahren auf die einzelnen Datenfragmente angewendet.Usually, it is provided that the data is not fragmented and thus is not distributed to a plurality of transaction nodes T. The access should be executed safely on this dataset. Alternatively, however, it may also be provided that the data stock is fragmented and thus distributed to different transaction nodes T. Then the method described above is applied to the individual data fragments.
Gemäß einem Aspekt der Erfindung sollen die Operationen, die auf dem Datenbestand ausgeführt werden sollen, transaktional ausgeführt werden. Dabei kann erfindungsgemäß die Datenkonsistenz zugesichert werden, da gewährleistet ist, dass jeweils nur ein Datenherrscherknoten T zu einem Zeitpunkt die Datenhoheit über den Datenbestand hat.According to one aspect of the invention, the operations to be performed on the dataset are to be performed transactionally. In this case, according to the invention, the data consistency can be assured, since it is ensured that in each case only one data host node T has the data sovereignty over the data stock at a time.
Als weiterer Vorteil lässt sich aufführen, dass ein relativ hoher Grad an Serialisierbarkeit ermöglicht wird.Another advantage is that a relatively high degree of serializability is possible.
Eine vorteilhafte Weiterbildung der Erfindung sieht es vor, dass die einzelnen Transaktionen, die auf den Transaktionsknoten T ausgeführt werden, bis zu einem bestimmten vorkonfigurierbaren Zustand rückabgewickelt werden können (rollback). Dazu ist es vorgesehen, dass jeweils eine Kopie des Datenbestandes auf einem Transaktionsknoten T verbleibt, während das Nachrichtenpaket aus Reservierungsschlange Q und Daten D an den nächsten Transaktionsknoten T weitergeleitet wird. Ergibt sich nun bei der weiteren Bearbeitung auf dem nächsten Transaktionsknoten T ein Fehler und wird es deshalb notwendig, die Transaktion rückabzuwickeln, sodass der vorhergehende Zustand des Datenbestandes widerhergestellt werden muss, so kann die Kopie zumindest eines vorhergehenden Transaktionsknotens T verwendet werden. Vorteilhafterweise ist es dabei einstellbar, auf wie vielen vorhergehenden Transaktionsknoten T vor dem jeweils aktuellen Transaktionsknoten T eine Kopie der Daten D verbleiben soll. Wenn beispielsweise die Zahl ”3” als Rollback definiert wird, so verbleibt auf den drei zurückliegenden Transaktionsknoten T jeweils eine Kopie der dort bearbeiteten Daten. Wird die Anzahl überschritten, so können die Daten auf dem jeweiligen Knoten T gelöscht werden.An advantageous development of the invention provides that the individual transactions that are executed on the transaction node T can be rolled back to a certain preconfigurable state (rollback). For this purpose, it is provided that in each case a copy of the data remains on a transaction node T, while the message packet from reservation queue Q and data D is forwarded to the next transaction node T. If an error then arises in the further processing on the next transaction node T and it therefore becomes necessary to rewind the transaction so that the previous state of the data stock must be restored, the copy of at least one preceding transaction node T can be used. Advantageously, it is adjustable on how many previous transaction node T before each current transaction node T a copy of the data D should remain. If, for example, the number "3" is defined as rollback, a copy of the data processed there remains on the three preceding transaction nodes T in each case. If the number is exceeded, the data on the respective node T can be deleted.
In einer anderen, vorteilhaften Weiterbildung der Erfindung ist die Reservierungsschlange Q mit weiteren Funktionen ausgebildet. Dazu umfasst sie weitere Module, die entweder als Mikroprozessorbauteil und/oder als Software-Modul implementiert sein können.In another advantageous development of the invention, the reservation queue Q is designed with additional functions. For this purpose, it comprises further modules which can be implemented either as a microprocessor component and / or as a software module.
So ist ein Priorisierungsmodul dazu ausgebildet, die in der Reservierungsschlange Q eingetragenen Reservierungsanfragen zu priorisieren. Die Parameter zur Priorisierung sind vorzugsweise konfigurierbar. Je nach Implementierung des Warteschlangenmodells können hier unterschiedliche Parameter verwendet werden, so zum Beispiel: Bedienzeit, Anzahl der Bedienstationen, Priorität im Anwendungsprozess etc. Damit wird es möglich, wahlweise, bestimmte Einträge in der Reservierungsschlange Q umzusortieren, um diese gemäß deren Priorität in der Sequenz der Einträge zu sortieren. Die Prioritätskriterien können auch dynamisch, also auch zur Laufzeit, modifiziert werden. Damit wird es vorteilhafterweise möglich, die Zugriffskoordination sehr flexibel auf den Anwendungsfall hin anpassen zu können.Thus, a prioritization module is designed to prioritize the reservation requests entered in the reservation queue Q. The parameters for prioritization are preferably configurable. Depending on the implementation of the queue model, different parameters can be used here, for example: operating time, number of operating stations, priority in the application process, etc. This makes it possible, optionally, to re-sort certain entries in the reservation queue Q according to their priority in the sequence sort the entries. The priority criteria can also be modified dynamically, ie also at runtime. This advantageously makes it possible to adapt the access coordination very flexibly to the application case.
Gemäß einem weiteren Aspekt kann die Warteschlange mit unterschiedlichen Scheduling-Algorithmen betrieben werden. Dazu zählen ein prioritätenbasiertes Scheduling mit statischen oder dynamischen Prioritäten und ein Bedienzeit-basiertes Scheduling (zum Beispiel Shortest Job First – SJF-Scheduling). Bei dieser Strategie ist es vorgesehen, dass der kürzeste Job zuerst gerechnet wird.In another aspect, the queue may be operated with different scheduling algorithms. These include priority-based scheduling with static or dynamic priorities, and service-time-based scheduling (for example, Shortest Job First - SJF scheduling). With this strategy, it is envisaged that the shortest job is calculated first.
Gemäß einer weiteren Variante der Erfindung ist es vorgesehen, dass das Nachrichtenpaket aus Reservierungsschlange Q und dem Datenbestand D noch weitere Daten umfasst, so zum Beispiel Spezifikationen der Prozedur bzw. Methoden, die auf dem Datenbestand auszuführen sind. Ebenso können noch Metainformationen zum Versenden und/oder zum Empfang von Nachrichten übermittel werden.According to a further variant of the invention, it is provided that the message packet comprising the reservation queue Q and the data stock D comprises further data, for example specifications of the procedure or methods which are to be executed on the dataset. Likewise, meta information for sending and / or receiving messages can be transmitted.
Wie vorstehend bereits erwähnt, bestehen für die Implementierung des Warteschlangenmodells unterschiedliche Möglichkeiten. Zur Abarbeitung der Warteschlange kann es auch vorgesehen sein, ein Load-Balancing-Modul zu berücksichtigen. Das Load-Balancing-Modul dient dazu, die Lastverteilung zwischen den einzelnen Transaktionsknoten T zu optimieren und die Datenverarbeitung so zu gestalten, dass möglichst diejenigen Transaktionsknoten T aktiviert werden, die zu dem aktuellen Zeitpunkt keine Überlast fahren. In dieser Variante ist es vorgesehen, dass zusätzlich Lastinformationsnachrichten zwischen den Transaktionsknoten T ausgetauscht werden. Diese Lastinformationsnachrichten kennzeichnen, mit welcher Last der jeweilige Transaktionsknoten T zum jeweiligen Zeitpunkt gerade betrieben wird. In Abhängigkeit von der Knotenbelastung kann dann eine Umorganisation der Reservierungsschlange Q vorgenommen werden.As already mentioned above, there are different possibilities for the implementation of the queue model. To process the queue, it may also be provided to consider a load-balancing module. The load-balancing module serves to optimize the load distribution between the individual transaction nodes T and to design the data processing so that as far as possible Transaction node T are activated, which do not overload at the current time. In this variant, it is provided that additional load information messages are exchanged between the transaction nodes T. These load information messages indicate the load with which the respective transaction node T is currently being operated at the respective time. Depending on the node load then a reorganization of the reservation queue Q can be made.
Gemäß einer weiteren, vorteilhaften Weiterbildung der Erfindung ist es vorgesehen, dass alle oder ausgewählte Zustände der Reservierungsschlange Q vorgehalten werden. Damit wird sozusagen eine persistente Reservierungsschlange Q bereitgestellt. Dies hat den Vorteil, dass bei einem System-Crash auch frühere Zustände der Reservierungsschlange Q bereitgestellt werden können, um den „Weg des Datenbestandes” im Netzwerk zurückverfolgen zu können. An dieser Stelle sei darauf hingewiesen, dass das Ausführungsbeispiel, das in den
Grundsätzlich kann ein Transaktionsknoten T in unterschiedlichen Rollen betrieben werden: Zum Einen als Datenherrscherknoten und zum Anderen als anfragender Transaktionsknoten. Je nach Ausführungsform können noch weitere Rollen vorgesehen sein (z. B. als Wurzelknoten).In principle, a transaction node T can be operated in different roles: on the one hand as a data controller node and on the other hand as a requesting transaction node. Depending on the embodiment, further rollers may be provided (eg as root nodes).
Gemäß einer bevorzugten Ausführungsform der Erfindung ist es vorgesehen, dass ein Netzwerkknoten T in seiner Rolle als anfragender Konten jeweils folgende Schritte ausführt:
- – Er greift auf den Adressgeber A zu, um den aktuellen Datenherrscherknoten in Erfahrung zu bringen. Dies kann beispielsweise durch Versenden einer Nachricht an den Wurzelknoten ausgeführt werden.
- – Der anfragende Knoten sendet eine Reservierungsanfrage an den Datenherrscherknoten. Dabei übermittelt er einen Identifikator des anfragenden Knotens bzw. des wartenden Prozesses und möglicherweise noch Zusatzinformationen, wie Lastnachrichten, Metainformationen zur Bedienzeit des anfragenden Systems etc.
- - It accesses the address generator A in order to find out the current data controller node. This can be done, for example, by sending a message to the root node.
- The requesting node sends a reservation request to the data master node. He transmits an identifier of the requesting node or the waiting process and possibly additional information, such as load messages, meta information on the service time of the requesting system, etc.
Gemäß einem Aspekt der Erfindung ist es vorgesehen, dass ein Netzwerkknoten T in seiner Rolle als bearbeitender Knoten bzw. Datenherrscherkonten (wird synonym verwendet zum Begriff „Knoten mit Datenhoheit”) jeweils folgende Schritte ausführt (dabei ist die Reihenfolge der Schritte nicht zwingend vorgegeben sondern kann auch variiert werden):
- – Er bearbeitet die Daten durch Ausführen von Transkationen.
- – Er empfängt eine Reservierungsanfrage eines anfragenden Transaktionsknotens und trägt die Reservierungsanfrage gegebenenfalls nach Prüfung auf Zulässigkeit in die Reservierungsschlange Q ein, die lokal vorgehalten wird.
- – Nach Abarbeitung der Transaktion erfolgt ein Zugriff auf die Reservierungsschlange Q, um den nächsten Transaktionsknoten als Empfänger des Datenpaktes Q, D zu bestimmen.
- – Das Datenpaket Q, D wird automatisch generiert und an den bestimmten Empfänger (den nächsten Transaktionsknoten T gemäß der Reservierungsschlange Q) weitergeleitet. Optional kann das Datenpaket noch Zusatzinformationen umfassen, wie Lastnachrichten, Metainformationen für bereits erfolgte und/oder noch auszuführende Transaktionen etc.
- - He processes the data by executing transactions.
- - It receives a reservation request from a requesting transaction node and enters the reservation request, if necessary after checking for admissibility in the reservation queue Q, which is held locally.
- After the transaction has been processed, access is made to the reservation queue Q in order to determine the next transaction node as the recipient of the data packet Q, D.
- The data packet Q, D is automatically generated and forwarded to the specific receiver (the next transaction node T according to the reservation queue Q). Optionally, the data packet may also include additional information, such as load messages, meta information for already performed and / or yet to be executed transactions, etc.
Dabei werden die Schritte in der bevorzugten Ausführungsform der Erfindung automatisch und ohne Benutzerinteraktion ausgeführt.The steps in the preferred embodiment of the invention are carried out automatically and without user interaction.
Abschließend sei noch darauf hingewiesen, dass die in der vorstehenden Beschreibung genannten unterschiedlichen Ausführungsbeispiele auch kombiniert zur Anwendung kommen können. So können einzelne der erwähnten Aspekte auch kombiniert werden. Darüber hinaus ist es möglich, Teile des Verfahrens zur Koordination von Zugriffen auf einem ersten Transaktionsknoten T1 und andere Teile des Verfahrens auf einem anderen Transaktionsknoten T2 zur Ausführung zu bringen. Somit kann das erfindungsgemäße Verfahren auch als verteiltes System, z. B. nach dem Client-Server-Prinzip, betrieben werden. Die hauptsächliche Anwendung der Erfindung liegt auf dem Gebiet der technischen Betriebsmittel eines Computersystems, die eine Zugriffskoordination erfordern, wie z. B. Drucker, Druckertreiber, Ports, sonstige Schnittstellen, angeschlossene technische Geräte oder Instrumente. Dabei können grundsätzlich Rechner-interne und/oder Rechner-externe Betriebsmittel betroffen sein. Beispielsweise im medizinischen Anwendungsfeld könnten Rechner-externe Betriebsmittel in angeschlossenen Geräten liegen, wie beispielsweise in Bildakquisitionsgeräten (Röntgen, CT, MRT etc.) oder in Laborgeräten oder in Befundungsstationen.Finally, it should be pointed out that the different embodiments mentioned in the above description can also be used in combination. Thus, some of the mentioned aspects can also be combined. In addition, it is possible to implement parts of the method for coordinating accesses on a first transaction node T 1 and other parts of the method on another transaction node T 2 . Thus, the inventive method can also be used as a distributed system, for. B. according to the client-server principle operated. The main application of the invention is in the field of the technical resources of a computer system which require access coordination, e.g. As printers, printer drivers, ports, other interfaces, connected technical equipment or instruments. Basically, computer-internal and / or computer-external resources can be affected. For example, in the medical field of application computer-external resources could be in connected devices, such as in image acquisition devices (X-ray, CT, MRI, etc.) or in laboratory equipment or in diagnostic stations.
Zusammenfassend lässt sich die Erfindung wie folgt in verkürzter Form beschreiben:
Zur Zugriffskoordination auf Betriebsmittel, die von beteiligten Transaktionsknoten T exklusiv oder teilexklusiv reserviert werden müssen, wird eine Reservierungsschlange Q bereitgestellt, die gemeinsam mit dem Datenbestand D im Netzwerk N transferiert wird. Die Reservierungsschlange Q fungiert als dynamischer und dezentraler Zugriffskoordinator.In summary, the invention can be described in abbreviated form as follows:
For access coordination on resources which have to be reserved exclusively or partially exclusively by participating transaction nodes T, a reservation queue Q is provided which is transferred together with the data stock D in the network N. The reservation queue Q acts as a dynamic and decentralized access coordinator.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
-
- TT
- Transaktionsknotentransaction node
- Reservierungsschlangereservation queue
- DD
- Daten bzw. DatenbestandData or data stock
- Q, DQ, D
- NachrichtenpaketNews package
- AA
- Adressgeberaddress donor
- X1X1
- Nachricht: Suche nach Adresse von QMessage: Search for address of Q
- X2X2
- Reservierungsanfrage von X → QReservation request from X → Q
- Y1Y1
- Suche nach Adresse Q/RSearch for address Q / R
- Y2Y2
- Reservierungsanfrage von Y → Q/RReservation request from Y → Q / R
- NN
- TCP/IP-NetzwerkTCP / IP network
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE201110006490 DE102011006490A1 (en) | 2011-03-31 | 2011-03-31 | Computer-based system e.g. mechatronics system, for coordinating access to e.g. printers in distributed network system, has generator for determining address while reservation queue is updated, where queue is transferred with data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE201110006490 DE102011006490A1 (en) | 2011-03-31 | 2011-03-31 | Computer-based system e.g. mechatronics system, for coordinating access to e.g. printers in distributed network system, has generator for determining address while reservation queue is updated, where queue is transferred with data |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102011006490A1 true DE102011006490A1 (en) | 2012-10-04 |
Family
ID=46844778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE201110006490 Withdrawn DE102011006490A1 (en) | 2011-03-31 | 2011-03-31 | Computer-based system e.g. mechatronics system, for coordinating access to e.g. printers in distributed network system, has generator for determining address while reservation queue is updated, where queue is transferred with data |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102011006490A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016006111A1 (en) | 2016-05-18 | 2017-11-23 | John Philipp de Graaff | The present invention relates to a method of universally connecting multiple forms of queues for data (queues) to one. Thus, the same data space can be used for multiple queues, preferably for an input and output queue and thereby assume a FIFO or an optional output behavior |
-
2011
- 2011-03-31 DE DE201110006490 patent/DE102011006490A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016006111A1 (en) | 2016-05-18 | 2017-11-23 | John Philipp de Graaff | The present invention relates to a method of universally connecting multiple forms of queues for data (queues) to one. Thus, the same data space can be used for multiple queues, preferably for an input and output queue and thereby assume a FIFO or an optional output behavior |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102016103733B4 (en) | Channel ownership in a publish / subscribe system | |
DE60008555T2 (en) | METHOD AND DEVICE FOR EFFICIENTLY TRANSMITTING DATA FROM AN INTERACTIVE APPLICATION BETWEEN CLIENTS AND SERVER BY MEANS OF A MARKUP LANGUAGE | |
DE60133648T2 (en) | SYSTEM AND METHOD FOR LEADING RUNTIME DATA IN A SERVER NETWORK | |
EP2555489B1 (en) | Method and device for configuring terminals | |
DE112020005786T5 (en) | SYSTEMS AND METHODS TO ENABLE HIGH-AVAILABILITY MANAGED FAILURE SERVICE | |
DE602005004334T2 (en) | Nms for processing multi-server events | |
DE112012002631T5 (en) | Stream processing using a client-server architecture | |
DE102004010180A1 (en) | Methods and devices for accessing distributed data for process control systems | |
DE102019103927A1 (en) | Systems and methods for performing a security protocol in an execution plan controlled by hierarchical state machines | |
DE102015215480A1 (en) | Method and device for transmitting a message in a vehicle | |
DE112015003926T5 (en) | Publish / subscribe messaging using a message structure | |
DE112020006047T5 (en) | CONTROLLING TRANSACTION REQUESTS BETWEEN APPLICATIONS AND SERVERS | |
DE112013003300T5 (en) | Gradual preparation of videos on the delivery | |
DE112020004353T5 (en) | GLOBAL TABLE MANAGEMENT OPERATIONS FOR REPLICATED MULTI-REGIONAL TABLES | |
DE102014201948B4 (en) | Method for data transmission, communication network and vehicle | |
DE102004030781A1 (en) | SCADA system for process monitoring and data handling has client server arrangement providing low data transmission loads | |
DE102018219070B3 (en) | Transfer a data record and provide data transfer information | |
DE102011006490A1 (en) | Computer-based system e.g. mechatronics system, for coordinating access to e.g. printers in distributed network system, has generator for determining address while reservation queue is updated, where queue is transferred with data | |
DE202013012473U1 (en) | communication system | |
DE19943453A1 (en) | System and method to support group interaction (GIA) in hypermedia information spaces | |
DE112011104020T5 (en) | Validate access to a shared record for read and write access by multiple requestors | |
DE102012210064A1 (en) | Manage events generated from business objects | |
EP3028182B1 (en) | Method and system for synchronising data | |
DE10244459A1 (en) | Method for control of application process in distributed system e.g. for sequencing computer software applications, uses system having second layer as micro-kernel based client/server | |
DE112013002191B4 (en) | Message processing in a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R081 | Change of applicant/patentee |
Owner name: SIEMENS HEALTHCARE GMBH, DE Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |