Komunikasi antarproses di Jawa

T: Bagaimana dua proses Java (dua JVM) di komputer yang sama berinteraksi - yaitu, membaca metode satu sama lain dan bertukar objek? Saya menggunakan RMI, tetapi tampaknya solusi yang lebih sederhana harus ada.

J: Komunikasi antarproses adalah topik pemrograman yang penting, dan Java, seperti lingkungan pemrograman yang serius, mengatasi masalah tersebut. Salah satu pendekatan, seperti yang telah Anda pelajari, adalah RMI. Alternatif terkait erat adalah CORBA. CORBA memungkinkan Anda untuk bertukar objek dan secara dinamis memanggil metode pada waktu proses. (Untuk tutorial singkat CORBA, lihat bagian Sumberdaya di bawah.)

Namun, seperti RMI, CORBA bisa berlebihan dalam beberapa keadaan. Untuk komunikasi antarproses sederhana, Anda dapat menggunakan soket lama biasa untuk berkomunikasi antar aplikasi Java. Objek dapat diserialkan dan dikirim melalui soket melalui penggunaan kelas ObjectInputStreamdan ObjectOutputStream. Meskipun soket lebih sederhana dari RMI atau CORBA, tidak ada yang ditentukan untuk Anda, jadi Anda harus menentukan semuanya. Ini berarti Anda perlu menentukan protokol komunikasi Anda sendiri, menulis pencarian dan layanan koneksi Anda sendiri, menjaga keamanan, dan sebagainya. (Untuk pengenalan yang baik tentang pemrograman soket Java, lihat Sumberdaya.)

Saya hampir takut untuk menyebutkannya, tetapi Anda selalu dapat menggunakan file kunci untuk komunikasi. File kunci adalah metode komunikasi primitif antara proses pada sistem yang sama. Secara konseptual, file kunci itu sederhana: untuk berkomunikasi, dua atau lebih proses membaca dan menulis ke file terkenal di sistem file. Karena ini adalah pendekatan primitif, ini sering disukai dan tidak dianggap sebagai bentuk komunikasi antar proses yang sah.

Tony Sintes adalah konsultan senior di ObjectWave Corporation yang memiliki spesialisasi di bidang telekomunikasi. Tony telah bekerja dengan Java sejak 1997 dan merupakan programmer dan pengembang Java 1.1 bersertifikat Sun.

Pelajari lebih lanjut tentang topik ini

  • "Pengantar CORBA," dari Java Developer Connection

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

  • "Dasar-dasar Bahasa Pemrograman Java, Bagian 2Lesson 1Socket Communications," juga dari Java Developer Connection, menyediakan tutorial yang bagus tentang pemrograman socket

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

Kisah ini, "Komunikasi antarproses di Jawa", awalnya diterbitkan oleh JavaWorld.