Vous êtes sur la page 1sur 42

Aplicações Distribuídas

Licenciatura em Engenharia Informática


3º Ano – 5º Semestre
Ano lectivo 2010-2011

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


1
Resumo

  Modelos Arquitecturais
  Arquitectura de um Sistema Distribuído
  Arquitectura de Camadas de um Sistema Distribuído
  Modelo Cliente-Servidor, P2P, Combinação C/S e P2P

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Arquitectura de 1 Sistema Distribuído
  É a estrutura do SD em termos dos componentes que o
compõe, a localização destes em computadores na rede
e as suas inter-relações

  Define os componentes do SD através da identificação


das suas funções de forma simples e abstracta.
  Identifica a localização dos componentes numa rede
  Identifica as inter-relações –a interface- entre os componentes:
os papeis funcionais e a comunicação entre componentes

  A arquitectura tem implicações no desempenho,


fiabilidade e segurança do sistema

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Arquitectura de Camadas

  Os componentes de software e hardware são organizados em camadas


  Um componente da camada N pode chamar um componente na camada
inferior
  A estruturação em camadas e serviços facilita a tarefa de lidarmos com
a complexidade inerente ao desenvolvimento de um SD:
  Camada: um grupo de componentes (e.g., processos ou objectos)
relacionados.
  Serviço: funcionalidade fornecida à camada superior seguinte.

Camada N

Camada 2
(serviços oferecidos à camada superior)

Camada 1
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011 4
Arquitectura de Camadas de 1 SD

Máquina A Máquina B Máquina C

Plataforma (e.g. Intel/Windows XP)


Aplicações Distribuídas

Middleware
Serviços

Serviços de Rede do Serviços de Rede do Serviços de Rede do


Sistema Operativo Sistema Operativo Sistema Operativo

Kernel do Sistema Kernel do Sistema Kernel do Sistema


Operativo Operativo Operativo

Hardware do Computador Hardware do Computador Hardware do Computador


e Rede e Rede e Rede

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Plataforma

  Uma Plataforma são as camadas inferiores de hardware e


software
  Estas camadas inferiores fornecem serviços às camadas
superiores, as quais são implementadas
independetemente.
  Principais Exemplos Serviços de Rede do
Serviços de rede do
  Intel x86/MacOS X Sistema Operativo
  Intel x86/Windows Windows, Mac OS X
  Intel x86/Linux Kernel do Sistema
  Intel x86/Solaris Operativo Windows, Mac OS X
  SPARC/SunOS
  PowePC/MacOS Hardware do Computador Intel x86
e Rede

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Middleware (1)

  É a camada de software que mascára a heterogeidade


presente nos SD (i.e., “esconde” os detalhes de baixo
nível) …
  É um conjunto dos processos ou objectos em computadores distintos,
que interagem para implementar a comunicação e partilha de recursos
entre aplicações distribuídas.
  Estes complementam os serviços de rede para facilitar o diálogo entre
aplicações remotas (e.g., Envio e Recepção de pedidos, Sincronismo,
Definição do formato das mensagens). Aplicações
Distribuídas

Middleware
Serviços de Rede
do Sistema
Operativo
Kernel do Sistema
Operativo

Hardware do
Computador e Rede
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
Middleware (2)
  … oferece um modelo de programação mais
conveniente para programadores de aplicações
distribuídas:
  Fornece uma Interface de programação (API) homogénea.
  Permite suportar a programação das comunicações baseadas em
abstracções do tipo Escrita/Leitura de um ficheiro, ou RPC (Remote
Procedure Calls) ou RMI (Remote Method Invocation).
  Fornece os blocos base para a implementação dos componentes das
aplicações distribuídas baseados nestes paradigmas.
  Principais Exemplos:
  Sun RPC (Remote Procedure Calls), OMG CORBA (Common Request
Broker Architecture), Microsoft D-COM (Distributed Components Object
Model), Sun Java RMI
  Middleware + moderno: IBM WebSphere, Microsoft .NET, Sun J2EE

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Arquitecturas de Software
  A arquitectura de um SD é dominada pela organização dos
componentes de software
  A implementação de um SD passa pela instanciação e colocação de
componentes de software em máquinas reais
  Exemplos:
  Modelo Cliente-Servidor
  Modelo Peer-to-Peer

Cliente

Servidor
Rede

Máquina Cliente
Alexandre Fonte
Máquina Servidor
Material de Apoio a AD, ESTCB Edição 2010-2011
Terminologia

  Componente: Genericamente, um componente é uma


unidade modular com uma interface bem-definida

  Processo: Instancia de programa em execução num


computador. Os modelos arquitecturais estudados andam
em torno deste conceito;

  Serviço: Operações requeridas para execução num


processo remoto (e.g., serviço de impressão, serviço de
base de dados, etc)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Serviços

  Exemplos:
  Serviço de ficheiros
  Acesso (leitura/escrita) a ficheiros
armazenados no servidor

  Serviço de impressão
  Impressão numa impressora remota
gerida pelo servidor

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Serviços
  Exemplos
  Serviço de base de dados
  Acesso a BD gerida pelo
servidor

  Serviço de comunicações
  E-mail, acesso a modems
ligações a outras redes.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Cliente-Servidor
  “A arquitectura Cliente-Servidor é um modelo conceptual adoptado para
disciplinar, orientar o projecto e a implementação de aplicações que
estão funcionalmente separadas em processos distintos.”
  Os processos estão divididos em dois tipos consoante o seu modo de
operação:
  Processo CLIENTE: É todo o processo que solicita serviços (Envia pedidos
ao Servidor)
  Processo SERVIDOR: É todo o processo que fornece Serviços (Atende
esses pedidos, processa, responde)

Client invocation Server


invocation

result result
Server
Servidor como
cliente de outro
Client
Key: servidor, e.g.,
Process: Computer: DNS

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Cliente-Servidor
  Interacção típica entre o Cliente e o Servidor

  Outras nomenclaturas habituais


  Processo cliente=cliente=mestre (Master)=Gestor (Manager)
  Processo servidor=servidor=escravo (Slave)=Agente (Agent)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Cliente-Servidor
  Exemplo:
  Actualmente, existem várias aplicações comerciais desenvolvidas com
base no modelo cliente/servidor.
  Na Internet, o Web browser é um programa cliente que efectua

pedidos de serviços a servidores Web (servidor HTTP)

Cliente Servidor
GET www.google.com HTTP/1.0

HTTP/1.0 200 OK

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Cliente-Servidor
  Os servidores durante a oferta de um serviço podem
também ser clientes de outros servidores
  Exemplo: Os servidores DNS (Domain Name Service)
  Os serviços podem ser fornecidos por múltiplos
servidores
  Exemplos: Um cluster de servidores Web como o Google ou base de
dados paralelas Oracle Service

Server
Client

Server

Client
Server

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Cliente-Servidor

  Proxies e caches
  Um servidor proxy é um intermediário que oferece um serviço recorrendo
aos servidores para executar esse serviço

  A cache guarda uma replica dos dados recentemente utilizados/acedidos

Alexandr
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
e 17
Fonte
Modelo Cliente-Servidor

  Propriedades:
  Modelo mais comum e usado na prática
  Interacção simples facilita implementação
  Servidor é um ponto de falha único
  Não escala para além dum dado limite (servidor
pode tornar-se num bottleneck)
  Segurança apenas tem de se concentrar no servidor

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Implementação de Aplicações C-S

  Habitualmente segue-se uma arquitectura de


camadas:
  Nível interface com o utilizador: Programas/código que
