FRAMEWORK PARA DESENVOLVIMENTO DE APLICAÇÕES MAEMO PARA DISPOSITIVOS MÓVEIS

Documentos relacionados
Martin André Arnold Dill. Programa Institucional de Bolsas de Iniciação Científica PIBIC/CNPq - UNIJUÍ

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

IW10. Rev.: 02. Especificações Técnicas

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

INTERNET HOST CONNECTOR

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Noções de. Microsoft SQL Server. Microsoft SQL Server

OneDrive: saiba como usar a nuvem da Microsoft

PROJETO INFORMÁTICA NA ESCOLA

Um Driver NDIS Para Interceptação de Datagramas IP

Tecnologia e Informática

Aula 02 Conceitos básicos elipse. INFORMÁTICA INDUSTRIAL II ENG1023 Profª. Letícia Chaves Fonseca

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Orientação a Objetos

4 Estrutura do Sistema Operacional Kernel

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Desenvolvendo Websites com PHP

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Artur Petean Bove Júnior Tecnologia SJC

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

I N T R O D U Ç Ã O W A P desbloqueio,

Guia ineocontrol. iphone e ipod Touch

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Introdução a Computação Móvel

Manual do Usuário Android Neocontrol

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Aplicação Prática de Lua para Web

Documento de Análise e Projeto VideoSystem

GUIA INTEGRA SERVICES E STATUS MONITOR

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

1. Apresentação Objetivos

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

Conectando sonhos e negócios.

Desenvolvendo para WEB

SISTEMAS DISTRIBUIDOS

Manual de utilização do Sistema de gerenciamento de inspeção de equipamentos (SGIE) Conteúdo

Figura 01 Kernel de um Sistema Operacional

atube Catcher versão 3.8 Manual de instalação do software atube Catcher

Como configurar s nos celulares. Ebook. Como configurar s no seu celular. W3alpha - Desenvolvimento e hospedagem na internet

5 Mecanismo de seleção de componentes

Capítulo 2 Introdução à ferramenta Flash

Lógica de Programação

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

ENGENHARIA DE SOFTWARE I

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Construção Páginas de Internet

Sistemas Operacionais

Informática Aplicada

Projeto de controle e Automação de Antena

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Symbian

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

APOSTILA LINUX EDUCACIONAL

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Manual Integra S_Line

TRANSMITINDO CONHECIMENTO ON-LINE

Informática. Informática. Valdir

Eduardo Bezerra. Editora Campus/Elsevier

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS

Sistema TrackMaker de Rastreamento e Logística de Transportes. Solução de Despacho Integrada. Manual do Usuário

RAZÕES PARA ADQUIRIR O TECLAN IPACK UNIFIED

INTERFACE USB PARA PROFIBUS PA

Manual Captura S_Line

Segundo Pré-teste. Data de realização. 18 de Novembro de Local.

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Resumo da solução SAP SAP Technology SAP Afaria. Gestão da mobilidade empresarial como vantagem competitiva

Engenharia de Software III

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo com.br

Arquitetura dos Sistemas de Informação Distribuídos

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO

Apresenta. SofStore o mais novo aliado no gerenciamento do seu negócio

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Quando se fala em ponto eletrônico, a primeira coisa que vem à sua cabeça ainda é dor?

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

ESTUDO DE CASO WINDOWS VISTA

Análise dos Navegadores de Internet

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

1.1. Organização de um Sistema Computacional

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Ponta Grossa ANDRÉ LUIS CORDEIRO DE FARIA RELATÓRIO DE ESTÁGIO

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Google Android para Tablets

Sistemas Distribuídos

A licença é vinculada ao HD (Hard Disk) da máquina, esta não podendo ser substituída em caso de formatação ou perda de qualquer espécie do hardware.

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Motorola Phone Tools. Início Rápido

Planejando o aplicativo

Transcrição:

