Desenvolvimento de Aplicações Java/CORBA

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

Download "Desenvolvimento de Aplicações Java/CORBA"

Transcrição

1 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 CORBA utilizando o JacORB. O exemplo abordado neste tutorial é um simples sistema de envio de mensagens eletrônicas, trocadas entre um cliente e um servidor. Com este exemplo é possível conhecer todas as tarefas envolvidas em uma aplicação distribuída. Os passos a seguir mostram resumidamente, o que está envolvido no processo desenvolvimento uma aplicação distribuída CORBA: 1. Definição da interface remota do objeto Deve-se definir primeiramente a interface remota do objeto usando a Linguagem de Definição de Interface da OMG (IDL-Interface Definition Language). 2. Compilação da IDL Nesta etapa serão gerados os códigos Java da interface, assim como os stubs e skeletons do objeto. 3. Implementação da interface (servant) Nesta etapa é implementado em JAVA a interface descrita na IDL. A implementação da interface é denominada servant. 4. Implementação do servidor Que é responsável por criar os objetos e por registra-los no serviço de nomes, assim como aguardar pelas invocações dos clientes remotos. O servidor usa os skeletons gerados pelo compilador IDL, para facilitar a comunicação. 5. Implementação do cliente O cliente é responsável por obter a referência para o objeto remoto e fazer a chamada aos métodos. Similarmente ao servidor, o cliente usa os Stubs gerados pelo compilador IDL como base da aplicação cliente. 6. Compilando e executando as aplicações Compilação das classes 1

