1. An industrial control system, comprising:
an industrial controller maintaining a control program for interfacing with a controlled process; and
a programming interface operable to communicate a transaction to the industrial controller, the transaction including a plurality of operations for modifying the control program followed by a commit transaction command, wherein the industrial controller is operable to preprocess the plurality of operations, designate the plurality of operations with a pending status, and commit the operations and clear the pending status responsive to receiving the commit transaction command.
2. The industrial control system of claim 1, wherein the control program includes a plurality of objects.
3. The industrial control system of claim 2, wherein a first operation comprises a command to create an object, and the industrial controller is operable to designate the created object as having a pending create status.
4. The industrial control system of claim 3, wherein a second operation comprises a command to modify the created object, wherein the industrial controller is operable to execute the second operation to modify the created object.
5. The industrial control system of claim 2, wherein a first operation comprises a command to modify an existing object, and the industrial controller is operable to designate the existing object as having a pending modify status and defer completion of the first operation.
6. The industrial control system of claim 2, wherein a first operation comprises a command to delete an existing object, and the industrial controller is operable to designate the existing object as having a pending delete status.
7. The industrial control system of claim 1, wherein the industrial controller is operable to reverse the operations having a pending status responsive to an abort of the transaction prior to receiving the commit transaction command.
8. The industrial control system of claim 7, wherein the industrial controller is operable to abort the transaction responsive to a loss of communication between the programming interface and the industrial controller.
9. The industrial control system of claim 7, wherein the industrial controller is operable to abort the transaction responsive to a failure of one of the operations to preprocess.
10. The industrial control system of claim 7, wherein the industrial controller is operable to abort the transaction responsive to a power cycling of the industrial controller prior to receiving the transaction commit signal.
11. The industrial control system of claim 1, wherein the industrial controller is operable to record the transaction in a change log responsive to committing the operations.
12. The industrial control system of claim 11, wherein the industrial controller is operable to maintain an object database associated with objects in the control program, the programming interface is operable to maintain a local copy of the object database, and access the change log to synchronize the local copy with the object database responsive to losing communication with the industrial controller after sending the commit transaction command, but prior to verifying the committing of the operations by the industrial controller.
13. The industrial control system of claim 11, wherein the programming interface comprises a first programming interface, the industrial control system further comprises a second programming interface, and the second programming interface is operable to access the change log to identify the transaction and update a copy of the control program based on the transaction.
14. The industrial control system of claim 1, wherein the industrial controller comprises a primary controller, the industrial control system further comprises a backup controller, and the primary controller is operable to communicate the transaction to the backup controller responsive to committing the transaction.
15. The industrial control system of claim 1, wherein the industrial controller is operable to signal the committing of the transaction to the programming interface.
16. The industrial control system of claim 1, wherein the programming interface is operable to poll the industrial controller to verify the committing of the transaction.
17. The industrial control system of claim 2, wherein at least one of the objects comprises an IO object.
18. The industrial control system of claim 1, wherein the transaction includes a plurality of operations for adding an IO module to the control program.
19. The industrial control system of claim 1, wherein the industrial controller is operable to commit the operations without interrupting the interfacing with the controlled process.
20. A method for configuring an industrial controller maintaining a control program for interfacing with a controlled process, comprising:
communicating a transaction to the industrial controller, the transaction including a plurality of operations for modifying the control program followed by a commit transaction command;
preprocessing the plurality of operations while designating the plurality of operations with a pending status; and
committing the operations and clearing the pending status responsive to receiving the commit transaction command.
21. The method of claim 20, further comprising reversing the operations having a pending status responsive to an abort of the transaction prior to receiving the commit transaction command.
22. An industrial controller, comprising:
a memory operable to store an object-oriented application for interfacing with a controlled process;
a processing device operable to receive a transaction, the transaction including a plurality of operations affecting the object-oriented application, followed by a commit transaction command, wherein the processing device is operable to preprocess the plurality of operations, designate objects in the object-oriented application associated with the operations as having a pending status, and commit the operations and clear the pending status responsive to receiving the commit transaction command.
23. The industrial control system of claim 22, wherein the processing device is operable to reverse the operations associated with the objects having a pending status responsive to an abort of the transaction prior to receiving the commit transaction command.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method, comprising:
receiving, at a cloud services layer (CSL) Application Programming Interface (API), a first file having a service-specific API definition for a first cloud service;
loading the service-specific API definition for the first cloud service into the CSL layer API; and
handling, at the CSL API, a service request involving the first cloud service using the service-specific API definition for the first cloud service.
2. The method of claim 1, further comprising:
receiving, at the CSL API, a second file having a revised service-specific API definition for the first cloud service;
loading the revised service-specific API definition for the first cloud service into the CSL API to replace the previous service-specific API definition for the first cloud service; and
handling, at the CSL API, a service request involving the first cloud service using the revised service-specific API definition for the first cloud service.
3. The method of claim 1, further comprising:
receiving, at the CSL API, a second file having a service-specific API definition for a second cloud service;
loading the service-specific API definition for the second cloud service into the CSL API; and
handling, at the CSL API, a service request involving the second cloud service using the service-specific API definition for the second cloud service.
4. The method of claim 1, wherein handling the service request involving the first cloud service comprises:
packaging the service request involving the first cloud service into a CSL format, based on the service-specific API definition for the first cloud service, to generate a job submission.
5. The method of claim 4, wherein handling the service request involving the first cloud service further comprises:
delivering the job submission from the CSL API to a job controller.
6. The method of claim 5, further comprising:
orchestrating, at the job controller, the job to cause a service node to execute the first cloud service based on the job submission.
7. The method of claim 6, further comprising:
determining a service controller associated with the first cloud service; and
delivering at least a portion of the job to the determined service controller for execution by the first cloud service.
8. A network device, comprising:
a communication interface coupled to a network;
a processing unit configured to implement a cloud services layer (CSL) Application Programming Interface (API) and to:
receive, via the communication interface, a first file having a service-specific API definition for a first cloud service,
load the service-specific API definition for the first cloud service into the CSL API,
receive, via the communication interface, a service request involving the first cloud service, and
handle, at the CSL API, the service request using the service-specific API definition for the first cloud service.
9. The device of claim 8, where the processing unit is further configured to:
receive, via the communication interface, a second file having a revised service-specific API definition for the first cloud service,
load the revised service-specific API definition for the first cloud service into the CSL API to replace the previous service-specific API definition for the first cloud service,
receive, via the communication interface, another service request involving the first cloud service, and
handle, at the CSL API, the other service request using the revised service-specific API definition for the first cloud service.
10. The network device of claim 8, where the processing unit is further configured to:
receive, via the communication interface, a second file having a service-specific API definition for a second cloud service,
load the service-specific API definition for the second cloud service into the cloud services API layer,
receive, via the communication interface, a service request involving the second cloud service, and
handle, at the CSL API, the service request involving the second cloud service using the service-specific API definition.
11. The network device of claim 8, wherein, when handling the service request involving the first cloud service, the processing unit is further configured to:
package the service request involving the first cloud service into a cloud services layer (CSL) format, based on the service-specific API definition for the first cloud service, to generate a job submission.
12. The network device of claim 11, wherein the processing unit is further configured to implement one or more job controllers and wherein, when handling the service request involving the first cloud service, the processing unit is further configured to:
deliver the job submission to one of the one or more job controllers.
13. The network device of claim 12, wherein the processing unit, when implementing the one of the one or more job controllers, is configured to:
orchestrate the job to cause a service node to execute the first cloud service based on the job submission.
14. The network device of claim 13, wherein the processing unit, when implementing the one of the one or more controllers, is configured to:
determine a service controller associated with the first cloud service, and
deliver at least a portion of the job to the determined service controller for execution by the first cloud service.
15. A computer-readable medium containing instructions executable by at least one processor, the computer-readable medium comprising:
one or more instructions for receiving a first file having a service-specific Application Programming Interface (API) definition for a first cloud service;
one or more instructions for loading the service-specific API definition for the first cloud service into a cloud services layer (CSL) API;
one or more instructions for receiving a service request involving the first cloud service; and
one or more instructions for handling, at the CSL API, the service request using the service-specific API definition for the first cloud service.
16. The computer-readable medium of claim 15, further comprising:
one or more instructions for receiving a second file having a revised service-specific API definition for the first cloud service;
one or more instructions for loading the revised service-specific API definition for the first cloud service into the CSL API to replace the previous service-specific API definition for the first cloud service;
one or more instructions for receiving another service request involving the first cloud service; and
one or more instructions for handling, at the CSL API, the other service request using the revised service-specific API definition for the first cloud service.
17. The computer-readable medium of claim 15, further comprising:
one or more instructions for receiving a second file having a service-specific API definition for a second cloud service;
one or more instructions for loading the service-specific API definition for the second cloud service into the cloud services API layer,
one or more instructions for receiving a service request involving the second cloud service, and
one or more instructions for handling, at the cloud services layer API, the service request involving the second cloud service using the service-specific API definition.
18. The computer-readable medium of claim 15, further comprising:
one or more instructions for packaging the service request involving the first cloud service into a CSL format, based on the service-specific API definition for the first cloud service, to generate a job submission.