Remote Method Invocation (RMI)

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

Download "Remote Method Invocation (RMI)"

Transcrição

1 Remote Method Invocation (RMI) November 1, 2009 Sumário RMI Conceito Implementação Exemplos Java RMI Características Objectos Remotos e Interfaces Remotas Implementação de Java RMI Argumentos e serialização Transferência de código Localização de objectos remotos Segurança Tempo de vida dum objecto remoto Passos no desenvolvimento de aplicações Transferência de código

2 Sumário RMI Conceito Implementação Exemplos Java RMI Características Objectos Remotos e Interfaces Remotas Implementação de Java RMI Argumentos e serialização Transferência de código Localização de objectos remotos Segurança Tempo de vida dum objecto remoto Passos no desenvolvimento de aplicações Transferência de código RMI e RPC RPC significou um passo muito grande em direcção à transparência de distribuição na programação: a maior parte do código que mostra a natureza distribuída da aplicação pode ser: gerada automaticamente, p.ex. por rpcgen; isolada da parte restante do código; o código (texto) a desenvolver pelo programador praticamente não depende da distribuição, e o programador pode quase ignorá-la: embora esta prática seja questionável. Com a adopção generalizada da programação baseada em objectos, estender RPCs a objectos era inevitável: RMI (Remote Method Invocation) é RPC baseada em objectos.

3 Programação Distribuída Baseada em Objectos O conceito de objecto é especialmente adaptado para aplicações distribuídas. Um objecto agrega os dados e as operações que operam sobre esses dados. Objectos podem residir em diferentes computadores, ligados por uma rede. A interação entre objectos é feita através de invocação remota de métodos (remote method invocation), i.e. RPC para objectos: Computador 1 Objecto Computador 2 Objecto Dados Metodos Dados Metodos Objecto Objecto Dados Metodos Dados Metodos Invocação Local vs. Invocação Remota process Local MI Remote MI object host Um caso particular da invocação remota envolve objectos em processos diferentes do mesmo computador. Note-se que cada objecto reside apenas num processo, i.e. o estado dos objectos não é distribuído.

4 Transparência do Cliente e Proxy-Objects A invocação dum método num objecto remoto deverá ser feita de modo semelhante à invocação dum método num objecto local. Com RPCs, o truque é invocar uma função local o client stub a qual se encarrega da comunicação entre processos. Com RMI, o truque é invocar o método sobre um objecto local o proxy object, o qual não executa o método, mas encarrega-se de o passar ao objecto remoto. Transparência do Lado do Servidor e Skeletons A transparência do lado do servidor é conseguida com recurso ao conceito de skeleton. O skeleton é um objecto que: extrai (unmarshals) os argumentos da mensagem recebida e invoca o método apropriado do objecto invocado (local); constrói a mensagem resposta com os resultados da invocação do método e envia-la.

5 RMI: Arquitectura de Implementação Client machine Server machine Client invokes a method Client Proxy Client OS Same interface as object Skeleton invokes same method at object Server Skeleton Server OS Object State Method Interface Network Marshalled invocation is passed across network Alternativamente, a funcionalidade do skeleton pode ser implementada pela classe do objecto remoto. RMI - Exemplos CORBA RMI Heterogeneidade é a característica distintiva. O objecto e o cliente podem ser implementados usando linguagens diferentes: Para o efeito, CORBA define uma Interface Definition Language (IDL), funcionalmente análoga a RPCL. CORBA suporta inclusivamente linguagens não-baseadas em objectos, como C ou Cobol. Java RMI Dependente da linguagem.

6 Sumário RMI Conceito Implementação Exemplos Java RMI Características Objectos Remotos e Interfaces Remotas Implementação de Java RMI Argumentos e serialização Transferência de código Localização de objectos remotos Segurança Tempo de vida dum objecto remoto Passos no desenvolvimento de aplicações Transferência de código Java RMI: Características (1/2) Integrada na linguagem Java: mais fácil de usar não há necessidade de usar linguagens de especificação de interfaces, p.ex. Interface Definition Language (IDL) em CORBA. Invocação de métodos remotos usa a mesma sintaxe que a invocação de métodos locais, mas... Distribuição dos objectos é exibida intencionalmente: a invocação dum método remoto pode assinalar uma excepção RemoteException. para que os métodos dum objecto possam ser invocados remotamente, a classe correspondente deverá implementar uma interface remota.

