Você está na página 1de 11

Capitulo 2 Arquitetura. 2.

.1 - Introduo A organizao de sistemas distribudos trata dos componentes de software que constituem o sistema, essas arquiteturas de software nos dizem como os vrios componentes de software devem ser organizados e como devem interagir. A especificao final de uma arquitetura de software tambm denominada arquitetura de sistema. A camada de middleware uma deciso arquitetnica e sua finalidade proporcionar transparncia de distribuio. Tambm pode se conseguir a adaptabilidade em sistema distribudos fazendo o sistema monitorar seu prprio comportamento e tomar as providncias adequadas quando necessrio, denominados de sistemas autonmicos. 2.1 Estilos Arquitetnicos. Estio arquitetnico formulado em termos de componentes, do modo como esses componentes esto conectados uns aos 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 conector um mecanismo que serve de mediador da comunicao ou da cooperao entre componentes. Ex: passagem de fluxo de dados. Existe 4 modelos importantes de em estilo arquitetnico em sistema distribudos que so: 1. Arquiteturas em camadas Os componentes so organizados em camadas, e um componente na camada N tem permisso de chamar componentes na camada subjacente N-1, mas no o contrario. O controle flui de camada para camada; requisies descem pela hierarquia, ao passo que resultados fluem para cima. 2. Arquiteturas baseadas em objetos Cada objeto corresponde ao que definimos como componente, e esses componentes so conectados por meio de uma chamada de procedimento remota. 3. Arquiteturas centralizadas em dados Processos se comunicam por meio de um repositrio comum (passivo ou ativo). 4. Arquiteturas baseadas em eventos processos se comunicam por meio da propagao de eventos que, tambm transportam dados. Propagao de

eventos so sistemas publicar/subscrever. Neste sistema os processos so fracamente acoplados, referencialmente desacoplados. Arquitetura baseadas em eventos podem ser combinadas com centradas em dados, resultando nos espaos compartilhados. Os processos tambm esto desacoplados no tempo, isto , no precisam estar ambos ativos quando ocorrer a comunicao e os dados podem ser acessados com a utilizao de uma descrio em vez de uma referencia de explcita como ocorre em arquivos. 2.2 Arquiteturas de Sistemas. Existem organizaes centralizadas, descentralizadas e varias formas hibridas. 2.2.1 Arquiteturas Centralizadas. No modelo cliente-servidor bsico, o servidor um processo que implementa um servio especfico e o cliente um processo que requisita um servio de um servidor enviando-lhe um requisio e, na sequencia, esperando resposta do servidor. Essa interao cliente-servidor, tambm conhecida como comportamento de requisioresposta. Quando uma operao de requisio pode ser repetida varias vezes sem causar danos, diz-se que ela idempotente. Praticamente todos os protocolos de aplicao da internet so baseados em conexes TCP/IP confiveis. Sempre que um cliente requisita um servio, primeiro ele estabelece conexo com o servidor e depois envia a requisio.

2.2.1.2 Camadas de aplicao Considerando que muitas aplicaes cliente-servidor visam a dar suporte ao acesso de usurios a bancos de dados, requer uma distino entre 3 nveis, seguindo o estilo arquitetnico em camadas. 1. Nvel de interface de usurio contem tudo que necessrio para fazer interface diretamente com o usurio, como gerenciamento de exibio. 2. Nvel de processamento contem as aplicaes. 3. Nvel de dados gerencia os

dados propriamente ditos sobre os quais esta sendo executada alguma ao. Aplicaes cliente-servidor podem ser construdas de acordo com trs partes diferentes: uma parte manipula a interao com um usurio, uma parte que age sobre um banco de dado ou sistema de arquivo e uma parte intermediaria que, em geral, contem a funcionalidade central da aplicao. 2.2.1.3 Arquiteturas multidivididas. A distino entre 3 nveis lgicos, surge varias possibilidades para a distribuio fsica de uma aplicao ciente-servidor por varias maquinas. Para organizar cliente e servidores, distribumos os programas presentes na camada de aplicao por diferentes maquinas. Fazendo uma distino entre dois tipos de maquinas apenas, maquina cliente e maquina servidor, denominado arquitetura de duas divises (fsicas).

a) Na maquina cliente s a parte da interface de usurio, que dependendo de terminal e dar s aplicaes o controle remoto sobre seus dados. b) A interface de usurio somente na maquina cliente. Nesse caso, dividimos aplicao em uma extremidade frontal grfica, que s se comunica com o resto da aplicao, situada no servidor, por meio de um protocoloco especfico de aplicao. c) Parte da aplicao deslocada para a parte frontal. Ex: a utilizao de um formulrio quer precisa ser preenchido completamente antes de ser processado, a maquina cliente pode verificar a correo e a consistncia do formulrio e , quando necessrio, interagir com o usurio. d) Parte da aplicao esta sendo executado na maquina cliente, mas todas as operaes com os arquivos ou entradas em banco de dados vo para o servidor. e) O mesmo esquema que d, porem, os discos locais do cliente contem parte dos dados. Ex: ao consultar a Web com seu browser, um cliente pode construir gradativamente um enorme cach em disco local com as paginas Web mais recentemente consultadas. Essas configuraes gera 2 tipos de modelos; cliente-magro e cliente- gordo.

Cliente-magro - Todo o processamento da aplicao e gerenciamento de dados realizado no servidor. O cliente responsvel apenas por executar o software de apresentao. Configurao a e c. Principal desvantagem que pode atribuir uma grande carga de processamento ao servidor e a rede. Cliente-gordo - O servidor responsvel somente pelo gerenciamento de dados. O software no cliente implementa a lgica da aplicao e as interaes com o usurio do sistema. Configurao d e e. Por ter mais funcionalidade na maquina cliente torna o software do lado cliente mais propenso a erros e mais dependente da plataforma subjacente, isto , do sistema operacional e respectivos recursos.

Como s vezes o servidor tambm precisa agir como cliente, temos uma arquitetura de trs dimenses (fsicas). Programas que formam parte do nvel de processamento residem em um servidor separado, mas, alem disso, podem ser parcialmente distribudos pelas maquinas cliente e servidora. Ex: Processamento de transao.

2.2.2 Arquiteturas descentralizadas Arquitetura cliente-servidor multidivididas so uma consequncia direta da diviso de aplicao em uma interface de usurio em componentes de processamento e em um nvel de dados. As diferentes divises correspondem diretamente organizao lgica das aplicaes. Em processamento distribudo a organizar uma aplicao cliente-servidor como uma arquitetura multidivididas denominada distribuio vertical. Ela obtida ao se colocar componentes logicamente diferentes em maquinas diferentes. Esta relacionada ao conceito de fragmentos verticais como utilizado em bancos de dados relacionais, onde as tabelas so subdivididas em colunas e, na sequencia, distribudas por varias maquinas. Na perspectiva de gerenciamento de sistema, uma distribuio vertical pode ajuda; funes so subdivididas logicamente e fisicamente por varias maquinas e cada maquina projetada para um grupo especifico de funes. Em arquiteturas modernas a distribuio dos clientes e dos servidores, se refere como distribuio horizontal. Nesse tipo, um cliente ou servidor pode ser fisicamente subdividido em partes logicamente equivalentes, mas cada parte esta operando em sua

prpria poro de conjunto completo de dados, o que equilibra a carga. Ex: arquitetura peer-to-peer. Os processos que constituem um sistema peer-to-peer so todos iguais, como consequncia, grande parte da interao simtrica: cada agira como um cliente e um servidor ao mesmo tempo, agindo como servente. Devido a essa simtrica a arquitetura se divide da maneira que organizado em uma rede de sobreposio, isto , uma rede na qual os nos so formados pelos processos e os enlaces representam os canais de comunicao possvel. Um processo no pode se comunicar diretamente com outro processo arbitrrio, mas deve enviar mensagens por meio dos canais de comunicao possvel. 2.2.2.1 Arquiteturas peer-to peer estruturadas. A rede de sobreposio construda com a utilizao de um procedimento determinstico. O procedimento mais usado

de longe, organizar os processos por meio de uma tabela hash distribuda (DHT). Sistema baseados em DHT, os itens de dados recebem uma chave aleatria, como um identificador de 128 ou 160 bits, de um grande espao de identificadores. Da mesma maneira, os nos do sistema tambm recebem um numero aleatrio do mesmo espao de identificadores. Sendo necessrio um esquema eficiente e determinstico que mapeie exclusivamente a chave de um item de dado para o identificador de um n tendo como base somente alguma distancia mtrica. O endereo de rede do n responsvel por aquele item retornado e consegue-se isso roteando uma requisio para um item de dado ate o n responsvel. Exemplos de sistema baseados em DHT: Sistema Chord - Ns ligados logicamente em anel, onde um item de dado com chave k seja mapeado para o n que tenha o menor Id k. Sistema rede de contedo enderevel (Can) - Usa espao de coordenadas cartesianas de d dimenses particionado entre todos os ns participantes do sistema.

