Professional Documents
Culture Documents
NOVEMBRO 2011
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.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.
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.
CVS
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
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.
2 ARQUITETURAS
Devido a grande variedade de cenrios que podem se apresentar, no h como dispormos de apenas uma arquitetura de desenvolvimento.
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.
S e r v i o s W e b
Aplicao A
Aplicao B
Aplicao N
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:
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.
10
2.1.2 Centralizada
Concentra responsabilidades. em uma nica aplicao todas as camadas (MVC) e
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.
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
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).
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.
13
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.
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.
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:
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
iOS
Linguagem: Objective-C Sistema Operacional: Mac OS X IDE para desenvolvimento: XCode Controle de verses: SVN
PhoneGap
16
Os demais padres seguem as definies para desenvolvimento j adotadas pela empresa (ver referncias).