Menemukan Titik Akhir

Program server mendengarkan titik akhir untuk permintaan klien. Sintaks string titik akhir tergantung pada urutan protokol yang Anda gunakan. Misalnya, titik akhir untuk TCP/IP adalah nomor port, dan sintaks titik akhir untuk pipa bernama adalah nama pipa yang valid.

Ada dua jenis titik akhir: terkenal dan dinamis. Pilihan Anda tentang jenis titik akhir yang digunakan program Anda menentukan apakah aplikasi terdistribusi atau pustaka run-time menentukan titik akhir.

Bagian ini membahas titik akhir dan menyajikan informasi tentang cara menemukannya. Ini diatur ke dalam topik-topik berikut:

Catatan

Istilah titik akhir statis dan titik akhir terkenal setara, dan digunakan secara bergantian.

 

Dimungkinkan bagi aplikasi klien Anda untuk menggunakan peta titik akhir untuk menentukan apakah program server sedang berjalan atau tidak. Klien Anda dapat memanggil RpcMgmtInqIfIds, RpcMgmtEpEltInqBegin, dan RpcMgmtEpEltInqDone untuk melihat apakah server telah mendaftarkan antarmuka tertentu yang diperlukan dalam peta titik akhir.

Menggunakan Titik Akhir Terkenal

Titik akhir terkenal adalah titik akhir yang telah ditetapkan sebelumnya yang digunakan program server setiap kali dijalankan. Karena server selalu mendengarkan titik akhir tertentu, klien selalu mencoba menyambungkannya. Titik akhir terkenal biasanya ditetapkan oleh otoritas yang bertanggung jawab atas protokol transportasi. Karena komputer host server memiliki jumlah titik akhir yang tersedia yang terbatas, pengembang aplikasi sangat tidak dianjurkan untuk menggunakan titik akhir terkenal. Keuntungan lain dari titik akhir dinamis adalah menyederhanakan manajemen dan pemeliharaan sistem jangka panjang.

Aplikasi terdistribusi dapat menentukan titik akhir terkenal dalam string dan meneruskan string tersebut sebagai parameter ke fungsi RpcServerUseProtseqEp. Atau, string titik akhir dapat muncul di header antarmuka file IDL sebagai bagian dari atribut antarmuka [ titik akhir].

Anda dapat menggunakan dua pendekatan untuk mengimplementasikan titik akhir terkenal:

  • Tentukan semua informasi dalam pengikatan string
  • Menyimpan titik akhir terkenal dalam database layanan nama

Anda dapat menulis semua informasi yang diperlukan untuk membuat pengikatan ke dalam aplikasi terdistribusi saat Anda mengembangkannya. Klien dapat menentukan titik akhir terkenal secara langsung dalam string, memanggil RpcStringBindingCompose untuk membuat string yang berisi semua informasi pengikatan, dan menyediakan string ini ke fungsi RpcBindingFromStringBinding untuk mendapatkan handel. Klien dan server dapat dikodekan secara permanen untuk menggunakan titik akhir terkenal, atau ditulis sehingga informasi titik akhir berasal dari baris perintah, file data, file konfigurasi, atau file IDL.

Aplikasi klien Anda juga dapat mengkueri database layanan nama untuk informasi titik akhir terkenal.

Menggunakan Titik Akhir Dinamis

Jumlah titik akhir untuk server tertentu dan urutan protokol tertentu biasanya terbatas. Misalnya, ketika Anda menggunakan urutan protokol ncacn_ip_tcp , menunjukkan bahwa komunikasi jaringan RPC terjadi menggunakan TCP/IP, hanya sejumlah port terbatas yang tersedia (sebagian besar sistem hanya memiliki rentang 1025 hingga 5000 yang dibuka). Pustaka run-time RPC memungkinkan Anda menetapkan titik akhir secara dinamis, sesuai kebutuhan. Karena jumlah UUID antarmuka yang mungkin praktis tidak terbatas, menggunakan antarmuka UUID untuk mengarahkan panggilan menawarkan lebih banyak ruang untuk ekspansi dan lebih banyak fleksibilitas.

Secara default, fungsi pustaka run-time RPC mencari informasi titik akhir saat mereka mengkueri database layanan nama. Jika titik akhir dinamis, database layanan nama tidak akan berisi informasi titik akhir. Namun, kueri akan memberi program klien Anda nama server. Kemudian dapat mencari peta titik akhir server.

Jika klien perlu melakukan panggilan prosedur jarak jauh menggunakan titik akhir dinamis, metode yang disukai adalah melakukan panggilan pada handel pengikatan yang terikat sebagian. Durasi RPC menyelesaikan titik akhir secara transparan. Metode ini lebih unggul menggunakan fungsi RpcEpResolveBinding , karena memungkinkan mekanisme penembolokan tingkat lanjut dalam run time RPC.

Jika diperlukan kontrol yang lebih spesifik atas pemilihan titik akhir, klien dapat mencari entri peta titik akhir satu per satu dengan memanggil fungsi RpcMgmtEpEltInqBegin, RpcMgmtEpEltInqNext, dan RpcMgmtEpEltInqDone .

Mengekspor Titik Akhir Terkenal ke Database Peta Titik Akhir

Dimungkinkan untuk mencampur dua pendekatan untuk menemukan titik akhir, terutama ketika sistem terdistribusi beralih dari model titik akhir terkenal ke model titik akhir dinamis. Dalam transisi seperti itu, versi perantara server akan menggunakan titik akhir terkenal, tetapi juga akan mendaftarkan titik akhir terkenal dengan database peta titik akhir. Pendekatan ini memungkinkan klien yang menggunakan titik akhir dan klien terkenal yang menggunakan titik akhir dinamis untuk terhubung. Setelah semua server ditingkatkan, versi klien baru dapat disebarkan yang hanya menggunakan titik akhir dinamis. Setelah semua klien ditingkatkan, versi server akhir dapat berhenti menggunakan titik akhir terkenal dan mulai menggunakan titik akhir dinamis saja.

Pendekatan ini memungkinkan jalur transisi untuk aplikasi yang telah dimulai dengan titik akhir terkenal tetapi ingin bermigrasi ke titik akhir dinamis tanpa memerlukan pembaruan simultan dari semua server dan klien.