Vous êtes sur la page 1sur 74

MODELOS DE SISTEMAS DISTRIBUDOS

Edeyson Andrade Gomes


www.edeyson.com.br

Agenda
Viso geral Modelos de Arquitetura de Sistemas Distribudos MASD Camadas de softwares Arquiteturas de sistema Variaes Interfaces e objetos Requisitos de projeto para arquiteturas distribudas Modelos fundamentais MFSD Modelo de interao Modelo de falhas Modelo de segurana

Modelos de Sistemas Distribudos

www.edeyson.com.br

Viso Geral

VISO GERAL
Um modelo de arquitetura de um sistema distribudo envolve o posicionamento de suas partes e os relacionamentos entre elas. Os modelos fundamentais envolvem uma descrio mais formal das propriedades comuns a todos os modelos de arquitetura.
Ausncia de um relgio global. A comunicao entre processos por troca de mensagens. Atrasos e vunerabilidade devido a rede de comunicao.

Modelos de Sistemas Distribudos

www.edeyson.com.br

VISO GERAL
Modelos fundamentais:
Modelo de interao
Trata do desempenho e da dificuldade de estabelecer limites de tempo.

Modelo de falha
Especificao das falhas de processos e canais de comunicao

Modelo de segurana
Apresenta o conceito de canal seguro.

Modelos de Sistemas Distribudos

www.edeyson.com.br

VISO GERAL
Cada modelo destinado a fornecer uma descrio abstrata e simplificada, mas consistente, de um aspecto relevante do projeto de um sistema distribudo.

Modelos de Sistemas Distribudos

www.edeyson.com.br

VISO GERAL
Dificuldades e ameaas para os sistemas distribudos:
Modos de uso que variam muito
Variaes na carga. (Ex.: Web) Interconexo. (Ex.: mal contato em cabos) Largura de banda e latncia. (Ex.: aplicaes multimdia)

Ampla variedade de ambientes de sistema


Heterogeneidade de hardware, sistemas operacionais e rede.

Problemas internos
Relgios no sincronizados, conflito de dados, etc.

Ameaas externas
Ataques a integridade e ao sigilo dos dados, negao de servio, etc.

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelos de Arquitetura

Modelos de Arquitetura
A arquitetura de um sistema sua estrutura em termos de componentes especificados separadamente. O objetivo atender as demandas atuais e futuras. Tornar o sistema confivel, gerencivel, adaptvel e rentvel.

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelos de Arquitetura
Simplifica e abstrai as funes dos componentes individuais.
Posicionamento dos componentes na rede de computadores. Inter-relacionamentos entre os componentes.

Classificao dos processos:


Processos cliente. Processos servidor. Processos peer-to-peer.

10

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelos de Arquitetura
Camadas de SW

Camadas de SW
A viso orientada para processo e servio pode ser expressa em termos de camadas de servio. Um servidor um processo que aceita pedidos de outros processos. Um cliente um processo que solicita algum servio a um ou vrios processos servidores.

12

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW
Um servio provido por um ou mais servidores. As camadas de hardware e software de mais baixo nvel so freqentemente denominadas de plataforma para sistemas e aplicativos distribudos. Ex.: Intel x86/Windows, Intel x86/Linux, PowerPC/Mac OS X, etc.

13

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW

Aplicativos, servios

Middleware

Sistema Operacional Plataforma Hardware de computador e rede


14 Modelos de Sistemas Distribudos www.edeyson.com.br

Camadas de SW - Middleware
Definies
Conjunto reusvel e expansvel de servios e funes, comumente necessrios por parte de vrias aplicaes distribudas para funcionarem bem em um ambiente de rede Mascara a heterogeneidade e fornece um modelo de programao homogneo para os programadores de aplicativos. Composto por um conjunto de processos ou objetos.

15

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Definies
Simplifica as atividades de comunicao de programas aplicativos por meio do suporte de abstraes:
Invocao a mtodos remotos. Comunicao entre um grupo de processos. Notificao de eventos. Particionamento, posicionamento e recuperao de objetos de dados. Replicao de objetos de dados compartilhados. Transmisso de dados multimdia em tempo real.

16

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Comunicao

17

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Produtos e padres orientados a objetos
RPC Remote Procedure Call Java RMI Java Remote Method Invocation CORBA (Object Management Group OMG) Common Object Request Broker Architecture
Utiliza Interface Definition Language IDL

DCOM (Microsoft) Distributed Component Object Model Web Service Servios Web RM-ODP Reference Model for Open Distributed Processing do International Standards Organization (ISO)/International Telecommunication Union-Telecommunications (ITU-T)

18

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Remote Procedure Call RPC

19

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Object Request Broker ORB

20

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Atribuio
Object brokers: permitem que objetos se encontrem em um sistema distribudo e interajam uns com os outros. Object services: permitem criar, nomear, mover, copiar, armazenar, deletar, restaurar e gerenciar objetos.

21

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Servios oferecidos
Fornecem servios de infra-estrutura a serem usados por programas aplicativos. Os servios so fortemente vinculados ao modelo de programao distribuda fornecido pelo middleware. Exemplos de servios do CORBA:
Atribuio de nomes (nomeao) Segurana Transaes Distribudas (ACID Atomicidade, Consistncia, Isolamento e Durabilidade) Armazenamento persistente Notificao de eventos

22

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Application Programming Interface API

23

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Distributed Object Computing DOC
Host Infrastructure:
Ex.: Java Virtual Machine JVM, .Net para Web Services, etc.

Distribution:
Ex.: CORBA, RMI, DCOM e SOAP (Simple Object Access Protocol)

Commom Services:
Ex.: Servios CORBA, Suns Enterprise Java Beans (EJB), .Net para Web Service, etc.

Obs.:
SOAP um protocolo que troca mensagens em XML (eXtensible Markup Language).
XML uma recomendao da Word Wide Web Consortium (W3C).

24

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Camadas

25

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Camadas

Aplicativos, servios

RMI, RPC e eventos Protocolo baseado em requisio/resposta Empacotamento e representao externa de dados UDP e TCP (Sistema Operacional) Camadas de Middleware

26

Modelos de Sistemas Distribudos

www.edeyson.com.br

Camadas de SW - Middleware
Limitaes
Muitos aplicativos distribudos se baseiam completamente nos servios oferecidos pelo middleware. Princpio fim-a-fim. (artigo de Saltzer, Reed e Clarke)
http://www.reed.com Ex.: Servio de e-mail sobre TCP/IP

O comportamento correto em programas distribudos depende de verificaes, mecanismos de correo de erro e medidas de segurana em muitos nveis.

27

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelos de Arquitetura
Arquiteturas de Sistemas

Arquitetura de Sistema
Implicaes importantes no desempenho, na confiabilidade e na segurana do sistema resultante. Os processos possuem responsabilidades bem definidas e interagem para realizar uma atividade til. Dois tipos principais de modelos de arquitetura:
Cliente/Servidor Peer-to-Peer (P2P)

Variaes nos modelos de arquitetura.

29

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Cliente/Servidor
Servidores tambm podem ser cliente.
Pouca necessidade de sincronizao entre os processos cliente de uma operao e servidor de outra operao no mesmo servidor.

Cliente

invocao resultado Servidor

invocao resultado

Servidor

Cliente

Legenda: Processo:

Computador:
www.edeyson.com.br

30

Modelos de Sistemas Distribudos

Arquitetura de Sistema
Peer-to-Peer No h distino entre processos clientes e servidores. Maior escalabilidade comparando com o cliente/servidor.
Peer 2 Peer 1 Aplicao Objetos compartilhveis Peer 3 Aplicao Aplicao

Peer 4 Aplicao Peers 5 .... N

31

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Peer-to-Peer (ex.: Napster)

Outros exemplos:
Emule, Bitorrent, Skype, MSN Messenger,Yahoo, etc.
32 Modelos de Sistemas Distribudos www.edeyson.com.br

Arquitetura de Sistema
Servios fornecidos por vrios servidores.
Exemplos: Web, NIS, bancos, clusters, etc.
Servio

Servidor Cliente

