Вы находитесь на странице: 1из 3

Sistemas Distribudos (SD) 1.Arquiteturas A noo de um estilo arquitetnico importante.

. Tal estilo formado em termos de componentes, do modo como esses componentes so conectados uns ao outros, dos dados trocados entre componentes e, por fim, da maneira como esses elementos so configurados em conjunto para formar um sistema. Um componente uma unidade modular com interfaces requeridas e fornecidas bem definidas que substituvel dentro de seu ambiente. Um conceito um pouco mais difcil de entender dentro de um estilo arquitetnico o de um conector que, em geral, descrito como um mecanismo que serve de mediador da comunicao ou da cooperao entre componente. Por exemplo, um conector pode ser formado pelas facilidades para chamadas de procedimentos (remotas), passagem de mensagens ou fluxos de textos. Dentre vrios estilos arquitetnicos o mais importantes para sistemas distribudos so: Arquiteturas em Camadas Arquiteturas Baseadas em Objetos Arquiteturas centradas em dados Arquiteturas baseadas em eventos A idia bsica para o estilo em camadas simples: os componentes so organizados em camadas, e um componente na camada Li, tem permisso de chamar componentes na camada subjacente Li -1, mas no o contrrio como na figura abaixo: Uma organizao bem mais solta a seguida nas arquiteturas baseadas em objetos (figura ao lado). Onde a idia bsica que cada objeto corresponde ao que definimos como componente, e esses componentes so conectados por meio de uma chamada de procedimento (remota). Por exemplo JAVA RMI. No surpresa que essa arquitetura de software se ajuste arquitetura de sistema clienteservidor. Arquitetura centrada em dados (figura abaixo) e desenvolvem em torno da idia de que processos se comunicam por meio de um repositrio comum (passivou ou ativo). Como exemplo podemos citar um grande conjunto de aplicaes em rede que dependem de um sistema distribudo de arquivos compartilhados o qual praticamente toda a comunicao ocorre por meio de arquivos: Web Em Arquiteturas baseadas em eventos, processos se comunicam, em essncia por meio da propagao de eventos que, opcionalmente tambm transportam dados como na figura seguinte. A propagao de eventos tem sido associada, em geral , com o que denominamos sistemas publicar/subscrever. Idia Bsica: Nesta arquitetura, processos demonstram o interesse por um evento ou conjunto de eventos (processo se subscreve) e esperam pela notificao de qualquer um desses eventos, gerados por um processo notificador. Em outras palavras, o produtor publica uma informao em um gerenciador de eventos (middleware),e os consumidores se subescrevem para receber as informaes deste gerenciador. Eventos e notificaes. 2. Arquiteturas de Sistemas Trata-se de como so organizados, ou seja colocados os componentes de software dentro de sistemas distribudos 2.1 Arquiteturas Centralizadas Opinio compartilhada por todos pesquisadores e praticantes de SDs que clientes que requisitam servios de servidores nos ajuda a entender e gerenciar complexidades de SDs. Sendo assim no modelo cliente-servidor bsico: Um servidor um processo que implementa um servio especfico por exemplo um servio de sistema de arquivos. Um cliente uma processo que requisita um servio de um servidor enviando-lhes uma requisio e na seqncia, esperando pela resposta do servidor, tambm conhecida como comportamento de requisio-resposta. Para essa interao (cliente-servidor) usar um protocolo sem conexo (UDP) tem bvia vantagem de ser eficiente. Contanto que as mensagem no se percam ou no sejam corrompidas. Infelizmente, fazer com que o protocolo seja resistente a ocasionais falhas de transmisso no trivial. Como alternativa a essa caracterstica muitos sistemas cliente-servidor usam um protocolo confivel orientado a conexo (TCP/IP). interessante ressaltar que praticamente todos os protocolos de aplicao da Internet so baseados em conexes TCP/IP confiveis. Camada de aplicao A maioria das aplicaes cliente-servidor viso dar suporte ao acesso de usurios a banco de dados, assim seguindo em essncia o estilo arquitetnico em camadas trabalhando com trs nveis: Interface de usurio, processamento e de dados. O nvel de usurio contm o que necessrio para fazer interface diretamente com o usurio, como gerenciamento de exibio. O nvel de processamento contm normalmente as aplicaes. O nvel de dados gerencia os dados propriamente ditos sobre os quais est sendo executada alguma ao.

Organizao simplificada de um mecanismo de busca na Intenet em trs camadas.

Arquiteturas Multidivididas A distino entre trs nveis lgicos, como discutimos at aqui, sugere vrias possibilidades para distribuio fsica de uma aplicao cliente-servidor por vrias mquinas. A organizao mais simples ter s dois tipos de mquinas: 1. Um a mquina cliente que contm apenas programas que implementam o nvel (parte do nvel) de interface do usurio. 2. Uma mquina do servidor que contm o resto, ou seja, os programas que implementa o nvel de processamento e de dados. Essa diviso resulta em algo tambm denominado arquitetura de duas divises (fsicas) . Como explicado a seguir:

