Komunikasi antarproseksi

Sistem operasi Windows menyediakan mekanisme untuk memfasilitasi komunikasi dan berbagi data antar aplikasi. Secara kolektif, aktivitas yang diaktifkan oleh mekanisme ini disebut komunikasi antarproseksi (IPC). Beberapa bentuk IPC memfasilitasi pembagian tenaga kerja di antara beberapa proses khusus. Bentuk LAIN IPC memfasilitasi pembagian tenaga kerja di antara komputer pada jaringan.

Biasanya, aplikasi dapat menggunakan IPC yang dikategorikan sebagai klien atau server. Klien adalah aplikasi atau proses yang meminta layanan dari beberapa aplikasi atau proses lain. Server adalah aplikasi atau proses yang merespons permintaan klien. Banyak aplikasi bertindak sebagai klien dan server, tergantung pada situasinya. Misalnya, aplikasi pemrosesan kata mungkin bertindak sebagai klien dalam meminta tabel ringkasan biaya manufaktur dari aplikasi spreadsheet yang bertindak sebagai server. Aplikasi spreadsheet, pada gilirannya, dapat bertindak sebagai klien dalam meminta tingkat inventarisasi terbaru dari aplikasi kontrol inventarisasi otomatis.

Setelah Anda memutuskan bahwa aplikasi Anda akan mendapat manfaat dari IPC, Anda harus memutuskan metode IPC mana yang tersedia untuk digunakan. Kemungkinan aplikasi akan menggunakan beberapa mekanisme IPC. Jawaban atas pertanyaan-pertanyaan ini menentukan apakah aplikasi dapat memperoleh manfaat dengan menggunakan satu atau beberapa mekanisme IPC.

  • Haruskah aplikasi dapat berkomunikasi dengan aplikasi lain yang berjalan di komputer lain di jaringan, atau apakah cukup bagi aplikasi untuk berkomunikasi hanya dengan aplikasi di komputer lokal?
  • Haruskah aplikasi dapat berkomunikasi dengan aplikasi yang berjalan di komputer lain yang mungkin berjalan di bawah sistem operasi yang berbeda (seperti Windows 16-bit atau UNIX)?
  • Haruskah pengguna aplikasi harus memilih aplikasi lain yang berkomunikasi dengan aplikasi, atau dapatkah aplikasi secara implisit menemukan mitra kerja samanya?
  • Haruskah aplikasi berkomunikasi dengan banyak aplikasi yang berbeda secara umum, seperti mengizinkan operasi potong dan tempel dengan aplikasi lain, atau haruskah persyaratan komunikasinya terbatas pada serangkaian interaksi terbatas dengan aplikasi lain tertentu?
  • Apakah performa merupakan aspek penting dari aplikasi? Semua mekanisme IPC mencakup beberapa jumlah overhead.
  • Haruskah aplikasi menjadi aplikasi GUI atau aplikasi konsol? Beberapa mekanisme IPC memerlukan aplikasi GUI.

Mekanisme IPC berikut didukung oleh Windows:

Menggunakan Clipboard untuk IPC

Clipboard bertindak sebagai penyimpanan pusat untuk berbagi data di antara aplikasi. Saat pengguna melakukan operasi potong atau salin dalam aplikasi, aplikasi menempatkan data yang dipilih pada clipboard dalam satu atau beberapa format standar atau yang ditentukan aplikasi. Aplikasi lain kemudian dapat mengambil data dari clipboard, memilih dari format yang tersedia yang dipahaminya. Clipboard adalah media pertukaran yang sangat longgar, di mana aplikasi hanya perlu menyetujui format data. Aplikasi dapat berada di komputer yang sama atau di komputer yang berbeda pada jaringan.

Poin kunci: Semua aplikasi harus mendukung clipboard untuk format data yang mereka pahami. Misalnya, editor teks atau prosesor kata setidaknya harus dapat menghasilkan dan menerima data clipboard dalam format teks murni. Untuk informasi selengkapnya, lihat Clipboard.

