RMI (Remote Method Invocation) RMI (Remote Method Invocation) - bu Java - da taqsimlangan dastur yaratish mexanizmini ta'minlovchi API. RMI ob'ektga boshqa JVMda ishlaydigan ob'ektda usullarni chaqirish imkonini beradi.
RMI ikkita ob'ekt stub va skeleti yordamida ilovalar o'rtasida masofaviy aloqani ta'minlaydi
Stub va skelet haqida tushuncha RMI masofaviy ob'ekt bilan aloqa qilish uchun stub va skelet ob'ektidan foydalanadi
Masofaviy ob'ekt usuli boshqa JVM dan chaqirilishi mumkin bo'lgan ob'ektdir. Keling, stub va skelet obyektlarini tushunamiz:
Stub Stub ob'ekt bo'lib, mijoz tomoni uchun shlyuz vazifasini bajaradi. Barcha chiquvchi so'rovlar u orqali yo'naltiriladi. U mijoz tomonida joylashgan va uzoq ob'ektni ifodalaydi. Qo'ng'iroq qiluvchi stub ob'ektida usulni chaqirganda, u quyidagi vazifalarni bajaradi:
U masofaviy virtual mashina (JVM) bilan ulanishni boshlaydi,
Parametrlarni uzoq virtual mashinaga (JVM) yozadi va uzatadi (marshal),
Natijani kutadi
Qaytish qiymatini yoki istisnoni o'qiydi (unmarshals) va
Skelet
Skelet ob'ekt bo'lib, server tomoni ob'ekti uchun shlyuz vazifasini bajaradi. Barcha kiruvchi so'rovlar u orqali yo'naltiriladi. Skelet kiruvchi so'rovni qabul qilganda, u quyidagi vazifalarni bajaradi:
Bu masofaviy usul uchun parametrni o'qiydi
U haqiqiy uzoq ob'ektdagi usulni chaqiradi va
U natijani yozadi va qo'ng'iroq qiluvchiga uzatadi (marshal).
Java 2 SDK-da skeletlarga bo'lgan ehtiyojni bartaraf etadigan stub protokoli joriy etildi.
Tarqalgan ilovalar uchun talablarni tushunish
Agar biron bir dastur ushbu vazifalarni bajarsa, uni tarqatish mumkin.
Ilova masofaviy usulni topishi kerak
U uzoqdagi ob'ektlar bilan aloqani ta'minlashi kerak
RMI ilovasi bu barcha xususiyatlarga ega, shuning uchun u taqsimlangan dastur deb ataladi.
RMI dasturini yozish uchun 6 qadam berilgan.
Masofaviy interfeysni yarating
Masofaviy interfeysni amalga oshirishni ta'minlang
RMI misoli
Ushbu misolda biz rmi ilovasini yaratish va ishga tushirish uchun barcha 6 qadamni bajardik. Mijoz ilovasiga faqat ikkita fayl kerak, masofaviy interfeys va mijoz ilovasi. Rmi ilovasida mijoz ham, server ham masofaviy interfeys bilan o'zaro ishlaydi. Mijoz ilovasi proksi-server ob'ektidagi usullarni chaqiradi, RMI so'rovni masofaviy JVM ga yuboradi. Qaytish qiymati proksi-server ob'ektiga, keyin esa mijoz ilovasiga yuboriladi.
masofaviy interfeysni yaratim
Masofaviy interfeysni yaratish uchun masofaviy interfeysni kengaytirdim va masofaviy interfeysning barcha usullari bilan RemoteExceptionni e'lon qildim. Bu erda men masofaviy interfeysni kengaytiradigan masofaviy interfeys yaratmoqdaman. Add() nomli faqat bitta usul mavjud va u RemoteExceptionni e'lon qiladi.