Sistemas Distribu - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemas Distribu

Description:

Sistemas Distribu dos Princ pios de Middleware para Objetos Distribu dos Especializa o em Redes de Computadores Prof. F bio M. Costa Instituto de Inform tica ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 39
Provided by: Microsoft
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Distribu


1
Sistemas DistribuídosPrincípios de Middleware
para Objetos Distribuídos
  • Especialização em Redes de Computadores
  • Prof. Fábio M. Costa
  • Instituto de Informática - UFG

2
Visão Geral
  • Redes de computadores
  • Tipos de Middleware
  • Transaction-Oriented Middleware
  • Message-Oriented Middleware
  • Remote Procedure Calls
  • Middleware orientado a objetos
  • Exemplos CORBA, COM, Java RMI

3
Redes de Computadores
4
O Modelo de Referência ISO/OSI
  • Modelo da rede em 7 camadas
  • Hoje finalidade didática
  • Internet 5 camadas
  • Três camadas superiores podem ser implementadas
    sob a forma de uma plataforma de middleware
  • Três camadas inferiores tipicamente invisíveis
    ao middleware

Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace de Dados
Física
5
A Camada de Transporte
  • Nível 4 do modelo de referência ISO/OSI
  • Lida com o transporte de informações fim-a-fim
    através da rede
  • Base para a construção de plataformas de
    middleware
  • Dois protocolos mais usados na Internet
  • TCP
  • UDP

Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace de Dados
Física
6
Transmission Control Protocol (TCP)
  • Provê suporte para um fluxo de dados
    bi-direcional entre dois componentes distribuídos
  • Serviços do tipo terminal remoto (ex. rsh,
    rlogin) são baseados neste protocolo
  • Confiável mas lento
  • Orientado a conexões, com retransmissões em caso
    de erros
  • Realiza buferização em ambos os extremos da
    conexão controle de fluxo para permitir a
    comunicação entre computadores com velocidades
    diferentes

7
Uso de TCP para Implementação de Requisições
Client
Server
Aplicação
Aplicação
Apresentação
Apresentação
Sessão
Sessão
Requisições
Transporte
Transporte
Fluxo de Entrada
Fluxo de Saída
Resultados
8
User Datagram Protocol (UDP)
  • Habilita um componente a passar uma mensagem
    contendo uma seqüência de bytes para outro
    componente
  • Mensagem Datagrama
  • Cada datagrama é transmitido independentemente
  • O componente de destino da mensagem é
    identificado dentro da própria mensagem
  • Não-confiável, mas rápido
  • Comprimento restrito de mensagens
  • Mensagens são enfileiradas no receptor

9
Uso de UDP na Implementação de Requisições
Cliente
Servidor
Apliicação
Aplicação
Apresentação
Apresentação
Sessão
Sessão
Datagramas de Requisição
Transporte
Transporte
Datagramas de Resultado
10
Tipos de Middleware
11
Implicações do Uso Direto de Protocolos de Rede
  • Mapeamento manual de parâmetros (complexos) de
    requisições para fluxos de bytes
  • Resolução manual de problemas de heterogeneidade
    de dados
  • Identificação manual dos componentes
  • Implementação manual da ativação de componentes
  • Nenhuma garantia de tipagem segura (type safety)
  • Sincronização manual das interações entre objetos
    distribuídos
  • Nenhuma garantia (automática) de qualidade de
    serviço

12
Middleware
  • Camada de software entre as aplicações e o
    sistema operacional / rede
  • Torna transparente a distribuição
  • Resolve heterogeneidade de
  • Hardware
  • Sistemas Operacionais
  • Redes
  • Linguagens de programação
  • Provê um ambiente de desenvolvimento e de tempo
    de execução para sistemas distribuídos

