# US 8,543,800 B2 · Hierarchical services startup sequencing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,800 B2
- Document ID: US8543800B2
- Status: Granted
- Kind: B2
- Application number: 12/481,945
- Filed: 2009-06-10
- Published: 2010-12-16
- Granted: 2013-09-24
- Earliest claimed: 2009-06-10
- Assignees: International Business Machines Corporation
- Applicants: Kanael Arditti; Liran Zvibel
- Inventors: Kanael Arditti; Liran Zvibel
- Web page: https://patentgrep.com/patent/US8543800B2

## CPC

- G06F 9/5055: {considering software capabilities, i.e. software resources associated or available to the machine}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Exemplary methods, system, and computer program product embodiments for managing services within a data storage subsystem using a processor in communication with a memory device during a startup sequence are provided. At least one service facilitated by a provider is provided. At least one requirement is linked to the at least one service. The at least one service and the at least one requirement are incorporated into a specification file. A directed acyclic graph, interrelating the at least one service and an additional service based on the at least one requirement, is constructed. The directed acyclic graph is traversed using an initialization process to generate a determination which of an available plurality of services to provide. The determination further includes an analysis of the which of the available plurality of services to provide in view of at least one hardware resource in the data storage subsystem.

## Claims

### Claim 1

A method for managing services within a data storage subsystem using a processor in communication with a memory device during a startup sequence, comprising:
defining a first service facilitated by a provider, wherein the provider is operational by the processor;
linking at least one requirement to the first service;
incorporating the first service and the at least one requirement into a specification file;
constructing a directed acyclic graph interrelating the first service and a second service based on the at least one requirement; and
traversing the directed acyclic graph using an initialization process to generate a determination which of an available plurality of services to provide; wherein:
the determination further includes an analysis of the which of the available plurality of services to provide in view of at least one hardware resource in the data storage subsystem, and
constructing the directed acyclic graph comprises interrelating the first service and the second service based on one of a weak requirement dependency and a strong requirement dependency of the first service and the second service, the weak requirement dependency comprising starting the second service after starting the first service and the strong requirement dependency comprising starting the second service prior to starting the first service.

### Claim 2 (depends on 1)

The method of claim 1, wherein the defining the first service is performed for each of a plurality of available providers to generate the available plurality of services facilitated by a plurality of providers.

### Claim 3 (depends on 1)

The method of claim 1, wherein constructing the directed acyclic graph includes performing at least one of:
specifying the first service as a parental node of the directed acyclic graph, and
specifying the at least one requirement as a child node of the directed acyclic graph.

### Claim 4 (depends on 1)

The method of claim 1, wherein constructing the directed acyclic graph further includes interrelating at least one group requirement dependency.

### Claim 5 (depends on 1)

The method of claim 1, wherein the incorporating the first service and the at least one requirement into the specification file further includes defining means for obtaining from the provider at least one of a start, a stop, and a get status operation.

### Claim 6 (depends on 1)

The method of claim 1, further including, pursuant to the startup sequence, providing the first service and the second service represented by the directed acyclic graph as a target; wherein the first service is derived by the initialization process from the target.

### Claim 7

A system for managing services within a data storage subsystem during a startup sequence, comprising:
a processor operational in the data storage subsystem, wherein the processor is adapted for:
defining at least one a first service facilitated by a provider, wherein the provider is operational by the processor,
linking at least one requirement to the first service,
incorporating the first service and the at least one requirement into a specification file,
constructing a directed acyclic graph interrelating the first service and a second service based on the at least one requirement, and
traversing the directed acyclic graph using an initialization process to generate a determination which of an available plurality of services to provide; wherein:
the determination further includes an analysis of the which of the available plurality of services to provide in view of at least one hardware resource in the data storage subsystem, and
constructing the directed acyclic graph comprises interrelating the first service and the second service based on one of a weak requirement dependency and a strong requirement dependency of the first service and the second service, the weak requirement dependency comprising starting the second service after starting the first service and the strong requirement dependency comprising starting the second service prior to starting the first service.

### Claim 8 (depends on 7)

The system of claim 7, wherein the processor is further adapted for performing the first service for each of a plurality of available providers to generate the plurality of available services facilitated by a plurality of providers.

### Claim 9 (depends on 7)

The system of claim 7, wherein the processor is further adapted for performing at least one of:
specifying the first service as a parental node of the directed acyclic graph, and
specifying the at least one requirement as a child node of the directed acyclic graph.

### Claim 10 (depends on 7)

The system of claim 7, wherein the processor is further adapted for, pursuant to constructing the directed acyclic graph, interrelating at least one group requirement dependency.

### Claim 11 (depends on 7)

