摘要:
A multi-tiered server management architecture is employed including an application development tier, an application operations tier, and a cluster operations tier. In the application development tier, applications are developed for execution on one or more server computers. In the application operations tier, execution of the applications is managed and sub-boundaries within a cluster of servers can be established. In the cluster operations tier, operation of the server computers is managed without concern for what applications are executing on the one or more server computers and boundaries between clusters of servers can be established. The multi-tiered server management architecture can also be employed in co-location facilities where clusters of servers are leased to tenants, with the tenants implementing the application operations tier and the facility owner (or operator) implementing the cluster operations tier.
摘要:
Operating system functions are defined as objects that are collections of data and methods. The objects represent operating system resources. The resource objects can be instantiated and used across process and machine boundaries. Each object has an associated handle that is stored in its private state. When an application requests a resource, it is given a second handle or pseudo handle that corresponds with the handle in the object's private state. The second handle is valid across process and machine boundaries and all access to the object takes place through the second handle. This greatly facilitates remote computing. In preferred embodiments, the objects are COM objects and remote computing is facilitated through the use of Distributed COM (DCOM) techniques. Other embodiments of the invention provide legacy and versioning support by identifying each resource, rather than the overall operating system, with a unique identifier that can specified by an application. Different versions of the same resource have different identifiers. This ensures that applications that need a specific version of a resource can receive that version. This also ensures that an application can specifically request a particular version of a resource by using its unique identifier, and be assured of receiving that resource. Other embodiments of the invention provide legacy support by intercepting calls for operating system functions and transforming those calls into object calls that can be understood by the resource objects. This is accomplished in preferred embodiments by injecting a level of indirection between an application and an operating system.
摘要:
Described herein are one or more implementations that separate kernel interfaces functions into those that act on kernel objects owned by a process and accessed exclusively by that process—described herein as local kernel objects—from access to kernel objects owned by a process and accessible_by other active processes.
摘要:
A design tool includes a service definition model to enable abstract description of distributed computing systems and distributed applications. The design tool also includes a schema to dictate how functional operations within the service definition model are to be specified. The functional operations include design of distributed applications, deployment of distributed applications, and management of distributed applications.
摘要:
A stateless distributed computer architecture allows state-caching objects, which hold server state information, to be maintained on a client or network rather than on a server. In one implementation, the computer architecture implements object-oriented program modules according to a distributed component object model (DCOM). Using an object-oriented network protocol (e.g., remote procedure call), a client-side application calls through an application program interface (API) to a program object residing at a server computer. The program object, responsive to the call, creates a state caching object that contains state information pertaining to the client connection. The server inserts the state-caching object into a local thread context and processes the request to generate a reply. The server subsequently attaches the state-caching object to the reply and returns them both to the client. The client stores the state-caching object for later communication with the server. When the client subsequently calls the program object at the server, the client submits the state-caching object along with the request packet. The server uses the state information in the state-caching object to quickly restore state for the client reconnection. In this manner, the server can offload its state information to other computing devices in the distributed architecture, thereby improving scalability. In another implementation, the network itself caches the server-oriented state-caching object.
摘要:
A controller, referred to as the “BMonitor”, is situated on a computer. The BMonitor includes a plurality of filters that identify where data can be sent to and/or received from, such as another node in a co-location facility or a client computer coupled to the computer via the Internet. The BMonitor further receives and implements requests from external sources regarding the management of software components executing on the computer, allowing such external sources to initiate, terminate, debug, etc. software components on the computer. Additionally, the BMonitor operates as a trusted third party mediating interaction among multiple external sources managing the computer.
摘要:
An automatic distributed partitioning system (ADPS) determines which unit exposes an interface. The ADPS detects a reference to an interface. For the interface, the ADPS assures that the unit that exposes the interface is identified. In some embodiments, a data structure such as a hash table associates interfaces with identified units. An interface wrapper for the interface stores the identity of the unit that exposes the interface, as well as information about the interface and a reference to instrumentation. When a client unit calls a member function of an interface, the interface wrapper intercepts the call and invokes the instrumentation. The instrumentation performs an operation such as profiling the application or classifying a unit. The ADPS detects when an interface is undocumented, and handles undocumented interfaces without invoking the full instrumentation capabilities of the ADPS.
摘要:
A system and procedure to automatically enforce policy in distributed multi-computer service applications. Such service applications include multiple software modules that execute on multiple computers. The computers have access to communications media that allow data communications between the computers. Logical ports are configured on different modules according to a logical model of the multi-computer service application. Each logical port is defined by port software. Logical data connections between the logical ports are configured in accordance with the logical model. Each port is configured to communicate through different numbers of logical data connections without modifying the port software.In response to the occurrence of a condition, a module sends an event notification to a policy module. The policy module responds to the notification by formulating a request for one or more destination modules. The policy module provides the request to an output port of the policy module. The output port forwards the request to input ports of multiple modules according to the configured logical data connections.
摘要:
An automatic distributed partitioning system (ADPS) profiles a computer network using short term sampling to estimate minimum network latency and maximum network bandwidth. The ADPS profiles an application program to produce an application profile that summarizes inter-unit communication within the application program. Summarization of the application profile reduces overhead during profiling of the application program. The application profile is network independent, but by combining it with information in the network profile, the ADPS produces a model of the behavior of the application program on the computer network. Quick estimation of network characteristics facilitates the ADPS repartitioning the application to adjust to a different computer network or a changed computer network.
摘要:
An instrumentation system performs operations such as profiling an application and partitioning and distributing units of the application using different versions of metadata describing the application. Performing an operation on an executing application generates overhead. Detailed metadata used in operations such as profiling create unnecessary overhead during other operations. By removing metadata detail unnecessary for a particular operation, an instrumentation system using reduced metadata generates less overhead for that particular operation. Different instrumentation packages include different versions of metadata for performing operations on the application.