JLANSCHOOL - APLICAÇÃO DA TECNOLOGIA JAVA RMI NO DESENVOLVIMENTO DE UM SOFTWARE DE GERÊNCIA DE LABORATÓRIO DE COMPUTADORES

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

Download "JLANSCHOOL - APLICAÇÃO DA TECNOLOGIA JAVA RMI NO DESENVOLVIMENTO DE UM SOFTWARE DE GERÊNCIA DE LABORATÓRIO DE COMPUTADORES"

Transcrição

1 JLANSCHOOL - APLICAÇÃO DA TECNOLOGIA JAVA RMI NO DESENVOLVIMENTO DE UM SOFTWARE DE GERÊNCIA DE LABORATÓRIO DE COMPUTADORES Everton Sant Ana de Araujo 1 Resumo. O presente trabalho apresenta o desenvolvimento de um software de gerência de laboratório de computadores, utilizado para enviar imagens da tela de um computador servidor para computadores clientes. O objetivo deste trabalho foi construir um software que atenda às necessidades das instituições de ensino que utilizam laboratórios de informática no aprendizado dos alunos. Para construção desse software foi utilizada a tecnologia RMI (Remote Method Invocation) que a linguagem de programação Java fornece. RMI é uma tecnologia que permite que objetos Java executando no mesmo computador ou em computadores separados, se comuniquem entre si via chamadas de métodos remotos através do protocolo TCP/IP (Transfer Control Protocol / Internet Protocol). Estas chamadas de métodos são muito semelhantes àquelas realizadas entre objetos no mesmo programa. Os resultados deste trabalho mostram que a tecnologia RMI foi satisfatória para o desenvolvimento deste tipo de aplicação, pois se comportou de forma eficaz tanto na serialização de objetos Java quanto na transmissão destes através da rede. Palavras-chave: Educação. Laboratório. Compartilhamento. RMI. Abstract. The current paper presents the development of computerized laboratory management software, used to send images from the screen of a server computer to client computers. The objective of this paper was to build a software that fulfill the educational institution needs that use computerized laboratories at the learning process of their students. To build this software the RMI (Remote Method Invocation) technology was used, that the Java programming language supplies. The RMI is a technology that enables Java objects executed at the same computer or in separated computers, communicate between them track's called remote methods through TCP/IP (Transfer Control Protocol / Internet Protocol). These method calls are very similar to those ones wich operate in objects of the same program. The results of this paper show that the RMI technology was satisfactory to the develpment of this kind of use, because it behaved with efficacy not only at the series format of the Java objects but also at their transmission through the net. Keywords: Education. Lab. Sharing. RMI. 1 Especialização em Ciência da Computação. Escola de Administração do Exército.

2 2 1 Introdução Estudiosos da área da educação observaram que a tecnologia pode parecer mais do lado da anarquia do que do lado do controle (BORK, 1999). Esta observação é validada em laboratórios de computadores educacionais, onde o nível de controle do professor sobre o ambiente de aprendizagem é freqüentemente diferente do que na sala de aula tradicional. Quando estudantes estão trabalhando com computadores, torna-se difícil de obter atenção completa por parte deles e ter certeza que eles estão ali na carteira prestando atenção durante uma aula pela diversidade de distrações que o computador oferece. Então, neste momento, um software de gerência de laboratório seria uma forma ideal de remover tais distrações. Software de Gerência de Laboratório de Computador pode ter diversos significados, tais como, softwares que bloqueiam e controlam o acesso a computadores e os concedem somente a usuários com permissões especiais. Entretanto, no contexto deste trabalho Software de Gerência de Laboratório de Computador refere-se a programas utilizados por professores no decorrer de uma lição para manter a atenção dos estudantes e realçar a qualidade do ensino. A tela compartilhada é uma típica característica dos softwares de gerência de laboratório, permitindo que a tela do computador do professor ou a tela de algum estudante seja compartilhada com todos outros computadores no laboratório. O uso eficaz de softwares de gerência de laboratório de computador pode fazer uma considerável e positiva diferença quando os professores vão usar um laboratório de computador para ensinar. abordadas quais são estas características e como elas operam. 2.1 Características Básicas e Imprescindíveis Quando um professor usa um software de gerência de laboratório para apresentar uma lição, pode-se mudar completamente a maneira de mostrar o conteúdo e de ensinar. Em vez de esticar seus olhos para ver pequenos detalhes na tela à frente da sala, os estudantes podem olhar seu próprio monitor em sua frente e confortavelmente ver a demonstração do professor. Quando for hora de ter a atenção de todos, as telas dos estudantes se tornarão blank ( tela bloqueada ) impedindo desse modo, que continuem seu trabalho. Enquanto alguns softwares de gerência de laboratório oferecem algumas características mais avançadas, as seguintes são características básicas que todos devem incluir Tela compartilhada (screen sharing) Faz com que todas as telas dos computadores do laboratório mostrem a mesma imagem que a tela do instrutor. Muitos programas de gerência permitem compartilhar outras telas também, assim, se um estudante criar algo e o instrutor quiser mostrar a todos, este pode ser realizado rapidamente. Quando o compartilhar de tela é desabilitado, todos os computadores dos estudantes retornam a suas telas precedentes. A Figura 1 ilustra a característica básica e imprescindível Tela compartilhada. 2 Características dos Softwares de Gerência de Laboratório Dentre as características dos softwares de gerência de laboratório, existem as básicas que são imprescindíveis para o funcionamento deles e a avançadas que incrementam o seu uso. Nesta seção serão Figura 1 - Todas as telas dos computadores do laboratório mostrando a mesma imagem da tela do instrutor.

