Objetos Distribu - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Objetos Distribu

Description:

Objetos Distribu dos - Programa o Distribu da Orientado a Objetos Luiz Affonso Guedes – PowerPoint PPT presentation

Number of Views:92
Avg rating:3.0/5.0
Slides: 29
Provided by: WWW1159
Category:

less

Transcript and Presenter's Notes

Title: Objetos Distribu


1
Objetos Distribuídos - Programação Distribuída
Orientado a Objetos
  • Luiz Affonso Guedes

2
Introdução
  • Conceitos básicos
  • programação distribuída programação orientada a
    objetos Objetos distribuídos
  • Motivação
  • Associar as vantagens advindas da programação
    orientada a objetos no desenvolvimento de
    aplicações distribuídas
  • PD- Programação Distribuída
  • POO - Programação Orientada a Objetos
  • POOD- Programação Orientada a Objetos Distribuída

3
Breve Histórico de Programação Distribuída
  • Programação distribuída
  • Programação de sistemas que executam sobre redes
    de computadores.
  • Conceito de redes de computadores
  • Conceito de processos
  • Modelo cliente-servidor
  • Conceito de troca de mensagens
  • Chamada de procedimento remoto
  • Invocação de métodos de objetos remotos
  • Sistemas baseados em agentes

4
Conceito de Redes de Computadores
  • Modelo em camadas

5
Conceito de Middleware
  • Necessidade de agrupar funcionalidades comuns às
    várias aplicações distribuídas
  • Conceito de abstração da programação distribuída
  • Tentar tornar a programação distribuída, em
    termos de facilidade de programação, o mais
    próximo possível da programação centralizada.

Software
O middleware deve ser independente do SO e do
hardware
S.O. Hardware
6
Evolução do Conceito de Middleware
7
Paradigma de Troca de Mensagem
send(M1)
receive(M1)
Tarefa 1
Tarefa 2
send(M2)
receive(M2)
8
Troca de Mensagem - Implementação
  • Via Socket - síncrono ou assíncrono

9
Troca de Mensagens - Características de
Programação
  • Baixo nível de abstração na programação
  • Necessidade de se conhecer aspectos de redes de
    computadores e sistemas operacionais
  • ports e número IP
  • Leva a programas poucos estruturados

10
Chamada de Procedimento Remoto - RPC
  • Remote Procedure Call (RPC)
  • baseada no conceito de chamada de procedimento
    das linguagens estruturadas
  • A idéia é fazer a invocação de um procedimento
    remoto o mais similar possível como se faz a
    chamada de um procedimento local.

11
RPC - Modelo de Programação
Call P2(a1,a2)
Servidor
Cliente
P1
retorno
P2
P3
12
RPC - Implementação
Cliente
Servidor
P1
... x call P2(a1,a2) ....
P3
P2
P2(a1,a2)
despachante
empacota parâmetros
desempacota parâmetros
empacota parâmetros
desempacota parâmetros
P2
a1
a2
resultado
13
Objetos Distribuídos
  • Surgiu da necessidade de se atender aos
    requisitos de software mais exigentes, oriundos
    de sistemas mais complexos.
  • Reusabilidade
  • Modularidade
  • Flexibilidade
  • Objetos Distribuídos Programação Orientada a
    Objetos Programação Distribuída

14
Constituição dos Objetos
método 1
método n
método 2
interface
15
Constituição de Objetos
  • Toda interação com um objeto se dá através da
    invocação de seus métodos declarados com públicos
  • Métodos declarados como privados só podem ser
    invocados pelos demais métodos do objeto
  • Os atributos são variáveis manipuladas pelos
    métodos do objeto

16
Conceitos Básicos de Objetos
  • Classificação
  • Objetos são organizados em classes. Uma classe
    define o comportamento dos objetos dela
    derivados.
  • Relacionamento entre classes
  • herança relação tipo é-um ou é-uma
  • composição relação tipo é-parte-de
  • colaboração relações tipo usa, delega e autoriza

