Pelatihan
Proksi
Proksi berada di ruang alamat proses panggilan dan bertindak sebagai pengganti untuk objek jarak jauh. Dari perspektif objek panggilan, proksi adalah objek . Biasanya, peran proksi adalah mengemas parameter antarmuka untuk panggilan ke metode di antarmuka objeknya. Proksi mengemas parameter ke dalam buffer pesan dan meneruskan buffer ke saluran, yang menangani transportasi antar proses. Proksi diimplementasikan sebagai objek agregat, atau komposit. Ini berisi bagian manajer yang disediakan sistem yang disebut manajer proksi dan satu atau beberapa komponen khusus antarmuka yang disebut proksi antarmuka. Jumlah proksi antarmuka sama dengan jumlah antarmuka objek yang telah diekspos ke klien tertentu. Untuk klien yang mematuhi model objek komponen, proksi tampaknya menjadi objek nyata.
Catatan
Dengan marshaling kustom, proksi dapat diimplementasikan dengan cara yang sama atau dapat berkomunikasi langsung dengan objek tanpa menggunakan stub.
Setiap proksi antarmuka adalah objek komponen yang mengimplementasikan kode marshaling untuk salah satu antarmuka objek. Proksi mewakili objek yang menyediakan kode marshaling. Setiap proksi juga mengimplementasikan antarmuka IRpcProxyBuffer . Meskipun antarmuka objek yang diwakili oleh proksi bersifat publik, implementasi IRpcProxyBuffer bersifat privat dan digunakan secara internal dalam proksi. Manajer proksi melacak proksi antarmuka dan juga berisi implementasi publik antarmuka IUnknown yang mengontrol untuk agregat. Setiap proksi antarmuka dapat ada di DLL terpisah yang dimuat ketika antarmuka yang didukungnya diwujudkan ke klien.
Diagram berikut menunjukkan struktur proksi yang mendukung marshaling standar parameter milik dua antarmuka: IA1 dan IA2. Setiap proksi antarmuka mengimplementasikan IRpcProxyBuffer untuk komunikasi internal antara potongan agregat. Ketika proksi siap untuk meneruskan parameter marshal di seluruh batas proses, proksi memanggil metode di antarmuka IRpcChannelBuffer , yang diimplementasikan oleh saluran. Saluran pada gilirannya meneruskan panggilan ke pustaka run-time RPC sehingga dapat mencapai tujuannya di objek.