A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Objetos Distribuídos e invocação remota

Apresentações semelhantes


Apresentação em tema: "Objetos Distribuídos e invocação remota"— Transcrição da apresentação:

1 Objetos Distribuídos e invocação remota
Kades Pinto 16628 Pedro Vinicius Machado Matheus Dobrowolsky

2 Introdução Programação para aplicativos distribuidos: Aplicativos compostos de programas que estão em coperação, executados em diferentes processos os quais executam (invocam) operações de outros processos Adaptações foram feitas para que isso acontecesse, estenendo-se modelos de programações ja existentes. Chamada de procedimentos convencional -> chamada de procedimento remoto Programação baseada em objetos (invoçação local) -> utilização de invocação a metodo remoto(RMI – Remote method invocation) Programação baseada em processos: permite objetos a serem notificados de eventos que ocorrem em outros objetos, os quais o interessam.

3 Interfaces Sua comunicação é feita através de chamadas de procedimentos ou por acesso direto às variaveis feitas, controladas por uma interface explicita feita para cada módulo o qual define os procedimentos e variaveis que podem ser acessados pelos outros modulos, ocultando suas informações, só deixando presente as que são vistas pela interface.

4 Interface em sistemas distribuidos
Interfaces remotas: Uma interface remota especifica métodos disponiveis de um objeto passíveis de invocações para que seja feita por outros processos. Define quais serão os tipos de argumentos entradas e saídas Os metodos das interfaces remotas podem passar objetos como argumentos e resultados de metodos, ou referencias para os mesmos.

5 Linguagens de definição de interface
O Mecanismo de RMI pode ser integrado a linguagens de programação particulares caso inclua notações adequadas para definir interfaces, permitindo que os parâmetros de entrada e saída sejam mapeados no uso normal de parâmetros da linguagem. As linguagens de definição de interface (IDLs) são projetadas para permitir que objetos implementados em diferentes linguages invoquem uns aos outros.

6 Linguages de definição de interface
PersonList especifica métodos disponíveis para RMI em um objeto remoto. addPerson especifica seu argumento como de entrada (in) getPerson recupera uma instância de Person pelo nome e define seu segundo argumento como de saída (out) (CORBA (abreviado de Common Object Request Broker Architecture))

7 Comunicação entre objetos distribuídos
MODELO DE OBJETO Programas orientados a objetos consistem em conjuntos de objetos que interagem entre si. Os objetos podem ser acessados por meio de referências. Uma interface fornece a definição das assinaturas de um conjunto de métodos. Uma ação é iniciada por um objeto invocando um método de outro objeto. Os programas podem encontrar muitos tipos de erros e condições inesperadas, de diversos graus de gravidade. É necessário fornecer uma maneira de liberar espaço ocupado pelos objetos, quando eles não são mais necessários

8 Comunicação entre objetos distribuídos
OBJETOS DISTRIBUIDOS O estado de um objeto consiste nos valores de suas variáveis de instância. Podem adotar arquitetura cliente-servidor. Os objetos são gerenciados pelos servidores e seus clientes invocam seus métodos usando invocação a método remoto, RMI. Podem adotar outros modelos para usufruir de vantagens. Objetos clientes e servidores em diferentes processos impõe encapsulamento.

9 Comunicação entre objetos distribuídos
MODELO DE OBJETO DSTRIBUIDO Cada processo contem um conjunto de objetos, que podem receber invocações locais e remotas, e outros podem receber apenas invocações locais. COULOURIS (2007).

10 Comunicação entre objetos distribuídos
MODELO DE OBJETO DSTRIBUIDO Uma referencia de objeto remoto é um identificador que pode ser usado por todo um sistema distribuído para se referir a um único objeto remoto. Interface remotas: A classe de um objeto remoto implementa os métodos de sua interface remota. COULOURIS (2007).

