Você está na página 1de 9

INTRODUO 1.

1 Definies de um Sistema Distribudo um conjunto de computadores independentes que se apresenta a seus usurios como um sistema nico e coerente. Aspectos Importantes: 1 - Sistema distribudo consiste em componentes (PC) autnomos. 2 - As diferenas entre os vrios computadores e o modo como eles se comunicam esto, em grande parte, ocultas aos usurios. 3 - Usurios e aplicaes podem interagir com um sistema distribudo de maneira consistente e uniforme, independentemente de onde a interao ocorra. Para suporta computadores e redes heterogneos e, simultaneamente, oferecer uma viso de sistema nico, os sistemas distribudos costumam ser organizados por meio de uma camada de software que situada logicamente entre uma camada de nvel mais alto, composta de usurios e aplicaes, e uma camada subjacente, que consistente em sistemas operacionais e facilidades bsicas e comunicao. Tal sistema distribudo denominado middleware.

Fg 1: Sistema distribudo organizado como middleware. A camada de middleware se estende por varias maquinas e oferece a mesma interface a cada

Middleware: camada de software que se estende por vrias mquinas e oculta das aplicaes as diferenas em hardware e sistemas operacionais. O sistema distribudo proporciona os meios para que os componentes de uma nica aplicao distribuda se comuniquem uns com os outros, mas tambm, permite que diferentes aplicaes se comuniquem. Ao mesmo tempo, ele oculta, do melhor e mais razovel modo possvel, as diferenas em hardware e sistemas operacionais para cada aplicao. Propriedade de sistemas distribudos: confiabilidade, segurana, heterogeneidade e topologia de rede; latncia e largura de banda; custos de transporte e, por fim, domnios administrativos. 1.2 Metas H quatro metas importantes que devem ser cumpridas na construo de um sistema distribudo: Deve oferecer fcil acesso a seus recursos, ocultar razoavelmente bem o fato de que os recursos so distribudos por uma rede, ser aberto e poder ser expandido.

1.2.1 Acesso a recursos. A principal meta de um sistema distribudo facilitar aos usurios, e s aplicaes, o acesso a recursos remotos e seu compartilhamento de maneira controlada e eficiente. Conectar usurios e recursos tambm facilita a colaborao e a troca de informaes. Contudo, medida que a conectividade e o compartilhamento crescem, a segurana se torna cada vez mais importante. 1.2.2 Transparncia da Distribuio. Um sistema distribudo que capaz de se apresentar a usurios e aplicaes como se fosse apenas um nico sistema de computador denominado transparente. O conceito de transparncia pode ser aplicado a diversos aspectos de um sistema distribudo. Tipos de Transparncia:

Acesso - trata de ocultar diferenas em representao de dados e o modo como os recursos podem ser acessados por usurio. Ex: diferena entre o SO de uma rede local. Localizao refere-se ao fato de que o usurio no podem dizer qual a localizao fsica de um recurso no sistema. Ex: Acesso a uma determinada URL Migrao Sistemas nas quais recursos podem ser movimentados sem afetar o modo como podem ser acessados. Relocao recursos que podem ser relocados enquanto esto sendo acessados sem que o usurio ou aplicao perceba. Ex: uso de laptops moveis com rede sem fio. Replicao ocultar o fato de que existem varias copias de um recurso. Replicar um recurso pode aumentar a disponibilidade ou o desempenho. Concorrncia ocultar que um recurso pode ser compartilhado por diversos usurios concorrentes. Ex: compartilhamento de impressora. Falha ocultar a falha e a recuperao de um recurso.

Visar transparncia de distribuio pode ser uma meta no projeto e na implementao de sistemas distribudos, mas deve ser considerados em conjunto com outras questes, como desempenho e facilidade de compreenso. 1.2.3 Abertura Um sistema distribudo aberto um sistema que oferece servios de acordo com regras padronizadas que descrevem a sintaxe e a semntica desses servios. Ex: em redes de computadores existem os protocolos. Em sistemas distribudos, em geral os servios so especificados por meio de interfaces, que costumam ser descritas em uma linguagem de definio de interfaces (IDL). As definies de interfaces escritas em IDL especificam com preciso os nomes das funes que esto disponveis excees que podem surgir e assim por diante. difcil especificar a semntica das interfaces.