FRAMEWORK PARA DESENVOLVIMENTO DE APLICAÇÕES MAEMO PARA DISPOSITIVOS MÓVEIS Martin Dill 1, Paulo Sérgio Sausen 1, Sérgio Luis Dill 1, Edson Luis Padoin 1, Maurício de Campos 1 1 Unijuí, Ijuí, Brasil, {martin.dill,sausen,dill,padoin,campos}@unijui.edu.br Abstract: This paper presents a reference framework for developing applications with emphasis on maemo/symbian plataform, whose goal is to make more and efficient the application development. Structured entirely on technology free of cost, this framework makes the development of applications economically viable for any developer who uses it. Keywords: Framework, maemo, Symbian Resumo: Este artigo apresenta um framework de referência para desenvolvimento de aplicações com ênfase na plataforma maemo/symbian, cujo objetivo é tornar mais eficiente o desenvolvimento de aplicativos nesse ambiente. Estruturado totalmente sobre tecnologias livres de custo, este framework torna o desenvolvimento mais simples e economicamente viável para qualquer desenvolvedor que utilizá-lo. Palavras-chave: Framework, maemo, Symbian 1. INTRODUÇÃO Diante de todos os avanços tecnológicos, é notável a popularidade alcançada pelos dispositivos móveis, em especial pelos smartphones. Percebe-se que existe, de fato, uma migração da computação tradicional, baseada em computadores pessoais, para uma nova era, denominada era da computação pervasiva muitas vezes chamada de computação ubíqua. As idéias desse novo paradigma foram inicialmente expostas em 1991 por Mark Weiser, então pesquisador do Centro de Pesquisas da Xerox (Xerox Palo Alto Research Center). Em sua visão, Weiser prega, de forma geral, um novo mundo no qual a computação está inserida em objetos do dia-a-dia, como televisores, carros e roupas, estando os mesmos totalmente integrados às nossas vidas. Mais precisamente, tais objetos comunicam-se de forma transparente uns com os outros, apresentando informações e disponibilizando recursos a qualquer hora e em qualquer lugar, de acordo com nossas necessidades e preferências. A crescente popularidade dos dispositivos móveis capazes de se conectar a Internet através de redes sem fio (e.g., Internet Tablets) tem criado a necessidade da disponibilização de novas aplicações que possam ser executadas nesses dispositivos, aplicações essas que se diferenciam das aplicações tradicionais, que são executadas nos desktops, em decorrência das limitações tanto a nível de hardware como de software destes dispositivos móveis. Outro ponto interessante nesse escopo foi o aumento do poder computacional desses dispositivos. Essa característica possibilitou aos mesmos executarem aplicações cada vez mais complexas, como por exemplo, jogos eletrônicos, tanto em 2D quanto em 3D, aplicações de multimídia, dentre outras. Por se tratar de um mercado relativamente novo, a demanda por profissionais capacitados para desenvolver essas aplicações é alta, e a quantidade de informações relacionadas com o desenvolvimento de aplicações para os dispositivos moveis ainda é escassa e mal estruturada. Um exemplo de segmento que esta em alta no mercado atualmente são os Internet Tablet (e.g., Nokia 800) que executam as suas aplicações sob a plataforma maemo [7]. Um dos principais problemas enfrentados por desenvolvedores maemo é que as informações sobre as ferramentas e métodos utilizados no desenvolvimento encontram-se distribuídas na Internet. Existem várias fontes de referência e a organização e, principalmente, a linguagem utilizada nos manuais e tutoriais é demasiadamente avançada para usuários iniciantes na plataforma maemo. Para exemplificar essa dificuldade, atualmente existem várias versões desta plataforma, o que pode, com certeza, confundir o usuário no processo de instalação das ferramentas necessárias para iniciar o desenvolvimento. Neste contexto o presente artigo objetiva apresentar um framework de referência para desenvolvimento de aplicações com ênfase na plataforma maemo. O framework proposto é completamente estruturado a partir de tecnologias livres de custos, tornando-se, portanto, economicamente viável ao mesmo tempo em que objetiva tornar a tarefa do desenvolvedor mais simples e prática. O restante deste artigo esta organizado da seguinte forma. Na Seção 2 é apresentado um descritivo sobre as versões existentes da plataforma maemo, descrevendo suas funcionalidades, também apresentando os Internet Tablets lançados juntamente com as novas versões da plataforma maemo. Na Seção 3 é apresentado com detalhes o framework de referência para desenvolvimento de aplicações com ênfase na plataforma maemo, mostrando as tecnologias envolvidas e necessárias para o desenvolvimento. Na Seção 4 e 5 são apresentadas as linguagens de programação utilizadas para o desenvolvimento de aplicações na plataforma maemo e Serra Negra, SP - ISSN 2178-3667 428

discutida a possibilidade da utilização da linguagem de programação Python para a construção de aplicativos. Na Seção 6 é apresentada uma aplicação modelo, desenvolvida utilizando o framework de referência apresentado neste artigo. 2. A PLATAFORMA MAEMO Anunciada no final de 2004, maemo é uma plataforma aberta para desenvolvimento de aplicações e considerada por vários desenvolvedores como uma inovação tecnológica para dispositivos portáteis. A plataforma maemo foi desenvolvida pela Nokia como parte do processo de desenvolvimento dos Internet Tablets e, logo após, teve o código aberto e liberado para a comunidade de desenvolvedores. A plataforma maemo apresenta um ambiente otimizado e fácil para o desenvolvimento de aplicações para dispositivos móveis, utilizando ferramentas gratuitas e estáveis [1]. juntamente com as atualizações na interface de programação dos aplicativos e também as bibliotecas utilizadas. Em Novembro de 2007, surgiu o Internet Tablet Nokia N810, com o diferencial de possuir um teclado físico do tipo QWERTY conforme pode-se verificar na Figura 3, característica que os modelos anteriores (i.e., 770, N800) não possuíam, neles a digitação só era possível através da tela sensível a toque. O N810 também aperfeiçoou o suporte à conexão USB. Além das mudanças no aspecto físico, a plataforma maemo recebeu uma nova versão, denominada OS2008, que apresentou aplicações aperfeiçoadas, como o navegador Mozilla, melhorando também o suporte aos formatos de mídia do Windows. Em Junho de 2008, uma atualização do OS2008 foi lançada, denominada Diablo, que causou melhorias no gerenciador de aplicações, o que acarretou um significativo aumento do desempenho no sistema como um todo. Figura 1 - Internet Tablet Nokia 770. A primeira versão da plataforma maemo, denominada OS2005, surgiu com o lançamento do Internet Tablet Nokia 770 (veja Figura 1), possuindo atraentes funcionalidades como navegador da Internet com a tecnologia Adobe Flash, Players de áudio e vídeo e clientes de email. Todos estes sendo operados pelo usuário através de uma tela sensível ao toque, que logo se tornou uma das principais características deste segmento. Em Maio de 2006 foi lançado o OS2006, uma versão mais estável e com melhor desempenho que sua versão anterior. O OS2006 trouxe, especialmente, melhorias na interface gráfica com o usuário, permitindo uma melhor interação a partir de um desempenho mais satisfatório a nível de processamento. Figura 2 - Internet Tablet Nokia N800 Em 2007, a Nokia lançou o Internet Tablet Nokia N800 (veja Figura 2), juntamente com a nova versão do maemo (OS2007), esta versão trouxe correções significativas no sistema operacional e também aperfeiçoou o desempenho de quase todas as funcionalidades da plataforma maemo, Figura 3 - Internet Tablet Nokia N810. O mais recente lançamento da Nokia é o Internet Tablet Nokia N900, lançado em Novembro de 2009, esse dispositivo dentre várias melhorias e inovações, quando comparado aos modelos anteriores, apresenta um importante diferencial que é a possibilidade de utilização deste dispositivo móvel como telefone celular, característica inédita até então nos Internet Tablet da Nokia. Juntamente com o N900, foi lançado o maemo 5, uma versão completamente nova da plataforma maemo. Trazendo uma interface com o usuário mais amigável, novas aplicações como, por exemplo, o GPS (Sistema de Posicionamento Global) e um novo hardware com poder computacional superior às versões anteriores dos Internet Tablets da plataforma maemo, permitindo a execução de aplicações mais robustas. O framework de referência desenvolvido e apresentado neste artigo restringiu-se à utilização de um Internet Tablet Nokia N800. Este dispositivo serviu como base para o desenvolvimento das aplicações e a construção deste framework, onde foi utilizada a versão OS2008 (versão que acompanha o modelo N810) da plataforma maemo. Ressalta-se que o framework de referencia proposto pode ser utilizado sem problemas para o desenvolvimento de aplicações para qualquer um dos modelos de Internet Tablet da Nokia apresentados nessa seção. 3. FRAMEWORK PARA DESENVOLVIMENTO DE APLICAÇÕES MAEMO A partir das ferramentas disponibilizadas pela Nokia, foi desenvolvido um framework de referência objetivando facilitar o desenvolvimento de aplicações para a plataforma 2 Serra Negra, SP - ISSN 2178-3667 429