17
Conceitos Inerentes dos Objetos
  • Instanciação
  • objetos são criado a partir do modelo de sua
    classe
  • Encapsulamento
  • detalhes de implementação não são visíveis fora
    do objetos
  • Identidade
  • objetos possuem identidade única
  • Polimorfismo
  • métodos com o mesmo nome podem apresentar
    comportamento diferente

18
OD - Modelo de programação
19
ORBs
  • Object Request Broker
  • Middleware para suporte de serviço de
    distribuição.
  • RMI Remote Method Invocation (Java)
  • Corba Common ORB Architecture (OMG)

20
Estrutura de um Orb
Cliente
Servidor
Skeleton
Camada de Referência Remota
Camada de Transporte
IP
LAN ou WAN
21
Estrutura de um Orb
Servidor
Service Registry
port
Cliente
Stub
Stub
Skeleton
Skeleton
ORB
22
Procedimento de Programação
  1. Escrever Interface
  2. Implementar a Interface
  3. Implementar Servidor que contém a implementação
    da interface
  4. Gerar Stub e Skeleton da Interface
  5. Registrar Servidor e Disparar Servidor
  6. Escrever Cliente que utiliza métodos da Interface

23
RMI e Corba
  • RMI
  • a Interface é escrita em Java
  • Só opera com objeto remotos Java
  • Corba
  • a Interface é escrita em IDL (Interface
    Descrition Language like C)
  • Multi-linguagem
  • Há várias implementações do padrão

24
Exemplo em RMI
  • Passo 1 Especificação da Interface
  • // Interface remota para implementação de método
    da séria de Fibinacci
  • import java.rmi.
  • import java.math.BigInteger
  • public interface Fibonacci extends Remote
  • public BigInteger getFibonacci (int n) throws
    RemoteException
  • public BigInteger getFibonacci (BigInteger n)
    throws RemoteException

25
Exemplo em RMI
  • Passo 2 Implementar a Interface

// Implementação da interface Fibonacci.java impo
rt java.rmi. import java.rmi.server.UnicastRemot
eObject import java.math.BigInteger public
class FibonacciImpl implements Fibonacci
public FibonacciImpl( ) throws RemoteException
UnicastRemoteObject.exportObject(this)
public BigInteger getFibonacci (int n)
throws RemoteException ...
return (retorno) public
BigInteger getFibonacci (BigInteger n) throws
RemoteException ...
return (retorno)
26
Exemplo em RMI
  • Passo 3 Implementar o Servidor

// Servidor que conterá o objeto da classe
FibonacciImpl.java import java.net. import
java.rmi. public class FibonacciServer
public static void main(String args)
try FibonacciImpl f
new FibonacciImpl() // instanciação do objeto
remoto Naming.rebind("fibonacc
i", f) // registro do servidor
System.out.println("Servidor Fibonacci
pronto.") catch
(RemoteException re)
System.out.println(" Exception in
FibonacciImpl.main " re)
catch (MalformedURLException e)
System.out.println(" URL mal formada"
e)
27
Exemplo em RMI
  • Passo 4 Gerar Stub e Skeleton da Interface
  • rmic FibonacciImpl
  • Criação automática de FibonacciImpl_Skel.java e
    FibonacciImpl_Stub.java
  • Passo 5 Registrar e Disparar Servidor
  • rmiregistry (linux)
  • start rmiregistry (windows) // porta
    default 1099
  • java FiboncciServer

28
Exemplo em RMI
  • Passo 6 Implementar Cliente

/ Programa cliente da interface remota
Fibonacci.java import java.rmi. import
java.net. import java.math.BigInteger public
class FibonacciClient2 public static void
main(String args) try Object o
Naming.lookup("rmi//localhost/fibonacci") //
ligação com o servidor remoto
Fibonacci calculator (Fibonacci) o
// conversão de tipo
BigInteger index new BigInteger("3") //
número da série BigInteger f
calculator.getFibonacci(index) // chamada de
método em interface remota
System.out.println(" O " index "-ésimo termo
da série de Fibonacci é " f)
catch(MalformedURLException e) ...
catch(RemoteException re) ...
catch(NotBoundException e) ...
Write a Comment
User Comments (0)
About PowerShow.com