3 Telas bloqueadas (blank screen) Isto é indispensável para requerer a atenção dos estudantes e para fornecer instruções para a classe. O comando Telas bloqueadas torna a tela de todos os computadores do laboratório, exceto a do instrutor, preta (ou uma outra cor) e indica às vezes uma mensagem. Alguns programas oferecem a opção de escolher a imagem que será mostrada. Quando as telas forem anuladas, os estudantes não podem ver qualquer coisa em sua própria tela ou continuar a trabalhar. A Figura 2 ilustra a característica básica e imprescindível Telas bloqueadas (blank screen). Figura 2 - Blank screen nas telas dos computadores dos alunos. Figura 3 - Instrutor controlando remotamente o computador de um estudante Código único para a sala de aula Os programas da gerência de laboratório, quando iniciam no "cliente" (estudante) e no computador do instrutor, permitem um nome ou um número únicos a serem atribuídos para a sala de aula onde os computadores estão. Desta maneira, os instrutores pode escolher controlar somente os computadores situados fisicamente na mesma sala de aula. Os outros laboratórios ou as salas de aula no mesmo edifício podem usar o mesmo software de gerência de laboratório para o controle dos computadores com códigos diferentes sem haver interferência Controle remoto de um computador Dependendo do ajuste instrutivo, esta característica pode ter mais valor no uso prático, mas muitos programas permitem que os instrutores obtenham o controle remoto do computador de um estudante para demonstrar uma tarefa. Esta característica pode ser mais útil à equipe de funcionários de sustentação técnica, que necessita fazer mudanças ou mesmo instalações e configurações em computadores remotos, do que aos professores da sala de aula. A Figura 3 ilustra a característica básica e imprescindível Controle remoto de um computador. 2.2 Características Avançadas Alguns programas de gerência oferecem características adicionais com benefícios excepcionais para professores e estudantes na sala de aula, destacando-se: Monitoramento de computadores A Internet se tornou uma ferramenta muito importante para educação, pois ela conecta o estudante a uma vasta fonte de conhecimento, mas infelizmente existem problemas: como sites de pornografia, jogos, salas de bate-papo e outros. Para inibir o acesso dos alunos a esses sites, esta característica permite ao instrutor observar as

4 4 telas dos computadores dos estudantes, enviar mensagens, obter o histórico de quais páginas da Internet o aluno visitou, fechar a tela atual de um computador remoto e deslogar um aluno da rede. A Figura 4 ilustra a característica avançada Monitoramento de computadores. Figura 4 - As telas dos computadores dos estudantes sendo mostradas na tela do computador do instrutor Desligar ou reiniciar computadores Desligar todos os computadores em um laboratório, uma sala de aula, ou para reiniciá-los antes da aula seguinte pode ser tempo que se consome no fim do dia. Alguns programas oferecem a habilidade de desligar ou para reiniciar um laboratório inteiro simultaneamente com alguns cliques no mouse sobre o computador do instrutor. Os cartões de rede (Network Interface Cards NICs) instalados em cada computador devem suportar esta característica para que ela funcione Transferir um arquivo para todos computadores dos estudantes Se a escola tem um servidor de arquivos disponível e uma pasta compartilhada foi criada, permitindo tanto aos estudantes como aos professores acessá-la, arquivos de uma lição podem ser abertos através da rede. Alguns programas de gerência de laboratório permitem a distribuição dos arquivos diretamente para o disco rígido de todos os computadores no laboratório, entretanto, alguns podem até trazer os arquivos modificados e salvos nos computadores dos estudantes para o computador do instrutor no final da aula Bate-papo (Chat) Enquanto alguns professores pensam que esta característica é supérflua e desnecessária, a potencialidade do bate-papo incluída com software da gerência do laboratório pode ser inestimável por uma variedade de razões. Primeiro que a maioria dos estudantes gostam de conversar em seus computadores digitando mensagens de texto um para o outro. Uma diferença principal entre uma sala de bate-papo on-line e um ambiente de bate-papo fornecidos por um software de gerência de laboratório é que os participantes são controlados: somente aqueles estudantes fisicamente no laboratório podem participar do bate-papo. Como uma recompensa por permanecer na tarefa ou terminar uma lição, pode ser dado aos estudantes cinco minutos de tempo de batepapo no fim da aula. Na seção 3 será apresentado um breve estudo sobre a tecnologia RMI que pode ser utilizada para implementação e desenvolvimento de um software de gerência de laboratório de computadores contendo tanto as características básicas e imprescindíveis quanto as avançadas abordadas nesta seção. 3 RMI (Remote Method Invocation) RMI é uma tecnologia que permite que objetos Java executando no mesmo computador ou em computadores separados se comuniquem entre si via chamadas de métodos remotos. Essas chamadas de métodos são muito semelhantes àquelas que operam em objetos no mesmo programa (DEITEL, 2001). Em outras palavras, RMI é o mecanismo que permite a chamada de métodos que pertencem a classes que estão em máquinas virtuais Java (JVM - Java Virtual Machine) remotas (RAMON, 2001).