13
Tipos de Middleware
  • Orientado a Transações
  • IBM CICS
  • BEA Tuxedo
  • Encina
  • Orientado a Mensagens
  • IBM MQSeries
  • DEC Message Queue
  • NCR TopEnd
  • Sistemas de RPC
  • ANSA
  • Sun ONC
  • OSF/DCE
  • Orientado a objetos
  • OMG/CORBA
  • DCOM
  • Java/RMI
  • Vamos primeiro estudar RPC para entender as
    origens de middleware orientado a objetos

14
Remote Procedure Calls
  • Permite que chamadas de procedimentos cruzem os
    limites entre máquinas diferentes
  • Interfaces são definidas usando uma Linguagem de
    Definição de Interfaces (IDL)
  • Especifica os procedimentos disponíveis
    remotamente
  • Um compilador RPC gera a funcionalidade de camada
    de apresentação e de sessão a partir do código IDL

15
Exemplo de IDL (Sun RPC)
  • const NL64
  • struct Player
  • struct DoB int day int month int year
  • string nameltNLgt
  • program PLAYERPROG
  • version PLAYERVERSION
  • void PRINT(Player)0
  • int STORE(Player)1
  • Player LOAD(int)2
  • 0
  • 105040

16
Funcionalidade da Camada de Apresentação
Resolução de Heterogeneidade de Dados
Representação de dados comum
Transmissão da declaração dos dados
Marshalling e Unmarshalling
estático
dinâmico
17
Marshalling e Unmarshalling
  • char marshal()
  • char msg
  • msgnew char4(sizeof(int)1)
  • strlen(name)1
  • sprintf(msg,"d d d d s",
  • dob.day,dob.month,dob.year,
  • strlen(name),name)
  • return(msg)
  • void unmarshal(char msg)
  • int name_len
  • sscanf(msg,"d d d d ",
  • dob.day,dob.month,
  • dob.year,name_len)
  • name new charname_len1
  • sscanf(msg,"d d d d s",
  • dob.day,dob.month,
  • dob.year,name_len,name)
  • Marshalling
  • Converter estruturas de dados em um formato no
    qual possam ser transmitidas
  • Seqüência de bytes
  • Unmarshalling
  • Remontar a estrutura de dados original a partir
    do formato serializado

18
Chamada de Método Local vs. Requisição de Objeto
Chamador
Stub
Camada de Transportd (TCP ou UDP)
19
Stubs
  • A criação de código para marshalling e
    unmarshalling é tediosa e passível de erros
  • Este código pode ser gerado automaticamente a
    partir de definições de interface
  • Código gerado é embutido em stubs para cliente e
    servidor
  • Stub cliente representa o servidor para o
    cliente
  • Stub servidor representa o cliente para o
    servidor
  • Stubs implementam tipagem segura
  • Também realizam sincronização de requisições

20
Sincronização
  • Objetivo obter sincronização similar à chamada
    de métodos locais
  • Papel dos stubs
  • Stub cliente envia a requisição e espera até que
    o servidor termine
  • Stub servidor espera por requisições e chama o
    objeto servidor quando a requisição chega

21
Tipagem Segura (Type Safety)
  • Como verificar que
  • servidores são capazes de realizar as operações
    requisitadas pelos clientes
  • argumentos fornecidos pelos clientes estão de
    acordo com os parâmetros esperados pelo servidor
  • resultado fornecido pelo servidor está de acordo
    com as expectativas dos clientes
  • A plataforma de middleware age como um mediador
    entre o cliente e o servidor para garantir a
    tipagem segura das requisições
  • Através de definições de interfaces em uma
    linguagem padrão

22
Provendo Tipagem Segura
Definição de Interface
Servidor
Requisição
Cliente
Resposta
23
Camada de Sessão
  • Implementa
  • Identificação de servidores de RPC
  • Ativação de servidores de RPC
  • Despacho de operações no servidor
  • Binding ligar clientes a servidores

Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace de Dados
Física
24
Exemplo Identificação de Servidor de RPC
  • print_person(char host, Player person)
  • CLIENT clnt
  • //Cria stub cliente
  • clnt clnt_create(host, 105040, 0, "udp")
  • if (clnt (CLIENT ) NULL) exit(1)
  • //Se criação bem sucedida, chama o stub
  • if (print_0(person, clnt)NULL)
  • clnt_perror(clnt, "call failed")
  • clnt_destroy(clnt)

