Você está na página 1de 17

1

Conceitos de Sistemas Distribudos - Introduo

Sistemas Distribudos

CONCEITOS DE SISTEMAS DISTRIBUDOS


Prof. Gregorio Perez Peiro gregorio@uninove.br

LICENA

DE

USO
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Este material est disponvel sob a licena CreativeCommons 2.5 Brasil de Atribuio-uso No Comercial Compartilhamento pela mesma licena 2.5 Brasil
http://creativecommons.org/licenses/by-nc-sa/2.5/br/

Voc pode:

copiar, distribuir, exibir e executar a obra

criar obras derivadas

Sob as seguintes condies:

Atribuio
Uso No-Comercial Compartilhamento pela mesma Licena

Voc deve dar crdito ao autor original, da forma especificada pelo autor ou licenciante
Voc no pode utilizar esta obra com finalidades comerciais Se voc alterar, transformar, ou criar outra obra com base nesta, voc somente poder distribuir a obra resultante sob uma licena idntica a esta

Para cada novo uso ou distribuio, voc deve deixar claro para outros os termos da licena desta obra. Qualquer uma destas condies podem ser renunciadas, desde que Voc obtenha permisso do autor. Nada nesta licena prejudica ou restringe os direitos morais do autor

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo

Conceitos de Sistemas Distribudos

INTRODUO
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Os primeiros conceitos de Sistemas Distribudos sugiram na dcada de 70 quando as redes de computadores comearam a se tornar viveis tcnica e economicamente Assim, de modo geral a disciplina de Sistemas Distribudos faz estudos sobre todos os tipos de redes em que h compartilhamento de recursos Apesar da viso inicial deste compartilhamento estar ligada a recursos como impressora, arquivos, banco de dados, etc... Sistemas Distribudos tambm est associado ao conjuntos de processos concorrentes acessando recursos distribudos, os quais podem ser compartilhados atravs de passagem de mensagens em ambiente de rede

No momento inicial da dcada de 70 qualquer sistema onde ocorria alguma troca de mensagens era considerado um Sistema Distribudo, inclusive um computador independente no qual os processos de entrada, sada, memria e processamento so separados!

Primeiros Conceitos de Sistemas Distribudos

DEFINIES
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um Sistema Distribudo consiste de um conjunto de processos distintos, espacialmente separados que se comunicam por troca de mensagens Lamport, 1978 [01]

Pela abordagem inicial dada por Lamport em 1978, qualquer rede de computadores interligados so considerados sistemas distribudos Adicionalmente, Lamport considera que um sistema distribudo se o atraso da transmisso da mensagem no desprezvel comparada ao tempo entre eventos de um processo nico

O conceito de tempo associado transmisso de uma mensagem importante em sistemas distribudos e derivado do conceito de ordem dos evento e de particular interesse na soluo de problemas de sincronizao [01].
4

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo

Primeiros Conceitos de Sistemas Distribudos

DEFINIES
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Sistema no qual os componentes de hardware e software localizados em uma rede de computadores se comunicam e coordenam suas aes somente por troca de mensagens Coulouris et al, 2001 [02]

A concorrncia (e seus problemas) existe porque no ambiente de redes, cada computador independente permitindo o trabalho simultneo em vrias mquinas. A inexistncia de relgio global conseqncia do fato do tempo necessrio para a troca de mensagens no ser desprezvel em sistemas geograficamente dispersos. Esta considerao motivada diretamente pelo ambiente de rede e leva as mesmas idias de sincronizao consideradas por Lamport [01].

Nesta definio, computadores conectados em rede devem estar espacialmente separados por alguma distncia entre si resultando como conseqncias: Concorrncia

No existncia de relgio global


Falhas Independentes

Considerando que todos os sistemas computacionais falham, Coulouris considera que os sistemas distribudos falham de novas maneiras, isolando uma parte do sistema sem acarretar falha global [02]! Algumas destas falhas so associadas a problemas diversos de comunicao e algumas vezes so referidas como falhas Bizantinas [03]. Sistemas Distribudos no so diferentes dos sistemas em rede, so sistemas fracamente acoplados interconectados por uma rede de comunicao. Do ponto de vista de um processador especfico, os demais processadores e respectivos recursos so remotos, enquanto seus recursos locais. O propsito de um sistema distribudo fornecer um ambiente eficiente para o compartilhamento de recursos remotos. Novamente o conceito de relgio global considerado. A questo de sincronizao de sistemas cooperativos que trabalham de maneira concorrente apresenta um dos principais desafios para sistemas geograficamente dispersos

