APÊNDICE A EXEMPLO DE APLICAÇÃO
|
|
|
- Derek Affonso Caetano
- 10 Há anos
- Visualizações:
Transcrição
1 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 as implementações, tanto do lado cliente quanto do lado servidor, em CORBA, DCOM e Java. Esse exemplo consiste de um objeto servidor, nomeado como StockMarket, que quando questionado sobre um determinado item de produto responde informando o seu preço, sendo essa requisição atendida pelo seu método get_price( ). A linguagem de implementação utilizada nesse exemplo é o Java, pois ela é a única que utiliza o Java/RMI e tanto o CORBA quanto o DCOM podem ter seus objetos escritos em Java. Cada uma das implementações define uma interface IStockMarket. Elas apresentam o método get_price( ) que retorna um valor real indicando o preço do item de produto passado como parâmetro para o método. Esse exemplo é composto de: 1) Arquivos que definem as interfaces escritas em IDL e Java. 2) Arquivos que mostram como clientes invocam métodos das interfaces através da aquisição de referências para o objeto servidor. 3) Arquivos que mostram a implementação do objeto servidor. 4) Arquivos que mostram a implementação do programa principal. 217
2 1. INTERFACES IDL O arquivo IDL DCOM, na Tabela A.1, mostra que o servidor DCOM implementa a interface IStockMarket como herdeira de IDispatch, que por sua vez é herdeira de IUnknown, assim, a interface IStockMarket herda também os métodos de IUnknown. A interface IDispatch juntamente com o arquivo que descreve o objeto (SimpleStocks do tipo TypeLibrary), possibilta a sua invocação dinâmica. A IDL DCOM também associa a interface IStockMarket com a classe de objetos StockMarket, mostrada no bloco coclass. Nota-se também que cada interface está associada a um Universally Unique Identifier (UUID) nomeado pelo DCOM com CLSID. O arquivo IDL CORBA, na Tabela A.1, mostra a interface StockMarket com o seu método get_price( ). Quando o compilador IDL compila arquivo IDL ele gera arquivos stubs e skeletons e gera também informaçôes sobre cada método da interface armazenando-as no Repositório de Interface. Essas informações possibilitarão a invocação dinâmica, pois o cliente pode, em tempo de execução, questionar o Repositório de Interface e obter a informação sobre a interface e seus métodos. O Java não faz uso de uma IDL específica para definir interfaces. As interfaces são descritas num arquivo <.java> utilizando a própria linguagem Java. A Tabela A.1 mostra a interface StockMarket como herdeira de java.rmi.remote, pois todo o servidor de objeto remoto no Java/RMI, assim como seus métodos, deve ser herdeiro das classes java.rmi.remote e java.rmi.remoteexception. 218
3 2. IMPLEMENTAÇÃO DO CLIENTE O cliente DCOM passa a acessar os métodos do objeto servidor após adquirir o primeiro ponteiro para o objeto, como mostrado na Tabela A.2, através do statement : <IStockMarket market = (IStockMarket) new simplestocks.stockmarket( );> A palavra chave new instancia o objeto DCOM StockMarket, isto é, chama a função CoCreateInstance( ) passando como parâmetro o CLSID. CoCreateInstance( ) retorna o ponteiro de IUnknown sendo então realizado um casting para IStockMarket. O casting faz com que seja chamada a função Queryinterface requisitando um ponteiro para IStockMarket. Caso a interface não seja suportada a ClassCastException indicará uma exceção. O cliente CORBA deve primeiramente inicializar o ORB como mostrado no statement <ORB orb = ORB.init( );> da Tabela A.2. Após, ele deve instanciar o objeto CORBA e obter a sua referência que é dada pelo statement <StockMarket market = StockMarketHelper.narrow(root.resolve(name));> da Tabela A.2, onde o contexto de nomeação ( root ) e nome do componente ( name ) é obtido através do serviço de nomeação. O cliente Java/RMI primeiramente aciona o gerenciador de segurança antes de realizar qualquer chamada remota, como mostrado no statement <System.setSecurityManager( )>, Tabela A.2. Após o cliente instancia o objeto servidor através de um chamada a função Naming.Lookup( ), como mostrado no statement < StockMarket)Naming.lookup("rmi:localhost/NASDAQ");>. Uma vez o cliente tendo adquirido para um objeto servidor remoto um ponteiro válido, no caso do DCOM ou uma referência de objeto válida, no caso do CORBA ou Java/RMI, ele passa a chamar os métodos desse objeto remoto como se ele residisse no seu espaço de endreçamento. 219
4 3. IMPLEMENTAÇÃO DO OBJETO SERVIDOR Para o exemplo mostrado na Tabela A.3, o pacote definido em <com.ms.com> contem todas as classes necessárias para implementar o COM utilizando a linguagem Java. No DCOM o objeto servidor implementa a interface IStockMarket que foi definida no IDL (StockMarketLib.IDL). A classe StockMarket e o método get_price( ) são declarados como públicos de maneira que possam ser acessados fora do pacote. O CLSID é declarado como privado, sendo utilizado pelo COM para instanciar o objeto através da função CoCreateInstance( ) quando o cliente DCOM executar o comando new. O método get_price( ) é capaz de retornar uma exceção (ComException). Para o exemplo mostrado na Tabela A.3, o pacote definido em <org.omg.corba> contem todas as classes necessárias para implementar o CORBA. No CORBA o objeto servidor é herdeiro da classe _StockMarketImplBase que é uma classe do tipo skeleton gerada pelo compilador IDL CORBA. A classe StockMarketImpl e o método get_price( ) são declarados como público de maneira que possam ser acessados fora do pacote. A classe StockMarketImpl implementa todas as operações declaradas no arquivo CORBA IDL (StockMarket.IDL). É necessário prover um construtor, para a classe do objeto servidor CORBA StockMarketImpl, que tenha como argumento uma variável do tipo string, no exemplo, name. Desta forma, todos os serviços CORBA associarão o nome, dado por name, ao servidor de objeto CORBA StockMarketImpl. Para o exemplo mostrado na Tabela A.3, o pacote definido em <java.rmi> contem todas as classes necessárias para implementação em Java. O objeto servidor Java/RMI é herdeiro da classe UnicastRemoteObject.class que possuí a definição de todos os métodos remotos do Java/RMI e implementa a interface StockMarket. A classe StockMarketImpl e o método get_price( ) são 220
5 declarados como público de maneira que possam ser acessados fora do pacote. A classe StockMarketImpl implementa todas as operações declaradas no arquivo de interface Java/RMI (StockMarket.Java). É necessário prover um construtor, para a classe do objeto servidor Java/RMI que tenha como argumento uma variável do tipo string, no exemplo, name. Este nome, dado por name, é registrado no RMIRegistry como um nome público sendo utilizado para estabelecer uma ligação e uma associação do nome ao objeto servidor. O método get_price( ) é capaz de retornar uma exceção (RemoteException). 221
6 4. PROGRAMA PRINCIPAL No programa principal CORBA, mostrado na Tabela A.4, primeiramente é iniciado o ORB (ORB.init( );) e o adaptador de objeto básico (orb.boa_init( );) responsável por connectar a implementação do objeto servidor ao ORB. Desta forma, pode-se instanciar o objeto utilizando o statement <StockMarketImpl stockmarketimpl = new StockMarketImpl("NASDAQ");>. NASDAQ é o nome que identifica o objeto sendo utilizado por todos os serviços CORBA. O statement <boa.obj_is_ready(stockmarketimpl);> informa ao ORB que o objeto está pronto para ser invocado. O trecho de código, mostrado a seguir, ilustra a utilização do serviço de nomeação que possibilita ao cliente encontrar o objeto: <org.omg.corba.object object = orb.resolve_initial_references("nameservice"); NamingContext root = NamingContextHelper.narrow( object ) ; NameComponent[ ] name = new NameComponent[1]; name[0] = new NameComponent("NASDAQ", ""); root.rebind(name, stockmarketimpl);> O statement <boa.impl_is_ready( );> garante que o programa principal aguarde num loop, isto é, sleep on a thread e não finalize até que seja executado um shutdown. No programa principal Java/RMI, mostrado na Tabela A.4, primeiramente, antes de realizar qualquer chamado, é iniciado o security manager e após através do statement <StockMarketImpl stockmarketimpl = new StockMarketImpl("NASDAQ");> é instanciado o objeto. O programa principal permanece até ocorrer um shutdown. 222
7 Não foi apresentado o programa principal utilizando o DCOM pois é o mesmo do Java/RMI. 223
8 TABELA A.1 INTERFACES IDL IDL DCOM IDL CORBA Definição de Interface Java/RMI 224 [ uuid (7371a240-2e51-11d0-b4c ), version (1.0) ] library SimpleStocks importlib ( stdole32.tlb ); [ uuid (BC4C0AB0-5A45-11d2-99C5-00A2414C655), dual ] interface IStockMarket : IDispatch HRESULT get_price( [in] BSTR p1, [out, retval] float * rtn); [ uuid (BC4C0AB3-5A45-11d2-99C5-00A2414C655), ] coclass StockMarket interface IStockMarket, ; ; Module SimpleStocks interface StockMarket float get_price (in string symbol); ;, package SimpleStocks; import java.rmi.*; import java.util.*; public interface StockMarket extends Java.rmi.Remote float get_price ( StringSymbol) throws RemoteException; Arquivo: StockMarketLib.idl Arquivo: StockMarket.idl Arquivo: StockMarket.java FONTE: Gopalan (1999, p.3)
9 225 TABELA A.2 IMPLEMENTAÇÃO DO CLIENTE Cliente DCOM Cliente CORBA Cliente Java/RMI StockMarketClient import simplestocks.*; public class StockMarketClient public static void main(string[ ] args) try IStockMarket market = (IStockMarket) new simplestocks.stockmarket( ); System.out.println( "The price of MY COMPANY is " + market.get_price("my_company") ); StockMarketClient import org.omg.corba.*; import org.omg.cosnaming.*; import SimpleStocks.*; public class StockMarketClient public static void main(string[ ] args) try ORB orb = ORB.init( ); NamingContext root = NamingContextHelper.narrow( orb.resolve_initial_references("nameservice") ); StockMarketClient import java.rmi.*; import java.rmi.registry.*; import SimpleStocks.*; public class StockMarketClient public static void main(string[ ] args)throws Exception if(system.getsecuritymanager( ) == null) System.setSecurityManager(new RMISecurityManager( )); (continua)
10 TABELA A.2 CONCLUSÃO catch (com.ms.com.comfailexception e) System.out.println( "COM Exception:" ); NameComponent[ ] name = new NameComponent[1] ; name[0] = new NameComponent("NASDAQ",""); StockMarket market = (StockMarket)Naming.lookup("rmi:localhost/NASD AQ"); 226 System.out.println( e.gethresult( ) ); System.out.println( e.getmessage( ) ); StockMarket market = StockMarketHelper.narrow(root.resolve(name)); System.out.println("Price of MY COMPANY is " + market.get_price("my_company")); catch( SystemException e ) System.err.println( e ); System.out.println( "The price of MY COMPANY is " + market.get_price("my_company") ); Arquivo: StockMarketClient.java Arquivo: StockMarketClient.java Arquivo: StockMarketClient.java FONTE: Gopalan (1999, p.4)
11 TABELA A.3 IMPLEMENTAÇÃO DO OBJETO SERVIDOR Objeto DCOM Objeto CORBA Objeto/RMI Java StockMarketServer StockMarketServer StockMarketServer import com.ms.com.*; import org.omg.corba.*; package SimpleStocks; import simplestocks.*; import SimpleStocks.*; import java.rmi.*; import java.rmi.server.unicastremoteobject; public class StockMarket implements IStockMarket public class StockMarketImpl extends _StockMarketImplBase public class StockMarketImpl extends private static final String CLSID = UnicastRemoteObject implements StockMarket 227 "BC4C0AB3-5A45-11d2-99C5-00A02414C655"; public float get_price( String symbol ) public float get_price( String symbol ) public float get_price( String symbol ) float price = 0; float price = 0; for(int i = 0; i < symbol.length( ); i++) float price = 0; for( int i = 0; i < symbol.length( ); i++ ) for( int i = 0; i < symbol.length( ); i++ ) price += (int) symbol.charat( i ); price += (int) symbol.charat( i ); price += (int) symbol.charat(i); price /= 5; return price; price /= 5; (continua)
12 TABELA A.3 CONCLUSÃO 228 price /= 5; return price; public StockMarketImpl( String name ) super( name ); return price; public StockMarketImpl( String name ) throws RemoteException try Naming.rebind( name, this ); catch( Exception e ) System.out.println( e ); Arquivo: StockMarket.java Arquivo: StockMarketImpl.java Arquivo: StockMarketImpl.java FONTE: Gopalan (1999, p.5)
13 TABELA A. 4 PROGRAMA PRINCIPAL Programa Principal CORBA Programa Principal Java/RMI StockMarketServer Main import org.omg.corba.*; import org.omg.cosnaming.*; import SimpleStocks.*; StockMarketServer Main import java.rmi.*; import java.rmi.server.unicastremoteobject; import SimpleStocks.*; 229 public class StockMarketServer public static void main(string[ ] args) try ORB orb = ORB.init( ); BOA boa = orb.boa_init( ); StockMarketImpl stockmarketimpl = new StockMarketImpl("NASDAQ"); boa.obj_is_ready( stockmarketimpl ); org.omg.corba.object object = orb.resolve_initial_references("nameservice"); (continua) public class StockMarketServer public static void main(string[ ] args) throws Exception if(system.getsecuritymanager( ) == null) System.setSecurityManager(new RMISecurityManager( )); StockMarketImpl stockmarketimpl = new StockMarketImpl("NASDAQ");
14 TABELA A. 4 CONCLUSÃO NamingContext root = NamingContextHelper.narrow( object ) ; NameComponent[ ] name = new NameComponent[1]; name[0] = new NameComponent("NASDAQ", ""); root.rebind(name, stockmarketimpl); 230 boa.impl_is_ready( ); catch( Exception e ) e.printstacktrace( ); Arquivo: StockMarketServer.java Arquivo: StockMarketServer.java FONTE: Gopalan (1999, p.7)
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
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
Invocação de Métodos em Objectos Remotos
Invocação de Métodos em Objectos Remotos Invocação de Métodos em Objectos Remotos Um sistema de objectos distribuídos é uma extensão ao conceito de RPC Um objecto invoca um método noutro objecto localizado
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
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
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
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
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
Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9
Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através
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
Invocação de Métodos em Objectos Remotos
Invocação de Métodos em Objectos Remotos Invocação de Métodos em Objectos Remotos Um sistema de objectos distribuídos é uma extensão ao conceito de RPC Um objecto invoca um método noutro objecto localizado
Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução
Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite
Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br
Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos
Desenvolvimento de Aplicações Java/CORBA
Tutorial Desenvolvimento de Aplicações Java/CORBA Emerson Ribeiro de Mello, Fábio Favarim e Joni da Silva Fraga {emerson, fabio, [email protected] Este tutorial ensina como criar uma aplicação distribuída
MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais
RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota
Sistemas Distribuídos
Sistemas Distribuídos 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
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
Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local
Objetos distribuídos. Roteiro. Java IDL
Objetos distribuídos Java IDL Roteiro Java IDL Definindo a interface IDL Compilando a interface IDL Criando o servidor Criando o cliente Rodando a aplicação Rodando a aplicação em duas máquinas Java IDL
Java 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
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
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
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
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
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
Java. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
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
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
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
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
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
Implementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
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
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
INE5380 - Sistemas Distribuídos
INE5380 - Sistemas Distribuídos Object Request Broker e CORBA Por: Léo Willian Kölln - 0513227-4 Novembro de 2006 ORB Object Request Broker ORB aqui será tratado como um Middleware que permite a construção
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. [email protected]
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. [email protected] ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
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:
Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }
Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver
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
Linguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Introdução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Programação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a
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
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
1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
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
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
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
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +
Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
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
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
Técnicas de Programação II
Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.
Implementação de Classe e Auto-Relacionamento em Java
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida
Keeper of Knowledge. Capítulo 2 Classes em Java
Capítulo 2 Classes em Java INTRODUÇÃO Uma classe é um conjunto de software que representa uma realidade qualquer, que pode ser representada por números e símbolos. Uma classe possui dados de um ou mais
Java Threads. Introdução
Java Threads [email protected] 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização
Módulo 07 Características Avançadas de Classes
Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos
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
Um pouco do Java. Prof. Eduardo
Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
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
Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos
Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores e sobrecarga Variáveis de classe e de instância Reinaldo Gomes [email protected] Objetos
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:
Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.
1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto
Sistemas Distribuídos RPC Remote Procedure Call
Sistemas Distribuídos RPC Remote Procedure Call Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Cliente/Servidor Quais os problemas? Baseado em E/S Erro propagado
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:
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
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:
UNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services (continuação) WSDL - Web Service Definition Language WSDL permite descrever o serviço que será oferecido
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
A Linguagem Java. Alberto Costa Neto DComp - UFS
A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão
INF01018 Aula Prática 2 RMI Remote Method Invocation
1 / 18 INF01018 Aula Prática 2 RMI Remote Method Invocation Lucas Mello Schnorr, Alexandre Silva Caríssimi {lmschnorr,asc}@inf.ufrgs.br http://www.inf.ufrgs.br/ lmschnorr/ad/ INF01018 Sistemas Operacionais
Persistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO
INTRODUÇÃO 12. DOCUMENTAÇÃO Na plataforma Java SE 7, há cerca de 4000 classes e interfaces disponíveis para utilizarmos em nossas aplicações Podemos visualizar a documentação dessas classes e interfaces
Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais
Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais
Análise de Programação
Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros
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
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado
Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza
Sistemas Distribuídos Métodos de Invocação Remota IV Prof. MSc. Hugo Souza Nesta aula, complementando os conceitos que vimos nas aulas anteriores [aula 15, aula 16 e aula 17], vamos praticar a segunda
O que é uma Exceção? Call Stack. Java Tratamento de Exceção. de métodos que foram usados até chegar na presente instrução.
Java Tratamento de Exceção O que é uma Exceção? n Uma exceção é um evento que ocorre durante a execução do programa que interrompe o fluxo normal de instruções. n Quando um erro acontece em um método,
JSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Programação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 5 Herança Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno
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)
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
Reuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)
Prova de Java 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) O programa consiste em uma aplicação que simula o comportamento de dois
DEFINIÇÃO DE MÉTODOS
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos
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
