„5. Elosztott rendszerek (2012)” változatai közötti eltérés
a Ferrero átnevezte a(z) 5. Elosztott rendszerek lapot a következő névre: 5. Elosztott rendszerek (2012) |
Nincs szerkesztési összefoglaló |
||
| 5. sor: | 5. sor: | ||
==Távoli eljáráshívás== | ==Távoli eljáráshívás== | ||
===Függvényhívás=== | ===Függvényhívás=== | ||
[[Fájl:rmi.png]] | |||
===Csonk=== | ===Csonk=== | ||
* sorosítva elküldi a paramétereket | * sorosítva elküldi a paramétereket | ||
| 72. sor: | 72. sor: | ||
* paraméter: Serializable interfészt megvalósító objektum | * paraméter: Serializable interfészt megvalósító objektum | ||
===Szerver oldal=== | ===Szerver oldal=== | ||
[[Fájl:rmi-szerver.png]] | |||
====RemoteObject==== | ====RemoteObject==== | ||
* távoli objektumok és stub-ok ősosztálya | * távoli objektumok és stub-ok ősosztálya | ||
| 114. sor: | 114. sor: | ||
===Kliens oldal=== | ===Kliens oldal=== | ||
[[Fájl:rmi-kliens.png]] | |||
* Stub hivatkozik a távoli objektumra, implementálja annak interfészét | * Stub hivatkozik a távoli objektumra, implementálja annak interfészét | ||
| 134. sor: | 134. sor: | ||
* void unbind(String name) - kiszed | * void unbind(String name) - kiszed | ||
====LocateRegistry ==== | ====LocateRegistry ==== | ||
* '''a LocateRegistry osztály és a Registry interface azonosítja az RMI Registry szolgáltatást''' | |||
* megkeresi/létrehozza a Registry-t | * megkeresi/létrehozza a Registry-t | ||
* static Registry createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) | * static Registry createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) | ||
| 141. sor: | 142. sor: | ||
* referenciákat számol | * referenciákat számol | ||
* kilens oldalon is van komponense (DGCClient) | * kilens oldalon is van komponense (DGCClient) | ||
* amikor a kiens deszerializál egy távoli objektumra mutató referenciát, akkor a | * amikor a kiens deszerializál egy távoli objektumra mutató referenciát, akkor a DGCClient egy dirty() hívással jelez | ||
a szerver GC-je felé, hogy az objektumra a kliensenk szüksége van | a szerver GC-je felé, hogy az objektumra a kliensenk szüksége van | ||
* erre válaszul a szerver megmondja, hogy mennyi időre tudja garantálni az objektum megtartását a memóriájában | * erre válaszul a szerver megmondja, hogy mennyi időre tudja garantálni az objektum megtartását a memóriájában | ||
* a | * a DGCClient feladata, hogy meghosszabbítsa ezt az idő a lejárta előtt egy újabb dirty hívással, ha a kliensnek továbbra is szüksége van az objektumra | ||
* ha a | * ha a SGCClient úgy veszi észre, hogy nincs szüksége a kliensnek tovább a távoli objektumra, akkor ezt a tényt egy clean () hívással jelzi a szerver | ||
GC-je felé | GC-je felé | ||
* a szerver eközben számolja, hogy hány távoli referencia van a távoli objektumokra, és ha ez 0-ra csökken, akkor weak referenciával hivatkozik rá | * a szerver eközben számolja, hogy hány távoli referencia van a távoli objektumokra, és ha ez 0-ra csökken, akkor weak referenciával hivatkozik rá | ||
| 153. sor: | 154. sor: | ||
* sajnos lehet, hogy a kliens hálózati hiba miatt nem tudta megújítani a referenciáját, és ekkor a következő kérése nem fogja megtalálni az objektumot (NULL) | * sajnos lehet, hogy a kliens hálózati hiba miatt nem tudta megújítani a referenciáját, és ekkor a következő kérése nem fogja megtalálni az objektumot (NULL) | ||
emiatt is szükség van arra, hogy a távoli objektum metódusai RemoteExceptiont dobjanak | emiatt is szükség van arra, hogy a távoli objektum metódusai RemoteExceptiont dobjanak | ||
FORRÁS: http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.50/diag/understanding/rmi_dgc.html | |||
-- [[MisnyovszkiAndrasSSO]] - 2009.05.27. | -- [[MisnyovszkiAndrasSSO]] - 2009.05.27. | ||
===RMI során átadható paraméterek osztályozása és a paraméterátadás módja=== | ===RMI során átadható paraméterek osztályozása és a paraméterátadás módja=== | ||
* Pass-by-Reference | * Pass-by-Reference | ||
| 191. sor: | 193. sor: | ||
====Mitöl ügynök az ügynök?==== | ====Mitöl ügynök az ügynök?==== | ||
* Aktív és autonóm | * '''Aktív és autonóm''': saját szálon fut, a döntéseit maga hozza a környezet figyelembevételével | ||
* '''Kapcsolatképes (reaktív)''': más ügynökökkel kommunikálhat | |||
* '''Tanulékony''': a tapasztalatait összegzi | |||
* '''Mobil''': képes az ügynökségek közötti közlekedésre | |||
* Kapcsolatképes (reaktív) | |||
* Tanulékony | |||
* Mobil | |||
====Hogyan érkezik az ügynök?==== | ====Hogyan érkezik az ügynök?==== | ||
| 255. sor: | 251. sor: | ||
** Trader attribútumok állítása: számosságok, kéréstovábbítás | ** Trader attribútumok állítása: számosságok, kéréstovábbítás | ||
* Különbözö helyen futó traderek összekapcsolhatóak linkkel vagy federatrion-nel, mely arra jó hogy az egyikben kezdeményezett keresés a többibe továbbadódhat. Ez a kapcsolat egyirányú. Beállításai: | * Különbözö helyen futó traderek összekapcsolhatóak linkkel vagy federatrion-nel, mely arra jó hogy az egyikben kezdeményezett keresés a többibe továbbadódhat. Ez a kapcsolat egyirányú. Beállításai: | ||
** local_only: csak az aktuális traderben keresünk | ** '''local_only''': csak az aktuális traderben keresünk | ||
** if_no_local: ha az aktuálisban nincs, mehet tovább | ** '''if_no_local''': ha az aktuálisban nincs, mehet tovább | ||
** always: minden elérhetö traderben keresünk | ** '''always''': minden elérhetö traderben keresünk | ||
===Event Service=== | ===Event Service=== | ||
* Alap CORBA kommunikáció = erös csatolás és egy-egy kommunikáció | * Alap CORBA kommunikáció = erös csatolás és egy-egy kommunikáció | ||