ProgramacaoDM-Aula003 - Arquitetura movel
Transcrição
ProgramacaoDM-Aula003 - Arquitetura movel
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - ARQUITETURAS DE APLICAÇÃO MÓVEL Prof. Angelo Augusto Frozza, M.Sc. http://about.me/TilFrozza ROTEIRO Introdução Cliente-Servidor Cliente Servidor Tipos de conexão Sincronização INTRODUÇÃO As arquiteturas de aplicação frequentemente são modeladas para ilustrar o layout total do software (p.ex. código da aplicação e plataforma) e hardware (p.ex. cliente, servidor e dispositivos de rede); Embora existam muitas combinações possíveis de software e hardware, as arquiteturas de aplicação podem ser encaixadas em uma série de padrões reconhecíveis. INTRODUÇÃO As arquiteturas de aplicação são comumente modeladas em termos de uma arquitetura cliente-servidor, na qual um ou mais dispositivos clientes solicitam informações a um servidor. CLIENTE-SERVIDOR Camadas A funcionalidade do código da aplicação não é necessariamente uniforme por toda uma aplicação; Certas seções de código são mais adequadas para tratar interface com o usuário, enquanto outras seções são desenvolvidas com a finalidade de gerenciar a lógica do negócio ou comunicar-se com o banco de dados ou sistemas back-end; CLIENTE-SERVIDOR Camadas CLIENTE-SERVIDOR Camadas A divisão em camadas descreve a divisão de trabalho dentro do código da aplicação; Do lado do cliente Podem existir de ZERO a TRÊS camadas Cliente sem camada de código cliente magro Cliente com mais de uma camada cliente gordo Do lado do servidor Podem existir de UMA a TRÊS camadas CLIENTE-SERVIDOR Filas As filas permitem distribuir o código da aplicação entre diversas máquinas e, com isso, torná-la escalável; Cria-se um ambiente de servidores distribuídos; Se o código da aplicação já está dividido em camadas, o processo de segmentação em filas ficará muito mais simples; Os servidores que compõem cada uma das filas podem variar em número e capacidade. P.ex. pode haver um número grande de servidores web de baixo custo na fila de apresentação; um número menor de servidores de aplicação na fila de aplicação e dois servidores clusterizados de BD de alto custo na fila de BD; CLIENTE-SERVIDOR Filas A capacidade de adicionar mais servidores é frequentemente denominada escalonamento horizontal, ou scaling out. A capacidade de adicionar servidores mais poderosos é denominada escalonamento vertical, ou scaling up; Em aplicações web amplamente distribuídas, as filas geralmente ficam entre firewalls. Criam-se as DMZ (DeMilitarized Zone) e a zona de intranet; A Internet e a DMZ são zonas não confiáveis; CLIENTE Existem muitos tipos de DM, incluindo celulares, tablets, notebooks etc. Esses dispositivos em geral podem operar como clientes magros ou como clientes gordos ou podem ser desenvolvidos de modo que venham a hospedar páginas web; CLIENTE Cliente magro Não possuem código da aplicação personalizado e dependem completamente do servidor para sua funcionalidade Não dependem tanto do sistema operacional; Em geral, utilizam navegadores web (HTML, XML) e wap (WML); Vantagens: Manutenção e suporte mais fácil; Não há necessidade de levar em conta mecanismos de distribuição e de código da aplicação para o cliente; Desvantagens: Precisam estar em comunicação constante com o servidor. CLIENTE Cliente magro CLIENTE Cliente gordo Em geral possuem de uma a três camadas de código da aplicação e podem operar independentemente de um servidor por certo período; Usar apenas uma camada torna difícil isolar as áreas de funcionalidade individuais e reutilizar e distribuir o código em diversos tipos de dispositivos; São mais úteis em situações em que não há garantia de comunicação permanente entre o cliente e o servidor Dependem muito do sistema operacional e do tipo de DM Pode ser difícil liberar e distribuir o código; Necessidade de dar suporte a várias versões de código para diversos dispositivos; CLIENTE Cliente gordo CLIENTE Cliente gordo CLIENTE Cliente gordo CLIENTE Hospedagem de página web Também é possível exibir e consumir páginas web no DM, mesmo quando o cliente móvel está periodicamente conectado à rede e aos sistemas back-end; Para tanto, é necessário ter um “mini” servidor web nos DM; Também pode-se fazer uso de um BD local; Clientes que usam hospedagem web também podem ter de uma a três camadas; CLIENTE Hospedagem de página web CLIENTE Hospedagem de página web CLIENTE Hospedagem de página web SERVIDOR Arquiteturas de servidor são comumente compostas de uma a três camadas de código implementado em uma a três filas. Arquitetura de filas possuem vantagens e desvantagens... SERVIDOR Arquitetura de uma fila (one-tier) Pode ser desenvolvida de modo que as três camadas de código coexistam em um único servidor; Prós: Muito conveniente; Rápida de desenvolver e implantar; Contras: Menos escalonável; Dificuldades de segurança; O servidor fica na DMZ (DeMilitarized Zone – Zona Desmilitarizada ou Rede de Perímetro); SERVIDOR Arquitetura de uma fila (one-tier) (DMZ: http://pt.wikipedia.org/wiki/DMZ_(computação) SERVIDOR Arquitetura de uma fila (one-tier) SERVIDOR Arquitetura de duas filas (two-tier) Pode ser desenvolvida de modo que um servidor de BD fique separado do servidor de apresentação/aplicação; Prós: Conveniente; Permite a especialização do servidor de BD; Contras: Menos escalonável; Dificuldades de segurança; Mais cara; SERVIDOR Arquitetura de duas filas (two-tier) SERVIDOR Arquitetura de três filas (three-tier) Pode ser desenvolvida de modo que os servidores de apresentação, aplicação e BD fiquem separados; Prós: Escalonável; Protegida por trás de firewalls e DMZ; Permite a especialização do servidor de BD; Contras: Exagero; Mais difícil de ser desenvolvida; Mais difícil de ser gerenciada; Mais cara; SERVIDOR Arquitetura de três filas (three-tier) TIPOS DE CONEXÃO Os DM em geral operam em um de três modos: Sempre conectado Parcialmente conectado Nunca conectado SINCRONIZAÇÃO O tipo de conexão afeta a maneira como pode-se sincronizar dados entre o DM e o sistema back-end; Comunicação contínua Armazenamento e encaminhamento SINCRONIZAÇÃO Comunicação contínua A sincronização de dados entre clientes e servidores são contínuas e podem ser obtidas por meio síncrono ou assíncrono; SINCRONIZAÇÃO Comunicação contínua Comunicação síncrona Ocorre quando uma solicitação para armazenar dados é enviada para o servidor, seguida pelos dados a serem armazenados; Os dados são então colocados em uma área de armazenamento no servidor (BD); Todos os dados são completamente armazenados antes que o servidor confirme o recebimento deles e libere a interface com o cliente; SINCRONIZAÇÃO Comunicação contínua Comunicação assíncrona Ocorre quando uma solicitação para armazenar dados é enviada para o servidor, seguida pelo armazenamento de dados; Os dados são colocados em uma área de armazenamento (BD); Entretanto, os dados não precisam ser armazenados completamente antes que o servidor de a confirmação ao cliente; De fato, o servidor em geral confirma imediatamente a solicitação e somente depois executa a solicitação de armazenamento; Em seguida, quando a solicitação de armazenamento estiver de fato completa, o servidor iniciará uma conversa para informar ao cliente que está pronto. SINCRONIZAÇÃO Comunicação contínua SINCRONIZAÇÃO Sincronização do tipo armazenamento e encaminhamento Quando a conectividade entre o cliente e o servidor não puder ser garantida, é possível ainda armazenar e transmitir as informações de forma segura; A aplicação móvel inicialmente pode armazenar os dados em um BD local; Mais tarde, quando uma conexão for estabelecida, a aplicação móvel encaminha os dados do BD local para o BD remoto (no servidor); SINCRONIZAÇÃO Sincronização do tipo armazenamento e encaminhamento SINCRONIZAÇÃO Sincronização do tipo armazenamento e encaminhamento Esse é um método poderoso que dá aos usuários móveis a capacidade de trabalhar, mesmo quando eles não estão conectados a um servidor; No entanto, é importante notar que, se for permitido aos usuários móveis armazenar dados em um BD local, deve-se assegurar a integridade dos dados quando estes forem sincronizados com o BD no servidor, uma vez que outros usuários podem estar adicionando ou modificando dados e, possivelmente, gerando conflito com os dados do DM; REFERÊNCIAS BIBLIOGRÁFICAS LEE, V.; SCHNEIDER, H. SCHELL, R. Aplicações móveis: arquitetura, projeto e desenvolvimento. São Paulo: Pearson, 2005. Wikipédia – a enciclopédia livre (http://pt.wikipedia.org)
Documentos relacionados
Capitulo 9-Alan-Dennis-Barbara-Haley-Wixom-Analise-e-Projeto
computadores e quais hardwares e softwares serão usados para cada computador (p. ex., Windows, Linux). A maioria dos sistemas é construída para usar os hardwares e softwares existentes na empresa; ...
Leia mais