11 Comunicação entre objetos distribuídos
MODELO DE OBJETO DSTRIBUIDO Ações em um sistema distribuído: Em sistemas não distribuídos, uma ação é inicia da por uma invocação ao método. No caso distribuído os objetos envolvidos podem ser localizados em diferentes processos ou computadores. Os aplicativos distribuídos podem fornecer objetos remotos com métodos para instanciar objetos que podem ser acessados pela RMI. COULOURIS (2007).

12 Comunicação entre objetos distribuídos
PROBLEMAS DE PROJETO PARA RMI Escolha da semântica de aplicação: Invocação Talvez: Falhas por omissão, se a mensagem de invocação ou resultado for perdida; Falhas por colapso, quando o servidor que contem o objeto falha. Invocação pelo menos uma vez: Falhas arbitrarias. Múltipla execução do mesmo método criando valores errados. Invocação máximo uma vez: O ativador recebe um resultado quando o método foi executado exatamente uma vez.

13 Comunicação entre objetos distribuídos
IMPLEMENTAÇÃO RMI Modulo de comunicação: Cooperam para executar o protocolo requisição-resposta, que tramite mensagens de requisição e resposta entre o cliente e servidor. Modulo de referencia remota: Responsável pela transformação entre referencias de objeto local e remoto e pela criação de referencias de objeto remoto. Serventes: Uma instancia de uma classe que fornece o corpo do objeto remoto. É o servente que trata as requisições remotas repassadas pelo correspondente.

14 Comunicação entre objetos distribuídos
IMPLEMENTAÇÃO RMI Programas clientes e servidores: Contem as classes para os despachantes, junto com as implementações das classes de todos os serventes. Vinculador: É um serviço separado que mantem uma tabela contendo mapeamentos dos nomes textuais para referencias de um objeto remoto. Threads no servidor: Evitam a execução de uma invocação remota que atrase uma outra, geralmente os servidores criam uma thread para cada invocação remota. Invocação de objetos remotos: Para evitar desperdício de recursos e execução, os servidores de objetos remotos serão iniciados somente quando necessários ao cliente.

15 Chamada de procedimento remoto(RPC)
Processo cliente chama um procedimento que está sendo executado em um processo servidor. Não suporta referências de objeto remoto. Implantado sobre o protocolo requisição-resposta.

16

17 Estudo de caso: RPC da Sun
RPC Sun – Projetado para comunicação cliente-servidor no sistema de arquivos de rede NFS. Opção de chamada de procedimento remoto sobre UDP ou TCP. RPC Sun – Fornece uma linguagem de interface XDR e um compilador de interface rpcgen.

18 Estudo de caso: RPC da Sun
XDR – Linguagem de definição de interface. (Notação primitiva) Não permite a especificação de nomes de interface. Definição de procedimento especifica a assinatura e o número identificador de procedimento. Apenas um parâmetro de entrada. Parâmetro de saída retornado em apenas um resultado. Assinatura de saída consiste no tipo de resultado, no nome do procedimento e no tipo de parâmetro de entrada.