maemo, especialmente para desenvolvedores que estão iniciando seus estudos no desenvolvimento de aplicações para dispositivos móveis. Como mencionado anteriormente, dentre outras características, o framework proposto é totalmente estruturado a partir de tecnologias livres, as quais serão apresentadas e descritas na seqüência do artigo. O desenvolvimento inicial das aplicações para o ambiente maemo é realizado a partir do ambiente desktop utilizando o SDK (i.e. Software Development Kit) disponibilizado pela Nokia e não diretamente no dispositivo móvel. Dentre as diversas vantagens de adotar essa metodologia, destaca-se a eliminação da obrigatoriedade de possuir um dispositivo móvel real para o desenvolvimento e testes iniciais da aplicação a ser desenvolvida. Isso proporciona uma significativa economia, principalmente se a equipe de desenvolvedores for numerosa. Na Figura 4 é apresentado o framework de referência para desenvolvimento de aplicações no ambiente maemo proposto neste artigo. No framework pode-se verificar que o SDK utilizado possui uma correlação direta com o Scratchbox, o qual será detalhado mais adiante, que por sua vez é instalado a partir de um Sistema Operacional. Figura 4 - Framework de referência. No framework proposto é utilizado o sistema operacional Linux Ubuntu 8.04 LTS. A princípio poderia ser utilizado qualquer sistema operacional que fosse compatível com o Scratchbox, mas para atender uma das principais características do framework proposto (i.e., ser estruturado apenas a partir de softwares livres) foi adotado o Ubuntu. O Ubuntu é um sistema operacional baseado na distribuição Debian, muito conhecida por sua estabilidade, facilidade de uso e vasta documentação, especialmente na língua portuguesa. Como é empregado o conceito de cross compile (i.e., compilação cruzada, ou seja, utilizar um compilador capaz de gerar códigos executáveis para uma plataforma diferente daquela no qual o compilador é executado) no desenvolvimento das aplicações para o ambiente maemo é necessária a utilização de um emulador de arquiteturas, que no caso do framework proposto, é o Scratchbox. O Scratchbox possibilita compilar programas para a família de Internet Tablet da Nokia (i.e., arquitetura Acorn Risc Machine) em um computador desktop que possui arquitetura x86. O Scratchbox é um ambiente de programação, instalado e configurado a partir do Sistema Operacional Ubuntu, que além de possibilitar a compilação cruzada, fornece um conjunto completo de ferramentas de desenvolvimento a partir da instalação do SDK. Ou seja, a partir da ferramenta SDK (que será detalhada na Seção 3.1.1 deste artigo) e com o auxilio do Scratchbox, é possível executar a plataforma maemo e todas as funcionalidades necessárias para o desenvolvimento de softwares fora do dispositivo móvel real (e.g., N800). Para finalizar, é necessário um X Window Server (software explicado no item 3.1.3), que exibirá a saída gráfica do SDK e também servirá de controlador de entrada e saída de dados, permitindo a interação com o usuário. O X Window Server utilizado neste framework é um software denominado Xephyr, porém outros softwares semelhantes podem ser utilizados. Com esse conjunto de ferramentas/soluções já é possível iniciar o desenvolvimento de aplicações para um Internet Tablet a partir de um computador desktop. No entanto, ainda falta definir qual linguagem de programação será utilizada. No framework proposto é utilizado a linguagem de programação Python (que será detalhada na Seção 5) a escolha pelo Python em detrimento a outras linguagens, como por exemplo C/C++, recai na facilidade de aprendizado, simplicidade e portabilidade desta linguagem. 3.1. Ferramentas Utilizadas na Construção do Framework Nesta seção serão apresentadas e descritas todas as ferramentas que juntas formam o framework de referência proposto. Todas as ferramentas apresentadas nesta seção são essenciais para desenvolvimento de aplicações para a plataforma maemo no ambiente desktop. 3.1.1. maemo SDK O maemo SDK é uma versão simplificada da plataforma maemo, especialmente projetado para o desenvolvimento de aplicações maemo em ambiente desktop. O maemo SDK é constituído por um conjunto de bibliotecas e tecnologias que, de forma conjunta, permitem o desenvolvimento de aplicações para dispositivos móveis que executam aplicações sobre o sistema maemo. Como mencionado anteriormente o SDK deve ser instalado a partir do ambiente Scratchbox para que possa ser utilizado, uma vez que o SDK foi desenvolvido para a arquitetura Accorn Risc Machine (ARM), diferentemente da arquitetura dos computadores de propósito geral (i.e., desktops) que, na maioria, utilizam a arquitetura x86 [1, 7]. A seguir serão apresentadas as principais bibliotecas e tecnologias integrantes do maemo SDK, essenciais para o desenvolvimento de aplicações neste ambiente. Primeiramente serão apresentadas as principais bibliotecas para a construção das interfaces gráficas (i.e., GTK+ e Hildon) e manipulação de eventos que utilizam interface com o usuário (i.e., janelas, caixas de texto, botões). Na seqüência será apresentada a tecnologia D-Bus [2], uma solução simples, porém muito poderosa empregada na comunicação entre processos na plataforma maemo. Tais processos, que normalmente são aplicativos, conversam entre si a partir da tecnologia D-Bus que faz uso de um sistema de mensagens simples e eficientes, economizando processamento e aumentando o desempenho do sistema. Por fim será descrita a biblioteca LibOSSO [4], uma importante biblioteca de baixo nível pertencente a tecnologia D-Bus. A LibOSSO é responsável por informar aos aplicativos, que são executados no maemo, possíveis 3 Serra Negra, SP - ISSN 2178-3667 430

erros que por ventura possam ocorrer a partir de alguma falha a nível de hardware. 3.1.1.1. GTK+ e Hildon O maemo SDK foi desenvolvido sob a plataforma GTK+ (GIMP Toolkit) que é uma biblioteca de elementos de interface gráfica (i.e., Widgets), escrita em linguagem C e orientada a objetos, para o desenvolvimento de aplicações baseadas em janelas, muito utilizadas em ambiente Linux. O maemo SDK também utiliza uma biblioteca de elementos gráficos, chamada Hildon, desenvolvida pela Nokia e baseada nas tecnologias Gnome/GTK+, a fim de melhorar o desenvolvimento das aplicações para maemo, oferecendo uma extensa quantidade de Widgets complexos, previamente desenvolvidos, que facilitam a construção de novos aplicativos. 3.1.1.2. D-Bus Para a comunicação entre processos no sistema maemo é utilizada a tecnologia D-Bus (D originado de desktop). O D- Bus é um sistema de barramento de mensagens, que se constitui em um meio simples de comunicação entre aplicativos. Além da comunicação entre processos IPC (i.e., Inter Process Communication), o D-Bus ajuda a coordenar o ciclo de duração do processo; tornando mais simples e confiável a codificação de um aplicativo ou demonstrativo de "evento único" executando-os sob demanda quando seus serviços são necessários. A principal área de problema que o D-Bus objetiva resolver ou mesmo facilitar, é a comunicação entre aplicações de software desktop (geralmente gráficas). O D- Bus tem um papel muito importante no maemo SDK, visto que é o mecanismo de comunicação entre processos a ser usado para utilizar os serviços disponibilizados na plataforma e dispositivo. O provimento e disponibilização de serviços e aplicações a partir da tecnologia D-Bus é também a maneira mais simples de garantir reuso de componentes de outras aplicações [2, 3]. 3.1.1.3. LibOSSO A LibOSSO é uma biblioteca amplamente utilizada pelos aplicativos projetados para maemo. Ela proporciona um mecanismo de notificação para aplicativos de maneira que possam ser finalizados, facilmente, no caso de encerramento do sistema ou falta de memória. Além disso, a LibOSSO isola convenientemente o aplicativo de possíveis mudanças de implementação no nível do D-Bus. A LibOSSO também proporciona funções úteis para manusear recursos de gravação automática e gravação do estado da plataforma, mudanças no modo de operação do dispositivo e estado do hardware do processo entre outros eventos importantes que acontecem nos dispositivos do tipo Internet Tablet. [4] 3.1.2. Scratchbox Scratchbox é uma ferramenta para compilação de aplicações para diversas arquiteturas (i.e., cross compile) objetivando tornar o desenvolvimento de aplicações para dispositivos móveis mais simples. Ele também é capaz de integrar e compilar uma distribuição Linux completa, pois possui compiladores para as arquiteturas desejadas, podendo compilar qualquer software, até mesmo um sistema operacional [8]. A idéia básica no uso do Scratchbox é utilizar outro processador, denominado HOST, para compilar software para qualquer plataforma que será o alvo e que usa uma arquitetura diferente do HOST, este processador alvo é denominado TARGET. Isto significa que a máquina na qual é compilado o software nativamente não pode executar o software compilado. O software é compilado para outro processador, no caso da plataforma maemo, o processador ARM. Em resumo, o Scratchbox permite criar, compilar e executar aplicações de uma determinada arquitetura (e.g., ARM) em uma máquina com a arquitetura x86 (i.e., desktop). Essa estratégia permite uma significativa economia de recursos financeiros, pois não existe a necessidade do equipamento alvo, no caso deste artigo o N800, durante o processo de desenvolvimento das aplicações. 3.1.3. Xephyr (X Window Server) O X Window Server é uma ferramenta que proporciona um ambiente básico para a construção de ambientes GUI (i.e., Graphical User Interface), que nada mais são que desenhos e janelas que se deslocam na tela, interagindo com um mouse e/ou teclado. O servidor X no X Window Server centraliza as entradas (e.g., teclado e mouse) realizadas pelo usuário e passa ao conhecimento de aplicações X, chamadas X cliente, que são as aplicações que o usuário deseja trabalhar. No caso do framework proposto a ferramenta desejada é o maemo SDK. O servidor X fornece também uma maneira de apresentar aos clientes X a saída gráfica, que é importante para a visualização e controle das aplicações. Na Figura 5 é apresentado um exemplo simplificado de como o servidor X funciona. Na área de trabalho do usuário situam-se os dispositivos de entrada (mouse e teclado) e também a saída gráfica (monitor), estes estão ligados ao servidor X, que recebe estes dados e os envia para os clientes (browser e xterm), que são aplicações. Então o servidor X recebe a resposta dos clientes e atualiza o estado das aplicações clientes para o usuário na área de trabalho através da saída gráfica. Também pode ser observado que os clientes podem situar-se tanto na máquina local (i.e., localhost) como em qualquer outra maquina da rede. Figura 5 - Exemplificação do funcionamento do X Server. O Servidor X é utilizado em decorrência da necessidade de visualização dos aplicativos desenvolvidos a partir do maemo SDK. A partir do Servidor X é possível o desenvolvimento de aplicações e a realização de testes 4 Serra Negra, SP - ISSN 2178-3667 431

