System and method for improved service oriented architecture
AssigneeSap SE
InventorsIvan Delchev, Juergen Vogel
Life of this patent
Estimating the term…
Abstract
Certain embodiments enable improved execution of service-oriented tasks by coordinating service providers that access service-input values from other service providers and generate service-output values that are accessible by other service providers. Improved performance results from distributed operations of service providers that do not require centralized exchange of all information.
Claims22
A method of executing a task, the method comprising:
- saving the task as a sequence of services including a first service and a second service with each non-final service output corresponding to a subsequent service input in the sequence of services, the saved task including a service-completion record for the services and a first service-input location that indicates where first service-input values are stored for the first service, the saved task being stored at a saved-task location that is connected via a communication bus to a plurality of service providers including a first service provider corresponding to the first service and a second service provider corresponding to the second service, each service provider performing distributed operations in response to a corresponding task-pending notification received via the communication bus, and the distributed operations being decentralized from operations related to sequencing the services of the task;
- sending a first task-pending notification to the first service provider via the communication bus, the first task-pending notification including the first service-input location;
- receiving a first task-results notification from the first service provider via the communication bus, the first task-results notification including a first service-output location that indicates where the first service provider has stored corresponding first service-output values via a first-service bus that is separate from the communication bus, the first service-output values being generated by the first service provider based on values from the first service-input location, and the values from the first service-input location being accessed by the first service provider separately from the communication bus via the first-service bus;
- in response to receiving the first task-results notification, updating the service-completion record at the saved-task location to indicate a completion of the first service and sending a second task-pending notification to the second service provider via the communication bus, the second task-pending notification including the first service-output location identified as a second service-input location that indicates where second service-input values are stored for the second service;
- receiving a second task-results notification from the second service provider via the communication bus, the second task-results notification including a second service-output location that indicates where the second service provider has stored corresponding second service-output values via a second-service bus that is separate from the communication bus, the second service-output values being generated by the second service provider based on values from the second service-input location, and the values from the second service-input location being accessed by the second service provider separately from the communication bus via the second-service bus;
- and
- in response to receiving the second task-results notification, updating the service-completion record at the saved-task location to indicate a completion of the second service.
A non-transitory computer-readable medium that stores a computer program for executing a task, wherein the computer program includes instructions that, when executed by a computer, cause the computer to perform operations comprising:
- saving the task as a sequence of services including a first service and a second service with each non-final service output corresponding to a subsequent service input in the sequence of services, the saved task including a service-completion record for the services and a first service-input location that indicates where first service-input values are stored for the first service, the saved task being stored at a saved-task location that is connected via a communication bus to a plurality of service providers including a first service provider corresponding to the first service and a second service provider corresponding to the second service, each service provider performing distributed operations in response to a corresponding task-pending notification received via the communication bus, and the distributed operations being decentralized from operations related to sequencing the services of the task;
- sending a first task-pending notification to the first service provider via the communication bus, the first task-pending notification including the first service-input location;
- receiving a first task-results notification from the first service provider via the communication bus, the first task-results notification including a first service-output location that indicates where the first service provider has stored corresponding first service-output values via a first-service bus that is separate from the communication bus, the first service-output values being generated by the first service provider based on values from the first service-input location, and the values from the first service-input location being accessed by the first service provider separately from the communication bus via the first-service bus;
- in response to receiving the first task-results notification, updating the service-completion record at the saved task location to indicate a completion of the first service and sending a second task-pending notification to the second service provider via the communication bus, the second task-pending notification including the first service-output location identified as a second service-input location that indicates where second service-input values are stored for the second service;
- receiving a second task-results notification from the second service provider via the communication bus, the second task-results notification including a second service-output location that indicates where the second service provider has stored corresponding second service-output values via a second-service bus that is separate from the communication bus, the second service-output values being generated by the second service provider based on values from the second service-input location, and the values from the second service-input location being accessed by the second service provider separately from the communication bus via the second-service bus;
- and
- in response to receiving the second task-results notification, updating the service-completion record at the saved-task location to indicate a completion of the second service.
An apparatus that executes a task, the apparatus comprising at least one computer configured to perform operations for computer-implemented modules including:
- a task-saving module that performs operations including:
- saving the task as a sequence of services including a first service and a second service with each non-final service output corresponding to a subsequent service input in the sequence of services, the saved task including a service-completion record for the services and a first service-input location that indicates where first service-input values are stored for the first service, the saved task being stored at a saved-task location that is connected via a communication bus to a plurality of service providers including a first service provider corresponding to the first service and a second service provider corresponding to the second service, each service provider performing distributed operations in response to a corresponding task-pending notification received via the communication bus, and the distributed operations being decentralized from operations related to sequencing the services of the task;
- a first task-pending notification module that performs operations including:
- sending a first task-pending notification to the first service provider via the communication bus, the first task-pending notification including the first service-input location;
- a first task-results notification module that performs operations including:
- receiving a first task-results notification from the first service provider via the communication bus, and updating the service-completion record at the saved-task location to indicate a completion of the first service in response to receiving the first task-results notification, the first task-results notification including a first service-output location that indicates where the first service provider has stored corresponding first service-output values via a first-service bus that is separate from the communication bus, the first service-output values being generated by the first service provider based on values from the first service-input location and the values from the first service-input location being accessed by the first service provider separately from the communication bus via the first-service bus;
- a second task-pending notification module that performs operations including:
- sending a second task-pending notification to the second service provider via the communication bus, the second task-pending notification including the first service-output location identified as a second service-input location that indicates where second service-input values are stored for the second service;
- and
- a second task-results notification module that performs operations including:
- receiving a second task-results notification from the second service provider via the communication bus, and updating the service-completion record at the saved-task location to indicate a completion of the second service in response to receiving the second task-results notification, the second task-results notification including a second service-output location that indicates where the second service provider has stored corresponding second service-output values via a second-service bus that is separate from the communication bus, the second service-output values being generated by the second service provider based on values from the second service-input location, and the values from the second service-input location being accessed by the second service provider separately from the communication bus via the second-service bus.
Dependencies are inferred from the claim text.