25
Middleware Orientado a Objetos
26
Linguagem de Definição de Interfaces
  • Cada plataforma de middleware orientada a objetos
    possui uma linguagem de definição de interfaces
    (IDL) própria
  • Além das características suportadas por uma IDL
    de RPCs, IDLs orientadas a objetos oferecem
    suporte para
  • tipos de objetos como parâmetros
  • tratamento de falhas (via exceções)
  • herança (de interface)
  • Compiladores IDL (providos pela plataforma) criam
    os stubs cliente e servidor para implementar as
    funcionalidades de camada de sessão e apresentação

27
Exemplo de IDL
  • interface Player Object
  • typedef struct Date
  • short day short month short year
  • Date
  • attribute string name
  • readonly attribute Date DoB
  • interface PlayerStore Object
  • exception IDNotFound
  • short save (in Player p)
  • Player load(in short id) raises(IDNotFound)
  • void print(in Player p)

28
Implementação da Camada de Apresentação
  • Além da funcionalidade de camada de apresentação
    típica de RPCs, plataformas de middleware
    orientadas a objetos precisam
  • definir uma representação para referências de
    objetos que seja apropriada para transmissão
  • lidar com exceções
  • fazer o marshalling de atributos herdados (de
    outras interfaces)

29
Implementação da Camada de Sessão
Referências de Objeto
Hosts
Processos
Objetos
30
Desenvolvendo comMiddleware Orientado a Objetos
31
Etapas no Desenvolvimento
Design
Definição de Interfaces
Codificação dos Servidores
Codificação dos Clientes
Registro dos Servidores
32
Provendo Transparência de Acesso
  • Stubs cliente possuem as mesmas operações que os
    respectivos objetos servidores
  • embora com diferentes implementações
  • Portanto, clientes podem
  • fazer chamadas locais aos stubs cliente, ou
  • fazer chamadas locais ao objeto servidor
  • Tudo isto sem precisar alterar a sintaxe de
    chamada
  • A plataforma de
  • A plataforma de middleware pode acelerar a
    comunicação se os objetos são locais aos clientes
    (não usando o stub)

33
Provendo Transparência de Localização
  • Identidade de objetos
  • Referências de objetos
  • Clientes requisitam operações ao objeto servidor
    identificado por uma referência de objeto
  • Nenhuma informação sobre a localização física do
    objeto é necessária
  • Como obter referências de objetos?

34
Geração dos Stubs
35
Implementação de Clientes e Servidores
36
Registrando o Objeto Servidor
  • Adaptador de objetos
  • Componente da plataforma responsável por adaptar
    uma mensagem recebida através da rede para uma
    chamada local a um objeto servidor específico
  • Efetua a localização e ativação/inicialização do
    objeto servidor
  • Isto é funcionalidade de camada de sessão

37
Registrando o Objeto Servidor (cont.)
  • Objetos servidores são registrados em um
    repositório de implementações
  • O processo de registro depende de cada plataforma
    de middleware específica
  • O adaptador de objetos faz uma busca no
    repositório de implementações antes de ativar o
    objeto
  • Para obter a implementação do objeto

38
Pontos-Chave
  • Plataformas de middleware são construídas sobre a
    camada de transporte
  • Há vários tipos/formas de middleware
  • Plataformas de middleware orientadas a objetos
    provêem IDLs
  • Plataformas de middleware orientado a objetos
    implementam as camadas de sessão e apresentação
  • Implementação da camada de apresentação é feita
    através de stubs clientes e servidores, derivados
    de definições de interfaces em IDL
  • A camada de sessão é implementada em adaptadores
    de objetos
Write a Comment
User Comments (0)
About PowerShow.com