Você está na página 1de 39

Objetos Distribudos e Invocao Remota

Introduo

Introduo

!P

" !#I

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Introduo

!P % !e&ote procedure call


%

Este ter&o ' utili(ado para aplicati)os clientes *ue fa(e& nor&al&ente c+a&adas a procedi&entos re&otos *ue esto e& outro processo e +osts, - &odelo .aseado orientado a o.jeto utili(a este ter&o para definir u&a c+a&ada a u& &'todo, 0 capacidade de notificao *ue os S1 te& de a)isar a u& outro processo *ue u& e)ento ocorreu,

!#I % !e&ote &et+od in)ocation


%

E)entos distri.u/dos
%

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Introduo
#iddle3are
%

Soft3are *ue pro)idencia u& &odelo de pro4ra&ao por .locos de processos pela passa4e& de &ensa4e& Al4uns &iddle3are per&ite& *ue os processos seja& i&ple&entados e& diferentes lin4ua4e& de pro4ra&ao

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Introduo

aracter/sticas
Transpar6ncia de locao

o cliente no sa.e se o procedi&ento ou &'todo c+a&ado est7 no &es&o processo ou nu& processo diferentes rodando e& outra &7*uina, E": !P 8 !#I8 etc &iddle3are de)e ser capa( de i&ple&entar o processo de co&unicao solicitao e resposta8 e& *ual*uer protocolo e"istente, E": T P ou 91P

Protocolo de o&unicao
9&

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Introduo
%

;ard3are
-

&iddle3are i&ple&enta &ecanis&o para troca de dados entre diferentes platafor&a de +ard3are e"istentes, E": I1< &iddle3are de)e ser capa( de oferecer alto n/)el de a.strao do S,-, *ue est7 sendo utili(ado &iddle3ares pode& per&itir transpar6ncia *uanto ao uso de diferentes lin4ua4ens de pro4ra&ao e& seus processos, E": or.a8 I1<

Siste&a -peracional
-

Independ6ncia de <in4ua4e& de pro4ra&ao


Al4uns

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Introduo

Applications !#I8 !P and e)ents !e*uest reply protocol E"ternal data representation -peratin4 Syste& #iddle3are layers

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Interfaces
Interfaces
% % % %

1efine co&o e *uais o.jetos e )ari7)eis esto presentes na co&unicao entre processos, No te& acesso direto as )ari7)eis ou &'todo 1efine par?&etros de inputs e outputs No tra.al+a co& ponteiros

>

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Interfaces

Ser)ice interfaces
%

Ter&o utili(ado para definir as procedures ou ser)ios oferecidos pelo ser)idor, E": FTP8 procedi&ento de escrita e leitura de ar*ui)o Especifica os &'todos de u& o.jeto *ue esto dispon/)eis para ino)ocao por outros o.jetos de outros processos,
1efine: tipos de entrada e sa/da de cada o.jeto Passa ta&.'& o.jetos co&o ar4u&ento ou resultado

!e&ote Interface
%

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Interfaces
Interface
%

1efinition <an4ua4es % I1<

Per&ite criar u&a notao uni)ersal para interface de &'todos e )ari7)eis para sere& utili(ados entre di)ersas lin4ua4e& de pro4ra&ao,

AB

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

IDL

or.a I1<
// In file Person.idl struct Person { string name; string place; long year; }; interface PersonList { readonly attribute string listname; void addPerson(in Person p) ; void getPerson(in string name, out Person p); long number(); };

AA

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

IDL
-utras
%

Al'& do or.a I1<8 te&os:


-SF

- I1< 1 -# - 1E I1< etc

A2

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto

!efer6ncia de o.jetos
% %

