Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.

Slides:



Advertisements
Apresentações semelhantes
Projeto e Implementação de Middleware
Advertisements

Sistemas Distribuídos Baseados em Objetos
Java Remote Method Invocation Java RMI
Sistemas distribuídos
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
RMI-IIOP.
Modelos de Comunicação em Sistemas Distribuídos
RPC Remote Procedure Call
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.
Comunicação Distribuída
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)
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.
Comunicação Inter-Processos
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
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.
Classes e objetos P. O. O. Prof. Grace.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Introdução à Programação Distribuída em Java
Middleware e Sistemas Distribuídos
JAVA: Conceitos Iniciais
Arquitetura CORBA e Objetos Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Chamada Remota de Procedimentos
Linguagem de Programação JAVA
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
Administração e Integração de Redes em Sistemas Distribuídos
Objetos Distribuídos Nazareno Andrade.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
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.
Afinal, o que é um SD? Ospróximospróximosslidesdeverãoserserexecutadosum servidor,executadosum servidor, continuamente para criarmos um cliente e ambos.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
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.
RPC and Web Service André Pereira.
RMI (Remote Method Invocation) Bruno Edson Plínio Tadeu
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Sistemas Distribuídos Prof. Marcus Rodrigues
Java – Remote Method Invocation (RMI)
Chamada Remota de Procedimentos. Remote Procedure Call O fluxo de informações em uma implementação de clientes e servidores por passagem de mensagem requer.
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
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
Sistemas Distribuídos Prof. Marcus Rodrigues
Protocolos de Comunicação e Passagem de Mensagens
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
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Transcrição da apresentação:

Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB

Organização Módulo 1: –Conceitos de Sistemas Distrubídos; Módulo 2: –Remote Procedure Call; Módulo 3: –Java RMI; Módulo 4: –CORBA;

Módulo 3 - Sumário Objetos Distribuídos; RMI – Remote Method Invocation –Arquitetura RMI; –Java RMI; –Estudo de Caso; –Atividade;

Remote Method Invocation Objetos Distribuídos Os objetos de um sistema estão separados; –Diferentes processos ou computadores; Objetos clientes invocam métodos de objetos servidores; Se comunicam por RMI;

Remote Method Invocation Objetos Distribuídos ● Objetos servidores podem ser clientes de outros objetos; ● Arquitetura de três camadas; ● Objetos somente são acessados por métodos; ● Controle de segurança; ● Controle de concorrência; ● Suporte a heterogeneidade;

Remote Method Invocation Objetos Distribuídos ● Objetos remotos aceitam chamadas remotas; ● Para realizar uma invocação é necessária uma referência ao objeto remoto; ● Um objeto remoto possui uma interface remota; ● Especifica os métodos remotos;

Remote Method Invocation Objetos Distribuídos invocation remote invocation remote local invocation A B C D E F

Remote Method Invocation Objetos Distribuídos ● Referência a Objetos Remotos: ● São passadas como parâmetro em RMI; ● Identificam o objeto no sistema distribuído; Internet addressport numbertimeobject number interface of remote object 32 bits

