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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcrição

1 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 com atenção cada questão antes de responder. A interpretação do enunciado de cada pergunta é um factor de avaliação do teste. O teste é SEM consulta. A duração do teste é de 2h00. O enunciado contém 10 páginas que devem ser entregues com a resposta ao teste. NOME: NÚMERO.: 1) Suponha que se pretende criar um sistema de caching cooperativo com as funcionalidades base do sistema desenvolvido no trabalho prático. Suponha que, quando em funcionamento, o sistema inclui, em cada instituição, um servidor de cache único e um proxy individual em cada máquina dos clientes. O servidor de cache mantém uma cache com recursos (ficheiros) obtidos directamente da Internet e a partir de outros servidores de cache. A interface dos servidores de cache é acessível usando RMI. O objecto remoto que implementa a interface do servidor de cache regista-se no rmiregistry com o nome CacheServer. O proxy individual apenas serve de intermediário entre os clientes e o servidor de cache. Os clientes (browsers) obtêm os recursos pretendidos pelos utilizadores usando o protocolo HTTP a partir do proxy individual que corre na mesma máquina. No âmbito deste sistema, responda às seguintes questões. 1. Pretende-se criar um programa que verifique se um ficheiro existe no servidor de cache duma instituição. Este programa recebe dois parâmetros: o nome da máquina em que executa o servidor de cache e o URL do recurso de que se pretende verificar a existência. Em caso de erro, o programa deve apresentar imediatamente uma mensagem apropriada à situação de erro surgida. Complete o anexo A com o código apropriado. 2. Complete o anexo B com o código da classe FileToTransfer, usada para transferir o conteúdo de um recurso armazenado num ficheiro entre dois servidores de cache. 3. Complete o anexo C com o código do servidor de cache. Ao completar o código da função getresource pode utilizar apenas as funções definidas neste anexo leia atentamente a sua funcionalidade e o modo como devem ser invocadas nos comentários do código. (No código apresentado não deve ser implementada nenhuma funcionalidade de recuperação de erros.) 4. A classe MulticastRegistry, apresentada no Anexo D, pode ser usada para obter referências para objectos remotos sem saber a sua localização exacta. Para tal, é usada comunicação UDP em modo multi-ponto. A classe inclui tanto a parte servidor, responsável por atender os pedidos de lookup e bind, bem como a parte cliente que faz esses pedidos enviando, repetidamente, uma mensagem para um grupo multi-ponto pré-acordado. Complete o anexo D de modo a que na função lookup os pedidos sejam reenviados repetidamente, com intervalos de aproximadamente 1 segundo, caso ainda não tenha sido obtida uma resposta e até se esgotar o timeout especificado. 2) Para cada pergunta, assinale como V[erdadeira] ou F[alsa] cada uma das afirmações. As respostas erradas descontam. 1. Um servidor implementado em Java RMI: i. Apenas está disponível para receber invocações remotas após ter sido registado no rmiregistry (i.e., após ter sido feito Naming.rebind(...)). ii. Só pode implementar uma e uma só interface remota. iii. Pode terminar a sua execução se o servidor de registo (rmiregistry) local terminar a sua execução. iv. Um servidor RMI que defina um método remoto (void f( A a)), pode receber como parâmtero da função um objecto do tipo B (i.e., uma instância da classe B). 1