9sado para fa(er referencia para *ual*uer c+a&ada a u& &'todo 1efine os &'todos8 tipos dos ar4u&entos8 tipos de retornos e e"ceCes8 se& especificar sua i&ple&entao 0 a ao e"istente necess7ria para pro)idenciar a in)ocao do o.jeto8 sua e"ecuo8 de)ol)endo al4u& resultado ao cliente Per&ite definir as re4ras para trata&ento de erros *ue pode& ocorrer nos processo ontrole para li.erao de espaos para os o.jetos no &ais usados, E": Da)a -utras lin4ua4ens no fa(e& esse controle

Interfaces ACes
%

E"ceCes
%

oleo de li"os
% %

A$

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Objetos distribudos

ada processo cont'& o.jetos8 al4uns na *ual pode& rece.er c+a&adas re&otas8 outras so&ente local
%

-.jetos !e&otos " -.jetos <ocais

-.jetos precisa& con+ecer a refer6ncia de o.jeto re&oto de u& o.jeto e& outro processo para poder in)ocar seus ser)ios, o&o ele fa( issoE A interface !e&ota especifica co&o os &'todos so acessados re&ota&ente
re&ote in)ocation A F local E in)ocation local in)ocation local in)ocation 1

re&ote in)ocation

A2

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


E"iste
%

dois conceitos funda&entais para u& &odelo de o.jetos distri.u/dos:


!efer6ncia de -.jeto !e&oto
0

u& identificador Gnico *ue pode ser usado e& u& siste&a distri.u/do para fa(er refer6ncia a u& particular o.jeto re&oto co&o os o.jetos re&otos pode& ser in)ocados8 cont'& a definio das estruturas de dados e &'todos, E": or.a I1< e Da)a !#I,

Interface !e&oto
1efine

A5

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


-.jeto

!e&oto e Interface !e&oto

re&oteo.ject 1ata &A &2 &$ i&ple&entation of &et+ods &2 &5 &:

re&ote interface

A:

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Desafios para projetos de RMI


Apesar

de e& Da)a a c+a&ada re&ota ser u&a *uesto de u&a e"tenso a u&a c+a&ada local8 ela ainda apresenta desafios:
% %

Nu&a c+a&ada local8 o &'todo ' e"ecutado apenas u&a )e(, No !#I ne& se&pre ' )erdade N/)el de transpar6ncia ne& se&pre atin4e o desej7)el

A=

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Desafios para projetos de RMI


1iferentes
% % %

for&as de in)ocao

!etry re*uest &essa4e 1uplicate filterin4 !etrans&ission od results

-s

pro.le&as aci&a afeta& na confia.ilidade do &'todo de con)ocao de u& o.jeto re&oto

A>

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


Se&?ntica

de In)ocao
Invocation semantics

Fault tolerance measures Retransmit request message No Yes Yes


A@
Professor: Arlindo Tadayuki Noji

Duplicate filtering Not applicable No Yes

Re-execute procedure or retransmit reply Not applicable Re-execute procedure Retransmit reply Maybe At-least-once At-most-once
Instituto de Ensino Superior

O Modelo de Objeto Distribudo

#ay.e in)ocation se&antics


%

Pode ocorrer *uando o cliente in)oca u& o.jeto re&oto8 &as sa.e real&ente se foi e"ecutado ou no
Fal+a por o&isso I e": perda de &s4J ras+ IE": o o.jeto presente no ser)idor fal+aJ

A fal+a pode ocorrer antes de e"ecutar o o.jeto8 ou depois de ser e"ecutado


Perda da &s4 antes Perda da &s4 depois Ti&e out

2B

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


At-least-once
%

in)ocation se&antics:

Neste caso8 o cliente *ue in)oca con+ece *ue u& deter&inado o.jeto foi e"ecutado pelo &enos u&a )e( ou pelo &enos ' a)isado *ue +ou)e u& erro Neste cate4oria os pro.le&as pode& ad)ir de:
ras+ Fal+as ar.itr7rias Ierros pode& ocorrer se a retrans&isso e"ecutar o o.jeto no)a&enteJ

2A

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


At-&ost-once
%

se&antics:

% % %

- cliente *ue in)oca sa.e e"ata&ente *ue o &'todo re&oto foi c+a&ado apenas u&a )e( ou no, Aplica e trata todas os tipos de fal+as *ue pode& ocorrer E": Da)a !#I8 or.a or.a aceita At-least-once para c+a&adas a o.jetos *ue no retorne& resultado

22

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


#'todos

de +a&ada !e&ota
ser)er !e*uest skeleton L dispatc+er for FKs class

client o.ject A pro"y for F

re&ote o.ject F

!eply

o&&unication !e&ote reference &odule &odule