parte est operando em sua prpria poro do conjunto completo de dados, o que equilibra a carga. Esse tipo de distribuio mais conhecida como peer-to-peer. Numa perspectiva de alto nvel, os processos que constituem um sistema peer-to-peer so todos iguais. Cada processo agira como um cliente e um servidor ao mesmo tempo ( o que tambm se denomina agir como servente). Ento, como organizar esses processos em uma rede de sobreposio, isto , uma rede a qual os ns so formatos pelos processos e os enlaces representam os canais de comunicao possveis (conexes TCP usualmente). Existem dois tipos de redes de sobre posio: as que so estruturadas e as que no so. Arquiteturas peer-to-peer estruturas A rede de sobreposio construda com a utilizao de um procedimento determinstico. Sendo que o mais utilizado organizar os processos por meio de uma tabela de hash distribuda (Distributed Hash Table DHT). O ponto crucial de todo sistema baseado em DHT implementar um esquema eficiente e determinstico que mapeie exclusivamente a chave - os itens dados recebem chaves aleatrias de um item de dado para identificador de um n tendo como base somente alguma distncia mtrica. No sistema Chord, os ns esto logicamente organizados em uma anel de tal modo que um item dado com a chave k seja mapeado para o n que tenha o menor identificador id k. Esse n denominado sucessor da chave k e denotado como succ(k), como na figura a baixo.

a)

b)

c)

d)

e)

a) Parte da interface dependente de terminal Aplicaes controlam remotamente a apresentao dos dados b) Nesse modelo, o software cliente no faz nenhum processamento exceto o necessrio para apresentar a interface da aplicao c) Formulrio que precise ser completamente preenchido antes do processamento. Cliente pode verificar a correo e consistncia. Editor de texto com funes bsicas no cliente e ferramentas avanadas no servidor d) Pcs conectados por meio de uma rede a um sistema de arquivos distribudos ou a um banco de dados. e) Representa a sitao em que o disco local cotem parte dos dados. Ao consultar a Web, com browser um cliente pode construir gradativamente uma enorme cache em disco local com as pginas Web mais recentemente consultadas Ao falamos de diviso entre mquinas clientes e servidoras, no podemos deixa passar o fato de que um servidor s vezes pode precisar agir como cliente, como a figura abaixo,o que resulta em uma arquitetura de trs divises em termos fsicos . Nessa hierarquia, programas que formam parte do nvel de processamento residem no servidor separado, mas alm disso, podem se parcialmente distribudos pelas mquinas clientes e servidora.

Quando um n quer se juntar ao sistema, ele comea gerando um identificador aleatrio id. Observe que, se o espao do identificador for grande o suficiente, contato que o gerador de nmeros aleatrios seja de boa qualidade, a probabilidade de gera um identificador que j esteja designado a um n real prxima de zero. Portanto, o n pode simplesmente fazer uma pesquisa em id, que retornar o endereo de rede de succ(id). Sair tambm simples: o n id informa sua partida a seu predecessor e sucessor e transfere seus itens de dados para succ(id). J o sistema CAN (Content Addressable Network) rede de contedo enderevel emprega um espao de coordenadas cartesianas de d dimenses que completamente particionado entre todos os ns que participam do sistema. Na figura seguinte temos um exemplo de trabalho em duas dimenses

2.2 Arquiteturas Descentralizadas Em muitos ambientes de negcio, processamento distribudo equivale a organizar uma aplicao clienteservidor como uma arquitetura multidividida. Esse tipo de distribuio denominado distribuio vertical. O aspecto caracterstico da distribuio vertical que ela obtida ao se colocar componentes logicamente diferentes em mquinas diferentes. Outra forma a distribuio horizontal, onde o que conta so os clientes e servidores dentro do sistema. Nesse tipo de distribuio um ou outro podem ser fisicamente subdivido em partes logicamente equivalentes,mas cada

A figura (a) mostra o espao bidimensional [0,1]x[0,1] dividido em seis ns. Cada n tem uma regio associada. A todo item de dado em CAN ser atribudo um nico ponto desse espao, aps o que tambm fica claro qual n responsvel por aquele dado. Quando um n P quer se juntar a um sistema CAN, ele escolhe um ponto arbitrrio do espao de coordenadas e, na seqncia, pesquisa o n Q em cuja regio o ponto cai. Essa pesquisa realizada pelo roteamento baseado em posicionamento. Ento, o no Q subdivide sua regio em duas metades, como mostra a figura (b), e uma metade designada ao n P. Os ns monitoram seus vizinhos, isto , ns responsveis por regies adjacentes. Na ocasio da subdiviso de uma regio, fica fcil para o n P, que est se juntando ao grupo, vir a saber quem so seus novos vizinhos perguntando ao n Q. Sair do CAN um pouco mais complicado. Considere que na figura anterior, o n cuja coordenada (0,6;0,7) saia. Sua regio ser designada a um de seus vizinhos, por exemplo o n (0,9;0,9), mas claro que no se pode simplesmente fundi-la e obter um retngulo. Nesse caso o n em (0,9;0,9) simplesmente cuidar daquela regio e informar isso aos antigos vizinhos. bvio que tal fato pode levar a uma repartio menos simtrica do espao de coordenadas, razo por que um processo de fundo iniciado periodicamente para fazer a repartio do espao inteiro.

Вам также может понравиться