Method and control device for operating a system
By replicating applications between primary servers and copying snapshots to secondary servers, the problem of insufficient flexibility of existing systems when terminal device servers are switched is solved and high-availability and fault-tolerant application migration is achieved.
Patent Information
- Application Number
- CN201910063260.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-01-24
- Filing Date
- 2019-01-23
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2039-01-23
AI Technical Summary
When an existing system switches from one server to another, the operation flexibility of the existing system is insufficient, and it cannot effectively ensure the high availability and fault tolerance of the application.
By copying the application between the first primary server and the second primary server, taking a snapshot, and copying the snapshot to the secondary server, redundant execution and efficient migration of the application are achieved.
It improves the availability and fault tolerance of the system, ensures that applications continue to run without interruption when servers are switched, and achieves efficient application migration and data exchange between servers.
Smart Images

Figure CN110069317B_ABST
Abstract
Description
Technical Field
[0001] The invention relates to a method for operating a system having a first host server and at least one device, in particular a terminal device, which is designed to exchange data with at least the first host server. The invention also relates to a control device for operating such a system. Background Art
[0002] Systems of the type described above are known. Usually, one or more programs can be executed on a conventional server, the output data of which can be used to operate a terminal device. However, in the case of existing systems, the operational flexibility is not sufficient for many application purposes, especially when the terminal device switches from an existing server to another server with respect to the execution of the one or more programs. Summary of the invention
[0003] It is therefore an object of the present invention to improve a method and a control device of the type mentioned in the introduction in such a way that the disadvantages of the prior art are reduced or avoided.
[0004] According to the invention, in the case of a method of the type mentioned at the outset, this object is achieved by the combination of features of the invention. A method for operating a system is proposed, the system having a first main server, a second main server, at least one first secondary server and at least one device, in particular a terminal device, which is designed to exchange data with at least one of the main servers and / or at least one secondary server, wherein the first main server at least temporarily executes at least one application assigned to the at least one terminal device, wherein the method has the following steps: copying the application from the first main server to the second main server, creating a first snapshot by the first or second main server, and copying the first snapshot to at least the first secondary server.
[0005] Advantageously, duplicating the application enables reliable operation of the application with increased fault tolerance, wherein the application can be run or executed after duplication, for example redundantly, on a first master server and on a second master server. In other embodiments, the application can also be replicated on a plurality of other (master) servers, thereby further increasing reliability.
[0006] By making a first snapshot by the first or second (or other if there are more than two primary servers) primary server and copying the first snapshot to at least the first secondary server, the reliability of the method is advantageously further improved and efficient migration of the application to at least the first secondary server is prepared.
[0007] Currently, a snapshot represents information from one or more storage areas of a server that enables execution of at least one application on the server. Therefore, transferring a snapshot to another server enables the corresponding application to be transferred to the other server.
[0008] Particularly preferably, the first snapshot can be a so-called "stateful snapshot", i.e. a snapshot that characterizes or defines an instantaneous execution state of the application, so that when the snapshot is activated on another server, for example on the first secondary server, the execution of the application can be continued starting from the instantaneous execution state, i.e. the program execution of the application can be continued seamlessly without canceling individual or multiple program steps. The "stateful snapshot" preferably (also) contains the storage content of the register memory of the processor ("CPU registers"), in particular the instruction counter or program counter of the processor, and / or the content of the working memory and / or network status information that characterizes the state of the network communication.
[0009] In some embodiments, the application can receive and process input data and, if necessary, output the obtained output data in this case. The input data can be obtained, for example, within the scope of the data exchange of the device, in particular the terminal device, and the output data can be output to the device, in particular the terminal device, in a comparable manner. In some embodiments, data exchange can be performed between the first main server and / or the second main server and / or at least one secondary server via a wired or preferably wireless data interface. In other embodiments, the application can also be a utility program ("service"). The execution of the application by the server (rather than by the device itself) makes it possible to advantageously move especially computationally intensive tasks away from the device, in particular the terminal device, toward the one or more servers.
[0010] In other embodiments, the method according to the invention can be used in particular in an automated industrial environment, in particular in a production environment, for example to implement aspects of the "Industry 4.0" concept. The method and system according to the invention can be used, for example, to provide a self-organizing factory, which can, for example, autonomously adapt to the current ordering situation and can flexibly support human professionals. This is achieved in particular in that aspects of the embodiment provide sufficient computing resources in the form of primary and / or secondary servers for all devices (terminal devices) of the system and efficient migration of applications between the servers.
[0011] Since in a preferred embodiment the application is executed or run simultaneously on at least the first and second host servers, a relatively high availability is advantageously provided.
[0012] In some embodiments, the execution of an application by a primary or secondary server may include, for example, the following aspects: the application is executed directly on the hardware of the server (English: "bare metal" or "bare metal server"), for example by a computing unit such as a processor. In these embodiments, the application is therefore executed or controlled directly by the hardware of the server and the system software, in particular the operating system of the server, if any.
[0013] In other embodiments, it is provided that the server contains a virtual environment, wherein the application is executed in this virtual environment, for example in the form of a virtual machine or a so-called container. This advantageously enables the advantages of virtualizing the hardware resources of the server to be utilized.
[0014] In other embodiments, the first snapshot can be made by the first master server. In another embodiment, the first snapshot can be made by the second master server. The corresponding other master server can advantageously be used to execute the application for the device without interruption. It is thus possible to use conventional techniques, for example, to make the first snapshot, which generally (idR) cause at least a brief interruption of the execution of the corresponding resources or programs of the server (for example, a virtual machine executing the application). That is, in addition to the increased availability caused by the redundant execution of the application on the first and second master servers in normal operation in a preferred embodiment, for example, in the case where the first snapshot is created by the second master server, the following possibility is advantageously provided: the application continues to run unchanged and in particular without any interruption on the first master server during the creation of the first snapshot by the second master server.
[0015] In other embodiments, the snapshot may have state information characterizing the instantaneous execution state of the application. For example, the snapshot may have the storage content of the register memory of the processor ("CPU register"), in particular the instruction counter or program counter of the processor, and / or the content of the working memory and / or network state information characterizing the state of the network communication (these may, for example, describe the current state of data exchange or data exchange between the execution server and the terminal device). Making a first snapshot and copying the first snapshot thus advantageously enables the migration of the executing application from the first server to at least one other server, for example from the first primary server to at least one secondary server.
[0016] In other embodiments, the step of copying the application from the first master server to the second master server can also advantageously include, for example, making a snapshot by the first master server and copying the snapshot to the second master server. Once the snapshot is available on the second master server, it can be activated there, so that the application represented by the snapshot or its associated operating state is continued on the second master server, thereby achieving the redundancy already described.
[0017] In other embodiments, the above-mentioned step of copying the application from the first master server to the second master server is optional, or can be implemented or already implemented before executing the method according to the invention. In this regard, the following embodiments can also be envisaged, which do not (any more) include the copying step (because this has been done before, for example), but instead separately include the steps of making a first snapshot and copying the first snapshot.
[0018] In other embodiments, the system further comprises a second secondary server, whereby advantageously also a further increased availability is achieved within the scope of the secondary servers. Particularly preferably, in the step of copying the first snapshot, the first snapshot is copied not only to the first secondary server but also to the second secondary server. In other embodiments in which more than two secondary servers are provided, copying the first snapshot may also comprise copying the first snapshot to more than the two secondary servers, for example to all existing secondary servers.
[0019] In other embodiments, the first snapshot is created by the second master server, wherein in particular the creation comprises the following steps: at least temporarily interrupting the execution of the application on the second master server, wherein in particular the execution of the application on the first master server is not interrupted.
[0020] In other embodiments, the method further comprises activating the first snapshot on the first secondary server and / or the second secondary server, whereby the application contained in the snapshot can be continued on the first and / or second secondary server concerned. In other embodiments, the snapshot can also include a plurality of applications or utilities, whereby correspondingly an efficient migration of a plurality of applications or utilities from at least one primary server to at least one secondary server can be achieved.
[0021] In other embodiments, the method further comprises redirecting operating data to be exchanged between at least one of the primary servers and the device, in particular data relating to the execution of an application assigned to the device, wherein the redirection takes place via the first secondary server and / or the second secondary server. This advantageously provides the possibility of coordinating, for example synchronizing, the possibly at least temporarily parallel execution of the application on at least one of the secondary servers and at least one of the primary servers.
[0022] In other advantageous embodiments, it is further provided that the operating data are at least temporarily stored in the first secondary server and / or in the second secondary server, which further simplifies the migration of the application to at least one of the secondary servers.
[0023] In a further advantageous embodiment, at least part of the operating data at least temporarily stored in the first secondary server and / or in the second secondary server is deleted again.
[0024] In a further advantageous embodiment, the data exchange between at least one of the primary servers and the device required for operating the application is analyzed and, based on the analysis, the operating data at least temporarily stored in the first secondary server and / or the second secondary server is deleted again. For example, such operating data in the secondary servers can be deleted again: the processing of the operating data has already been carried out by the primary server or servers and therefore no longer needs to be processed by the secondary servers.
[0025] In a further advantageous embodiment, the execution of the application on at least one of the primary servers is terminated, in particular when a successful migration of the application to the at least one secondary server has taken place.
[0026] Further embodiments relate to a device, in particular a control device, for carrying out the method according to the invention.
[0027] Other embodiments relate to computer program products.
[0028] Further features, application possibilities and advantages of the invention are apparent from the following description of an embodiment of the invention, which is shown in the drawings. All described or shown features, either alone or in any combination, constitute the subject matter of the invention, regardless of their summary and regardless of their description or representation in the description or in the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] In the attached picture:
[0030] Figure 1 A simplified operating scenario of an embodiment of the method according to the invention is schematically shown.
[0031] Figure 2 Schematically shows a simplified flow chart according to one embodiment,
[0032] Figure 3 Schematically illustrates a simplified operating scenario according to another embodiment,
[0033] Figure 4 Schematically shows a simplified flow chart according to another embodiment,
[0034] Figure 5 Schematically shows a simplified block diagram of a server according to one embodiment,
[0035] FIG. 6A to FIG. 6D Different operating states of a system according to a further specific embodiment are respectively schematically illustrated. DETAILED DESCRIPTION
[0036] Figure 1 A simplified operating scenario according to one embodiment of the method according to the invention for operating a system 1000 is schematically shown, wherein the system 1000 has a first host server ( Server)ES 1A , Secondary primary server ES 1B , at least one primary secondary server ( Server)ES 2A and at least one device D, which is, for example, a terminal device. The device D is configured to exchange data with at least one of the master servers ES1, wherein the first master server ES 1A At least temporarily executing at least one application A assigned to the device D. This advantageously enables the device D to not have to perform computationally intensive tasks such as executing the application A itself, but to be transferred, for example, at least temporarily to at least one of the primary servers ES1. 2A Together with the device D, a system 1000 according to one embodiment is formed.
[0037] For example, in Figure 1The system 1000 shown in the figure can be a system for an automated industrial environment, especially a production environment, for example, for implementing aspects of the draft of "Industry 4.0". For example, the device D can be a production device, such as an unmanned transportation system or a machine tool or a robot, etc. For example, the main server ES1 can be a so-called edge server, that is, a relatively efficient server, which is constructed to execute application A for the device D and, if necessary, for a large number of other devices D (not shown for clarity), so that not every device D must be equipped with a correspondingly efficient separate computing resource. In this way, the device D can be kept relatively simple and therefore low-cost in terms of its computing power and / or, if necessary, battery capacity. At the same time, a statistical multiplexing gain is obtained by having the main server ES1 execute multiple applications A for multiple devices D.
[0038] The system 1000 also has at least one secondary server ES 2A In some embodiments, the secondary server may be configured substantially similarly to the primary server ES1. In particular, at least one secondary server ES 2A It may also be designed to execute one or more application programs A for one or more devices D of system 1000 and accordingly have the computing resources required for this, such as processors and / or memory units.
[0039] Figure 5 By way of example, a simplified block diagram of a server ES according to one embodiment is schematically shown. The server ES has a computing unit 2, which has, for example, a processor, in particular a microprocessor and / or a microcontroller and / or a digital signal processor and / or a programmable logic module (in particular an FPGA, Field Programmable Gate Array) and / or an application-specific integrated circuit (ASIC) and / or a combination thereof. The server ES also has a storage unit 4, which has a volatile memory 4a, in particular a working memory (RAM), and / or a non-volatile memory 4b, in particular a flash EEPROM. Preferably, the server ES also has an operating system BS, which enables the execution of one or more application programs A'. For example, in Figure 5 The server ES depicted in 1A ,ES 1B ,ES 2A Some or all of them may essentially have Figure 5 The configuration depicted in ES.
[0040] Optionally, according to Figure 1The system 1000 has a control device 1100, which has a computing unit 1102 and a storage unit 1104. Figure 1 The calculation unit 1102 can be used according to Figure 5 The computing unit 2 is constructed in a comparable manner, and the corresponding contents are about Figure 5 The storage unit 4 is suitable for the storage unit 1104. The control device 1100 is preferably designed to execute the method for operating the system 1000 described below. For this purpose, the control device 1100 can have a corresponding computer program product or computer program PRG, which is stored, for example, in the storage unit 1104. In other embodiments, it is also conceivable that the functionality of the control device 1100 is implemented in the form of a distributed (sub) system, in which parts of the corresponding functionality are arranged on individual servers ES 1A ,ES 1B ,ES 2A and / or on device D. The following statements apply accordingly to this embodiment.
[0041] In optional step 100 of the method according to the invention (see Figure 2 ), and then change application A( Figure 1 ) From the first master server ES 1A Replicate to the secondary primary server ES 1B This advantageously improves the availability or fault tolerance when executing application A in system 1000. Figure 2 ) preferably has the following effect in particular: the application A can be redundantly executed on the first master server ES 1A On the second primary server ES 1B It is currently assumed that application A is redundantly executed on two primary servers ES1.
[0042] In step 110 ( Figure 2 ), a first snapshot is made by the first or second primary server, and in step 120 the first snapshot is copied to at least the first secondary server ES 2A This is Figure 1 This is symbolically indicated by an arrow K. By making 110 a first snapshot and copying the first snapshot by the first or second primary server, the reliability of the method is advantageously further improved, and the application A is prepared to the at least first secondary server ES. 2A Efficient migration.
[0043] In some embodiments, the application A can receive and process input data and, if necessary, output the obtained output data. The input data can be obtained from the device D, for example, within the scope of the data exchange, and the output data can be output to the device D in a comparable manner, see arrows a1, a2. In some embodiments, in particular when using packet-based data transmission, the communication between the device D and the first master server ES can be carried out via a wired or preferably wireless data interface. 1A (arrow a1) and / or the second master server ES 2A (arrow a2) and / or at least one secondary server ES 2A (arrow a3) to exchange data.
[0044] In other embodiments, application A may also be a utility ("service"). Executing application A by the one or more servers advantageously enables the displacement of computationally intensive tasks away from device D, in particular a terminal device, towards the one or more processors.
[0045] Since in the preferred embodiment the application A is executed or run simultaneously on at least the first and second main servers ES1 , a relatively high availability is advantageously provided.
[0046] In some embodiments, the execution of the application A by the primary or secondary server may include, for example, the following aspects: the application A is executed directly on the hardware of the server (English: "bare metal" or "bare metal server"), for example by a computing unit such as a processor. In these embodiments, the application is therefore directly executed by the hardware of the server and, if applicable, by the system software, in particular the operating system BS of the server ES. Figure 5 ) is executed or controlled. In other embodiments, it is provided that the server contains a virtual environment, in which the application A is executed, for example in the form of a virtual machine or a so-called container. This advantageously enables the advantages of virtualization to be utilized. In these embodiments, for example, the operating system BS can be virtualized in a manner known per se.
[0047] In some implementations, the first host server ES 1A ( Figure 1 ) to take the first snapshot. In another embodiment, the second master server ES 1B The respective other master server is advantageously available during this time to execute the application A for the device D without interruption.
[0048] In other embodiments, the first snapshot may have state information representing the instantaneous execution state of application A. For example, the first snapshot may have the register memory ( Figure 5 ) (“CPU registers”), in particular the memory contents of an instruction counter or a program counter (PC, program counter) of the processor, and / or the contents of the working memory 4a and / or network status information (e.g., network stack) characterizing the state of network communication. Making a first snapshot and copying the first snapshot thus advantageously enable the migration of the executing application A from the first server to at least one other server, for example from the first host server ES 1A Migrate to at least one secondary ES server 2A .
[0049] In other embodiments, application A ( Figure 1 ) From the first primary server ES 1A Copy 100( Figure 2 ) to the second primary server ES 1B The step of, for example, advantageously may also include the first main server ES 1A Create a snapshot and copy it to the secondary primary server ES 1B , see Figure 1 Once the snapshot SN is in the secondary primary server ES 1B If available on the second master server ES, the snapshot can be activated there, so that the application A or its associated operating state represented by the snapshot is available on the second master server ES 1B The above was continued.
[0050] In other embodiments, the above-mentioned step of copying the application A from the first master server to the second master server is optional, as already mentioned, or can be implemented or already implemented before the execution of the method according to the invention. In this regard, embodiments are also conceivable which do not (any more) comprise the step of copying 100 (since this has already been done before, for example), but comprise making 110 ( Figure 2 ) The step of taking a first snapshot and copying 120 the first snapshot.
[0051] In other embodiments (see Figure 3 ), the system 1000a also has a second secondary server ES 2B , thereby advantageously also achieving further increased availability within the scope of the secondary server ES2. Particularly preferably, in step 120 (copying the first snapshot) Figure 2 ), the first snapshot is not only copied to the first secondary server ES 2A And copy it to the second secondary server ES2B In other implementations where more than two secondary servers ES2 are provided, copying the first snapshot may also include copying the first snapshot to more than the two secondary servers ES2.
[0052] In other embodiments, the first snapshot is stored by the second primary server ES 1B Production, wherein in particular the production has the following steps: at least temporarily interrupting the application A on the second main server ES 1B Execution on the first host server ES 1A The execution on is not interrupted.
[0053] In other embodiments, the method for operating the system 1000, 1000a further includes: 2A ( Figure 3 ) and / or on the second secondary server ES 2B The first snapshot is activated on the second secondary server, whereby the application A contained in the first snapshot can continue to be executed on the first and / or second secondary server involved. In some embodiments, the two secondary servers ES2 are preferably also operated redundantly in this sense, so that the same application A is executed simultaneously on the two secondary servers ES2.
[0054] In other embodiments, the snapshot may also include multiple applications or utilities, thereby enabling efficient migration of the multiple applications or utilities from at least one primary server to at least one secondary server.
[0055] The following reference Figure 4 The flowchart of the method according to the invention describes another embodiment of the method. The individual operating states obtained in the course of the method are supplemented by Fig. 6A , 6B , 6C, and 6D are explained.
[0056] In step 100, on the first primary server ES 1A ( Fig. 6A ) is copied to the second master server ES 1B , so that the application A can be redundantly executed by two main servers ES1. In a preferred embodiment, the device D to which the application A is assigned is connected to the two main servers ES1 via an infrastructure for data exchange, see Fig. 6AIn the preferred embodiment, for the data exchange with the two redundant master servers ES1, a parallel redundancy protocol and / or a software defined network switch (software defined network, SDN, not shown) can be used. For the sake of clarity, this Fig. 6A It is schematically represented symbolically by the network N1.
[0057] In a preferred embodiment, the first host server ES 1A and the second primary server ES 1B The input data received from the device D are processed independently of one another and responses are given thereto, preferably in turn outputting corresponding output data independently of one another to the device D. In some embodiments, redundant responses or output data resulting in this case can be filtered out or discarded by the device D itself. In other embodiments, this can be implemented by another unit (not shown), which is also in data connection with the main server ES1 and the device D.
[0058] In step 110 ( Figure 4 ), the first snapshot is taken by the second master server ES 1B Production, while application A is run by the first primary server ES 1A Continue to execute. In step 120 ( Figure 4 ), the first snapshot SN1( Figure 6B )Copy to the first secondary server ES 2A And the second secondary server ES 2B In some embodiments, this can in turn be accomplished by the network N1 (see Fig. 6A ), in another embodiment, a separate network N2 may be used for this purpose, see Figure 6B , the network N2 connects the primary server ES1 with the secondary server ES2.
[0059] In other embodiments, in order to make 110 ( Figure 4 )First snapshot SN1( Figure 6B ) and for copying 120( Figure 4 ), at least one mechanism known per se may be used.
[0060] For example, in some embodiments, a mechanism based on the "pre-copy migration" principle can be used, which describes a so-called "pre-copy" migration of the execution state of the computing unit executing the application A and the storage state of the corresponding memory of the associated server. The scheme consists of a so-called "push phase" and a so-called "stop-and-copy" (stop-and-copy) phase. In the "push phase", the source host, i.e., the server according to the example Figure 6B The second primary server ES 1B The execution status and corresponding storage status of application A are collected and transmitted to the destination host, ie, for example, the first and second secondary servers ES 2A ,ES 2B Then, the respective destination host ES 2A ,ES 2B Start rebuilding the execution state and storage state. The details of this scheme are described in the following publications:
[0061] Theimer, MM, Lantz, KA, and Cheriton, DRPreemptable remote executionfacilities for the v-system.SIGOPS Oper.Syst.Rev.19, 5(Dec.1985), p.2-12. http: / / doi,acm.org / 10.1145 / 323627.323629;
[0062] For example, in some embodiments, a mechanism based on the principle of "post-copy migration" may also be used. Details of this are described in the following publication: Zayas, E. Attacking the process migration bottleneck. SIGOPS Oper. Syst. Rev. 21, 5 (Nov, 1987), p. 13-24, http: / / / doi.acm.org / 10.1145 / 37499.37503 .
[0063] For example, in some embodiments, a mechanism based on the “hybrid migration” principle may also be used, which is basically a combination of the two above-mentioned mechanisms.
[0064] In other embodiments, the method further comprises redirecting ( Figure 4Step 140) operating data to be exchanged between at least one of the master servers and the device, in particular data pertaining to the execution of the application, wherein the first secondary server ES 2A and / or a second secondary server ES 2B To perform the redirection 140, see Figure 6C Arrows a11, a11', a22, a22' are provided. This advantageously provides the possibility of coordinating, for example synchronizing, the possibly at least temporary parallel operation of the application A on at least one of the secondary servers ES2 and at least one of the primary servers ES1. Particularly preferably, the data exchange takes place by means of data packets.
[0065] In a further advantageous embodiment, it is further provided that on the first secondary server ES 2A and / or a second secondary server ES 2B Temporarily store at least 150 ( Figure 4 ) operation data, see also Figure 6C The reference numeral "buffer" in FIG. 1 further simplifies the migration of application A to at least one of the secondary servers ES2. Figure 6C In the operating state depicted in FIG, device D is executed by the first main server ES as usual in terms of application A. 1A So, for example, as always the first master server ES 1A Receive input data from device D and / or output output data to device D, see arrows a11, a11'. Alternatively or additionally, in another embodiment, in particular when the aforementioned copying process of the first snapshot SN1 is completed, device D can also be controlled by the second primary server ES1 in terms of executing application A. 1B operate.
[0066] In a further advantageous embodiment, the data exchange between at least one of the main servers ES1 and the device D required for running the application A is analyzed, see Figure 4 Step 160, and according to the analysis 160, the first secondary server ES 2A and / or a second secondary server ES 2B Deletion of operating data stored at least temporarily in Figure 4Step 170. In a preferred embodiment, the analysis 160 can advantageously include a comparison of output data, in particular all output data, which are output by the source server ES1 and the destination server ES2 of the above-mentioned migration process of the application A in response to the corresponding input data input by the device D. In a preferred embodiment, if it can be concluded from the above-mentioned comparison that the input data corresponding to the at least temporarily stored operating data have been successfully processed by the one or more relevant servers, the corresponding temporarily stored operating data can be deleted.
[0067] In some embodiments, the above steps 160, 170 are based on the assumption that the one or more relevant servers can process the input data faster than supplying the input data from device D to the one or more relevant servers for processing by application A. Therefore, it is expected that the input data is at least temporarily stored in an intermediate memory "buffer" ( Figure 6C ) is reduced to zero, thereby achieving a state in the secondary server implementation ES2 that corresponds to the actual instantaneous execution state of the application A on the one or more primary servers ES1. Thus, the migration of the application A from the primary server ES1 to the secondary server ES2 for the device D is successfully completed. It is particularly advantageous that the execution of the application A is not interrupted at all when the above-mentioned embodiment is applied.
[0068] In other preferred embodiments, an overclocking operation may also be performed at least temporarily in order to execute the application program A in the secondary server ES2. This means a faster execution of application A compared to the reference clock frequency of the relevant computing unit set for normal operation. In other preferred embodiments, this can be achieved particularly easily if application A is executed in a virtual environment (eg, in a virtual machine or container).
[0069] In other advantageous embodiments, in particular when the application A is connected to at least one secondary server ES 2A ,ES 2B When a successful migration has occurred, the execution of application A on at least one of the primary servers ES1 is terminated. Fig.6D It is schematically shown in FIG.
[0070] In other preferred embodiments, the participating servers ES1, ES2 (and if necessary, the device D) can advantageously be synchronized via a known synchronization protocol or an accurate synchronization protocol. The details of this are described exemplarily in the following publications:
[0071] RLScheiterer, C.Na, D.Obradovic and G.Steindl, “SynchronizationPerformance of the Precision Time Protocol in Industrial Automation Networks,” in IEEE Transactions on Instrumentation and Measurement, vol.58, no.6, pp.1849-1857, June 2009.
[0072] The principles of the present invention advantageously enable the device D to be relieved from the execution of computationally intensive tasks, such as application A; these can advantageously be efficiently executed by at least one of the primary servers ES1 and / or at least one of the secondary servers ES2. This saves computing time resources within the scope of the device D and reduces the power consumption of the device D.
[0073] According to the principle of the invention, it is also possible to efficiently migrate, i.e. transfer, in particular also an application A currently being executed (or a plurality of applications currently being executed) from at least one of the primary servers ES1 to at least one of the secondary servers ES2. In this case, it is particularly advantageous that no interruptions are required during the execution of the application A, as may occur in conventional systems due to a "stop and copy" phase ("zero downtime"). Therefore, according to the principle of the invention, it is possible to implement a so-called "live migration with zero downtime" of one or more applications A between servers, wherein no operational interruptions are required for the device D or a plurality of devices D with respect to the execution of the application A. More precisely, the migration is carried out completely transparently for the one or more devices D.
[0074] The possibility for redundant execution on at least two primary servers ES1 or at least two secondary servers ES2 further increases the availability and fault tolerance of the system 1000 , 1000 a .
[0075] In other specific embodiments, it can be provided that a plurality of applications A are at least temporarily executed on the primary server ES1 and are migrated as required to at least one of the secondary servers ES2 using the above-described method approach.
[0076] According to the described embodiment, the systems 1000, 1000a enable, for example, the provision of a network, in particular a manufacturing network, comprising a main server ES1, a secondary server ES2 and at least one device D, in particular a terminal device or a production device, wherein the computing tasks of the device D can be efficiently relocated to one or more of the servers ES1, ES2, or can be migrated between these servers, and in particular the computing tasks can be relocated or migrated without interruption during the migration between the servers and transparently for the device D.
[0077] In other preferred embodiments, the different servers ES1, ES2 can also be arranged spatially distributed in structures, such as buildings, in particular production halls, etc., and the device D can be constructed in a mobile manner. In order to obtain particularly short latency times for data communication between the device D and at least some of the servers ES1, ES2, the application A required from the device D can advantageously be dynamically, i.e. during the operation of the device D and in particular also during the execution of the respective application A, migrated from at least one of the primary servers ES1 to at least one of the secondary servers ES2, whereby in the case of a common type of communication network that enables data exchange between the device D and the server, a relatively short distance can be obtained for each possible location of the device D from at least one server, which enables particularly short latency times for data exchange between the device D and at least one server.
[0078] Another significant advantage of the embodiment is that calculations and other forms of data processing are performed by the servers ES1, ES2 for a large number of devices D within the scope of the application A, thereby also enabling efficient synchronization or coordination of multiple devices D with one another. For example, data can also be exchanged between different devices D within the scope of the execution of the respective application A, which in the preferred embodiment is mainly performed on the servers ES1, ES2. In other embodiments, in particular, this allows for a more efficient orchestration of devices D, which are designed, for example, as robots or autonomous transport systems or the like.
[0079] Other aspects of the embodiment also make it possible to implement the principle of Multi-access-Edge-Computing (MEC) when using primary and / or secondary servers ES1, ES2 as edge servers in the sense of the MEC draft. In a particularly preferred embodiment, it can also be provided that one or more servers ES1, ES2 are respectively assigned to a device D, which is preferably constructed in a mobile manner, for executing one or more of its applications A, and the servers are spatially arranged relatively close to the current position of the device D. In this case, the instantaneous assignment of a server to a specific device D can be changed dynamically, that is, during the runtime of the relevant application A. By advantageously enabling a frictionless switching of a device D from one or more source servers ES1 to one or more further target servers ES2 according to the principle of the embodiment, see, for example, according to Figure 2 or according to Figure 4 process.
Claims
1. A method for operating a system (1000) having a first host server (ES 1A ), the second primary server (ES 1B ), at least one primary secondary server (ES 2A ) and at least one terminal device (D), which is configured to communicate with the main server (ES 1A , E.S. 1B ) and / or at least one of the secondary servers (ES 2A , E.S. 2B ) exchanges data (a1, a2, a3), wherein the first master server (ES 1A ) at least temporarily executes at least one application (A) assigned to the at least one terminal device, wherein the application (A) is a computationally intensive task that can be executed by the at least one terminal device itself and is at least temporarily outsourced to the first main server (ES 1A ), wherein the method comprises the following steps: - Removing the application (A) in execution from the first host server (ES 1A ) is copied (100) to the second master server (ES 1B ), so that the application (A) is running on the first main server (ES 1A ) and the second main server (ES 1B ) is executed redundantly, - by the first or second master server (ES 1A , E.S. 1B ) creates (110) a first snapshot, - copying (120) the first snapshot to at least the first secondary server (ES 2A ).
2. The method according to claim 1, wherein the system (1000) further comprises a second secondary server (ES 2B ), and wherein in the copying (120) step, the first snapshot is copied to the first secondary server (ES 2A ) and copied to the second secondary server (ES 2B ).
3. The method according to claim 2, wherein the second main server (ES 1B ) creates (110) the first snapshot.
4. The method according to claim 3, wherein the making (110) comprises the following steps: At least temporarily interrupting the application (A) on the second primary server (ES 1B ), wherein the application (A) is executed on the first host server (ES 1A ) is not interrupted.
5. The method according to any one of claims 2 to 4, further comprising: 2A ) and / or on the second secondary server (ES 2B ) activates (130) the first snapshot.
6. The method according to claim 5 further comprises: 2A ) and / or the second secondary server (ES 2B ) redirects (140) to the primary server (ES 1A , E.S. 1B ) and operating data to be exchanged between at least one of the terminal devices (D).
7. The method according to claim 6, wherein the operating data are data pertaining to the execution of the application (A).
8. The method according to claim 6, further comprising: On the first secondary server (ES 2A ) and / or the second secondary server (ES 2B ) at least temporarily stores (150) the operating data.
9. The method according to claim 8, wherein at the first secondary server (ES 2A ) and / or the second secondary server (ES 2B ) is deleted again.
10. The method according to any one of claims 8 to 9, wherein the analysis (160) is performed on the master server (ES 1A , E.S. 1B ) and the terminal device (D) for running the application (A), and wherein the data exchanged between the first secondary server (ES) and the terminal device (D) is required for running the application (A), and ...) and the data exchanged between the first secondary server (ES) and the terminal device (D) is required for 2A ) and / or the second secondary server (ES 2B ) at least temporarily stored in the operating data.
11. The method according to any one of claims 1 to 4, wherein the application (A) is terminated on the main server (ES 1A , E.S. 1B ) is executed on at least one of ).
12. A control device (1100) for a system (1000; 1000a), the system having a first main server (ES 1A ), the second primary server (ES 1B ), at least one primary secondary server (ES 2A ) and at least one terminal device (D), which is configured to communicate with the main server (ES 1A , E.S. 1B ) and / or at least one of the secondary servers (ES 2A , E.S. 2B ) exchanges data, wherein the first master server (ES 1A ) is configured to at least temporarily execute at least one application (A) assigned to the at least one terminal device, wherein the application (A) is a computationally intensive task that can be executed by the at least one terminal device itself and is at least temporarily outsourced to the first main server (ES 1A ), wherein the control device (1100) is configured to execute the method according to any one of claims 1 to 11.
13. A computer program product for operating a system (1000; 1000a) having a first host server (ES 1A ), the second primary server (ES 1B ), at least one primary secondary server (ES 2A ) and at least one terminal device (D), which is configured to communicate with the main server (ES 1A , E.S. 1B ) and / or at least one of the secondary servers (ES 2A , E.S. 2B ) exchanges data, wherein the first master server (ES 1A ) at least temporarily executes at least one application (A) assigned to the at least one terminal device, wherein the application (A) is a computationally intensive task that can be executed by the at least one terminal device itself and is at least temporarily outsourced to the first main server (ES 1A ), wherein the computer program product is stored on a computer readable medium and has instructions executable to perform the following steps: - Removing the application (A) in execution from the first host server (ES 1A ) is copied (100) to the second master server (ES 1B ), so that the application (A) is running on the first main server (ES 1A ) and the second main server (ES 1B ) is executed redundantly, - by the first or second master server (ES 1A , E.S. 1B ) creates (110) a first snapshot, - copying (120) the first snapshot to at least the first secondary server (ES 2A ).
Citation Information
Patent Citations
System for live -migration and automated recovery of applications in a distributed system
CN104115469A