Remote Method Invocation Objetos Distribuídos interface remote m1 m2 m3 m4 m5 m6 Data implementation remoteobject { of methods

Remote Method Invocation Objetos Distribuídos Aspectos da comunicação RMI; Confiável x Não Confiável; Implementações: –Time Out; –Retransmissão; –Duplicatas; –Históricos;

Remote Method Invocation Objetos Distribuídos Maybe: –Não sabe se foi executado 1 ou 0 vezes; –Falha pode ocorrer antes ou depois da execução; At-least-once: –Se receber resposta, o método foi executado ao menos uma vez; –Retransmite requisições; –O método pode ser executado mais de uma vez; –Para operações idempotentes; At-most-once: –Se receber resposta, o método foi executado exatamente uma vez; –Se vier erro o método executou 0 ou 1 vez; –Para operações não idempotentes;

Remote Method Invocation Objetos Distribuídos - Semânticas Fault tolerance measures Invocation semantics Retransmit request message Duplicate filtering Re-execute procedure or retransmit reply No Yes Not applicable No Yes Not applicable Re-execute procedure Retransmit replyAt-most-once At-least-once Maybe

Remote Method Invocation Arquitetura RMI object A object B skeleton Request proxy for B Reply Communication Remote Remote reference Communication module reference module module for B’s class & dispatcher remote client server

Remote Method Invocation Arquitetura RMI

Módulo de Comunicação: –Executa protocolo Request-Reply; Módulo de Referência Remota: –Cria os objetos remotos na primeira vez que são acessados; –Contém uma tabela de referências remotas; –Uma entrada para cada objeto remoto e cada Proxy; –Converte referência do Request ou Reply em referência local a um Proxy ou objeto remoto;

Remote Method Invocation Arquitetura RMI RMI Proxy: –Prove transparência ao cliente; RMI Dispatcher: –Um para cada objeto remoto; –Recebe a requisição do módulo de comunicação; –MethodId escolhe o método correto; –Chama método do Skeleton;

Remote Method Invocation Arquitetura RMI RMI Skeleton: –Faz unMarshall e chama o método do objeto remoto; –Aguarda resultado da execução; –Faz Marshall para o Reply; –Send para o Proxy;

Remote Method Invocation Arquitetura RMI Geração Proxy, Dispatcher e Skeleton: –São gerados por um compilador de interface; –Java RMI compila interface Java; Binder: –Mapeia as referências dos objetos remotos; –Cliente obtém referência a um objeto pelo binder; –Objeto remoto registra seus serviços no binder; –Java: RMIregistry;

Remote Method Invocation Java RMI Faz invocação remota usando sintaxe local; Usa Interface Java; Objeto remoto implementa interface Remote que gera RemoteException; rmic e rmiregistry;

Remote Method Invocation Java RMI RMIregistry: –Roda no servidor de objetos; –Mantém tabela com referência aos objetos; –É acessado por métodos da classe Naming; –Objetos no formato: //NomeComputador:Porta/NomeObjeto;

Remote Method Invocation Java RMI Classe Naming: –void rebind (String name, Remote obj); –void bind (String name, Remote obj); –void unbind (String name, Remote obj); –Remote lookup(String name); –String [] list()

Remote Method Invocation Estudo de Caso Exemplo HelloWorld; Código fonte: –Interface: HelloWorld.java; –Servidor: HelloServer.java; –Cliente: HelloClient.java;

Remote Method Invocation Estudo de Caso Compilar Servidor: –javac RMIHello\HelloServer.java Gerar Stubs do servidor: –rmic RMIHello.HelloServer  Compilar Cliente:  javac RMIHello\HelloClient.java  Compilar ou copiar stubs no cliente

Remote Method Invocation Estudo de Caso Iniciar RMIRegistry;  Executar Servidor:  java RMIHello.HelloServer;  Executar Cliente:  java RMIHello.HelloClient localhost;

Remote Method Invocation Atividade Testar estudo de caso em diferentes computadores; Testar HelloGrafico.java; Passar e retornar parâmetro na mensagem; –Alterar interface; –Alterar servidor; –Alterar cliente;

Remote Method Invocation Atividade – Banco Servidor de Banco: –Saque, depósito, transferência; Desenvolver um cliente para o servidor; Baixar pacote RMIBanco.rar; Interface: public int CriaConta(String nome, double saldo) public boolean Deposito(int contaID, double valor) public boolean Saque(int contaID, double valor) public boolean Transferencia(int contaORI, int contaDES, double valor) public double Saldo(int contaID) throws RemoteException;

Remote Method Invocation Atividade – Calculadora Remota Pacote: RMICalc; Fontes: –RMICalculator.java; –RMICalcServer.java; –RMICalcClient.java; Interface: public int soma(int a, int b) throws RemoteException; public int subtracao(int a, int b) throws RemoteException; public String GetServerName() throws RemoteException;

Remote Method Invocation Atividade – Extra Definir um tema; Se organizar em duplas de máquinas; Um lado desenvolve o cliente; Outro lado desenvolve o servidor; Estabelecer a comunicação;