IP Library Patent Application 11008730
Patent Application
App. No. 11/008,730

System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/008,730
Abstract

A system facilitates the design and implementation of large-scale applications, such as Internet Services and Websites, for distributed computer systems, such as server data centers, Internet data centers (IDCs), Web farms, and the like. The system has a modeling system and a deployment system. The modeling system permits developers to architect the hardware and software used to implement the applications in an abstract manner. The modeling system defines a set of components used to describe the functionality of an application. The model components are arranged and interconnected to form a scale-independent logical model of the application. Once a logical model is created, the deployment system uses the logical model to automatically deploy various computer/software resources to implement the application. The deployment system converts each of the model components into one or more instances that correspond to physical resources.

Claims (72)

1 . An apparatus comprising:

means for forming a scale-independent logical model of an application to be implemented by a distributed computer system, the model having multiple components representing logical functions of the application; and

means for converting individual model components into one or more instances representative of physical resources that are used to implement the logical functions.

2 . The apparatus of claim 1 , wherein each instance represents a corresponding physical resource in a one-to-one relationship.

3 . The apparatus of claim 1 , wherein:

the distributed computer system comprises multiple computing nodes;

the model components comprise a module that is representative of a functional behavior of the application; and

an instance of the module corresponds to a node of the distributed computer system.

4 . The apparatus of claim 1 , further comprising means for allocating the physical resources to implement the instances.

5 . The apparatus of claim 1 , further comprising means for allocating the physical resources in real time to implement the instances.

6 . The apparatus of claim 1 , further comprising means for storing the instances in a database.

7 . The apparatus of claim 6 , further comprising means for querying the database to determine a current configuration of the application.

8 . The apparatus of claim 1 , further comprising computer-readable code embodied on a computer-readable medium, wherein the computer-readable code is configured to cause one or more processors to effectuate the means for forming a scale-independent logical model and the means for converting individual model components.

9 . An apparatus comprising:

means for constructing an application for a distributed computer system according to a logical model, the logical model having multiple components representing logical functions of the application;

means for monitoring operation of the application during runtime; and

means for automatically deploying resources of the distributed computer system to the application as operation conditions change.

10 . The apparatus of claim 9 , wherein the application comprises an Internet service.

11 . The apparatus of claim 9 , wherein the constructing means comprises means for creating one or more instances of each model component, the instances specifying physical resources used to implement the logical functions.

12 . The apparatus of claim 11 , further comprising means for storing the instances in a database.

13 . The apparatus of claim 12 , further comprising means for querying the database to determine a current configuration of the application.

14 . The apparatus of claim 9 , wherein the monitoring means comprises means for receiving events regarding operating conditions of computer nodes in the distributed computer system and evaluating the events against a policy.

15 . The apparatus of claim 9 , wherein the distributed computer system comprises a plurality of interconnected computer nodes and the logical model comprises a module that is representative of a behavior of the application, and the deploying means comprises:

means for creating one or more instances of each module component of the logical model, the instances specifying physical resources used to implement the behavior of the application; and

means for allocating a node of the distributed computer system for each instance of each module.

16 . The apparatus of claim 9 , further comprising means for tracking the resources that are deployed to the application and available resources that have not yet been deployed.

17 . The apparatus of claim 9 , further comprising computer-readable code embodied on a computer-readable medium, wherein the computer-readable code is configured to cause one or more processors to effectuate the constructing means, the monitoring means and the deploying means.

18 . An apparatus comprising:

means for maintaining a logical model of an application for a distributed computer system, the logical model having multiple components representing logical functions of the application;

means for creating one or more instances of each component in the logical model; and

means for allocating resources of the distributed computer system to implement each of the instances.

19 . The apparatus of claim 18 , wherein the creating means comprises means for producing multiple identical instances of a component in the logical model to accommodate operating conditions for the logical function represented by the component.

20 . The apparatus of claim 18 , wherein the distributed computer system comprises a plurality of interconnected computer nodes and the logical model comprises a module that is representative of a behavior of the application, the allocating means comprising means for allocating a node for each instance of each module in the logical model.

21 . The apparatus of claim 18 , further comprising means for recording the instances in a database.

22 . The apparatus of claim 21 , further comprising means for querying the database to determine a current configuration of the application.

23 . The apparatus of claim 18 , further comprising:

means for tracking the resources that are allocated; and

means for correlating the resources with the instances for which the resources are allocated.

24 . The apparatus of claim 18 , further comprising computer-readable code embodied on a computer-readable medium, wherein the computer-readable code is configured to cause one or more processors to effectuate the maintaining means, the creating means and the allocating means.

25 . An apparatus comprising:

means for maintaining a logical model of an Internet service hosted on a plurality of interconnected computer nodes, the logical model having modules

means for creating one or more instances of each module in the logical model;

means for allocating a computer node for each corresponding instance; and

means for configuring each computer node to perform the logical functions represented by the module from which the corresponding instance is created.

26 . The apparatus of claim 25 , wherein the configuring means comprises means for loading software onto the computer node.

27 . The apparatus of claim 25 , wherein the configuring means comprises means for downloading software from a remote location to the computer node via a network.

28 . The apparatus of claim 25 , wherein the configuring means comprises:

means for initializing the computer node by installing a platform software; and

means for loading a software program that performs the logical functions associated with the instance.

29 . The apparatus of claim 25 , further comprising means for tracking the instances that are created in a database.

30 . The apparatus of claim 25 , further comprising:

means for adding a new instance of a particular module;

means for allocating a new computer node for the new instance; and

means for loading software onto the new computer node that performs the logical functions represented by the particular module.

31 . The apparatus of claim 25 , further comprising:

means for removing a particular instance of a particular module;

means for deallocating a computer node associated with the particular instance; and

means for returning the computer node to a pool of available computer nodes.

32 . The apparatus of claim 25 , further comprising computer-readable code embodied on a computer-readable medium, wherein the computer-readable code is configured to cause one or more processors to effectuate the maintaining means, the creating means, the allocating means and the configuring means.

33 . An apparatus comprising configured to deploy an application for a distributed computer system having a plurality of computer nodes, the apparatus comprising:

means for rendering a logical model of the application, the logical model having multiple components representing logical functions of the application; and

core converter means configured to create one or more instances of the model components and allocate computer nodes of the distributed computer system for the instances to implement the logical functions represented by the model components from which the instances are created.

34 . The apparatus of claim 33 , wherein the core converter means comprises:

tracking means including a service running state to track the instances created for the model components; and

resource manager means configured to track the computer nodes available to be allocated.

35 . The apparatus of claim 33 , wherein the core converter means comprises a loader to load software on the computers nodes to implement the logical functions.

36 . The apparatus of claim 33 , wherein the core converter means comprises:

tracking means including a service running state to track the instances created for the model components;

resource manager means configured to track the computer nodes available to be allocated; and

loader means configured to load software onto the new computer node, the software being executable on the computer node to implement the logical functions represented by the particular model component.

37 . The apparatus of claim 33 , further comprising management policy means configured to monitor operation of the application and to specify when new instances of the model components are to be created or removed based on the operation of the application.

38 . The apparatus of claim 37 , wherein the management policy means is configured to listen to events generated by the computer nodes as a way to monitor operation of the application.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECORDAL TO REMOVE INADVERTENTLY RECOREDED PROPERTIES SHOWN IN ATTACHED SHEET PREVIOUSLY RECORDED AT REEL: 047681 FRAME: 0916. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 18, 2019
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: SERVICENOW, INC.
Reel/Frame 049797/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2018
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: SERVICENOW, INC.
Reel/Frame 047681/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0001 →