Invocação de Métodos em Objectos Remotos

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Invocação de Métodos em Objectos Remotos"

Transcrição

1 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 remotamente. Num sistema de objectos o RPC designa-se normalmente Remote Method Invocation ou RMI A IDL é uma linguagem orientada aos objectos tipicamente baseada em C++, Java, ou C#.

2 Diferenças Relevantes Reutilização de conceitos Object Oriented Melhor ligação às metodologias e linguagens OO Utilização de conceitos OO na programação das interfaces Separação da interface e da implementação Desenvolvimento incremental herança simplifica desenvolvimento Polimorfisno permite redefinir interfaces Granularidade Mais fina do que em servidores que tipicamente disponibilizam interfaces para programas com alguma complexidade Objectos passados por valor ou referência Os objectos podem migrar ou são invocados localmente Invocação dinâmica Sistemas de objectos desenvolvimento incremental / loosely coupled Permitem um objecto invocar dinamicamente outros de que obtém a interface em tempo de execução Gestão do Ciclo de Vida dos objectos Invocação de Objectos Remotos Objecto remoto Interface Remota Dados m1 m2 m3 Código dos métodos m4 m5 m6

3 Modelo de Objectos Distribuído Referência para um objecto remoto Referência par a entidade sobre a qual é feita a invocação (evolução do binding handle) Identificador que os clientes remotos usam para representar um objecto num sistema distribuído Podem ser passados como argumentos ou valores de retorno dos métodos remotos Interface Remota Conjunto de métodos de um objecto que podem ser invocados remotamente. Um objecto pode definir métodos que podem ser acedidos quer remotamente quer localmente Acções num sistema de objectos distribuído Iniciadas por invocação de método Invocação pode resultar noutras invocações de métodos noutros objectos, quer locais quer remotos Podem levar à criação de novas instâncias de objectos, normalmente a instância reside na mesma máquina do objecto criador Modelo de Objectos Distribuído Garbage Collection Deve ser suportada remotamente pelo RMI Excepções As invocações remotas podem falhar devido a excepções. A maioria das linguagens Object-oriented disponibilizam excepções que podem ser estendidas Deve ser suportado na IDL

4 Invocações de métodos remotas e locais A remote invocation B local C invocation local E invocation local invocation D remote invocation F Elementos principais da arquitectura do RMI Objectos remotos/servants Módulo de comunicações Módulo de Referências Remotas Proxies stubs do lado do Cliente Skeletons stubs do lado do Servidor Dispatcher

5 Elementos principais da arquitectura RPC Client process Server process Client program Client stub procedure Communication module Request Reply dispatcher Communication module Server stub procedure Service procedure Elementos principais da arquitectura do RMI object A client proxy for B Request server skeleton & dispatcher for B s class remote object B Reply Remote Communication reference module module Communication module servant Remote reference module

6 Objectos remotos/servants Instância de classe remota Capaz de ser invocável remotamente Chamada um objecto remoto Em contraste com objectos locais, que não podem ser invocados por clientes remotos Módulo de comunicações Um no cliente, outro no servidor Idênticos à biblioteca de run-time do RPC Asseguram semântica de invocação pretendida (talvez, pelo-menos-uma-vez, no-máx-uma-vez, exactamente-umavez) Módulo de comunicações do servidor selecciona o dispatcher da classe do objecto invocado Passa-lhe a referência para o objecto local sobre o qual é feito o pedido do cliente Passa também o pedido

7 Módulo de referências remotas Pedidos de outros clientes trazem identificador de objecto remoto, não referência local Como é que o módulo de comunicação do servidor sabe qual a referência local? E vice-versa? Módulo de referências remotas traduz entre referências remotas e locais Tem uma Tabela de Objectos Remotos que contém entradas para: Objectos remotos que residem no processo Proxies para objectos remotos (em outros processos) Gere as referências remotas que saem e entram do processo: Quando objecto remoto é passado como argumento ou retorno pela primeira vez, cria uma referência remota (e adiciona-a à tabela) Quando chega uma referência remota que não existe ainda na tabela, cria um proxy e acrescenta a entrada correspondente na tabela Proxy (Stub) Torna o RMI transparente para o cliente actuando como um objecto local Esconde os detalhes de: Tradução das referências para objectos Conversão e serialização dos parâmetros (marshalling) A interface do proxy é idêntica à interface do objecto remoto Existe um proxy por cada objecto remoto (noutro processo) que o cliente referencia