necessários para verificar a corretude da aplicação desenvolvida a partir do maemo SDK. Existe um conjunto variado de opções de servidores X que podem ser instalados e utilizados a partir do maemo SDK. No caso deste artigo e do framework proposto foi utilizado o Xephyr, especialmente por sua facilidade de instalação e uso, e por sua vasta documentação. 4. LINGUAGENS DE PROGRAMAÇÃO UTILIZADAS A linguagem de programação C/C++ é a única linguagem reconhecida oficialmente pela Nokia para o desenvolvimento de aplicações maemo. O compilador C/C++ já vem incluído no maemo SDK disponibilizando desta forma a compilação e execução nativa de programas escritos em C/C++ no próprio Scratchbox. Conforme a arquitetura escolhida no Scratchbox, seja x86 ou ARM, o compilador gera o código para a arquitetura selecionada, a arquitetura x86 é utilizada para compilar e testar os programas no Scratchbox utilizando o maemo SDK. Depois de concluída a etapa de desenvolvimento, pode-se utilizar a arquitetura ARM para compilar a aplicação, que é a arquitetura do Internet Tablet, destino final da aplicação. É possível utilizar outras linguagens para o desenvolvimento, uma delas é a linguagem de programação Python [6]. Python é uma linguagem de programação de alto nível, interpretada, interativa, orientada a objetos e de tipagem dinâmica e forte, é muito conhecida por possuir uma sintaxe muito simples e ao mesmo tempo ser muito poderosa. O interpretador Python (a linguagem Python é interpretada, mais detalhes na próxima seção) não é nativo no maemo SDK nem ao sistema maemo dos Internet Tablets, porém é facilmente encontrado para download no site oficial do Python para maemo (http://pymaemo.garage.maemo.org/). Neste site também e disponibilizado uma farta documentação e exemplos necessários para iniciar o desenvolvimento de aplicações utilizando a linguagem Python. 5. PYTHON PARA MAEMO O desenvolvimento de aplicações com a linguagem de programação Python é semelhante, senão idêntica, à programação em C/C++ pois em Python foram desenvolvidos módulos específicos para a criação de interfaces gráficas baseados em GTK+ e Hildon, seguindo a mesma metodologia utilizada na linguagem de programação C/C++. Os módulos Python desenvolvidos, assim como na linguagem C/C++, possuem todas as classes, métodos e propriedades necessárias para desenvolver qualquer interface gráfica de aplicação, isto significa que uma mesma aplicação em C/C++ e Python tornam-se idênticas no que se refere à apresentação visual das interfaces. O diferencial é que o desenvolvimento de programas em Python acaba por tornar-se muito mais simples e rápido quando comparado a utilização da linguagem C/C++. Essa vantagem é em decorrência que em Python os programas possuem menos código e são menos extensos quando comparados aos mesmos programas escritos em C/C++. O Python apresenta ainda a vantagem de ser uma linguagem mais simples de ser declarada possuindo características de uma linguagem de altíssimo nível, tudo isso tem um objetivo extremamente interessante, facilitar todo o processo de desenvolvimento das aplicações [6]. 5.1. Módulos Python Cada arquivo contendo código em linguagem Python é denominado um módulo Python. Na grande maioria dos casos utiliza-se um ou mais módulos Python combinados na construção de uma aplicação. Um módulo Python consiste de um arquivo em código-fonte com a extensão.py. Esse arquivo pode conter variáveis, funções e classes, qualquer um destes elementos, contidos em um módulo, é considerado um atributo do módulo. Como uma das principais características dos dispositivos móveis é dispor de um conjunto de recursos limitados, quando comparados aos computadores desktop, foram realizadas modificações no Python a fim de torná-lo mais rápido e estável para estes dispositivos. Vários módulos foram removidos do Python para maemo, alguns destes módulos foram substituídos por outros módulos mais eficientes em termos de utilização de recursos de hardware, e outros se tornaram instáveis e seu uso não é aconselhável. Um estudo mais detalhado sobre esses módulos pode ser consultado em [5]. 5.2. Exemplo de Aplicação Python para maemo Nesta sessão será apresentado um exemplo simples de criação de uma aplicação para maemo utilizando a linguagem de Programação Python, utilizando os módulos GTK+ e Hildon, mais detalhes podem ser encontrados no site oficial do Python para maemo: http://pymaemo.garage.maemo.org. Figura 6 Código Fonte da Aplicação hello_world_1.py. O programa exemplificado, nesta seção, é simples e serve para apresentar um pouco da simplicidade da sintaxe da linguagem Python. O código-fonte apresentado, na Figura 6, demonstra como é fácil e rápido criar uma nova janela para a nossa nova aplicação, chamada hello_world_1.py. Essa aplicação exemplo apenas cria uma janela e insere um rótulo (i.e., texto) com a seguinte mensagem: Hello World, a saída da execução deste programa é apresentada na Figura 7. 5 Serra Negra, SP - ISSN 2178-3667 432

Figura 7 - Exemplo de aplicação maemo utilizando Python. 6. DESENVOLVIMENTO DE UMA APLICAÇÃO A PARTIR DO FRAMEWORK PROPOSTO Para comprovar a eficiência do framework conceitual construído e apresentado neste artigo, foi desenvolvida uma aplicação modelo utilizando o modelo de framework proposto. A metodologia adotada foi realizar a instalação de todas as ferramentas e tecnologias que compõem o framework (apresentadas e descritas na Seção 3 deste artigo) e desenvolver a aplicação modelo utilizando a linguagem de programação Python. A aplicação modelo desenvolvida consiste em um módulo móvel, independente e remoto do Sistema de Monitoramento de Subestações de Energia Elétrica desenvolvido pelo Grupo de Automação Industrial e Controle da Unijuí. Este sistema utiliza o conceito de sensores inteligentes estruturados a partir de uma Rede de Sensores sem Fio (RSSF) e foi totalmente desenvolvido sobre plataforma de software livre unindo, em um mesmo sistema de supervisão, os conceitos de sensores inteligentes, mobilidade, software livre e baixo custo. Na Figura 8 é apresentada a arquitetura deste sistema, mais detalhes sobre o mesmo podem ser encontradas em [9,10,12]. Figura 8 Arquitetura do Sistema de Automação de Subestações. A aplicação modelo desenvolvida exibe, na forma de gráficos, as grandezas de tensões, correntes e potências coletadas em uma subestação de energia elétrica, em tempo real, a partir da utilização de um Web Service (WS) que acessa os dados coletados anteriormente pelo Subsistema de Aquisição de Dados (Veja a Figura 8). O WS é o nível que se situa entre a base de dados e a aplicação, WS é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. A partir dele é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Situação existente neste artigo quando é apresentado o desenvolvimento da aplicação modelo, a partir do framework proposto, ao sistema de automação de subestação já existente. Na Figura 9 é apresentada a interface gráfica da aplicação modelo que realiza consultas a partir de parâmetros de grandeza e por intervalos de tempo fornecido pelo usuário, exibindo o resultado em forma de gráficos. Esta aplicação possui ainda recursos que permitem realizar consultas de erros (e.g. sub-tensão e sobrecarga) que ocorreram na subestação. Como o objetivo desta seção é apresentar a utilização do framework proposto no desenvolvimento para dispositivos móveis não será dado detalhes da mesma, caso o leito queira mais detalhes da implementação e características elas podem ser encontradas em [11]. Figura 9 - Aplicação de monitoramento móvel executando no Nokia N800. 7. CONCLUSÃO A crescente popularidade dos dispositivos móveis, especialmente dos Internet Tablet, criou a necessidade da disponibilização de novas aplicações que possam ser executadas nesses novos dispositivos. A metodologia de desenvolvimento destas aplicações diferenciam-se das aplicações tradicionais (i.e., aplicações desenvolvidas para ambiente desktop) por vários motivos, dentre eles destacamse as limitações tanto a nível de hardware como de software (i.e., sistema operacional) destes novos dispositivos que impossibilitam a utilização de técnicas e ferramentas tradicionais de desenvolvimento. Com o objetivo de auxiliar o desenvolvedor na migração da computação tradicional, baseada em computadores pessoais, para uma nova era, denominada era da computação pervasiva caracterizada pela presença maciça de dispositivos móveis. Neste artigo é apresentado um framework de referência para desenvolvimento de aplicações com ênfase na plataforma maemo. O framework proposto é completamente estruturado a partir de tecnologias livres de custos, tornando-se, portanto, economicamente viável ao mesmo tempo em que auxilia desenvolvedores que estão 6 Serra Negra, SP - ISSN 2178-3667 433

iniciando seus estudos no desenvolvimento de aplicações para dispositivos móveis. 8. AGRADECIMENTOS Os autores agradecem o apoio financeiro da Fundação de Amparo a Pesquisa do Estado do Rio Grande do Sul (FAPERGS) referente ao Edital 03/2009 ARD. 9. BIBLIOGRAFIA [11] Dill, Martin; Sausen, Paulo Sérgio; Dill, Sérgio Luis; Padoin, Edson Luiz; Automação De Subestações De Energia Elétrica Utilizando Dispositivos Móveis, Em: Brazilian Conference on Dynamics Control and Applications DINCON 09, 18-22 de Maio, 2009. [12] Salvadori, Fabiano ; Campos, Maurício ; Sausen, P. S. ; Camargo, Robinson Figueiredo de ; Gehrke, Camila ;Rech, Cassiano ; Spohn, Marco Aurélio ; Oliveira, Alexandre Cunha de. Monitoring in Industrial Systems Using Wireless Sensor Network With Dynamic Power Management. IEEE Transactions on Instrumentation and Measurement, v. 583104, p. 3104-3111, 2009. [1] Fórum Nokia. (s.d.). Acesso em 09 de Fevereiro de 2009, disponível em http://wiki.forum.nokia.com/index.php/category:mae mo_(portugu%c3%aas) [2] Fórum Nokia. (s.d.). Acesso em 10 de Fevereiro de 2009, disponível em http://wiki.forum.nokia.com/index.php/dbus_(portug u%c3%aas) [3] Introdução ao D-Bus. (s.d.). Acesso em 10 de Fevereiro de 2009, disponível em Free Desktop: http://www.freedesktop.org/wiki/software/dbus [4] Mobile Linux Internet Project. (s.d.) Acesso em 10 de Fevereiro de 2009, disponível em: http://v1.moblin.org/toolkits/prepdev/brazilianportuguese/development-libraries.php [5] Módulos e comando import. (s.d.). Acesso em 13 de Fevereiro de 2009, disponível em Async Open Source : http://www.async.com.br/projects/python/pnp/node34. html [6] Using Python for maemo. (s.d.). Acesso em 15 de Fereveiro de 2009, disponível em Python for maemo: http://pymaemo.garage.maemo.org/documentation/py maemo_tutorial/python_maemo_howto.html [7] maemo.org. (s.d.). Acesso em 09 de maio de 2009, disponível em http://www.maemo.org [8] Scratchbox. (s.d.). Acesso em 09 de maio de 2009, disponível em http://www.scratchbox.org/ [9] Salvadori, F.; Sausen, P.S.; Hartmann, L.V.; Campos M., Padoin, E.L; Acquisition And Transmission Data Monitoring System Applied To Energy Substation, Industrial Informatics, 2003. INDIN 2003. Proceedings. IEEE International Conference on 21-24 Aug. 2003 Page(s):60 64, Banff, Alberta, Canada. [10] Sausen, Paulo Sérgio, Spohn M. A., Oliveira, A. C., Salvadori. F., Campos, M. de, Paodin, E. L., Strieder, R.. Sistema Baseadoem Software Livre para Automação de Subestações Utilizando Redes de Sensores Inteligentes, VII SIMPASE Simpósio de Automação de Sistemas Elétricos, Salvador 2007. 7 Serra Negra, SP - ISSN 2178-3667 434