Servidor

Cliente Servidor

33

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Servios fornecidos por vrios servidores. (Ex.: Bancos)

34

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Servios fornecidos por vrios servidores. (Ex.: Clusters)
Minimiza o custo de HW Agrupamento fsico Pequeno espao geogrfico Compartilhar recursos
De processamento De armazenamento De memria, etc.

SW e HW homogneos Redes de alta velocidade

35

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Servios fornecidos por vrios servidores. (Ex.: Clusters)
Aumentar a disponibilidade de servios
Se um nodo falhar, outro assume.

Equilibrar carga de trabalho


Um ou mais computadores do cluster atuam como distribuidores da carga entre os demais

Alto desempenho
Para resolver tarefas complexas que podem ser decompostas em subtarefas, cada uma rodando num nodo do cluster. Implementao mais comum: Linux e software livre para implementar paralelismo = Beowulf cluster

36

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Servidores proxies e Cache

Cliente Servidor proxy

Servidor web

Cliente

Servidor web

37

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Cdigo mvel
a) Requisio do cliente resulta no download de um applet

Cliente Cdigo applet


b) O cliente interage com o applet

Servidor web

Cliente Applet

Servidor web

38

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Agentes mveis Programa em execuo (cdigo e dados). Pode efetuar vrias requisies aos recursos locais. Reduz o custo e tempo da comunicao se comparado a C/S. Ameaa em potencial a segurana.

39

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Dispositivos mveis
Laptops, Personal Digital Assistant (PDA), celular, etc. Redes cabeadas e redes sem fio (Global System for Mobile GSM , 3G, Wireless, Bluetooth, etc.)
Conectividade varivel

Transparncia de mobilidade um problema freqente.


Interoperabilidade espontnea (descoberta de servios)

Global Positioning System GPS MobileIP (IP Mvel)

40

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Computadores de rede & clientes leves

Obs.: Desktop diferente de computadores em rede!

41

Modelos de Sistemas Distribudos

www.edeyson.com.br

Arquitetura de Sistema
Cliente/Servidor 3-Tier

42

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelos de Arquitetura
Interface e Objeto

Interface e objeto
As definies de interfaces especificam funes que podem ser invocadas em um processo. Cada processo servidor possui uma interface fixa (C/S pura). Processos distribudos construdos de maneira OO. Muitos objetos podem ser encapsulados em processos servidores e referncias a eles so passadas aos outros processos para que seus mtodos sejam acessados por invocao remota. [Coulouris]
Java RMI CORBA
44 Modelos de Sistemas Distribudos www.edeyson.com.br

Interface e objeto
Um processo Servidor ou Peer pode ser visto como uma coleo de objetos.
Objetos Remotos X Objetos Locais

45

Modelos de Sistemas Distribudos

www.edeyson.com.br

Interface e objeto
Um processo Servidor ou Peer pode ser visto como uma coleo de objetos.
Interface Remota

46

Modelos de Sistemas Distribudos

www.edeyson.com.br

Requisitos
Problemas de desempenho
Reatividade (Capacidade de resposta)
Atrasos no sw remoto, na comunicao, middleware, S.O., processos, etc.

Throughput (Taxa de rendimento)


Velocidade com que o trabalho computacional feito.

Balanceamento de carga
Applets, vrios computadores para um servio e migrao de tarefa.

Qualidade de Servio QoS


Capacidade dos sistemas de atender prazos. Depende da disponibilidade de recursos nos momentos apropriados.
47 Modelos de Sistemas Distribudos www.edeyson.com.br

Modelos de Arquitetura
Requisitos

Requisitos
Uso de cache e replicao
Protocolo de consistncia de cache

Dependabilidade
Pode ser definido como correo, segurana e confiabilidade. Tcnicas
Tolerncia a falhas
Falhas no hardware, software e na comunicao. Redundncia ajuda a confiabilidade, mas dispendiosa e limitada.

Segurana

49

Modelos de Sistemas Distribudos

www.edeyson.com.br

MODELOS FUNDAMENTAIS

50

Modelos de Sistemas Distribudos www.edeyson.com.br

