Cluster Server Programming

Cluster Server programming targets two main types of development:

Depending on the type of development that you intend to pursue, you will use one or more of the application programming interfaces (APIs) included with the Cluster Server SDK. The Cluster Server SDK has a variety of different APIs, some that are sets of functions and others that are Component Object Model (COM) interfaces. Although Cluster Server supports development in C, C++, Microsoft® Visual Basic®, and several scripting languages, not all of the APIs are meant to be used with all of the languages. The following table offers a summary description of each API.

API Description Languages
Cluster API Allows a resource DLL or application to communicate with the Cluster Service and cluster database. C, C++
Resource API Allows the Cluster Service to communicate with a resource through the Resource Monitor. C, C++
Cluster Administrator Extension API Allows property pages and context menus for a custom resource type to be integrated into Cluster Administrator. C, C++
Cluster Automation Server API Allows an application to administer a cluster. Visual Basic, scripting languages

The Cluster API is a function-based interface used by cluster-aware applications written in C or C++. The Cluster Service implements all of the functions of the Cluster API. Applications and resource DLLs make calls to these functions to access information about cluster objects.

The Resource API is a function-based interface that is primarily implemented by resource DLLs written in C or C++. This API also includes a few callback functions that are used by the resource DLL to report events and status.

Cluster Automation Server is a COM-based dual interface used by cluster management applications written in Microsoft® Visual Basic® or one of the scripting languages. Cluster Automation Server is implemented in MSCLUS.DLL.

The Cluster Administrator Extension API is a set of COM-based interfaces that are implemented and used by Cluster Administrator extension DLLs written in C or C++. Cluster Administrator extension DLLs implement interfaces for enhancing Cluster Administrator objects and invoking commands. The DLLs call other interfaces in the API to retrieve information from Cluster Administrator and to add to a Cluster Administrator property sheet, wizard, or context menu.