Professional Documents
Culture Documents
Departamento de Computao
Mestrado em Cincia da Computao
Dissertao de Mestrado
Fortaleza-CE, 2005
da
Dissertao
devidamente
RESUMO
A heterogeneidade dos dispositivos mveis e a integrao com as tecnologias de
comunicao sem fio impem desafios para o desenvolvimento de aplicaes e de servios,
dos quais podemos citar os seguintes: a descrio, independente de dispositivo e
plataforma, da interface com usurio; a adaptao do contedo acessado pelas aplicaes; e
o desenvolvimento de aplicaes multi-plataformas.
Diversos trabalhos foram propostos para solucionar cada um desses desafios.
Contudo, no foi encontrada na literatura nenhuma abordagem satisfatria que permitisse a
um engenheiro de software construir aplicaes multi-plataformas utilizando uma descrio
inicial da interface e dos seus dados, de forma que essa descrio seja independente de um
dispositivo especfico ou de uma plataforma de programao. Ressalta-se, ainda, que
nenhuma soluo facilita a descrio da aplicao e a sua integrao com as arquiteturas de
adaptao de contedo.
Portanto, necessria a criao de um ambiente para integrar e aprimorar essas
solues existentes para os desafios expostos. Esta dissertao prope ento um ambiente
para o desenvolvimento de aplicaes para dispositivos mveis composto pelos frameworks
XFormUI, Requisitor, Mobile Adapter e MobAC e pela ferramenta de gerao de cdigo
User Interface Generator (UIG). Esse ambiente propicia o desenvolvimento rpido de
aplicaes multi-plataformas e adaptveis descrio e oferece mecanismos eficientes para
captura, gerenciamento e manipulao dos perfis do dispositivo, do usurio e do contexto
em que executam, o que auxilia a construo de Mobile Application Servers (MAS) para
realizar adaptao de contedo.
Um estudo de caso, que consiste em um sistema para adaptao de imagens
fotogrficas tambm apresentado para ilustrar como os frameworks e a ferramenta UIG
podem ser utilizados para construir sistemas complexos para dispositivos mveis.
iv
ABSTRACT
The heterogeneity of mobile devices and their integration with wireless
communication technologies impose challenges for the development of applications and
services, such as: device and platform independent user interface description; content
adaptation for mobile applications; and development of multi-platform applications.
Several works have been proposed to solve these challenges. However, no satisfactory
approach has been found in the literature that allows a software engineer to specify multiplatform applications using an initial description of their interface and data as well as using
an independent description of a specific device or a programming platform. Moreover, it
has not been found in the literature solutions that facilitate the description of an application
and its integration with content adaptation architectures.
Therefore, it is necessary the creation of an environment to integrate and improve
these existing solutions. This master thesis proposes an environment for mobile device
applications composed by the XFormUI, Requisitor, Mobile Adapter and MobAC
frameworks and the User Interface Generator (UIG), which is a code generation tool. This
environment offers the fast development of multi-platform and description adaptable
applications. Moreover, it provides efficient mechanisms for capture, management and
manipulation of device, user and context profiles. These mechanisms help the construction
of Mobile Application Server (MAS) that executes content adaptation.
A case study, which consists in a system for adaptation of photographic images, is
also presented in this work to illustrate how the frameworks and the UIG tool is used to
build complex systems for mobile devices.
NDICE
RESUMO.............................................................................................................................IV
ABSTRACT ......................................................................................................................... V
LISTA DE FIGURAS..................................................................................................... VIII
LISTA DE TABELAS........................................................................................................IX
LISTA DE ABREVIATURAS E SIGLAS ........................................................................ X
1.
INTRODUO .......................................................................................................... 12
1.1.
1.2.
1.3.
2.
4.
FRAMEWORK XFORMUI...................................................................................... 49
4.1. XFORMS ................................................................................................................ 49
4.2. ANLISE DE DOMNIO ............................................................................................ 51
4.3. FRAMEWORK XFORMUI ......................................................................................... 53
4.3.1.
MainXForm .................................................................................................. 55
vi
4.3.2.
Formulrios .................................................................................................. 56
4.3.3.
Validaes e Restries ................................................................................ 59
4.3.4.
XFormItem e Componentes .......................................................................... 60
4.3.5.
Hot Spots e Classes do XFormUI ................................................................. 64
4.4. CONCLUSO .......................................................................................................... 65
5.
6.
7.
8.
CONCLUSO........................................................................................................... 108
8.1.
8.2.
9.
vii
LISTA DE FIGURAS
Figura 1 - Viso geral da codificao da aplicao que executa no dispositivo mvel...... 15
Figura 2 - Viso geral do processo de construo de MAS Adaptativos............................. 16
Figura 3 - Processo de mapeamento das aplicaes ( extrado de [27] ) ........................... 22
Figura 4 - Estrutura de uma aplicao UIML (extrado de [14]) ....................................... 27
Figura 5 - Arquitetura NAC, retirado de [12] ..................................................................... 32
Figura 6 - Arquitetura proposta em [11] ............................................................................. 33
Figura 7 - Viso Geral das tecnologias Java da Sun [62]................................................... 38
Figura 8 - Adaptao ao dispositivo oferecida pela plataforma J2ME MIDP.................... 40
Figura 9 - Cdigo em XForms de uma tela de login............................................................ 50
Figura 10 - Visualizao da tela de login no X-Smiles [15]................................................ 51
Figura 11 - Framework XFormUI ....................................................................................... 55
Figura 12 - Telas dos componentes nas plataformas........................................................... 64
Figura 13 - Documento UAProf do P900 retirado do site da Sony Ericsson [97].............. 81
Figura 14 - Viso geral do Mobile Adapter e do MobAC.................................................... 82
Figura 15 - Viso geral do framework Mobile Adapter....................................................... 84
Figura 18 - Framework Requisitor ...................................................................................... 87
Figura 19 Cdigo que utiliza o framework Requisitor ..................................................... 89
Figura 16 - Framework MobAC e a interao com framework Requisitor......................... 90
Figura 17 - Documento CC/PP gerado durante uma requisio no dispositivo P900........ 90
Figura 20 - Viso geral do M-Flog...................................................................................... 93
Figura 21 - Telas da aplicao no XSmiles ......................................................................... 94
Figura 22 - Tela de login nas trs plataformas.................................................................... 96
Figura 23 - Um fluxo de execuo da aplicao cliente do M-Flog.................................... 98
Figura 24 Classes que participam dos processos de adaptao do M-Flog .................. 100
Figura 25 - Caminho Lgico da Adaptao de Textos ...................................................... 101
Figura 26 - Caminho Lgico da Adaptao de Imagens ................................................... 103
Figura 27 - Adaptao de imagens nos emuladores dos dispositivos................................ 104
Figura 28 - Grficos do Cenrio IEEE 802.11b................................................................ 105
Figura 29 - Grficos do cenrio GPRS com o A388.......................................................... 106
Figura 30 - Grficos da simulao no cenrio EDGE ...................................................... 106
viii
LISTA DE TABELAS
Tabela 1 Resumo comparativo de solues para descrio da interface com usurio .... 29
Tabela 2 Resumo comparativo dos trabalhos de adaptao de contedo ........................ 34
Tabela 3 Resumo comparativo entre as plataformas de programao ............................ 44
Tabela 4 - Cdigos do MainXForm nas plataformas........................................................... 56
Tabela 5 - TextArea, Triggers e o showAlert() em J2ME MIDP 2.0 ................................... 58
Tabela 6 - Cdigo do TextArea apresentado na Tabela 5 usando as classes de validao 60
Tabela 7- Restries de filtragem e componentes instanciados nas plataformas................ 63
Tabela 8 - Classes que compem o XFormUI e seus mapeamentos nas plataformas ......... 65
Tabela 9 - Cdigos do XML Schema da tela de login e do CSS usado nos formulrios .... 95
Tabela 10 Cdigo do formulrio em XForms e o correspondente em XFormUI ............. 96
Tabela 11- Caractersticas dos dispositivos testados ........................................................ 103
ix
CC/PP
CLDC
CSS
DM
Dispositivo Mvel
EDGE
GPL
GPRS
GSM
HTML
IDE
IEEE
IP
Internet Protocol
J2EE
J2ME
J2SE
KVM
LAN
LGPL
MAS
MIDP
MobAC
NAC
PDA
RTP
SDK
SMIL
SQL
UAProf
UID
UIG
UPnP
VoiceXML
W3C
WAP
WLAN
WML
WTK
Wireless Toolkit
XHTML
XML
XSL
XSLT
xi
Captulo 1
_______________________________________________________________________________________________________________________________________
1. Introduo
Esta dissertao apresenta um ambiente para desenvolvimento de aplicaes multiplataforma e adaptativas para dispositivos mveis. Neste captulo, apresentada na Seo
1.1 uma viso geral sobre o desenvolvimento de aplicaes para dispositivos mveis e a
caracterizao do problema que gerou a motivao deste trabalho. Na Seo 1.2, so
descritos os objetivos principais da dissertao, e, por fim, na Seo 1.3 apresentada a
estrutura na qual est organizado o restante do trabalho.
encontrados
na
pesquisa
bibliogrfica
realizada
nesta
dissertao
_______________________________________________________________________________________________________________________
12
Captulo 1
_______________________________________________________________________________________________________________________________________
Algumas dessas
solues utilizam proxys ou gateways para realizar a tarefa de adaptao, como em [10],
[11] e [12]. Contudo, esses trabalhos concentram toda a deciso da adaptao em uma
arquitetura geral, podendo no ser satisfatria para certos tipos de aplicaes que no
consistam na simples requisio de um contedo Web. Alm disso, essas solues no
apresentam formas eficientes de captura e gerenciamento dos perfis do usurio e do
dispositivo.
Conforme exposto anteriormente, existem solues para os desafios citados no
desenvolvimento de aplicaes para DMs. Entretanto, no foi encontrada na literatura
nenhuma abordagem satisfatria que permita a um engenheiro de software construir
aplicaes multi-plataformas utilizando uma descrio inicial da interface e dos seus dados,
de forma que essa descrio seja independente de um dispositivo especfico ou de uma
plataforma de programao. Vale ressaltar ainda que nenhuma soluo vislumbra
simultaneamente a descrio da aplicao e a sua integrao com as arquiteturas de
_______________________________________________________________________________________________________________________
13
Captulo 1
_______________________________________________________________________________________________________________________________________
1.2. Objetivos
Na Seo 1.1, foi destacada a necessidade de integrar e aprimorar as solues
existentes para os desafios no desenvolvimento de aplicaes para DMs. Com o objetivo
principal de suprir essa necessidade, este trabalho apresenta um ambiente para a
programao em dispositivos mveis a fim de facilitar, para o engenheiro de software, o
desenvolvimento de aplicaes multi-plataformas e adaptativas.
Esse ambiente composto pelos frameworks XFormUI, Mobile Adapter, Mobile
Adapter Cliente (MobAC), Requisitor e pela ferramenta de gerao de cdigo User
Interface Generator (UIG). Com esse ambiente, o engenheiro de software pode construir
mais rapidamente tanto aplicaes que executam somente no dispositivo, como aplicaes
que trocam dados com servidores remotos, denominados Mobile Application Servers
(MAS) [74]. Nos dois tipos de aplicaes, o ambiente permite a construo de prottipos
utilizando uma descrio independente de uma plataforma de programao. E no caso da
aplicao que acessa um MAS, o ambiente prov um conjunto de frameworks que auxiliam
a construo do MAS e do cliente que executa no dispositivo mvel.
Para atingir o objetivo de construir aplicaes multi-plataformas com interfaces
adaptveis descrio, o ambiente proposto permite ao engenheiro descrever os
formulrios da aplicao, suas validaes e o estilo das interfaces em XForms [15]. Com
esses documentos, o engenheiro utiliza a ferramenta, User Interface Generator (UIG), para
produzir cdigo em uma plataforma de programao. Esse cdigo gerado utiliza o
framework multi-plataforma XFormUI para a composio dos formulrios, o que torna o
prottipo da aplicao multi-plataforma. Ao final do processo de gerao, o engenheiro
complementa a codificao acrescentando a lgica de negcio inerente aplicao. Na
Figura 1, uma viso geral desse processo de codificao apresentado.
_______________________________________________________________________________________________________________________
14
Captulo 1
_______________________________________________________________________________________________________________________________________
Nos casos em que o engenheiro precisa criar aplicaes que acessam um MAS, o
ambiente fornece dois frameworks: Mobile Adapter e MobAC. O Mobile Adapter facilita a
construo de MAS adaptativos, pois esse framework prov de forma eficiente informaes
sobre os perfis do dispositivo, do contexto e do usurio que acessa o MAS. O MobAC
permite a construo das aplicaes clientes que executam no dispositivo mvel e acessam
os MAS construdos com o Mobile Adapter.
Na Figura 2, apresentada uma viso geral do processo de construo dos MAS
adaptativos usando os frameworks propostos. Para a construo da aplicao cliente, o
engenheiro utiliza o cdigo dos formulrios gerados pela UIG (1) e codifica a integrao
com o MAS usando o framework MobAC (2). Na construo do servidor, o engenheiro
codifica o MAS utilizando o Mobile Adapter (I) e constri os pacotes de adaptao de
contedo baseados nas informaes fornecidas pelo framework (II). Ao final do processo, o
engenheiro construiu uma aplicao multi-plataforma adaptvel a descrio para DMs que
capaz de coletar informaes dinmicas sobre o dispositivo e envi-las ao MAS. Alm
disso, o MAS construdo pode recuperar as informaes estticas do dispositivo e do
usurio e as caractersticas dinmicas do contexto, o que possibilita a realizao da
adaptao do contedo requisitado pela aplicao do DM.
_______________________________________________________________________________________________________________________
15
Captulo 1
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
16
Captulo 1
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
17
Captulo 2
_______________________________________________________________________________________________________________________________________
18
Captulo 2
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
19
Captulo 2
_______________________________________________________________________________________________________________________________________
2.2.1.
Em [27], descrita uma arquitetura para a proviso de adaptao para aplicaes mveis
em ambientes colaborativos heterogneos. Um ambiente colaborativo caracterizado pela
existncia de vrios usurios colaborando e interferindo sobre uma determinada coleo de
objetos ou de dados. No caso de [27], as aplicaes executam em diferentes dispositivos e
devem ser capazes de acessar, interferir e perceber alteraes do ambiente colaborativo.
Os autores identificam trs requisitos para garantir a adaptao nesses ambientes: a
descrio, independente de dispositivo, da interface da aplicao que possa ser facilmente
mapeada para uma implementao real; a adaptao dinmica da interface com usurio,
baseada em mudanas contextuais, tais como, alteraes no interesse do usurio ou na
_______________________________________________________________________________________________________________________
20
Captulo 2
_______________________________________________________________________________________________________________________________________
21
Captulo 2
_______________________________________________________________________________________________________________________________________
2.2.2.
ICrafter: A Framework for Ubiquitous Computing
Environments
Em [21], apresentado o ICrafter, um framework para o desenvolvimento de servios
e de suas interfaces com usurio para uma categoria de ambientes ubquos, os espaos
interativos (i.e., interative workspaces). Um espao interativo um espao fsico rico em
tecnologia. Ele pode conter computadores interconectados (e.g., desktops, laptops,
handhelds.), dispositivos de uso geral (e.g., scanners, impressoras) e dispositivos de I/O
(e.g., projetores, microfones, alto-falantes). Nesses espaos interativos, os usurios,
utilizando os seus dispositivos, podem interagir com o ambiente e com outros usurios para
_______________________________________________________________________________________________________________________
22
Captulo 2
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
23
Captulo 2
_______________________________________________________________________________________________________________________________________
2.2.3.
2.2.4.
XML-based unified user interface system under J2EE
architecture
Em [30], apresentada uma arquitetura para o desenvolvimento de aplicaes para
internet. A arquitetura projetada para prover diferentes visualizaes de dados e servios
contidos em um servidor Web, permitindo o acesso a esses servios por diferentes clientes
_______________________________________________________________________________________________________________________
24
Captulo 2
_______________________________________________________________________________________________________________________________________
(e.g., PCs, PDAs). A arquitetura, intitulada de XML-Based Unified User Interface System,
dividida em trs camadas: a cliente, que possui um navegador com suporte a linguagens de
marcao WEB (e.g., XHTML); a middlelayer, que contm a lgica de programao; e a
camada de dados na qual esto as bases de dados legadas ou os bancos de dados. A
arquitetura proposta para ser desenvolvida utilizando J2EE [51], tecnologia Java para
servidores.
As aplicaes devem ser desenvolvidas utilizando J2EE e o acesso aos dados deve ser
realizado com XML. Documentos XML so utilizados na comunicao com qualquer base
de dados, inclusive as legadas. Para realizar essa operao, sugerida a criao do XML
DB Converter, uma camada da arquitetura responsvel por mapear os dados contidos nos
documentos XML, provenientes da aplicao, em um formato conhecido pelos banco de
dados (e.g., inseres em SQL). O mapeamento foi implementado de XML para tabelas
cujos relacionamentos eram um para um.
A arquitetura sugere que a interface das aplicaes seja descrita tambm em XML e
que conversores devem ser escritos para mapear essa descrio em uma linguagem de
marcao aceita pelos navegadores dos computadores ou dos PDAs (e.g., XHTML, WML),
assim, a arquitetura permite adaptao, em tempo de execuo, descrio e a classes de
dispositivos.
Na arquitetura so apresentados como trabalhos futuros: o desenvolvimento de uma
linguagem para descrever as aplicaes e a construo de conversores para linguagens de
marcao (e.g., HTML, WML).
2.2.5.
25
Captulo 2
_______________________________________________________________________________________________________________________________________
2.2.6.
26
Captulo 2
_______________________________________________________________________________________________________________________________________
2.2.7.
Resumo comparativo
27
Captulo 2
_______________________________________________________________________________________________________________________________________
III
AAUC
Aplicaes para
ambientes
colaborativos
PockectSpace e
J2SE com 3D
interactors
IV
II
ICrafter
Aplicaes para
espaos
interativos
VoiceXML,
HTML e SUIML
UIs criados pelo
engenheiro de
software para
cada servio do
espao interativo
-
UID
Aplicaes com
formulrios
MAB
Aplicaes com
formulrios
UIG
Aplicaes com
formulrios
WML
WML e J2ME
MIDP 1.0
Listas, Textos,
Formulrios com
campos de entrada
de dados e datas
Superwaba, J2ME
MIDP 1.0 e 2.0
10 componentes
do XForms e o
image do XHtml
O engenheiro
cria os
componentes
UIO de entrada
de dados
-
Cascading
Style Sheets)
VI
VII
Uma ao em um
interactor reflete
em uma mudana
no modelo
compartilhado
A aplicao no
PDA exige o
PockectSpace
-
Uma ao em um
UI invoca um
servio no
servidor
Passagem de
parmetros entre
formulrios
SUIML
Interpreter para
gerao em
SUIML
-
Ferramenta para
definies dos
formulrios e da
interao entre eles
para definio de
cores e atributos
para definir
alinhamento
Uso de XML
Schema para
definio da
validao da
entrada de dados
-
Plugin para o
Eclipse que
facilita a
configurao da
gerao de cdigo
_______________________________________________________________________________________________________________________
28
Captulo 2
_______________________________________________________________________________________________________________________________________
VIII
IX
A arquitetura
adapta o modelo
em relao
visualizao
XSLT prO engenheiro cria
estabelecidos para
templates para
a transformao
mapear o
resultado dos
do XML
servios nos UIs
O engenheiro
escreve um
UIM com as
regras de
mapeamento
A ferramenta
contm os
mapeamentos
definidos
gerao de cdigo
O cdigo gerado
facilmente
integrvel ao
MobAC
XSLT prestabelecidos para
a transformao
do XML
_______________________________________________________________________________________________________________________
29
Captulo 2
_______________________________________________________________________________________________________________________________________
chamada em [12], de adaptao semntica. Essa pode considerar inclusive a lngua materna
do usurio para converter as informaes.
As estratgias para adaptao de contedo podem ser divididas em:
Nesse tipo de
KODAMA [35] e o
CONSORT [39] .
2.3.1.
Adaptation d'une application multimdia par un code
Mobile
No trabalho [10], so descritas as vantagens de utilizar adaptao de contedo atravs de
proxys. Dentre as vantagens, so citadas as seguintes: a adequao das informaes ao
dispositivo e a diminuio do trfego de informao entre o proxy e o DM que, na maioria
das vezes, utiliza uma conexo sem fio instvel e de baixa largura de banda.
No trabalho, uma arquitetura para adaptao de vdeo apresentada. Um proxy
usado para intermediar e adaptar um stream de vdeo de acordo com as dimenses da tela
do dispositivo, consistindo, de acordo com as definies de adaptao descritas na Seo
2.1, em uma adaptao de contedo, em tempo de execuo, ao dispositivo. O proxy
utiliza HTTP para se comunicar com o servidor no qual se encontra o vdeo requisitado e
utiliza RTP (i.e., Real Time Protocol) para entregar o vdeo ao dispositivo mvel. Durante a
converso, o proxy converte o vdeo de MPEG para o formato H.263 e reduz as imagens
brutas que compem o vdeo, assim como pode modificar o nmero de quadros por
_______________________________________________________________________________________________________________________
30
Captulo 2
_______________________________________________________________________________________________________________________________________
2.3.2.
_______________________________________________________________________________________________________________________
31
Captulo 2
_______________________________________________________________________________________________________________________________________
2.3.3.
Em [11], apresentada uma arquitetura geral para adaptao de contedo multimdia Web
utilizando um mdulo cliente para monitoramento e realizao de tarefas de descompresso
e um gerenciador de adaptao localizado em um servidor proxy. Esse gerenciador de
adaptao repassa as requisies recebidas para os mdulos responsveis pelas adaptaes
especficas de um servio.
No trabalho, mdulos, parmetros e estratgias para a realizao de adaptao de
imagem, vdeo e udio so definidos. Na Figura 6, ilustrada a arquitetura proposta em
[11], na qual um mdulo cliente de adaptao capaz de monitorar e armazenar
informaes sobre as preferncias do usurio e informaes sobre o dispositivo. Essas
informaes so enviadas em cada requisio da aplicao ao gerenciador de adaptao
localizado no servidor. Esse servidor, por sua vez, repassa as informaes para o mdulo de
_______________________________________________________________________________________________________________________
32
Captulo 2
_______________________________________________________________________________________________________________________________________
adaptao responsvel pelo servio, por exemplo, no caso de requisio de um vdeo, ela
repassada ao mdulo de adaptao de vdeo.
O trabalho apresenta a simulao da adaptao de stream de vdeo baseada nas
mudanas da banda passante da simulao. O que consiste em uma adaptao de
contedo, em tempo de execuo, ao contexto. Contudo, as formas de adquirir a
informao necessria para realizar a adaptao no so apresentadas.
2.3.4.
Resumo Comparativo
33
Captulo 2
_______________________________________________________________________________________________________________________________________
Adaptation
par un code
mobile
Aplicaes
multimdia Web
II
III
IV
Streams de Vdeo
VI
O vdeo
adaptado pelo
proxy para as
dimenses do
dispositivo
NAC
Mobile
Computing
Mobile Adapter
Aplicaes
Aplicaes multimdia Mobile Application Servers
multimdia para
para Web
(MAS)
Web
Um monitor no
Um monitor no
Um monitor no dispositivo
dispositivo captura dispositivo captura as
captura as caractersticas
as caractersticas
caractersticas e envia dinmicas, o identificador do
dinmicas e os
usurio e a URI do
a cada requisio
identificadores dos
documento UAProf que
perfis do usurio e
descreve o dispositivo
do dispositivo
Utiliza CC/PP para
Utiliza CC/PP para descrio
descrio dos perfis
dos perfis do usurio e
usando os
UAProf para descrio das
caractersticas estticas do
vocabulrios UPS
dispositivo
Um simulador
O MobAC implementado
executa em Pocket
em Superwaba, Personal
Profile, J2ME MIDP 1.0 e
PC
2.0
Documentos SMIL Imagens, Streams de
Recursos estticos (e.g.
e HTML
udio e de vdeo.
imagens, texto)
Extrao de
Streams de Vdeo so As estratgias de adaptao
contedo e
adaptados banda
so delegadas ao MAS
converso de
passante da simulao
formatos de HTML
para WML
2.4. Concluso
Neste captulo, foram apresentadas arquiteturas de adaptao de contedo e solues
para a construo de aplicaes adaptveis descrio. No caso das arquiteturas de
adaptao de contedo, os trabalhos no apresentam formas eficientes de captura,
manipulao e gerenciamento dos perfis do dispositivo, do contexto e do usurio, o que
dificulta a construo de sistemas reais que realizem adaptao de contedo.
Os trabalhos para a construo interfaces com usurio adaptveis descrio
restringem os tipos de aplicaes que podem ser construdas. E, em certos casos, exigem do
engenheiro software a escrita das regras de mapeamento e dos componentes de interface
com usurio. No caso do MAB, existem poucos componentes grficos para a construo
dos formulrios.
_______________________________________________________________________________________________________________________
34
Captulo 2
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
35
Captulo 3
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
36
Captulo 3
_______________________________________________________________________________________________________________________________________
3.1.1.
J2ME
Java 2 Mobile Edition (J2ME) [43] uma coleo de tecnologias e especificaes que
foram projetadas pela Sun Microsystems[tm] para o desenvolvimento de aplicaes para
dispositivos de pequeno porte, especialmente sem fio. J2ME utiliza a linguagem de alto
nvel Java que foi projetada para executar independentemente de um sistema operacional
especfico e sintaticamente semelhante ao C++. As especificaes do J2ME so divididas
em configuraes (i.e., Configurations) e perfis (i.e., Profiles). O conjunto perfilconfigurao determina quais as funcionalidades disponveis para uma aplicao e a forma
_______________________________________________________________________________________________________________________
37
Captulo 3
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
38
Captulo 3
_______________________________________________________________________________________________________________________________________
O MIDP construdo sobre a especificao CLDC, como pode ser visto na Figura 7.
A unidade bsica de um programa MIDP um Midlet. Um Midlet executa no dispositivo
em um ambiente de execuo chamado de MidletSuite que limita as permisses de acesso
do Midlet ao dispositivo, semelhante ao mecanismo de sandbox dos Applets [62]. O MIDP
adiciona APIs com diversas funcionalidades, tais como: armazenamento de dados
permanentes, comunicao e interface com o usurio.
O MIDP foi projetado inicialmente para executar em celulares e pagers. Entretanto, j
existem implementaes para PDAs como a mquina virtual MIDP/CLDC para PalmOS da
IBM [63]. O MIDP possui duas verses: a 1.0, que possui muitas limitaes dos
componentes visuais e a 2.0, com maior quantidade de componentes e que executa sobre o
CLDC 1.1. As seguintes APIs esto presentes no MIDP:
javax.microedition.lcdui,
que
apresenta
um
conjunto
de
classes
para
para armazenamento de
dados permanentes;
39
Captulo 3
_______________________________________________________________________________________________________________________________________
40
Captulo 3
_______________________________________________________________________________________________________________________________________
disponibilizam SDKs com emuladores de modelos comerciais que podem ser integrveis ao
WTK.
Existem verses distintas do Wireless Toolkit e dos SDKs dos fabricantes para MIDP
1.0 e MIDP 2.0. Uma aplicao MIDP 1.0 pode executar em um dispositivo MIDP 2.0,
contudo o contrrio no possvel. E na maioria dos dispositivos, no existe a possibilidade
de realizar atualizao das mquinas virtuais para suportar a nova verso do MIDP.
Existem ambientes de desenvolvimento completos, os IDEs, com os quais o
engenheiro de software pode escrever, testar e depurar aplicaes em um nico ambiente.
Um bom exemplo de um IDE completo Sun Java[tm] Studio Mobility [79], da prpria
Sun. Outra IDE bastante utilizada o ambiente Eclipse [37] que atravs do uso do plugin
eclipseme [78] oferece todo o processo de desenvolvimento: edio, compilao,
depurao, pr-verificao, empacotamento e emulao no WTK e nos SDKs dos
fabricantes.
Neste trabalho, iremos considerar o J2ME MIDP 2.0/CLDC 1.1 e J2ME MIDP
1.0/CLDC 1.0 como plataformas distintas, j que o MIDP 2.0 apresenta diferenas
significativas, como mencionadas anteriormente, em relao ao MIDP 1.0 e exige uma
nova mquina virtual e uma ferramenta distinta para compilao.
3.1.2.
Superwaba
41
Captulo 3
_______________________________________________________________________________________________________________________________________
waba.fx, que engloba a classe Graphics para desenhos e a classe Color para
mudana de cores;
waba.sys, com classes que oferecem uma interface com o sistema operacional;
42
Captulo 3
_______________________________________________________________________________________________________________________________________
3.1.3.
_______________________________________________________________________________________________________________________
43
Captulo 3
_______________________________________________________________________________________________________________________________________
Critrio
MIDP 1.0
MIDP 2.0
Superwaba
Executa em Palm OS
SIM
SIM
SIM
Executa em Windows CE
NO
NO
SIM
Na maioria dos
modelos a partir de
2005
S em alguns modelos
Symbian OS
Executa em celulares
Interface Adaptvel ao
dispositivo
SIM
Custos
Documentao disponvel
Acesso a arquivos do
sistema
Suporte a TCP/IP
Suporte a IrDA
Depende do
engenheiro de
software
SIM
Mquinas virtuais so
pagas pelos
fabricantes
Livros, sites e fruns
Depende da licena
Restrita ao site e aos
fruns
NO
SIM
S HTTP
HTTP e Sockets
HTTP e Sockets
NO
Depende do
dispositivo
SIM
Formato BMP na
verso GPL e PNG,
GIF e JPG na verso
LGPL
Suporte a imagens
Formato PNG
Controle do layout
Os componentes so
adicionados um por linha
Controle de
alinhamento e adio
de componentes
Posicionamento
relativo dos
componentes
NO
S nos componentes
CustomItems
SIM
NO
SIM
SIM
18 componentes e
componentes
customizveis
Mais 100
componentes
disponveis na API e
no site
Quantidade de
componentes
12 componentes
Como pode ser visto, cada uma delas atende a uma classe de dispositivos e
apresentam funcionalidades distintas, principalmente em relao composio das
interfaces grficas. Alm disso, a estrutura do cdigo da aplicao varia de J2ME MIDP
para Superwaba, o que dificulta mais ainda a portabilidade de aplicaes entre as
plataformas.
_______________________________________________________________________________________________________________________
44
Captulo 3
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
45
Captulo 3
_______________________________________________________________________________________________________________________________________
sobre o domnio para o qual o framework proposto. O objetivo principal dessa fase
capturar os requisitos do domnio, encontrar os pontos comuns para compor o framework e
identificar os pontos de flexibilizao (i.e., os Hot spots).
classes a partir das classes disponveis (framework caixa branca) ou escolhe classes
fornecidas na estrutura (framework caixa preta) para criar as aplicaes.
Em geral, como frameworks focam na reutilizao de boas solues, outro conceito
de engenharia de software, os padres de software, so utilizados durante a fase de projeto
de um framework. De acordo com Coplien [68], um padro um pedao de literatura que
descreve um problema de projeto e uma soluo geral para o problema num contexto
particular. Desta forma, um padro uma entidade que documenta uma soluo, um
problema recorrente e o contexto em que se deve aplicar tal soluo.
Padres de software so utilizados em diferentes estgios do desenvolvimento de um
software. E podem ser classificados de acordo como a fase em que so aplicados (e.g.
padres de anlise, padres de projeto) [19]. Nesta dissertao, diversos padres de projeto
foram utilizados para a construo dos frameworks e da ferramenta de gerao de cdigo do
ambiente proposto. Alm de facilitar a construo dos frameworks, os padres de projeto
so tambm adequados para document-los, pois o uso de padres permite o entendimento
do framework, sem forar o conhecimento pleno do seu cdigo fonte [45].
Alm de permitir o reuso de boas solues, frameworks so utilizados tambm para
abstrair para o engenheiro de software como APIs especficas de uma plataforma de
programao so utilizadas para realizar tarefas comuns. Por exemplo, uma implementao
de um framework caixa preta pode conter classes que usam APIs de uma plataforma de
programao, porm, o engenheiro de software ao instanciar essas classes no sabe quais
APIs so usadas e nem como elas so acessadas.
Assim, caso um framework seja implementado em diferentes plataformas de
programao, os cdigos das aplicaes que utilizam o framework podero executar nas
_______________________________________________________________________________________________________________________
46
Captulo 3
_______________________________________________________________________________________________________________________________________
diferentes plataformas. Desta forma, frameworks podem ser construdos para abstrair
funcionalidades como construo de interface grfica, persistncia, comunicao de dados e
segurana.
Uma outra forma de realizar essa abstrao seria o uso de middlewares que
oferecessem s aplicaes essas funcionalidades. Esses middewares seriam implementados
nos diferentes dispositivos mveis e poderiam ser requisitados pelas aplicaes [60].
Contudo, o uso de middlewares pode no ser possvel devido pequena quantidade de
memria de alguns dispositivos, alm do desperdcio de espao e do atraso no tempo de
execuo que os middlewares podem causar, como foi comprovado no trabalho [61].
Portanto, frameworks podem ser mais adequados para realizar a abstrao das APIs, alm
de permitir a sua alterao e extenso por parte do engenheiro de software.
Dentro desse contexto, um framework de persistncia de dados para DMs, o
FramePersist, foi proposto em [1] com objetivo de prover a transparncia do
armazenamento de objetos para a aplicao e fornecer um mecanismo eficiente de busca de
objetos. Na construo do FramePersist, formas de armazenamento de dados das
plataformas J2ME Personal Profile, J2ME MIDP e em Superwaba foram estudadas e
generalizadas no framework para permitir sua implementao nas diferentes plataformas.
Essa mesma abordagem de abstrao das APIs utilizada na construo do
framework XFormUI e do framework Requisitor propostos nesta dissertao.
As
3.3. Concluso
Neste Captulo, foram apresentados os principais conceitos relacionados a
frameworks e s plataformas de programao para DMs.
Como visto na seo 3.1, as plataformas J2ME MIDP 1.0/CLDC 1.0, MIDP
2.0/CLDC 1.1 e Superwaba apresentam diferenas quanto a forma de estruturar as
_______________________________________________________________________________________________________________________
47
Captulo 3
_______________________________________________________________________________________________________________________________________
interfaces das aplicaes e contm APIs distintas para sua construo. Alm disso, cada
plataforma mais adequada para um grupo de dispositivos. Desta forma, para que um
engenheiro de software possa construir aplicaes que executem em grande quantidade de
dispositivos, boa parte do cdigo dessas aplicaes teria que ser reescrito.
Os frameworks XFormUI e Requisitor propostos nesta dissertao tm o objetivo de
diminuir essa reescrita na construo de interfaces com usurio e na realizao de
comunicao de dados. O framework XFormUI ser apresentado no prximo captulo,
assim como a ferramenta UIG que realiza a gerao de cdigo que estende esse framework
a partir de documentos XML.
_______________________________________________________________________________________________________________________
48
Captulo 4
_______________________________________________________________________________________________________________________________________
4. Framework XFormUI
Neste captulo apresentado o framework proposto nesta dissertao para a construo de
interfaces grficas multi-plataformas para DMs. Na seo 4.1, apresentada a tecnologia
XForms utilizada como fonte de nomes e de componentes para o framework. Na seo 4.2,
so apresentados os requisitos identificados para a construo do XFormUI. Na seo 4.3,
apresentada uma viso geral do framework e como ele atende aos requisitos.
4.1. XForms
XForms [53][15] um esforo do World Wide Web Consortium (W3C) [36] para substituir
formulrios HTML por um formato mais avanado que permita a definio de formulrios
Web multi-plataformas e independente de dispositivos. XForms uma linguagem baseada
em XML que permite a definio de formulrios, eventos e dados iniciais dos formulrios.
A estrutura de um documento XForms baseada no modelo MVC (i.e.,
Model/Viewer/Controller) e dividida em trs partes: Instance, Model e User Interface.
Essa estrutura composta pelos dados iniciais, pelos componentes de interface e pelos
eventos. Dessa forma, a aplicao XForms construda de modo mais abstrato, com a
separao de dados, lgica e apresentao. Essa abordagem definida em [15] como a
forma ideal para criao de aplicaes independente de dispositivo.
A descrio dos componentes de interface e dos eventos do XForms foi projetada para
ser independente de dispositivo. Os campos de entrada de dados, por exemplo, so descritos
como inputs e no como campos de texto que ocupam determinadas posies na tela.
Outro exemplo o elemento que dispara um evento de ao. Em XForms, em vez de
descrev-lo como um boto que recebe um evento de click, esse elemento descrito como
um gatilho (i.e., trigger) que recebe um evento de ativao. Isto permite que dispositivos
que no possuam interface visual possam executar tambm a aplicao XForms.
Outra grande vantagem de XForms permitir a integrao com outras tecnologias
XML como CSS (Cascading Style Sheets) [36] e XML Schema [36]. Em [15],
apresentado um navegador chamado X-Smiles que suporta parte da linguagem XForms e
sua integrao com as tecnologias citadas anteriormente. O navegador executa apenas em
PCs e foi programado utilizando a linguagem Java.
_______________________________________________________________________________________________________________________
49
Captulo 4
_______________________________________________________________________________________________________________________________________
50
Captulo 4
_______________________________________________________________________________________________________________________________________
o XForms tem boa quantidade de documentao [54], se comparado aos outros trabalhos
mencionados no Captulo 2.
51
Captulo 4
_______________________________________________________________________________________________________________________________________
restries estabelecidas pelas regras de negcio e devem ser validados durante o seu
preenchimento. Assim, o framework deve conter mecanismos de restrio e validao
desses dados preenchidos para auxiliar o engenheiro de software no desenvolvimento das
aplicaes.
3. Suporte a funes para troca de formulrios e exibio de mensagens. O
framework deve permitir a fcil mudana entre os formulrios de uma aplicao para
agilizar os processos de prototipao e desenvolvimento. Outra importante funo a
exibio de mensagens que so usadas nas aplicaes para informar erros de entrada de
dados e exibir alertas com informaes sobre o sistema.
4. Suporte ao Gerenciamento de Eventos. O gerenciamento de eventos uma das
partes mais importantes do desenvolvimento de uma aplicao, pois define a mudana de
fluxo entre formulrios e dispara as aes realizadas pela aplicao. Com o framework, o
engenheiro de software deve ser capaz de gerenciar eventos que disparam aes (e.g., clicks
em um boto), eventos de seleo de opes e eventos de mudana de estado dos
componentes (e.g., entrada e sada, alterao do valor).
5. Execuo adaptativa nos dispositivos. O framework deve possibilitar a construo
de interfaces grficas adaptativas para dispositivos mveis. As interfaces devem se adequar
a diferentes dispositivos e tentar exibir sempre a melhor forma de apresentao. Por
exemplo, a aplicao construda com o framework deve ser capaz de expandir sua rea de
viso e usar cores quando executada em um dispositivo com um display maior e colorido.
6. Flexibilidade na composio dos componentes dos formulrios. importante
que o framework contenha funcionalidades que permitam ao engenheiro de software definir
o layout dos componentes, como cores e alinhamento. Desta forma, ele pode construir
interfaces mais amigveis com usurio.
7. Extensibilidade para criao de novos componentes grficos. O framework deve
conter Hot Spots que possibilitem a fcil insero de novos componentes para atender a
novas funcionalidades desejadas pelo engenheiro de software.
8. Facilidade no uso. A nomenclatura dos componentes de interface do framework
deve ser intuitiva para facilitar a instanciao dos componentes. Alm disso, as funes de
composio de formulrios devem ser de fcil uso e o framework deve ser documentado pra
facilitar a aprendizagem.
_______________________________________________________________________________________________________________________
52
Captulo 4
_______________________________________________________________________________________________________________________________________
abstraem da aplicao o modo pelo qual so instanciadas as APIs de cada plataforma para
criar os componentes, montar a interface, disparar eventos e exibir mensagens de alerta.
Como mencionado no Captulo 3, essa estratgia permite a construo de aplicaes para
executar em qualquer plataforma na qual o framework implementado.
53
Captulo 4
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
54
Captulo 4
_______________________________________________________________________________________________________________________________________
4.3.1.
MainXForm
Como mencionado no Captulo 2, a estrutura de uma aplicao em J2ME MIDP 1.0 e 2.0
diferente da estrutura de uma aplicao em Superwaba. Em J2ME MIDP, a classe principal
de uma aplicao herda da classe Midlet e deve reescrever os mtodos startApp() e
destroyApp(boolean typeExit) que correspondem, respectivamente, a inicializao da
aplicao e as funes a serem executadas antes de sua sada. J em Superwaba, a classe
principal de uma aplicao herda da classe MainWindow e deve reescrever o mtodo
onStart() que disparado no incio da execuo. Portanto, para criar uma estrutura que
_______________________________________________________________________________________________________________________
55
Captulo 4
_______________________________________________________________________________________________________________________________________
Implementao em SuperWaba
public abstract class MainXForm extends
MainWindow{
public MainXForm(){
super("",TAB_ONLY_BORDER);
this.setDoubleBuffer(true);
}
public void setCurrentForm(XForm xform){
swap(xform);
}
public void onExit(){
onExit(false);
}
public abstract void onExit(boolean arg);
}}
4.3.2.
Formulrios
56
Captulo 4
_______________________________________________________________________________________________________________________________________
aplicao. Desta forma, esse mtodo, em conjunto com o showAlert(), faz com que o
framework XFormUI atenda ao requisito 3 especificado na seo 4.2.
Outra caracterstica comum entre esses formulrios a possibilidade de adio de
Triggers para disparar eventos de ao. Os Triggers so mapeados para a classe Button na
implementao em Superwaba e para a classe Command em J2ME MIDP 1.0 e 2.0. No
caso do mtodo showAlert(), a implementao em Superwaba instancia e exibe um
MessageBox, enquanto em J2ME MIDP a implementao utiliza uma instncia da classe
Alert. A seguir, descrito em detalhes cada um desses formulrios.
4.3.2.1.
Select1Full
O Select1Full um formulrio para exibio de opes das quais o usurio pode escolher
somente uma. O Selec1Full pode receber em seu construtor uma lista de opes e um ttulo
para ser exibido no topo do formulrio. A esta classe, apenas um tipo de componente pode
ser adicionado, o Trigger. Essa adio acontece atravs do mtodo add que pode receber
tambm diretivas de layout como alinhamento e mudana de linha no display.
Para que o engenheiro de software possa utilizar um Select1Full, ele precisa escrever
uma subclasse dessa classe. Essa subclasse deve implementar os mtodos triggerEvent() e
selectEvent() que permitem o gerenciamento dos eventos de aes, respectivamente, sobre
o Trigger e sobre a lista de opes.
O Select1Full foi mapeado em J2ME MIDP 1.0 e 2.0 para a classe List que tm
exatamente o mesmo comportamento de escolha de opes e eventos de seleo. No caso
do Superwaba, um componente foi criado atravs da combinao das classes Container e
ListBox. Vale ressaltar que as diretivas de layout dos Triggers funcionam apenas em
Superwaba, j que no se pode atribuir alinhamento aos Commands em J2ME.
4.3.2.2. TextArea
O TextArea um formulrio para exibio e edio de textos. Ele pode receber em seu
construtor um texto e um ttulo. esta classe, assim como acontece com Select1Full,
apenas um tipo de componente pode ser adicionado, o Trigger. Para que o engenheiro de
software possa utilizar um TextArea, ele precisa escrever uma subclasse dessa classe. Ao
contrrio do Select1Full, essa subclasse deve implementar apenas o mtodo triggerEvent. O
TextArea foi mapeado em J2ME MIDP 1.0 e 2.0 para a classe TextBox que permite a edio
_______________________________________________________________________________________________________________________
57
Captulo 4
_______________________________________________________________________________________________________________________________________
import org.great.xform.ui.TextArea;
import org.great.xform.ui.Trigger;
public class FormComentar extends TextArea{
//Trigger(s)
Trigger trgAlerta;
FormComentar(MainXForm mainXForm){
4.3.2.3. XForm
O XForm o formulrio padro correspondente ao comportamento de um formulrio
XForms. A ele podem ser adicionados Triggers e qualquer componente que herde de
XFormItem. Assim como nos outros formulrios, a adio acontece atravs do mtodo add
que recebe diretivas de layout como alinhamento e mudana de linha no display. A
diferena que essas diretivas funcionam para os componentes que herdam de XFormItem
tanto em Superwaba como em J2ME MIDP 2.0.
O XForm implementado em J2ME MIDP estendendo a classe Form. No caso do
MIDP 2.0, ele utiliza as diretivas de layout da classe Item para adicionar os componentes.
Essas diretivas permitem alinhar os componentes esquerda, ao centro e direta e
determinam se um ou mais componentes esto na mesma linha do formulrio. No
Superwaba, o XForm estende a classe Container e utiliza as diretivas da classe Control para
adicionar os componentes.
_______________________________________________________________________________________________________________________
58
Captulo 4
_______________________________________________________________________________________________________________________________________
4.3.3.
Validaes e Restries
A classe
//Restries
this.setRequired(true);
_______________________________________________________________________________________________________________________
59
Captulo 4
_______________________________________________________________________________________________________________________________________
this.setMaxLength(50);
}
public void triggerEvent(Trigger trig) {
if(trig==trgAlerta){
if(this.isValid()){
this.showAlert("No permitido texto vazio ou
com mais de 50 caracteres!!!");
}}}
4.3.4.
XFormItem e Componentes
60
Captulo 4
_______________________________________________________________________________________________________________________________________
so mapeados para os mtodos disponibilizados pela plataforma para mudana de cores dos
componentes: setForeColor() e setBackColor().
O framework XFormUI disponibiliza oito componentes que herdam de XFormItem:
Secret, Output, SelectBoolean, Select1, Select, XFormImage, Range e Input. Esses
componentes so descritos em detalhes a seguir.
_______________________________________________________________________________________________________________________
61
Captulo 4
_______________________________________________________________________________________________________________________________________
4.3.4.4. Input
Esse componente permite a entrada de dados numricos, texto, datas e horas. Durante a sua
construo, o engenheiro de software informa que tipo de restrio aplicada para filtrar a
entrada dos dados. Ele pode escolher as seguintes restries: NUMERIC, DECIMAL,
STRING, DATE, DATE_TIME, TIME.
Contudo, essas restries de filtragem podem no ser possveis de executar em certas
plataformas de programao. Nesses casos a checagem ocorre durante a execuo do
mtodo isValid().
Essas restries tambm influenciam em quais componentes o Input instancia durante
a execuo da aplicao. Na Tabela 7, so apresentadas as formas como essas instanciaes
acontecem em cada plataforma na qual o framework foi implementado. Entre o J2ME
MIDP 1.0 e MIDP 2.0 uma nica diferena acontece na instanciao, no MIDP 1.0 a
restrio DECIMAL do Input se transforma em uma restrio do tipo TextField.ANY, pois
no existem restries em MIDP 1.0 para entrada somente de valores decimais nos campos
do tipo TextField.
Como mencionado no Captulo 3, isso acontece devido a inexistncia de suporte a
ponto flutuante na plataforma. Como em MIDP 2.0, j existe o suporte a ponto flutuante,
uma restrio para entrada de valores decimais nos TextField disponibilizada, a
_______________________________________________________________________________________________________________________
62
Captulo 4
_______________________________________________________________________________________________________________________________________
Restrio
NUMERIC
Superwaba
Edit com restrio
Edit.CURRENCY e
caracteres vlidos
"0123456789-+"
DECIMAL
TextField com
restrio
TextField.ANY
TextField com
restrio
TextField.DECIMAL
STRING
TextField com
restrio
TextField.ANY
TextField com
restrio
TextField.ANY
DATE
DateField com
restrio DateField.
DATE
DateField com
restrio DateField.
DATE
DATE_TIME
DateField com
restrio DateField.
DATE_TIME
DateField com
restrio DateField.
DATE_TIME
TIME
DateField com
restrio DateField.
TIME
DateField com
restrio DateField.
TIME
63
Captulo 4
_______________________________________________________________________________________________________________________________________
4.3.5.
TextArea
TextBox
TextBox
XFormItem
Contm um Item
Contm um Item e um
Superwaba
MainWindow
Container
Container com um
ListBox
Container com um
ListBox
Contm um Control e
_______________________________________________________________________________________________________________________
64
Captulo 4
_______________________________________________________________________________________________________________________________________
Secret
Input
Output
Select1
Select
SelectBoolean
XFormImage
Trigger
Range
triggerEvent()
ColorLabel
Contm um TextField Contm um TextFied
e um ColorLabel
Pode conter um
Contm um
TextField ou um
ColorLabel e pode
DateField dependendo conter um TextField
da restrio
ou um DateField
dependendo da
restrio
Contm um StringItem Contm um StringItem
e um ColorLabel
Contm um
Contm um
ChoiceGroup com
ColorLabel e um
restrio Exclusive
ChoiceGroup com
restrio Exclusive ou
Popup
Contm um
Contm um
ChoiceGroup com
ColorLabel e um
restrio Multiple
ChoiceGroup com
restrio Multiple
Contm um
Contm um
ChoiceGroup com
ColorLabel e um
restrio Exclusive e
ChoiceGroup com
um nico item
restrio Exclusive e
um nico item
Contm um
Contm um
ImageItem e um
ImageItem e um
Image
Image
Estende Command
Estende Command
Contm um Gauge
Contm um
ColorLabel e um
Gauge
commandAction()
commandAction()
um Label
Contm um Edit e um
Label
Contm um Edit e um
Label. No caso da
restrio de tipo ser
date, um Calendar
aberto ao se clicar no
Input
Contm um Label
Contm um Label e
um ComboBox ou um
RadioGroup ou um
ListBox dependendo do
tipo do Select1
Contm um Label e
um ListBox
Contm um Label e
um Check
Contm um Image e
um Button
Estende Button
Contm um ScrollBar
onEvent()
4.4. Concluso
Neste Captulo foi apresentado o framework XformUI que permite a construo de
interfaces grficas adaptativas e multi-plataformas para dispositivos mveis. O framework
contm vrios componentes de interface e facilita a construo de formulrios com recursos
de validao de dados e layout para os componentes. As implementaes do framework em
J2ME MIDP1.0/CLDC 1.0, J2ME MIDP2.0/CLDC1.1 e Superwaba proporcionam a
execuo das aplicaes em trs plataformas distintas.
_______________________________________________________________________________________________________________________
65
Captulo 4
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
66
Captulo 5
_______________________________________________________________________________________________________________________________________
ferramenta UIG.
67
Captulo 5
_______________________________________________________________________________________________________________________________________
plataforma o cdigo ser gerado. Ele dispara a ferramenta UIG e esta, por sua vez, gera o
cdigo dos formulrios utilizando o framework XFormUI.
Para criar esse Manifest.xml, o engenheiro pode utilizar o plugin para a ferramenta
livre Eclipse [37] disponibilizado pelo ambiente proposto nesta dissertao. Esse plugin
permite a construo do Manifest.xml de forma grfica e tambm dispara o processo de
gerao de cdigo da ferramenta.
A ferramenta realiza essa gerao de cdigo utilizando XSL [36] (i.e., eXtensible
Stylesheet Language). Essa linguagem de marcao baseada em XML permite a criao de
folhas de estilo ou documentos de transformao chamados de XSLT (i.e., XSL
Transformation). O XSLT permite a definio de regras de mapeamento das tags de um
documento XML para uma outra descrio. Com XSLT, possvel converter um
documento XML em outros documentos XML, em arquivos texto ou em documentos
HTML. A vantagem do uso do XSLT decorre da existncia de vrios processadores ou
parsers XSL, capazes de realizar a transformao a partir de dois documentos: o
documento XML original e o documento XSLT de transformao.
O cdigo dos formulrios gerados pela ferramenta seguem um modelo semelhante ao
MVC (i.e., Model/Viewer/Controller) [41]. Para cada formulrio, trs classes so geradas:
Interface, Bean e Controller.
A classe Interface define a viso do formulrio na qual esto descritos os
componentes grficos e como eles se compem para constituir o formulrio. Esses
_______________________________________________________________________________________________________________________
68
Captulo 5
_______________________________________________________________________________________________________________________________________
componentes grficos utilizados so instncias das classes que fazem parte do framework
XFormUI apresentado no Captulo 4.
A classe Bean contm atributos relacionados aos campos de seleo e de entrada de
dados do formulrio, assim, essa classe corresponde ao modelo na qual esto os dados
relacionados ao formulrio. Por sua vez, a classe Controller contm mtodos de execuo
para cada Trigger existentes nos formulrios.
Esse modelo de cdigo gerado permite o desenvolvimento mais rpido das aplicaes,
pois o engenheiro se concentra na escrita dos mtodos da classe controladora que so
referentes s regras de negcio da aplicao. Na Seo 5.5, as estruturas dessas classes so
detalhadas.
xhtml:link. , onde est o caminho para arquivo que define o estilo do formulrio;
xhtml:head, descreve o incio do cabealho do XHTML que pode ter dois filhos:
o xhtml:title, o ttulo do formulrio;
o xforms:model, a parte Model do XForms;
Como pode ser visto, alm das tags que definem a estrutura do documento XHTML, a
ferramenta suporta a tag xhtml:img para adicionar imagens a um formulrio e o xhtml:p
para definir o layout dos componentes.
_______________________________________________________________________________________________________________________
69
Captulo 5
_______________________________________________________________________________________________________________________________________
5.2.1.
Suporte ao XForms
Descrio
Sintaxe
Input
Secret
Select1
Imagem no XSmiles
_______________________________________________________________________________________________________________________
70
Captulo 5
_______________________________________________________________________________________________________________________________________
alguns itens
<value>1</value>
<label>1st</label>
</item>
</select1>
Output
Textarea
Select
Selectboolean Componente
para marcar
ou no um
item
<label>1st</label>
</item>
</select1>
<selectboolean id=sb
ref=>
<label>Selectboolean:</label>
</selectboolean>
Range
Componente
para escolha
de valores
em um
intervalo
Trigger
Submit
Como pode ser visto na tabela, cada componente obrigatoriamente contm o atributo
id e o n filho label, respectivamente, o identificador e o texto que exibido ao lado de
cada componente. Os componentes, exceto o trigger e o submit, possuem o atributo ref com
o caminho XPath referente ao a seu valor correspondente no Model do XForms.
_______________________________________________________________________________________________________________________
71
Captulo 5
_______________________________________________________________________________________________________________________________________
O atributo align que pode ser left, right e center que indica a posio relativa
5.2.2.
Tipos bsicos:
o xs:string;
o xs:date, xs:datetime, xs:time;
o xs:integer,
xs:nonNegativeInteger,
xs:positiveInteger,
xs:integer,
xs:nonPositiveInteger, xs:negativeInteger;
o xs:decimal, xs:double.
Tipos simples:
_______________________________________________________________________________________________________________________
72
Captulo 5
_______________________________________________________________________________________________________________________________________
5.2.3.
O CSS utilizado no XForms para formatao de estilo das pginas e dos componentes. Na
UIG, so suportadas as modificaes das cores de todo componente, a mudana nas cores
do label e a modificao das cores do value (e.g., o texto contido em input). O uso do CSS
pode ser realizado de duas formas, listadas a seguir:
Com modificadores para todos os componentes. Nesse caso, o estilo inicia pelo
tipo de componente ao qual ele est associado (e.g., input{...} para todos os inputs);
Com a criao de classes. Nesse caso, um novo estilo criado no CSS (e.g., texto
{...}). No XForms, o engenheiro de software associa essa nova classe de estilo, usando o
atributo class, em cada componente que desejar.
Na Tabela 10, so apresentados exemplos de como o CSS pode ser usado para
modificar estilo de cores nos componentes XForms.
Descrio
Atributos
Modificar atributos
de todos os
componentes de um
tipo (e.g., todos os
inputs)
Modificar atributos
do label de todos os
componentes de um
tipo
Modificar atributos
do value de todos os
componentes de um
tipo
Sintaxe
Backgroundcolor e
Color dos
componentes
input{
background-color:
rgb(255,255,100);
color: #AAAAAA
}
Backgroundcolor e
Color do label
input>label{
background-color: #000000;
color:
rgb(255,255,255);
}
Backgroundcolor e
Color do value
select1::value{
background-color: #FFFFFF;
color:
rgb(155,0,0);
}
Imagem no
XSmiles
73
Captulo 5
_______________________________________________________________________________________________________________________________________
XFormUI Trigger e uma funo que checa se todos os dados do formulrio so vlidos
chamada no evento desse gatilho de ao.
_______________________________________________________________________________________________________________________
74
Captulo 5
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
75
Captulo 5
_______________________________________________________________________________________________________________________________________
76
Captulo 5
_______________________________________________________________________________________________________________________________________
Superwaba);
_______________________________________________________________________________________________________________________
77
Captulo 5
_______________________________________________________________________________________________________________________________________
ser copiados.
Em um wizard, definida uma seqncia de passos pela qual o usurio pode navegar
atravs dos botes NEXT e BACK, finalizando, enfim, com o boto FINISH.
Os wizards do plugin seguem os seguintes passos:
1. O usurio escolhe qual wizard ir utilizar, de acordo com a plataforma alvo. Esse
passo apresentado na Figura 15.
2. O usurio decide se utilizar definies de uma transformao j realizada pelo
plugin ou ir realizar uma nova transformao, especificando novas definies.
78
Captulo 5
_______________________________________________________________________________________________________________________________________
e, caso seja necessrio, adicionar ou remover mais arquivos. Esse passo mostrado na
Figura 16.
5. Finalmente, o usurio deve escolher a pasta onde os arquivos sero transformados,
dando incio transformao propriamente dita. A transformao transparente para o
usurio e uma barra de progresso mostra o andamento do processo. Todos os passos da
transformao so detalhados em um arquivo de log, salvo tambm na pasta escolhida para
gerar os arquivos.
5.7. Concluso
Neste captulo, foi descrita a ferramenta User Interface Generator (UIG) que facilita a
construo de aplicaes que utilizam o framework XFormUI. Com a ferramenta, o
engenheiro de software pode construir formulrios, as restries dos dados e o estilo dos
componentes usando linguagens declarativas que agilizam o processo de desenvolver.
Esses formulrios descritos so mapeados pela ferramenta em cdigo executvel nas
plataformas de programao para dispositivos mveis J2ME MIDP 1.0, J2ME MIDP 2.0 e
Superwaba.
No prximo captulo so apresentados os frameworks que permitem a construo de
MAS que adaptem contedo e seus clientes para dispositivos mveis. Vale ressaltar que o
cdigo gerado pela UIG facilmente integrvel a esses frameworks.
_______________________________________________________________________________________________________________________
79
Captulo 6
_______________________________________________________________________________________________________________________________________
pode
ser
dividido
em
componentes
(e.g.,
TerminalHardware,
80
Captulo 6
_______________________________________________________________________________________________________________________________________
81
Captulo 6
_______________________________________________________________________________________________________________________________________
e [12], uma nica entidade, um proxy, responde a essas questes. Um proxy adapta os
recursos a cada requisio e o responsvel por delegar como e quando realizar a
adaptao. Contudo, como mencionado no Captulo 2, essa abordagem concentra toda a
deciso da adaptao em uma arquitetura geral que pode no ser satisfatria para outros
tipos de aplicaes que no consistam na simples requisio de um contedo Web.
No Mobiler Adapter e no MobAC, as decises relacionadas com a adaptao so
delegadas para os MAS e para as aplicaes no dispositivo mvel. As implementaes
desses frameworks se encarregam ento de capturar, manipular e gerenciar os perfis dos
dispositivos, dos usurios e do contexto. Desta forma, permite-se a criao de sistemas mais
flexveis quanto adaptao, uma vez que a obteno das informaes separada dos
mtodos de adaptao.
O Mobile Adapter consiste em um framework Web para criao de MAS adaptativos.
O Mobile Adapter Client (MobAC) um cliente multi-plataforma para dispositivos mveis
que capaz de trocar informaes com o Mobile Adapter. Na Figura 18, uma viso geral
das classes que compem esses frameworks e seus relacionamentos com um MAS e com os
repositrios de especificaes UAProf so apresentados.
82
Captulo 6
_______________________________________________________________________________________________________________________________________
que
descreve
as
propriedades
estticas
do
dispositivo
(VI).
_______________________________________________________________________________________________________________________
83
Captulo 6
_______________________________________________________________________________________________________________________________________
UAProf, gera tambm um objeto Java Beans correspondente aos dados estticos que sero
utilizados para adaptao (IX).
Assim, aps os processo de gerao dos Beans, o CC/PPHandler retorna um
UserBean, um DeviceBean e um ContextBean ao ProfileManager (X). Este, por sua vez,
repassa os objetos para o MAS (C). Em seguida, o MAS executa as polticas de adaptao e
retorna a resposta adaptada para a aplicao no dispositivo mvel (D).
84
Captulo 6
_______________________________________________________________________________________________________________________________________
cache necessrio devido aos tamanhos que os documentos UAProf podem ter, em geral
acima de 14KB. Dessa forma, se o cache no for utilizado, downloads repetidos do UAProf
causam atraso no processo de adaptao.
Na parte Manipuladores de Perfis, encontram-se as classes: UserProfileHandler,
ContextProfileHandler e DeviceProfileHandler. Essas classes so responsveis por mapear,
para instncias de objetos da parte Beans do framework, os parmetros contidos,
respectivamente, nos documentos CC/PP do usurio, CC/PP enviado pelo MobAC e
UAProf do dispositivo.
Para que o engenheiro de software possa utilizar os parmetros que desejar nos
documentos CC/PP relacionados ao contexto e ao usurio, as classes UserProfileHandler e
ContextProfileHandler criam os objetos Beans utilizando o conceito de Reflection que a
capacidade de em tempo de execuo descobrir mtodos e atributos de um objeto ou de
uma classe [100]. Dessa forma, esses Handlers descobrem o nome de cada atributo contido
nos Beans e procuram nos documentos XMLs, tags com o mesmo nome. Caso encontrem,
esses Handlers utilizam os mtodos sets para atribuir aos Beans os valores contidos no
documento XML.
Para facilitar o uso do Mobile Adapter, o framework j disponibiliza Beans com
atributos gerais, que so descritos a seguir:
do usurio;
BasicDeviceBean
contm
os
atributos
displayColor,
displayWidth,
_______________________________________________________________________________________________________________________
85
Captulo 6
_______________________________________________________________________________________________________________________________________
atributos do dispositivo, ele deve, alm de criar uma subclasse de DeviceBean, modificar o
cdigo do DeviceProfileHandler.
O framework Mobile Adapter foi implementado em Java utilizando a API livre
Common Bean Utils para realizar as operaes de Reflection. E a classe Java HashTable foi
utilizada na implementao do cache.
86
Captulo 6
_______________________________________________________________________________________________________________________________________
87
Captulo 6
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
88
Captulo 6
_______________________________________________________________________________________________________________________________________
89
Captulo 6
_______________________________________________________________________________________________________________________________________
passado pela aplicao ao realizar uma requisio, a URI do documento UAProf que
descreve o dispositivo capturada pela classe UAProfGetter e os outros parmetros so
obtidos a partir de uma instncia da classe Monitor.
90
Captulo 6
_______________________________________________________________________________________________________________________________________
6.6. Concluso
Neste Captulo foi apresentado o Mobile Adapter e MobAC que, em conjunto,
propiciam uma forma eficiente de captura, manipulao e gerenciamento dos perfis do
dispositivo, do usurio e do contexto em que executam. Como mencionado no Captulo 2, a
ausncia destes tipos de mecanismos dificulta a construo de sistemas reais que executam
adaptao de contedo.
Alm disso, o MobAC foi construdo para ser facilmente integrvel ao cdigo gerado
pela ferramenta UIG apresentada no Captulo 5. Dessa forma, o ambiente proposto pode ser
facilmente utilizado tanto para construir aplicaes adaptveis descrio e multiplataformas, quanto para construir aplicaes que acessam MAS que adaptam contedo.
No captulo, tambm foi apresentado o framework multi-plataforma Requisitor que
permite o estabelecimento de comunicao de dados entre servidores remotos e as
aplicaes nos dispositivos mveis. Esse framework foi utilizado no MobAC para facilitar
sua implementao em vrias plataformas.
No prximo captulo, apresentado um estudo de caso que ilustra como os
frameworks e a ferramenta propostos nessa dissertao podem ser integrados para construir
aplicaes complexas para dispositivos mveis.
_______________________________________________________________________________________________________________________
91
Captulo 7
_______________________________________________________________________________________________________________________________________
7. Estudo de Caso
Neste Captulo apresentado um estudo de caso que ilustra como o ambiente
proposto nesta dissertao pode ser utilizado no desenvolvimento de aplicaes adaptativas
e multi-plataformas para dispositivos mveis. O estudo de caso consiste em um sistema
para a visualizao e a postagem de imagens fotogrficas e comentrios. O sistema,
chamado de M-Flog, composto de uma servidor Web e de um cliente para DMs.
Na Seo 7.1, so apresentados os requisitos e a arquitetura geral do M-Flog. Na
Seo 7.2, detalhado o processo de construo da aplicao para DMs do M-Flog. Na
Seo 7.3, descrita a construo do MAS Adaptativo e dos pacotes de adaptao de
imagem e de texto. E, por fim, na Seo 7.4 a apresentado uma avaliao da eficincia do
uso de adaptao de imagens.
7.1. M-Flog
Uma das aplicaes de entretenimento que tem se tornado popular na Internet so os
Flogs. Um Flog um dirio de fotos na forma de um site na Internet. Esses sistemas Web
permitem ao usurio adicionar imagens fotogrficas a cada dia e colocar comentrios sobre
elas. Alm disso, outros usurios podem adicionar comentrios nos Flogs dos amigos.
J existem Flogs [88] que permitem o envio, atravs de MMS (Multimedia Message
Service), de imagens retiradas com cmera de um celular. Contudo, o objetivo do M-Flog
construir um Flog acessvel por dispositivos mveis, tanto para visualizar imagens e
comentrios, quanto para o usurio adicionar comentrios aos Flogs dos seus amigos.
Para que o M-Flog possa ser acessado por uma grande quantidade de usurios e o para
que sistema tenha um tempo satisfatrio de resposta s requisies, dois requisitos no
funcionais devem ser satisfeitos e so listados a seguir:
Portabilidade
dispositivos com caractersticas diferentes entre si. Desta forma, a aplicao deve ser capaz
de ser executada em uma grande diversidade de dispositivos e plataformas de programao.
Adaptao
devido dificuldade que um dispositivo mvel possa vir a ter para conseguir acessar uma
imagem fotogrfica da Web, por causa do tamanho ou do formato da mesma. A adaptao
_______________________________________________________________________________________________________________________
92
Captulo 7
_______________________________________________________________________________________________________________________________________
dos comentrios importante para possibilitar que mesmo em dispositivos com pequenos
displays, um usurio possa ter acesso a um comentrio ou a uma parte dele.
Portanto, para satisfazer esses requisitos no funcionais e diminuir o tempo e o custo
de construo da aplicao, foi utilizado o ambiente proposto nesta dissertao. Na Figura
24, ilustrada uma viso geral do M-Flog e seus relacionamentos com os frameworks
propostos na dissertao. Para construir a aplicao do DM, a ferramenta UIG foi utilizada
para gerar as interfaces, os controladores e os beans dos formulrios. Desta forma, as
interfaces da aplicao utilizam o framework XFormUI e executam em trs plataformas de
programao.
Para realizar a comunicao com o MAS do M-Flog, cdigos foram escritos nos
controladores dos formulrios. Quando o contedo a ser requisitado no necessita de
adaptao, esses cdigos utilizam o framework Requisitor para enviar a requisio (e.g., na
checagem de login e senha). J nos casos em que as requisies podem ter respostas
adaptadas, o MobAC utilizado (e.g., requisio de imagens).
O MAS do M-Flog tanto pode ser acessado por dispositivos mveis quanto por um
browser de um PC. Para sua construo, o framework Mobile Adapter foi utilizado. Assim,
o M-Flog pode recuperar facilmente os perfis do usurio, do dispositivo e do contexto,
permitindo a realizao da adaptao dos textos e das imagens.
_______________________________________________________________________________________________________________________
93
Captulo 7
_______________________________________________________________________________________________________________________________________
7.2. Aplicao no DM
Para a construo da aplicao no dispositivo mvel, os formulrios foram
especificados em XForms, CSS e XML Schema utilizando o Eclipse e o plugin para edio
de documentos XML, o XMLBuddy [69] . Os formulrios criados so usados para entrada
de dados de login, visualizaes de imagens e comentrios, escolha de opes, busca de
imagens, mudana das preferncias do usurio e adio de novos comentrios. Na Figura
25, so apresentadas as telas da aplicao de login, de preferncias do usurio e de leitura
de comentrios, em XForms executadas no browser X-Smiles [15].
obter autorizao para entrar no sistema. Um tipo simples do XML Schema foi associado
ao campo senha para que a mesma contenha de 3 a 10 dgitos. Para o campo login foi
criado um Bind de required=true o qual define o campo como obrigatrio.
Formulrio
para serem buscadas as imagens que ele deseja visualizar. Assim, o tipo bsico xsd:date do
XML Schema foi associado aos Inputs, o que permitiu a seleo de datas para realizar a
busca.
_______________________________________________________________________________________________________________________
94
Captulo 7
_______________________________________________________________________________________________________________________________________
Formulrio
adicionado a uma imagem por um amigo do usurio. Como o usurio no pode modificar
esse texto, foi criado um Bind de readonly=true para o TextArea.
Na Tabela 11, podem ser vistos trechos do arquivo XML Schema utilizado nas telas
de login e busca de imagens para aplicar as restries na entrada dos dados. O CSS usado
em todos os formulrios para definir as cores dos labels tambm apresentado nessa tabela.
Schema
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- Simple types -->
<xsd:element name="login" type="xsd:string"/>
<xsd:element name="data" type="xsd:date"/>
<!-- Restricted simple types -->
<xsd:simpleType name="senha">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
<xsd:minLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
CSS
input {
background-color: #FFFFFF;
color: #FF0000;
}
secret {
background-color: #FFFFFF;
color: #FF0000;
}
selectboolean {
background-color: #FFFFFF;
color: #FF0000;
}
Tabela 11 - Cdigos do XML Schema da tela de login e do CSS usado nos formulrios
95
Captulo 7
_______________________________________________________________________________________________________________________________________
Cdigo em XFormUI
FormPreferencias(MainXForm
mainXForm,
FormPreferenciasBean xformBean){
super("mflog - mobile fotolog",mainXForm);
// Output(s)
this.outTitulo =
new Output("",""+xformBean.titulo);
this.outQualidade =
new Output("",""+xformBean.output);
// SelectBoolean(s)
this.sbDistorcer =
new SelectBoolean("Distorcer?"," ");
this.sbDistorcer.setValue(""
+xformBean.selectboolean);
// Trigger(s)
</xforms:selectboolean>
} // End FormPreferencias
<xforms:submit id="trgOK">
<xforms:label>OK</xforms:label>
</xforms:submit>
96
Captulo 7
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
97
Captulo 7
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
98
Captulo 7
_______________________________________________________________________________________________________________________________________
mencionado no Captulo 3, a plataforma J2ME MIDP 1.0 suporta apenas PNG, o que exige
uma mudana no formato das imagens acessadas por aplicaes escritas nessa plataforma.
Para oferecer as informaes sobre o usurio, o dispositivo e o contexto em que
ambos executam, o M-Flog foi construdo utilizando o framework Mobile Adapter. Ao
receber uma requisio de uma imagem ou de um comentrio, o M-Flog repassa para o
ProfileManager o documento CC/PP enviado pelo MobAC. O ProfileManager, como
descrito no Captulo 6, dispara os processos de descoberta do perfil do usurio e do
dispositivo e de mapeamento dos perfis para os objetos Beans. De posse desses objetos, o
M-Flog realiza a adaptao.
Os parmetros considerados pelo MAS dos perfis do usurio, do dispositivo e do
contexto para realizar as adaptaes so os seguintes:
Perfil
Como pode ser visto, foram acrescentados dois parmetros ao Perfil do Usurio que
no so suportados de incio pelo framework Mobile Adapter. Essa adio de parmetros
foi realizada atravs de uma nova classe, a UserMFlogBean que estende a classe
BasicUserBean provida pelo framework. Desta forma, as instncias da classe
UserMFlogBean so povoadas automaticamente pelo Mobile Adapter atravs do processo
de Reflection explicitado no Captulo 6. Vale ressaltar que estes parmetros do perfil do
usurio so preenchidos quando este se cadastra ao sistema e podem ser alterados, inclusive
utilizando o cliente para DMs do M-Flog.
_______________________________________________________________________________________________________________________
99
Captulo 7
_______________________________________________________________________________________________________________________________________
7.3.1.
Adaptao de Textos
100
Captulo 7
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
101
Captulo 7
_______________________________________________________________________________________________________________________________________
7.3.2.
Adaptao de Imagens
102
Captulo 7
_______________________________________________________________________________________________________________________________________
Cor
N Cores
Display
Plataforma
Motorola A388
No
4 tons
GPRS
Nokia 6230
Sim
65535
GPRS
HP Ipaq h4100
Sim
65535
240X320
Sony Ericsson
P900
Sim
65535
Superwaba
Cenrio
IEEE 802.11b
Simulao
EDGE
Cinco imagens foram escolhidas para ilustrar o processo de adaptao, elas possuem
tamanhos que variam de 123KB at 660KB. Essas imagens possuem diferentes dimenses
e formatos (i.e., PNG e JPG) e ilustram as imagens que sero colocadas no ambiente real do
M-Flog.
_______________________________________________________________________________________________________________________
103
Captulo 7
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
104
Captulo 7
_______________________________________________________________________________________________________________________________________
Cenrio
Legenda
Na Figura 33, so ilustrados os grficos dos testes com o dispositivo A388 na rede
GPRS. Esse dispositivo apresentou os maiores tempos de downloads, mesmo quando
comparado ao dispositivo Nokia 6230 que tambm executou os testes no cenrio GPRS. O
tempo de latncia da adaptao teve o valor mximo de 107,08 segundos, que pode ser
considerado inaceitvel para alguns usurios. Contudo, o tempo de download das imagens
originais passava de dez minutos e causava overflow de memria no dispositivo. Assim, a
adaptao das imagens apresentou tambm ganhos sensveis, apesar de o tempo de espera
ainda ser grande.
Na Figura 34, so ilustrados tambm os testes com o dispositivo P900 simulado no
computador com uma conexo do tipo EDGE. Este dispositivo deve a velocidade da rede
apresentou o menor tempo de latncia para download da imagem original. Contudo, a
adaptao ainda obteve ganho de mais de 80% no tempo e de 90% no tamanho.
O tempo de atraso somente da converso das imagens variou de 1,44 a 4,57 segundos
em todas as execues. Esses tempos podem diminuir se o M-Flog for instalado em uma
mquina com maior capacidade de processamento. O M-Flog foi testado em um Pentium
III de 600 MHz com 128 MB de RAM. Com os resultados dos testes apresentados,
podemos constatar que a adaptao realmente possibilitou que os dispositivos possam
_______________________________________________________________________________________________________________________
105
Captulo 7
_______________________________________________________________________________________________________________________________________
Cenrio
Legenda
Comentrio
Legenda
_______________________________________________________________________________________________________________________
106
Captulo 7
_______________________________________________________________________________________________________________________________________
7.5. Concluso
Neste captulo, foi apresentado como o ambiente proposto nesta dissertao pode ser
utilizado para desenvolver aplicaes multi-plataformas e adaptativas para dispositivos
mveis.
A ferramenta UIG facilita a gerao de cdigo para as plataformas e os frameworks
Requisitor, XFormUI e MobAC diminuem a quantidade de cdigo escrito pelo engenheiro
de software. Uma demonstrao deste fato que a aplicao cliente, apresentada no estudo
de caso, escrita uma nica vez e executada nas trs plataformas. Alm disso, essa
execuo adaptada para cada plataforma com relao ao layout de apresentao das
interfaces.
Os frameworks Mobile Adapter e MobAC oferecem uma forma eficiente de captura e
manipulao dos perfis do usurio, do dispositivo e do contexto. Essas informaes so
indispensveis e fundamentais para que se possam criar sistemas que realizam adaptao de
contedo, o que ilustrado no M-Flog.
A avaliao de eficincia em ambientes reais e simulados demonstra que mesmo
inserindo um passo a mais de converso entre o dispositivo e o recurso desejado, a
adaptao possibilita ganhos significativos no tempo de latncia de download dos recursos
e na diminuio dos pacotes trafegados.
No prximo captulo so apresentadas as principais contribuies dessa dissertao e
trabalhos futuros que podem estender o ambiente proposto.
_______________________________________________________________________________________________________________________
107
Captulo 8
_______________________________________________________________________________________________________________________________________
8. Concluso
Esta dissertao apresentou um ambiente para o desenvolvimento de aplicaes adaptativas
e multi-plataformas para dispositivos mveis. Esse ambiente, composto pelos frameworks
XFormUI, Requisitor, Mobile Adapter, MobAC e pela ferramenta UIG, facilita a
construo das interfaces grficas das aplicaes e o desenvolvimento de Moblie
Application Servers (MAS) que realizam adaptao de contedo.
Na seo 8.1, so apresentadas as principais contribuies da dissertao e os
resultados alcanados durante o mestrado. Na seo 8.2, so descritos os trabalhos futuros
que possam estender o ambiente apresentado nesta dissertao.
_______________________________________________________________________________________________________________________
108
Captulo 8
_______________________________________________________________________________________________________________________________________
109
Captulo 8
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________
110
Captulo 8
_______________________________________________________________________________________________________________________________________
ser integrado ao protocolo ICAP (Internet Content Adaptation Protocol) [95] para permitir
a construo de proxies adaptativos reais.
_______________________________________________________________________________________________________________________
111
Captulo 9
_______________________________________________________________________________________________________________________________________
9. Bibliografia
1. MAGALHES, Katy; VIANA, Windson; LEMOS, Fabrcio; CASTRO, Javam de; ANDRADE,
Rossana. Um Framework de Persistncia de Objetos em Aplicaes para Dispositivos Mveis. In:
The Brazilian Symposium on Databases (SBBD 2004). Brasilia-DF, Brasil, Outubro 2004 , 2004.
2. BRINGEL FILHO, Jose Ribamar; VIANA, Windson; CASTRO, Rossana Maria Andrade de.
FRAMESEC: a FRAMEwork for the application development with end-to-end SECurity provision in
the mobile computing environment. Advanced International Conference on Telecommunications AICT 2005.
3. VIANA, Windson, CASTRO, R. M. C., MACHADO, Javam, FILHO, Bringel, MAGALHAES, Katy,
GIOVANO, Carlo. Mobis: A Solution For The Development Of Secure Applications For Mobile
Device. In: ICT: International Conference on Telecommunications, 11th, Fortaleza-CE, Brazil,
2004.. Lecture Notes in Computer Science. , v.3124, p.1015 - 1022, 2004.
4. FILHO, Bringel; VIANA, Windson; CASTRO, R. M. C. PEARL: a PErformance evaluaAtor of
cRyptographic aLgorithms for mobile devices. In: The First International Workshop on Mobility
Aware Technologies and Applications (MATA 2004). Florianpolis-PR, Brasil, Outubro 2004 .
Lecture Notes in Computer Science. MATA 2004 Conference: 275-284, v.3284, 2004.
5. VIANA, Windson; FERNANDES, Paula; TEIXEIRA, Robson; CASTRO, R. M. C. "Mobile
Adapter: Uma abordagem para a construo de Mobile Application Servers adaptativos utilizando
as especificaes CC/PP e UAProf". XXXII Seminrio Integrado de Software e Hardware (SEMISH
2005). No XXV Congresso da Sociedade Brasileira de Computao (CSBC). So Leopoldo-RS,
Brasil, 2005.
6. VIANA, Windson; FILHO, Bringel; CASTRO, R. M. C. PEARL Tools: um Conjunto de
Ferramentas para Avaliao da Eficincia de Algoritmos de Criptografia em Dispositivos Mveis.
Salo de Ferramentas do Simpsio Brasileiro de Redes de Computadores (SBRC 2005). FortalezaCE, Brasil. 2005.
7. PINHEIRO,
Manuele
Kirsch;
VILLANOVA-OLIVER,
M.;
GENSEL,
J.;
MARTIN,
H,
112
Captulo 9
_______________________________________________________________________________________________________________________________________
10. HAGIMONT, Daniel; LAYADA, Nabil. Adaptation d'une application multimdia par un code
mobile. In Technique et Science Informatique (TSI), numro spcial "Agents et code mobile",
Volume 21, Issue 6/2002, Junho, 2002.
11. CASTRO, Mrcio; LOUREIRO, A. A. F. Adaptation in Mobile Computing. In: XXII Simpsio
Brasileiro de Redes de Computadores, 2004, Gramado, RS. Anais do XXII Simpsio Brasileiro de
Redes de Computadores, p.439 452, 2004.
12. LEMLOUMA, T. LAYAIDA, N. Context-aware adaptation for mobile devices. This paper is from
the WAM Project, INRIA, Saint Martin, France. In: Proceedings of IEEE International Conference on
Mobile Data Management, p.106 - 111, 2004.
13. Projeto Sourceforge da linguagem SuperX++. Uma linguagem orientada a objeto baseada em
XML. Disponvel em: <http://xplusplus.sourceforge.net/index.htm>.
Acessado em Setembro de
2004.
14. Site do LiquidUI, ferramenta de UIML. Disponvel em: <http:// www.harmonia.com>. Acessado
em Maro, 2004.
15. HONKALA, M.; VUORIMAA, P.; XForms in X-Smiles. Anais do International Conference on
Web Information Systems Engineering, 2. p203 211. Dezembro, 2001.
16. MUELLER, A.; MUNDT, T.; LINDNER, W.; Using xml to semi-automatically derive user
interfaces. Anais do Uidis 2001. International Workshop on User Interfaces to Data Intensive
Systems, 2., p.91 95, Junho, 2001.
17. MINELLI, ANDR C.O.; LOULEIRO, ANTNIO A.F. Uma ferramenta para desenvolvimento de
aplicaes para dispositivos mveis. SIMPSIO BRASILEIRO DE REDES DE COMPUTADORES
(SBRC), 20., Bzios 2002.
18. Site oficial de O-XML. Disponvel em: <http://www.o-xml.org> . Acessado em maro de 2004.
19. SANTOS, Misael da Silva. Integrao de Modelos de Padres de Software com Ferramentas
de Apoio ao Desenvolvimento de Sistemas: Rose - um estudo de caso. 2004. Dissertao (Cincia
da Computao) - Universidade Federal do Cear.
20. MAGALHAES,Katy. Framepersist: Um Framework de Persistncia de Objetos para o
Desenvolvimento de Aplicaes para Dispositivos Mveis. 2005. Dissertao (Engenharia Eltrica DETI) - Universidade Federal do Cear.
21. SHANKAR, R.; LEE, Brian; FOX, Armando; HANRAHAN, P; ICrafter: A Service Framework for
Ubiquitous Computing Environments. Anais do Ubiquitous Computing Conference (UBICOMP), 21.,
2001.
22. RAATIKAINEN, Kimmo E. E.; Middleware for Mobile Aplications Beyond 3G.
International
113
Captulo 9
_______________________________________________________________________________________________________________________________________
25. KINDBERG, Tim; FOX, Armando. System Software for Ubiquitous Computing, IEEE Pervasive
Computing, v.1 n.1, p.70-81. Janeiro, 2002.
26. BANAVARF, G. Software Infraestructure and Design Challenges for Ubiquitous Computing
Applications. Communications of the ACM, vol.45, no.12, p.92-96, Dezembro, 2002.
27. ALLAN MENG KREBS; MARSIC, I.; Adaptative Applications For Ubiquitous Collaboration In
Mobile Environments. Annual Hawaii International Conference On System Sciences, 37., p.31
40, 2004.
28. OLSEN, D. R., JEFFERIES, S., NIELSEN, T., MOYES, W., FREDRICKSON, P. Cross-modal
Interaction using Xweb. Anais do UIST 00, p.191-200, Novembro de 2000. San Diego, CA, USA.
29. Site do Frum do UPnP - Universal Plug in Play. Disponvel em: <http://www.upnp.org/>.
Acessado em Maro de 2004.
30. CHI-HSING Chu; CHIEN-HSUAN Huang; LEE, M.; Building an XML-based unified user
interface system under J2EE architecture. Anais do International Symposium on Multimedia
Software Engineering, p.208 214, Dezembro, 2000
31. VILLANOVA-OLIVER, M.; GENSEL, J. ; MARTIN, H. Five models for integrating a progressive
access approach into Web-based Information Systems. The Twelfth International World Wide Web
Conference, Poster session, 20-24 May 2003, Budapest, Hungary.
32. VILLANOVA-OLIVER, M.; GENSEL, J. ; MARTIN, H. Progressive Views for Adaptable Webbased Information Systems. Object-Oriented Information Systems OOIS'02, LNCS, Montpellier,
Setembro 2-5, 2002.
33. GENSEL, J.; FREIRE, J.C. Junior, BARBEIRO, E.; VILLANOVA-OLIVER, M; MARTIN, H.
Adaptable Web Teaching with KIWIS. Int. Conference on Engineering Education (ICEE 2002).
Manchester, UK . 18 - 22 Agosto, 2002.
34. VILLANOVA-OLIVER, M.; GENSEL, J. ; MARTIN, H. Exploiting a progressive access model to
information. 2nd International Conference on Adaptive Hypermedia and Adaptive Web-Based
Systems, LNCS 2347, Ed. Springer, Malaga, Spain, Maio 29-31, 2002.
35. KURUMATANI, K.: Mass User Support by Social Coordination among Citizen in a Real
Environment.In: Chen, Shu-Heng; Ohuchi, Azuma (eds.): Multi-Agent for Mass User Support.
International Workshop (MAMUS 2003). Acapulco, Mexico, Agosto 10, 2003. LNAI, Vol. 3012.
Springer-Verlag, Berlin Heidelberg (2004) 116.
36. W3C- WWW CONSORTIUM, Site do frum de desenvolvimento de tecnologias para Web.
Disponvel em:<http::\\www.w3c.org >. Acessado em Janeiro de 2004.
37. ECLIPSE, Site da ferramenta eclipse. Disponvel em:<http::\\www.eclipse.org >. Acessado em
Janeiro de 2004.
38. RAMOS, Angela Carrillo, VILLANOVA-OLIVER, M.; GENSEL, J.; MARTIN, H. "Modelling with
Ubiquitous Agents a Web-based Information System Accessed through Mobile Devices", in
International Conference on Cooperative Information Systems (CoopIS 2004), Larnaca, Cyprus, 25
29, Outubro, 2004.
114
Captulo 9
_______________________________________________________________________________________________________________________________________
39. TAKAHASHI, K., AMAMIYA, S., IWAO, T.: An Agent-based Framework for Ubiquitous Systems.
In: Challenges in Open Agent Systems '03 Workshop (Challenge03). Melbourne, Australia, July 1415 2003. (2003) http://www.agentcities.org/Challenge03/papers.php. Janeiro, 2004.
40. DORNAN, ANDY. The Essential Guide to Wireless Communication Applications, Prentice Hall
Inc., 2001. ISBN 0-13-031716-0.
41. POSA.Buschmann et al, Pattern-Oriented Software Architecture, Wiley, 1996, ISBN:
0471958697.
42. BlueTooth. Disponvel em: <http://www.bluetooth.com>. Acessado em Agosto de 2003.
43. Java 2 Platform, Micro Edition (J2ME). Disponvel em <http://wireless.java.sun.com>. Acessado
em Maro de 2004.
44. Superwaba: The Java VM for PDAs. Disponvel em < http://www.Superwaba.com.br>.
Acessado em Maro de 2004.
45. VILJAMAA, A.. Pattern-Based Framework Annotation and Adaptation A systematic Approach,
2001. 118 f. Thesis (Licenciate Thesis in Computer Science) University of Helsinki, Finland.
46. GAMMA, E. R. HELM; JOHNSON, R.; VLISSIDES J. Design Patterns: Elements of Reusable
Object-Oriented Software. Reading, MA: Addison Wesley, 1995.
47. Site da tecnologia XML Composite Capability/Preference Profiles (CC/PP): Structure and
Vocabularie. Disponvel em: <http://www.w3.org/Mobile/CCPP/> . Acessado em Outubro de 2004.
48. PalmOne Aliance. Site da empresa que fabrica os Palms e os handhelds HandSpring.
Disponvel em: <http://www.palmone.com>. Acessado em Outubro de 2004.
49. SANTOS, Misael da Silva. Uma Proposta para a Integrao de Modelos de Padres de
Software com Ferramentas de Apoio ao Desenvolvimento de Sistemas. 104 p, Dissertao
(Mestrado em Cincia da Computao), Universidade Federal do Cear, Fortaleza, 2004.
50. BRINGEL FILHO, Jos de Ribamar Martins. FRAMESEC: Um Framework para a proviso de
segurana fim-a-fim para aplicaes no ambiente de Computao Mvel. 131 p, Dissertao
(Mestrado em Cincia da Computao), Universidade Federal do Cear, Fortaleza, 2004.
51. Java
Plataform
Enterprise
Edition
(J2EE).
Disponvel
em:
<
de
WebServices
do
Apache,
WebServices
utilizando
SOAP.
Disponvel
em:
115
Captulo 9
_______________________________________________________________________________________________________________________________________
56. Desenvolvimento
de
aplicae
para
PalmOS
utilizando
C++.
Disponvel
em
plataforma
de
desenvolvimento
de
jogos
para
celulares.
Disponvel
em
CodeWarrior
for
Palm
OS
v8.0.
Disponvel
em:
de
dados
para
PDAs: IBM
DB2
Everyplace.
Disponvel
em: <http://www-
<http://www.cs.washington.edu/research/constraints/web/badros-javaml-www9/>.
Acessado
em Outubro de 2004.
71. Site
do
JAXP.
Java
API
for
XML
Processing.
Disponvel
em:
116
Captulo 9
_______________________________________________________________________________________________________________________________________
73. IEEE Std 802.11. Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications, Maro, 1999.
74. UMAR, Amjad. E-Business and Distributed Systems Handbook: Platforms Module,2003, ISBN:
0972741496.
75. FIGUEIREDO, Thiago H. de Paula, LOUREIRO, A. A. F.MultiMAD: Uma Ferramenta
Multimodelo de Desenvolvimento de Aplicaes para Dispositivos Mveis In: Salo de
Ferramentas, XXIII Simpsio Brasileiro de Redes de Computadores, 2005, Fortaleza.
XXIII
1993.
Disponvel
em:
<ftp://st.cs.uiuc.edu/pub/papers/frameworks/OOPSLA93-frmwk-
T.;
LAYAIDA,
N.
"Content
Adaptation
and
Generation
Principles
for
117
Captulo 9
_______________________________________________________________________________________________________________________________________
86. Satellite Forms. Plataforma RAD para o desenvolvimento em Palm OS e Pocket PC. Disponvel
em: <http://www.satelliteforms.net/>. Acessado em Abril de 2004.
87. JOHNSON, R. E.; FOOTE, B. Designing Reusable Classes. Journal of Object-Oriented
Programming, 1988. Disponvel em:<ftp://st.cs.uiuc.edu/pub/papers/frameworks/designingreusable-classes.ps>. Acessado em Maio de 2003.
88. Site Internacional do Phlog. Disponvel em:http://www.phlog.net/. Acessado em Maio 2005.
89. BERHE, Girma; BRUNIE, Lionel; PIERSON, Jean-Marc, Modeling Service-Based Multimedia
Content Adaptation in Pervasive Computing, ACM Proceedings of the first conference on
computing frontiers (CF04). Ischia , Italy , Abril 14 - 16, 2004 pp. 60 69.
90. Site do Framework MVC Maverick. Disponvel em: <http://mav.sourceforge.net/>. Acessado
em Novembro de 2004.
91. Site do UML - Unified Modeling Language. Disponvel em: <http://www.uml.org>. Acessado em
Junho de 2005.
92. Tecnologia
XMI
XML
Metadata
Interchange.
Disponvel
em:
da
especificao
Java
Beans.
Disponvel
em:
Commom
Bean
Utils
para
uso
de
Reflection.
Disponvel
em:
118