Primeiros Conceitos de Sistemas Distribudos

DEFINIES
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Sistema Distribudo um conjunto de processadores que no compartilham memria nem relgio. Os processadores se comunicam por meio de redes de comunicao Silberschatz, 2000 [05]

Silberschatz considera que os sistemas distribudos so mais flexveis e seus componentes possuem maior autonomia se assemelhando muito a sistemas de rede, porm com o controle de um nico Sistema Operacional
Instalao C
Cliente Instalao D

Instalao A
Servidor

Instalao B
Cliente recursos 6

A necessidade de um nico sistema operacional se traduz em um ambiente homogneo. Esta opo pode no ser o mais apreciada uma vez que o ambiente heterogneo um atrativo em sistemas de compartilhamento de recursos dispersos, mas facilitaria a configurao e gerncia destes sistemas.

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo

Primeiros Conceitos de Sistemas Distribudos

DEFINIES
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Sistema Distribudo um conjunto de computadores independentes (autnomos) que se apresenta a seus usurios (pessoas ou programas) como um sistema nico e coerente Tanenbaum, 2007 [04]

Nesta viso sistemas distribudos so compostos por sistemas com autonomia reduzida tipicamente unidos por uma camada de software e comumente chamados de Middleware permitindo que possuam seu SO local
Mquina A Aplicao Mquina B Mquina C Mquina D Aplicao

Aplicao Distribuda Camada de Middleware

Para um conjunto de componentes autnomos aparentar ser um nico sistema deve ter ser componentes que colaboram entre si. Isto significa que precisaro executar as tarefas de maneira cooperativa, estando sujeitos aos mesmo problemas de sincronizao referidos anteriormente.
7

SO 1

SO 2

SO 3

SO 4

Tanenbaum inicialmente desconsidera o tipo de computador utilizado (mainframe, PC, etc...) e a maneira de conexo entre este computadores, assumindo o grau de liberdade e flexibilidade dos sistemas em rede. Para permitir um ambiente heterogneo de rede e computadores, uma camada de Middleware (figura) pode se estender por vrias mquinas para oferecer uma interface para as aplicaes.

Conceitos de Sistemas Distribudos

DEFINIES
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

As diferentes definies descritas foram feitas a partir de preocupaes particulares dos sistemas distribudos que levam a diferentes abordagens Apesar das diferenas, o ttulo Distribudo usualmente reservado para sistemas formados por processadores dispersos geograficamente compartilhando recursos e cooperando para a realizao de alguma tarefa Assim, trataremos Sistemas Distribudos como sendo um conjunto de sistemas autnomos (independentes em recursos) interligados por uma rede de comunicao que se comportam como um sistema fortemente acoplados

Assim, de modo geral, sistemas com mltiplos processadores ou com mltiplos fluxos de controle (Threads) so tratados como Sistemas Distribudos. O critrio bsico para esta considerao ser a possibilidade de compartilhar recursos entre componentes separados que trabalharo e maneira cooperativa.
8

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo

EXEMPLOS

DE

SISTEMAS DISTRIBUDOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A abordagem considerada leva a diversos exemplos de sistemas distribudos e a diferentes problemas e solues

Abordagens que consideram sistemas distribudos mais flexveis, no quais o requisito apenas o compartilhamento entre sistemas separados geograficamente consideram a Internet e qualquer configurao de intranet como um sistema distribudo
Internet Intranet Computao Mvel

Computao Ubqua

A Internet representa o mais amplo dos sistemas em rede (fracamente acoplados) com maior potencial de compartilhamento de recursos. Apesar de apresentar baixo desempenho, a facilidade de acesso aos recursos e a possibilidade de trabalhar de maneira cooperativa a grandes distncias torna a Internet um bom exemplo de sistemas distribudos (do ponto de vista geogrfico e de compartilhamento de recursos).

Apesar de suas vantagens, os problemas de comunicao (intruso e perdas de dados, entre outros) so evidentes no ambiente da Internet.

Exemplos de Sistemas Distribudos

INTERNET

E INTRANET
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Servidores de Internet

Rede Corporativa Internet

