ARQUITETURAS PARA APLICAÇÕES MÓVEIS

Documentos relacionados
1.1. Definição do Problema

UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB

Glossário Versão 1.0 Desenvolvimento do Sistema de Gestão de Documentos Doc Manager Histórico de Revisão

Conteúdo Programático

SISTEMA OPERACIONAL - ios

Documento de Requisitos do Sistema SISFOTO Sistema de gerenciamento de eventos fotográficos Versão 1.0

PREGÃO ELETRÔNICO AA 15/2016 DILIGÊNCIA DOCUMENTAÇÃO DE PROPOSTA LOGIKS CONSULTORIA E SERVICOS EM TECNOLOGIA DA INFORMACAO LTDA.

OpenPDV: Sistema aberto para gerenciamento de restaurantes

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Processo de Desenvolvimento de Software

RESPOSTAS AOS QUESTIONAMENTOS ESCLARECIMENTOS EMPRESA B

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Soluções de gestão de clientes e de impressão móvel

Engenharia de Software

Para ser usado com aplicativos ativados para scanner/leitor de Código QR

Guia para Modelagem de Casos de Uso Metodologia CELEPAR

Orientações Para o Preenchimento do Formulário de Inscrição Preliminar dos Projetos

Guia de Instalação do "AirPrint"

Manual do Usuário da Biblioteca 1.0

Dispositivos Externos Manual do Utilizador

Guia de desenvolvimento de um aplicativo para o sistema operacional Android

Portal de Carapicuíba Painel Administrativo

Engenharia de Software. Ciclos de Vida do Software. 1. Sistemas

Enviar imagens de uma câmera para um smartphone Android (PowerShot SX60 HS)

de rede são comumente utilizadas nos dias de hoje. Um dos grandes desafios para a tecnologia de redes sem fio no momento é o handoff vertical, onde

Arquiteturas para Sistemas Distribuídos I

Projeto Integrador Gestão em TI II Gestão em Pessoas. Organograma DIRETOR DEPARTAMENTO DE T.I ANALISTA TÉCNICO

1. Definir penalidade a ser aplicada por arquivo indevido em pasta corporativa.

INTEGRAÇÃO JAVA COM ARDUINO

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente

Manual do Usuário SISCOLE - Sistema de Cadastro de Organismos e Laboratórios Estrangeiros

FSW CTIS FÁBRICA DE SOFTWARE. case fsw ctis

Guia de Instalação do "AirPrint"

Técnicas de Programação para a Web. Luiz Cláudio Silva. Novembro de Apresentação

Qualidade de Produto. Maria Cláudia F. P. Emer

Portal nddcargo Manual de Utilização Central de Relacionamento Visão Suporte

BANCO DE DADOS. Professor: André Dutton

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

T écnicas de Obtenção de Requisitos

e-nota G Módulo de Guarda da Nota Fiscal eletrônica

Documento de Processo

Atualizações de Software Guia do Usuário

NORMA TÉCNICA E PROCEDIMENTOS PARA REALIZAR ALTERAÇÕES NO BANCO DE DADOS CORPORATIVO

Ref: Observatório Nacional de Clima e Saúde Projeto Observatorium.

Desafios da Implantação da IDE.Bahia. Iara Musse Felix Murilo Oliveira Diego Mendes Rodrigues

Introdução. Qualidade de Produto. Introdução. Introdução ISO/IEC Normas

Avaliação da Satisfação do Cliente de Informática

Instruções para elaboração de TCC ANÁLISE DE MERCADO

Prova de Valor (SIB)

Atividades de Treinamento. Carregando programas na família GTI100. HI Tecnologia Indústria e Comércio Ltda. Documento de acesso Público

/ 2012_1 6 ( ) ADM ( ) ADM COMEX ( ) ADM MKT

MANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO

FI Admin: aplicação para administração de dados. Curso LIS e Direve 2014

Projeto CONDIGITAL Representações Gráficas Guia do Professor

