Providing Open Architecture High Availability Solutions
Providing Open Architecture High Availability Solutions
72
between the operating system and the application software and between the operating system and
the other middleware are shown as narrow arrows (indicating that it is not an interface that has
significance to the high availability capabilities in the system). However, even with this restrictive
view, the operating system will require certain capabilities to operate in a high availability system.
These include exporting to management middleware an interface for management of the operating
system itself, and the ability to deal with a changing (hot-swappable) hardware configuration as
required to support the configuration management capabilities described in Section 5.0.
The management middleware contains the new system-level functionality that is unique to high
availability systems to provide fault management and configuration management capabilities.
While it is not required that this be separately developed and integrated into the system, by defining
this as a separate building block and standardizing the interfaces to the management middleware
from all other building blocks, it becomes possible to achieve the open-architecture high
availability systems much more quickly. Note that the interface to the hardware is shown going
through the operating system. Access to the hardware is handled by device drivers in the OS but the
semantics of the interface are defined by the underlying hardware.
The other middleware consists of software packages which add additional capabilities to an
operating system such as database management or communication protocol processing.
Middleware often contains direct interfaces to the operating system, to hardware devices (accessed
through the operating system via device drivers – indicated by the arrow passing through the
operating system level to the hardware platform), and to application software. To be incorporated
well into a high availability system, middleware packages should also export a management
interface for fault and configuration management within the middleware.
The application software may or may not be aware of the high availability system infrastructure.
To support the cases where it is, there must be an interface between the application software and
the management middleware. This interface makes the application itself manageable, and may
provide access to services unique to the high availability system such as checkpointing application
state or heartbeating. Other than this interface, application software will generally interact with the
rest of the building blocks (operating system and other middleware) no differently than in non-high
availability systems.