2 Iniciar o serviço de nomes Executar o servidor Executar o cliente Desenvolvimento da Aplicação Descrição Um sistema de envio de mensagens eletrônica, onde as mensagens são compostas por um emissor, destinatário, assunto e corpo da mensagem. O lado servidor da aplicação será responsável por receber as mensagens enviadas pelo lado cliente. O cliente deverá fornecer uma forma de que se possa compor um mensagem e enviá-la para o servidor. Definição da Interface O servidor possui o método enviar_msg(mensagem ), que tem como retorno uma cadeia de caracteres, informando ao objeto que requisitou o método uma mensagem de confirmação indicando se a comunicação foi ou não bem sucessida. Escrevendo a interface IDL (tutorial.idl) module tutorial { struct mensagem{ string emissor; string destinatario; string assunto; string corpo; ; interface correio{ string enviar_msg(in mensagem ); ; ; Compilando a IDL (JacORB 1 1.4) Para compilar a IDL basta executar o seguinte comando: idl tutorial.idl 1 Para este exemplo foi usado o ORB JacORB 1.4, disponível em porém pode-se utilizar qualquer ORB que esteja de acordo com a especificação CORBA v2.3 2

3 O compilador IDL do JacORB irá gerar 6 arquivos em um sub-diretório com o mesmo nome do módulo definido na IDL : tutorial. correio.java Esta interface contem a versão Java da interface correio (correio.idl). A classe correio.java estende a interface org.omg.corba.object, para fornecer a funcionalidade dos objetos CORBA. O arquivo correio.java: /** * Generated from IDL definition of interface "correio" JacORB IDL compiler */ public interface correio extends correiooperations, org.omg.corba.object, org.omg.corba.portable.idlentity{ IDL interface correio module tutorial O mapeamento das sentenças em IDL para JAVA. correiooperations.java Java public interface correio Esta classe contem os métodos da interface correio (enviar_msg(mensagem )). Todas as operações definidas na interface IDL são mapeadas para Java e colocadas no arquivo de operações. Para a interface correio, o arquivo correspondente seria: /** * Generated from IDL definition of interface "correio" JacORB IDL compiler */ public interface correiooperations { /* constants */ /* operations */ 3

4 java.lang.string enviar_msg(tutorial.mensagem ); correiopoa.java Esta classe é o skeleton do servidor, responsável por fornecer a funcionalidade básica do CORBA para o servidor. _correiostub.java Esta classe é o stub do cliente, responsável por fornecer a funcionalidade básica do CORBA para o cliente. correiohelper.java Esta classe fornece operações auxiliares, como a operação narrow(), necessária para fazer o cast de uma referência de objeto CORBA para o tipo correio. correioholder.java Esta classe fornece operações para argumentos do tipo out e inout. Restando então implementar os códigos para os métodos da interface correio (correioimpl.java) definidos na IDL, e os códigos do Servidor (Servidor.java) e do Cliente (Cliente.java) Implementações Todas os códigos utilizados neste tutorial estão neste documento como anexos. Implementaçãoda Inteface(correioImpl.java) A classe correioimpl deve implementar todos os métodos da interface correio. Cada instância de correio é implementada pela correioimpl. O método enviar_msg possui como parâmetro uma estrutura (definida na IDL e que é mapeada para uma classe em Java) mensagem. Implementaçãodo Servidor(Servidor.java) A implementação do servidor deve: Iniciar o ORB; 4

5 Criar uma instância da implementação do objeto CORBA correio Transformar o objeto em uma referência para objeto CORBA; Obter a referência do serviço de nomes; Registrar o novo objeto no servidor serviço de nomes, usando por exemplo o nome Servidor- ; Aguardar pelas invocações dos clientes ao objeto. Implementaçãodo Cliente(Cliente.java) A implementação do cliente deve: Inicializar o ORB; Obter a referência do serviço de nomes; Procurar pelo objeto que tenha sido registrado com o nome "Servidor- " no serviço de nomes e recuperar a referência do objeto; Converter o objeto para o tipo de sua interface (correiohelper.narrow(obj)); Invocar os métodos no objeto. Compilando e executando o exemplo Para que seja possível compilar e executar o exemplo é importante que o ambiente já esteja preparado, ou seja, que todas as variáveis de ambientes necessárias já tenham sido configuradas. Todos os passos para preparação do ambiente no LCMI são descritos no documento guialocal.pdf que pode ser obtido em: juntamente com os códigos fontes do exemplo descrito aqui. Compilando a IDL: $ idl tutorial.idl Compilando os arquivos.java: 5

6 $ javac tutorial/*.java Iniciando o serviço de nomes (NS) $ ns Executando o servidor Abra uma nova shell: $ jaco tutorial.servidor Executando o cliente Abra uma nova shell $ jaco tutorial.cliente 6

7 Anexos Arquivo: tutorial.idl // Arquivo IDL /* Descrição: Um sistema para envio de mensagens contendo um emissor, destinatario, um assunto e a mensagem propriamente dita. */ module tutorial{ struct mensagem{ string emissor; string destinatario; string assunto; string corpo; ; interface correio{ string enviar_msg(in mensagem ); ; ; Arquivo: correioimpl.java public class correioimpl extends correiopoa{ // Constructor correioimpl(){ System.out.println("Objeto correio criado com sucesso!"); public String enviar_msg(mensagem ) { 7

8 \n"); System.out.println("\n...::: Recebimento de mensagem :::... System.out.println("De: "+ .emissor); System.out.println("Para: "+ .destinatario); System.out.println("Assunto: "+ .assunto); System.out.println("Mensagem: "+ .corpo); System.out.println("...::: Fim da mensagem :::..."); return("mensagem enviada com sucesso"); Arquivo: Servidor.java import org.omg.cosnaming.*; class Servidor{ static public void main(string[] args){ try { // Inicia o ORB org.omg.corba.orb orb = org.omg.corba.orb.init(args, null); // Pega a referencia do POAManager e o inicializa org.omg.portableserver.poa rootpoa = org.omg.portableserver.poahelper.narrow (orb.resolve_initial_references("rootpoa")); rootpoa.the_poamanager().activate(); // Cria o objeto correioimpl objcorreio = new correioimpl(); // Transforma o objeto local em uma referencia CORBA org.omg.corba.object ref = rootpoa.servant_to_reference (objcorreio); correio correioref = correiohelper.narrow(ref); // Obtem a referencia do servico de nomes org.omg.corba.object nsref = orb.resolve_initial_references ("NameService"); NamingContextExt ncref = NamingContextExtHelper.narrow (nsref); nomes // Faz a ligação (bind) do objeto ao nome no serviço de NameComponent [] name = new NameComponent[1]; name[0] = new NameComponent("Servidor-Correio", ""); 8

9 ncref.rebind(name, correioref); // Executa o ORB e fica aguardando pelas invocacoes dos clientes System.out.println("Servidor de Correio iniciado com sucesso...\n\n"); orb.run(); catch (Exception e) { //Caso ocorra algum erro System.err.println("ERROR: " + e); Arquivo: Cliente.java import org.omg.cosnaming.*; class Cliente{ static correio objcorreio; static public void main(string[] args){ try { // inicializa o ORB org.omg.corba.orb orb = org.omg.corba.orb.init(args, null); // Obtem a referencia do servico de nomes org.omg.corba.object nsref = orb.resolve_initial_references ("NameService"); NamingContextExt ncref = NamingContextExtHelper.narrow (nsref); // Busca pelo nome no serviço de nomes NameComponent [] name = new NameComponent[1]; name[0] = new NameComponent("Servidor-Correio", ""); org.omg.corba.object objref = ncref.resolve(name); // Converte o objeto para o tipo da interface correio objcorreio = correiohelper.narrow(objref); //Chama o menu interativo menu(); catch(exception e) { //Em caso de algum erro 9

10 System.err.println("\n\n Atencao - Nao foi possivel enviar a mensagem"); System.err.println("System Exception: "+e); public static void menu(){ java.io.bufferedreader teclado = new java.io.bufferedreader(new java.io.inputstreamreader(system.in)); String linha = ""; try{ while (!linha.equals("2")) { System.out.println("\n..:: Correio eletronico ::..\n"); System.out.println("1 - Enviar nova mensagem"); System.out.println("2 - Sair\n"); System.out.print("Entre com a opcao: "); try{ linha = teclado.readline(); catch(java.io.ioexception e){ System.err.println("ERRO DE IO: "+e); if (linha.equals("1")){ mensagem msg = new mensagem(); System.out.print("\nDe: "); msg.emissor = teclado.readline(); System.out.print("Para: "); msg.destinatario = teclado.readline(); System.out.print("Assunto: "); msg.assunto = teclado.readline(); System.out.print("Corpo: "); msg.corpo = teclado.readline(); // Invocacao do metodo enviar_msg; System.out.println(objCorreio.enviar_msg(msg)); catch(exception e){ System.err.println("System Exception: "+e); 10

Objetos distribuídos. Roteiro. Java IDL

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

Leia mais

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

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

DAS5331 - Sistemas Distribuídos & Redes

DAS5331 - Sistemas Distribuídos & Redes DAS5331 - Sistemas Distribuídos & Redes Trabalho prático Emerson Ribeiro de Mello [email protected] Departamento de Automação e Sistemas Universidade Federal de Santa Catarina Outubro de 2005 [email protected]

Leia mais

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Invocação de Métodos Remotos RMI (Remote Method Invocation) Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente

Leia mais

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos

Leia mais

! "# $ $ % & % ' & ( )

! # $ $ % & % ' & ( ) %&!"# $$ % &( ) ! "#$# %! &&&##&# (! %! &&&#)#!##! &&&## *! &&&## +)! &&&##,)! &&&##. /."0 1$.2.3,,0 *445,0 6.1,70 +.-# 71,$.#0 6 8 9# - . ; 67?,0 javac. : * +, $8 A,BC! 230 D0 @

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

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

Sistemas Distribuídos

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

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível

Leia mais

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Invocação de Métodos Remotos

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

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

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

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

Leia mais

APÊNDICE A EXEMPLO DE APLICAÇÃO

APÊNDICE A EXEMPLO DE APLICAÇÃO APÊNDICE A EXEMPLO DE APLICAÇÃO Para ilustrar os três métodos de distribuição de objetos apresentados nesta dissertação iremos, a seguir, mostrar um exemplo de implementação de uma aplicação. São apresentadas

Leia mais

INE5380 - Sistemas Distribuídos

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

Leia mais

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação

Leia mais

Sistemas Distribuídos

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

Leia mais

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

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

Leia mais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota

Leia mais

Object Brokers. Tecnologias de Middleware 2004/2005 André Santos

Object Brokers. Tecnologias de Middleware 2004/2005 André Santos Object Brokers Tecnologias de Middleware 2004/2005 André Santos Resumo O que são Object Brokers? Como surgiu o conceito? CORBA Exemplos de utilização Comparação com Java RMI Actualidade (J2EE,.NET) O que

Leia mais

Projeto de Software Orientado a Objeto

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

Desenvolvendo uma aplicação CORBA utilizando Java

Desenvolvendo uma aplicação CORBA utilizando Java Desenvolvendo uma aplicação CORBA utilizando Java Tecgraf PUC-Rio fevereiro de 2011 Exemplo passo-a-passo Veremos um exemplo, passo-a-passo, de desenvolvimento de aplicações CORBA usando Java Para desenvolver

Leia mais

Aplicações e Arquitetura CORBA. Edvar Oliveira [email protected]

Aplicações e Arquitetura CORBA. Edvar Oliveira edvar@ufpa.br Aplicações e Arquitetura CORBA Edvar Oliveira [email protected] setembro/ 2004 Tópicos Modelo Cliente/Servidor; Comunicação no modelo cliente/servidor; A arquitetura CORBA; Componentes da arquitetura CORBA;

Leia mais

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

Leia mais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Java : Comunicação Cliente-Servidor.

Java : Comunicação Cliente-Servidor. Java : Comunicação Cliente-Servidor. Objetivo: Capacitar o aluno a desenvolver uma aplicação servidora para múltiplos clientes. Apresentar as classes Socket e ServerSocket, classes de fluxo de dados, a

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

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

Prática em Laboratório N.01 Criando um Serviço Web via Console

Prática em Laboratório N.01 Criando um Serviço Web via Console Prática em Laboratório N.01 Criando um Serviço Web via Console O objetivo criar um serviço Web via console usando apenas um editor de texto. Obtenha os arquivos da Prática N.01 Você deve recuperar os arquivos

Leia mais

Java 2 Standard Edition Como criar classes e objetos

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

Leia mais

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

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

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho [email protected] Programa Capítulo 18 Sockets OLadoServidor O Lado Cliente Múltiplos Clientes 1 Programa Capítulo 18 Sockets

Leia mais

Aula 30 - Sockets em Java

Aula 30 - Sockets em Java Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar

Leia mais

MicroDNS. Armando Adami Zaro Pablo Augusto Lerina Rodrigues. 3 de outubro de 2007

MicroDNS. Armando Adami Zaro Pablo Augusto Lerina Rodrigues. 3 de outubro de 2007 MicroDNS Armando Adami Zaro Pablo Augusto Lerina Rodrigues 3 de outubro de 2007 Resumo O projeto do MicroDns visa simular localmente o funcionamento de um DNS. Poder-se-á configurar quando da chamada do

Leia mais

Middleware de Aplicações Paralelas/Distribuídas

Middleware de Aplicações Paralelas/Distribuídas Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Principais aspectos a gerir pelo Middleware

Leia mais

Programação Orientada a Objetos em Java

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

Leia mais

Bacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel [email protected].

Bacharelado 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 [email protected] Conceitos Arquivos permitem armazenar dados de maneira

Leia mais

Invocação Remota MC704

Invocação Remota MC704 Invocação Remota MC704 Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar

Leia mais

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1 1. Conceitos Básicos a. Invocação remota (RPC/RMI)

Leia mais

Um pouco do Java. Prof. Eduardo

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.

Leia mais

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

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

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

Leia mais

Exercícios de Revisão Java Básico

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

Leia mais

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Web Service Plínio Antunes Garcia Sam Ould Mohamed el Hacen Sumário Introdução conceitual O Web Service

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos Sistemas Distribuídos Ricardo Ribeiro dos Santos [email protected] Curso de Engenharia de Computação UCDB Agosto/2003 Tópicos A arquitetura CORBA 2 Para saber mais... O compreendimento e aplicação do tópico

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI) PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1. Conceitos Básicos a. Invocação remota (RPC/RMI)

Leia mais

Adriano Reine Bueno Rafael Barros Silva

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

Leia mais

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

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

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1. Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

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

Leia mais

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

Leia mais

THREADS EM JAVA. George Gomes Cabral

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

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre

Leia mais

Prá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 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 mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

2 Orientação a objetos na prática

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

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

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

Leia mais

Java RMI. Alcides Calsavara

Java RMI. Alcides Calsavara Java RMI Alcides Calsavara Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância de uma classe Java) situado em outra máquina

Leia mais

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

Linguagem de Programação III

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

Leia mais

Manipulação de Banco de Dados com Java 1. Objetivos

Manipulação de Banco de Dados com Java 1. Objetivos Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A

Leia mais

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. 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 + "," +

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

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

Leia mais

Padrões de Projeto. Singleton

Padrões de Projeto. Singleton Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação

Leia mais

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite

OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite Laboratório de Redes. Remote Procedure Call - RPC Pedroso 9 de março de 2006 1 Introdução 2 Conceitos básicos OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite que sejam criadas

Leia mais

Tutorial Mozilla Thunderbird 1.5

Tutorial Mozilla Thunderbird 1.5 Tutorial Mozilla Thunderbird 1.5 Você poderá fazer o download do Thunderbird na página principal (http://www.mozilla.org/projects/thunderbird/). Ele é totalmente freeware. Ao fazer o download da versão

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 15 Prof. ISVega Maio de 2004 Arquivos de Texto CONTEÚDO 15.1Processamento

Leia mais

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

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

Leia mais

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em http://msdn.microsoft.com/en-us/data/aa937724.

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em http://msdn.microsoft.com/en-us/data/aa937724. Curso de Análise e Desenvolvimento de Software Disciplina: Linguagens de Programação II Prof. Gilmar Caiado Material de Apoio Java JDBC I 3 o Período 22/05/2009 Java JDBC - I Motivação: Realizar a integração

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

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

Leia mais

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

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza Programação Paralela e Distribuída Prof. Cidcley T. de Souza Conteúdo Parte I Introdução aos Sockets Tipos de Sockets Classes Java: InetAddress, Datagram Sockets, Stream Sockets, Output e Input Classes

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr [email protected] 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

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

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

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Sistemas Distribuídos: Conceitos e Projeto Java RMI Sistemas Distribuídos: Conceitos e Projeto Java RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 19 de agosto

Leia mais

Manual do usuário. Softcall Java. versão 1.0.5

Manual do usuário. Softcall Java. versão 1.0.5 Manual do usuário Softcall Java versão 1.0.5 Sumário Iniciando SoftCall...3 Tela Principal...3 Configurando o SoftCall...4 Agenda...5 Incluindo um contato...5 Procurando um contato...6 Apagando um contato...6

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

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

Invocação de Métodos em Objectos Remotos

Invocação de Métodos em Objectos Remotos Invocação de Métodos em Objectos Remotos Invocações de métodos remotas e locais A remote invocation B local C invocation local E invocation local invocation D remote invocation F Page 1 1 Invocação de

Leia mais

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame 6. Como aplicações gráficas funcionam em Java? Todas as aplicações gráficas em Java usam instâncias de classes existentes, que por serem parte da linguagem podem ser executadas em todas as versões de Java

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis [email protected] 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Guia de Fatores de Qualidade de OO e Java

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

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br [email protected]

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br [email protected] Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

NetBeans. Conhecendo um pouco da IDE

NetBeans. Conhecendo um pouco da IDE NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica

Leia mais

Simulado de Linguagem de Programação Java

Simulado 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

Java Spaces Exemplos

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

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira neto Aula 17-18: Middleware: Implementação de RMI (cont.), RPC, Modelo de Eventos, Exemplo com Java RMI Chamadas dinâmicas

Leia mais

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Objetivos: Entender o funcionamento dos programas Java via linha de comando Algoritmos e Programação I Aula de Laboratório Objetivos: Entender o funcionamento dos programas Java via linha de comando 1. A Linha de Comando: DOS ou Shell Apesar dos usuários geralmente não enxergarem

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais