Sei sulla pagina 1di 8

1076 31

o
Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos SBRC 2013
Projeto Maritaca: Arquitetura e Infraestrutura para Coleta
M ovel de Dados Usando Smartphones

Bruno G. dos Santos, Alvaro H. Mamani-Aliaga, Jimmy V. S anchez,
Matheus F. Mendonca, Tiago Barabasz e Arlindo F. da Conceic ao
1
1
Instituto de Ci encia e Tecnologia (ICT)
Universidade Federal de S ao Paulo (UNIFESP)
Rua Talim, 330. S ao Jos e dos Campos - SP
arlindo.conceicao@unifesp.br
Abstract. This paper presents the architecture of Maritaca, an infrastructure for
data gathering using Android mobile devices. The system creates applications
for mobile devices without need of knowledge about programming techniques.
The system is based on free software and can be accessed in the following ad-
dress: maritaca.unifesp.br.
Resumo. Este trabalho apresenta a arquitetura do projeto Maritaca, uma in-
fraestrutura para coleta de dados a partir de dispositivos m oveis Android. O
sistema permite a criac ao de aplicac oes para a coleta m ovel de dados sem a
necessidade de conhecimentos de t ecnicas de programac ao. O sistema e base-
ado em tecnologias abertas e pode ser acessado a partir do seguinte endereco:
maritaca.unifesp.br.
1. Introduc ao
Nos ultimos anos, o mercado de comunicac ao pessoal m ovel evoluiu rapidamente, devido
a tr es fatores: a queda dos precos, o lancamento de dispositivos m oveis com alta capaci-
dade de processamento e o surgimento de novas tecnologias para o desenvolvimento de
Aplicac oes M oveis (Apps). Pode-se citar como exemplos destes avancos o lancamento de
processadores multicore para dispositivos m oveis e o amadurecimento das plataformas de
programac ao para sistemas m oveis Android [Pereira and Da Silva 2009]. Estes fatores,
combinados, criaram condic oes para o surgimento de uma nova categoria de aplicac oes:
a Coleta M ovel de Dados (CMD) [Rezende et al. 2010].
Entretanto, a criac ao de aplicac oes para coleta m ovel de dados continua exigindo
o trabalho de programadores, pois ainda e preciso programar os question arios eletr onicos.
Atualmente, essa e a principal limitac ao para a ampla utilizac ao de CMDs, pois nem toda
empresa possui recursos humanos ou nanceiros, para elaborar aplicac oes m oveis.
Para enfrentar ou reduzir estas limitac oes e, desse modo, contribuir para a am-
pla utilizac ao de ferramentas m oveis para Coleta de Dados, desenvolvemos o Projeto
Maritaca, que visa prover soluc oes tecnol ogicas abertas e infraestrutura para criac ao de
aplicac oes para Coleta M ovel de Dados (CMD). O nome Maritaca
1
vem do acr onimo
MARitaca Is a Tool to creAte Cellular phone Applications.

