RMI/JNDI - Fundamentos

Tamanho: px
Começar a partir da página:

Download "RMI/JNDI - Fundamentos"

Transcrição

1 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 SCJP, faz Ciência da Computação na Faesa e atua como assessor/instrutor de TI. A API RMI (Remote Method Invocation) é o mecanismo em Java que permite a manipulação de objetos distribuídos. Com RMI, é possível realizar chamadas de métodos em objetos remotos (numa outra VM, talvez no mesmo host). Como é necessário vasculhar outra VM para a tentativa de encontrar um objeto remoto, nós precisamos fornecer meios para que aquele objeto seja, de fato, encontrado. É através da API JNDI (Java Naming and Directory Interface) que conseguimos registrar e encontrar objetos remotos para que estes sejam utilizados por RMI. Odiretor de compras de uma empresa, por conta de suas viagens a negócios, solicita ao departamento de TI a possibilidade de acessar e manipular informações sobre pedidos de compras e estoque disponível através de seu smartphone. Como já existe um sistema de gestão para pedidos de compras que foi desenvolvido em duas camadas (cliente/servidor) e sendo este um sistema desktop para janelas mais ricas em recursos de entrada pelo usuário, será necessário quebrar o processo de pedido de compras em três camadas lógicas para evitar a duplicação do código na camada de negócios da nova aplicação. O cenário que possuímos é de que ainda será possível realizar a manipulação dos pedidos de compras no sistema de gestão já implantado e temos um novo sistema que permite acesso através daquele smartphone e demais dispositivos móveis compatíveis. A arquitetura deste cenário está demonstrada na figura 1. O padrão de projeto Façade (ou Fachada, em português) é responsável por fornecer um acesso padronizado e unificado a um subsistema mais complexo. Imagine, por exemplo, o processo de cadastro de nota fiscal de entrada por compra para comercialização. Será necessário além de fazer entrada em estoque das mercadorias envolvidas, fazer um lançamento de contas a pagar ao fornecedor em questão. Assim, o programador se vê em meio a várias regras de negócio. Para resolver essa situação, pode ser fornecido ao programador um objeto responsável por fazer o fechamento daquela nota fiscal, realizando apenas uma chamada, em vez de implementar um código com várias instâncias de objetos diferentes que se relacionam entre si. A esse novo objeto, se dá o nome de Façade. Num paralelo com tecnologias para este fim, além da RMI, temos como exemplos os padrões COM e DCOM (Microsoft) e o padrão CORBA (Common Object Request Broken Architeture) do OMG (Object Management Group). Como os objetos em RMI trafegam entre diferentes VMs, é necessário o uso de protocolos para a comunicação entre as aplicações cliente e servidor, e o protocolo padrão é o JRMP (Java Remote Method Protocol). Para se obter interoperabilidade entre diferentes linguagens de programação orientadas a objetos que seguem o padrão do OMG, o protocolo utilizado é o IIOP (Internet Inter-ORB Protocol) no qual esse ORB (Object Request Broker) atua fazendo o "meio de campo" entre o cliente e o servidor. Quando é citado RMI-IIOP, significa explicitar que os objetos trafegados por RMI estão sobre o protocolo IIOP. EJBs (Enterprise JavaBeans) utilizam RMI- IIOP por "trás das cenas". Para que tudo isso funcione, nós precisamos de arquivos auxiliares que serão responsáveis por, de fato, realizar chamadas em métodos de objetos remotos. Com esses arquivos disponíveis em nosso classpath, realizamos chamadas em objetos remotos como se fossem locais, pois eles atuam como proxies. Esses arquivos são conhecidos como skeleton e stub e ficam no servidor e cliente, respectivamente. Mais adiante veremos como gerar tais arquivos. Um proxy é responsável por gerenciar o tráfego de informações entre as aplicações cliente e servidor. 22