o&&unication &odule

!e&ote reference &odule


Instituto de Ensino Superior

2$

Professor: Arlindo Tadayuki Noji

O Modelo de Objeto Distribudo


I&ple&entao
% % % %

do !#I

Pro"y Findind na&e -.jects references o&unications

22

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


#Mdulo
% %

de co&unicao

I&ple&enta u& protocolo solicitao e resposta 9sa os $ pri&eiros itens da estrutura de &s4

25

messageType requestId objectReference methodId arguments


Professor: Arlindo Tadayuki Noji

int (0=Request, 1= Reply) int RemoteObjectRef int or Method array of bytes


Instituto de Ensino Superior

O Modelo de Objeto Distribudo


#Mdulo
% % %

!efer6ncia !e&ota

0 respons7)el entre a traduo da refer6ncia local e a refer6ncia re&ota dos o.jetos ria o refer6ncia de o.jetos re&otos ada processo possui u&a tabela de referncia de objetos8 *ue fa( correspond6ncia entre as infor&aCes dos o.jetos e"istentes nos processos locais e no locais

2:

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


#Mdulo
%

!efer6ncia !e&ota

Ta.ela de refer6ncia de o.jetos


#ant6&

todas as refer6ncias de o.jetos locais usadas pelo processo #ant6& as refer6ncias para cada pro"y local8 correspondentes dos o.jetos re&otos

2=

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo

AcCes do Mdulo de Referncia Remota


%

Nuando u& o.jeto re&oto ' passado co&o ar4u&ento ou co&o resultado pela pri&eira )e(8 o mdulo de referncia remota ' incenti)ado a criar u&a referncia de objeto remoto8 na *ual ' adicionado a u&a ta.ela Nuando u&a referncia de objeto remoto c+e4a e& u&a solicitao ou nu&a resposta de &ensa4e&8 o mdulo de referncia remota fa( u&a consulta para encontrar u&a referncia do objeto localmente8 na *ual pode referir-se para u& pro"y ou para u& o.jeto re&oto aso a refer6ncia de o.jeto re&oto no seja encontrado na ta.ela8 o !#I cria u& no)o pro"y e insere na ta.ela atra)'s do &Mdulo de refer6ncia re&ota,

2>

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo

- soft3are !#I
%

onsiste e& u&a ca&ada de soft3are entre a aplicao .aseada e& o.jetos e a co&unicao e o &Mdulo de refer6ncia re&ota

Pro"y % a funo do pro"y ' pro)idenciar u& &'todo transparente de in)ocao para o cliente8 fa(endo parecer *ue est7 in)ocando u& o.jeto local, #as e& )e( de e"ecutar al4u&a tarefa8 ele transfere na for&a de &s4 para o o.jeto re&oto
Esconde os detal+es de u&a refer6ncia a o.jetos re&otos8 &ars+allin48 un&ars+allin4 e os processos de co&unicaCes e"istentes % E"iste u& pro"y para cada -.jeto re&oto
%

2@

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo

1ispatc+er - 9& ser)idor te& u& dispatc+er e u& skeleton para cada representao de classe de o.jetos,
- 1ispatc+er ' respons7)el por rece.er as re*uisiCes )indas do &Mdulo de co&unicaCes, % 9sa o #et+odId para selecionar o apropriado &'todo no Skeleton % - 1ispatc+er e pro"y usa& a &es&a alocao de &et+odId para os &'todos de interface re&ota
%

Skeleton % A classe de u& o.jeto re&oto possui u& skeleton8 onde ' i&ple&entado os &'todos dentro de u&a interface re&ota
0 i&ple&entado u& pouco diferente da interface ori4inal do o.jeto re&oto % Passa pelo processo de &ars+allin4 antes de in)ocar o o.jeto re&oto e un&as+allin4 para de)ol)er a infor&ao co&o resultado
%

$B

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo

Oerao de classes para pro"ies8 dispatc+ers e skeleton


% % % % %

So 4erados auto&atica&ente pela interface do co&pilador or.a So 4erado a partir do ar*ui)o I1< Para o Ser)idor ' 4erado os pro"ys8 dispatc+es e skeleton de cada o.jeto re&oto Para o liente8 os aplicati)os de)ero conter as classes dos pro"ys de todos os o.jetos re&otos E"e&plo de co&piladores: -r.i" I PPJQ 1elp+i