The system of claim 7, wherein the processor is further adapted for defining means for obtaining from the provider at least one of a start, a stop, and a get status operation.

### Claim 12 (depends on 7)

The system of claim 7, wherein the processor is further adapted for, pursuant to the startup sequence, providing the first service and the second service represented by the directed acyclic graph as a target; wherein the first service is derived by the initialization process from the target.

### Claim 13 (depends on 7)

The system of claim 7, wherein the processor is further adapted for, pursuant to the analysis of the which of the available plurality of services to provide in view of the at least one hardware resource in the data storage subsystem, attempting each possible service of the plurality of services.

### Claim 14

A computer program product for managing services within a data storage subsystem using a processor in communication with a memory device during a startup sequence, the computer program product comprising a non-transistory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
a first executable portion for defining a first service facilitated by a provider, wherein the provider is operational by the processor;
a second executable portion for linking at least one requirement to the first service;
a third executable portion for incorporating the first service and the at least one requirement into a specification file;
a fourth executable portion for constructing a directed acyclic graph interrelating the first service and a second service based on the at least one requirement; and
a fifth executable portion for traversing the directed acyclic graph using an initialization process to generate a determination which of an available plurality of services to provide; wherein:
the determination further includes an analysis of the which of the available plurality of services to provide in view of at least one hardware resource in the data storage subsystem, and
constructing the directed acyclic graph comprises interrelating the first service and the second service based on one of a weak requirement dependency and a strong requirement dependency of the first service and the second service, the weak requirement dependency comprising starting the second service after starting the first service and the strong requirement dependency comprising starting the second service prior to starting the first service.

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein the first executable portion for the defining the first service performs the defining the first service for each of a plurality of available providers to generate the available plurality of services facilitated by a plurality of providers.

### Claim 16 (depends on 14)

The computer program product of claim 14, further including a sixth executable portion for performing at least one of:
specifying the first service as a parental node of the directed acyclic graph, and
specifying the at least one requirement as a child node of the directed acyclic graph.

### Claim 17 (depends on 14)

The computer program product of claim 14, wherein the fourth executable portion for constructing the directed acyclic graph is further adapted for interrelating at least one group requirement dependency.

### Claim 18 (depends on 14)

The computer program product of claim 14, wherein the third executable portion for incorporating the first service and the at least one requirement into the specification file defines means for obtaining from the provider at least one of a start, a stop, and a get status operation.

### Claim 19 (depends on 14)

The computer program product of claim 14, further including a sixth executable portion for, pursuant to the startup sequence, providing the first service and the second service represented by the directed acyclic graph as a target; wherein the first service is derived by the initialization process from the target.

### Claim 20

A method of manufacturing a system for managing services within a data storage subsystem during a startup sequence, comprising:
providing a storage module operational in the data storage subsystem, wherein the storage module is adapted for:
defining a first service facilitated by a provider, wherein the provider is operational on the data storage subsystem,
linking at least one requirement to the first service,
incorporating the first service and the at least one requirement into a specification file,
constructing a directed acyclic graph interrelating the first service and a second service based on the at least one requirement, and
traversing the directed acyclic graph using an initialization process to generate a determination which of an available plurality of services to provide; wherein:
the determination further includes an analysis of the which of the available plurality of services to provide in view of at least one hardware resource in the data storage subsystem, and
constructing the directed acyclic graph comprises interrelating the first service and the second service based on one of a weak requirement dependency and a strong requirement dependency of the first service and the second service, the weak requirement dependency comprising starting the second service after starting the first service and the strong requirement dependency comprising starting the second service prior to starting the first service.

### Claim 21 (depends on 20)

The method of manufacture of claim 20, wherein the storage module is further adapted for performing the defining the first service for each of a plurality of available providers to generate the plurality of available services facilitated by a plurality of providers.

### Claim 22 (depends on 20)

The method of manufacture of claim 20, wherein the storage module is further adapted for performing at least one of:
specifying the first service as a parental node of the directed acyclic graph, and
specifying the at least one requirement as a child node of the directed acyclic graph.

### Claim 23 (depends on 20)

The method of manufacture of claim 20, wherein the storage module is further adapted for, pursuant to constructing the directed acyclic graph, interrelating at least one group requirement dependency.

### Claim 24 (depends on 20)

The method of manufacture of claim 20, wherein the storage module is further adapted for defining means for obtaining from the provider at least one of a start, a stop, and a get status operation.

### Claim 25 (depends on 20)

The method of manufacture of claim 20, wherein the storage module is further adapted for, pursuant to the startup sequence, providing the first service and the second service represented by the directed acyclic graph as a target; wherein the first service is derived by the initialization process from the target.