19 const MAX = 1000; typedef int FileIdentifier; typedef int FilePointer; typedef int Lenght; struct Data{ int length; char buffer[MAX]; }; struct writeargs{ FileIdentifier f; FilePointer position; Data data; struct readargs{ FileIndentifier f; FilePointer position; Length length; }; Program FILEREADWRITE{ version Version{ void WRITE(writeargs) =1; Data READ(readargs) = 2; } = 2; } = 9999;

20 Estudo de caso: RPC da Sun
Notação para definir constantes, typedefs, estruturas, tipos enumerados, uniões e programas, são fornecidos pela linguagem de definição de interface. Compilador de interface rpcgen gera: Procedimento stub no cliente; Procedimento main, despachante e procedimento stub no servidor. Procedimentos de empacotamento e desempacotamento de XDR no servidor.

21 Estudo de caso: RPC da Sun
Vinculação (binding) – Serviço de vinculação local chamado de mapeador de porta (port mapper), executado em cada computador. Autenticação – Campos adicionais nas mensagens de requisição e resposta para autenticação das informações passadas entre cliente e servidor. Suporta protocolos de autenticação diferentes. Nenhum. Estilo UNIX. Baseado em uma chave de compartilhada para assinar as mensagens RPC. Autenticação Kerberos.

22 Eventos e notificações
Objeto reage a uma interação ocorrida em outro objeto. Notificações de eventos são basicamente assíncronas e determinadas pelos receptores. Paradigma publicar-assinar(publish-subscriber). Características principais dos sistemas distribuídos em eventos: Heterogêneos – notificações de evento são usadas como meio de comunicação entre objetos distribuídos. Assíncronos – as notificações são enviadas de forma assíncrona pelos objetos geradores de eventos, para todos os objetos que fizeram uma assinatura deles.

23 Eventos e notificações
Uma fonte de evento pode gerar um ou mais tipos diferentes de eventos. Cada evento tem atributos que especificam informações sobre este evento. Tipos e atributos são utilizados na inscrição dos eventos e notificações.

24 Eventos e notificações: Participantes da notificação de eventos distribuída
Arquitetura projetada de modo a desvincular os geradores de publicação dos assinantes. Funções dos objetos participantes : Objeto de interesse: é o objeto que sofre mudanças de estado, como resultado da invocação de seus métodos. Evento: o evento ocorre em um objeto de interesse como resultado da conclusão da execução de um método. Notificação: é um objeto que contém informações sobre um evento. Assinante: é um objeto que se inscreveu em algum tipo de evento ou em outro objeto. Objetos observadores: desvincula um objeto de interesse de seus assinantes. Gerador de eventos (Publisher): objeto que declara que vai gerar notificações de tipos de eventos em particular. Pode ser um objeto de interesse ou um observador.

25

26 Eventos e notificações: Participantes da notificação de eventos distribuída
Semântica de entrega de notificações – várias garantias de entrega podem ser fornecidas para as notificações. Função dos observadores – Processa as notificações desempenhando diferentes funções. Encaminhamento: envia as notificações para os assinantes em nome de um ou mais objetos de interesse. Filtragem de notificações: adiciona filtros para reduzir o número de notificações recebidas. Padrões de eventos: o objeto que se inscreve especifica os padrões de evento que são de seu interesse. O padrão especifica um relacionamento entre vários eventos. Caixas de correio de notificação: guarda as notificações até que o assinante esteja pronto para recebê-las.

27 Estudo de caso: especificação de eventos distribuídos Jini
Permite que objetos em diferentes máquinas virtuais Java (JVM) se inscreva e receba notificações sobre eventos em outras máquinas virtuais. Principais objetos envolvidos na especificação de eventos distribuídos Jini: Geradores de evento: permite que outros objetos se inscreverem em seus eventos e que gera notificações. Escutador de evento remoto: objeto que pode receber notificações, assinante. Eventos remotos: objeto que é passado por valor para os escutadores de eventos remoto. Agentes intermediários: podem ser colocados entre um objeto de interesse e um assinante.

28 Estudo de caso: especificação de eventos distribuídos Jini
Eventos Jini são fornecidos através das seguintes interfaces e classes: RemoteEventListener: fornece um método chamado notify. Remote Event: esta classe tem variáveis de instância que contêm: Uma referência para o gerador de eventos no qual o evento ocorreu. Um identificador de evento, que especifica o tipo de evento nesse gerador de eventos. Um número de sequência, que se aplica aos eventos de um determinado tipo. Um objeto empacotado. EventGenerator: fornece um método chamado register. Os argumentos passados para este método são: Identificador de evento, que especifica o tipo de evento. Objeto empacotado a ser enviado de volta com cada notificação. Referência remota para um objeto escutador de evento. Período de arrendamento (leasing) que especifica a duração do arredondamento exigida pelo assinante.

29 Estudo de caso: especificação de eventos distribuídos Jini
Agentes intermediários: são interpostos entre um gerador de eventos e um assinante, podem executar diversas funções úteis.

30 Referências Sistemas Distribuícos: Conceitos e Projetos (Coulouris, Dollimore, Kindberg)


Carregar ppt "Objetos Distribuídos e invocação remota"

Apresentações semelhantes


Anúncios Google