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

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

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

Apresentações semelhantes


Apresentação em tema: "Objetos Distribuídos e invocação remota Kades Pinto 16628 Pedro Vinicius Machado 16640 Matheus Dobrowolsky 19308."— Transcrição da apresentação:

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

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 por colapso, quando o servidor que contem o objeto falha.  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 Kades Pinto 16628 Pedro Vinicius Machado 16640 Matheus Dobrowolsky 19308."

Apresentações semelhantes


Anúncios Google