A Intranet se torna um ambiente alternativo para promover a produtividade em ambientes corporativos ou mesmo residenciais. Com uma configurao similar e at possuindo acesso Internet, sua configurao adequada permite maios segurana e trabalho cooperativo eficiente para os objetivos da empresa.

10

Rede Domstica

Intranet

Alm disso, para prover uma melhor qualidade de trabalho, usual estruturar este ambiente de forma homognea com equipamentos de arquitetura similar e mesmo sistema operacional, tornando a Intranet um exemplo perfeito para o sistema distribudo descrito por Silberschatz [05].

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo

Exemplos de Sistemas Distribudos

COMPUTAO UBQUA

COMPUTAO MVEL
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Computao Ubqua um agrupamento de uma grande quantidade de dispositivos pequenos e baratos que esto presentes no ambiente fsico dos usurios, como residncia e escritrio, alm dos dispositivos portteis [02] Computao ubqua e computao mvel se confundem, mas geralmente so diferentes: Na computao ubqua o usurio beneficiado quando ele permanece em um nico ambiente, como uma biblioteca ou em sua casa, isto , est presente no ambiente, mesmo que o usurio no se d conta A computao mvel est mais associada aos dispositivos mveis utilizados pelo usurio, como computadores portteis, celulares e assistentes pessoais

A computao mvel est intimamente ligada aos computadores portteis e, portanto, vinculada aos sistemas embarcados. Pelo dicionrio Michaelis, ubquo significa onipresente; que est ou pode estar em todos os lugares ao mesmo tempo.

11

O termo ubquo foi utilizado pela primeira vez por Weiser em 1993 [06], [07] e tem inteno de sugerir que os pequenos dispositivos informatizados eventualmente se tornaro to impregnados no ambiente que passaro despercebidos no uso dirio. Isto significa que seu comportamento computacional se tornar transparente e intimamente ligado s suas funes. A computao ubqua pode ser considera como a terceira grande onda da computao: primeiro vieram os mainframes, depois os PCs e agora surge a computao ubqua que considerada pela Sociedade Brasileira de Computao, um dos grandes desafios da computao no Brasil [08].

Conceitos de Sistemas Distribudos

CARACTERSTICAS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

O fato de podermos ter um Sistema Distribudo no significa que ele a melhor soluo

Deve-se observar as caractersticas desejadas como ter um fcil acesso aos seus recursos, ocultar o fato dos recursos estarem distribudos em uma rede, ser flexvel e poder ser expandido Principais Objetivos de um Sistema Distribudo

Compartilhamento de Recursos Confiabilidade

Desempenho

12

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo


mais barato compartilhar uma impressora (ou outro componente) por diversos usurios do que ter uma impressora para cada usurio. Tambm economicamente justificvel compartilhar equipamentos de mais alto custo como supercomputadores ou mesmo estaes de tratamento de imagens e unidades de armazenamento de alto desempenho e capacidade.

Objetivos dos Sistemas Distribudos

COMPARTILHAMENTO

DE

RECURSOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A principal meta dos Sistemas Distribudos facilitar o acesso a recursos remotos (hardware, dados, pginas Web, etc...) e seu compartilhamento A razo bvia para o compartilhamento dos recursos a Economia

O compartilhamento tambm facilita a colaborao e a troca de informaes entre usurios separados geograficamente, permitindo que trabalhem em conjunto em organizaes virtuais (groupware)

13

GroupWare um termo usado para descrever softwares que facilitam a colaborao e o trabalho em grupo atravs do compartilhamento de informaes. A maior parte dos produtos GroupWare fornece uma interface para ambiente colaborativo permitindo aos usurios compartilhar itens como calendrios e contatos, garantindo maior produtividade dos usurios. Por exemplo, uma secretria pode alocar um compromisso no calendrio do chefe, de forma que este consiga visualiz-lo de qualquer lugar via Internet.

Objetivos dos Sistemas Distribudos

COMPARTILHAMENTO

DE

RECURSOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Naturalmente, o aumento de conectividade abre espao para intruses na comunicao e invases de privacidade

Os problemas de segurana vo desde o rastreamento de comunicao, uso de comunicao indesejvel (spam) at invases de para obteno de informaes sigilosas Um exemplo destes problemas de segurana o rastreamento de comunicaes para montar um perfil de preferncias de um usurio especfico que caracteriza uma violao explcita da privacidade

14

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo


Algumas tarefas devem ser executadas de maneira contnua no podendo sofrer interrupes como aquelas associadas ao sistema financeiro (Bancos, bolsa de valores,...), telemedicina e sistemas crticos (tempo real), entre outras. Um sistema ser confivel no significa que ele seguro! A segurana do sistema est ligada a integridade dos dados e a confiabilidade est associada a operao correta. Fail Stop [10] um modo de falha muito simples cujos danos visveis so:
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Objetivos dos Sistemas Distribudos

CONFIABILIDADE
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

De modo geral espera-se que os sistemas distribudos sejam mais confiveis do que sistemas centralizados uma vez que existe redundncia de recursos Podemos definir a confiabilidade como a probabilidade de um sistema estar operando ou funcionando em um certo intervalo de tempo Para ser confivel, um sistema deve possuir alta disponibilidade e segurana Normalmente, utilizamos mecanismos de redundncia (de hardware ou software) para melhorar a confiabilidade do sistema

15

Objetivos dos Sistemas Distribudos

CONFIABILIDADE

Sendo um defeito mecnico ou algortmico, uma falha ocorre quando o comportamento do processador no consistente com sua definio semntica o que gera um erro que pode causar a paralisao do sistema H dois tipos de falhas dependendo de seu comportamento [Sinha -09]:

- O sistema para de funcionar O estado interno e os dados contidos neste estado so perdidos

Fail-stop [10]

Em uma falha de parada, o sistema para de funcionar aps mudar para o estado no qual a falha pode ser detectada

Falha Bizantina [03]

No caso das falhas bizantinas o sistema continua trabalhando, mas no produz os resultados corretos

Como estes problemas so visveis e facilmente detectados, a sua preveno facilitada.

16

Falhas Bizantinas [03] so falhas tipicamente associadas comunicao entre os componentes do sistema e normalmente so causadas por erros no detectados em algum software do sistema e seus danos nem sempre so facilmente visveis. Conseqentemente so muito mais difceis de serem detectadas, dificultando sua preveno e correo.

Confiabilidade

DISPONIBILIDADE
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A disponibilidade pode ser vista como a probabilidade do sistema estar operando em um determinado instante do tempo e essencial para que um sistema seja confivel Tanto a confiabilidade quanto a disponibilidade para sistemas crticos so representadas na forma 99,9999% do tempo

Na prtica, esta caracterstica indica o tempo que o sistema pode funcionar ininterruptamente sem ser afetado por falhas, manuteno preventiva ou corretiva, etc.

17

prof. Gregorio Perez Peiro

Sistemas Distribudos

Conceitos de Sistemas Distribudos - Introduo

Objetivos dos Sistemas Distribudos

DESEMPENHO
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Em geral, espera-se que uma aplicao distribuda apresente um desempenho melhor que aquele atribudo a um sistema centralizado O desempenho uma grandeza que pode ser avaliada de diferentes formas dependendo do tipo de aplicao, uma vez que este fator desempenho pode estar associado a diferentes conceitos ou aspectos Possveis variveis para medidas de desempenho:

Tempo de resposta do servidor Throughput (nmero de jobs por unidade de tempo) Quantidade de recursos consumidos pela rede Resultados de benchmarks

Tempo de transmisso de dados

18

Um sistema com mltiplos processadores fracamente acoplados pode obter um desempenho que seria impossvel em um sistema com um processador, uma vez que podem reunir uma quantidade muito superior de processadores do que um sistema fortemente acoplado, mas raramente N processadores tem um desempenho N vezes maior que 1 processador (veja escalabilidade), uma vez que depende de troca de mensagens.

Por outro lado, um sistema com N processadores custa menos do que um processador com N vezes mais velocidade, especialmente quando possvel aproveitar mquinas potencialmente ociosas e realizar tarefas em paralelo, aumentando o throughput do sistema. Deste ponto de vista, os sistemas distribudos apresentam uma melhor relao de preo/desempenho.

Objetivos dos Sistemas Distribudos

DESEMPENHO

Uma soluo distribuda tambm pode fazer uso de paralelismo de execuo para melhorar o desempenho da aplicao, implicando que um determinado problema pode ser parcialmente resolvido em diferentes mquinas do sistema simultaneamente Neste sentido, existe diferentes nveis de paralelismo

Paralelismo de Granularidade Fina (fine-grained)


Paralelismo de Granularidade Grossa (coarse-grained)

Granularidade consiste na avaliao do nvel de detalhamento do comportamento de um elemento que exposto. Quo mais bem detalhado o comportamento do seu objeto exposto, mais fina sua granularidade.

Atualmente, a granularidade tem recebido particular ateno devido sua importncia em SOA [11] e [12] (Arquitetura Orientada Servios) por ser um fator decisivo na definio de uma abordagem por componentes do sistema que permite maior flexibilidade (Orientado a Reusabilidade) ou na padronizao que permite maior produtividade (Orientado a Negcios).

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

19

prof. Gregorio Perez Peiro

Sistemas Distribudos

10

Conceitos de Sistemas Distribudos - Introduo

Objetivos dos Sistemas Distribudos

DESEMPENHO

GRANULARIDADE
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Paralelismo de Granularidade Fina implica em mais flexibilidade, porque h mais, pequenos incrementos, pequenas unidades funcionais Paralelismo de Granularidade Grossa possui grandes pedaos de capacidade funcional como em grandes processos computacionais onde h poucas interaes e poucos dados

Assim, servios com pouco detalhamento tm uma estrutura grande e, portanto, uma granularidade grossa (coarse-grained) tambm chamada de baixa granularidade. Os servios com muito detalhamento so servios de pequena estrutura e possuem uma granularidade fina (finegrained) ou alta granularidade.

20

Caractersticas dos Sistemas Distribudos

DESAFIOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Em uma viso mais ampla podemos considerar que os sistemas distribudos fazem parte do nosso dia a dia e possuem um projeto bastante simples Apesar dessa verdade, temos que considerar alguns tpicos que podem ser tornar um desafio no projeto de um sistema distribudo

Heterogeneidade Abertura Segurana Transparncia Escalabilidade Tolerncia a Falhas Concorrncia

21

prof. Gregorio Perez Peiro

Sistemas Distribudos

11

Conceitos de Sistemas Distribudos - Introduo

Desafios

HETEROGENEIDADE
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Sistemas Distribudos precisam ser construdos a partir de uma variedade de diferentes redes, sistemas operacionais, hardware e linguagens de programao Os protocolos de comunicao, usados tipicamente na internet e em outras redes de computadores, mascaram as diferenas entre as redes e Middleware pode lidar com as outras diferenas Middleware um termo aplicado a camadas de software que fornecem uma abstrao de programao, bem como uma mscara de heterogeneidade das camadas de redes, sistemas operacionais, hardware e linguagens de programao

Middleware fornece um modelo computacional uni-forme para programadores. Alguns exemplos de Middleware: CORBA prov Invocao remota de objetos o que permite que um objeto executando em um computador invocar um mtodo de outro objeto executando em outro computador. Esta implementao esconde o fato de que mensagens so transmitidas por uma rede a fim de enviar uma requisio de invocao e sua rplica. Voltaremos a discutir a camada de Middleware em detalhes mais adiante no curso. A abertura a caracterstica que determina se um sistema pode ser estendido (ampliado) e reimplementado de vrias maneiras. Em redes de computadores de modo geral, ela expressa pela flexibilidade obtida com a utilizao dos protocolos de comunicao que permitem diferentes arquiteturas interagirem trocando mensagens. Nos sistemas Distribudos esta abertura determinada pelo grau pelo qual novos servios de compartilhamento de recursos podem ser adicionados e ficarem disponveis para uso por uma variedade de programas clientes.

22

Java RMI semelhante ao modelo CORBA, a Invocao Remota de Mtodos da linguagem prov um mecanismo de middleware baseado em uma linguagem de programao nica e utiliza uma mquina virtual (JVM) para obter um cdigo portvel. Apesar de esta soluo permitir a comunicao entre diferentes arquiteturas, geralmente no pode ser aplicada a outras linguagens de programao.
Desafios

ABERTURA
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um Sistema Distribudo aberto um sistema que oferece servios de acordo com regras padronizadas que descrevem a sintaxe e a semntica desses servios [04] Em geral, os servios so especificados por meio de interfaces que costumam ser descritas em uma Linguagem de Definio de Interface (IDL Interface Definition Language) Especificaes adequadas de interfaces devem ser completas e neutras, caractersticas importantes para

Interoperabilidade Portabilidade

23

