Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1
|
|
- Ricardo Gameiro Frade
- 7 Há anos
- Visualizações:
Transcrição
1 Java RMI - Remote Method Invocation Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1
2 ! Autores Autoria " Cláudio Geyer " Marcelo Castiglia Pereira! Local " Instituto de Informática " UFRGS " disciplinas: # Programação Distribuída e Paralela (CIC e ECP) # Programação com Objetos Distribuídos " Versão atual # V12 # Mar/2012 Programação com Objetos Distribuídos (C. Geyer) Java-RMI 2
3 Súmula! Súmula " conceitos básicos de RMI " lado servidor " lado cliente " exemplo Hello " roteiro de desenvolvimento " segurança " pacote RMI Programação com Objetos Distribuídos (C. Geyer) Java-RMI 3
4 Bibliografia! Bibliografia " documentação JDK # API geral: versão 7 (março 2012) # # RMI: -> pacotes e classes RMI Programação com Objetos Distribuídos (C. Geyer) Java-RMI 4
5 Bibliografia! Bibliografia " documentação JDK # versão index.html # => rmi/index.html # inclui 3 tutoriais # básico: programa Helllo World # variações de socket # objetos ativáveis # Versão 7: # Página não encontrada Programação com Objetos Distribuídos (C. Geyer) Java-RMI 5
6 Bibliografia! Bibliografia " tutorial Java da Sun # Oracle: # Sun # index.html # index.html # em geral, esses endereços são independentes de versão Programação com Objetos Distribuídos (C. Geyer) Java-RMI 6
7 Bibliografia! Bibliografia " Farley, J. Distributed Java " Curso Java RMI do jguru " Orfali, R. et alli. Client/Server Programming with Java and Corba. 2 edition, Wiley, # Cap RMI versus CORBA/Java ORBs Programação com Objetos Distribuídos (C. Geyer) Java-RMI 7
8 Conceitos Básicos Programação com Objetos Distribuídos (C. Geyer) Java-RMI 8
9 Conceitos Básicos! Conceitos básicos " RMI - Remote Method Invocation # chamada remota de método " função/objetivo # mecanismo que permite a chamada de métodos de objetos remotos (distribuídos) Programação com Objetos Distribuídos (C. Geyer) Java-RMI 9
10 Conceitos Básicos! Conceitos básicos (cont.) " Segue modelo cliente / servidor " Aplicação RMI usualmente composta por 2 programas # Cliente # Servidor Programação com Objetos Distribuídos (C. Geyer) Java-RMI 10
11 Conceitos Básicos! Conceitos básicos (cont.) " Servidor típico # Cria objetos remotos (RMI) # Torna as referências desses objetos acessíveis aos clientes # Espera por chamadas dos clientes " Cliente típico # Obtém referência a um (1) ou mais objetos remotos # Realiza chamadas aos objetos remotos Programação com Objetos Distribuídos (C. Geyer) Java-RMI 11
12 Conceitos Básicos! Arquitetura típica de RMI Programação com Objetos Distribuídos (C. Geyer) Java-RMI 12
13 Conceitos Básicos! Conceitos básicos (cont.) " oferecer comunicação entre objetos distribuídos de forma similar à comunicação entre objetos locais # simplifica a programação de sistemas distribuídos " características similares às de RPC (chamada remota de procedure) Programação com Objetos Distribuídos (C. Geyer) Java-RMI 13
14 Conceitos Básicos! Conceitos básicos (cont.) " tratamento automático/implícito da heterogeneidade entre máquinas cliente/servidor " comunicação bidirecional # argumentos de entrada # valor de retorno " comunicação síncrona # chamador (cliente, emissor) fica bloqueado até retorno (void inclusive) do chamado (servidor, receptor) Programação com Objetos Distribuídos (C. Geyer) Java-RMI 14
15 Conceitos Básicos! Outras características " permite passagem de objetos " carga automática de classes (programas) # Permite mudança dinâmica do comportamento de programas # Por exemplo, o cliente pode passar o código (classe) de um cálculo a ser realizado pelo servidor # Ver exemplo no tutorial da Oracle Programação com Objetos Distribuídos (C. Geyer) Java-RMI 15
16 Conceitos Básicos! Outras características " atendimento multithreaded a chamadas concorrentes # implica uso de sincronização conforme aplicação # por exemplo, se os métodos acessam variáveis de instância em escrita # -> exclusão mútua -> uso de synchronized Programação com Objetos Distribuídos (C. Geyer) Java-RMI 16
17 Conceitos Básicos! Diferenças entre RPC e RMI " RPC: chamada de uma procedure de um módulo/ processo # o módulo/processo é implícito na chamada # so há uma procedure com determinado nome no módulo # registra-se a procedure e não o módulo # procedure usa os dados (contexto) do módulo Programação com Objetos Distribuídos (C. Geyer) Java-RMI 17
18 Conceitos Básicos! Diferenças entre RPC e RMI " RMI: chamada de um método de um objeto # o objeto é explícito na chamada # vários objetos podem ter o mesmo método # objetos tem dados (contexto) locais ou próprios # registra-se objetos (e não os métodos) Programação com Objetos Distribuídos (C. Geyer) Java-RMI 18
19 Remote Method Invocation (RMI) Máquina Virtual Java #1 (Cliente) Máquina Virtual Java #2 (Servidor)... o.método () { }... chamada (... parâmetros...) retorna resultado objeto remoto método remoto () { } Programação com Objetos Distribuídos (C. Geyer) Java-RMI 19
20 Recursos Básicos Programação com Objetos Distribuídos (C. Geyer) Java-RMI 20
21 Recursos Básicos! Recursos básicos " localizar objetos remotos: obtenção de referências a objetos # através de um servidor de nomes RMI: rmiregistry # servidor registra seus objetos com nomes especiais # cliente obtém referência a partir do nome especial Programação com Objetos Distribuídos (C. Geyer) Java-RMI 21
22 Recursos Básicos! Recursos básicos " comunicação entre objetos # totalmente a cargo do RMI # transparente ao programador # similar à comunicação local # quase... Programação com Objetos Distribuídos (C. Geyer) Java-RMI 22
23 Recursos Básicos! Recursos básicos " carga de classes de objetos passados pela rede # tipos: argumentos, retorno, classe stub # uso de servidores WEB # protocolos HTTP, FTP,... Programação com Objetos Distribuídos (C. Geyer) Java-RMI 23
24 Comunicação entre os componentes! Comunicação entre os componentes do sistema RMI RMI RMI Registry cliente RMI servidor Protocolo URL WEB server Protocolo URL WEB server Programação com Objetos Distribuídos (C. Geyer) Java-RMI 24
25 Passagem de Parâmetros e Resultados! Passagem de Parâmetros e Resultados " tipos primitivos # por exemplo, int, boolean, double,... # são passados por valor " objetos remotos # isto é, objetos que implementam a interface remota # são passados como referências remotas # apenas para permitir que o receptor possa chamar os métodos dos objetos remotos # implicitamente na busca do servidor pelo cliente (inicialização) Programação com Objetos Distribuídos (C. Geyer) Java-RMI 25
26 Passagem de Parâmetros e Resultados! Passagem de Parâmetros e Resultados (cont.) " todos os outros objetos # são serializados # passados por valor # isto é, uma cópia do objeto é transferida Programação com Objetos Distribuídos (C. Geyer) Java-RMI 26
27 Falhas! Outras diferenças entre chamada local e remota " diferentes tipos de falha podem ocorrer em um sistema distribuído # afeta programação # por exemplo, a falha pode atingir somente o servidor " alguns métodos, hashcode, equals, and tostring, são sensíveis a contextos distribuídos Programação com Objetos Distribuídos (C. Geyer) Java-RMI 27
28 Camadas de Software do Sistema RMI caminho lógico Programa Cliente Programa Servidor Stub Camada de Referência Remota Camada de Transporte Internet Esqueleto Camada de Referência Remota Camada de Transporte Camadas de Software do Sistema RMI Programação com Objetos Distribuídos (C. Geyer) Java-RMI 28
29 Camadas de Software do Sistema RMI! Camadas de software (implementação) " Interface remota " Stub # Define os métodos de uma classe remota que podem ser chamados remotamente # Classe derivada de uma classe remota (servidora) # Implementa os métodos da interface remota # Cliente faz a chamada ao stub # Stub é responsável por redirecionar a chamada ao objeto remoto " Cliente # só pode chamar os métodos que estão na interface Programação com Objetos Distribuídos (C. Geyer) Java-RMI 29
30 Aspectos de Programação Programação com Objetos Distribuídos (C. Geyer) Java-RMI 30
31 Programação: servidor! Aspectos básicos de programação " O lado do servidor " O lado cliente " Exemplo Hello " Passos para criação e execução Programação com Objetos Distribuídos (C. Geyer) Java-RMI 31
32 Programação: servidor! Aspectos básicos de programação " o lado do servidor # uma interface remota # uma classe que implementa a interface # registro de objetos servidores no rmiregistry Programação com Objetos Distribuídos (C. Geyer) Java-RMI 32
33 Programação: servidor! Aspectos básicos de programação " o lado do servidor # métodos remotos # são especificados em uma interface remota que estende java.rmi.remote # objetos servidores remotos # são instâncias de classes que implementam a interface remota # essas classes são definidas como subclasses de # java.rmi.server.unicastremoteobj ect Programação com Objetos Distribuídos (C. Geyer) Java-RMI 33
34 O Lado do Servidor! Aspectos básicos de programação " o lado do servidor # o programa servidor gerente (mestre) # cria um (ao menos) um objeto remoto # associa esse objeto a um nome simbólico # e o adiciona ao rmiregistry # métodos remotos e construtores de objetos remotos # podem disparar RemoteExceptions # elas devem ser declaradas e tratadas. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 34
35 Exemplo HelloWorld! Aspectos básicos de programação " exemplo # aplicação HelloWorld em modo cliente/servidor # servidor remoto # um único método # retorna um string Hello World # cliente # chama método acima Programação com Objetos Distribuídos (C. Geyer) Java-RMI 35
36 Exemplo Hello! Exemplo hello: interface do servidor // todos os arqs em um pacote package hello; // importa pacote de classes RMI import java.rmi.*; // interface do objeto servidor public interface Hello extends Remote { // um único método sayhello public String sayhello()throws java.rmi.remoteexception; } Programação com Objetos Distribuídos (C. Geyer) Java-RMI 36
37 Exemplo Hello! Exemplo hello: implementação do servidor package hello; import java.rmi.*; import java.rmi.server.*; // herda a UnicastRemoteObject e // implementa a interface Hello public class HelloImpl extends UnicastRemoteObject implements Hello{ Programação com Objetos Distribuídos (C. Geyer) Java-RMI 37
38 Exemplo Hello // implementa o construtor public HelloImpl() throws RemoteException { } super(); // implementa o método sayhello public String sayhello() throws RemoteException { } return Hello, World! ; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 38
39 Exemplo Hello! Exemplo hello: implem. do servidor (cont.) // método main da classe servidora public static void main (String args[]) { try { // cria objeto HelloImpl HelloImpl h = new HelloImpl() //registra o objeto Naming.rebind( hello, h); } Programação com Objetos Distribuídos (C. Geyer) Java-RMI 39
40 Exemplo Hello catch (Exception e) { System.out.println( HelloImpl.main: + e); } } } Programação com Objetos Distribuídos (C. Geyer) Java-RMI 40
41 Programação: cliente! Aspectos básicos de programação " o lado do cliente # conhecimento da interface remota # acesso à interface remota do servidor em tempo de compilação # localização de um (ao menos) objeto servidor no rmiregistry # conhecimento do nome associado ao objeto # chamadas remotas Programação com Objetos Distribuídos (C. Geyer) Java-RMI 41
42 O Lado do Cliente! Aspectos básicos de programação " o lado do cliente # um cliente # que queira utilizar classes de um servidor remoto # deve estabelecer um gerenciador de segurança # por exemplo, RMISecurityManager # o cliente referencia o objeto remoto # usando seu nome simbólico para procurá-lo no registro Programação com Objetos Distribuídos (C. Geyer) Java-RMI 42
43 O Lado do Cliente! Aspectos básicos de programação " o lado do cliente # agora, o cliente pode chamar métodos de um objeto remoto # da mesma maneira que ele chama métodos de objetos locais # o cliente deve tratar as RemoteExceptions dos métodos remotos Programação com Objetos Distribuídos (C. Geyer) Java-RMI 43
44 Implementação de um Cliente RMI! Exemplo hello: implementação do cliente package hello; import java.rmi.*; public class HelloClient { public static void main (String args[]) { System.setSecurityManager (new RMISecurityManager()); Programação com Objetos Distribuídos (C. Geyer) Java-RMI 44
45 Implementação de um Cliente RMI try { // busca referência com nome Hello h = (Hello) Naming.lookup( rmi://ijui.inf.ufrgs.br/ hello ); //chama um método remoto String message = h.sayhello() System.out.println(message); } catch (Exception e) { System.out.println( Exception in main : + e); }}} Programação com Objetos Distribuídos (C. Geyer) Java-RMI 45
46 Passos do Uso de RMI! Passos para gerar e executar uma aplicação RMI " 1) Escreva arquivos Java para # interface remota # classe que implementa a interface remota (servidor) # classe que chama o método remoto (cliente) " 2) Compile os arquivos.java com javac # Atualmente gera todas as classes necessárias à execução Programação com Objetos Distribuídos (C. Geyer) Java-RMI 46
47 Passos do Uso de RMI! Passos para gerar e executar uma aplicação RMI " 3) Gere stubs e skeletons com o compilador RMI rmic: # a partir da versão 1.x (com certeza 1.5 e 1.6) o uso do rmic (abaixo~) não é mais necessário # simplesmente compilar com javac # rmic < classe que implementa a interface remota> # cuidados em caso de package # chamar o rmic do diretório pai do pacote: pai do hello # indicar todo o caminho da classe: hello.helloimpl # indicar o diretório para o stub e skeleton por - d. : diretório do package Programação com Objetos Distribuídos (C. Geyer) Java-RMI 47
48 Passos do Uso de RMI! Passos para gerar e executar uma aplicação RMI " 4) Torne as classes disponíveis na rede " 5) Inicie o registry daemon na máquina remota: # se Unix (Solaris) rmiregistry & # se Windows 95/98: start rmiregistry Programação com Objetos Distribuídos (C. Geyer) Java-RMI 48
49 Passos do Uso de RMI! Passos para gerar e executar uma aplicação RMI " 6 ) Inicie o servidor na máquina remota # se o RMISecurityManager foi criado, é preciso indicar a política de controle de segurança # as opções de políticas (sintaxe e semântica) são bastante ricas (e complexas) # política totalmente aberta (cuidado) para testes: conteúdo de arquivo policy grant { // Allow everything for now permission java.security.allpermission; }; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 49
50 Passos do Uso de RMI! Passos para gerar e executar uma aplicação RMI " 6 ) Inicie o servidor na máquina remota (cont.) # o interpretador Java tem muitas opções # inclusive quanto à segurança # variações conforme versão do JDK # exemplo de chamada: java -Djava.security.policy= \myhome\mysources\policy hello.helloimpl # o arquivo \myhome\mysources\policy contem a política Programação com Objetos Distribuídos (C. Geyer) Java-RMI 50
51 Passos do Uso de RMI! Passos para gerar e executar uma aplicação RMI " 7) Inicie o programa cliente na máquina cliente # java hello.helloapp Programação com Objetos Distribuídos (C. Geyer) Java-RMI 51
52 Usando RMI! Bootstrap do Cliente e RMI Cliente Servidor Hello Client lookup(): onde está Hello? onde está Registry Stub envia a referência (stub) aqui está o stub sayhello() Hello HelloImpl_Stub.class HelloImpl_Skel.class HelloImpl.class Programação com Objetos Distribuídos (C. Geyer) Java-RMI 52
53 Aspectos Adicionais Segurança, Integridade Referencial,! Programação com Objetos Distribuídos (C. Geyer) Java-RMI 53
54 Segurança do RMI! Segurança do RMI " Um programa (normalmente o cliente) que queira utilizar classes de uma máquina remota deve estabelecer um gerenciador de segurança, por exemplo: # System.setSecurityManager (new RMISecurityManager()); Programação com Objetos Distribuídos (C. Geyer) Java-RMI 54
55 Segurança do RMI! Segurança do RMI " O RMISecurityManager não permite que classes remotas (entre outras) # utilizem novas classes # manipulem threads # saiam da Máquina Virtual Java " Outros gerenciadores de segurança # construção por extensão do RMISecurityManager # exemplo: implementar autenticação de chaves públicas. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 55
56 Outros Aspectos! Integridade referencial " quando duas (ou mais) referências ao mesmo objeto (não remoto) são passadas em uma mesma chamada remota # na máquina receptora, elas apontarão para a mesma (única) cópia do objeto " Se em chamadas distintas # Dois objetos no destino Programação com Objetos Distribuídos (C. Geyer) Java-RMI 56
57 Outros Aspectos! Semântica de chamada RPC " cada chamada é executada somente uma vez " se a chamada falha (rede, servidor), há certeza de que a chamada foi executada # ou uma única vez # ou nenhuma Programação com Objetos Distribuídos (C. Geyer) Java-RMI 57
58 Extensões a RMI! Extensões a RMI " diversos trabalhos acadêmicos " correção de deficiências de RMI " questões # cache # replicação # assincronismo # sincronização distribuída # chamada local # criação de objetos remotos Programação com Objetos Distribuídos (C. Geyer) Java-RMI 58
59 Extensões a RMI! Extensões a RMI " ver resumos em # TrabalhosLeves1a2003s1 # Página perdida Programação com Objetos Distribuídos (C. Geyer) Java-RMI 59
60 Resumo! Resumo " RMI permite cliente chamar métodos de objetos remotos em servidor " Chamada de método (quase) usual " Atendimento concorrente a múltiplas chamadas " Carga automática de classes " Obtenção de referências remotas por servidor de nomes " Objetos argumentos passados por cópia " Interface RMI # Define métodos remotos # Implementados por classe RMI Programação com Objetos Distribuídos (C. Geyer) Java-RMI 60
61 Pacote java.rmi Programação com Objetos Distribuídos (C. Geyer) Java-RMI 61
62 Pacote java.rmi! Pacote java.rmi " uso por clientes e servidores " Classe Remote # servidores com interface marcadora " Classe Naming # associação, desassociação e procura de objetos remotos " Observação: # Slides não atualizados desde versão 1.4 (?) Programação com Objetos Distribuídos (C. Geyer) Java-RMI 62
63 Pacote java.rmi! Pacote java.rmi " Classe RMISecurityManager # testes de segurança em classes carregadas de máquinas remotas # por exemplo, stubs de clientes Programação com Objetos Distribuídos (C. Geyer) Java-RMI 63
64 Pacote java.rmi! Pacote java.rmi (cont.) " Classe RemoteException # estende java.lang.exception # subclasses, por exemplo # ConnectException # AccessException # NoSuchObjectException # devem ser pegas num bloco catch ou declaradas em uma cláusula throws Programação com Objetos Distribuídos (C. Geyer) Java-RMI 64
65 Pacote java.rmi! Pacote java.rmi.server " necessitado por servidores apenas " as classes mais importantes: # RemoteObject # estende java.lang.object # métodos como equals(), tostring(), hashcode (), que fazem sentido para objetos remoto # RemoteServer # métodos para obter informações sobre clientes e para login Programação com Objetos Distribuídos (C. Geyer) Java-RMI 65
66 Pacote java.rmi! Pacote java.rmi.server (cont.) " as classes mais importantes: # UnicastRemoteObject # subclasse de RemoteServer vinda com o pacote # usa sockets TCP para comunicação # referências remotas não permanecem válidas após reinícios (falha - start) do servidor # uma única cópia do objeto Programação com Objetos Distribuídos (C. Geyer) Java-RMI 66
67 Pacote java.rmi! Pacote java.rmi.server " Classe java.rmi.activation.activatable # classe abstrata # objetos remotos da classe são ativados somente quando chamados # pode destruir-se quando achar conveniente Programação com Objetos Distribuídos (C. Geyer) Java-RMI 67
68 Interfaces de Registro! Conceitos " Um registro é um objeto remoto que mapeia nomes para objetos remotos. " Um registro pode ser usado em uma máquina virtual com outras classes de servidores ou sozinho. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 68
69 Interfaces de Registro! Interfaces de Registro (cont.) " para recuperação e registro de objetos através de um simples nome. # Interface java.rmi.registry.registry # classe java.rmi.registry.locateregistry Programação com Objetos Distribuídos (C. Geyer) Java-RMI 69
70 A interface Registry! A interface Registry " A interface java.rmi.registry.registry # métodos para # procura, associação, reassociação, desassociação e listagem do conteúdo de um registro. " A classe java.rmi.naming # usa a interface remota registry para o uso de nomes baseados em URL. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 70
71 A interface Registry A interface Registry: package java.rmi.registry; public interface Registry extends java.rmi.remote { public static final int REGISTRY_PORT = 1099; public java.rmi.remote lookup(string name) throws java.rmi.remoteexception, java.rmi.notboundexception, java.rmi.accessexception; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 71
72 A interface Registry public void bind(string name, java.rmi.remote obj) throws java.rmi.remoteexception, java.rmi.alreadyboundexception, java.rmi.accessexception; public void rebind(string name java.rmi.remote obj) throws java.rmi.remoteexception, java.rmi.accessexception; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 72
73 A interface Registry public void unbind(string name) throws java.rmi.remoteexception, java.rmi.notboundexception, java.rmi.accessexception; } public String[] list() throws java.rmi.remoteexception, java.rmi.accessexception; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 73
74 A interface Registry! A interface Registry (cont.) " REGISTRY_PORT é a porta default de registro " lookup # retorna o objeto remoto associado ao nome especificado # o objeto remoto implementa um conjunto de interfaces remotas # clientes podem juntar o objeto remoto à interface remota desejada. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 74
75 A interface Registry! A interface Registry (cont.) " bind # associa o nome ao objeto remoto obj. # se o nome já está associado a um outro objeto, a exceção AlreadyBoundException é ativada. " Rebind # associa o nome ao objeto remoto obj. # qualquer associação do nome feita anteriormente é descartada. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 75
76 A interface Registry! A interface Registry (cont.) " unbind " List # remove a associação entre o nome e o objeto remoto obj # Se o nome não está associado a nenhum objeto, a exceção NotBoundException é ativada. # retorna um array de strings contendo uma lista dos nomes associados no registro. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 76
77 A interface Registry! A interface Registry (cont.) " Clientes # podem acessar o registro por # interfaces LocateRegistry e Registry # métodos da classe java.rmi.naming. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 77
78 A interface Registry! A interface Registry (cont.) " Clientes X domínios # bind, unbind e rebind # apenas de clientes que estejam no mesmo domínio do servidor. # Lookup # pode ser feito de qualquer domínio. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 78
79 A classe LocateRegistry! A classe LocateRegistry " java.rmi.registry.locateregistry " métodos estáticos que retornam uma referência para o registro: # no domínio atual # numa porta específica do domínio atual # num domínio específico # numa determinada porta de um domínio específico Programação com Objetos Distribuídos (C. Geyer) Java-RMI 79
80 A classe LocateRegistry! A classe LocateRegistry (cont.) " createregistry # cria e exporta um registro no domínio local na porta especificada. # o registro implementa uma sintaxe de nome simples que associa o nome de um objeto remoto (uma string) a uma referência de um objeto remoto # o nome e as associações do objeto remoto não são mantidas após a reinicialização do servidor. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 80
81 A classe LocateRegistry! A classe LocateRegistry (cont.) " o que é retornado é o stub remoto para o registro com o domínio especificado e a informação da porta. " nenhuma operação remota precisa ser executada para obter uma referência (stub) para qualquer registro em qualquer domínio. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 81
82 A classe LocateRegistry package java.rmi.registry; public final class LocateRegistry { public static Registry getregistry() throws java.rmi.remoteexception; public static Registry getregistry(int port) throws java.rmi.remoteexception; public static Registry getregistry(string host) throws java.rmi.remoteexception, java.rmi.unknownhostexception; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 82
83 A classe LocateRegistry public static Registry getregistry(string host, int port) throws java.rmi.remoteexception, java.rmi.unknownhostexception; } public static Registry createregistry(int port) throws java.rmi.remoteexception; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 83
84 A interface RegistryHandler! A interface RegistryHandler " interface para implementações privadas. package java.rmi.registry; public interface RegistryHandler { Registry registrystub(string host, int port) throws java.rmi.remoteexception, java.rmi.unknownhostexception; Programação com Objetos Distribuídos (C. Geyer) Java-RMI 84
85 A interface RegistryHandler Registry registryimpl(int port) throws java.rmi.remoteexception; } Programação com Objetos Distribuídos (C. Geyer) Java-RMI 85
86 A interface RegistryHandler! registrystub " retorna uma referência para contatar um registro remoto no domínio e na porta especificados.! registryimpl " constrói e exporta um registro na porta especificada " a porta deve ser diferente de zero. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 86
87 Revisão RMI básico! Revisão RMI básico " o que é? " Apropriado para que tipo de arquitetura de SDs? " RMI X OO? " RMI X heterogeneidade de hw e plataforma? " RMI X direcionalidade da comunicação? " RMI x sincronização (em TM)? Programação com Objetos Distribuídos (C. Geyer) Java-RMI 87
88 Revisão RMI básico! Revisão RMI básico " RMI X RPC? # estados? # quantos podem ser chamados? " semântica do atendimento em chamadas concorrentes? " transferência (passagem) de objetos " carga de executáveis? Programação com Objetos Distribuídos (C. Geyer) Java-RMI 88
89 Revisão RMI básico! Revisão RMI básico " localização do objeto servidor: # via? # como? # servidor? # cliente? " carga de classes de objetos transferidos? " quais as formas (3) de passagem de argumentos? " qual a relação entre falhas e RMI? " RMI e certos métodos como equals? Programação com Objetos Distribuídos (C. Geyer) Java-RMI 89
90 Java RMI - Remote Method Invocation Programação com Objetos Distribuídos (C. Geyer) Java-RMI 90
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 maisJava RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Leia maisJava RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Leia maisNum sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Leia maisRMI e RPC. RPC significou um passo muito grande em direcção à
Sumário RMI Conceito. Arquitectura de Implementação. Java RMI Características. Interfaces e Objectos Remotos JVM e Java RMI. Passagem de Argumentos e Serialização. Class Downloading. 1 RMI e RPC RPC significou
Leia maisSistemas Operacionais II
Modelo orientado a objetos: uma pequena revisão Instituto de Informátic ca - UFRGS Sistemas Operacionais II Modelos para programação distribuída (Remote Method Invocation) Aula 14 Programa é visto como
Leia maisJavaTM RMI - Remote Method Invocation
JavaTM RMI - Remote Method Invocation Java e Engenharia de Software Orientada a Objetos por Jorge H. C. Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Julho de 1999 Objetivos desta Aula Mostrar o modelo de
Leia maisSISTEMAS 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 maisSistemas Distribuídos
Sistemas Distribuídos RPC Remote Procedure Call 1 Fonte: Alcides Calsavara e Thais V. Batista Chamada de Procedimentos Remotos (RPC) Motivação: comunicação baseada em operações de entrada/saída Ideal:
Leia mais15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado
Aplicações distribuídas: interação entre partes Processamento Paralelo Middleware Orientado a Objetos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Rede A Rede B Rede C 2015/01 - INF02799 Sistema
Leia maisAPLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar
- Aula 5 - PROGRAMAÇÃO DISTRIBUÍDA COM RMI 1 (Remote Method Invocation) 1. INTRODUÇÃO Sistemas distribuídos necessitam que aplicações, executando em vários espaços de endereçamento, normalmente em diferentes
Leia maisExemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR
n n n n Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança Callbacks Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Estende o modelo de objeto Java para fornecer suporte
Leia maisInvocaçã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 maisJava RMI Remote Method Invocation
Java RMI Remote Method Invocation Prof. Tiago Garcia de Senna Carneiro Sistemas Distribuídos - 2006 Conteúdo Passos para implementar um aplicação RMI Executando e compilando uma aplicação RMI Exemplo:
Leia maisSistemas Distribuídos
Chamada Remota de Procedimento março de 2019 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e
Leia maisChamadas 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 maisProgramando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
Leia maisJava 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 maisMIDDLEWARE 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 maisSistemas de Objectos Distribuídos
From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 Paula
Leia maisTutorial 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 maisUNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula
Leia maisSistemas 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 maisChamada Remota de Procedimento (RPC)
Chamada Remota de Procedimento (RPC) cont semântica de chamadas pelo menos uma vez no máximo uma vez exatamente uma vez relação com protocolo subjacente falhas e reinicializações de servidores funções
Leia maisSistemas 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 maisRemote Method Invocation (RMI)
Remote Method Invocation (RMI) November 1, 2009 Sumário RMI Conceito Implementação Exemplos Java RMI Características Objectos Remotos e Interfaces Remotas Implementação de Java RMI Argumentos e serialização
Leia maisUFG - 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 maisSistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Leia maisImplementação de um Sistema de Objetos Remoto baseado em Java RMI. Ricardo Couto Antunes da Rocha INF/UFG
Implementação de um Sistema de Objetos Remoto baseado em Java RMI Ricardo Couto Antunes da Rocha INF/UFG Declaração da Interface do Objeto Remoto Declaração de uma interface Java, com os métodos que são
Leia maisInvocaçã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 maisSistemas 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 maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisCOMPUTAÇÃO DISTRIBUÍDA
COMPUTAÇÃO DISTRIBUÍDA INTRODUÇÃO Carlos Ferraz MOTIVAÇÃO Computação em evolução Antes disso Sistemas de Software (Aplicações) Infraestrutura de Software Infraestrutura de Hardware Infraestrutura
Leia maisSistemas 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 maisProgramação Paralela OO. projeto ProActive www-sop.inria.fr/oasis/proactive/home.html
Programação Paralela OO projeto ProActive www-sop.inria.fr/oasis/proactive/home.html motivação integracão de programacão paralela e distribuida com POO programacão mpi-like trabalha em baixo nivel de abstracão
Leia maisJava 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 maisNum 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 maisSistemas Distribuídos
Chamada Remota de Procedimento abril de 2017 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e
Leia maisCOMUNICAÇÃ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 maisAspectos para Construção de Aplicações Distribuídas
Aspectos para Construção de Aplicações Distribuídas Cristiano Amaral Maffort maffort@gmail.com Programa de Pós-Graduação em Informática PUC Minas Belo Horizonte MG 12 de junho de 2007 Middleware Objetivo:
Leia maisSistemas 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 mais1 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 maisComunicação Objetos Distribuídos e RMI
Sistemas Distribuídos Comunicação Objetos Distribuídos e RMI - Parte 2 - Instituto de Informática UFG Verão 2005 Baseado em: Tanenbaum, Capítulo 2 Chamadas de Objetos: Chamadas Remotas e Chamadas Locais
Leia maisChamada Remota de Procedimento (RPC)
Chamada Remota de Procedimento (RPC) cont semântica de chamadas pelo menos uma vez no máximo uma vez exatamente uma vez relação com protocolo subjacente falhas e reinicializações de servidores funções
Leia maisINTRODUÇÃO. RPC x RMI
1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.
Leia maisRPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Leia maisSistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21
Sistemas de Objetos Distribuídos Primeira Aplicação Java ORB Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosPrimeira Aplicação
Leia maisHerança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Leia maisProtocolo Request-Reply
n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Características de
Leia maisTratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções LPG II Java Tratamento de Exceções Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally Hierarquia de exceções em Java Considerações
Leia maisInformática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1
Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Autor Autor Local Cláudio Geyer Instituto de Informática disciplinas: POD e PDP Versão v4 2010-1 Programação com Objetos Distribuídos
Leia maisTRATAMENTO DE EXCEÇÕES
Uma exceção em Java é um sinal que alguma condição excepcional aconteceu; Algo de errado aconteceu! Exemplos: solicitação de abertura de um arquivo não encontrado; índice de um array fora de faixa; uma
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisLÓGICA DE PROGRAMAÇÃO INTRODUÇÃO AO JAVA. Professor Carlos Muniz
Instalação do Compilador/Interpretador ( JDK ) As versões do JDK estão disponíveis livremente na Internet no site: http://java.sun.com O JDK, apresenta variáveis de ambiente, utilizadas para indicar ao
Leia maisRecapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Leia maisProgramação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III
Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços
Leia maisInvocação Remota. Prof. Leonardo Barreto Campos. 1/29
Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido
Leia maisConceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1
Conceito Básicos de Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Autoria Autor C. Geyer Local Instituto de Informática UFRGS disciplina : Programação
Leia maisCapí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 maisCommon Object Request Broker Architecture
Common Object Request Broker Architecture OMG: Object Management Group. Organização internacional, sem fins lucrativos, fundada em 1989. Mais de 800 membros (incluindo fabricantes de sistemas, produtores
Leia maisObjetos 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 maisJava Standard Edition (JSE)
Java Standard Edition (JSE) Capítulo 01. Introdução à tecnologia JAVA Esp. Márcio Palheta MSN: marcio.palheta@hotmail.com 1 Agenda Apresentação: Formação, graduação, certificação, área de atuação; Apresentação
Leia maisQuando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa
Leia maisArquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Middleware de Aplicações Paralelas/Distribuídas
Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Leia maisCOMPUTAÇÃO DISTRIBUÍDA
COMPUTAÇÃO DISTRIBUÍDA INTRODUÇÃO Carlos Ferraz MOTIVAÇÃO Computação em evolução Antes disso Sistemas de Software (Aplicações) Infraestrutura de Software Infraestrutura de Hardware Infraestrutura
Leia maisA ) 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 mais9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisProgramação Orientada a Objetos SANTOS, Rafael (PLT)
Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc
Leia maisParadigmas de Computação Paralela
Paradigmas de Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho 9 Novembro 2017 Paradigmas de Computação Paralela
Leia maisClasses e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto
Leia maisPrincipais conceitos de CORBA
Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Herança de classes concretas e Object A superclasse que passamos para a cláusula extends não precisa ser
Leia maisTratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções Java Avançado Tratamento de Exceções Roberto Vedoato vedoato@joinville.udesc.br Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally
Leia maisVamos fazer um pequeno experimento
1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisSistemas Distribuídos Aula 10
Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisOrientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento
Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes
Leia maisCOMPUTAÇÃO DISTRIBUÍDA
COMPUTAÇÃO DISTRIBUÍDA INTRODUÇÃO Carlos Ferraz MOTIVAÇÃO Computação em evolução Antes disso Sistemas de So6ware (Aplicações) Infraestrutura de So6ware Infraestrutura de Hardware Infraestrutura
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisObjetos e Componentes Distribuídos: EJB e CORBA
: EJB e CORBA Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
Leia maisTratamento de Exceções
Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que
Leia maisNotas de Aula 09: Tratamento de exceções
Notas de Aula 09: Tratamento de exceções Objetivos da aula: Compreender o conceito de exceção Aprender a tratar exceções nos programas Entender a hierarquia das exceções Criar e lançar uma exceção proprietária
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc.
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Sistemas de Tratamento de Exceções Exceções genéricas Classes de exceções
Leia maisINF01018 Aula Prática 2 RMI Remote Method Invocation
1 / 18 INF01018 Aula Prática 2 RMI Remote Method Invocation Lucas Mello Schnorr, Alexandre Silva Caríssimi {lmschnorr,asc}@inf.ufrgs.br http://www.inf.ufrgs.br/ lmschnorr/ad/ INF01018 Sistemas Operacionais
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisInfra-Estrutura de Software
Infra-Estrutura de Software Entrada / Saída 2º. EE: 21/06 Próximas Datas http://www.cin.ufpe.br/~cagf/if677/2016-1/ slides/ Revisão de notas: 28/06 FINAL: 30/06 Diversidade de dispositivos Hardware de
Leia maisNúmero: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:
Número: Nome: Página 1 de 7 LEIC/LETI 2016/17, Repescagem do 1º Teste de Sistemas Distribuídos 4 de julho de 2017 Responda no enunciado, usando apenas o espaço fornecido. Identifique todas as folhas. Uma
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo
Leia maisJAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
Leia mais