WO2021115911A1 - Verfahren zur zeitlich synchronisierten zustands- und/oder datenerfassung in auf räumlich voneinander getrennten computersystemen ausgeführten, zu einem softwareprozess gehörigen teil-softwareprozessen - Google Patents

Verfahren zur zeitlich synchronisierten zustands- und/oder datenerfassung in auf räumlich voneinander getrennten computersystemen ausgeführten, zu einem softwareprozess gehörigen teil-softwareprozessen Download PDF

Info

Publication number
WO2021115911A1
WO2021115911A1 PCT/EP2020/084418 EP2020084418W WO2021115911A1 WO 2021115911 A1 WO2021115911 A1 WO 2021115911A1 EP 2020084418 W EP2020084418 W EP 2020084418W WO 2021115911 A1 WO2021115911 A1 WO 2021115911A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer system
clock
software
computer
executed
Prior art date
Application number
PCT/EP2020/084418
Other languages
English (en)
French (fr)
Inventor
Martin Stamm
Original Assignee
Continental Automotive Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive Gmbh filed Critical Continental Automotive Gmbh
Publication of WO2021115911A1 publication Critical patent/WO2021115911A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Definitions

  • the present invention relates to a method for time-synchronized status and / or data acquisition in sub-software processes that are part of a software process and are executed on spatially separated computer systems.
  • Debugging computer software can be done, for example, by analyzing information about the execution of a program at specific times. For this purpose, records of function calls, system states, etc. are made during the program sequence and saved with time stamps. The recording is also known as logging, and the recorded data form a log or trace log. Using the time stamp of the data in a trace log, the time sequence can be traced. The process of tracking the program flow is also known as tracing.
  • the computers When distributing the execution of software-controlled functions and processes to several communicatively connected or networked computers, the computers must be synchronized with one another in terms of time, so that those in each Computer in each case locally stored data of the trace logs can be brought into a correct chronological order for the analysis.
  • Ethernet A widespread type of networking of computers for communication with one another is known under the term “Ethernet” and is standardized in the IEEE 802.3 standard of the IEEE 802 family of standards.
  • Ethernet networks different network devices communicate with each other in a packet-oriented manner, i.e. a transmitter sends data packets to a receiver.
  • multiple transmitters can use the same communication link.
  • When a certain transmitter can transmit is regulated by certain access protocols, which ensure that not a single transmitter transmits permanently or that an ongoing broadcast is not disturbed.
  • time synchronization can take place, for example, according to the IEEE 802.1 AS standard, in which a master-slave clock hierarchy is set up based on a so-called "best clock" in the network, also known as grandmaster or grandmaster clock.
  • the grandmaster provides the time base for the network to which all other network devices in the network synchronize.
  • the Grandmaster is determined using the so-called Best Master Clock Algorithm (BMCA) and announced within the network.
  • BMCA Best Master Clock Algorithm
  • IEEE 802.1 AS-capable network devices send announce messages with information about their internal clock to directly connected network devices.
  • the information about the internal clocks provides information on the accuracy of the respective clock, its reference or time reference and other properties by means of which the best clock in the network can be determined.
  • a recipient of such an announcement message compares the received information with the characteristics of his own internal clock and possibly messages already received from another port with information on clocks of other network devices and accepts a clock in another network device if it has better clock parameters. After a short time, the best clock in the network is determined, which then becomes the grandmaster in the network. Based on that Grandmasters distribute time synchronization messages over the network.
  • the IEEE 802.1 AS standard In addition to determining the best clock in a network and the cyclical exchange of time information, the IEEE 802.1 AS standard also defines methods for measuring the line delay between neighboring nodes, also known as peer delay.
  • a network device that receives a message for time synchronization does not simply forward it, but corrects the time information by the previously determined runtime on the connection via which it receives messages for time synchronization from a directly connected network device, as well as by the internal processing time before it Forwards the time synchronization message with the corrected time information.
  • the job of the peer delay mechanism is to measure the delay between two connected ports. As mentioned above, the measured transit time is then used to correct the time information of the nodes and to include this time in the calculation.
  • Delay_Request messages of the peer delay mechanism are sent cyclically by both communication partners independently of one another. If the respective node is IEEE 802.1AS capable, it will respond with a Delay_Response and a Pdelay_Resp_Follow_Up message. These messages are provided with a hardware time stamp upon receipt and forwarded to the local application for time synchronization. This allows the latency and the time difference to the neighboring port to be determined.
  • a central network device executes partial software processes of a large number of other network devices that are not synchronized or synchronizable with one another, or whose synchronization would require a disproportionate effort .
  • a central network device can, for example, be formed by computer systems combined in what is known as a cloud, or it can comprise one or more so-called edge computers.
  • cloud computing a large number of computer resources networked with one another via high-speed networks are combined, and parts of them are made available via a central access point if required. The user cannot see where a computer resource is actually located, and the computer resources used by a user can be different from use to use, even if the user repeatedly uses the same content. As a rule, computer resources provided in the context of cloud computing are used by a large number of users at the same time.
  • Edge computing relocates computer applications, data and services from central data centers to computer systems located on the outer edges of a network. This shortens the connection between network devices that use these central applications, data and services and the computer systems that provide them.
  • a shorter connection can be characterized by a smaller number of forwarding data via routers, switches and hubs, but also by a shorter geographical distance.
  • Edge computers can be used to advantage wherever certain data are processed, which as a rule have local reference and, above all, have to be sent to network devices connected to an access point of the edge computer in the shortest possible time.
  • edge computers are also known as Road Side Units (RSU), which among other things enable data transmission between vehicles that do not communicate directly with one another and which the vehicles do not, e.g. Make data available from the local context.
  • RSU Road Side Units
  • FIG. 1 shows a schematic example of the change in the possible deviation of time information in network devices that are synchronized in accordance with IEEE 802.1AS.
  • network device 10 provides the grandmaster clock and forwards the messages for time synchronization to network device 11.
  • Network device 11 corrects the time information before it sends a corresponding message for time synchronization to network device 12. In the correction, network device 11 uses the previously determined runtime on the connection with network device 10 as well as information about an internal delay, which among other things depends on the implementation of the time synchronization and hardware properties of the network device.
  • a time diagram is shown which shows the time transmitted by network device 10 and the possible deviation after each further transmission.
  • the originally single line which represents the point in time of the message for time synchronization sent by network device 10
  • further lines indicate that there may be a certain deviation during the correction.
  • Network device 11 forwards the time information with a certain first possible deviation to network device 12.
  • Network device 12 in turn corrects the received time information, again a certain deviation in the correction cannot be ruled out, and forwards this time information in a message for time synchronization to network device 13.
  • the further increased possible deviation of the time information from the time actually present in the grandmaster clock is due to the broader possible deviation range compared to the time diagram assigned to the network device 12 shown.
  • the direction in which the messages for time synchronization are forwarded is indicated by the arrows between the network devices.
  • a shorter geographical distance can be of advantage, especially with time-critical data, because, despite the propagation of the signals on the connection lines at almost the speed of light, delays occur that are not only measurable but can also have an impact on processes that result in data that fits together as precisely as possible in terms of time are instructed.
  • Such processes can include, for example, the processing of sensor data from a multiplicity of identical or different sensors which are collected at a point in time for recording and representing an environment or a complex logical or physical process. For example, a signal traveling at the speed of light from a transmitter would take 667 ns to get to a receiver 200 m away, and 6.67 ps to get to a 2 km distance.
  • a sufficiently precise synchronization of the clocks or timers in different interconnected edge computers or computer resources of a cloud is not always given, among other things because of a possibly not insignificant number of forwarding of the time synchronization messages.
  • timers for synchronizing a local network can be available here, but these can be synchronized to any time base or run freely.
  • the local timers of different systems can also have different drifts or offsets from one another.
  • the only temporary availability of an external clock for time synchronization of the local computer system can lead to gaps in the time history of stored data or states, or to duplicate entries that cannot be resolved or are difficult to resolve.
  • External synchronization can also be problematic if partial software processes are relocated between different cloud or edge network devices. This case can occur, for example, if a software process required for operating a vehicle is divided into a first partial software process executed in the vehicle and an associated second partial software process executed in a cloud or edge network device.
  • the vehicle and the cloud or edge network device can use a wireless communication link be connected.
  • the vehicle is mobile for its intended purpose and can move away from an edge network device or network access point and thereby approach another edge network device or network access point. This change can make it necessary to relocate the sub-process executed by the cloud or edge network device to another edge network device or another part of the cloud that offers a shorter connection between the vehicle and a process instance that provides the Executing partial software process.
  • a cloud or edge network device provided the grandmaster clock for the vehicle, either all edge or cloud network devices would have to be synchronized with each other with high accuracy, or the vehicle would be its internal network every time it switched between two edge network devices or network access points need to synchronize to a new grandmaster clock. Since synchronization to a grandmaster clock in a network does not take place instantaneously, there would be no safe and precise time synchronization in the vehicle during a transition period, which can have unpredictable consequences for the interaction of the different vehicle systems.
  • the grandmaster clock is provided by a network device arranged in the vehicle, because this is the only way to ensure that internally synchronized time information is reliably available at all times. This is particularly important for highly automated or autonomous driving, in which data from many sensors and control units for processing must be available to each other with high precision in terms of time.
  • a computer system can denote a real or virtual machine which has at least one processor or processor instance and allocated memory for executing computer program instructions, and which can be connected via at least one interface for communication with one or more other computer systems. The execution of the
  • Computer program instructions on the at least one processor or the at least one processor instance can execute a sub-software process belonging to an overall software process.
  • the term network device is also used in this description.
  • a method according to the invention for status and / or data acquisition according to a first aspect is carried out in parts on a first and on a second computer system.
  • the second computer system is provided and set up to execute a multiplicity of second partial software processes belonging to corresponding first partial software processes of a multiplicity of first computer systems in respective process instances.
  • the method according to the invention for time-synchronized status and / or data acquisition in first and second partial software processes that are executed on a first and a second, spatially separate computer system and belong to a software process includes first of all determining a grandmaster clock in the first computer system, and that Providing a virtual clock in the process instance assigned to the first computer system and provided by the second computer system.
  • the grandmaster clock in the first computer system can, for example, include the execution of a best mater clock algorithm in accordance with the IEEE 802.1 AS standard.
  • the virtual clock of the process instance is synchronized with the grandmaster clock of the assigned first computer system.
  • the execution of the first and second Computer systems or process entities involved in sub-software processes, states and / or data with associated time stamps are each stored locally on the computer system executing the sub-software process.
  • the acquisition of states and / or data also includes, in particular, the acquisition of data for the detection of errors in software processes, so-called trace data.
  • the provision of the virtual clock in the process entity assigned to the first computer system includes receiving time information from a clock of the second computer system, and correcting the time information from the clock of the second computer system by means of an offset.
  • the corrected time information is made available within the process instance.
  • the virtual clock of the process entity is operated in this way between the cyclically received synchronization messages with the accuracy of the clock of the second computer system.
  • providing the virtual clock in the process entity assigned to the first computer system includes calculating a drift factor between the clock of the second computer system and the grandmaster clock of the first computer system. In this way, a more precise synchronization can also be ensured between two synchronization messages of the grandmaster clock of the first computer system.
  • the offset can be checked and adjusted.
  • the drift factor can be recalculated or adjusted in order to compensate for slower changes in the grandmaster clock of the first computer system.
  • a second aspect of the method according to the invention relates to a relocation of the second partial software process from a previous process instance of the second computer system assigned to the first computer system to a new process instance of a third computer system.
  • the method comprises setting up the corresponding new process instance on the third computer system, which is assigned to the first computer system.
  • a virtual clock is then provided in the new process instance, which is synchronized with the virtual clock of the previous process instance or the grandmaster clock of the first computer system.
  • the second sub-software process is relocated from the previous process instance to the new process instance and its execution is continued there.
  • the provision of the virtual clock in the new process entity assigned to the first computer system can correspondingly include receiving time information of a clock of the third computer system and correcting the time information of the clock of the third computer system by means of an offset.
  • the corrected time information is made available within the new process instance.
  • the offset can be determined, for example, from information provided by the second computer system on the virtual clock of the previous process entity. In this way, the virtual clock of the new process instance is set to the clock of the first computer system even before the partial software process is relocated, and it runs with the accuracy of the clock of the third computer system.
  • providing the virtual clock in the new process entity assigned to the first computer system includes calculating a drift factor between the clock of the third computer system and the grandmaster clock of the first computer system.
  • the initial drift factor can be determined, for example, from information transmitted by the second computer system, so that even before the execution is shifted of the sub-software process on the third computer system, a drift factor is already available to improve the accuracy of the virtual clock of the process instance.
  • a first computer system set up to carry out at least parts of the method described above comprises at least one processor and associated volatile and non-volatile memory, a timer and an interface for data communication with a second computer system.
  • Computer program instructions are stored in the non-volatile memory which, when executed by the at least one processor, set up the first computer system to execute a first partial software process which, like a second partial software process executed by a second computer system, is part of an overall software process is, and during the execution of which states and / or data provided with a time stamp are stored locally in the first computer system.
  • the computer program instructions also set up the first computer system to send messages for time synchronization to a second computer system via the interface for data communication.
  • the first computer system can be a network device that is communicatively connected to other network devices via a local NW and, for example, can be arranged in a vehicle.
  • a second computer system set up to carry out at least parts of the method described above comprises at least one processor and associated volatile and non-volatile memory, a timer and an interface for data communication with a first computer system.
  • Computer program instructions are stored in the non-volatile memory which, when executed by the at least one processor, set up the second third computer system to execute a second partial software process which, like a first partial software process executed by a first computer system, is part of an overall Software process is, and during its execution, states and / or data provided with a time stamp are stored locally in the second computer system.
  • the Computer program instructions also set up the second computer system to receive messages for time synchronization from a first computer system via the data communication interface, to synchronize a virtual clock of a process instance executing the second sub-software process with a grandmaster clock of the first computer system, and to synchronize the time information to use the synchronized virtual clock of the process entity for the time stamp of the states and / or data stored for the second sub-software process executed by the process entity.
  • the second computer system can be a network device communicatively connected to other network devices via a local or wide area network and, for example, be part of a cloud infrastructure or a network of edge computers.
  • the other network devices can, for example, comprise further second computer systems.
  • the second computer system can have one or more further interfaces for data communication.
  • An interface for data communication of the first or the second computer system can comprise one or more physical interfaces, each of which can provide a plurality of virtual interfaces or ports, so that a computer system can simultaneously have a plurality of
  • the second computer system can also have an interface for data communication with further second computer systems, which in the present description can also be referred to as third computer systems for reasons of clarity.
  • the computer program instructions stored in the non-volatile memory can set up the second computer system accordingly to create a virtual clock of the new process instance with the virtual clock of the new process instance provided by a third computer system when the execution of the second sub-software process is imminent to synchronize previous process instance before the execution of the second sub-software process is actually relocated.
  • the method described above enables the simple, direct synchronization of time stamps in trace data for troubleshooting and analysis in software that is executed distributed over several computer systems on the basis of existing synchronization protocols and mechanisms. By focusing on the states of the software processes, the processes in interfaces for data communication between the systems can be largely ignored - there is a quasi abstraction of communication and data interfaces.
  • FIG. 1 shows a schematic example of the change in the possible deviation of time information in network devices that are synchronized in accordance with IEEE 802.1 AS,
  • Fig. 2 is a schematic block diagram of a first and a second
  • FIG. 3 shows a schematic block diagram of a first, second and third computer system which implement the method according to the invention according to the second aspect, at a first point in time
  • Figure 4 is a schematic block diagram of the first, second and third
  • FIG. 6 shows a schematic flow diagram of the second aspect of the method according to the invention.
  • FIG. 7 shows a schematic block diagram of a network device of a first computer system that implements the method
  • FIG. 8 shows an exemplary block diagram of a second computer system. Identical or similar elements can be referenced in the figures with the same reference symbols.
  • FIG. 1 has already been described above and will therefore not be discussed again at this point.
  • FIG. 2 shows a schematic block diagram of a first and second computer system 20 and 50, respectively, which implement the method according to the invention according to the first aspect.
  • the first computer system 20 comprises networked network devices 22, 24, 26 and 28, at least one of which executes a first partial software process of an overall software process.
  • a second partial software process of the overall software process is executed in a process entity 55 of the second computer system 50.
  • the process instance 55 can comprise a virtual machine, or one or more real processor cores of the second computer system 50, as well as correspondingly allocated memory.
  • the first computer system and the process entity 55 provided by the second computer system 50 are connected to one another via a communication connection 30, for example a wireless connection. Details of the communication link, including the type and connection of communication interfaces, are not essential to the invention and are not shown in the figure for reasons of clarity.
  • the network device 26 has been determined as the grandmaster clock, for example by executing the best master clock algorithm. Within the network of the first computer system 20, all network devices are synchronized to this grandmaster clock.
  • the second computer system 50 has its own clock 56, which provides the grandmaster clock for all process instances provided by the second computer system 50. It should be noted here that the second computer system 50 does not necessarily have to be formed by a single computer; Rather, the second computer system 50 can comprise a multiplicity of computers that are networked with one another, each of which can provide one or more process instances.
  • the clock 56 of the second computer system 50 cannot be synchronized with the grandmaster clock of the first computer system 20 for various reasons that are not shown again here.
  • a virtual clock vU is therefore available or is provided in each of the process instances 51-55 provided by the second computer system 50.
  • the virtual clock vU of the process entity 55 is synchronized with the grandmaster clock of the first computer system 20, for example by means of a corresponding message for time synchronization from the grandmaster clock of the first computer system 20.
  • the virtual clock vU of the process entity 55 continues to receive a message for time synchronization from the grandmaster clock of the second computer system 50. However, it corrects this by an offset determined on the basis of the message for the time synchronization of the grandmaster clock 26 of the first computer system 20 and, if necessary, a drift factor.
  • time information synchronized with the clock of the first computer system 20 is always available between two messages for time synchronization of the grandmaster clock 26 of the first computer system 20, which is in time stamps for data and / or states of the second part stored locally in the second computer system 50
  • Software process can be used.
  • the different synchronizations are shown in the figure by the corresponding hatching or background color of the clock symbols.
  • the process instances 51-54 can be assigned to other computer systems, not shown in the figure, and can be correspondingly synchronized to other grandmaster clocks.
  • FIG. 3 shows a schematic block diagram of a first, second and third computer system 20, 40, 50, which implement the method according to the invention according to the second aspect, at a first point in time.
  • the first and the second computer system 20, 50 are connected to one another via the communication link 30 and execute respective partial software processes.
  • the virtual clock vU of the process instance 55 is synchronized with the grandmaster clock 26 of the first computer system.
  • the one executed by the process instance 55 The second partial software process is to be relocated to a process instance of the third computer system 40.
  • Such a relocation may be necessary, for example, if the first computer system 20 has a better connection to the third computer system 40 than to the second computer system 50, or if only so few processes are executed on each of the second and third computer systems 40, 50 that all processes could be executed on process instances provided by a single computer system. After relocation, one of the computer systems could be put into an energy-saving state.
  • the execution of the second partial software process is to be shifted from the process entity 55 of the second computer system 50 to the process entity 41 of the third computer system 40.
  • the second computer system 50 and the third computer system 40 are connected to one another via a network connection 60 and form part of a cloud or of interconnected edge computers 70.
  • the network connection 60 can connect the two computer systems directly to one another, or via one not shown in the figure further network and other components.
  • Computer system 40 has a clock 46 which can be synchronized with clock 56 of second computer system 50.
  • the virtual clock vU the process instance 41 of the third at the time of relocation of the partial software process to be synchronized with the grandmaster clock of the first computer system or the virtual clock vU of the previous process instance 55.
  • synchronization of the virtual clock VU of the new process entity can be initiated from the second computer system 50.
  • the virtual clocks of the previous and the new process instance 55, 41 with each other or with the grandmaster clock 26 of the first computer system 30 are synchronized, the actual relocation of the partial software process can take place in a conventional manner.
  • FIG. 4 shows a schematic block diagram of a first, second and third computer system 20, 40, 50, which implement the method according to the invention according to the second aspect, at a second point in time after the relocation of the partial software process.
  • the first computer system 20 is now connected to the third computer system 40 or the process entity 41 provided by it via the communication connection 30.
  • the second computer system 50 can, for example, have been put into an energy-saving state, indicated by the dashed borders of the process instances 51-55 and the clock 56 of the second computer system 50 Relocation of the partial software process were synchronized, the data stored locally with time stamps in the first, second and third computer systems can easily be brought into a suitable sequence for evaluation, troubleshooting or other purposes.
  • FIG. 5 shows a schematic flow diagram of the first aspect of the method 100 according to the invention.
  • a grandmaster clock is determined in the first computer system 20, which makes the relevant time information available within the computer system 20.
  • a virtual clock vU is provided in a process instance 55 of the second computer system 50 assigned to the first computer system 20, and in step 106 it is synchronized with the grandmaster clock 26 of the first computer system 20.
  • states and / or data of the first and second sub-software processes are stored locally in the computer systems executing the respective sub-processes with associated time stamps, step 108.
  • FIG. 6 shows a schematic flow diagram of the second aspect of the method 100 according to the invention.
  • step 120 it is checked in step 120 whether a relocation of the partial software process from the previous process entity 55 of the second computer system 50 to a new process entity 41 of a third computer system 40 is imminent. If not, the process execution continues unchanged, “n” branch from step 120. If a relocation is imminent, “j” branch from step 120, the new process instance 41 is set up on the third computer system 40 in step 122 and the first computer system 20 assigned.
  • step 124 a virtual clock vU is provided in the new process instance 41 and in step 126 it is synchronized with the virtual clock vU of the previous process instance 55 or the grandmaster clock 26 of the first computer system 20. Then, in step 128, the software part process previously executed in the process entity 55 is relocated to the new process entity 41 and its execution is continued there, step 108 '. Correspondingly, depending on the specifications of the relocated partial software process, states and / or data with associated time stamps are now stored locally in the third computer system 40.
  • the method according to the invention can include further steps not shown in the figure, in particular the storage of information on relocations of partial software processes, so that data and / or states that belong together can be found and combined even if they are relocated several times to different process instances of different computer systems can.
  • FIG. 7 shows an exemplary block diagram of a network device 200 of a first computer system 20 implementing the method.
  • the network device 200 has at least one processor 202 and associated volatile and non-volatile memory 204, a timer 206 and an interface 208 for data communication with a second computer system 50, which are communicatively connected to one another by one or more data links or buses 212.
  • Computer program instructions are stored in the non-volatile memory 204 which, when they are executed by the at least one processor 202, set up the network device 200 to execute a first partial software process, as well as one of the Second computer system 50 executed second partial software process, is part of an overall software process, and during the execution of which states and / or data provided with a time stamp are stored locally in the network device 200 or in a memory of the first computer system 20.
  • the computer program instructions also set up the network device 200 to send messages for time synchronization to the second computer system 50 via the interface 208 for data communication.
  • FIG. 8 shows an exemplary block diagram of a second computer system 50.
  • the second computer system 50 has at least one processor 302 and associated volatile and non-volatile memory 304, a timer 306 and an interface 308 for data communication with a first computer system 20, which is connected to one or more data connections or buses 312 are communicatively connected to one another.
  • Computer program instructions are stored in the non-volatile memory 304 which, when they are executed by the at least one processor 302, set up the second computer system 50 to execute a second sub-software process which, like a first sub-software process executed by the first computer system 20, is a component of an overall software process, and during the execution of which states and / or data provided with a time stamp are stored locally in the second computer system 50.
  • the computer program instructions also set up the second computer system 50 to receive messages for time synchronization from the first computer system 20 via the interface 308 for data communication, to a virtual clock of a process instance executing the second partial software process with a grandmaster clock of the first computer system 20 synchronize, and to use the time information of the synchronized virtual clock of the process entity for the time stamp of the states and / or data stored for the second sub-software process executed by the process entity.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