3 Informações para Coordenação da Execução de Testes

Catálogo de Serviços

Elaboração do Plano de Gestão de Logística Sustentável do Senado Federal - PGLS

Levantamento de Requisitos

A JUÍZA PRESIDENTE DO TRIBUNAL REGIONAL DO TRABALHO DA 13ª REGIÃO, no uso de suas atribuições legais e regimentais,

DEVF IT Solutions. Gerenciador de Log. Documento Visão. Versão 2.0. Projeto Integrador 2015/2 Engenharia de Software

CTIC - Centro de Pesquisa e Desenvolvimento em Tecnologias. Digitais para Informação e Comunicação CHAMADA DE PROJETOS. Computação em Nuvem

TUTORIAL PESQUISA DE POLÍTICA DE REMOÇÃO

INE 5323 Banco de Dados I

Como o VIOS Jurídico pode otimizar os processos em um escritório de advocacia? Indicado para: médios e grandes escritórios de advocacia.

Diário Oficial Digital. Sistema web para pesquisa de mátérias Manual do usuário

Manual de Identidade Visual. 1º Caderno - Características da logomarca e regras gerais de aplicação.

Internet das Coisas com Intel A3 Métodos de programação.

Elementos básico de uma rede Samba - Local Master Browser

Termos de Referência para Serviços especializados de consultoria Individual na área de Arquitetura de Sistemas

Seguindo a análise de pensamento Estratégico, o gerenciamento de projetos

Cartilha de Acesso Rápido

ANEXO II NORMAS COMPLEMENTARES AO CPM 4.3.1/IFPUG

MANUAL DE USO E APLICAÇÃO DE LOGOMARCA COMITÊ DA BACIA HIDROGRÁFICA DO RIO PARANAÍBA

PROJETO DE REDES Prof. José Maurício S. Pinheiro UniFOA

M A N U A L D O ADMINISTRADOR DO PORTAL

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

Anúncio de concurso. Serviços

Gerenciamento de Integração. Prof. Anderson Valadares

Sistema de Cadastro de Pessoa Jurídica

LINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS.

26 de agosto de 2014 Belo Horizonte - MG Claudio Mello

UNIVERSIDADE DE SÃO PAULO FACULDADE DE EDUCAÇÃO ADRIANNE HENRIQUES FILIPE MACHADO. Plano de aula. Jovens na criação de blogs.

Universidade Federal da Fronteira Sul Moodle Versão 3.0 MANUAL DO ALUNO

Manual Escrituração Fiscal Digital

Manual Básico. Para utilização do Gerenciador de Imóveis

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Requisitos de Software

Padronizações Visuais estabelecidas pelo Projeto RIVED

Transcrição:

ARQUITETURAS PARA APLICAÇÕES MÓVEIS NOVEMBRO 2011

Sumário de Informações do Documento Tipo do Documento: Definição Título do Documento: Arquiteturas para Aplicações Móveis Estado do Documento: Elaboração Responsáveis: Cleverson Budel, Giuliano Barbara, Ramon Molossi Palavras-Chaves: Mobile, Móveis, Arquitetura, Desenvolvimento, Java, Android, ios, PhoneGap, WEB Resumo: Descreve as arquiteturas para desenvolvimento de aplicações móveis na Celepar Número de páginas: 16 Software utilizados: BrOffice 3.2 Versão Data Mudanças 1.0 08/12/11 Documento elaborado

SUMÁRIO 1 INTRODUÇÃO... 4 1.1 OBJETIVO...4 1.2 PÚBLICO ALVO...4 1.3 ESCOPO...4 1.4 VISÃO GERAL...5 1.5 DEFINIÇÕES, ACRÔNIMOS E ABREVIAÇÕES...5 1.6 REFERÊNCIAS...5 2 ARQUITETURAS... 7 2.1 ARQUITETURAS WEB MOBILE...7 2.1.1 DISTRIBUÍDA...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 RESTRIÇÕES DA ARQUITETURA...13 4 PLATAFORMA... 15

