Das Sun Cluster-Entwickler-Unterstützungspaket (SUNWscdev) stellt zwei Schnittstellen für das Codieren von Datendienstmethoden bereit:
Die Resource Management API (RMAPI), ein Satz von Funktionen auf niedriger Ebene (in der libscha.so-Bibliothek)
Die Data Services Development Library (DSDL), ein Satz von Funktionen auf höherer Ebene (in der libdsdev.so-Bibliothek), welche die Funktionen der RMAPI enthält und einige zusätzliche Funktionen bietet
Im Sun Cluster-Entwickler-Unterstützungspaket ist auch SunPlex Agent Builder enthalten, ein Tool, das die Erstellung eines Datendienstes automatisiert.
Im Folgenden wird ein Ansatz zur Entwicklung eines Datendienstes beschrieben:
Entscheiden Sie, ob in C oder der Korn-Shell codiert werden soll. Wenn Sie sich für die Verwendung der Korn-Shell entscheiden, können Sie die DSDL nicht verwenden, da diese nur eine C-Schnittstelle enthält.
Führen Sie Agent Builder aus, geben Sie die angeforderten Informationen ein und generieren Sie einen Datendienst, der Quellcode und ausführbaren Code enthält, eine RTR-Datei und ein Paket.
Wenn der generierte Datendienst angepasst werden muss, können Sie den generierten Quelldateien DSDL-Code hinzufügen. Agent Builder gibt mithilfe von Kommentaren bestimmte Stellen in den Quelldateien an, an denen eigener Code eingefügt werden kann.
Wenn der Code weiter angepasst werden muss, um die Zielanwendung zu unterstützen, können Sie dem vorhandenen Quellcode RMAPI-Funktionen hinzufügen.
In der Praxis gibt es viele unterschiedliche Möglichkeiten zum Erstellen eines Datendienstes. Anstatt zum Beispiel an bestimmten Stellen im Code, der von Agent Builder generiert wird, eigenen Code einzufügen, könnten Sie eine der generierten Methoden oder das generierte Überwachungsprogramm vollständig durch ein Programm ersetzen, das Sie mithilfe von DSDL- oder RMAPI-Funktionen von Null schreiben. Unabhängig von Ihrer Vorgehensweise macht das Starten mit Agent Builder aus folgenden Gründen fast immer Sinn:
Der von Agent Builder generierte Code, der von Natur aus generisch ist, wurde in zahlreichen Datendiensten getestet.
Agent Builder generiert eine RTR-Datei, eine makefile, ein Paket für die Ressource sowie andere Unterstützungsdateien für den Datendienst. Selbst wenn Sie keinen Datendienstcode verwenden, können Sie durch die Verwendung dieser anderen Dateien eine Menge Arbeit sparen.
Sie können den generierten Code ändern.
Im Unterschied zur RMAPI, die mehrere C-Funktionen und eine Reihe von Befehlen für die Verwendung in Skripts bereitstellt, verfügt die DSDL nur über eine C-Funktionsschnittstelle. Wenn Sie also in Agent Builder Korn-Shell (ksh)-Ausgabe festlegen, ruft der generierte Quellcode die RMAPI auf, weil keine DSDL-ksh-Befehle vorhanden sind.