• Nenhum resultado encontrado

Tendo como base as observações extraídas a partir dos trabalhos apresentados neste capítulo, pode-se perceber que as infraestruturas para adaptação de fluxo existentes, em geral, têm como foco a adaptação em camadas isoladas (isto é, camada de aplicação ou transporte), com exceção de [69]. Além disso, não se observou nenhum trabalho que contemple ao mesmo tempo tanto a descrição de políticas de adaptação quanto a flexibilidade na adição de novos mecanismos de adaptação de fluxos.

Uma Infraestrutura para Transmissão de

Conteúdo Multimídia com Suporte à

Adaptação de Fluxos

O objetivo deste capítulo é apresentar a infraestrutura desenvolvida, discutindo as princi- pais características e seu funcionamento. Inicialmente, será apresentada uma visão geral a respeito das características da infraestrutura. Após isso, apresenta-se a arquitetura da solução proposta, mostrando quais são e como se relacionam os diferentes componentes da infraestrutura. Para finalizar descreve-se o funcionamento da infraestrutura como um todo, de modo a prover adaptação do fluxo transmitido.

4.1

Visão Geral da infraestrutura

A ideia básica da infraestrutura proposta é criar uma abstração entre as aplicações finais e os recursos necessários para o estabelecimento de transmissões multimídia e do processo de adaptação de fluxos, conforme ilustrado na Figura 4.1. Deste modo, almeja-se diminuir a complexidade envolvida no processo de desenvolvimento de tais aplicações.

Como ponto inicial para resolução dos problemas levantados na Seção 1.1 foram identi- ficadas as etapas que fazem parte do ciclo de desenvolvimento de uma aplicação multimídia com suporte à adaptação de fluxos. O objetivo desta tarefa é tornar claro quais são os atores envolvidos neste processo, isolando as devidas responsabilidades. Na Figura 4.2 é apresen-

Figura 4.1: Abstração de acesso aos recursos da infraestrutura de adaptação. tada a interação entre os diferentes papéis discutidos a seguir:

Figura 4.2: Interação entre os papéis.

Desenvolvimento de métodos de adaptação - Esta etapa pode ser considerada a mais básica de todo processo. A partir dela são criadas as técnicas de adaptação que serão utilizadas no processo de transmissão de fluxos multimídia. Esta etapa está intrin- secamente relacionada ao processo de desenvolvimento da tecnologia a que ela dará suporte, visto que as características da tecnologia irão definir como poderá ser pos- sível realizar adaptações. Por exemplo, considere o codificador para transmissão de áudio Speex [70]. Este codec foi desenvolvido tendo como foco transmissões de voz no contexto de VoIP. Uma das características desse codec é a possibilidade do ajuste da qualidade do áudio transmitida de acordo com a taxa de transmissão máxima esti- pulada, aumentando e diminuindo a qualidade do fluxo de modo a atender ao requisito de largura de banda utilizada. Sendo assim, a variável de ajuste da taxa de transmissão

máxima permitida passa a ser uma variável moduladora deste mecanismo de codifi- cação de transmissões de áudio, ou seja, pode-se, a partir dela, efetuar as adaptações necessárias em seu funcionamento. Um outro exemplo seria a adaptação de como os pacotes de informações serão transmitidos em nível de camada de transporte atribuindo a eles prioridades ou tempos de expiração [47].

A partir dos exemplos apresentados, pode-se concluir que, apesar dos mecanismos de adaptação possibilitarem a alteração das características dos fluxos durante a transmis- são, o controle de como este processo deve ser realizado depende de uma gerência em um nível superior, visto que tanto os recursos de transmissão quanto o propósito da transmissão podem variar. Deste modo faz-se necessária a especificação de políticas objetivando descrever como o processo de adaptação deve ser gerenciado durante a transmissão.

