Prévia do material em texto
Computação Móvel Arquitectura de Aplicações Moveis Docente: Ruben Manhiça Maputo, 4 de maio de 2023 INSTITUTO SUPERIOR DE CIENCIAS E TECNOLOGIA DE MOÇAMBIQUE Escola Superior de Informática Licenciatura em Engenharia Informática (Extraido de: Capitulo 4: Mobile Applications/Architecture, Design and Development V. Lee, H.Schneider, R. Schell) Conteúdo da Aula 1. Tipos de Clientes; 2. Tipos de Servidores; 3. Tipos de Sincronização 5/4/2023 Notas da aula de Computação Móvel 2 Introdução • Vamos rever vários padrões arquiteturais interessantes e descrever por que eles são úteis como soluções gerais de arquitetura de aplicativos móveis. • A arquitetura cliente / servidor (e suas variantes) é frequentemente adotada para aplicativos moveis. • No entanto, temos que levar em consideração alguns aspectos específicos relacionados aos dispositivos móveis (clientes) e sua conectividade com os servidores. 5/4/2023 Notas da aula de Computação Móvel 3 Clientes • Existem muitos tipos de dispositivos móveis, incluindo dispositivos telefones celulares, PDAs, Tablet PCs e computadores portáteis. • Esses dispositivos móveis normalmente podem operar como thin clients ou fat clients, ou podem ser desenvolvidos para hospedar páginas da web. • descrevemos esses tipos de clientes em mais detalhes. 5/4/2023 Notas da aula de Computação Móvel 4 Thin Clients • Thin clients não têm código de aplicativo personalizado e confiam completamente no servidor para sua funcionalidade. • Eles não dependem muito do sistema operativo do dispositivo móvel ou do tipo de dispositivo móvel como fat clients. • Os thin clients normalmente usam navegadores da Web e WAP (protocolo de aplicativo sem fio) amplamente disponíveis para exibir os seguintes tipos de páginas de conteúdo de aplicativos: • ً ً ً Web (html, xml) • Wap (wml,..) 5/4/2023 Notas da aula de Computação Móvel 5 Thin clients 5/4/2023 Notas da aula de Computação Móvel 6 Fat clients • Fat clients normalmente têm de uma a três camadas de código de aplicação neles e podem operar independentemente de um servidor por algum período de tempo. • Normalmente, Fat clients são mais úteis em situações em que a comunicação entre um cliente e um servidor não pode ser garantida. • Por exemplo, um aplicativo Fat clients pode aceitar entrada do usuário e armazenar dados em um banco de dados local até que a conectividade com o servidor seja restabelecida e os dados possam ser movidos para o servidor. • Isso permite que um usuário continue trabalhando, mesmo se ele estiver fora de contato com o servidor. 5/4/2023 Notas da aula de Computação Móvel 7 Fat clients • Fat clients dependem fortemente do sistema operativo e do tipo de dispositivo móvel, e o código pode ser difícil de ser distribuído. • Também pode ter que suportar várias versões de código em vários dispositivos • Fat clients podem ser implementados usando uma, duas ou três camadas de código de aplicativo. • No entanto, se usar apenas uma camada, será extremamente difícil isolar as áreas individuais da funcionalidade e reutilizar e distribuir o código em vários tipos de dispositivos. 5/4/2023 Notas da aula de Computação Móvel 8 Web page Hosting • É possível exibir e prestar serviços de manutenção a páginas da Web no dispositivo móvel mesmo quando o cliente móvel é conectado somente periodicamente aos sistemas da rede e do back-end. • Para fazer isso, precisamos do equivalente a um servidor web "mini" no dispositivo móvel 5/4/2023 Notas da aula de Computação Móvel 9 Fat Client – Uma Camada 5/4/2023 Notas da aula de Computação Móvel 10 Fat Client – Duas Camadas 5/4/2023 Notas da aula de Computação Móvel 11 Fat Client – Tres Camadas 5/4/2023 Notas da aula de Computação Móvel 12 Web Page hosting – Uma Camada 5/4/2023 Notas da aula de Computação Móvel 13 Web Page hosting – Duas Camadas 5/4/2023 Notas da aula de Computação Móvel 14 Web Page hosting –Tres Camadas 5/4/2023 Notas da aula de Computação Móvel 15 Servidores • As arquiteturas de servidor são geralmente compostas de uma a três camadas de código implementadas em uma a três camadas. • Existem Prós e Contras para os três tipos diferentes de arquitetura de servidor. 5/4/2023 Notas da aula de Computação Móvel 16 One-Tier Server architecture 5/4/2023 Notas da aula de Computação Móvel 17 One-Tier Server architecture • Pros • Muito conveniente • Mais rapida para desenvolver • Cons • Pouco escalavel • Muito dificil de tornar segura 5/4/2023 Notas da aula de Computação Móvel 18 Two-Tiers Server architecture 5/4/2023 Notas da aula de Computação Móvel 19 Two-Tiers Server architecture • Pros • Conveniente • Permite especialização com Bases de Dados • Cons • Pouco Escalavel • Dificil de implementar segurança • Mais cara 5/4/2023 Notas da aula de Computação Móvel 20 Three-Tiers Server architecture 5/4/2023 Notas da aula de Computação Móvel 21 Three-Tiers Server architecture • Pros • Escalavel • Segurança atraves de firewalls • Permite especialização de servidores de Base de Dados • Cons • Exagero • Mais difícil de desenvolver • Mais difícil de gerenciar • Mais caro 5/4/2023 Notas da aula de Computação Móvel 22 Tipos de Conexão • Dispositivos móveis normalmente operam em um dos três modos: – parcialmente conectado, – nunca conectado – sempre conectado, 5/4/2023 Notas da aula de Computação Móvel 23 Sempre conectado • Um dispositivo móvel, como um telefone celular, normalmente opera em um modo sempre conectado. • 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 enquanto estiverem nas instalações da empresa. • Dispositivos móveis, como PDAs, Tablet PCs e laptops, se tornam extensões das aplicações existentes e da infraestrutura, permitindo que os usuários possam estar sempre conectados aos aplicativos enquanto se movimentam livremente pelo escritório. 5/4/2023 Notas da aula de Computação Móvel 24 Parcialmente Conectado • Há muitos cenários em que o dispositivo móvel está realmente fora de contato por longos períodos de tempo. • Por exemplo, um funcionário de escritório móvel pode se conectar periodicamente a um servidor no escritório para obter e-mail, informações de contato ou tarefas a serem realizadas. • O trabalhador então desconecta o dispositivo móvel e executa suas tarefas normais fora do escritório, durante o qual ele pode se referir às informações baixadas. • O usuário também pode atualizar as informações localmente em seu dispositivo móvel antes de se reconectar posteriormente para ressincronizar o dispositivo móvel com o servidor. 5/4/2023 Notas da aula de Computação Móvel 25 Nunca Conectado • Existem também vários dispositivos móveis que nunca se conectam a sistemas de back-end, como certos dispositivos de jogos. • Não é um caso interessante para nós. 5/4/2023 Notas da aula de Computação Móvel 26 Sincronização • O tipo de conexão afecta a maneira como pode sincronizar dados entre o dispositivo móvel e os sistemas de back-end. • A sincronização é possível de duas maneiras: continuamente ou por meio de um método de armazenamento e encaminhamento 5/4/2023 Notas da aula de Computação Móvel 27 Comunicação Contínua • Quando a conectividade entre o cliente e o servidor é contínua, a sincronização de dados entre o cliente e o servidor é contínua e pode ser obtida através de meios síncronos ou assíncronos 5/4/2023 Notas da aula de Computação Móvel 28 Comunicação Contínua 5/4/2023 Notas da aula de Computação Móvel 29 Sincronização Armazenar e encaminhar • Quando a conectividade entre um cliente e um servidor não pode ser garantida, ainda é possível armazenar e transmitir informações com segurança usando um método chamado "armazenar e encaminhar". • Suponha, por exemplo, que um usuário móvel deseje inserirdados enquanto seu dispositivo móvel não estiver conectado a um servidor. Um aplicativo cliente móvel pode armazenar inicialmente os dados em um dado local. • Posteriormente, quando uma conexão tiver sido estabelecida, o aplicativo móvel encaminhará os dados do banco de dados local para o banco de dados no servidor 5/4/2023 Notas da aula de Computação Móvel 30 Sincronização Armazenar e encaminhar 5/4/2023 Notas da aula de Computação Móvel 31 TPC • Trazer exemplos dos 3 aplicações Fat e 3 thin no MS Teams até proxima segunda-feira • Caso de Estudo: ODK (Open Data Kit) – Estudar como funciona o ODK (Explicar como funciona a sincronização de Dados Assincrona e Sincrona • Enviar por e-mail, um resumo do funcionamento do ODK e como ele pode operar de forma Sincrona e Assincrona 5/4/2023 Notas da aula de Computação Móvel 32 FIM!!! Duvidas e Questões? Slide 1: Computação Móvel Slide 2: Conteúdo da Aula Slide 3: Introdução Slide 4: Clientes Slide 5: Thin Clients Slide 6: Thin clients Slide 7: Fat clients Slide 8: Fat clients Slide 9: Web page Hosting Slide 10: Fat Client – Uma Camada Slide 11: Fat Client – Duas Camadas Slide 12: Fat Client – Tres Camadas Slide 13: Web Page hosting – Uma Camada Slide 14: Web Page hosting – Duas Camadas Slide 15: Web Page hosting –Tres Camadas Slide 16: Servidores Slide 17: One-Tier Server architecture Slide 18: One-Tier Server architecture Slide 19: Two-Tiers Server architecture Slide 20: Two-Tiers Server architecture Slide 21: Three-Tiers Server architecture Slide 22: Three-Tiers Server architecture Slide 23: Tipos de Conexão Slide 24: Sempre conectado Slide 25: Parcialmente Conectado Slide 26: Nunca Conectado Slide 27: Sincronização Slide 28: Comunicação Contínua Slide 29: Comunicação Contínua Slide 30: Sincronização Armazenar e encaminhar Slide 31: Sincronização Armazenar e encaminhar Slide 32: TPC Slide 33: FIM!!!