Menentukan Titik Akhir

Titik akhir adalah alamat khusus jaringan dari proses server untuk panggilan prosedur jarak jauh. Nama aktual titik akhir tergantung pada urutan protokol yang digunakan. Misalnya, TCP, UDP, dan HTTP menggunakan port. Pipa bernama menggunakan nama pipa bernama. Aplikasi klien/server dapat menggunakan titik akhir terkenal atau titik akhir dinamis. Bagian ini menyajikan teknik yang digunakan program server untuk menentukan titik akhir yang terkenal dan dinamis. Informasi dibahas dalam topik berikut:

Menentukan Titik Akhir Terkenal

Saat server Anda menggunakan titik akhir terkenal, server dapat menyertakan data titik akhir sebagai bagian dari entri database layanan namanya. Jika ya, handel pengikatan klien berisi alamat server lengkap yang menyertakan titik akhir terkenal ketika klien mengimpor handel pengikatan dari entri server.

Program server Anda juga dapat menentukan titik akhir terkenal pada saat yang sama menentukan urutan protokol. Panggil fungsi RpcServerUseProtseqEp atau RpcServerUseProtseqEpEx . Perbedaan antara keduanya adalah bahwa fungsi terakhir memiliki parameter tambahan yang dapat digunakan server Anda untuk mengontrol alokasi port dinamis.

Jika program server Anda menentukan informasi titik akhirnya dengan cara ini, program ini juga harus memanggil fungsi RpcEpRegister untuk mendaftarkan titik akhir di peta titik akhir. Meskipun titik akhir selalu sama, klien dapat menggunakan peta titik akhir untuk menemukan server.

Seperti urutan protokol, aplikasi dapat menentukan informasi titik akhir dalam file IDL-nya. Ketika itu terjadi, ia harus mendaftarkan urutan protokol dan titik akhir pada saat yang sama dengan memanggil fungsi RpcServerUseAllProtseqsIf atau RpcServerUseAllProtseqsIfEx . Dalam hal ini, klien memiliki akses ke informasi titik akhir melalui spesifikasi antarmuka dalam file IDL. Oleh karena itu, tidak perlu memanggil fungsi RpcEpRegister .

Menentukan Titik Akhir Dinamis

Titik akhir dinamis adalah titik akhir yang ditetapkan komputer host server saat server memulai eksekusi. Sebagian besar aplikasi server menggunakan titik akhir dinamis untuk menghindari konflik dengan program lain atas jumlah port terbatas yang tersedia pada sistem komputer host server. Namun, program yang menggunakan pipa bernama atau urutan protokol ncalrpc memiliki ruang nama titik akhir yang sangat besar. Mereka mendapat manfaat lebih sedikit dari titik akhir dinamis daripada program yang menggunakan transportasi lain.

Program server mendaftarkan titik akhir dinamis dalam database peta titik akhir. Jika Anda ingin server menggunakan titik akhir yang tersedia, hubungi RpcServerUseAllProtSeqs, RpcServerUseAllProtseqsEx, RpcServerUseProtseq atau RpcServerUseProtseqEx. Ini mengatur pustaka run-time RPC untuk menggunakan semua atau satu urutan protokol yang valid dengan titik akhir dinamis. Server kemudian harus memanggil RpcServerInqBindings untuk mendapatkan serangkaian handel pengikatan yang valid. Server meneruskan set handel pengikatan, atau vektor pengikatan, ke fungsi RpcEpRegister untuk mendaftarkan semua titik akhir yang sesuai di peta titik akhir. Untuk setiap panggilan yang dilakukan server Anda ke RpcEpRegister, harus ada panggilan yang sesuai ke RpcBindingVectorFree untuk merilis memori yang digunakan vektor pengikatan.

Perhatikan bahwa program server dapat menggunakan fungsi RpcEpRegisterNoReplace daripada RpcEpRegister. Program biasanya menggunakan RpcEpRegisterNoReplace ketika beberapa salinan program server harus berjalan pada sistem host server.

Fungsi RpcEpRegister dan RpcEpRegisterNoReplace menambahkan antarmuka server dan handel pengikatan ke database pemeta titik akhir. Ketika klien melakukan panggilan prosedur jarak jauh menggunakan handel yang terikat sebagian, pustaka run-time klien meminta pemeta titik akhir komputer server untuk titik akhir instans server yang kompatibel. Pustaka klien menyediakan antarmuka UUID, urutan protokol, dan, jika ada, UUID objek dalam handel pengikatan klien. Pemeta titik akhir mencari entri database yang cocok dengan informasi klien. Antarmuka klien/server UUID, versi utama antarmuka, dan urutan protokol semuanya harus sama persis. Selain itu, versi minor antarmuka server harus lebih besar dari atau sama dengan versi minor klien.

Jika semua pengujian berhasil, pemeta titik akhir mengembalikan titik akhir yang valid dan pustaka run-time klien memperbarui titik akhir dalam handel pengikatan.

Titik akhir dinamis secara otomatis dibersihkan dari database pemeta titik akhir saat proses server berhenti berjalan. Anda dapat menghapus titik akhir dari database pemeta titik akhir sebelum program server keluar menggunakan fungsi RpcEpUnregister , atau Anda dapat mengizinkan pembersihan otomatis untuk mengelola penghapusan titik akhir.