Antarmuka Pemrograman Jaringan

Antarmuka Pemrograman Jaringan, atau NPI, menentukan antarmuka antara modul jaringan yang dapat dilampirkan satu sama lain. Modul klien yang terdaftar sebagai klien NPI tertentu hanya dapat dilampirkan ke modul penyedia yang terdaftar sebagai penyedia NPI yang sama. Demikian juga, modul penyedia yang terdaftar sebagai penyedia NPI tertentu hanya dapat dilampirkan ke modul klien yang terdaftar sebagai klien NPI yang sama.

Setiap NPI mendefinisikan item berikut:

  • Pengidentifikasi NPI yang secara unik mengidentifikasi NPI. Modul jaringan menentukan pengidentifikasi NPI untuk menunjukkan NPI tertentu yang didukungnya ketika modul jaringan mendaftarkan dirinya dengan Network Module Registrar (NMR). Modul jaringan dapat mendukung beberapa NPI dengan mendaftarkan dirinya dengan NMR beberapa kali, sekali untuk setiap NPI yang didukungnya. NMR akan mulai melampirkan modul klien ke modul penyedia hanya jika keduanya mendukung NPI yang sama.

  • Struktur karakteristik klien opsional yang menentukan karakteristik khusus NPI dari setiap modul klien. Karakteristik khusus NPI tersebut mungkin mencakup item seperti versi (atau versi) NPI mana yang didukung modul klien, atau yang memenuhi keluarga atau protokol yang diperlukan modul klien. Modul penyedia dapat menggunakan informasi yang terkandung dalam struktur karakteristik klien modul klien untuk menentukan apakah modul tersebut akan dilampirkan ke modul klien. Jika NPI tidak menentukan karakteristik klien khusus NPI, maka struktur ini tidak diperlukan.

  • Struktur karakteristik penyedia opsional yang menentukan karakteristik khusus NPI dari setiap modul penyedia. Karakteristik khusus NPI tersebut mungkin mencakup item seperti versi (atau versi) NPI mana yang didukung modul penyedia, atau yang membahas keluarga atau protokol yang didukung modul penyedia. Modul klien dapat menggunakan informasi yang terkandung dalam struktur karakteristik klien modul penyedia untuk menentukan apakah modul tersebut akan dilampirkan ke modul penyedia. Jika NPI tidak menentukan karakteristik penyedia khusus NPI, maka struktur ini tidak diperlukan.

  • Fungsi panggilan balik modul klien nol atau lebih. Setelah modul penyedia berhasil dilampirkan ke modul klien, modul penyedia dapat mengakses fungsionalitas modul klien dengan memanggil fungsi panggilan balik modul klien.

  • Satu atau beberapa fungsi modul penyedia. Setelah modul klien berhasil dilampirkan ke modul penyedia, modul klien dapat mengakses fungsionalitas modul penyedia dengan memanggil fungsi modul penyedia.

  • Struktur tabel pengiriman klien yang berisi penunjuk fungsi ke setiap fungsi panggilan balik modul klien. Jika NPI tidak menentukan fungsi panggilan balik modul klien apa pun, maka struktur ini tidak diperlukan.

  • Struktur tabel pengiriman penyedia yang berisi penunjuk fungsi ke setiap fungsi modul penyedia.

Modul klien yang mendukung NPI tertentu menggunakan item yang ditentukan oleh NPI untuk mengimplementasikan sisi klien antarmuka. Demikian pula, modul penyedia yang mendukung NPI tertentu menggunakan item yang ditentukan oleh NPI untuk mengimplementasikan sisi penyedia antarmuka.

Semua item yang ditentukan oleh NPI buram ke NMR kecuali untuk pengidentifikasi NPI. NMR menggunakan pengidentifikasi NPI untuk menentukan modul klien mana yang harus dilampirkan ke modul penyedia mana.