Aid Cap2 Modelosarquitecturais

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