Komunikasi antara proses di Jawa

S: Bagaimana dua proses Java (dua JVM) pada komputer yang sama dapat berinteraksi - iaitu, saling membaca kaedah dan bertukar objek? Saya menggunakan RMI, tetapi nampaknya penyelesaian yang lebih mudah harus ada.

J: Komunikasi antara proses adalah topik pengaturcaraan yang penting, dan Java, seperti persekitaran pengaturcaraan yang serius, menangani masalah ini. Satu pendekatan, seperti yang telah anda pelajari, adalah RMI. Alternatif yang berkait rapat adalah CORBA. CORBA membolehkan anda menukar objek dan menggunakan kaedah secara dinamik pada waktu runtime. (Untuk tutorial CORBA cepat, lihat bahagian Sumber di bawah.)

Walau bagaimanapun, seperti RMI, CORBA boleh berlebihan dalam beberapa keadaan. Untuk komunikasi antara proses yang mudah, anda boleh menggunakan soket lama biasa untuk berkomunikasi antara aplikasi Java. Objek boleh diselaraskan dan dihantar melalui soket melalui penggunaan kelas ObjectInputStreamdan ObjectOutputStream. Walaupun soket lebih sederhana daripada RMI atau CORBA, tidak ada yang ditentukan untuk anda, jadi anda harus menentukan semuanya. Ini bermaksud bahawa anda perlu menentukan protokol komunikasi anda sendiri, menulis perkhidmatan carian dan sambungan anda sendiri, menjaga keselamatan, dan sebagainya. (Untuk pengenalan yang baik untuk pengaturcaraan soket Java, lihat Sumber.)

Saya hampir takut menyebutnya, tetapi anda selalu dapat menggunakan fail kunci untuk komunikasi. Fail kunci adalah kaedah komunikasi primitif antara proses pada sistem yang sama. Secara konsep, fail kunci mudah: untuk berkomunikasi, dua atau lebih proses dibaca dan ditulis ke fail yang terkenal di sistem fail. Kerana ini adalah pendekatan primitif, ia sering disukai dan tidak dianggap sebagai bentuk komunikasi interproses yang sah.

Tony Sintes adalah perunding kanan di ObjectWave Corporation yang pakar dalam telekomunikasi. Tony telah bekerja dengan Java sejak 1997 dan merupakan pengaturcara Java 1.1 dan Java 2 yang diperakui oleh Sun.

Ketahui lebih lanjut mengenai topik ini

  • "Pengenalan CORBA," dari Java Developer Connection

    //developer.java.sun.com/developer/onlineTraining/corba

  • "Asas Bahasa Pemrograman Java, Bahagian 2Lekomunikasi 1Socket Komunikasi," juga dari Java Developer Connection, memberikan tutorial yang baik mengenai pengaturcaraan soket

    //developer.java.sun.com/developer/onlineTraining/Programming/BasicJava2/socket.html

Cerita ini, "Interprocess communications in Java" awalnya diterbitkan oleh JavaWorld.