Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Componentes so organizados em camadas Componente da camada N tem permisso de chamar componentes na camada N-1 Comum em redes de computadores
Objeto Componente Objetos so conectados por meio de uma chamada de procedimento (remota) Amplamente utilizada para sistemas de software de grande porte
Processos se comunicam por meio de um repositrio comum Sistemas distribudos baseados na Web, em grande parte, so centrados em dados
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
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
Nvel de processamento Normalmente contm as aplicaes Exemplo: Anlise de dados financeiros que pode exigir mtodos e tcnicas sofisticados de estatstica
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
Trs Nveis lgicos vrias possibilidades para a distribuio fsica de uma aplicao clienteservidor por vrias mquinas
Gerenciamento de sistema: Clientes gordos (fat clients) Clientes magros (thin clients) Servidor pode tambm agir como clientes: arquitetura de trs divises
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
Processos so todos iguais Grande parte da interao entre processos simtrica Cada processo age como cliente e servidor ao mesmo tempo (servente)
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
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
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
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)
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)
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
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
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
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 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
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
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
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
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