Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Program Dokter (lihat \samples\rpc\doctor di Platform Software Development Kit (SDK)) adalah contoh yang baik dari aplikasi yang menunjukkan kompromi desain yang terkait dengan atribut array dan string. Program Dokter adalah versi sampel kecil dari program yang lebih dikenal, Eliza, yang dikembangkan oleh peneliti kecerdasan buatan Joseph Weizenbaum di MIT pada tahun 1960-an. Program ini meniluki terapis dengan menggunakan pencocokan pola sederhana untuk merespons input bahasa alami.
Program Eliza merekam sesi berikut.
| Pengguna | Eliza |
|---|---|
| Laki-laki semua sama. | Dengan cara apa? |
| Mereka selalu mengganggu kita tentang sesuatu atau lainnya. | Dapatkah Anda memikirkan contoh tertentu? |
| Nah, pacar saya membuat saya datang ke sini. | Pacarmu membuatmu datang ke sini. |
| Dia bilang aku sering merasa depresi. | Saya menyesal mendengar bahwa Anda tertekan. |
| Itu benar, aku tidak bahagia. | Apakah Anda pikir datang ke sini akan membantu Anda agar tidak merasa tidak bahagia? |
| Aku butuh bantuan; hal itu tampaknya sudah pasti. | Apa artinya bagi Anda jika Anda punya bantuan? |
| Mungkin aku bisa belajar untuk bergaul dengan ibuku. | Ceritakan lebih banyak tentang keluarga Anda. |
| Ibuku menjagaku. | Siapa lagi di keluargamu yang menjagamu? |
| Ayahku. | Ayahmu. |
| Kau seperti ayahku dalam beberapa hal. | Kesan apa yang Anda lihat? |
Program Dokter dapat dibagi menjadi aplikasi sisi klien dan sisi server. Sisi klien meminta pasien untuk input dan menampilkan respons dokter. Sisi server memproses input pasien dan menghasilkan respons dokter. Ini adalah contoh klasik aplikasi server klien: klien bertanggung jawab atas interaksi pengguna saat server menangani beban komputasi yang luas. Tidak banyak data yang diteruskan ke dan dikembalikan oleh fungsi tetapi, karena data dapat memerlukan sejumlah besar pemrosesan, server memprosesnya.
Program Dokter menggunakan array karakter untuk input dan mengembalikan array karakter lain sebagai output. Tabel di bawah ini mencantumkan empat cara untuk meneruskan array karakter antara klien dan server, dan atribut dan fungsi yang diperlukan untuk mengimplementasikan setiap pendekatan.
| Mendekati | Atribut atau fungsi |
|---|---|
| Array karakter yang dihitung | [ size_is] , [ length_is] , [ ref] |
| String yang dikelola oleh stub | [ string], [ ref], fungsi_panggilan_midl_user_allocate pada server |
| String yang dikelola oleh stub | [ string], [ unique], midl_user_allocate di klien dan server |
| Fungsi yang mengembalikan string | [ unik] |
Dalam batasan yang terkait dengan kombinasi atribut ini, ada cara alternatif untuk mengirim satu array karakter dari klien ke server dan mengembalikan array karakter lain dari server ke klien.
Topik berikut menunjukkan trade-off desain antara berbagai antarmuka yang dapat mengelola parameter ini.