Um outro aspecto importante a ser mencionado é o fato de que nenhum método de adaptação de fluxo mostra-se ideal para todas as situações. Este fator é devido às próprias características das entidades a serem adaptadas. Diante disto, faz-se necessário criar mecanismos que possibilitem uma fácil extensibilidade de modo a permitir que novas formas de adaptação possam ser adicionadas rapidamente. Tal ob- jetivo foi alcançado a partir da adoção de uma abordagem baseada no conceito de plu- gins [8], onde se torna possível a adição flexível de novos componentes de adaptação à infraestrutura.

Desenvolvimento de políticas de adaptação - Partindo do pressuposto de que os mecanis- mos de adaptação foram definidos e podem ser utilizados, faz-se necessário definir como tais mecanismos serão utilizados durante uma transmissão. Normalmente tal “inteligência” é adicionada à aplicação final criando uma sobrecarga no processo de desenvolvimento. Um outro aspecto negativo desta abordagem é a falta de flexibili- dade no processo de customização da política de adaptação, tendo como consequência uma limitação na possibilidade de alteração da política de adaptação e, portanto, a disponibilidade das aplicações em diferentes ambientes.

Por exemplo, considere a seguinte situação: uma aplicação de videoconferência que deve ser utilizada em ambientes bastante heterogêneos, como uma rede Gigabit ou um

canal ADSL ou ainda realizar a transmissão em um ambiente de rede sem-fio onde as perdas são decorrentes principalmente da corrupção de dados pelo meio não-confiável de transmissão. Neste contexto, os fatores largura de banda e perda/recuperação de erros devem ser levados em consideração para definir a política de adaptação que será utilizada. Uma outra situação que poderia ser apresentada seria uma aplicação para transmissão de vídeo utilizada em diferentes propósitos, como a transmissão de um discurso ou então a transmissão de uma atividade esportiva. No primeiro caso, se a rede estiver em um alto grau de congestionamento, deveria ser dada prioridade aos pacotes de áudio de forma que o discurso possa ser entendido mesmo que a imagem do locutor não possa ser transmitida de forma compreensível. No segundo cenário, a principal mensagem transmitida é a mensagem visual, isto é a imagem do que está sendo exibido. Nesta situação os pacotes de vídeo passam a ter uma maior prioridade na transmissão. Neste exemplo, a importância de cada pacote transmitido depende da semântica da aplicação.

Com base nos exemplos apresentados anteriormente, percebe-se a necessidade de uma flexibilização na definição de políticas de adaptação visto que nenhuma política mostra-se ótima para todas as situações. Uma outra questão trabalhada foi a forma como as políticas possam ser descritas objetivando diminuir a complexidade envolvida neste processo e possibilitar que haja uma separação de responsabilidades entre quem define as políticas e quem as utiliza e a interação desta com a infraestrutura. Neste sentido, foi utilizada uma abordagem baseada em modelo declarativo.

Desenvolvimento de aplicações finais - A partir da definição de uma infraestrutura que possibilite uma fácil adição e remoção de métodos de adaptação e do estabelecimento de um modelo para descrição das políticas de adaptação, a próxima etapa é fazer uso de tais mecanismos para de fato realizar a construção da aplicação multimídia.

Esta etapa deve ser realizada por um desenvolvedor (chamado aqui de desenvolvedor- cliente para distingui-lo do desenvolvedor da infraestrutura), interessado em imple- mentar alguma aplicação multimídia. Neste sentido, ele está na posição de cliente da aplicação, acessando-a apenas via uma API de acesso. Por exemplo, para realizar o estabelecimento de uma transmissão multimídia, o desenvolvedor-cliente escolhe a

política desejada e a infraestrutura fica responsável por realizar todas as configurações necessárias.

A partir do apresentado, abstrai-se do desenvolvedor-cliente um conjunto problemas durante o desenvolvimento. Ele não precisa mais se preocupar com a maneira como a transmissão deve ser configurada para ser realizada com sucesso nem os procedimen- tos que devem ser realizados em caso de alteração das condições da rede que afetem a transmissão.