Es wird ein Verfahren (100) zur Zustands- und/oder Datenerfassung in auf einem ersten (20) und einem zweiten (50), räumlich voneinander getrennten Computersystemen ausgeführten, zu einem Softwareprozess gehörenden ersten und zweiten Teil-Softwareprozessen vorgeschlagen. Das zweite Computersystem (50) ist dazu eingerichtet, eine Vielzahl von zweiten Teil-Softwareprozessen einer entsprechenden Vielzahl von ersten Computersystemen (20) in jeweiligen Prozess-Instanzen (51-55) auszuführen. Das Verfahren umfasst das Bestimmen (102) einer Grandmaster Clock in dem ersten Computersystem (20), und das Bereitstellen (104) einer virtuellen Uhr (vU) in der dem ersten Computersystem (20) zugeordneten Prozess-Instanz (55). Die virtuelle Uhr (vU) der dem ersten Computersystem (20) zugeordneten Prozess-Instanz (55) wird mit der Grandmaster Clock (26) des ersten Computersystems (20) synchronisiert (106), und Zustände und/oder Daten der ersten und zweiten Teil-Softwareprozesse sowie zugehöriger Zeitstempel in dem den jeweiligen Teilprozess ausführenden Computersystem (20, 50) werden lokal gespeichert (108).