8 Dispatcher Função de despacho do servidor Responsável por converter o methodid da mensagem de invocação no método do objecto local que está a ser invocado remotamente Existe um por classe invocável remotamente Skeleton Stub do lado Servidor Implementa os métodos da interface remota Converte os parâmetros do pedido (unmarshalling) Invoca o método no objecto de destino Quando o método termina converte os parâmetros de retorno e codifica eventuais excepções Envia a resposta

9 Instanciação de Objectos Remotos L object C Remote Invocation Remote Invocation object K Instanciação M N Características mais complexas Activação dos objectos Invocação dinâmica Recuperação de memória garbage collection

10 Activação dos Objectos Os objectos no servidor podem ter um período de vida longo Recursos estão a ser gastos se os objectos não estiverem a ser invocados Leva a distinguir entre objectos: Activos: prontos para ser invocados Passivos : não estão activos mas podem ser activados Tornar o objecto passivo implica salvar o estado do objecto para poder ser em seguida reactivado. O estado tem de ser transformado num formato coerente (marshalled) e guardado persistentemente Tem de existir uma componente no ORB que saiba activar o objecto quando for necessário Invocação Dinâmica: alternativa a proxies Invocação estática Invocação dinâmica

11 Reflection - definition The reflective programming paradigm introduces the concept of meta-information, which keeps knowledge of program structure. Meta-information stores information such as the name of the contained methods, the name of the class, the name of parent classes, and/or what the compound statement is supposed to do. Using this stored information, as an object is consumed (processed), it can be reflected upon to find out the operations that it supports. The operation that issues in the required state via the desired state transition can be chosen at run-time without hard-coding it. Garbage Collection Recuperar a memória usada por objectos remotos quando mais nenhum cliente se lhes refere Uma aproximação é baseada em contagem das referências Cada vez que um cliente recebe uma referência a um objecto remoto faz uma chamada addref() ao servidor e instancia o respectivo proxy Quando o garbage collector local detecta que o proxy não pode ser mais usado faz uma chamada a removeref() Quando a contagem de referência no servidor se torna zero o servidor pode recuperar a memória. Outra aproximação é baseada em leases - licença para usar o objecto durante um certo período de tempos O servidor permite o acesso ao objecto remoto durante um certo período Se a lease não for renovada quando o tempo expira a referência é automaticamente removida

12 RMI: comparação com RPC Positivo Tudo o que o RPC disponibilizava + A interface do serviço é descrita numa linguagem centrada nos objectos Uso dos mecanismos OO como herança Negativo As mesmas do RPC + Plataformas ficam dependentes do modelo de objectos e consequentemente limitam interoperacionalidade Criação automática de referências remotas Invocação dinâmica que permite uma interface fracamente ligada Recuperação de memória (garbagge collection) automático Optimização de invocação remota passagem de objectos por valor ou referência Principais Sistemas de Objectos Remotos Corba RMI (Java / J2EE) Remoting (C# /.NET)

13 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 Management Architecture foi publicada em 1990 e continha: Serviços de suporte ao ciclo de vida dos objectos Object request broker Object Request Broker Novo paradigma proposto consistia num serviço que auxilia a invocação de objectos remotos (evolução do run-time do RPC) O papel do ORB é localizar o objecto, activá-lo se necessário, enviar o pedido do cliente ao objecto Localizar objecto (serviço) Aplicação Cliente ORB Estabelecer ligação Comunic. Activar serviço Serviço Remoto (objecto)

14 CORBA CORBA 2.0 publicado em 1996 Os principais elementos da plataforma são: IDL linguagem object oriented com suporte para herança Arquitectura define o ambiente de suporte aos objectos, à invocação, ao ciclo de vida GIOP General Inter Orb Protocol protocolo de invocação remota entre Orb de fabricantes diferentes IIOP - Internet Inter Orb Protocol implementação do GIOP sobre protocolos TCP/IP Actualmente Actividade de normalização reduzida Vários produtos disponíveis Visigenic/Visibroker IONA Menos utilizado vs. plataformas J2EE /.net Modelo de Objectos Um objecto CORBA implementa uma interface descrita na IDL CORBA Um objecto CORBA pode ser invocado remotamente através de uma referência remota Os objectos CORBA residem no servidor Os clientes podem ser objectos ou programas que enviam as mensagens correctas para os objectos Os objectos CORBA não têm de ser implementados numa linguagem Object Oriented podem ser em Cobol, C, etc.

15 Passagem de Parâmetros Todos os parâmetros cujo tipo é especificado pelo nome de uma interface é uma referência a um objecto CORBA e são passados como referências a objectos remotos. Os argumentos do tipo primitivo ou estruturas são passados por valor. Na chegada um novo objecto é criado no processo receptor (pode ser no cliente ou no servidor). Este mecanismo é idêntico ao do RPC CORBA IDL A interface é escrita em OMG IDL A interface é object-oriented com sintaxe muito semelhante ao C++ A herança é suportada Especifica um nome de uma interface e um conjunto de métodos que os clientes podem invocar Descreve os parâmetros e o respectivo sentido in, out, inout Os métodos podem ter excepções

16 Exemplo da IDL CORBA module Accounts interface Account readonly attribute string number; readonly attribute float balance; exception InsufficientFunds (string detail); float debit (in float amount) raises (insufficientfunds); float credit (in float amount); interface InterestAccount : Account readonly attribute float rate; Herança Arquitectura client Implementation repository interface repository server Client program Proxy for A ORB core Request Reply ORB core object adapter skeleton Servant A Or dynamic invocation or dynamic skeleton

17 Elementos da Arquitectura ORB núcleo run-time da invocação remota, conjunto de funções residentes quer no cliente quer no servidor Implementa a infra-estrutura de comunicação O ORB tem funções para ser inicializado e parado Servidor Object adapters - rotina de despacho que recebe as mensagens e invoca os stubs apropriado O nome do object adapter faz parte da referência remota e permite a sua invocação Despacha cada invocação via um skeleton para o método apropriado Skeletons Funções de adaptação que fazem a conversão dos parâmetros de entrada e saída e o tratamento das excepções Client proxies Para as linguagens Object-oriented Efectua a conversão dos parâmetros de entrada e de saída Referências Remotas Para invocar uma operação remota é necessário que o objecto invocador tenha uma referência remota para o objecto Uma referência remota pode ser obtida como Resultados de invocações remotas anteriores a servidores ou ao gestor de nomes Ter sido obtida como parâmetro de um invocação a um objecto local É diferente de binding handle estático dos RPC IOR IDL interface type name Protocol and address details Object key interface repository identifier IIOP host domain name port number adapter name object name

18 Invocação A invocação do método tem por omissão uma semântica atmost-once A heterogeneidade é resolvida com a conversão para CDR Common Data Representation Inclui 15 tipos básicos Receiver makes it right CORBA CDR index in sequence of bytes Struct Pessoa string Nome; string Lugar; unsigned long Ano; ; 4 bytes 5 Smit h 6 Lond on 1934 notes on representation length of string Smith length of string London unsigned long Representa a struct Person com os valores: Smith, London, 1934

19 Elementos da Arquitectura: Servidor de Interfaces Interface repository Dá informação sobre as interfaces registadas Para uma interface pode dar a informação dos métodos e dos respectivos parâmetros O compilador de IDL atribui um número único a cada tipo IDL que compila. Esta facilidade permite a invocação dinâmica em CORBA. Se um cliente recebe uma referência remota para um novo objecto CORBA de que não tem um proxy, pode ir buscar esta informação ao Interface repository Elementos da Arquitectura: servidor do código das implementações Implementation repository Contém localização das implementações dos objectos Permite ao object adapter carregar o código das classes para instanciar os respectivos objectos

20 CORBA Invocação Dinâmica Para dinamicamente invocar um objecto em tempo de execução existe a invocação dinâmica O cliente não precisa de ter os proxies As invocações remotas são construídas dinamicamente Novos servidores podem ser usados por clientes já existentes Funcionamento O Cliente usa o Interface Repository para obter a informação sobre os métodos e argumentos. Cria a mensagem de acordo com a especificação da interface, e envia o pedido para o respectivo objecto. Account_ptr acc =...; Obter ref para objecto Account acc.credit( 100 ); Invoc. estática CORBA::Object_ptr obj =...; CORBA::Request_ptr req = obj.request( credit" ); req.add_in_arg( "amount" ) <<= (CORBA::ULong) 100; req->invoke(); Invocação Dinâmica Invocação dinâmica Obter a referência para o método Obter a lista de parâmetros Criar a mensagem de invocação Invocar várias alternativas

21 Java RMI

22 RMI Remote Method Invocation: mecanismo de chamada remota a métodos Java utilizado para RPCs entre objectos Java distribuídos Mantém a semântica de uma chamada local, para objectos distantes Efectua automaticamente o empacotamento e desempacotamento dos parâmetros Envia as mensagens de pedido e resposta Faz o agulhamento para encontrar o objecto e o método pretendido Java RMI O RMI Java pressupõe que se utiliza um ambiente Java de linguagem única, pelo que não se colocam alguns dos problemas que o CORBA pretende resolver. Apesar do ambiente uniforme um objecto tem conhecimento que invoca um método remoto porque tem de tratar RemoteExceptions A interface do objecto remoto por sua vez tem de ser uma extensão da interface Remote

23 jam1 RMI Exemplo de interfaces import java.rmi*; public interface Account extends Remote float debit(float amount) throws RemoteException, InsufficientFundsException; float credit(float amount) throws RemoteException; public interface AccountList extends Remote Account getaccount(int id) throws RemoteException; Slide 45 jam1 esta interface não está igual a do Corba Uma razão é que acho que o Java não permite atributos directos na interface como o Cornba Seria interessante ter nem que fosse ler a interestrate Prof José Alves Marques;

24 Java RMI No Java RMI os parâmetros de um método assumem-se como entradas (input) e o resultado do método como parâmetro de saída (output) Quando o parâmetro é um objecto remoto (herda de java.rmi.remote) é sempre passado como uma referência para um objecto remoto Quando o parâmetro é um objecto local (caso contrário) é serializado e passado por valor. Quando um objecto é passado por valor uma nova instância é criada remotamente Tem de implementar java.io.serializable Todos os tipos primitivos e objectos remotos são serializáveis. (java.rmi.remote descende de java.io.serializable) Java RMI Quando um objecto é enviado como parâmetro por valor pode ocorrer que o receptor não tenha a classe respectiva. Problema: Como des-serializar o objecto? Solução: quando um objecto é serializado, é enviado (juntamente com a informação sobre a sua classe) a localização da classe (URL) de onde é feito o seu carregamento dinâmico.

25 Protocolos de invocação remota RMI pode ser suportado usando o Java Remote Method Protocol (JRMP) ou o Internet Inter-ORB Protocol (IIOP). O JRMP é um protocolo específico criado para o RMI O IIOP é um protocolo normalizado para comunicação entre objectos CORBA. O RMI usando o IIOP permite aos objectos remotos em Java comunicarem com objectos em CORBA que podem estar programados com linguagens diferentes do Java JNDI Java Naming and Directory Interface Mecanismo de nomes do J2EE Utilizado para associar nomes a recursos e objectos de forma portável Identificação, localização, partilha Mapeia nomes em referências para objectos Uma instância do registry deve executar-se em todos servidores que têm objectos remotos. Os clientes têm de dirigir as suas pesquisas para o servidor pretendido

26 import java.rmi.*; public class BankServer public static void main(string args[]) classe BankServer com o método main System.setSecurityManager(new RMISecurityManager()); try Criar um gestor de segurança para evitar problemas com classes que são carregadas a partir de outros sites. AccountList accountlist = new AccountListServant(); Naming.rebind( AccountList, accountlist ); System.out.println( accountlist server ready ); catch(exception e) System.out.println( accountlist server main + e.getmessage()); Associa um nome a uma instância a partir da qual se pode aceder a outros objectos do servidor Classe AccountListServant implementa a interface AccountList import java.rmi.*; import java.rmi.server.unicastremoteobject; Import java.util.vector; public class AccountListServant extends UnicastRemoteObject implements AccountList private Vector<Account> thelist; contains the list of accounts private public AccountListServant()throws RemoteException... public Account getaccount(int id) throws RemoteException return thelist[id]; Necessário também implementar interface Account

27 Classes que suportam o Java RMI RemoteObject RemoteServer Activatable UnicastRemoteObject <servant class> Classe UnicastRemoteObject exporta o objecto: contém código necessário para a serialização e estabelecimento de comunicação entre máquinas virtuais Cliente da interface AccountList import java.rmi.*; import java.rmi.server.*; Obteve referência remota pelo public class AccountListClient nome da instância remota public static void main(string args[]) System.setSecurityManager(new RMISecurityManager()); AccountList aclist = null; try aclist = (AccountList)Naming.lookup( host/accountlist ); Account a = aclist.getaccount(2); a.debit(1000); catch(remoteexception e) System.out.println(e.getMessage()); catch(exception e)system.out.println( Client: +e.getmessage()); Obteve referência remota por retorno de método

28 Java RMI mecanismo de Reflexão A reflexão é usada para passar informação nas mensagens de invocação sobre o método que se pretende executar API de reflexão permite, em run-time: Determinar a classe de um objecto. Obter informação sobre os métodos / campos de uma classe / interface Criar uma instância de uma classe cujo nome é desconhecido antes da execução Invocar métodos que são desconhecidos antes da execução Reflexão no RMI como usar Visão geral: Obter instâncias das classes genéricas Class e Method Cada instância de Method representa as características de um método (classe, tipo dos argumentos, valor de retorno, e excepções) Invocar métodos remotos com o método invoke da classe Method. Requer dois parâmetros: O primeiro é o objecto a invocar O segundo é um vector de Object contendo os argumentos Mais detalhes em

29 Contexto: J2EE Até agora vimos arquitecturas cliente-servidor Simples, mas difícil de fazer evoluções difícil de reutilizar a lógica de negócio ou de apresentação J2EE é uma plataforma para desenvolver e executar aplicações distribuídas multi-nível Aplicação J2EE Multi-nível Páginas HTML dinâmicas Camada cliente Cliente Páginas JSP Enterprise Beans Camada Web Camada de negócio Servidor J2EE Base de Dados Camada EIS Servidor de Base de Dados

30 Tecnologias Principais do J2EE Servlets Java Server Pages (JSP) Enterprise Java Beans (EJB) Java Database Connectivity (JDBC) Remote Method Invocations (RMI) XML Arquitectura J2EE 2009 Sistemas José Alves Distribuídos Marques2009/10

31 Equivalente ao RMI para C# na plataforma.net. Vamo-nos concentrar nas novas opções fornecidas.net REMOTING

32 Objectos Remotos Qualquer objecto pode ser usado remotamente derivando-o de MarshalByRefObject ou de MarshalByValObject MarshallByValue Objectos serializáveis, são copiados para o cliente Pode ser muito ineficiente MarshallByRef Quando o cliente recebe uma referência de um objecto remoto está efectivamente a receber uma referência a um objecto proxy local criado automaticamente pelo.net Remoting. Esse proxy é encarregue de efectuar as chamadas aos métodos para o servidor. Utilização de Objectos Remotos Requer a respectiva activação. Dois modos: Singleton Apenas uma instância em cada instante Criada aquando da primeira invocação Requer sincronização no acesso a estado partilhado SingleCall Uma nova instância é criada para cada pedido. Após a execução de uma chamada, a próxima chamada será servida por outra instância.

33 Tempo de Vida dos Objectos Tempo de vida dos objectos Singleton determinado por sistema de leases. Ao expirar um lease, este deve ser renovado, caso contrário a memória ocupada pelo objecto é recuperada pelo garbage collector. Java RMI escolheu solução mais complexa: contagem de referência distribuída. Problema: falhas na rede e nos servidores? Java RMI usa adicionalmente leases para tolerar falhas Canais A comunicação entre dois processos distintos é realizada através de canais, cuja função é: Empacotar a informação de acordo com um tipo de protocolo Enviar esse pacote a outro computador. Dois tipos pré-definidos: TcpChannel (que envia os dados por TCP em formato binário). HttpChannel (que utiliza o protocolo HTTP em formato XML). Maior flexibilidade do que no RMI na escolha dos mecanismos de serialização e protocolos de transmissão

34 Resumo das Opções MarshallByRef vs. MarshallByValue Canais TcpChannel vs. HttpChannel vs. Custom Activação Singleton vs. Single Call Tempo de vida Single Call vs. Leases Exemplo: Interface public interface Account float debit(float amount); float credit(float amount); public interface AccountList Account getaccount(int id);

35 Exemplo: Servidor class bankserver : MarshalByRefObject, accountlist ArrayList aclist; public bankserver ()... public Account getaccount(int id) return aclist[id]; static void Main() TcpChannel chan1 = new TcpChannel(8086); ChannelServices.RegisterChannel(chan1); RemotingConfiguration.RegisterWellKnownServiceType(typeof(bankServer), accountlist", WellKnownObjectMode.Singleton); System.Console.WriteLine("<enter> para sair..."); System.Console.ReadLine(); Exemplo: Cliente class cl static void Main() TcpChannel chan = new TcpChannel(); ChannelServices.RegisterChannel(chan); accountlist aclist = (accountlist) Activator.GetObject(typeof(accountList), "tcp:localhost:8086/accountlist"); if (aclist == null) System.Console.WriteLine("Could not locate server"); else Account a = aclist.getaccount(2); Console.WriteLine(a.debit(1000));

36 Comparação IDL C#/Remoting IDL CORBA - IDL Java/RMI - Interface definition using System; namespace SimpleStocks public interface StockMarket float get_price(string symbol); module SimpleStocks interface StockMarket float get_price(in string symbol); ; ; package SimpleStocks; import java.rmi.*; import java.util.*; public interface StockMarket extends java.rmi.remote float get_price( String symbol) throws RemoteException; C# / Remoting - Server implementation CORBA - Server implementation Java/RMI - Server implementation StockMarketServer StockMarketServer StockMarketServer using System.Runtime.Remoting; public class StockMarketImpl : MarshalByRefObject, SimpleStocks.StockMarket public float get_price( string symbol ) float price = 0; for( int i = 0; i < symbol.length(); i++ ) price += (int) symbol.charat(i); price /= 5; return price; import org.omg.corba.*; import SimpleStocks.*; public class StockMarketImpl extends _StockMarketImplBase public float get_price( String symbol ) float price = 0; for(int i = 0; i < symbol.length(); i++) price += (int) symbol.charat( i ); price /= 5; return price; public StockMarketImpl( String name ) super( name ); 2009 José Alves Marques package SimpleStocks; import java.rmi.*; import java.rmi.server.unicastremoteobject; public class StockMarketImpl extends UnicastRemoteObject implements StockMarket public float get_price( String symbol ) float price = 0; for( int i = 0; i < symbol.length(); i++ ) price += (int) symbol.charat( i ); price /= 5; return price; public StockMarketImpl( String name ) throws RemoteException try Naming.rebind( name, this ); catch( Exception e ) System.out.println( e );

37 2009 José Alves Marques C# / Remoting - Server Main CORBA - Server Main Java/RMI - Server Main StockMarketServer Main using System.Runtime.Remoting; class StockMarketServer static void Main(string[] args) TcpChannel chan1 = new TcpChannel(8086); ChannelServices.RegisterChannel (chan1); RemotingConfiguration.RegisterWel lknownservicetype(typeof(stockmar ket), NASDAQ",WellKnownObjectMode.Singleton); System.Console.WriteLine("<enter> para sair..."); System.Console.ReadLine(); StockMarketServer Main import org.omg.corba.*; import org.omg.cosnaming.*; import SimpleStocks.*; public class StockMarketServer public static void main(string[] args) try ORB orb = ORB.init(); BOA boa = orb.boa_init(); StockMarketImpl stockmarketimpl = new StockMarketImpl("NASDAQ"); boa.obj_is_ready( stockmarketimpl ); org.omg.corba.object object = orb.resolve_initial_references("nameser vice"); NamingContext root = NamingContextHelper.narrow( object ) ; NameComponent[] name = new NameComponent[1]; name[0] = new NameComponent("NASDAQ", ""); root.rebind(name, stockmarketimpl); boa.impl_is_ready(); catch( Exception e ) e.printstacktrace(); StockMarketServer Main import java.rmi.*; import java.rmi.server.unicastremoteobject; import SimpleStocks.*; public class StockMarketServer public static void main(string[] args) throws Exception if(system.getsecuritymanager() == null) System.setSecurityManager(new RMISecurityManager()); StockMarketImpl stockmarketimpl = new StockMarketImpl("NASDAQ"); C# / Remoting - Client implementation CORBA - Client implementation Java/RMI - Client implementation StockMarketClient namespace SimpleStocks public class StockMarketClient static void Main() try StockMarket market = (StockMarket)Activator.GetObject( typeof(stockmarket), tcp:localhost:8086/nasdaq ); System.Console.WriteLine("The price of MY COMPANY is " + market.get_price("my_company") ); StockMarketClient import org.omg.corba.*; import org.omg.cosnaming.*; import SimpleStocks.*; public class StockMarketClient public static void main(string[] args) try ORB orb = ORB.init(); NamingContext root = NamingContextHelper.narrow( orb.resolve_initial_references("names ervice") ); NameComponent[] name = new NameComponent[1] ; name[0] = new NameComponent("NASDAQ",""); StockMarket market = StockMarketHelper.narrow(root.resolve (name)); System.out.println("Price of MY COMPANY is " + market.get_price("my_company")); catch( SystemException e ) System.err.println( e ); StockMarketClient import java.rmi.*; import java.rmi.registry.*; import SimpleStocks.*; public class StockMarketClient public static void main(string[] args)throws Exception if(system.getsecuritymanager() == null) System.setSecurityManager(new RMISecurityManager()); StockMarket market = (StockMarket)Naming.lookup("rmi:local host/nasdaq"); System.out.println( "The price of MY COMPANY is " + market.get_price("my_company") );

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Invocação Remota MC704

Invocação Remota MC704 Invocação Remota MC704 Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar

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

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

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações 1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos

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

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

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

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

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

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

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

PADI 2014/15. Aula 3.Net Remoting

PADI 2014/15. Aula 3.Net Remoting PADI 2014/15 Aula 3.Net Remoting Sumário 1..Net Remoting .NET Remoting Comunicação entre aplicações Permite invocar métodos em objectos remotos Qualquer objecto pode ser usado remotamente Objectos remotos

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

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

Desenvolvimento de Aplicações Java/CORBA

Desenvolvimento de Aplicações Java/CORBA Tutorial Desenvolvimento de Aplicações Java/CORBA Emerson Ribeiro de Mello, Fábio Favarim e Joni da Silva Fraga {emerson, fabio, fraga@das.ufsc.br Este tutorial ensina como criar uma aplicação distribuída

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

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

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

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

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

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

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

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

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1. Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duraçã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

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

RMI/JNDI - Fundamentos

RMI/JNDI - Fundamentos c o l u n a Professor J RMI/JNDI - Fundamentos Um exemplo prático do que são e de como funcionam RMI e JNDI Roberto Vezzoni (roberto.vezzoni@gmail.com): SCJP, faz Ciência da Computação na Faesa e atua

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

RMI: Uma Visão Conceitual

RMI: Uma Visão Conceitual RMI: Uma Visão Conceitual Márcio Castro, Mateus Raeder e Thiago Nunes 11 de abril de 2007 Resumo Invocação de Método Remoto (Remote Method Invocation - RMI) trata-se de uma abordagem Java para disponibilizar

Leia mais

Web Technologies. Tópicos da apresentação

Web Technologies. Tópicos da apresentação Web Technologies Tecnologias de Middleware 2004/2005 Hugo Simões hsimoes@di.fc.ul.pt 1 A Web Tópicos da apresentação Tecnologias Web para suporte a clientes remotos (Applets,CGI,Servlets) Servidores Aplicacionais

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

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

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

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada Número: Nome: Pági 1 de 6 LEIC/LETI 2013/14, Repescagem do 1º Teste de Sistemas Distribuídos, 1/7/14 Responda no enunciado, apes no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I

Leia mais

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) Sistemas Distribuídos Desafios para a realização de sistemas Distribuídos Exemplos de Sistemas Distribuídos CORBA Evolução Histórica OMA (Object Management

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

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

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web: Web Browser como o processo cliente Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: 1 Cliente Web browser HTTP porto 80 Servidor web... JDBC RMI XML... Base de Dados Aplicação em

Leia mais

Comunicação. Parte II

Comunicação. Parte II Comunicação Parte II Carlos Ferraz 2002 Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2 Comunicação cliente-servidor

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Aula 19-20: Arquitetura CORBA (continuação) Exemplo de cliente e servidor em CORBA Interfaces IDL Shape e ShapeList Exemplo de cliente e servidor

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

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

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

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware. Camadas de Software - o Middleware Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas Modelos de Arquitecturas para sistemas distribuidos Interfaces e Objectos Requerimentos para Arquitecturas Distribuídas

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

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

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

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

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

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

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

Introdução à Plataforma J2EE Java2 Enterprise Edition. Alex de V. Garcia, Dr.

Introdução à Plataforma J2EE Java2 Enterprise Edition. Alex de V. Garcia, Dr. Introdução à Plataforma J2EE Java2 Enterprise Edition 1 O que é a plataforma J2EE? Estende a linguagem Java através de padrões simples e unificados para aplicações distribuídas através de um modelo baseado

Leia mais

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Fundamentos da Plataforma Java EE Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Como a plataforma Java EE trata o SERVIÇO DE NOMES Serviço de Nomes Num sistema distribuído os componentes necessitam

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

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

Padrões de Projeto Implementados em Infraestrturas de Componentes

Padrões de Projeto Implementados em Infraestrturas de Componentes Padrões de Projeto Implementados em Infraestrturas de Componentes Paulo Pires paulopires@nce.ufrj.br http//genesis.nce.ufrj.br/dataware/hp/pires 1 distribuídas baseadas em componentes Comunicação transparente,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Aula 4 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Migração de Código Em

Leia mais

Reuso com Herança a e Composiçã

Reuso com Herança a e Composiçã Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:

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

Capítulo II Modelos de Programação Distribuída

Capítulo II Modelos de Programação Distribuída Capítulo II Modelos de Programação Distribuída From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 From: M. Ben-Ari Principles of Concurrent

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

WebSphere MQ. Bruno Miguel de Sousa Gonçalves

WebSphere MQ. Bruno Miguel de Sousa Gonçalves WebSphere MQ Bruno Miguel de Sousa Gonçalves 1.Introdução ao WebSphere Os produtos WebSphere providenciam comunicação entre programas através da interligação entre componentes heterogéneos, processadores,

Leia mais

Objetos Distribuídos CORBA. Sumário... Comunicação entre processos. Sockets RPC RMI. Arquitetura OMA Vantagens IDL. Eduardo Nicola F.

Objetos Distribuídos CORBA. Sumário... Comunicação entre processos. Sockets RPC RMI. Arquitetura OMA Vantagens IDL. Eduardo Nicola F. Objetos Distribuídos CORBA Sumário... Comunicação entre processos Sockets RPC RMI Arquitetura OMA Vantagens IDL Eduardo Nicola F. Zagari CORBA 2 Sumário... Arquitetura CORBA Interoperabilidade Processo

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

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

RPC - CORBA Tecnologias de Middleware

RPC - CORBA Tecnologias de Middleware RPC - CORBA Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos RPC CORBA Conclusões RPC Remote Procedure Call (RPC) RFC 707 - A High-Level Framework for Network-Based

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 Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Sistemas Distribuídos 59. Sistemas Distribuídos 61. Receive não-bloqueante: Comunicação entre processos! Memória Compartilhada: " os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Área Compartilhda!

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais