Você está na página 1de 46

Sistemas Distribudos

Professora: Ana Paula Couto DCC 064

Arquiteturas
Captulo 2

Agenda

Estilos Arquitetnicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas Hbridas Arquiteturas e Middleware

Sistemas Distribudos
ORGANIZAO + INTERAO SOFTWARE ARQUITETURAS DE SISTEMAS

ARQUITETURAS DE SOFTWARE

MQUINA REAL

Componentes
Unidade modular com interfaces requeridas e fornecidas bem definidas que substituvel dentro de seu ambiente (Object Management Group, 2004 ) Pode ser substitudo, contanto que sejam respeitadas suas interfaces

Estilos Arquitetnicos

Define: Modo como os componentes esto conectados Dados trocados entre os componentes Modo como os componentes so configurados em conjunto para formar um sistema

Estilos Arquitetnicos

Arquiteturas em camadas Arquiteturas baseadas em objetos Arquiteturas centradas em dados

Arquiteturas baseadas em eventos

Estilos Arquitetnicos Arquiteturas em Camadas


Componentes so organizados em camadas Componente da camada N tem permisso de chamar componentes na camada N-1 Comum em redes de computadores

Estilos Arquitetnicos Arquiteturas baseadas em objetos


Objeto Componente Objetos so conectados por meio de uma chamada de procedimento (remota) Amplamente utilizada para sistemas de software de grande porte

Estilos Arquitetnicos Arquiteturas centradas em dados

Processos se comunicam por meio de um repositrio comum Sistemas distribudos baseados na Web, em grande parte, so centrados em dados

Estilos Arquitetnicos Arquiteturas baseadas em eventos


Sistemas publicar/subscrever Processos publicam eventos e o middleware assegura que somente os processos que se subscreveram para esses eventos os recebero Processos fracamente acoplados: processos no se referem explicitamente uns aos outros

Estilos Arquitetnicos

Estilos Arquitetnicos

Arquitetura de Sistema

Decises a respeito de componentes de software, sua interao e sua colocao em mquinas reais Trs tipos: Centralizadas Descentralizadas Hbridas

Arquitetura de Sistema Centralizadas


Modelo cliente-servidor Comportamento de requisio-resposta

Como estabelecer a comunicao? 1) Protocolo sem conexo - Protocolo simples, que funciona bem em redes locais - Cliente empacota uma mensagem para o servidor diretamente - Eficiente se NO ocorrem problemas - Exemplo: Falhas Transferncia bancrias - Operaes podem ser repetidas sem causar danos: idempotentes

Arquitetura de Sistema Centralizadas

Arquitetura de Sistema Centralizadas


2) Protocolo orientado a conexo Soluo funciona bem em sistemas de longa distncia Sempre que um cliente requisita um servio, primeiro se estabelece conexo com o servidor e depois se envia a requisio

Arquitetura de Sistema Centralizadas

Como distinguir entre cliente e servidor? Exemplo: Servidor de banco de dados distribudo repassa requisies a servidores de arquivos Considerando que muitas aplicaes visam dar suporte ao acesso de usurios a banco de dados: Nvel de interface de usurio Nivel de processamento Nvel de dados

Arquitetura de Sistema Centralizadas

Arquitetura de Sistema Centralizadas


Nvel de interface de usurio Consiste em programas que permitam aos usurios finais interagir com aplicaes Diversos nveis de complexidade Nvel de processamento Normalmente contm as aplicaes Exemplo: Anlise de dados financeiros que pode exigir mtodos e tcnicas sofisticados de estatstica

Arquitetura de Sistema Centralizadas

Nvel de dados Na sua forma mais simples, consiste em um sistema de arquivos Mais comum utilizar um banco de dados Normalmente implementado no lado servidor Mantem os dados consistentes Dados costumam ser persistentes

Arquitetura de Sistema Arquiteturas Multidivididas

Trs Nveis lgicos vrias possibilidades para a distribuio fsica de uma aplicao clienteservidor por vrias mquinas

Arquitetura de Sistema Arquiteturas Multidivididas

Gerenciamento de sistema: Clientes gordos (fat clients) Clientes magros (thin clients) Servidor pode tambm agir como clientes: arquitetura de trs divises

Arquitetura de Sistema Arquiteturas Multidivididas

Arquitetura de Sistema Descentralizadas

Cliente-servidor possuem duas distribuies: Distribuio vertical: componentes logicamente diferentes em mquinas diferentes cada mquina projetada para um grupo especfico de funes Distribuio horizontal: Cliente ou servidor pode ser fisicamente subdividido em partes logicamente equivalentes Poro prpria de dados

Arquitetura de Sistema Descentralizadas: Peer-to-Peer


Processos so todos iguais Grande parte da interao entre processos simtrica Cada processo age como cliente e servidor ao mesmo tempo (servente)

Arquitetura de Sistema Descentralizadas: Peer-to-Peer

