NITA – Notes In The Air
Transcrição
NITA – Notes In The Air
Pontifícia Universidade Católica do Rio de Janeiro Departamento de Informática Mestrado em Informática NITA – Notes In The Air PROJETO FINAL DE PROGRAMAÇÃO Kleder Miranda Gonçalves Rio de Janeiro, dezembro de 2004. Índice 1. Introdução ................................................................................... 03 2. Objetivo ...................................................................................... 03 3. Especificação do Sistema ........................................................... 04 3.1 Requisitos do Sistema ........................................................................... 04 3.2 Casos de Uso .......................................................................................... 05 3.2.1 Login .................................................................................................... 05 3.2.2 Postar Mensagem em um Local ........................................................ 05 3.2.3 Receber Mensagem ............................................................................ 06 3.2.4 Mudança de Área ............................................................................... 06 3.3 Diagrama de Casos de Uso .................................................................. 07 4. Projeto do Sistema .................................................................... 07 4.1 Diagrama de Pacotes ........................................................................... 07 4.2 Diagramas de Classes .......................................................................... 08 4.2.1 Diagrama de Classe do Servidor ....................................................... 08 4.2.2 Diagrama de Classe do Cliente ......................................................... 10 4.3 Diagramas de Seqüência ..................................................................... 11 5. Testes ......................................................................................... 17 5.1 Testes de Login .................................................................................... 17 5.2 Testes de Mudança de Localidade ..................................................... 18 5.3 Testes de Postagem de Mensagem em uma Localidade .................. 18 5.4 Listagem mais detalhada .................................................................... 19 6. Manual do Usuário ................................................................... 22 6.1 Instalação ............................................................................................. 22 6.1.1 Passos para instalação do Servidor ................................................. 22 6.1.2 Passos para instalação do Cliente .................................................... 22 6.2 Uso ......................................................................................................... 22 2 1. Introdução À medida que surgem dispositivos portáteis mais leves, com mais recursos e melhor capacidade de comunicação e processamento, e dada a crescente ubiqüidade de redes sem fio, cada vez mais será possível se comunicar e colaborar com outras pessoas em qualquer lugar e em qualquer situação ou atividade. Por outro lado, novas tecnologias de localização, com custos cada vez menores, possibilitam a obtenção da localização de um usuário de dispositivo móvel com precisão cada vez maior. A união de computadores móveis em redes sem fio com informação de localização possibilitou o surgimento de uma área conhecida na literatura como Serviços Baseados em Localização (SBL). Seu objetivo é estudar como prover ao usuário serviços personalizados que dependem da localidade onde este se encontra. Dentre os SBL, existem aqueles cuja principal funcionalidade é prover comunicação entre usuários de dispositivos móveis. Por exemplo, aplicativos de bate-papo (chat) que permitem o envio de mensagens instantâneas (síncronas) entre grupos de usuários colocalizados (por ex., em um bar ou conferência), e outros que permitem postar mensagens/recados em locais, sendo que todos os usuários que estejam ou passem por aquele local recebem tais mensagens, possibilitando uma forma de comunicação assíncrona. Doravante, chamaremos essa classe de programas de aplicações para comunicação baseada em localização (ACBL). Da mesma forma como a comunicação peer-to-peer entre usuários independente de suas localizações é muito útil, vale a pena também investigar o paradigma da comunicação baseada em localização, ou seja, a possibilidade de interagir com todos ou um subconjunto dos usuários presentes em uma dada região. Esse paradigma cria um novo e amplo conjunto de possíveis de ferramentas que têm aplicação em várias áreas, como comércio eletrônico, educação, entretenimento, situações de emergência, etc. 2. Objetivo Este trabalho tem como objetivo descrever o desenvolvimento do NITA (Notes In The Air), uma aplicação para comunicação assíncrona baseada na localização de usuários de dispositivos móveis. NITA utiliza informação sobre a localização de um usuário para que este envie mensagens para um local específico e receba mensagens que foram postadas nos lugares por onde passa. Desse modo, provendo uma forma de comunicação assíncrona, ele funciona como um quadro de avisos virtual. O desenvolvimento do aplicativo seguiu o seguinte crononograma: Atividade/Mês Levantamento de Requisitos e Modelo Conceitual Arquitetura do Software Implementação Integração com o middleware MoCA Testes/Validação Agosto Setembro Outubro Novembro X * X * X * X X X – atividade principal * – atividade secundária 3 3. Especificação do Sistema 3.1 Requisitos do Sistema NITA é um aplicativo que possibilita uma forma de comunicação assíncrona. Assim, o sistema deve ser capaz de: • Postar mensagens na localidade corrente do usuário; • Enviar mensagens de texto para uma outra localidade diferente da qual onde se encontra o usuário. • Receber mensagens postadas na localidade corrente do usuário; • Quando mudar para uma nova localidade, receber todas as mensagens ali postadas; • Deverá ser implementado em dois módulos: cliente, rodando nos dispositivos móveis, e o servidor, localizado na rede fixa; • Gerenciar o ciclo de vida dos objetos que representam as localidades físicas; • Gerenciar contas de usuários no sistema; • Ser desenvolvido de forma a ser independente de interface gráfica com o usuário; • Obter a hierarquia de áreas e a informação de localização dos usuários através de uma tecnologia de posicionamento; • Integrar-se a um middleware que possibilite a comunicação entre o módulo cliente e o servidor. O aplicativo usa alguns serviços do middleware MoCA (Móbile Collaboration Architecture)1. Especificamente, a comunicação entre os módulos cliente e servidor é feita pelo serviço de eventos (EventService) e a detecção da presença de um usuário/dispositivo em uma região geográfica é obtida pelo serviço de inferência de localização (LIS), que passa à aplicação o nome da região simbólica correspondente. NITA pode utilizar qualquer interface gráfica, desde que tal interface implemente alguns métodos pré-definidos.A interface gráfica utilizada nesta versão do NITA foi desenvolvida pelo Laboratório de Semiótica da PUC-Rio2. 1 Desenvolvido pelo Laboratório de Colaboração Avançada (LAC) da PUC-Rio (www.lac.inf.pucrio.br/moca) 2 Projetada por Bruno Santana, aluno de mestrado em Interação Humano-Computador do SERG. 4 3.2 Casos de Uso 3.2.1 Login Usuário 1 – Inicializa o programa-cliente NITA Sistema 1.1 – Mostra a interface gráfica e abre conexão com o servidor, passando login e senha do usuário. 1.2 – Servidor verifica login/senha 1.3 – Registra interesse junto ao LIS em obter informações da localização do usuário 1.4 – Obtém a localização atual do usuário. 1.5 – Constrói um objeto Mensagem com mensagem de boas-vindas e lista de localidades, informando, também, a localidade corrente do usuário. 1.6 – Envia mensagem para o Usuário. 2. Recebe mensagem de boas-vindas e sua localidade corrente é mostrada no canto da tela. 1.7 – Chama o método addUser() no objeto Localidade correspondente 1.8 – Objeto Localidade obtém lista das mensagens não-expiradas e envia para o Usuário. 3. Recebe a lista das mensagens que foram postadas na localidade atual. 4. Escolhe ler/salvar uma determinada mensagem. 5 – Programa-Cliente mostra em uma janela ou salva a mensagem no sistema de arquivos local. Fluxo alternativo: 1.2 – Login falha: envia mensagem que login falhou. 3.2.2 Postar mensagem em um local Usuário 1 - Aperta no botão “Postar Mensagem” Sistema 1.1 – Obtém a localização corrente do usuário 1.2 – Mostra janela contendo todas as localidades, sendo que a localização atual está selecionada. 2 – Escolhe o local para o qual vai postar a mensagem. 5 3 – Escreve a mensagem e edita as suas propriedades 4 – Aperta no botão “Postar” 4.1 – Cria objeto Mensagem 4.2 – Abre conexão com o servidor e lhe envia a mensagem. 5 – Servidor recebe mensagem e extrai o local de destino. 5.1 – Envia mensagem para o objeto Localidade correspondente 5.2 – Objeto Localidade varre sua lista de usuários (aqueles que estão na sua área naquele momento) e lhes envia a nova mensagem. 5.3 – Guarda mensagem até sua data de expiração. 3.2.3 Receber mensagem Usuário Sistema 1 – Objeto Localidade varre sua lista de usuários e manda a mensagem. 2 – No Cliente, a mensagem chega e um ícone de alerta de novas mensagens é ativado. 3 – Clica sobre o ícone de novas mensagens 3.1 – Mostra lista de novas mensagens em uma nova janela. 4. Escolhe ler/salvar uma determinada mensagem. 5 – Programa-Cliente mostra em uma janela ou salva a mensagem no sistema de arquivos local. 3.2.4 Mudança de Área Usuário Sistema 1. LIS detecta que o usuário mudou de região lógica e informa o Servirdor Nita. 2. Servidor envia ao Cliente sua nova localização. 3. Informação de localidade é alterada na tela do usuário. 4. O Servidor chama o método removeUser() do objeto Localidade correspondente à antiga região do usuário e addUser() no objeto da nova 6 região. 5 – Objeto Localidade obtém lista das mensagens não-expiradas e envia para o Usuário. 6. Recebe a lista das mensagens que foram postadas na localidade atual. 7. Escolhe ler/salvar uma determinada mensagem. 8 – Programa-Cliente mostra em uma janela ou salva a mensagem no sistema de arquivos local. 3.3 Diagrama de Casos de Uso Fig. 01 – Diagrama de Casos de Uso 4. Projeto do Sistema 4.1 Diagrama de Pacotes A aplicação é composta por dois módulos: cliente, rodando nos dispositivos móveis, e servidor, na rede fixa. As classes do cliente foram postas no pacote nita.client, e as do servidor no nita.server Conforme dito anteriormente, o NITA utiliza os serviços do middleware moca. O cliente utiliza a ClientAPI e o serviço de eventos. O servidor, além deste último, utiliza a ServerAPI e o serviço de inferência de localização. A comunicação entre os dois módulos é feita por trocas de mensagens, que podem ser de dois tipos: Message e Command. O primeiro representa as mensagens postadas pelos usuários em uma localidade, e o segundo, os comandos trocados entre clientes e o 7 servidor. Tais classes foram colocadas no pacote nita.common, que contém classes que são usadas por ambos os módulos. A figura abaixo apresenta o diagrama de pacotes do sistema: Fig. 02 – Diagrama de Pacotes do Sistema 4.2 Diagramas de Classe 4.2.1 Diagrama de Classe do Servidor A figura 03 mostra as classes que compõem o pacote nita.server, tendo NitaServer como classe principal. Como o módulo servidor é único no sistema, ela foi implementada seguindo o padrão de projeto Singleton, o qual garante que apenas uma única instância da classe existirá no sistema. Desse modo, para obter a instância única do NitaServer, deve-se chamar o seu método estático getInstance(). Esse padrão de projeto também foi aplicado na classe MessageService, pelo mesmo motivo. O NitaServer comunica-se diretamente com o LIS, no qual registra os endereços MAC dos dispositivos dos usuários que se conectaram ao sistema. Dessa forma, toda vez que o LIS detectar que um cliente mudou de região, este chama a método onAreaChanged() implementado pelo NitaServer passando como parâmetro o MAC do dispositivo e a nova localidade para onde se moveu o cliente. De posse dessas informações, o NitaServer comunica-se com o LocationManager para obter o objeto Location correspondente e adiciona o usuário nesta nova localidade, removendo-o da anterior. A classe Location guarda todas as mensagens postadas na região que este representa, enquanto não expirarem suas datas de validade. Quando um novo usuário é adicionado através do seu método addUser(), essas mensagens lhe são enviadas. No caso de uma nova mensagem ser postada na sua localidade, através do método post(), 8 sua lista de usuários é varrida e a mensagem é enviada para todos, guardando-a, então, até sua data de expiração, na sua lista de mensagens. Fig. 03 – Diagrama de Classes do Servidor NITA Para gerenciar o ciclo de vida dos objetos Location, foi criada a classe LocationManager. Ela cria instâncias de objetos Location por demanda. À medida que a classe NitaServer chama o método getLocation(), passando como argumento o nome da localidade, LocationManager verifica se a localidade já foi instanciada. Se for o caso, é retornado o objeto Location correspondente. Caso contrário, cria-se um novo objeto Location com o nome da área passado. Nesta versão, as localidades ainda não têm propriedades como, por exemplo, regras dos tipos de mensagens que podem ser postadas, qual o período máximo de vida de uma mensagem, etc. Futuramente, para criação por demanda desses objetos, será necessário passar também um arquivo de propriedades como parâmetro. Outra alternativa seria obter tais propriedades de uma base de dados de localidades, que seria acessada pelo objeto DBService, classe fachada para acesso a um banco de dados e/ou sistema de arquivo. Posteriormente, implementarse-á uma thread responsável pela remoção das localidades que permanecem vazias durante um período de tempo predeterminado. Dessa forma, somente as áreas que possuem usuários estarão instanciadas na memória. 9 A classe MessageService é responsável por enviar e receber as mensagens que trafegam pelo sistema. Comunica-se com o MoCA através da sua classe ServerAPI. Para enviar uma mensagem para um cliente, utiliza o método publish() da classe Subscriber. O recebimento é feito de forma assíncrona. O MessageService registra-se junto ao Serviço de Eventos para que este o informe, chamando o método onReceiveData(), quando uma nova mensagem chegar. O MessageService então repassa tal mensagem para o NitaServer, que verifica qual o tipo da mensagem: comando ou mensagem de texto. Se for um comando, chama o método correspondente para tratá-lo. Caso contrário, obtém o destino da mensagem e, através do LocationManager, pega o objeto Location correspondente, chamando seu método post(), para que este envie a mensagem de texto a todos os usuários que se encontram na localidade que representa. 4.2.2 Diagrama de Classe do Cliente A figura 04 mostra as classes que compõem o pacote nita.client, tendo como classe principal NitaClient. Pelo mesmo motivo discutido na descrição do NitaServer, NitaClient foi implementada como uma classe Singleton. Ao contrário da sua contraparte no servidor, não se comunica diretamente com a arquitetura MoCA. Instancia o MessageService e, este sim, faz a interface com essa arquitetura, através da classe ClientAPI. Tem também a responsabilidade de instanciar a interface gráfica (NitaUI) e tratar as mensagem recebidas através do MessageService, processando os comandos (classe Command) e passando as mensagens de texto (classe Message) para serem mostradas na interface com o usuário. Fig. 04 – Diagrama de Classes do Cliente NITA 10 Quando o usuário faz seu login no sistema, NitaClient chama o método connect() em MessageService que, por sua vez, chama init() da ClientAPI, fazendo com que o dispositivo móvel se cadastre no CIS da arquitetura MoCA. Além disso, é passado como parâmetro o tipo de protocolo de comunicação a ser utilizado (no caso, TCP). Dessa forma, quando for enviar uma mensagem, MessageService chama o método publish() de ClientAPI, que já está configurado para usar o protocolo escolhido. Um parâmetro this também é passado ao método init(), registrando a classe MessageService para que esta seja notificada quando da chegada de uma nova mensagem, sendo-lhe chamado o método onReceiveData(). Se o login for um sucesso, um comando do tipo LOGINRESPONSE é recebido pelo MessageService e repassado para o NitaClient, o qual extrai a lista com a hierarquia de localidades existentes. Logo em seguida, chegam as mensagens que porventura foram postadas nessa área. O diagrama de seqüência de login, na próxima sessão, detalha os passos da conexão com o servidor NITA, bem como o recebimento de mensagens. 4.3 Diagramas de Seqüência As páginas a seguir mostram cinco diagramas de seqüência: • Login: demonstra como é feito o login de um usuário móvel no servidor NITA. A inicialização do middleware MoCA, através da sua ClientAPI e a criação e o envio do comando de login são detalhados. • Envio de Mensagem: mostra os passos para postar uma mensagem em uma localidade. • Recebimento de Mensagem no Cliente: descreve como o módulo Cliente é notificado quando uma mensagem chega do Servidor e como esta é tratada, o que depende do seu tipo. • Recebimento de Mensagem no Servidor: mesmo que o item anterior, mas considerando o módulo Servidor. • Mudança de Área: demonstra o que ocorre quando o serviço de inferência de localização da MoCA notifica o Servidor que um dos clientes mudou de localidade. Os diagramas de seqüência foram brevemente resumidos na seção anterior, quando as classes do sistema foram descritas. Mais detalhes podem ser encontrados na Seção 3.2 que traz a descrição dos casos de uso do sistema. 11 12 13 14 15 16 5. Testes O NITA obtém a informação da localização de um usuário de dispositivo móvel através do serviço de inferência de localização (LIS) da arquitetura MoCA. Entretanto, no momento dos testes com este sistema, o serviço não estava disponível. Assim, para simular a movimentação de um usuário por diferentes localidades, utilizou-se o Monitor Simulator. Para maiores detalhes sobre esse aplicativo, ver o endereço http://www.lac.inf.puc-rio.br/moca/monitor.html A seguir, é mostrada a listagem dos testes efetuados com o NITA, com as saídas dos consoles do Cliente e do Servidor. A listagem foi reduzida, mostrando apenas partes mais importantes do teste para facilitar a compreensão da interação entre Cliente e Servidor. No final desta seção, uma listagem com mais detalhes será apresentada. 5.1 Testes de Login Neste primeiro teste, o usuário loga-se com um usuário que não está cadastrado no Servidor. Cliente //0.inicialização do MoCA Moca inicializado... Conectado ao servico MoCA... //1.logando-se com usuário //inexistente Mensagem enviada para SERVER Enviando comando de login... //2.recebida mensagem de que login //falhou Mensagem recebida... Login recusado... //3.criando um novo usuário Mensagem enviada para SERVER Enviado comando de criacao de usuario... //4.logando-se com a conta do //usuário recém-criado Conectado ao servico MoCA... Mensagem enviada para SERVER Enviando comando de login... //5.Recebendo a resposta do servidor de que login foi um sucesso Mensagem recebida... Logado no servidor NITA... Servidor //0.inicialização do Servidor MoCA inicializado... Inicializando o LIS... Obtendo areas do LIS... Total = 13 areas... Aguardando requisicoes dos clientes... //1.Recebendo mensagem de login //de usuário inexistente Mensagem recebida... //2.resposta: login recusado Mensagem enviada para ney Login do usuario ney recusado... //3.comando de criação de usuário Mensagem recebida... Criando usuario ney no sistema... //4.mensagem de login de Ney chega Mensagem recebida... Logando usuario ney no sistema... Registrando ney(mac = 00:06:25:07:7B:2B) no LIS... Usuario ney esta na localidade Banco_01 //5.resposta do login Enviando resposta do login ney... Mensagem enviada para ney para 17 5.2 Testes de Mudança de Localidade O programa Monitor Simulator manda informações para o LIS, simulando que o usuário mudou de localidade. O LIS então avisa o Servidor, que retira o usuário da localidade antiga e o coloca na nova, notificando o módulo Cliente. Se houver mensagens na nova região, o Servidor as envia para o cliente. Servidor Cliente //1.Lis notifica Servidor de que //Hana mudou para Mesa_03. //Servidor notifica Hana e cria a //nova localidade no sistema [LIS]: Usuario hana esta na area: Mesa_03 Mensagem enviada para hana Criada Localidade Mesa_03 //1.Cliente recebe notificação de //que mudou de área Mensagem recebida... Nova area: Mesa_03 //2.outra mudanças de área [LIS]: Usuario hana esta na area: Banco_02 Mensagem enviada para hana Criada Localidade Banco_02 //3.outra notificação Mensagem recebida... Nova area: Banco_01 //3.Hana muda para uma área que //contem uma mensagem postada pelo usuário ney. [LIS]: Usuario hana esta na area: Banco_01 Mensagem enviada para hana //2.outra notificação Mensagem recebida... Nova area: Banco_02 //4.recebendo mensagem postada Mensagem recebida... Chegou mensagem postada por ney //4.envia a mensagem //que esta postada na localidade. Mensagem enviada para hana 5.3 Testes de Postagem de Mensagem em uma Localidade A usuária Hana está na localidade Banco_01 e posta uma mensagem nesse local. Ela e os usuários Kleder e Ney, que se encontram nessa mesma região, também recebem a mensagem. Cliente Servidor //1.Hana posta uma mensagem Mensagem enviada para SERVER Postando mensagem na area Banco_01 //1.Server recebe mensagem postada Mensagem recebida... Mensagem postada na regiao: Banco_01 //2.Hana recebe mensagem que ela mesma postou Mensagem recebida... Chegou mensagem postada por hana //2.Então envia para todos que se encontram na área Mensagem enviada para hana Mensagem enviada para ney Mensagem enviada para kleder 18 5.4 Listagem mais detalhada Esta listagem apresenta o log de três usuários. O lado Cliente mostra as saídas do usuário Ney, que depois sai do sistema e loga-se como usuário Kleder. A usuária Hana não aparece no lado Cliente, mas seus logs estão registrados nas mensagens que ela passa para o Servidor. Cliente //inicialização do MoCA Moca inicializado... Conectado ao servico MoCA... //enviando login de usuário //inexistente Mensagem enviada para SERVER Enviando comando de login... //informado de que login falhou Mensagem recebida... Login recusado... //envia mensagem de criação de //usuário ney Mensagem enviada para SERVER Enviado comando de criacao de usuario... //loga-se como usuário ney Conectado ao servico MoCA... Mensagem enviada para SERVER Enviando comando de login... //login foi um sucesso Mensagem recebida... Logado no servidor NITA... //posta mensagem na localidade Mensagem enviada para SERVER Postando mensagem na area Banco_01 //como se encontra na área //Banco_01, ele recebe sua própria //mensagem Mensagem recebida... Chegou mensagem postada por ney //informado que mudou de área Mensagem recebida... Nova area: EspacoAberto Mensagem recebida... Nova area: Mesa_03 Mensagem recebida... Nova area: Banco_02 Mensagem recebida... Nova area: Banco_01 Servidor //recebe login de hana Mensagem recebida... Logando usuario hana no sistema... Registrando hana(mac = 00:06:25:07:7B:2B) no LIS... Criada Localidade Banco_01 Usuario hana esta na localidade Banco_01 Enviando resposta do login para hana... Mensagem enviada para hana //informa que hana mudou de área [LIS]: Usuario hana esta na area: EspacoAberto Mensagem enviada para hana //localidades são criadas por //demanda... Criada Localidade EspacoAberto //recebe mensagem de login com //usuário inexistente Mensagem recebida... Mensagem enviada para ney Login do usuario ney recusado... [LIS]: Usuario hana esta na area: Mesa_03 Mensagem enviada para hana Criada Localidade Mesa_03 [LIS]: Usuario hana esta na area: Banco_02 Mensagem enviada para hana Criada Localidade Banco_02 [LIS]: Usuario hana esta na area: Banco_01 Mensagem enviada para hana //recebe comando de criação de //de novo usuário ney Mensagem recebida... Criando usuario ney no sistema... //login do usuário ney Mensagem recebida... Logando usuario ney no sistema... Registrando ney(mac = 19 //como mudou novamente para //Banco_01, recebe sua msg de novo Mensagem recebida... Chegou mensagem postada por ney Mensagem recebida... Nova area: EspacoAberto Mensagem recebida... Nova area: Mesa_03 Mensagem recebida... Nova area: Banco_02 //Hana postou mensagem em //Banco_02, que é sua localidade //atual Mensagem recebida... Chegou mensagem postada por hana Mensagem recebida... Nova area: Banco_01 Mensagem recebida... Chegou mensagem postada por ney //Ney faz seu logout Mensagem enviada para SERVER Logout do usuario... //Kleder loga-se no sistema Conectado ao servico MoCA... Mensagem enviada para SERVER Enviando comando de login... 00:06:25:07:7B:2B) no LIS... Usuario ney esta na localidade Banco_01 Enviando resposta do login para ney... Mensagem enviada para ney //mensagem foi postada na região Mensagem recebida... Mensagem postada na regiao: Banco_01 //envia para todos q esta na área Mensagem enviada para hana Mensagem enviada para ney [LIS]: Usuario ney esta na area: EspacoAberto Mensagem enviada para ney [LIS]: Usuario ney esta na area: Mesa_03 Mensagem enviada para ney [LIS]: Usuario ney esta na area: Banco_02 Mensagem enviada para ney [LIS]: Usuario ney esta na area: Banco_01 Mensagem enviada para ney Mensagem recebida... Mensagem postada na regiao: Banco_02 //recebe confirmação do login Mensagem recebida... Logado no servidor NITA... [LIS]: Usuario ney esta na area: EspacoAberto Mensagem enviada para ney //recebe mensagem que tinha sido //postada por ney Mensagem recebida... Chegou mensagem postada por ney [LIS]: Usuario ney esta na area: Mesa_03 Mensagem enviada para ney Mensagem recebida... Nova area: EspacoAberto Mensagem recebida... Nova area: Mesa_03 Mensagem recebida... Nova area: Banco_02 Mensagem recebida... Chegou mensagem postada por hana Mensagem recebida... Nova area: Banco_01 Mensagem recebida... [LIS]: Usuario ney esta na area: Banco_02 Mensagem enviada para ney [LIS]: Usuario ney esta na area: Banco_01 Mensagem enviada para ney //logout do usuário ney Mensagem recebida... Logout do usuario ney Mensagem recebida... //login do usuário kleder Logando usuario kleder no sistema... Registrando kleder(mac = 20 Chegou mensagem postada por ney //Kleder posta tb uma mensagem Mensagem recebida... Chegou mensagem postada por kleder Mensagem enviada para SERVER Postando mensagem na area Banco_01 Mensagem recebida... Nova area: EspacoAberto Mensagem recebida... Nova area: Mesa_03 Mensagem recebida... Nova area: Banco_02 Mensagem recebida... Chegou mensagem postada por hana Mensagem recebida... Nova area: Banco_01 Mensagem recebida... Chegou mensagem postada por ney Mensagem recebida... Chegou mensagem postada por kleder 00:06:25:07:7B:2B) no LIS... Usuario kleder esta na localidade Banco_01 Enviando resposta do login para kleder... Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: EspacoAberto Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: Mesa_03 Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: Banco_02 Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: Banco_01 Mensagem enviada para kleder Mensagem Mensagem Banco_01 Mensagem Mensagem Mensagem recebida... postada na regiao: enviada para hana enviada para ney enviada para kleder [LIS]: Usuario kleder esta na area: EspacoAberto Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: Mesa_03 Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: Banco_02 Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: Banco_01 Mensagem enviada para kleder [LIS]: Usuario kleder esta na area: EspacoAberto Mensagem enviada para kleder 21 6. Manual do Usuário 6.1 Instalação O NITA foi desenvolvido com a linguagem de programação JAVA, versão 1.4.2. Para sua execução, é necessário ter previamente instalado o JRE versão 1.4.2 ou superior. Como o NITA utiliza a MoCA, os serviços CIS, DS e LIS dessa arquitetura já devem estar rodando na rede fixa. Para maiores informações, deve-se consultar a página do projeto MoCA na internet: www.lac.inf.puc-rio.br/moca. A seguir, segue a discrição das etapas para instalação dos módulos Cliente e Servidor. Este último deve estar rodando antes da execução do cliente. 6.1.1 Passos para instalação do Servidor: 1) Descompactar o arquivo nitaservert.zip em qualquer diretório; 2) Editar o arquivo nitaservert.properties, informando algumas propriedades de rede, como IP, porta, mac address, etc, do host local e dos serviços MoCA. 3) Executar o arquivo de lote servert.bat. 6.1.2 Passos para instalação do Cliente: 1) Descompactar o arquivo nitaclient.zip em qualquer diretório; 2) Editar o arquivo nitaclient.properties, informando algumas propriedades de rede, como IP, porta, mac address, etc. 3) Executar o arquivo de lote client.bat. 6.2 Uso Quando o usuário inicializa a aplicação, uma janela aparece para que este entre com seu login e senha de acesso ao servidor NITA (figura 05). Fig. 05 – Tela de Login 22 Caso o login seja um sucesso, a janela principal do aplicativo é mostrada (figura 06), informando na parte inferior a localidade corrente do usuário (no caso, o Laboratório de Engenharia de Software - LES). Fig. 06 – Janela Principal Para enviar uma mensagem, o usuário deve clicar em "Nova Mensagem". A janela da figura 07 é mostrada, onde o usuário pode escrever sua mensagem, escolher na árvore representando a hierarquia de regiões simbólicas e o local de destino da mensagem.. O destinatário da mensagem também poderia ser especificado, sendo possível que fosse um usuário em particular, um conjunto deles, reunidos em uma buddy-list, ou todos aqueles que estão naquela região. Na versão atual, entretanto, não foi implementado essa funcionalidade. Sendo assim, as mensagens são recebidas por todos que se encontram na região simbólica destino. Na figura, por exemplo, Maria posta uma mensagem para todos que se encontram no LAC. Fig. 07 – Tela de envio de mensagem 23 Para ler as mensagens postadas na sua localidade corrente, o usuário clica em "Ler Mensagem" na janela principal. A janela na figura 08 aparece, mostrando uma árvore de hierarquia com a localidade corrente representada por um nó selecionado e, ao lado, o cabeçalho das mensagens que foram postadas ali. Ao clicar sobre uma mensagem, o seu conteúdo é mostrado na parte inferior da janela. Fig. 08 – Tela de leitura de mensagens 24