4 1 INTRODUÇÃO 1.1 Objetivo Este documento tem por objetivo apresentar as arquiteturas para desenvolvimento de aplicações móveis na Celepar. As arquiteturas descritas aqui, devem ser utilizadas nos contextos das aplicações para dispositivos móveis desenvolvidos pela empresa, podendo ser adaptada para atender necessidades específicas. 1.2 Público Alvo Documento destinado a desenvolvedores e projetistas de sistemas de informação que já possuam conhecimento dos conceitos envolvidos no desenvolvimento de aplicações móveis. 1.3 Escopo Foi decidido pela empresa (na pessoa de seus gestores) que o foco para desenvolvimento de aplicações móveis serão os smartphones e os tablets. Dentro deste conjunto, num primeiro momento, só será abordado o desenvolvimento de aplicações nativas para os dispositivos que utilizem os sistemas operacionais Android (Google) e ios (Apple). Por isso, o escopo das arquiteturas serão restritos às plataformas de desenvolvimento desses sistemas operacionais. Porem, ainda temos a possibilidade de desenvolver ou disponibilizar aplicações web customizadas para atender as características desses dispositivos. Respeitando essas diretrizes, deverá ser analisado detalhadamente as necessidades de cada aplicação para que assim se possa decidir qual a melhor abordagem arquitetural para implementação.

5 1.4 Visão Geral O documento apresenta as diferentes possibilidades arquiteturais para desenvolvimento de aplicações móveis, esclarece detalhes que podem facilitar a escolha dessa arquitetura, assim como uma breve descrição dos padrões e das tecnologias empregadas em cada uma delas. 1.5 Definições, Acrônimos e Abreviações MVC Model View Controller: Padrão de projeto que visa a separação das camadas (modelo, visualização e controle) da aplicação. SOA Service-Oriented Architecture: Estilo de arquitetura que visa implementar e disponibilizar as funcionalidades das aplicações em forma de serviços. IDE Integrated Development Environment: Ferramentas integradas para desenvolvimento de aplicações. CVS Concurrent Version System: Sistema de controle de versões concorrentes. SVN Subversion: Sistema moderno de controle de versões concorrentes. SDK Software Development Kit: Kit para desenvolvimento de softwares. 1.6 Referências [1] http://www.documentador.pr.gov.br/documentador/acessopublico.do? action=downloadarquivouuid&uuid=26f0f031-78cf-4e30-97a2-b4c875907981 - Documento de Descrição 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 - Documentação 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 documentação, 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 serviços web na Celepar. [7] http://www.frameworkpinhao.pr.gov.br/modules/conteudo/conteudo.php? conteudo=36 Documentos relacionados ao padrão de desenvolvimento adotado pela Celepar.

7 2 ARQUITETURAS Devido a grande variedade de cenários que podem se apresentar, não há como dispormos de apenas uma arquitetura de desenvolvimento. 2.1 Arquiteturas Web Mobile Consistem basicamente de uma aplicação web (hospedada em um servidor) que será acessada através do navegador (browser) dos dispositivos móveis. Seguindo esta abordagem, temos as seguintes possibilidades de arquiteturas: distribuída e centralizada. 2.1.1 Distribuída Permite desacoplar as regras de negócios (camada de modelo) das regras de apresentação (camadas de visão e controle). Abaixo temos um desenho esquemático, de nível macro, dessa estrutura. Aplicação Web Mobile S e r v i ç o s W e b Aplicação A Aplicação B Aplicação N Figura 1- Estrutura macro da arquitetura web mobile distribuída. Desta forma temos aplicações web mobile desacopladas das aplicações corporativas (qualquer aplicação que concentre as regras negociais para atender o domínio desejado). A comunicação entre elas deve se dar através de serviços web (Web Services / REST).