A abertura de um sistema s obtida se a especificao e a documentao dos softwares que definem as interfaces dos componentes do sistema forem conhecidas e padronizadas. Assim, esta especificaes devem ser completas significando que tudo que necessrio para uma implementao foi, de fato, especificado. O fato de ser neutra significa que a especificao no define como deve ser a aparncia da implementao.

prof. Gregorio Perez Peiro

Sistemas Distribudos

12

Conceitos de Sistemas Distribudos - Introduo

Desafios

ABERTURA
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Interoperabilidade caracteriza at que ponto duas implementaes de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto, com base na mera confiana mtua nos servios de cada um, especificados por um padro comum Portabilidade caracteriza at que ponto uma aplicao desenvolvida para um sistema distribudo pode ser executada em outro sistema distribudo diferente que implementa as mesmas interfaces Junto com estas caractersticas da abertura, desejvel que o sistema seja extensvel, permitindo maior flexibilidade do sistema

24

Conseguir grande flexibilidade em qualquer sistema exige uma organizao em componentes pequenos de fcil adaptao ou substituio. Naturalmente, aumentar o conjunto de componentes e manter a integridade e segurana do sistema exige um esforo gerencial maior que pode ser conseguido separandose a poltica (intuito do sistema) do mecanismo (implementao interna do sistema), porm isto no trivial.

A proteo dos recursos compartilhados um dos grandes problemas dos sistemas distribudos, uma vez que o acesso a esses recursos deve ser facilitado para atingir seu objetivo de compartilhamento. A codificao dos dados (criptografia) pode prover proteo adequada na transmisso dos dados, mas ainda difcil evitar ataques como o de Recusa de Servio (Denial of Service - DoS).

Desafios

SEGURANA
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Muitas das informaes disponveis nos sistemas distribudos tem um alto valor intrnseco para seus usurios, portanto sua segurana consideravelmente importante A segurana para recursos de informao possui 3 componentes Confidencialidade

Proteo contra revelao para pessoas no autorizadas

Integridade

Proteo contra alterao ou corrupo

Disponibilidade

Proteo contra interferncia em relao ao acesso ao recurso


25

Em ataques de Recusa de Servio (DoS) grandes quantidades de requisies sem sentido so feitas a um servio de modo que um usurio que realmente necessita do servio no consegue obt-lo.

prof. Gregorio Perez Peiro

Sistemas Distribudos

13

Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos

TRANSPARNCIA
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um das principais necessidades dos Sistemas Distribudos tornar o ambiente de rede invisvel provendo a viso de um ambiente nico para o usurio Um Sistema Distribudo que capaz de se apresentar a usurios e aplicaes como se fosse um nico sistema de computador denominado transparente Tanembaum [04]

O objetivo tornar certos aspectos da distribuio invisveis ao programador de forma que ele precise se preocupar apenas com o projeto de sua aplicao particular.

26

O usurio no deve ter conhecimento da distribuio de recursos do sistema, portanto importante ocultar o fato de que os processos e demais recursos esto fisicamente distribudos. Desta forma no necessrio se preocupar com o local onde uma aplicao est instalada ou os detalhes de como suas operaes sero acessadas por outros componentes.

Assim, os recursos que no so diretamente relevantes para a execuo de uma tarefa de interesse num determinado instante so escondidos e passam annimos atravs da transparncia. fcil perceber que, apesar das vantagens, a transparncia nem sempre desejada. Veja o caso em que o usurio necessita, por exemplo, um documento impresso. usual que o trabalho seja executado em uma impressora prxima ao usurio, sendo mais conveniente deixar que o usurio faa a escolha dessa impressora. Na prtica, um sistema transparente oculta alguma informao do usurio ou dos processos.

Transparncia

TIPOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Transparncia
Acesso

Descrio
Oculta diferenas na representao de dados e no modo de acesso

Localizao Migrao e Relocao Replicao

O local do recurso desconhecido O recurso pode ser movido, inclusive enquanto est em uso Mltiplas instncias de um recurso podem ser utilizadas para aumentar confiabilidade e desempenho sem o conhecimento destas rplicas

Concorrncia Falha

Vrios usurios podem compartilhar o mesmo recurso A falha e a recuperao de um recurso no pode afetar o sistema
27

