Remoting 3 a aula prática de PADI 2004/05 Rodrigo Miragaia.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

I/O Carlos Bazilio Depto de Ciência e Tecnologia
Sistemas distribuídos
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
Métodos, Parâmetros, Argumentos e Contratos
Comunicação entre processos distribuídos
Redes I Os Protocolos Prof. Dr. Amine BERQIA
Persistência de objetos em arquivo texto usando Java
Comunicação Distribuída
Singleton.
Invocação de Métodos Remotos RMI
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Inter-Processos
Wagner Santos C. de Jesus
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
Área de Desenvolvimento de Sistemas
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Programa Chat Programação com RMI
A linguagem C#.
Classes & Objectos em JAVA5
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Sistemas Distribuídos
Programação Orientada a Objetos com Java
C# Herança Sharp Shooters .NET Universidade Federal de Pernambuco Centro de Informática Recife, 23/09/2002 Autor: Marden Menezes Costa.
C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 23/09/2002 Autor: Marden Menezes Costa Propriedades.
JAVA Linguagem Ambiente de Desenvolvimento
Tópicos de Sistemas de Informação A
Streams –input e output
Paradigmas da Programação – Semestre 2 – Aula 2 Introdução ao VS.Net Professores: Fábio de Paula Santos Eduardo Mantovani.
Chamada Remota de Procedimentos
Desenvolvimento de Aplicações CORBA
Remote Method Invocation RMI
Objetos Distribuídos Nazareno Andrade.
1 Introdução a C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 15/08/2002 Autor: Marden Menezes Costa.
Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
Infra-Estrutura de Comunicação (IF678) Aula Prática CIn/UFPE Rafael Lucena Roberta Mota Rubens Lopes Rodolfo Santos João Pedro Cordeiro.
SessionBeans Marco Antonio Arquiteto de Software.
Linguagem de Programação C#
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
Bruno Inojosa MCP.NET Framework.NET com C#. Aula V  Tópicos abordados:  Desenvolvendo para internet (Parte III) Gerenciamento de Estados User Controls.
Estrutura de Controle em JAVA
Troca de Mensagens Programação concorrente
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Hugo Simões Original por: Flávio.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Fundamentos da Linguagem C#
Modelo OSI Disciplina: Comunicação de Dados Ricardo Bento 12ºL nº11.
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Construtores e Destrutores
Exercícios Laboratório. Inicio Escreva (“Olá Mundo!”) Fim static void main (string[] args) { Console.WriteLine (“Olá Mundo!”); }
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
Servidor de Acesso remoto e VPN no Windows Server 2003
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Laboratório de Computação Aula 03 Prof. Fábio Dias
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Remoting 3 a aula prática de PADI 2004/05 Rodrigo Miragaia

.NET Remoting Comunicação entre aplicações –Permite invocar métodos em objectos remotos –Qualquer objecto pode ser usado remotamente derivando-o 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

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 ser { static void Main() { TcpChannel chan1 = new TcpChannel(8086); ChannelServices.RegisterChannel(chan1); RemotingConfiguration.RegisterWellKnownServiceType(typeof(c_ola), Ola", WellKnownObjectMode.Singleton); System.Console.WriteLine(" para sair..."); System.Console.ReadLine(); } public class c_ola : MarshalByRefObject { public string MetodoOla() { return ola!; }

Exemplo: Cliente class cl { static void Main() { TcpChannel chan = new TcpChannel(); ChannelServices.RegisterChannel(chan); c_ola obj = (c_ola) Activator.GetObject(typeof(c_ola), "tcp://localhost:8086/Ola"); if (obj == null) System.Console.WriteLine("Could not locate server"); else Console.WriteLine(obj.MetodoOla()); }

Exercício Fazer um chat baseado em Remoting. Aplicação consola servidora, chatServer, que permite registar clientes e enviar mensagens Aplicação windows cliente, chatClient, que permite enviar mensagens e receber a conversa que está a decorrer. Interface do cliente: –Text box com o porto, e botao para ligar ao chat –Text box com a mensagem e botao para enviar –Text box com o texto da conversa Nota: A string de mudança de linha em WinForms é "\r\n" e não somente "\n".