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

Documentos relacionados