Server.pl
Server.pl enthält das Framework des Hauptservers und die Funktion zur Kommunikation mit dem Socket-DSA. Sie können Server.pl mit Version 5.8 und später des Perl-Interpreters ausführen. Darüber hinaus ist Java Version 1.7 oder höher erforderlich. Das Script Server.pl wurde so konzipiert, dass es unverändert eingesetzt werden kann. Es sind keine zusätzlichen Anpassungen erforderlich. Sie können das Script natürlich trotzdem für Ihre Zwecke umschreiben. Um den Muster-Socket-Server anzupassen, ändern Sie das Modul UserDataInterface.pm.
Server.pl verwendet das Modul Net::Server für die Kommunikation mit dem DSA über ein Netz. Net::Server ist ein kostenlos verfügbares Perl-Modul, das die zentrale Funktionalität für die Erstellung eines Servers bereitstellt,
der mit anderen Anwendungen über Internetprotokolle kommuniziert. Im Einzelnen sind für Server.pl die folgenden Module erforderlich:
Net::Server::PreFork;Net::Server::Proto::TCP;Switch;Getopt::Long;
Weitere Informationen zu Net::Server finden Sie unter http://seamons.com/net_server.html.
Server.pl enthält die mit Netcool ® /Impactverbundene Funktion des Beispielservers. Anforderungen des Socket-DSA zur Rückgabe von Daten aus oder zum Hinzufügen von neuen Daten zu einer Datenquelle werden verarbeitet, indem im Modul UserDataInterface.pm definierte Funktionen aufgerufen werden.
Bei der Initialisierung wird Server.pl an die durch die Variable $portnum angegebene Portadresse gebunden. Die Standardportadresse lautet 22180.
Nach der Initialisierung wartet Server.pl auf eingehende Nachrichten von dem Socket-DSA an dem angegebenen Port. Der Socket-DSA
initiiert jeden Nachrichtenaustausch durch das Senden der Zeichenfolge hi an den Port, auf dem der Server ausgeführt wird. Wenn der Server die Zeichenfolge empfängt, antwortet er mit einer identischen Nachricht hi.
Dann wartet der Server auf eine Anforderung vom Socket-DSA. Jede Anforderung beginnt mit einer Nachricht, die den Namen der auszuführenden Operation enthält. Die Namen der Operationen entsprechen den Funktionsnamen GetByFilter, GetByKey, GetByLinks und AddDataItem. Server.pl antwortet auf diese ursprüngliche Nachricht, indem zusätzliche Informationen aus dem Socket-DSA auf der Basis der Parameter angefordert werden, die für die Ausführung der Operation erforderlich sind. Die Parameter entsprechen den Parametern, die aus einer Netcool/Impact -Richtlinie an die Funktion übergeben werden.
Beim Übermitteln einer Anforderung nach der GetByFilter-Operation fragt Server.pl den Socket-DSA beispielsweise nach dem Namen des Datentyps und der Filterzeichenfolge. Server.pl ordnet den Inhalt der Antworten von dem DSA den Variablen $typename und $filter zu.
Wenn Server.pl die für eine bestimmte Operation erforderlichen Parameter empfangen hat, wird die entsprechende Funktion aufgerufen, die in UserDataInterface.pm definiert ist, und die von dem Socket-DSA empfangenen Parameterdaten werden übergeben. UserDataInterface.pm stellt die Ergebnisse für die Anforderung zusammen und gibt diese an Server.pl zurück,
das die Ergebnisse wiederum an den DSA zurückgibt.
Server.pl sendet die Ergebnisse in Form einer Gruppe von Name/Wert-Paaren an den Socket-DSA zurück, wobei jede Gruppe ein Datenelement und jedes Name/Wert-Paar ein Datenelementfeld darstellt. Das Format der Ergebnisse ist eine Reihe von Nachrichten, wobei die einzelnen Namen und Werte als eindeutige Nachrichten gesendet werden und eine leere Zeichenfolge das Ende eines Datenelements kennzeichnet.