Modelos Fundamentais
Contm elementos essenciais para o entendimento e raciocnio a respeito do comportamento de um sistema. Precisa tratar:
Quais so as principais entidades presentes no sistema? Como elas interagem? Que caractersticas afetam seu comportamento individual e coletivo?

Objetivos:
Tornar explcitas as suposies relevantes. Generalizar o que for possvel ou impossvel.
51 Modelos de Sistemas Distribudos www.edeyson.com.br

Modelos Fundamentais
Aspectos dos SD nos modelos fundamentais:
Interao
Processos interagem passando mensagens e na coordenao. A comunicao ocorre com atrasos.

Falhas
Define e classifica as falhas. Fornece uma base para a anlise de seus efeitos e projeto do tratamento.

Segurana
Define e classifica as formas que ataques podem assumir. Fornece uma base para a anlise das possveis ameaas e o projeto de mtodos de resistncia.

52

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao

53

Modelos de Sistemas Distribudos www.edeyson.com.br

Modelo de Interao
Sistemas distribudos so compostos por vrios processos.
Algoritmos distribudos descrevem seus comportamentos e estados. As mensagens so enviadas para transferir informaes entre processos e para coordenar suas atividades.

Dois fatores que afetam significativamente a interao de processos em SD:


O desempenho da comunicao. A impossibilidade de manter uma noo global de tempo nica.

54

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Desempenho da comunicao
Latncia
Atraso entre o incio da transmisso e o incio da recepo
Primeiro bit no enlace. Atraso no acesso rede. Tempo de processamento

Largura de banda
Capacidade de transmisso total em um certo instante.

55

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Desempenho da comunicao
Latncia Largura de banda Jitter
Medida de variao do atraso entre os pacotes sucessivos de dados
Pode ser responsvel por erros e perda de sincronismo em comunicaes sncronas em alta velocidade Soluo para minimiz-lo: utilizao de buffer Armazenar os dados a medida que eles chegam e encaminh-los aplicao a uma taxa constante Exemplo de uso:VoIP

56

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Relgios de computador e eventos de temporizao
Cada computador possui seu relgio que usado pelos processos locais para medir o tempo dos eventos locais. Taxa de desvio do relgio (drift)
Diferena relativa para um relgio de referncia perfeito.

Global Positioning System GPS (preciso de 1 microssegundo)

57

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Duas variantes do modelo de interao
SD Sncronos
Necessita estabelecer limites de tempo inferior e superior para:
Execuo de cada etapa de um processo. Transmisso da mensagem
cada mensagem transmitida sobre um canal recebida dentro de um tempo limitado conhecido

Drift dos relgios


Cada processo tem um clock local cuja taxa de desvio do tempo perfeito tem um limite conhecido

Complexidade Ex.: Multimdia


Necessidade de um stream de dados ser entregue antes do seu deadline
58 Modelos de Sistemas Distribudos www.edeyson.com.br

Modelo de Interao
Duas variantes do modelo de interao
SD Sncronos
difcil chegar em limites de tempo realsticos e prover garantia aos mesmos
A falta de garantia implica que qualquer projeto baseado sobre os valores estimados no confivel

O modelo de um algoritmo como um sistema sncrono pode ser til para dar uma idia de como ele se comportar em um sistema distribudo real. Em um SD sncrono o uso de timeouts permite detectar a falha de um processo
Limite de tempo

59

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Duas variantes do modelo de interao
SD Assncronos: No sncronos
Ex.: Internet.

Qualquer soluo vlida para um SD assncrono tambm vlida para o sncrono. SDs reais so comumente assncronos
Processos compartilham processadores e canais de comunicao compartilham a rede

60

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Ordenao de eventos
Determinar se um evento ocorreu em um processo antes, depois ou simultaneamente com outro evento em outro processo. A execuo de um sistema pode ser descrita em termos da ocorrncia de eventos e de sua ordem, mesmo sem relgios precisos Ex.:
X envia uma mensagem com assunto REUNIO para Y, Z e A. Y e Z respondem com assunto Re: REUNIO. Possibilidades para A?

