Professional Documents
Culture Documents
Introduo
Introduo
!P
" !#I
Introduo
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,
E)entos distri.u/dos
%
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
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&
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
-
Introduo
Applications !#I8 !P and e)ents !e*uest reply protocol E"ternal data representation -peratin4 Syste& #iddle3are layers
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
>
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
%
Interfaces
Interface
%
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
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
IDL
-utras
%
A2
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$
Objetos distribudos
ada processo cont'& o.jetos8 al4uns na *ual pode& rece.er c+a&adas re&otas8 outras so&ente local
%
-.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
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
re&oteo.ject 1ata &A &2 &$ i&ple&entation of &et+ods &2 &5 &:
re&ote interface
A:
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=
for&as de in)ocao
-s
A>
de In)ocao
Invocation semantics
Re-execute procedure or retransmit reply Not applicable Re-execute procedure Retransmit reply Maybe At-least-once At-most-once
Instituto de Ensino Superior
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
2B
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
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
de +a&ada !e&ota
ser)er !e*uest skeleton L dispatc+er for FKs class
re&ote o.ject F
!eply
o&&unication &odule
2$
do !#I
22
de co&unicao
I&ple&enta u& protocolo solicitao e resposta 9sa os $ pri&eiros itens da estrutura de &s4
25
!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:
!efer6ncia !e&ota
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=
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>
- 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@
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
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
&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
- 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
%
$$
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
Persist6ncia de o.jetos
%
$2
Modelo RP
% %
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
$5
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
$:
Modelo RP
E":
ser)er process
client pro4ra&
!eply
$=
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,
$>
$@