Objetos Distribuídos em Java
|
|
|
- Ana Laura Aires Canedo
- 10 Há anos
- Visualizações:
Transcrição
1 J530 - Enterprise JavaBeans Objetos Distribuídos em Java Helder da Rocha ([email protected]) argonavis.com.br 1
2 Objetivo O objetivo deste módulo é fornecer os pré-requisitos de computação distribuída necessários à eficiente utilização da tecnologia EJB Background mínimo sobre Java RMI e Java IDL (implementação de CORBA em Java) Desenvolvimento com Java RMI-IIOP (tecnologia usada na comunicação entre EJBs). Consiste do modelo de programação Java RMI com protocolo CORBA (IIOP) Descrição das diferentes maneiras como parâmetros são passados em ambientes distribuídos Para mais detalhamento sobre este assunto, consulte o seminário J433 - Objetos Distribuídos 2
3 RMI e RPC RMI e RPC são técnicas usadas para isolar, dos clientes e servidores, os detalhes da comunicação em rede Utilizam protocolos padrão, stubs e interfaces Lidam com diferentes representação de dados RPC: Remote Procedure Call Chamada procedural de um processo em uma máquina para um processo em outra máquina. Permitem que os procedimentos tradicionais permanecam em múltiplas máquinas, porém consigam se comunicar RMI: Remote Method Invocation É RPC em versão orientada a objetos Permite possível chamar métodos em objetos remotos Beneficia-se de características do paradigma OO: herança, encapsulamento, polimorfismo 3
4 Dificuldades em RPC Para dar a impressão de comunicação local, implementações de RPC precisam lidar com várias dificuldades, entre elas Marshalling e unmarshalling (transformação dos dados em um formato independente de máquina) Diferenças na forma de representação de dados entre máquinas Implementações RMI tem ainda que decidir como lidar com particularidades do modelo OO: Como implementar e controlar referências dinâmicas remotas (herança e polimorfismo) Como garantir a não duplicação dos dados e a integridade do encapsulamento? Como implementar a coleta de lixo distribuída? Como implementar a passagem de parâmetros que são objetos (passar cópia rasa, cópia completa, referência remota)? Padrões diversos. Como garantir a interoperabilidade? 4
5 Objetos distribuídos em Java Java RMI sobre JRMP Protocolo Java nativo (Java Remote Method Protocol) - Java-to-Java Serviço de nomes não-hierárquico e centralizado Modelo de programação Java: interfaces Java IDL: mapeamento OMG IDL-Java Protocolo OMG IIOP (Internet Inter-ORB Protocol) independente de plataforma/linguagem Serviço de nomes (COS Naming) hierárquico, Interface de programação OMG IDL Java IDL (CORBA) distribuído e transparente quanto à localização dos objetos Modelo de programação CORBA: OMG IDL (language-neutral) Java RMI sobre IIOP Protocolo OMG IIOP, COS Naming, transparência de localidade, etc. Modelo de programação Java com geração automática de OMG IDL IIOP RMI-IIOP Java RMI-JRMP JRMP Interface de comunicação em rede 5
6 Comunicação CORBA: ORB Comunicação aparente IDL ObjetoRemoto Cliente Abstração da interface IDL void m() {...} srv-->m(); do objeto remoto Usada para gerar stubs IIOP IIOP Internet stub e esqueletos ORB ORB Stub (lado-cliente) Transforma os parâmetros em formato independente de máquina (marshalling) e envia requisições para o objeto remoto através do ORB passando o nome do método e os dados transformados ORB: barramento comum ORB do cliente passa dados via IIOP para ORB do servidor Esqueleto (lado-servidor) Recebe a requisição com o nome do método, decodifica (unmarshals) os parâmetros e os utiliza para chama o método no objeto remoto Transforma (marshals) os dados retornados e devolve-os para o ORB 6
7 Comunicação CORBA: IIOP e serviços Com vários ORBs se comunicando via IIOP, clientes tem acesso a objetos remotos e serviços em qualquer lugar ORB encarrega-se de achar o objeto (location transparency) COS Transactions ORB Cliente Java srv.meta(); stub A Cliente Java srv=lookup(b) srv.metb2(); stub B IOP COS Naming Objeto/A Objeto/B ORB Cliente C++ srv-->meta(); stub A IIOP IIOP IOP Internet esqueleto A Objeto Remoto Java void meta() {...} Objeto Remoto C++ void meta() {...} esqueleto A ORB esqueleto B ORB Objeto Remoto Java void metb1() {...} int metb2() {...} 7
8 Como criar uma aplicação CORBA 1. Criar uma interface para cada objeto remoto em IDL 2. Compilar a IDL para gerar código de stubs e skeletons Usando ferramenta do ORB (em JavaIDL: idlj) 3. Implementar os objetos remotos Modelo de herança: objeto remoto herda do esqueleto gerado Modelo de delegação (mais flexível): classe "Tie" implementa esqueleto e delega chamadas à implementação 4. Implementar a aplicação servidora Registrar os objetos remotos no sistema de nomes (e usa, opcionalmente, outros serviços) 5. Implementar o cliente Obter o contexto do serviço de nomes (COS Naming) Obtém o objeto remoto através de seu nome Converter objeto para tipo de sua interface: XXXHelper.narrow(obj) 6. Compilar e gerar os executáveis 8
9 Do IDL a uma aplicação distribuída É preciso implementar 5 1 idl to java interface Hello { void sayhello(); } idl to C++ Hello.idl HelloClient.java 2 HelloImpl.cpp HelloServer.cpp Hello h =(Hello) void sayhello { Stub HelloImpl rf = ctx.lookup("hello"); Stub Stub Stub Stub Skel printf("hello"); new HelloImpl(); h.sayhello(); } x-->bind(rf, "hello"); *.java *.cpp 3 É preciso implementar 4 Java compiler 6 C++ compiler & linker HelloClient ORB stub lookup() COS Naming ORB IIOP bind() hello: obj HelloServer ORB esqueleto HelloImpl (obj remoto) 9
10 Comunicação RMI Interface Remote java.rmi.remote Abstração da interface ObjRemote do objeto remoto ObjetoRemoto Cliente void m(); Usada para gerar stubs void m() {...} Comunicação aparente e esqueletos JRMP Stub (lado-cliente) stub Transforma parâmetros RMIRegistry (serializados) e envia lookup() requisição pela rede (sockets) Esqueleto (lado-servidor) Recebe a requisição, desserializa os parâmetros e chama o método no objeto remoto. Depois serializa objetos retornados. RMIRegistry Servidor registra o objeto usando java.rmi.naming.bind() Cliente recupera o objeto usando java.rmi.naming.lookup() srv.m(); 10
11 Como criar uma aplicação RMI 1. Criar subinterface de java.rmi.remote para cada objeto remoto Interface deve declarar todos os métodos visíveis remotamente Todos os métodos devem declarar java.rmi.remoteexception 2. Implementar e compilar os objetos remotos Criar classes que implementem a interface criada em (1) e estendam java.rmi.server.unicastremoteobject (ou Activatable) Todos os métodos (inclusive construtor) provocam RemoteException 3. Gerar os stubs e skeletons Rodar a ferramenta rmic sobre a classe de cada objeto remoto 4. Implementar a aplicação servidora Registrar os objetos remotos no RMIRegistry usando Naming.bind() Definir um SecurityManager (obrigatório p/ download de cód. remoto) 5. Implementar o cliente Definir um SecurityManager e conectar-se ao codebase do servidor Recuperar os objetos remotos usando (Tipo)Naming.lookup() 6. Compilar servidor e cliente 11
12 Construção de aplicação RMI java.rmi.remote java.rmi.server.unicastremoteobject 5 HelloClient.java Hello h =(Hello) Naming.lookup("hello"); h.sayhello(); extends extends HelloServer.java 4 HelloImpl rf = new HelloImpl(); Naming.bind(rf, "hello"); interface Hello extends Remote{ void sayhello() throws RemoteException; } implements 2 HelloImpl.java... void sayhello throws RemoteException { System.out.println("Hello"); } Stub Hello.java 1 HelloImpl_Skel HelloImpl_Stub 3 Skel Java compiler 6 2 RMIC HelloClient lookup() RMIRegistry bind() HelloServer HelloImpl_Stub JRMP HelloImpl_Skel HelloImpl (obj remoto) 12
13 Comunicação RMI-IIOP Interface Remote java.rmi.remote Abstração da interface ObjRemote do objeto remoto ObjetoRemoto void m(); Usada para gerar stubs void m() {...} Comunicação aparente e esqueletos IIOP IIOP Stub (lado-cliente) Internet ORB Transforma parâmetros (serializados) em formato independente de máquina e envia requisição pela rede através do ORB ORB: barramento comum ORB do cliente passa dados via IIOP para ORB do servidor Esqueleto (lado-servidor) Recebe a requisição do ORB e desserializa os parâmetros Chama o método do objeto remoto Transforma os dados retornados e devolve-os para o ORB Cliente srv.m(); stub ORB 13
14 Como criar uma aplicação RMI-IIOP 1. Criar subinterface de java.rmi.remote para cada objeto remoto Interface deve declarar todos os métodos visíveis remotamente Todos os métodos devem declarar java.rmi.remoteexception 2. Implementar e compilar os objetos remotos Criar classes que implementem a interface criada em (1) e estendam javax.rmi.portableremoteobject Todos os métodos (inclusive construtor) provocam RemoteException 3. Gerar os stubs e skeletons (e opcionalmente, os IDLs) Rodar a ferramenta rmic -iiop sobre a classe de cada objeto remoto 4. Implementar a aplicação servidora Registrar os objetos remotos no COSNaming usando JNDI Definir um SecurityManager 5. Implementar o cliente Definir um SecurityManager e conectar-se ao codebase do servidor Recuperar objetos usando JNDI e PortableRemoteObject.narrow() 6. Compilar 14
15 Construção de aplicação RMI-IIOP java.rmi.remote javax.rmi.portableremoteobject 5 HelloClient.java Hello h =(Hello) ctx.lookup("hello"); h.sayhello(); HelloServer.java HelloImpl rf = new HelloImpl(); ctx.bind(rf, "hello"); Java compiler interface Hello extends Remote{ void sayhello() throws RemoteException; } implements 2 HelloImpl.java... void sayhello throws RemoteException { System.out.println("Hello"); } IDL Stub Hello.java 1 HelloImpl_Tie _HelloImpl_Stub 3 RMIC Skel HelloClient lookup() JNDI (CosNaming) bind() HelloServer _HelloImpl_Stub ORB IIOP ORB HelloImpl_Tie HelloImpl (obj remoto) 15
16 Interface Remote Declara os métodos que serão visíveis remotamente Todos devem declarar provocar RemoteException Indêntica à interface usada em RMI sobre JRMP package hello.rmiop; import java.rmi.*; public interface Hello extends Remote { } public String sayhello() throws RemoteException ; public void saythis(string tosay) throws RemoteException; 16
17 Implementação do objeto remoto package hello.rmiop; import java.rmi.*; Classe base para todos os objetos remotos RMI-IIOP public class HelloImpl extends javax.rmi.portableremoteobject implements Hello { private String message = "Hello, World!"; public HelloImpl() throws RemoteException { } } public String sayhello() throws RemoteException { return message; } public void saythis(string tosay) throws RemoteException { message = tosay; } Construtor declara que pode provocar RemoteException! 17
18 Geração de Stubs e Skeletons Tendo-se a implementação de um objeto remoto, pode-se gerar os stubs e esqueletos > rmic -iiop hello.rmiop.helloimpl Resultados _Hello_Stub.class _HelloImpl_Tie.class - este é o esqueleto! Para gerar, opcionalmente, uma (ou mais) interface IDL compatível use a opção -idl > rmic -iiop -idl hello.rmiop.helloimpl Resultado Hello.idl #include "orb.idl" Tipos definidos em orb.idl module hello { (equivalem a wstring) module rmiop { interface Hello { ::CORBA::WStringValue sayhello( ); void saythis(in ::CORBA::WStringValue arg0 ); }; }; }; 18
19 Servidor e rmi.policy package hello.rmiop; import java.rmi.*; import javax.naming.*; public class HelloServer { public static void main (String[] args) { if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); try { Hello hello = new HelloImpl(); Context initctx = new InitialContext(System.getProperties()); initctx.rebind("hellormiop", hello); System.out.println("Remote object bound to 'hellormiop'."); } catch (Exception e) { if (e instanceof RuntimeException) } } } throw (RuntimeException)e; System.out.println("" + e); SecurityManager viabiliza download de código Arquivo de politicas de segurança para uso pelo SecurityManager Informações de segurança e serviço de nomes e contexto foram inicial passadas na linha de comando Associando o objeto com um nome no serviço de nomes rmi.policy grant { permission java.net.socketpermission "*: ", "connect, accept, resolve"; permission java.net.socketpermission "*:80", "connect, accept, resolve"; permission java.util.propertypermission "*", "read, write"; }; 19
20 Cliente package hello.rmiop; import java.rmi.*; import javax.naming.*; Obtenção do objeto com associado a"hellormiop" no contexto inicial do serviço de nomes public class HelloClient { public static void main (String[] args) { if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } try { Context initctx = new InitialContext(System.getProperties()); Object obj = initctx.lookup("hellormiop"); Hello hello = (Hello) javax.rmi.portableremoteobject.narrow(obj, hello.hello.class); System.out.println(hello.sayHello()); hello.saythis("goodbye, Helder!"); System.out.println(hello.sayHello()); } } } catch (Exception e) { if (e instanceof RuntimeException) throw (RuntimeException)e; System.out.println("" + e); } Não basta fazer cast! O objeto retornado é um objeto CORBA (e não Java) cuja raiz não é java.lang.object mas org.omg.corba.object narrow transforma a referência no tipo correto 20
21 Objetos serializáveis Objetos (parâmetros, tipos de retorno) enviados pela rede via RMI ou RMI-IIOP precisam ser serializáveis Objeto serializado: objeto convertido em uma representação binária (tipo BLOB) reversível que preserva informações da classe e estado dos seus dados Serialização representa em único BLOB todo o estado do objeto e de todas as suas dependências, recursivamente Usado como formato "instantâneo" de dados Usado por RMI para passar parâmetros pela rede Como criar um objeto serializável (da forma default*) Acrescentar "implements java.io.serializable" na declaração da classe e marcar os campos não serializáveis com o modificador transient Garantir que todos os campos da classe sejam (1) valores primitivos, (2) objetos serializáveis ou (3) campos declarados com transient * É possível implementar a serialização de forma personalizada implementando métodos writeobject(), readobject(), writereplace() e readresolve(). Veja especificação. 21
22 Passagem de parâmetros em objetos remotos Na chamada de um método remoto, todos os parâmetros são copiados de uma máquina para outra Métodos recebem cópias serializadas dos objetos em passados argumentos Métodos que retornam devolvem uma cópia do objeto Diferente da programação local em Java! Quando se passa um objeto como parâmetro de um método a referência é copiada mas o objeto não Quando um método retorna um objeto ele retorna uma referência àquele objeto Questões O que acontece quando você chama um método de um objeto retornado por um método remoto? 22
23 Suponha o seguinte relacionamento* Hello Circulo getcirculo() void setcirculo(circulo) Circulo createcirculo(int, Ponto) Ponto createponto(int, int) Passagem de parâmetros local Localmente, com uma referência do tipo Hello, pode-se (a) Obter um Circulo Circulo Circulo(raio, Ponto) Ponto getorigem() void setorigem(ponto) Circulo c1 = hello.getcirculo(); (b) Trocar o Circulo por outro hello.setcirculo(hello.createcirculo(50, new Ponto(30, 40)); (c) Mudar o objeto Ponto que pertence ao Circulo criado em (b) Circulo c2 = hello.getcirculo(); c2.setorigem(hello.createponto(300, 400)); (d) Mudar o valor da coordenada x do ponto criado em (c) c2.getorigem().setx(3000); * veja cap03/src Ponto Ponto(int, int) int getx() void setx(int) int gety() void sety(int) Este método chama new Circulo(raio, Ponto)... e remotamente? 23
24 Passagem de parâmetros em RMI a Circulo c1 = hello.getcirculo(); // obtém cópia serializada do círculo remoto hello c1 HelloImplStub Circulo raio origem 5 #e1 getcirculo() Ponto x 3 y 4 HelloImpl circulo #e0 Devolve Circulo serializado Circulo raio origem 5 #e1 Ponto x 3 y 4 b hello.setcirculo(hello.createcirculo(50, hello.createponto(30, 40))); hello Ponto x 30 y 40 createponto() createcirculo() Circulo raio origem HelloImplStub 50 #e1 setcirculo() Serializa e envia o objeto HelloImpl circulo #e2 Circulo raio origem 50 #e1 Ponto x 30 y 40 Circulo raio origem 5 #e2 Ponto x 3 y 4 Nova referência para o objeto remoto 24
25 Conseqüências da passagem por valor a Circulo c2 = hello.getcirculo(); // obtém cópia serializada do círculo remoto hello c2 HelloImplStub Circulo raio origem 50 #e1 getcirculo() Ponto x 30 y 40 HelloImpl circulo #e2 Devolve Circulo serializado Circulo raio origem 50 #e1 Ponto x 30 y 40 c d c2.setorigem(hello.createponto(300, 400)); // Circulo local; Ponto local! c2.getorigem().setx(3000); // altera objeto Ponto local! hello c2 setorigem() HelloImplStub Circulo raio origem createponto() 50 #e3 Ponto x 3000 setx() y 400 HelloImpl circulo #e2 Circulo raio origem Objetos remotos não foram alterados! 50 #e1 Ponto x 30 y 40 25
26 Passagem de parâmetros por referência Aplicações RMI sempre passam valores através da rede A referência local de um objeto só tem utilidade local Desvantagens Objetos cuja interface é formada pelos seus componentes (alteração nos componentes não é refletida no objeto remoto) Objetos grandes (demora para transferir) Solução: passagem por referência RMI simula passagem por referência através de stubs Em vez de devolver o objeto serializado, é devolvido um stub que aponta para objeto remoto (objeto devolvido, portanto, precisa ser "objeto remoto", ou seja, implementar java.rmi.remote) Se cliente altera objeto recebido, stub altera objeto remoto Como implementar? Basta que parâmetro ou tipo de retorno seja objeto remoto Objetos remotos são sempre retornados como stubs (referências) 26
27 Passagem por referência a CirculoR c3 = hello.getcirculor(); // obtém referência (stub) para círculo remoto hello c3 getcirculor() HelloImplStub CirculoRStub PontoRStub HelloImpl circulo #e2 CirculoRImpl raio origem Devolve stub serializado de Circulo 5 #e1 PontoRImpl x 3 y 4 c d c2.setorigem(hello.createponto(300, 400)); // CirculoR remoto; PontoR remoto c2.getorigem().setx(3000); // altera PontoR remoto (que acaba de ser criado) hello c3 HelloImplStub createponto() CirculoRStub setorigem() getorigem() PontoRStub setx() HelloImpl circulo #e2 PontoRImpl x y CirculoRImpl raio origem Cria novo Ponto 50 #e4 PontoRImpl x 3 y 4 27
28 Passagem de parâmetros: resumo Quando você passa um objeto como parâmetro de um método, ou quando um método retorna um objeto em programação Java local Referência local (número que contém endereço de memória) do objeto é passada... em Java RMI (RMI-JRMP ou RMI-IIOP) Se tipo de retorno ou parâmetro for objeto remoto (implementa java.rmi.remote), stub (objeto que contém referência remota) é serializado e passado; Se parâmetro ou tipo de retorno for objeto serializável mas não remoto (não implementa java.rmi.remote), uma copia serializada do objeto é passada Veja demonstração: Rode, a partir do diretório cap04, ant build, depois, em janelas separadas, ant orbd, ant runrmiopserver e ant runrmiopclient 28
29 Conclusão Java oferece três opções nativas para implementar sistemas de objetos distribuídos Java RMI sobre Java RMP Java RMI sobre IIOP Java IDL Enterprise JavaBeans utilizam RMI sobre IIOP, logo EJBs comportam-se como objetos remotos RMI EJBs podem se comunicar com objetos CORBA Objetos em aplicações EJB são passados Por referência local, em EJBs com interface local Por referência remota (stub RMI-IIOP), em EJBs com interface java.rmi.remote Por valor, em value objects (data-transfer objects) 29
30 Exemplos Há dois exemplos disponíveis com RMI (cap04/exemplos) Rode ant -projecthelp e leia os README.txt hellormi: usa RMI sobre JRMP Gera dois JARs. Um com o cliente e o segundo com o servidor. Ambos abrem interfaces gráficas. A partir deles é possível mandar mensagens entre máquinas. Inicie antes o RMI Registry od: demonstra Java IDL e RMI (IIOP e JRMP) Mostra o exemplo com passagem de objetos serializados e passagem de referências (stubs para objetos remotos) Inicie o ORBD para as aplicações IIOP (Corba, RMI-IIOP) e RMI Registry para as aplicações JRMP (RMI, RMI-JNDI) 30
31 Execução do exemplo OD Usando Ant; no subdiretório cap04/exemplos, monte a aplicação (que é similar à mostrada nos slides) com > ant buildrmiop Depois, em janelas diferentes, inicie os servidores e cliente digitando > ant orbd > ant runrmiopserver > ant runrmiopclient Se não quiser usar o Ant, inicie o ORB em linha de comando com > orbd -ORBInitialPort ORBInitialHost localhost & rode o servidor usando > java hello.rmiop.helloserver -Djava.rmi.server.codebase=file:///aulaj2ee/cap03/build/ -Djava.security.policy=../lib/rmi.policy -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1900 Remote object bound to 'hellormiop'. e o cliente com > java hello.rmiop.helloclient <mesmas propriedades -D do servidor> Hello, World! Goodbye! 31
32 Exercício 1. Utilize os arquivos fornecidos e transforme Produto e ProdutoFactory em objetos remotos (cap04/exercicios) a) Altere as interfaces Produto e ProdutoFactory para que sejam interfaces Remote b) Transforme as classes *Impl.java para que sejam objetos remotos RMI-IIOP c) Gere os stubs e skeletons (use o alvo build do ant, que está pronto, se desejar) d) Complete a classe ProdutoServer para que faça o bind do objeto remoto ProdutoFactory e) Complete a classe ProdutoClient para que faça o lookup de ProdutoFactory, utilize-o para criar alguns Produtos remotos e chamar alguns métodos (siga o roteiro descrito nos comentários) e) Rode o ORBD, em uma janela, depois o servidor e o cliente em janelas separadas. 32
33 Exercício extra (opcional) 2. Alterar a implementação de objeto remoto do exercício anterior para utilizar banco de dados a) Inicie o JBoss/HSQLDB e rode ant create-table no buildfile fornecido para criar a tabela no banco (consulte o script SQL usado para criar a tabela no arquivo sql/create-table.sql) b) Utilize a classe ProdutoDAO fornecida e o value object ProdutoVO (retornado por um dos métodos do DAO) c) Altere ProdutoImpl para que use o DAO (Data Access Object) e o value object (se desejar, utilize as classes semi-prontas) 3. Registre o objeto remoto no JBoss a) Altere o arquivo jndi.properties, localizado no diretório lib/ para que utilize as classes e pacotes do driver JNDI do JBoss (estão comentados) b) Configure o build.xml para que utilize os JARs do cliente JBoss, necessários para JNDI, em $JBOSS_HOME/client/lib 33
34 Fontes [1] Sun Microsystems. Java IDL Documentation. Ponto de partida para tutoriais e especificações sobre Java IDL (parte da documentação do J2SDK 1.4) [2] Sun Microsystems. RMI-IIOP Tutorial. Ponto de partida para tutoriais e especificações sobre Java RMI-IIOP (parte da documentação do J2SDK 1.4) [3] Ed Roman et al. Mastering EJB 2, Appendixes A and B: RMI-IIOP, JNDI and Java IDL Contém um breve e objetivo tutorial sobre os três assuntos [4] Jim Farley. Java Distributed Computing. O'Reilly and Associates, Esta é a primeira edição (procure a segunda). Compara várias estratégias de computação distribuída em Java. [5] Helder da Rocha, Análise Comparativa de Dempenho entre Tecnologias Distribuídas Java. UFPB, 1999, Tese de Mestrado. [6] Qusay H. Mahmoud Distributed Programming with CORBA (Manning) Breve e objetivo tutorial CORBA [7] Qusay H. Mahmoud Distributed Java Programming with RMI and CORBA Sun, Maio Artigo que compara RMI com CORBA e desenvolve uma aplicação que transfere arquivos remotos em RMI e CORBA 34
35 Curso J530: Enterprise JavaBeans Revisão Junho de , Helder da Rocha ([email protected]) argonavis.com.br 35
RMI RMI-IIOP Java IDL (CORBA) Helder da Rocha www.argonavis.com.br
RMI RMI-IIOP Java IDL (CORBA) Helder da Rocha www.argonavis.com.br 1 Sumário RMI/RPC e Java em ambientes distribuídos Java IDL (~25%) Arquitetura CORBA e mapeamento Java-IDL Construção de uma aplicação
Java 2 Enterprise Edition RMI-IIOP e Enterprise JavaBeans
Java 2 Enterprise Edition RMI-IIOP e Enterprise JavaBeans Helder da Rocha www.argonavis.com.br 1 Objetos Distribuídos A comunicação em rede pode ser realizada... Usando soquetes e portas, lidando com todas
Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br
Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível
Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução
Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite
MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais
RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota
Invocação de Métodos Remotos
Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso
Sistemas Distribuídos
Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral
Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9
Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através
Tutorial RMI (Remote Method Invocation) por Alabê Duarte
Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos
Sistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da
Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação
Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática
Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente
Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto
Invocação de Métodos Remotos RMI (Remote Method Invocation)
Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente
Num sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Objetos distribuídos. Roteiro. Java IDL
Objetos distribuídos Java IDL Roteiro Java IDL Definindo a interface IDL Compilando a interface IDL Criando o servidor Criando o cliente Rodando a aplicação Rodando a aplicação em duas máquinas Java IDL
Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza
Sistemas Distribuídos Métodos de Invocação Remota II Prof. MSc. Hugo Souza Nesta aula, complementando os conceitos que vimos nas aulas anteriores [aula 15], vamos praticar a programação de laboratório
Adriano Reine Bueno Rafael Barros Silva
Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências
COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1 1. Conceitos Básicos a. Invocação remota (RPC/RMI)
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local
1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1. Conceitos Básicos a. Invocação remota (RPC/RMI)
Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1
Java RMI - Remote Method Invocation Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1 Autores Autoria Cláudio Geyer Marcelo Castiglia Pereira Local Instituto de Informática UFRGS disciplinas:
Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)
Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido
Capítulo V Sistemas de Objectos Distribuídos
From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 1 O modelo
Java 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
INF01018 Aula Prática 2 RMI Remote Method Invocation
1 / 18 INF01018 Aula Prática 2 RMI Remote Method Invocation Lucas Mello Schnorr, Alexandre Silva Caríssimi {lmschnorr,asc}@inf.ufrgs.br http://www.inf.ufrgs.br/ lmschnorr/ad/ INF01018 Sistemas Operacionais
Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza
Sistemas Distribuídos Métodos de Invocação Remota IV Prof. MSc. Hugo Souza Nesta aula, complementando os conceitos que vimos nas aulas anteriores [aula 15, aula 16 e aula 17], vamos praticar a segunda
Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br
Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a
Middleware de Aplicações Paralelas/Distribuídas
Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Principais aspectos a gerir pelo Middleware
Invocação de Métodos em Objectos Remotos
Invocação de Métodos em Objectos Remotos Invocações de métodos remotas e locais A remote invocation B local C invocation local E invocation local invocation D remote invocation F Page 1 1 Invocação de
RMI/JNDI - Fundamentos
c o l u n a Professor J RMI/JNDI - Fundamentos Um exemplo prático do que são e de como funcionam RMI e JNDI Roberto Vezzoni ([email protected]): SCJP, faz Ciência da Computação na Faesa e atua
Invocação Remota MC704
Invocação Remota MC704 Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar
Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais
Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:
INE5380 - Sistemas Distribuídos
INE5380 - Sistemas Distribuídos Object Request Broker e CORBA Por: Léo Willian Kölln - 0513227-4 Novembro de 2006 ORB Object Request Broker ORB aqui será tratado como um Middleware que permite a construção
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Sistemas Distribuídos
Sistemas Distribuídos Comunicação Remota Gustavo Reis [email protected] 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos
Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5
Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos
Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1
.NET Remoting Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 Autoria Autores 1a versão Fabio Augusto Dal Castel colaboração revisão Eduardo F. Seganfredo Rodrigo Gatto C. Geyer Programação
Java RMI. Alcides Calsavara
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 de uma classe Java) situado em outra máquina
Desenvolvimento de Aplicações Java/CORBA
Tutorial Desenvolvimento de Aplicações Java/CORBA Emerson Ribeiro de Mello, Fábio Favarim e Joni da Silva Fraga {emerson, fabio, [email protected] Este tutorial ensina como criar uma aplicação distribuída
Stateful Session Beans
J530 - Enterprise JavaBeans Stateful Session Beans Helder da Rocha ([email protected]) argonavis.com.br 1 Stateful Session Beans Quando um cliente chama um método de um bean, ele está iniciando um diálogo
Programação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
UNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação
Sistemas Distribuídos
Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente
Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos
Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads
APÊNDICE A EXEMPLO DE APLICAÇÃO
APÊNDICE A EXEMPLO DE APLICAÇÃO Para ilustrar os três métodos de distribuição de objetos apresentados nesta dissertação iremos, a seguir, mostrar um exemplo de implementação de uma aplicação. São apresentadas
Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.
Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and
Sistemas Distribuídos: Conceitos e Projeto Java RMI
Sistemas Distribuídos: Conceitos e Projeto Java RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 19 de agosto
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações 1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos
Object Brokers. Tecnologias de Middleware 2004/2005 André Santos
Object Brokers Tecnologias de Middleware 2004/2005 André Santos Resumo O que são Object Brokers? Como surgiu o conceito? CORBA Exemplos de utilização Comparação com Java RMI Actualidade (J2EE,.NET) O que
UNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira neto Aula 17-18: Middleware: Implementação de RMI (cont.), RPC, Modelo de Eventos, Exemplo com Java RMI Chamadas dinâmicas
Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse
Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web
Objetos Distribuídos. Nazareno Andrade
Objetos Distribuídos Nazareno Andrade O Problema Orientação a objetos é um paradigma poderoso Modularidade, extensibilidade, manutenibilidade Porque distribuir os objetos: Localidade dos objetos Tolerância
Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.
Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso
Um pouco do Java. Prof. Eduardo
Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.
Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Introdução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs
Num sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33
PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface
Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC
Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada
Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental
Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos
Middleware Camada Intermediária de Suporte a Sistemas Distribuídos Alternativas de comunicação entre processos (IPC) Mecanismos de IPC tradicionais (ou de baixo nível) Memória compartilhada, filas de mensagens,
Fundamentos de JNDI. Paulo Pires - 2003
Fundamentos de JNDI Paulo Pires - 2003 Serviço de nomes A principal função de um serviço de nomes é permitir a associação de um nome (ou uma outra representação alternativa mais simples) a recursos computacionais
Enterprise Java Beans
Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side
Como usar a documentaçã
Java 2 Standard Edition Como usar a documentaçã ção da API Java 2 Helder da Rocha www.argonavis.com.br 1 Documentação Aprender a usar a documentação é essencial para quem deseja desenvolver aplicações
UNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Aula 19-20: Arquitetura CORBA (continuação) Exemplo de cliente e servidor em CORBA Interfaces IDL Shape e ShapeList Exemplo de cliente e servidor
Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
J550. Model View Controller
J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras
Enterprise Java Bean. Enterprise JavaBeans
Enterprise Java Bean Introdução Elementos do Modelo Enterprise JavaBeans A especificação do Enterprise JavaBeansTM (EJB) define uma arquitetura para o desenvolvimento de componentes de software distribuídos
Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1
Java RMI - Remote Method Invocation Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1 ! Autores Autoria " Cláudio Geyer " Marcelo Castiglia Pereira! Local " Instituto de Informática " UFRGS "
JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.
JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Reuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Módulo 07 Características Avançadas de Classes
Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos
Usando Borland DELPHI para implementar aplicações CORBA
Página 1 de 10 USANDO BORLAND DELPHI PARA IMPLEMENTAR APLICAÇÕES CORBA por Simone Vey Dutra e César Bridi Introdução A Arquitetura CORBA Criando uma Aplicação CORBA em Delphi Criando um Servidor CORBA
RMI: Uma Visão Conceitual
RMI: Uma Visão Conceitual Márcio Castro, Mateus Raeder e Thiago Nunes 11 de abril de 2007 Resumo Invocação de Método Remoto (Remote Method Invocation - RMI) trata-se de uma abordagem Java para disponibilizar
Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp
Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define
CURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado
Aplicações distribuídas: interação entre partes Processamento Paralelo Middleware Orientado a Objetos Prof. João Paulo A. Almeida ([email protected]) Rede A Rede B Rede C 2015/01 - INF02799 Sistema
Resumo: Perguntas a fazer ao elaborar um projeto arquitetural
Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?
POO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Exercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Usando o simulador MIPS
Usando o simulador MIPS O objetivo desta aula prática será a utilização do simulador MipsIt para executar programas escritos em linguagem de máquina do MIPS. 1 Criando um projeto Cada programa a ser executado
J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha ([email protected])
J820 Testes de interface Web com HttpUnit Helder da Rocha ([email protected]) O que é HttpUnit API Java para comunicação com servidores HTTP Permite que programas construam e enviem requisições, e depois
Comunicação usando soquetes.
Soquetes Um soquete é definido como uma extremidade de um canal de comunicação. Um par de processos (ou threads) se comunica em uma rede utilizando um par de soquetes - um para cada processo. Um soquete
Sistemas Distribuídos RPC Remote Procedure Call
Sistemas Distribuídos RPC Remote Procedure Call Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Cliente/Servidor Quais os problemas? Baseado em E/S Erro propagado
Java 2 Enterprise Edition Serviços de Localização
Java 2 Enterprise Edition Serviços de Localização Helder da Rocha www.argonavis.com.br 1 Objetivos Este módulo descreve os serviços básicos para localização de recursos em J2EE Localização de componentes
CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida [email protected]
CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida [email protected] Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. [email protected]
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. [email protected] ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