Description

Beschreibung
Verfahren zur zeitlich synchronisierten Zustands- und/oder Datenerfassung in auf räumlich voneinander getrennten Computersystemen ausgeführten, zu einem Softwareprozess gehörigen Teil-Softwareprozessen
FELD
Die vorliegende Erfindung betrifft ein Verfahren zur zeitlich synchronisierten Zustands- und/oder Datenerfassung in auf räumlich voneinander getrennten Computersystemen ausgeführten, zu einem Softwareprozess gehörigen Teil-Softwareprozessen.
HINTERGRUND
Für eine Vielzahl von Computeranwendungen ist die Speicherung von Zuständen oder Programm Informationen und -daten mit exakten Zeitstempeln ihres Auftretens oder ihrer Erzeugung von großer Bedeutung. Die Fehlersuche in der Software von Computern kann bspw. durch Analyse von Informationen über die Ausführung eines Programms zu bestimmten Zeitpunkten erfolgen. Dazu werden während des Programmablaufs Aufzeichnungen von Funktionsaufrufen, Systemzuständen etc. angefertigt und mit Zeitstempeln versehen abgespeichert. Das Aufzeichnen wird auch als Logging bezeichnet, und die aufgezeichneten Daten bilden ein Log oder Trace-Log. Anhand der Zeitstempel der Daten in einem Trace-Log kann der zeitliche Ablauf nachverfolgt werden. Der Vorgang des Nachverfolgens des Programmablaufs wird auch als Tracing bezeichnet.
Bei Ausführung einer Software auf nur einem einzigen Computer liegt für alle Daten des Trace-Logs dieselbe Zeitinformation vor, nämlich die der lokalen Uhr des einen Computers, und die Anordnung und Analyse der Daten in zeitlicher Reihenfolge ist problemlos möglich.
Bei Aufteilung der Ausführung von softwaregesteuerten Funktionen und Prozessen auf mehrere kommunikativ miteinander verbundene bzw. vernetzte Computer müssen die Computer zeitlich miteinander synchronisiert sein, damit die in jedem Computer jeweils zunächst lokal gespeicherten Daten der Trace-Logs für die Analyse in eine korrekte zeitliche Reihenfolge gebracht werden können.
Eine weit verbreitete Art der Vernetzung von Computern zur Kommunikation miteinander ist unter dem Begriff „Ethernet“ bekannt und in dem IEEE 802.3-Standard der IEEE 802-Familie von Standards standardisiert. In Ethernet Netzwerken kommunizieren unterschiedliche Netzwerkgeräte paketorientiert miteinander, d.h., ein Sender sendet Datenpakete an einen Empfänger. In einigen Netzwerken können mehrere Sender dieselbe Kommunikationsverbindung nutzen. Wann ein bestimmter Sender senden kann wird durch bestimmte Zugriffsprotokolle geregelt, die dafür sorgen, dass nicht ein einzelner Sender permanent sendet, oder eine laufende Sendung nicht gestört wird.
In Ethernet Netzwerken kann eine Zeitsynchronisation bspw. nach dem IEEE 802.1 AS-Standard erfolgen, bei dem, ausgehend von einer sogenannten „besten Uhr“ im Netzwerk, auch als Grandmaster oder Grandmaster Clock bezeichnet, eine Master-Slave-Uhrenhierarchie aufgebaut wird. Der Grandmaster stellt dabei die Zeitbasis für das Netzwerk bereit, auf die alle anderen Netzwerkgeräte des Netzwerks sich synchronisieren. Der Grandmaster wird mittels des sogenannten Best Master Clock Algorithmus (BMCA) bestimmt und innerhalb des Netzwerks bekanntgegeben. Dazu senden IEEE 802.1 AS-fähige Netzwerkgeräte Announce-Nachrichten mit Informationen über ihre interne Uhr an unmittelbar angeschlossene weitere Netzwerkgeräte. Die Informationen über die internen Uhren geben Aufschluss auf die Genauigkeit der jeweiligen Uhr, deren Bezug oder Zeitreferenz sowie andere Eigenschaften, anhand derer die beste Uhr in dem Netzwerk bestimmt werden kann. Ein Empfänger einer solchen Announce-Nachricht vergleicht die empfangenen Informationen mit den Merkmalen seiner eigenen internen Uhr und evtl bereits von einem anderen Port empfangenen Nachrichten mit Informationen zu Uhren anderer Netzwerkgeräte, und akzeptiert eine in einem anderen Netzwerkgerät befindliche Uhr, wenn diese bessere Uhrenparameter hat. Nach kurzer Zeit ist die beste Uhr in dem Netzwerk ermittelt, die dann der Grandmaster in dem Netzwerk wird. Ausgehend von dem Grandmaster werden Nachrichten zur Zeitsynchronisation über das Netzwerk verbreitet.
Der IEEE 802.1 AS-Standard definiert neben der Bestimmung der besten Uhr eines Netzwerks und dem zyklischen Austausch von Zeitinformationen auch noch Verfahren zur Messung der Leitungsverzögerung zwischen Nachbarknoten, auch als Peer-Delay bezeichnet. Ein Netzwerkgerät das eine Nachricht zur Zeitsynchronisation empfängt leitet diese nämlich nicht einfach weiter, sondern korrigiert die Zeitinformation um die zuvor ermittelte Laufzeit auf der Verbindung, über die es Nachrichten zur Zeitsynchronisation von einem direkt verbundenen Netzwerkgerät empfängt, sowie um die interne Bearbeitungsdauer, bevor es die Nachricht zur Zeitsynchronisation mit der korrigierten Zeitinformation weitersendet.
Der Peer Delay-Mechanismus hat die Aufgabe, die Verzögerung zwischen zwei verbundenen Ports zu messen. Die gemessene Laufzeit wird dann wie zuvor erwähnt dazu genutzt, die Zeitinformationen der Knoten zu korrigieren und diese Zeit mit einzurechnen. Delay_Request-Nachrichten des Peer Delay Mechanismus werden zyklisch von beiden Kommunikationspartnern unabhängig voneinander versendet. Ist der jeweilige Knoten IEEE 802.1AS fähig, so wird dieser mit einer Delay_Response- und einer Pdelay_Resp_Follow_Up-Nachricht antworten. Diese Nachrichten werden beim Eingang mit einem Hardwarezeitstempel versehen und an die lokale Anwendung zur Zeitsynchronisation weitergeleitet. Dadurch lässt sich die Latenz und die zeitliche Differenz zum benachbarten Port bestimmen.
Bei der Uhrenhierarchie gemäß IEEE 802.1 AS und dem darin festgelegten „generalized precision time protocol“ (gPTP) stellt immer nur ein einziges Netzwerkgerät die beste Uhr des Netzwerkes bereit. Dieses Netzwerkgerät steuert und regelt somit die Zeit des gesamten Netzwerks. Alle anderen Uhren in Netzwerkgeräten des Netzwerks synchronisieren sich ausschließlich nach dieser einen Uhr. Die Zeitsynchronisation gemäß IEEE 802.1 AS kann dabei sowohl über drahtgebundene als auch über drahtlose Netzwerkverbindungen eine sehr genaue Synchronisation der Zeitgeber der einzelnen Netzwerkgeräte des NWs erzielen, die für das Tracing erforderlich ist. Die vorstehend beschriebene Synchronisation der Netzwerkzeit kann in einigen Anwendungsfällen erheblichen Aufwand verursachen oder sogar ungeeignet sein, bspw. wenn ein zentrales Netzwerkgerät Teil-Softwareprozesse einer Vielzahl von anderen Netzwerkgeräten ausführt, die nicht zueinander synchronisiert oder synchronisierbar sind, oder deren Synchronisation einen unverhältnismäßigen Aufwand erfordern würde. Ein solches zentrales Netzwerkgerät kann bspw. von in einer sogernannten Cloud zusammengefassten Computersystemen gebildet sein, oder einen oder mehrere sogenannte Edge-Computer umfassen.
Beim Cloud Computing wird eine Vielzahl von über Hochgeschwindigkeitsnetze miteinander vernetzte Rechnerressourcen zusammengefasst, und Teile davon bei Bedarf unter über einen zentralen Zugang bereitgestellt. Dabei ist für den Nutzer nicht erkennbar, wo sich eine Rechnerressource tatsächlich befindet, und die von einem Nutzer genutzten Rechnerressourcen können von Nutzung zu Nutzung andere sein, selbst wenn der Nutzer wiederholt Nutzungen gleichen Inhalts durchführt. In der Regel werden im Rahmen von Cloud Computing bereitgestellte Rechnerressourcen von einer Vielzahl von Nutzern gleichzeitig genutzt.
Beim Edge Computing werden Computer-Anwendungen, Daten und Dienste von zentralen Rechenzentren weg zu an den äußeren Rändern eines Netzwerks liegende Computersysteme verlagert. Dadurch verkürzt sich die Verbindung zwischen Netzwerkgeräten, welche diese zentralen Anwendungen, Daten und Dienste nutzen, und den diese bereitstellenden Computersystemen.
Eine kürzere Verbindung kann dabei durch eine kleinere Anzahl von Weiterleitungen von Daten über Router, Switches und Hubs gekennzeichnet sein, aber auch durch eine kürzere geographische Entfernung.
Edge-Computer können dort vorteilhaft eingesetzt werden, wo bestimmte Daten verarbeitet werden, die in der Regel lokalen Bezug haben und vor allem in möglichst kurzer Zeit an mit einem Zugangspunkt des Edge-Computers verbundene Netzwerkgeräte gesendet werden müssen. Im Kontext autonomen Fahrens oder allgemeiner im Kontext von Fahrzeug-zu-X-lnfrastrukturen sind solche Edge-Computer auch als Road Side Units (RSU) bekannt, welche u.a. die Datenübertragung zwischen Fahrzeugen ermöglichen, die nicht direkt miteinander kommunizieren, und welche den Fahrzeugen bspw. nicht aus dem jeweiligen lokalen Kontext stammende Daten zur Verfügung stellen.
Eine kleinere Anzahl von Weiterleitungen verringert die mögliche Abweichung bei der Synchronisierung der Netzwerkgeräte, wie im Folgenden mit Bezug auf Figur 1 dargestellt wird. Figur 1 zeigt ein schematisches Beispiel der Änderung der möglichen Abweichung von Zeitinformationen in Netzwerkgeräten, die gemäß IEEE 802.1AS synchronisiert werden. In Figur 1 stellt Netzwerkgerät 10 die Grandmaster Clock bereit, und sendet die Nachrichten zur Zeitsynchronisation an Netzwerkgerät 11 weiter. Netzwerkgerät 11 korrigiert die Zeitinformation bevor es eine entsprechende Nachricht zur Zeitsynchronisation an Netzwerkgerät 12 sendet. Bei der Korrektur nutzt Netzwerkgerät 11 die zuvor ermittelte Laufzeit auf der Verbindung mit Netzwerkgerät 10 sowie Information über eine interne Verzögerung, die u.a. von der Implementierung der Zeitsynchronisation und Hardwareeigenschaften des Netzwerkgeräts abhängt. Neben den Netzwerkgeräten ist ein Zeitdiagramm gezeigt, welches die von Netzwerkgerät 10 ausgesendete Zeit sowie die mögliche Abweichung nach jeder weiteren Übertragung darstellt. Nach der ersten Korrektur ist der ursprünglich einzelne Strich, der den Zeitpunkt der von Netzwerkgerät 10 gesendeten Nachricht zur Zeitsynchronisation darstellt, bereits nach links und rechts um weitere Striche ergänzt. Diese weiteren Striche deuten an, dass bei der Korrektur eine gewisse Abweichung vorliegen kann. Netzwerkgerät 11 leitet die mit einer gewissen ersten möglichen Abweichung behaftete Zeitinformation an Netzwerkgerät 12 weiter. Netzwerkgerät 12 korrigiert wiederum die empfangene Zeitinformation, wobei erneut eine gewisse Abweichung bei der Korrektur nicht ausgeschlossen werden kann, und leitet diese Zeitinformation in einer Nachricht zur Zeitsynchronisation an Netzwerkgerät 13 weiter. Die erneut vergrößerte mögliche Abweichung der Zeitinformation von der tatsächlich in der Grandmaster Clock vorliegenden Zeit ist durch den gegenüber dem Netzwerkgerät 12 zugeordneten Zeitdiagramm breiteren möglichen Abweichungsbereich dargestellt. Die Richtung der Weiterleitungen der Nachrichten zur Zeitsynchronisation ist durch die Pfeile zwischen den Netzwerkgeräten angedeutet.
Mit jeder Korrektur und Weiterleitung erhöht sich der mögliche Abweichungsbereich. Das bedeutet nicht, dass eine Abweichung stets am äußeren Rand des Abweichungsbereichs liegen muss, und sich Abweichungen immer weiter vergrößern; es kann durchaus auch eine - wenn auch nicht steuerbare - Korrektur in eine entgegengesetzte Richtung erfolgen, so dass die Zeit im letzten Netzwerkgerät der Kette genauer mit der Zeit der Grandmaster Clock übereinstimmt als die Zeit in einem näher an der Grandmaster Clock liegenden Netzwerkgerät. Da dies aber nicht vorhersehbar ist muss mit dem ungünstigsten Fall gerechnet werden.
Eine kürzere geographische Entfernung kann vor allem bei zeitkritischen Daten einen Vorteil bringen, weil sich trotz der Ausbreitung der Signale auf den Verbindungsstrecken mit annähernd Lichtgeschwindigkeit Verzögerungen ergeben, die nicht nur messbar sind sondern auch Auswirkungen auf Prozesse haben können, welche auf zeitlich möglichst präzise zusammenpassende Daten angewiesen sind. Solche Prozesse können bspw. die Verarbeitung von Sensordaten einer Vielzahl von gleichen oder unterschiedlichen Sensoren umfassen, welche für eine Erfassung und Repräsentation einer Umgebung oder eines komplexen logischen oder physikalischen Prozesses zu einem Zeitpunkt erhoben werden. So benötigt z.B. ein sich mit Lichtgeschwindigkeit von einem Sender ausbreitendes Signal 667 ns, um zu einem 200 m entfernten Empfänger zu gelangen, und 6,67 ps für eine Entfernung von 2 km.
Eine für bestimmte Anwendungen hinreichend genaue Synchronisation der Uhren bzw. Zeitgeber in unterschiedlichen miteinander verbundenen Edge-Computern oder Rechnerressourcen einer Cloud ist nicht immer gegeben, u.a. wegen einer u.U. nicht unerheblichen Anzahl von Weiterleitungen der Zeitsynchronisationsnachrichten. Für den Nutzer ist außerdem nicht unbedingt erkennbar, mit welcher Genauigkeit ein Zeitgeber oder eine Uhr in einer gerade genutzten externen Ressource läuft. Wenn sich die Signallaufzeit zwischen einem Edge-Computer und einem damit verbundenen System ändert, z.B. weil das mit dem Edge-Computer verbundene System mobil ist und sich zu unterschiedlichen Zeitpunkten in unterschiedlichen Entfernungen von dem Edge-Computer befindet, ist eine genaue Synchronisation zusätzlich erschwert oder sogar unmöglich.
Die an sich naheliegende Lösung, ein Cloud- oder Edge-Netzwerkgerät auch die Grandmaster Clock für alle damit operativ verbundenen Netzwerkgeräte bereitstellen zu lassen, für die es Teil-Softwareprozesse ausführt, ist daher für viele Anwendungen ungeeignet. Dies gilt bspw. auch für den Fall, dass ein Computersystem alle Softwareprozesse wahlweise völlig autonom und lokal ausführen kann, oder teilweise auf lokale Ressourcen und externe Ressourcen aufgeteilt. Insbesondere wenn externe Ressourcen nicht vorhersehbar zeitweise verfügbar oder zeitweise nicht verfügbar sein können ist eine externe Synchronisation ungünstig. Externe Ressourcen, insbesondere ortsfeste externe Ressourcen, können zwar auf eine lokale Uhrzeit bezogen miteinander synchronisiert sein, bspw. UTC oder GMT, das muss aber bei gerade bei mobilen Computersystemen nicht notwendigerweise der Fall sein. Vielmehr können hier zwar präzise Zeitgeber zur Synchronisation eines lokalen Netzwerks zur Verfügung stehen, diese können aber auf eine beliebige Zeitbasis synchronisiert sein, oder frei laufen. Die lokalen Zeitgeber unterschiedlicher Systeme können auch voneinander unterschiedliche Drifts oder Offsets aufweisen. Eine nur zeitweise Verfügbarkeit einer externen Uhr zur Zeitsynchronisation des lokalen Computersystems kann zu Lücken in der Zeithistorie von gespeicherten Daten oder Zuständen führen, oder zu doppelten Einträgen, die nicht oder nur schlecht auflösbar sind.
Eine externe Synchronisation kann auch dann problematisch sein, wenn Teil-Softwareprozesse zwischen unterschiedlichen Cloud- oder Edge-Netzwerkgeräten verlagert werden. Dieser Fall kann bspw. auftreten, wenn ein für den Betrieb eines Fahrzeugs erforderlicher Softwareprozess in einen ersten, in dem Fahrzeug ausgeführten Teil-Softwareprozess und einen zugehörigen, in einem Cloud- oder Edge-Netzwerkgerät ausgeführten zweiten Teil-Softwareprozess unterteilt ist. Das Fahrzeug und das Cloud- oder Edge-Netzwerkgerät können dabei über eine drahtlose Kommunikationsverbindung verbunden sein. Das Fahrzeug ist seiner Bestimmung gemäß mobil und kann sich von einem Edge-Netzwerkgerät oder Netzwerkzugangspunkt entfernen und dabei einem anderen Edge-Netzwerkgerät oder Netzwerkzugangspunkt nähern. Diese Veränderung kann es notwendig werden lassen, den von dem Cloud- oder Edge-Netzwerkgerät ausgeführten Teilprozess in ein anderes Edge-Netzwerkgerät oder einen anderen Teil der Cloud zu verlagern, der eine kürzere Verbindung zwischen dem Fahrzeug und einer Prozess-Instanz bietet, die den Teil-Softwareprozess ausführt. Wenn ein Cloud- oder Edge-Netzwerkgerät die Grandmaster Clock für das Fahrzeug bereitstellen würde, müssten entweder alle Edge- oder Cloud-Netzwerkgeräte mit hoher Genauigkeit zueinander synchronisiert sein, oder das Fahrzeug würde bei jedem Wechsel zwischen zwei Edge-Netzwerkgeräten oder Netzwerkzugangspunkten sein internes Netzwerk auf eine neue Grandmaster Clock synchronisieren müssen. Da eine Synchronisierung auf eine Grandmaster Clock in einem Netzwerk nicht instantan abläuft, würde in einem Übergangszeitraum keine sichere und genaue Zeitsynchronisierung in dem Fahrzeug existieren, was für das Zusammenspiel der unterschiedlichen Fahrzeugsysteme unvorhersehbare Folgen haben kann.
Grundsätzlich ist es in einem Fahrzeug von Vorteil, wenn die Grandmaster Clock von einem in dem Fahrzeug angeordneten Netzwerkgerät bereitgestellt wird, weil nur so sichergestellt sein kann, dass eine intern synchronisierte Zeitinformation jederzeit sicher vorliegt. Dies ist insbesondere für das hochautomatisierte oder autonome Fahren wichtig, bei dem Daten von vielen Sensoren und Steuergeräten zur Verarbeitung zeitlich hochpräzise zueinander passend vorliegen müssen.
ZUSAMMENFASSUNG
Es ist daher eine Aufgabe der vorliegenden Erfindung ein Verfahren anzugeben, welches die zeitlich synchronisierte Zustands- und/oder Datenerfassung in auf räumlich voneinander gentrennten Computersystemen ausgeführten Teil-Softwareprozessen eines Softwareprozesses vereinfacht oder verbessert. Diese Aufgabe wird durch das in Anspruch 1 angegebene Verfahren gelöst. Ausgestaltungen und Weiterentwicklungen sind in den abhängigen Ansprüchen angegeben.
Im Kontext dieser Beschreibung kann ein Computersystem eine reale oder virtuelle Maschine bezeichnen, die zumindest einen Prozessor oder eine Prozessorinstanz sowie zugewiesenen Speicher zur Ausführung von Computerprogramminstruktionen aufweist, und die über mindestens eine Schnittstelle zur Kommunikation mit einem oder mehreren anderen Computersystemen verbindbar ist. Die Ausführung der
Computerprogramminstruktionen auf dem mindestens einen Prozessor oder der mindestens einen Prozessorinstanz kann einen zu einem Gesamt-Softwareprozess gehörigen Teil-Softwareprozesse ausführen. Anstelle des Begriffs Computersystem wird in dieser Beschreibung auch der Begriff Netzwerkgerät verwendet.
Ein erfindungsgemäßes Verfahren zur Zustands- und/oder Datenerfassung gemäß einem ersten Aspekt wird in Teilen auf einem ersten und auf einem zweiten Computersystem ausgeführt. Das zweite Computersystem ist dazu vorgesehen und eingerichtet, eine Vielzahl von zu entsprechenden ersten Teil-Softwareprozessen gehörige zweite Teil-Softwareprozesse einer Vielzahl von ersten Computersystemen in jeweiligen Prozess-Instanzen auszuführen. Das erfindungsgemäße Verfahren zur zeitlich synchronisierten Zustands- und/oder Datenerfassung in auf einem ersten und einem zweiten, räumlich voneinander getrennten Computersystemen ausgeführten, zu einem Softwareprozess gehörenden ersten und zweiten Teil-Softwareprozessen umfasst zunächst das Bestimmen einer Grandmaster Clock in dem ersten Computersystem, und das Bereitstellen einer virtuellen Uhr in der dem ersten Computersystem zugeordneten, von dem zweiten Computersystem bereitgestellten Prozess-Instanz. Die Grandmaster Clock in dem ersten Computersystem kann bspw. das Ausführen eines Best Mater Clock Algorithmus gemäß IEEE 802.1 AS-Standard umfassen. Die virtuelle Uhr der Prozess-Instanz wird mit der Grandmaster Clock des zugeordneten ersten Computersystems synchronisiert. Nach erfolgter Synchronisierung der Uhren oder Zeitgeber der an der Ausführung der ersten und zweiten Teil-Softwareprozesse beteiligten Computersysteme bzw. Prozess-Instanzen werden Zustände und/oder Daten mit zugehörigen Zeitstempeln jeweils lokal auf dem den Teil-Softwareprozess ausführenden Computersystem gespeichert. Die Erfassung von Zuständen und/oder Daten schließt insbesondere auch die Erfassung von Daten für das Auffinden von Fehlern in Softwareprozessen, sog. Trace-Daten ein.
Bei einer oder mehreren Ausgestaltungen umfasst das Bereitstellen der virtuellen Uhr in der dem ersten Computersystem zugeordneten Prozess-Instanz das Empfangen von Zeitinformationen einer Uhr des zweiten Computersystems, und das Korrigieren der Zeitinformationen der Uhr des zweiten Computersystems mittels eines Offsets. Die korrigierten Zeitinformationen werden innerhalb der Prozess-Instanz bereitgestellt. Die virtuelle Uhr der Prozess-Instanz wird auf diese Weise zwischen den zyklisch empfangenen Synchronisationsnachrichten mit der Genauigkeit der Uhr des zweiten Computersystems betrieben.
Bei einer oder mehreren Ausgestaltungen umfasst das Bereitstellen der virtuellen Uhr in der dem ersten Computersystem zugeordneten Prozess-Instanz das Berechnen eines Driftfaktors zwischen der Uhr des zweiten Computersystems und der Grandmaster Clock des ersten Computersystems. Auf diese Weise kann auch zwischen zwei Synchronisationsnachrichten der Grandmaster Clock des ersten Computersystems eine genauere Synchronisation gewährleistet werden.
Nach Empfang einer Synchronisationsnachricht kann zusätzlich zu der Korrektur der Zeitinformation der virtuellen Uhr der Offset überprüft und angepasst werden. Außerdem kann der Driftfaktor neu berechnet oder angepasst werden, um langsamer verlaufende Veränderungen der Grandmaster Clock des ersten Computersystems auszugleichen.
Ein zweiter Aspekt des erfindungsgemäßen Verfahrens betrifft eine Verlagerung des zweiten Teil-Softwareprozesses von einer dem ersten Computersystem zugeordneten bisherigen Prozess-Instanz des zweiten Computersystems zu einer neuen Prozess-Instanz eines dritten Computersystems. Gemäß diesem Aspekt umfasst das Verfahren das Einrichten der entsprechenden neuen Prozess-Instanz auf dem dritten Computersystem, welche dem ersten Computersystem zugeordnet wird. In der neuen Prozess-Instanz wird sodann eine virtuelle Uhr bereitgestellt, welche mit der virtuellen Uhr der bisherigen Prozess-Instanz oder der Grandmaster Clock des ersten Computersystems synchronisiert wird. Sobald die virtuelle Uhr der neuen Prozess-Instanz synchronisiert ist wird der zweite Teil-Softwareprozess von der bisherigen Prozess-Instanz zu der neuen Prozess-Instanz verlagert und dessen Ausführung dort fortgesetzt.
Das Bereitstellen der virtuellen Uhr in der dem ersten Computersystem zugeordneten neuen Prozess-Instanz kann entsprechend das Empfangen von Zeitinformationen einer Uhr des dritten Computersystems, und das Korrigieren der Zeitinformationen der Uhr des dritten Computersystems mittels eines Offsets. Die korrigierten Zeitinformationen werden innerhalb der neuen Prozess-Instanz bereitgestellt. Der Offset kann bspw. aus von dem zweiten Computersystem bereitgestellten Informationen zu der virtuellen Uhr der bisherigen Prozess-Instanz ermittelt werden. Die virtuelle Uhr der neuen Prozess-Instanz wird auf diese Weise bereits vor der Verlagerung des Teil-Softwareprozesses auf die Uhr des ersten Computersystems eingestellt und läuft mit der Genauigkeit der Uhr des dritten Computersystems.
Bei einer oder mehreren Ausgestaltungen des Verfahrens gemäß dem zweiten Aspekt umfasst das Bereitstellen der virtuellen Uhr in der dem ersten Computersystem zugeordneten neuen Prozess-Instanz das Berechnen eines Driftfaktors zwischen der Uhr des dritten Computersystems und der Grandmaster Clock des ersten Computersystems. Auf diese Weise kann sofort nach der Verlagerung des Teil-Softwareprozesses von der durch das zweite Computersystem bereitgestellten bisherigen Prozess-Instanz auf die von dem dritten Computersystem bereitgestellte neue Prozess-Instanz auch zwischen zwei Synchronisationsnachrichten von der Grandmaster Clock des ersten Computersystems eine genauere Synchronisation gewährleistet werden. Der initiale Driftfaktor kann bspw. aus von dem zweiten Computersystem übermittelten Informationen ermittelt werden, so dass bereits vor der Verlagerung der Ausführung des Teil-Softwareprozesses auf das dritte Computersystem bereits ein Driftfaktor zur Verbesserung der Genauigkeit der virtuellen Uhr der Prozess-Instanz verfügbar ist.
Ein zur Ausführung zumindest von Teilen der vorstehend beschriebenen Verfahren eingerichtetes erstes Computersystem umfasst mindestens einen Prozessor und zugeordneten flüchtigen und nichtflüchtigen Speicher, einen Zeitgeber sowie eine Schnittstelle zur Datenkommunikation mit einem zweiten Computersystem. In dem nichtflüchtigen Speicher sind Computerprogramminstruktionen gespeichert die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das erste Computersystem zur Ausführung eines ersten Teil-Softwareprozesses einrichten der, ebenso wie ein von einem zweiten Computersystem ausgeführter zweiter Teil-Softwareprozess, Bestandteil eines Gesamt-Softwareprozesses ist, und während dessen Ausführung Zustände und/oder Daten mit einem Zeitstempel versehen in dem ersten Computersystem lokal gespeichert werden. Die Com puterprogramm Instruktionen richten das erste Computersystem außerdem dazu ein, über die Schnittstelle zur Datenkommunikation Nachrichten zur Zeitsynchronisation an ein zweites Computersystem zu senden. Das erste Computersystem kann ein mit anderen Netzwerkgeräten über ein lokales NW kommunikativ verbundenes Netzwerkgerät sein und bspw. in einem Fahrzeug angeordnet sein.
Ein zur Ausführung zumindest von Teilen der vorstehend beschriebenen Verfahren eingerichtetes zweites Computersystem umfasst mindestens einen Prozessor und zugeordneten flüchtigen und nichtflüchtigen Speicher, einen Zeitgeber sowie eine Schnittstelle zur Datenkommunikation mit einem ersten Computersystem. In dem nichtflüchtigen Speicher sind Computerprogramminstruktionen gespeichert die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das zweite dritte Computersystem zur Ausführung eines zweiten Teil-Softwareprozesses einrichten der, ebenso wie ein von einem ersten Computersystem ausgeführter erster Teil-Softwareprozess, Bestandteil eines Gesamt-Softwareprozesses ist, und während dessen Ausführung Zustände und/oder Daten mit einem Zeitstempel versehen in dem zweiten Computersystem lokal gespeichert werden. Die Computerprogramminstruktionen richten das zweite Computersystem außerdem dazu ein, über die Schnittstelle zur Datenkommunikation Nachrichten zur Zeitsynchronisation von einem ersten Computersystem zu empfangen, eine virtuelle Uhr einer den zweiten Teil-Softwareprozess ausführenden Prozess-Instanz mit einer Grandmaster Clock des ersten Computersystem zu synchronisieren, und die Zeitinformationen der synchronisierten virtuellen Uhr der Prozess-Instanz für den Zeitstempel der zu dem von der Prozess-Instanz ausgeführten zweiten Teil-Softwareprozess gespeicherten Zustände und/oder Daten zu verwenden. Das zweite Computersystem kann ein mit anderen Netzwerkgeräten über ein lokales oder Weitverkehrs-Netzwerk kommunikativ verbundenes Netzwerkgerät sein und bspw. Teil einer Cloud-Infrastruktur oder eines Verbunds von Edge-Computern sein. Die anderen Netzwerkgeräte können bspw. weitere zweite Computersysteme umfassen. Hierzu kann das zweite Computersystem eine oder mehrere weitere Schnittstellen zur Datenkommunikation aufweisen.
Eine Schnittstelle zur Datenkommunikation des ersten oder des zweiten Computersystems kann eine oder mehrere physikalische Schnittstellen umfassen, von denen jede mehrere virtuelle Schnittstellen oder Ports bereitstellen kann, so dass ein Computersystem gelichzeitig eine Vielzahl von
Kommunikationsverbindungen zu unterschiedlichen Computersystemen hersteilen kann.
Das zweite Computersystem kann außerdem über eine Schnittstelle zur Datenkommunikation mit weiteren zweiten Computersystemen aufweisen, die in der vorliegenden Beschreibung aus Klarheitsgründen auch als dritte Computersysteme bezeichnet sein können. Die in dem nichtflüchtigen Speicher gespeicherten Computerprogramminstruktionen können das zweite Computersystem entsprechend dazu einrichten, bei einer bevorstehenden Verlagerung der Ausführung des zweiten Teil-Softwareprozesses zu einer von einem dritten Computersystem bereitgestellten neuen Prozess-Instanz eine virtuelle Uhr der neuen Prozess-Instanz mit der virtuellen Uhr der bisherigen Prozess-Instanz zu synchronisieren, bevor die Ausführung des zweiten Teil-Softwareprozesses tatsächlich verlagert wird. Das vorstehend beschriebene Verfahren ermöglicht die einfache, direkte Synchronisierung von Zeitstempeln in Tracedaten zur Fehlersuche und Analyse in über mehrere Computersysteme verteilt ausgeführter Software auf der Basis von existierenden Synchronisationsprotokollen und -mechanismen. Durch den Fokus auf Zustände der Software-Prozesse können die Vorgänge in Schnittstellen für die Datenkommunikation zwischen den Systemen größtenteils ignoriert werden - es findet quasi eine Abstraktion von Kommunikations- und Daten-Schnittstellen statt.
KURZE BESCHREIBUNG DER ZEICHNUNG
Im Folgenden wird die Erfindung mit Bezug auf die Zeichnung exemplarisch erläutert. In der Zeichnung zeigt:
Fig. 1 ein schematisches Beispiel der Änderung der möglichen Abweichung von Zeitinformationen in Netzwerkgeräten, die gemäß IEEE 802.1 AS synchronisiert werden,
Fig. 2 ein schematisches Blockschaltbild eines ersten und zweiten
Computersystems, die das erfindungsgemäße Verfahren gemäß dem ersten Aspekt implementieren,
Fig. 3 ein schematisches Blockschaltbild eines ersten, zweiten und dritten Computersystems, die das erfindungsgemäße Verfahren gemäß dem zweiten Aspekt implementieren, zu einem ersten Zeitpunkt,
Fig. 4 ein schematisches Blockschaltbild des ersten, zweiten und dritten
Computersystems, die das erfindungsgemäße Verfahren gemäß dem zweiten Aspekt implementieren, zu einem zweiten Zeitpunkt,
Fig. 5 ein schematisches Flussdiagramm des ersten Aspekts des erfindungsgemäßen Verfahrens,
Fig. 6 ein schematisches Flussdiagramm des zweiten Aspekts des erfindungsgemäßen Verfahrens,
Fig. 7 ein schematisches Blockschaltbild eines das Verfahren implementierenden Netzwerkgeräts eines ersten Computersystems, und Fig. 8 ein beispielhaftes Blockschaltbild eines zweiten Computersystems. Gleiche oder ähnliche Elemente können in den Figuren mit denselben Bezugszeichen referenziert sein.
BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
Figur 1 wurde bereits weiter oben beschrieben und wird daher an dieser Stelle nicht erneut erörtert.
Figur 2 zeigt ein schematisches Blockschaltbild eines ersten und zweiten Computersystems 20 bzw. 50, die das erfindungsgemäße Verfahren gemäß dem ersten Aspekt implementieren. Das erste Computersystem 20 umfasst miteinander vernetzte Netzwerkgeräte 22, 24, 26 und 28, von denen zumindest eines einen ersten Teil-Softwareprozess eines Gesamt-Softwareprozesses ausführt. Ein zweiter Teil-Softwareprozess des Gesamt-Softwareprozesses wird in einer Prozess-Instanz 55 des zweiten Computersystems 50 ausgeführt. Die Prozess-Instanz 55 kann eine virtuelle Maschine umfassen, oder einen oder mehrere reale Prozessorkerne des zweiten Computersystem 50, sowie entsprechend zugewiesenen Speicher. Das erste Computersystem und die von dem zweiten Computersystem 50 bereitgestellte Prozess-Instanz 55 sind über eine Kommunikationsverbindung 30 miteinander verbunden, bspw. eine drahtlose Verbindung. Einzelheiten der Kommunikationsverbindung, darunter auch die Art und Anbindung von Kommunikationsschnittstellen, sind für die Erfindung nicht wesentlich und aus Gründen der Übersichtlichkeit nicht in der Figur dargestellt.
In dem ersten Computersystem 20 ist das Netzwerkgerät 26 als Grandmaster Clock ermittelt worden, z.B. durch Ausführen des Best Master Clock Algorithmus. Innerhalb des Netzwerks des ersten Computersystems 20 sind alle Netzwerkgeräte auf diese Grandmaster Clock synchronisiert. Das zweite Computersystem 50 hat eine eigene Uhr 56, welche die Grandmaster Clock für alle von dem zweiten Computersystem 50 bereitgestellten Prozess-Instanzen bereitstellt. Dabei ist anzumerken, dass das zweite Computersystem 50 nicht notwendigerweise durch einen einzelnen Computer gebildet sein muss; vielmehr kann das zweite Computersystem 50 eine Vielzahl miteinander vernetzter Computer umfassen, von denen jeder eine oder mehrere Prozess-Instanzen bereitstellen kann. Die Uhr 56 des zweiten Computersystem 50 kann aus unterschiedlichen Gründen, die hier nicht erneut dargestellt werden, nicht mit der Grandmaster Clock des ersten Computersystems 20 synchronisiert werden.
Daher ist in jeder der von dem zweiten Computersystem 50 bereitgestellten Prozess-Instanzen 51-55 eine virtuelle Uhr vU verfügbar bzw. wird bereitgestellt.
Erfindungsgemäß wird die virtuelle Uhr vU der Prozessinstanz 55 mit der Grandmaster Clock des ersten Computersystem 20 synchronisiert, bspw. mittels entsprechender Nachricht zur Zeitsynchronisation von der Grandmaster Clock des ersten Computersystem 20. Die virtuelle Uhr vU der Prozess-Instanz 55 empfangt dabei weiterhin Nachricht zur Zeitsynchronisation von der Grandmaster Clock des zweiten Computersystem 50. Allerdings korrigiert es diese um einen anhand der Nachricht zur Zeitsynchronisation der Grandmaster Clock 26 des ersten Computersystem 20 ermittelten Offset und ggf. einen Driftfaktor. Auf diese Weise stehen auch zwischen zwei Nachricht zur Zeitsynchronisation der Grandmaster Clock 26 des ersten Computersystem 20 stets mit der Uhr des ersten Computersystem 20 synchronisierte Zeitinformationen zur Verfügung, die in Zeitstempeln für in dem zweiten Computersystem 50 lokal gespeicherte Daten und/oder Zustände des zweiten Teil-Softwareprozesses verwendet werden können. Die unterschiedlichen Synchronisierungen sind in der Figur durch die entsprechende Schraffur bzw. Hintergrundfarbe der Uhrensymbole dargestellt.
Die Prozess-Instanzen 51-54 können anderen, nicht in der Figur gezeigten Computersystemen zugeordnet und entsprechend auf andere Grandmaster Clocks synchronisiert sein.
Figur 3 zeigt ein schematisches Blockschaltbild eines ersten, zweiten und dritten Computersystems 20, 40, 50, die das erfindungsgemäße Verfahren gemäß dem zweiten Aspekt implementieren, zu einem ersten Zeitpunkt. Das erste und das zweite Computersystem 20, 50 sind über die Kommunikationsverbindung 30 miteinander verbunden und führen jeweilige Teil-Softwareprozesse aus. Die virtuelle Uhr vU der Prozess-Instanz 55 ist mit der Grandmaster Clock 26 des ersten Computersystems synchronisiert. Der von der Prozess-Instanz 55 ausgeführte zweite Teil-Softwareprozess soll auf eine Prozess-Instanz des dritten Computersystems 40 verlagert werden. Eine solche Verlagerung kann bspw. erforderlich werden, wenn das erste Computersystem 20 eine bessere Verbindung zu dem dritten Computersystem 40 erhält als zu dem zweiten Computersystem 50, oder wenn auf jedem der zweiten und dritten Computersysteme 40, 50 jeweils nur noch so wenige Prozesse ausgeführt werden, dass alle Prozesse auf von einem einzigen Computersystem bereitgestellten Prozess-Instanzen ausführbar wären. Nach einer Verlagerung könnte eines der Computersysteme in einen energiesparenden Zustand versetzt werden.
In der Figur 3 soll die Ausführung des zweiten Teil-Softwareprozesses von der Prozess-Instanz 55 des zweiten Computersystems 50 auf die Prozess-Instanz 41 des dritten Computersystems 40 verlagert werden. Das zweite Computersystem 50 und das dritte Computersystem 40 sind über eine Netzwerkverbindung 60 miteinander verbunden und bilden einen Teil einer Cloud oder von miteinander verbundenen Edge-Computern 70. Die Netzwerkverbindung 60 kann die beiden Computersysteme unmittelbar miteinander verbinden, oder über ein in der Figur nicht dargestelltes weiteres Netzwerk und andere Komponenten. Computersystem 40 hat eine Uhr 46, die mit der Uhr 56 des zweiten Computersystems 50 synchronisiert sein kann.
Um sicherzustellen, dass die Zeitstempel von lokal gespeicherten Zuständen und/oder Daten trotz der Verlagerung der Teil-Softwareprozesse auf eine neue Prozess-Instanz zu den in dem ersten Computersystem 20 gespeicherten Zuständen und/oder Daten passen bzw. synchron sind muss die virtuelle Uhr vU der Prozess-Instanz 41 des dritten zum Zeitpunkt der Verlagerung des Teil-Softwareprozesses mit der Grandmaster Clock des ersten Computersystems bzw. der virtuelle Uhr vU der bisherigen Prozess-Instanz 55 synchronisiert sein.
Flierzu kann gemäß dem zweiten Aspekt des erfindungsgemäßen Verfahrens eine Synchronisierung der virtuellen UhrvU der neuen Prozess-Instanz von dem zweiten Computersystem 50 aus initiiert werden. Sobald die virtuellen Uhren der bisherigen und der neuen Prozess-Instanz 55, 41 miteinander bzw. mit der Grandmaster Clock 26 des ersten Computersystems 30 synchronisiert sind, kann die eigentliche Verlagerung des Teil-Softwareprozesses auf konventionelle Weise erfolgen.
Figur 4 zeigt ein schematisches Blockschaltbild eines ersten, zweiten und dritten Computersystems 20, 40, 50, die das erfindungsgemäße Verfahren gemäß dem zweiten Aspekt implementieren, zu einem zweiten Zeitpunkt nach der Verlagerung des Teil-Softwareprozesses. Das erste Computersystem 20 ist nunmehr mit dem dritten Computersystem 40 bzw. der von diesem bereitgestellten Prozess-Instanz 41 über die Kommunikationsverbindung 30 verbunden. Das zweite Computersystem 50 kann bspw. in einen energiesparenden Zustand versetzt worden sein, angedeutet durch die gestrichelten Umrandungen der Prozess-Instanzen 51-55 und der Uhr 56 des zweiten Computersystems 50. Da die virtuellen Uhren vU der Prozess-Instanzen 55 und 41 vor der Verlagerung des Teil-Softwareprozesses synchronisiert waren, sind die mit Zeitstempeln in den ersten, zweiten und dritten Computersystemen jeweils lokal gespeicherten Daten zur Auswertung, Fehlersuche oder zu anderen Zwecken auf einfache Weise in eine geeignete Reihenfolge zu bringen.
Figur 5 zeigt ein schematisches Flussdiagramm des ersten Aspekts des erfindungsgemäßen Verfahrens 100. In Schritt 102 wird eine Grandmaster Clock in dem ersten Computersystem 20 bestimmt, welche die maßgebliche Zeitinformation innerhalb des Computersystems 20 bereitstellt. In Schritt 104 wird eine virtuelle Uhr vU in einer dem ersten Computersystem 20 zugewiesenen Prozess-Instanz 55 des zweiten Computersystems 50 bereitgestellt, und in Schritt 106 mit der Grandmaster Clock 26 des ersten Computersystems 20 synchronisiert. Anschließend werden, abhängig von Vorgaben des jeweiligen Teil-Softwareprozesses, Zustände und/oder Daten der ersten und zweiten Teil-Softwareprozesse in den die jeweiligen Teilprozesse ausführenden Computersystemen mit zugehörigen Zeitstempeln lokal gespeichert, Schritt 108.
Figur 6 zeigt ein schematisches Flussdiagramm des zweiten Aspekts des erfindungsgemäßen Verfahrens 100. Ausgehend von Schritt 108 des mit Bezug auf Figur 5 beschriebenen Verfahrens wird in Schritt 120 geprüft, ob eine Verlagerung des Teil-Softwareprozesses von der bisherigen Prozess-Instanz 55 des zweiten Computersystems 50 auf eine neue Prozess-Instanz 41 eines dritten Computersystems 40 bevorsteht. Falls nicht, wird die Prozessausführung unverändert fortgesetzt, „n“-Zweig von Schritt 120. Falls eine Verlagerung bevorsteht, „j“-Zweig von Schritt 120, wird in Schritt 122 die neue Prozess-Instanz 41 auf dem dritten Computersystem 40 eingerichtet und dem ersten Computersystem 20 zugeordnet. In Schritt 124 wird eine virtuelle Uhr vU in der neuen Prozess-Instanz 41 bereitgestellt und in Schritt 126 mit der virtuellen Uhr vU der bisherigen Prozess-Instanz 55 oder der Grandmaster Clock 26 des ersten Computersystems 20 synchronisiert. Anschließend wird in Schritt 128 der bisher in der Prozess-Instanz 55 ausgeführte Teil-Softwareprozess zu der neuen Prozess-Instanz 41 verlagert und dessen Ausführung dort fortgesetzt, Schritt 108‘. Entsprechend werden nun, abhängig von Vorgaben des verlagerten Teil-Softwareprozesses, Zustände und/oder Daten mit zugehörigen Zeitstempeln in dem dritten Computersystem 40 lokal gespeichert.
Das erfindungsgemäße Verfahren kann weitere, in der Figur nicht dargestellte Schritte umfassen, insbesondere das Speichern von Informationen zu Verlagerungen von Teil-Softwareprozessen, so dass zusammengehörende Daten und/oder Zustände auch bei mehrfacher Verlagerung auf unterschiedliche Prozess-Instanzen unterschiedlicher Computersysteme auffindbar sind und kombiniert werden können.
Figur 7 zeigt ein beispielhaftes Blockschaltbild eines das Verfahren implementierenden Netzwerkgeräts 200 eines ersten Computersystems 20. Das Netzwerkgerät 200 weist mindestens einen Prozessor 202 und zugeordneten flüchtigen und nichtflüchtigen Speicher 204, einen Zeitgeber 206 sowie eine Schnittstelle 208 zur Datenkommunikation mit einem zweiten Computersystem 50 auf, die mit einer oder mehreren Datenverbindungen oder -bussen 212 miteinander kommunikativ verbunden sind. In dem nichtflüchtigen Speicher 204 sind Computerprogramminstruktionen gespeichert die, wenn sie von dem mindestens einen Prozessor 202 ausgeführt werden, das Netzwerkgerät 200 zur Ausführung eines ersten Teil-Softwareprozesses einrichten der, ebenso wie ein von dem zweiten Computersystem 50 ausgeführter zweiter Teil-Softwareprozess, Bestandteil eines Gesamt-Softwareprozesses ist, und während dessen Ausführung Zustände und/oder Daten mit einem Zeitstempel versehen in dem Netzwerkgerät 200 oder einem Speicher des ersten Computersystems 20 lokal gespeichert werden. Die Computerprogramminstruktionen richten das Netzwerkgerät 200 außerdem dazu ein, über die Schnittstelle 208 zur Datenkommunikation Nachrichten zur Zeitsynchronisation an das zweite Computersystem 50 zu senden.
Figur 8 zeigt ein beispielhaftes Blockschaltbild eines zweiten Computersystems 50. Das zweite Computersystem 50 weist mindestens einen Prozessor 302 und zugeordneten flüchtigen und nichtflüchtigen Speicher 304, einen Zeitgeber 306 sowie eine Schnittstelle 308 zur Datenkommunikation mit einem ersten Computersystem 20 auf, die mit einer oder mehreren Datenverbindungen oder -bussen 312 miteinander kommunikativ verbunden sind. In dem nichtflüchtigen Speicher 304 sind Computerprogramminstruktionen gespeichert die, wenn sie von dem mindestens einen Prozessor 302 ausgeführt werden, das zweite Computersystem 50 zur Ausführung eines zweiten Teil-Softwareprozesses einrichten der, ebenso wie ein von dem ersten Computersystem 20 ausgeführter erster Teil-Softwareprozess, Bestandteil eines Gesamt-Softwareprozesses ist, und während dessen Ausführung Zustände und/oder Daten mit einem Zeitstempel versehen in dem zweiten Computersystem 50 lokal gespeichert werden. Die Computerprogramminstruktionen richten das zweite Computersystem 50 außerdem dazu ein, über die Schnittstelle 308 zur Datenkommunikation Nachrichten zur Zeitsynchronisation von dem ersten Computersystem 20 zu empfangen, eine virtuelle Uhr einer den zweiten Teil-Softwareprozess ausführenden Prozess-Instanz mit einer Grandmaster Clock des ersten Computersystem 20 zu synchronisieren, und die Zeitinformationen der synchronisierten virtuellen Uhr der Prozess-Instanz für den Zeitstempel der zu dem von der Prozess-Instanz ausgeführten zweiten Teil-Softwareprozess gespeicherten Zustände und/oder Daten zu verwenden. LISTE DER BEZUGSZEICHEN
10-15 Netzwerkgeräte 202 Prozessor
20 erstes Computersystem 204 Speicher
30 Kommunikationsverbindung 206 Uhr/Zeitgeber
40 drittes Computersystem 208 Schnittstelle
41-45 Prozess-Instanzen des 212 Datenverbindung/-bus dritten Computersystems 302 Prozessor
46 Uhr 304 Speicher
50 zweites Computersystem 306 Uhr/Zeitgeber
24-28 Netzwerkgeräte 308 Schnittstelle
51-55 Prozess-Instanzen des 312 Datenverbindung/-bus zweiten Computersystems
56 Uhr des ersten Computersystems
60 Netzwerkverbindung
70 Cloud / verbundene
Edge-Computer 100 Verfahren
102 Grandmaster Clock bestimmen
104 virtuelle Uhr bereitstellen
106 virtuelle Uhr synchronisieren
108, Teil-Softwareprozess ausführen
108'
120 Prüfen auf Verlagerung
122 neue Prozess-Instanz einrichten
124 virtuelle Uhr in neuer Prozess-
Instanz bereitstellen 126 virtuelle Uhr synchronisieren
128 Teil-Softwareprozess verlagern und fortsetzen
200 Netzwerkgerät des ersten
Computersystems

