SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Universidade Presbiteriana Mackenzie	
  
Aula	
  3:	
  Conceitos	
  Básicos	
  de	
  Objetos	
  
Distribuídos	
  Prof. Ms. Daniel Arndt Alves
Faculdade	
  de	
  Computação	
  e	
  Informá@ca	
  
Computação e Informática
Faculdade de
Técnicas	
  de	
  
Programação	
  Aplicada	
  III	
  
Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   1	
  Daniel	
  Arndt	
  Alves	
  
Tópicos	
  da	
  Aula	
  
•  Chamada	
  Remota	
  de	
  Métodos	
  
•  Arquiteturas	
  para	
  Chamadas	
  
Remotas	
  
– Remote	
  Procedure	
  Calls	
  
– CORBA	
  
– Java	
  RMI	
  
Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   2	
  Daniel	
  Arndt	
  Alves	
  
Tópicos	
  da	
  Aula	
  
•  Objetos	
  Distribuídos	
  
– Objetos	
  de	
  Tempo	
  de	
  Compilação	
  
– Objetos	
  de	
  Tempo	
  de	
  Execução	
  
– Objetos	
  Persistentes	
  
– Objetos	
  Transientes	
  
•  Serialização	
  
Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   3	
  Daniel	
  Arndt	
  Alves	
  
Introdução	
  
•  Aplicações	
  distribuídas	
  podem	
  ser	
  
desenvolvidas	
  empregando	
  uma	
  arquitetura	
  
de	
  objetos	
  distribuídos;	
  
•  As	
  aplicações	
  orientadas	
  a	
  objetos	
  lidam	
  
diretamente	
  com	
  referências	
  a	
  objetos	
  em	
  
processos	
  remotos.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   4	
  
Chamada	
  Remota	
  de	
  Métodos	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   5	
  
class ... {
String hello(){
...
}
}
PROCESSO	
  
Chamada	
  remota	
  
Cliente	
   Servidor	
  remoto	
  
Arquiteturas	
  para	
  chamada	
  remota	
  
•  Existem	
  algumas	
  arquiteturas	
  desUnadas	
  para	
  
chamada	
  remota	
  de	
  métodos:	
  
– RPC	
  (Remote	
  Procedure	
  Call)	
  
– CORBA	
  (Common	
  Object	
  Request	
  Broker	
  
Architeture)	
  
– JAVA	
  RMI	
  (Remote	
  Method	
  InvocaUon	
  )	
  	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   6	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
•  Consiste	
  em	
  um	
  protocolo	
  para	
  chamadas	
  
remotas	
  a	
  procedimentos	
  como	
  se	
  fossem	
  
locais.	
  
•  Torna	
  mais	
  fácil	
  a	
  implementação	
  de	
  
aplicações	
  distribuídas,	
  pois	
  abstrai	
  o	
  código	
  
referente	
  à	
  parte	
  de	
  comunicação.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   7	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
•  Serviço	
  muito	
  uUlizado	
  em	
  sistemas	
  
operacionais	
  distribuídos	
  para	
  chamada	
  
remota	
  de	
  procedimentos.	
  
•  Estes	
  procedimentos,	
  normalmente,	
  
envolvem	
  serviços	
  disponibilizados	
  em	
  redes,	
  
tais	
  como	
  acesso	
  a	
  DNS,	
  gerenciamento	
  
remoto,	
  etc.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   8	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
•  Permite	
  que	
  um	
  processo	
  invoque	
  um	
  método	
  
de	
  outro	
  processo	
  que	
  esteja	
  em	
  seu	
  espaço	
  
de	
  endereçamento,	
  mesmo	
  que	
  este	
  esteja	
  
em	
  outro	
  host	
  na	
  rede.	
  
•  Torna	
  mais	
  fácil	
  a	
  implementação	
  de	
  
aplicações	
  distribuídas,	
  pois	
  abstrai	
  o	
  código	
  
referente	
  à	
  parte	
  de	
  comunicação.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   9	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
•  RPC	
  não	
  precisa,	
  necessariamente,	
  envolver	
  
estruturação	
  em	
  termos	
  de	
  objetos.	
  
•  Como	
  em	
  CORBA	
  e	
  RMI,	
  existe	
  a	
  necessidade	
  
de	
  se	
  trabalhar	
  com	
  interfaces	
  remotas	
  
denominadas	
  STUBS.	
  
– Tanto	
  o	
  cliente	
  quanto	
  o	
  servidor	
  necessitam	
  de	
  
um	
  Run7me	
  para	
  processamento	
  da	
  RPC.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   10	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
•  STUBS	
  
– São	
  uUlizados	
  para	
  a	
  comunicação	
  remota;	
  
– Funciona	
  semelhante	
  a	
  um	
  proxy	
  para	
  o	
  objeto	
  
remoto;	
  
– Quando	
  o	
  objeto	
  local	
  invoca	
  um	
  método	
  em	
  um	
  
objeto	
  remoto,	
  o	
  STUB	
  fica	
  responsável	
  por	
  enviar	
  
a	
  chamada	
  ao	
  método	
  para	
  o	
  objeto	
  remoto.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   11	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
•  Passos	
  do	
  STUB	
  quando	
  é	
  invocado:	
  
1.  Iniciar	
  a	
  conexão	
  com	
  a	
  Virtual	
  Machine	
  que	
  contém	
  o	
  
objeto	
  remoto;	
  
2.  Escrever	
  e	
  transmiUr	
  os	
  parâmetros	
  para	
  a	
  Virtual	
  
Machine	
  remota;	
  
3.  Aguardar	
  pelos	
  resultados	
  da	
  invocação	
  do	
  método;	
  
4.  Ler	
  os	
  resultados	
  retornados;	
  
5.  Retornar	
  os	
  valores	
  ao	
  objeto	
  que	
  executou	
  a	
  chamada	
  
•  O	
  STUB	
  esconde	
  a	
  serialização	
  dos	
  parâmetros	
  e	
  toda	
  a	
  
comunicação	
  a	
  nível	
  de	
  rede,	
  com	
  o	
  objeUvo	
  de	
  
