Tecnologias Java Sockets e RMI
|
|
|
- Mateus Varejão de Andrade
- 10 Há anos
- Visualizações:
Transcrição
1 Tecnologias Java Sockets e RMI Marcio Seiji Oyamada [email protected] Pós-graduação Especialização em Desenvolvimento de Software e Novas Tecnologias
2 Conteúdo programático Apresentação da plataforma Java Threads Construção de ambientes gráficos Acesso a base de dados Sockets RMI Applets Linguagem de script (JavaFX)
3 Sistema Distribuído Tanenbaum: Um conjunto de máquinas independentes que fornecem uma visão de uma única máquina para os usuários Coulouris: Sistemas onde componentes de hardware e software localizados em rede, comunicam-se somente através de troca de mensagens
4 Sistemas Distribuídos Por que construir um Sistema Distribuído Compartilhamento de recursos Ambientes personalizados Independência de localização Pessoas e informação são distribuídas Custo/desempenho Modularidade Expansão Disponibilidade Escalabilidade Confiabilidade
5 Hardware Sistemas Distribuídos Software
6 Taxonomia do HW em SD Taxonomia de Flynn: classificação relacionada ao fluxo de dados e instruções. SISD(Single Instruction Single Data): Computadores pessoais SIMD(Single Instruction Multiple Data): computadores vetoriais MISD (Multiple Instruction Single Data) MIMD (Multiple Instruction Multiple Data): máquinas paralelas, sistemas distribuídos
7 Taxonomia de HW Taxonomia de Flynn insuficiente para classificar todos os tipos de HW Classificação de Tanenbaum MIMD Multiprocessadores Fortemente acoplados Multicomputadores Fracamente acoplados Barramento Dual Core Chaveados Barramento Rede de comp. Chaveados Hypercubos
8 Taxonomia de HW Barramentos ethernet grid Interconexão Omega network Hipercubos
9 Sistemas Distribuídos Internet ISP intranet backbone satellite link desktop computer: server: network link:
10 Sistemas Distribuídos Computadores x Servidores WEB Date Computers Web servers Percentage 1993, July 1,776, , July 6,642,000 23, , July 19,540,000 1,203, , July 56,218,000 6,598, Fonte: Coulouris, 2001
11 Sistemas Distribuídos Desafios Heterogeneidade Flexibilidade Segurança Escalabilidade Manipulação de falhas e confiabilidade Concorrência Transparência
12 Heterogeneidade Coleção de componentes diferentes acessados da mesma forma Hardware, Sistemas Operacionais, linguagens de programação Internet: todos os computadores compartilham protocolos comuns. (http, ftp entre outros) Muitos Sistemas Operacionais (SO) utilizam interfaces diferentes. Representação de dados diferentes em máquinas (big endian x litlle endian)
13 Flexibilidade Capacidade do sistema ser estendido e reimplementado Utilização de interfaces padronizadas, para que novos serviços possam ser disponibilizados Um sistema desenvolvido por várias equipes de trabalho pode ser acoplado facilmente
14 Flexibilidade Ex: Sistemas operacionais monolíticos x Micro kernel Usuário Sistema Operacional monolítico Usuário Sistema Operacional microkernel Servidor de Arquivos Sistema Operacional microkernel Servidor de Impressão Sistema Operacional microkernel
15 Segurança Informações críticas são enviadas pela rede Informação pode ser capturada por agentes indesejáveis Canais seguros: sockets (SSL), https, ssh (login remoto seguro) VPN (Virtual Private Network)
16 Escalabilidade Uma solução deve suportar o crescimento do sistema Crescimento: número de máquinas e usuários Evitar soluções centralizadas Serviços (ex: servidor de ) Tabelas Algoritmos centralizados
17 Confiabilidade Medida de qualidade de um serviço: as respostas são confiáveis. Ex: serviço de Disponibilidade: medida do tempo em que um serviço está disponível Ideal: altamente disponível e altamente confiável Replicação de serviços Consistência: várias cópias de um mesmo dado armazenados em máquinas diferentes Complexidade de gerenciamento x grau de confiabilidade
18 Concorrência Recursos de um sistema distribuído sendo utilizado por vários usuários simultaneamente Problema: consistência dos dados??? (Impressora, arquivos) Soluções: Bloqueio de dados ou recursos (Banco de dados, impressora) Escalonamento de recurso (CPU)
19 Transparência Transparência de acesso: recursos locais e remotos são acessados utilizando-se as mesmas operações Transparência de localização:recursos podem ser acessados sem conhecimento de sua localização Transparência de concorrência: vários processos podem operar concorrentemente usando recursos compartilhados sem interferência. Transparência de replicação: múltiplas instâncias de recursos podem ser utilizadas para aumentar o desempenho e confiabilidade, sem a necessidade de conhecimento por parte dos usuários e programadores
20 Transparência Transparência de falha: sistemas tolerantes a falhas, onde os usuários podem terminar suas tarefas mesmo na presença de falhas de componentes de hardware e software. Transparência de mobilidade: permite que os recursos e clientes possam movimentar-se pelo sistema sem afetar sua operação Transparência de escalabilidade: permite a expansão do sistema e aplicações sem a mudança da estrutura do sistema e algoritmos da aplicação
21 Sistemas Distribuídos Dificuldades Concorrência Sem relógio global Estados inconsistentes Falhas independentes Escalabilidade
22 Middleware Plataforma: arquitetura + Sistema Operacional X86/Linux Sparc/Linux HP-PA/HP-UX Variedade de plataformas existentes no mercado Como desenvolver software para executar em todas as plataformas???
23 Middleware API- Interface de programação de aplicações Fornece um conjunto de operações para comunicação entre processos Protocolo: regras para comunicação Abstração de dados: forma canônica para troca de informações (arquiteturas diferentes)
24 Middleware Applicações e serviços RMI,RPC Protocolo requisição-resposta Camadas Middleware UDP e TCP
25 Sockets Sockets fornecem um ponto de comunicação entre processos Origem: BSD Unix Atualmente presente na maioria dos sistemas operacionais Transmitir mensagens através de sockets abertos por processos em diferentes máquinas
26 Sockets Números de portas disponíveis= processos não podem estar utilizando uma porta ao mesmo tempo Portas padrão: http = 80, ftp, telnet, ssh socket Qualquer porta socket client Internet address = mensagem Outras portas server Internet address =
27 TCP Abstração de uma seqüência de bytes que podem ser escritos e lidos Tamanho da mensagem: a aplicação escolhe o número de bytes que serão lidos. A camada TCP decide quando os bytes serão enviados. Normalmente os sockets fornecem uma forma para que os dados sejam enviados imediatamente Perda de mensagens: um esquema utilizando mensagens de reconhecimento é utilizado Controle de fluxo: caso o produtor/consumidor tenham velocidades diferentes, estes são sincronizados através do bloqueio das operações de leitura e escrita Duplicação e ordenação de mensagens: utilização de identificadores para detectar e corrigir a recepção de mensagens Destino das mensagens: um canal é estabelecido entre 2 processos que realizam leituras e escritas neste canal
28 TCP Dados devem concordar com um protocolo. Ex: cliente escreve um número inteiro e um número real, o servidor deverá ler um número inteiro e um número real Bloqueio: o recebimento de mensagens fica bloqueado até que a quantidade de dados requisitada esteja disponível. O envio é bloqueado caso o buffer destino esteja cheio. Threads: utilizar threads para que as operações de leitura e escrita não bloqueiem outros clientes
29 TCP A retransmissão e reordenação de mensagens é garantida pelo protocolo Não é possível distinguir entre falhas na rede ou no processo Não é possível garantir se uma mensagem foi entregue ou não durante uma falha Utilização: vários serviços da Internet como http, ftp, telnet utilizam TCP
30 TCP ServerSocket: responsável por criar um socket e verificar por conexões dos clientes. accept: verifica a fila de conexões, caso esteja vazia espera por um pedido de conexão. Quando uma conexão é estabelecida, um objeto socket é retornado representando a nova conexão entre o cliente e servidor
31 TCP Servidor import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { Socket clientsocket= null; try{ int serverport = 8000; ServerSocket listensocket = new ServerSocket(serverPort); socket= listensocket.accept(); in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); String data = in.readutf(); System.out.println(data); out.writeutf(data); } catch(eofexception e) { System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) { System.out.println("IO:"+e.getMessage()); } finally{ try { if (clientesocket!= null) clientsocket.close(); }catch (IOException e){/*close failed*/} } // try } // main } // class
32 TCP Servidor import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { Socket clientsocket= null; try{ int serverport = 8000; ServerSocket listensocket = new ServerSocket(serverPort); socket= listensocket.accept(); in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); String data = in.readutf(); System.out.println(data); out.writeutf(data); } catch(eofexception e) { System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) { System.out.println("IO:"+e.getMessage()); } finally{ try { if (clientesocket!= null) clientsocket.close(); }catch (IOException e){/*close failed*/} } // try } // main } // class
33 TCP Servidor import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { Socket clientsocket= null; try{ int serverport = 8000; ServerSocket listensocket = new ServerSocket(serverPort); socket= listensocket.accept(); in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); String data = in.readutf(); System.out.println(data); out.writeutf(data); } catch(eofexception e) { System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) { System.out.println("IO:"+e.getMessage()); } finally{ try { if (clientesocket!= null) clientsocket.close(); }catch (IOException e){/*close failed*/} } // try } // main } // class
34 TCP Cliente import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[]) { Socket s = null; try{ int serverport = 8000; s = new Socket(args[1], serverport); DataInputStream in= new DataInputStream(s.getInputStream()); DataOutputStream out= new DataOutputStream(s.getOutputStream()); out.writeutf(args[0]); String data = in.readutf(); System.out.println("Received: "+ data) ; }catch (UnknownHostException e){ System.out.println("Sock:"+e.getMessage()); }catch (EOFException e){ System.out.println("EOF:"+e.getMessage()); }catch (IOException e){ System.out.println("IO:"+e.getMessage());} }finally { if(s!=null) try { s.close(); } catch (IOException e){ System.out.println("close:"+e.getMessage()); } }// try } // main } // class
35 Socket Stream Após concretizada a conexão, tanto no lado do cliente quanto do servidor é criado uma stream de entrada e saída A stream pode ser utilizada como entrada para escrever dados de mais alto nível que simples seqüências de bytes DataInputStream e DataOutputStream ObjectInputStream e ObjectOutputStream No caso de objetos, os mesmos devem ser serializáveis (implementar a interface Serializable)
36 Servidor: lendo objetos ServerSocket listensocket = new ServerSocket(serverPort); clientsocket= listensocket.accept(); oos =new ObjectOutputStream(clientSocket.getOutputStream()); ios= new ObjectInputStream(clientSocket.getInputStream()); Cliente c= new Cliente(); c= (Cliente) ios.readobject();
37 Cliente: escrevendo objetos ss = new Socket(Address, serverport); oos= new ObjectOutputStream(ss.getOutputStream()); ios= new ObjectInputStream(ss.getInputStream()); Cliente c= new Cliente(); c.setclienteid(1); c.setnome("joao"); c.setendereco("r. Brasil");c.setCidade("Cascavel"); c.setestado("pr"); Vector<Carro> vc= new Vector<Carro>(); Carro car= new Carro(); car.setcarroid(1);car.setmarca("vw");car.setmodelo("fus ca");car.setplaca("xxx-1000");car.setano("1976"); vc.add(car); car= new Carro(); car.setcarroid(2);car.setmarca("gm");car.setmodelo("cor cel");car.setplaca("yyy-2000");car.setano("2000"); vc.add(car); c.setcarros(vc); oos.writeobject(c); oos.flush();
38 Objetos Os objetos que serão escritos nos sockets, deverão implementar a interface Serializable A maioria das classes Java implementa a interface Serializable. Exemplo: String implementa a interface Serializable, logo se sua classe utiliza String, ela será consequentemente serializável Em casos particulares, implementar: private void writeobject(java.io.objectoutputstream out) throws IOException private void readobject(java.io.objectinputstream in) throws IOException, ClassNotFoundException private void readobjectnodata() throws ObjectStreamException;
39 Classe Cliente public class Cliente implements Serializable{ private int ClienteID; private String Nome; private String Endereco; private String Cidade; private String Estado; private Vector<Carro> Carros=new Vector<Carro>();.. }
40 Classe Carro class Carro implements Serializable{ } private int CarroId; private String Marca; private String Modelo; private String Ano; private String Placa;...
41 TCP: Exercícios Implemente um programa cliente que envie 2 inteiros para o servidor e este retorne a soma. Implemente uma aplicação Cliente/Servidor para consultas de clientes em uma base de dados. Utilize a lógica de programação e os objetos DAO implementados no JDBC Tanto no lado do cliente quanto o servidor as classes Cliente e Carro deverão ser as mesmas Quando compiladas em diferentes projetos elas recebem identificadores de versão diferentes Defina as classes como uma biblioteca, ou; Redefina o atributo: private static final long serialversionuid = 100L; (cuidado!!!)
42 TCP Servidores multithread: atender vários clientes ao mesmo tempo sem bloqueio ThreadClass new new Obj1 Obj2
43 TCP import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { try{ int serverport = 7896; ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); Connection c = new Connection(clientSocket); c.start(); // ou utilize os executors (JSE6) } } catch(ioexception e) {System.out.println("Listen :"+e.getmessage());} } }
44 TCP class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientsocket; public Connection (Socket aclientsocket) { try { clientsocket = aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); start(); } catch(ioexception e) {System.out.println("Connection:"+e.getMessage());} } public void run(){ try { // an echo server String data = in.readutf(); out.writeutf(data); } catch(eofexception e) {System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) {System.out.println("IO:"+e.getMessage());} } finally{ try {clientsocket.close();}catch (IOException e){/*close failed*/}} } }
45 TCP: Exercícios Reimplemente o programa cliente/servidor para soma de 2 números inteiros, agora com suporte para múltiplo clientes Reimplemente um servidor para consultar clientes no Banco de Dados, que suporte múltiplas conexões
46 UDP UDP Características Tamanho da mensagem: conjunto de bytes, sendo necessário indicar o tamanho. A maioria dos ambientes permite pacotes de tamanho máximo 8k bytes Bloqueio: envio sem bloqueio/ recepção com bloqueio Tempo de espera: a recepção de uma mensagem pode bloquear indefinidamente o processo Recepção: um processo pode receber um datagrama de qualquer máquina, ou especificar uma única máquina no qual o socket receberá pacotes
47 UDP Falhas Mensagens podem ser perdidas pela origem ou destino (erro de checksum, espaço no buffer) Ordenação: mensagens podem ser entregues fora da ordem de envio Utilização do UDP Aplicações onde a perda eventual de uma mensagem é tolerada DNS (Domain Name Service) Baixo overhead
48 UDP Java API DatagramPacket: classe responsável pelo encapsulamento de mensagens UDP Construtor: Mensagem (array de bytes), tamanho da mensagem, endereço da Internet, número da porta Instâncias desta classe são enviadas pela rede
49 UDP DatagramSocket: classe suporta sockets, sendo responsável pelo envio e recebimento de datagramas Construtores: DatagramSocket(), DatagramSocket(2000) send(datagrampacket): envia um datagrama receive(datagrampacket): recebe um datagrama setsotimeout(tempo): define um timeout de espera no bloqueio do método receive.
50 UDP: envio da mensagem import java.net.*; import java.io.*; public class UDPClient{ public static void main(string args[]){ // args give message contents and server hostname DatagramSocket asocket = null; try { asocket = new DatagramSocket(); String mens= new String( Hello world ); byte [] m = mens.getbytes(); InetAddress ahost = InetAddress.getByName( ); int serverport = 7000; DatagramPacket request = new DatagramPacket(m, args[0].length(), ahost, serverport); asocket.send(request); }catch (SocketException e){ System.out.println("Socket: " + e.getmessage()); }catch (IOException e){ System.out.println("IO: " + e.getmessage()); }finally { if(asocket!= null) asocket.close(); } } }
51 UDP: recepção de mensagens import java.net.*; import java.io.*; public class UDPServer{ public static void main(string args[]){ DatagramSocket asocket = null; try{ asocket = new DatagramSocket(7000); byte[] buffer = new byte[1000]; while(true){ DatagramPacket request = new DatagramPacket(buffer, buffer.length); asocket.receive(request); String s= new String(request.getData()); System.out.println("Endereco:"+ request.getaddress()+ " "+ s); } }catch (SocketException e){ System.out.println("Socket: " + e.getmessage()); }catch (IOException e) { System.out.println("IO: " + e.getmessage()); }finally { if(asocket!= null) asocket.close(); } } }
52 UDP: Exercícios Desenvolva um programa que envie um datagrama para um destino onde não existe um processo escutando na porta. Qual o resultado? Desenvolva um programa que faça a leitura de dois números do teclado e envie para um servidor que receberá os dados e retornará a soma destes números utilizando UDP.
53 Serviços da Internet Serviços são baseados em um protocolo definido Descrições dos protocolos normalmente encontrados na RFC (Request for comments) ftp telnet Pop3 http ( Para obter APIs específicas para cada protocolo
54 Serviços da Internet Desenvolvendo um cliente POP3 Baseado na comunicação TCP entre cliente e servidor Servidor: Microsoft Exchange, Sendmail, Lotus Cliente: Outlook, Netscape Mail,.. Protocolo POP3: RFC 1939
55 Protocolo Conexão: host, porta= 110 Serviços da Internet +OK Microsoft Exchange POP3 server version ready USER EU +OK PASS XXXX +OK Comandos do POP3 Ex: STAT => +OK = número de mensagens, tam. da caixa de mensagens RETR n => busca a mensagem n na caixa de mensagens +OK 120 octets DELE n => apaga a mensagem n da caixa de mensagens QUIT => fechar sessão
56 Serviços da Internet pop3sock= new Socket(address, port); instream= new BufferedReader(new InputStreamReader(pop3Sock.getInputStream())); outstream= new BufferedWriter(new OutputStreamWriter(pop3Sock.getOutputStream())); message_in= instream.readline(); System.out.println(message_in); // Envia comando de logon (USER) request= new String("USER "+username); outstream.write(request); outstream.newline(); outstream.flush(); message_in= instream.readline(); System.out.println(message_in);
57 RMI
58 Objetos Distribuídos Middleware RPC (Remote Procedure Call): Chamada remota de procedimentos Procedimentos são executados em máquinas remotas A chamada é realizada da mesma forma que procedimentos locais Utilização de um middleware para converter as chamadas em pacotes de rede para o envio da requisição e recebimento da resposta
59 Objetos Distribuídos RMI (Remote Method Invocation): Invocação remota de métodos Objetos podem invocar métodos de outros objetos, que residem em outras máquinas A chamada é realizada da mesma forma que em objetos locais Ex: cliente.getclienteid(); // objeto residente na máquina local ou pode estar executando em um servidor remoto
60 Objetos Distribuídos Vantagens: Transparência: a invocação é realizada da mesma forma tanto para métodos locais quanto remotos (apenas a instanciação é realizada de forma diferente). Protocolo de transferência é implementado pelo middleware Transparência de plataforma(hardware+sistema operacional) Servidor de aplicações: facilidade de manutenção, correção de erros
61 Interfaces Objetos Distribuídos(1) Todos os métodos podem ser acessados? Quais métodos e parâmetros do objeto remoto podem ser acessados? objeto A cliente Requisição objeto remoto B Resposta Módulo de Comunicação Módulo de Comunicação
62 Objetos Distribuídos(2) object A client proxy for B Request server skeleton & dispatcher for B s class remote object B Reply Communication module Communication module
63 Objetos Distribuídos Middleware para objetos distribuídos CORBA (Common Object Request Broker Architecture): Definido pela OMG(Object Management Group): um organização com vários membros que definem a especificação de serviços CORBA A partir da especificação existem vários implementadores da arquitetura CORBA Serviços: Nomes, Persistência, Replicação, Tempo Real, Tolerância a Falhas Interoperabilidade entre objetos implementados utilizando diferentes linguagens
64 Objetos distribuídos Middleware para objetos distribuídos RMI (Remote Method Invocation): existe a técnica RMI e a tecnologia RMI fornecida pela SUN. Invocação remota de métodos para objetos Java Os objetos são implementados em uma mesma linguagem A interface é definida em linguagem Java Objetos complexos podem ser passados como parâmetros (Implementar a interface Serializable)
65 Java RMI Interface: define um conjunto de métodos que podem ser acessados remotamente Ex: import java.rmi.*; interface SomaInterface<T> extends Remote{ } T soma(t a, T b) throws RemoteException;
66 Java RMI Alguns objetos precisam ser alterados para que possam ser acessados remotamente A interface não contém construtores Objeto executa na máquina servidor. Concentra a necessidade de recursos de hardware e software no servidor
67 Parâmetros e retorno de método Parâmetros e valores de retorno podem ser de qualquer tipo Objetos locais Objetos remotos Dados primitivos Objetos devem implementar a interface java.io.serializable Objetos locais são passados por valor. Uma cópia do objeto é criado na JVM que está recebendo o objeto Qualquer alteração na cópia não será refletida no objeto original Qualquer alteração no objeto original, após a passagem por parâmetro do mesmo, não será refletida na cópia
68 RMI Geração de stubs Compilador rmic Protocolo RMI Protocolo IIOP(Internet Inter-Orb Protocol) Corba Automaticamente
69 SomaRMI: Definindo a interface Definir quais os métodos poderão ser acessados remotamente import java.rmi.*; interface SomaInterface extends Remote{ } Integer soma(integer a, Integer b) throws RemoteException;
70 SomaRMI: Objeto Remoto Implementar a interface remota A classe pode implementar construtores e métodos adicionais que não serão acessíveis remotamente public class SomaImpl implements SomaInterface{ } public Integer soma(integer a, Integer b) throws RemoteException { } return a+b;
71 SomaRMI: Servidor public class SomaServer{ public static void main(string[] args) { if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } try { String name = "SomaRMI"; SomaInterface SomaServer = new SomaImpl(); SomaInterface stub = (SomaInterface) UnicastRemoteObject.exportObject(SomaServer, 0); Registry registry = LocateRegistry.getRegistry(); registry.rebind(name, stub); System.out.println("SomaServer running"); } catch (RemoteException ex) { System.out.println("Error RMIServer"); ex.printstacktrace(); } } } A interface remota deve ser registrada em algum serviço de nomes RMI registry JNDI- Java Naming and Directory Interface
72 SomaRMI: Cliente public class SomaClient { public static void main(string args[]){ if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } try { String name = "SomaRMI"; String address= " "; Registry registry = LocateRegistry.getRegistry(address); SomaInterface ClienteRemote=(SomaInterface)registry.lookup(name); System.out.println(ClienteRemote.soma(new Integer(5), new Integer(10))); } catch (Exception e) { System.err.println( Soma remote exception:"); e.printstacktrace(); } } }
73 Arquivo de políticas (policy) Tanto no servidor quanto no cliente, um SecurityManager é instalado Isto é necessário, pois durante a execução do RMI, poderá haver o download de classes via rede Exemplo grant codebase "file:/d:/javaprojs/somarmi/dist/somarmi.jar" { }; permission java.security.allpermission;
74 Executando o servidor Inicialize o rmiregistry rmiregistry java -Djava.security.policy=../policy cp d:\javaprojs\somarmi\dist\somarmi.jar - Djava.rmi.server.codebase=file:/d:/javaProjs/SomaR MI/dist/SomaRMI.jar somarmi.somaserver Outras opções: -Djava.rmi.server.hostname=ENDERECO IP, endereço no qual o objeto deverá se conectar. Por padrão ele se conecta no endereço local, portanto somente respondendo chamadas geradas a partir de clientes executando na mesma máquina do servidor
75 Executando o Cliente java -Djava.security.policy=../policy cp d:\javaprojs\somarmi\dist\somarmi.jar somarmi.somaclient Requisitos: Classes que são passadas por parâmetro ou recebidas devem estar disponíveis no classpath Disponíveis através de um servidor web para download. Djava.rmi.server.codebase=URL
76 RMI- Dynamic code download Se um objeto não está definido na JVM receptora, ele pode ser obtido dinamicamente Possibilita que novos tipos e comportamentos sejam disponibilizados dinamicamente Criando um código que possa ser baixado dinamicamente Definir uma interface Passar um objeto que implementa a interface
77 Dynamic Code Download Fonte: Sun Microsystems, 2008
78 Exercício Implemente um objeto remoto para o acesso à classe ClienteDAO Faça programas clientes que acessem o ClienteDAO remotamente Ex: public interface InterfaceDAO extends Remote { boolean connect() throws RemoteException;; boolean deleterecord(int id) throws RemoteException;; boolean deleterecord(cliente record) throws RemoteException;; void disconnect() throws RemoteException;; List<Cliente> getlistentries() throws RemoteException;; Cliente getrecord(int index) throws RemoteException;; int saverecord(cliente record) throws RemoteException; }
79 Material complementar
80 Carga dinâmica de classes
81 Utilizando a carga dinâmica de classes Implemente duas interfaces ClienteInterface CarroInterface Implemente as classes Cliente e Carro utilizando as interfaces definidas acima Implemente o ClienteDAO para que o mesmo retorne as classes ClienteInterface e CarroInterface
82 InterfaceDAO public interface InterfaceDAO extends Remote { } boolean connect() throws RemoteException; boolean deleterecord(int id) throws RemoteException; boolean deleterecord(clienteinterface record) throws RemoteException; void disconnect() throws RemoteException; List<ClienteInterface> getlistentries() throws RemoteException; ClienteInterface getrecord(int index) throws RemoteException; int saverecord(clienteinterface record) throws RemoteException
83 Implementação Servidor Contém todas as classes ClienteInterface CarroInterface Cliente (implementa ClienteInterface) Carro (implementa CarroInterface) InterfaceDAO ClienteDAO (implementa InterfaceDAO) Na execução do servidor, disponibilizar as classes Cliente e Carro através de um servidor http java cp Server.jar Djava.rmi.server.codebase= er.jar Djava.security.policy=policy server.main
84 Implementação Cliente Classes necessárias InterfaceDAO ClienteInterface CarroInterface Na execução do Cliente, quando o mesmo acessar a classe Cliente, a mesma deverá baixar do servidor http
85 Serviços da Internet Classe URL: abstração de protocolos da Internet. ftp://ftp.inf.unioeste.br Evitar que os detalhes de protocolo necessitem ser implementados A comunicação é vista como um canal onde os dados podem ser lidos e escritos Pertencente ao pacote java.net.url
86 Serviços da Internet public URL(String url) throws MalformedURLException try { URL u= new URL( ); }catch (MalformedURLException e){ System.out.println( Endereço inválido +e); } Os protocolos suportados pela classe URL são dependentes da implementação da máquina virtual Java http ftp telnet
87 Serviços da Internet public InputStream openstream() throws IOException Abre um canal para que informações possam ser transferidas public URLConnection openconnection() throws IOException Abre uma conexão (entrada e saída) public Object getcontent() throws IOException Obtém o dado em forma de um objeto. Ex: imagens(gif, jpeg) são retornadas como objetos do tipo java.awt.image, possibilitando o tratamento e a visualização
88 Serviços da Internet Utilizando a classe URL para verificar o conteúdo de páginas Web class BuscaWeb(){ public static void main(string args[]){ if (args.length < 1) { System.out.println( java BuscaWeb <URL> ); }else{ URL u= new URL(args[0]); BufferedReader in= new BufferedReader(new } InputStreamReader(u.openStream())); String s; while ((s=in.readline()!= null) { System.out.println(s+ \n ); //mostra a pagina na tela } } }
89 Serviços na Internet Exercício: Faça um analisador de páginas Web. Considere que usuário informará a página e qual palavra o mesmo está querendo analisar. O seu programa deve retornar quantas vezes esta palavra aparece na página Dicas: regionmatches(boolean ignorecase, int toffset, String other, int ooffset, int len) ignorecase= true, ignora maiúsculas e minúsculas toffset= deslocamento na String s other= string a ser comparada Ooffset= deslocamento na String a ser comparada len= tamanho da String a ser comparada
90 Serviços na Internet S= Pagina WEB teste 123, sub= WEB S.regionMatches(true, 0, sub, 0, 3); falso S.regionMatches(true, 7, sub, 0, 3); true
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
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. Prof. Ricardo Ribeiro dos Santos [email protected]
Sistemas Distribuídos Prof. Ricardo Ribeiro dos Santos [email protected] Curso de Engenharia de Computação UCDB Julho/2003 Relembrando... Encapsulamento nas camadas de rede e protocolos 2-2 Relembrando...
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
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
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
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
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
Programação de sockets com TCP
Programação de sockets Objetivo: aprender a construir aplicações cliente-servidor que se comunicam usando sockets SOCKET = API (Application Program Interface) Introduzida no BSD4.1 UNIX, 1981 * Explicitamente
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
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
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
SISTEMAS DISTRIBUIDOS
1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização
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
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 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
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 Capítulos 2 e 3: Modelos, Arquitecturas e Revisão de Redes
Sistemas Distribuídos Capítulos 2 e 3: Modelos, Arquitecturas e Revisão de Redes Modelos de Arquitecturas para sistemas distribuidos Interfaces e Objectos Sistemas Distribuidos 2012-2013 1º semestre Camadas
INF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho [email protected] Programa Capítulo 18 Sockets OLadoServidor O Lado Cliente Múltiplos Clientes 1 Programa Capítulo 18 Sockets
Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída www.dca.ufrn.
Programação em Rede Baseada em Java Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída www.dca.ufrn.br/~affonso/cursos Definiçõs Básicas Uma rede é um conjunto de computadores
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
Programação de Sockets
Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets Socket API introduzida no BSD4.1 UNIX, 1981 explicitamente criados, usados e liberados
Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)
Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema
Tópicos em Sistemas Distribuídos. Modelos de Comunicação
Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos
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
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
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
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
Mecanismos de Comunicação. Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/)
Mecanismos de Comunicação Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/) Sockets o que é? Um socket é um mecanismo de comunicação (dois sentidos) entre dois programas a funcionar
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
Aula 30 - Sockets em Java
Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar
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
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local
Sistemas Distribuídos. Prof. Marcio Seiji Oyamada
Sistemas Distribuídos Prof. Marcio Seiji Oyamada Objetivos Estudar as principais características de Sistemas Distribuídos Estudar os componentes necessários para construção de sistemas distribuídos na
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
Comunicação entre processos
Comunicação entre processos Processo: um programa em execução num sistema terminal (host) Processos em sistemas distintos comunicam trocando mensagens Processo Cliente: processo que inicia a comunicação
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
Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores
Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,
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)
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
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
Java : Comunicação Cliente-Servidor.
Java : Comunicação Cliente-Servidor. Objetivo: Capacitar o aluno a desenvolver uma aplicação servidora para múltiplos clientes. Apresentar as classes Socket e ServerSocket, classes de fluxo de dados, a
Um pouco do Java. Prof. Eduardo
Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.
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
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
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)
Cliente-servidor com Sockets TCP
Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2007/2008 c 2000 2007 Paulo Sérgio Almeida Cliente-servidor com Sockets
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
Sistemas Distribuídos. Coulouris Capítulo 4
Sistemas Distribuídos Coulouris Capítulo 4 Mensagens Para comunicar-se com outros processos, um processo envia uma MENSAGEM para um DESTINO; um outro processo nesse destino recebe a mensagem. As operações
Projeto de Sistemas Distribuídos. Prof. Andrêza Leite [email protected]
Projeto de Sistemas Distribuídos Prof. Andrêza Leite [email protected] Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação
Sockets. Bruno Guimarães Lucas Rossini
Sockets Bruno Guimarães Lucas Rossini Introdução Comunicação entre processos: Memória compartilhada Memória distribuída - Mensagens pela rede Um sistema distribuído é ausente de memória compartilhada,
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
Programação de Sockets
Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets API de Sockets introduzida no BSD4.1 UNIX, 1981 sockets são explicitamente criados, usados
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
Sistemas Distribuídos
Sistemas Distribuídos Comunicação Remota Gustavo Reis [email protected] 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos
Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais
Comunicação Inter-Processos Conceitos Iniciais 1 Características para Comunicação Inter-Processos. Passagem de Mensagem pode ser suportada por duas operações de comunicação (send e receive). A comunicação
FTP FILE F TRANSFER PROTOCOL. Tópicos
FTP FILE F TRANSFER PROTOCOL Tópicos Revisão da aplicação FTP Implementação simples em Java de uma conexão FTP Implementação simples em Java de um comando de transferência de arquivo Descrição dos exercícios
Sistemas Distribuídos
Sistemas Distribuídos Comunicação entre Processos Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Visão geral A API para protocolos Internet Representação externa de dados e empacotamento Comunicação
Considerações no Projeto de Sistemas Cliente/Servidor
Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis
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
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
Sistemas Operacionais
Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor
Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do
Passagem de Mensagens
Passagem de Mensagens Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 22 de novembro de 2011 Francisco Silva (UFMA/LSD)
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
Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos
Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo
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
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
Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:
Tecnologia em Redes de Computadores Redes de Computadores Professor: André Sobral e-mail: [email protected] Conceitos Básicos Modelos de Redes: O O conceito de camada é utilizado para descrever como ocorre
Sockets com Java Parte I
Sockets com Java Parte I Neste artigo veremos como desenvolver aplicações em Java que podem comunicar-se via rede local ou via internet, usando sockets. Leia mais em: Sockets com Java Parte I http://www.devmedia.com.br/sockets-com-java-parte-i/
Capítulo 7 CAMADA DE TRANSPORTE
Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos
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
Redes de Computadores II
Redes de Computadores II UDP Prof: Ricardo Luís R. Peres Tem como objetivo prover uma comunicação entre dois processos de uma mesma sessão que estejam rodando em computadores dentro da mesma rede ou não.
Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.
5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo
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:
Introdução ao Modelos de Duas Camadas Cliente Servidor
Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos
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:
Bancos de dados distribuídos Prof. Tiago Eugenio de Melo [email protected]. http://www.tiagodemelo.info
Bancos de dados distribuídos Prof. Tiago Eugenio de Melo [email protected] Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds
Comunicação em Sistemas Distribuídos
Comunicação em Sistemas Distribuídos Sockets Aplicações Protocolo de Aplicação FTP, SMTP, HTTP, Telnet, SNMP, etc. sockets TCP, UDP IP Data Link Ethernet, Token Ring, FDDI, etc Física Conjunto de APIs
USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP
USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da
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
Redes. Pablo Rodriguez de Almeida Gross
Redes Pablo Rodriguez de Almeida Gross Conceitos A seguir serão vistos conceitos básicos relacionados a redes de computadores. O que é uma rede? Uma rede é um conjunto de computadores interligados permitindo
Capítulo IV Comunicação entre processos
From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001. Sockets UDP e TCP. A serialização de estruturas de dados. Comunicação cliente-servidor O
Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para
REDES DE COMPUTADORES
REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores
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
Redes de Computadores. Protocolos de comunicação: TCP, UDP
Redes de Computadores Protocolos de comunicação: TCP, UDP Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca
http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz [email protected]
http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz [email protected] Características O que são os Sistemas Distribuídos? Benefícios : Não são consequências automáticas da distribuição;