Claims

Patentansprüche
1. Verfahren (100) zur Zustands- und/oder Datenerfassung in auf einem ersten (20) und einem zweiten (50), räumlich voneinander getrennten Computersystemen ausgeführten, zu einem Softwareprozess gehörenden ersten und zweiten Teil-Softwareprozessen, wobei das zweite Computersystem (50) dazu eingerichtet ist, eine Vielzahl von zweiten Teil-Softwareprozessen einer entsprechenden Vielzahl von ersten Computersystemen (20) in jeweiligen Prozess-Instanzen (51-55) auszuführen, umfassend:
- Bestimmen (102) einer Grandmaster Clock in dem ersten Computersystem
(20),
- Bereitstellen (104) einer virtuellen Uhr (vU) in der dem ersten Computersystem (20) zugeordneten Prozess-Instanz (55),
- Synchronisieren (106) der virtuellen Uhr (vU) der dem ersten Computersystem (20) zugeordneten Prozess-Instanz (55) mit der Grandmaster Clock (26) des ersten Computersystems (20), und
- lokales Speichern (108) von Zuständen und/oder Daten der ersten und zweiten Teil-Softwareprozesse sowie zugehöriger Zeitstempel in dem den jeweiligen Teilprozess ausführenden Computersystem (20, 50).
2. Verfahren (100) nach Anspruch 1, wobei das Bereitstellen (104) der virtuellen Uhr (vU) in der dem ersten Computersystem (20) zugeordneten Prozess-Instanz (55) umfasst:
- Empfangen von Zeitinformationen einer Uhr (56) des zweiten Computersystems (50),
- Korrigieren der von der Uhr (56) des zweiten Computersystems (50) empfangenen Zeitinformationen mittels eines Offsets, und
- Bereitstellen der korrigierten Zeitinformationen innerhalb der Prozess-Instanz (55).
3. Verfahren (100) nach Anspruch 1 oder 2, wobei das Bereitstellen (104) der virtuellen Uhr (vU) in der dem ersten Computersystem (20) zugeordneten Prozess-Instanz (55) umfasst:
- Berechnen eines Driftfaktors zwischen der Uhr (56) des zweiten Computersystems (50) und der Grandmaster Clock (26) des ersten Computersystems (20).
4. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei das Verfahren bei Verlagerung des zweiten Teil-Softwareprozesses von einer dem ersten Computersystem (20) zugeordneten bisherigen Prozess-Instanz (55) zu einer neuen Prozessinstanz (41-45) eines dritten Computersystems
(40) umfasst:
- Einrichten (122) einer neuen Prozess-Instanz (41) auf dem dritten Computersystem (40), welche dem ersten Computersystem (20) zugeordnet wird,
- Bereitstellen (124) einer virtuellen Uhr (vU) in der neuen Prozess-Instanz
(41 ),
- Synchronisieren (126) der virtuellen Uhr (vU) in der neuen Prozess-Instanz (41) mit der virtuellen Uhr (vU) der bisherigen Prozess-Instanz (55) oder der Grandmaster Clock (26) des ersten Computersystems (20),
- Verlagern und Fortsetzen (128) der Ausführung des zweiten Teil-Softwareprozesses in der neuen Prozess-Instanz (41).
5. Verfahren (100) nach Anspruch 4, wobei das Bereitstellen (124) der virtuellen Uhr (vU) in der dem ersten Computersystem (20) zugeordneten neuen Prozess-Instanz (41) umfasst:
- Empfangen von Zeitinformationen einer Uhr (46) des dritten Computersystems (40),
- Korrigieren der Zeitinformationen der Uhr (46) des dritten Computersystems (40) mittels eines Offsets und/oder Driftfaktors, und
- Bereitstellen der korrigierten Zeitinformationen innerhalb der neuen Prozess-Instanz (41).
6. Verfahren (100) nach Anspruch 4 oder 5, wobei das Synchronisieren (126) der virtuellen Uhr (vU) in der dem ersten Computersystem (20) zugeordneten neuen Prozess-Instanz (41) umfasst:
- Berechnen eines Offsets und/oder eines Driftfaktors zwischen der Uhr (46) des dritten Computersystems (40) und der Grandmaster Clock (26) des ersten Computersystems (20).
7. Netzwerkgerät (200) eines ersten Computersystems (20) mit mindestens einem Prozessor (202) und zugeordnetem flüchtigen und nichtflüchtigen Speicher (204), einem Zeitgeber (206) sowie einer Schnittstelle (208) zur Datenkommunikation mit einem zweiten Computersystem (50), wobei in dem nichtflüchtigen Speicher (204) Computerprogramminstruktionen gespeichert sind die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Netzwerkgerät (200) zur Ausführung eines ersten Teil-Softwareprozesses einrichten der, ebenso wie ein von dem zweiten Computersystem (50) ausgeführter zweiter Teil-Softwareprozess, Bestandteil eines Gesamt-Softwareprozesses ist, und während dessen Ausführung Zustände und/oder Daten mit einem Zeitstempel versehen in dem Netzwerkgerät (200) oder einem Speicher des ersten Computersystems (20) lokal gespeichert werden, wobei die Computerprogramminstruktionen das Netzwerkgerät (200) außerdem dazu einrichten, über die Schnittstelle (208) zur Datenkommunikation Nachrichten zur Zeitsynchronisation an das zweite Computersystem (50) zu senden.
8. Fahrzeug mit einem Netzwerkgerät (200) nach Anspruch 7.
9. Zweites Computersystem (50) mit mindestens einem Prozessor (302) und zugeordnetem flüchtigen und nichtflüchtigen Speicher (304), einem Zeitgeber (306) sowie einer Schnittstelle (308) zur Datenkommunikation mit einem ersten Computersystem (20) gemäß Anspruch 7, wobei in dem nichtflüchtigen Speicher (304) Computerprogramminstruktionen gespeichert sind die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das zweite Computersystem (50) zur Ausführung eines zweiten Teil-Softwareprozesses einrichten der, ebenso wie ein von dem ersten Computersystem (20) ausgeführter erster Teil-Softwareprozess, Bestandteil eines Gesamt-Softwareprozesses ist, und während dessen Ausführung Zustände und/oder Daten mit einem Zeitstempel versehen in dem zweiten Computersystem (50) lokal gespeichert werden, wobei die Com puterprogramm Instruktionen das zweite Computersystem (50) außerdem dazu einrichten, über die Schnittstelle (308) zur Datenkommunikation Nachrichten zur Zeitsynchronisation von dem ersten Computersystem (20) zu empfangen, eine virtuelle Uhr (vU) einer den zweiten Teil-Softwareprozess ausführenden Prozess-Instanz (55) mit einer Grandmaster Clock (26) des ersten Computersystem (20) zu synchronisieren, und die Zeitinformationen der synchronisierten virtuellen Uhr (vU) der Prozess-Instanz (55) für den Zeitstempel der zu dem von der Prozess-Instanz (55) ausgeführten zweiten Teil-Softwareprozess gespeicherten Zustände und/oder Daten zu verwenden.
10. Zweites Computersystem (50) nach Anspruch 9, wobei die in dem nichtflüchtigen Speicher (304) gespeicherten
Com puterprogramm Instruktionen das zweite Computersystem (50) entsprechend dazu einrichten, bei einer bevorstehenden Verlagerung der Ausführung des zweiten Teil-Softwareprozesses zu einer von einem dritten Computersystem (40) bereitgestellten neuen Prozess-Instanz (41) eine virtuelle Uhr (vU) der neuen Prozess-Instanz (41 ) mit der virtuellen Uhr (vU) der bisherigen Prozess-Instanz (55) zu synchronisieren, bevor die Ausführung des zweiten Teil-Softwareprozesses tatsächlich verlagert wird.
11. Com puterprogramm produkt umfassend Befehle, die bei der Ausführung des Programms durch einen Prozessor (202) eines ersten Computersystems (20) dieses veranlassen, das Verfahren nach Anspruch 1, 2 oder 3 auszuführen, oder die bei der Ausführung durch einen Prozessor (302) eines zweiten Computersystems (50) dieses veranlassen, das Verfahren nach Anspruch 4, 5 oder 6 auszuführen.
12. Computerlesbares Medium, auf dem das Computerprogrammprodukt nach Anspruch 11 gespeichert ist.
PCT/EP2020/084418 2019-12-12 2020-12-03 Verfahren zur zeitlich synchronisierten zustands- und/oder datenerfassung in auf räumlich voneinander getrennten computersystemen ausgeführten, zu einem softwareprozess gehörigen teil-softwareprozessen WO2021115911A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019219413.3A DE102019219413A1 (de) 2019-12-12 2019-12-12 Verfahren zur zeitlich synchronisierten Zustands- und/oder Datenerfassung in auf räumlich voneinander getrennten Computersystemen ausgeführten, zu einem Softwareprozess gehörigen Teil-Softwareprozessen
DE102019219413.3 2019-12-12