Formado por um conjunto de ns, organizados em um overlay ou rede de sobreposio Overlay: rede na qual os ns so os processos e os enlaces representam os canais de comunicao possiveis Comunicao no pode ser feita diretamente Arquiteturas estruturadas ou no-estruturadas

Arquiteturas Peer-to-Peer Estruturadas

Rede de sobreposio construda com a utilizao de um procedimento determinstico Tabela de hash distribuda (Distributed Hash Table - DHT) Dados e ns recebem uma chave aleatria, Ponto crucial: implementar um esquema eficiente e determinstico que mapeie a chave de um dado para o identificador de um n

Arquiteturas Peer-to-Peer Estruturadas

Ao consultar um determinado item de dado, o endereo de rede do n com o contedo retornado Requisio roteada entre os ns at que o n com o dado requisitado seja alcanado

Arquiteturas Peer-to-Peer Estruturadas - Chord


Ns esto logicamente organizados em um anel Item de dado com chave k mapeado para o n com o menor identificador id >= k sucessor de k N denominado sucessor da chave k Funo LOOKUP(k), que retorna o endereo de rede succ(k)

Arquiteturas Peer-to-Peer Estruturadas - Chord

Arquiteturas Peer-to-Peer Estruturadas - Chord

Gerenciamento de associao ao grupo Ao entrar no sistema, o n recebe um identificador aleatrio id Como encontrar a posio no anel? Pesquisa em id retorna o endereo de rede succ(id) Novo n contata succ(id) e seu predecessor e se insere no anel Na partida, o n envia os dados para osucc(id)

Arquiteturas Peer-to-Peer No-Estruturadas

Algoritmos aleatrio so usados para construir a rede de sobreposio Cada n mantem uma lista de vizinhos Dados tambm so espalhados aleatoriamente Como encontrar os dados? Inundar a rede com uma busca

Arquiteturas Peer-to-Peer No-Estruturadas

Gerenciamento de associao ao grupo Grafo aleatrio Cada n possui n vizinhos viso parcial Ns trocam entradas regularmente de sua viso parcial Principal objetivo: atualizar sadas de ns, construir uma nova vizinhana de forma dinmica para alcanar uma caracterstica em especfico

Arquiteturas Peer-to-Peer No-Estruturadas


Gerenciamento de associao ao grupo Ns trocam as listas de vizinhos em dois modos diferentes: pull (puxar) ou push (empurrar) Protocolos que usam somente pull ou push grafos no conectados

Arquiteturas Peer-to-Peer Gerenciamento de Topologia

Arquiteturas Peer-to-Peer Superpares (Superpeers)

A medida que a rede cresce, localizar itens de dados em sistemas P2P no estruturados pode ser problemtico Ns que mantm o ndice de dados ou que agem como ns intermedirios que possuem dados para disponibilizar os recursos a ns vizinhos Sempre que um n comum se junta a rede,se liga a um dos superpares Problema: Seleo do lder

Arquiteturas Peer-to-Peer Superpares (Superpeers)

Arquiteturas Hbridas

Sistemas distribudos nas quais solues clientes-servidor so combinadas com arquiteturas descentralizadas Exemplo: Sistemas distribudos colaborativos Principal objetivo iniciar a troca de informaes Aps adio do n na rede, a distribuio dos dados feita de forma descentralizada BitTorrent

Arquiteturas Hbridas BitTorrent


C

Arquiteturas versus Middleware

Sistemas de middleware seguem um estilo arquitetnico especfico Muitos middlewares adotam sistema arquitetnico baseado em objetos (CORBA,TIB/Rendezvous) Idia principal: desenvolver sistemas de middleware que sejam simples de configurar, adaptar e personalizar conforme necessidade da aplicao Soluo: Interceptores

Arquiteturas versus Middleware - Interceptores

Software que interromper o fluxo de controle usual e permitir que seja executado um outro cdigo Exemplo: Objeto A chama um mtodo do objeto B Chamada original transformada em uma chamada genrica Se o objeto B replicado, cada rplica deveria ser explicitamente invocada Interceptor de nvel de requisio: replicar as chamadas

Autogerenciamento em Sistemas Distribudos

SDs fornecer solues gerais de blindagem contra aspectos indesejveis inerentes a redes Objetivo: suportar o maior nmero possvel de aplicaes Soluo: SDs adaptativos Idia:Construir sistemas onde seja possvel fazer monitorao e ajustes

Autogerenciamento em Sistemas Distribudos

Questes

Em uma rede de sobreposio (overlay), mensagens so roteadas de acordo com a topologia da sobreposio. Qual uma importante desvantagem em relao a esta abordagem? Nem todo n em uma rede P2P deve se tornar um superpar. Cite requisitos razoveis que um superpar deve ter.

Prxima Aula

Processos: Threads, Virtualizao, Clientes

Você também pode gostar