Choreographed distributed execution of programs
First Claim
1. A system, comprising:
- multiple hardware processors of multiple computer systems; and
one or more memories with stored instructions that, when executed by the multiple hardware processors, cause the multiple computer systems to implement functionality of a plurality of supervisor components that each manages execution of a local software package within the supervisor component and coordinates that managed execution with other supervisor components of the plurality, the managing of the execution by one of the supervisor components including;
determining, by the supervisor component, at least one other software package that is within at least one other supervisor component of the plurality and on which the local software package within the supervisor component has a dependency;
initiating, by the supervisor component, communications with the at least one other supervisor component to monitor information about ongoing execution of the at least one other software package;
executing, within the supervisor component and based at least in part on the monitored information, the local software package;
monitoring, by the supervisor component, ongoing execution of the local software package, and exposing information about the monitored ongoing execution to the other supervisor components; and
updating, by the supervisor component and while one or more other of the supervisor components continue to manage execution of local software packages within the one or more other supervisor components, the local software package within the supervisor component based on a specified predefined update strategy.
5 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for managing creation and/or execution of distributed programs, such as for a group of multiple interrelated programs that are part of a service-oriented architecture or that otherwise interact during execution to provide a desired type of functionality. In at least some situations, the described techniques include performing decentralized choreographed distributed execution of a group of related programs, by using executing supervisor components for some or all such programs to manage execution-related behavior of the programs. The execution-related behavior that is managed by supervisor components for a group of programs may include, for example, managing interactions between the programs, managing run-time dependencies and other relationships between at least some of the programs, managing update strategies for updating some or all of the programs of the group while the group continues to provide functionality (e.g., performing updates in a defined serial or simultaneous manner), etc.
10 Citations
26 Claims
-
1. A system, comprising:
-
multiple hardware processors of multiple computer systems; and one or more memories with stored instructions that, when executed by the multiple hardware processors, cause the multiple computer systems to implement functionality of a plurality of supervisor components that each manages execution of a local software package within the supervisor component and coordinates that managed execution with other supervisor components of the plurality, the managing of the execution by one of the supervisor components including; determining, by the supervisor component, at least one other software package that is within at least one other supervisor component of the plurality and on which the local software package within the supervisor component has a dependency; initiating, by the supervisor component, communications with the at least one other supervisor component to monitor information about ongoing execution of the at least one other software package; executing, within the supervisor component and based at least in part on the monitored information, the local software package; monitoring, by the supervisor component, ongoing execution of the local software package, and exposing information about the monitored ongoing execution to the other supervisor components; and updating, by the supervisor component and while one or more other of the supervisor components continue to manage execution of local software packages within the one or more other supervisor components, the local software package within the supervisor component based on a specified predefined update strategy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A non-transitory computer-readable medium having stored contents that configure one or more computing systems to perform a method, the method comprising:
-
executing, by the one or more computing systems, multiple supervisor components in a coordinated manner to perform decentralized distributed execution of a plurality of inter-related software packages, wherein each of the supervisor components manages execution of one or more local software packages of the plurality within the supervisor component; and for each of the executing multiple supervisor components, determining, by the executing supervisor component, configuration information for use in the local execution of the one or more local software packages within the supervisor component, wherein the configuration information indicates one of multiple predefined types of topologies to use in managing first interactions between the multiple supervisor components, and further indicates one of multiple predefined types of update strategies to use in managing second interactions between the multiple supervisor components as part of updating at least one of the one or more local software packages for the supervisor component during the executing of the multiple supervisor components; and executing, by the executing supervisor component and based at least in part on the determined configuration information, the one or more local software packages within the supervisor component, the executing including performing the first and second interactions and further including updating, while the decentralized distributed execution continues for at least some of the multiple supervisor components other than the supervisor component, at least one of the one or more local software packages within the supervisor component based on the indicated one predefined type of update strategy for the supervisor component. - View Dependent Claims (25, 26)
-
Specification