34
Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, Capítulo 2

Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Embed Size (px)

Citation preview

Page 1: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Sistemas Distribuídos

ComunicaçãoMiddleware Orientado a

Mensagens e Streams

- Parte 3 -

Instituto de Informática – UFG

Verão 2005

Baseado em: Tanenbaum, Capítulo 2

Page 2: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Middleware Orientado a Mensagens

• Para algumas categorias de aplicações, o modelo de chamada de métodos/procedimentos remotos não é

natural

• Um modelo de passagem de passagem de mensagens permite modelar melhor o padrão de

interação inerente aos componentes das aplicações

• Em geral: aplicações distribuídas com grau de acoplamento muito baixo

Page 3: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Persistência e Sincronismo na Comunicação (1)

Persistência: as mensagens são armazenadas em elementos intermediários da rede– a rede garante que mensagens não vão se perder

Transiência: a rede não armazena as mensagens– confia na disponibilidade do transmissor e/ou receptor

para que as mensagens não se percam

Sincronismo: transmissor permanece bloqueado até que o envio da mensagem se complete

Assincronismo: transmissor retoma operação normal tão logo tenha enfileirado a mensagem

Page 4: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Persistência e Sincronismo na Comunicação (2)

Organização geral de um sistema de comunicação baseado em mensagens, em que os hosts são conectados através de uma rede

2-20

Page 5: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Persistência e Sincronismo na Comunicação (3)

Comunicação persistente de cartas

Page 6: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Persistência e Sincronismo na Comunicação (4)

a) Comunicação persistente e assíncronab) Comunicação persistente e síncrona

2-22.1

Page 7: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Persistência e Sincronismo na Comunicação (5)

a) Comunicação transiente e assíncronab) Comunicação transiente e síncrona baseada na recepção

2-22.2

Page 8: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Persistência e Sincronismo na Comunicação (6)

a) Comunicação transiente e síncrona baseada na entregab) Comunicação síncrona e transiente baseada na resposta

Page 9: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Exemplo de Sistema Baseado em Mensagens Transientes

Message-Passing Interface (MPI)

Algumas das primitivas de passagem de mensagens mais intuitivas de RMI.

Check if there is an incoming message, but do not blockMPI_irecv

Receive a message; block if there are noneMPI_recv

Pass reference to outgoing message, and wait until receipt startsMPI_issend

Pass reference to outgoing message, and continueMPI_isend

Send a message and wait for replyMPI_sendrecv

Send a message and wait until receipt startsMPI_ssend

Send a message and wait until copied to local or remote bufferMPI_send

Append outgoing message to a local send bufferMPI_bsend

MeaningPrimitive

Page 10: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Sistema de Mensagens PersistentesModelos de Filas de Mensagens

Quatro combinações de comunicação fracamente acoplada utilizando filas.

2-26

Page 11: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Modelos de Filas de Mensagens (2)

Interface básica para uma fila em um sistema de filas de mensagens.

Install a handler to be called when a message is put into the specified queue.Notify

Check a specified queue for messages, and remove the first. Never block.Poll

Block until the specified queue is nonempty, and remove the first messageGet

Append a message to a specified queuePut

MeaningPrimitive

Page 12: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Arquitetura Geral de um Sistema de Filas de Mensagens (1)

O relacionamento entre endereçamento em nível de filas e endereçamento em nível de rede.

Page 13: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Arquitetura Geral de um Sistema de Filas de Mensagens (3)

A organização geral de um sistema de filas de mensagens com roteadores.

2-29

Page 14: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Message Brokers

A organização geral de um message broker em um sistema de filas de mensagens.

2-30

Gateway de mensagens entre aplicações em um sistema heterogêneo: conversão de formato das mensagens entre origem e destino

Page 15: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Middleware Baseado em Streams

Page 16: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Middleware Baseado em Streams

• Provê suporte para comunicação entre os componentes das aplicações com base em fluxos de

dados contínuos

• Uma seqüência indefinidamente longa de unidades de dados é transmitida como parte de uma única

interação

• Preserva a relação temporal entre as unidades de dados transmitidas

• Modelo natural para a comunicação de dados que representam mídias contínuas (e.g., áudio e vídeo)

Page 17: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Um Sistema de Multimídia Distribuída

Wide a rea ga tew ay Videoserve r

D igita lTV/rad iose rve r

V ideo cam eraand m ike

Loca l ne tw ork Loca l ne tw ork

Page 18: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Tipos de Streams

Streams contínuas: dependência temporal entre os itens de dados– a aplicação falha se essa dependência não for respeitada– aplicação: comunicação de mídias contínuas

Streams discretas: cada item de dados pode ser transmitido independentemente dos demais– temporização da transmissão não é importante para as

aplicações– aplicação: comunicação de mídias discretas– Ex.: streams TCP

Page 19: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Modos de Transmissão de Streams

Transmissão Assíncrona: itens de dados são transmitidos em seqüência, mas sem restrições quanto à sua temporização

Transmissão Síncrona: há um limite máximo para o atraso fim-a-fim de cada item de dados da stream, mas os itens podem ser transferidos mais rapidamente

Transmissão Isócrona: há um limite máximo e um limite mínimo para o atraso fim-a-fim; a variação do atraso é conhecida como jitter

Page 20: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Streams Simples e Compostas

Streams simples: um único fluxo de dados– um fluxo de áudio mono– um fluxo de vídeo (uma seqüência de quadros

serializados)

Streams compostas: vários fluxos diferentes combinados– um fluxo de áudio estéreo (i.e., dois fluxos de áudio)– um fluxo de vídeo (filme) e um fluxo de áudio

representando a trilha sonora

Sincronização entre streams é um problema importante

Page 21: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Uma Streams de Dados Simples

Configurando uma stream entre dois processos através da rede.

(áudio armazenado, áudio sob demanda)

Page 22: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Streams de Dados em Tempo Real

Configurando uma stream diretamente entre dois dispositivos.

2-35.2

Page 23: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Infra-estrutura Típica dos Componentes para uma Aplicação Multimída

M icroph on es

Cam era

S creen

Win dow system

CodecD

BM ixer

PC/workstation PC/workstation

CVideostore

Networkcon n ection s

K

L

M

: m u ltim edia stream

CodecA G

Codec

H

Win dow system

Wh ite boxes represen t m edia processin g com pon en ts, m an y of wh ich are im plem en ted in software, in clu din g:codec: codin g/decodin g fi l ter

m ixer: sou n d-m ix in g com pon en t

Video fi le system

Caixas brancas representam componentes de processamento de mídia, muitos dos quais são implementados em software, incluindo: codecs (filtros de

codificação/decodificação) e mixers (componentes de mixagem de áudio)

Ir para o slide de especificação de QoS

Page 24: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

QoS - Quality of Service

Qualidade de Serviço

Características que o Sistema Distribuído e a rede devem prover para garantir (por exemplo) que a relação temporal entre os itens de dados de uma

stream seja preservada

Algumas métricas comuns de QoS:• limites de tempo e atraso

• volume de dados transferidos• confiabilidade

Page 25: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Especificação de QoS

A especificação de um fluxo (Partridge, 1992).

•Loss sensitivity (bytes)•Loss interval (sec)•Burst loss sensitivity (data units)•Minimum delay noticed (sec)•Maximum delay variation (sec)•Quality of guarantee

•maximum data unit size (bytes)•Token bucket rate (bytes/sec)•Toke bucket size (bytes)•Maximum transmission rate (bytes/sec)

Service RequiredCharacteristics of the Input

Page 26: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

RFC 1363 – Especificação de Fluxo

Protocol version

Maximum transmission unit

Token bucket rate

Token bucket size

Maximum transmission rate

Minimum delay noticed

Maximum delay variation

Loss sensitivity

Burst loss sensitivity

Loss interval

Quality of guarantee

Bandwidth:

Delay:

Loss:

(Partridge, 1992).

Page 27: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Características de Streams Multimídia Típicas

Data rate(approximate)

Sample or frame frequency size

Telephone speech 64 kbps 8 bits 8000/secCD-quality sound 1.4 Mbps 16 bits 44,000/secStandard TV video(uncompressed)

120 Mbps up to 640 x 480pixels x 16 bits

24/sec

Standard TV video (MPEG-1 compressed)

1.5 Mbps variable 24/sec

HDTV video(uncompressed)

1000–3000 Mbps up to 1920 x 1080pixels x 24 bits

24–60/sec

HDTV video(MPEG-2 compressed)

10–30 Mbps variable 24–60/sec

Page 28: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Especificação de QoS para os Componentes da Aplicação Mostrada

Component Bandwidth Latency Loss rate Resources required

Camera Out: 10 frames/sec, raw video640x480x16 bits

Zero

A Codec In:

Out:

10 frames/sec

MPEG-1 stream

Interactive Low 10 ms CPU each 100 ms;

10 Mbytes RAM

B Mixer In:

Out:

2 44 kbps audio

1 44 kbps audio

Interactive Very low 1 ms CPU each 100 ms;

1 Mbytes RAM

H Windowsystem

In:

Out:

various

50 frame/sec

Interactive Low 5 ms CPU each 100 ms;

5 Mbytes RAM

K Networkconnection

In/Out: MPEG-1 stream1.5 Mbps

Interactive Low 1.5 Mbps, low-lossstream protocol

L Networkconnection

In/Out: Audio 44 kbps Interactive Very low 44 kbps, very low-lossstream protocol

Voltar ao slide da Aplicação

Page 29: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

A Tarefa do Gerente de QoSComponentes da Aplicação especificam seus requisi-

tos de QoS para o Gerente de QoS

Gerente de QoS avalia os novos requisitos em relação aosrecursos disponíveis.

Os recursos disponíveis são suficientes?

Reserva os recursos requisitados

Permite que a aplicação prossiga

A aplicação executa com os recursossegundo um contrato

Negocia uma provisão de recursos reduzida coma aplicação.

Chegou-se a um acordo?

Não permite que a aplicação prossiga

Aplicação notifica ao Gerente deQoS um aumento em seus requisitos

de recursos

Especificação de Fluxo

Sim Não

Não

Sim

Contrato de Recursos

Controle deAdmissão

Negociaçãode QoS

Page 30: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Garantia de QoS com Modelamento de Tráfego

Princípio básico de algoritmos de modelamento de tráfego do tipo

“token bucket”.

Page 31: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Configuração de uma Stream com suporte a QoS

A organização básica de RSVP para reserva de recursos em um sistema distribuído.

Page 32: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Filtragem de QoS

Um exemplo de multicast de uma stream para vários receptores.

Page 33: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Mecanismos de Sincronização (1)

O princípio da sincronização explícita entre streams.

Page 34: Sistemas Distribuídos Comunicação Middleware Orientado a Mensagens e Streams - Parte 3 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum,

Mecanismos de Sincronização (2)

O princípio da sincronização segundo o suporte provido pelas interfaces de alto nível do middleware.

2-41