RELATÓRIO FINAL Sistema para mon itoramento de serviços...

21
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

Transcript of RELATÓRIO FINAL Sistema para mon itoramento de serviços...

Page 1: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 2: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 3: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 4: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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;

Page 5: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 6: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 7: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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,

Page 8: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 9: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 10: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 11: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 12: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 13: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 14: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 15: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 16: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

INF 655 – Computação Móvel Página 15

8.1 – Selecionando um perfil

Page 17: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 18: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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

Page 19: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 20: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.

Page 21: RELATÓRIO FINAL Sistema para mon itoramento de serviços ...nacif/cmovel/files/2008b/03/Relatorio_MonDroid.pdf · Nossa principal motivação foi a possibilidade de trabalhar de

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.