simplificar	
  o	
  mecanismo	
  de	
  realização	
  da	
  invocação	
  do	
  
método.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   12	
  
RPC	
  (Remote	
  Procedure	
  Call)	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   13	
  
CORBA	
  
•  CORBA	
  é	
  uma	
  arquitetura	
  para	
  acesso	
  a	
  
objetos	
  distribuídos	
  que	
  prima	
  pela	
  
independência	
  da	
  plataforma.	
  
•  A	
  especificação	
  CORBA	
  define,	
  por	
  exemplo,	
  
Upos	
  de	
  dados	
  que	
  podem	
  ser	
  mapeados	
  para	
  
várias	
  linguagem	
  de	
  programação,	
  como	
  C++,	
  
Pascal	
  e	
  Java.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   14	
  
CORBA	
  
•  Um	
  ponto-­‐chave	
  em	
  CORBA	
  é	
  a	
  uUlização	
  de	
  
uma	
  IDL	
  (Linguagem	
  de	
  Definição	
  de	
  
Interface).	
  
•  Várias	
  linguagens	
  (inclusive	
  Java)	
  já	
  
disponibilizam	
  mecanismos	
  para	
  mapeamento	
  
de	
  IDL.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   15	
  
CORBA	
  
•  CORBA	
  exige	
  uma	
  espécie	
  de	
  “servidor”	
  
especializado	
  chamado	
  ORB	
  (Object	
  Request	
  
Broker).	
  
•  Existem	
  alguns	
  ORB´s	
  comerciais,	
  tais	
  como	
  
VisiBroker	
  e	
  Orbix.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   16	
  
CORBA	
  
•  Especificado	
  pela	
  OMG.	
  
•  Especialização	
  do	
  Object	
  Management	
  
Architecture	
  (OMA).	
  
•  Transforma	
  modelos	
  abstratos	
  de	
  objetos	
  em	
  
formas	
  concretas.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   17	
  
16Conceitos Básicos de Objetos Distribuídos
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   18	
  
CORBA	
  
•  Interface	
  Defini@on	
  Language	
  (IDL)	
  
–  Linguagem	
  declaraUva;	
  
–  Define	
  interfaces	
  de	
  objetos	
  com	
  independência	
  de	
  
linguagem;	
  
–  Separa	
  a	
  interface	
  da	
  implementação	
  de	
  um	
  objeto;	
  
–  Permite	
  a	
  herança	
  de	
  interfaces.	
  Ela	
  permite	
  o	
  reuso	
  
de	
  interfaces,	
  sem	
  que	
  suas	
  implementações	
  sejam	
  
herdadas.	
  A	
  maioria	
  das	
  linguagens	
  de	
  programação	
  
só	
  permite	
  a	
  herança	
  de	
  implementação.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   19	
  
CORBA	
  
•  Language	
  Mappings	
  
–  Gera	
  o	
  Stub	
  e	
  o	
  Skeleton:	
  Após	
  a	
  definição	
  dos	
  objetos	
  
terem	
  sido	
  feitas,	
  ocorre	
  a	
  geração	
  do	
  Stub	
  e	
  do	
  
Skeleton.	
  O	
  Skeleton	
  é	
  gerado	
  na	
  linguagem	
  em	
  que	
  o	
  
objeto	
  é	
  implementado,	
  e	
  o	
  Stub	
  é	
  gerado	
  uUlizando	
  a	
  
linguagem	
  de	
  programação	
  que	
  o	
  cliente	
  está	
  
uUlizando.	
  
–  Mapeia	
  os	
  Upos	
  da	
  IDL	
  para	
  o	
  Upo	
  da	
  linguagem	
  alvo.	
  
–  Language	
  Mapping	
  é	
  extremamente	
  dependente	
  das	
  
linguagens	
  de	
  programação	
  uUlizadas.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   20	
  
CORBA	
  
•  Object	
  Request	
  Broker	
  -­‐	
  ORB	
  
– É	
  o	
  componente	
  mais	
  importante	
  de	
  CORBA;	
  
– Transmite	
  a	
  invocação	
  de	
  operações	
  do	
  cliente	
  
para	
  o	
  servidor;	
  
– Trata	
  de	
  todas	
  as	
  tarefas	
  associadas	
  à	
  invocação	
  
de	
  um	
  método.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   21	
  
CORBA	
  
•  Object	
  Request	
  Broker	
  -­‐	
  ORB	
  
–  Trata-­‐se	
  de	
  um	
  conjunto	
  de	
  módulos	
  de	
  sopware	
  que	
  
gerenciam	
  a	
  comunicação	
  entre	
  objetos.	
  Muitos	
  
autores	
  o	
  denominam	
  como	
  sendo	
  o	
  “barramento	
  de	
  
objetos”.	
  
–  Esse	
  “barramento”	
  permite	
  que	
  objetos	
  façam,	
  de	
  
forma	
  transparente,	
  requisições	
  a	
  objetos	
  que	
  podem	
  
estar	
  localizados	
  localmente	
  ou	
  remotamente.	
  
–  Essa	
  transparência	
  assegura	
  que	
  o	
  cliente	
  
(requisitante)	
  não	
  tenha	
  conhecimento	
  de	
  quais	
  os	
  
mecanismos	
  uUlizados	
  para	
  se	
  comunicar	
  com	
  o	
  
objeto	
  desejado.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   22	
  
Java	
  RMI	
  
•  Arquitetura	
  de	
  acesso	
  a	
  objetos	
  distribuídos	
  
suportada	
  pela	
  linguagem	
  Java.	
  	
  
•  Em	
  termos	
  de	
  complexidade	
  de	
  programação	
  
e	
  ambiente,	
  é	
  muito	
  simples	
  construir	
  
aplicações	
  RMI,	
  comparando-­‐se	
  com	
  RPC	
  e	
  
CORBA.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   23	
  
Java	
  RMI	
  
•  Em	
  termos	
  de	
  ambiente,	
  exige	
  somente	
  
suporte	
  TCP/IP	
  e	
  um	
  serviço	
  de	
  nomes	
  de	
  