5 5 3.1 Arquitetura Java RMI A arquitetura RMI estende à segurança e robustez da arquitetura Java para o mundo da computação distribuída. Esta arquitetura é baseada em um importante princípio: a definição do comportamento e a implementação do comportamento são conceitos separados. RMI permite que o código que define o comportamento e o código que implementa o comportamento permaneçam separados e rodem em JVMs (Java Virtual Machine) separadas (SUN, 2000). Em RMI, a definição do serviço remoto é codificada usando uma interface Java. A implementação do serviço remoto é codificada em uma classe. Logo, a chave para se entender o RMI é lembrar que as interfaces, que são o coração dessa arquitetura, definem o comportamento e as classes definem a implementação. A Figura 5 ilustra esta separação: Figura 5 - Sistema RMI (SUN, 2000). A classe que implementa o comportamento executa do lado do servidor RMI. A classe que roda no cliente atua como um proxy, ou seja, um procurador para o serviço remoto. Isto é mostrado na Figura 6: Figura 6 - Cliente chama método no servidor (SUN, 2000). O programa cliente faz chamadas de métodos pelo objeto proxy, o RMI envia a requisição para a JVM remota e redireciona para a implementação. Qualquer valor retornado pela implementação é devolvido ao proxy e então ao programa cliente. 4 Proposta de um Software de Gerência de Laboratório Esta seção apresenta a implementação, das básicas e imprescindíveis características de um software de gerência de laboratório: Tela compartilhada (screen sharing) e Tela bloqueada (blank screen) na tecnologia de Java RMI. Conforme abordado na seção 2.1, a característica Tela compartilhada (screen sharing), faz com que todas as telas dos computadores do laboratório mostrem a mesma imagem, geralmente a tela do instrutor. E a característica Tela bloqueada (blank screen) torna a tela de todos os computadores do laboratório, exceto a do instrutor, bloqueada, podendo mostrar assim uma tela preta (ou uma outra cor) e indicar às vezes uma mensagem. O sistema proposto em RMI possui um programa servidor que fica localizado no computador que terá a sua tela compartilhada e programas clientes quem ficam localizados nos computadores dos usuários que receberão essas telas. 4.1 O Sistema em RMI (Remote Method Invocation) O programa servidor do Sistema em RMI é responsável por, de tempos em tempos, capturar a tela e as coordenadas do mouse do computador onde está localizado e configurálas em um objeto da classe Mensagem. Cabe então aos clientes buscarem no servidor esse objeto do tipo Mensagem que contém as informações e reproduzi-las em sua tela. Logo, percebe-se que há um ciclo constante em que o servidor atualiza o seu objeto do tipo Mensagem e os clientes buscam esse objeto. A Figura 7 ilustra o funcionamento do Sistema em RMI:

6 6 Figura 7 - Funcionamento do Sistema em RMI. transparentes ao programador, pois são feitas pela tecnologia RMI. O Sistema em RMI é constituído por: Classe JLanSchoolServidorImpl_Stub; Classe RMI; Classe Mensagem; Interface JLanSchoolServidor; Classe JLanSchoolServidorImpl; Classe JanelaServidor; Classe JLanSchoolCliente; Classe JanelaCliente; Classe Painel; Classe Splash. A Figura 8 mostra o Diagrama de Classe simplificado do Sistema em RMI: As questões de serialização e transmissão do objeto Mensagem através da rede ficam Figura 8 - Diagrama de Classe simplificado do Sistema em RMI Classe JLanSchoolServidorImpl_Stub A classe JLanSchoolServidorImpl_Stub, localizada no servidor e no cliente, implementa o protocolo de comunicação e é responsável por fazer com que uma chamada de um método no cliente seja transparentemente passada para o servidor e também fazer com que o servidor responda à chamada, passando de volta os valores de retorno, quando houver. Esta classe não precisa ser programada manualmente, pois é gerada por uma ferramenta própria do Java chamada rmic. O comando do Quadro 1 foi executado para gerá-la: Quadro 1 - Comando para geração da classe JlanSchoolServidorImpl_Stub. rmic JLanSchoolServidorImpl Classe RMI A classe RMI é onde são implementadas as particularidades da arquitetura RMI (Remote Method Invocation), tais como: iniciar um servidor de nomes (rmiregistry nesse caso), vincular (bind) e obter (lookup) as

