IP Library Granted Patent US 7,801,987
Granted Patent B2
US 7,801,987 · App. 12/145,995 · Granted Sep 21, 2010

Dynamic infrastructure for monitoring service level agreements

View Patent ↗
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 7,801,987
App. No.
12/145,995
Granted
Sep 21, 2010
Kind
B2
Abstract

A dynamic infrastructure for monitoring service level agreements (SLAs) is described. In an embodiment, the infrastructure comprises three types of functional elements: probes, metrics and audits and a small number of primitive actions for manipulating these elements. The elements are connected by streams which store data for processing and transport data between functional elements. The primitive actions, which are duplicating and removing functional elements as well as splitting and joining metrics, are arranged such that the functional elements can be optimized dynamically in responses to changes in the service and/or the hardware without losing any data.

Claims (103)

1. A system for monitoring a service comprising:

a processor capable of executing computer-executable instructions;

a memory for storing computer executable instructions;

a probe arranged to extract data relating to performance of the service;

a metric arranged to aggregate and transform data received from the probe;

an audit element arranged to validate data received from the metric against defined criteria;

a plurality of streams, wherein each stream is arranged to store data for processing and to transport data between two elements, each of the two elements comprising one of the probe, the metric and the audit element; and

a service manager stored in the memory and executable on the processor to start a service level agreement runtime prior to starting a new instance of the service, the service manager including instructions for performing the operations comprising:

determining if the service level agreement runtime is running;

starting, if the service level agreement runtime is not running, the service level agreement runtime;

determining any service level agreements relating to said service;

loading said service level agreements;

enabling said service level agreements; and

starting said new instance of the service.

2. The system according to claim 1 , the memory further including instructions for performing a set of methods for manipulating an element, the element comprising one of the probe, the metric and the audit element, and the set of methods comprising:

duplicating an element;

removing an element; and

splitting the metric; and

joining two metrics.

3. The system according to claim 2 , wherein the method for duplicating a probe comprises:

creating a duplicate of said probe;

connecting a stream between said duplicate of said probe and any output elements of said probe; and

triggering said duplicate of said probe to start extracting data relating to performance of the service.

4. The system according to claim 2 , wherein the method for duplicating a metric comprises:

creating a new instance of said metric;

connecting a stream between said new instance of said metric any output elements of said metric;

stopping any input elements to said metric;

connecting a stream between at least one of said input elements and said new instance of said metric;

disconnecting a stream between said at least one of said input elements and said metric;

starting said input elements; and

starting the new instance of said metric.

5. The system according to claim 2 , wherein the method for duplicating an audit element comprises:

creating a duplicate of said audit element;

stopping any input elements to said audit element;

connecting a stream between at least one of said input elements and said duplicate of said audit element; and

starting said input elements.

6. The system according to claim 2 , wherein the method for removing a probe comprises:

disconnecting any output streams from said probe; and

removing said probe.

7. The system according to claim 2 , wherein the method for removing a metric comprises:

stopping each input element to said metric;

connecting a stream between each input element and an existing copy of said metric;

disconnecting streams between each input element and said metric;

starting each input element;

disconnecting streams between said metric and any output elements; and

removing said metric.

8. The system according to claim 2 , wherein the method for removing an audit element comprises:

stopping each input element to said audit element;

disconnecting streams between each input element and said audit element;

connecting a stream between each input element and an existing copy of said audit element;

starting each input element; and

removing said audit element.

9. The system according to claim 2 , wherein a metric comprises a stack of functions arranged in a sequence and the method of splitting a metric comprises:

stopping said metric;

creating a new metric comprising a subset of said stack of functions;

removing said subset of said stack of functions from said metric;

connecting an output of said metric to said new metric;

connecting a stream between the new metric and any output elements of said metric; and

starting said metric and said new metric,

and wherein the sequence of functions is unchanged.

10. The system according to claim 2 , wherein each metric comprises a stack of functions the method of joining two metrics comprises:

stopping a first metric and a second metric, wherein an output of the first metric is connected to an input of the second metric;

inserting the stack of functions from the first metric into the stack of functions from the second metric before a first function in said stack of functions from the second metric;

connecting any input elements of the first metric to the second metric;

removing the first metric; and

starting the second metric.

11. The system according to claim 1 , wherein determining any service level agreements relating to said service comprises:

providing a service identifier; and

accessing a database to identify any service level agreements associated with said service identifier.

12. One or more executable instructions stored on a memory and executable on a processor to implement a method of providing a new instance of a service comprising:

determining if a service level agreement runtime is running on a machine providing said new instance of a service;

starting, if the service level agreement runtime is not running, the service level agreement runtime;

determining any service level agreements relating to said service;

loading said service level agreements;

enabling said service level agreements, the enabling including generating elements within the service level agreement runtime to extract data relating to the service, manipulate the data and validate the data against defined criteria, elements comprise at least one of:

a probe for extracting data relating to the service;

a metric for manipulating data received from the probe or the metric;

an audit element for validating data against defined criteria; and

a stream for storing data generated by an element and for transporting data between elements; and

starting said new instance of the service.

13. A method according to claim 12 , wherein said step of generating elements comprises at least one of:

duplicating an element; and

removing an element.

14. An infrastructure for monitoring a service level agreement comprising:

a processor capable of executing computer-executable instructions;

a memory for storing computer executable instructions;

a probe component, stored on the memory and executable on the processor, for extracting data relating to a service provided under the service level agreement;

a metric component, stored in the memory and executable on the processor, comprising at least one function for manipulating data received from the probe component;

an audit component, stored in the memory and executable on the processor, for validating data received from the metric component against performance criteria specified in the service level agreement;

a stream arranged to store data output by a probe component for manipulation by the metric component;

a stream arranged to store data output by the metric component for validation by the audit component; and

a service manager, stored in the memory and executable on the processor, arranged to create a runtime for monitoring a service prior to starting a new instance of a service, the service manager including instructions for performing the operations comprising:

determining if a service level agreement runtime is running;

starting, if the service level agreement runtime is not running, the service level agreement runtime;

determining any service level agreements relating to said service;

loading said service level agreements;

enabling said service level agreements; and

starting said new instance of the service.

15. An infrastructure according to claim 14 , further comprising a set of basic operations for adapting the infrastructure, the set of basic operations comprising:

duplicating one of a probe component, a metric component and an audit component;

removing one of a probe component, a metric component and an audit component;

dividing a metric component; and

joining a plurality of sequential metric components.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2008
From: GRELL, STEPHAN; NANO, OLIVIER
To: MICROSOFT CORPORATION
Reel/Frame 021175/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2008
From: GRELL, STEPHAN; NANO, OLIVIER
To: MICROSOFT CORPORATION
Reel/Frame 021175/0963 →