7 Java RMI: Características (2/2) Benificia da mobilidade de: código (classes); objectos; entre computadores suportada por Java. Distributed Garbage Collection: um objecto desaparece automaticamente quando não pode ser acedido. Objectos Remotos e Interfaces Remotas Objectos remotos são objectos cujos métodos podem ser invocados duma JVM diferente daquela onde residem. Um objecto remoto tem que implementar uma interface remota, i.e. o seu tipo é um subtipo da interface Remote: Permite que o compilador de Java gere o código necessário para realizar a comunicação entre objectos em JVMs distintas. A não-localidade dum objecto remoto é exposta aos programadores dos clientes : Todos os métodos da interface Remote têm que assinalar RemoteExceptions. Um objecto remoto pode incluir métodos não invocáveis remotamente: Só métodos declarados em interfaces remotas podem ser invocados remotamente.

8 Remote Interface: Exemplo A interface remota dum servidor de eco pode ser: import java.rmi.remote; import java.rmi.remoteexception; public interface Echo extends Remote { String echo(string str) throws RemoteException; } Esta interface suporta um único método remoto: echo, o qual retorna a string que lhe é passada como argumento. O método echo dum objecto que implemente esta interface pode ser invocado remotamente. I.e., pode ser invocado por um objecto a executar numa máquina virtual de Java (JVM) diferente. Acesso a Objectos Remotos Para usar um objecto remoto, um cliente tem que conhecer a interface remota desse objecto: i.e. os métodos desse objecto que podem ser invocados remotamente. A sintaxe de invocação de métodos remotos é semelhante à de invocação de métodos locais: Echo montanha =...; // lookup montanha String eco; try { eco = montanha.echo( Uh! Uh! ); } catch ( RemoteException e) {... } Contudo, os clientes têm que processar excepções do tipo RemoteException.

9 Exemplo: Implementação da interface Echo import java.rmi.*; import java.rmi.server.unicastremoteobject; public class Echo_Impl extends UnicastRemoteObject implements Echo { public Echo_Impl() throws RemoteException { super(); /* Actually this is not needed */ } } public String echo(string str) { return str; } Java RMI e a JVM A JVM não conhece objectos remotos: A JVM só suporta a invocação de métodos sobre objectos locais. Java RMI é uma camada de SW sobre a JVM, não faz parte dela. Java RMI implementa RMI usando os mecanismos do costume: stubs do lado do cliente; skeletons do lado do servidor.

10 Java RMI Stubs Em Java RMI, o stub dum objecto remoto é um objecto local (em relação ao cliente) que representa esse objecto remoto. Daí a designação comum de proxy object. Uma referência remota é, de facto, uma referência para o stub correspondente. O stub dum objecto remoto; implementa a sua interface remota contém o seu endereço Essencialmente, as tarefas executadas pelo stub são: 1. marshalling dos argumentos do método; 2. envio do pedido de execução do método através da rede ; 3. recepção da resposta; 4. unmarshalling do resultado da invocação. Java RMI Servers (1/2) Na primeira versão de Java RMI, a funcionalidade do lado do objecto remoto foi repartida por 2 tipos de objectos: objectos do tipo RemoteServer executam o processamento que é independente da interface remota: p.ex., esperar pela recepção de pedidos de invocação. objectos do tipo skeleton executam o processamento que depende da interface remota: unmarshalling dos argumentos; invocação do método do objecto remoto; marshalling dos resultados.

11 Java RMI Servers (2/2) A partir de Java 1.2, objectos do tipo skeleton deixaram de ser necessários: objectos do tipo RemoteServer passaram a ser capazes de fazer também as tarefas dos skeleton. Java RMI oferece a classe UnicastRemoteObject, a qual estende RemoteServer, e oferece funcionalidade mínima para aplicações baseadas em RMI: O objecto termina quando o processo que o criou termina. Usa TCP na comunicação com os clientes. Argumentos de Métodos Remotos Os argumentos de ou o valor retornado por um método remoto podem ser: 1. tipos simples. Por exemplo, boolean, char, byte, short, int, long, float ou double; 2. objectos remotos, i.e. que implementam a interface Remote; 3. objectos locais serializáveis, i.e. que implementam a interface Serializable (incluindo, Strings e arrays). No caso de objectos locais, RMI passa uma cópia do objecto: como o objecto é serializável tal é possível; note-se que Java RMI não actualiza o objecto passado caso o método remoto o tenha modificado. Atenção: Uma referência para um objecto remoto é de facto uma referência para o objecto proxy respectivo.