2 2. Suponha que um programa mantém uma referência para um objecto remoto. i. É possível dois threads desse programa usarem a mesma referência remota para fazer diferentes pedidos ao servidor. ii. O programa pode passar essa referência como parâmetro de uma invocação remota de um método definido noutro servidor. iii. Enquanto o programa mantiver essa referência, o servidor por ela referido não termina, a menos que a máquina em que o servidor executa falhe (assumindo que não existem problemas nas comunicações). iv. A referência para o objecto remoto inclui informação sobre a localização do objecto remoto (incluindo o nome/ip da máquina em que o servidor executa). 3. Considere o mecanismo de serialização do Java: i. O mecanismo de serialização automática serializa todos os campos definidos numa classe com excepção dos membros definidos como transient e incluindo os membros estáticos da classe. ii. Ao serializar um objecto, serializa-se não só o valor dos membros do objecto, mas também o código da classe que o objecto implementa. iii. Ao ler uma referência remota (referência para um objecto remoto) gravada previamente num ficheiro usando o mecanismo de serialização automática, é possível usá-la para efectuar uma invocação remota. iv. Ao definir um par de funções para efectuar a serialização não automática, é sempre necessário considerar o estado completo do objecto, incluindo os membros definidos em toda a hierarquia de classes (por exemplo, ao definir as funções de serialização não automática numa classe A que estende B, os membros de B devem ser considerados nas funções definidas). 4. Considere o mecanismo que permite definir fábricas de sockets específicas para cada objecto remoto. i. Uma referência remota inclui informação sobre a fábrica do cliente. ii. Todos os servidores de um mesmo tipo (i.e. instâncias da mesma classe) devem usar a mesma fábrica de sockets. iii. É possível garantir que o conteúdo das invocações RMI não pode ser lido por um atacante utilizando uma fábrica de sockets cujos sockets cifram os dados com um chave secreta criada no momento da criação das fábricas e guardada como membro das fábricas. 3) No contexto do trabalho prático, suponha que um servidor de cache pretende verificar se, para um dado recurso, o conteúdo da sua cache é idêntico ao conteúdo da cache de outro servidor. 1. Explique como poderia implementar esta funcionalidade de forma eficiente em todas as situações, incluindo os recursos relativos a servidores HTTP anteriores à versão 0.9, i.e., a servidores cujas respostas não incluem cabeçalhos. Não se esqueça de indicar as operações que são necessárias estar disponíveis no servidor de cache interrogado e o processamento efectuado no servidor de cache que inicia a verificação. 2. Explique brevemente como poderia implementar esta funcionalidade para recursos relativos a servidores HTTP

