Você está na página 1de 48

Sistemas Distribudos

Jorge Surian jsurian@uol.com.br

Sistemas Distribudos: Tipos de Sistemas Distribudos, Tipos de Arquiteturas e Sistemas Pervasivos.

Sistemas de Computao Distribudos

Os sistemas de computao distribudos so utilizados para tarefas de alto desempenho e podem ser subdivididos em duas classes distintas:
Sistemas de computao de cluster Sistemas de computao em grade

Homogneo x Heterogneo

2 2

Sistemas de Computao Distribudos Sistemas de Computao Cluster Hardware consiste em um conjunto de estaes de trabalho conectadas e se desenvolveu a partir do barateamento dos computadores pessoais. Conexo feita atravs de uma rede local, e em quase todos os casos, a computao de cluster usada para programao paralela na qual um nico programa e executado em paralelo.

3 3

Sistemas de Computao Distribudos Sistemas de Computao Cluster Exemplo: Sistemas Beowulf baseado em Linux, onde cada cluster consiste em um conjunto de ns de computao controlados e acessados por meio de um nico s mestre, cujas tarefas so manipular e alocar determinados programas paralelos.

4 4

Sistemas de Computao Distribudos Sistema de Computao em Grade Sistemas Distribudos montados como federao de computadores, na qual cada sistema pode cair sob um sistema administrativo diferente, e pode ser muito diferente no que tange a hardware, software e tecnologia empregada. Apresentam alto grau de heterogeneidade.

5 5

Sistemas de Computao Distribudos Sistema de Computao em Grade Software usado para permitir acesso a recursos (muitas vezes clusters) de diferentes organizaes reunidos para permitir a colaborao de um grupo (conceito de organizao virtual). Foco dirigido para a arquitetura, est dividida em quatro etapas, em acordo ao esquema apresentado a seguir:

6 6

Sistemas de Computao Distribudos Sistema de Computao em Grade A camada mais baixa, chamada camada base, prov interfaces para recursos locais em um site especfico. Essas interfaces so projetadas para permitir compartilhamento de recursos dentro de uma organizao virtual. Prov funes para consultar o estado e as capacidades de um recurso, em conjunto com funes para o gerenciamento propriamente dito. Exemplo: Travar um recurso.

7 7

Sistemas de Computao Distribudos Sistema de Computao em Grade A camada de conectividade consiste em protocolos de comunicao para suportar transaes da grade que abranjam a utilizao de mltiplos recursos. Exemplo: Protocolos de transferncia de dados entre recursos ou para localizar um recurso desde uma localizao remota.

8 8

Sistemas de Computao Distribudos Sistema de Computao em Grade A camada de recursos responsvel pela gesto de um nico recurso, utilizando funes fornecidas pela camada de conectividade e chama diretamente as interfaces disponibilizadas pela camada base. Exemplo: Recursos responsvel pelo acesso, dependendo da autenticao realizada pela camada de conectividade.

9 9

Sistemas de Computao Distribudos Sistema de Computao em Grade A camada coletiva manipula o acesso a mltiplos recursos e normalmente consiste em servios para descoberta de recursos, alocao e escalonamento de tarefas para mltiplos recursos, como replicao de dados. A camada de aplicao consiste em aplicaes que funcionam dentro de uma organizao.

10 10

Sistemas de Informao Distribudos Exemplo: Portal de Turismo

11 11

Sistemas de Informao Distribudos Exemplo: Portal de Turismo A origem dos sistemas de informao distribudos est geralmente ligada organizaes que se defrontaram comum grande quantidade de aplicaes em rede e que passaram a ter crescentes problemas de interoperabilidade. Usualmente uma aplicao em rede que era executada num servidor, que tambm era o servidor de banco de dados, disponibilizando-a para acessos remotos, denominados clientes.

12 12

Sistemas de Informao Distribudos Exemplo: Portal de Turismo Toda vez que o cliente envia uma requisio ao servidor, fica aguardando uma resposta depois da execuo de uma operao especfica. Integrao o processo no qual clientes empacotem vrias requisies, em geral para vrios servidores, em uma requisio maior como uma transao distribuda que ser plenamente executada ou ento no seria executada. Todavia, a medida em que os componentes de dados foram se distinguindo dos de processamento, ficou claro que as aplicaes se comunicassem entre si.