12 Objectos Remotos vs Objectos Serializáveis Machine A Machine B Local reference L1 Local object O1 Remote reference R1 Remote object O2 Client code with RMI to server at C (proxy) New local reference Copy of O1 Remote invocation with L1 and R1 as parameters Machine C Copy of R1 to O2 Server code (method implementation) Na prática é como se objecto remoto O2 fosse passado por referência, enquanto que o objecto local (serializável) O1 é passado por valor. Semânticas diferentes, transparência turva. Serialização em Java (1/2) Java RMI usa o mecanismo de serialização de Java para passar os argumentos e o valor retornado. Em Java, serialização dum objecto consiste na conversão desse objecto numa sequência de bytes de modo a permitir: o seu armazenamento no disco, para posterior reincarnação; ou a sua migração para uma outra JVM. A reconstituição dum objecto a partir da sua representação serializada designa-se por deserialização. Para que um objecto seja serializável deverá implementar a interface java.io.serializable. A JVM implementa um procedimento de serialização por omissão que pode ser usado pela grande maioria dos objectos: desde que a definição da sua classe declare que implementa a interface java.io.serializable.

13 Serialização em Java (2/2) Se um objecto tiver campos que são referências para outros objectos, estes últimos deverão ser serializáveis para que o primeiro também o seja: para serializar o primeiro objecto, há que serializar os outros; cada objecto só é serializado uma vez, mesmo que seja referenciado múltiplas vezes. Por razões de eficiência, os métodos duma classe não são incluídos na sequência de bytes criada pela serialização: a JVM inclui apenas um identificador da classe a que o objecto pertence. Class Downloading em Java e RMI Problema: Como é que um método remoto pode invocar o método dum objecto não remoto que lhe é passado como argumento? Os métodos dum objecto não fazem parte da sua representação serializada. Solução: Usando as facilidades de transferência de código em Java: Note-se que esta transferência pode não ser necessária, se a classe estiver disponível localmente. A capacidade de transferência de classes através da rede pode também ser usada pelo cliente para carregar o proxy object. não há necessidade de manter todas as classes em todos os computadores;

14 Localização dum Objecto O acesso a um objecto remoto é feito usando uma referência para um proxy desse objecto: montanha.echo() Problema: como é que se obtém uma referência remota, i.e. para o proxy dum objecto remoto? Tecnicamente, através do valor de retorno dum método. Solução: semelhante ao portmapper de RPC: Java RMI oferece um serviço de nomes básico: o rmiregistry. O rmiregistry é um programa e tem que executar nos computadores que disponibilizam objectos remotos. O servidor regista o objecto com um nome (binds) no rmiregistry local. O cliente solicita uma referência para um objecto remoto ao rmiregistry no computador onde o objecto reside. O rmiregistry e a Interface Registry O rmiregistry é uma aplicação que implementa a interface Registry: void rebind(string name, Remote obj); void bind(string name, Remote obj); void unbind(string name, Remote obj); Remote lookup(string name); String []list(); Se incorrectamente usado, o rmiregistry pode impedir o uso de classes importadas : If you do start the rmiregistry and it can find your stub classes in CLASSPATH, it will not remember that the loaded stub class can be loaded from your server s code base,[...], do Tutorial on-line da Sun sobre RMI.

15 A classe Naming Permite aceder a objectos que implementam Registry. Suporta os seguintes métodos: void rebind(string name, Remote obj); void bind(string name, Remote obj); void unbind(string name, Remote obj); Remote lookup(string name); String []list(); onde name é um URL sem o método de acesso: //computername:port/objectname sendo //computername:port/ a localização do rmiregistry. bind() difere de rebind() na medida em que assinala uma excepção se name já tiver sido registado. O rmregistry não é um servidor global: O cliente tem que saber onde se encontra o objecto. Exemplo: Registo e Localização do Objecto O servidor tem que registar o objecto remoto: Echo montanha; try { montanha = new Echo_Impl(); Naming.rebind( alpes, montanha);... } catch ( RemoteException e) {... } O cliente tem que o localizar (em i01co2213): Echo montanha; try { montanha = Naming.lookup( //i01co2213/alpes );... } catch ( RemoteException e) { // Naming.lookup() is RMI... }

