Stream-Oriented Communication
Introdução Existem formas de comunicação em que o tempo exerce um papel crucial A questão é.. Que facilidades um Middleware deve oferecer para trocar informações dependentes de tempo, tais como áudio e vídeo?
Tipos de Mídias Texto Imagem Gráfico Áudio Animação Vídeo
Representação Multimídia Texto Caracteres são convertidos para uma representação com um número fixo de bits ASCII, EBCDIC, Unicode Captura de Texto: Digitação, OCR Imagem Bloco bidimensional de pixels or pels (picture elements), sendo cada pixel representado por um RGB 565, YUV Captura de Imagens: Câmera Fotográfica, Scanner, etc. Áudio Mídia Tipicamente Analógica Representação Digital, quando necessário para integração com mídias digitais, através de digitalização do Sinal Analógico por amostragem Captura de Áudio: Microfone Vídeo Captura de Vídeo: Câmeras de Vídeo
Aplicações Multimídia Comunicação Pessoal – Voz: Telefonia, Voice-mail, Conferência de voz – Imagem: FAX – Texto : Email, IMS – Texto e Imagem: CSCW (whiteboarding) – Voz eVídeo: Videoconferência – Multimídia: Multimídia mail Aplicações Interativas – WWW, Teleshopping, Telebanking Aplicações de Lazer – Vídeo-sob-demanda, Televisão Interativa, etc
Stream de Dados Seqüência de unidades de dados Podem ser usados para dados contínuos ou discretos Para capturar aspectos de tempo, fundamentais para mídias contínuas, é feita distinção entre modos de transmissão: Assíncrono – não existe restrição de tempo Síncrono – delay fim-a-fim máximo Isócrono – delay fim-a-fim máximo e mínimo (jitter)
Stream de Dados
Sincronização de Mídias Streams podem ser: Simples – um único fluxo de dados Complexos – mais de um fluxo de dados relacionados, chamados substreams As relações entre substreams são dependentes de tempo Um stream pode ser considerado como uma conexão virtual entre fonte e destino A fonte (source) ou destino (sink) podem ser um processo, mas também podem ser dispositivos
Duas mídias perfeitamente sincronizadas Mídia mestre Mídia escravo
Mídia mestre atrasada em relação à mídia escravo
Mídia mestre adiantada em relação a mídia escravo
Mecanismos de Sincronização de Stream Mecanismos de sincronização podem ser tratados em diferentes níveis de abstração. Por exemplo, no nível de unidades de dados (Sistema Operacional)
Multicasting Stream Um dos principais problemas com multicasting stream é quando receptores têm diferentes requisitos relacionados à qualidade (QoS)
Stream e QoS Requisitos dependentes de tempo (e outros requisitos não funcionais), são geralmente conhecidos como requisitos de QoS (Quality of Service) Como especificar os requisitos de QoS? Uma das abordagens é especificação precisa do fluxo através de requisitos de banda, taxas de transmissão, delays, etc
Especificação de Fluxo
Metáfora para Especificação de Stream Um dos principais problemas desta abordagem é o nível de detalhe técnico exigido, que em geral não faz parte do vocabulário do usuário
Alocação de Recursos para Stream Uma vez que o stream de dados foi descrito, um sistema distribuído pode alocar recursos para atender aos requisitos. Recursos típicos: Banda Buffers Capacidade de processamento
Reserva de Recursos Protocolo de Reserva de Recursos – RSVP – protocolo de transporte para habilitar reserva de recursos em roteadores Senders RSVP especifica stream em termos de banda, delay, jitter, etc
Multimedia Middleware Streaming sem Middleware Streaming com Middleware
Multimídia Middleware Multimídia middleware oferece interfaces (high-level) para controle de áudio e vídeo, incluindo dispositivos como monitor, câmera, microfones