objetos	
  (rmiregistry),	
  disponilizado	
  
gratuitamente	
  com	
  o	
  Java	
  JDK/SDK.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   24	
  
Java	
  RMI	
  
•  Localização	
  de	
  Objetos	
  Remotos	
  
– Seria	
  impraUcável	
  se	
  cada	
  invocação	
  de	
  método	
  
remoto	
  fosse	
  necessário	
  incluir	
  o	
  par	
  (máquina,	
  
porta)	
  para	
  idenUficar	
  onde	
  se	
  encontra	
  o	
  objeto	
  
que	
  contém	
  o	
  método.	
  
– O	
  RMI	
  oferece	
  um	
  Serviço	
  de	
  Nomes	
  (RMI	
  
Registry)	
  que	
  oferece	
  informações	
  sobre	
  a	
  
localização	
  de	
  objetos	
  remotos.	
  
•  O	
  rmigregistry	
  executa	
  em	
  um	
  endereço	
  bem	
  
conhecido.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   25	
  
Objetos	
  Distribuídos	
  
•  Tudo	
  tratado	
  como	
  Objeto;	
  
•  Serviços	
  e	
  recursos	
  como	
  objetos	
  a	
  serem	
  
invocados;	
  
•  Facilita:	
  
– Transparência	
  	
  
– Oculta	
  aspectos	
  da	
  distribuição	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   26	
  
Objetos	
  Distribuídos	
  
•  Na	
  programação	
  distribuída,	
  uUlizando	
  a	
  arquitetura	
  
cliente/servidor,	
  clientes	
  e	
  servidores	
  podem	
  ser	
  
implementados	
  empregando	
  qualquer	
  paradigma	
  de	
  
programação.	
  
•  É	
  possível	
  que	
  um	
  serviço	
  específico	
  seja	
  executado	
  
por	
  um	
  método	
  de	
  algum	
  objeto.	
  
•  No	
  entanto,	
  mesmo	
  que	
  o	
  cliente	
  também	
  tenha	
  sido	
  
desenvolvido	
  em	
  OO,	
  na	
  comunicação	
  entre	
  o	
  cliente	
  e	
  
o	
  servidor,	
  esse	
  paradigma	
  deve	
  ser	
  esquecido,	
  
devendo	
  ser	
  empregado	
  algum	
  protocolo	
  pré-­‐
estabelecido	
  de	
  troca	
  de	
  mensagens	
  para	
  a	
  
solicitação	
  e	
  resposta	
  ao	
  serviço.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   27	
  
Objetos	
  Distribuídos	
  
•  Um	
  sistema	
  de	
  objetos	
  distribuídos	
  é	
  aquele	
  
que	
  permite	
  a	
  operação	
  com	
  objetos	
  
remotos.	
  
•  A	
  parUr	
  de	
  uma	
  aplicação	
  cliente	
  OO	
  é	
  
possível	
  obter	
  uma	
  referência,	
  invocar	
  
métodos	
  desse	
  objeto	
  –	
  mesmo	
  que	
  a	
  
instância	
  desse	
  objeto	
  esteja	
  em	
  uma	
  
máquina	
  diferente	
  daquela	
  do	
  objeto	
  cliente.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   28	
  
Objetos	
  Distribuídos	
  
•  O	
  conceito	
  básico	
  que	
  suporta	
  plataformas	
  de	
  
objetos	
  distribuídos	
  é	
  o	
  conceito	
  de	
  arquiteturas	
  
de	
  objetos,	
  que	
  estabelece	
  regras,	
  diretrizes	
  e	
  
convenções	
  definindo	
  como	
  as	
  aplicações	
  podem	
  
se	
  comunicar	
  e	
  interoperar.	
  
•  Dessa	
  forma,	
  o	
  foco	
  da	
  arquitetura	
  não	
  é	
  em	
  
como	
  a	
  implementação	
  é	
  realizada,	
  mas	
  sim	
  na	
  
infraestrutura	
  e	
  na	
  interface	
  entre	
  os	
  
componentes	
  da	
  arquitetura.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   29	
  
Objetos	
  Distribuídos	
  
•  A	
  caracterísUca	
  fundamental	
  de	
  um	
  objeto	
  é	
  
que	
  ele	
  encapsula:	
  
– Dados,	
  denominado	
  estado,	
  e	
  
– Métodos,	
  que	
  são	
  disponibilizado	
  por	
  meio	
  de	
  
uma	
  interface.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   30	
  
Objetos	
  Distribuídos	
  
•  É	
  importante	
  entender	
  que	
  não	
  há	
  nenhum	
  
modo	
  legal	
  pelo	
  qual	
  um	
  processo	
  possa	
  
acessar	
  ou	
  manipular	
  o	
  estado	
  de	
  um	
  objeto,	
  
exceto	
  pela	
  invocação	
  dos	
  métodos	
  
disponibilizado	
  para	
  ele	
  por	
  meio	
  de	
  uma	
  
interface	
  de	
  objeto.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   31	
  
Objetos	
  Distribuídos	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   32	
  
Objetos	
  Distribuídos	
  
•  Para	
  começar	
  a	
  ter	
  um	
  entendimento	
  sobre	
  o	
  
objetos	
  distribuídos:	
  
–  Quando	
  um	
  cliente	
  se	
  vincula	
  a	
  um	
  objeto	
  distribuído,	
  
uma	
  implementação	
  da	
  interface	
  do	
  objeto,	
  
denominada	
  Proxy,	
  é	
  carregada	
  	
  no	
  espaço	
  de	
  
endereço	
  do	
  cliente.	
  
–  Um	
  Proxy	
  é	
  a	
  análogo	
  a	
  um	
  apêndice	
  de	
  cliente	
  em	
  
sistemas	
  RPC.	
  
–  A	
  única	
  coisa	
  que	
  ele	
  faz	
  é	
  montar	
  invocações	
  a	
  
métodos	
  em	
  mensagens	
  e	
  desmontar	
  mensagens	
  de	
  
respostas.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   33	
  
Objetos	
  Distribuídos	
  