13 13

Sistemas de Informao Distribudos Sistemas de Processamento de Transaes A partir do conhecimento de que as operaes num banco de dados so feitas sob a forma de transaes, fica natural pensarmos num processo que tem em algum ponto um incio (BEGIN_TRANSACTION) e num outro local um trmino (END_TRANSACTION). Supe-se que se todo processo ocorrer como se espera inicialmente a transao ser realizada, de forma integral, no banco de dados (COMMIT). Todavia, se por qualquer que seja o motivo alguma parte dessa transao no puder ser executada, toda a transao desfeita (ROLLBACK). Em geral, chamase a esse processo de ACID. Vejamos o porqu disso...

14 14

Sistemas de Informao Distribudos Sistemas de Processamento de Transaes Atmicas: Para todo restante do sistema, a transao acontece como se fosse indivisvel. Consistente: A transao no viola invariantes de sistema. [Notar que invariantes podem ser violados por breves instantes] Isoladas: Transaes concorrentes no interferem entre si. [Serializveis] Durveis: Uma vez comprometida uma transao, as alteraes sero permanentes.

15 15

Exemplo 1 - SOA Todas as operaes realizadas em um sistemas so, ou deveriam ser, fracamente acopladas entre si, quando se pensa em criar uma Arquitetura Orientada a Servios. Mais do que desejvel, este nvel de acoplamento deve ser perseguido.
Imagine que voc v ao Shopping com sua namorada ver um filme e lanchar na praa de alimentao, no restaurante preferido de vocs. Imagine agora que o filme que voc deseja assistir no esteja passando no Shopping favorito. Naturalmente grande a chance de vocs irem noutro Shopping e acabarem lanchando noutro local.

16 16

Exemplo 1 - SOA As operaes de ver um filme" e lanchar no Shopping" no possuem um relacionamento rgido. E assim que a maioria esmagadora de atividades humanas se comporta: so fracamente acopladas umas s outras. muito comum o requerimento de "Transao" quando o assunto SOA. muito comum ainda o termo "Transao" ser usado como sinnimo de "Atomicidade" de operaes distribudas. Aquele "tudo-ou-nada" normalmente implementado por Gerenciadores de Bancos de Dados. Com "Rollbacks" mgicos desfazendo operaes previamente realizadas, ou ao menos uma parte indesejvel delas, dependendo do Banco de Dados em si.

17 17

Exemplo 1 - SOA Primeiramente vamos compreender que errado pensar que "Transao" trata-se de sinnimo de "Atomicidade". Na verdade, esta caracterstica uma das diversas que uma Transao pode ter. Atomicidade uma das caractersticas que uma Transao pode ter, mas no que isso seja obrigatrio, pois uma Transao sem Atomicidade ainda uma Transao...

18 18

Exemplo 1 SOA (continuao) A definio de transaes distribudas com Atomicidade, na grande maioria dos casos reais, acaba no sendo desejvel. Francamente, uma m ideia! SOA encaixa-se em uma situao como essa. Em termos de aplicaes, Atomicidade promove um nvel de acoplamento alto que, por definio, ruim e deve ser evitado.

19 19

Exemplo 1 SOA (continuao) O engano reside no uso de Atomicidade em Transaes de um Gerenciador de Bancos de Dados. Como temos esse recurso nativamente oferecido pelo produto, tambm deveriam us-lo em outros nveis de abstrao. Como por exemplo, SOA. Nada mais enganoso. Transaes com Atomicidade so razoveis e necessrias para Bancos de Dados. No so razoveis para aplicaes. So nveis de abstrao diferentes e, por conta disso, no possuem requerimentos iguais.

20 20

Exemplo 1 SOA (continuao) Um dos modelos ou padres de desenho usados quando estamos lidando com aplicaes distribudas (e SOA um bom exemplo disso) aquele baseado em "Aes de Compensao". Isto , se algo sai errado com uma operao, aplicamos outras operaes que funcionalmente compensam aquelas que tiveram sucesso. As operaes de compensao fariam com que aquelas sem erro voltassem ao seu estado original.

21 21

