Java OO Middleware - JEE / EJB / RMI
-
Upload
yitzhak-stone -
Category
Software
-
view
175 -
download
0
Transcript of Java OO Middleware - JEE / EJB / RMI
![Page 1: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/1.jpg)
Object oriented / Component Middleware
(Java)
Mateus FernandoRobson PiereTiago Higino
Vinicius PoncianoYitzhak Stone
PUC Minas - São GabrielSistemas de Informação - 7º Período
Desenvolvimento de Aplicações Distribuídas
![Page 2: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/2.jpg)
Roteiro
1. JEE ⇒ Java Enterprise Edition
2. JB ⇒ JavaBeans
3. EJB ⇒ Enterprise JavaBeans
4. RMI ⇒ Remote Method Invocation
5. Exemplo(s) prático(s)
a. RMI
![Page 3: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/3.jpg)
JEE: Java Enterprise Edition Java Enterprise Edition
![Page 4: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/4.jpg)
● Java EE ou Java Enterpise Edition é uma plataforma de desenvolvimento construída em cima da plataforma Java SE (Standard Edition).
● O foco dela é fornecer um ambiente robusto:○ Para desenvolvimento e execução de aplicações;○ Em grande escala;○ Multi camadas;○ Escaláveis;○ Confiáveis○ Seguras.
O que é JEE ?
![Page 5: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/5.jpg)
http://docs.oracle.com/javaee/6/tutorial/doc/
De 1999 (JPE) Até 2016 (JEE 8)
Evolução do JEE
![Page 6: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/6.jpg)
● Servlets - São componentes Java executados no servidor, para gerar conteúdo dinâmico na Web.
● Java Server Pages (JSP) - Servlets mais robustos e de fácil desenvovilmento.
● Java Server Faces (JSF) - Framework web com o padrão MVC para simplificar o desenvolvimento de UI.
● Java Persistence API (JPA) - APIde mapeamento objeto relacional, sendo utilizada para a persistência dos dados.
● Enterprise Java Beans (EJB) - Componentes que executam em um container de aplicação no lado do servidor.
Principais Componentes do JEE
![Page 7: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/7.jpg)
● Para fornecer a comunicação entre componentes, APIs, persistência, serviços entre outros, o JEE oferece os containeres para abrigá-los.
● Os containeres são implementados pelos fornecedores de servidor de aplicativos JEE, que disponibilizam um container para cada tipo de componente como: Applet, cliente de aplicativo, web e EJBs.
Como JEE oferece os serviços?
![Page 8: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/8.jpg)
● Para cada tipo de componete da plataforma é fornecido um conteiner e eles amarzenam os componetes e oferecem os seguintes serviços:○ Gerenciamento ciclo de vida;○ Segurança;○ Implementação;○ Comunicação com outros componentes;○ Ambiente com tempo de execução compatível.
Conteiners JEE
![Page 9: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/9.jpg)
● Conectividade: É realizada pelos objetos distribuídos através de RMI
(Remote Method Invocation) e COBRA. Porém, todo o ciclo da conectividade
deve ser fornecido através dos protocolos HTTP e HTTPS.
● Serviços de Diretório: JNDI (Java Naming and Directory Interfaces), é uma
API que acessa serviço de diretórios, sendo que cada serviço deve fornecer
um provedor de serviços (Service Provider). Os servidores JEE são
obrigados a possuir esse tipo de serviço.
● JDBC: API JDBC (Java Database Connection), que fornece conexão aos
bancos de dados.
● JCA (Java Connector Architecture): Suporte à conexão de sistemas
legados e e integração de servidores legados.
Serviços oferecidos nos containers JEE
![Page 10: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/10.jpg)
● Segurança: autenticação e autorização dos usuários através de
APIs como JAAS (Java Authentication and Authorization Service).
● XML: Operações e suporte a XML (eXtensible Markup Language.
● Transações: O conteiner é responsavel pela transação, mas pode-se
utilizar de API’s, como o JTA (Java Transaction API).
○ JTA (Java Transaction API): É uma API que permite trabalhar
com transações independentes do gerenciador.
● E-mail: Utiliza o JMS (Java Message Service), para troca de
mensagens. utilizando vários protocolos como: POP, SMTP e IMAP.
Serviços oferecidos nos containers JEE
![Page 11: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/11.jpg)
● JMS (Java Message Service): É uma API que oferece o mecanismo
de criar, ler e armazenar mensagens. A JMS suporta dois tipos de
trocas de mensagem:
○ Ponto a ponto: Esse tipo acontece quando um aplicativo envia
uma mensagem para uma fila (destino preparado para receber as
mensagens) e após isso, um aplicativo coleta essa mensagem.
○ Publicação assinatura: Esse modelo exige que os aplicativos
clientes inscrevam-se para receber as informações sobre o
assunto desejado.
Serviços oferecidos nos containers JEE
![Page 12: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/12.jpg)
Camadas JEE
● O JEE possui três camadas:
○ Camada de Negócio;
■ Encapsula os EJB’s, ou seja a lógica do negócio.
○ Camadas de Apresentação;
■ Contém as telas que serão exibidas para o usuário e faz a
comunicação com a lógica do negócio.
○ Camada Cliente
■ Essa camada suporta clientes web e portáteis que se comunicam
com o protocolo HTTP, porém outros conseguem usar SOAP e
outros tipos.
![Page 13: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/13.jpg)
http://docs.oracle.com/javaee/6/tutorial/doc/
Exemplo de Arquitetura JEE
![Page 14: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/14.jpg)
● Plataforma Robusta de Desenvolvimento, bem integrada e já
consolidada no mercado. Além disso faz-se uso de toda a
força da linguagem Java, além de proporcionar um ambiente
que contém várias API’s que facilitam a integração dos
componentes do sistema com outros sistemas.
● Independência de plataforma (Sistema Operacional e
Hardware).
Prós e Contras
![Page 15: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/15.jpg)
● Utiliza apenas a linguagem Java para a escrita de códigos, pois a JVM só roda liguagem Java.
● Desempenho prejudicado por executar apenas sobre máquina virtual.
● Necessita de um time de desenvolvimento experiente.
Prós e Contras
![Page 16: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/16.jpg)
JavaBeansModelo de Componente de Software
![Page 17: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/17.jpg)
O que é JavaBeans?
● Definição
● Como funciona?
● Caracteristicas:
○ É uma classe
○ Reutilizável
○ Facilita a programação visual
○ descrição auto-contida
○ Objeto serializado
![Page 18: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/18.jpg)
JavaBeans e suas convenções
● Nomenclatura de métodos
● Construtores
● Comportamento
![Page 19: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/19.jpg)
Para quê servem os JavaBeans?
● São implementação de uma interface
● Blocos de componentes GUI
● Gerador de gráficos, relatórios e planilhas
● Calendários, relógios e agendas
● Display de Dados
● Drag & Drop
● java.io.Serializable persiste a restauração de um estado
![Page 20: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/20.jpg)
Exemplo de um Bean
![Page 21: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/21.jpg)
Propriedades● Simples: propriedades podem ser computadas;
● Indexadas: contém uma coleção de valores;
● Vinculadas: Usadas quando vários objetos precisam ser notificados de mudanças em um componente;
● Restritas: Uma mudança no valor da propriedade pode ser vetada (java.beans.PropertyVetoException);
![Page 22: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/22.jpg)
EJB: Enterprise Java BeansComponente JEE
![Page 23: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/23.jpg)
O que é EJB ?
● Enterprise JavaBeans (EJB) é um componente da plataforma JEE que roda em um container de um servidor de aplicação.
● Seu principal objetivo consiste em fornecer um desenvolvimento rápido e simplificado de aplicações Java, com base em componentes distribuídos, transacionais, seguros e portáveis.
![Page 24: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/24.jpg)
Características
● Transações: A arquitetura EJB define um suporte sofisticado para utilização de transações. Esse suporte é integrado com a Java Transaction API (JTA) e oferece inclusive a possibilidade de realizar transações distribuídas.
● Segurança: Suporte para realizar autenticação e autorização de forma transparente. Os desenvolvedores das aplicações não precisam implementar a lógica de segurança pois ela faz parte da arquitetura EJB.
● Remotabilidade: Aplicações EJB podem ser acessadas remotamente através de diversos protocolos de comunicação. Consequentemente, é possível desenvolver aplicações clientes de diversos tipos. Por exemplo, aplicações EJB podem ser como Web Services.
![Page 25: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/25.jpg)
Características● Multithreading e Concorrência: A arquitetura EJB permite que as
aplicações sejam acessados por múltiplos usuários simultaneamente de maneira controlada para evitar problemas de concorrência.
● Persistência: Facilidades para utilizar os serviços dos provedores de persistência que seguem a especificação JPA.
● Gerenciamento de Objetos: Mecanismos de injeção de dependências e controle de ciclo de vida são oferecidos aos objetos de uma aplicação EJB. O mecanismo de controle de ciclo de vida pode garantir a escalabilidade de uma aplicação.
● Integração: A arquitetura EJB é fortemente integrada com os componentes da plataforma Java EE. Podemos, por exemplo, facilmente integrar os recursos do JSF em uma aplicação EJB.
![Page 26: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/26.jpg)
URL: http://www.thejavageek.com/wp-content/uploads/2015/01/application-architecture.png Fonte: http://www.thejavageek.com/2015/01/09/creating-jsf-ejb-jpa-application-using-eclipse-wildfly/
Arquitetura de uma Aplicação JSF / EJB / JPA
![Page 27: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/27.jpg)
História/Versões do EJB● EJB 1.0 24/03/1998
● EJB 1.1 versão final 17/12/1999
● EJB 2.0 versão final 22/08/2001 (JSR 19)
● EJB 2.1 versão final 24/11/2003 (JSR 153)
● EJB 3.0 versão final 11/05/2006 (JSR 220)
● EJB 3.1 versão final 10/12/2009 (JSR 318)
● EJB 3.2 versão final 28/05/2013 (JSR 345)
![Page 28: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/28.jpg)
Tipos de Beans do EJB● Entity Beans (removidos na versão 3)
● Session Beans
○ Stateless Session Beans
○ Stateful Session Beans
○ Singleton Session Beans (versão 3.1)
● Message Driven Beans
![Page 29: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/29.jpg)
Interface
Fonte: Elaborador pelos Autores
![Page 30: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/30.jpg)
Servidor
![Page 31: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/31.jpg)
Cliente
![Page 32: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/32.jpg)
URL: http://images.devshed.com/ds/stories/Teach%20Yourself%20J2EE/04fig01.jpgFonte: http://www.devshed.com/c/a/java/introduction-to-enterprise-javabeans/
![Page 33: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/33.jpg)
RMI: Remote Method InvocationChamada de Métodos Remotos
![Page 34: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/34.jpg)
Introdução ⇒ Visão geral● Sun → JDK 1.1 → 1998
● Paradigma: POO e computação distribuída
○ Abstração, Encapsulamento, Herança e Polimorfismo
○ “Coleção de computadores independentes que se apresenta ao
usuário como um sistema único e consistente”
● Modelo Cliente / Servidor
● Síncrono (“por natureza”)
● Java
○ Plataforma JEE
○ Integração com outras linguagens
■ RMI / IIOP → CORBA
![Page 35: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/35.jpg)
Introdução ⇒ Motivação
● Programação de socket
○ Baixo nível (rede / transporte)
● Problemas com o RPC
○ Necessidade de aprender uma linguagem IDL
○ Suporte limitado para tipos de dados
● Fortalecimento das linguagens Orientadas a Objetos
● Foco na aplicação → Alto nível
![Page 36: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/36.jpg)
Fonte: Distributed Objects Programming Using Java RMI. http://condor.depaul.edu/ichu/ds420/lecture/1002/rmi%3E1.doc
TCP/IP ⇔ RMI
![Page 37: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/37.jpg)
Fonte: http://neoramon.blogspot.com.br/2009/11/tcp-udp-e-rmi-minhas-observacoes-sobre.html
Desempenho: RMI vs. TCP / UDP
![Page 38: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/38.jpg)
Modelo RMI (1)
● O servidor define objetos que o cliente pode usar
remotamente.
● Os clientes podem invocar métodos nesse objeto remoto
como se ele estivesse executando localmente.
● O RMI esconde o mecanismo de transporte (via rede) de
argumentos dos métodos e valores de retorno.
![Page 39: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/39.jpg)
Modelo RMI (2)
● Transparências:
○ Acesso: clientes com implementações diferentes se
conectam ao servidor da mesma maneira.
○ Localização: o cliente não precisa saber onde está o
servidor que hospeda o objeto remoto.
![Page 40: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/40.jpg)
Arquitetura ⇒ Camadas
● Stub / Skeleton: interface entre cliente e objetos remotos
● Referência remota: registro de objetos remotos para
pesquisa na rede
○ rmiregistry
● Transporte: protocolo de rede (comunicação
cliente/servidor)
○ JRMP (Java Remote Method Protocol) → TCP/IP
![Page 41: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/41.jpg)
Arquitetura
Fonte: http://www.argonavis.com.br/cursos/java/j100/java_20.pdf
![Page 42: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/42.jpg)
CORBA ⇔ RMI
Fonte: http://www.argonavis.com.br/cursos/java/j100/java_20.pdf
![Page 43: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/43.jpg)
Tópicos Adicionais
● Serviço de ativação RMI
○ rmid
● Segurança
○ SSL → Java Secure Socket Extension (JSSE)
○ Políticas de segurança (RMISecurityManager)
![Page 44: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/44.jpg)
FARLEY, Jim; et.al. Java Enterprise in a Nutshell: A Desktop Quick Reference
Arquitetura RMI em Tempo de Execução
![Page 45: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/45.jpg)
Anatomia da URL de um objeto remoto RMI
Em nosso exemplo:
rmi : // 192.168.0.1 : 1099 / CalculatorService
FARLEY, Jim; et.al. Java Enterprise in a Nutshell: A Desktop Quick Reference
![Page 46: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/46.jpg)
Prós e Contras
● Multi-plataforma (que suportam a VM Java)
● Introduz novas implementações em JVMs remotas
● “Distributed Garbage Collector”
![Page 47: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/47.jpg)
Prós e Contras● Só “roda” em plataformas com suporte a Java.
● Falhas de segurança na execução de métodos remotos.
● Limitações de funcionalidade forçadas pelas restrições de segurança
● Só opera em sistemas escritos em Java. Não há suporte para
sistemas legados (C++, Ada, Cobol, Fortram, ...)
● Limitado ao TCP/IP
![Page 48: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/48.jpg)
Exemplo Prático:RMI
Adaptado de http://www.inf.ufsc.br/~bosco/ensino/ine5645/CalculadoraRMI.txt
![Page 49: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/49.jpg)
Exemplo Prático● Definir uma interface que declara os métodos remotos
● O programa servidor:
○ deve incluir uma classe que implementa essa interface.
○ deve criar um objeto remoto e registrá-lo no serviço de
nomes (rmi registry)
● O programa cliente:
○ deve perguntar ao serviço de nomes pela referência do
objeto remoto.
○ deve invocar o método sobre o objeto remoto.
![Page 50: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/50.jpg)
Interface
![Page 51: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/51.jpg)
Exemplo Prático● Definir uma interface que declara os métodos remotos
● O programa servidor:
○ deve incluir uma classe que implementa essa interface.
○ deve criar um objeto remoto e registrá-lo no serviço de
nomes (rmi registry)
● O programa cliente:
○ deve perguntar ao serviço de nomes pela referência do
objeto remoto.
○ deve invocar o método sobre o objeto remoto.
![Page 52: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/52.jpg)
Implementação da Interface
![Page 53: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/53.jpg)
Exemplo Prático● Definir uma interface que declara os métodos remotos
● O programa servidor:
○ deve incluir uma classe que implementa essa interface.
○ deve criar um objeto remoto e registrá-lo no serviço
de nomes (rmi registry)
● O programa cliente:
○ deve perguntar ao serviço de nomes pela referência do
objeto remoto.
○ deve invocar o método sobre o objeto remoto.
![Page 54: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/54.jpg)
Servidor
![Page 55: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/55.jpg)
Exemplo Prático● Definir uma interface que declara os métodos remotos
● O programa servidor:
○ deve incluir uma classe que implementa essa interface.
○ deve criar um objeto remoto e registrá-lo no serviço de
nomes (rmi registry)
● O programa cliente:
○ deve perguntar ao serviço de nomes pela referência
do objeto remoto.
○ deve invocar o método sobre o objeto remoto.
http://aquilesburlamaqui.wdfiles.com/local--files/projeto-e-implementacao-de-middleware/03-RPC&RMI.ppt
![Page 56: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/56.jpg)
Cliente
![Page 57: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/57.jpg)
FARLEY, Jim at.al.. Java Enterprise in a Nutshell: A Desktop Quick Reference
Relações entre os componentes
![Page 58: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/58.jpg)
Exemplo: Arquitetura de uma loja virtualFARLEY, Jim at.al.. Java Enterprise in a Nutshell: A Desktop Quick Reference
![Page 59: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/59.jpg)
Referências● TANENBAUM, Andrew S.; STEEN, Maarten. Sistemas Distribuídos: Princípios e Paradigmas. 2ª
Edição.● FARLEY, Jim at.al.. Java Enterprise in a Nutshell: A Desktop Quick Reference● ROMAN, Ed; et al. Dominando Enterprise Javabeans. Bookman Editora, 2009● Integração de Sistemas com Webservices, JMS e EJB <http://www.k19.com.br>● Oracle; Documentação Oficial RMI <https://docs.oracle.com/javase/tutorial/rmi/>● UNICAMP; Curso POO Java <http://www.dca.fee.unicamp.br/cursos/PooJava/objdist/rmiact.html>● UFSC <http://www.inf.ufsc.br/~bosco/ensino/ine5645/CalculadoraRMI.txt>● <http://www.javacoffeebreak.com/articles/rmi_corba/index.html>● <http://neoramon.blogspot.com.br/2009/11/tcp-udp-e-rmi-minhas-observacoes-sobre.html>● <http://aquilesburlamaqui.wdfiles.com/local--files/projeto-e-implementacao-de-middleware/03-RPC&
RMI.ppt>
![Page 60: Java OO Middleware - JEE / EJB / RMI](https://reader034.fdocuments.net/reader034/viewer/2022042908/58ed446b1a28abb2798b468f/html5/thumbnails/60.jpg)
Dúvidas ?