16 Arquitectura de Java RMI RMI Client 5. return stub class 4. request stub class Web server 2. lookup object 3. return object reference 7. return result 6. remote invocation RMIregistry 1. register object RMI server RMI e Segurança Problema: Java RMI pode exigir a transferência de código (classes) de máquinas remotas: este código é uma potencial ameaça à segurança. Solução: Usar um Security Manager: um objecto que controla o acesso aos recursos locais. Java 1.0 suportava um modêlo de segurança do tipo sandbox: Código local não tinha restrições, para além das impostas pelo SO; Código importado só podia aceder aos recursos (limitados) disponíveis na sandbox. A partir de Java 1.2 pode-se sujeitar todo o código, independentemente de ser ou não local, a controlo de acesso, sendo este determinado pela security policy em vigor.

17 Política de Segurança (Security Policy) e Permissões A política de segurança define as permissões de código com base na sua origem, sendo configurável quer pelo utilizador quer pelo administrador. Cada permissão especifica o tipo de acesso permitido a um determinado recurso, tal como: Lêr ou escrever um ficheiro ou directório. Estabelecer uma conexão para um determinado endereço IP e porto. Algumas operações sobre a própria JVM requerem permissões: Substituir o ClassLoader. Substituir o SecurityManager. Alterar a política de segurança. Permissões Internamente, permissões são objectos. P.ex.: java.io.filepermission Uma permissão tipicamente tem: Nome, que identifica o recurso a que se aplica; Lista de acções, que especifica as operações permitidas. permissão nome lista de acções java.io.filepermission /usr/lib/- read, execute java.net.socketpermission abc.com:54321 connect java.security.securitypermission setpolicy java.lang.runtimepermission createclassloader java.lang.runtimepermission setsecuritymanager Uma política de segurança é um conjunto de permissões, que determinam que operações um segmento de código pode executar. Naturalmente, a política de segurança é representada por um objecto (java.security.policy).

18 Inicialização do java.security.policy Na implementação referência, este objecto pode ser inicializado a partir de vários ficheiros de configuração. Por omissão usa: Um ficheiro de configuração para todo o sistema: ${java.home}/lib/security/java.policy Um ficheiro de configuração por utilizador: ~/.java.policy O ficheiro de configuração das propriedades de segurança permite especificar ainda outros ficheiros de configuração. ${java.home}/lib/security/java.security O ficheiro com a política de segurança pode ainda ser especificado quando da invocação da JVM: java -Djava.security.policy=somefile... Se a propriedade policy.allowsystemproperty o permitir pode ser activada no ficheiro de configuração das propriedades de segurança. Sintaxe dos Ficheiros de Políticas Consiste numa lista de elementos (entries): keystore é opcional (não usaremos, pelo menos para já); grant clausúla usada para especificar as permissões de código de acordo com algumas propriedades (consideraremos apenas a sua origem): Tem o seguinte formato (de facto omite regras): grant [codebase <URL>] { permission <class_name> <target> [, <action>];... } onde: codebase especifica a origem do código; permission especifica uma permissão, podendo um elemento grant incluir várias permissões. Pode ocorrer uma ou mais vezes.

19 Sintaxe dos Ficheiros de Políticas: Exemplos grant { permission java.net.socketpermission "*:1024-", "connect,accept"; permission java.net.socketpermission "abc.com:*", "connect,accept"; permission java.io.filepermission "/home/ann/public_html/classes/-", "read"; permission java.io.filepermission "/home/jones/public_html/classes/-", "read"; }; grant codebase " { permission java.security.allpermission; } policytool é uma aplicação que faz parte do J2SDK que oferece um GUI para auxiliar a edição de ficheiros de políticas. Security Manager (1/2) O Security Manager é um objecto que garante o cumprimento da política de segurança. Consiste apenas num conjunto de métodos, tais como: public void checkpermission(permission perm) throws SecurityException public void checkcreateclassloader( ) throws SecurityException Normalmente, um thread só pode executar uma operação se todos os métodos activos que invocou tiverem permissão para a executar. Tipicamente essa decisão é baseada na origem do código. Estes métodos são invocados por outros objectos quando executam certas operações. O Security Manager é um Reference Monitor.

