The Service Availability™ (SA) Forum has developed standard interfaces to enable the delivery of highly available carrier-grade systems with off-the-shelf platforms, middleware and service applications. Implementation of the standards allows software developers to focus on the application code that provides mission-critical services, and to minimize the need for customized high availability programming.
FIG. 1 is a conceptual architecture stack defined by the SA forum for a highly available (HA) system. The SA forum has developed the Application Interface Specification (AIS) 120 to provide a standardized interface between HA applications 110 and HA middleware 130, such that they can be independent of one another. The HA applications 110 and the HA middleware 130 are run on an operating system 140 and are hosted by a hardware platform 150. Service continuity is achieved with the cooperation of all of the components in the stack. As part of the AIS 120, the SA forum has also developed a specification for the Availability Management Framework (AMF) 125 to coordinate and manage service availability in an HA system (SA Forum, Application Interface Specification, Availability Management Framework SAI-AIS-AMF-B.04.01). An AMF configuration, which is a configuration compliant with the AMF specification, is a logical organization of resources for providing and protecting services for a given HA application. An AMF configuration consists of components grouped into service units (SUs), which are further grouped into services groups (SGs). An application may consist of one or several SGs to provide and protect services. The services are defined in terms of service instances (SIs) composed of component service instances (CSIs). At runtime, for each SI, the middleware implementing the AMF service assigns active and standby HA states to SUs, according to a redundancy model used by the HA system. The AMF specification defines five redundancy models, which include the No-Redundancy, 2N, N+M, N-Way-Active and N-Way redundancy models.
Several approaches are devised for generating valid AMF configurations. The design of the AMF configuration is driven by the required service and the specified redundancy model. Some of the approaches systematically generate AMF configurations that ensure SI protection: for example, components are created to provide and protect requested CSIs, and SUs are defined to provide and protect required SIs. In addition, the SUs are grouped into SGs with the redundancy model requested by the designer. However, when configurations are designed in an ad hoc manner, there can be a question of whether the configurations ensure SI protection. In some situations, new or additional services may be requested after a configuration is generated. In these situations, there can be a question of whether the current configuration provides and protects all the services (including the new/additional services).
AMF configurations created by designers using traditional tools also need to be validated. Validating the protection of services as requested may require the exploration of all possible SI combinations and SI-SU assignments. This is a combinatorial and complex problem. In general, the problem is NP-hard for the N+M, N-Way-Active, and N-Way redundancy models.