Menggunakan COM untuk IPC

Aplikasi yang menggunakan OLE mengelola dokumen majemuk—yaitu, dokumen yang terdiri dari data dari berbagai aplikasi yang berbeda. OLE menyediakan layanan yang memudahkan aplikasi untuk memanggil aplikasi lain untuk pengeditan data. Misalnya, prosesor kata yang menggunakan OLE dapat menyematkan grafik dari spreadsheet. Pengguna dapat memulai spreadsheet secara otomatis dari dalam prosesor kata dengan memilih bagan yang disematkan untuk pengeditan. OLE mengurus memulai spreadsheet dan menyajikan grafik untuk pengeditan. Saat pengguna keluar dari spreadsheet, grafik akan diperbarui dalam dokumen prosesor kata asli. Lembar bentang tampaknya merupakan ekstensi dari prosesor kata.

Fondasi OLE adalah Model Objek Komponen (COM). Komponen perangkat lunak yang menggunakan COM dapat berkomunikasi dengan berbagai komponen lain, bahkan yang belum ditulis. Komponen berinteraksi sebagai objek dan klien. COM terdistribusi memperluas model pemrograman COM sehingga berfungsi di seluruh jaringan.

Poin kunci: OLE mendukung dokumen majemuk dan memungkinkan aplikasi untuk menyertakan data yang disematkan atau ditautkan yang, ketika dipilih, secara otomatis memulai aplikasi lain untuk pengeditan data. Ini memungkinkan aplikasi diperluas oleh aplikasi lain yang menggunakan OLE. Objek COM menyediakan akses ke data objek melalui satu atau beberapa set fungsi terkait, yang dikenal sebagai antarmuka. Untuk informasi selengkapnya, lihat COM dan ActiveX Object Services.

Menggunakan Salinan Data untuk IPC

Salinan data memungkinkan aplikasi mengirim informasi ke aplikasi lain menggunakan pesan WM_COPYDATA. Metode ini membutuhkan kerja sama antara aplikasi pengirim dan aplikasi penerima. Aplikasi penerima harus mengetahui format informasi dan dapat mengidentifikasi pengirim. Aplikasi pengirim tidak dapat mengubah memori yang dirujuk oleh penunjuk apa pun.

Poin kunci: Salinan data dapat digunakan untuk mengirim informasi dengan cepat ke aplikasi lain menggunakan olahpesan Windows. Untuk informasi selengkapnya, lihat Salinan Data.

Menggunakan DDE untuk IPC

DDE adalah protokol yang memungkinkan aplikasi untuk bertukar data dalam berbagai format. Aplikasi dapat menggunakan DDE untuk pertukaran data satu kali atau untuk pertukaran yang sedang berlangsung di mana aplikasi saling memperbarui saat data baru tersedia.

Format data yang digunakan oleh DDE sama dengan yang digunakan oleh clipboard. DDE dapat dianggap sebagai ekstensi mekanisme clipboard. Clipboard hampir selalu digunakan untuk respons satu kali terhadap perintah pengguna, seperti memilih perintah Tempel dari menu. DDE juga biasanya dimulai oleh perintah pengguna, tetapi seringkali terus berfungsi tanpa interaksi pengguna lebih lanjut. Anda juga dapat menentukan format data DDE kustom untuk IPC tujuan khusus antara aplikasi dengan persyaratan komunikasi yang lebih erat.

Pertukaran DDE dapat terjadi antara aplikasi yang berjalan di komputer yang sama atau di komputer yang berbeda pada jaringan.

Poin kunci: DDE tidak seefisien teknologi yang lebih baru. Namun, Anda masih dapat menggunakan DDE jika mekanisme IPC lain tidak cocok atau jika Anda harus berinteraksi dengan aplikasi yang ada yang hanya mendukung DDE. Untuk informasi selengkapnya, lihat Pertukaran Data Dinamis dan Pustaka Manajemen Pertukaran Data Dinamis.