•  O	
  objeto	
  propriamente	
  dito	
  reside	
  em	
  uma	
  
máquina	
  do	
  servidor,	
  onde	
  oferece	
  a	
  mesma	
  
interface	
  oferecida	
  na	
  máquina	
  cliente.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   34	
  
Objetos	
  Distribuídos	
  
•  Requisições	
  de	
  invocações	
  que	
  chegam	
  são	
  
passadas	
  para	
  um	
  apêndice	
  servidor,	
  
chamado	
  esqueleto	
  (skeleton),	
  que	
  as	
  
desmonta	
  para	
  fazer	
  invocações	
  de	
  métodos	
  
na	
  interface	
  de	
  objetos	
  que	
  esta	
  no	
  servidor.	
  
•  O	
  skeleton	
  também	
  é	
  responsável	
  por	
  montar	
  
mensagens	
  de	
  respostas	
  para	
  o	
  cliente.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   35	
  
Objetos	
  de	
  Tempo	
  de	
  Compilação	
  
•  A	
  uUlização	
  de	
  objetos	
  de	
  tempo	
  de	
  
compilação	
  em	
  sistemas	
  distribuídos	
  muitas	
  
vezes	
  facilita	
  bastante	
  a	
  construção	
  de	
  
aplicações.	
  
•  A	
  compilação	
  da	
  definição	
  de	
  classe	
  resulta	
  
em	
  códigos	
  que	
  permite	
  a	
  ela	
  instanciar	
  
objetos	
  em	
  Java.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   36	
  
Objetos	
  de	
  Tempo	
  de	
  Compilação	
  
•  Sendo	
  assim	
  interfaces	
  pode	
  ser	
  compiladas	
  
do	
  lado	
  do	
  cliente	
  e	
  do	
  servidor	
  o	
  que	
  permite	
  
que	
  objetos	
  em	
  Java	
  pode	
  ser	
  invocados	
  
remotamente.	
  	
  	
  
•  A	
  desvantagem	
  deste	
  tempo	
  de	
  compilação	
  
seria	
  a	
  dependência	
  de	
  determinada	
  
linguagem.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   37	
  
Objetos	
  de	
  Tempo	
  de	
  Execução	
  
•  Para	
  isso	
  o	
  objeto	
  de	
  tempo	
  de	
  execução	
  seu	
  
modo	
  de	
  implementar	
  é	
  basicamente	
  deixado	
  
aberto.	
  
•  A	
  essência	
  é	
  como	
  deixar	
  que	
  tal	
  implementação	
  
aparente	
  ser	
  um	
  objeto	
  cujos	
  métodos	
  possam	
  
ser	
  invocados	
  de	
  uma	
  máquina	
  remota.	
  
–  Uma	
  abordagem	
  comum	
  e	
  usar	
  um	
  adaptador	
  de	
  
objeto.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   38	
  
Objetos	
  de	
  Tempo	
  de	
  Execução	
  
•  O	
  adaptador	
  de	
  objeto	
  desempenha	
  o	
  papel	
  	
  	
  
registrar	
  uma	
  implementação	
  de	
  uma	
  
interface	
  e	
  na	
  seqüência,	
  disponibiliza	
  aquela	
  
interface	
  para	
  invocações	
  (remotas).	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   39	
  
Objetos	
  Persistentes	
  
•  Um	
  objeto	
  persistente	
  é	
  o	
  que	
  conUnua	
  a	
  
exisUr	
  mesmo	
  que,	
  no	
  momento	
  em	
  questão,	
  
ele	
  não	
  esteja	
  conUdo	
  no	
  espaço	
  de	
  
endereços	
  de	
  qualquer	
  processo	
  servidor.	
  
•  É	
  um	
  objeto	
  armazenado	
  em	
  um	
  meio	
  
persistente,	
  como	
  um	
  banco	
  de	
  dados.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   40	
  
Objetos	
  Transientes	
  
•  Um	
  objeto	
  transiente	
  é	
  um	
  objeto	
  que	
  existe	
  
somente	
  enquanto	
  exisUr	
  o	
  servidor	
  que	
  o	
  está	
  
hospedando;	
  
•  Quando	
  o	
  servidor	
  sai	
  do	
  ar,	
  ele	
  deixa	
  de	
  exisUr;	
  
•  Estado	
  de	
  um	
  objeto	
  antes	
  de	
  ser	
  gravado	
  em	
  um	
  
meio	
  persistente;	
  
•  Um	
  objeto	
  persistente	
  pode	
  tornar-­‐se	
  transiente	
  
se	
  for	
  removido	
  do	
  banco	
  de	
  dados.	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   41	
  
Serialização	
  
•  Formatação	
  dos	
  dados	
  para	
  que	
  possam	
  ser	
  
enviados	
  pela	
  rede.	
  
•  As	
  classes	
  devem	
  implementar	
  a	
  interface	
  
Serializable	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   42	
  
int	
   bytes	
  
Internet	
  
bytes	
   int	
  
Marshaling	
   Unmarshaling	
  
Serialização	
  
•  Marshaling	
  
– writeObject()
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   43	
  
Objeto	
  
writeObject()
ObjectOutputStream bytes	
   OutputStream
Serialização	
  
•  Unmarshaling	
  
– readObject()
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   44	
  
Objeto	
  
readObject()
ObjectInputStreambytes	
  InputStream
Serialização	
  
package tpa3.serializacao;
import java.io.Serializable;
public class FichaCadastro implements Serializable {
public String nome;
public String senha;
public String nomeCompleto;
public String instituicao;
public String email;
public FichaCadastro(String nome, String senha,
String nomeCompleto, String instituicao, String email) {
this.nome = nome;
this.senha = senha;
this.nomeCompleto = nomeCompleto;
this.instituicao = instituicao;
this.email = email;
}
}
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   45	
  
Serialização	
  
/**
* Processo de serialização do objeto
*/
private void writeObject(java.io.ObjectOutputStream out)
throws IOException {
out.writeObject(nome);
out.writeObject(senha);
out.writeObject(nomeCompleto);
out.writeObject(instituicao);
out.writeObject(email);
out.flush();
}
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   46	
  
