Version 9.6
 —  Customizing Lifecycle Management  —

Introduction


Lifecycle Management

Lifecycle management is of importance to every enterprise that wants to implement a process-driven SOA with emphasis on adaptability, service reuse and improvement. The lifecycle management (LCM) system for CentraSite helps to:

Typically, assets such as web services pass through different states (designing, implementation, testing) before they can be used in a production environment. As the number of objects in a registry grows, it is necessary to introduce stages (Development, Test, Production) to provide adequate operational environments for all parties involved in the lifecycle. Furthermore, an organization may want to add conditions and rules for passing an object through the lifecycle. Therefore the registry should allow administrators to define roles and permissions and connect these to lifecycle steps.

Top of page

Lifecycle Models

A lifecycle model is a state machine that can be maintained in CentraSite and applied to an asset type. In CentraSite, the lifecycles of assets, policies and also lifecycle models themselves can be managed. Lifecycle models are defined by administrators for their organization.

There are two levels of lifecycle models: system-wide models and organization-specific models. A system-wide model applies to objects that can be owned by any organization, whereas an organization-specific model applies only to objects that are owned by a specific organization. System-wide models have precedence over organization-specific models; when a system-wide model for an object type (set of types) exists, it takes priority over all other models. However, if an organization-specific model already exists and a system-wide model is added, then the organization-specific model still exists and the objects that are in this model will complete their lifecycle without effects. Only new objects will be assigned to the new system-wide model.

Each organization-specific lifecycle model belongs to an organization. System-wide models do not belong to any organization, but apply to all organizations. System-wide models may have organization-specific policies attached to them.

For a given object type (say "Service"), each organization can define and activate its own lifecycle model, so that there are several models that can control the "Service" type. However, per organization only one lifecycle model can be active. When a new "Service" instance is created, then the creating user belongs to an organization, and that organization's active lifecycle model will be used to control the particular "Service" instance.

It is possible to define a lifecycle model which consists of multiple nodes (registries) to make up one overall model. Each node only knows the model for the current node. It also knows the nodes that make up the complete lifecycle model and where they are.

Global models may have organization-specific policies attached to them. Organizational models are technically hierarchical, as organizations may contain sub-organizations.

A lifecycle model can itself be assigned to a lifecycle model, i.e. to enable a lifecycle model it may be necessary to go through a lifecycle model to activate it for usage.

Lifecycle management is possible for the object types that are classified as assets, as well as for policies and lifecycle models themselves.

The following points should also be noted:

Top of page

Stages for Lifecycle Registries

Most software engineering methodologies define fundamental phases, that start with requirements or needs for a software and end with a productive software. These phases apply to typical lifecycle stages like Analysis, Development, Test, Production. In general these stages are represented by dedicated software and hardware environments like server, repositories and tools. A registry adds benefit to all stages as it references, collects and maintains structured information of relevance in each of these stages. Especially for enterprises following the service oriented architecture, the CentraSite provides registry stages that can be used to take strong control over the lifecycle process the on one hand but allow for loosely coupled stage environments on the other hand.

If we take the example of the stages Architecture, Development, Test and Production, the following tasks could apply to them:

Given these different tasks and requirements, it is obvious that multiple registries become important for optimal support of specific needs; while the Architecture is interested in services, service versions and participants still in planning, the Production is not. Test registries keep objects and references with physical properties - like endpoints - that are only valid during the test phase and are of no interest either to Architecture or Production. However, it is important that defined transitions exist from one stage to another and that each object can be traced to its current stage.

This four-stage topology is an example for enterprises with a strong top-down approach in their enterprise architecture; simpler or more complex topologies are also possible.

Note:
This four-stage topology is an example for enterprises with a strong top-down approach in their enterprise architecture; simpler or more complex topologies are also possible. In practice, any deployment involving more than two stages leads to significant administrative overhead involved in managing multiple registries (in particular, creating LCMs and policies across all instances) and promoting objects from one registry to another.

Top of page

