Java RMI-Bevezetés

hirdetések

az RMI a Remote Method Invocation rövidítése. Ez egy olyan mechanizmus, amely lehetővé teszi az egyik rendszerben (JVM) tartózkodó objektum számára, hogy hozzáférjen/meghívjon egy másik JVM-en futó objektumot.

az RMI elosztott alkalmazások építésére szolgál; távoli kommunikációt biztosít a Java programok között. A java csomagban található.rmi.

egy RMI alkalmazás architektúrája

egy RMI alkalmazásban két programot írunk, egy szerverprogramot (a szerveren található) és egy ügyfélprogramot (a kliensen található).

  • a kiszolgálóprogramon belül létrejön egy távoli objektum, és az objektum hivatkozása elérhetővé válik az ügyfél számára (a beállításjegyzék segítségével).

  • az ügyfélprogram kéri a szerveren lévő távoli objektumokat, és megpróbálja meghívni a módszereit.

az alábbi ábra egy RMI alkalmazás architektúráját mutatja.

RMI architektúra

most beszéljük meg az architektúra összetevőit.

  • szállítási réteg – ez a réteg köti össze az Ügyfelet a kiszolgálóval. Kezeli a meglévő kapcsolatot, és új kapcsolatokat is létrehoz.

  • csonk − a csonk a távoli objektum reprezentációja (proxy) az ügyfélnél. Az ügyfélrendszerben található; átjáróként működik az ügyfélprogram számára.

  • Skeleton-ez az objektum, amely lakik a szerver oldalon. a csonk kommunikál ezzel a csontvázzal, hogy átadja a kérést a távoli objektumnak.

  • RRL (Remote Reference Layer) – ez a réteg kezeli az ügyfél által a távoli objektumra tett hivatkozásokat.

egy rmi alkalmazás működése

a következő pontok összefoglalják az RMI alkalmazás működését−

  • amikor az ügyfél hívást kezdeményez a távoli objektumra, azt a csonk fogadja, amely végül továbbítja ezt a kérést az RRL-nek.

  • amikor az ügyféloldali RRL megkapja a kérést, meghívja a remoteRef objektum invoke() metódusát. Átadja a kérést a szerver oldali RRL-nek.

  • a szerver oldali RRL továbbítja a kérést a csontváznak (proxy a szerveren), amely végül meghívja a szükséges objektumot a szerveren.

  • az eredményt egészen visszaadják az ügyfélnek.

amikor egy ügyfél olyan metódust hív meg, amely elfogadja a paramétereket egy távoli objektumon, a paraméterek egy üzenetbe kerülnek, mielőtt a hálózaton keresztül küldenék őket. Ezek a paraméterek lehetnek primitív típusúak vagy objektumok. Primitív típus esetén a paramétereket összerakjuk, és egy fejlécet csatolunk hozzá. Abban az esetben, ha a paraméterek objektumok, akkor sorosítják őket. Ezt a folyamatot rendezésnek nevezik.

a szerver oldalon a csomagolt paraméterek szétválasztásra kerülnek, majd a szükséges metódust meghívják. Ez a folyamat az úgynevezett unmarshalling.

RMI Registry

az RMI registry egy névtér, amelyen az összes kiszolgálóobjektum el van helyezve. Minden alkalommal, amikor a szerver létrehoz egy objektumot, regisztrálja ezt az objektumot a RMIregistry (bind() vagy reBind() módszerekkel). Ezeket a bind name néven ismert egyedi név használatával regisztrálják.

távoli objektum meghívásához az ügyfélnek szüksége van az objektum hivatkozására. Ekkor az ügyfél lekéri az objektumot a rendszerleíró adatbázisból a kötési nevével (a lookup() módszerrel).

az alábbi ábra a teljes folyamatot ismerteti –

 Registry

az RMI céljai

az alábbiakban bemutatjuk az RMI céljait−

  • az alkalmazás összetettségének minimalizálása.
  • a típusbiztonság megőrzése érdekében.
  • elosztott szemétgyűjtés.
  • minimalizálja a különbséget a helyi és a távoli objektumok között.
reklámok



+