Serialização	
  
/**
* Processo de deserialização do objeto
*/
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException {
nome = (String) in.readObject();
senha = (String) in.readObject();
nomeCompleto = (String) in.readObject();
instituicao = (String) in.readObject();
email = (String) in.readObject();
}
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   47	
  
Serialização	
  
•  Vantagens	
  
– Facilidade	
  de	
  programação	
  
– Persistência	
  de	
  objetos	
  
•  Desvantagens	
  
– Velocidade	
  de	
  comunicação	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   48	
  
Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   49	
  Daniel	
  Arndt	
  Alves	
  
Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   50	
  Daniel	
  Arndt	
  Alves	
  
Imagens	
  
•  hxp://www.digitalprank.org/wp-­‐content/
uploads/2008/03/ejb.png	
  
•  hxp://sandersconsulUng.com/Portals/58319/
images/checklist.jpg	
  	
  
•  hxp://www.ishopping.pk/product_images/y/
423/iMac-­‐Lion__45051_std.png	
  	
  
•  hxp://www.wegotserved.com/wp-­‐content/
uploads/2011/08/MacMiniServer.jpg	
  	
  
Daniel	
  Arndt	
  Alves	
   Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   51	
  
Obrigado	
  
	
  
Daniel	
  Arndt	
  Alves	
  
daniel.alves@mackenzie.br	
  
Conceitos	
  Básicos	
  de	
  Objetos	
  Distribuídos	
   52	
  Daniel	
  Arndt	
  Alves	
  

Weitere ähnliche Inhalte

Was ist angesagt?

SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Windows server 2003
Windows server 2003Windows server 2003
Windows server 2003guestdf16d4b
 
Introdução aos Serviços de Rede
Introdução aos Serviços de RedeIntrodução aos Serviços de Rede
Introdução aos Serviços de RedeNatanael Simões
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada EnlaceLuiz Arthur
 
Servidores Web
Servidores Web Servidores Web
Servidores Web bastosluis
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerEdenilton Michael
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasVictor Hazin da Rocha
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMIAdriano Teixeira de Souza
 
Camada de transporte
Camada de transporteCamada de transporte
Camada de transportePaula Lopes
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Redes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesRedes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesLeonardo Bruno
 

Was ist angesagt? (20)

SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Windows server 2003
Windows server 2003Windows server 2003
Windows server 2003
 
Introdução aos Serviços de Rede
Introdução aos Serviços de RedeIntrodução aos Serviços de Rede
Introdução aos Serviços de Rede
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada Enlace
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Seguranca de rede
Seguranca de redeSeguranca de rede
Seguranca de rede
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
 
Camada de transporte
Camada de transporteCamada de transporte
Camada de transporte
 
Diferença osi tcp ip
Diferença osi tcp ipDiferença osi tcp ip
Diferença osi tcp ip
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Largura de banda
Largura de bandaLargura de banda
Largura de banda
 
Redes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesRedes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redes
 
Routing
RoutingRouting
Routing
 

Andere mochten auch

Artigo Sistemas Distribuidos
Artigo Sistemas DistribuidosArtigo Sistemas Distribuidos
Artigo Sistemas DistribuidosAdilmar Dantas
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebRafael Chagas
 
Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVAMarcio Palheta
 
Introdução a Qualidade de Software
Introdução a Qualidade de SoftwareIntrodução a Qualidade de Software
Introdução a Qualidade de SoftwareIgor Takenami
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 

Andere mochten auch (8)

Artigo Sistemas Distribuidos
Artigo Sistemas DistribuidosArtigo Sistemas Distribuidos
Artigo Sistemas Distribuidos
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
 
Aula4 TEES UFS: Orientação a Objetos
Aula4 TEES UFS: Orientação a ObjetosAula4 TEES UFS: Orientação a Objetos
Aula4 TEES UFS: Orientação a Objetos
 
Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)
 
Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVA
 
Introdução a Qualidade de Software
Introdução a Qualidade de SoftwareIntrodução a Qualidade de Software
Introdução a Qualidade de Software
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 

Ähnlich wie Objetos Distribuídos Conceitos

Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBAAdriano Teixeira de Souza
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMICharleston Anjos
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Henrique Gabriel Gularte Pereira
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começouJose Wilker
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos Raquel Machado
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 

Ähnlich wie Objetos Distribuídos Conceitos (20)

Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Trabalho
TrabalhoTrabalho
Trabalho
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
J530 4 rmi
J530 4 rmiJ530 4 rmi
J530 4 rmi
 
Java RMI
Java RMIJava RMI
Java RMI
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Sistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOASistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOA
 
Slide db4 o
Slide db4 oSlide db4 o
Slide db4 o
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos de Objetos Remotos
 

Mehr von Daniel Arndt Alves (20)

Sessao
SessaoSessao
Sessao
 
Variaveis Superglobais
Variaveis SuperglobaisVariaveis Superglobais
Variaveis Superglobais
 
Programacao Modular
Programacao ModularProgramacao Modular
Programacao Modular
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Introducao ao PHP
Introducao ao PHPIntroducao ao PHP
Introducao ao PHP
 
Arquitetura web
Arquitetura webArquitetura web
Arquitetura web
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Histórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de ProgramaçãoHistórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de Programação
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Selection Sort
Selection SortSelection Sort
Selection Sort
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing Listeners
 
Gerenciadores de Layout
Gerenciadores de LayoutGerenciadores de Layout
Gerenciadores de Layout
 
Hiearquia Window
Hiearquia WindowHiearquia Window
Hiearquia Window
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Java AWT
Java AWTJava AWT
Java AWT
 
Java Swing
Java SwingJava Swing
Java Swing
 

Kürzlich hochgeladen

Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?MrciaRocha48
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAlexandreFrana33
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfangelicass1
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfErasmo Portavoz
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfpaulafernandes540558
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfNoções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfdottoor
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOBiatrizGomes1
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 

Kürzlich hochgeladen (20)

Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptx
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdf
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdf
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdf
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfNoções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 

