Documente Academic
Documente Profesional
Documente Cultură
Gestiunea proceselor
Cooperarea si comunicarea intre
procese
Sisteme de operare
Lect. Dr. Ozten CHELAI
Client =M1 s1
Comunicarea în sistemele client-server - Socket
InterfaŃă server
InterfaŃă server
Stub Skeleton
mesaj
mesaj
mesaj
ReŃea
RMI
RMI (Remote Method Invocation) este un mecanism oferit de limbajul Java, similar paradigmei
RPC. Obiectele se consideră a fi la distanŃă dacă se află pe o altă maşină virtuală Java (JVM).
Există două deosebiri fundamentale între RPC şi RMI.
RPC este orientat pe apel de procedură pe când RMI este destinat aplicaŃiilor orientate obiect
şi asigură invocarea de metode ale obiectelor.
Pe de altă parte, parametrii unui apel RPC sunt structuri de date obişnuite pe când la RMI se
pot transfera obiecte ca parametri. Dacă parametri sunt obiecte locale atunci ei se transferă
prin copiere utilizând tehnica de serializare a obiectelor. Pentru aceasta tipurile parametrilor
lor trebuie să implementeze interfaŃa java.io.Serializable ceea ce permite transformarea
obiectului într-un flux de octeŃi. Dacă parametri sunt obiecte aflate la distanŃă atunci ei sunt
transferaŃi prin referinŃă.
Nivelul de abstractizare oferit de RMI permite dezvoltatorilor de aplicaŃii Java să invoce metodele
la distanŃă la fel ca şi pe cele locale (aflate pe aceeaşi JVM).
RMI oferă o funcŃionalitate sporită faŃă de RPC.[1] Astfel, poate transfera obiecte ca argumente.
Aceasta are ca rezultat transfer de comportament prin download a implementării unei interfeŃe la
client atunci când e solicitată, deci se va obŃine o variantă actualizată (dacă între timp au apărut
modificări).
Alte caracteristici RMI:
mecanisme de securitate built_in (la descărcare cod la clienŃi)
portabil;
garbage collection distribuit;
multi – threaded = > calcul paralel
[1] Paradigma RPC este independentă de limbaj, deci defineşte o funcŃionalitate mai generală.
RMI
Deschide un serverSoket pentru obj (serviciu)
(portul este indicat de client)
(evidenŃă servere)
3: invocare metodă
2: returnează stub
Client