Post on 08-Dec-2018
UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS
DEPARTAMENTO DE INFORMÁTICA
MESTRADO EM CIÊNCIA DA COMPUTAÇÃO INF 655 – COMPUTAÇÃO MÓVEL
RELATÓRIO FINAL
Sistema para monitoramento de serviços com o Android OS
Alunos:
Alex Vidigal Bastos
João Paulo Nogueira
Paulo Alexandre Lobato
Professor:
Mauro Nacif Rocha
VIÇOSA – MG
DEZEMBRO DE 2008
INF655 – Computação Móvel Página 1
SUMÁRIO 1 – Introdução............................................................................... 2 1.1 – Motivação .......................................................................... 2 1.2 – Propósito do documento ........................................................ 2 1.3 – Escopo .............................................................................. 3 1.4 – Definições e Siglas................................................................ 3
2 – Referencial Teórico ................................................................... 3 2.1 – Android ............................................................................. 3 2.1.1 – Visão geral da arquitetura................................................. 4
2.2 – Interface em dispositivos móveis.............................................. 4 2.3 – Comunicação e rede ............................................................. 5 2.4 – SQLite............................................................................... 5
3 – Descrição Geral ........................................................................ 6 3.1 – Gerenciamento de Redes ....................................................... 6 3.2 – Visão Geral do Produto .......................................................... 7 3.3 – Perspectivas do Produto ........................................................ 8 3.4 – Funções do Produto.............................................................. 8 3.5 – Componetes de Evolução do Produto......................................... 8 3.6 – Limitações do Produto........................................................... 8 3.7 – Usuários do Produto ............................................................. 9
4 – Requisitos Funcionais ................................................................. 9 4.1 – Requisito funcional selecionar perfil ........................................... 9 4.2 – Requisito funcional gerenciar perfil ............................................ 9 4.3 – Requisito funcional gerenciar elementos de rede ............................ 9 4.4 – Requisito funcional monitorar elementos de rede............................ 9 4.5 – Requisito funcional gravar histórico de estado................................ 9
5 – Casos de Uso ...........................................................................10 5.1 – Diagrama de casos de uso......................................................10 5.2 – Caso de uso selecionar perfil ...................................................10 5.3 – Caso de uso gerenciar perfil ....................................................10 5.4 – Caso de uso gerenciar elementos de rede ....................................11 5.5 – Caso de uso monitorar elementos de rede....................................11 5.6 – Caso de uso gravar histórico de estado........................................11
6 – Persistência ............................................................................12 6.1 – Modelo Entidade-Relacionamento do banco de dados ...................12 6.2 – Script do SQLite para a definição da estrutura do banco................12
7 – Diagrama de classes ..................................................................13 7.1 – Descrição das classes ...........................................................13 7.2 – Diagrama ..........................................................................14
8 – Fluxo de navegação e telas do produto ..........................................14 8.1 – Selecionando um perfil.........................................................15 8.2 – Cadastro/Edição/Exclusão de um perfil .....................................16 8.3 – Cadastro/Edição/Exclusão de um elemento de rede .....................16 8.4 – Tela principal da aplicação (lista de serviços e seus estados) ..........17 8.5 – Ícone do aplicativo no menu do Android OS ...............................17
9 – Dificuldades Encontradas ...........................................................18 10 – Considerações Finais ...............................................................19 11 – Referências...........................................................................20
INF655 – Computação Móvel Página 2
1 – Introdução Computação Móvel é um novo paradigma computacional que tem como objetivo
disponibilizar ao usuário acesso permanente a uma rede fixa ou móvel, independente de
sua posição física.
Dispositivos móveis, também chamados de handhelds, estão surgindo de diversas
formas. Atualmente existem os PDAs (Personal Digital Assistants), telefones celulares,
Smartphones, que é um telefone celular com funcionalidades avançadas que podem ser
estendidas por meio de programas executados no seu Sistema Operacional, e vários
outros tipos de dispositivos.
Com é o caso do Smartphone, os dispositivos móveis estão surgindo com muitas
outras facilidades, funcionalidades e interfaces como GPS (Global Positioning System),
tocadores de áudio e câmeras fotográficas digitais, jogos eletrônicos cada vez mais
sofisticados e placas de comunicação sem fio multiprotocolos. O mercado desses
dispositivos está crescendo muito e atingindo diversas áreas como negócios, indústria,
escolas, hospitais, etc.
1.1 – Motivação
Nossa principal motivação foi a possibilidade de trabalhar de forma bem prática em um
ambiente de desenvolvimento desse novo paradigma, a Computação Móvel, que é
também um dos objetivos da disciplina INF655 – Computação Móvel.
Um outro incentivo foi a crescente área de monitoramento e gerenciamento de
redes. O acesso à Internet, por exemplo, em muitos países já é considerado um serviço
básico, como água, luz etc. Mesmo que no Brasil ainda não esteja dessa forma acessível
a toda a população, as redes cabeadas e sem fio estão cada vez mais presentes no dia a
dia de pequenas e grandes empresas, instituições de ensino e também em redes
domésticas.
Alguns desafios funcionaram como motivadores para o desenvolvimento dessa
aplicação:
• Trabalhar com o Android SDK;
• Interface para dispositivos móveis;
• Comunicação e redes (serviços de rede);
• Banco de Dados em dispositivos móveis.
1.2 – Propósito do documento
O propósito deste documento é descrever e especificar um sistema para monitoramento
de serviços de rede com um dispositivo móvel que possui o Android OS.
INF655 – Computação Móvel Página 3
1.3 – Escopo
O objetivo da aplicação é monitorar computadores e serviços através de um dispositivo
móvel. O sistema deverá permitir verificar a disponibilidade de um serviço em uma rede
fixa através de um dispositivo móvel.
1.4 – Definições e Siglas
MonDroid - sistema para monitoramento de serviços com o Android OS.
SDK - é a sigla de Software Development Kit, ou seja, Kit de Desenvolvimento de
Software.
UP/DOWN – indica que o serviço está online/offline.
SO – Sistema Operacional, em inglês OS.
Ping - comando usado pelo protocolo ICMP para testar a conectividade entre
equipamentos.
ICMP - Internet Control Message Protocol, é um protocolo integrante do Protocolo IP.
HTTP - HyperText Transfer Protocol, é um protocolo de aplicação responsável pelo
tratamento de pedidos/respostas entre cliente e servidor na Internet.
2 – Referencial Teórico
Este capítulo descreve algumas tecnologias e metodologias que serviram de base para o
desenvolvimento e também para o enriquecimento do nosso aprendizado.
2.1 – Android
Android é uma pilha de software para dispositivos móveis que inclui um sistema
operacional, middleware e aplicações chave. A versão beta do Android SDK fornece as
ferramentas e APIs necessárias para começar a desenvolver aplicativos na plataforma
Android utilizando a linguagem de programação Java [1].
Recursos:
• Framework de aplicação que permita a reutilização e a substituição de
componentes;
• Máquina virtual Dalvik, otimizada para dispositivos móveis;
• Navegador integrado de código aberto baseado no WebKit engine;
• Gráficos otimizados e personalizados por uma biblioteca gráfica 2D, 3D baseado
no OpenGL ES 1,0 especificação (aceleração de hardware opcional);
• SQLite para armazenamento de dados estruturados;
INF655 – Computação Móvel Página 4
• Suporte Media para áudio, vídeo, imagem estática e formatos (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF);
• Telefonia GSM (dependente de hardware);
• Bluetooth, EDGE, 3G, e WiFi (dependente de hardware);
• Camera, GPS e bússola (dependente de hardware);
• Ambiente de desenvolvimento rico, incluindo um dispositivo emulador,
ferramentas de depuração, memória e perfis de desempenho, e um plugin para a
Eclipse IDE;
2.1.1 – Visão geral da arquitetura
O gráfico seguinte mostra os principais componentes do sistema operacional Android.
Figura 1: Arquitetura de desenvolvimento do Android [2].
2.2 – Interface em dispositivos móveis
A interface de uma aplicação computacional envolve todos os aspectos de um sistema
com o qual mantemos contato e é um dos fatores mais importantes para o sucesso de
um software. Por outro lado, a facilidade de evolução de um software, incluindo sua
interface, é considerada pela engenharia de software como um atributo interno
essencial aos produtos de software.
INF655 – Computação Móvel Página 5
A computação móvel tem aumentado a dificuldade e a complexidade do projeto
de interfaces devido às limitações de recursos computacionais, falta de padronização,
variedade de dispositivos e contextos de uso encontrados em telefones celulares, PDAs
(Assistentes Pessoais Digitais) e Smartphones. O desenvolvimento dessas aplicações
precisa ser ágil, de modo a responder às demandas de um mercado muito competitivo.
Além disso, as demandas por mudanças e adaptações das aplicações para novos
dispositivos têm forte impacto sobre o projeto de interfaces.
Neste projeto também estudamos e aplicamos algumas técnicas de projeto e
avaliação de interfaces no contexto de aplicações para computação móvel, tendo como
principal objetivo uma melhor experiência e satisfação do usuário. [11]
2.3 – Comunicação e rede
Uma rede wireless permite a conexão entre diferentes pontos sem a necessidade do uso
de cabos, ou seja, existe uma ligação que é feita por meio de equipamentos que usam
radiofreqüência, infravermelho, etc.
Existem diferentes tipos de redes sem fio, como celular, satélites, redes de
computadores wireless e muitas outras que estão crescendo: rede de sensores, redes
móveis adhoc e Free Space Optics (laser). Em redes de computadores elas podem ser
classificadas baseando na área de abrangência delas: redes pessoais ou curta distância
(WPAN), redes locais (WLAN), redes metropolitanas (WMAN) e redes de longa distância
(WWAN).
Em redes de computadores existem várias tecnologias como Bluetooth, ZigBee,
Wi-Fi, WiMAX, Redes Mesh, etc. A família 802.11 é mais conhecida como redes Wi-Fi ou
wireless, é sem dúvida uma das grandes novidades tecnológicas e na prática é o que se
usa em redes locais sem fio.
Como vimos anteriormente o Android OS dá suporte a muitas dessas tecnologias,
dependendo mesmo do hardware disponível no dispositivo móvel. Como nossa aplicação
foi desenvolvida sobre a arquitetura Android, essa questão de comunicação é bem
transparente e fica a cargo do SO gerenciar qual tipo de conexão está disponível e provê
o acesso a Internet, que utilizamos para verificar se um serviço está UP ou DOWN.
2.4 – SQLite
SQLite em uma biblioteca que
implementa mecanismo transacional
de banco de dados SQL. O código
para o SQLite é de domínio público
INF655 – Computação Móvel Página 6
e, portanto, é livre para ser utilizada para qualquer fim, comercial ou privado. SQLite é
atualmente encontrado em mais aplicações do que podemos contar, incluindo vários
projetos de alto perfil.
Ele funciona como um mecanismo de banco de dados SQL embutido. Ao contrário
da maioria das demais bases de dados SQL, não tem um servidor separado, lê e escreve
diretamente para arquivos em disco ordinário. Fornece um completo banco de dados
SQL com várias tabelas, índices, triggers e views, tudo isso contido em um único arquivo
em disco.
O uso do SQLite é recomendado onde a simplicidade da administração,
implementação e manutenção são mais importantes que incontáveis recursos que SGBDs
mais voltados para aplicações complexas possivelmente implementam. Mas podemos nos
surpreender com o número de situações onde a simplicidade é a melhor.
A base do código é feita por uma equipe internacional de desenvolvedores que
trabalham em tempo integral para o projeto. Os desenvolvedores continuam a expandir
as capacidades do SQLite, melhorar o seu desempenho e confiabilidade.
Como se trata de um sistema leve e que exige muito pouco em relação a espaço
em disco e poder de processamento, o SQLite é muito indicado para sistemas
embarcados em dispositivos móveis.[10]
3 – Descrição Geral
3.1 – Gerenciamento de Redes
Gerenciar um sistema consiste em monitorar e controlar seu funcionamento para que
ele satisfaça aos requisitos tanto dos seus usuários quanto dos seus proprietários [8].
Monitoração: É uma função de gerenciamento de rede destinada a observação e
análise do estado e comportamento dos dispositivos gerenciados.
• Um usuário, ao utilizar um software gerente para verificar o estado operacional
(up ou down) de uma ou mais interfaces de rede está executando uma função de
monitoramento.
Controle: É uma função de gerenciamento de rede destinada a alteração de
parâmetros de gerenciamento que acarretam ações junto aos dispositivos gerenciados.
• Um usuário, ao utilizar um software gerente para desabilitar o funcionamento
temporário de uma determinada interface de rede, está executando um função
de controle.
Dentro da área de gerenciamento de redes, podemos classificar as formas de
gerenciamento em cinco áreas funcionais, dentre elas: Gerenciamento de Falhas,
INF655 – Computação Móvel Página 7
Gerenciamento de Desempenho, Gerenciamento de Contabilização, Gerenciamento de
Configuração e Gerenciamento de Segurança, onde cada área trata requisitos
específicos.
A área de Gerenciamento de Falhas é responsável por:
• Detectar e reportar falhas;
• Manter logs de eventos significativos e erros ocorridos na rede, que possam ser
examinados futuramente;
• Realizar seqüências de testes;
• Isolar e corrigir falhas;
• Antecipar falhas.
Nossa aplicação está presente nessa área de Gerenciamento de Falhas,
principalmente nas tarefas de detectar e reportar falhas e manter logs de eventos
ocorridos no monitoramento, especificamente no estado de um computador ou serviço
(UP/DOWN). A figura abaixo ilustra melhor onde o MonDroid está inserido.
Figura 2: Ambiente de Gerenciamento de Redes
3.2 – Visão Geral do Produto
O sistema MonDroid tem como objetivo facilitar a monitoração e controle de
computadores e serviços através de um dispositivo móvel, neste caso particular de um
INF 655 – Computação Móvel Página 8
celular. O sistema Mondroid irá contemplar inicialmente a área funcional de falhas,
permitindo detectar e reportar falhas em computadores e serviços da rede.
O sistema deve verificar a disponibilidade dos dispositivos gerenciados, alertando
sobre eventuais problemas. O sistema MonDroid será desenvolvido através da SDK do
Android e será emulado pelo próprio emulador do Android.
3.3 – Perspectivas do Produto
• Ser desenvolvido sobre a SDK do Android;
• Utilizar um banco de dados para dispositivos móveis (SQLite);
• Ter uma interface amigável, fácil e com uma boa satisfação do usuário;
• Auxiliar no gerenciamento de redes utilizando comunicação sem fio.
3.4 – Funções do Produto
• Selecionar um perfil cadastrado;
• Cadastrar/Editar/Excluir perfis de elementos de rede;
• Cadastrar/Editar/Excluir elementos de rede de um perfil;
• Monitorar os elementos da rede, baseado no perfil cadastrado;
• Gravar um histórico de mudança de estado (UP/DOWN) para um determinado
elemento da rede.
3.5 – Componetes de Evolução do Produto
O desenvolvimento do MonDroid é feito em camadas, onde temos: a camada de
apresentação (interface), camada lógica do negócio (Java ME/Android) e camada de
persistência de dados (SQLite).
Em sua primeira versão demos prioridade ao monitoramento do serviço HTTP
(porta 80), por isso nossa aplicação será desenvolvida para que posteriormente seja
possível a evolução do sistema para demais serviços de monitoração e áreas funcionais.
3.6 – Limitações do Produto
O MonDroid foi testado apenas no simulador do Android, devido a falta de oportunidade
de testar em um aparelho com o Android OS instalado. O está em sua primeira versão,
fornecendo inicialmente apenas o serviço de ping para verificar a disponibilidade de um
dispositivo em uma rede fixa, verificando se o mesmo está UP ou DOWN.
INF 655 – Computação Móvel Página 9
3.7 – Usuários do Produto
O MonDroid é preparado para o público que deseja monitorar os elementos ativos de
uma rede, através de um dispositivo móvel com o Android OS.
4 – Requisitos Funcionais
4.1 – Requisito funcional selecionar perfil
RF1: Selecionar perfil
Descrição: O sistema deverá permitir ao usuário selecionar um perfil
cadastrado para ser monitorado.
4.2 – Requisito funcional gerenciar perfil
RF2: Gerenciar perfil
Descrição: O sistema deverá permitir ao usuário Cadastrar/Editar/Excluir um
perfil de elementos de rede.
4.3 – Requisito funcional gerenciar elementos de rede
RF3: Gerenciar elementos de rede
Descrição: O sistema deverá permitir ao usuário Cadastrar/Editar/Excluir um
elemento de rede de um perfil previamente selecionado.
4.4 – Requisito funcional monitorar elementos de rede
RF4: Monitorar elementos de rede
Descrição: O sistema deverá monitorar uma lista de serviços de um perfil e
exibir o status (UP ou DOWN) do serviço (elemento).
4.5 – Requisito funcional gravar histórico de estado
RF5: Gravar histórico de estado
Descrição: O sistema deverá gravar um histórico de estado (UP ou DOWN) dos
serviços (elementos) monitorados, baseado no perfil selecionado.
INF 655 – Computação Móvel Página 10
5 – Casos de Uso
5.1 – Diagrama de casos de uso
5.2 – Caso de uso selecionar perfil
UC1: Selecionar perfil
Atores: Usuário
Descrição: O caso de uso é utilizado pelo Usuário para selecionar um perfil.
Tem como objetivo exibir a lista de serviços do perfil selecionado.
5.3 – Caso de uso gerenciar perfil
UC2: Gerenciar perfil
Atores: Usuário
Descrição: O caso de uso é utilizado pelo Usuário para cadastrar/editar/excluir
um perfil. Tem como objetivo gerenciar os perfis provendo o cadastro, edição
e exclusão do mesmo.
INF 655 – Computação Móvel Página 11
5.4 – Caso de uso gerenciar elementos de rede
UC3: Gerenciar elementos de rede
Atores: Usuário
Descrição: O caso de uso é utilizado pelo Usuário para cadastrar/editar/excluir
um elemento (serviço). Tem como objetivo gerenciar os elementos provendo o
cadastro, edição e exclusão do mesmo.
5.5 – Caso de uso monitorar elementos de rede
UC4: Monitorar elementos de rede
Atores: Usuário, Mondroid
Descrição: O caso de uso é utilizado pelo Usuário e pelo sistema (MonDroid)
para verificar o estado (UP ou DOWN) de uma lista de elementos de rede. Tem
como objetivo verificar e exibir o estado de uma a lista de serviços do perfil
selecionado.
5.6 – Caso de uso gravar histórico de estado
UC5: Gravar histórico de estado
Atores: MonDroid
Descrição: O caso de uso é utilizado pelo sistema (MonDroid) para gravar um
histórico de estados (UP ou DOWN) do serviço. Tem como objetivo gerar um log
dos estados de cada elemento de rede da lista monitorada.
INF 655 – Computação Móvel Página 12
6 – Persistência
A persistência dos dados será feita com o banco de dados presente na arquitetura da
Android SDK (SQLite).
6.1 – Modelo Entidade-Relacionamento do banco de dados
Figura 3: Modelo ER do banco de dados
6.2 – Script do SQLite para a definição da estrutura do banco
# SQLite Version: 2.8.17
# Banco de Dados: mondroid.sqlite
# ------------------------------------------------- -------
# Estrutura da tabela: historico
CREATE TABLE historico ( servicos_idservicos INTEGE R NOT NULL PRIMARY
KEY, dataehora DATETIME NOT NULL DEFAULT '0000-00-0 0 00:00', situacao
BOOLEAN NOT NULL );
# ------------------------------------------------- -------
# Estrutura da tabela: perfis
CREATE TABLE perfis ( idperfil INTEGER NOT NULL PRI MARY KEY, nome
VARCHAR(50) NOT NULL DEFAULT "", refresh INTEGER );
# ------------------------------------------------- -------
# Estrutura da tabela: servicos
INF 655 – Computação Móvel Página 13
CREATE TABLE servicos ( idservicos INTEGER NOT NULL PRIMARY KEY,
perfis_idperfil INTEGER, tiposservicos_idtipos_serv icos INTEGER, titulo
VARCHAR(100) NOT NULL, caminho VARCHAR(50) , porta INTEGER );
# ------------------------------------------------- -------
# Estrutura da tabela para a tabela: tipos_servicos
CREATE TABLE tipos_servicos ( idtipos_servicos INTE GER NOT NULL PRIMARY
KEY, nome VARCHAR(50) NOT NULL DEFAULT "" );
# ------------------------------------------------- -------
7 – Diagrama de classes
7.1 – Descrição das classes
• Mondroid
Classe principal do sistema. É responsável pela navegabilidade entre as telas e
possuí as funções principais da aplicação juntamente com os métodos que
atendem os casos de uso.
• Conexao
Classe responsável pela função de verificação se um elemento de rede está UP
ou DOWN.
• MondroidBdAdapter
Classe que faz a conexão com o banco de dados e executa instruções SQL. Ela
utiliza algumas classes pré-definidas na própria SDK, como a SQLiteDatabase e
DatabaseHelper.
• Servicos
Classe originada pela persistência de dados. Responsável pela instanciação dos
objetos (elementos de rede) e operações sobre eles.
• Perfis
Classe originada pela persistência de dados. Responsável pela instanciação dos
objetos “perfis”, que possuem vários serviços ligados a eles.
• Historico
Classe originada pela persistência de dados. Responsável pela instanciação dos
objetos “historico”, que é o log de estados (UP/DOWN) de um determinado
serviço.
INF 655 – Computação Móvel Página 14
7.2 – Diagrama
8 – Fluxo de navegação e telas do produto
As telas foram capturadas durante a execução do MonDroid no emulador da Android
SDK. Comparando as telas com o diagrama abaixo é possível ter uma visão de como é o
funcionamento do produto.
INF 655 – Computação Móvel Página 15
8.1 – Selecionando um perfil
INF 655 – Computação Móvel Página 16
8.2 – Cadastro/Edição/Exclusão de um perfil
8.3 – Cadastro/Edição/Exclusão de um elemento de rede
INF 655 – Computação Móvel Página 17
8.4 – Tela principal da aplicação (lista de serviços e seus estados)
8.5 – Ícone do aplicativo no menu do Android OS
INF 655 – Computação Móvel Página 18
9 – Dificuldades Encontradas
Os problemas encontrados foram, em sua maioria, conseqüências dos desafios que nos
motivaram a desenvolver esse projeto.
Considerando que o paradigma de desenvolvimento para dispositivos móveis é
algo muito novo e que um dos objetivos desse trabalho é um primeiro contato com a
Computação Móvel, era esperado que enfrentássemos algumas dificuldades, como:
1. Trabalhar com uma SDK recente e ainda em estado beta foi um grande desafio e
alguns problemas como diferenças entre algumas funções da documentação e as
disponíveis na versão atual foram superados com auxílio de fóruns e
comunidades de desenvolvedores;
2. O emulador que vem incluso na SDK foi essencial, já que não possuímos um
dispositivo móvel com o Android para efetuar testes. Mas infelizmente o
emulador possui algumas limitações que nos custou um bom tempo de tentativas
para descobrir que ele tinha problemas com ICMP do protocolo TCP/IP, usado
para executar a função de Ping, que verifica a disponibilidade de um serviço.
3. Outra dificuldade no desenvolvimento de aplicações para dispositivos móveis é o
projeto de interfaces, pois além da limitação no tamanho da tela, a forma que o
usuário lida com o dispositivo é bem diferente de aplicativos desktop.
4. Trabalhar com interfaces no Android é um esforço talvez ainda maior, porque
todas as telas são definidas em arquivos XML, que possuem uma estrutura
definida e cada elemento na interface é definida por vários atributos como a
posição (x,y), largura, altura, visibilidade, etc. A cada modificação é necessário
executar o emulador para verificar se o elemento visual está na posição correta,
esse processo é executado inúmeras vezes, custando um bom tempo para se
chegar a um resultado final satisfatório.
INF 655 – Computação Móvel Página 19
10 – Considerações Finais
O projeto e desenvolvimento do MonDroid foi algo essencial para a fixação das teorias
sobre o paradigma de desenvolvimento, a Computação Móvel.
Apesar do aplicativo ser relativamente simples a escolha dele foi muito acertada,
pois no desenvolvimento do mesmo tivemos contato com várias áreas desse novo
paradigma, como:
1. Uma recente SDK, gratuita, opensource, que provavelmente será muito usada em
dispositivos móveis;
2. Banco de dados para dispositivos com memória e recursos reduzidos (SQLite);
3. Comunicação em baixo nível através do uso de protocolos do tipo ICMP (Ping);
4. Projeto e criação de interfaces que envolvem um estudo de limitações de
tamanho de tela e da experiência do usuário.
Por causa de alguns problemas encontrados com o emulador, já mencionados, foi
necessário limitar à verificação de serviços do tipo HTTP (porta 80). Também não foi
possível implementar o histórico de estado (UP/DOWN) para os elementos de rede
cadastrados. Essas funcionalidades ficarão para uma próxima versão do sistema, já que
ficamos bem satisfeitos com a experiência e pretendemos continuar o desenvolvimento
mesmo depois do término da disciplina.
Depois desse contato com o desenvolvimento para dispositivos móveis ficou mais
claro alguns conceitos estudados na disciplina INF655 – Computação Móvel, sem dúvida o
resultado final não seria o mesmo sem esse projeto prático.
INF 655 – Computação Móvel Página 20
11 – Referências
[1] Android SDK - http://code.google.com/android/
[2] Documentação do Android - http://code.google.com/android/documentation.html
[3] Fórum Portal Android - http://forum.portalandroid.org
[4] Android Development Community - http://www.anddev.org/
[5] J2ME – Android - http://www.androidph.com/
[6] AAF Loureiro, DFH Sadok, GR Mateus, JMS Nogueira. Comunicação sem fio e
Computação Móvel: Tecnologias, Desafios e Oportunidades. Minicurso apresentado no
Congresso da Sociedade Brasileira de Computação. Campinas, São Paulo, 2003.
[7] ROCHA, M. N. Simulação e Gerenciamento de Unidades Móveis em Ambientes de
Comunicação Sem Fio. Tese de Doutorado, Departamento de Ciências da Computação,
Universidade Federal de Minas Gerais, Belo Horizonte, 2001.
[8] SLOMAN, Morris. Network and Distributed Sustems Management. USA: Addison-
Wesley, 1994.
[9] JUDE/Community - http://jude.change-vision.com
[10] SQLite - http://www.sqlite.org/
[11] Giani Carla Ito. UMA ARQUITETURA PARA GERAÇÃO DE INTERFACES
ADAPTATIVAS PARA DISPOSITIVOS MÓVEIS. INPE - Instituto Nacional de Pesquisas
Espaciais, 2008.