Especificaes adequadas so completas e neutras. Completa significa que tudo que necessrio para uma implementao foi, de fato, especificados. E neutras as especificaes no prescrevem como deve ser a aparncia da implementao. Completude e neutralidade so importantes para interoperabilidade e portabilidade. Interoperabilidade caracteriza at que ponto duas implementaes de sistema ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto, com base na confiana mutua nos servios de cada um, especificados por padro comum. Portabilidade caracteriza ate que ponto uma aplicao desenvolvida para um sistema distribudo A pode ser executada, sem modificao, em um sistema distribudo diferente B que implementa as mesmas interfaces que A. Um sistema distribudo aberto deve ser fcil configur-lo com base em componentes diferentes. Alem disso, um sistema distribudo tambm extensvel, deve ser fcil adicionar partes que so executadas em um sistema operacional diferente, ou ate mesmo substituir todo um sistema de arquivo. Obs: para conseguir flexibilidade em sistemas distribudos abertos, crucial que o sistema seja organizado como um conjunto de componentes relativamente pequenos e de fcil substituio ou adaptao. 1.2.4 Escalabilidade A escalabilidade de um sistema pode ser medida no mnimo em trs dimenses diferentes: 1. Em relao ao seu tamanho significa que fcil adicionar mais usurios e recursos ao sistema.
2. Termos geogrficos - sistema no qual usurios e recursos podem estar longe uns dos outros. 3. Termos administrativos - ele ainda pode ser fcil de gerenciar, mesmo que abranja muitas

organizaes administrativas diferentes. Um sistema escalvel em uma ou mais dessas dimenses muitas vezes apresenta perda na capacidade de desempenho medida que ampliado. 1.2.4.1 Problemas de escalabilidade. Quanto maior o sistema maior a incerteza. Em relao ao tamanho, se for preciso suportar mais usurios ou recursos, existe a limitaes de servios centralizados, dados e algoritmos. J em termos geogrfica, estar limitada pelos problemas de desempenho e confiabilidade, resultantes da comunicao a longa distancia (comunicao sncrona). Problemas de escabilidade em sistemas distribudos aparecem como problemas de desempenho causados por capacidade limitada de servidores e rede.
1.2.4.2 Tcnicas de Escalabilidade.

H basicamente apenas 3 tcnicas para ampliar sistemas: ocultar latncias de comunicao, distribuio e replicao. Ocultao de latncias de comunicao importante para conseguir escalabilidade geogrfica. A idia bsica : tentar evitar, o quanto possvel, esperar por respostas a requisies remotas e potencialmente distantes de servios. Ex: supor que um servio seja requisitado em uma maquina remota. Uma alternativa a esperar por uma respostar do servidor executar outro trabalho til no lado requisitante. Em essncia, isso significa construir a aplicao requisitante de modo tal que ela use s comunicao assncrona. Quando chega uma resposta, a aplicao interrompida e um manipulador especial chamado para concluir a requisio emitida anteriormente.

Outra aplicao o despacho de cdigo atualmente amplamente suportada pela web sob a forma de applets Java e Java script. A tcnica de distribuio envolve tomar um componente, subdividi-lo em partes menores e, na seqncia, espalhar essas partes pelo sistema. Ex: Sistema de Nomes de Domnio da Internet (DNS). O espao de nomes de DNS organizado por hierarquia em uma arvore de domnios, divida em zonas sem sobreposio. Problemas de escalabilidade, em geral, aparecem sob forma de degradao do desempenho e uma boa idia replicar componentes por um sistema distribudo. A replicao no somente aumenta a disponibilidade, mas tambm ajuda a equilibrar a carga entre componentes, o que resulta em melhor desempenho. Alem disso, em sistemas de ampla disperso geogrfica, ter uma copia por perto pode ocultar grande parte dos problemas da latncia de comunicao. Ex: Cache. Cache e replicao resultam em problemas de consistncia. 1.2.5 Ciladas.

Premissas falsas que so adotadas ao desenvolver uma aplicao distribuda pela 1 vez: a rede confivel, segura e homognea; a topologia no muda; a latncia zero; a largura de banda infinita; o custo de transporte zero; s h um administrador. 1.3 Tipos de Sistemas Distribudos. 1.3.1 Sistemas de computao distribudos. O sistema de computao utilizado para tarefas de alto desempenho. E possui dois subgrupos: Computao de cluster e em grande. 1.3.1.1 Computao de cluster. Computao de cluster, o hardware subjacente consiste em um conjunto de estaes de trabalho ou Pcs semelhantes, conectados por meio de uma rede local de alta velocidade. No geral esse sistema utilizado para programao paralela na qual um nico programa, intensivo em computao, executado em paralelo em varias maquinas. Um aspecto caracterstico da computao de cluster sua homogeneidade, pois os computares que compem um cluster, todos tm o mesmo sistema operacional e todos esto conectados mesma rede.

putao

em

1.3.1.2Com grade. em grade como

Computao montada federao de

computadores, na qual cada sistema pode cair sob um domnio administrativo diferente, e podem ser muito diferente no que tange a hardware, software e tecnologia de rede empregada, possuindo um alto grau de heterogeneidade. A questo fundamental em um sistema em grade, que recursos de diferentes organizaes so reunidos para permitir a colaborao de um grupo de pessoas ou instituio. Tal colaborao realizada sob a forma de uma organizao virtual. Grande parte do software para realizar computao em grade desenvolvida com a finalidade de prover acesso a recursos de diferentes domnios administrativos, e somente para usurios e aplicaes que pertenam a uma organizao virtual. Por essa razo, o foco costuma ser dirigido s questes de arquitetura. A arquitetura consiste em quatro camadas:

