Sistemas Distribuídos Prof. Marcus Rodrigues

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos Baseados em Objetos
Advertisements

Java Remote Method Invocation Java RMI
Sistemas distribuídos
1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000.
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
RMI-IIOP.
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
Repositório de Interfaces em CORBA
Comunicação Distribuída
Prof. João Bosco M. Sobral
Objetos Distribuídos e Invocação Remota
Desenvolvimento de Aplicações Distribuídas
Sistemas Distribuídos CORBA
Sistemas Distribuídos Comunicação Objetos Distribuídos e RMI - Parte 2 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, Capítulo 2.
Invocação de Métodos Remotos RMI
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
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 Entre Objetos Distribuídos
1 Serviços CORBA. Serviços CORBA. Funcionalidades que podem ser utilizadas por objetos distribuídos. Naming Service (Serviço de Nomes) Event and Notification.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Comunicação Inter-Processos
Objetos Distribuídos Padrão CORBA
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Middleware e Sistemas Distribuídos
Arquitetura CORBA e Objetos Distribuídos
Chamada Remota de Procedimentos
You don't design your applications to cajo, it simply drops-in! ISEL – DEETC – SD.
Desenvolvimento de Aplicações CORBA
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Remote Method Invocation RMI
Concorrência e Java RMI
Objetos Distribuídos e invocação remota
Sistemas Distribuídos
Mole: Um Sistema de Agentes Móveis Baseado em Java Curso de Ciência da Computação Departamento de Informática Disciplina de Tópicos Especiais em Computação.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
Integrações de Aplicações Empresariais Prof. Paulo Fernando da Silva UNC – Universidade do Contestado Pós-Graduação em Sistemas de Informação Aplicados.
Java RMI João Gabriel (jggxm).
RMI - JAVA.
Sistemas Distribuídos
Comunicação.
Sistemas Distribuídos Prof. Marcus Rodrigues
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
RMI (Remote Method Invocation) Bruno Edson Plínio Tadeu
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Construtores e Destrutores
Sistemas Distribuídos Prof. Marcus Rodrigues
Sistemas Distribuídos
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
Java – Remote Method Invocation (RMI)
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
RMI Remote Method Invocation
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos Prof. Eriko Werbet
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Programação em Java RMI - Remote Method Invocation Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Transcrição da apresentação:

Sistemas Distribuídos Prof. Marcus Rodrigues

