Interfaccia di programmazione di rete
Un'interfaccia di programmazione di rete o npI definisce l'interfaccia tra i moduli di rete che possono essere collegati tra loro. Un modulo client registrato come client di un determinato npI può essere collegato solo ai moduli del provider registrati come provider dello stesso npI. Analogamente, un modulo provider registrato come provider di un determinato npI può essere collegato solo ai moduli client registrati come client dello stesso npI.
Ogni npI definisce gli elementi seguenti:
Identificatore NPI che identifica in modo univoco l'npI. Un modulo di rete specifica un identificatore NPI per indicare il particolare NPI supportato quando il modulo di rete si registra con il Registro moduli di rete (NMR). Un modulo di rete può supportare più criteri di rete registrando se stesso con nmR più volte, una volta per ogni npI supportato. NmR avvierà l'associazione di un modulo client a un modulo provider solo se supportano entrambi gli stessi criteri di rete.
Struttura facoltativa delle caratteristiche client che specifica le caratteristiche specifiche dell'NPI di ogni modulo client. Tali caratteristiche specifiche di criteri di rete possono includere elementi quali la versione (o le versioni) dell'istanza di criteri di rete supportata da un modulo client o la famiglia di indirizzi o il protocollo richiesto da un modulo client. Un modulo provider può usare le informazioni contenute nella struttura delle caratteristiche client di un modulo client per determinare se verrà collegata al modulo client. Se un npI non definisce caratteristiche client specifiche di NPI, questa struttura non è necessaria.
Struttura facoltativa delle caratteristiche del provider che specifica le caratteristiche specifiche dell'NPI di ogni modulo del provider. Tali caratteristiche specifiche di NPI possono includere elementi quali la versione (o le versioni) dell'npI supportata da un modulo provider o che indirizzano famiglie o protocolli supportati da un modulo provider. Un modulo client può usare le informazioni contenute nella struttura delle caratteristiche client di un modulo provider per determinare se si collega al modulo del provider. Se un npI non definisce le caratteristiche specifiche del provider NPI, questa struttura non è necessaria.
Zero o più funzioni di callback del modulo client. Dopo aver collegato correttamente un modulo provider a un modulo client, il modulo provider può accedere alla funzionalità del modulo client chiamando le funzioni di callback del modulo client.
Una o più funzioni del modulo provider. Dopo aver collegato correttamente un modulo client a un modulo provider, il modulo client può accedere alla funzionalità del modulo provider chiamando le funzioni del modulo del provider.
Struttura di tabella di invio client che contiene puntatori di funzione a ognuna delle funzioni di callback del modulo client. Se un oggetto NPI non definisce funzioni di callback del modulo client, questa struttura non è necessaria.
Struttura della tabella di invio del provider che contiene puntatori di funzione a ognuna delle funzioni del modulo del provider.
Un modulo client che supporta un determinato npI usa gli elementi definiti dall'npI per implementare il lato client dell'interfaccia. Analogamente, un modulo provider che supporta un determinato npI usa gli elementi definiti dall'npI per implementare il lato provider dell'interfaccia.
Tutti gli elementi definiti da un'entità di rete sono opachi con nmR, ad eccezione dell'identificatore NPI. NmR usa l'identificatore NPI per determinare quali moduli client devono essere collegati ai moduli del provider.