Base camada mais baixa, prov interfaces para recursos locais em um site especifico, so projetadas para permitir compartilhamento de recursos dentro de uma organizao virtual. Conectividade consiste em protocolos de comunicao para suportar transaes de grade que abranjam a utilizao de mltiplos recursos. Alem disso, conter protocolos de segurana para autenticar usurios e recursos. Recursos responsvel pelo gerenciamento de um nico recurso. Utiliza as funes fornecidas pela camada de conectividade e chama diretamente as interfaces disponibilizadas pela camada base. considerada responsvel pelo controle de acesso e, por isso, dependera da autenticao realizada como parte da camada de conectividade. Coletiva - trata de manipular o acesso a mltiplos recursos e normalmente consiste em servios de descoberta de recursos, alocao e escalonamento de tarefas para mltiplos recursos, replicao de dados e assim por diante. Aplicao consiste em aplicaes que funcionam dentro de uma organizao virtual e que fazem uso do ambiente de computao em grade.

As camadas coletiva, de conectividade e de recursos formam o cerne do que poderia ser denominada camada de middleware em grade. Com computao em grade, a perspectiva de um middleware, a noo de um site ou unidade administradora comum. Enfatizados pela tendncia gradual migrao para uma arquitetura orientada a servios no qual sites oferecem acesso s varias camadas por meio de um conjunto de servios Web.

1.3.2 Sistemas de informao distribudos.

Uma aplicao em rede consiste simplesmente em um servidor que executa aquela aplicao, frequentemente incluindo um banco de dados e a disponibilizava para programas remotos, denominados clientes. Integrao no nvel mais baixo permitiria que clientes empacotassem varias requisies, possivelmente para diferentes servidores, em uma nica requisio maior, e as enviassem para execuo como uma transao distribuda. medida que as aplicaes se tornavam mais sofisticadas e eram gradualmente separadas em componentes independentes, ficou claro que a integrao tambm deveria ocorrer de modo que permitisse s aplicaes se comunicar diretamente umas com as outras, resultando em uma enorme indstria dedicada integrao de aplicaes empresarias (EAI). 1.3.2.1 Sistema de processamento de transaes. Operaes em um banco de dados costumam ser realizadas sob a forma de transaes. Programar a utilizao de transaes requer primitivas especiais que devem ser fornecidas pelo sistema distribudo subjacente ou pelo sistema de linguagem em tempo de execuo. Declaraes ordinrias, chamadas de procedimento, tambm so permitidas dentro e uma transao. Chamadas de procedimentos remotos (RPCs), tambm costumam ser encapsuladas em uma transao, o quer resulta como RPC transacional. As principais caractersticas de uma transao so: ACID. Atmicas indivisveis e instantneas, as transaes acontece como se fosse invisveis. Consistentes a transao no viola invariantes de sistemas. Isoladas - transaes concorrentes no interferem umas com as outras. Durveis uma vez comprometida uma transao, as alteraes so permanentes.

Uma transao aninhada construda com base em uma quantidade de subtransaes. A transao de nvel mais alto pode se ramificar e gerar filhos que executam em paralelo uns aos outros em maquinas diferentes para obter ganho de desempenho ou simplificar a programao. Cada uma desses filhos tambm pode executar uma ou mais subtransaes ou se ramificar e gerar seus prprios filhos.

Uma transao aninhada proporciona um modo natural de distribuir uma transao por varias maquinas, seguindo uma diviso lgica do trabalho da transao original. Os sistemas de middleware empresarial, o componente que manipulava transaes distribudas ou aninhadas, formava o ncleo para a integrao de aplicaes no nvel servidor ou bando de dados, denominado de monitor de processamento de transaes (monitor de TP), sua principal tarefa era permitir que uma aplicao acessasse vrios servidores/banco de dados oferecendo a ela uma modelo de programao transacional.

