Upload
tiago-caetano
View
223
Download
0
Embed Size (px)
Citation preview
8/8/2019 Aid Cap2 Modelosarquitecturais
1/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011 1
Aplicaes Distribudas
Licenciatura em Engenharia Informtica3 Ano 5 SemestreAno lectivo 2010-2011
8/8/2019 Aid Cap2 Modelosarquitecturais
2/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Resumo
Modelos Arquitecturais Arquitectura de um Sistema Distribudo Arquitectura de Camadas de um Sistema Distribudo Modelo Cliente-Servidor, P2P, Combinao C/S e P2P
8/8/2019 Aid Cap2 Modelosarquitecturais
3/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura de 1 Sistema Distribudo
a estrutura do SD em termos dos componentes que ocompe, a localizao destes em computadores na redee as suas inter-relaes
Define os componentes do SD atravs da identificaodas suas funes de forma simples e abstracta. Identifica a localizao dos componentes numa rede Identifica as inter-relaes a interface- entre os componentes:
os papeis funcionais e a comunicao entre componentes
A arquitectura tem implicaes no desempenho,fiabilidade e segurana do sistema
8/8/2019 Aid Cap2 Modelosarquitecturais
4/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011 4
Arquitectura de Camadas
Os componentes de software e hardware so organizados em camadas Um componente da camada N pode chamar um componente na camada
inferior
A estruturao em camadas e servios facilita a tarefa de lidarmos coma complexidade inerente ao desenvolvimento de um SD: Camada: um grupo de componentes (e.g., processos ou objectos)
relacionados. Servio: funcionalidade fornecida camada superior seguinte.
Camada 1
Camada 2
Camada N
(servios oferecidos camada superior)
8/8/2019 Aid Cap2 Modelosarquitecturais
5/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura de Camadas de 1 SD
Aplicaes Distribudas
Middleware
Servios
Hardware do Computadore Rede
Kerneldo SistemaOperativo
Servios de Rede doSistema Operativo
Hardware do Computadore Rede
Kerneldo SistemaOperativo
Servios de Rede doSistema Operativo
Hardware do Computadore Rede
Kerneldo SistemaOperativo
Servios de Rede doSistema Operativo
Mquina A
Middleware
Mquina B Mquina C
Plataforma(e.g.
Intel/Win
dowsXP)
8/8/2019 Aid Cap2 Modelosarquitecturais
6/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Plataforma
Uma Plataforma so as camadas inferiores de hardware esoftware
Estas camadas inferiores fornecem servios s camadassuperiores, as quais so implementadasindependetemente.
Principais Exemplos Intel x86/MacOS X Intel x86/Windows Intel x86/Linux Intel x86/Solaris SPARC/SunOS PowePC/MacOS Hardware do Computador
e Rede
Kerneldo SistemaOperativo
Servios de Rede doSistema Operativo
Intel x86
Windows, Mac OS X
Servios de rede doWindows, Mac OS X
8/8/2019 Aid Cap2 Modelosarquitecturais
7/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Middleware (1)
a camada de softwareque mascra a heterogeidadepresente nos SD (i.e., esconde os detalhes de baixonvel) um conjunto dos processos ou objectos em computadores distintos,
que interagem para implementar a comunicao e partilha de recursosentre aplicaes distribudas.
Estes complementam os servios de rede para facilitar o dilogo entreaplicaes remotas (e.g., Envio e Recepo de pedidos, Sincronismo,Definio do formato das mensagens).
Hardware do
Computador e Rede
Kerneldo Sistema
Operativo
Servios de Rede
do SistemaOperativo
Middleware
AplicaesDistribudas
8/8/2019 Aid Cap2 Modelosarquitecturais
8/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Middleware (2)
oferece um modelo de programao maisconveniente para programadores de aplicaesdistribudas: Fornece uma Interface de programao (API) homognea. Permite suportar a programao das comunicaes baseadas em
abstraces do tipo Escrita/Leitura de um ficheiro, ou RPC (Remote
Procedure Calls) ou RMI (Remote Method Invocation). Fornece os blocos base para a implementao dos componentes dasaplicaes distribudas baseados nestes paradigmas.
Principais Exemplos: Sun RPC (Remote Procedure Calls), OMG CORBA (Common Request
Broker Architecture), Microsoft D-COM (Distributed Components ObjectModel), Sun Java RMI
Middleware + moderno: IBM WebSphere, Microsoft .NET, Sun J2EE
8/8/2019 Aid Cap2 Modelosarquitecturais
9/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitecturas de Software
A arquitectura de um SD dominada pela organizao doscomponentes de software A implementao de um SD passa pela instanciao e colocao de
componentes de software em mquinas reais Exemplos:
Modelo Cliente-Servidor Modelo Peer-to-Peer
Rede
Cliente
Servidor
Mquina Cliente
Mquina Servidor
8/8/2019 Aid Cap2 Modelosarquitecturais
10/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Terminologia
Componente: Genericamente, um componente umaunidade modular com uma interface bem-definida
Processo: Instancia de programa em execuo numcomputador. Os modelos arquitecturais estudados andamem torno deste conceito;
Servio: Operaes requeridas para execuo numprocesso remoto (e.g., servio de impresso, servio de
base de dados, etc)
8/8/2019 Aid Cap2 Modelosarquitecturais
11/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Exemplos: Servio de ficheiros
Acesso (leitura/escrita) a ficheirosarmazenados no servidor
Servio de impresso Impresso numa impressora remota
gerida pelo servidor
Servios
8/8/2019 Aid Cap2 Modelosarquitecturais
12/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servios
Exemplos Servio de base de dados
Acesso a BD gerida peloservidor
Servio de comunicaes E-mail, acesso a modems
ligaes a outras redes.
8/8/2019 Aid Cap2 Modelosarquitecturais
13/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Cliente-Servidor
A arquitectura Cliente-Servidor um modelo conceptual adoptado paradisciplinar, orientar o projecto e a implementao de aplicaes queesto funcionalmente separadas em processos distintos.
Os processos esto divididos em dois tipos consoante o seu modo deoperao: Processo CLIENTE: todo o processo que solicita servios (Envia pedidos
ao Servidor) Processo SERVIDOR: todo o processo que fornece Servios (Atende
esses pedidos, processa, responde)
Servidor comocliente de outroservidor, e.g.,DNS
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
8/8/2019 Aid Cap2 Modelosarquitecturais
14/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Cliente-Servidor
Interaco tpica entre o Cliente e o Servidor
Outras nomenclaturas habituais Processo cliente=cliente=mestre (Master)=Gestor (Manager) Processo servidor=servidor=escravo (Slave)=Agente (Agent)
8/8/2019 Aid Cap2 Modelosarquitecturais
15/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Cliente-Servidor
Exemplo: Actualmente, existem vrias aplicaes comerciais desenvolvidas com
base no modelo cliente/servidor. Na Internet, o Web browser um programa cliente que efectua
pedidos de servios a servidores Web(servidor HTTP)
GET www.google.com HTTP/1.0
HTTP/1.0 200 OK
Cliente Servidor
8/8/2019 Aid Cap2 Modelosarquitecturais
16/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Cliente-Servidor
Os servidores durante a oferta de um servio podemtambm ser clientes de outros servidores Exemplo: Os servidores DNS (Domain Name Service)
Os servios podem ser fornecidos por mltiplosservidores Exemplos: Um clusterde servidores Web como o Googleou base dedados paralelas Oracle Service
Server
Server
Server
Client
Client
8/8/2019 Aid Cap2 Modelosarquitecturais
17/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011Alexandr
e Fonte17
Modelo Cliente-Servidor
Proxiese caches Um servidor proxy um intermedirio que oferece um servio recorrendo
aos servidores para executar esse servio
A cacheguarda uma replica dos dados recentemente utilizados/acedidos
8/8/2019 Aid Cap2 Modelosarquitecturais
18/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Cliente-Servidor
Propriedades: Modelo mais comum e usado na prtica Interaco simples facilita implementao Servidor um ponto de falha nico No escala para alm dum dado limite (servidorpode tornar-se num bottleneck) Segurana apenas tem de se concentrar no servidor
8/8/2019 Aid Cap2 Modelosarquitecturais
19/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Implementao de Aplicaes C-S
Habitualmente segue-se uma arquitectura decamadas: Nvel interface com o utilizador: Programas/cdigo que
permitem a interaco do utilizador com a aplicao
Nvel de processamento: Lgica aplicacional
Nvel de dados: Mecanismos de gesto de dados (guardam osdados da aplicao
19
8/8/2019 Aid Cap2 Modelosarquitecturais
20/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Implementao de Aplicaes C-S
Exemplo de um motor de busca
20
8/8/2019 Aid Cap2 Modelosarquitecturais
21/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitecturas Multitiered
Diferentes alternativas cliente-servidor
21
8/8/2019 Aid Cap2 Modelosarquitecturais
22/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura 2 Camadas (Two-tier)
a organizao mais simples A maquina cliente contm apenas os programas que
implementam a interface com o utilizador. A mquina servidor contm o resto os programas
implementando o nvel de processamento e dados.
GUI
SQL
Lgica daaplicao
DBMS
Pedido
Resposta
Interaco
Funcional
Base
de Dados
8/8/2019 Aid Cap2 Modelosarquitecturais
23/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura 3 camadas (Three-tier)
8/8/2019 Aid Cap2 Modelosarquitecturais
24/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura 3 camadas (Three-tier)
24
8/8/2019 Aid Cap2 Modelosarquitecturais
25/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura do Cliente
Programa mais fcil de escreverque o do seu homologo servidor. No necessita de implementar sofisticados
mecanismos de segurana. Nem de efectuar processamento
complexo. Nem gerir acessos mltiplos.
Tipicamente gere a interface doutilizador com a aplicao. Valida os dados introduzidos pelo
utilizador. Idealmente utilizador interage com o
front-endsem saber que o back-endexiste.
Despacha os pedidos para osprogramas servidores.
8/8/2019 Aid Cap2 Modelosarquitecturais
26/42
8/8/2019 Aid Cap2 Modelosarquitecturais
27/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Arquitectura do Cliente
Clientes magros Modelo Function Shipping
GUI
SQL
Lgica daaplicao
DBMS
Pedido
Resposta
Interaco
Funcional
Base
de Dados
8/8/2019 Aid Cap2 Modelosarquitecturais
28/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011Alexandr
e Fonte28
Arquitectura do Servidor
Programa mais complicado de escrever que o do seuhomologo. Permanentemente escuta de pedidos de servio. Processar os pedidos e executar o processamento solicitado. Enviar uma resposta. Implementa toda a lgica associada ao servio solicitado, i.e.,
implementam a funcionalidade pretendida. Implementa sofisticados mecanismos de segurana. Gere a partilha de recursos. Aceitar mltiplos pedidos em simultneo. Gesto da integridade do dados.
Em resumo: Efectua as tarefas back-end. Ex. Servidor HTTP
Cnn.com
Servidor
8/8/2019 Aid Cap2 Modelosarquitecturais
29/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Tipos de Servidores
Servidores Interactivos Servidores Concorrentes Servidores Sem-ligao Servidores Com-ligao
29
8/8/2019 Aid Cap2 Modelosarquitecturais
30/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servidores Iterativos
Processam um pedido de cada vez Procedimento de implementao:
1. Espera pela chegada de um pedido do cliente. 2. Processa o pedido do cliente. 3. Envia uma resposta de volta ao cliente que lhe enviou o
pedido. 4. Regressa ao passo 1.
Pedido 1
Resposta 1Resposta 3
Pedido 2
TEMPO
Servidor
Cliente
Cliente
8/8/2019 Aid Cap2 Modelosarquitecturais
31/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servidores Concorrentes
Processam vrios pedidos em simultneo Os servidores concorrentes so divididos em duas partes:
Uma parte mestre. Um conjunto de partes escravas.
Vantagens Obvias: Maior disponibilidade, Optimizao do tempo de CPU. Requisito: Capacidade de Multiprocessamento
Server
Threads
Processo ServidorProcesso Cliente 1
Processo Client 2
Internet
8/8/2019 Aid Cap2 Modelosarquitecturais
32/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servidores Concorrentes
A parte mestre executa os passos seguintes: 1. Espera a chegada de um pedido de um cliente.
2. Inicia (activa) um novo servidor (escravo) para tratar do pedido deum cliente. O novo servidor trata o pedido do cliente por completo. O servidor escravo aps tratar do pedido no aguarda por novos
pedidos, ele termina imediatamente a sua execuo.
3. Regressa ao passo 1, continua a aceitar pedidos enquanto osservidores escravos tratam os pedidos concorrencialmente.
8/8/2019 Aid Cap2 Modelosarquitecturais
33/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011 33
Execuo de cdigo concorrente
Threadprincipal/mestre
Thread A Thread B Thread C
start start start
Os Threads podem trocar dados/resultados
ThreadsEscravos
Thread= Pedao de cdigo que lanado (pelo processo servidor)e executado concorrentementecom outros threads.
Alternativamente, pode-se obtarpor lanar e executarconcorrentemente multiplosprocessos (cpias completas doprocesso pai).
8/8/2019 Aid Cap2 Modelosarquitecturais
34/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servidores Sem Ligao (ou modo Datagrama)
No existe quaisquer garantias de entrega confivel dospedidos ou respostas.
Vantagens:Simplicidade e flexibilidade Exemplo: Ping
Caixa Correio
Destinatrio
Caixa
Correio
Remetente
O pedido perdidoO pedido duplicadoO pedido atrasadoO pedido chega fora de ordem
8/8/2019 Aid Cap2 Modelosarquitecturais
35/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servidores Sem Ligao (ou modo Datagrama)
Emisso do pedidoMensagem Pedido
Toma conhecimento
do pedido.
Execuo do PedidoMensagem Resposta
Recepo dos resultados
Espera pela Resposta
8/8/2019 Aid Cap2 Modelosarquitecturais
36/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Servidores Orientados Ligao
Existe garantia de entregas dos pedidos e respostas de servioatravs do estabelecimento de um circuito virtual
Uma sesso entre o cliente e o servidor passa por trs fases: Estabelecimento da ligao Transferncia de dados Fecho da ligao
Utilizao de nmeros de sequncia das mensagens e confirmaespermitem + Mecanismos de Timeout eliminam os erros deconfiabilidade: Ordenao das mensagens no lado do receptor Eliminao de duplicao de mensagens recebidas Confirmao (Acknowledment) da chegada correcta das mensagens
enviadas. Se uma mensagem no for confirmada, esta dever ser retransmitida
8/8/2019 Aid Cap2 Modelosarquitecturais
37/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Pedidode Ligao
Mensagem de ligaoToma conhecimentodo pedido de ligao
Aceita a ligao
Emisso de pedidosRecepo de resultados
Sincronismo
Execuo dosPedidos e
gesto do sincronismo.
Pedido deFecho da ligao
Mensagem de fecho de ligao Toma conhecimentodo pedido de fecho da
ligao
Mensagem de Aceitao
Servidores Orientados Ligao
8/8/2019 Aid Cap2 Modelosarquitecturais
38/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Escolha do Tipo de Servidor
Servidores iterativos sem ligao Servios que no necessitem de muito processamento por pedido. Ex: servidor de tempo (TIME).
Servidores iterativos orientados ligao Servios que necessitam de pouco processamento, mas que requerem
um transporte favel do tipo TCP.
Servidores concorrentes sem ligao No se devem utilizar se os tempos de criao de um novo processo
forem superiores aos tempos de oferta dos servios.
Servidores concorrentes orientados ligao Oferecem um transporte fivel e so capazes de atenderem a
mltiplos pedidos em simultneo.
8/8/2019 Aid Cap2 Modelosarquitecturais
39/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Peer-to-Peer
Processos Peer(par, coisa igual) No existe uma clara distino entre processos Cliente e processos
Servidor Resoluo cooperativa de um problema (e.g., partilha de ficheiros ou
distribuio de carga) vulgar a necessidade de implementao de cdigo para manuteno
de consistncia de recursos e sincronismo de aces
8/8/2019 Aid Cap2 Modelosarquitecturais
40/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Modelo Peer-to-Peer
Propriedades: Interaco mais complexa (do que num sistema cliente/servidor) leva
a implementaes mais complexas Em geral n peers interagem na oferta de um servio
Operaes de pesquisa so complexas No existe ponto nico de falha Melhor potencial de escalabilidade Maior nmero de computadores envolvidos pode colocar questes
relativas: Heterogeneidade Segurana
Apropriado para ambientes em que todos os participantes queremcooperar para fornecer uma dado servio
Capacidade agregada >> capacidade individual
8/8/2019 Aid Cap2 Modelosarquitecturais
41/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Combinao C/S e Peer-to-Peer
Cliente + peer-to-peer Num sistema peer-to-peer, podem existir elementos que disponibilizam
o servio a outros processos (clientes) que no pertencem ao sistemapeer-to-peer
Propriedades: Permite a um host aceder a um servio disponibilizado por um sistema
peer-to-peer Permite limitar o nmero de processos que fazem parte do sistema
peer-to-peer
8/8/2019 Aid Cap2 Modelosarquitecturais
42/42
Alexandre Fonte Material de Apoio a AD, ESTCB Edio 2010-2011
Combinao C/S e Peer-to-Peer
Cliente/servidor + peer-to-peer O servio disponibilizado por um sistema pode ser dividido em vrias
funcionalidades, sendo umas fornecidas por um sistema cliente/servidor e outras por um sistema peer-to-peer. Neste caso comum osistema cliente/servidor servir como servio de directrio.
Propriedades: Permite combinar as vantagens de ambos os sistemas