8 Basicamente, as aplicações web mobile contem apenas as regras de visualização (interfaces) e controle. Já as aplicações corporativas concentram a regra de negócios necessárias aos serviços. A arquitetura para desenvolvimento das aplicações web mobile é parecida com a estrutura das aplicações web corporativas já desenvolvidas pela empresa: Figura 2- Arquitetura web mobile distribuída. A modificação está na interface (onde o framework jquery Mobile entra para adaptar o visual da aplicação para telas menores e sensíveis ao toque, melhorando a experiência dos usuários) e na camada de modelo (que é suprimida ficando as Facades responsáveis apenas por acessar serviços negociais externos). Quando possível, o sistema Bedel deve ser usado para controlar a comunicação e os níveis de segurança sobre os serviços web (verificar sua documentação Manual de Acoplagem, tópico Segurança). Já a segurança da aplicação web mobile pode se dar através do sistema Sentinela. Vantagens desta abordagem: A publicação (deploy) da aplicação web mobile torna-se independente dos serviços remotos utilizados por ela.

9 O controle de versões da aplicação web mobile fica segregado de qualquer serviço web utilizado. Desacoplamento entre a aplicação web mobile e as regras negociais envolvidas nos serviços web consumidos. A aplicação web mobile pode reusar diversas funcionalidades contidas em outras aplicações. Multiplataforma, devido sua natureza web. Possibilidade de reusar o sistema de segurança Sentinela nas aplicações web mobile. Não requer instalação do aplicativo no dispositivo móvel. Desvantagens: Desenvolver funcionalidades em forma de serviço pode ser dispendioso. Mudanças ou indisponibilidade dos serviços web podem afetar a aplicação web mobile. O consumo de serviços remotos gera tempos de resposta maiores, alem de adicionar mais um ponto de falha para a aplicação web mobile. Não é possível utilizar recursos nativos dos dispositivos móveis. Ex: câmera, sistema de arquivos, etc. Requer conectividade (2G/3G ou Wi-Fi) para utilização. Interfaces limitadas às características do desenvolvimento web. Antes de criar uma aplicação web mobile nesta arquitetura, deve-se verificar se já não existem outras aplicações web mobile na empresa que possam abrigar as funcionalidades que se pretende disponibilizar.

10 2.1.2 Centralizada Concentra em uma única aplicação todas as camadas (MVC) e responsabilidades. Figura 3- Arquitetura web mobile centralizada. Esta arquitetura segue a mesma estrutura das aplicações web corporativas já desenvolvidas pela empresa. A principal diferença está na camada de visualização (construção de telas) onde o framework jquery Mobile é utilizado para adaptar o visual da aplicação segundo as características dos dispositivos móveis. Nesta abordagem, aplicações web já desenvolvidas podem disponibilizar páginas para dispositivos móveis, mantendo sua camada de modelo. A segurança pode ser feita através do sistema de segurança Sentinela. Vantagens desta abordagem: Desnecessária a realização de chamadas a serviços web remotos, diminuindo a complexidade, anulando possíveis pontos de falha e melhorando os tempos de resposta da aplicação web mobile.

11 Modelo de desenvolvimento consolidado e dominado pelo corpo técnico da empresa. Multiplataforma, devido sua natureza web. Possibilidade de utilizar/reusar o sistema de segurança Sentinela. Não requer instalação do aplicativo no dispositivo móvel. Desvantagens: No caso de uma aplicação web que disponibilize funcionalidades para mobile temos um único controle de versionamento e publicação (deploy) para estes dois ambientes (ambiente web normal e ambiente web mobile). Todas as funcionalidades que se deseje disponibilizar devem ser implementadas na mesma aplicação. Não é possível utilizar recursos nativos dos dispositivos móveis. Ex: câmera, sistema de arquivos, etc. Requer conectividade (2G/3G ou Wi-Fi) para utilização. Interfaces limitadas as características do desenvolvimento web. Maiores detalhes desta arquitetura podem ser obtidos no documento de Descrição da Arquitetura Web utilizada para desenvolvimento de sistemas corporativos na Celepar (ver referências). 2.2 Arquiteturas Nativas Consistem de aplicações elaboradas para executar no ambiente do dispositivo móvel. Sendo assim precisam respeitar as regras desse ambiente. Executando nativamente (dentro do dispositivo) as aplicações conseguem acessar todos os recursos desses aparelhos, como por exemplo: GPS, câmera, acelerômetro, lista de contatos, etc. Consequentemente abre-se um leque muito grande de possibilidades para o desenvolvimento de aplicações, muito mais ricas e

