WO2012022359A1 - Automation device comprising a virtual machine for synchronization and synchronization method - Google Patents
Automation device comprising a virtual machine for synchronization and synchronization method Download PDFInfo
- Publication number
- WO2012022359A1 WO2012022359A1 PCT/EP2010/005070 EP2010005070W WO2012022359A1 WO 2012022359 A1 WO2012022359 A1 WO 2012022359A1 EP 2010005070 W EP2010005070 W EP 2010005070W WO 2012022359 A1 WO2012022359 A1 WO 2012022359A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual machine
- synchronization
- object management
- systems
- objects
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
- G05B9/03—Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24186—Redundant processors are synchronised
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Definitions
- the present invention relates to an automation device with a first system, which has a plurality of objects communicating with each other and a first object management, and a second system, which also has mutually communicating objects and a second object management. Moreover, the present invention relates to a method for synchronizing two systems of an automation device.
- increasingly highly available solutions with a very low probability of failure
- a system component 1A can be implemented as software or hardware.
- the first system A is a system component 2A, which is used for object management. It is in direct or indirect communication with the other system components 1A.
- the second system B has basically the same or a similar structure as the first system A. It has several objects or system components 1B and a system component 2B with the object management for the second system B.
- the two (possibly more) computer systems A and B are coupled to each other via a synchronization connection 3 and thus form a highly available system in the automation environment.
- the individual system components 1A and 1B usually have no status information themselves, which would be important for the synchronization.
- the entire system information is typically stored in the object management.
- the state information relates not only to static data about the system structure but also to dynamic data such as input and output data.
- a synchronization of both systems A, B ensures that in both systems at certain times the identical system state is present.
- objects system components 1A, 1B
- the central component of this object-oriented approach is the object management 2A or 2B already explained in connection with FIG. It ensures the consistency of the objects and their relationships with each other.
- the object of the present invention is therefore to provide a highly available automation device whose subsystems can be synchronized with reduced effort.
- a corresponding synchronization method is to be provided.
- this object is achieved by an automation device having a first system having a plurality of objects communicating with each other and a first object management, and a second system having a plurality of communicating objects and a second object management, each of the two object management each on its own virtual Machine is set up and to synchronize the two systems only with a synchronization device to perform a copy of a first object management memory content of the virtual machine from the first system into the virtual machine of the second system.
- a method of synchronizing two systems of an automation device wherein a first of the two systems comprises a plurality of objects communicating with each other and a first object management and a second of the two systems comprises a plurality of communicating objects and a second object management by running each of the two object managers each on its own virtual machine and synchronizing the two systems by copying a first object management memory content of the virtual machine from the first system into the virtual machine of the second system.
- the object managers of the subsystems run on separate virtual machines. This requires the synchronization of both subsystems only one A simple copy operation that copies the state data from the first system to the second system.
- the second system is a stand-by system. This does not have the same ability as the first glossfä ⁇ system because it only runs as a redundant system in the background, as a rule. It is only used when the first system fails. As a result, a high availability of the entire automation device can be ensured.
- Each of the two object administrations can be completely implemented in a separate object in the respective system. In this way, the object administrations can also be implemented in each case in a virtual machine without great effort.
- the synchronization device only transmits changed system data compared to a preceding synchronization. This reduces the data transfer effort in a synchronization.
- the synchronization device can be designed to transmit static and dynamic state data from the first system. This not only transfers data about the static structure of a system during synchronization to the redundant system, but also dynamic data that arise, for example, during the life of the system, constantly adjusted.
- FIG. 1 shows a block diagram of a highly available system according to the prior art
- FIG. 2 shows a block diagram of a high-availability system with synchronization improved according to the invention.
- FIG. 2 of an automation device for example for the control of a system, is based on the example of FIG. 1.
- the automation device consists of two subsystems A and B.
- System A has the networked objects or system components 1A and the system B has the networked objects or system components IB.
- a component with object management in short: first object management 2A is also provided here as a separate system component in the system A, which is networked with the system components 1A.
- the second system B has a component with object management, in short: second object management 2B, which is networked with the other system components 1B of the system B.
- the object management (OVW) system component 2A or 2B does not run "native" on the host, but within a virtual machine
- OW object management
- the object management virtual machine 4A and in the system B the virtual machine 4B for If other components also contain information that is relevant to the system state, then they must be started within the virtual machine 4A, 4B
- the object structure remains unchanged in those system components 1A, 1B that are connected to the respective virtual machine 4A 4B, a proxy 5 is in each case provided which simulates the respective component for the object management to overcome the computer limit from the host to the virtual machine.
- all components relevant to the system state run in a single virtual machine 4A or 4B.
- the synchronization 3 therefore, only the memory content of the system A virtual machine 4A needs to be copied to the memory of the standby system B virtual machine 4B.
- a memory image of the virtual machine 4A on the stand-by system B leads to the identical state of the virtual machine 4B.
- the state of the components 1A, 1B running in the respective virtual machine 4A, 4B and thus the system state on both subsystems A, B are identical.
- a lean implementation must be ensured in order to keep the amount of memory to be transferred as small as possible.
- the present invention is based on the idea of using a virtual machine at the component level.
- This component level corresponds to the level of individual Software vers. Hardware components. It does not virtualize the entire operating system, but only the system components important system components, so only a small part of the entire system (eg one or two components). It exploits the fact that the distribution of software components across system boundaries is in any case controlled by modern component frameworks (eg memory structure locally or across components or systems).
- the local virtual machine is treated in the same way as a remote machine.
- the advantage of the approach according to the invention is that the synchronization of both subsystems A, B can be reduced to the copying of a memory image. There are no time-consuming object operations to perform (serialization, deserialization). This considerably simplifies the synchronization process.
- the restriction to a few system components limits the amount of memory to be transferred, thus ensuring adequate performance.
- Another advantage of the automation device according to the invention or of the synchronization method according to the invention consists in the fact that the existing component structure does not have to be changed during the transition from the single-channel (non-redundant) to the multi-channel (redundant) system.
- the mechanisms used for communication between the software components usually support the distribution of components across computer boundaries.
- the changes required when using the virtual machine are automatically generated by the framework without changing the software components themselves.
- the communication of the virtual machine thus takes place indirectly via the stubs or proxies as representatives of the system components.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
Abstract
The aim of the invention is to design a highly available automation device having two or more subsystems (A, B) in a simple manner. An automation device comprises a first system (A) having a plurality of objects (1A) that communicate with each other, and a first object administration (2A), and a second system (B) having a plurality of objects (1B) that communicate with each other, and a second object administration (2B). Each of the object administrations (2A, 2B) is placed on its proper virtual machine (4A, 4B). In order to synchronize (3) the two systems (A, B) a memory content of the virtual machine (4A) relating to the first object administration (2A) merely has to be copied from the first system (A) to the virtual machine (4B) of the second system (B).
Description
Beschreibung description
Automatisierungsvorrichtung mit virtueller Maschine zur Synchronisation und Synchronisationsverfahren Automation device with virtual machine for synchronization and synchronization
Die vorliegende Erfindung betrifft eine Automatisierungsvorrichtung mit einem ersten System, das mehrere miteinander kommunizierende Objekte und eine erste Objektverwaltung aufweist, sowie einem zweiten System, das ebenfalls miteinander kommunizierende Objekte und eine zweite Objektverwaltung aufweist. Darüber hinaus betrifft die vorliegende Erfindung ein Verfahren zum Synchronisieren zweier Systeme einer Automatisierungsvorrichtung . Im Automatisierungsumfeld werden verstärkt hochverfügbare Lösungen (mit sehr geringer Ausfallwahrscheinlichkeit) gefordert, die eventuell auftretende Stillstandszeiten der Anlage auf ein Minimum reduzieren. Die Entwicklung derartiger hochverfügbarer Lösungen ist sehr kostenintensiv. FIG 1 zeigt den grundlegenden Aufbau eines hochverfügbaren Automatisierungssystems mit einem ersten System A und einem redundanten zweiten System B. Das erste System A besteht aus mehreren Objekten bzw. Systemkomponenten 1A, die miteinander vernetzt sind. Eine Systemkomponente 1A kann als Software oder Hardware rea- lisiert sein. Darüber hinaus befindet sich in dem ersten System A eine Systemkomponente 2A, die zur Objektverwaltung dient. Sie steht mit den übrigen Systemkomponenten 1A direkt oder indirekt in Kommunikationsverbindung. Das zweite System B besitzt prinzipiell einen gleichen oder einen ähnlichen Aufbau wie das erste System A. Es verfügt über mehrere Objekte bzw. Systemkomponenten 1B und eine Systemkomponente 2B mit der Objektverwaltung für das zweite System B. Die beiden (gegebenenfalls auch mehr) Rechnersysteme A und B sind über eine Synchronisationsverbindung 3 miteinander gekoppelt und bilden so ein hochverfügbares System im Automatisierungsumfeld. Die einzelnen Systemkomponenten 1A bzw. 1B verfügen in der Regel selbst über keine Zustandsinformation,
die für die Synchronisation wichtig wäre. Die gesamte Systeminformation ist typischerweise in der Objektverwaltung abgelegt. Die Zustandsinformation betrifft nicht nur statische Daten über den Systemaufbau, sondern auch dynamische Daten wie beispielsweise Ein- und Ausgangsdaten. The present invention relates to an automation device with a first system, which has a plurality of objects communicating with each other and a first object management, and a second system, which also has mutually communicating objects and a second object management. Moreover, the present invention relates to a method for synchronizing two systems of an automation device. In the automation environment, increasingly highly available solutions (with a very low probability of failure) are required, which reduce downtime of the system to a minimum. The development of such highly available solutions is very costly. 1 shows the basic structure of a fault-tolerant automation system with a first system A and a redundant second system B. The first system A consists of several objects or system components 1A, which are networked together. A system component 1A can be implemented as software or hardware. In addition, in the first system A is a system component 2A, which is used for object management. It is in direct or indirect communication with the other system components 1A. The second system B has basically the same or a similar structure as the first system A. It has several objects or system components 1B and a system component 2B with the object management for the second system B. The two (possibly more) computer systems A and B are coupled to each other via a synchronization connection 3 and thus form a highly available system in the automation environment. The individual system components 1A and 1B usually have no status information themselves, which would be important for the synchronization. The entire system information is typically stored in the object management. The state information relates not only to static data about the system structure but also to dynamic data such as input and output data.
Eine Synchronisation beider Systeme A, B stellt sicher, dass in beiden Systemen zu bestimmten Zeitpunkten der identische Systemzustand vorliegt. In modernen Firmware-Architekturen werden Objekte (Systemkomponenten 1A, 1B) verwendet, um die zur Systemlaufzeit anfallenden Daten zu strukturieren und zu verwalten. Die zentrale Komponente dieses objektorientierten Ansatzes ist die in Zusammenhang mit FIG 1 bereits erläuterte Objektverwaltung 2A bzw. 2B. Sie stellt die Konsistenz der Objekte und deren Beziehungen untereinander sicher. Der mit Abstand größte Teil der zustandsrelevanten Systemdaten befindet sich in dieser Objektverwaltung. Damit besteht der größte Aufwand bei der Synchronisation 3 der beiden Teilsysteme A, B in der Synchronisation der Objektverwaltungen. Dies ist gera- de in objektorientierten Architekturen mit erheblichem Aufwand verbunden. A synchronization of both systems A, B ensures that in both systems at certain times the identical system state is present. In modern firmware architectures, objects (system components 1A, 1B) are used to structure and manage the data accumulating during the system runtime. The central component of this object-oriented approach is the object management 2A or 2B already explained in connection with FIG. It ensures the consistency of the objects and their relationships with each other. By far the largest part of the status-relevant system data is in this object management. Thus, the greatest effort in the synchronization 3 of the two subsystems A, B in the synchronization of the object administrations. This is associated with considerable effort in object-oriented architectures.
Zur Lösung dieser Problematik existieren Lösungsansätze, bei denen die Mechanismen der Objektverwaltung 2A, 2B genutzt werden, um auf dem Stand-By-System die identische Objektwelt zu erzeugen. Dazu gehören zum Beispiel „Objekte anlegen/löschen", „Objekte verbinden", „Objekte kopieren" etc. Dieses Vorgehen ist jedoch sehr laufzeitintensiv, da die Objektdaten erst auf dem einen Teilsystem A aus der Objektver- waltung 2A extrahiert, danach auf das Stand-By-System B übertragen und anschließend wieder in die Objektverwaltung 2B des Stand-By-Systems B eingefügt werden müssen. Dies ist nur über die Schnittstellen möglich, welche die Objektverwaltung zur Verfügung stellt. Um eine enge Synchronisation der beiden Teilsysteme A, B zu erreichen, muss allerdings der Abgleich beider Systeme performant ablaufen. Dies ist mit dem hier beschriebenen Lösungsansatz schwer zu erreichen, da Objektbäume
zunächst für die Übertragung auf das Stand-By-System seriali- siert und anschließend wieder deserialisiert werden müssen. To solve this problem, there are approaches in which the mechanisms of object management 2A, 2B are used to generate the identical object world on the stand-by system. This includes, for example, "create / delete objects", "connect objects", "copy objects" etc. However, this procedure is very time-consuming because the object data is only extracted on the one subsystem A from the object management 2A, then on the state -By system B and then have to be reinserted into the object management 2B of the stand-by system B. This is only possible via the interfaces that the object management makes available in order to ensure close synchronization of the two subsystems A, B. However, the alignment of both systems must be carried out with high performance, which is difficult to achieve with the approach described here, because object trees initially serialized for transfer to the stand-by system and then deserialized again.
Die Aufgabe der vorliegenden Erfindung besteht somit darin, eine hochverfügbare Automatisierungsvorrichtung bereitzustellen, deren Teilsysteme mit vermindertem Aufwand synchronisiert werden können. Darüber hinaus soll ein entsprechendes Synchronisationsverfahren bereitgestellt werden. The object of the present invention is therefore to provide a highly available automation device whose subsystems can be synchronized with reduced effort. In addition, a corresponding synchronization method is to be provided.
Erfindungsgemäß wird diese Aufgabe gelöst durch eine Automatisierungsvorrichtung mit einem ersten System, das mehrere miteinander kommunizierende Objekte und eine erste Objektverwaltung aufweist, sowie einem zweiten System, das mehrere miteinander kommunizierende Objekte und eine zweite Objektverwaltung aufweist, wobei jede der beiden Objektverwaltungen jeweils auf einer eigenen virtuellen Maschine aufgesetzt ist und zur Synchronisation der beiden Systeme lediglich mit einer Synchronisationseinrichtung ein Kopieren eines die erste Objektverwaltung betreffenden Speicherinhalts der virtuellen Maschine von dem ersten System in die virtuelle Maschine des zweiten Systems durchzuführen ist. According to the invention, this object is achieved by an automation device having a first system having a plurality of objects communicating with each other and a first object management, and a second system having a plurality of communicating objects and a second object management, each of the two object management each on its own virtual Machine is set up and to synchronize the two systems only with a synchronization device to perform a copy of a first object management memory content of the virtual machine from the first system into the virtual machine of the second system.
Darüber hinaus wird erfindungsgemäß bereitgestellt ein Verfahren zum Synchronisieren zweier Systeme einer Automatisierungsvorrichtung, wobei ein erstes der zwei Systeme mehrere miteinander kommunizierende Objekte und eine erste Objektverwaltung und ein zweites der zwei Systeme mehrere miteinander kommunizierende Objekte und eine zweite Objektverwaltung aufweist, durch Laufenlassen jeder der beiden Objektverwaltungen jeweils auf einer eigenen virtuellen Maschine und Synchronisieren der beiden Systeme durch Kopieren eines die erste Objektverwaltung betreffenden Speicherinhalts der virtuellen Maschine von dem ersten System in die virtuelle Maschine des zweiten Systems. Moreover, according to the invention there is provided a method of synchronizing two systems of an automation device, wherein a first of the two systems comprises a plurality of objects communicating with each other and a first object management and a second of the two systems comprises a plurality of communicating objects and a second object management by running each of the two object managers each on its own virtual machine and synchronizing the two systems by copying a first object management memory content of the virtual machine from the first system into the virtual machine of the second system.
In vorteilhafter Weise laufen die Objektverwaltungen der Teilsysteme auf separaten virtuellen Maschinen. Dadurch bedarf es zur Synchronisation beider Teilsysteme lediglich ei-
nes einfachen Kopiervorgangs, mit dem die Zustandsdaten von dem ersten System auf das zweite System kopiert werden. Advantageously, the object managers of the subsystems run on separate virtual machines. This requires the synchronization of both subsystems only one A simple copy operation that copies the state data from the first system to the second system.
Vorzugsweise handelt es sich bei dem zweiten System um ein Stand-By-System. Dieses muss nicht die gleiche Leistungsfä¬ higkeit wie das erste System besitzen, da es in der Regel nur als redundantes System im Hintergrund läuft. Es kommt lediglich zum Einsatz, wenn das erste System ausfällt. Dadurch kann eine hohe Verfügbarkeit der gesamten Automatisierungs- Vorrichtung gewährleistet werden. Preferably, the second system is a stand-by system. This does not have the same ability as the first Leistungsfä ¬ system because it only runs as a redundant system in the background, as a rule. It is only used when the first system fails. As a result, a high availability of the entire automation device can be ensured.
Jede der beiden Objektverwaltungen kann im jeweiligen System vollständig in einem separaten Objekt implementiert sein. Damit können die Objektverwaltungen auch jeweils ohne hohen Aufwand in einer virtuellen Maschine implementiert werden. Each of the two object administrations can be completely implemented in a separate object in the respective system. In this way, the object administrations can also be implemented in each case in a virtual machine without great effort.
In jedem der beiden Systeme kann die Kommunikation zwischen der jeweiligen virtuellen Maschine und einem der systeminternen Objekte über einen Stub oder Proxy stattfinden. Damit kann die Systemarchitektur unverändert bleiben, auch wenn die virtuelle Maschine für die Objektverwaltung eingeführt wird. In each of the two systems, communication between the respective virtual machine and one of the intrinsic objects can take place via a stub or proxy. This allows the system architecture to remain unchanged, even if the virtual machine is introduced for object management.
Darüber hinaus ist es vorteilhaft, wenn von der Synchronisationseinrichtung lediglich gegenüber einer vorhergehenden Synchronisation veränderte Systemdaten übertragen werden. Dadurch reduziert sich der Datenübertragungsaufwand bei einer Synchronisatio . Moreover, it is advantageous if the synchronization device only transmits changed system data compared to a preceding synchronization. This reduces the data transfer effort in a synchronization.
Des Weiteren kann die Synchronisationseinrichtung zur Über- tragung statischer und dynamischer Zustandsdaten von dem ersten System ausgebildet sein. Dadurch werden nicht nur Daten über den statischen Aufbau eines Systems bei der Synchronisation auf das redundante System übertragen, sondern es werden auch dynamische Daten, die sich beispielsweise während der Laufzeit des Systems ergeben, ständig abgeglichen. Furthermore, the synchronization device can be designed to transmit static and dynamic state data from the first system. This not only transfers data about the static structure of a system during synchronization to the redundant system, but also dynamic data that arise, for example, during the life of the system, constantly adjusted.
Die vorliegende Erfindung wird anhand der beigefügten Zeichnungen näher erläutert, in denen zeigen:
FIG 1 ein Blockdiagramm eines hochverfügbaren Systems gemäß dem Stand der Technik; und FIG 2 ein Blockdiagramm eines hochverfügbaren Systems mit erfindungsgemäß verbesserter Synchronisation. The present invention will be further explained with reference to the accompanying drawings, in which: 1 shows a block diagram of a highly available system according to the prior art; and FIG. 2 shows a block diagram of a high-availability system with synchronization improved according to the invention.
Die nachfolgend näher geschilderten Ausführungsbeispiele stellen bevorzugte Ausführungsformen der vorliegenden Erfin- dung dar. The embodiments described in more detail below represent preferred embodiments of the present invention.
Das in FIG 2 dargestellte Beispiel einer Automatisierungsvorrichtung beispielsweise für die Steuerung einer Anlage basiert auf dem Beispiel von FIG 1. Auch hier besteht die Auto- matisierungsvorrichtung aus zwei Teilsystemen A und B. DasThe example shown in FIG. 2 of an automation device, for example for the control of a system, is based on the example of FIG. 1. Here, too, the automation device consists of two subsystems A and B. The
System A besitzt die miteinander vernetzten Objekte bzw. Systemkomponenten 1A und das System B besitzt die miteinander vernetzten Objekte bzw. Systemkomponenten IB. Darüber hinaus ist auch hier als eigene Systemkomponente im System A eine Komponente mit Objektverwaltung, kurz: erste Objektverwaltung 2A vorgesehen, die mit den Systemkomponenten 1A vernetzt ist. Ebenso besitzt das zweite System B eine Komponente mit Objektverwaltung, kurz: zweite Objektverwaltung 2B, die mit den anderen Systemkomponenten 1B des Systems B vernetzt ist. Die für die Objektverwaltung (OVW) zuständige Systemkomponente 2A bzw. 2B läuft nicht „native" auf dem Host, sondern innerhalb einer virtuellen Maschine. So ist im System A die virtuelle Maschine 4A für die Objektverwaltung und in dem System B die virtuelle Maschine 4B für die Objektverwaltung vorgesehen. Enthalten noch andere Komponenten Informationen, die für den Systemzustand relevant sind, so müssen diese innerhalb der virtuellen Maschine 4A, 4B gestartet werden. Die Objektstruktur bleibt dabei unverändert. In denjenigen Systemkomponenten 1A, 1B, die mit der jeweiligen virtuellen Maschine 4A, 4B in Kommunikationsverbindung stehen, ist jeweils ein Proxy 5 vorgesehen, der die jeweilige Komponente für die Objektverwaltung simuliert. Mit ihm lässt
sich die Rechnergrenze vom Host zur virtuellen Maschine überwinden . System A has the networked objects or system components 1A and the system B has the networked objects or system components IB. In addition, a component with object management, in short: first object management 2A is also provided here as a separate system component in the system A, which is networked with the system components 1A. Likewise, the second system B has a component with object management, in short: second object management 2B, which is networked with the other system components 1B of the system B. The object management (OVW) system component 2A or 2B does not run "native" on the host, but within a virtual machine Thus, in system A, the object management virtual machine 4A and in the system B the virtual machine 4B for If other components also contain information that is relevant to the system state, then they must be started within the virtual machine 4A, 4B The object structure remains unchanged in those system components 1A, 1B that are connected to the respective virtual machine 4A 4B, a proxy 5 is in each case provided which simulates the respective component for the object management to overcome the computer limit from the host to the virtual machine.
Soll für die Synchronisation 3 der Zustand des einen Teilsys- tems A auf das andere Teilsystem B übertragen werden, müssen nur die Teile der Systemdaten übertragen werden, die für den Systemzustand relevant sind. If the state of one subsystem A is to be transferred to the other subsystem B for synchronization 3, only those parts of the system data that are relevant to the system state need to be transmitted.
Gemäß der vorliegenden Erfindung laufen alle für den System- zustand relevanten Komponenten in einer einzigen virtuellen Maschine 4A bzw. 4B ab. Bei der Synchronisation 3 muss deshalb lediglich der Speicherinhalt der virtuellen Maschine 4A des Systems A in den Speicher der virtuellen Maschine 4B des Stand-By-Systems B kopiert werden. Ein Speicherabbild der virtuellen Maschine 4A führt auf dem Stand-By-System B zum identischen Zustand der virtuellen Maschine 4B. Damit ist auch der Zustand der in der jeweiligen virtuellen Maschine 4A, 4B laufenden Komponenten 1A, 1B und damit der Systemzustand auf beiden Teilsystemen A, B identisch. Bei der Imple- mentierung der virtuellen Maschine im jeweiligen System ist auf eine schlanke Realisierung zu achten, um die zu übertragende Speichermenge möglichst klein zu halten. According to the present invention, all components relevant to the system state run in a single virtual machine 4A or 4B. In the synchronization 3, therefore, only the memory content of the system A virtual machine 4A needs to be copied to the memory of the standby system B virtual machine 4B. A memory image of the virtual machine 4A on the stand-by system B leads to the identical state of the virtual machine 4B. As a result, the state of the components 1A, 1B running in the respective virtual machine 4A, 4B and thus the system state on both subsystems A, B are identical. During the implementation of the virtual machine in the respective system, a lean implementation must be ensured in order to keep the amount of memory to be transferred as small as possible.
Die vorliegende Erfindung basiert also auf dem Gedanken, eine virtuelle Maschine auf Komponentenebene einzusetzen. Diese Komponentenebene entspricht der Ebene einzelner Softwarebzw. Hardwarekomponenten. Es wird nicht das gesamte Betriebssystem virtualisiert, sondern nur die für den Systemzustand wichtigen Systemkomponenten, also nur ein kleiner Teil des gesamten Systems (z.B. eine oder zwei Komponenten). Dabei wird ausgenutzt, dass die Verteilung von Softwarekomponenten über Systemgrenzen hinweg von modernen Komponenten-Frameworks ohnehin beherrscht wird (z.B. Speicherstruktur lokal oder komponenten- bzw. systemübergreifend) . Die lokale virtuelle Maschine wird genauso behandelt wie dies bei einem entfernten Rechner der Fall wäre.
Der Vorteil des erfindungsgemäßen Ansatzes besteht einerseits darin, dass die Synchronisation beider Teilsysteme A, B auf das Kopieren eines Speicherabbilds reduziert werden kann. Es müssen keine aufwändigen Objektoperationen durchgeführt werden ( Serialisierung, Deserialisierung) . Dies vereinfacht den Synchronisationsvorgang erheblich. Die Beschränkung auf einige wenige Systemkomponenten begrenzt die zu übertragende Speichermenge und sichert damit eine angemessene Leistungsfähigkeit . Thus, the present invention is based on the idea of using a virtual machine at the component level. This component level corresponds to the level of individual Softwarebzw. Hardware components. It does not virtualize the entire operating system, but only the system components important system components, so only a small part of the entire system (eg one or two components). It exploits the fact that the distribution of software components across system boundaries is in any case controlled by modern component frameworks (eg memory structure locally or across components or systems). The local virtual machine is treated in the same way as a remote machine. On the one hand, the advantage of the approach according to the invention is that the synchronization of both subsystems A, B can be reduced to the copying of a memory image. There are no time-consuming object operations to perform (serialization, deserialization). This considerably simplifies the synchronization process. The restriction to a few system components limits the amount of memory to be transferred, thus ensuring adequate performance.
Ein weiterer Vorteil der erfindungsgemäßen Automatisierungsvorrichtung bzw. des erfindungsgemäßen Synchronisationsverfahrens besteht in der Tatsache, dass die bestehende Komponentenstruktur beim Übergang vom einkanaligen (nichtredundanten) zum mehrkanaligen (redundanten) System nicht verändert werden muss. Die für die Kommunikation zwischen den Softwarekomponenten eingesetzten Mechanismen unterstützen üblicherweise die Verteilung von Komponenten auch über Rechnergrenzen hinweg. Die beim Einsatz der virtuellen Maschine notwendigen Änderungen (Stubs und Proxys) werden vom Framework automatisch generiert, ohne die Softwarekomponenten selbst zu verändern. Die Kommunikation der virtuellen Maschine findet also indirekt über die Stubs bzw. Proxys als Stellvertreter der Systemkomponenten statt. Another advantage of the automation device according to the invention or of the synchronization method according to the invention consists in the fact that the existing component structure does not have to be changed during the transition from the single-channel (non-redundant) to the multi-channel (redundant) system. The mechanisms used for communication between the software components usually support the distribution of components across computer boundaries. The changes required when using the virtual machine (stubs and proxies) are automatically generated by the framework without changing the software components themselves. The communication of the virtual machine thus takes place indirectly via the stubs or proxies as representatives of the system components.
Die Tatsache, dass die zu synchronisierenden Objekte 1A, 1B über ein Stub/Proxy-Konzept angesprochen werden müssen, wird dadurch entschärft, dass die lokal verwendete Netzwerkkommunikation durch das unterlagerte Kommunikationsprotokoll auf ein einfaches Kopieren von Speicherbereichen abgebildet werden kann. Der Kommunikations-Overhead ist damit klein. The fact that the objects 1A, 1B to be synchronized must be addressed via a stub / proxy concept is defused by the fact that the locally used network communication can be mapped by the subordinate communication protocol to a simple copying of memory areas. The communication overhead is thus small.
Um die bei der Synchronisation zu übertragenden Speichermengen so klein wie möglich zu halten, kann ein so genannter „Delta-Mechanismus" eingesetzt werden, bei dem nur die Änderungen in der virtuellen Maschine übertragen werden. Dadurch kann die Synchronisationszeit optimiert werden.
Bezugszeichenliste In order to minimize the amount of memory to be transferred during synchronization, a so-called "delta mechanism" can be used, in which only the changes in the virtual machine are transmitted, thereby optimizing the synchronization time. LIST OF REFERENCE NUMBERS
1A Systemkomponente1A system component
1B Systemkomponente1B system component
2A ObjektVerwaltung2A object management
2B ObjektVerwaltung2B object management
3 Synchronisation3 synchronization
4A virtuelle Maschine4A virtual machine
4B virtuelle Maschine4B virtual machine
5 Proxy 5 proxy
A Teilsystem A subsystem
B Teilsystem B subsystem
OVW Objektverwaltung
OVW property management
Claims
1. Automatisierungsvorrichtung mit 1. automation device with
- einem ersten System (A) , das mehrere miteinander kommuni¬ zierende Objekte (1A) und eine erste Objektverwaltung (2A) aufweist, sowie - A first system (A) having a plurality of communicating ¬ communicating objects (1A) and a first object management (2A), and
- einem zweiten System (B) , das mehrere miteinander kommunizierende Objekte (1B) und eine zweite Objektverwaltung (2B) aufweist, a second system (B) having a plurality of communicating objects (1B) and a second object management (2B),
dadurch gekennzeichnet, dass characterized in that
- jede der beiden Objektverwaltungen (2A, 2B) jeweils auf einer eigenen virtuellen Maschine (4A, 4B) aufgesetzt ist, each of the two object administrations (2A, 2B) is in each case mounted on its own virtual machine (4A, 4B),
- zur Synchronisation (3) der beiden Systeme (A, B) lediglich mit einer Synchronisationseinrichtung ein Kopieren eines die erste Objektverwaltung (2A) betreffenden Speicherinhalts der virtuellen Maschine (4A) von dem ersten System (A) in die virtuelle Maschine (4B) des zweiten Systems (B) durchzuführen ist. for the synchronization (3) of the two systems (A, B) with a synchronization device only, copying a memory content of the virtual machine (4A) relating to the first object management (2A) from the first system (A) to the virtual machine (4B) of the virtual machine (4B) second system (B).
2. Automatisierungsvorrichtung nach Anspruch 1, wobei das zweite System (B) ein Stand-By-System ist. The automation apparatus of claim 1, wherein the second system (B) is a stand-by system.
3. Automatisierungsvorrichtung nach Anspruch 1 oder 2, wobei jede der beiden Objektverwaltungen (2A, 2B) in jedem System (A, B) vollständig in einem separaten Objekt implementiert ist. The automation apparatus according to claim 1 or 2, wherein each of the two object managers (2A, 2B) in each system (A, B) is completely implemented in a separate object.
4. Automatisierungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei in jedem der beiden Systeme (A, B) die Kommunikation zwischen der jeweiligen virtuellen Maschine (4A, 4B) und einem der systeminternen Objekte (1A, 1B) über einen Stub oder Proxy (5) stattfindet. 4. Automation device according to one of the preceding claims, wherein in each of the two systems (A, B) the communication between the respective virtual machine (4A, 4B) and one of the system-internal objects (1A, 1B) via a stub or proxy (5) takes place.
5. Automatisierungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei von der Synchronisationseinrichtung lediglich gegenüber einer vorhergehenden Synchronisation veränderte Systemdaten übertragen werden. 5. Automation device according to one of the preceding claims, wherein the synchronization device is transmitted only compared to a previous synchronization changed system data.
6. Automatisierungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei die Synchronisationseinrichtung zur Übertragung statischer und dynamischer Zustandsdaten von dem ersten System (A) ausgebildet ist. 6. Automation device according to one of the preceding claims, wherein the synchronization device for transmitting static and dynamic state data from the first system (A) is formed.
7. Verfahren zum Synchronisieren (3) zweier Systeme (A, B) einer Automatisierungsvorrichtung, wobei ein erstes (A) der zwei Systeme mehrere miteinander kommunizierende Objekte (1A) und eine erste Objektverwaltung (2A) und ein zweites (B) der zwei Systeme mehrere miteinander kommunizierende Objekte (1B) und eine zweite Objektverwaltung (2B) aufweist, A method of synchronizing (3) two systems (A, B) of an automation device, wherein a first one of the two systems comprises a plurality of objects (1A) communicating with each other and a first object management (2A) and a second (B) of the two systems comprising a plurality of communicating objects (1B) and a second object management (2B),
gekennzeichnet durch marked by
- Laufenlassen jeder der beiden Objektverwaltungen (2A, 2B) jeweils auf einer eigenen virtuellen Maschine (4A, 4B) und - Synchronisieren (3) der beiden Systeme (A, B) durch Kopieren eines die erste Objektverwaltung (2A) betreffenden Speicherinhalts der virtuellen Maschine (4A) von dem ersten System (A) in die virtuelle Maschine (4B) des zweiten Systems (B) . - Running each of the two object managers (2A, 2B) each on its own virtual machine (4A, 4B) and - synchronizing (3) the two systems (A, B) by copying a memory content of the virtual machine concerning the first object management (2A) (4A) from the first system (A) to the virtual machine (4B) of the second system (B).
8. Verfahren nach Anspruch 7, wobei jede der beiden Objektverwaltungen (2A, 2B) im jeweiligen System (A, B) vollständig in einem separaten Objekt implementiert wird. 8. The method of claim 7, wherein each of the two object managers (2A, 2B) in the respective system (A, B) is completely implemented in a separate object.
9. Verfahren nach Anspruch 7 oder 8, wobei zur Synchronisation (3) lediglich gegenüber einer vorhergehenden Synchronisation veränderte Systemdaten übertragen werden. 9. The method of claim 7 or 8, wherein for synchronization (3) only changed system data compared to a previous synchronization.
10. Verfahren nach einem der Ansprüche 7 bis 9, wobei zur Synchronisation (3) statische und dynamische Zustandsdaten von dem ersten System übertragen werden. 10. The method according to any one of claims 7 to 9, wherein for synchronization (3) static and dynamic state data are transmitted from the first system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2010/005070 WO2012022359A1 (en) | 2010-08-18 | 2010-08-18 | Automation device comprising a virtual machine for synchronization and synchronization method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2010/005070 WO2012022359A1 (en) | 2010-08-18 | 2010-08-18 | Automation device comprising a virtual machine for synchronization and synchronization method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012022359A1 true WO2012022359A1 (en) | 2012-02-23 |
Family
ID=43902881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2010/005070 WO2012022359A1 (en) | 2010-08-18 | 2010-08-18 | Automation device comprising a virtual machine for synchronization and synchronization method |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2012022359A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070094659A1 (en) * | 2005-07-18 | 2007-04-26 | Dell Products L.P. | System and method for recovering from a failure of a virtual machine |
US20090113109A1 (en) * | 2007-10-26 | 2009-04-30 | Vmware, Inc. | Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System |
US20090300414A1 (en) * | 2008-05-30 | 2009-12-03 | Jian Huang | Method and computer system for making a computer have high availability |
US20100107158A1 (en) * | 2008-10-28 | 2010-04-29 | Vmware, Inc. | Low overhead fault tolerance through hybrid checkpointing and replay |
-
2010
- 2010-08-18 WO PCT/EP2010/005070 patent/WO2012022359A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070094659A1 (en) * | 2005-07-18 | 2007-04-26 | Dell Products L.P. | System and method for recovering from a failure of a virtual machine |
US20090113109A1 (en) * | 2007-10-26 | 2009-04-30 | Vmware, Inc. | Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System |
US20090300414A1 (en) * | 2008-05-30 | 2009-12-03 | Jian Huang | Method and computer system for making a computer have high availability |
US20100107158A1 (en) * | 2008-10-28 | 2010-04-29 | Vmware, Inc. | Low overhead fault tolerance through hybrid checkpointing and replay |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60220263T2 (en) | SERVER DUPLEX PROCESS AND SUPPLEMENTED SERVER SYSTEM | |
DE69128271T2 (en) | Method and system for increasing the operational availability of a system of computer programs, operating in a distributed computer system | |
DE3750938T2 (en) | Multiprocessor system. | |
DE69032673T2 (en) | Method and apparatus for dynamically managing input / output connection facilities | |
DE69506155T2 (en) | Asynchronous remote data copying | |
DE602005003490T2 (en) | Distributed system with quorum redundancy and method for it | |
DE19983497B4 (en) | Remote transmission between file units | |
EP0807883B1 (en) | Communications system with means for exchanging software processes | |
DE102004056216A1 (en) | Facsimile system and storage system | |
DE19815263A1 (en) | Error-tolerant computer program running device | |
EP1249744A1 (en) | Method and apparatus for providing consistent memory contents in a redundant system | |
DE102017109886A1 (en) | Control system for controlling safety-critical and non-safety-critical processes with master-slave functionality | |
WO2005073852A1 (en) | Method for operating an arrangement of several computers in case of a computer failure | |
EP3444682A1 (en) | Method for the computer-assisted coupling of a processing module into a modular technical system and modular technical system | |
EP3039494B1 (en) | Automation system | |
DE19780639C2 (en) | Work-over system | |
WO2013064189A1 (en) | Migration of a virtual machine | |
DE3142504A1 (en) | MULTIPLE DISK STORAGE TRANSMISSION SYSTEM | |
DE10253174A1 (en) | Device for developing and / or configuring an automation system | |
DE102013103379A1 (en) | Control and data transmission system for redundant process control and firmware update process | |
DE69614671T2 (en) | METHOD AND SYSTEM FOR SYNCHRONIZING SIMULTANEOUS SEQUENTIAL PROCESSES WITH THE AID OF INTRA-PROCESS CORRECTION AND INTER-PROCESS ADAPTING OPERATIONS | |
WO2012022359A1 (en) | Automation device comprising a virtual machine for synchronization and synchronization method | |
EP2090948A1 (en) | Automation system and method for operating such an automation system | |
EP3028182B1 (en) | Method and system for synchronising data | |
DE2632561B2 (en) | CONTROL DEVICE FOR REAL-TIME CONTROL, IN PARTICULAR FOR TELEPHONE SWITCHING SYSTEMS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10748053 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10748053 Country of ref document: EP Kind code of ref document: A1 |