Defining a Lifecycle Model in CentraSite

When a lifecycle model is stored in CentraSite, it must be a valid state machine. This specifically means that all of the following semantic rules must be checked by CentraSite:

Top of page

States for Registry Objects

The registry stages are broken down into states for lifecycle-enabled objects like services. This way the lifecycle process can be split into smaller steps, each supported and controlled by its responsible stage registry. States are connected to each other by allowable transitions. An approval process can define the conditions and activities to set a service from one state to another. CentraSite comes with the following:

By using stages and states, you ensure that the registry object always has one defined state, even if multiple registries exist. State transitions are restricted; this ensures that the registry object had passed the lifecycle process correctly and achieved the required quality.

When moving from one state to the next, the following situations can exist:

Top of page

Applying Lifecycle Models to Asset Types

You can associate a lifecycle model with one or more asset types. If an active lifecycle model is already associated with a particular type within an organization, you cannot assign another lifecycle model to that type. In other words, a particular object type can be associated with one and only one lifecycle model within a particular organization. If you want to switch an object type to a different lifecycle model, you must disassociate it with the current model and then assign it to the new model.

Applying Lifecycle Models to Virtual Types

You can configure a virtual type to follow the same lifecycle model as its base type or you can give the virtual type its own lifecycle model to follow. Whether a virtual type follows the lifecycle model of its base type is determined by the type's Inherit Base Type LCM setting.

When the Inherit Base Type LCM option is enabled for a virtual type, the virtual type automatically inherits its lifecycle model from the base type if the virtual type does not have an assigned lifecycle model of its own. (In other words, the lifecycle model for the base type serves as the default lifecycle model for the virtual type. CentraSite applies the lifecycle model of the base type to the virtual type only when the virtual type has no other lifecycle model assigned to it.)

If the Inherit Base Type LCM option is disabled, the lifecycle of the virtual type is completely independent of the lifecycle of the base type. The virtual type will only have lifecycle model if you explicitly assign one to it.

The following table summarizes how lifecycle model is applied to a virtual type depending on the state of the Inherit Base Type LCM option.

If the "Inherit Base Type LCM" option is... And the Base Type... And the Virtual Type... Instances of the Virtual Type...
ENABLED HAS an assigned lifecycle model DOES NOT HAVE an assigned lifecycle model Will follow the lifecycle model assigned to the Base Type
ENABLED HAS an assigned lifecycle model HAS an assigned lifecycle model Will follow the lifecycle model assigned to the Virtual Type
ENABLED DOES NOT HAVE an assigned lifecycle model DOES NOT HAVE an assigned lifecycle model Will not have an assigned lifecycle model
ENABLED DOES NOT HAVE an assigned lifecycle model HAS an assigned lifecycle model Will follow the lifecycle model assigned to the Virtual Type
DISABLED HAS an assigned lifecycle model DOES NOT HAVE an assigned lifecycle model Will not have an assigned lifecycle model
DISABLED HAS an assigned lifecycle model HAS an assigned lifecycle model Will follow the lifecycle model assigned to the Virtual Type
DISABLED DOES NOT HAVE an assigned lifecycle model DOES NOT HAVE an assigned lifecycle model Will not have an assigned lifecycle model
DISABLED DOES NOT HAVE an assigned lifecycle model HAS an assigned lifecycle model Will follow the lifecycle model assigned to the Virtual Type

Note:
If a virtual type initially inherits its lifecycle model from the base type and it later it is assigned its own lifecycle model, instances of the virtual type that were created while the type was following the lifecycle model of the base type will continue following that model. Only instances of the virtual type that are created after the new lifecycle model is assigned to the virtual type will comply with the virtual type's newly assigned lifecycle model.

For more information about virtual types and the Inherit Base Type LCM option, see the section What is a Virtual Type? in the document Object Type Management. For information about which predefined types in CentraSite are virtual types, see the section The Predefined Asset Types in CentraSite in the document Object Type Management.

Top of page