12 interessantes. Dentro desta linha são abordadas as arquiteturas para os ambientes dos sistemas operacionais Android e ios. Também é apresentada a arquitetura PhoneGap, uma alternativa para simplificar o desenvolvimento nesses ambientes. 2.2.1 Android Em elaboração. 2.2.2 ios Em elaboração. 2.2.3 PhoneGap Em elaboração.

13 3 METAS E RESTRIÇÕES DA ARQUITETURA Dado as várias opções de arquiteturas apresentadas neste documento, é necessário avaliar muito bem as necessidades da aplicação para se fazer a escolha arquitetural correta. Alguns pontos devem ser analisados para ajudar nesta decisão: A aplicação deverá interagir com os recursos do dispositivo? Exemplo: Gravar dados no dispositivo: Armazenamento em banco de dados. Geração de arquivos. Serialização de objetos. Acesso à lista de contatos do dispositivo. Acesso às galerias de fotos, vídeos e sons existentes no dispositivo. Acesso às notificações do sistema operacional. Acesso aos sensores e recursos de hardware em geral: Personalização das ações dos botões do dispositivo. Funções do acelerômetro. Funções da câmera. Funções do microfone. Funções da bússola. Funções do GPS. Será necessário utilizar a aplicação 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 utilização de uma arquitetura nativa, visto que as arquiteturas web possuem restrições para atender essas características. As aplicações web atendem bem as situações de consumo de informações dinâmicas sobre dados já existentes. Ainda temos como vantagem a possibilidade de utilizar o sistema Sentinela para realização de segurança e de atender diferentes plataformas.

14 Já a arquitetura do PhoneGap é indicada quando se tem uma aplicação com características web, porem que necessite acessar algum recurso do dispositivo ou precise ser executada em modo off-line. Para aplicações que trafegam informações críticas, dados sigilosos ou realizam transações financeiras é necessário discutir alternativas de segurança, visto que as arquiteturas não trazem soluções inerentes para algumas vulnerabilidades de segurança, como por exemplo autenticação sobre serviços web. Outra grande preocupação arquitetural esta relacionada com a governança dos serviços web compartilhados entre as aplicações. É necessário uma discussão prévia com os fornecedores de serviços ou a adoção de uma arquitetura corporativa orientada a serviços (SOA) para ajudar a garantir qualidade sobre esta complexa rede de dependência. Em suma, as arquiteturas estão limitadas a infraestrutura para desenvolvimento que a empresa dispõem no momento.

15 4 PLATAFORMA Os recursos a serem utilizados no desenvolvimento de aplicações para dispositivos móveis devem, ao máximo, aproveitar os ambientes já disponíveis na empresa. Desta forma temos: Arquiteturas Web: Linguagem: Java (versão corporativa) IDE para desenvolvimento: Eclipse JEE Plugin JBoss Tools Servidor de Aplicações: JBoss (versão corporativa) Controle de publicações (deploys): sistema Estaleiro Controle de versões: CVS / SVN Arquiteturas Nativas: Android Linguagem: Java (versão corporativa) IDE para desenvolvimento: Eclipse IDE for Java Developers Plugin ADT Android Development Tools Kit para desenvolvimento: Android SDK Controle de versões: CVS / SVN ios Linguagem: Objective-C Sistema Operacional: Mac OS X IDE para desenvolvimento: XCode Controle de versões: SVN PhoneGap Utilizar o ambiente definido para a arquitetura nativa escolhida.

16 Os demais padrões seguem as definições para desenvolvimento já adotadas pela empresa (ver referências).