Você está na página 1de 16

ARQUITETURAS PARA APLICAES MVEIS

NOVEMBRO 2011

Sumrio de Informaes do Documento


Tipo do Documento: Definio Ttulo do Documento: Arquiteturas para Aplicaes Mveis Estado do Documento: Elaborao Responsveis: Cleverson Budel, Giuliano Barbara, Ramon Molossi Palavras-Chaves: Mobile, Mveis, Arquitetura, Desenvolvimento, Java , Android, iOS, PhoneGap, WEB Resumo: Descreve as arquiteturas para desenvolvimento de aplicaes mveis na Celepar Nmero de pginas: 16 Software utilizados: BrOffice 3.2 Verso Data Mudanas 1.0 08/12/11 Documento elaborado

SUMRIO
1 INTRODUO.................................................................................................................................. 4 1.1 OBJETIVO..........................................................................................................................................4 1.2 PBLICO ALVO................................................................................................................................... 4 1.3 ESCOPO............................................................................................................................................4 1.4 VISO GERAL.....................................................................................................................................5 1.5 DEFINIES, ACRNIMOS E ABREVIAES................................................................................................5 1.6 REFERNCIAS.....................................................................................................................................5 2 ARQUITETURAS............................................................................................................................... 7 2.1 ARQUITETURAS W EB MOBILE................................................................................................................7 2.1.1 DISTRIBUDA....................................................................................................................................7 2.1.2 CENTRALIZADA...............................................................................................................................10 2.2 ARQUITETURAS NATIVAS.....................................................................................................................11 2.2.1 ANDROID......................................................................................................................................12 2.2.2 IOS............................................................................................................................................12 2.2.3 PHONEGAP...................................................................................................................................12 3 METAS E RESTRIES DA ARQUITETURA.................................................................................13 4 PLATAFORMA................................................................................................................................. 15

1 INTRODUO
1.1 Objetivo
Este documento tem por objetivo apresentar as arquiteturas para

desenvolvimento de aplicaes mveis na Celepar. As arquiteturas descritas aqui, devem ser utilizadas nos contextos das aplicaes para dispositivos mveis desenvolvidos pela empresa, podendo ser adaptada para atender necessidades especficas.

1.2 Pblico Alvo


Documento destinado a desenvolvedores e projetistas de sistemas de informao que j possuam conhecimento dos conceitos envolvidos no desenvolvimento de aplicaes mveis.

1.3 Escopo
Foi decidido pela empresa (na pessoa de seus gestores) que o foco para desenvolvimento de aplicaes mveis sero os smartphones e os tablets. Dentro deste conjunto, num primeiro momento, s ser abordado o desenvolvimento de aplicaes nativas para os dispositivos que utilizem os sistemas operacionais Android (Google) e iOS (Apple). Por isso, o escopo das arquiteturas sero restritos s plataformas de desenvolvimento desses sistemas operacionais. Porem, ainda temos a possibilidade de desenvolver ou disponibilizar aplicaes web customizadas para atender as caractersticas desses dispositivos. Respeitando essas diretrizes, dever ser analisado detalhadamente as necessidades de cada aplicao para que assim se possa decidir qual a melhor abordagem arquitetural para implementao.

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

1.4 Viso Geral


O documento apresenta as diferentes possibilidades arquiteturais para desenvolvimento de aplicaes mveis, esclarece detalhes que podem facilitar a escolha dessa arquitetura, assim como uma breve descrio dos padres e das tecnologias empregadas em cada uma delas.

1.5 Definies, Acrnimos e Abreviaes

MVC Model View Controller: Padro de projeto que visa a separao das camadas (modelo, visualizao e controle) da aplicao.

SOA Service-Oriented Architecture: Estilo de arquitetura que visa implementar e disponibilizar as funcionalidades das aplicaes em forma de servios.

IDE Integrated Development Environment: Ferramentas integradas para desenvolvimento de aplicaes.

CVS

Concurrent Version System: Sistema de controle de verses

concorrentes.

SVN Subversion: Sistema moderno de controle de verses concorrentes. SDK Software Development Kit: Kit para desenvolvimento de softwares.

1.6 Referncias
[1] http://www.documentador.pr.gov.br/documentador/acessoPublico.do? action=downloadArquivoUuid&uuid=26f0f031-78cf-4e30-97a2-b4c875907981 Documento de Descrio da Arquitetura Web utilizada para desenvolvimento de sistemas corporativos na Celepar. [2] http://developer.android.com - Portal oficial sobre o desenvolvimento para Android, mantido pelo Google e seus colaboradores. [3] http://docs.phonegap.com - Documentao do projeto PhoneGap para

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

6 desenvolvedores. [4] http://developer.apple.com Portal oficial dos desenvolvedores de produtos Apple, incluindo o sistema operacional iOS. [5] http://jquerymobile.com Portal do framework JQuery Mobile, contendo documentao, forum, blog, etc. [6] http://www.documentador.pr.gov.br/documentador/acessoPublico.do? action=downloadArquivoUuid&uuid=d09fc5ff-beb6-4cb9-963a-163c5f245450 Manual de acoplagem do sistema Bedel, utilizado para ajudar no consumo e fornecimento de servios web na Celepar. [7] http://www.frameworkpinhao.pr.gov.br/modules/conteudo/conteudo.php? conteudo=36 Documentos relacionados ao padro de desenvolvimento adotado pela Celepar.

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

2 ARQUITETURAS
Devido a grande variedade de cenrios que podem se apresentar, no h como dispormos de apenas uma arquitetura de desenvolvimento.

2.1 Arquiteturas Web Mobile


Consistem basicamente de uma aplicao web (hospedada em um servidor) que ser acessada atravs do navegador (browser) dos dispositivos mveis. Seguindo esta abordagem, temos as seguintes possibilidades de arquiteturas: distribuda e centralizada.

2.1.1 Distribuda
Permite desacoplar as regras de negcios (camada de modelo) das regras de apresentao (camadas de viso e controle). Abaixo temos um desenho esquemtico, de nvel macro, dessa estrutura.

Aplicao Web Mobile

S e r v i o s W e b

Aplicao A

Aplicao B

Aplicao N

Figura 1- Estrutura macro da arquitetura web mobile distribuda.

Desta forma temos aplicaes web mobile desacopladas das aplicaes corporativas (qualquer aplicao que concentre as regras negociais para atender o domnio desejado). A comunicao entre elas deve se dar atravs de servios web (Web Services / REST).
PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

8 Basicamente, as aplicaes web mobile contem apenas as regras de visualizao (interfaces) e controle. J as aplicaes corporativas concentram a regra de negcios necessrias aos servios. A arquitetura para desenvolvimento das aplicaes web mobile parecida com a estrutura das aplicaes web corporativas j desenvolvidas pela empresa:

Figura 2- Arquitetura web mobile distribuda.

A modificao est na interface (onde o framework jQuery Mobile entra para adaptar o visual da aplicao para telas menores e sensveis ao toque, melhorando a experincia dos usurios) e na camada de modelo (que suprimida ficando as Facades responsveis apenas por acessar servios negociais externos). Quando possvel, o sistema Bedel deve ser usado para controlar a comunicao e os nveis de segurana sobre os servios web (verificar sua documentao Manual de Acoplagem, tpico Segurana). J a segurana da aplicao web mobile pode se dar atravs do sistema Sentinela. Vantagens desta abordagem:

A publicao (deploy) da aplicao web mobile torna-se independente dos servios remotos utilizados por ela.
PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

O controle de verses da aplicao web mobile fica segregado de qualquer servio web utilizado. Desacoplamento entre a aplicao web mobile e as regras negociais envolvidas nos servios web consumidos. A aplicao web mobile pode reusar diversas funcionalidades contidas em outras aplicaes. Multiplataforma, devido sua natureza web. Possibilidade de reusar o sistema de segurana Sentinela nas aplicaes web mobile. No requer instalao do aplicativo no dispositivo mvel.

Desvantagens:

Desenvolver funcionalidades em forma de servio pode ser dispendioso. Mudanas ou indisponibilidade dos servios web podem afetar a aplicao web mobile. O consumo de servios remotos gera tempos de resposta maiores, alem de adicionar mais um ponto de falha para a aplicao web mobile. No possvel utilizar recursos nativos dos dispositivos mveis. Ex: cmera, sistema de arquivos, etc. Requer conectividade (2G/3G ou Wi-Fi) para utilizao. Interfaces limitadas s caractersticas do desenvolvimento web.

Antes de criar uma aplicao web mobile nesta arquitetura, deve-se verificar se j no existem outras aplicaes web mobile na empresa que possam abrigar as funcionalidades que se pretende disponibilizar.

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

10

2.1.2 Centralizada
Concentra responsabilidades. em uma nica aplicao todas as camadas (MVC) e

Figura 3- Arquitetura web mobile centralizada.

Esta arquitetura segue a mesma estrutura das aplicaes web corporativas j desenvolvidas pela empresa. A principal diferena est na camada de visualizao (construo de telas) onde o framework jQuery Mobile utilizado para adaptar o visual da aplicao segundo as caractersticas dos dispositivos mveis. Nesta abordagem, aplicaes web j desenvolvidas podem disponibilizar pginas para dispositivos mveis, mantendo sua camada de modelo. A segurana pode ser feita atravs do sistema de segurana Sentinela.

Vantagens desta abordagem:

Desnecessria a realizao de chamadas a servios web remotos, diminuindo a complexidade, anulando possveis pontos de falha e melhorando os tempos de resposta da aplicao web mobile.
PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

11

Modelo de desenvolvimento consolidado e dominado pelo corpo tcnico da empresa.

Multiplataforma, devido sua natureza web. Possibilidade de utilizar/reusar o sistema de segurana Sentinela. No requer instalao do aplicativo no dispositivo mvel.

Desvantagens:

No caso de uma aplicao web que disponibilize funcionalidades para mobile temos um nico controle de versionamento e publicao (deploy) para estes dois ambientes (ambiente web normal e ambiente web mobile).