2 você tenha permissão para escrita de seu sistema de arquivos (os arquivos de código-fonte já inclusos nesta árvore serão criados por nós neste arquivo). Passagem de argumentos Quando usamos RMI devemos estar atentos ao tratamento das passagens de argumentos, pois em Java passagens de argumentos se dão por cópia de valor. Mas o que acontece quando passamos objetos como argumentos em RMI? A referência de um determinado objeto local (endereço na memória heap local) pode não existir na VM remota e se existir não significa que seja o que esperamos ser, então caímos numa exceção na passagem de argumentos em Java: passagem de argumentos por referência. Tudo bem, na verdade é uma pseudopassagem por referência, pois o objeto utilizado como argumento é enviado para a outra VM. Isso acontece por meio de serialização, ou seja, devemos fazer com que esse objeto que deve ser trafegado implemente a interface java.io.serializable. Caso o objeto não deva ser enviado para que o volume de dados trafegados seja menor, basta não implementar aquela interface. Mas como não existe almoço grátis, ao não implementarmos a interface java. io.serializable, deixamos de trafegar um objeto pela rede, porém agora para cada mudança de estado desse objeto deverá ser realizada uma chamada de rede. Objetivo: Hello World Bom, mãos à obra! Nossa intenção é construir uma aplicação RMI stand alone, ou seja, ela deve executar fora de um container JEE (Java Enterprise Edition). Ela nos mostrará como as coisas funcionam exibindo o nosso já bem conhecido Hello World. Configuração do ambiente A primeira coisa a fazer é criar uma estrutura de diretórios em nosso sistema de arquivos para organizar de forma adequada nossos artefatos. Crie a árvore de diretórios conforme a figura 2 em qualquer parte que Servidor Figura 2. Árvore de diretórios para nosso exemplo. Para começar a programação, iremos montar um objeto que contenha uma operação simples e, seguindo uma máxima para encapsulamento e baixo acoplamento na orientação a objetos, vamos programar para interfaces. Não faremos isso apenas por uma boa prática, em RMI não temos escolha, é impossível fazer chamadas diretamente ao objeto que mantém a implementação. Devido a essa regra, precisamos construir uma interface que estenda java.rmi. Remote, com os métodos desejados. Salve o código da Listagem 1 em um arquivo chamado FacadeIntf.java em / rmi_home/server/src/mj/rmiserver/intf. Listagem 1. mj.rmiserver.intf.servidorintf.java. package mj.rmiserver.intf; public interface FacadeIntf extends java.io.serializable, java.rmi.remote { String JNDI_NAME = Server ; String sayhello() throws java.rmi.remoteexception; Todas as operações declaradas em nossa interface remota devem lançar java. rmi.remoteexception, pois a RMI força-nos a considerar a possibilidade de instabilidades de rede, travamentos em máquinas remotas, etc. Agora devemos implementar nossa interface montando nosso objeto remoto. Para tal, precisamos estender uma classe especial: javax.rmi.portableremote- Object. Salve o código da Listagem 2 em um arquivo com o nome FacadeImpl.java em rmi_home/server/src/mj/rmiserver/impl. 23

3 Professor J Listagem 2. mj.remiserver.impl.facadeimpl.java. package mj.rmiserver.impl; import mj.rmiserver.intf.facadeintf; public class FacadeImpl extends javax.rmi.portableremoteobject implements FacadeIntf { Agora nos resta montar uma classe que seja responsável por levantar nosso servidor (todos os artefatos deste artigo estão disponíveis no site da revista Mundoj). Ela é mostrada na Listagem 3. Agora devemos compilar as classes do nosso servidor. Para isso, basta compilar o arquivo ServerRMI.java que todas as outras classes utilizadas por ele também serão compiladas. Entre no diretório rmi_home/server/src e execute o seguinte comando: javac -d../bin/ -cp. mj/rmiserver/serverrmi.java Para complementar nosso servidor, precisamos apenas gerar um arquivo auxiliar para que a RMI saiba como lidar com nosso objeto remoto. O utilitário rmic, que vem junto com o JDK, deve ser usado para gerar arquivos auxiliares para cada um dos objetos registrados na VM e deve ser executado sobre o bytecode. Entre no diretório rmi_home/server/bin e execute o seguinte comando: rmic -classpath. mj.rmiserver.impl.facadeimpl De posse do arquivo auxiliar FacadeImpl_Stub.class gerado no diretório rmi_ home/server/bin/impl, devemos disponibilizá-lo nos classpaths das aplicações cliente e servidor. Assim, podemos executar nosso servidor. Entre no diretório rmi_home/server/ bin e execute o seguinte comando: java -cp. mj.rmiserver.serverrmi A seguinte saída lhe será apresentada: esperando por requisições... (Uau, 'tá funcionando mesmo! :o) Resumo Esse servidor, em execução, criará um registro na VM local esperando por requisições na porta E também terá uma instância da classe mj.rmiserver.impl. FacadeImpl.java amarrada ao nome Server (ainda falaremos desse nome, por favor, não me deixe esquecer). Cliente public FacadeImpl() throws java.rmi.remoteexception { super(); public String sayhello() { return Hello World! ; Agora daremos início à construção de uma aplicação RMI cliente para o servidor que acabamos de desenvolver juntos. Na Listagem 4, é apresentada a classe cliente. Listagem 3. mj.rmiserver.serverrmi. package mj.rmiserver; public class ServerRMI { public ServerRMI() { * cria um registro (responsável por aceitar requisições) na VM * local na porta padrão * para distribuição de objetos sobre RMI * Assim, sempre que a máquina, em que reside o nosso servidor * em execução, * receber solicitações na porta 1099, * essa solicitação será encaminhada para o nosso servidor. java.rmi.registry.locateregistry.createregistry( java.rmi.registry.registry.registry_port ); mj.rmiserver.impl.facadeimpl facade = new mj.rmiserver.impl.facadeimpl(); * amarra a instância de nosso objeto remoto a um nome * (examinaremos esse nome mais adiante) * e armazenamos isso no registro. * A classe java.rmi.naming é responsável por fornecedor métodos * para armazenar e obter objetos remotos no registro. java.rmi.naming.bind( mj.rmiserver.intf.facadeintf.jndi_name, facade ); synchronized (facade) { * chamada ao método wait() herdado de java.lang.object * para que nosso servidor fique esperando por requisições. * E fazemos isso dentro de um bloco sincronizado * pois queremos nosso servidor trabalhando de forma thread-safe. System.out.println( esperando por requisições... ); facade.wait(); catch (InterruptedException ie) { ie.printstacktrace(); catch (java.rmi.remoteexception re) { re.printstacktrace(); catch (Exception e) { e.printstacktrace(); public static void main(string[] args) { new ServerRMI(); 24

4 Copie o arquivo FacadeIntf.class para rmi_home/client/bin/mj/rmiserver/ intf para que possamos compilar a nossa classe cliente. Entre no diretório rmi_home/client/src e execute o seguinte comando: javac -cp.:../bin/ -d../bin/ mj/rmiclient/clientrmi.java Falta apenas um processo a fazer antes de executar nosso cliente: disponibilizar no classpath da aplicação cliente o stub gerado para o servidor que desenvolvemos há pouco. Ou seja, você deve copiar o artefato FacadeImpl_Stub para rmi_home/client/bin/mj/rmiserver/impl. Isso tornará a nossa árvore de diretórios para o cliente e servidor nas seguintes estruturas demonstradas nas figuras 3 e 4, respectivamente. Figura 3. Estrutura de diretórios e arquivos da nossa aplicação cliente. Listagem 4: mj.rmiclient.clientrmi package mj.rmiclient; public class ClientRMI { public ClientRMI(String host) { * procura por uma instância no servidor, passado na URL, * através de um nome (que mistério!) * utilizando o método lookup() da classe java.rmi.naming. Object remoteobject = java.rmi.naming.lookup( host + mj.rmiserver.intf.facadeintf.jndi_name ); * fazemos um casting do objeto retornado pela instrução * demonstrada na listagem 11. * Para essa operação precisamos utilizar a classe * javax.rmi.portableremoteobject para realizar uma chamada ao * seu método narrow(). * A Classe javax.rmi.portableremoteobject é a super classe do * nosso objeto remoto * ou foi utilizada para exportar o objeto para o registro no servidor. * O método narrow() assegura que o objeto retornado pelo lookup() * está de acordo com a interface passada no segundo argumento, * se a conversão não for apropriada, uma exceção será lançada. mj.rmiserver.intf.facadeintf facade = (mj.rmiserver.intf.facadeintf) javax.rmi.portableremoteobject.narrow( remoteobject, mj.rmiserver.intf.facadeintf.class ); * realizamos uma chamada como se tivéssemos uma instância local. System.out.println( Diga olá: + facade.sayhello() ); catch (Exception e) { e.printstacktrace(); public static void main(string[] args) { if (args.length < 1) { System.out.println( Uso: java ClientRMI <host> ); System.exit( 0 ); new ClientRMI( // + args[0] + / ); Figura 4. Estrutura de diretórios e arquivos da nossa aplicação servidora. Pronto! Com o servidor em funcionamento, basta entrar no diretório rmi_home/client/bin e executar o seguinte comando:: java -cp. mj/rmiclient/clientrmi localhost Caso tudo tenha ocorrido como o esperado, você deve ter a seguinte saída: Diga olá: Hello World! (Woohoo! Funcionou! :o) Melhorando o nosso exemplo Empacotando o servidor Para facilitar a disponibilização de nosso servidor RMI, podemos empacotar os bytecodes gerados em um arquivo JAR. Com esse propósito, vamos criar um arquivo para explicitar qual classe deve ser executada. Crie um arquivo texto de nome MANIFEST.MF dentro de rmi_home/server/ com o seguinte conteúdo: Main-Class: mj.rmiserver.serverrmi Agora vamos criar o pacote com a aplicação servidora. Entre no diretório 25

5 Professor J rmi_home/server/bin e execute o seguinte comando: jar -cvfm server.jar../manifest.mf. O comando acima criará o arquivo JAR server.jar dentro de rmi_home/server/bin. Resta-nos executar o arquivo JAR que acabamos de criar. Entre no diretório rmi_home/server/bin e execute o seguinte comando: java -jar server.jar Empacotando o cliente Para facilitar a disponibilização de nosso cliente RMI, podemos empacotar os bytecodes gerados em um arquivo JAR. Com esse propósito, vamos criar um arquivo para explicitar qual classe deve ser executada. Crie um arquivo-texto de nome MANIFEST.MF dentro de rmi_home/client/ com o seguinte conteúdo: Main-Class: mj.rmiclient.clientrmi Agora vamos criar o pacote com a aplicação cliente. Entre no diretório rmi_ home/client/bin e execute o seguinte comando: jar -cvfm client.jar../manifest.mf. O comando acima criará o arquivo JAR client.jar dentro de rmi_home/client/ bin. Resta-nos executar o arquivo JAR que acabamos de criar. Entre no diretório rmi_home/client/bin e execute o seguinte comando: java -jar client.jar localhost E novamente, caso tudo tenha ocorrido como o esperado, você deve ter a seguinte saída: Diga olá: Hello World! Nós poderíamos não adicionar os artefatos do nosso servidor (FacadeIntf e FacadeImpl_Stub) diretamente no pacote cliente (client.jar), disponibilizando-os em um pacote separado para facilitar a manutenção e redistribuição de ambas as aplicações: cliente e servidor. Mas isso nos levaria a um assunto paralelo à intenção inicial deste artigo. Java Naming and Directory Interface A JNDI API é responsável por fornecer um padrão para definição e localização através de um nome de recursos como EJBs, conexões JDBC, usuários, entre outros dentro de um determinado ambiente. A JNDI resolve o que deveria ser um problema para programadores Java: fornecedores diferentes com técnicas diferentes para trabalho sobre o serviço de nomes e diretórios. Usando unicamente a JNDI fazemos operações sobre serviços de nomes e diretórios de forma transparente. Isso significa que não nos importa saber se estamos acessando um Lightweight Diretory Access Protocol (LDAP) ou Network Information System (NIS) ou ainda Network Directory System (NDS). Com isso, basta aprender uma única API para acessar informações que estejam nos mais variados tipos de serviços de nomes e diretórios. Serviço de nomes Um nome se refere a uma entidade como pessoa ou objeto. O fato de se usar um nome é devido a ser mais usual e fácil. Quando você faz uma solicitação, por exemplo, ao website br um Domain Name System (DNS) é responsável por traduzir aquela URL ao endereço IP amarrado àquele nome. Outro bom exemplo é quando você solicita à sua operadora telefônica o número do telefone de uma determinada pessoa que você tem o nome. Então o serviço de nomes (naming service) permite que seja amarrada alguma coisa a um nome e também permite que seja feita uma busca por essa coisa através de seu nome. Serviço de diretórios Um diretório é um tipo de objeto (coisa) de atenção particular, pois ele pode conter atributos. Você pode procurar por um objeto que seja um diretório, como por exemplo, um usuário de rede que possui como atributos o seu nome de usuário e senha. Exemplos de serviços de diretórios (directory service) são o Microsoft Active Directory e o OpenLDAP. A sua estrutura de trabalho é organizar os diretórios em uma hierarquia conhecida como árvore. Um organograma é um exemplo dessa estrutura. Um serviço de diretórios se parece muito com bancos de dados. Em ambos, podemos armazenar informações e/ou consultar informações já previamente definidas. Muitos dos serviços de diretórios são implementados por bancos de dados por trás das cenas. Conclusão A intenção era apresentar-lhe o uso prático da RMI e para tal nós tínhamos que ter uma noção básica da API JNDI. Com este exemplo, foi mostrado que nada além da JDK, que possuímos, é necessário para construir uma aplicação distribuída em Java. Claro, dessa forma, é dever do programador implementar códigos para tratamento de transações, segurança, requisições simultâneas e balanceamento de carga, entre outros, fugindo um pouco de manter a atenção apenas no negócio do sistema. Por isso, além de outras coisas, existem os containers. Eles permitem que fiquemos focados apenas no negócio do sistema em questão. Agradecimentos A Henrique Winckler e a equipe da Mundoj pela Referências man. 26

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 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

Leia mais

SISTEMAS DISTRIBUÍDOS

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

Leia mais

Invocação de Métodos Remotos

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

Leia mais

Sistemas Distribuídos

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

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

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

Leia mais

Sistemas Distribuídos

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

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local

Leia mais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

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

Leia mais

Middleware de Aplicações Paralelas/Distribuídas

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

Leia mais

Invocação de Métodos Remotos RMI (Remote Method Invocation)

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

Leia mais

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla

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)

Leia mais

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 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

Leia mais

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)

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)

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

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

Leia mais

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 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

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Invocação de Objetos

Leia mais

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

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,

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

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

Leia mais

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática

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

Leia mais

UNIDADE IV ENTERPRISE JAVABEANS

UNIDADE IV ENTERPRISE JAVABEANS UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e

Leia mais

Enterprise Java Beans

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

Leia mais

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 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

Leia mais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

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

Leia mais

Adriano Reine Bueno Rafael Barros Silva

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

Leia mais

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 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:

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

Invocação de Métodos em Objectos Remotos

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

Leia mais

Java RMI. Alcides Calsavara

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

Leia mais

Fundamentos de JNDI. Paulo Pires - 2003

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

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

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

Leia mais

Aplicações Distribuídas Cliente/ Servidor Corporativas

Aplicações Distribuídas Cliente/ Servidor Corporativas Aplicações Distribuídas Cliente/ Servidor Corporativas Introdução Desenvolver e distribuir Servlets e aplicativos EJB. Desenvolver e distribuir aplicativos Enterprise JavaBeans (EJB). Introdução Simples

Leia mais

Capítulo V Sistemas de Objectos Distribuídos

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

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Java RMI

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

Leia mais

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 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

Leia mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

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

Leia mais

INE5380 - Sistemas Distribuídos

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

Leia mais

Objetos Distribuídos em Java

Objetos Distribuídos em Java J530 - Enterprise JavaBeans Objetos Distribuídos em Java Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivo O objetivo deste módulo é fornecer os pré-requisitos de computação distribuída necessários

Leia mais

Object Brokers. Tecnologias de Middleware 2004/2005 André Santos

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

Leia mais

Usando Borland DELPHI para implementar aplicações CORBA

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

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

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

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

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

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

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

Leia mais

Sistemas Distribuídos RPC Remote Procedure Call

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

Leia mais

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 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

Leia mais

Acesso direto. canal. System call. System call S.O.

Acesso direto. canal. System call. System call S.O. Inter-process Comunicação Communication(IPC) Memória entre compartilhada processos Java Sockets Sinais Pipes Comunicação Processos RMI Hardware Um processo oferece executam entre não acessa proteção processos

Leia mais

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos CORBA Common Object Request Broker Architecture Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos Introdução OMG (Object Management Group): uma organização formada por empresas

Leia mais

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

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

Leia mais

Enterprise Java Bean. Enterprise JavaBeans

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

Leia mais

Objetos Distribuídos. Nazareno Andrade

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

Leia mais

INF01018 Aula Prática 2 RMI Remote Method Invocation

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

Leia mais

Programação com Objetos Distribuídos e Componentes

Programação com Objetos Distribuídos e Componentes Programação com Objetos Distribuídos e Componentes Cláudio F. R. Geyer, Luciano Cavalheiro da Silva, Patrícia Kayser Vargas, Juliano Malacarne Resumo Universidade Federal do Rio Grande do Sul Instituto

Leia mais

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 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

Leia mais

Comunicação usando soquetes.

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

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER TÁSSIO JOSÉ GONÇALVES GOMES tassiogoncalvesg@gmail.com MINICURSO WINDOWS SERVER 2008 TÁSSIO GONÇALVES - TASSIOGONCALVESG@GMAIL.COM 1 CONTEÚDO Arquitetura

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

Java 2 Enterprise Edition Serviços de Localização

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

Leia mais

Java para Desktop. Introdução à Plataforma Java JSE

Java para Desktop. Introdução à Plataforma Java JSE Introdução à Plataforma Java JSE Aécio Costa aeciovc@gmail.com @aeciovc Objetivos Sintaxe Java; Programação Orientada à Objetos; Interfaces Gráficas Swing; JDBC; Gerador de Relatórios IReport; Projeto

Leia mais

Arquiteturas de Aplicações Distribuídas

Arquiteturas de Aplicações Distribuídas Arquiteturas de Aplicações Distribuídas Fernando Albuquerque 061-2733589 fernando@cic.unb.br www.cic.unb.br/docentes/fernando Tópicos Introdução. HTTP / CGI. API sockets. JDBC. Remote Method Invocation.

Leia mais

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

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

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 1: Introdução MEEC@IST Java 1/27 História versões (1) [1995] Versão 1.0, denominada Java Development Kit (JDK) 212 classes em 8 pacotes Lento, muitos bugs, mas com Applets

Leia mais

A interface de uma mensagem é extremamente flexível e permite várias formas de customização de conteúdo. Figura 1 - Tipos de Mensagens JMS

A interface de uma mensagem é extremamente flexível e permite várias formas de customização de conteúdo. Figura 1 - Tipos de Mensagens JMS Programando com Java Artigo http://mballem.wordpress.com/ Chat JMS com ActiveMQ Java Message Service Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle Certified Professional,

Leia mais

TDC2012. EJB simples e descomplicado, na prática. Slide 1

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

APÊNDICE A EXEMPLO DE APLICAÇÃO

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

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

Cliente/Servidor. Objetos Distribuídos. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Objetos Distribuídos. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Objetos Distribuídos Graça Bressan Graça Bressan/LARC 2000 1 Objetos São entidades de software que encapsulam dados, ou atributos, e código e que são acessados através de funções ou métodos.

Leia mais

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1 EJB Session Beans J2EE (C. Geyer) Introdução a SessionBean 1 Autores! Autores " Cláudio Geyer " Eduardo Studzinski Estima de Castro (EJB 3.0) " Gisele Pinheiro Souza (EJB 3.0) J2EE (C. Geyer) Introdução

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

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 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

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services (continuação) WSDL - Web Service Definition Language WSDL permite descrever o serviço que será oferecido

Leia mais

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

Laboratório EJB e J2EE Uma aplicação completa

Laboratório EJB e J2EE Uma aplicação completa J530 - Enterprise JavaBeans Laboratório EJB e J2EE Uma aplicação completa Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

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

Leia mais

Um pouco do Java. Prof. Eduardo

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.

Leia mais

Sistemas Distribuídos

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

Leia mais

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010 Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010 Primeira Dica Afirmação O que é Java? Características do Java Como Java Funciona Plataforma Java Edições Java Java SE Java EE Java ME

Leia mais

Java 2 Enterprise Edition RMI-IIOP e Enterprise JavaBeans

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

Leia mais

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006 Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006 NOTAS:

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Threads e Concorrência em Java (Material de Apoio)

Threads e Concorrência em Java (Material de Apoio) Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

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

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementaçã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

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres Linguagem de Programação Orientada a Objeto Introdução a Orientação a Objetos Professora Sheila Cáceres Introdução a Orientação a Objetos No mundo real, tudo é objeto!; Os objetos se relacionam entre si

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

Java 2 Enterprise Edition Uma aplicação J2EE completa

Java 2 Enterprise Edition Uma aplicação J2EE completa Java 2 Enterprise Edition Uma aplicação J2EE completa Helder da Rocha www.argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE completa Inicialmente, será mostrada

Leia mais

Objetos distribuídos. Roteiro. Java IDL

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

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais