Comunicação entre Processos
|
|
|
- Luiz Felipe Beppler Santiago
- 9 Há anos
- Visualizações:
Transcrição
1 Unidade 5 Comunicação entre Processos Pipes Sockets Java RMI Comunicação entre Processos Processos e threads interagem para trabalhar conjuntamente em um sistema Trocam dados / mensagens Utilizam os serviços de comunicação fornecidos pela máquina e pelo S.O. Seguem protocolos de comunicação para que possam entender uns aos outros 2 1
2 Comunicação entre Processos Protocolos Estabelecem caminhos virtuais de comunicação entre processos / threads Duas entidades precisam usar os mesmos protocolos para trocar informações Protocolo Meio de Transmissão 3 Comunicação entre Processos Protocolos Com licença Pede conexão Pois não Aceita conexão Que horas são? Envia mensagem São 8 horas. Confirma recepção Obrigado! Fecha conexão De nada. tempo Libera conexão 4 2
3 Comunicação entre Processos Serviços de comunicação Serviço sem Conexão: cada unidade de dados é enviada independentemente das demais Serviço com Conexão: dados são enviados através de um canal de comunicação Canal de Comunicação 5 Comunicação entre Processos Características dos serviços de comunicação entre processos/threads: Abrangência: local ou remota Participantes: 1 1, 1 N ou M N Tamanho das mensagens: fixo ou variável; limitado ou não Sincronismo: comunicação síncrona, assíncrona ou semi-síncrona 6 3
4 Comunicação entre Processos APIs de comunicação Permitem que aplicações troquem dados Fornecem primitivas de comunicação que podem ser chamadas a partir do código Provêem acesso aos serviços de comunicação, que podem assim ser usados pelas aplicações Programa API S.O. 7 Comunicação entre Processos APIs de Comunicação de Sist. Operacionais Mecanismos fornecidos pelos S.O. s permitem enviar mensagens (trechos de memória) de um processo a outro Alguns S.O. s permitem que sejam criadas áreas de memória compartilhadas entre dois ou mais processos P 1 P 2 P 1 P 2 memória 8 8 4
5 Comunicação entre Processos Exemplos de APIs de comunicação: Pipes: canais de comunicação locais Sockets: portas de comunicação locais ou de rede (versão segura: SSL) Suportes de RPC (Remote Procedure Call): permitem chamar procedimentos/métodos remotamente (ex.: RMI, CORBA, COM, ) Canais de eventos: permitem notificar threads e processos dos eventos ocorridos no sistema (Ex.: JMS, CORBA Notification Service, ) 9 Comunicação entre Processos Mecanismos de IPC nativos do UNIX Pipes Sockets (comunicação local ou remota) Mecanismos de IPC nativos do Windows Pipes e Mailslots WinSock (comunicação local ou remota) Microsoft RPC (comunicação local ou remota) Memória compartilhada: File Mapping e Dynamic Data Exchange (DDE) Object Linking and Embedding (OLE) 10 5
6 Comunicação entre Processos RPC Chamada Remota de Procedimento Segue o modelo Cliente/Servidor Muito usado na interação entre objetos Objeto servidor possui interface com métodos que podem ser chamados remotamente Objetos clientes usam serviços de servidores Cliente x = Servidor.Soma(y,z); Servidor Soma(int y, int z) { return(y+z); 11 Comunicação entre Processos RPC Características Em geral as requisições são ponto-a-ponto e síncronas Dados são tipados Parâmetros da requisição Retorno do procedimento/método Exceções Um objeto pode ser cliente e servidor em momentos diferentes 12 6
7 Comunicação entre Processos Notificação de Eventos Eventos ocorridos são difundidos por produtores e entregues a consumidores Canal de eventos permite o desacoplamento produtor e consumidor não precisam se conhecer Produtores de Eventos Canal de Eventos Consumidores de Eventos 13 Comunicação entre Processos Notificação de Eventos Características Envio de eventos é completamente assíncrono Produtor não precisa aguardar fim do envio Evento é armazenado no canal de eventos Comunicação pode ser feita através de UDP multicast ou fazendo múltiplos envios unicast com TCP, UDP ou com um suporte de RPC Os eventos podem ter tamanho fixo ou variável, limitado ou ilimitado Eventos podem ser tipados ou não 14 7
8 Pipes Pipes = canais de comunicação Duas threads podem trocar dados por um pipe comunicação de 1 para 1 Threads devem rodar na mesma máquina virtual comunicação local Thread 1 PIPE Thread 2 15 Pipes Disponíveis em Java através das classes PipedInputStream e PipedOutputStream Principais métodos: Criação dos Pipes: is = new PipedInputStream(); os = new PipedOutputStream(is); Envio e recepção de bytes / arrays de bytes: is.read() os.write(dado); os.flush(); Exceção: java.io.ioexception 16 8
9 Pipes Uso de Pipes com fluxos (streams) de dados Criação do fluxo: in = new java.io.datainputstream(is); out = new java.io.dataoutputstream(os); Envio e recepção de dados: <tipo> var = in.read<tipo>(); out.write<tipo>(var); onde <tipo> = Int, Long, Float, Double, etc. 17 Pipes public class Producer extends Thread { private DataOutputStream out; private Random rand = new Random(); public Producer(PipedOutputStream os) { out = new DataOutputStream(os); public void run() { while (true) try { int num = rand.nextint(1000); out.writeint(num); out.flush(); sleep(rand.nextint(1000)); catch(exception e) { e.printstacktrace(); 18 9
10 Pipes public class Consumer extends Thread { private DataInputStream in; public Consumer(PipedInputStream is) { in = new DataInputStream(is); public void run() { while(true) try { int num = in.readint(); System.out.println("Número recebido: " + num); catch(ioexception e) { e.printstacktrace(); 19 Pipes public class PipeTest { public static void main(string args[]) { try { PipedOutputStream out = new PipedOutputStream(); PipedInputStream in = new PipedInputStream(out); Producer prod = new Producer(out); Consumer cons = new Consumer(in); prod.start(); cons.start(); catch (IOException e) { e.printstacktrace(); 20 10
11 Pipes Uso de Pipes com fluxos de objetos Criação do fluxo: in = new java.io.objectinputstream(is); out = new java.io.objectoutputstream(os); Envio e recepção de objetos: <classe> obj = (<classe>) in.readobject(); out.writeobject(obj); onde <classe> = classe do objeto lido/enviado Envio e recepção de Strings: String str = in.readutf(); out.writeutf(str); 21 Sockets Socket Abstração que representa uma porta de comunicação bidirecional associada a um processo Principais Tipos de Socket Socket Datagrama: envia/recebe datagramas sem criar conexão; usa protocolo UDP Socket Multicast: recebe as mensagens endereçadas a um grupo; usa UDP multicast Socket Stream: estabelece uma conexão com outro socket; usa protocolo TCP 22 11
12 Sockets Operações com Sockets Datagrama Criar um socket datagrama: DatagramSocket s = new DatagramSocket(porta); Criar pacotes de dados para envio: DatagramPacket pack = new DatagramPacket(msg, tamanho, destino, porta); Enviar dados: s.send(pack); Criar pacotes de dados para recepção: DatagramPacket pack = new DatagramPacket(msg,tam); Receber dados: s.receive(pack); Ler dados do pacote: pack.getdata() 23 Sockets Sockets Datagrama Envio try { DatagramSocket socket = new DatagramSocket(); InetAddress destino = InetAddress.getByName( " "); String mensagem = "Hello"; byte[] dados = mensagem.getbytes(); int porta = 1234; DatagramPacket pacote = new DatagramPacket( dados, dados.length, destino, porta); socket.send(pacote); catch (SocketException e) { e.printstacktrace(); catch (IOException e) {e.printstacktrace(); 24 12
13 Sockets Sockets Datagrama Recepção try { int porta = 1234; DatagramSocket socket = new DatagramSocket(porta); byte[] dados = new byte[100]; DatagramPacket pacote = new DatagramPacket( dados, dados.length); socket.receive(pacote); String mensagem = new String(pacote.getData(), 0, pacote.getlength() ); System.out.println("Mensagem: " + mensagem); catch (SocketException e) { e.printstacktrace(); catch (IOException e) {e.printstacktrace(); 25 Sockets Multicast Sockets Permitem o envio simultâneo de datagramas a grupos de destinatários Grupos multicast são identificados por endereços IP de a Grupo Multicast Emissores 26 13
14 Sockets Multicast Sockets Vários emissores podem mandar mensagens para o grupo (ou seja, mensagens vão de X emissores Y receptores) Emissor não precisa fazer parte do grupo para enviar mensagens ao grupo, e nem precisa saber quem são os seus membros; basta conhecer o endereço IP do grupo O receptor entra em um grupo (se torna um membro do grupo) e passa a receber as mensagens destinadas ao grupo 27 Sockets Sockets Multicast Envio try { DatagramSocket socket = new DatagramSocket(); InetAddress grupo = InetAddress.getByName( " "); String mensagem = "Hello"; byte[] dados = mensagem.getbytes(); int porta = 1234; DatagramPacket pacote = new DatagramPacket( dados, dados.length, grupo, porta); socket.send(pacote); catch (SocketException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); 28 14
15 Sockets Sockets Multicast Recepção try { int porta = 1234; MulticastSocket msocket = new MulticastSocket(porta); InetAddress grupo = InetAddress.getByName( " "); msocket.joingroup(grupo); byte[] dados = new byte[100]; DatagramPacket pacote = new DatagramPacket( dados, dados.length); msocket.receive(pacote); System.out.println("Mensagem: " + new String(pacote.getData(), 0, pacote.getlength())); catch (Exception e) {e.printstacktrace(); 29 Sockets Stream Sockets Estabelecem canais de comunicação entre aplicações, permitindo troca de dados pela rede Adotam o paradigma cliente-servidor Cliente: pede para conectar ao servidor Servidor: aguarda conexões dos clientes Cliente Servidor 30 15
16 Sockets Operações com Sockets Stream no Servidor Criar um socket servidor: ServerSocket s = new ServerSocket(porta, maxclientes); Aguardar conexão: Socket c = s.accept(); Obter nome do host conectado: String host = c.getinetaddress().gethostname(); Criar fluxos de comunicação: ObjectInputStream in = new ObjectInputStream(c.getInputStream()); ObjectOutputStream out = new ObjectOutputStream(c.getOutputStream()); Fechar conexão: in.close(); out.close(); c.close(); 31 Operações com Sockets Stream no Cliente Criar um socket cliente: Socket c = new Socket( InetAddress. getbyname("servidor.com "), porta ); Criar fluxo, enviar e receber dados, e fechar: idem ao servidor Exceções geradas SocketException UnknownHostException IOException Sockets 32 16
17 Sockets Sockets Stream Servidor try { ServerSocket s = new ServerSocket(1234, 10); Socket c = s.accept(); ObjectOutputStream output = new ObjectOutputStream( c.getoutputstream()); output.flush(); ObjectInputStream input = new ObjectInputStream( c.getinputstream() ); String mensagem = (String) input.readobject(); String resposta = "Olá Cliente"; output.writeobject(resposta); output.flush(); catch (Exception e) { e.printstacktrace(); 33 Sockets Sockets Stream Cliente try { Socket socket = new Socket(InetAddress.getByName( " "), 1234); ObjectOutputStream output = new ObjectOutputStream( socket.getoutputstream()); output.flush(); ObjectInputStream input = new ObjectInputStream( socket.getinputstream() ); String mensagem = "Olá Servidor"; output.writeobject(mensagem); output.flush(); String resposta = (String) input.readobject(); catch (Exception e) { e.printstacktrace(); 34 17
18 Java RMI Java RMI (Remote Method Invocation) Fornece um suporte simples para RPC/RMI Permite que um objeto Java chame métodos de outro objeto Java rodando em outra JVM Solução específica para a plataforma Java Cliente JVM Internet Servidor JVM 35 Sockets Sockets Datagrama Envio try { DatagramSocket socket = new DatagramSocket(); InetAddress destino = InetAddress.getByName( " "); String mensagem = "Hello"; byte[] dados = mensagem.getbytes(); int porta = 1234; DatagramPacket pacote = new DatagramPacket( dados, dados.length, destino, porta); socket.send(pacote); catch (SocketException e) { e.printstacktrace(); catch (IOException e) {e.printstacktrace(); 36 18
19 Java RMI Arquitetura RMI Stub e Skeleton Camada de referência remota Camada de transporte JVM Cliente Servidor JVM Stub Skeleton Camada de Referência Remota Camada de Transporte 37 Java RMI Stub Representa o servidor para o cliente Efetua serialização e envio dos parâmetros Recebe a resposta do servidor, desserializa e entrega ao cliente Skeleton Recebe a chamada e desserializa os parâmetros enviados pelo cliente Faz a chamada no servidor e retorna o resultado ao cliente 38 19
20 Java RMI Camada de Referência Remota Responsável pela localização dos objetos nas máquinas da rede Permite que referências para um objeto servidor remoto sejam usadas pelos clientes para chamar métodos Camada de Transporte Cria e gerencia conexões de rede entre objetos remotos Elimina a necessidade do código do cliente ou do servidor interagirem com o suporte de rede 39 Java RMI Dinâmica da Chamada RMI O servidor, ao iniciar, se registra no serviço de nomes (RMI Registry ) O cliente obtém uma referência para o objeto servidor no serviço de nomes e cria a stub O cliente chama o método na stub fazendo uma chamada local A stub serializa os parâmetros e transmite a chamada pela rede para o skeleton do servidor 40 20
21 Java RMI Dinâmica da Chamada RMI (cont.) O skeleton do servidor recebe a chamada pela rede, desserializa os parâmetros e faz a chamada do método no objeto servidor O objeto servidor executa o método e retorna um valor para o skeleton, que o serializa e o envia pela rede à stub do cliente A stub recebe o valor do retorno serializado, o desserializa e por fim o repassa ao cliente 41 Java RMI Serialização de Dados É preciso serializar e deserializar os parâmetros da chamada e valores de retorno para transmiti-los através da rede Utiliza o sistema de serialização de objetos da máquina virtual Tipos predefinidos da linguagem Objetos serializáveis: implementam interface java.io.serializable 42 21
22 Implementação de RMI Vários objetos estão envolvidos com o suporte a RMI. Stub B Objeto A Cliente Request Reply Servidor Skeleton & Dispatcher da Classe B Objeto remoto B Módulo referência remota Módulo comunicação Módulo comunicação Módulo referência remota 43 Exemplo: Cliente/Servidor RMI Receita de bolo: Definir uma interface remota que descreve como o cliente e o servidor se comunicam um com o outro; Definir a classe servidor que implementa a interface remota e os acessos ao rmiregistry. Definir o aplicativo cliente que utiliza uma referência de interface remota para interagir com a implementação de servidor da interface. Isto é, um objeto da classe que implementa a interface remota; Compilar e executar o servidor e o cliente
23 Exemplo: Cliente/Servidor RMI Desenvolvimento de Aplicações com RMI Devemos definir a interface do servidor A interface do servidor deve estender java.rmi.remote ou uma classe dela derivada (ex.: UnicastRemoteObject) Todos os métodos da interface devem prever a exceção java.rmi.remoteexception O Servidor irá implementar esta interface Stubs e skeletons são gerados automaticamente. 45 Exemplo: Cliente/Servidor RMI Passo 1: definindo a interface remota Descrever os métodos remotos que serão oferecidos ao cliente (RMIServidorInt.java); import import java.rmi.*; java.rmi.*; public public interface interface HelloWorldRMIServidorInt extends Remote { extends Remote { public public void mensagem(string void mensagem(string str) throws RemoteException; str) public String throws hello() RemoteException; throws RemoteException; Passo 2: Implementar a interface do servidor declarada no passo
24 HelloServer.java import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class HelloServer implements HelloWorld { public HelloServer() { public static void main(string[] args) { try { HelloServer server = new HelloServer(); HelloWorld stub = (HelloWorld) UnicastRemoteObject.exportObject(server, 0); Registry registry = LocateRegistry.getRegistry(); registry.bind("hello", stub); System.out.println("Servidor pronto"); 47 HelloServer.java (continuação) catch (Exception ex) { ex.printstacktrace(); public String hello() throws RemoteException { System.out.println("Executando hello()"); return "Hello!!!"; public void mensagem(string str) throws RemoteException { System.out.println("Client: + str); 48 24
25 HelloClient.java Passo 3: Implementar o cliente de acordo com a interface do HelloWorld. import java.rmi.registry.*; public class HelloClient { public static void main(string[] args) { try { String host = args[0]; Registry registry = LocateRegistry.getRegistry(host); HelloWorld stub= (HelloWorld) registry.lookup("hello"); String msg = stub.hello(); System.out.println("Mensagem do Servidor: " + msg); catch (Exception ex) { ex.printstacktrace(); 49 Exemplo: Cliente/Servidor RMI Passo 2 (continuação): gerando o stub (código da comunicação). c:\teste\javac *.java, isso vai gerar HelloWorld.class, HelloServer.class, HelloClient.class Rodar o rmiregistry onde se encontram HelloWorld.class e HelloServer.class Em seguida, execute o servidor: > java HelloServer Finalmente, inicie o cliente com o comando: > java HelloClient localhost (ou o ip remoto) 50 25
26 Outro Exemplo: Java RMI Java RMI Interface do Servidor É implementada pelo servidor É chamada pelo cliente Estende a interface java.rmi.remote Todos os métodos devem prever a exceção java.rmi.remoteexception public interface HelloWorld extends java.rmi.remote { public String hello() throws java.rmi.remoteexception; 51 Java RMI Java RMI Implementação do Servidor import java.rmi.*; import java.rmi.server.*; public class HelloServer extends UnicastRemoteObject implements HelloWorld { public HelloServer() throws RemoteException {super(); public String hello() throws RemoteException { return "Hello!!!"; public static void main(string[] args) { try { HelloServer servidor = new HelloServer(); Naming.rebind("//localhost/HelloWorld", servidor); catch (Exception e) { e.printstacktrace(); 52 26
27 Java RMI Java RMI Implementação do Cliente public class HelloClient { public static void main(string[] args) { try { HelloWorld servidor = (HelloWorld) java.rmi.naming.lookup("//localhost/helloworld"); String msg = servidor.hello(); System.out.println("Mensagem do Servidor: "+msg); catch (Exception e) { e.printstacktrace(); 53 Exemplo: Cliente/Servidor RMI Para esse exemplo específico, a stub deve ser gerada a partir da classe que implementa a interface HelloWorld; Execute rmic v1.2 HelloServer para gerar a classe HelloServer_stub.class Em seguida, execute o servidor: > java HelloServer Finalmente, inicie o cliente com o comando: > java HelloClient localhost 54 27
28 RMIRegitry void rebind (String name, Remote obj) //Este método é usado por um servidor registrar o identificador de um objeto remoto //pelo nome void bind (String name, Remote obj) //Este método pode de maneira alternativa ser usado por um servidor registrar o //identificador de um objeto remoto pelo nome. //Se o nome já é ligado a uma referência remota uma exceção é levantada. void unbind (String name, Remote obj) //Este método remove um binding. Remote lookup(string name) //Este método é usado por um cliente para obter uma referência de objeto remoto. String[] list() //Este método retorna um array de Strings contendo nomes ligados no registro. Interface do RMIRegistry 55 RMI/IIOP Java RMI A partir do Java 2.0, o RMI passou a permitir a utilização do protocolo IIOP (Internet Inter- ORB Protocol) do CORBA IIOP também usa TCP/IP, mas converte os dados para um formato padrão (seralização ou marshalling) diferente do Java RMI Com RMI/IIOP, objetos Java podem se comunicar com objetos CORBA, que podem ser escritos em outras linguagens 56 28
29 Exercício 1 import java.rmi.*; import java.rmi.server.*; import java.net.*; public interface Calculator extends Remote { public long add(long a, long b) throws RemoteException; public long sub(long a, long b) throws RemoteException; public long mul(long a, long b) throws RemoteException; public long div(long a, long b) throws RemoteException; 57 Exercício 2 import java.rmi.*; import java.rmi.server.*; import java.net.*; public interface Banco extends Remote { public String add(conta correntista, short val) throws RemoteException; public String rem(conta correntista, short val) throws RemoteException; public short saldo(conta correntista) throws RemoteException; public Conta cadastrar(string nome, short CPF) throws RemoteException; 58 29
Conteúdo Programático 1. Fundamentos de Computação Distribuída Arquitetura de Sistemas Distribuídos; Paradigmas de Computação Distribuída; Suporte Com
INE 5418 Computação Distribuída Professor: Frank Siqueira INE UFSC [email protected] Conteúdo Programático 1. Fundamentos de Computação Distribuída Arquitetura de Sistemas Distribuídos; Paradigmas de Computação
Comunicação entre Processos. Comunicação entre Processos. Comunicação entre Processos. Comunicação entre Processos. Comunicação entre Processos
Unidade 5 Pipes RMI Comunicação entre Processos Processos e threads interagem para trabalhar conjuntamente em um sistema Trocam dados / mensagens Utilizam os serviços de comunicação fornecidos pela máquina
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
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
15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado
Aplicações distribuídas: interação entre partes Processamento Paralelo Middleware Orientado a Objetos Prof. João Paulo A. Almeida ([email protected]) Rede A Rede B Rede C 2015/01 - INF02799 Sistema
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
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
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 "
Sockets e Threads em Java
Sockets e Threads em Java U N I V E R S I D A D E T E C N O L Ó G I C A F E D E R A L D O P A R A N Á D E P A R T A M E N T O A C A D Ê M I C O D E E L E T R Ô N I C A P R O F. V I T O R Y A N O Comunicação
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
User Datagram Protocol
User Datagram Protocol UDP: Protocolo utiliza para distinguir para qual usuário ou aplicativo deve ser encaminhado um datagrama destinado a uma máquina que esteja executando mais de um processo. Problemas:
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.
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
Invocação de Métodos Remotos
Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS 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
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
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
Redes de Computadores II. Programação com Sockets em Python
v.2016 Redes de Computadores II Programação com Sockets em Python Prof. Ricardo Couto A. da Rocha [email protected] UFG Regional de Catalão Camada de Transporte Arquitetura TCP/IP APLICAÇÃO TRANSPORTE REDE
Programação Paralela e Distribuída. Prof. Cidcley T. de Souza
Programação Paralela e Distribuída Prof. Cidcley T. de Souza Conteúdo Parte I Introdução aos Sockets Tipos de Sockets Classes Java: InetAddress, Datagram Sockets, Stream Sockets, Output e Input Classes
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
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local
Programação com sockets (em Java)
com sockets (em Java) Prof. Dr. Julio Arakaki Depto. Ciência da 1 Comunicação entre processos // aplicações - é um dos mecanismos mais utilizados - Java oferece modos de utilização:. TCP ( Transmission
Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Programação com Sockets
Programação com LP4 Ciência da Computação 1 Comunicação entre processos Nível mais baixo É um tipo particular de modelo de programação em redes utilizado em várias linguagens como: C, C++ e Java São estruturas
Programação Orientada por Objectos com Java. Ademar Aguiar. www.fe.up.pt/~aaguiar [email protected]. MRSC, Programação em Comunicações
Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar [email protected] 1 Java Networking java.net.* 141 Package java.net Java dispõe de diversas classes para manipular e processar informação
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
Comunicação entre Processos
Comunicação entre Processos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Introdução Comunicação entre Processos: Soquetes Comunicação por datagrama UDP Comunicação
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
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ SOCKETS UDP, TCP E MULTICAST. Prof. Cesar Augusto Tacla
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ SOCKETS UDP, TCP E MULTICAST Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla Sumário 1. Introdução a. Contexto: comunicação inter-processos
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)
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
PROGRAMAÇÃO COM SOCKETS
unidade I Tecnologias de Redes de Computadores PROGRAMAÇÃO COM SOCKETS Olá! Na aula de hoje, faremos um estudo sobre sockets. Esta aula fornecerá uma boa base de como sockets são utilizados para a transmissão
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
Sockets em Java. Leonardo R. Nunes - [email protected]. 1. Introdução. 2. Sockets TCP/IP
Sockets em Java Leonardo R. Nunes - [email protected] 1. Introdução A comunicação entre processos de software tornou-se indispensável nos sistemas atuais. O mecanismo mais utilizado atualmente para
Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens
Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos
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)
Reader e Writer para streams de caracteres (texto).
Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo
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
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:
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
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:
Sistemas Distribuídos
Sistemas Distribuídos Aula 5 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 Estrutura básica Uma aplicação
Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática
Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Redes de Computadores e Aplicações
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Redes de Computadores e Aplicações Aula 13 - Camada de Aplicação Visão Geral Prof. Diego Pereira
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
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
Network Programming. Conceitos Básicos A classe InetAddress Programação de Socket TCP Programação de Socket UDP
Network Programming Conceitos Básicos A classe InetAddress Programação de Socket TCP Programação de Socket UDP Conceitos Básicos Internet e seus serviços TCP/IP IP UPD vs TCP InetAddress Classe usada para
Sistemas Distribuídos
Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Introdução: Sockets Para estabelecer a Comunicação Interprocesso nos Sistemas Distribuídos,
Vamos fazer um pequeno experimento
1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira [email protected]
Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.
Tópicos Comunicação Carlos Ferraz [email protected] Elementos básicos de comunicação Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade Portas e sockets UDP RPC:
Capítulo IV Comunicação entre processos
From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 Applications, services RMI and RPC request-reply protocol marshalling and external data representation
Computação Distribuída
Roteiro da aula Sockets 1. UDP (User Datagram Protocol) 2. TCP ( (Transmission Control Protocol) 3. IP Multicast Invocação de Método M Remoto usando CORBA 1. Introdução 2. Modelo de Objeto 3. Entender
socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets
Programação de Sockets Mário Meireles Teixeira. UFMA-DEINF Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando s API de Sockets: introduzida no UNIX
Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets
Sockets - Conceitos Básicos COMUNICAÇÃO ENTRE PROCESSOS Sockets! Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Utilização das classes Java para comunicação TCP/IP e UDP/IP
Utilização das classes Java para comunicação TCP/IP e UDP/IP Programação com Objetos Distribuídos (C. Geyer) Java Sockets 1 Autor Autores Local Cláudio Geyer Maurício Lima Pilla Instituto de Informática
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
Java 2 Standard Edition Fundamentos de
Java 2 Standard Edition Fundamentos de Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo pretende apenas cobrir conceitos essenciais sobre programação em rede com Java Como criar um
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:
Comunicação entre Processos
Comunicação entre Processos Prof. Dr. André Carvalho [email protected] Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,
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
