PADI 2014/15. Aula 3.Net Remoting

Documentos relacionados
Sistemas Distribuídos 2013/14

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

Métodos em Objectos Remotos

Métodos em Objectos Remotos

Paradigmas de Computação Paralela

Middleware de Aplicações Paralelas/Distribuídas

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Middleware de Aplicações Paralelas/Distribuídas

Invocação de Métodos em Objectos Remotos

Invocação de Métodos em Objectos Remotos. Invocação de Métodos em Objectos Remotos. Invocação de Objectos Remotos

Sistemas Operacionais II

Linguagem de Programação II Implementação

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

Objetos Distribuídos. Nazareno Andrade

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Invocação de Métodos em Objectos Remotos

Palavras Reservadas da Linguagem Java

Programação Concorrente/Paralela em Java

Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

FILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Sistemas Distribuídos

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Sistemas Distribuídos Aula 10

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

4 Conceito de Herança

Programação por Objectos. Java

Resumo das Propriedades de UDP e de TCP

Programação com Objectos. 2º Teste 2015/2016 1º Semestre

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

JavaTM RMI - Remote Method Invocation

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Comunicação. capítulo

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

1 Introdução e Conceitos básicos

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

Threads. Leonardo Gresta Paulino Murta

Sistemas Distribuídos

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução

Atribuições: Valores, Ponteiros e Referências

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

JAVA. Professor: Bruno Toledo

RMI e RPC. RPC significou um passo muito grande em direcção à

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

SISTEMAS DISTRIBUÍDOS

Design Patterns (Factory Method, Prototype, Singleton)

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Análise e Projeto Orientados por Objetos

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Aspectos para Construção de Aplicações Distribuídas

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Universidade Estadual de Santa Cruz

Linguagem de Programação II Implementação

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Relacionamentos entre objetos

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Persistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

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

Comunicação entre Processos

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Sistemas Operacionais I Parte V Operações nos Processos. Roteiro. Prof. Gregorio Perez Introdução. Operações nos Processo

Estrutura de Dados Listas

Projecto hipotético para resolvermos hoje

Objetos Dublês. Mariana Bravo AgilCoop Cursos de Verão 2009

PROGRAMAÇÃO JAVA. Parte 3

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Principais conceitos de CORBA

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Arquitecturas Alternativas. Java Virtual Machine

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Programação por Objectos. Java

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

//conteúdo do arquivo pacote.h

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Instituto Superior de Engenharia de Lisboa

Construtores e Especificadores de Acesso

Linguagem de Programação III

Programação com Sockets

Herança e Polimorfismo

Classes e Objetos. Sintaxe de classe em Java

Padrões Fábrica. Simple Factory Factory Method

Plataforma para Agentes

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

Transcrição:

PADI 2014/15 Aula 3.Net Remoting

Sumário 1..Net Remoting

.NET Remoting Comunicação entre aplicações Permite invocar métodos em objectos remotos Qualquer objecto pode ser usado remotamente Objectos remotos devem derivar de MarshalByRefObject

Canais A comunicação entre dois processos distintos é realizada pelo.net Remoting através de canais. Um canal é um objecto que, através de um stream de dados: Empacota a informação de acordo com um tipo de protocolo Envia esse pacote a outro computador. Esse canal pode ser unidirecional ou bidirecional Dois tipos: TcpChannel (que envia os dados por TCP em formato binário) HttpChannel (que utiliza o protocolo HTTP em formato XML)

Proxies Proxies são os objectos locais que são apontados pelas referências remotas. Quando o cliente recebe uma referência de um objecto remoto ele está efectivamente a receber uma referência a um objecto proxy local criado automaticamente pelo.net Remoting. Esse proxy é encarregue de passar as chamadas dos métodos para o servidor.

Utilização de Objectos Remotos Requer a respectiva activação Tipos de activação: Cliente O objecto no servidor é criado quando o cliente cria a instância do objecto remoto (com new); Servidor O objecto no servidor é criado quando for requisitado. Ele não é criado imediatamente quando o cliente cria a instância do objecto remoto (com new), mas apenas quando o cliente fizer a primeira invocação de método ao proxy.

Activação pelo Servidor Na activação controlada pelo servidor, existem dois modos de activação: Singleton Apenas uma instância em cada instante Requer sincronização no acesso a estado partilhado SingleCall Uma nova instância é criada para cada pedido. Após a execução de uma chamada, a próxima chamada será servida por outra instância.

Tempo de Vida dos Objectos Tempo de vida dos objectos Singleton determinado por sistema de leases. Ao expirar um lease, este deve ser renovado, caso contrário a memória ocupada pelo objecto é recuperada pelo garbage collector. A utilização de leases é uma alternativa mais viável à contagem de referência Uso de objectos previamente instanciados Tem em conta existência de referências locais

Resumo das Opções Canais TcpChannel vs. HttpChannel Activação Cliente vs. Servidor, Singleton vs. Single Call Tempo de vida Single Call vs. Leases MarshallByRef vs. MarshallByValue MBV: Objectos serializáveis, são copiados para o cliente MBR: Cliente obtém proxy que encaminha chamadas

Exemplo: Servidor class Server { static void Main() { TcpChannel channel = new TcpChannel(8086); ChannelServices.RegisterChannel(channel,false); RemotingConfiguration.RegisterWellKnownServiceType( typeof(myremoteobject), MyRemoteObjectName", WellKnownObjectMode.Singleton); System.Console.WriteLine("<enter> para sair..."); System.Console.ReadLine(); public class MyRemoteObject : MarshalByRefObject { public string MetodoOla() { return ola! ;

Exemplo: Cliente class Client { static void Main() { TcpChannel channel = new TcpChannel(); ChannelServices.RegisterChannel(channel,false); MyRemoteObject obj = (MyRemoteObject) Activator.GetObject( typeof(myremoteobject), "tcp://localhost:8086/myremoteobjectname"); if (obj == null) System.Console.WriteLine("Could not locate server"); else Console.WriteLine(obj.MetodoOla()); Nota: permita invocação remota directamente de instancias de classes e nao exclusivamente atraves de um interface remoto como em Java. Pode acederse directamente a campos do objecto remoto. Em Java é sempre obrigatorio esconder a implementacao do servidor.

Exemplo: Servidor (objecto pré-existente) class Server { static void Main() { TcpChannel channel = new TcpChannel(8086); ChannelServices.RegisterChannel(channel, false); MyRemoteObject mo = new MyRemoteObject(); RemotingServices.Marshal(mo, MyRemoteObjectName, typeof(myremoteobject) ); System.Console.WriteLine("<enter> para sair..."); System.Console.ReadLine(); public class MyRemoteObject : MarshalByRefObject { public string MetodoOla() { return ola! ;