„5. Elosztott rendszerek (2012)” változatai közötti eltérés

Ferrero (vitalap | szerkesztései)
a Ferrero átnevezte a(z) 5. Elosztott rendszerek lapot a következő névre: 5. Elosztott rendszerek (2012)
Ferrero (vitalap | szerkesztései)
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===
%ATTACHURL%/rmi.png
[[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===
%ATTACHURL%/rmi-szerver.png
[[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===


%ATTACHURL%/rmi-kliens.png
[[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 [[DGCClient]] egy dirty() hívással jelez
* 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 [[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
* 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 [[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  
* 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
 
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
** saját szálon fut
* '''Kapcsolatképes (reaktív)''': más ügynökökkel kommunikálhat
** a döntéseit maga hozza
* '''Tanulékony''': a tapasztalatait összegzi
** a környezet figyelembevételével
* '''Mobil''': képes az ügynökségek közötti közlekedésre
* 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


====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ó