Abstract: METHOD AND SYSTEM FOR PERFORMING CHECKPOINTING OF AN APPLICATION IN A COMPUTING SYSTEM ABSTRACT Embodiments of present disclosure relates to method and system for performing checkpointing of an application in a computing system. The method is performed by a checkpointing coordinator associated with a local controller from plurality of controllers in the computing system. The method comprises to receive an initiation request to initiate storage allocation of checkpoint data of the application from plurality of applications associated with the local controller. Further, at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, is allocated. The allocation is based on at least one of safety critical level, response time and storage level associated with each of the plurality of applications. Figure 4
1. A method for performing checkpointing of an application in a computing system, the method comprising: receiving, by a checkpointing coordinator associated with a local controller from plurality of controllers in a computing system, an initiation request to initiate storage allocation of checkpoint data of an application from plurality of applications associated with the local controller; and allocating, by the checkpoint coordinator, at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, wherein the allocation is based on one or more safety critical parameters associated with each of the plurality of applications.
2. The method as claimed in claim 1, wherein the safety critical parameters comprises safety critical level, response time and storage level associated with each of the plurality of applications, for allocating at least one of the storage space for the checkpoint data, and the time frame.
3. The method as claimed in claim 1, further comprises: identifying, by the checkpointing coordinator, the application to be a safety-critical application in the computing system; receiving, by the checkpointing coordinator, information related to at least one remote controller from the plurality of controllers, for the application, wherein the information is received from a safety management unit of the computing system; and transmitting, by the checkpointing coordinator, the checkpoint data of the application from the local controller to the at least one remote controller, based on the information, the storage space and the allocated time frame.
4. The method as claimed in claim 2, wherein allocating the time frame comprises: identifying order of prioritization level of each of the plurality of applications in the computing system, based on at least one of the storage level, the safety critical level and the response time of respective application, wherein the order of prioritization level ranges from highest priority to lowest priority; and allocating the checkpoint data of the application in a slot of the time frame based on the order of prioritization level.
5. The method as claimed in claim 4, wherein the application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time, wherein the checkpoint data of the application with the highest priority is allocated to nearest slot in the time frame.
6. A checkpointing coordinator for performing checkpointing of an application in a computing system, the checkpointing coordinator is associated with a local controller from plurality of controllers in a computing system and comprises: a processor; and a memory communicatively coupled to the processor, wherein the memory stores processor-executable instructions, which, on execution, cause the processor to: receive an initiation request to initiate storage allocation of checkpoint data of an application from plurality of applications associated with the local controller; and allocate at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, wherein the allocation is based on one or more safety critical parameters associated with each of the plurality of applications.
7. The checkpointing coordinator as claimed in claim 6, wherein the safety critical parameters comprises safety critical level, response time and storage level associated with each of the plurality of applications, for allocating at least one of the storage space for the checkpoint data, and the time frame.
8. The checkpointing coordinator as claimed in claim 6, wherein the processor is further configured to: identify the application to be a safety-critical application in the computing system; receive information related to at least one remote controller from the plurality of controllers, for the application, wherein the information is received from a safety management unit of the computing system; and transmit the checkpoint data of the application from the local controller to the at least one remote controller, based on the information, the storage space and the allocated time frame.
9. The checkpointing coordinator as claimed in claim 7, wherein the processor is configured to allocate the time frame by: identifying order of prioritization level of each of the plurality of applications in the computing system, based on at least one of the storage level, the safety critical level and the response time of respective application, wherein the order of prioritization level ranges from highest priority to lowest priority; and allocating the checkpoint data of the application in a slot of the time frame based on the order of prioritization level.
10. The checkpointing coordinator as claimed in claim 9, wherein the application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time, wherein the , wherein the checkpoint data of the application with the highest priority is allocated to nearest slot in the time frame. , Description:TECHNICAL FIELD The present subject matter is related in general to computing system, more particularly, but not exclusively to method and system for performing checkpointing of an application in the computing system. BACKGROUND Computing system are implemented for various applications. These computing systems are not always reliable as there are possibilities of run-time failures. Fault tolerance in these computing systems is required to recovery from a run time failure. State and data backup are needed to recover from failures. However, backup is a resource consuming task. Local backup storage is costly hence network backup is preferably is some scenarios. However, the network backup can be non-deterministic and cannot be feasible in some cases, since it depends on network load. Fault tolerances include one or more checkpointing schemes which perform checkpointing based on various parameters like current system load, allowable down time, backup history depth, runtime resource requirements of the application. However, such schemes may not aid in faster recovering for safety critical systems. The information disclosed in this background of the disclosure section is only for enhancement of understanding of the general background of the invention and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art. SUMMARY In an embodiment, the present disclosure relates for performing checkpointing of an application in a computing system. The method is performed by a checkpointing coordinator associated with a local controller from plurality of controllers in the computing system. The method comprises to receive an initiation request to initiate storage allocation of checkpoint data of the application from plurality of applications associated with the local controller. Further, at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, is allocated. The allocation is based on one or more safety critical parameters associated with each of the plurality of applications. In an embodiment, the present disclosure relates to a checkpointing coordinator for performing checkpointing of an application in a computing system. The checkpointing coordinator comprises a processor and a memory communicatively coupled to the processor. The memory stores processor-executable instructions, which, on execution, cause the processor to perform checkpointing of the application. The checkpointing coordinator is configured to receive an initiation request to initiate storage allocation of checkpoint data of the application from plurality of applications associated with the local controller. Further, the checkpointing coordinator is configured to allocate at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers. The allocation is based on one or more safety critical parameters associated with each of the plurality of applications. The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description. BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed principles. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the figures to reference like features and components. Some embodiments of system and/or methods in accordance with embodiments of the present subject matter are now described, by way of example only, and regarding the accompanying figures, in which: Figure 1 shows exemplary environment of a computing system comprising checkpointing coordinator for performing checkpointing of an application in a computing system, in accordance with some embodiments of the present disclosure; Figure 2 shows a detailed block diagram of a checkpointing coordinator for performing checkpointing of an application in a computing system, in accordance with some embodiments of the present disclosure; Figures 3a and 3b show exemplary embodiments for performing checkpointing of an application in a computing system, in accordance with some embodiments of the present disclosure; Figure 4 shows a flow diagram illustrating method for performing checkpointing of an application in a computing system, in accordance with some embodiments of present disclosure; and Figure 5 illustrates a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure. It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether such computer or processor is explicitly shown. DETAILED DESCRIPTION In the present document, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or implementation of the present subject matter described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments. While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternative falling within the spirit and the scope of the disclosure. The terms “comprises”, “comprising”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “comprises… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or method. The terms “includes”, “including”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device or method that includes a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “includes… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or method. In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense. Present disclosure system and method for performing checkpointing for an application in a computing system. The present disclosure teaches to allocate storage space for storing checkpoint data and a time frame for transmitting the checkpoint data to a remote controller from a local controller based on one or more safety critical parameters associated with each of plurality of applications in the computing system. The one or more safety critical parameters include safety critical level, response time and storage level of the application. By considering such factors, the present disclosure proposes to prioritize safety critical applications over normal applications. By implementing such checkpointing scheme, faster recover of safety critical applications during runtime failure may be achieved with a deterministic latency. For example, the deterministic latency may be 100ms for an application. by proposed checkpointing scheme. The recovery of the safety critical applications is achieved without exceeding the 100ms of time. A computing system may be any system configured to perform retrieval of data, processing of the data, storing of the data and so on, to execute one or more actions. For example, a computing system may be an autonomous system configured to perform one or more actions based on retrieved data. The autonomous system may be an autonomous vehicle, a robotic system and so on. In an embodiment, the computing system may comprise plurality of controllers and each of the controllers may be configured to manage one or more applications. Each of the one or more applications may be associated with one or more resources of the computing system. The one or more application may be configured to executed designated actions using the one or more resources. The one or more resources may include, but are not limited to, data channels, memory unit, I/O ports, processing units and so on. Checkpointing is a technique that provides fault tolerance for computing systems. Checkpointing consists of saving a snapshot or record of state of an application. Such snapshot or record may be referred to as checkpoint data for that application. In an embodiment, checkpointing may be performed at regular intervals of time. In an embodiment, each of the plurality of controllers in the computing system may be dedicated with a checkpointing coordinator for performing the checkpointing. The checkpointing coordinator of the controller may be configured to perform checkpointing of each of the one or more applications associated with the controller. In an embodiment, a single checkpointing coordinator may be coupled with one or more controllers. Such checkpointing coordinator may be configured to perform checkpointing of each of the applications associated with each of the one or more controllers. Figure 1 shows an exemplary environment 100 of a computing system. Practically, a computing system may comprise plurality of controllers and each of the plurality of controllers manage one or more applications. In the exemplary environment, the computing system comprises a first controller 101.1 and a second controller 101.2. The first controller 101.1 manages first application 1021.1, a second application 1021.2 and a third application 1021.3. The first controller 101.1 may comprise a first checkpointing coordinator 103.1, a first safety management unit 104.1 and a first network driver 105.1. Similarly, the second controller 101.2 manages a fourth application 1022.4 and a fifth application 1022.5. The second controller 101.2 may comprise a second checkpointing coordinator 103.2, a second safety management unit 104.2 and a second network driver 105.2. The first checkpointing coordinator 103.1 and the second checkpointing coordinator 103.2 may be configured to perform checkpointing of applications in the first controller 101.1 and the second controller 101.2, respectively. In an embodiment, checkpointing for an application may be performed during runtime of the application. When performing the checkpointing, the checkpoint data retrieved for the application may be stored in storage unit related to the checkpointing coordinator. In an embodiment, such storage unit may be a non-volatile memory. In an embodiment, each of the controllers in the computing unit may be associated with a safety management unit. Such safety management unit may be configured to monitor and manage safety critical applications amongst the applications in the controller. An application may be referred to be a safety critical application when failure of such application causes severe consequences like death, permanent damage, irrecoverable failure and so on. For example, in an autonomous vehicle, a safety critical application may be braking system, wherein failure of the braking system may cause accidents and death to people inside the autonomous vehicle. In medical field, a safety critical application may be application relating to a device performing operation on a patient, or medicine inducing system and so on. A safety critical application may be identified using certain safety critical parameters. For example, the safety critical parameters may include, but are not limited to, storage level, safety critical level and low response time. Any other parameters which define criticality or safety level of the application may be considered as safety critical parameters. Usually, the safety critical applications are associated with high storage level, high safety critical level and low response time. In example illustrated in Figure 1, consider the second application 1021.2 is a safety critical application with local controller as the first controller 101.1. In an embodiment, the checkpointing coordinator may be configured to communicate with the safety management unit to receive information regarding safety critical applications. The information may be used to identify safety critical applications amongst one or more applications in the controller. In an embodiment, the information may be used to identify at least one remote controller which is configured to run the safety critical application when there is a runtime failure at local controller of the safety critical application. One or more other information related to the safety critical application may be retrieved from the safety management unit. In an embodiment, the information may be communicated by the safety management unit to the checkpointing coordinator, during runtime of the plurality of applications. For the exemplary environment 100, the first safety management unit 104.1 may be associated with the first controller 101.1 and the second safety management unit 104.2 may be associated with the second controller 101.2. In an embodiment, for the safety critical application, replication of the checkpoint may be created with at least one remote controller. In an embodiment, the replication of the checkpoint data may also be termed as migration of the checkpoint data. Such replications may be performed during runtime of the safety critical applications. The at least one remote controller may be selected based on resource requirements of the safety critical applications. For example, the remote controller associated with the second application 1021.2 may be the second controller 101.2. The checkpoint data of the second application 1021.2 is replicated or migrated to the second controller 101.2. By such replications, during runtime failure of the safety critical application in the local controller, the at least one remote controller may use the replicated checkpoint data to manage the safety critical application. Thus, smooth recover from the failure may be achieved. A network driver of a controller may be used by the controller to establish network and communicate with other controllers and resources in the computing system. In an embodiment, the checkpointing coordinator may be configured to transmit the checkpoint data via the network driver to the at least one remote controller. In the given exemplary environment 100 of the computing system, the first network driver 105.1 may be associated with the first controller 101.1 and the second network driver 105.2 may be associated with the second controller 101.2. The checkpoint data related to the second application 1021.2 may be transmitted to the second controller 101.2 via the first network driver 105.1 and the second network driver 105.2. The claimed checkpointing coordinator 200 is configured to performed checkpointing as proposed in the present disclosure. The checkpointing coordinator 200 may include a processor 201, I/O interface 202 and a memory 203, as shown in Figure 2. In some embodiments, the memory 203 may be communicatively coupled to the processor 201. The memory 203 stores instructions, executable by the processor 201, which on execution, may cause the checkpointing coordinator 200 to perform checkpointing in the computing system. In an embodiment, the memory 203 may include one or more modules 204 and data 205. The one or more modules 204 may be configured to perform the steps of the present disclosure using the data 205, to perform the checkpointing as disclosed in the present disclosure. In an embodiment, each of the one or more modules 204 may be a hardware unit which may be outside the memory 203 and coupled with the checkpointing coordinator 200. In an embodiment, the checkpointing coordinator 200 may be located external to the computing system and may be implemented in a variety of systems, such as a laptop computer, a desktop computer, a Personal Computer (PC), a notebook, a smartphone, a tablet, e-book readers, a server, a network server, and the like. In such implementation, the computing system may communicate with the checkpointing coordinator 200 via a communication network. The communication network 103 may include, but is not limited to, a direct interconnection, a Peer to Peer (P2P) network, Local Area Network (LAN), Wide Area Network (WAN), wireless network (e.g., using Wireless Application Protocol), Controller Area Network (CAN), the Internet, Wi-Fi, and such. Figure 2 shows a detailed block diagram of the checkpointing coordinator 200. The data 205 and the one or more modules 204 in the memory 203 of the checkpointing coordinator 200 may be described herein in detail. In one implementation, the one or more modules 204 may include, but are not limited to, an initiation request receive module 206, an allocation module 207, a safety critical application identification module 208, a remote controller information receive module 209, a checkpoint data transmit module 210 and one or more other modules 211, associated with the checkpointing coordinator 200. In an embodiment, the data 205 in the memory 203 may include initiation request data 212, storage space allocation data 213, time frame allocation data 214, safety critical parameters 215, , checkpoint data 216, application data 217 and other data 218 associated with the checkpointing coordinator 200. In an embodiment, the data 205 in the memory 203 may be processed by the one or more modules 204 of the checkpointing coordinator 200. In an embodiment, the one or more modules 204 may be implemented as dedicated units and when implemented in such a manner, said modules may be configured with the functionality defined in the present disclosure to result in a novel hardware. As used herein, the term module may refer to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a Field-Programmable Gate Arrays (FPGA), Programmable System-on-Chip (PSoC), a combinational logic circuit, and/or other suitable components that provide the described functionality. The I/O interface 202 of the checkpointing coordinator 200 may assist in transmitting and receiving data. Received data may include, but is not limited to, initiation request, information related to at least one remote controller, safety critical parameters and so on. Transmitted data may include, but is not limited to, information related to allocation, checkpoint data, and so on. One or more other data, which is associated with performing checkpointing may be received and transmitted via the I/O interface 202. Figure 3a shows a block diagram of the checkpointing coordinator 200 comprising the one or more modules 204. In an embodiment, the checkpointing coordinator 200 may be configured to perform checkpointing of an application in a computing system during the run time of the application. The initiation request receive module 206 is configured to receive an initiation request to initiate storage allocation of checkpoint data 216 of the application from plurality of applications associated with the local controller. The received initiation request may be stored as the initiation request data 212. In an embodiment, the initiation request may be received from an application interface 301 of the computing system. In an embodiment, the initiation request may be provided by a user via the application interface 301. In an embodiment, the initiation request may be automatically triggered when runtime of the application is initiated. In an embodiment, the initiation request may be automatically triggered when checkpointing of the application is triggered. Upon receiving the initiation request, the allocation module 207 may be configured to allocate at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers. The allocation is based on one or more safety critical parameters associated with plurality of applications. The safety critical parameters are parameters which define criticality associated by each of the plurality of applications. In an embodiment, the one or more safety critical parameters may include, but are not limited to, at least one of safety critical level, response time and storage level associated with each of the plurality of applications. The one or more safety critical parameters associated with each of the plurality of applications may be stored as the safety critical parameters 215 in the memory 203. In an embodiment, each of the one or more safety critical parameters may be predefined for each application in the computing system. In an embodiment, the checkpointing coordinator 200 may retrieve the one or more safety critical parameters associated with plurality of applications from the safety management unit 303. In an embodiment, the allocated storage space may be associated with one of the local controller or the at least one remote controller. In an embodiment, the storage space may be in the local controller when the application is identified to be a normal application i.e., not a safety critical application. In an embodiment, the storage space may be allocated in the at least one remote controller when the application is determined to be the safety critical application. Further, the time frame may be allocated when the application is identified to be the safety critical application. Information related to the allocated storage space and the allocated time frame may be stored as the storage space allocation data 213 and the time frame allocation data 214, respectively, in the memory 203. In an embodiment, the safety critical application identification module 208 may be configured to identify the application to be a safety-critical application. In an embodiment, each of the applications in the computing system may be predefined to one of the safety critical application or the normal application. Such information relating to each of the application may be stored as the application data 217 in the memory 203. In an embodiment, other information such as remote controller associated with each application, configuration details, settings details and any other information related to each application may be stored as th application data 217. In an embodiment, each of the plurality of applications may be predefined to be one of the safety critical application or the normal application, by the user. In an embodiment, at least one of the safety critical level, the storage level and the response time of each of the one or more applications may be analyzed to identify corresponding application to be either the safety critical application or the normal application. By allocating the time frame, the checkpoint data may be assigned with a slot in the time frame. The slot may define time at which the checkpoint data 216 need to be migrated to the at least one remote controller 302. In an embodiment, the allocation module 207 may allocate time frame by identifying order of prioritization level of each of the plurality of applications in the computing system. The order of the prioritization level is based on the one or more storage parameters. In an embodiment, the one or more storage parameters may include, but are not limited to, at least one of the storage level, the safety critical level and the response time of respective application. The order of prioritization level ranges from highest priority to lowest priority. In an embodiment, the application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time. The application is identified to be the lowest priority when the application is associated with at least one of minimum storage level, minimum safety critical level and maximum response time. Upon identifying the order of the prioritization level, the allocation module 207 is configured to allocate the checkpoint data 216 of the application in the slot of the time frame based on the order of prioritization level. In an embodiment, the checkpoint data 216 of the application with the highest priority is allocated to nearest slot in the time frame. Upon allocation of the time frame and the storage space, the remote controller information receive module 209 may be configured to receive the information related to the at least one remote controller 302. In an embodiment, the safety critical application may be associated with the at least one remote controller in the computing system. The at least one remote controller 302 may function to manage the safety critical application when there is a runtime failure at the safety critical application. Using the information related to the at least one remote controller 302, the checkpoint data transmit module 210 may be configured to transmit the checkpoint data 216 to the at least one remote controller 302. The checkpoint data 216 may be transmitted based on slot assigned in the time frame to the storage space in the at least one remote controller 302. In an embodiment, by transmitting the checkpoint data 216 based on the allocated time frame, the checkpoint data 216 of the application with the highest priority is transmitted prior to checkpoint data 216 of an application with the lowest priority. Consider the schematic figure illustrated in Figure 3b. The schematic diagram illustrates the checkpointing performed for a normal application 306 and a safety critical application 307 of a local controller 304. A checkpointing coordinator 308 of the local controller 304 may be configured to perform the checkpointing of the normal application 306 and the safety critical application 307. Consider the checkpointing is performed as proposed in the present disclosure. Checkpoint data for the normal application 306 is represented as “C1” and checkpoint data for the safety critical application 307 is represented as “C2”. Initially, storage space for both the normal application 306 and the safety critical application 307 may be allotted in memory of the checkpointing coordinator 308. “C1” and “C2” are stored in a memory of the checkpointing coordinator 308 during runtime of the normal application 306 and the safety critical application 307. Further, safety critical parameters of both the normal application 306 and the safety critical application 307 is considered. The normal application 306 may be identified to be of lowest priority and the safety critical application 307 may be identified to be of highest priority. Thus, the normal application 306 may be allocated with storage space in the local controller 304. The safety critical application 307 may be allocated with storage space in a remote controller 305 and a time frame with nearest slot. Transmission of “C2” to the remote controller 305 is initiated prior to storing of “C1”. “C2”is stored in the remote controller 305 and then “C1” is stored in the local controller 304. The other data 218 may store data, including temporary data and temporary files, generated by modules for performing the various functions of the checkpointing coordinator 200. The one or more modules 204 may also include other modules 211 to perform checkpointing. It will be appreciated that such modules may be represented as a single module or a combination of different modules. Figure 4 shows a flow diagram illustrating method for performing checkpointing of an application, in accordance with some embodiments of present disclosure. At block 401, the checkpointing coordinator 200 may be configured to receive an initiation request to initiate storage allocation of checkpoint data of the application. In an embodiment, the initiation request may be received from the application interface associated with the local controller. At block 402, the checkpointing coordinator 200 may be configured to allocate at least one of the storage space for the checkpoint data, and the time frame to transmit the checkpoint data to the at least one remote controller from the plurality of controllers. The allocation is based on at least one of the safety critical level, the response time and the storage level associated with each of the plurality of applications. In an embodiment, the time frame may be allocated by identifying the order of prioritization level of each of the plurality of applications in the computing system. The order of prioritization level may be identified based on at least one of the storage level, the safety critical level and the response time of respective application. The order of prioritization level ranges from the highest priority to the lowest priority. The application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time. Further, the checkpoint data of the application is allocated in the slot of the time frame based on the order of prioritization level. The checkpoint data of the application with the highest priority is allocated to nearest slot in the time frame. At block 403, the checkpointing coordinator 200 may be configured to identify the application to be a safety-critical application in the computing system. In an embodiment, such identification may be performed by analyzing the safety critical level, the response time and the storage level associated with the application. At block 404, the checkpointing coordinator 200 may be configured to receive information related to at least one remote controller from the plurality of controllers, for the application. In an embodiment, the information may be is received from the safety management unit of the computing system. At block 405, the checkpointing coordinator 200 may be configured to transmit the checkpoint data of the application from the local controller to the at least one remote controller, based on the information, the at least one storage space and the allocated time frame. In an embodiment, subsequent checkpoint data may also be stored and transmitted based on the allocation performed for the application. Method illustrated in Figure 4 may include one or more blocks for executing processes in the checkpointing coordinator 200. The method illustrated in Figure 4 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types. The order in which the method illustrated in Figure 4 are described may not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method. Additionally, individual blocks may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. Computing System Figure 5 illustrates a block diagram of an exemplary computer system 500 for implementing embodiments consistent with the present disclosure. In an embodiment, the computer system 500 is used to implement the checkpointing coordinator 200. The computer system 500 may include a central processing unit (“CPU” or “processor”) 502. The processor 502 may include at least one data processor for executing processes in Virtual Storage Area Network. The processor 502 may include specialized processing units such as, integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc. The processor 502 may be disposed in communication with one or more input/output (I/O) devices 509 and 510 via I/O interface 501. The I/O interface 501 may employ communication protocols/methods such as, without limitation, audio, analog, digital, monaural, RCA, stereo, IEEE-1394, serial bus, universal serial bus (USB), infrared, PS/2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), radio frequency (RF) antennas, S-Video, VGA, IEEE 802.n /b/g/n/x, Bluetooth, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-term evolution (LTE), WiMax, or the like), etc. Using the I/O interface 501, the computer system 500 may communicate with one or more I/O devices 509 and 510. For example, the input devices 509 may be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, stylus, scanner, storage device, transceiver, video device/source, etc. The output devices 510 may be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma, Plasma Display Panel (PDP), Organic light-emitting diode display (OLED) or the like), audio speaker, etc. In some embodiments, the computer system 500 may consist of the checkpointing coordinator 200. The processor 502 may be disposed in communication with a communication network 511 via a network interface 503. The network interface 503 may communicate with the communication network 511. The network interface 503 may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/internet protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x, etc. The communication network 511 may include, without limitation, a direct interconnection, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, etc. Using the network interface 503 and the communication network 511, the computer system 500 may communicate with a remote controller 512. The network interface 503 may employ connection protocols include, but not limited to, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/internet protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x, etc. The communication network 511 includes, but is not limited to, a direct interconnection, an e-commerce network, a peer to peer (P2P) network, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, Wi-Fi, and such. The first network and the second network may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other. Further, the first network and the second network may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc. In some embodiments, the processor 502 may be disposed in communication with a memory 505 (e.g., RAM, ROM, etc. not shown in Figure 5) via a storage interface 504. The storage interface 504 may connect to memory 505 including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as, serial advanced technology attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), fibre channel, Small Computer Systems Interface (SCSI), etc. The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid-state drives, etc. The memory 505 may store a collection of program or database components, including, without limitation, user interface 506, an operating system 507, web browser 508 etc. In some embodiments, computer system 500 may store user/application data, such as, the data, variables, records, etc., as described in this disclosure. Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle ® or Sybase®. The operating system 507 may facilitate resource management and operation of the computer system 500. Examples of operating systems include, without limitation, APPLE MACINTOSH® OS X, UNIX®, UNIX-like system distributions (E.G., BERKELEY SOFTWARE DISTRIBUTIONTM (BSD), FREEBSDTM, NETBSDTM, OPENBSDTM, etc.), LINUX DISTRIBUTIONSTM (E.G., RED HATTM, UBUNTUTM, KUBUNTUTM, etc.), IBMTM OS/2, MICROSOFTTM WINDOWSTM (XPTM, VISTATM/7/8, 10 etc.), APPLE® IOSTM, GOOGLE® ANDROIDTM, BLACKBERRY® OS, or the like. In some embodiments, the computer system 500 may implement a web browser 508 stored program component. The web browser 508 may be a hypertext viewing application, such as Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Apple Safari, etc. Secure web browsing may be provided using Hypertext Transport Protocol Secure (HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), etc. Web browser 508 may utilize facilities such as AJAX, DHTML, Adobe Flash, JavaScript, Java, Application Programming Interfaces (APIs), etc. In some embodiments, the computer system 500 may implement a mail server stored program component. The mail server may be an Internet mail server such as Microsoft Exchange, or the like. The mail server may utilize facilities such as ASP, ActiveX, ANSI C++/C#, Microsoft .NET, Common Gateway Interface (CGI) scripts, Java, JavaScript, PERL, PHP, Python, WebObjects, etc. The mail server may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), Microsoft Exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like. In some embodiments, the computer system 500 may implement a mail client stored program component. The mail client may be a mail viewing application, such as Apple Mail, Microsoft Entourage, Microsoft Outlook, Mozilla Thunderbird, etc. Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., be non-transitory. Examples include Random Access Memory (RAM), Read-Only Memory (ROM), volatile memory, non-volatile memory, hard drives, Compact Disc (CD) ROMs, DVDs, flash drives, disks, and any other known physical storage media. media. The described operations may be implemented as a method, system or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “non-transitory computer readable medium”, where a processor may read and execute the code from the computer readable medium. The processor is at least one of a microprocessor and a processor capable of processing and executing the queries. A non-transitory computer readable medium may include media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. Further, non-transitory computer-readable media may include all computer-readable media except for a transitory. The code implementing the described operations may further be implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.). An “article of manufacture” includes non-transitory computer readable medium, and /or hardware logic, in which code may be implemented. A device in which the code implementing the described embodiments of operations is encoded may include a computer readable medium or hardware logic. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the invention, and that the article of manufacture may include suitable information bearing medium known in the art. The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the invention(s)” unless expressly specified otherwise. The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise. The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise. A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention. When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the invention need not include the device itself. The illustrated operations of Figure 4 shows certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified, or removed. Moreover, steps may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units. Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims. While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims. Referral numerals: Reference Number Description 100 Exemplary environment 101.1 First controller 101.2 Second controller 1021.1 First application 1021.2 Second application 1021.3 Third application 1022.4 Fourth application 1022.5 Fifth application 103.1 First checkpointing coordinator 103.2 Second checkpointing coordinator 104.1 First safety management unit 104.2 Second safety management unit 105.1 First network driver 105.2 Second network driver 200 Checkpointing coordinator 201 Processor 202 I/O interface 203 Memory 204 Modules 205 Data 206 Initiation request receive module 207 Allocation module 208 Safety-critical application identification module 209 Remote controller information receive module 210 Checkpoint data transmit module 211 Other modules 212 Initiation request data 213 Storage space allocation data 214 Time frame allocation data 215 Safety critical parameters 216 Checkpoint data 217 Application data 218 Other data 300 Block diagram 301 Application interface 302 Remote controller 303 Safety management unit 304 Local controller 305 Remote controller 306 Normal application 307 Safety critical application 308 Checkpointing coordinator 500 Computer System 501 I/O Interface 502 Processor 503 Network Interface 504 Storage Interface 505 Memory 506 User Interface 507 Operating System 508 Web Browser 509 Input Devices 510 Output Devices 511 Communication Network 512 Remote controller
Claims:WE CLAIM:
1. A method for performing checkpointing of an application in a computing system, the method comprising:
receiving, by a checkpointing coordinator associated with a local controller from plurality of controllers in a computing system, an initiation request to initiate storage allocation of checkpoint data of an application from plurality of applications associated with the local controller; and
allocating, by the checkpoint coordinator, at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, wherein the allocation is based on one or more safety critical parameters associated with each of the plurality of applications.
2. The method as claimed in claim 1, wherein the safety critical parameters comprises safety critical level, response time and storage level associated with each of the plurality of applications, for allocating at least one of the storage space for the checkpoint data, and the time frame.
3. The method as claimed in claim 1, further comprises:
identifying, by the checkpointing coordinator, the application to be a safety-critical application in the computing system;
receiving, by the checkpointing coordinator, information related to at least one remote controller from the plurality of controllers, for the application, wherein the information is received from a safety management unit of the computing system; and
transmitting, by the checkpointing coordinator, the checkpoint data of the application from the local controller to the at least one remote controller, based on the information, the storage space and the allocated time frame.
4. The method as claimed in claim 2, wherein allocating the time frame comprises:
identifying order of prioritization level of each of the plurality of applications in the computing system, based on at least one of the storage level, the safety critical level and the response time of respective application, wherein the order of prioritization level ranges from highest priority to lowest priority; and
allocating the checkpoint data of the application in a slot of the time frame based on the order of prioritization level.
5. The method as claimed in claim 4, wherein the application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time, wherein the checkpoint data of the application with the highest priority is allocated to nearest slot in the time frame.
6. A checkpointing coordinator for performing checkpointing of an application in a computing system, the checkpointing coordinator is associated with a local controller from plurality of controllers in a computing system and comprises:
a processor; and
a memory communicatively coupled to the processor, wherein the memory stores processor-executable instructions, which, on execution, cause the processor to:
receive an initiation request to initiate storage allocation of checkpoint data of an application from plurality of applications associated with the local controller; and
allocate at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, wherein the allocation is based on one or more safety critical parameters associated with each of the plurality of applications.
7. The checkpointing coordinator as claimed in claim 6, wherein the safety critical parameters comprises safety critical level, response time and storage level associated with each of the plurality of applications, for allocating at least one of the storage space for the checkpoint data, and the time frame.
8. The checkpointing coordinator as claimed in claim 6, wherein the processor is further configured to:
identify the application to be a safety-critical application in the computing system;
receive information related to at least one remote controller from the plurality of controllers, for the application, wherein the information is received from a safety management unit of the computing system; and
transmit the checkpoint data of the application from the local controller to the at least one remote controller, based on the information, the storage space and the allocated time frame.
9. The checkpointing coordinator as claimed in claim 7, wherein the processor is configured to allocate the time frame by:
identifying order of prioritization level of each of the plurality of applications in the computing system, based on at least one of the storage level, the safety critical level and the response time of respective application, wherein the order of prioritization level ranges from highest priority to lowest priority; and
allocating the checkpoint data of the application in a slot of the time frame based on the order of prioritization level.
10. The checkpointing coordinator as claimed in claim 9, wherein the application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time, wherein the , wherein the checkpoint data of the application with the highest priority is allocated to nearest slot in the time frame.
, Description:TECHNICAL FIELD
The present subject matter is related in general to computing system, more particularly, but not exclusively to method and system for performing checkpointing of an application in the computing system.
BACKGROUND
Computing system are implemented for various applications. These computing systems are not always reliable as there are possibilities of run-time failures. Fault tolerance in these computing systems is required to recovery from a run time failure. State and data backup are needed to recover from failures. However, backup is a resource consuming task. Local backup storage is costly hence network backup is preferably is some scenarios. However, the network backup can be non-deterministic and cannot be feasible in some cases, since it depends on network load.
Fault tolerances include one or more checkpointing schemes which perform checkpointing based on various parameters like current system load, allowable down time, backup history depth, runtime resource requirements of the application. However, such schemes may not aid in faster recovering for safety critical systems.
The information disclosed in this background of the disclosure section is only for enhancement of understanding of the general background of the invention and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.
SUMMARY
In an embodiment, the present disclosure relates for performing checkpointing of an application in a computing system. The method is performed by a checkpointing coordinator associated with a local controller from plurality of controllers in the computing system. The method comprises to receive an initiation request to initiate storage allocation of checkpoint data of the application from plurality of applications associated with the local controller. Further, at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers, is allocated. The allocation is based on one or more safety critical parameters associated with each of the plurality of applications.
In an embodiment, the present disclosure relates to a checkpointing coordinator for performing checkpointing of an application in a computing system. The checkpointing coordinator comprises a processor and a memory communicatively coupled to the processor. The memory stores processor-executable instructions, which, on execution, cause the processor to perform checkpointing of the application. The checkpointing coordinator is configured to receive an initiation request to initiate storage allocation of checkpoint data of the application from plurality of applications associated with the local controller. Further, the checkpointing coordinator is configured to allocate at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers. The allocation is based on one or more safety critical parameters associated with each of the plurality of applications.
The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed principles. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the figures to reference like features and components. Some embodiments of system and/or methods in accordance with embodiments of the present subject matter are now described, by way of example only, and regarding the accompanying figures, in which:
Figure 1 shows exemplary environment of a computing system comprising checkpointing coordinator for performing checkpointing of an application in a computing system, in accordance with some embodiments of the present disclosure;
Figure 2 shows a detailed block diagram of a checkpointing coordinator for performing checkpointing of an application in a computing system, in accordance with some embodiments of the present disclosure;
Figures 3a and 3b show exemplary embodiments for performing checkpointing of an application in a computing system, in accordance with some embodiments of the present disclosure;
Figure 4 shows a flow diagram illustrating method for performing checkpointing of an application in a computing system, in accordance with some embodiments of present disclosure; and
Figure 5 illustrates a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.
It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether such computer or processor is explicitly shown.
DETAILED DESCRIPTION
In the present document, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or implementation of the present subject matter described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternative falling within the spirit and the scope of the disclosure.
The terms “comprises”, “comprising”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “comprises… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or method.
The terms “includes”, “including”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device or method that includes a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “includes… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or method.
In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense.
Present disclosure system and method for performing checkpointing for an application in a computing system. The present disclosure teaches to allocate storage space for storing checkpoint data and a time frame for transmitting the checkpoint data to a remote controller from a local controller based on one or more safety critical parameters associated with each of plurality of applications in the computing system. The one or more safety critical parameters include safety critical level, response time and storage level of the application. By considering such factors, the present disclosure proposes to prioritize safety critical applications over normal applications. By implementing such checkpointing scheme, faster recover of safety critical applications during runtime failure may be achieved with a deterministic latency. For example, the deterministic latency may be 100ms for an application. by proposed checkpointing scheme. The recovery of the safety critical applications is achieved without exceeding the 100ms of time.
A computing system may be any system configured to perform retrieval of data, processing of the data, storing of the data and so on, to execute one or more actions. For example, a computing system may be an autonomous system configured to perform one or more actions based on retrieved data. The autonomous system may be an autonomous vehicle, a robotic system and so on. In an embodiment, the computing system may comprise plurality of controllers and each of the controllers may be configured to manage one or more applications. Each of the one or more applications may be associated with one or more resources of the computing system. The one or more application may be configured to executed designated actions using the one or more resources. The one or more resources may include, but are not limited to, data channels, memory unit, I/O ports, processing units and so on.
Checkpointing is a technique that provides fault tolerance for computing systems. Checkpointing consists of saving a snapshot or record of state of an application. Such snapshot or record may be referred to as checkpoint data for that application. In an embodiment, checkpointing may be performed at regular intervals of time. In an embodiment, each of the plurality of controllers in the computing system may be dedicated with a checkpointing coordinator for performing the checkpointing. The checkpointing coordinator of the controller may be configured to perform checkpointing of each of the one or more applications associated with the controller. In an embodiment, a single checkpointing coordinator may be coupled with one or more controllers. Such checkpointing coordinator may be configured to perform checkpointing of each of the applications associated with each of the one or more controllers.
Figure 1 shows an exemplary environment 100 of a computing system. Practically, a computing system may comprise plurality of controllers and each of the plurality of controllers manage one or more applications. In the exemplary environment, the computing system comprises a first controller 101.1 and a second controller 101.2. The first controller 101.1 manages first application 1021.1, a second application 1021.2 and a third application 1021.3. The first controller 101.1 may comprise a first checkpointing coordinator 103.1, a first safety management unit 104.1 and a first network driver 105.1. Similarly, the second controller 101.2 manages a fourth application 1022.4 and a fifth application 1022.5. The second controller 101.2 may comprise a second checkpointing coordinator 103.2, a second safety management unit 104.2 and a second network driver 105.2. The first checkpointing coordinator 103.1 and the second checkpointing coordinator 103.2 may be configured to perform checkpointing of applications in the first controller 101.1 and the second controller 101.2, respectively. In an embodiment, checkpointing for an application may be performed during runtime of the application. When performing the checkpointing, the checkpoint data retrieved for the application may be stored in storage unit related to the checkpointing coordinator. In an embodiment, such storage unit may be a non-volatile memory. In an embodiment, each of the controllers in the computing unit may be associated with a safety management unit. Such safety management unit may be configured to monitor and manage safety critical applications amongst the applications in the controller. An application may be referred to be a safety critical application when failure of such application causes severe consequences like death, permanent damage, irrecoverable failure and so on. For example, in an autonomous vehicle, a safety critical application may be braking system, wherein failure of the braking system may cause accidents and death to people inside the autonomous vehicle. In medical field, a safety critical application may be application relating to a device performing operation on a patient, or medicine inducing system and so on. A safety critical application may be identified using certain safety critical parameters. For example, the safety critical parameters may include, but are not limited to, storage level, safety critical level and low response time. Any other parameters which define criticality or safety level of the application may be considered as safety critical parameters. Usually, the safety critical applications are associated with high storage level, high safety critical level and low response time. In example illustrated in Figure 1, consider the second application 1021.2 is a safety critical application with local controller as the first controller 101.1. In an embodiment, the checkpointing coordinator may be configured to communicate with the safety management unit to receive information regarding safety critical applications. The information may be used to identify safety critical applications amongst one or more applications in the controller. In an embodiment, the information may be used to identify at least one remote controller which is configured to run the safety critical application when there is a runtime failure at local controller of the safety critical application. One or more other information related to the safety critical application may be retrieved from the safety management unit. In an embodiment, the information may be communicated by the safety management unit to the checkpointing coordinator, during runtime of the plurality of applications. For the exemplary environment 100, the first safety management unit 104.1 may be associated with the first controller 101.1 and the second safety management unit 104.2 may be associated with the second controller 101.2. In an embodiment, for the safety critical application, replication of the checkpoint may be created with at least one remote controller. In an embodiment, the replication of the checkpoint data may also be termed as migration of the checkpoint data. Such replications may be performed during runtime of the safety critical applications. The at least one remote controller may be selected based on resource requirements of the safety critical applications. For example, the remote controller associated with the second application 1021.2 may be the second controller 101.2. The checkpoint data of the second application 1021.2 is replicated or migrated to the second controller 101.2. By such replications, during runtime failure of the safety critical application in the local controller, the at least one remote controller may use the replicated checkpoint data to manage the safety critical application. Thus, smooth recover from the failure may be achieved. A network driver of a controller may be used by the controller to establish network and communicate with other controllers and resources in the computing system. In an embodiment, the checkpointing coordinator may be configured to transmit the checkpoint data via the network driver to the at least one remote controller. In the given exemplary environment 100 of the computing system, the first network driver 105.1 may be associated with the first controller 101.1 and the second network driver 105.2 may be associated with the second controller 101.2. The checkpoint data related to the second application 1021.2 may be transmitted to the second controller 101.2 via the first network driver 105.1 and the second network driver 105.2.
The claimed checkpointing coordinator 200 is configured to performed checkpointing as proposed in the present disclosure. The checkpointing coordinator 200 may include a processor 201, I/O interface 202 and a memory 203, as shown in Figure 2. In some embodiments, the memory 203 may be communicatively coupled to the processor 201. The memory 203 stores instructions, executable by the processor 201, which on execution, may cause the checkpointing coordinator 200 to perform checkpointing in the computing system. In an embodiment, the memory 203 may include one or more modules 204 and data 205. The one or more modules 204 may be configured to perform the steps of the present disclosure using the data 205, to perform the checkpointing as disclosed in the present disclosure. In an embodiment, each of the one or more modules 204 may be a hardware unit which may be outside the memory 203 and coupled with the checkpointing coordinator 200. In an embodiment, the checkpointing coordinator 200 may be located external to the computing system and may be implemented in a variety of systems, such as a laptop computer, a desktop computer, a Personal Computer (PC), a notebook, a smartphone, a tablet, e-book readers, a server, a network server, and the like. In such implementation, the computing system may communicate with the checkpointing coordinator 200 via a communication network. The communication network 103 may include, but is not limited to, a direct interconnection, a Peer to Peer (P2P) network, Local Area Network (LAN), Wide Area Network (WAN), wireless network (e.g., using Wireless Application Protocol), Controller Area Network (CAN), the Internet, Wi-Fi, and such.
Figure 2 shows a detailed block diagram of the checkpointing coordinator 200. The data 205 and the one or more modules 204 in the memory 203 of the checkpointing coordinator 200 may be described herein in detail.
In one implementation, the one or more modules 204 may include, but are not limited to, an initiation request receive module 206, an allocation module 207, a safety critical application identification module 208, a remote controller information receive module 209, a checkpoint data transmit module 210 and one or more other modules 211, associated with the checkpointing coordinator 200.
In an embodiment, the data 205 in the memory 203 may include initiation request data 212, storage space allocation data 213, time frame allocation data 214, safety critical parameters 215, , checkpoint data 216, application data 217 and other data 218 associated with the checkpointing coordinator 200.
In an embodiment, the data 205 in the memory 203 may be processed by the one or more modules 204 of the checkpointing coordinator 200. In an embodiment, the one or more modules 204 may be implemented as dedicated units and when implemented in such a manner, said modules may be configured with the functionality defined in the present disclosure to result in a novel hardware. As used herein, the term module may refer to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a Field-Programmable Gate Arrays (FPGA), Programmable System-on-Chip (PSoC), a combinational logic circuit, and/or other suitable components that provide the described functionality. The I/O interface 202 of the checkpointing coordinator 200 may assist in transmitting and receiving data. Received data may include, but is not limited to, initiation request, information related to at least one remote controller, safety critical parameters and so on. Transmitted data may include, but is not limited to, information related to allocation, checkpoint data, and so on. One or more other data, which is associated with performing checkpointing may be received and transmitted via the I/O interface 202.
Figure 3a shows a block diagram of the checkpointing coordinator 200 comprising the one or more modules 204. In an embodiment, the checkpointing coordinator 200 may be configured to perform checkpointing of an application in a computing system during the run time of the application.
The initiation request receive module 206 is configured to receive an initiation request to initiate storage allocation of checkpoint data 216 of the application from plurality of applications associated with the local controller. The received initiation request may be stored as the initiation request data 212. In an embodiment, the initiation request may be received from an application interface 301 of the computing system. In an embodiment, the initiation request may be provided by a user via the application interface 301. In an embodiment, the initiation request may be automatically triggered when runtime of the application is initiated. In an embodiment, the initiation request may be automatically triggered when checkpointing of the application is triggered.
Upon receiving the initiation request, the allocation module 207 may be configured to allocate at least one of storage space for the checkpoint data, and a time frame to transmit the checkpoint data to at least one remote controller from the plurality of controllers. The allocation is based on one or more safety critical parameters associated with plurality of applications. The safety critical parameters are parameters which define criticality associated by each of the plurality of applications. In an embodiment, the one or more safety critical parameters may include, but are not limited to, at least one of safety critical level, response time and storage level associated with each of the plurality of applications. The one or more safety critical parameters associated with each of the plurality of applications may be stored as the safety critical parameters 215 in the memory 203. In an embodiment, each of the one or more safety critical parameters may be predefined for each application in the computing system. In an embodiment, the checkpointing coordinator 200 may retrieve the one or more safety critical parameters associated with plurality of applications from the safety management unit 303. In an embodiment, the allocated storage space may be associated with one of the local controller or the at least one remote controller. In an embodiment, the storage space may be in the local controller when the application is identified to be a normal application i.e., not a safety critical application. In an embodiment, the storage space may be allocated in the at least one remote controller when the application is determined to be the safety critical application. Further, the time frame may be allocated when the application is identified to be the safety critical application. Information related to the allocated storage space and the allocated time frame may be stored as the storage space allocation data 213 and the time frame allocation data 214, respectively, in the memory 203. In an embodiment, the safety critical application identification module 208 may be configured to identify the application to be a safety-critical application. In an embodiment, each of the applications in the computing system may be predefined to one of the safety critical application or the normal application. Such information relating to each of the application may be stored as the application data 217 in the memory 203. In an embodiment, other information such as remote controller associated with each application, configuration details, settings details and any other information related to each application may be stored as th application data 217. In an embodiment, each of the plurality of applications may be predefined to be one of the safety critical application or the normal application, by the user. In an embodiment, at least one of the safety critical level, the storage level and the response time of each of the one or more applications may be analyzed to identify corresponding application to be either the safety critical application or the normal application.
By allocating the time frame, the checkpoint data may be assigned with a slot in the time frame. The slot may define time at which the checkpoint data 216 need to be migrated to the at least one remote controller 302. In an embodiment, the allocation module 207 may allocate time frame by identifying order of prioritization level of each of the plurality of applications in the computing system. The order of the prioritization level is based on the one or more storage parameters. In an embodiment, the one or more storage parameters may include, but are not limited to, at least one of the storage level, the safety critical level and the response time of respective application. The order of prioritization level ranges from highest priority to lowest priority. In an embodiment, the application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time. The application is identified to be the lowest priority when the application is associated with at least one of minimum storage level, minimum safety critical level and maximum response time. Upon identifying the order of the prioritization level, the allocation module 207 is configured to allocate the checkpoint data 216 of the application in the slot of the time frame based on the order of prioritization level. In an embodiment, the checkpoint data 216 of the application with the highest priority is allocated to nearest slot in the time frame.
Upon allocation of the time frame and the storage space, the remote controller information receive module 209 may be configured to receive the information related to the at least one remote controller 302. In an embodiment, the safety critical application may be associated with the at least one remote controller in the computing system. The at least one remote controller 302 may function to manage the safety critical application when there is a runtime failure at the safety critical application. Using the information related to the at least one remote controller 302, the checkpoint data transmit module 210 may be configured to transmit the checkpoint data 216 to the at least one remote controller 302. The checkpoint data 216 may be transmitted based on slot assigned in the time frame to the storage space in the at least one remote controller 302. In an embodiment, by transmitting the checkpoint data 216 based on the allocated time frame, the checkpoint data 216 of the application with the highest priority is transmitted prior to checkpoint data 216 of an application with the lowest priority.
Consider the schematic figure illustrated in Figure 3b. The schematic diagram illustrates the checkpointing performed for a normal application 306 and a safety critical application 307 of a local controller 304. A checkpointing coordinator 308 of the local controller 304 may be configured to perform the checkpointing of the normal application 306 and the safety critical application 307. Consider the checkpointing is performed as proposed in the present disclosure. Checkpoint data for the normal application 306 is represented as “C1” and checkpoint data for the safety critical application 307 is represented as “C2”. Initially, storage space for both the normal application 306 and the safety critical application 307 may be allotted in memory of the checkpointing coordinator 308. “C1” and “C2” are stored in a memory of the checkpointing coordinator 308 during runtime of the normal application 306 and the safety critical application 307. Further, safety critical parameters of both the normal application 306 and the safety critical application 307 is considered. The normal application 306 may be identified to be of lowest priority and the safety critical application 307 may be identified to be of highest priority. Thus, the normal application 306 may be allocated with storage space in the local controller 304. The safety critical application 307 may be allocated with storage space in a remote controller 305 and a time frame with nearest slot. Transmission of “C2” to the remote controller 305 is initiated prior to storing of “C1”. “C2”is stored in the remote controller 305 and then “C1” is stored in the local controller 304.
The other data 218 may store data, including temporary data and temporary files, generated by modules for performing the various functions of the checkpointing coordinator 200. The one or more modules 204 may also include other modules 211 to perform checkpointing. It will be appreciated that such modules may be represented as a single module or a combination of different modules.
Figure 4 shows a flow diagram illustrating method for performing checkpointing of an application, in accordance with some embodiments of present disclosure.
At block 401, the checkpointing coordinator 200 may be configured to receive an initiation request to initiate storage allocation of checkpoint data of the application. In an embodiment, the initiation request may be received from the application interface associated with the local controller.
At block 402, the checkpointing coordinator 200 may be configured to allocate at least one of the storage space for the checkpoint data, and the time frame to transmit the checkpoint data to the at least one remote controller from the plurality of controllers. The allocation is based on at least one of the safety critical level, the response time and the storage level associated with each of the plurality of applications. In an embodiment, the time frame may be allocated by identifying the order of prioritization level of each of the plurality of applications in the computing system. The order of prioritization level may be identified based on at least one of the storage level, the safety critical level and the response time of respective application. The order of prioritization level ranges from the highest priority to the lowest priority. The application is identified to be the highest priority when the application is associated with at least one of maximum storage level, maximum safety critical level and minimum response time. Further, the checkpoint data of the application is allocated in the slot of the time frame based on the order of prioritization level. The checkpoint data of the application with the highest priority is allocated to nearest slot in the time frame.
At block 403, the checkpointing coordinator 200 may be configured to identify the application to be a safety-critical application in the computing system. In an embodiment, such identification may be performed by analyzing the safety critical level, the response time and the storage level associated with the application.
At block 404, the checkpointing coordinator 200 may be configured to receive information related to at least one remote controller from the plurality of controllers, for the application. In an embodiment, the information may be is received from the safety management unit of the computing system.
At block 405, the checkpointing coordinator 200 may be configured to transmit the checkpoint data of the application from the local controller to the at least one remote controller, based on the information, the at least one storage space and the allocated time frame.
In an embodiment, subsequent checkpoint data may also be stored and transmitted based on the allocation performed for the application.
Method illustrated in Figure 4 may include one or more blocks for executing processes in the checkpointing coordinator 200. The method illustrated in Figure 4 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types.
The order in which the method illustrated in Figure 4 are described may not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method. Additionally, individual blocks may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.
Computing System
Figure 5 illustrates a block diagram of an exemplary computer system 500 for implementing embodiments consistent with the present disclosure. In an embodiment, the computer system 500 is used to implement the checkpointing coordinator 200. The computer system 500 may include a central processing unit (“CPU” or “processor”) 502. The processor 502 may include at least one data processor for executing processes in Virtual Storage Area Network. The processor 502 may include specialized processing units such as, integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc.
The processor 502 may be disposed in communication with one or more input/output (I/O) devices 509 and 510 via I/O interface 501. The I/O interface 501 may employ communication protocols/methods such as, without limitation, audio, analog, digital, monaural, RCA, stereo, IEEE-1394, serial bus, universal serial bus (USB), infrared, PS/2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), radio frequency (RF) antennas, S-Video, VGA, IEEE 802.n /b/g/n/x, Bluetooth, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-term evolution (LTE), WiMax, or the like), etc.
Using the I/O interface 501, the computer system 500 may communicate with one or more I/O devices 509 and 510. For example, the input devices 509 may be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, stylus, scanner, storage device, transceiver, video device/source, etc. The output devices 510 may be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma, Plasma Display Panel (PDP), Organic light-emitting diode display (OLED) or the like), audio speaker, etc.
In some embodiments, the computer system 500 may consist of the checkpointing coordinator 200. The processor 502 may be disposed in communication with a communication network 511 via a network interface 503. The network interface 503 may communicate with the communication network 511. The network interface 503 may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/internet protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x, etc. The communication network 511 may include, without limitation, a direct interconnection, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, etc. Using the network interface 503 and the communication network 511, the computer system 500 may communicate with a remote controller 512. The network interface 503 may employ connection protocols include, but not limited to, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/internet protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x, etc.
The communication network 511 includes, but is not limited to, a direct interconnection, an e-commerce network, a peer to peer (P2P) network, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, Wi-Fi, and such. The first network and the second network may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other. Further, the first network and the second network may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc.
In some embodiments, the processor 502 may be disposed in communication with a memory 505 (e.g., RAM, ROM, etc. not shown in Figure 5) via a storage interface 504. The storage interface 504 may connect to memory 505 including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as, serial advanced technology attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), fibre channel, Small Computer Systems Interface (SCSI), etc. The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid-state drives, etc.
The memory 505 may store a collection of program or database components, including, without limitation, user interface 506, an operating system 507, web browser 508 etc. In some embodiments, computer system 500 may store user/application data, such as, the data, variables, records, etc., as described in this disclosure. Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle ® or Sybase®.
The operating system 507 may facilitate resource management and operation of the computer system 500. Examples of operating systems include, without limitation, APPLE MACINTOSH® OS X, UNIX®, UNIX-like system distributions (E.G., BERKELEY SOFTWARE DISTRIBUTIONTM (BSD), FREEBSDTM, NETBSDTM, OPENBSDTM, etc.), LINUX DISTRIBUTIONSTM (E.G., RED HATTM, UBUNTUTM, KUBUNTUTM, etc.), IBMTM OS/2, MICROSOFTTM WINDOWSTM (XPTM, VISTATM/7/8, 10 etc.), APPLE® IOSTM, GOOGLE® ANDROIDTM, BLACKBERRY® OS, or the like.
In some embodiments, the computer system 500 may implement a web browser 508 stored program component. The web browser 508 may be a hypertext viewing application, such as Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Apple Safari, etc. Secure web browsing may be provided using Hypertext Transport Protocol Secure (HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), etc. Web browser 508 may utilize facilities such as AJAX, DHTML, Adobe Flash, JavaScript, Java, Application Programming Interfaces (APIs), etc. In some embodiments, the computer system 500 may implement a mail server stored program component. The mail server may be an Internet mail server such as Microsoft Exchange, or the like. The mail server may utilize facilities such as ASP, ActiveX, ANSI C++/C#, Microsoft .NET, Common Gateway Interface (CGI) scripts, Java, JavaScript, PERL, PHP, Python, WebObjects, etc. The mail server may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), Microsoft Exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like. In some embodiments, the computer system 500 may implement a mail client stored program component. The mail client may be a mail viewing application, such as Apple Mail, Microsoft Entourage, Microsoft Outlook, Mozilla Thunderbird, etc.
Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., be non-transitory. Examples include Random Access Memory (RAM), Read-Only Memory (ROM), volatile memory, non-volatile memory, hard drives, Compact Disc (CD) ROMs, DVDs, flash drives, disks, and any other known physical storage media.
media.
The described operations may be implemented as a method, system or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “non-transitory computer readable medium”, where a processor may read and execute the code from the computer readable medium. The processor is at least one of a microprocessor and a processor capable of processing and executing the queries. A non-transitory computer readable medium may include media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. Further, non-transitory computer-readable media may include all computer-readable media except for a transitory. The code implementing the described operations may further be implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.).
An “article of manufacture” includes non-transitory computer readable medium, and /or hardware logic, in which code may be implemented. A device in which the code implementing the described embodiments of operations is encoded may include a computer readable medium or hardware logic. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the invention, and that the article of manufacture may include suitable information bearing medium known in the art.
The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the invention(s)” unless expressly specified otherwise.
The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise.
The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.
The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.
When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the invention need not include the device itself.
The illustrated operations of Figure 4 shows certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified, or removed. Moreover, steps may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units.
Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Referral numerals:
Reference Number Description
100 Exemplary environment
101.1 First controller
101.2 Second controller
1021.1 First application
1021.2 Second application
1021.3 Third application
1022.4 Fourth application
1022.5 Fifth application
103.1 First checkpointing coordinator
103.2 Second checkpointing coordinator
104.1 First safety management unit
104.2 Second safety management unit
105.1 First network driver
105.2 Second network driver
200 Checkpointing coordinator
201 Processor
202 I/O interface
203 Memory
204 Modules
205 Data
206 Initiation request receive module
207 Allocation module
208 Safety-critical application identification module
209 Remote controller information receive module
210 Checkpoint data transmit module
211 Other modules
212 Initiation request data
213 Storage space allocation data
214 Time frame allocation data
215 Safety critical parameters
216 Checkpoint data
217 Application data
218 Other data
300 Block diagram
301 Application interface
302 Remote controller
303 Safety management unit
304 Local controller
305 Remote controller
306 Normal application
307 Safety critical application
308 Checkpointing coordinator
500 Computer System
501 I/O Interface
502 Processor
503 Network Interface
504 Storage Interface
505 Memory
506 User Interface
507 Operating System
508 Web Browser
509 Input Devices
510 Output Devices
511 Communication Network
512 Remote controller
| # | Name | Date |
|---|---|---|
| 1 | 202141010056-STATEMENT OF UNDERTAKING (FORM 3) [10-03-2021(online)].pdf | 2021-03-10 |
| 2 | 202141010056-REQUEST FOR EXAMINATION (FORM-18) [10-03-2021(online)].pdf | 2021-03-10 |
| 3 | 202141010056-PROOF OF RIGHT [10-03-2021(online)].pdf | 2021-03-10 |
| 4 | 202141010056-FORM 18 [10-03-2021(online)].pdf | 2021-03-10 |
| 5 | 202141010056-FORM 1 [10-03-2021(online)].pdf | 2021-03-10 |
| 6 | 202141010056-DRAWINGS [10-03-2021(online)].pdf | 2021-03-10 |
| 7 | 202141010056-DECLARATION OF INVENTORSHIP (FORM 5) [10-03-2021(online)].pdf | 2021-03-10 |
| 8 | 202141010056-COMPLETE SPECIFICATION [10-03-2021(online)].pdf | 2021-03-10 |
| 9 | 202141010056-FORM-26 [12-03-2021(online)].pdf | 2021-03-12 |
| 10 | 202141010056-FER.pdf | 2022-09-27 |
| 11 | 202141010056-FER_SER_REPLY [27-12-2022(online)].pdf | 2022-12-27 |
| 12 | 202141010056-COMPLETE SPECIFICATION [27-12-2022(online)].pdf | 2022-12-27 |
| 13 | 202141010056-CLAIMS [27-12-2022(online)].pdf | 2022-12-27 |
| 1 | SearchHistoryE_27-09-2022.pdf |