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

Sistemas Distribudos

Jorge Surian
jsurian@uol.com.br


Sistemas Distribudos: Tipos de Sistemas Distribudos, Tipos de Arquiteturas e Sistemas
Pervasivos.
2
2
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
3
3
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.
4
4
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
5
5
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.
6
6
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:

7
7
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.
8
8
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.

9
9
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.
10
10
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.

11
11
Sistemas de Informao Distribudos
Exemplo: Portal de Turismo
12
12
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.
13
13
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.
14
14
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, chama-
se a esse processo de ACID. Vejamos o porqu disso...
15
15
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.

16
16
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.

17
17
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.

18
18
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...


19
19
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.
20
20
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.
21
21
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.
22
22
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.

23
23
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.
24
24
Exemplo 2 Transao Bancria
Transao Atmica
quantia j retirada
Dinheiro desaparece???
depsito(conta1, quantia)
Se depsito no consegue ser efetuado...
saque(conta1, quantia)

e se forem 2 saques!!!

25
25
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.
26
26
Exemplo 3 Inventrio de Bobinas
A atualizao do inventrio s efetuada se tudo deu
certo, seno rebobinar as fitas.

27
27
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.
28
28
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.

29
29
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;
30
30
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;

31
31
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).
32
32
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.

33
33
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.
34
34
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
35
35
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
36
36
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.
37
37
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.
38
38
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
39
39
Arquitetura de Sistema
Decises a respeito de componentes de software, sua
interao e sua colocao em mquinas reais.

Trs tipos:
Centralizadas
Descentralizadas
Hibridas
40
40
Arquitetura de Sistema
Centralizadas
Modelo cliente-servidor
Comportamento de requisio-resposta

41
41
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
42
42
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.

43
43
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

44
44
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.
45
45
Arquitetura de Sistema
Centralizadas
Exemplo:

46
46
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
47
47
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

48
48
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.
Fonte:
Tanenbaum, Andrew S. e Steen, Marteen Van. Sistemas Distribudos, So
Paulo: Prentice Hall, 2008.

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