Menggunakan Pemetaan File untuk IPC

Pemetaan file memungkinkan proses untuk memperlakukan konten file seolah-olah mereka adalah blok memori di ruang alamat proses. Proses ini dapat menggunakan operasi penunjuk sederhana untuk memeriksa dan memodifikasi konten file. Ketika dua atau lebih proses mengakses pemetaan file yang sama, setiap proses menerima pointer ke memori di ruang alamatnya sendiri yang dapat digunakan untuk membaca atau memodifikasi konten file. Proses harus menggunakan objek sinkronisasi, seperti semaphore, untuk mencegah kerusakan data di lingkungan multitugas.

Anda dapat menggunakan kasus khusus pemetaan file untuk menyediakan memori bersama bernama di antara proses. Jika Anda menentukan file pertukaran sistem saat membuat objek pemetaan file, objek pemetaan file diperlakukan sebagai blok memori bersama. Proses lain dapat mengakses blok memori yang sama dengan membuka objek pemetaan file yang sama.

Pemetaan file cukup efisien dan juga menyediakan atribut keamanan yang didukung sistem operasi yang dapat membantu mencegah kerusakan data yang tidak sah. Pemetaan file hanya dapat digunakan di antara proses di komputer lokal; tidak dapat digunakan melalui jaringan.

Poin kunci: Pemetaan file adalah cara yang efisien untuk dua proses atau lebih pada komputer yang sama untuk berbagi data, tetapi Anda harus memberikan sinkronisasi antara proses. Untuk informasi selengkapnya, lihat Pemetaan dan Sinkronisasi File.

Menggunakan Mailslot untuk IPC

Mailslots menyediakan komunikasi satu arah. Setiap proses yang membuat mailslot adalah server mailslot. Proses lain, yang disebut klien mailslot, mengirim pesan ke server mailslot dengan menulis pesan ke mailslot-nya. Pesan masuk selalu ditambahkan ke mailslot. Mailslot menyimpan pesan hingga server mailslot membacanya. Proses dapat berupa server mailslot dan klien mailslot, sehingga komunikasi dua arah dimungkinkan menggunakan beberapa mailslot.

Klien mailslot dapat mengirim pesan ke mailslot pada komputer lokalnya, ke mailslot di komputer lain, atau ke semua mailslot dengan nama yang sama pada semua komputer dalam domain jaringan tertentu. Pesan yang disiarkan ke semua mailslot pada domain tidak boleh lebih dari 400 byte, sedangkan pesan yang dikirim ke satu mailslot hanya dibatasi oleh ukuran pesan maksimum yang ditentukan oleh server mailslot saat membuat mailslot.

Poin kunci: Mailslots menawarkan cara mudah bagi aplikasi untuk mengirim dan menerima pesan singkat. Mereka juga menyediakan kemampuan untuk menyiarkan pesan di semua komputer di domain jaringan. Untuk informasi selengkapnya, lihat Mailslots.

Menggunakan Pipa untuk IPC

Ada dua jenis pipa untuk komunikasi dua arah: pipa anonim dan pipa bernama. Pipa anonim memungkinkan proses terkait untuk mentransfer informasi satu sama lain. Biasanya, pipa anonim digunakan untuk mengalihkan input standar atau output proses anak sehingga dapat bertukar data dengan proses induknya. Untuk bertukar data di kedua arah (operasi dupleks), Anda harus membuat dua pipa anonim. Proses induk menulis data ke satu pipa menggunakan handel tulisnya, sementara proses turunan membaca data dari pipa tersebut menggunakan handel bacanya. Demikian pula, proses anak menulis data ke pipa lain dan proses induk membaca darinya. Pipa anonim tidak dapat digunakan melalui jaringan, juga tidak dapat digunakan di antara proses yang tidak terkait.