3 4) Indique, justificando em ambos os casos, se as seguintes afirmações são verdadeiras ou falsas. 1. No âmbito do trabalho prático, quando um servidor de cache remove da sua cache uma página HTML, deixa de haver interesse em manter na cache as figuras que são referidas nessa página, assim, estas figuras podem ser igualmente removidas imediatamente). É Verdadeiro / Falso porque: 2. No contexto do trabalho prático, suponha que o proxy individual descobre o servidor de cache por multicast, i.e., enviando uma mensagem multicast que será respondida pelo servidor de cache. Suponha que nesta interacção o servidor de cache (S) envia ao proxy individual (P) a seguinte mensagem: Servidor de cache -> proxy individual : stub, {KsKpubP, {MD5(stub+Ks)KprivS Ignorando os problema de replaying, o proxy individual pode comunicar de forma segura com o servidor de cache, tendo a certeza que está a comunicar com o servidor de cache, cifrando todas as mensagens trocadas com a chave Ks. É Verdadeiro / Falso porque: 5) Relativamente ao trabalho prático, responda a DUAS das seguintes perguntas (nota: caso responda a mais de duas perguntas, apenas as duas primeiras serão corrigidas). 1. Um requisito do trabalho prático impõe que os recursos de uma instituição devem ser usados de forma prioritária para servir os seus próprios utilizadores. O facto de em Java RMI cada invocação remota ser atendida no servidor por um thread separado pode levantar problemas na implementação desse requisito. Uma possível solução pode basear-se no uso do semáforo como primitiva de sincronização como forma de limitar directamente o número de pedidos externos concorrentes. Outra forma alternativa de atender ao mesmo requisito consiste em depositar os pedidos numa fila de espera, servida por um número de threads fixo e pré-determinado, os quais processam concorrentemente os pedidos e entregam os resultados aos respectivos requerentes através de callback RMIs. Indique uma vantagem e um defeito de cada uma destas técnicas. 2. No âmbito do trabalho prático, suponha que um servidor de cahe envia, periodicamente, para todos os outros servidores de cache uma mensagem com um resumo (Bloom filter) das páginas que mantém em cache. Este resumo é construído de forma a ocupar muito pouco espaço, podendo, no entanto, indicar que uma página se encontra em cache quando tal não acontece (com baixa probabilidade). Caso o resumo indique que a página não se encontra em cache, essa informação é correcta. Indique uma vantagem e uma desvantagem desta aproximação quando comparada com uma solução em que um servidor de cache envia uma mensagem a todos os outros servidores sempre que cada recurso é adicionado ou removido da sua cache. 3

4 3. Não sendo possível utilizar comunicação multi-ponto para localizar servidores de outras instituições, uma possível alternativa é a seguinte. Cada servidor mantém a lista de todos os outros servidores a executar. Quando um novo thread inicia a execução comunica com um dos servidores já em execução (o qual deve ser dado como parâmtero ao iniciar o servidor) para obter a lista dos outros servidores. Ao receber a lista de servidores já a executar envia uma mensagem a cada um dos servidores da lista a informar a sua presença. O novo servidor adiciona-se localmente à lista obtida. Supondo que a comunicação é efectuada de forma fiável e ignorando os problemas da remoção de servidores da lista de servidores conhecidos, indique se esta aproximação permite garantir que todos os servidores do sistema ficarão a conhecer todos os outros. Justifique. 4. Considere uma forma de filtragem de conteúdos consistindo em procurar ocorrências de palavras banidas em todos os recursos não binários. Caso uma palavra proibida seja encontrada, o servidor de cache recusa-se a servir e fazer caching desses conteúdos. Supondo que o objectivo é filtrar conteúdos de um dado tipo (por exemplo, os conteúdos relacionados com futebol poderiam ser filtrados usando um conjunto de palavras, entre as quais: futebol, bola, estádio, etc.), seria esta estratégia de censura eficaz, coerente e inteligente? Justifique. 5. Relativamente à opção de antecipação proposta no trabalho, considere a seguinte estratégia. O servidor tem um conjunto de threads responsáveis por obter os recursos a partir dos servidores de origem. Estes servidores processam continuamente uma lista de pedidos relativos a recursos a obter. Para cada recurso, obtêm o recurso a partir do servidor final, colocam-no na cache local e, se for uma página HTML, inserem na lista de recursos a obter todos os URLs (imagens e ligações a outras páginas) existentes nessa página. Indique qual o problema desta estratégia e sugira uma alternativa. 4

5 ANEXO A /** Interface do servidor de cache public interface CacheServerInterface extends java.rmi.remote { /** * Devolve verdadeiro caso o servidor tenha uma cópia do recurso com o URL indicado public boolean existsresource( String url) throws RemoteException;... // outros métodos public class CachedURL { public static void main(string[] args) { if( args.length!= 2) { System.out.println( "Use: java CachedURL host url"); System.exit(0); String hostname = args[0]; String url = args[1]; CacheServerInterface server = (CacheServerInterface) Naming.lookup ( "//" + hostname + "/dirserver" ) ; if( server.existsresource( url ) ) System.out.println( "URL " + url + " disponível na cache" ); else System.out.println( "URL " + url + " não disponível na cache " ); catch( Exception e) { System.out.println( "Erro na comunicação : " + e.getmessage()) ; 5

6 ANEXO B /** Classe usada para transferir um ficheiro entre dois servidores public class FileToTransfer implements java.io.serializable { String filename; String url; public FileToTransfer(... ) throws... {... /** função que grava estado do objecto, incluindo o conteúdo do ficheiro... /** função que lê estado do objecto, gravando o conteúdo do ficheiro * para um ficheiro com o mesmo nome private void readobject( ObjectInputStream ois ) throws IOException, ClassNotFoundException { filename = ois.readutf() ; // des-serializa o nome do ficheiro url = ois.readutf() ; // des-serializa url //expires = ois.readobject(); long remaining = ois.readlong() ; // des-serializa o tamanho do ficheiro // copia o conteúdo do ficheiro do canal de entrada para o disco byte[] buffer = new byte[1024] ; FileOutputStream fos = new FileOutputStream(filename + ".backup"); while( remaining > 0 ) { int n = ois.read( buffer, 0, (int) Math.min( buffer.length, remaining )) ; fos.write( buffer, 0, n ) ; remaining -= n ; fos.close() ; 6

7 ANEXO C /** Classe de escepção usada para indicar a inexistência de um dado ficheiro public class URLNotFoundException extends Exception { public URLNotFoundException() { /** Interface do servidor de cache public interface CacheServerInterface... { /** * Método usado por um proxy individual para obter o recurso indicado. O servidor deve * tentar obter o recurso a partir dos servidores de cache e da Internet public FileToTransfer getresource( String url) throws..., URLNotFoundException; /** * Método usado por um servidor de cache para obter o recurso indicado a partir da * da cache de outro servidor de cache. public FileToTransfer getcachedresource( String url) throws..., URLNotFoundException;... // outros métodos public class CacheServer extends UnicastRemoteObject implements CacheServerInterface { public CacheServer() throws RemoteException { super(); /** Devolve array de referências remota para servidores de cache private CacheServerInterface [] getcacheservers () {... /** Obtém recurso associado a URL acedendo ao servidor indicado no URL. Se não é * possível obter o recurso devolve null private FileToTransfer getresourcefrominternet( String url) {... /** Obtém cópia local do recurso associado ao URL indicado. Se não existe cópia * local do recurso, devolve null private FileToTransfer getresourcefromlocalcache ( String url) {... /** * Método usado por um servidor de cache para obter o recurso indicado a partir da * da cache de outro servidor de cache. public FileToTransfer getcachedresource( String url) throws..., URLNotFoundException {... 7

8 /** * Método usado por um proxy individual para obter o recurso indicado. O servidor deve * tentar obter o recurso a partir dos servidores de cache e da Internet public FileToTransfer getresource( String url) throws..., URLNotFoundException { FileToTransfer r = getresourcefromlocalcache( url); If( r!= null) Return r; CacheServerInterface[] servers = getcacheservers(); for( int i = 0; i < servers.length; i++) { FileToTransfer r = servers[i].getcachedresource( url); Return r; catch( Exception e) { // do nothing r = getresourcefrominternet( url); if( r == null) throw new URLNotFoundException(); else return r; public static void main( String args[]){ System.getProperties().put( "java.security.policy", "policy.all"); if( System.getSecurityManager() == null) { System.setSecurityManager( new RMISecurityManager()); LocateRegistry.createRegistry ( 1099); catch( RemoteException e) { // do nothing Naming.rebind ( "CacheServer, new CacheServer() ); catch( Exception e) { e.printstacktrace(); 8

9 ANEXO D /*========== Classes usadas para codificar o pedido efectuado ============== class Request implements java.io.serializable { class RegisterRequest extends Request implements java.io.serializable { String name; Remote stub; class LookupRequest extends Request implements java.io.serializable { String name; /* ====== Servidor de registo acessível por multicast ======================= public class MulticastRegistry implements Runnable { private static final String GROUP_ADDR = " "; private static final int GROUP_PORT = ; private Hashtable<String, DatagramPacket> stubs ; private MulticastSocket ss ; // ====================== funções do servidor =============================== /** Inicializa o estado do objecto e lança o thread de atendimento. MulticastRegistry() throws IOException { InetAddress group_addr = InetAddress.getByName( GROUP_ADDR ) ; ss = new MulticastSocket( GROUP_PORT ) ; ss.joingroup( group_addr ) ; stubs = new Hashtable<String, DatagramPacket>(); new Thread( this ).start() ; /* Atende os pedidos de lookup e bind. Para isso, espera que chegue um datagrama com * um objecto do tipo RegisterRequest ou LookupRequest. No caso do lookup responde * enviando de volta o stub do objecto remoto serializado. public void run() { for(;;) { DatagramPacket request = new DatagramPacket( new byte[65536], 65536) ; ss.receive(request ) ; Request req = (Request)DatagramToObject( request ); if( req instanceof RegisterRequest) { stubs.put( ((RegisterRequest)req).name, ObjectToDatagram(((RegisterRequest)req).stub ) ) ;... else if( req instanceof LookupRequest ) { DatagramPacket reply = stubs.get( ((LookupRequest)req).name ) ; if( reply!= null ) { reply.setport( request.getport() ) ; reply.setaddress( request.getaddress() ) ; ss.send( reply ) ; catch( Exception x ) {... 9

10 // ====================== funções auxiliares =============================== /* * Dá o tempo corrente em milissegundos. private static long now(){... /** Serializa o objecto dado para um DatagramPacket. private static DatagramPacket ObjectToDatagram(Object o) {... /** Des-serializa o objecto contido no datagrama dado. private static Object DatagramToObject(DatagramPacket datagram) {... // ====================== funções do cliente =============================== /** Regista um objecto remoto com o nome dado no servidor. public static void rebind(string name, Remote stub) throws IOException {... /* * Implementa o lookup: procura encontrar o stub do objecto identificado por name, * gastando até um máximo de timeout milissegundos. * * Continua a repetir o pedido a cada segundo, caso não tenha recebido * uma resposta (até ao timeout)... public static Remote lookup(string name, int timeout) { long deadline = now() + timeout ; while( now() < deadline ) { catch( SocketTimeoutException x ) { 10

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos exame de recurso, 9 de Fevereiro de 2012 1º Semestre, 2011/2012 NOTAS: Leia com atenção cada questão antes de responder.

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

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

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

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos época de recurso, 28 de Janeiro de 2009 1º Semestre, 2008/2009 NOTAS: Leia com atenção cada questão antes de responder.

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

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos 1ª chamada, 9 de Janeiro de 2009 1º Semestre, 2009/2010 NOTAS: Leia com atenção cada questão antes de responder.

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

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

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005 Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Leia mais

UFG - Instituto de Informática

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

Leia mais

MIDDLEWARE 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

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

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

Programação Concorrente em java - Exercícios Práticos Abril 2004

Programação Concorrente em java - Exercícios Práticos Abril 2004 Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente

Leia mais

Sistemas Distribuídos

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

Leia mais

Invocação 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

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

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

Java : Comunicação Cliente-Servidor.

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

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Sistemas de Telecomunicações

Sistemas de Telecomunicações Departamento de Engenharia Electrotécnica Sistemas de Telecomunicações 2014/2015 Trabalho 1: Aplicação sobre sockets procurador web Mestrado integrado em Engenharia Eletrotécnica e de Computadores http://tele1.dee.fct.unl.pt

Leia mais

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

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

Leia mais

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

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

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

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

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

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

Programa de Computador que funciona em Rede

Programa de Computador que funciona em Rede Programa de Computador que funciona em Rede professor Robinson Vida Noronha 1 Paradigma Um programa rodando em rede é como uma loja. 2 Uma loja é composta por Vendedores Vendedores 3 Um loja deve servir

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

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

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

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

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

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

Aula 30 - Sockets em Java

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

Leia mais

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

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

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

Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java. Copyright 2010 Prof. César Rocha

Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java. Copyright 2010 Prof. César Rocha Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java Copyright 2010 Prof. César Rocha 1 Objetivos Explorar os conceitos fundamentais acerca do uso de streams de arquivos

Leia mais

Computação Distribuída

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

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

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 18 Sockets OLadoServidor O Lado Cliente Múltiplos Clientes 1 Programa Capítulo 18 Sockets

Leia mais

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Threads Threads Threads Threads Professor: César Melo Slides baseados

Leia mais

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos

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

Threads e Sockets em Java. Threads em Java. Programas e Processos

Threads e Sockets em Java. Threads em Java. Programas e Processos Threads em Java Programas e Processos Um programa é um conceito estático, isto é, um programa é um arquivo em disco que contém um código executável por uma CPU. Quando este programa é executado dizemos

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1 Java RMI - Remote Method Invocation Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1 Autores Autoria Cláudio Geyer Marcelo Castiglia Pereira Local Instituto de Informática UFRGS disciplinas:

Leia mais

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

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

Universidade da Beira Interior. Sistemas Distribuídos Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra

Leia mais

Exercício programa para MAC5796

Exercício programa para MAC5796 Exercício programa para MAC5796 Walter Mascarenhas e Helton Rosa 9 de setembro de 2008 Resumo Esse documento explica dois aspectos do exercício programa para MAC5796: o processo de invocação remota de

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções Escola Superior de Gestão e Tecnologia Tratamento de Exceções Objetivos Compreender como o tratamento de exceção e de erro funciona. Como u4lizar try, throw e catch para detectar, indicar e tratar exceções,

Leia mais

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

Programação com sockets (em Java)

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

Leia mais

Sockets com Java Parte I

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/

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

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

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

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

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

Utilização do Appia. Tolerância a Faltas Distribuída 2003/04. Nuno Carvalho nunomrc@di.fc.ul.pt

Utilização do Appia. Tolerância a Faltas Distribuída 2003/04. Nuno Carvalho nunomrc@di.fc.ul.pt Utilização do Appia Tolerância a Faltas Distribuída 2003/04 Nuno Carvalho nunomrc@di.fc.ul.pt Appia Framework para execução e composição de protocolos. Comunicação efectuada por eventos Entre camadas e

Leia mais

5 Caso de estudo O cartão fidelidade

5 Caso de estudo O cartão fidelidade 5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

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

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza Sistemas Distribuídos Métodos de Invocação Remota II Prof. MSc. Hugo Souza Nesta aula, complementando os conceitos que vimos nas aulas anteriores [aula 15], vamos praticar a programação de laboratório

Leia mais

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

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

Leia mais

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação? Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

(ou seja, boas praticas de programação orientada a objetos devem ser empregadas mesmo se não foram explicitamente solicitadas)

(ou seja, boas praticas de programação orientada a objetos devem ser empregadas mesmo se não foram explicitamente solicitadas) PC-2 / LP-2 2009/2 Lista 2 Prof. Alexandre Sztajnberg Em todos os exercícios a(o) aluna(o) deve, além de atender aos requisitos enunciados, utilizar os conceitos e características de orientação a objetos

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

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

Redes de Computadores - 2010/1

Redes de Computadores - 2010/1 Redes de Computadores - 2010/1 Miniprojeto Universidade Federal do Espírito Santo - UFES Professor: Magnos Martinello 20 de maio de 2010 1 1 Proposta A proposta do trabalho é reforçar o compreendimento

Leia mais

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

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Fundamentos de Programaçã. ção Concorrente

Fundamentos de Programaçã. ção Concorrente Java 2 Standard Edition Fundamentos de Programaçã ção Concorrente Helder da Rocha www.argonavis.com.br 1 Programação concorrente O objetivo deste módulo é oferecer uma introdução a Threads que permita

Leia mais

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006 Eng.ª Informática Redes de Computadores 4 de Julho de 2006 Leia atentamente as perguntas seguintes e responda de forma breve e precisa. Pode acompanhar a suas respostas com figuras de forma a torná-las

Leia mais

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Computação Paralela Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Dezembro 2005 Fases de desenvolvimento de aplicações paralelas

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

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

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

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

Java 2 Standard Edition Fundamentos de

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

Leia mais

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP Sockets em Java Leonardo R. Nunes - leonardo@sumersoft.com 1. Introdução A comunicação entre processos de software tornou-se indispensável nos sistemas atuais. O mecanismo mais utilizado atualmente para

Leia mais

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Programação Concorrente em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM O que é programação concorrente? Um programa, múltiplos fluxos de execução Quando usar programação concorrente? Desempenho Ex.:

Leia mais

Programação por Objectos. Java

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

Leia mais

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

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Java Threads. Introdução

Java Threads. Introdução Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização

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

Padrão Arquitetura em Camadas

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

Leia mais

LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013

LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013 Número: Nome: LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 1h30m

Leia mais

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br TRATAMENTO DE EXCEÇÕES Tratamento de Exceções O tratamento de exceções de Java envolve vários conceitos importantes:

Leia mais