2.2.2.2 Arquiteturas peer-to-peer no estruturadas.

Sistemas peer-to-peer no estruturados dependem de algoritmos aleatrios para construir uma rede de sobreposio, cada n mantm uma lista de vizinhos aleatrios, da mesma maneira, admite-se que itens de dados sejam colocados aleatoriamente em ns. Sendo assim, quando um no precisa localizar um item de dado especifico, ele precisa inundar a rede com uma consulta de busca. Ex: Bittorrent. A meta construir uma rede de sobreposio parecida com um grfico aleatrio. O modelo bsico que cada n mantenha uma lista de c vizinhos na qual, de preferncia, cada um dos vizinhos represente um n vivo escolhido aleatoriamente no conjunto de ns vigente no momento, essa lista denominada viso parcial. A premissa adotada que ns trocam entradas regularmente de sua viso parcial. Cada entrada identifica outro n na rede e tem uma idade associada que indica a antiguidade das referencias quele n e para isso so usados dois threads.

O thread ativo se comunica com um outro n e seleciona esse n de acordo com sua viso parcial corrente. As entradas precisam ser empurradas (pushed) at o par selecionado, o thread continua e constri um buffer que contem c/2+1 entradas, entre elas uma entrada que identifica ele prprio. Se o n estiver no modo puxar (pull), ele vai esperar um resposta do par selecionado. No meio-tempo, esse par tambm ter construdo um buffer por intermdio do thread passivo, cujas atividades so parecidas com as do thread ativo. O ponto crucial a criao de uma nova viso, que serve para o n iniciante, bem como para o n contado, conter exatamente c entradas, parte das quais vira de buffer recebido. A duas maneiras de fazer isso. No primeiro, os dois ns podem decidir descartar as entradas que tinham enviado um ao outro, isso significa que eles trocaro, dinamicamente, parte de suas vises originais. Na segunda abordagem descartar o maior numero possvel de entradas velhas. 2.2.2.2.1 Gerenciamento de topolgica de redes de sobreposio. Ao trocar e selecionar cuidadosamente as entradas de vises parciais possvel construir e manter topologias especficas de redes de sobreposio. Esse gerenciamento de topologia obtido pela adoo de uma abordagem em duas camadas.

A camada mais baixa constitui um sistema peer-to-peer no estruturado no qual os ns trocam periodicamente entradas de suas vises parciais com o objetivo de manter um grfico aleatrio preciso. Tal camada passa essa viso parcial para a camada mais alta, em que ocorre uma seleo adicional de entradas. Isso resulta em uma segunda lista de vizinhos correspondente topologia desejada. Usar uma funo de ordenao pela qual o ns so ordenados de acordo com certo critrio em relao a determinado n. Um exemplo de ordenao simples ordenar um conjunto de ns e, ordem crescente de distancia e, relao a um determinado n P.

2.2.2.2.2 Superpares (Superpeers). Localizar itens de dados relevantes em sistema peer-to-peer no estruturado pode ser problemtico medida que a rede cresce. Por no haver nenhum modo determinstico para rotear uma requisio de pesquisa ate um item de dado especfico nica tcnica qual um n pode recorrer enviar a requisio para todos os ns. Sendo assim, muitos sistemas peer-to-peer propuseram a utilizao de ns especiais que mantenham um ndice de itens de dados. Ns que mantm um ndice, ou agem como intermedirios, em geral so denominados superpares. Esses ns tambm so organizados em uma rede peer-topeer, o que resulta em uma organizao hierrquica.