Exemplo 1 SOA (continuao) Supondo que exista uma situao onde uma transao distribuda com Atomicidade seja requerida. Em SOA talvez no seja possvel implement-la ou seu custo de implementao provavelmente ser proibitivo. Suponha que um Servio tenha como responsabilidade operaes em dois legados distintos: Um sistemas de SAC e um ERP qualquer. A operao do SAC transcorre sem problemas, mas, por qualquer razo, a operao com o ERP no consegue ser concluda. Em um Transao com Atomicidade, a operao do SAC seria "desfeita" e voltaramos situao original.

22 22

Exemplo 1 SOA (continuao) Ora, como o SAC no possui capacidades para tornar-se uma unidade de execuo de uma transao distribuda, simplesmente no entende comandos como "rollback" ou "desfaa tal operao". O mesmo ocorre para o ERP e na grande maioria das aplicaes caseiras e pacotes de mercado. Isto no exatamente um problema, pois, como disse anteriormente, uma Transao com Atomicidade entre SAC e ERP no seria desejvel. Basicamente, em sistemas distribudos precisamos entender contextos, antes de mais nada.

23 23

Exemplo 2 Transao Bancria


Transao Atmica saque(conta1, quantia) e se forem 2 saques!!!

quantia j retirada Dinheiro desaparece???

Se depsito no consegue ser efetuado...


depsito(conta1, quantia)
24 24

Decorrncias dos Exemplo... Saque por duas vezes, no pode jamais ser feito! Consultar o saldo duas vezes, no h problema algum! Essa operao idempotente, pois pode ser feita vrias vezes sem afetar os resultados (no causa danos). Quando se quer uma comunicao confivel, necessrio ter-se uma conexo antes de se enviar os dados, como ocorre no protocolo TCP/IP usado na Internet. Quanto menor a mensagem a ser enviada, pior a estratgia de uso de protocolo orientado conexo.

25 25

Exemplo 3 Inventrio de Bobinas A atualizao do inventrio s efetuada se tudo deu certo, seno rebobinar as fitas.

26 26

Sistemas de Informao Distribudos


Sistemas de Processamento de Transaes O monitor de TP (Monitor de Processamento de Transao) permite que uma aplicao acesse vrios servidores de banco de dados simultaneamente, dando a impresso de um processo nico. Basta pensar que cada banco da figura abaixo represente algo distinto, como o banco da cia. Area, o banco do hotel e o banco do receptivo, para somente em caso de possibilidade simultnea nos trs bancos, uma transao de turismo seja realizada.

27 27

Sistemas Pervasivos Nos sistemas pervasivos, os equipamentos costumam a ser caracterizados por seu pequeno tamanho, pela alimentao por bateria, por sua mobilidade e por terem somente uma conexo sem fio, se bem que nem todas essas caractersticas se aplicam a todos dispositivos. A essncia da educao pervasiva consiste em perceber este conhecimento e relacionar os processos educacionais com o contexto do aprendiz, levando em considerao seu modelo de mobilidade.

28 28

Sistemas Pervasivos Alguns novos elementos computacionais para suporte educao em ambientes pervasivos so necessrios, tais como: Mobilidade: os sistemas educacionais devem dar suporte mobilidade do aprendiz e o acesso aos recursos educacionais. Esses devem estar disponveis em vrios formatos, distribudos em uma rede educacional, e no mais localizados em um nico local;

29 29

Sistemas Pervasivos Adaptao: a mobilidade e a capacidade do aprendiz de acesso aos recursos educacionais utilizando diferentes recursos computacionais trazem a necessidade de adaptao a estes recursos. Os objetivos, preferncias, modelos de aprendizagem, de mobilidade e de contexto do aprendiz devem ser considerados;

30 30

Sistemas Pervasivos
Conscincia do contexto: a mobilidade do aprendiz traz a possibilidade do mesmo aprender em diferentes cenrios e situaes, onde diferentes recursos e oportunidades de aprender podem estar disponveis. importante pr ativamente sugerir e indicar ao aprendiz elementos presentes no contexto virtual e no-virtual e que so de interesse dele. Com isto, as informaes sobre o local onde se encontra o aprendiz (por exemplo, um evento que est ocorrendo ou vai ocorrer) podem ser relacionadas com seus objetivos educacionais (o aprendiz pode estar interessado no tpico do evento).

31 31