$A

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


Factory
%

&et+od

Interface de o.jetos re&otos no possue& construtores8 portanto8 os o.jetos re&otos no pode& ser constru/dos pela in)ocao re&ota de construtores -.jetos re&otos so constru/dos atra)'s de u&a sesso de iniciali(ao ou por u& &'todo re&oto projetado para este propMsito

$2

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo

- factory &et+od
%

0 usado para criar o.jetos re&otos 0 o o.jeto criado pelo &'todo factory Ifactory &et+odJ 0 u& ser)io separado *ue &ant'& u&a ta.ela contendo u&a &apea&ento dos no&es te"tual so.re as refer6ncias de o.jetos re&otos e ' usado pelo ser)idor para re4istrar identificar os seus o.jetos re&otos por no&e e os seus clientes

- factory o.ject
%

Finders
%

$$

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

O Modelo de Objeto Distribudo


Ser)er T+reads
% %

0 a capacidade de e"ecutar concorr6ncia aos o.jetos re&otos Este processo per&ite controlar *uando u& deter&inado o.jeto re&oto est7 ati)o ou dispon/)el para ser in)ocado, Isto ' feito por*ue no ' pratico &anter todos o.jetos re&otos funcionando e dispon/)eis e& dado te&po8 al'& de no ser real&ente necess7rio Este controle ' feito pelo ser)idor *ue 4erencia este processo auto&atica&ente Ie": iniciado *uando for en)ol)ido no processo de &ars+allin4J So 4eral&ente pro)idenciado pelo ser)idor e do a capacidade ao o.jeto re&oto de &anter seus estados &es&o apMs di)ersas ati)aCes
Instituto de Ensino Superior

Ati)ao de o.jetos re&otos

Persist6ncia de o.jetos
%

$2

Professor: Arlindo Tadayuki Noji

Modelo RP

!e&ote Procedure all


%

% %

0 si&ilar ao !#I8 &as neste caso8 se refere a capacidade de fa(er c+a&adas a procedures *ue esto e& outros processos Ser)idores pode& ser clientes de outros processo ser)idores Possui co&o se&?ntica de in)ocao:
At-least-once At-&ost-once

9sa ta&.'& u& protocolo de solicitao e resposta

$5

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Modelo RP

- !P no utili(a &Mdulos de refer6ncia re&ota8 u&a )e( *ue no tra.al+a co& o.jetos e &'todos - cliente utili(a u& stu. procedure8 si&ilar ao uso do pro"y para as c+a&adas das procedures re&otas
%

9& stu. procedure rece.e a c+a&ada8 &as ao in)'s de e"ecutar al4o8 ele e"ecuta o processo de &ars+allin4 e trans&ite )ia &s4 a solicitao ao ser)idor co& a procedure re&ota para a e"ecuo No rece.i&ento da resposta8 e"ecuta o processo de un&ars+allin4 e apresenta o resultado para o in)ocador dentro do processo local

$:

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Modelo RP
E":

client process !e*uest

ser)er process

client pro4ra&

client stu. procedure o&&unication &odule

!eply

ser)er stu. procedure o&&unication dispatc+er &odule ser)ice procedure

$=

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Modelo RP

No ser)idor
%

% %

ont'& u& dispatc+er *ue tra.al+a junto co& u& stu. procedure ser)idor e *ue li4a a u& ser)io IprocedureJ e"istente para cada procedure e"istente na interface de ser)ios - dispatc+er seleciona a procedure de acordo co& identificao da procedure )inda da &s4 de solicitao - Ser)er stu. procedure funciona parecido co& u& skeleton8 onde e"ecuta o processo de un&ars+allin4 dos ar4u&entos de entrada8 e"ecuta a procedure i&ple&entada e fa( o &ars+allin4 dos resultados para sere& de)ol)idos atra)'s de u&a &s4,

$>

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior

Modelo de Objeto Distribudo


E":
% %

S9N !P DARA !#I

$@

Professor: Arlindo Tadayuki Noji

Instituto de Ensino Superior