Este trabalho recebeu o apoio da FINEP, edital Telessa ude e Telemedicina, processo 04.11.0077.00,
refer encia 1488/10. Cabe mencionar os apoios recebidos por FAPESP, CNPq, IBOPE e FAP-UNIFESP,
que indiretamente colaboraram para a execuc ao deste projeto.
1
Maritaca e o nome popular utilizado para designar diversas esp ecies de aves psitaciformes, da famlia
Anais 1077
2. Trabalhos Relacionados
Existem algumas ferramentas com prop ositos similares aos do Maritaca. A ferramenta
App Inventor
2
, permite construir visualmente aplicativos para a plataforma Android.
Concentra-se no desenho passo-a-passo de elementos de interface, conectando-os aos res-
pectivos eventos. O diferencial positivo do projeto Maritaca em relac ao ao App Inventor
consiste em permitir o desenho mais simples e intuitivo das interfaces, isso e possvel
porque concentra-se em aplicac oes de CMD.
O Nokia Data Gathering
3
e um sistema para criac ao de question arios m oveis que,
colocados em um servidor na Internet, podem ser acessados pelos dispositivos m oveis
com acesso a rede, onde os dados s ao coletados e armazenados nos celulares e podem
ser transmitidos para um servidor. Recentemente, a soluc ao passou a ser distribuda como
software livre.
Um projeto similar que devemos citar e o DoForms
4
, um sistema para criac ao de
question arios m oveis multiplataforma, cuja proposta e semelhante ao Projeto Maritaca,
por em, e de c odigo fechado e possui limite de uso gr atis.
3. Funcionalidades do Sistema
O sistema permite usu arios construam aplicac oes para coleta de dados, que podem ser ins-
taladas em quaisquer dispositivos m oveis compatveis com Android 2.2, ou superior. No
dispositivo m ovel, a App permite a coleta de dados utilizando interfaces amig aveis, onde
os dados s ao armazenados no dispositivo m ovel at e serem transferidos para o servidor.
Para realizar a coleta n ao e necess ario que o usu ario esteja conectado ` a Internet.
A seguir s ao apresentados os principais passos para a utilizac ao da plataforma.
3.1. Passo-a-passo para utilizac ao da soluc ao
Os passos a seguir exemplicam a utilizac ao da plataforma:
1. O sistema est a disponvel emhttp://maritaca.unifesp.br. Para utiliz a-
lo, o usu ario necessita autenticar-se na tela inicial, o que pode ser realizado de duas
maneiras: (i) utilizando usu ario e senha registrados no sistema (ii) ou com uso de
OpenID [Recordon and Reed 2006].
2. Ap os a autenticac ao, e apresentada ao usu ario a tela principal do sistema, desti-
nada ao gerenciamento de question arios (Figura 1). A lista de question arios est a
organizada entre formul arios criados pelo pr oprio usu ario (parte superior) e for-
mul arios com ele compartilhados (parte inferior). H a ainda um menu com abas na
parte superior para o gerenciamento de grupos de usu arios.
3. Para criar um novo formul ario, basta pressionar o bot ao New Form, no canto in-
ferior esquerdo da tela. A Figura 2 ilustra a interface para criac ao e edic ao de
formul arios contendo tr es perguntas como exemplo. A interface utiliza contro-
les HTML5 arrast aveis (Drag and Drop), que permitem ao usu ario arrastar as
dos psitacdeos, g enero pionus. Esta simp atica ave foi escolhida como smbolo do projeto por sua capaci-
dade de adaptac ao a diversos biomas, podendo ser encontrada em quase todo o territ orio nacional.
2
http://appinventor.googlelabs.com/about
3
http://projects.developer.nokia.com/ndg/wiki
4
http://www.doforms.com/
1078 31
o
Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos SBRC 2013
Figura 1. Tela inicial de gerenciamento de formul arios.
componentes a serem utilizadas no question ario. O usu ario pode escolher um tipo
de pergunta que queira coletar dentre o conjunto de componentes disponveis na
caixa de ferramentas localizada no lado esquerdo da interface.
Figura 2. Editor de Formul arios, preenchido.
4. Uma vez criado o formul ario, o usu ario pode descarreg a-lo para um dispositivo
m ovel com sistema operacional Android. A instalac ao do aplicativo no dispositivo
m ovel e trivial. A Figura 3(a) mostra a tela de autenticac ao na aplicac ao m ovel. A
Figura 3(b) mostra o menu principal, a partir da qual inicia-se a coleta clicando-se
no bot ao Collect.
5. A Figura 4 mostra a interface que foi especicada como exemplo na Figura 2
renderizada automaticamente no dispositivo m ovel. Cada pergunta e mostrada em
uma tela a qual e organizada em duas partes: acima, com o ttulo do formul ario,
bot oes (ajuda e cancelar), e barra de progresso; e abaixo a quest ao em si. Os
controles de navegac ao (retornar e avancar) podem ser executados atrav es de
comandos touch.
6. A coleta de dados pode ser realizada in umeras vezes. Para coletar os dados n ao e
necess ario que o dispositivo m ovel esteja conectado ` a Internet, pois uma vez cole-
tados os dados, o usu ario pode conectar-se ` a Internet e enviar as coletas realizadas
para o servidor. Quando armazenados no servidor, os dados podem ser visualiza-
dos acessando-se a plataforma. Por exemplo, a Figura 5 ilustra a visualizac ao de
dados coletados com o formulario criado para este exemplo.
Anais 1079
(a) Tela de
autenticac ao
(b) Tela inicial
Figura 3. Aplicac ao m ovel
(a) Primeira quest ao, do
tipo texto.
(b) Segunda quest ao, do
tipo data.
(c) Terceira quest ao, do tipo
foto.
Figura 4. Perguntas renderizadas no dispositivo m ovel.
3.2. Os tipos de pergunta
Um question ario e composto por uma ou mais perguntas e cada pergunta pode ser de
diferentes tipos: texto, num erico, data, m ultipla escolha (radio button), selec ao m ultipla
(combo box e check bok), foto, audio, vdeo, localizac ao, c odigo de barra, porcentagem
(controle deslizante ou slider) e desenho. Implementaremos ainda outros tipos, pois uma
das caractersticas mais positivas da plataforma, gracas ao seu desenho modular, e a faci-
lidade para se criar e integrar ao sistema novas componentes.
O usu ario pode personalizar valores padr ao (default) para alguns tipos de campos
a serem coletados, congurar validac oes para os valores inseridos e denir uma ordem de
navegac ao entre as perguntas dependente dos valores inseridos.
3.3. Compartilhamento de dados
Atualmente, o sistema permite criar 3 classes de formul arios: privados, p ublicos e compar-
tilhados. O formul ario privado pode ser utilizado apenas pelo seu criador e o formul ario
p ublico pode ser visto por qualquer usu ario da plataforma. J a os formul arios comparti-
lhados podem ser de dois subtipos: hier arquico e social. No formul ario compartilhado
hier arquico, o seu criador pode convidar, por exemplo, os usu arios A e B, mas os dados
coletados por A n ao s ao visveis por B e vice-versa. Por sua vez, no formul ario compar-
tilhado social os usu arios A e B podem ver os dados coletados um pelo outro.
1080 31
o
Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos SBRC 2013
Figura 5. Editor de Formul arios, preenchido.
4. Arquitetura da Soluc ao
O projeto Maritaca substitui com vantagens os modelos de coleta tradicionais baseados
em l apis e papel. O desenvolvimento de um aplicativo de coleta m ovel de dados permite
o armazenamento de informac oes em meio eletr onico, o que facilita a manipulac ao das
informac oes, assim como o seu compartilhamento.
O projeto Maritaca foi desenvolvido como uma aplicac ao de nuvem, prevendo
sua utilizac ao como software como servico. Os dados coletados a partir de dispositivos
m oveis s ao armazenados na nuvem e s ao visualizados atrav es de um navegador web.
A vers ao atual do projeto encontra-se disponvel para utilizac ao em http:
//maritaca.unifesp.br. O c odigo fonte da soluc ao e sua documentac ao asso-
ciada est a disponvel, sob a licenca GPL3, em http://sourceforge.net/p/
maritaca.
Nesta sec ao ser a apresentada a arquitetura do projeto, suas componentes e o mo-
delo de integrac ao entre as componentes.
4.1. Componentes da Plataforma Maritaca
A Figura 6 apresenta as principais componentes da arquitetura da soluc ao em nuvem e
ilustra a relac ao entre essas componentes. A arquitetura e composta por:
Figura 6. Componentes da soluc ao em nuvem.
Servidor de Aplicac oes: a parte servidora do projeto utiliza o servidor de
aplicac oes JBoss onde hospedam-se os servicos e componentes Web. Toda a parte
servidora, exceto alguns scripts de manutenc ao, foram implementados em Java
utilizando o arcabouco Spring [Tate and Gehtland 2005]. Todos os webservices
implementados utilizam a abordagem de servicos RESTFul.
Editor de Formul arios: apesar de estar embutido na plataforma Web, o Editor de
Formul arios e uma aplicac ao Web independente, escrita em HTML5 e Ajax. Esta
componente gera como resultado um descritor de question ario, que e gravado
em formato XML.
Anais 1081
Componente m ovel: e uma aplicac ao Android que interpreta o arquivo XML
e gera as interfaces automaticamente. Trata-se de uma Engine de interpretac ao,
baseada no padr ao de projeto Interpreter [Gamma and Helm 1994].
Servidor de Dados Cassandra: componente para armazenamento escal avel de
dados estruturados, baseado no paradigma NO-SQL.
Sistema de arquivos Hadoop: um sistema de arquivos distribudo e escal avel
utilizado para armazenar dados n ao estruturados (imagens, audio, vdeo etc.).
4.2. Servidor de Aplicac oes
No m odulo servidor encontram-se os servicos e funcionalidades Web do projeto, dentre os
quais pode-se citar: armazenamento de dados estruturados e n ao estruturados (conte udo
multimdia e Apps), os servicos RESTFul utilizados para a comunicac ao entre o servidor
e o dispositivo m ovel, o editor de formul arios etc. O diagrama da Figura 6 mostra os
diferentes componentes e arcaboucos utilizados no projeto e ilustra a relac ao entre eles.
A interac ao entre o usu ario e a plataforma Web, via browser, e feita atrav es da
camada Web do sistema, que utiliza principalmente Spring MVC, JQuery e HTML5. A
interac ao entre dispositivos m oveis e a plataforma utiliza-se sempre de servicos RESTFul.
O desenho da arquitetura prev e a criac ao de inst ancias dos componentes do sis-
tema (JBoss, Cassandra e Hadoop) em um cluster computacional. O balanceamento de
carga de requisic oes web ser a implementado utilizando-se o m odulo mod JK do servidor
de p aginas Apache.
4.3. M odulo M ovel
O usu ario pode editar os question arios a partir de um navegador padr ao e, uma vez e-
ditado, o question ario pode ser preenchido a partir do dispositivo m ovel, onde os dados
cam temporariamente armazenados at e serem transferidos para o servidor.
O M odulo M ovel consiste em uma engine que traduz o descritor do question ario
(representado em formato XML) em uma hierarquia de objetos instanciados respons aveis
pela renderizac ao das interfaces e validac ao dos dados. O modelo computacional utilizado
para representar os question arios e a parte mais sosticada do componente m ovel e foi o
desenvolvimento tecnol ogico que viabilizou a soluc ao.
Figura 7. Arquitetura da an alise do XML usando o padr ao de projeto Interpreter
A t ecnica de mapeamento do XML em uma lista de objetos est a inspirada no
padr ao de projeto Interpreter [Gamma and Helm 1994] (vide Figura 7). A aplicac ao
m ovel e uma controladora de contexto, que sempre aponta para um objeto em uso, no
caso do Maritaca o objeto seria do tipo Question.
Para ser utilizada a partir do dispositivo m ovel, a aplicac ao m ovel requer que o
usu ario autentique-se no servidor, deste modo, certica-se que o usu ario tem autorizac ao
1082 31
o
Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos SBRC 2013
para coletar dados para aquele formul ario. Esse processo e feito utilizando o arcabouco
OAuth [Tassanaviboon and Gong 2011] sobre o protocolo HTTPS.
A Figura 8 ilustra os passos para a autenticac ao segundo o padr ao OAuth: (i) o
usu ario faz uma requisic ao de autorizac ao para o servidor, onde e redirecionado para uma
tela de autenticac ao; (ii) se o usu ario e autenticado com sucesso, gera-se um c odigo, esse
passo e chamado de conrmac ao da autorizac ao; (iii) com este c odigo, o usu ario gera
um token, que necessita ser renovado ap os um perodo; (iv) por m, de posse de um
token v alido para o formul ario, o usu ario pode coletar, salvar e visualizar os dados, onde
a transfer encia de dados e feita utilizando-se de servicos RESTFul.
Figura 8. Modelo de autenticac ao entre o componente M ovel e o Servidor utili-
zando OAuth.
A interpretac ao do XML foi implementada baseando-se no uso do arcabouco Sim-
ple
5
para a serializac ao e deserializac ao de arquivos XML. Isto e, este arcabouco converte
diretamente arquivos XML em objetos e vice-versa. A vantagem do uso deste arcabouco
e devido a simplicac ao do mapeamento entre o formato XML e o formato dos objetos,
simplicando a manutenc ao do c odigo e criac ao de novas componentes.
4.4. Formato do arquivo XML de integrac ao
O principal m etodo de integrac ao entre as componentes e o arquivo XML gerado pelo
Editor de Formul arios, a qual cont em as quest oes do formul ario representadas como tags.
Cada tag possui os seguintes atributos b asicos: id, next, previous, required, label, help e
type.
Alguns tipos de tag podem possuir estruturas conditions, utilizadas para denir a
navegac ao condicional entre as perguntas. A navegac ao entre as perguntas e denida no
r otulo condition, onde a resposta da pergunta atual e utilizada para determinar a pr oxima
pergunta a ser exibida. Por exemplo, considere a seguinte quest ao: Qual a sua idade?
Se a resposta for um valor inferior a 18 anos, a pr oxima quest ao poderia ser: Qual o
nome do seu respons avel? Caso contr ario, essa pergunta poderia ser omitida.
Alguns tipos de quest oes possuem validadores para os dados coletados. Por e-
xemplo, em uma quest ao num erica, pode-se denir limites mnimos e m aximos para as
entradas. Desse modo, em uma quest ao sobre a idade do entrevistado, os valor mnimos
e m aximos para as respostas podem ser denidos, respectivamente, como 0 e 100. Essa
validadac ao evita a coleta de dados errados.
4.5. Captura de dados n ao usuais: multimdia, localizac ao geogr aca etc.
Al em de prover a coleta de dados usuais, tais como textos e n umeros, a soluc ao per-
mite tamb em a coleta de dados n ao usuais, tais como multimdia (a udio, vdeo e
imagens) [da Conceic ao et al. 2008], informac oes de localizac ao geogr aca, desenhos e
5
Serializac ao para XML, mais informac oes em http://simple.sourceforge.net/.
Anais 1083
c odigos de barra etc. Em suma, o question ario poder a conter perguntas tais como: Qual a
sua localizac ao atual? Tire uma foto! Registre o audio!
4.6. Construc ao autom atica de aplicac oes
Sempre que um formul ario e salvo, o sistema gera um novo aplicativo Android (arquivo
em formato APK) e o armazena no sistema de arquivos distribudo Hadoop. Esse processo
de compilac ao e montagem leva alguns segundos, mas como e realizado em background
n ao afeta a percepc ao de usabilidade do usu ario. Essa n ao foi a primeira abordagem ado-
tada, inicialmente planejava-se criar uma unica aplicac ao Android na qual os descritores
XML seriam carregados. Entretanto, notou-se que esse m etodo dicultava o processo de
divulgac ao de aplicac oes e a manutenc ao das vers oes das Apps.
5. Descric ao da demonstrac ao planejada
Para apresentac ao do Projeto Maritaca e necess ario um computador com acesso ` a Internet
para confecc ao de um formul ario. Ap os criado o formul ario, e necess ario transferir a
aplicac ao gerada para um dispositivo m ovel com suporte a plataforma Android.
6. Conclus oes
Este trabalho apresentou o Projeto Maritaca, uma soluc ao aberta para a Coleta M ovel de
Dados. Iniciado a mais de quatro anos, o projeto evoluiu de um gerador autom atico de
aplicac oes para uma soluc ao completa que permite armazenamento e compartilhamento
de dados. O Maritaca busca resolver um problema pr atico: o elevado custo de produc ao
de sistemas m oveis. Esperamos que ele seja amplamente utilizado na resoluc ao de pro-
blemas cotidianos, contribuindo, assim, para a utilizac ao de sistemas m oveis por n ao es-
pecialistas. Atualmente, trabalhamos para que ele permita n ao apenas a congurac ao dos
question arios, mas tamb em das respostas. Isto e, o usu ario poder a congurar os dados a
serem coletados e tamb em a forma como estes dados ser ao exibidos.
Refer encias
da Conceic ao, A., Pereira, R., Rezende, J., Silva, B., Correia, R., Domingues, H., Kon, R., and
Kon, F. (2008). Projeto Borboleta: Ferramentas M oveis e Multimdia para Atenc ao B asica
Domiciliar. In Congresso Brasileiro de Inform atica em Sa ude. Artigo curto.
Gamma, E. and Helm, R. (1994). Design Patterns. Addison-Wesley Professional.
Pereira, L. and Da Silva, M. (2009). Android para desenvolvedores. Brasport.
Recordon, D. and Reed, D. (2006). OpenID 2.0: a platform for user-centric identity management.
In Proceedings of the second ACM workshop on Digital identity management, pages 1116,
New York, NY, USA. ACM.
Rezende, J. V. P., Silva, B. N. M., and da Conceic ao, A. F. (2010). Plataforma para desenvolvi-
mento simples e exvel de question arios para Coleta M ovel de Dados (CMD). In I Workshop
de Pesquisa e Desenvolvimento em Software Livre (WPeDSL), Natal-RN.
Tassanaviboon, A. and Gong, G. (2011). OAuth and ABE based authorization in semi-trusted
cloud computing: aauth. In Proceedings of the second international workshop on Data intensive
computing in the clouds, DataCloud-SC 11, pages 4150, New York, NY, USA. ACM.
Tate, B. and Gehtland, J. (2005). Spring: a developers notebook. OReilly Media, Incorporated.

Potrebbero piacerti anche