permitem a interacção do utilizador com a aplicação

  Nível de processamento: Lógica aplicacional

  Nível de dados: Mecanismos de gestão de dados (guardam os


dados da aplicação

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


19
Implementação de Aplicações C-S
  Exemplo de um motor de busca

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


20
Arquitecturas Multitiered
  Diferentes alternativas cliente-servidor

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


21
Arquitectura 2 Camadas (Two-tier)
  É a organização mais simples
  A maquina cliente contém apenas os programas que
implementam a interface com o utilizador.
  A máquina servidor contém o resto – os programas
implementando o nível de processamento e dados.

Interacção
Funcional
Pedido
SQL
GUI DBMS
Resposta
Base
Lógica da
de Dados
aplicação
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
Arquitectura 3 camadas (Three-tier)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Arquitectura 3 camadas (Three-tier)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


24
Arquitectura do Cliente

  Programa mais fácil de escrever


que o do seu homologo servidor.
  Não necessita de implementar sofisticados
mecanismos de segurança.
  Nem de efectuar processamento
complexo.
  Nem gerir acessos múltiplos.
  Tipicamente gere a interface do
utilizador com a aplicação.
  Valida os dados introduzidos pelo
utilizador.
  Idealmente utilizador interage com o
front-end sem saber que o back-end
existe.
  Despacha os pedidos para os
programas servidores.
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
Arquitectura do Cliente
  Clientes “gordos”: Modelo “Data Shipping”

SQL
GUI SQL
(DBMS)

Dados Formatados Base


Lógica da de Dados
aplicação

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Arquitectura do Cliente
  Clientes “magros” – Modelo “Function Shipping”

Interacção
Funcional
Pedido
SQL
GUI DBMS

Resposta
Base
Lógica da
de Dados
aplicação

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Arquitectura do Servidor
  Programa mais complicado de escrever que o do seu
homologo.
  Permanentemente à escuta de pedidos de serviço.
  Processar os pedidos e executar o processamento solicitado.
  Enviar uma resposta.
  Implementa toda a lógica associada ao serviço solicitado, i.e.,
implementam a funcionalidade pretendida.
  Implementa sofisticados mecanismos de segurança.
  Gere a partilha de recursos.
  Aceitar múltiplos pedidos em simultâneo.
  Gestão da integridade do dados.
Servidor

Em resumo: “Efectua as tarefas back-


end.” Ex. Servidor HTTP
Cnn.com
Alexandr
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
e 28
Fonte
Tipos de Servidores
  Servidores Interactivos
  Servidores Concorrentes
  Servidores Sem-ligação
  Servidores Com-ligação

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


29
Servidores Iterativos
  “Processam um pedido de cada vez”
  Procedimento de implementação:
  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.

Cliente Pedido 1

Pedido 2

Cliente Servidor

Resposta 1 TEMPO

Resposta 3

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Servidores Concorrentes

  “Processam vários pedidos em simultâneo”


  Os servidores concorrentes são divididos em duas partes:
  Uma parte mestre.
  Um conjunto de partes escravas.
  Vantagens Obvias: Maior disponibilidade, Optimização do tempo de CPU.
  Requisito: Capacidade de Multiprocessamento
Processo Cliente 1 Processo Servidor

Server
Threads
Internet

Processo Client 2

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 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 de


um cliente.
  O novo servidor trata o pedido do cliente por completo.

  O servidor escravo após tratar do pedido não aguarda por novos

pedidos, ele termina imediatamente a sua execução.

  3. Regressa ao passo 1, continua a aceitar pedidos enquanto os


servidores escravos tratam os pedidos concorrencialmente.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Execução de código concorrente

Thread= Pedaço de código que é Thread Alternativamente, pode-se obtar


lançado (pelo processo servidor) principal/mestre por lançar e executar
e executado concorrentemente concorrentemente multiplos
com outros threads. processos (cópias completas do
start processo pai).
start start

Threads Thread A Thread B Thread C


Escravos

Os Threads podem trocar dados/resultados

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011 33


Servidores Sem Ligação (ou modo Datagrama)

  “Não existe quaisquer garantias de entrega confiável dos


pedidos ou respostas.”
  Vantagens: Simplicidade e flexibilidade
  Exemplo: Ping
Caixa
Caixa Correio
Correio
Destinatário
Remetente

O pedido é perdido
O pedido é duplicado
O pedido é atrasado
O pedido chega fora de ordem

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Servidores Sem Ligação (ou modo Datagrama)

Mensagem Pedido
Emissão do pedido Toma conhecimento
do pedido.

Espera pela Resposta

Recepção dos resultados Execução do Pedido


Mensagem Resposta

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Servidores Orientados à Ligação

  “Existe garantia de entregas dos pedidos e respostas de serviço


através do estabelecimento de um circuito virtual”
  Uma sessão entre o cliente e o servidor passa por três fases:
  Estabelecimento da ligação
  Transferência de dados
  Fecho da ligação
  Utilização de números de sequência das mensagens e confirmações
permitem + Mecanismos de Timeout eliminam os erros de
confiabilidade:
  Ordenação das mensagens no lado do receptor
  Eliminação de duplicação de mensagens recebidas
  Confirmação (Acknowledment) da chegada correcta das mensagens
enviadas.
  Se uma mensagem não for confirmada, esta deverá ser retransmitida

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Servidores Orientados à Ligação

Mensagem de ligação
Pedido Toma conhecimento
de Ligação do pedido de ligação
Mensagem de Aceitação
Aceita a ligação

Emissão de pedidos
Execução dos
Recepção de resultados
Pedidos e
Sincronismo
gestão do sincronismo.

Mensagem de fecho de ligação Toma conhecimento


Pedido de do pedido de fecho da
Fecho da ligação
ligação

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Escolha do Tipo de Servidor
  Servidores iterativos sem ligação
  Serviços que não necessitem de muito processamento por pedido.
  Ex: servidor de tempo (TIME).

  Servidores iterativos orientados à ligação


  Serviços que necessitam de pouco processamento, mas que requerem
um transporte fíavel do tipo TCP.

  Servidores concorrentes sem ligação


  Não se devem utilizar se os tempos de criação de um novo processo
forem superiores aos tempos de oferta dos serviços.

  Servidores concorrentes orientados à ligação


  Oferecem um transporte fiável e são capazes de atenderem a
múltiplos pedidos em simultâneo.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Peer-to-Peer
  Processos Peer (par, coisa igual)
  Não existe uma clara distinção entre processos Cliente e processos
Servidor
  Resolução cooperativa de um problema (e.g., partilha de ficheiros ou
distribuição de carga)
  É vulgar a necessidade de implementação de código para manutenção
de consistência de recursos e sincronismo de acções

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo Peer-to-Peer
  Propriedades:
  Interacção mais complexa (do que num sistema cliente/servidor) leva
a implementações mais complexas
  Em geral n peers interagem na oferta de um serviço

  Operações de pesquisa são complexas


  Não existe ponto único de falha
  Melhor potencial de escalabilidade
  Maior número de computadores envolvidos pode colocar questões
relativas:
  Heterogeneidade

  Segurança

  Apropriado para ambientes em que todos os participantes querem


cooperar para fornecer uma dado serviço
  Capacidade agregada >> capacidade individual

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Combinação C/S e Peer-to-Peer
  Cliente + peer-to-peer
  Num sistema peer-to-peer, podem existir elementos que disponibilizam
o serviço a outros processos (clientes) que não pertencem ao sistema
peer-to-peer

  Propriedades:
  Permite a um host aceder a um serviço disponibilizado por um sistema
peer-to-peer
  Permite limitar o número de processos que fazem parte do sistema
peer-to-peer

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Combinação C/S e Peer-to-Peer
  Cliente/servidor + peer-to-peer
  O serviço disponibilizado por um sistema pode ser dividido em várias
funcionalidades, sendo umas fornecidas por um sistema cliente/
servidor e outras por um sistema peer-to-peer. Neste caso é comum o
sistema cliente/servidor servir como serviço de directório.

  Propriedades:
  Permite combinar as vantagens de ambos os sistemas

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011

Vous aimerez peut-être aussi