61

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Interao
Ordenao de eventos
Envia X 1 m1 2 Recebe Envia Z Recebe Recebe m A t1
62

Recebe 4 Envia 3 m
2

Recebe

Recebe

Tempo fsico

t2

Recebe Recebe Recebe t3


www.edeyson.com.br

Modelos de Sistemas Distribudos

Modelo de Interao
Ordenao de eventos
O relgio lgico permite deduzir a ordem que as mensagens devem ser apresentadas. Cada evento tem um nmero que corresponde a uma ordem lgica.
X envia m1 antes que Y receba m1 Y envia m2 antes que X receba m2 Y recebe m1 antes de enviar m2

63

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Falhas

64

Modelos de Sistemas Distribudos www.edeyson.com.br

Modelo de Falhas
Processos e canais de comunicao podem divergir do que considerado um comportamento correto ou desejvel. Proporciona um entendimento dos seus efeitos e conseqncias. Tipos de modelos de falhas:
Falha por omisso Falhas arbitrrias Falhas de sincronizao

65

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Falhas
Falhas por omisso Processo ou canal de comunicao no executa as aes. Falha por omisso de processo
O processo falha se outros processos podem determinar que isso ocorreu.

Falha por omisso na comunicao

processo p

processo q

send m

receive

Canal de comunicao Buffer de envio


66 Modelos de Sistemas Distribudos

Buffer de recepo
www.edeyson.com.br

Modelo de Falhas
Falhas arbitrrias
Qualquer tipo de erro pode ocorrer No processo
Omitir passos do processamento ou efetuar processamento indesejado

Na comunicao
Mensagens corrompidas Mensagens inexistentes Softwares de comunicao freqentemente detectam.

67

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Falhas
Classe da falha Afeta Descrio Outros processos podem detectar Outros processos podem no detectar Sai do buffer de envio e no chega no buffer de recepo No chega ao buffer de envio Processo no "pega" no buffer de recepo

Parada por falha Processo Colapso Omisso Omisso de envio Omisso de recepo Arbitrria Processo Canal Processo Processo

Processo ou Processo/Canal exibe Canal comportamento arbitrrio


Modelos de Sistemas Distribudos www.edeyson.com.br

68

Modelo de Falhas
Falhas de temporizao
Aplicveis aos SD sncronos.

Classe da falha Relgio Desempenho Desempenho

Afeta Processo Processo Canal

Descrio Relgio local do processo ultrapassa o limite da taxa de desvio. Processo excede o limite de tempo entre duas etapas. Transmisso da mensagem supera o limite de tempo definido.

69

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Falhas
Mascaramento de falhas
Um servio mascara uma falha ocultando-a completamente ou convertendo-a em um tipo de falha mais aceitvel. Ex.: Checksum.

Confiabilidade da comunicao de um para um


Validade: mensagens so entregues independente do tempo. Integridade: mensagens idnticas e sem duplicidade.
Medidas de segurana. Nmeros de seqncia

70

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Segurana

71

Modelos de Sistemas Distribudos www.edeyson.com.br

Modelo de Segurana
Tornar seguros os processos e os canais de comunicao, e eliminar acesso no autorizados. Proteo de objetos
Direitos de acesso Objeto invocao Cliente resultado Servidor

Principal (usurio)

Rede

Principal (servidor)

72

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Segurana
Tornando processos e suas interaes seguros
Ameaa aos processos
Processos podem no identificar emissor de mensagens (spoofing).

Ameaa aos canais de comunicao


Cpia, alterao ou injeo de mensagens no canal.
Cpia de m Invasor

m
Processo p

m
Canal de comunicao

Processo q

73

Modelos de Sistemas Distribudos

www.edeyson.com.br

Modelo de Segurana
Anulando ameaas segurana Criptografia e segredos compartilhados Autenticao
Garante a identidade de um principal

Canais seguros (Criptografia + Autenticao). Ex.:VPN e SSL


Privacidade e integridade

Principal A

Principal B

Processo p

Canal seguro

Processo q

74

Modelos de Sistemas Distribudos

www.edeyson.com.br