Java RMI - Pendahuluan
RMI adalah singkatan dari Remote Method Invocation. Ini adalah mekanisme yang memungkinkan objek yang berada di satu sistem (JVM) untuk mengakses / memanggil objek yang berjalan di JVM lain.
RMI digunakan untuk membangun aplikasi terdistribusi; itu menyediakan komunikasi jarak jauh antara program Java. Itu sudah disediakan dalam paketjava.rmi.
Arsitektur Aplikasi RMI
Dalam aplikasi RMI, kami menulis dua program, a server program (berada di server) dan a client program (berada di klien).
Di dalam program server, objek jarak jauh dibuat dan referensi objek itu tersedia untuk klien (menggunakan registri).
Program klien meminta objek jarak jauh di server dan mencoba menjalankan metodenya.
Diagram berikut menunjukkan arsitektur aplikasi RMI.
Sekarang mari kita bahas komponen dari arsitektur ini.
Transport Layer- Lapisan ini menghubungkan klien dan server. Ini mengelola koneksi yang ada dan juga mengatur koneksi baru.
Stub- Stub adalah representasi (proxy) dari objek jarak jauh di klien. Itu berada di sistem klien; itu bertindak sebagai pintu gerbang untuk program klien.
Skeleton - Ini adalah objek yang berada di sisi server. stub berkomunikasi dengan kerangka ini untuk meneruskan permintaan ke objek jarak jauh.
RRL(Remote Reference Layer) - Ini adalah lapisan yang mengelola referensi yang dibuat oleh klien ke objek jarak jauh.
Bekerja dari Aplikasi RMI
Poin-poin berikut merangkum cara kerja aplikasi RMI -
Ketika klien membuat panggilan ke objek jarak jauh, itu diterima oleh rintisan yang akhirnya meneruskan permintaan ini ke RRL.
Saat RRL sisi klien menerima permintaan, itu memanggil metode yang disebut invoke() dari objek remoteRef. Ini meneruskan permintaan ke RRL di sisi server.
RRL di sisi server meneruskan permintaan ke Skeleton (proxy di server) yang akhirnya memanggil objek yang diperlukan di server.
Hasilnya diteruskan kembali ke klien.
Marshalling dan Unmarshalling
Setiap kali klien memanggil metode yang menerima parameter pada objek jarak jauh, parameter tersebut digabungkan ke dalam pesan sebelum dikirim melalui jaringan. Parameter ini mungkin tipe atau objek primitif. Dalam kasus tipe primitif, parameter disatukan dan sebuah header dilampirkan padanya. Jika parameternya adalah objek, maka mereka akan diserialkan. Proses ini dikenal sebagaimarshalling.
Di sisi server, parameter yang dikemas diuraikan dan kemudian metode yang diperlukan dipanggil. Proses ini dikenal sebagaiunmarshalling.
Registri RMI
Registri RMI adalah namespace tempat semua objek server ditempatkan. Setiap kali server membuat objek, itu mendaftarkan objek ini dengan RMIregistry (menggunakanbind() atau reBind()metode). Ini didaftarkan menggunakan nama unik yang dikenal sebagaibind name.
Untuk memanggil objek jarak jauh, klien membutuhkan referensi dari objek itu. Pada saat itu, klien mengambil objek dari registri menggunakan nama pengikatnya (menggunakanlookup() metode).
Ilustrasi berikut menjelaskan keseluruhan proses -
Tujuan RMI
Berikut adalah tujuan RMI -
- Untuk meminimalkan kompleksitas aplikasi.
- Untuk menjaga keamanan tipe.
- Pengumpulan sampah yang didistribusikan.
- Minimalkan perbedaan antara bekerja dengan objek lokal dan jarak jauh.