Tuning and optimizing distributed systems with declarative models
First Claim
1. At a server configured in a computerized environment to manage one or more distributed application programs through one or more platform-specific drivers, a method of automatically monitoring and adjusting behaviors of a distributed application program through management of one or more declarative models, whereby the distributed application program automatically responds to fluctuations in hardware performance or user demand, comprising the acts of:
- at a server system that includes implementation means;
sending an initial set of instructions corresponding to at least one declarative model of a distributed application program to at least one platform-specific driver of the implementation means, the at least one declarative model describing intent for operation of one or more modules of the distributed application program, and the at least one platform-specific driver providing instructions for executing the one or more modules as part of the distributed application program;
after initiation of execution of the distributed application program, receiving one or more event streams through the at least one platform-specific driver, the one or more event streams received through the at least one platform-specific driver containing information about real-time performance of the distributed application program during execution of the distributed application program within the computerized environment;
correlating the received execution information about performance of the distributed application program with the at least one declarative model, including the described operation of the one or more modules of the distributed application program; and
modifying the at least one declarative model in accordance with the received execution information, wherein the modification to the at least one declarative model adjusts one or more intended operations of one or more modules of the distributed application program.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for automatically adjusting operation of a distributed application program includes analytics means having a monitoring component. The monitoring component receives one or more event streams of data corresponding to execution of one or more modules of the distributed application program. The monitoring component joins the received event streams with one or more declarative models to create operational data. A forensics component of the analytics means queries, such as by using data from a declarative model store, the operational data to identify trends or behavior information for the various modules or components of the distributed application program. A planner component then reviews data created by the forensics component to identify any needed changes to the declarative models. The planner component passes any modified declarative models back to the system, so that the distributed application program can operate more efficiently using the changes to the declarative models, as needed.
-
Citations
20 Claims
-
1. At a server configured in a computerized environment to manage one or more distributed application programs through one or more platform-specific drivers, a method of automatically monitoring and adjusting behaviors of a distributed application program through management of one or more declarative models, whereby the distributed application program automatically responds to fluctuations in hardware performance or user demand, comprising the acts of:
at a server system that includes implementation means; sending an initial set of instructions corresponding to at least one declarative model of a distributed application program to at least one platform-specific driver of the implementation means, the at least one declarative model describing intent for operation of one or more modules of the distributed application program, and the at least one platform-specific driver providing instructions for executing the one or more modules as part of the distributed application program; after initiation of execution of the distributed application program, receiving one or more event streams through the at least one platform-specific driver, the one or more event streams received through the at least one platform-specific driver containing information about real-time performance of the distributed application program during execution of the distributed application program within the computerized environment; correlating the received execution information about performance of the distributed application program with the at least one declarative model, including the described operation of the one or more modules of the distributed application program; and modifying the at least one declarative model in accordance with the received execution information, wherein the modification to the at least one declarative model adjusts one or more intended operations of one or more modules of the distributed application program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. At a server configured in a computerized environment to manage operations of one or more distributed application programs through one or more platform-specific drivers using one or more declarative models, a method of automatically adjusting operations of a distributed application program through periodic monitoring and tuning of the one or more declarative models during execution of the distributed application program, comprising:
at a server system comprising implementation means and analytics means; implementing, via implementation means, an initial set of platform-specific instructions for a distributed application container on one or more different computer systems based on one or more declarative models for the distributed application program, the one or more declarative models describing behavior of one or more modules of the distributed application program, without describing how to implement such behavior of the one or more modules, the one or more declarative models loosely coupling components of an application system, and the one or more declarative models specifying at least a domain name where a module can be executed, and a plurality of permission sets that can be associated with execution of a module; initiating execution of the distributed application program using the one or more modules, wherein initiating execution of the distributed application program includes using a connection protocol based on proximity of two or more modules, which connection protocol is not specified by the one or more declarative models; after initiating execution of the distributed application program, monitoring real-time behavioral information for the one or more modules of the distributed application program at the one or more different computer systems, wherein monitoring real-time behavioral information is through one or more event streams received through at least one platform-specific driver; determining from the monitored real-time behavioral information that one or more corresponding operational trends fall outside a desired parameter, including at least one operational trend indicating that a computer system on which at least one of the one or more modules is installed is rebooting too frequently; automatically adjusting at least one declarative model to account for the computer system on which at least one of the one or more modules is installed rebooting too frequently; and implementing, via the implementation means, a subsequent set of platform-specific instructions for the distributed application container based on the adjusted at least one declarative model. - View Dependent Claims (18, 19)
-
20. At a server configured in a computerized environment to manage one or more distributed application programs through one or more platform-specific drivers, a computer program storage product having computer-executable instructions stored thereon that, when executed, cause one or more processors in the server to perform a method comprising the acts of:
-
sending an initial set of instructions corresponding to at least one declarative model of a distributed application program to at least one platform-specific driver of implementation means, the at least one declarative model describing intent for operation of one or more modules of the distributed application program, and the at least one platform-specific driver providing instructions for executing the one or more modules as part of the distributed application program; after initiation of execution of the distributed application program, receiving one or more event streams through the at least one platform-specific driver, the one or more event streams received through the at least one platform-specific driver containing information about real-time performance of the distributed application program during execution of the distributed application program within the computerized environment; correlating the received execution information about performance of the distributed application program with the at least one declarative model, including the described operation of the one or more modules of the distributed application program; and modifying the at least one declarative model in accordance with the received execution information, wherein the modification to the at least one declarative model adjusts one or more intended operations of one or more modules of the distributed application program.
-
Specification