The Resource Management API (RMAPI), a set of low-level functions (in the libscha.so library)
The Data Services Development Library (DSDL), a set of higher-level functions (in the libdsdev.so library) that encapsulate the functionality of the RMAPI and provide some additional functionality
Oracle Solaris Cluster software provides the following additional packages to aid data service development:
Oracle Solaris Cluster Agent Builder (ha-cluster/developer/agent-builder), a tool that automates the creation of a data service. for more information, see Oracle Solaris Cluster Agent Builder.
The Generic Data Service or GDS (ha-cluster/ha-service/gds), a precompiled data service on which to base the data service you develop. For more information, see Developing Agents With the Generic Data Service (GDS).
Here is the recommended approach to developing a data service:
Decide whether to use the Generic Data Service (GDS) method or to code in C or the Korn shell. If you decide to use the Korn shell, you cannot use the DSDL, which provides a C interface only.
Run Agent Builder, specify the requested information, and generate a data service, which includes source and executable code, an RTR file, and a package.
If the generated data service requires customizing, you can add DSDL code to the generated source files. Agent Builder indicates, with comments, specific places in the source files where you can add your own code.
If the code requires further customizing to support the target application, you can add RMAPI functions to the existing source code.
In practice, you can take numerous approaches to creating a data service. For example, rather than add your own code to specific places in the code that is generated by Agent Builder, you could entirely replace one of the generated methods or the generated monitor program with a program that you write from scratch using DSDL or RMAPI functions.
However, regardless of how you proceed, in almost every case, starting with Agent Builder using the GDS method makes sense, for the following reasons:
The code that is generated by Agent Builder using the GDS method, while generic in nature, has been tested in numerous data services.
Agent Builder generates an RTR file, a Makefile, a package for the resource, and other support files for the data service. Even if you use none of the data service code, using these other files can save you considerable work.
You can modify the generated code.