Objetos Distribuídos Conceitos

  • 1. Universidade Presbiteriana Mackenzie   Aula  3:  Conceitos  Básicos  de  Objetos   Distribuídos  Prof. Ms. Daniel Arndt Alves Faculdade  de  Computação  e  Informá@ca   Computação e Informática Faculdade de Técnicas  de   Programação  Aplicada  III   Conceitos  Básicos  de  Objetos  Distribuídos   1  Daniel  Arndt  Alves  
  • 2. Tópicos  da  Aula   •  Chamada  Remota  de  Métodos   •  Arquiteturas  para  Chamadas   Remotas   – Remote  Procedure  Calls   – CORBA   – Java  RMI   Conceitos  Básicos  de  Objetos  Distribuídos   2  Daniel  Arndt  Alves  
  • 3. Tópicos  da  Aula   •  Objetos  Distribuídos   – Objetos  de  Tempo  de  Compilação   – Objetos  de  Tempo  de  Execução   – Objetos  Persistentes   – Objetos  Transientes   •  Serialização   Conceitos  Básicos  de  Objetos  Distribuídos   3  Daniel  Arndt  Alves  
  • 4. Introdução   •  Aplicações  distribuídas  podem  ser   desenvolvidas  empregando  uma  arquitetura   de  objetos  distribuídos;   •  As  aplicações  orientadas  a  objetos  lidam   diretamente  com  referências  a  objetos  em   processos  remotos.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   4  
  • 5. Chamada  Remota  de  Métodos   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   5   class ... { String hello(){ ... } } PROCESSO   Chamada  remota   Cliente   Servidor  remoto  
  • 6. Arquiteturas  para  chamada  remota   •  Existem  algumas  arquiteturas  desUnadas  para   chamada  remota  de  métodos:   – RPC  (Remote  Procedure  Call)   – CORBA  (Common  Object  Request  Broker   Architeture)   – JAVA  RMI  (Remote  Method  InvocaUon  )     Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   6  
  • 7. RPC  (Remote  Procedure  Call)   •  Consiste  em  um  protocolo  para  chamadas   remotas  a  procedimentos  como  se  fossem   locais.   •  Torna  mais  fácil  a  implementação  de   aplicações  distribuídas,  pois  abstrai  o  código   referente  à  parte  de  comunicação.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   7  
  • 8. RPC  (Remote  Procedure  Call)   •  Serviço  muito  uUlizado  em  sistemas   operacionais  distribuídos  para  chamada   remota  de  procedimentos.   •  Estes  procedimentos,  normalmente,   envolvem  serviços  disponibilizados  em  redes,   tais  como  acesso  a  DNS,  gerenciamento   remoto,  etc.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   8  
  • 9. RPC  (Remote  Procedure  Call)   •  Permite  que  um  processo  invoque  um  método   de  outro  processo  que  esteja  em  seu  espaço   de  endereçamento,  mesmo  que  este  esteja   em  outro  host  na  rede.   •  Torna  mais  fácil  a  implementação  de   aplicações  distribuídas,  pois  abstrai  o  código   referente  à  parte  de  comunicação.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   9  
  • 10. RPC  (Remote  Procedure  Call)   •  RPC  não  precisa,  necessariamente,  envolver   estruturação  em  termos  de  objetos.   •  Como  em  CORBA  e  RMI,  existe  a  necessidade   de  se  trabalhar  com  interfaces  remotas   denominadas  STUBS.   – Tanto  o  cliente  quanto  o  servidor  necessitam  de   um  Run7me  para  processamento  da  RPC.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   10  
  • 11. RPC  (Remote  Procedure  Call)   •  STUBS   – São  uUlizados  para  a  comunicação  remota;   – Funciona  semelhante  a  um  proxy  para  o  objeto   remoto;   – Quando  o  objeto  local  invoca  um  método  em  um   objeto  remoto,  o  STUB  fica  responsável  por  enviar   a  chamada  ao  método  para  o  objeto  remoto.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   11  
  • 12. RPC  (Remote  Procedure  Call)   •  Passos  do  STUB  quando  é  invocado:   1.  Iniciar  a  conexão  com  a  Virtual  Machine  que  contém  o   objeto  remoto;   2.  Escrever  e  transmiUr  os  parâmetros  para  a  Virtual   Machine  remota;   3.  Aguardar  pelos  resultados  da  invocação  do  método;   4.  Ler  os  resultados  retornados;   5.  Retornar  os  valores  ao  objeto  que  executou  a  chamada   •  O  STUB  esconde  a  serialização  dos  parâmetros  e  toda  a   comunicação  a  nível  de  rede,  com  o  objeUvo  de   simplificar  o  mecanismo  de  realização  da  invocação  do   método.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   12  
  • 13. RPC  (Remote  Procedure  Call)   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   13  
  • 14. CORBA   •  CORBA  é  uma  arquitetura  para  acesso  a   objetos  distribuídos  que  prima  pela   independência  da  plataforma.   •  A  especificação  CORBA  define,  por  exemplo,   Upos  de  dados  que  podem  ser  mapeados  para   várias  linguagem  de  programação,  como  C++,   Pascal  e  Java.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   14  
  • 15. CORBA   •  Um  ponto-­‐chave  em  CORBA  é  a  uUlização  de   uma  IDL  (Linguagem  de  Definição  de   Interface).   •  Várias  linguagens  (inclusive  Java)  já   disponibilizam  mecanismos  para  mapeamento   de  IDL.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   15  
  • 16. CORBA   •  CORBA  exige  uma  espécie  de  “servidor”   especializado  chamado  ORB  (Object  Request   Broker).   •  Existem  alguns  ORB´s  comerciais,  tais  como   VisiBroker  e  Orbix.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   16  
  • 17. CORBA   •  Especificado  pela  OMG.   •  Especialização  do  Object  Management   Architecture  (OMA).   •  Transforma  modelos  abstratos  de  objetos  em   formas  concretas.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   17  
  • 18. 16Conceitos Básicos de Objetos Distribuídos Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   18  
  • 19. CORBA   •  Interface  Defini@on  Language  (IDL)   –  Linguagem  declaraUva;   –  Define  interfaces  de  objetos  com  independência  de   linguagem;   –  Separa  a  interface  da  implementação  de  um  objeto;   –  Permite  a  herança  de  interfaces.  Ela  permite  o  reuso   de  interfaces,  sem  que  suas  implementações  sejam   herdadas.  A  maioria  das  linguagens  de  programação   só  permite  a  herança  de  implementação.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   19  
  • 20. CORBA   •  Language  Mappings   –  Gera  o  Stub  e  o  Skeleton:  Após  a  definição  dos  objetos   terem  sido  feitas,  ocorre  a  geração  do  Stub  e  do   Skeleton.  O  Skeleton  é  gerado  na  linguagem  em  que  o   objeto  é  implementado,  e  o  Stub  é  gerado  uUlizando  a   linguagem  de  programação  que  o  cliente  está   uUlizando.   –  Mapeia  os  Upos  da  IDL  para  o  Upo  da  linguagem  alvo.   –  Language  Mapping  é  extremamente  dependente  das   linguagens  de  programação  uUlizadas.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   20  
  • 21. CORBA   •  Object  Request  Broker  -­‐  ORB   – É  o  componente  mais  importante  de  CORBA;   – Transmite  a  invocação  de  operações  do  cliente   para  o  servidor;   – Trata  de  todas  as  tarefas  associadas  à  invocação   de  um  método.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   21  
  • 22. CORBA   •  Object  Request  Broker  -­‐  ORB   –  Trata-­‐se  de  um  conjunto  de  módulos  de  sopware  que   gerenciam  a  comunicação  entre  objetos.  Muitos   autores  o  denominam  como  sendo  o  “barramento  de   objetos”.   –  Esse  “barramento”  permite  que  objetos  façam,  de   forma  transparente,  requisições  a  objetos  que  podem   estar  localizados  localmente  ou  remotamente.   –  Essa  transparência  assegura  que  o  cliente   (requisitante)  não  tenha  conhecimento  de  quais  os   mecanismos  uUlizados  para  se  comunicar  com  o   objeto  desejado.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   22  
  • 23. Java  RMI   •  Arquitetura  de  acesso  a  objetos  distribuídos   suportada  pela  linguagem  Java.     •  Em  termos  de  complexidade  de  programação   e  ambiente,  é  muito  simples  construir   aplicações  RMI,  comparando-­‐se  com  RPC  e   CORBA.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   23  
  • 24. Java  RMI   •  Em  termos  de  ambiente,  exige  somente   suporte  TCP/IP  e  um  serviço  de  nomes  de   objetos  (rmiregistry),  disponilizado   gratuitamente  com  o  Java  JDK/SDK.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   24  
  • 25. Java  RMI   •  Localização  de  Objetos  Remotos   – Seria  impraUcável  se  cada  invocação  de  método   remoto  fosse  necessário  incluir  o  par  (máquina,   porta)  para  idenUficar  onde  se  encontra  o  objeto   que  contém  o  método.   – O  RMI  oferece  um  Serviço  de  Nomes  (RMI   Registry)  que  oferece  informações  sobre  a   localização  de  objetos  remotos.   •  O  rmigregistry  executa  em  um  endereço  bem   conhecido.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   25  
  • 26. Objetos  Distribuídos   •  Tudo  tratado  como  Objeto;   •  Serviços  e  recursos  como  objetos  a  serem   invocados;   •  Facilita:   – Transparência     – Oculta  aspectos  da  distribuição   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   26  
  • 27. Objetos  Distribuídos   •  Na  programação  distribuída,  uUlizando  a  arquitetura   cliente/servidor,  clientes  e  servidores  podem  ser   implementados  empregando  qualquer  paradigma  de   programação.   •  É  possível  que  um  serviço  específico  seja  executado   por  um  método  de  algum  objeto.   •  No  entanto,  mesmo  que  o  cliente  também  tenha  sido   desenvolvido  em  OO,  na  comunicação  entre  o  cliente  e   o  servidor,  esse  paradigma  deve  ser  esquecido,   devendo  ser  empregado  algum  protocolo  pré-­‐ estabelecido  de  troca  de  mensagens  para  a   solicitação  e  resposta  ao  serviço.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   27  
  • 28. Objetos  Distribuídos   •  Um  sistema  de  objetos  distribuídos  é  aquele   que  permite  a  operação  com  objetos   remotos.   •  A  parUr  de  uma  aplicação  cliente  OO  é   possível  obter  uma  referência,  invocar   métodos  desse  objeto  –  mesmo  que  a   instância  desse  objeto  esteja  em  uma   máquina  diferente  daquela  do  objeto  cliente.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   28  
  • 29. Objetos  Distribuídos   •  O  conceito  básico  que  suporta  plataformas  de   objetos  distribuídos  é  o  conceito  de  arquiteturas   de  objetos,  que  estabelece  regras,  diretrizes  e   convenções  definindo  como  as  aplicações  podem   se  comunicar  e  interoperar.   •  Dessa  forma,  o  foco  da  arquitetura  não  é  em   como  a  implementação  é  realizada,  mas  sim  na   infraestrutura  e  na  interface  entre  os   componentes  da  arquitetura.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   29  
  • 30. Objetos  Distribuídos   •  A  caracterísUca  fundamental  de  um  objeto  é   que  ele  encapsula:   – Dados,  denominado  estado,  e   – Métodos,  que  são  disponibilizado  por  meio  de   uma  interface.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   30  
  • 31. Objetos  Distribuídos   •  É  importante  entender  que  não  há  nenhum   modo  legal  pelo  qual  um  processo  possa   acessar  ou  manipular  o  estado  de  um  objeto,   exceto  pela  invocação  dos  métodos   disponibilizado  para  ele  por  meio  de  uma   interface  de  objeto.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   31  
  • 32. Objetos  Distribuídos   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   32  
  • 33. Objetos  Distribuídos   •  Para  começar  a  ter  um  entendimento  sobre  o   objetos  distribuídos:   –  Quando  um  cliente  se  vincula  a  um  objeto  distribuído,   uma  implementação  da  interface  do  objeto,   denominada  Proxy,  é  carregada    no  espaço  de   endereço  do  cliente.   –  Um  Proxy  é  a  análogo  a  um  apêndice  de  cliente  em   sistemas  RPC.   –  A  única  coisa  que  ele  faz  é  montar  invocações  a   métodos  em  mensagens  e  desmontar  mensagens  de   respostas.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   33  
  • 34. Objetos  Distribuídos   •  O  objeto  propriamente  dito  reside  em  uma   máquina  do  servidor,  onde  oferece  a  mesma   interface  oferecida  na  máquina  cliente.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   34  
  • 35. Objetos  Distribuídos   •  Requisições  de  invocações  que  chegam  são   passadas  para  um  apêndice  servidor,   chamado  esqueleto  (skeleton),  que  as   desmonta  para  fazer  invocações  de  métodos   na  interface  de  objetos  que  esta  no  servidor.   •  O  skeleton  também  é  responsável  por  montar   mensagens  de  respostas  para  o  cliente.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   35  
  • 36. Objetos  de  Tempo  de  Compilação   •  A  uUlização  de  objetos  de  tempo  de   compilação  em  sistemas  distribuídos  muitas   vezes  facilita  bastante  a  construção  de   aplicações.   •  A  compilação  da  definição  de  classe  resulta   em  códigos  que  permite  a  ela  instanciar   objetos  em  Java.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   36  
  • 37. Objetos  de  Tempo  de  Compilação   •  Sendo  assim  interfaces  pode  ser  compiladas   do  lado  do  cliente  e  do  servidor  o  que  permite   que  objetos  em  Java  pode  ser  invocados   remotamente.       •  A  desvantagem  deste  tempo  de  compilação   seria  a  dependência  de  determinada   linguagem.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   37  
  • 38. Objetos  de  Tempo  de  Execução   •  Para  isso  o  objeto  de  tempo  de  execução  seu   modo  de  implementar  é  basicamente  deixado   aberto.   •  A  essência  é  como  deixar  que  tal  implementação   aparente  ser  um  objeto  cujos  métodos  possam   ser  invocados  de  uma  máquina  remota.   –  Uma  abordagem  comum  e  usar  um  adaptador  de   objeto.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   38  
  • 39. Objetos  de  Tempo  de  Execução   •  O  adaptador  de  objeto  desempenha  o  papel       registrar  uma  implementação  de  uma   interface  e  na  seqüência,  disponibiliza  aquela   interface  para  invocações  (remotas).   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   39  
  • 40. Objetos  Persistentes   •  Um  objeto  persistente  é  o  que  conUnua  a   exisUr  mesmo  que,  no  momento  em  questão,   ele  não  esteja  conUdo  no  espaço  de   endereços  de  qualquer  processo  servidor.   •  É  um  objeto  armazenado  em  um  meio   persistente,  como  um  banco  de  dados.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   40  
  • 41. Objetos  Transientes   •  Um  objeto  transiente  é  um  objeto  que  existe   somente  enquanto  exisUr  o  servidor  que  o  está   hospedando;   •  Quando  o  servidor  sai  do  ar,  ele  deixa  de  exisUr;   •  Estado  de  um  objeto  antes  de  ser  gravado  em  um   meio  persistente;   •  Um  objeto  persistente  pode  tornar-­‐se  transiente   se  for  removido  do  banco  de  dados.   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   41  
  • 42. Serialização   •  Formatação  dos  dados  para  que  possam  ser   enviados  pela  rede.   •  As  classes  devem  implementar  a  interface   Serializable   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   42   int   bytes   Internet   bytes   int   Marshaling   Unmarshaling  
  • 43. Serialização   •  Marshaling   – writeObject() Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   43   Objeto   writeObject() ObjectOutputStream bytes   OutputStream
  • 44. Serialização   •  Unmarshaling   – readObject() Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   44   Objeto   readObject() ObjectInputStreambytes  InputStream
  • 45. Serialização   package tpa3.serializacao; import java.io.Serializable; public class FichaCadastro implements Serializable { public String nome; public String senha; public String nomeCompleto; public String instituicao; public String email; public FichaCadastro(String nome, String senha, String nomeCompleto, String instituicao, String email) { this.nome = nome; this.senha = senha; this.nomeCompleto = nomeCompleto; this.instituicao = instituicao; this.email = email; } } Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   45  
  • 46. Serialização   /** * Processo de serialização do objeto */ private void writeObject(java.io.ObjectOutputStream out) throws IOException { out.writeObject(nome); out.writeObject(senha); out.writeObject(nomeCompleto); out.writeObject(instituicao); out.writeObject(email); out.flush(); } Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   46  
  • 47. Serialização   /** * Processo de deserialização do objeto */ private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { nome = (String) in.readObject(); senha = (String) in.readObject(); nomeCompleto = (String) in.readObject(); instituicao = (String) in.readObject(); email = (String) in.readObject(); } Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   47  
  • 48. Serialização   •  Vantagens   – Facilidade  de  programação   – Persistência  de  objetos   •  Desvantagens   – Velocidade  de  comunicação   Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   48  
  • 49. Conceitos  Básicos  de  Objetos  Distribuídos   49  Daniel  Arndt  Alves  
  • 50. Conceitos  Básicos  de  Objetos  Distribuídos   50  Daniel  Arndt  Alves  
  • 51. Imagens   •  hxp://www.digitalprank.org/wp-­‐content/ uploads/2008/03/ejb.png   •  hxp://sandersconsulUng.com/Portals/58319/ images/checklist.jpg     •  hxp://www.ishopping.pk/product_images/y/ 423/iMac-­‐Lion__45051_std.png     •  hxp://www.wegotserved.com/wp-­‐content/ uploads/2011/08/MacMiniServer.jpg     Daniel  Arndt  Alves   Conceitos  Básicos  de  Objetos  Distribuídos   51  
  • 52. Obrigado     Daniel  Arndt  Alves   daniel.alves@mackenzie.br   Conceitos  Básicos  de  Objetos  Distribuídos   52  Daniel  Arndt  Alves