Publications (1)

Publication Number Publication Date
WO2021115911A1 true WO2021115911A1 (de) 2021-06-17

Family

ID=73698849

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/084418 WO2021115911A1 (de) 2019-12-12 2020-12-03 Verfahren zur zeitlich synchronisierten zustands- und/oder datenerfassung in auf räumlich voneinander getrennten computersystemen ausgeführten, zu einem softwareprozess gehörigen teil-softwareprozessen

Country Status (2)

Country Link
DE (1) DE102019219413A1 (de)
WO (1) WO2021115911A1 (de)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10505651B1 (en) * 2018-08-03 2019-12-10 Whelen Engineering Company, Inc. Precision time synchronization over standardized networking protocols

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOPETZ H ET AL: "CLOCK SYNCHRONIZATION IN DISTRIBUTED REAL-TIME SYSTEMS", IEEE TRANSACTIONS ON COMPUTERS, IEEE, USA, vol. C-36, no. 8, 1 August 1987 (1987-08-01), pages 933 - 940, XP001042040, ISSN: 0018-9340 *

Also Published As

Publication number Publication date
DE102019219413A1 (de) 2021-06-17

Similar Documents

Publication Publication Date Title
EP1449317B1 (de) Verfahren zur synchronisation in netzwerken
DE102011111268B4 (de) Steuerungseinheit und Kommunikationssteuerungssystem
DE3486116T2 (de) Taktsynchronisation in einem verteilten Rechnernetz.
DE60220592T2 (de) Taktsynchronisation durch Teilnetzwerke
EP0570557A1 (de) Verfahren zur erzeugung einer systemzeitbasis in einer anlage mit verteilten rechnereinheiten
DE102005018837A1 (de) Verfahren und Vorrichtung zur Synchronisation zweier Bussysteme sowie Anordnung aus zwei Bussystemen
DE112005000406T5 (de) System und Verfahren zum Aufrechterhalten eines gemeinsamen Zeittaktes und einem Netzwerksegment
EP4078921B1 (de) Verfahren zur absicherung der zeitsynchronisation eines ethernet-bordnetzes
DE10361178B4 (de) Datenalterungsüberwachungsvorrichtung für Sicherheitsnetzwerke
DE10211281A1 (de) Verfahren und Vorrichtung zur Synchronisation der Zykluszeit von mehreren TTCAN-Bussen sowie entsprechendes Bussystem
EP3170285A1 (de) Verfahren zum bestimmen einer übertragungszeit eines telegramms in einem kommunikationsnetzwerk und entsprechende netzwerkkomponenten
EP1639758B1 (de) Verfahren und vorrichtung zum austausch von daten über ein bussystem
WO2014198517A1 (de) Verfahren zur zeitsynchronisation in einem kommunikationsnetz mit einer vielzahl von netzknoten
EP4073963B1 (de) Verfahren zur optimierung der zeitsynchronisation zwischen über ein kommunikationsnetzwerk verbundenen netzwerkgeräten
WO2011147653A1 (de) Verfahren und vorrichtung zum austausch von daten zwischen zwei geräten eines automatisierungsnetzwerks
WO2021122823A1 (de) Verfahren zur prüfung der gültigkeit von sensordaten eines ethernet-bordnetzes
WO2021115911A1 (de) Verfahren zur zeitlich synchronisierten zustands- und/oder datenerfassung in auf räumlich voneinander getrennten computersystemen ausgeführten, zu einem softwareprozess gehörigen teil-softwareprozessen
EP1754128A1 (de) Dezentrale zeitintervallsynchronisation in verteilten netzwerken
DE102014112901A1 (de) Kommunikationseinrichtung, Kommunikationssystem und Verfahren zum synchronisierten Senden von Telegrammen
EP4068014B1 (de) Hochverfügbare cloud-basierte automatisierungslösung mit optimierten übertragungszeiten
DE112020006268B4 (de) Zeitsynchronisationssystem, Masterstation und Zeitsynchronisationsverfahren
EP1303080B1 (de) Verfahren zur Kommunikation über einen Bus zwischen einem Prozessdatenserver und mindestens einem Empfänger
EP3767485A1 (de) Verfahren und system zum austausch zeitgestempelter daten
WO2024017947A2 (de) Synchronisiertes datennetzwerk-system und verfahren zum initialisieren sowie zum synchronisieren desselben
DE102019216090A1 (de) Verfahren zur Erkennung eines Ausfalls eines redundanten Kommunikationspfades in einem Netzwerk

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: 20819715

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: 20819715

Country of ref document: EP

Kind code of ref document: A1