Desenvolvendo uma aplicação CORBA utilizando Java
|
|
- Rayssa Escobar Borja
- 8 Há anos
- Visualizações:
Transcrição
1 Desenvolvendo uma aplicação CORBA utilizando Java Tecgraf PUC-Rio fevereiro de 2011
2 Exemplo passo-a-passo Veremos um exemplo, passo-a-passo, de desenvolvimento de aplicações CORBA usando Java Para desenvolver a aplicação, usaremos o Jacorb como ORB tanto para o cliente quanto para o servidor, já que ambos serão desenvolvidos em Java
3 Passo 1: Jacorb e SDK A última versão do Jacorb pode ser obtida de: Precisaremos também do JDK 1.5 ou superior Para fazer build do exemplo, usaremos o Ant:
4 Libs do Jacorb antlr jar avalon-framework jar backport-util-concurrent.jar idl.jar jacorb jar logkit-1.2.jar picocontainer-1.2.jar wrapper jar
5 Passo 2: Escrevendo a IDL // StockMarket.idl // O módulo StockMarket consiste das definições // úteis para desenvolvimento de aplicações // que lidam com mercado de ações. module StockMarket { // O tipo StockSymbol é usado para representar os // identificadores das ações typedef string StockSymbol; // Um StockSymbolList é uma sequência de StockSymbols. typedef sequence<stocksymbol> StockSymbolList; // A interface StockServer é a interface que fornece // as informações sobre as ações do mercado. interface StockServer { // getstockvalue() retorna o valor de uma // determinada ação do marcado identificada por um // StockSymbol fornecido como parâmetro de entrada. // Se o StockSymbol dado for desconhecido, o resultado // é indefinido. Depois veremos como usar uma exceção // para sinalizar essa condição. float getstockvalue(in StockSymbol symbol); ; ; // getstocksymbols() retorna uma sequência com todos os // StockSymbols conhecidos pelo servidor do mercado de // ações. StockSymbolList getstocksymbols();
6 Passo 3: Compilando a IDL Para compilar a IDL, usaremos o Ant e o compilador IDL do Jacorb: <!-- =================================================== --> <!-- Inicializacao --> <!-- ==================================================== --> <target name="init" description="inicia as propriedades"> <property name="lib" value="lib"/> <property name="idl" value="idl"/> <property name="generated" value="generated"/> <property name="jacorb" value="jacorb"/> </target> <!-- ==================================================== --> <!-- IDL compiler --> <!-- ==================================================== --> <target name="idl" depends="clean" description="compila as idls"> <delete dir="${generated"/> <java classname="org.jacorb.idl.parser" fork="yes"> <classpath> <pathelement location="${lib/${jacorb/idl.jar"/> <pathelement location="${lib/${jacorb/logkit-1.2.jar"/> </classpath> <arg line="-d ${generated ${idl/stockmarket.idl"/> </java> </target>
7 Arquivos gerados na compilação da IDL Todas as classes estão dentro do pacote StockMarket StockServer.java StockServerOperations.java StockServerHelper.java StockSymbolHelper.java StockSymbolListHelper.java StockServerHolder.java StockSymbolListHolder.java Interface Files Helper Files Holder Files StockServerPOA.java StockServerPOATie.java _StockServerStub.java Stubs e Skeleton Files
8 Interface Files A interface IDL StockServer é mapeada para: uma interface java de assinatura StockServer.java uma interface java de operações StockServerOperations.java A interface de assinatura possui o mesmo nome da interface IDL, estende outras interfaces CORBA e é usada como o tipo referenciado em outras interfaces. A interface de operações possui o nome da interface IDL junto com o sufixo Operations e é uma interface java pura, ou seja, possui apenas as declarações das operações e atributos definidos na interface IDL
9 StockServerOperations.java package StockMarket; /** * Generated from IDL interface "StockServer". * JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006 generated at Oct 19, :47:22 PM */ public interface StockServerOperations { /* constants */ /* operations */ float getstockvalue(java.lang.string symbol); java.lang.string[] getstocksymbols();
10 StockServer.java package StockMarket; /** * Generated from IDL interface "StockServer". * JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006 generated at Oct 19, :47:22 PM */ public interface StockServer extends StockServerOperations, org.omg.corba.object, org.omg.corba.portable.idlentity { org.omg.corba.object: é a interface raiz para todas as referências a objetos CORBA na linguagem Java, análogo a interface java.rmi.remote para os objetos remotos RMI. org.omg.corba.portable.idlentity: interface de marcação cuja finalidade é apenas indicar que a classe que implementa essa interface é um tipo IDL que possui uma classe de Helper correspondente.
11 Stub e Skeleton Files A compilação da IDL StockServer produz a classe _StockServerStub.java que atua como stub do cliente e as classes StockServerPOA.java e StockServerPOATie.java que servem de skeleton do servidor. Veremos depois que o uso das classes de skeleton POA ou POATie depende da estratégia adotada para implementação do servidor: por herança ou por delegação
12 _StockServerStub.java package StockMarket;! /**! * Generated from IDL interface "StockServer".! *! JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006! generated at Oct 25, :50:57 PM! */! public class _StockServerStub! extends org.omg.corba.portable.objectimpl! implements StockMarket.StockServer {!...! public float getstockvalue(java.lang.string symbol) {!...! public java.lang.string[] getstocksymbols() {!...!
13 StockServerPOA.java package StockMarket;! /**! * Generated from IDL interface "StockServer".! *! JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006! generated at Oct 25, :50:57 PM! */! public abstract class StockServerPOA! extends org.omg.portableserver.servant! implements org.omg.corba.portable.invokehandler,! StockMarket.StockServerOperations! {!...!
14 StockServerPOATie.java package StockMarket;! import org.omg.portableserver.poa;! /**! * Generated from IDL interface "StockServer".! *! JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006! generated at Oct 25, :50:57 PM! */! public class StockServerPOATie! extends StockServerPOA! {!...! private StockServerOperations _delegate;! public StockServerPOATie(StockServerOperations delegate)! {! _delegate = delegate;! public float getstockvalue(java.lang.string symbol)! {! return _delegate.getstockvalue(symbol);! public java.lang.string[] getstocksymbols()! {! return _delegate.getstocksymbols();!
15 Helper Files A compilação da IDL StockServer produz as classes de Helper StockServerHelper.java, StockSymbolHelper.java e StockSymbolListHelper.java As classes de Helper oferecem diversos métodos estáticos úteis na manipulação do tipo correspondente: inserir e extrair um objeto do tipo em Any obter o repository id ler de um stream e escrever para um stream
16 Helper Files A classe de Helper gerada a partir de uma interface IDL, também inclui operações de narrow para converter o tipo genérico org.omg.corba.object para o tipo específico. A exceção IDL CORBA::BAD_PARAM é lançada se a conversão do narrow falhar devido a inconsitência do tipo da referência do objeto.
17 StockSymbolHelper.java package StockMarket;! /*! * Generated from IDL alias "StockSymbol".! *! JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006! generated at Oct 19, :47:22 PM! */! public final class StockSymbolHelper {!...! public static void insert (org.omg.corba.any any, java.lang.string s) {!...! public static java.lang.string extract (final org.omg.corba.any any) {!...! public static String id() {! return "IDL:StockMarket/StockSymbol:1.0";! public static java.lang.string read (! final org.omg.corba.portable.inputstream _in) {!...! public static void write (! final org.omg.corba.portable.outputstream _out, java.lang.string _s) {!...!
18 StockServerHelper.java package StockMarket;! /**! * Generated from IDL interface "StockServer".! *! JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006! generated at Oct 19, :47:22 PM! */! public final class StockServerHelper {! // Todos os métodos estáticos insert, extract, type, id, read e write! // e mais os métodos de conversão narrow!...! public static StockMarket.StockServer narrow(final org.omg.corba.object obj)! {!...! public static StockMarket.StockServer unchecked_narrow(! final org.omg.corba.object obj)! {!...!
19 Holder Files Os métodos definidos nas interfaces IDL que tem passagem de parâmetros nos modos out a inout, requerem o uso de classes de Holder. Todos os tipos primitivos da IDL possuem as classes de Holder disponíveis no pacote org.omg.corba package O compilador IDL gera as classes de Holder para todos os tipos definidos pelo desenvolvedor (exceto aqueles definidos por typedef) A compilação da IDL StockServer produz as classes de Holder StockServerHolder.java e StockSymbolListHolder.java
20 StockSymbolListHolder.java package StockMarket; /** * Generated from IDL alias "StockSymbolList". * JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006 generated at Oct 19, :47:22 PM */ public final class StockSymbolListHolder implements org.omg.corba.portable.streamable { public java.lang.string[] value; public StockSymbolListHolder () { public StockSymbolListHolder (final java.lang.string[] initial) { value = initial; public org.omg.corba.typecode _type () { return StockSymbolListHelper.type (); public void _read (final org.omg.corba.portable.inputstream in) { value = StockSymbolListHelper.read (in); public void _write (final org.omg.corba.portable.outputstream out) { StockSymbolListHelper.write (out,value);
21 StockServerHolder.java package StockMarket; /** * Generated from IDL interface "StockServer". * JacORB IDL compiler V 2.3-beta-2, 14-Oct-2006 generated at Oct 19, :47:22 PM */ public final class StockServerHolder implements org.omg.corba.portable.streamable{ public StockServer value; public StockServerHolder() { public StockServerHolder (final StockServer initial) { value = initial; public org.omg.corba.typecode _type() { return StockServerHelper.type(); public void _read (final org.omg.corba.portable.inputstream in) { value = StockServerHelper.read (in); public void _write (final org.omg.corba.portable.outputstream _out) { StockServerHelper.write (_out,value);
22 Passo 4: Compilando o código java Para compilar o código Java gerado pela IDL, usaremos o Ant e o compilador javac <!-- ==================================================== -->! <!-- Java Compiler -->! <!-- ==================================================== -->! <target name="javac" depends="idl" description="compila o codigo java">! <!-- Cria o diretorio para compilacao -->! <mkdir dir="${build" />! <!-- Compila os fontes do src e do gerenerated -->! <javac destdir="${build"! debug="on"! encoding="iso ">! <src path="${generated"/>! <src path="${src"/>! </javac>! </target>!
23 Passo 5: Implementando o Servant O Servant que implementa a interface definida na IDL StockServer pode ser uma classe que estende a classe abstrata StockServerPOA ou pode ser uma classe simples cuja instância é passada para a classe de delegação StockServerPOATie. Para compilar o Servant, o compilador java deve ter no classpath as classes de skeleton, as classes de interface e as classes Helper e Holder geradas pelo compilador IDL.
24 Estratégias de implementação CORBA suporta dois mecanismos para implementação da IDL por uma classe Servant por herança por delegação A diferença principal entre os dois mecanismos é que, pelo mecanismo de delegação, a classe de implementação da IDL não precisa derivar de uma classe em particular
25 Usando herança package StockMarket; /* * StockServerImpl implementa a interface IDL StockServer */ public class StockServerImpl extends StockServerPOA { // As ações com seus respectivos valores private Map<String, Float> mystock; public StockServerImpl() { mystock = new HashMap<String,Float>(); // Inicializa as ações com nomes e valores // atribuídos randomicamente... public float getstockvalue(string symbol) { if (mystock.containskey(symbol)) { // Simbolo encontrado; retorna seu valor return mystock.get(symbol); else { // Simbolo não foi encontrado return 0f; public String[] getstocksymbols() { return mystock.keyset().toarray(new String[0]);
26 Usando delegação package StockMarket; /** * StockServerImpl implementa a interface IDL StockServer usando * o mecanismo de delegação */ public class StockServerTieImpl implements StockServerOperations { // As ações com seus respectivos valores private Map<String, Float> mystock; public StockServerImpl() { mystock = new HashMap<String,Float>(); // Inicializa as ações com nomes e valores // atribuídos randomicamente... public float getstockvalue(string symbol) { if (mystock.containskey(symbol)) { // Simbolo encontrado; retorna seu valor return mystock.get(symbol); else { // Simbolo não foi encontrado return 0f; public String[] getstocksymbols() { return mystock.keyset().toarray(new String[0]);
27 Passo 6: Implementando o servidor O programa servidor se encarrega de: inicializar o ORB criar o objeto Servant StockServerImpl exportar o Servant para o POA aguardar que o cliente envie requisições Para compilar o servidor, o compilador java deve ter no classpath as classes de interface, a classe do skeleton, as classes Helper e Holder geradas pelo compilador IDL e, a classe do Servant.
28 Inicializa o ORB Properties orbprops = new Properties();! orbprops.setproperty("org.omg.corba.orbclass", "org.jacorb.orb.orb");! orbprops.setproperty("org.omg.corba.orbsingletonclass",! "org.jacorb.orb.orbsingleton");! ORB orb = ORB.init(args, orbprops);! init public static ORB init(string[] args, Properties props) Creates a new ORB instance for a standalone application. This method may be called from applications only and returns a new fully functional ORB object each time it is called. Parameters: args - command-line arguments for the application's main method; may be null props - application-specific properties; may be null Returns: the newly-created ORB instance
29 Cria o Servant que implementa a IDL Se o Servant tiver adotado a estratégia de implementação por herança: Servant stockserver = new StockServerImpl();! Se o Servant tiver adotado a estratégia de implementação por delegação: Servant stockserver = new StockServerPOATie(new StockServerImpl());!
30 Cria o Servant que implementa a IDL Note que, até aqui, temos apenas um objeto Java instanciado. Precisamos agora tornar esse objeto um objeto CORBA, capaz de receber as requisições dos clientes. Usaremos, para isso, o POA.
31 Exporta o Servant para o POA POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));! poa.the_poamanager().activate();! org.omg.corba.object o = poa.servant_to_reference(stockserver);! Obtém uma referência para uma instância do POA Após fazer narrow da referência, é necessário ativar o POA (seu estado inicial é on-holding) Registra o Servant no POA
32 Bloqueia a thread corrente para o ORB orb.run();! Bloqueia a thread corrente até o ORB terminar
33 Exemplo do servidor do StockServer package StockMarket;! import java.io.*;! import org.omg.corba.orb;! import org.omg.portableserver.*;! public class StockServerMain {! public static void main(string args[]) {! try {! // Inicializa o ORB.! Properties orbprops = new Properties();! orbprops.setproperty("org.omg.corba.orbclass", "org.jacorb.orb.orb");! orbprops.setproperty("org.omg.corba.orbsingletonclass",! "org.jacorb.orb.orbsingleton");! ORB orb = ORB.init(args, orbprops);! // Cria o Servant StockServerImpl que implementa a IDL! Servant stockserver = new StockServerImpl();! // Obtém uma referência para o POA e registra o Servant nesse POA! POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));! poa.the_poamanager().activate();! org.omg.corba.object o = poa.servant_to_reference(stockserver);! // Escreve no arquivo a referência para o objeto CORBA! PrintWriter ps = new PrintWriter( new FileOutputStream(! new File( args[0] )));! ps.println(orb.object_to_string( o ));! ps.close();! // Bloqueia a thread corrente até o ORB finalizar! orb.run();! catch (Exception ex) {! ex.printstacktrace();!
34 Passo 7: Implementando o cliente O programa cliente se encarrega de: inicializar o ORB obter a referência para o objeto CORBA StockServer fazer chamadas aos métodos definidos pela IDL do StockServer O módulo cliente deve ter no classpath a classe de stub _StockServerStub, a classe de assinatura StockServer e as classes Helper e Holder geradas pelo compilador IDL
35 Exemplo do cliente do StockServer package StockMarket;! import java.io.*! import org.omg.corba.orb;! public class StockServerClient {! public static void main(string args[]) {! try {! // As propriedades que informam o uso do JacORB como ORB.! Properties orbprops = new Properties();! orbprops.setproperty("org.omg.corba.orbclass", "org.jacorb.orb.orb");! orbprops.setproperty("org.omg.corba.orbsingletonclass",! "org.jacorb.orb.orbsingleton");! // Inicializa o ORB.! ORB orb = ORB.init(args, orbprops);! // Lê o IOR do arquivo cujo nome é passado como parâmetro! BufferedReader reader =! new BufferedReader(new InputStreamReader(new FileInputStream(args[0])));! String ior = reader.readline();! // Obtém a referência para objeto CORBA! org.omg.corba.object obj = orb.string_to_object(ior);! StockServer mystock = StockServerHelper.narrow(obj);! // Executa as chamadas ao objeto CORBA! StockServerClient stockclient = new StockServerClient(myStock);! stockclient.run();! catch (Exception e) {! e.printstacktrace();!
36 Exemplo do cliente do StockServer package StockMarket;! import java.io.*! import org.omg.corba.orb;! public class StockServerClient {! private StockServer mystock;! public StockServerClient(StockServer mystock) {! this.mystock = mystock;! public void run() {! try {! System.out.println( Ações de mercado obtidas do StockServer:");! // Obtém os símbolos de todos as ações! String[] stocksymbols = mystock.getstocksymbols();! // Mostra as ações com seus respectivos valores! for (int i = 0; i < stocksymbols.length; i++) {! System.out.println(stockSymbols[i] + " "! + mystock.getstockvalue(stocksymbols[i]));! catch (org.omg.corba.systemexception e) {! e.printstacktrace();! public static void main(string args[]) {!...!
37 Passo 8: Executando o servidor java -cp./build: lib/jacorb/antlr jar: lib/jacorb/avalon-framework jar: lib/jacorb/backport-util-concurrent.jar: lib/jacorb/idl.jar:lib/jacorb/jacorb jar: lib/jacorb/logkit-1.2.jar: lib/jacorb/picocontainer-1.2.jar: lib/jacorb/wrapper jar StockMarket.StockServerMain ior
38 Saída da execução do servidor mjulia$./runserver Ações do mercado criadas: UION: LGBA: ZZSP: KLVV: ZDZR: UFTH: DNKS: AQVS: AZHM: PEMR:
39 Passo 9: Executando o cliente java -cp./build: lib/jacorb/antlr jar: lib/jacorb/avalon-framework jar: lib/jacorb/backport-util-concurrent.jar: lib/jacorb/idl.jar:lib/jacorb/jacorb jar: lib/jacorb/logkit-1.2.jar: lib/jacorb/picocontainer-1.2.jar: lib/jacorb/wrapper jar StockMarket.StockServerClient ior
40 Saída da execução do cliente mjulia$./runclient Ações de mercado obtidas do StockServer: UION LGBA ZZSP KLVV ZDZR UFTH DNKS AQVS AZHM PEMR
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, fraga@das.ufsc.br Este tutorial ensina como criar uma aplicação distribuída
Leia maisUma 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 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 maisObjetos 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
Leia maisLaborató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
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 maisCurso 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 maisAPÊ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 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 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 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 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 mais! "# $ $ % & % ' & ( )
%&!"# $$ % &( ) ! "#$# %! &&&##&# (! %! &&&#)#!##! &&&## *! &&&## +)! &&&##,)! &&&##. /."0 1$.2.3,,0 *445,0 6.1,70 +.-# 71,$.#0 6 8 9# - . ; 67?,0 javac. : * +, $8 A,BC! 230 D0 @
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 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 maisJava. 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
Leia maisDescriçã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 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 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 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 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 maisJava 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
Leia maisProva 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
Leia maisUNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Aula 19-20: Arquitetura CORBA (continuação) Exemplo de cliente e servidor em CORBA Interfaces IDL Shape e ShapeList Exemplo de cliente e servidor
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 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 maisComandos 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
Leia maisAula 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 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 maisProgramaçã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 maisO sistema SCS 34. getreceptaclesbyname(in NameList names): Obtém uma lista de descritores
3 O sistema SCS Todos os mecanismos de adaptação propostos neste trabalho dependem de uma modularização adequada das aplicações para que possam ser aplicados. Além disso, a natureza tipicamente distribuída
Leia maisEspecializaçã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 maisProjeto de Software Orientado a Objeto
Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software
Leia maisProgramaçã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
Leia maisINE5380 - 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
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 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 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 mais7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.
Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Leia maisExercí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 maisAnalisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar
Projeto Integrador Sistemas Operacionais Prof.ª Lucilia Ribeiro GTI 3 Noturno Grupo: Anderson Alves da Mota. André Luiz Silva. Misael bezerra dos santos. Sandro de almeida silva. Analisar os sistemas operacionais
Leia maisLinguagem 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 maisUm 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.
Leia maisUniversidade 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 maisLinguagem 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
Leia maisinsfcanceof 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 maisProgramaçã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 maisMapeamento de IDL para Java
Mapeamento de IDL para Java Tecgraf PUC-Rio fevereiro de 2011 Mapeamento de interface Uma interface IDL é mapeada para: uma interface java de assinatura uma interface java de operações A interface de assinatura
Leia maisESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans 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 NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado
Leia maisLista 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:
Leia mais2 Ferramentas Utilizadas
2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]
Leia maisAdriano 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 maisTrabalho Prático Nº1 Introdução ao C#.NET
Trabalho Prático Nº1 Introdução ao C#.NET 1. OBJECTIVOS - Entender o contexto da plataforma.net - Desenvolver programas simples em C#.NET - Saber efectuar entradas de dados em modo Consola e Windows Forms
Leia maisJava Spaces Exemplos
Java Spaces Exemplos Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 1 Autoria! Autores! Local " Cláudio Geyer " Instituto de Informática " UFRGS " disciplina: Programação com
Leia maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/3 Como construir um compilador utilizando ferramentas Java Aula 5 Análise Léxica com JavaCC Prof. Márcio Delamaro delamaro@icmc.usp.br Como
Leia maisUniversidade 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 maisAula 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 maisProgramaçã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 maisInvocaçã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 maisDesenvolvimento Web com Framework Demoiselle versão 1.0
Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado
Leia maisCURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
Leia maisThreads 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 maisTé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.
Leia mais8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.
Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Leia maisPrática em Laboratório N.02 Criando um serviço Web via NetBeans
Prática em Laboratório N.02 Criando um serviço Web via NetBeans O objetivo deste exercício é criar um projeto apropriado para desenvolver um contêiner que você resolva utilizar. Uma vez criado o projeto,
Leia maisPara 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
Leia maisProgramaçã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 maisUNIVERSIDADE. 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
Leia mais2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Leia maisParadigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33
PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface
Leia maisProgramaçã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 maisComo 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 maisTHREADS 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 maisESQUEMA 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
Leia maisFBV - Linguagem de Programação II. Um pouco sobre Java
FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base
Leia maisDocumentação Usando o Javadoc
Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários
Leia maisIntroduçã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
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
Leia maisAcesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel
Acesso a Banco Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel As conexões em Java são feitas através de uma ponte que implementa todas as funcionalidades que um banco de dados padrão deve
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisCapítulo 4. Packages e interfaces
Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias
Leia maisKeeper 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
Leia maisBacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.
Bacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.br Conceitos Arquivos permitem armazenar dados de maneira
Leia maisCliente. Servidor. Núcleo do ORB. Depende do adaptador Interface proprietária. Independe de ORB Depende das definições IDL.
1 Copyright 1998, 1999 Francisco Reverbel Cliente Servidor Interface de Invocação Dinâmica Stub IDL Interface do ORB Esqueleto IDL Esqueleto Dinâmico Adaptador de Objetos Núcleo do ORB Independe de ORB
Leia maisProgramaçã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 maisOrientaçã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
Leia maisBSI UFRPE Prof. Gustavo Callou gcallou@gmail.com
BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados
Leia maisPersistê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
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 mais(Aula 17) Threads em Java
(Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend
Leia maisJPA: Persistência padronizada em Java
JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes
Leia maisModificador static e Pacotes. Alberto Costa Neto DComp - UFS
Modificador static e Pacotes Alberto Costa Neto DComp - UFS 1 Roteiro Modificador static Pacotes 2 Modificador static Instanciando a classe Funcionário matricula nome cpf salario salario-min getmatricula()
Leia maispublic Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.
import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)
Leia mais3 Classes e instanciação de objectos (em Java)
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisJava 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 maisConstrução de novas Classes em Java. Classes Atributos Métodos Herança...
Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(
Leia maisSintaxe 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 maisJava : 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 maisSimulado de Linguagem de Programação Java
Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as
Leia mais