Pipa bernama digunakan untuk mentransfer data antara proses yang tidak terkait proses dan antara proses pada komputer yang berbeda. Biasanya, proses server pipa bernama membuat pipa bernama dengan nama terkenal atau nama yang akan dikomunikasikan kepada kliennya. Proses klien pipa bernama yang mengetahui nama pipa dapat membuka ujungnya yang lain, tunduk pada pembatasan akses yang ditentukan oleh proses server pipa bernama. Setelah server dan klien terhubung ke pipa, mereka dapat bertukar data dengan melakukan operasi baca dan tulis pada pipa.

Poin kunci: Pipa anonim menyediakan cara yang efisien untuk mengalihkan input atau output standar ke proses anak pada komputer yang sama. Pipa bernama menyediakan antarmuka pemrograman sederhana untuk mentransfer data antara dua proses, apakah mereka berada di komputer yang sama atau melalui jaringan. Untuk informasi selengkapnya, lihat Pipa.

Menggunakan RPC untuk IPC

RPC memungkinkan aplikasi untuk memanggil fungsi dari jarak jauh. Oleh karena itu, RPC membuat IPC semahal memanggil fungsi. RPC beroperasi antara proses pada satu komputer atau di komputer yang berbeda pada jaringan.

RPC yang disediakan oleh Windows mematuhi Open Software Foundation (OSF) Distributed Computing Environment (DCE). Ini berarti bahwa aplikasi yang menggunakan RPC dapat berkomunikasi dengan aplikasi yang berjalan dengan sistem operasi lain yang mendukung DCE. RPC secara otomatis mendukung konversi data untuk memperhitungkan arsitektur perangkat keras yang berbeda dan untuk pengurutan byte antara lingkungan yang berbeda.

Klien dan server RPC digabungkan dengan erat tetapi masih mempertahankan performa tinggi. Sistem ini menggunakan RPC secara ekstensif untuk memfasilitasi hubungan klien/server antara berbagai bagian sistem operasi.

Poin kunci: RPC adalah antarmuka tingkat fungsi, dengan dukungan untuk konversi data otomatis dan untuk komunikasi dengan sistem operasi lainnya. Dengan menggunakan RPC, Anda dapat membuat aplikasi terdistribusi berkinerja tinggi dan digabungkan dengan erat. Untuk informasi selengkapnya, lihat Komponen Microsoft RPC.

Menggunakan Soket Windows untuk IPC

Windows Sockets adalah antarmuka yang independen protokol. Ini memanfaatkan kemampuan komunikasi dari protokol yang mendasar. Di Windows Sockets 2, handel soket dapat secara opsional digunakan sebagai handel file dengan fungsi I/O file standar.

Windows Sockets didasarkan pada soket yang pertama kali dimopulerkan oleh Berkeley Software Distribution (BSD). Aplikasi yang menggunakan Windows Sockets dapat berkomunikasi dengan implementasi soket lain pada jenis sistem lain. Namun, tidak semua penyedia layanan transportasi mendukung semua opsi yang tersedia.

Poin kunci: Windows Sockets adalah antarmuka independen protokol yang mampu mendukung kemampuan jaringan saat ini dan yang muncul. Untuk informasi selengkapnya, lihat Windows Sockets 2.

Fungsi unix socket (AF_UNIX) di Windows

Mulai dari Windows Insider Build 17063, Anda dapat menggunakan keluarga alamat unix soket (AF_UNIX) di Windows untuk berkomunikasi antara proses Win32. Soket Unix memungkinkan komunikasi antar-proses (IPC) antara proses pada komputer yang sama. Untuk informasi selengkapnya, lihat posting blog AF_UNIX datang ke Windows.

Penghentian protokol Mailslot Jarak Jauh

Pada Windows 11 Insider Preview Build 25314 dan Windows Server Preview Build 25314, kami telah mulai menonaktifkan protokol Remote Mailslot secara default. Ini adalah prekursor untuk penghentian dan penghapusan akhir dari Windows. Untuk informasi selengkapnya, lihat posting blog Awal akhir Dari Remote Mailslots sebagai bagian dari Windows Insider.