Netzwerkprogrammierschnittstelle

Eine Netzwerkprogrammierschnittstelle oder NPI definiert die Schnittstelle zwischen Netzwerkmodulen , die miteinander verbunden werden können. Ein Clientmodul , das als Client einer bestimmten NPI registriert ist, kann nur an Anbietermodule angefügt werden, die als Anbieter derselben NPI registriert sind. Ebenso kann ein Anbietermodul, das als Anbieter einer bestimmten NPI registriert ist, nur an Clientmodule angefügt werden, die als Clients derselben NPI registriert sind.

Jede NPI definiert die folgenden Elemente:

  • Ein NPI-Bezeichner , der den NPI eindeutig identifiziert. Ein Netzwerkmodul gibt einen NPI-Bezeichner an, der den bestimmten NPI angibt, den es unterstützt, wenn sich das Netzwerkmodul bei der Network Module Registrar (NMR) registriert. Ein Netzwerkmodul kann mehrere NPIs unterstützen, indem es sich mehrmals für jeden unterstützten NPI beim NMR registriert. Der NMR initiiert das Anfügen eines Clientmoduls an ein Anbietermodul nur, wenn beide denselben NPI unterstützen.

  • Eine optionale Clientmerkmalestruktur , die die NPI-spezifischen Merkmale jedes Clientmoduls angibt. Solche NPI-spezifischen Merkmale können Elemente enthalten, z. B. welche Version (oder Versionen) der NPI, die ein Clientmodul unterstützt, oder welche Adressfamilie oder welches Protokoll ein Clientmodul benötigt. Ein Anbietermodul kann die In der Clienteigenschaftenstruktur eines Clientmoduls enthaltenen Informationen verwenden, um zu bestimmen, ob es an das Clientmodul angefügt wird. Wenn ein NPI keine NPI-spezifischen Clientmerkmale definiert, ist diese Struktur nicht erforderlich.

  • Eine optionale Anbietermerkmalestruktur , die die NPI-spezifischen Merkmale jedes Anbietermoduls angibt. Solche NPI-spezifischen Merkmale können Elemente umfassen, z. B. welche Version (oder Versionen) der NPI ein Anbietermodul unterstützt, oder welche Adressfamilien oder Protokolle ein Anbietermodul unterstützt. Ein Clientmodul kann die Informationen in der Clienteigenschaftenstruktur eines Anbietermoduls verwenden, um zu bestimmen, ob es an das Anbietermodul angefügt wird. Wenn ein NPI keine NPI-spezifischen Anbietermerkmale definiert, ist diese Struktur nicht erforderlich.

  • Null oder mehr Clientmodulrückruffunktionen. Nachdem ein Anbietermodul erfolgreich an ein Clientmodul angefügt wurde, kann das Anbietermodul auf die Funktionalität des Clientmoduls zugreifen, indem es die Rückruffunktionen des Clientmoduls aufruft.

  • Mindestens eine Anbietermodulfunktion. Nachdem ein Clientmodul erfolgreich an ein Anbietermodul angefügt wurde, kann das Clientmodul auf die Funktionalität des Anbietermoduls zugreifen, indem es die Funktionen des Anbietermoduls aufruft.

  • Eine Client-Dispatchtabellenstruktur , die Funktionszeiger auf die einzelnen Rückruffunktionen des Clientmoduls enthält. Wenn ein NPI keine Clientmodulrückruffunktionen definiert, ist diese Struktur nicht erforderlich.

  • Eine Struktur der Anbieterverteilungstabelle , die Funktionszeiger auf die einzelnen Funktionen des Anbietermoduls enthält.

Ein Clientmodul, das eine bestimmte NPI unterstützt, verwendet die vom NPI definierten Elemente, um die Clientseite der Schnittstelle zu implementieren. In ähnlicher Weise verwendet ein Anbietermodul, das einen bestimmten NPI unterstützt, die vom NPI definierten Elemente, um die Anbieterseite der Schnittstelle zu implementieren.

Alle von einem NPI definierten Elemente sind für den NMR undurchsichtig, mit Ausnahme des NPI-Bezeichners. Der NMR verwendet den NPI-Bezeichner, um zu bestimmen, welche Clientmodule an welche Anbietermodule angefügt werden sollen.