1.3.2.2 Integrao de aplicaes empresariais. Componentes de aplicaes devem poder se comunicar diretamente uns com os outros e no apenas por meio do comportamento de requisio/resposta que era suportado por sistema de processamento de transaes. A principal ideia era que aplicaes existentes pudessem trocar informaes diretamente. Existem vrios tipos de middleware de comunicao: Chamadas de procedimento remoto (RPC) um componente de aplicao pode efetivamente enviar uma requisio a outro componente de aplicao executando uma chamada de procedimento local, que resulta no empacotamento da requisio como uma mensagem e em seu envio ao chamador. Da mesma forma, o resultado ser enviado de volta e devolvido aplicao como o resultado da chamada de procedimento. Inovaes de mtodo remoto (RMI) permite a execuo de chamadas no modelo RPC, porem, funciona com objetos em vez de aplicaes. uma abordagem para funcionalidade de uma plataforma de objetos distribudos. A desvantagem da RPC e da RMI que ambos, o chamador e o chamado, precisam estar ligados e funcionando no momento da comunicao, alem disso, eles precisam saber exatamente como se referir um ao outro. Devido a essas desvantagens, gerou o Middleware orientado a mensagem (MOM). Nesse caso, as aplicaes apenas enviam mensagens a pontos lgicos de contato, que frequentemente so descritos por meio de um sujeito. Da mesma forma, as aplicaes podem indicar seu interesse por um tipo especifico de mensagem, aps o que o middleware de comunicao cuidar para que todas as mensagens sejam entregues a essas aplicaes. Esses sistemas, denominamos publicar/subscrever.

1.3.3 Sistemas distribudos pervasivos. So sistemas decorrentes do uso de computao mvel e embutida, nas quais o comportamento esperado a instabilidade. Possuem em geral, pequeno tamanho, so alimentados por bateria e utiliza a comunicao sem fio. Um aspecto importante a ausncia geral de controle administrativo humano, e para isso existe a formulao de 3 requisitos para as aplicaes pervasivas: 1. Adotar mudanas contextuais ambiente pode sofre mudanas.
2. Incentivar composio ad hoc dispositivos em sistema pervasivos sero utilizados de

modos muitos diferente por usurios diferentes, logo a configurao do conjunto de aplicaes que executa o dispositivo, tem que ser fcil. 3. Reconhecer compartilhamento como padro em geral, os dispositivos se juntam ao sistema para acessar e possivelmente fornecer informaes. Logo, na presena de mobilidade, dispositivos devem suportar a adaptao fcil e dependente de aplicao a seu ambiente local, como tambm, devem ser capazes de descobrir servios com eficincia e reagir de acordo. 1.3.3.1 Sistemas domsticos. Esses sistemas montados ao redor de redes domesticam e so compostos de um ou mais computadores pessoais e integram aparelhos eletrnicos de consumo tpicos como TV, equipamentos de udio e vdeo, PDAs entre outros. Tal sistema deve ser completamente autoconfigurvel e autogerencivel. E para isso eles utiliza padres Universal Plug and Play (UPnP), pelos quais dispositivos obtm automaticamente endereos IPs, podem descobrir uns ao outros e assim por diante. 1.3.3.2 Sistemas eletrnicos para tratamento de sade. Sistemas para tratamentos de sade costumam ser equipados com vrios sensores organizados em uma rede de rea corporal (Body-area Network BAN), de preferncia sem fio. Por razoes de eficincia, os dispositivos e redes de reas corporais tero de suportar processamento de dados na rede, o que significa que os dados de monitorao tero de ser agregados antes de ser armazenados permanentemente.

1.3.3.3 Redes de Sensores.

EXERCICIO

1. Uma definio alternativa para um sistema distribudo que ele um conjunto de

computadores independentes que d a impresso de ser um sistema nico, isto , o fato de haver vrios computadores fica completamente oculto para os usurios. D um exemplo para o qual essa viso muito a calhar. 2. Qual o papel do middleware em um sistema distribudo? 3. Muitos sistemas em rede so organizados em termos de uma retaguarda e de uma vanguarda. Como as organizaes se ajustam viso coerente que exigimos para um sistema distribudo? 4. Explique o que quer dizer transparncia (de distribuio) e d exemplo de diferentes tipos de transparncia.
5. Por que s vezes to difcil ocultar a ocorrncia e a recuperao de falhas em um sistema

distribudo? 6. Por que nem sempre uma boa ideia visar a implementao do mais alto grau de transparncia possvel? 7. O que um sistema distribudo aberto e quais so os benefcios que a abertura proporciona? 8. Descreva com exatido, o que quer dizer sistema escalvel. 9. Pode-se conseguir escalabilidade pela aplicao de diferentes tcnicas. Quais so essas tcnicas? 10. Explique o que organizao virtual e d uma sugesto para uma possvel implementao dessas organizaes. 11. Dissemos que, quando uma transao abordada, o mundo restaurado a seu estado anterior, como se a transao nunca tivesse acontecido. Mentimos. D um exemplo no qual restaurar o mundo impossvel. 12. Executar transaes aninhadas requer certo tipo de coordenao. Explique o que um coordenador deveria realmente fazer. 13. Argumentamos que a transparncia de distribuio pode no estar presente em sistemas pervasivos. Essa declarao no vale para todos os tipos de transparncias. D um exemplo. 14. J demos alguns exemplos de sistema distribudos pervasivos: sistemas domsticos, eletrnicos para tratamento de sade e redes de sensores.