20 Security Manager (2/2) O SecurityManager não é instalado por omissão. A instalação do SecurityManager pode ser feita: Pelo interpretador (JVM): java -Djava.security.manager... Pelo código:... System.setSecurityManager(new SecurityManager());... A política imposta pelo SecurityManager pode ser configurada através dos ficheiros de especificação da SecurityPolicy. O código do sistema invoca os métodos checkxxx do SecurityManager se este estiver instalado: Estes métodos por sua vez invocam o método checkpermission() do AccessController. Access Controller A partir de Java 1.2, o java.security.accesscontroller é a classe que, de facto, garante o cumprimento da política de segurança. Por concepção é mais fácil flexível que o SecurityManager e está sempre instalado (só static). Implementa uma política razoavelmente restritiva que pode ser usada na maioria dos casos. Naturalmente, pode invocar-se directamente da aplicação os métodos do AccessController. FilePermission perm = new FilePermission("/tmp/testFile", "read"); AccessController.checkPermission(perm); Se a política de segurança implementada pelo AccessController não fôr adequada, pode ser adaptada criando subclasses do java.lang.securitymanager Estas subclasses devem invocar os métodos do AccessController, sempre que tal faça sentido.

21 java.rmi.rmisecuritymanager java.rmi.rmisecuritymanager é uma sua subclasse do java.lang.securitymanager: Implementa exactamente os mesmos métodos. O RMISecurityManager deve ser usado com RMI sempre que há necessidade de transferir código dum computador remoto: O RMI class loader recusa-se a carregar qualquer classe, se não houver um Security Manager. O RMISecurityManager pode ser instalado de 2 modos: Através do código:... System.setSecurityManager(new RMISecurityManager());... Através da linha de comando: java -Djava.security.manager=java.rmi.RMISecurityManager... Arquitectura de Segurança em Java O Security Manager não é a história toda: Class repository Loaded class object Class verifier Class repository Java program Request class Loader for local classes Java interpreter Loader for remote classes Select appropriate loader Local site Remote site

22 Tempo de Vida dum Objecto Remoto A vida dum objecto chega ao fim quando deixa de ser referenciado: sem qualquer referência para o objecto, não é possível aceder-lhe. Para objectos locais: o garbage collector da JVM automaticamente detecta quando um objecto deixa de ser referenciado e liberta os recursos; quando a JVM termina, todos os objectos locais terminam. Para objectos remotos: as diferentes JVMs executam um algoritmo distribuído para fazer garbage collection; quando uma JVM termina, objectos remotos por ela criados podem não terminar. Por exemplo, o RMIregistry mantém uma referência para todos os objectos nele registados. Passos no Desenvolvimento com Java RMI 1. Concepção e implementação de servidor e clientes. Definição da interface remota, i.e. dos métodos que podem ser invocados remotamente. Implementação de objectos remotos, os quais devem implementar a interface remota definida. Implementação de clientes. 2. Compilação do código e geração de stubs: a compilação do código é feita usando javac; os stubs, a usar pelo cliente, podem ser gerados usando o rmic a partir do ficheiro.class da implementação: rmic Echo_Impl Nota: A partir de Java 5.0, Java RMI suporta a geração dinâmica de stubs. 3. Disponibilização do código, por exemplo num servidor HTTP: classes que precisem ser carregadas (downloaded) incluindo os stubs devem ser disponibilizadas num servidor HTTP.

