Aplicações Móveis Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01)
Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura Comunicação Nomeação Controle de tempo e sincronismo Transação e controle de concorrência Segurança Arquitetura Orientada a Serviços (SOA) e WebServices Sistemas de arquivos distribuídos Aplicações móveis Seminários
Aplicações Móveis Computação Móvel Cenário Atual Visão de Futuro Tipos de Dispositivos Móveis Características e Desafios Requisitos das aplicações móveis Arquitetura e Aplicações Perspectivas Tecnologia (Nativas x Web x Híbridas) Componentes e Distribuição Comunicação Sincronização
Aplicações Móveis - Computação Móvel Cenário Atual O número de assinantes de telefone móvel excede número de assinantes de telefone fixo Redes de computadores (laptops, palmtops, PDAs, wearable technology, videogames, etc.) prometem acesso livre à Internet a qualquer hora Necessidade crescente de redução de custos
Aplicações Móveis - Computação Móvel Visão do Futuro Um dia feito de Vidro http://www.youtube.com/watch?v=lbkheqz5pno Um dia feito de Vidro 2 http://www.youtube.com/watch?v=_lbwxdtvwkc Como será o mundo em 2020 https://www.youtube.com/watch?v=kyomg_nxo9i
Aplicações Móveis - Computação Móvel Tipos de Dispositivos
Aplicações Móveis - Computação Móvel Tipos de Dispositivos - Recursos
Aplicações Móveis - Computação Móvel Características e Desafios Limitação dos dispositivos Dificuldade na entrada e saída de informação Baixa capacidade de armazenamento dos equipamentos Tamanho e resolução das telas Baixa autonomia das baterias Baixo poder de processamento Opções e custos de conectividade
Aplicações Móveis - Computação Móvel Características e Desafios Variedade de dispositivos
Aplicações Móveis - Computação Móvel Características e Desafios Fragmentação de plataformas
Aplicações Móveis - Computação Móvel Características e Desafios Fragmentação de plataformas Fonte: http://gs.statcounter.com/os-market-share/mobile/worldwide/
Aplicações Móveis - Computação Móvel Requisitos das Aplicações Móveis Contextualização e individualização Captura do contexto global, mas cada aplicação escolhe o que utilizar Adaptação multi-dimensão e multi-nível Dimensões (físicas, lógicas e pessoais) e níveis (rede sistema e aplicação) Adaptação negociada As aplicações devem se valer de alguns aspectos como localização e recursos onde executam Desacoplamento temporal e espacial Considerar atividades distribuídas no tempo e no espaço Funcionalidade selecionada pelo contexto A aplicação se comporta de forma otimizada e se vale do contexto e dos recursos
Aplicações Móveis - Arquitetura Perspectivas Tecnologias de desenvolvimento (Nativa x Web x Híbrida) Componentes e Distribuição de sistema Comunicação Redes sem fio Tipos de Conectividade Sincronização
Aplicações Móveis - Arquitetura - Tecnologias de Desenvolvimento Aplicações Nativas Aplicações Web Aplicações Híbridas
Aplicações Móveis - Arquitetura - Tecnologias de Desenvolvimento Aplicações Nativas Aplicações Web Aplicações Híbridas Executam em um SO específico (Android, ios, Windows Phone) Desenvolvida com linguagens como Objetive-C, Swift, Linguagens.NET, Java Acesso total aos recursos dos dispositivos (câmera, contatos, sensores, etc.) Adquirida via download a partir das lojas virtuais de aplicativos. Instalada diretamente no dispositivo móvel Exemplos Aplicativos distribuídos com o dispositivo (câmera, telefone, mensagens) Angry Birds
Aplicações Móveis - Arquitetura - Tecnologias de Desenvolvimento Aplicações Nativas Aplicações Web Aplicações Híbridas Executam em qualquer dispositivo móvel que possua um Navegador Web. Desenvolvidas com linguagens Web como: Cliente - HTML, Javascript, CSS; Servidor - Java,.NET, PHP, Phyton, Ruby. Acesso apenas aos recursos disponíveis para o navegador Não requerem download ou instalação. Dependem essencialmente da conexão a Internet. Exemplos Aplicações Web com layouts responsivos Financial Times
Aplicações Móveis - Arquitetura - Tecnologias de Desenvolvimento Aplicações Nativas Aplicações Web Aplicações Híbridas Executam nos diversos SO que possuam suporte a tecnologia empregada. Desenvolvidas com base em frameworks multi-plataforma. Acesso parcial aos recursos dos dispositivos, via framework utilizado Mesclam parte nativa e parte Web. A parte nativa deve ser descarregada das lojas virtuais de aplicativos. A parte Web é provida por um servidor na Internet e acessada via Navegador inserido na parte nativa. Exemplos Aplicações que normalmente oferecem os mesmos recursos nas diversas plataformas Linkedin, Facebook, Twitter
Aplicações Móveis - Arquitetura - Tecnologias de Desenvolvimento
Aplicações Móveis - Arquitetura - Tec. de Dev. Componentes das aplicações móveis Interface do usuário Camada de negócios ou aplicação Camada de acesso a dados Repositório de dados local Mecanismos de segurança Conectividade Configuração Infraestrutura de suporte móvel Fontes de dados Serviços
Aplicações Móveis - Arquitetura - Componentes Distribuição de camadas
Aplicações Móveis - Arquitetura - Componentes Thin Client Rich Client
Aplicações Móveis - Arquitetura - Componentes Thin Client Rich Client
Aplicações Móveis - Arquitetura - Comunicação Redes sem fio Redes Infraestrutura (ou estruturadas) As estações são conectadas a uma estação-base Normalmente envolve mecanismos de autenticação para conexão Tipos: WWAN (Redes celulares), WMANs (WiMax), WLANs (Wi-Fi) Redes Ad hoc ( ad hoc - latin, para este propósito ) Redes de Satélites
Aplicações Móveis - Arquitetura - Comunicação Redes sem fio Redes Infraestrutura (ou estruturadas) Redes Ad hoc ( ad hoc - latin, para este propósito ) Todo nó é potencial fonte e destino de pacotes Todos os nós são roteadores de pacotes Transmissões simultâneas podem gerar interferência Fonte de energia limitada Liberdade de locomoção Tipos: WLANs, WPANs (Bluetooth, ZigBee, IrDA), Redes de Sensores Redes de Satélites
Aplicações Móveis - Arquitetura - Comunicação Redes sem fio Redes Infraestrutura (ou estruturadas) Redes Ad hoc ( ad hoc - latin, para este propósito ) Redes de Satélites Ampla cobertura: o sinal pode atender uma grande área geográfica Taxas de transmissão podendo atingir centenas de Mbps Custo Elevado: para lançar e manter o equipamento Alta latência: o tempo para o pacote subir e desce é elevado
Aplicações Móveis - Arquitetura - Comunicação Tipos de Conectividade Sempre Conectado Um dispositivo móvel normalmente opera num modo sempre ligado. Uma empresa pode ter uma rede sem fio e um conjunto de aplicativos e servidores que permitem que os funcionários se conectem e usem seus dispositivos móveis nas instalações da empresa (BYOD) Os dispositivos móveis, como PDAs, Tablets e Notebooks, tornam-se extensões das aplicações e da infra-estrutura, permitindo aos usuários estar sempre conectados aos aplicativos enquanto se movem livremente pelo o escritório Parcialmente Conectado
Aplicações Móveis - Arquitetura - Comunicação Tipos de Conectividade Sempre Conectado Parcialmente Conectado Há muitas situações em que o dispositivo móvel está sem conexão por longos períodos de tempo. Por exemplo, um colaborador em home-office pode conectar periodicamente a um servidor no escritório para obter e-mail, informações de contato, ou tarefas a serem feitas. O colaborador, em seguida, desliga o dispositivo móvel e exerce as suas tarefas normais longe do escritório, durante o qual ele pode consultar as informações localmente. O usuário também pode atualizar as informações localmente em seu dispositivo móvel antes de reconectar mais tarde e voltar a sincronizar o dispositivo móvel com o servidor.
Aplicações Móveis - Arquitetura - Sincronização O tipo de conexão afeta a maneira com que você pode sincronizar dados entre os sistemas de back-end e o dispositivo móvel A sincronização é possível de duas maneiras: Comunicação contínua Método guardar e encaminhar (store-and-forward)
Aplicações Móveis - Arquitetura - Sincronização Comunicação contínua Quando a ligação entre o cliente e o servidor é contínua, a sincronização de dados é contínua e pode ser alcançada através de meios síncronos ou assíncronos
Aplicações Móveis - Arquitetura - Sincronização Método store-and-forward Quando a conectividade entre um cliente e um servidor não pode ser garantida, ainda é possível armazenar e transmitir informação com segurança através de um método chamado de guardar e encaminhar. Suponhamos, por exemplo, que um usuário móvel pretende inserir dados, enquanto o seu dispositivo móvel não está ligado a um servidor. Um aplicativo cliente móvel pode inicialmente armazenar os dados localmente. Mais tarde, quando a ligação for restabelecida, o aplicativo móvel irá transmitir os dados locais para o banco de dados no servidor
Aplicações Móveis - Arquitetura - Sincronização