Um Ambiente de Desenvolvimento de Aplicações Multi-Plataformas e Adaptativas Para Dispositivos Móveis

Embed Size (px)

DESCRIPTION

Um Ambiente de Desenvolvimento de Aplicações Multi-Plataformas e Adaptativas para Dispositivos

Citation preview

  • Universidade Federal do Cear Departamento de Computao

    Mestrado em Cincia da Computao

    Dissertao de Mestrado

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    Windson Viana de Carvalho

    Fortaleza-CE, 2005

  • Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    Este exemplar corresponde redao final da Dissertao devidamente corrigida e defendida por Windson Viana de Carvalho e aprovada pela Banca Examinadora.

    Fortaleza, 14 de junho de 2005

    Rossana Maria de Castro Andrade (Orientadora)

    Dissertao apresentada ao Mestrado de Cincia da Computao da Universidade Federal do Cear (UFC), como requisito parcial para a obteno do ttulo de Mestre em Cincia da Computao

  • iv

    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.

  • v

    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 multi-platform 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.

  • vi

    NDICE RESUMO.............................................................................................................................IV ABSTRACT ......................................................................................................................... V LISTA DE FIGURAS..................................................................................................... VIII LISTA DE TABELAS........................................................................................................IX LISTA DE ABREVIATURAS E SIGLAS ........................................................................ X 1. INTRODUO .......................................................................................................... 12

    1.1. CARACTERIZAO DO PROBLEMA E MOTIVAO ................................................. 12 1.2. OBJETIVOS............................................................................................................. 14 1.3. ORGANIZAO DA DISSERTAO.......................................................................... 16

    2. ADAPTAO PARA DMS: DESAFIOS E SOLUES...................................... 18 2.1. DEFINIO E CARACTERSTICAS DE ADAPTAO.................................................. 18 2.2. DESCRIO, INDEPENDENTE DE DISPOSITIVO E PLATAFORMA, DA INTERFACE DAS APLICAES....................................................................................................................... 20

    2.2.1. Adaptive Applications for Ubiquitous Collaboration .............................. 20 2.2.2. ICrafter: A Framework for Ubiquitous Computing Environments.......... 22 2.2.3. Using XML to semi-automatically derive user interfaces........................ 24 2.2.4. XML-based unified user interface system under J2EE architecture........ 24 2.2.5. MAB - Mobile Application Builder .......................................................... 25 2.2.6. UIML User Interface Markup Language .............................................. 26 2.2.7. Resumo comparativo .................................................................................... 27

    2.3. ARQUITETURAS DE ADAPTAO DE CONTEDO.................................................... 29 2.3.1. Adaptation d'une application multimdia par un code Mobile................ 30 2.3.2. Context-aware adaptation for mobile devices ......................................... 31 2.3.3. Adaptation in Mobile Computing............................................................. 32 2.3.4. Resumo Comparativo ................................................................................... 33

    2.4. CONCLUSO .......................................................................................................... 34 3. PLATAFORMAS DE PROGRAMAO PARA DMS E FRAMEWORKS ...... 36

    3.1. PLATAFORMAS DE PROGRAMAO........................................................................ 36 3.1.1. J2ME............................................................................................................. 37 3.1.2. Superwaba .................................................................................................... 41 3.1.3. Resumo comparativo entre as plataformas .................................................. 43

    3.2. FRAMEWORKS E PADRES DE PROJETO ................................................................. 45 3.3. CONCLUSO .......................................................................................................... 47

    4. FRAMEWORK XFORMUI...................................................................................... 49 4.1. XFORMS ................................................................................................................ 49 4.2. ANLISE DE DOMNIO ............................................................................................ 51 4.3. FRAMEWORK XFORMUI......................................................................................... 53

    4.3.1. MainXForm .................................................................................................. 55

  • vii

    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. USER INTERFACE GENERATOR ........................................................................ 67

    5.1. VISO GERAL DA FERRAMENTA USER INTERFACE GENERATOR ............................ 67 5.2. LINGUAGEM SUPORTADA PELA FERRAMENTA........................................................ 69

    5.2.1. Suporte ao XForms....................................................................................... 70 5.2.2. Suporte ao XML Schema .............................................................................. 72 5.2.3. Suporte ao Cascading Style Sheets (CSS) .................................................... 73

    5.3. REGRAS DE MAPEAMENTO PARA AS PLATAFORMAS ............................................... 74 5.4. PROCESSO DE GERAO DE CDIGO ...................................................................... 75 5.5. A ESTRUTURA DO CDIGO GERADO ....................................................................... 76 5.6. PLUGIN DO ECLIPSE ............................................................................................... 77 5.7. CONCLUSO .......................................................................................................... 79

    6. FRAMEWORKS MOBILE ADAPTER, REQUISITOR E MOBAC..................... 80 6.1. CC/PP E UAPROF ................................................................................................. 80 6.2. MOBILE ADAPTER E MOBAC ................................................................................ 81 6.3. ARQUITETURA DO MOBILE ADAPTER .................................................................... 84 6.4. FRAMEWORK REQUISITOR ...................................................................................... 86 6.5. ARQUITETURA DO MOBAC ................................................................................... 89 6.6. CONCLUSO .......................................................................................................... 91

    7. ESTUDO DE CASO................................................................................................... 92 7.1. M-FLOG................................................................................................................. 92 7.2. APLICAO NO DM............................................................................................... 94 7.3. MAS ADAPTATIVO ............................................................................................... 98

    7.3.1. Adaptao de Textos................................................................................... 100 7.3.2. Adaptao de Imagens ............................................................................... 102

    7.4. ANLISE DE EFICINCIA ...................................................................................... 103 7.5. CONCLUSO ........................................................................................................ 107

    8. CONCLUSO........................................................................................................... 108 8.1. CONTRIBUIES E RESULTADOS ALCANADOS................................................... 108 8.2. TRABALHOS FUTUROS ......................................................................................... 109

    9. BIBLIOGRAFIA ...................................................................................................... 112

  • viii

    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

  • ix

    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

  • x

    LISTA DE ABREVIATURAS E SIGLAS API Application Programming Interface CC/PP Composite Capability/Preference Profiles CLDC Connected Limited Device Configuration CSS Cascading Style Sheets DM Dispositivo Mvel EDGE Enhanced Data GSM Environment GPL GNU General Public License GPRS General Packet Radio Service GSM Global System for Mobile Communications HTML HyperText Markup Language IDE Integrated Development Environment IEEE Institute of Electrical and Electronic Engineers IP Internet Protocol J2EE Java 2 Enterprise Edition J2ME Java 2 Micro Edition J2SE Java 2 Standard Edition KVM Kilobyte Virtual Machine LAN Local Area Network LGPL Lesser General Public License MAS Mobile Application Server MIDP Mobile Information Device Profile MobAC Mobile Adapter Client NAC Negotiation and Adaptation Core PDA Personal Digital Assitant RTP Real-Time Transport Protocol SDK Software Development Kit SMIL Synchronized Multimedia Integration Language SQL Structured Query Language UAProf User Agent Profiling

  • xi

    UID User Interface Description UIG User Interface Generator UPnP Universal Plug and Play VoiceXML Voice Extensible Markup Language W3C World Wide Web Consortium WAP Wireless Application Protocol WLAN Wireless Local Area Network WML Wireless Markup Language WTK Wireless Toolkit XHTML Extensible HyperText Markup Language XML eXtended Markup Language XSL eXtensible Stylesheet Language XSLT eXtensible Stylesheet Language Transformation

  • Captulo 1 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    12

    1. Introduo Esta dissertao apresenta um ambiente para desenvolvimento de aplicaes multi-

    plataforma 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.

    1.1. Caracterizao do Problema e Motivao

    O desenvolvimento de aplicaes para dispositivos mveis tornou-se uma rea de grande interesse para a computao devido ao aumento da disponibilidade desses dispositivos no mercado e a sua crescente integrao com as tecnologias de comunicao sem fio [40]. Celulares com suporte a WAP, GPRS ou EDGE e handhleds, como Palms e Pocket PCs, com Bluetooth [42] e IEEE 802.11 [73] fazem crescer a demanda por novos tipos de servios e aplicaes nas mais diversas reas (e.g., sistemas de vendas em campo, coletores de informao, aplicaes de entretenimento).

    Essa integrao dos dispositivos mveis (DMs) com as redes de comunicao de dados, permitiu aos sistemas corporativos e aos sistemas Web, que antes interagiam somente com computadores desktops, serem acessados tambm por dispositivos mveis [9]. Contudo, esses DMs apresentam diferentes restries de processamento, memria, bateria e largura de banda. Eles possuem ainda diferenas nas formas de interao do usurio com as aplicaes e nas dimenses e cores dos displays. Alm disso, o suporte a plataformas de programao varia de um dispositivo para outro, dificultando a adoo de uma nica plataforma para o desenvolvimento das aplicaes.

    Desta forma, a heterogeneidade dos dispositivos e a integrao com as tecnologias de comunicao sem fio tm imposto desafios para o desenvolvimento de aplicaes. Entre os desafios encontrados na pesquisa bibliogrfica realizada nesta dissertao [22][76][12][25][26], destacam-se os seguintes: a descrio, independente de dispositivo e

  • Captulo 1 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    13

    plataforma, da interface com usurio; a adaptao do contedo acessado pelas aplicaes; e o desenvolvimento de aplicaes multi-plataformas.

    O problema da descrio das interfaces das aplicaes consiste na dificuldade que o engenheiro de software encontra em projetar as interfaces com usurio para que estas possam se adequar a diferentes tipos de dispositivos e executar em diferentes plataformas de programao. Para solucionar esse desafio, podemos citar os seguintes trabalhos: o UIML (User Interface Markup Language) [14], o Icrafter [21], o UID (User Interface Description) [16] , o MAB (Mobile Application Builder) [17] e MultiMad [75]. Esses trabalhos propem a definio da interface utilizando documentos XML (i.e., eXtended Markup Language) [36]. Essa definio feita atravs de marcaes (i.e., tags) pr-estabelecidas para a criao dos componentes de interface. Depois, geradores de cdigo transformam a descrio inicial em cdigo executvel ou em documentos de uma linguagem de marcao (e.g., XHTML). No caso do MAB e do MultiMad, ferramentas grficas so disponibilizadas para facilitar a criao das interfaces das aplicaes.

    Outros trabalhos foram propostos para prover a adaptao de contedo baseada nas caractersticas dos dispositivos, nas preferncias dos usurios e no contexto do ambiente em que o dispositivo se encontra (e.g., mudana na largura de banda). 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

  • Captulo 1 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    14

    adaptao de contedo. Portanto, necessria a criao de um ambiente para integrar e aprimorar essas solues existentes para os desafios expostos.

    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.

  • Captulo 1 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    15

    Figura 1 - Viso geral da codificao da aplicao que executa no dispositivo mvel

    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.

  • Captulo 1 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    16

    Figura 2 - Viso geral do processo de construo de MAS Adaptativos

    Para prover o desenvolvimento de aplicaes multi-plataformas e adaptativas, os frameworks MobAC e XFormUI so implementados em trs plataformas de programao J2ME MIDP 1.0/CLDC 1.0 [43], J2ME MIDP 2.0/CLDC 1.1 [43] e Superwaba [44]. Alm disso, o ambiente proposto projetado para facilitar a construo de novas implementaes dos frameworks em outras plataformas.

    1.3. Organizao da Dissertao

    Essa dissertao est dividida em mais 8 captulos que sero descritos a seguir: No Captulo 2, apresentado um conjunto de definies para adaptao e so

    detalhados os desafios e as solues existentes descritos na Seo 1.1 no desenvolvimento de aplicaes para dispositivos mveis.

    No Captulo 3, apresentada uma introduo sobre frameworks e sobre as plataformas de programao investigadas para a construo e a implementao do ambiente proposto na dissertao.

  • Captulo 1 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    17

    No Captulo 4, so enumerados os requisitos desejados para a construo de um framework de interface grfica e apresentado o projeto e os detalhes de implementao do framework XFormUI para a construo de interfaces grficas multi-plataformas.

    No Captulo 5, apresentada a ferramenta de gerao de cdigo User Interface Generator (UIG) proposta nesta dissertao para agilizar o desenvolvimento de aplicaes para dispositivos mveis.

    No Captulo 6, so apresentados os frameworks Mobile Adapter, MobAC e Requisitor que, em conjunto, permitem a construo de Mobile Aplication Servers (MAS) que adaptam contedo e seus clientes para DMs.

    No Captulo 7, descrito um estudo de caso construdo para exemplificar como o ambiente proposto pode ser utilizado para construir um MAS que adapta contedo e uma aplicao para DM multi-plataforma e adaptvel a descrio. Uma avaliao da eficincia do uso da adaptao de imagens contida no estudo de caso tambm apresentada.

    No Captulo 8, a concluso da dissertao apresentada com as principais contribuies e os resultados alcanados, alm de sugestes de trabalhos futuros.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    18

    2. Adaptao para DMs: Desafios e Solues Neste captulo, so detalhados os desafios e as solues existentes no cenrio atual do

    desenvolvimento de aplicaes para DMs. Como descrito no Captulo 1, esses desafios so impostos pela heterogeneidade e pela integrao desses dispositivos com as tecnologias de comunicao sem fio.

    Na Seo 2.1, so apresentadas a definio e os diferentes modos de adaptao. Na Seo 2.2, solues para a descrio, independente de dispositivo e de plataforma, da interface das aplicaes so descritas. Por fim, na Seo 2.3, so apresentadas arquiteturas de adaptao de contedo encontradas na literatura.

    2.1. Definio e Caractersticas de Adaptao Adaptao, de forma mais geral, definida como o relacionamento entre um organismo e seu ambiente tal que uma mudana ou uma coleo de mudanas do organismo resultam em uma melhor adequao em um contexto particular [76]. Portanto, ser adaptvel significa ter a habilidade de modificar o comportamento para responder a eventuais mudanas de um ambiente. Analogamente, em cincia da computao, uma aplicao adaptvel quando tm a capacidade de se adequar, de forma tima, a mudanas nas circunstncias em que executa [22]. Assim, se o ambiente de execuo mudar, a aplicao capaz de se modificar para executar de uma forma mais eficiente nas novas condies.

    No caso de aplicaes para DMs, a heterogeneidade e a dinamicidade do ambiente de computao mvel tornam a adaptao da aplicao uma tcnica necessria. M. Wieiser denomina de calm computing [23] a adaptao de uma aplicao sem a interveno humana. No desenvolvimento de aplicaes adaptativas esse o objetivo a ser alcanado [24]. Contudo, a construo desse tipo de aplicao representa um obstculo ainda maior para o engenheiro de software.

    A adaptao de uma aplicao para DMs pode ocorrer de vrias formas e em diferentes momentos. Entre os modos de adaptao, destacam-se os seguintes [81][27][26][25][76]:

    Adaptao descrio: a capacidade de descrever uma aplicao permitindo sua adequao ou transformao em diferentes linguagens ou plataformas de programao.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    19

    Nesse caso, a aplicao descrita em uma meta-linguagem e transformada em uma linguagem de programao (e.g., Java, C++) ou em uma linguagem de marcao de hipertexto como Extensible HyperText Markup Language (XHTML) ou Wireless Markup Language (WML).

    Adaptao ao dispositivo: a habilidade de uma aplicao de adequar seu modo de execuo s caractersticas do dispositivo. Essas caractersticas podem ser estticas, como nmero de cores e dimenses da tela, e dinmicas, como a quantidade de memria e bateria disponveis. Essa adaptao pode ser especfica para um dispositivo ou ocorrer tambm em relao a uma classe deles (e.g., celulares, handhelds).

    Adaptao ao contexto: a propriedade de uma aplicao de adequar-se a mudanas no contexto em que executa. As mudanas no contexto podem ser decorrentes, por exemplo, das alteraes da localizao do dispositivo, do interesse do usurio e da largura de banda de comunicao.

    Esses modos de adaptao podem acontecer tanto em tempo de construo como em tempo de execuo. A adaptao em tempo de construo ocorre quando uma aplicao transformada para se adequar mudana de um ambiente antes de executar nele. Esse tipo de adaptao exige a interveno do engenheiro de software e caracterizada pela construo de novas verses da aplicao. Por exemplo, uma aplicao que tem uma verso para executar em celulares e uma verso para executar em handhelds.

    No caso da adaptao em tempo de execuo, a aplicao adaptvel modifica seu comportamento, sem a interveno do engenheiro de software, para atender as mudanas no ambiente em que j est executando. Por exemplo, uma aplicao de visualizao de streams de vdeos capaz de modificar as propriedades do vdeo para se adequar s variaes na banda passante do canal de comunicao.

    Os modos de adaptao apresentados anteriormente no esto restritos a uma mudana no modo de execuo das aplicaes nos DMs. A adaptao pode tambm estar relacionada adequao dos dados que a aplicao acessa. Nesse caso, a adaptao denominada de adaptao de contedo.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    20

    2.2. Descrio, independente de dispositivo e plataforma, da interface das aplicaes

    Como foi mencionado anteriormente, uma das formas de adaptao a adaptao descrio. Nesse tipo de adaptao, a aplicao tem que ser descrita em uma meta linguagem, independente de uma linguagem de programao ou de marcao, que executa em um determinado dispositivo. Para prover esse tipo de adaptao, foram propostos trabalhos [14] [21] [16] [17] que utilizam documentos XML para definir a interface da aplicao e, em alguns casos, definir tambm seus dados.

    Descrever uma interface de uma aplicao independente de uma plataforma de programao e de um dispositivo, uma tarefa complexa, j que esses dispositivos possuem diversas formas de exibio de dados e de interao com o usurio. Portanto, descrever, por exemplo, que uma interface de uma aplicao composta por botes e reage a eventos de click, pode no ser adequado.

    Com o objetivo de solucionar a questo da definio da interface, os trabalhos descritos nas subsees seguintes sugerem uma outra forma de descrio dos componentes e dos eventos das aplicaes. Cada trabalho ser apresentado atravs de um resumo contendo seus objetivos, resultados alcanados, propostas de trabalhos futuros e uma classificao quanto a tipo de adaptao de acordo com as definies apresentadas na Seo 2.1. No final dessa seo, apresentado um resumo comparativo das solues.

    2.2.1. Adaptive Applications for Ubiquitous Collaboration 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

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    21

    largura de banda; e o suporte visualizao heterognea dos dados, na qual a visualizao adaptada s potencialidades do dispositivo.

    No trabalho apresentada uma arquitetura para suportar o desenvolvimento de ferramentas para facilitar a colaborao em ambientes heterogneos. Essa arquitetura define uma linguagem para a descrio genrica das aplicaes e mapeia essa descrio em uma implementao especfica. A linguagem de descrio composta de um conjunto de componentes chamados de interactors, semelhante abordagem do XWeb[28], que correspondem visualizao de um objeto ou de um recurso do mundo compartilhado (e.g., um rob em uma sala, um conjunto de lmpadas controladas por vrios dispositivos).

    Na arquitetura, foi definida uma linguagem baseada em XML para a especificao desses interactors. XSL (eXtensible Stylesheet Language) [36] e processadores XSLT (XSL Transformation) mapeiam essa especificao em uma visualizao adaptada a classe do dispositivo alvo. No caso de um computador, gerada uma visualizao tri-dimensional, e no caso de um PDA, so geradas plantas bidimensionais.

    A arquitetura foi definida para possibilitar que eventos externos ou eventos indiretos das aplicaes de visualizao (e.g., mover o rob pra frente) sejam refletidos em todas as visualizaes. Dessa forma, toda a lgica e os dados da aplicao concentram-se no servidor. Esse, por sua vez, gera a aplicao a ser enviada aos dispositivos quando esses requisitam ou quando ocorre alguma alterao nos objetos do ambiente colaborativo.

    Como foi mencionado, o processo de gerao da aplicao acontece no servidor, que responsvel por mapear a descrio da aplicao e dos dados em uma visualizao Java que enviada para o dispositivo que fez a requisio da aplicao. Desta forma, a arquitetura prov adaptao em tempo de execuo em relao descrio e a classes de dispositivos. Na Figura 3, ilustrado esse mecanismo de mapeamento.

    Para testar a arquitetura, foi construda uma aplicao, o SlowTetris, que possui quatro objetos no ambiente colaborativo. Os dados dos objetos, como dimenses e localizao, foram descritos utilizando os interactors. Esses eram mapeados em cWorld, um Software Development Kit (SDK) de Java 3D, e em PocketEscape, um ambiente de visualizao bidimensional em Pocket PC. O SlowTetris possibilita apenas a visualizao dos quatro objetos, sem eventos de interao da aplicao mvel com eles.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    22

    Essa abordagem torna a aplicao mvel uma visualizao do mundo compartilhado permitindo poucos eventos e limitando as possibilidades de aplicaes que possam ser construdas. Entretanto, o uso de XML para descrever a interface da aplicao e o uso de XSLT para mape-la representam boas estratgias para o provimento de adaptao descrio. Como trabalhos futuros, foi apresentada a possibilidade de serem geradas aplicaes J2ME MIDP [43].

    Figura 3 - Processo de mapeamento das aplicaes ( extrado de [27] )

    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

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    23

    compartilhar dados e colaborar na realizao de tarefas (e.g., apresentaes, revises de projeto). Os espaos de trabalho interativos podem ser salas de reunies, de conferncias ou bibliotecas.

    Baseado nas caractersticas dos espaos interativos citadas anteriormente, a arquitetura do ICrafter prope a centralizao das aplicaes em um servidor que possui informaes sobre o contexto do ambiente. Na estrutura do ICrafter, os clientes devem requisitar um servio atravs de um pedido ao servidor de UIs (i.e., interfaces de usurios) especficas para o dispositivo utilizado. O pedido recebido por uma entidade chamada de Interface Manager (IM). O IM, ao receber um pedido para uma UI de um servio, seleciona primeiramente um gerador baseado no dispositivo, que realizou o pedido, e no servio para qual a UI foi pedida. Em seguida, o IM executa o gerador que cria uma descrio da aplicao para ser enviada ao dispositivo para que ele monte a interface (e.g., HTML para um notebook com navegador).

    Para criar as UIs, os geradores necessitam de acesso informao dos servios, do dispositivo, e do contexto do espao interativo. Essas informaes esto armazenadas no servidor, num espao chamado de Context Memory, sendo esse, compartilhado por todos os dispositivos que fazem parte do ambiente.

    Os dispositivos ubquos, ao receberem a descrio das UIs do servio, devem ser capazes de transform-las em interfaces permitidas pelo dispositivo. No ICrafter, foram implementadas: a gerao de VoiceXML, HTML e SUIML (Swing UI Markup Language). O SUIML uma linguagem tambm proposta no ICrafter para ser utilizada em dispositivos que suportam Java Swing (i.e., uma biblioteca grfica do Java) atravs da instalao de um middleware chamado de SUIML Interpreter. Esse middleware transforma uma interface descrita em SUIML em componentes grficos da API do Java.

    O ICrafter semelhante, em termos de concepo, ao trabalho descrito na Seo 2.2.1, com a diferena de exigir no dispositivo que requisita um servio a existncia de uma aplicao capaz de transformar os UIs em uma interface exibvel no dispositivo. Desta forma, tambm prov adaptao da interface das aplicaes, em tempo de execuo,

    adaptao descrio e s classes de dispositivos.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    24

    2.2.3. Using XML to semi-automatically derive user interfaces Em [16], apresentada uma abordagem para gerao semi-automtica de interfaces de aplicaes a partir de XML. O artigo apresenta uma linguagem prpria para descrio da interface, baseada em XML, denominada de UID (User Interface Description) que permite a descrio da interface da aplicao atravs dos UIOs (User Interface Objects) que representam componentes de entrada e sada de dados. O engenheiro de software deve especificar um mapeamento de cada UIO, descrito na interface da aplicao, para um componente de uma linguagem de programao (e.g., Java) ou uma linguagem de marcao (e.g.,VoiceXML) atravs de um documento chamado UIM (User Interface Mapping).

    No trabalho [16], ao contrrio dos trabalhos [27] e [21], no foram especificadas regras para mapear a linguagem UID para uma linguagem de marcao ou de programao. Essa tarefa deveria ser realizada pelo engenheiro de software e esse poderia tambm utilizar a linguagem DEVDEF proposta para especificar as caractersticas do dispositivo alvo da aplicao. Dessa forma, usando a definio inicial e as regras escritas pelo engenheiro de software, o processo de mapeamento seria realizado.

    Um prottipo inicial de uma ferramenta que realiza o mapeamento para WML foi desenvolvido. Contudo, a ferramenta no realizava o processo completo de gerao do cdigo WML, sendo a sua finalizao apresentada como um trabalho futuro. A ferramenta gera em tempo de construo o WML a partir dos UIDs descritos no XML. Assim, a ferramenta prov adaptao, em tempo de construo, descrio da interface das aplicaes.

    importante mencionar que na concluso do trabalho foi destacado que padres como Composite Capability/Preference Profiles (CC/PP) [47] e Universal Plug and Play (UPnP) [29] podem ser mais adequados para a descrio do dispositivo do que o DEVDEF proposto pelo trabalho.

    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

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    25

    (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. MAB - Mobile Application Builder Em [17], apresentada uma soluo para o problema de descrio de aplicaes independentes de dispositivo. O trabalho prope que a descrio da aplicao seja realizada em XML e apresenta a possibilidade de gerar cdigo nativo ou intermedirio para um dispositivo alvo, assim como, a possibilidade de acrscimo de cdigos na linguagem de programao (e.g., J2ME MIDP).

    No trabalho, foi apresentada uma ferramenta, intitulada MAB (Mobile Application Builder), que possibilita a gerao de cdigo J2ME MIDP para executar em PalmOS utilizando KVM/CLDC [43], assim como a gerao de cdigo WML para executar em

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    26

    celulares atravs do uso de WAP [114]. A ferramenta possibilita a criao de aplicaes cliente/servidor que utilizam trs componentes de interface: listas, texto e formulrios. A interface da aplicao construda atravs de um mdulo grfico que possibilita a montagem dos componentes que compem a interface, bem como a relao entre eles. A ferramenta gera uma descrio da aplicao em XML que depois convertida no cdigo alvo. Assim, a ferramenta prov adaptao, em tempo de construo, descrio da interface das aplicaes.

    A incorporao e a importao de dados so feitas atravs do uso de XML, mas o acesso a dados no dispositivo no possibilitado pela ferramenta, sendo esse, um papel adicional do programador que deve utilizar o recurso de insero de cdigos externos atravs da invocao de mtodos de uma classe abstrata. A ferramenta construda em Delphi e a tecnologia utilizada na aplicao servidor Java Servlets [51] rodando em um servidor TomCat. Uma aplicao teste de m-Commerce criada para validar o uso da ferramenta.

    2.2.6. UIML User Interface Markup Language A UIML [52] uma linguagem declarativa baseada em XML para especificao de

    interfaces de usurio independente de dispositivo. A UIML permite a descrio da interface em cinco partes: description, structure, data, style e events. Na Figura 4, apresentada uma aplicao que segue essa estrutura do UIML.

    Em , declara-se os elementos que compem a interface e a classe a qual pertence cada elemento. Em , descreve-se como os componentes se agrupam para definir a interface (e.g. um boto dentro de um painel dentro de um formulrio). Em , descrita a informao que deve ser exibida pela interface para cada componente (e.g. OK para um boto). Em , definido o mapeamento de cada classe para um componente de uma linguagem real e em permitido associar eventos em linguagens reais (e.g. Java) aos componentes descritos.

    A plataforma proprietria LiquidUI [113] fornece uma aplicao servidor para realizar mapeamentos de aplicaes escritas em UIML para WML, VoiceXML e HTML dependendo da requisio realizada por um navegador via HTTP. Essa ferramenta prov, portanto, adaptao, em tempo de execuo, descrio da interface das aplicaes.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    27

    O UIML apresenta como desvantagens: a permisso para que quaisquer componentes de interface possam ser definidos, a exigncia de que cada aplicao possua uma folha de estilo para mapeamento, a definio de eventos dependentes de uma implementao real e a ausncia de grande quantidade de documentao.

    Figura 4 - Estrutura de uma aplicao UIML (extrado de [14])

    2.2.7. Resumo comparativo As solues de adaptao descrio expostas anteriormente tm em comum o uso de uma meta linguagem para descrever as interfaces das aplicaes em XML. Essa meta linguagem em um determinado momento convertida em cdigo de uma linguagem de programao ou de uma linguagem de marcao. Essa converso pode ocorrer tanto em tempo de construo quanto em tempo de execuo.

    A ferramenta User Interface Generator (UIG) proposta nesta dissertao e detalhado no Captulo 5 utiliza a mesma abordagem de descrio das aplicaes em XML. E realiza, em tempo de construo, a converso desse XML para um cdigo executvel nas plataformas de programao para DMs.

    Na Tabela 1, apresentada um resumo das principais caractersticas das solues descritas e da ferramenta UIG possibilitando uma melhor visualizao das caractersticas comuns e das diferenas existentes entre as solues. As caractersticas apresentadas so as seguintes:

    I - Tipos de Aplicaes alvo; II - Plataformas de programao das aplicaes geradas;

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    28

    III - Componentes grficos das interfaces das aplicaes; IV - Definio de estilos para as interfaces; V - Gerao de comportamento esperado para as interfaces; VI - Exigncia de middlewares para execuo das aplicaes; VII - Existncia de uma ferramenta grfica para auxiliar a edio; VIII - Integrao com arquiteturas de adaptao de contedo; IX - Estratgia de adaptao.

    Para facilitar a construo da tabela foram criados acrnimos para dois trabalhos: AAUC referente ao trabalho Adaptive Applications for Ubiquitous Collaboration e UID referente ao trabalho Using XML to semi-automatically derive user interfaces. Os demais acrnimos j so adotados nos prprios trabalhos expostos anteriormente.

    AAUC ICrafter UID MAB UIG

    I Aplicaes para ambientes

    colaborativos

    Aplicaes para espaos

    interativos

    Aplicaes com formulrios

    Aplicaes com formulrios

    Aplicaes com formulrios

    II PockectSpace e J2SE com 3D

    VoiceXML, HTML e SUIML

    WML WML e J2ME MIDP 1.0

    Superwaba, J2ME MIDP 1.0 e 2.0

    III interactors UIs criados pelo engenheiro de software para

    cada servio do espao interativo

    O engenheiro cria os

    componentes UIO de entrada

    de dados

    Listas, Textos, Formulrios com

    campos de entrada de dados e datas

    10 componentes do XForms e o

    image do XHtml

    IV - - - - Uso de CSS (i.e., Cascading

    Style Sheets) para definio de cores e atributos

    para definir alinhamento

    V Uma ao em um interactor reflete em uma mudana

    no modelo compartilhado

    Uma ao em um UI invoca um

    servio no servidor

    - Passagem de parmetros entre

    formulrios

    Uso de XML Schema para definio da validao da

    entrada de dados VI A aplicao no

    PDA exige o PockectSpace

    SUIML Interpreter para

    gerao em SUIML

    - - -

    VII - - - Ferramenta para definies dos

    formulrios e da interao entre eles

    Plugin para o Eclipse que

    facilita a configurao da

    gerao de cdigo

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    29

    gerao de cdigo VIII A arquitetura

    adapta o modelo em relao visualizao

    - - - O cdigo gerado facilmente

    integrvel ao MobAC

    IX XSLT pr-estabelecidos para a transformao

    do XML

    O engenheiro cria templates para

    mapear o resultado dos

    servios nos UIs

    O engenheiro escreve um UIM com as

    regras de mapeamento

    A ferramenta contm os

    mapeamentos definidos

    XSLT pr-estabelecidos para a transformao

    do XML

    Tabela 1 Resumo comparativo de solues para descrio da interface com usurio

    2.3. Arquiteturas de Adaptao de Contedo Na Seo 2.2, foram apresentadas solues para o problema de definio, independente de dispositivo, da interface de uma aplicao. Contudo, a adaptao de uma aplicao no est restrita a sua interface com usurio. Como mencionado no Captulo 1, a integrao dos dispositivos mveis com as redes de comunicao de dados permitiu aos sistemas corporativos e aos sistemas Web, que antes interagiam somente com computadores desktops, serem acessados tambm por dispositivos mveis [9]. Essa integrao imps a exigncia de um outro tipo de adaptao para as aplicaes: a adaptao de contedo, j que as informaes dos sistemas corporativos e dos sistemas Web, em geral, no esto preparadas para serem exibidas por esses dispositivos [12].

    Nesses casos em que um sistema acessado por diferentes dispositivos e por computadores desktops, o contedo deve ser cuidadosamente selecionado e adaptado s condies restritivas do equipamento de destino (e.g. dimenses do display, quantidade de cores, memria disponvel). Obviamente, que o mesmo contedo direcionado para um computador fixo (i.e. desktop) no deve ser enviado a um celular, por exemplo. Nesse caso, tanto deve haver reduo das informaes, como modificao da forma de apresentao dos dados.

    Contudo, a adaptao de contedo no, necessariamente, baseia-se somente nas caractersticas dos dispositivos que acessam as informaes. As preferncias e o contexto do usurio que utiliza a aplicao tambm podem ser relevantes nessa adaptao. Informaes sobre a localizao, o perfil e os parmetros de qualidade de servio do usurio so importantes para a deciso de filtragem de informao [9]. Essa adaptao

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    30

    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: Adaptao de contedo baseada em agentes mveis. Nesse tipo de

    adaptao de contedo, a aplicao no DM contm um agente mvel capaz de coletar dados sobre o dispositivo e usurio e migrar para uma rede (e.g a Internet) com intuito de buscar informaes nos servidores para a aplicao. Dentre os trabalhos que descrevem solues para esse tipo de adaptao podemos citar o PUMAS [38] , o KODAMA [35] e o CONSORT [39] .

    Adaptao de contedo baseada em proxys ou gateways. Nesse tipo de adaptao de contedo, imagens, vdeos, udio e pginas Web, so requisitadas pelas aplicaes atravs de gateways ou proxies que so responsveis por adaptar as informaes utilizando as caractersticas do dispositivo ou do usurio que as acessa.

    Nas subsees seguintes so descritos trs trabalhos que utilizam a estratgia de adaptao de contedo atravs de proxys e gateways. Esses trabalhos so fortemente relacionados soluo de adaptao de contedo do ambiente proposto nesta dissertao.

    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

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    31

    segundo no vdeo adaptado. Entretanto, o trabalho no apresenta uma abordagem para coletar as informaes sobre os dispositivos mveis e enviar essas caractersticas ao proxy para realizar a adaptao.

    2.3.2. Context-aware adaptation for mobile devices Em [12], apresentada uma arquitetura de adaptao de documentos Web para dispositivos mveis, intitulada de NAC (Negotiation and Adaptation Core). Nessa arquitetura, a adaptao do contedo modifica o layout dos documentos baseado nas caractersticas do dispositivo cliente e das preferncias do usurio. Para realizar a adaptao, um conjunto de regras de converso estabelecido na arquitetura. Essas regras so utilizadas por um proxy para realizar a transformao dos documentos.

    Um repositrio dos perfis dos usurios e dos dispositivos criado para fornecer as caractersticas necessrias para adaptao. Esses perfis encontram-se descritos no padro proposto pelo World Wide Web Consortium (W3C) [36] para a descrio de perfis conhecido como Composite Capability/Preference Profiles (CC/PP) [46]. Os vocabulrios para a construo dos documentos CC/PP utilizam a linguagem UPS (Universal Profiling Schema) proposta nesse mesmo trabalho.

    O acesso do proxy aos perfis realizado utilizando a tecnologia SOAP [55] para acessar WebServices. Assim, quando um dispositivo deseja acessar um documento Web, ele requisita ao proxy, que obtm o documento original dos servidores de contedo e o documento CC/PP com o perfil do dispositivo. O proxy realiza a adaptao baseada nas regras pr-estabelecidas e devolve ao dispositivo o documento transformado.

    Os documentos Web podem ser adaptados para a lngua de preferncia do usurio. Neste caso, o documento original contido no servidor Web deve ser descrito em SMIL [10], uma tecnologia XML que permite a descrio de contedo com alternativas, por exemplo, textos em ingls e francs. Assim, o proxy retira o contedo descrito na lngua de preferncia do usurio e o devolve ao dispositivo. Nesse caso, uma adaptao de contedo, em tempo de execuo, ao contexto (i.e., preferncias do usurio e perfil do dispositivo).

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    32

    Outra forma de adaptao exposta refere-se apresentao dos documentos que podem ser convertidos de XHTML para WML caso sejam acessados por celulares. Nesse caso, uma adaptao de contedo, em tempo de execuo, ao dispositivo.

    Uma importante desvantagem desta arquitetura a necessidade de descrever cada novo dispositivo em UPS, que dificulta a escalabilidade dessa soluo. Outro problema decorre do fato da adaptao, em alguns casos, necessitar de documentos alternativos para cada requisio. Na Figura 5, ilustrada essa arquitetura.

    Figura 5 - Arquitetura NAC, retirado de [12]

    2.3.3. Adaptation in Mobile Computing 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

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    33

    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.

    Figura 6 - Arquitetura proposta em [11]

    2.3.4. Resumo Comparativo Na Tabela 2, apresentada um resumo das principais caractersticas das arquiteturas

    de adaptao de contedo descritas anteriormente. As arquiteturas so comparadas ao framework Mobile Adapter proposto nesta dissertao possibilitando uma melhor visualizao das caractersticas comuns e das diferenas existentes entre as solues. As caractersticas abordadas no resumo comparativo so:

    I - Tipos de Aplicaes alvo; II - Processo de captura das caractersticas dos dispositivos; III - Descrio dos perfis do dispositivo e do usurio; IV - Integrao com aplicaes para dispositivos mveis; V - Tipos de Contedo Adaptado; VI - Estratgias de adaptao.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    34

    Adaptation

    par un code

    mobile

    NAC Mobile

    Computing

    Mobile Adapter

    I Aplicaes multimdia Web

    Aplicaes multimdia para

    Web

    Aplicaes multimdia para Web

    Mobile Application Servers (MAS)

    II - Um monitor no dispositivo captura as caractersticas dinmicas e os

    identificadores dos perfis do usurio e

    do dispositivo

    Um monitor no dispositivo captura as caractersticas e envia

    a cada requisio

    Um monitor no dispositivo captura as caractersticas

    dinmicas, o identificador do usurio e a URI do

    documento UAProf que descreve o dispositivo

    III - Utiliza CC/PP para descrio dos perfis

    usando os vocabulrios UPS

    - Utiliza CC/PP para descrio dos perfis do usurio e

    UAProf para descrio das caractersticas estticas do

    dispositivo IV - Um simulador

    executa em Pocket PC

    - O MobAC implementado em Superwaba, Personal

    Profile, J2ME MIDP 1.0 e 2.0

    V Streams de Vdeo Documentos SMIL e HTML

    Imagens, Streams de udio e de vdeo.

    Recursos estticos (e.g. imagens, texto)

    VI O vdeo adaptado pelo proxy para as dimenses do

    dispositivo

    Extrao de contedo e

    converso de formatos de HTML

    para WML

    Streams de Vdeo so adaptados banda

    passante da simulao

    As estratgias de adaptao so delegadas ao MAS

    Tabela 2 Resumo comparativo dos trabalhos de adaptao de contedo

    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.

  • Captulo 2 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    35

    Alm disso, como mencionado no Capitulo 1, necessria a criao de um ambiente para integrar e aprimorar essas solues existentes para os desafios do desenvolvimento de aplicaes para DMs. A abordagem de construo de interfaces adaptveis proposta por Allan [27] e a arquitetura de adaptao de contedo NAC [12] foram utilizadas como base para atingir este objetivo e construir o ambiente proposto nesta dissertao.

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    36

    3. Plataformas de programao para DMs e FrameWorks

    Neste captulo, apresentada uma introduo sobre frameworks e sobre as plataformas de programao investigadas para a construo e a implementao dos frameworks XFormUI, MobAC e Requisitor propostos nesta dissertao.

    Na Seo 3.1, so descritas as caractersticas das plataformas Superwaba, J2ME MIDP 1.0/CLDC 1.0 e MIDP 2.0/CLDC 1.1. Na Seo 3.2, so apresentadas as definies de framework , a sua correlao com padres de software e como essas tecnologias podem ser utilizadas para facilitar a construo de aplicaes adaptativas e multi-plataformas.

    3.1. Plataformas de Programao No Captulo 1, o desenvolvimento de aplicaes multi-plataformas foi descrito como um dos desafios no desenvolvimento de aplicaes para DMs. Para construir aplicaes para esses dispositivos, um engenheiro de software pode utilizar uma diversidade de linguagens e plataformas de programao, como: Brew [59], J2ME [43], C++ [56], Superwaba [44], Mophun [57] e CodeWarrior C++ [58]. Essas aplicaes podem tambm ser criadas utilizando linguagens de marcao, como HTML, XHTML [36] e WML quando os dispositivos mveis possuem navegadores que suportam essas tecnologias.

    O desafio no desenvolvimento de aplicaes multi-plataformas decorre do suporte heterogneo a essas plataformas de programao e a essas linguagens de marcao. Em sua maioria, as plataformas para DMs executam apenas em uma classe de dispositivos (e.g., Sattellite Forms [86] para handhelds), ou em um determinado sistema operacional (e.g., CodeWarrior C++ para Palm OS [48]). Esse mesmo problema acontece com as linguagens de marcao, pois apenas algumas classes de dispositivos suportam WML (e.g., celulares), HTML (e.g., Pockect PCs) e XHTML (e.g., smartphones). Portanto, essa heterogeneidade inviabiliza a escolha de uma nica linguagem para o desenvolvimento de uma aplicao que tenha como requisito executar em uma grande quantidade de diferentes dispositivos.

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    37

    Assim, em muitos casos, a nica soluo para o engenheiro de software reescrever todo o cdigo da aplicao para que essa execute em uma outra plataforma de programao. A reescrita do cdigo pode ocorrer mesmo nos casos em que o engenheiro escolhe plataformas baseadas na mesma linguagem de programao. Isto acontece com Superwaba [44] e J2ME [43]. Essas plataformas so baseadas na linguagem de programao Java, mas possuem APIs (Application Programming Interface) diferentes para interface grfica, armazenamento e comunicao de dados. At mesmo o suporte aos tipos bsicos de dados diferente nessas plataformas.

    Portanto, existe uma necessidade de construir solues que permitam ao engenheiro de software desenvolver, com uma menor quantidade de reescrita de cdigo, aplicaes que executem em muitos dispositivos. Com objetivo de criar um ambiente que atenda a essa necessidade, as plataformas Superwaba, J2ME MIDP 1.0/CLDC 1.0 e J2ME MIDP 2.0/CLDC 1.1 foram investigadas.

    Essas plataformas foram escolhidas por apresentarem alguns conceitos de adaptao descrio, porque em conjunto so suportadas por uma grande quantidades de DMs e o processo de desenvolvimento pode ser realizado, em sua maioria, utilizando ferramentas livres e de cdigo aberto. Alm disso, essas plataformas so baseadas em Java, uma linguagem orientada a objeto, com curva de aprendizagem relativamente baixa em relao a linguagens como C++ e j amplamente adotada [20] [75].

    Nas subsees seguintes, so descritos detalhes de cada uma dessas plataformas e ao final, um resumo comparativo entre elas apresentado.

    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 perfil-configurao determina quais as funcionalidades disponveis para uma aplicao e a forma

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    38

    com que ela deve se estruturar. Na Figura 7, so ilustradas as especificaes e as configuraes do J2ME e a sua relao com as outras tecnologias Java: J2SE e J2EE.

    As configuraes so especificaes que detalham uma mquina virtual Java e um conjunto bsico de APIs que podem ser usadas por um certo conjunto de dispositivos. Para dispositivos de maior poder de processamento existe a especificao CDC (i.e., Connected Device Configuration), voltada para dispositivos com mais de 512 KB de memria, conexo permanente e taxa de transmisso relativamente alta. Na Figura 7, pode-se ver que o CDC uma especificao cuja implementao se faz sobre a mquina virtual Java convencional, que naturalmente demanda maior capacidade de processamento e memria.

    Para dispositivos de pequeno porte, tais como PDAs e celulares, com menos de 512 KB de memria disponvel para as aplicaes e sem conexo permanente, usa-se a especificao CLDC (i.e., Connected, Limited Device Configuration). A mquina virtual Java para essa especificao conhecida como KVM (Kilo Virtual Machine) e seu conjunto de APIs o ncleo de funcionalidades bsicas de uma aplicao (e.g tipos de dados, conexo). O CLDC possui duas verses: a 1.0, que no contm tipos de dados ponto flutuante e a verso 1.1, que incorpora esses tipos de dados e outras funes matemticas.

    Os perfis (i.e., Profiles) so as especificaes que criam um ambiente completo para desenvolvimento das aplicaes. Eles contm bibliotecas de classes adaptadas a uma determinada famlia de dispositivos. Nessas bibliotecas esto os componentes de interface visual e acesso a armazenamento de dados.

    Figura 7 - Viso Geral das tecnologias Java da Sun [62]

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    39

    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 implementao de interface com o usurio;

    javax.microedition.rms, que fornece um mecanismo para armazenamento de dados permanentes;

    javax.microedition.io, que fornece suporte bsico para rede e javax.microedition.midlet, que faz a interface entre a aplicao e o ambiente em

    que ele est executando. As aplicaes J2ME MIDP/CLDC so extremamente limitadas com relao a

    gerenciamento de eventos disponibilizados para programador. Apenas os eventos de aes em Commands, semelhantes a botes, e seleo em um List, so disponibilizados. A construo de interface nesta plataforma bem distinta de outras plataformas de programao, pois no permite ao programador estabelecer a posio exata no display do dispositivo na qual um componente de interface ir se posicionar.

    O posicionamento de componentes em J2ME MIDP foi assim projetado para possibilitar adaptao ao dispositivo da interface da aplicao. Na Figura 8, ilustrado esse processo de adaptao provido pela plataforma, na qual uma mesma aplicao se comporta da forma mais adequada em cada tipo de dispositivo. Por exemplo, o componente que lista opes apresentado no Palm OS como um ComboBox, no qual um click dispara a abertura de uma pequena janela com as opes. J nos outros dispositivos as opes j so

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    40

    apresentadas na tela. Alm disso, a forma como os commands so exibidos na tela modifica-se dependendo da mquina virtual do dispositivo. No caso do Palm OS, os commands so apresentados diretamente no display do dispositivo, j em outros, so acessveis atravs de um Menu (options em certos celulares).

    Figura 8 - Adaptao ao dispositivo oferecida pela plataforma J2ME MIDP No MIDP 2.0, novos componentes so disponibilizados e existe a possibilidade de

    determinar alinhamento aos componentes (e.g. centro, esquerdo, direita). Outra vantagem do MIDP 2.0 permitir a construo de componentes costumizveis atravs da classe CustomItem. Esse componente foi utilizado para a elaborao do ColorLabel que ser apresentado no framework XFormUI e que possibilita atribuir cores aos labels dos componentes. Na Figura 8, ilustrada uma aplicao MIDP 2.0 utilizando o ColorLabel e as funes de alinhamento.

    Para comear a desenvolver aplicativos em J2ME/MIDP necessria a instalao das seguintes ferramentas:

    Editor de texto: necessrio para editar o cdigo fonte do aplicativo; Java 2 Standard Edition (J2SE) SDK: utilizado para compilar, pr-verificar e

    empacotar os cdigos escritos para J2ME . J2ME Wireless Toolkit (WTK): um conjunto de ferramentas que oferece ao

    engenheiro de software um ambiente de gerenciamento dos projetos, compilao,

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    41

    emulao, documentao e exemplos necessrios para o desenvolvimento de aplicaes usando a especificao CLDC/MIDP [37].

    Emuladores de dispositivos reais: os fabricantes de dispositivos mveis 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 O Superwaba [44] uma plataforma de software livre para desenvolvimento de software para PDAs. O Superwaba foi criado no incio de 2000, por Guilherme Campos Hazan, bacharel em Cincia da Computao, pela Universidade Federal do Rio de Janeiro e uma evoluo de um outro projeto de software livre chamado Waba. A plataforma disponibilizada sob duas verses: GPL (gratuita) e LGPL (subscrio anual), que permite tanto o desenvolvimento de aplicaes livres quanto comerciais, e ao mesmo tempo impe que a plataforma continue como um software de cdigo aberto.

    O Superwaba SDK define uma linguagem, uma mquina virtual, um formato de arquivo para armazenagem de classes e um conjunto de classes padro. Um programa

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    42

    Superwaba multi-plataforma, pode executar, com as devidas restries, tanto em PalmOS, Pocket PC e Symbian OS, alm de poder executar como um applet em Linux e Windows.

    Devido ao modo com que o Waba e o Superwaba foram projetados, os programadores podem usar as ferramentas Java, como compiladores e editores, para desenvolver programas em Superwaba. Entretanto, o Superwaba no implementa nenhuma parte das especificaes do Java e tambm no tem nenhuma conexo com a detentora da marca, a Sun Microsystems [62].

    As principais APIs disponveis no Superwaba so: java.lang, que contm os tipos bsicos de dados e a classe Class; waba.ui, que contm os principais componente para construo de interface

    grfica;

    waba.fx, que engloba a classe Graphics para desenhos e a classe Color para mudana de cores;

    waba.io, para entrada/sada e classes de comunicao; waba.sys, com classes que oferecem uma interface com o sistema operacional; Superwaba.ext, com classes para acesso de perifricos. Alm disso, o Superwaba fornece um conjunto completo de APIs para

    desenvolvimento em PDAs, como classes para exibio de informaes GPS (i.e. Global Positioning System), classes para acessar dados pessoais nas plataformas Pocket PC e Palm OS e classes que permitem armazenamento de dados em arquivos PDBs (i.e. Palm Record Database) tambm no Pocket PC, o que torna o PDB, especfico do Palm OS, multi-plataforma. Nas verses mais recentes, foram disponibilizadas classes para realizar consultas SQL sobre PDBs, o pacote PDBDriver.

    O Superwaba permite a criao de bibliotecas nativas em C e tem suporte escala de cinza, cores e alta-resoluo em todos os PDAs. O Superwaba utiliza toda a memria disponvel para as aplicaes, ao contrrio do J2ME MIDP.

    Ele permite ainda acessar banco de dados para PDAs como o IBM Db2EveryPlace [65] e o PDB SQL [44], alm de suportar tipos de dados ponto flutuante, fontes customizveis, deteco de coliso para jogos, janelas popup e arrastveis, Threads, USB e IrDA.

  • Captulo 3 _______________________________________________________________________________________________________________________________________

    _______________________________________________________________________________________________________________________

    Um Ambiente de Desenvolvimento de Aplicaes Multi-Plataformas e Adaptativas para Dispositivos Mveis

    43

    O Superwaba ao contrrio do J2ME MIDP, possibilita ao engenheiro de software determinar a posio dos componentes no display e colocar mais de um componente em uma mesma linha do dispositivo. Esta caracterstica, apesar de possibilitar uma maior flexibilidade para a criao de interfaces, pode impedir que uma aplicao se adapte a diferentes dispositivos com resolues distintas. Para evitar esse problema, o Superwaba permite posicionamento relativo dos componentes usando diretivas de posicionamento (e.g. AFTER, BEFORE, RIGHT).

    A unidade bsica de uma aplicao Superwaba a classe MainWindow. Todo programa Superwaba inicia-se atravs da execuo dessa classe. O Superwaba possibilita o gerenciamento de uma grande quantidade de eventos para interface: eventos de click com as canetas dos PDAs, eventos de focus e de sada dos componentes e eventos de seleo. Com Superwaba, pode-se construir janelas arrastveis, modificar as propriedades de cores dos componentes, criar componentes cus