Sistemas Pervasivos Trs requisitos so bsicos para se identificar um sistema pervasivo, a saber: Adoo de mudanas contextuais. Incentivar composio ad hoc (expresso latina que indica "para um fim especfico". Em software a expresso ad hoc utilizada para designar ciclos completos de construo de um software no devidamente projetado como forma de atender alguma necessidade especfica). Reconhecer compartilhamento como padro.

32 32

Sistemas Pervasivos
Instabilidade o comportamento esperado destes sistemas Costumam estar em nosso entorno. H ausncia de controle administrativo humano Integram equipamentos domsticos como aparelhos de TV, udio e vdeo, dispositivos para jogos, smart phones e outros equipamentos pessoais. Em algum momento todos os tipos de equipamentos eletrodomsticos, relgios, dispositivos para vigilncia estaro totalmente integrados.

33 33

Arquiteturas
Sistemas distribudos, em geral, so complexa peas de software cujos componentes esto, espalhados por vrias mquinas. Os principais estilos arquitetnicos so: Em camada Baseadas em Objeto Centradas em Dados Baseadas em Eventos

34 34

Arquiteturas Em Camadas Componentes so organizados em camadas Componente da camada N tem permisso de chamar componentes na camada N-1 Comum em redes de computadores

35 35

Arquiteturas Baseadas em Objeto Objeto Componente Objetos so conectados por meio de uma chamada de procedimento (remota). Amplamente utilizada para sistemas de software de grande porte.

36 36

Arquiteturas Centradas em Dados Processos se comunicam por meio de um repositrio comum. Sistemas distribudos baseados na Web, em grande parte, so centrados em dados.

37 37

Arquiteturas Baseadas em Eventos 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

38 38

Arquitetura de Sistema Decises a respeito de componentes de software, sua interao e sua colocao em mquinas reais.
Trs tipos: Centralizadas Descentralizadas Hibridas

39 39

Arquitetura de Sistema Centralizadas Modelo cliente-servidor Comportamento de requisio-resposta

40 40

Arquitetura de Sistema Centralizadas Como estabelecer a comunicao?


1. Protocolo sem conexo:

Protocolo simples, que funciona bem em redes locais Cliente empacota uma mensagem para o servidor diretamente Eficiente se NO ocorrem problemas Exemplo: Falhas Transferncias bancarias Operaes podem ser repetidas sem causar danos: idempotentes

41 41

Arquitetura de Sistema Centralizadas Como estabelecer a comunicao?


2. Protocolo orientado a conexo

Soluo funciona bem em sistemas de longa distncia. Sempre que um cliente requisita um servio, primeiro se estabelece conexo com o servidor e depois se envia a requisio.

42 42

Arquitetura de Sistema Centralizadas Camadas de Aplicao


Como distinguir entre cliente e servidor?

Exemplo: Servidor de banco de dados distribudo repassa requisies a servidores de arquivos. Assim, age como cliente continuamente.
Como muitas aplicaes cliente-servidor visam dar suporte ao acesso de usurios a banco de dados conveniente que sejam divididas em trs nveis distintos:

Nvel de interface de usurio Nvel de processamento Nvel de dados

43 43

Arquitetura de Sistema Centralizadas


Nvel de interface de usurio. Consiste em programas que permitam aos usurios finais interagir com aplicaes. Diversos nveis de complexidade. Nvel de processamento Normalmente contem 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. Mantm os dados consistentes. Dados costumam ser persistentes.
44 44

Arquitetura de Sistema
Centralizadas Exemplo:

45 45

Arquitetura de Sistema
Arquiteturas Multidivididas Trs Nveis lgicos vrias possibilidades para a distribuio fsica de uma aplicao cliente-servidor por vrias maquinas

Interface caracter

Interface grfica

Preenchimento de formulrio
46 46

Arquitetura de Sistema
Arquiteturas Multidivididas Gerenciamento de sistema: Clientes gordos (fat clients) Clientes magros (thin clients) Servidor pode tambm agir como clientes: arquitetura de trs divises

47 47

Fonte:
Tanenbaum, Andrew S. e Steen, Marteen Van. Sistemas Distribudos, So Paulo: Prentice Hall, 2008.

Copyright 2010 Prof. Jorge Surian


Todos direitos reservados. Reproduo ou divulgao total ou parcial deste documento expressamente probido sem o consentimento formal, por escrito, do professor Surian.

48 48

Você também pode gostar