De modo geral, estes tipos de transparncia so reco-nhecidos pela International Organization for Standardization (ISO) de 1995 [13], porm alguns outros tipos podem ser considerados conforme o ponto de vista aplicado pelo estudioso, como a transparncia de Desempenho ou Mobilidade dada por Couloris [02].

prof. Gregorio Perez Peiro

Sistemas Distribudos

14

Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos

ESCALABILIDADE
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

O aumento do desempenho em sistemas informatizados encontra sua limitao na capacidade tecnolgica de conectividade entre um grande conjunto de processadores A medida que os sistemas so ampliados podem apresentar perda de desempenho devido s sobrecargas que so geradas no gerenciamento do ambiente e da soluo, mas seu comprometimento pode ser impedido com uma boa arquitetura Um sistema cujo desempenho aumenta com o acrscimo de hardware proporcionalmente capacidade acrescida chamado escalvel

28

Um dos argumentos que levou descentralizao dos sistemas est vinculado ao fato de que sistemas fortemente acoplados possuem limitao prtica no aumento do desempenho, pois necessitam uma infraestrutura especial de barramento e memria para aumentar o nmero de processadores de forma que no h uma boa relao de custo e benefcio.

Caractersticas de Sistemas Distribudos

ESCALABILIDADE
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A escalabilidade uma das mais importantes metas e um dos principais argumentos em favor dos Sistemas Distribudos, podendo ser abordada por diferentes pontos de vista: Escalvel quanto ao tamanho Pode-se acrescentar mais recursos e usurios ao sistema

Escalvel geograficamente
Usurios e recursos podem estar distantes uns dos outros Escalvel Administrativamente O sistema ainda pode ser fcil de gerenciar, mesmo abrangendo organizaes administrativas diferentes

29

Projetar um sistema distribudo escalvel apresentar diversos desafios: Custo dos recursos fsicos: a medida que a demanda do sistema cresce, deve ser possvel acrescer os recursos a um custo razovel. Perda de desempenho: com o crescimento do sistema a quantidade e distribuio dos recursos devem aumentar, porm isso no pode gerar uma maior complexidade no gerenciamento dos mesmos ou causar considervel reduo do desempenho. Preveno da falta de recursos: com o crescimento dos sistemas informatizados (vide internet e computao ubqua) muito difcil fazer uma previso das necessidade de recursos a longo prazo. Gargalos no sistema: se um determinado recurso for muito requisitado, a tentativa de utilizao poder causar um gargalo de desempenho no sistema.

prof. Gregorio Perez Peiro

Sistemas Distribudos

15

Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos

TOLERNCIA

FALHAS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Tolerncia a Falhas a capacidade do sistema sobreviver falha de alguns dos seus elementos e est associado intimamente transparncia de falhas, confiabilidade e disponibilidade do sistema Em sistemas distribudos, espera-se que a falha de um componente do sistema no afete de maneira significativa a tarefa sendo realizada, isto , pode haver perda de desempenho, mas a tarefa realizada Questes sobre o efeito de uma falha no sistema so as mais difceis de responder e sanar e dependem dos objetivos do sistema, bem como de sua estrutura de recursos

Tipicamente obtm-se a Tolerncia a falhas com a redundncia de hardware e software. Se as caractersticas de transparncia discutidas anteriormente forem atingidas, possvel migrar um recurso de hardware e software de um sistema para outro que esteja disponvel sem o conhecimento do usurio.

30

Questes importantes: Como o sistema vai responder falha de alguns de seus componentes? Parte dos seus servios ficar indisponvel? Todos os servios? Os demais componentes vo compensar as tarefas daquele que falhou? O sistema vai se tornar totalmente intil? Se o sistema for um avio, que acontecer se um dos computadores de bordo falhar? O que deveria acontecer? Como detectar a falha?

Caractersticas de Sistemas Distribudos

CONCORRNCIA
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um dos grandes atrativos dos sistemas distribudos a possibilidade de compartilhar recursos de servios e aplicativos

Este compartilhamento abre a possibilidade de que um determinado recurso tente ser acessado por vrios clientes ao mesmo tempo, como por exemplo o acesso aos lances em um leilo (mercado livre, e-bay, etc...) que chaga ao limite de tempo
Limitar o recurso compartilhado a um cliente por vez resolve o problema de concorrncia, mas tambm limita a produo do sistema o que no desejado Assim, usualmente sistemas distribudos permitem o acesso concorrente dos recursos, porm comum utilizar objetos encapsulados que assumam a responsabilidade de alguma estrutura de sincronizao