Todo par comum est conectado como cliente a um superpar. Toda comunicao de ir para um par comum ocorro por meio daquele superpar associado ao par. relao cliente superpar fixa, sempre que um par comum se junta rede, ele se liga a um dos superpares e continua ligado at sair da rede. Para compensar o comportamento potencialmente instvel de um superpar, disponibilizam-se esquemas de segurana, como montar pares de cada superpare com outro superpar para todos os superpares e requer que os clientes se liguem a ambos. Redes peer-to-peer oferecem um meio flexvel para os ns entrarem e sarem da rede, porem, as redes de superpares introduzem um novo problema, a saber, como selecionar os ns que esto qualificados para se tornar superpare, problema da seleo do lder. 2.2.3 Arquiteturas hibridas 2.2.3.1 Sistema de servidor de borda Sistema distribudo organizado segundo uma arquitetura hibrida e formada por sistemas de servidor de borda, so disponibilizadas na internet onde servidores so colocadas na borda da rede formada pela fronteira entre redes corporativas e a internet. A principal finalidade do servido de borda servir contedo, possivelmente aps ter aplicado funes de filtragem e transcodificao. Um conjunto de servidores de borda pode ser usado para otimizar distribuio de contedo e de aplicao. O modelo bsico aquele em que, para uma organizao especifica um nico servidor de borda age como um servidor de origem do qual se origina todo o contedo. Usurios conectados a internet normalmente o fazem a partir de um servidor de borda, um servidor ISP (Internet Service Provider)

2.2.3.2Sistemas distribudos colaborativos. Principal objetivo e iniciar a troca de informaes, Aps adio do n na rede, a distribuio dos dados feita de forma descentralizada. A principal preocupao em muitos desses sistemas como se juntar ao sistema, para o qual muitas vezes um esquema tradicional cliente-servidor adotado. Uma vez que o nodo se junta ao sistema, ele pode utilizar um esquema totalmente descentralizado para colaborao. Um exemplo de servidor que utiliza essa abordagem o Bittorrent. No bittorrent, quando um usurio final estiver procurando um arquivo, ele transfira pores do arquivo para outros usurios at que as pores transferidas possam ser montadas em conjunto, resultando no arquivo completo. Um usurio diretrio global um arquivo contm as necessrias para acessa um que contm .torrent, o qual informaes transferir um

ou mais arquivos especficos, os rastreadores, um servidor que mantm uma contabilidade precisa de ns ativos que tm o arquivo requisitado.

2.3

Arquiteturas VS Middleware.

Sistemas de middleware seguem um estilo arquitetnico especifico, muitas solues de middleware adotaram estilos arquitetnicos baseado em objetos (CORBA) e outro baseado em eventos (TIB/Rendezvous). Moldar o middleware de acorda com um estilo arquitetnico especfico leva a simplificao do projeto de aplicaes. Porem, o middleware pode no ser mais ideal para aquilo que um desenvolvedor de aplicao tinha em mente. Uma abordagem considera melhor fazer sistemas middleware de modo que sejam simples de configurar, adaptar e personalizar conforme necessrio para uma aplicao, desenvolvendo sistemas com uma separao mais restrita entre polticas e mecanismos. 2.3.1 Interceptadores. Interceptador um constructo de software que interromper o fluxo de controle usual e permitira que seja executado um outro cdigo especifico de aplicao A interceptao como suportada em muitos sistemas distribudos baseados em objetos. Um objeto A pode chamar um mtodo que pertence a um objeto B enquanto este residir em uma maquina diferente de A. Tal inovao remota a objeto realizada em 3 etapas: oferecida a A uma interface local igual oferecida pelo objeto B. A chamada por A transformada em uma invocao a objeto genrico, possibilitada por meio de uma interface geral de invocao de objeto oferecida pelo middleware na mquina em que A reside. Por fim, a invocao a objeto genrico transformada em uma mensagem que enviada por meio de uma interface de rede de nvel de transporte como oferecida pelo sistema operacional de A.

2.3.2 Abordagens gerais para software adaptativo. necessrio adaptar sistemas distribudos por vrios motivos, como hardware defeituoso ou esgotamento de bateria. Isso levou aos softwares adaptativos, que so responsveis por reagir a essas mudanas. Trs tcnicas para chegar a adaptao de software: 1. Separao de Interesses Separa as partes que implementam funcionalidades das que cuidam de funcionalidades extras. Alm disso, entrelaa os interesses cruzados em um sistema distribudo (software orientado a aspecto). 2. Reflexo computacional Programa inspeciona a si mesmo e, se necessrio, adapta-se ao ambiente. 3. Projeto baseado em componente adaptao por meio de composio. Todas as 3 tcnicas ainda esta em fase de aprimoramento, principalmente qual aplicada em um sistema de grande escala.

Exerccios.

1- Se um cliente e um servidor forem colocados longe um do outro, podemos ver a latncia de rede dominar o desempenho global. Como podemos atacar esse problema.

Você também pode gostar