Comunicação em Sistemas Distribuídos Capítulo 2 – Aula 8

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Comunicação em Sistemas Distribuídos Material baseado no livro Distributed Systems: Principles and Paradigms Prentice Hall Copyright © Andrew S. Tanembaum, Maarten van Steen, 2001

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Invocação de Método Remoto Uso de vantagens do paradigma de orientação à objetos em comunicação distribuída Encapsulamento! RPC aplicada a objetos Invocação de Método Remoto (RMI – Remote Method Invocation) Invocação de um método entre objetos localizados em diferentes processos, estejam estes na mesma máquina ou não.

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Objetos Distribuídos (1) Estado Método... e Interface Um objeto pode implementar múltiplas interfaces. Da mesma forma que, dada uma definição de interface, podem haver vários objetos que oferecem uma implementação para essa interface.

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Objetos Distribuídos (2) 2-16

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Objetos Distribuídos (3) “O estado de objetos distribuído não é distribuído” Apenas as interfaces implementadas pelo objeto são disponibilizadas em outras máquinas Objetos remotos Objetos persistentes x Objetos transientes

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Associando um cliente a um objeto (1) Referência a objeto remoto outros objetos podem invocar métodos de um objeto remoto somente se tiverem acesso a sua referência de objeto remoto identificador único do objeto no sistema pode ser utilizado como parâmetro ou resultado de uma invocação de método remoto Interface remota: todo objeto remoto possui uma interface remota que especifica qual dos métodos pode ser invocado remotamente implementada pela classe do objeto remoto. Associação de objetos (binding) Binding implícito Binding explícito

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Associando um cliente a um objeto (2) a) Um exemplo com binding implícito usando apenas referência global b) Um exemplo com binding explícito usando referências locais e globais Distr_object* obj_ref;//Declare a systemwide object reference obj_ref = …;// Initialize the reference to a distributed object obj_ref-> do_something();// Implicitly bind and invoke a method (a) Distr_object objPref;//Declare a systemwide object reference Local_object* obj_ptr;//Declare a pointer to local objects obj_ref = …;//Initialize the reference to a distributed object obj_ptr = bind(obj_ref);//Explicitly bind and obtain a pointer to the local proxy obj_ptr -> do_something();//Invoke a method on the local proxy (b)

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Invocação estática x Invocação dinâmica (1) RMI x RPC? Referência de objeto Suporte a RMI Invocação estática Uso de linguagens de definição de interfaces (IDL) para especificação da interface do objeto Invocação dinâmica Geração automática do stub usando alguma linguagem orientada a objetos A invocação do método é composta em tempo de execução A aplicação seleciona em tempo de execução qual o método será invocado no objeto remoto

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Invocação estática x Invocação dinâmica (2) Suporte a RMI Invocação dinâmica x Invocação estática Exemplo: invoke(objeto, metodo, parametros_de_entrada, parametros_de_saida); append(int) fobject Invocação estática fobject.append(int); Invocação dinâmica invoke(fobject, id(append), int); Atributos:...

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Passagem de parâmetros Passando um objeto por referência ou por valor 2-18

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Considerações de projeto Transparência A latência de uma chamada local é bastante menor que de uma chamada remota. Chamadas remotas são mais vulneráveis a falhas do que chamadas locais. As invocações de métodos remotos são iguais as invocações aos métodos locais, porém as diferenças entre os objetos remotos e locais devem estar expressos nas suas interfaces. (e.g. as classes de objetos remotos em Java implementam a interface Remote)

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Modelo de objetos distribuídos DCE a) Objetos dinâmicos distribuídos no DCE b) Objetos nomeados distribuídos

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Java RMI Utiliza mesma sintaxe para invocação de métodos de objetos locais ou remotos Todo objeto remoto implementa uma interface remota: extende a interface java.rmi.Remote public interface MyRemoteClass extends java.rmi.Remote todos os métodos da interface devem prever a exceção java.rmi.RemoteException (cláusula throws) além das exceções próprias da aplicação

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Java RMI – IDL sintaxe e semântica de Java desvantagem: não suporta outras linguagens!

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Exemplo - objeto remoto

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Exemplo - compilação Compilando a implementação do objeto remoto javac CalculatorImpl.java Geração dos stubs rmic CalculatorImpl gera os arquivos CalculatorImpl_Skel.class CalculatorImpl_Stub.class

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Exemplo - servidor

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Exemplo - cliente

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Exemplo - execução Compilando servidor e cliente e executando a aplicação

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Java RMI Passagem de parâmetros e resultados objetos remotos: referência do objeto remoto objetos não-remotos: cópia do objeto (classe deve estender a classe Serializable) Carga de classes carregamento automático de classes de objetos desconhecidos na JVM flexibilidade (e.g. extensão de funcionalidades de um módulo) servidor deve criar RMISecurityManager para segurança

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Java RMI rmiregistry (Binder) deve ser executado em toda máquina que hospeda objetos remotos mantém uma tabela para mapeamento da representação textual dos objetos aos objetos localizados na máquina representação textual rmi: //computerName:port/objectName acessado pelos métodos da classe Naming

Prof. Marcus Rodrigues Sistemas Distribuídos – Capítulo 2 – Invocação de Método Remoto Desenvolvimento usando Java RMI Passos Projetar e implementar os componentes da aplicação distribuída definição das interfaces remotas implementação dos objetos remotos implementação do servidor e clientes Compilação dos códigos-fontes e geração dos stubs geração das classes do servidor e cliente (javac) criação dos stubs (rmic) Iniciar a aplicação iniciar o binder para guardar os objetos remotos (rmiregistry) iniciar o servidor e cliente(s)