23 RMI e Uploaded Code Aplicações (clientes ou servidores) que podem transferir código deverão instalar um Security Manager: import java.rmi.*; public class Echo_Client { public static void main(string[] args) { if(args.length!= 2) { System.out.println("Usage: java Echo_Client " + "srv_hostname obj_name"); return; } System.setSecurityManager(new RMISecurityManager()); try {... Se o código do stub pode ser uploaded há que inicializar a propriedade java.rmi.server.codebase na aplicação servidora, p.ex.: java -Djava.rmi.server.codebase= Atenção ao rmiregistry Arquitectura de Java RMI RMI Client 2. lookup object 3. return object reference RMIregistry 5. return stub class 4. request stub class 7. return result 1. register object Web server 6. remote invocation RMI server

24 Sumário RMI Conceito Implementação Exemplos Java RMI Características Objectos Remotos e Interfaces Remotas Implementação de Java RMI Argumentos e serialização Transferência de código Localização de objectos remotos Segurança Tempo de vida dum objecto remoto Passos no desenvolvimento de aplicações Transferência de código Leitura Adicional Capítulo 10 de Tanenbaum e van Steen, Distributed Systems, 2nd Ed. Secção 10.1 Architecture, excepto Subsecção Secção 10.3 Communication, excepto Subsecção Java RMI Specification, da Sun Java Security Overview, da Sun, Secções 1, 2 e 8 Security Policy in Java SE 6, da Sun Permissions in Java SE 6, da Sun

RMI e RPC. RPC significou um passo muito grande em direcção à

RMI e RPC. RPC significou um passo muito grande em direcção à Sumário RMI Conceito. Arquitectura de Implementação. Java RMI Características. Interfaces e Objectos Remotos JVM e Java RMI. Passagem de Argumentos e Serialização. Class Downloading. 1 RMI e RPC RPC significou

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

Leia mais

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Sistemas Operacionais II

Sistemas Operacionais II Modelo orientado a objetos: uma pequena revisão Instituto de Informátic ca - UFRGS Sistemas Operacionais II Modelos para programação distribuída (Remote Method Invocation) Aula 14 Programa é visto como

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

Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR n n n n Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança Callbacks Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Estende o modelo de objeto Java para fornecer suporte

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos RPC Remote Procedure Call 1 Fonte: Alcides Calsavara e Thais V. Batista Chamada de Procedimentos Remotos (RPC) Motivação: comunicação baseada em operações de entrada/saída Ideal:

Leia mais

JavaTM RMI - Remote Method Invocation

JavaTM RMI - Remote Method Invocation JavaTM RMI - Remote Method Invocation Java e Engenharia de Software Orientada a Objetos por Jorge H. C. Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Julho de 1999 Objetivos desta Aula Mostrar o modelo de

Leia mais

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

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 (jpalmeida@inf.ufes.br) Rede A Rede B Rede C 2015/01 - INF02799 Sistema

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 "

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar - Aula 5 - PROGRAMAÇÃO DISTRIBUÍDA COM RMI 1 (Remote Method Invocation) 1. INTRODUÇÃO Sistemas distribuídos necessitam que aplicações, executando em vários espaços de endereçamento, normalmente em diferentes

Leia mais

Sistemas de Objectos Distribuídos

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 Paula

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

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture OMG: Object Management Group. Organização internacional, sem fins lucrativos, fundada em 1989. Mais de 800 membros (incluindo fabricantes de sistemas, produtores

Leia mais

Implementação de um Sistema de Objetos Remoto baseado em Java RMI. Ricardo Couto Antunes da Rocha INF/UFG

Implementação de um Sistema de Objetos Remoto baseado em Java RMI. Ricardo Couto Antunes da Rocha INF/UFG Implementação de um Sistema de Objetos Remoto baseado em Java RMI Ricardo Couto Antunes da Rocha INF/UFG Declaração da Interface do Objeto Remoto Declaração de uma interface Java, com os métodos que são

Leia mais

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Prof. Tiago Garcia de Senna Carneiro Sistemas Distribuídos - 2006 Conteúdo Passos para implementar um aplicação RMI Executando e compilando uma aplicação RMI Exemplo:

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Chamada Remota de Procedimento março de 2019 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e

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

INTRODUÇÃO. RPC x RMI

INTRODUÇÃO. RPC x RMI 1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.

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

Principais conceitos de CORBA

Principais conceitos de CORBA Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem

Leia mais

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

Java RMI (parte I) Luís Lopes DCC-FCUP

Java RMI (parte I) Luís Lopes DCC-FCUP (parte I) Luís Lopes DCC-FCUP RMI (Remote Method Invocation) é uma API que permite a implementação de aplicações distribuídas baseadas em objectos o objectivo principal dos arquitectos da API era o de

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

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

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI Sistemas Distribuídos: Conceitos e Projeto RPC e 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 15 de abril

Leia mais

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC: Número: Nome: Página 1 de 7 LEIC/LETI 2016/17, Repescagem do 1º Teste de Sistemas Distribuídos 4 de julho de 2017 Responda no enunciado, usando apenas o espaço fornecido. Identifique todas as folhas. Uma

Leia mais

Nomes. Sumário. November 2, O Problema. Conceitos Fundamentais. Espaço de Nomes. Rsolução de Nomes

Nomes. Sumário. November 2, O Problema. Conceitos Fundamentais. Espaço de Nomes. Rsolução de Nomes Nomes November 2, 2009 Sumário O Problema Conceitos Fundamentais Espaço de Nomes Rsolução de Nomes Localização do Servidor/Objectos Problema: Como é que um cliente sabe onde se encontra o servidor? Solução:

Leia mais

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução Grupo RPC Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC. const

Leia mais

Protocolo Request-Reply

Protocolo Request-Reply n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Características de

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 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com

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

Arquitecturas Alternativas. Java Virtual Machine

Arquitecturas Alternativas. Java Virtual Machine Arquitecturas Alternativas Java Virtual Machine Compilação da linguagem Java A linguagem Java é uma linguagem interpretada que é executada por uma máquina virtual software denominada JVM (Java Virtual

Leia mais

Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC.

Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC. Número: Nome: Página 1 de 7 LEIC/LERC 2012/13, 1º Teste de Sistemas Distribuídos, 16 de Abril de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Chamada Remota de Procedimento abril de 2017 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e

Leia mais

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21 Sistemas de Objetos Distribuídos Primeira Aplicação Java ORB Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosPrimeira Aplicação

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

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

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

Chamada Remota de Procedimento (RPC)

Chamada Remota de Procedimento (RPC) Chamada Remota de Procedimento (RPC) cont semântica de chamadas pelo menos uma vez no máximo uma vez exatamente uma vez relação com protocolo subjacente falhas e reinicializações de servidores funções

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

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação? Número: Nome: Página 1 de 7 LEIC/LETI 2013/14, 1º Teste de Sistemas Distribuídos, 29 de Março de 2014 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo

Leia mais

Comunicação Objetos Distribuídos e RMI

Comunicação Objetos Distribuídos e RMI Sistemas Distribuídos Comunicação Objetos Distribuídos e RMI - Parte 2 - Instituto de Informática UFG Verão 2005 Baseado em: Tanenbaum, Capítulo 2 Chamadas de Objetos: Chamadas Remotas e Chamadas Locais

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

Sistemas Distribuídos 2013/14

Sistemas Distribuídos 2013/14 CORBA CORBA Tem origem no Object Management Group (OMG) criado em 1989 Modelo Conceptual é uma síntese entre o modelo cliente servidor e as arquitecturas de objectos A proposta original do Corba -Object

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

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

Paradigmas de Computação Paralela

Paradigmas de Computação Paralela Paradigmas de Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho 9 Novembro 2017 Paradigmas de Computação Paralela

Leia mais

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Middleware de Aplicações Paralelas/Distribuídas

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Middleware de Aplicações Paralelas/Distribuídas Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro

Leia mais

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Invocação Remota. Prof. Leonardo Barreto Campos.   1/29 Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os

Leia mais

Objetos Distribuídos e

Objetos Distribuídos e Objetos Distribuídos e Invocação Remota Invocação de Métodos Remotos com Java RMI Cap.5 Distributed Systems: Concepts and Design, George Coulouris, Jean Dollimore, Tim Kindberg 4 th Edition Objetivos Estudar

Leia mais

Aspectos para Construção de Aplicações Distribuídas

Aspectos para Construção de Aplicações Distribuídas Aspectos para Construção de Aplicações Distribuídas Cristiano Amaral Maffort maffort@gmail.com Programa de Pós-Graduação em Informática PUC Minas Belo Horizonte MG 12 de junho de 2007 Middleware Objetivo:

Leia mais

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

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

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

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

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que, um programa em JAVA deve poder ser executado em qualquer tipo de computador sem ter que ser alterado ou compilado novamente. Em Java o código

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que, um programa em JAVA deve poder ser executado em qualquer tipo de computador sem ter que ser alterado ou compilado novamente. Em Java o código

Leia mais

Trabalho Final de Mestrado Profissional

Trabalho Final de Mestrado Profissional Uma Comparação entre Diversas Tecnologias de Comunicação de Objetos Distribuídos em Java Carlos Eduardo Calabrez Trabalho Final de Mestrado Profissional i Instituto de Computação Universidade Estadual

Leia mais

Resumo das Propriedades de UDP e de TCP

Resumo das Propriedades de UDP e de TCP Relembrando... Processos duma aplicação distribuída comunicam via mensagens. O formato e o significado destas mensagens depende do protocolo usado. As mensagens são transportadas entre processos através

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

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ção de Métodos em Objectos Remotos Um sistema de objectos distribuídos é uma extensão ao conceito de RPC Um objecto invoca um método noutro objecto localizado

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído? network link: Tecnologias de Distribuição e Integração ISP intranet backbone desktop computer: server: satellite link no interior de uma organização (intranet) clientes externos entre organizações 2 Quais

Leia mais

Projecto hipotético para resolvermos hoje

Projecto hipotético para resolvermos hoje Projecto hipotético para resolvermos hoje 12/13 Sistemas Distribuídos 1 Projecto hipotético para resolvermos hoje Implementar servidor de contagem que mantém contador e oferece estas operações aos clientes:

Leia mais

Chamada Remota de Métodos. Marco Túlio de Oliveira Valente

Chamada Remota de Métodos. Marco Túlio de Oliveira Valente Chamada Remota de Métodos Marco Túlio de Oliveira Valente Middleware Desenvolver uma aplicação distribuída é mais difícil do que desenvolver uma aplicação centralizada Problemas típicos: comunicação, heterogeneidade,

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

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

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs 2002-2003 Carlos A. G. Ferraz 2 Serviço de Nomes CORBA Páginas Brancas Permite encontrar objetos através de nomes Nomes Referência de

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

Métodos em Objectos Remotos

Métodos em Objectos Remotos 1 Métodos em Objectos Remotos Invocação de Métodos em Objectos Remotos Um sistema de objectos distribuídos é uma extensão ao conceito de RPC Um objecto invoca um método noutro objecto localizado remotamente.

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis

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

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática Programação Orientada a Objectos - 25/26; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador

Leia mais

Replicação. Modelos de Consistência.

Replicação. Modelos de Consistência. Replicação. Modelos de Consistência. December 1, 2009 Sumário Introdução Questões Centrais da Replicação Modelos de Consistência Replicação O que é? O uso de múltiplas cópias de dados ou serviços (e estado

Leia mais

STD29006 Sistemas Distribuídos

STD29006 Sistemas Distribuídos STD29006 Sistemas Distribuídos Comunicação II Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/std 05 de setembro

Leia mais

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. P. Fazendeiro & P. Prata POO FP0/1 ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

Replicação. Protocolos. June 2, 2010

Replicação. Protocolos. June 2, 2010 Replicação. Protocolos. June 2, 2010 Sumário Arquitectura Protocolos baseados em Primário Protocolos de Escrita Replicada Protocolos para client-centric consistency Leitura Adicional Sumário Arquitectura

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Orientação a Objetos Encapsulamento: Parte interna (privada) dos objetos Implementação: métodos Estado: atributos, variáveis,

Leia mais

Sistemas Distribuídos Aula 10

Sistemas Distribuídos Aula 10 Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido

Leia mais

Programação Paralela OO. projeto ProActive www-sop.inria.fr/oasis/proactive/home.html

Programação Paralela OO. projeto ProActive www-sop.inria.fr/oasis/proactive/home.html Programação Paralela OO projeto ProActive www-sop.inria.fr/oasis/proactive/home.html motivação integracão de programacão paralela e distribuida com POO programacão mpi-like trabalha em baixo nivel de abstracão

Leia mais

Chamada Remota de Procedimento (RPC)

Chamada Remota de Procedimento (RPC) Chamada Remota de Procedimento (RPC) cont semântica de chamadas pelo menos uma vez no máximo uma vez exatamente uma vez relação com protocolo subjacente falhas e reinicializações de servidores funções

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

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores

Leia mais

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos Número: Nome: LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos 8 de Setembro de 2008 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo

Leia mais