UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos



Documentos relacionados
UNIVERSIDADE. Sistemas Distribuídos

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto Java RMI

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS


Adriano Reine Bueno Rafael Barros Silva

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

INE Sistemas Distribuídos

Invocação de Métodos Remotos

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

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

3 SCS: Sistema de Componentes de Software

Sistemas Distribuídos

Sistemas Distribuídos

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Web Services. (Introdução)

Sistemas Distribuídos

Sistemas Distribuídos RPC

Distributed Systems Principles and Paradigms

UNIVERSIDADE. Sistemas Distribuídos

Modelos de Arquiteturas. Prof. Andrêza Leite

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Serviços Web: Introdução

UNIVERSIDADE. Sistemas Distribuídos

Padrões de Projeto Implementados em Infraestrturas de Componentes

Sistemas Distribuídos Arquiteturas Middlewares

Comunicação. Parte II

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Sistemas Operacionais II

UFG - Instituto de Informática

INTRODUÇÃO. RPC x RMI

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos

Objetos Distribuídos. Nazareno Andrade

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

SISTEMAS DISTRIBUIDOS

Sistemas Operacionais

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Programação distribuída e paralela (C. Geyer) RPC 1

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Arquitetura de Sistemas Operativos

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUIDOS Ano Lectivo 2015/2016

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Introdução. Sistemas Operacionais. Introdução. Roteiro (1 / 2) Por que Máquinas Virtuais Existem? Roteiro (2 / 2)

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Comunicação em Sistemas Distribuídos

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

RMI: Uma Visão Conceitual

Sistemas Operacionais Processos e Threads

SISTEMAS DISTRIBUÍDOS

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Categorias de Padrões

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Sistemas Distribuídos

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos

Protocolo Request-Reply

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Processos e Threads (partes I e II)

Linguagem de Programação Introdução a Linguagem Java

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

SISTEMAS DISTRIBUÍDOS

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

ARQUITETURAS DE GERENCIAMENTO. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

Fundamentos de Banco de Dados

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

MODELO CLIENTE SERVIDOR

Sobre a apresentação (About(

Sistemas Distribuídos

Desenvolvimento Cliente-Servidor 1

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUÍDOS Ano Lectivo 2012/2013

3. Comunicação em Sistemas Distribuídos

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Transcrição:

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula 11: Middleware: Implementação de RMI (cont.), RPC, Modelo de Eventos, Exemplo com Java RMI

Chamadas dinâmicas Proxy dinâmico genérico, independente de interface utiliza uma definição de interface acessível dinamicamente para formatar as requisições útil quando não se conhece a interface em tempo de programação Skeleton dinâmico permite receber chamadas destinadas a qualquer tipo de objeto/interface útil na construção de servidores genéricos

Programas: Servidor e Cliente Servidor: código para instanciação das implementações de objetos dá origem ao processo servidor que hospeda os objetos remotos Cliente: código que faz uso de objetos remotos não necessariamente composto de objetos

Serviços de suporte Binder mapeia nomes para referências de objetos Ex.: serviço de nomes de CORBA, Registry Serviço de localização mapeia referências de objetos para as respectivas (prováveis) localizações físicas dos objetos suporte para migração de objetos e redirecionamento elimina a necessidade de guardar endereço IP e porta na referência de objeto

Serviços de suporte (2) Threads cada requisição é servida com o uso de uma thread separada no processo servidor evita o bloqueio do servidor e permite que o mesmo processe várias requisições simultaneamente Ativação de objetos objetos podem ser salvos em disco quando não utilizados (estado serializado + meta-dados) economia de recursos (ex.: memória) ao ser necessário, um objeto pode ser reativado um novo servente é criado para materializar o objeto

Serviços de suporte (3) Armazenamento persistente de objetos serialização do estado dos objetos gerenciamento do armazenamento dos objetos estratégia para definir quando um objeto deve ser desativado (ir para o estado passivo ) quais partes do estado do objeto devem ser salvas persistência transparente para o implementador do objeto e para os clientes

Coleta de lixo distribuída Idéia geral: Um objeto existe enquanto houver alguma referência para ele no sistema distribuído Quando a última referência for removida, o objeto pode ser destruído Mecanismo: Interceptação de referências de objetos remotos passadas como parâmetros ou retorno de RMI Contagem de referências (no processo servidor) Contador incrementado/decrementado como resultado da criação/destruição de proxies nos clientes

Implementação de RPC client process server process Request client program client stub procedure Communication module Reply server stub procedure Communication module dispatcher service procedure Qual a diferença notável em relação a RMI?

Exemplo de definição de interface em Sun XDR const MAX = 1000; typedef int FileIdentifier; typedef int FilePointer; typedef int Length; struct Data { int length; char buffer[max]; }; struct writeargs { FileIdentifier f; FilePointer position; Data data; }; struct readargs { FileIdentifier f; FilePointer position; Length length; }; program FILEREADWRITE { version VERSION { void WRITE(writeargs)=1; 1 Data READ(readargs)=2; 2 }=2; } = 9999;

Eventos e notificações (aka: modelo Publish-Subscribe) Modelo de comunicação assíncrona entre gerador de eventos (objetos de interesse) e consumidores de eventos (assinantes) Eventos são comunicados via notificações Completo desacoplamento entre geradores e consumidores de eventos um gerador de eventos não sabe quais consumidores recebem suas notificações Tipos de eventos tipos de dados envolvidos em um evento

Eventos e notificações: Exemplo Dealer s computer External source Dealer s computer Dealer Dealer Information provider Dealer s computer Dealer s computer Dealer Information provider Dealer External source

Arquitetura distribuída para notificação de eventos object of interest Event service subscriber 1. notification object of interest observer subscriber 2. notification notification object of interest observer subscriber 3. notification

Papéis dos componentes de uma arquitetura de eventos Objeto de interesse gerador de eventos de algum tipo especificado Evento ocorrência em um objeto de interesse Notificação objeto que contém informação sobre um evento, utilizado para comunicá-lo aos interessados Assinante objeto que registra interesse por notificações de certo tipo de evento

Papéis dos componentes de uma arquitetura de eventos (2) Objeto observador intermediador entre objetos de interesse e assinantes implementa a lógica de notificação encaminhamento, filtragem, correlação de eventos para detectar padrões, caixa postal de eventos seu uso é opcional Publicador torna tipos de eventos conhecidos do público pode ser o objeto observador ou o próprio objeto de interesse que gera o evento

Exemplo de arquitetura de eventos: Jini Distributed Event Specificatoin Permite que assinantes em uma JVM recebam notificações de eventos gerados por objetos localizados em outras JVMs Exercício fazer um resumo (2 páginas) da arquitetura de eventos de Jini CDK4, seção 5.4.2 Especificação oficial: http://java.sun.com/products/jini/2.1/doc/specs/html/event-spec.html Entrega: 18/04/06 Primeiro seminário (20min), com slides