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

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