Todas as funcionalidades que se deseje disponibilizar devem ser implementadas na mesma aplicao.

No possvel utilizar recursos nativos dos dispositivos mveis. Ex: cmera, sistema de arquivos, etc. Requer conectividade (2G/3G ou Wi-Fi) para utilizao. Interfaces limitadas as caractersticas do desenvolvimento web.

Maiores detalhes desta arquitetura podem ser obtidos no documento de Descrio da Arquitetura Web utilizada para desenvolvimento de sistemas corporativos na Celepar (ver referncias).

2.2 Arquiteturas Nativas


Consistem de aplicaes elaboradas para executar no ambiente do dispositivo mvel. Sendo assim precisam respeitar as regras desse ambiente. Executando nativamente (dentro do dispositivo) as aplicaes conseguem acessar todos os recursos desses aparelhos, como por exemplo: GPS, cmera, acelermetro, lista de contatos, etc. Consequentemente abre-se um leque muito grande de possibilidades para o desenvolvimento de aplicaes, muito mais ricas e

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

12 interessantes. Dentro desta linha so abordadas as arquiteturas para os ambientes dos sistemas operacionais Android e iOS. Tambm apresentada a arquitetura PhoneGap, uma alternativa para simplificar o desenvolvimento nesses ambientes.

2.2.1 Android
Em elaborao.

2.2.2 iOS
Em elaborao.

2.2.3 PhoneGap
Em elaborao.

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

13

3 METAS E RESTRIES DA ARQUITETURA


Dado as vrias opes de arquiteturas apresentadas neste documento, necessrio avaliar muito bem as necessidades da aplicao para se fazer a escolha arquitetural correta. Alguns pontos devem ser analisados para ajudar nesta deciso: A aplicao dever interagir com os recursos do dispositivo? Exemplo:

Gravar dados no dispositivo:


Armazenamento em banco de dados. Gerao de arquivos. Serializao de objetos.

Acesso lista de contatos do dispositivo. Acesso s galerias de fotos, vdeos e sons existentes no dispositivo. Acesso s notificaes do sistema operacional. Acesso aos sensores e recursos de hardware em geral:

Personalizao das aes dos botes do dispositivo. Funes do acelermetro. Funes da cmera. Funes do microfone. Funes da bssola. Funes do GPS.

Ser necessrio utilizar a aplicao em modo off-line (sem a cobertura de uma rede de dados 2G/3G ou Wi-Fi)? Caso haja uma resposta afirmativa para alguma das perguntas acima, temos

um forte direcionamento para utilizao de uma arquitetura nativa, visto que as arquiteturas web possuem restries para atender essas caractersticas. As aplicaes web atendem bem as situaes de consumo de informaes dinmicas sobre dados j existentes. Ainda temos como vantagem a possibilidade de utilizar o sistema Sentinela para realizao de segurana e de atender diferentes plataformas.

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

14 J a arquitetura do PhoneGap indicada quando se tem uma aplicao com caractersticas web, porem que necessite acessar algum recurso do dispositivo ou precise ser executada em modo off-line. Para aplicaes que trafegam informaes crticas, dados sigilosos ou realizam transaes financeiras necessrio discutir alternativas de segurana, visto que as arquiteturas no trazem solues inerentes para algumas vulnerabilidades de segurana, como por exemplo autenticao sobre servios web. Outra grande preocupao arquitetural esta relacionada com a governana dos servios web compartilhados entre as aplicaes. necessrio uma discusso prvia com os fornecedores de servios ou a adoo de uma arquitetura corporativa orientada a servios (SOA) para ajudar a garantir qualidade sobre esta complexa rede de dependncia. Em suma, as arquiteturas esto limitadas a infraestrutura para desenvolvimento que a empresa dispem no momento.

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

15

4 PLATAFORMA
Os recursos a serem utilizados no desenvolvimento de aplicaes para dispositivos mveis devem, ao mximo, aproveitar os ambientes j disponveis na empresa. Desta forma temos: Arquiteturas Web:

Linguagem: Java (verso corporativa) IDE para desenvolvimento: Eclipse JEE

Plugin JBoss Tools

Servidor de Aplicaes: JBoss (verso corporativa) Controle de publicaes (deploys): sistema Estaleiro Controle de verses: CVS / SVN

Arquiteturas Nativas:

Android

Linguagem: Java (verso corporativa) IDE para desenvolvimento: Eclipse IDE for Java Developers

Plugin ADT Android Development Tools

Kit para desenvolvimento: Android SDK Controle de verses: CVS / SVN

iOS

Linguagem: Objective-C Sistema Operacional: Mac OS X IDE para desenvolvimento: XCode Controle de verses: SVN

PhoneGap

Utilizar o ambiente definido para a arquitetura nativa escolhida.


PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR

16

Os demais padres seguem as definies para desenvolvimento j adotadas pela empresa (ver referncias).

PLATAFORMA DE DESENVOLVIMENTO PINHO PARAN - CELEPAR