31

prof. Gregorio Perez Peiro

Sistemas Distribudos

16

Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos

ARMADILHAS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A busca por maior flexibilidade, compartilhamento de recursos, escalabilidade, desempenho, confiabilidade, disponibilidade e tolerncia a falhas pode causar problemas difceis ou mesmo impossveis de serem resolvidos H limitaes de software e tcnicas lgicas disponveis

O desempenho dependente da rede de comunicao que interliga os elementos processadores


A conectividade cria problemas relativos segurana nos acessos a este dados, uma vez que a maior facilidade de acesso reduz a segurana

32

Caractersticas de Sistemas Distribudos

ARMADILHAS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A confiabilidade pode diminuir com o aumento do nmero de processadores se a implementao no for adequada

A operao distribuda cria problemas de sincronizao devido concorrncia pelo uso dos reursos podendo levar a situaes de deadlock, starvation ou erros na computao O desempenho do sistema pode ser afetado por um gargalo (Bottleneck) quando as limitaes de um ou mais componentes pode impedir que as caractersticas desejadas sejam atingidas

33

PALAVRAS FINAIS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Apesar da simplicidade da infra-estrutura bsica necessria para um sistema distribudo essencialmente um ambiente de redes se torna evidente a complexidade de sua implementao frente aos desafios impostos Frente a esta clara complexidade, Lamport apresentou uma caracterizao alternativa para os sistemas distribudos: Voc sabe que tem um Sistema Distribudo quando a falha de um computador do qual nunca ouviu falar impede que voc faa qualquer trabalho Esta citao pode encontrada em:
http://research.microsoft.com/en-us/um/people/lamport/pubs/distributed-system.txt

34

prof. Gregorio Perez Peiro

Sistemas Distribudos

17

Conceitos de Sistemas Distribudos - Introduo

Referncias Bibliogrficas [01] L.Lamport, Time, Clocks and the Ordering of Events, Communications of the ACM, v 21, n 7, Jul 78, p 558-565. [02] G Coulouris, J Dollimore, T. Kindberg; Distributed Systems: Concepts and Design, 3 ed. (2001) Addisson-Wesley www.cdk3.net - www.booksites.net/cdkbook [03] L.Lamport, R.Shostak and MPease, The Byzantine Generals Problem, SRI International, ACM Transactions on Programming Languages and Systems, Vol. 4, No 3, 1982, pages 382-40 [04] A.Tanenbaum e M.Van Steen; Sistemas Distribudos. Princpios e Paradigmas, 2 ed., Ed. Pearson (2007) [05] A.Silberschatz, P.Galvin, G.Gagne, Sistemas Operacionais, Conceitos e Aplicaes , 6 ed., Ed. Campus (2001) [06] M.Weiser; The Computer for the 21st Century, Scientific American, pp. 94-10, September 1991 - http://www.ubiq.com/hypertext/weiser/SciAmDraft3.html [07] M.Weiser; Some Computer Science Issues in Ubiquitous Computing , Communications of the ACM, July 1993. (reprinted as "Ubiquitous Computing". Nikkei Electronics; December 6, 1993; pp. 137-143 - http://www.ubiq.com/hypertext/weiser/UbiHome.html [08] Grandes Desafios da Computao no Brasil, 2006 2016; Seminrio organizado pela Sociedade Brasileira de Computao www.sbc.org.br [09] P.K.Sinha; Distributed Operating Systems. Concepts and Design; Ed. John Wiley (1996) [10] R.D.Schlichting and F.B.Schneider; Fail-stop processors: an approach to designing faulttolerant computing systems, ACM Transactions on Computer Systems (TOCS); Volume 1, no. 3; August 1983; pp. 222 - 238 [11] Equilbrio e Granularidade de Servios http://aqueleblogdesoa.wordpress.com/2008/07/15/equilibrio-e-granularidade-de-servicosi/ (parte I) http://aqueleblogdesoa.wordpress.com/2008/07/18/equilibrio-e-granularidadede-servicos-ii/ (parte II) [12] SOA Service: Coarse or Fine, Must Make a Dime! http://blogs.sun.com/alur/entry/soa_service_coarse_or_fine [13] International Organization for Standardization (ISO) - www.iso.org

prof. Gregorio Perez Peiro

Sistemas Distribudos