7 7 referências dos objetos que serão acessados remotamente. O Quadro 2 apresenta a implementação do código desta classe: Quadro 2 - Implementação da classe RMI. import java.rmi.*; import java.rmi.registry.*; import java.*; public class RMI { public static void vincularreferenciaremota( String nomebind, Remote objeto, boolean create ) throws RemoteException, MalformedURLException { if ( nomebind == null ) throw new IllegalArgumentException( "Nome do registro não pode ser null" ); try { Naming.rebind( nomebind, objeto ); System.out.println( "Objeto servidor registrado com sucesso!" ); System.out.println( "Objeto: " + nomebind ); catch ( RemoteException re ) { if ( create ) { System.out.println( "Porta: " + Registry.REGISTRY_PORT ); Registry r = LocateRegistry.createRegistry( Registry.REGISTRY_PORT ); Naming.rebind( nomebind, objeto ); System.out.println( "Objeto servidor registrado com sucesso!" ); System.out.println( "Objeto: " + nomebind ); else throw re; public static JLanSchoolServidor getreferenciaremota( String nomebind, String ipservidor ) { String url = "//" + ipservidor + "/" + nomebind; JLanSchoolServidor interf = null; try { System.out.println( "Cliente obtendo referência remota..." ); interf = ( JLanSchoolServidor ) Naming.lookup( url ); catch ( Exception e ) { System.err.println( "RMI.getReferenciaRemota( String, String ): " + e ); return interf; ; O servidor é a classe que recebe os pedidos de métodos remotos feitos pelo cliente. Então, o método public static void vincularreferenciaremota( String nomebind, Remote objeto, boolean create ) inicia o servidor de nomes rmiregistry e vincula o nome String nomebind ao objeto remoto Remote objeto. O parâmetro boolean create determina se o servidor de nomes deve ser iniciado ou não. Depois de o objeto remoto estar vinculado, torna-se possível para um cliente encontrar uma referência para um objeto remoto. O cliente é o responsável em chamar os métodos remotos, mas antes de chamar um método remoto, ele necessita obter uma referência do objeto remoto. Então, o método public static void getreferenciaremota( String nomebind, String ipservidor ) tenta obter uma referência, um stub, para um objeto remoto associado com o nome String nomebind no servidor de nomes que está executando na máquina de IP (Internet Protocol) String ipservidor Classe Mensagem Conforme abordado na introdução da seção 4.1, em um objeto da classe Mensagem é que são guardados os dados, tais como: imagem e coordenadas do mouse, para serem enviados através da rede. Logo esse objeto terá que se tornar uma seqüência de bytes para ser enviado através da rede de forma que ele também possa ser reconstruído como um objeto da classe Mensagem ao chegar ao seu destino. Para que esse objeto funcione desta forma, ele deve implementar a interface Serializable do pacote java.io. O Quadro 3 apresenta a implementação do código desta classe: Quadro 3 - Implementação da classe Mensagem. import java.awt.point; import java.io.serializable; public class Mensagem implements Serializable { private byte imagembytes[]; private Point mousecoords; public Mensagem() { imagembytes = null; mousecoords = null;

8 8 public void setimagembytes( byte imagembytes[] ) { this.imagembytes = imagembytes; public void setmousecoords( Point mousecoords ) { this.mousecoords = mousecoords; public byte[] getimagembytes() { return imagembytes; public Point getmousecoords() { return mousecoords; ; Interface JLanSchoolServidor A interface JLanSchoolServidor é onde são definidos quais métodos remotos podem ser acessados no servidor pelos clientes. Ela deve existir tanto do lado servidor quanto cliente, estender a interface java.rmi.remote e todo método deverá declarar a exceção java.rmi.remoteexception que pode ser lançada na invocação do método. O Quadro 4 apresenta a implementação do código desta interface: Quadro 4 - Implementação da interface JLanSchoolServidor. import java.rmi.*; public interface JLanSchoolServidor extends Remote { public Mensagem getmensagem() throws RemoteException; ; O método public Mensagem getmensagem() throws RemoteException deve ser invocado por um cliente interessado em receber um objeto do tipo Mensagem Classe JLanSchoolServidorImpl A classe JLanSchoolServidorImpl contém a implementação dos métodos remotos que serão chamados pelos clientes e fica somente no lado do servidor. Nesta classe também estão implementadas as funcionalidades de capturas de tela e coordenadas do mouse. Primeiramente, para que uma referência do objeto JLanSchoolServidorImpl seja encontrada pelos clientes, ela deve ser vinculada chamando o método public static void vincularreferenciaremota( String nomebind, Remote objeto, boolean create ) da classe RMI conforme apresenta o Quadro 5: Quadro 5 - Código para vincular uma referência remota. RMI.vincularReferenciaRemota( JLanSchool, this, true ); Iniciando assim o servidor de nomes rmiregistry e vinculando o nome JLanSchool ao objeto remoto JLanSchoolServidorImpl que invocou o método, que no código do Quadro 5 está representado pela referência this. A captura da imagem da tela do computador servidor é feita através do método public byte[] gettelabytes() que tem a implementação apresentada no Quadro 6: Quadro 6 - Implementação do método public byte[] gettelabytes(). public byte[] gettelabytes() { try { BufferedImage imagembuferizada = robot.createscreencapture( telaarea ); if ( coresimagem == IMAGEM_PRETO_E_BRANCO ) imagembuferizada = colorconvertop.filter( imagembuferizada, null ); ByteArrayOutputStream imagembytearrayos = new ByteArrayOutputStream(); ImageIO.write( imagembuferizada, formatoimagem, imagembytearrayos ); return imagembytearrayos.tobytearray(); catch ( IOException ioe ) { System.err.println( ioe ); return null; A captura das coordenadas do mouse é feita através do código mostrado no Quadro 7, que retorna um objeto java.awt.point. Quadro 7 - Código para obtenção das coordenadas do mouse. MouseInfo.getPointerInfo().getLocation();

9 9 Após o servidor, ou seja, o objeto JLanSchoolServidorImpl ter iniciado um servidor de nomes e se registrado nele, ter feito as capturas de tela e coordenadas do mouse, resta-lhe configurar esses valores em um objeto do tipo Mensagem que ficará disponível para o cliente obtê-lo através da invocação do método remoto public Mensagem getmensagem() que tem sua implementação apresentada no Quadro 8: Quadro 8 - Implementação do método remoto public Mensagem getmensagem(). public Mensagem getmensagem() { return mensagem; Classe JanelaServidor A classe JanelaServidor é a interface gráfica com o usuário do computador servidor. Nela se encontram opções para formato de imagens a serem transmitidas, cores das imagens, intervalo de captura de tela e também a opção de pausar ou executar o servidor. A Figura 9 ilustra uma instância da classe JanelaServidor. remoto, ele deve chamar o método public static JLanSchoolServidor getreferenciaremota( String nomebind, String ipservidor ) da classe RMI conforme apresenta o Quadro 9: Quadro 9 - Código para obtenção de uma referência remota. JLanSchoolServidor interf = RMI.getReferenciaRemota( JLanSchool, ipservidor ) Tentando assim, obter uma referência, um stub, para um objeto remoto associado com o nome JLanSchool no servidor de nomes que está executando na máquina de IP (Internet Protocol) String ipservidor. Após o cliente, ou seja, o objeto JLanSchoolCliente ter obtido uma referência remota para o servidor (Quadro 9), resta-lhe, através da referência interf, invocar o método remoto que retornará o objeto Mensagem que contém as informações a serem mostradas no cliente. O código do Quadro 10 implementa esta operação: Quadro 10 - Código para invocação do método remoto public Mensagem getmensagem(). Mensagem mensagem = interf.getmensagem(); As atualizações de imagem e posição do mouse no cliente são feitas conforme mostra o Quadro 11: Figura 9 - Interface gráfica do lado do computador servidor Classe JLanSchoolCliente A classe JLanSchoolCliente é responsável por buscar um objeto do tipo Mensagem na classe JLanSchoolServidorImpl através da invocação dos métodos remotos e mostrá-lo em sua janela - classe JanelaCliente. Primeiramente, para que um objeto JLanSchoolCliente possa invocar um método Quadro 11 - Código para atualizações de imagem e posição do mouse no cliente. // Atualiza a imagem janela.getpainel().setimagem( new ImageIcon( mensagem.getimagembytes() ) ); janela.getpainel().repaint(); // Atualiza o mouse robot.mousemove( ( int ) mensagem.getmousecoords().getx(), ( int ) mensagem.getmousecoords().gety() ); Lembrando que, as imagens são mostradas em um objeto da classe Painel que pertence à classe JanelaCliente. Tanto a atualização do mouse quanto a captura de tela utilizam a classe java.awt.robot que gera eventos nativos de entrada no sistema operacional que proporcionam a automatização do controle

10 10 do mouse, do teclado, entre outros em aplicações implementadas em Java. Já a classe Splash fornece uma janela de apresentação ao iniciar o programa servidor Classes JanelaCliente, Painel e Splash A classe JanelaCliente possui um objeto da classe Painel onde são mostradas as imagens Diagrama de Classe detalhado do Sistema em RMI A Figura 10 ilustra o Diagrama de Classe detalhado do Sistema em RMI: Figura 10 - Diagrama de Classe detalhado do Sistema em RMI. 5 Conclusão Os softwares de gerenciamento de laboratório de computadores possuem características que realmente elevam a qualidade do ambiente de aprendizado, pois são ferramentas que o professor pode se apoiar para explicar uma matéria e reter a atenção dos alunos. Além disso, em comparação aos benefícios que essa

11 11 ferramenta pode trazer, o custo pode ser considerado baixo. A implementação desse tipo de software com a tecnologia RMI (Remote Method Invocation) se mostrou eficaz quanto à transmissão dos dados através da rede devido ao fato da arquitetura do Java RMI fazer a serialização e transmissão dos dados de forma transparente para o programador. Uma pequena desvantagem encontrada em RMI é o fato da transmissão não ser síncrona, possibilitando ao usuário perceber a chegada dos dados primeiramente em uma máquina cliente do que em outra. Portanto, no presente trabalho, observou-se um comportamento satisfatório no sistema utilizando a tecnologia RMI, quando testado em laboratórios de até trinta e dois computadores. Como temas para futuras monografias, sugere-se: a implementação das características de monitoramento, controle remoto de computadores e integração do software resultante ao sistema operacional utilizando o padrão JNI (Java Native Interface), Softwares de Educação à Distância e Virtual Network Computing (VNC). Referências APPLE. Apple - Remote Desktop. Disponível em: <http://www.apple.com/ remotedesktop>. Acesso em: 22 abril <http://www.crossteccorp.com/ netopschool>. Acesso em: 22 abril DEITEL, H. M., DEITEL, P. J. Java: Como Programar. 3 ed. Tradução por Edson Furnankiewicz. Porto Alegre: Bookman, DEITEL, H. M., DEITEL, P. J. Java: How to Program. 6 ed. New Jersey: Pearson Prentice Hall, LANSCHOOL TECHNOLOGIES. Welcome to LanSchool. Disponível em: <http://www.lanschool.com>. Acesso em: 22 abril RAMON, Fábio. JAVA2 - Guia de Consulta Rápida. São Paulo: Novatec, SUN DEVELOPER NETWORK. jguru: Remote Method Invocation (RMI). Disponível em: <http://developer.java.sun.com/developer/onl inetraining/rmi>. Acesso em: 20 maio VICENTE Barreto Domingues. RMI (Remote Method Invocation) Universidade Federal do Rio de Janeiro (UFRJ). Disponível em: <http://www.gta.ufrj.br/grad/00_1/vicente/in dex.htm#indice>. Acesso em: 20 maio ASHOK, Mathew. Accelerate your RMI programming Disponível em: <http://www.javaworld.com/jw /jw rmi.html>. Acesso em: 20 maio BORK, ROBERT. Bork, Robert, Slouching Towards Gomorrah, A Book Review. Disponível em: <http://medicolegal.tripod.com/borkstgbook-rev.htm>. Acesso em: 18 abril CROSSTEC CORPORATION. NetOp School - Software for Networked Classrooms 8: Instruction. Disponível em:

Invocação de Métodos Remotos

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

Leia mais

SISTEMAS DISTRIBUÍDOS

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

Leia mais

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

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

Leia mais

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

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

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

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

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

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

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

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

Leia mais

Java 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

UFG - Instituto de Informática

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

Leia mais

RMI: Uma Visão Conceitual

RMI: Uma Visão Conceitual RMI: Uma Visão Conceitual Márcio Castro, Mateus Raeder e Thiago Nunes 11 de abril de 2007 Resumo Invocação de Método Remoto (Remote Method Invocation - RMI) trata-se de uma abordagem Java para disponibilizar

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

Exemplos práticos do uso de RMI em sistemas distribuídos

Exemplos práticos do uso de RMI em sistemas distribuídos Exemplos práticos do uso de RMI em sistemas distribuídos Elder de Macedo Rodrigues, Guilherme Montez Guindani, Leonardo Albernaz Amaral 1 Fábio Delamare 2 Pontifícia Universidade Católica do Rio Grande

Leia mais

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

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006 Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006 NOTAS:

Leia mais

Sistemas Distribuídos

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

Leia mais

Exercício programa para MAC5796

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

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

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

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

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

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

Leia mais

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

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

Objetos Distribuídos. Nazareno Andrade

Objetos Distribuídos. Nazareno Andrade Objetos Distribuídos Nazareno Andrade O Problema Orientação a objetos é um paradigma poderoso Modularidade, extensibilidade, manutenibilidade Porque distribuir os objetos: Localidade dos objetos Tolerância

Leia mais

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

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

Acesso direto. canal. System call. System call S.O.

Acesso direto. canal. System call. System call S.O. Inter-process Comunicação Communication(IPC) Memória entre compartilhada processos Java Sockets Sinais Pipes Comunicação Processos RMI Hardware Um processo oferece executam entre não acessa proteção processos

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

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

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

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

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

Leia mais

Comunicação usando soquetes.

Comunicação usando soquetes. Soquetes Um soquete é definido como uma extremidade de um canal de comunicação. Um par de processos (ou threads) se comunica em uma rede utilizando um par de soquetes - um para cada processo. Um soquete

Leia mais

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

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais

Manual do Remote Desktop Connection. Brad Hards Urs Wolfer Tradução: Marcus Gama

Manual do Remote Desktop Connection. Brad Hards Urs Wolfer Tradução: Marcus Gama Manual do Remote Desktop Connection Brad Hards Urs Wolfer Tradução: Marcus Gama 2 Conteúdo 1 Introdução 5 2 O protocolo do Buffer de Quadro Remoto (Buffer de Quadro Remoto) 6 3 Usando o Remote Desktop

Leia mais

INF1013 MODELAGEM DE SOFTWARE

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

Leia mais

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

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

Leia mais

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

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

Leia mais

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA Disciplina: Redes de Computadores Ano: 2007 Professor: Luiz Antonio Trabalho 1º Bimestre Cliente/Servidor

Leia mais

Suporte ao desenvolvimento de jogos multi-jogador, sem exigência de tempo real

Suporte ao desenvolvimento de jogos multi-jogador, sem exigência de tempo real UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Suporte ao desenvolvimento de jogos multi-jogador, sem exigência

Leia mais

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações 1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos

Leia mais

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

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

Introdução a Threads Java

Introdução a Threads Java Introdução a Threads Java Prof. Gerson Geraldo Homrich Cavalheiro Universidade Federal de Pelotas Departamento de Informática Instituto de Física e Matemática Pelotas RS Brasil http://gersonc.anahy.org

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

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

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

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

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama Brad Hards Tradução: Marcus Gama 2 Conteúdo 1 Introdução 5 2 O protocolo do Buffer de Quadro Remoto (Buffer de Quadro Remoto) 6 3 Usando o Desktop Sharing 7 3.1 Gerenciando convites do Desktop Sharing........................

Leia mais

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

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

Leia mais

Sistemas Distribuídos RPC Remote Procedure Call

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

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

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

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres Linguagem de Programação Orientada a Objeto Introdução a Orientação a Objetos Professora Sheila Cáceres Introdução a Orientação a Objetos No mundo real, tudo é objeto!; Os objetos se relacionam entre si

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

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

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

Sistema de Monitoramento Visual das Telas Gráficas das

Sistema de Monitoramento Visual das Telas Gráficas das 324 Sistema de Monitoramento Visual das Telas Gráficas das Estações Linux numa Rede LTSP Herlon Ayres Camargo 1, Joaquim Quinteiro Uchôa 2 1 Departamento de Desenvolvimento Educacional Escola Agrotécnica

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

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

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

Instruções de instalação e remoção para os drivers de impressora PostScript e PCL do Windows Versão 8

Instruções de instalação e remoção para os drivers de impressora PostScript e PCL do Windows Versão 8 Instruções de instalação e remoção para os drivers de impressora PostScript e PCL do Windows Versão 8 Este arquivo ReadMe contém as instruções para a instalação dos drivers de impressora PostScript e PCL

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

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

O uso de exceções permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java.

O uso de exceções permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java. Exceções em Java Miguel Jonathan DCC/IM/UFRJ (rev. abril de 2011) Resumo dos conceitos e regras gerais do uso de exceções em Java O uso de exceções permite separar a detecção da ocorrência de uma situação

Leia mais

Introdução a Linguagem

Introdução a Linguagem Introdução a Linguagem Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 03 Introdução a Linguagem Java 1 Conteúdo Máquina Virtual (JVM) Histórico de Java Case Sensitive Tipos Primitivos Tipo String

Leia mais

Capítulo II Modelos de Programação Distribuída

Capítulo II Modelos de Programação Distribuída Capítulo II Modelos de Programação Distribuída From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 From: M. Ben-Ari Principles of Concurrent

Leia mais

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

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

Leia mais

Capítulo V Sistemas de Objectos Distribuídos

Capítulo V Sistemas de Objectos Distribuídos From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 1 O modelo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

Plataforma para Agentes

Plataforma para Agentes Plataforma para es JATLite - Java Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida criação

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

Leia mais

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

UNIVERSIDADE. Sistemas Distribuídos

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

Leia mais

Guia do Laboratório de Teste: Demonstre colaboração de Intranet com SharePoint Server 2013

Guia do Laboratório de Teste: Demonstre colaboração de Intranet com SharePoint Server 2013 Guia do Laboratório de Teste: Demonstre colaboração de Intranet com SharePoint Server 2013 Este documento é fornecido no estado em que se encontra. As informações e exibições expressas neste documento,

Leia mais

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

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

Leia mais

Usando Borland DELPHI para implementar aplicações CORBA

Usando Borland DELPHI para implementar aplicações CORBA Página 1 de 10 USANDO BORLAND DELPHI PARA IMPLEMENTAR APLICAÇÕES CORBA por Simone Vey Dutra e César Bridi Introdução A Arquitetura CORBA Criando uma Aplicação CORBA em Delphi Criando um Servidor CORBA

Leia mais

SMART Sync 2010 Guia prático

SMART Sync 2010 Guia prático SMART Sync 2010 Guia prático Simplificando o extraordinário Registro do produto Se você registrar o seu produto SMART, receberá notificações sobre novos recursos e atualizações de software. Registre-se

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 02 APRESENTAÇÃO: Apresentação; conceitos básicos da linguagem java; estrutura

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Sistemas de Informação Processamento de Dados

Sistemas de Informação Processamento de Dados Sistemas de Informação Processamento de Dados Ferramentas e serviços de acesso remoto VNC Virtual Network Computing (ou somente VNC) é um protocolo desenhado para possibilitar interfaces gráficas remotas.

Leia mais

INF01018 Aula Prática 2 RMI Remote Method Invocation

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

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

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

Leia mais

Arcserve Cloud. Guia de Introdução ao Arcserve Cloud

Arcserve Cloud. Guia de Introdução ao Arcserve Cloud Arcserve Cloud Guia de Introdução ao Arcserve Cloud A presente Documentação, que inclui os sistemas de ajuda incorporados e os materiais distribuídos eletronicamente (doravante denominada Documentação),

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Programação com sockets (em Java)

Programação com sockets (em Java) com sockets (em Java) Prof. Dr. Julio Arakaki Depto. Ciência da 1 Comunicação entre processos // aplicações - é um dos mecanismos mais utilizados - Java oferece modos de utilização:. TCP ( Transmission

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

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

SMART Sync 2010 Guia do administrador de sistema

SMART Sync 2010 Guia do administrador de sistema PENSE NO MEIO AMBIENTE ANTES DE IMPRIMIR SMART Sync 2010 Guia do administrador de sistema Sistemas operacionais Windows Simplificando o extraordinário Informações sobre marcas comerciais SMART Sync, smarttech

Leia mais

Lab de Programação de sistemas I

Lab de Programação de sistemas I Lab de Programação de sistemas I Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Agenda Orientação a Objetos Conceitos e Práticas Programação OO

Leia mais

CAPÍTULO 7 JAVA 7.1 CARACTERÍSTICAS DA LINGUAGEM

CAPÍTULO 7 JAVA 7.1 CARACTERÍSTICAS DA LINGUAGEM CAPÍTULO 7 JAVA Java é uma linguagem orientada a objeto cujo projeto foi desenvolvido pela Sun Microsystems no início de 1991. Ela foi originalmente concebida para ser utilizada na programação de dispositivos

Leia mais

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

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Erros, exceçõ. ções e asserçõ

Erros, exceçõ. ções e asserçõ Java 2 Standard Edition Erros, exceçõ ções e asserçõ ções Helder da Rocha www.argonavis.com.br 1 Controle de erros com Exceções Exceções são Erros de tempo de execução Objetos criados a partir de classes

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