• Nenhum resultado encontrado

Suporte a Facilidades de Qualidade de Serviço na Plataforma CCM-tel

4.3 A Plataforma CCM-tel

4.3.4 Suporte a Facilidades de Qualidade de Serviço na Plataforma CCM-tel

O suporte a facilidades de qualidade de serviço (QoS) proporcionadas pela plataforma CCM-tel garante que os fluxos de mídia contínua tenham um tratamento preferencial em termos de alocação de recursos.

Por ser um requisito não-funcional, QoS deve ser suportada pelo contêiner. Este suporte, na plataforma CCM-tel, demanda extensões na infra-estrutura do contêiner, de forma que este seja ca- paz de executar funções de gerência de recursos de QoS em diferentes níveis. Conforme descrito na Seção 3.3.3, esta gerência de QoS (especificação, negociação, monitoramento, controle e renegoci- ação dos níveis de qualidade de serviço) aplica-se desde o nível da aplicação (hardware, software, sistema operacional, plataforma de middleware) até o nível de infra-estrutura de rede (protocolos de rede, garantia de parâmetros de tráfego em arquiteturas de rede para provimento de QoS - DiffServ ou IntServ, etc.).

A plataforma CCM-tel gera a infra-estrutura necessária para que o contêiner forneça o suporte e facilidades para uma aplicação implementar a sua própria gerência de QoS em comunicações multi- mídia distribuídas. Neste suporte QoS é tratada nos seguintes níveis:

1. especificação, monitoramento e controle de QoS no nível da aplicação;

2. QoS no serviço A/VStreams;

3. reserva de recursos no nível de rede.

Especificação, Monitoramento e Controle de QoS no Nível da Aplicação

A qualidade de serviço desejada para os fluxos de mídia contínua é expressa inicialmente no nível da aplicação. A aplicação especifica no descritor de distribuição CCM-tel (marcação XML

QoS), os valores dos parâmetros de QoS específicos para cada tipo de mídia (áudio ou vídeo) a

ser utilizada. Estes atributos são necessários para a configuração inicial do contêiner durante a sua instalação e valem para todas as portas de fluxo de mídia declaradas nos componentes que executam neste contêiner. No exemplo do descritor de distribuição especificado em XML, apresentado na Seção 4.2.2, são declarados cinco parâmetros de qualidade de serviço para vídeo e quatro parâmetros de qualidade de serviço para áudio.

O mecanismo para o monitoramento e controle de QoS é provido pela aplicação. Para esta, CCM- tel não provê um mecanismo interno, mas sim facilidades para a implementação de tal mecanismo. Esta decisão deve-se ao fato de que estes mecanismos são altamente dependentes da aplicação e do ambiente de rede no qual a aplicação executa. Por exemplo, uma aplicação pode deixar a cargo do usuário a escolha de certos parâmetros de QoS, enquanto outra pode selecionar os mesmos parâmetros com base no desempenho da rede.

O monitoramento e controle de QoS consiste em monitorar os valores dos parâmetros de QoS no nível de rede, detectar violação de limites estabelecidos para estes parâmetros e, se for o caso, realizar ações de controle visando corrigir discrepâncias. Por exemplo, a taxa de bits em uma porta apresentadora de vídeo pode ser monitorada e, caso esta taxa exceda a taxa reservada, pode-se efetuar uma diminuição da qualidade de vídeo na porta transmissora (aumentando-se a taxa de compressão ou diminuindo-se a resolução espacial).

A plataforma CCM-tel também disponibiliza duas facilidades adicionais: um conjunto de pro- priedades para o monitoramento e outro para o controle de QoS. Estas propriedades são descritas a seguir.

Propriedades Para Monitoramento de QoS

Ao especificar um componente com portas produtora e apresentadora de fluxo contínuo, o pro- jetista da aplicação pode definir um elemento de configuração (conjunto de propriedades) com o fim específico de monitoramento de QoS para estas portas. Este elemento de configuração deve possuir o mesmo nome da porta com o sufixo Monitoring. Cinco propriedades são definidas neste elemento de configuração:

• taxa de bits - propriedade BitRate;

• taxa de pacotes - propriedade PacketRate;

• jitter - propriedade RtcpJitter;

• fração de bytes perdidos - propriedade RtcpFractionLost.

Com base nos valores obtidos do gerente de sessão do serviço A/V Streams (Session Manager disponibilizado pelo JMF), a plataforma provê informações recentes sobre QoS e atualiza os valores das propriedades citadas acima a cada cinco segundos (este tempo é ajustável). As duas primeiras propriedades são obtidas localmente e correspondem a taxa de bits ou pacotes gerados pela porta produtora ou consumidos pela porta apresentadora de fluxos de mídia. As três propriedades restantes são obtidas de relatórios enviados por meio do protocolo RTCP (Real Time Control Protocol). Estes relatórios são trocados entre produtores e apresentadores de mídia que empregam o protocolo RTP (Real Time Protocol).

Propriedades Para Controle de QoS

Os parâmetros de instalação presentes no descritor de distribuição são armazenados como pro- priedades de configuração do contêiner. Por meio destas propriedades e após a instalação do con- têiner, os parâmetros de instalação iniciais podem ser inspecionados e alterados. Dentre estes parâ- metros, os parâmetros de QoS são de especial interesse. Uma aplicação pode obter a referência do elemento de configuração do contêiner e alterar os parâmetros das propriedades de QoS; por exemplo, qualidade de vídeo ou taxa de amostragem de áudio. A alteração das propriedades de configuração do contêiner afeta as conexões futuras de portas de fluxo contínuo para os componentes abrigados neste contêiner. Para as conexões já estabelecidas, pode-se atualizar os seus parâmetros de QoS para os novos parâmetros procedendo-se à parada e ao reinício do fluxo de mídia pelos métodos de controle de fluxos multimídia stop e start, expostos nas portas de fluxo contínuo.

QoS no Serviço A/V Streams

Na implementação do serviço A/V Streams, as operações de estabelecimento de fluxo, seja para conexão ponto-ponto (um transmissor e um apresentador) ou para conexão ponto-multiponto (um difusor e vários apresentadores), possuem parâmetros de qualidade de serviço. QoS é negociada entre as portas produtoras e apresentadoras de fluxo contínuo no momento da interconexão das portas.

A plataforma CCM-tel disponibiliza cinco parâmetros de qualidade de serviço para vídeo:

• taxa de amostragem - quadros/s;

• formato de vídeo - resolução (número de cores por pixel);

• tamanho da janela de apresentação (largura e altura em pixels);

• padrão de codificação de mídia (RGB ou YUV).

Em adição, CCM-tel disponibiliza quatro parâmetros de qualidade de serviço para áudio:

• taxa de amostragem (segmentos/s);

• tamanho do segmento (bits);

• número de canais (1 ou 2);

• padrão de codificação (uLaw, Linear ou GSM).

Reserva de Recursos no Nível de Rede

A plataforma CCM-tel utiliza Interceptadores Portáveis CORBA para incorporar as novas fun- cionalidades de suporte para a reserva de recursos de QoS para fluxos contínuos à infra-estrutura do contêiner. Como descrito anteriormente, estes interceptadores podem interceptar métodos direciona- dos a componentes, agentes móveis ou até mesmo a serviços e facilidades CORBA.

Neste trabalho, utilizamos uma implementação de um interceptador de QoS (IQoS) para tratar, de forma totalmente transparente para o desenvolvedor, toda a complexidade e os diversos níveis de detalhes de comunicação e de negociação de QoS envolvidos, do nível da aplicação ao nível da rede. Este interceptador é instalado no contêiner CCM-tel em tempo de configuração e interage com um Bandwidth Broker em uma rede de serviços diferenciados (DiffServ). Uma primeira versão do

Bandwidth Broker utilizado foi implementada em Java, por um dos membros da equipe [34].

O interceptador IQoS é expresso pela aplicação no descritor de distribuição, por meio da mar- cação XML PortableInterceptor, onde o atributo class fornece o nome da classe que implementa o interceptador. Em adição, a aplicação também declara, por meio da marcação XML SLA, o atributo correspondente ao identificador de contrato DiffServ utilizado na interação com o Bandwidth Broker. A plataforma CCM-tel gera e disponibiliza toda a infra-estrutura necessária para que o interceptador seja instalado no ORB do contêiner.

O interceptador IQoS proporcionado pela plataforma tem a função de interceptar algumas chamadas de métodos do serviço A/V Streams no seu retorno, dando um tratamento adequado a cada uma delas. No nosso caso, este tratamento consiste em contactar o Bandwidth Broker, responsável pela gerência da alocação de banda no domínio ao qual pertence. IQoS obtém os parâmetros de QoS no retorno da chamada e os mapeia para parâmetros no nível de rede (no caso, banda necessária ao fluxo). Neste momento, o interceptador implementado trata de toda a negociação de reserva de recursos de QoS. O mapeamento realizado pelo interceptador IQoS é simples e baseado em tabelas de mapeamento obtidas via medidas do tráfego gerado por diversas combinações de parâmetros de QoS7.

De posse do identificador SLA, IQoS contacta o Bandwidth Broker DiffServ e solicita a reserva da banda fornecendo o destino do fluxo (o endereço IP do componente consumidor). Este esquema de suporte à reserva de recursos de QoS baseado em interceptação é bem flexível, pelas seguintes razões:

• a classe de serviço é determinada pelo Bandwidth Broker, de acordo com o parâmetro de ins- talação SLA, em função dos recursos disponíveis, da classe do usuário e do ambiente de rede onde o contêiner executa;

• caso os recursos não tenham sido alocados ao contêiner ou nenhum Bandwidth Broker esteja presente na rede, os fluxos de mídia terão tratamento do tipo “melhor esforço”;

• caso a aplicação deseje alterar a qualidade de um fluxo, por exemplo pela ação de um monitor de QoS, o serviço A/V Streams provê operações para alterar os níveis de QoS de fluxos já estabelecidos. Estas operações são igualmente interceptadas pelo IQoS que irá interagir com o

Bandwidth Broker para renegociar a reserva já estabelecida.

Cenário de Uso para Estabelecimento de Fluxos de Mídia com QoS

A Figura 4.21 ilustra um cenário possível das facilidades oferecidas para QoS representando uma visão espacial da interação entre um produtor e um apresentador de mídia.

A Figura 4.22 expõe o comportamento e os passos envolvidos no processo de estabelecimento de fluxos de mídia contínua com QoS. O diagrama de seqüência, nesta figura, provê uma visão temporal das interações representadas na Figura 4.21. Os passos no diagrama correspondem aos números da figura que provê a visão espacial. Apresentamos este cenário com a intenção de ilustrar o acesso ao serviço A/V Streams no caso de um componente especificado para utilizar a forma de interação ponto- ponto. Para o caso de uma especificação para a utilização da forma de interação ponto-multiponto, o modelo fornece uma seqüência de passos similar. Em adição, enfatizamos também que todos os passos ilustrados por esta seqüência estão incorporados no código gerado pela plataforma CCM- tel, obtido a partir da especificação das portas de fluxo contínuo (transmissor e apresentador) dos componentes envolvidos e dos parâmetros correspondentes a uma determinada qualidade de serviço (QoS) estabelecidos em XML no descritor de distribuição.

O componente do lado do produtor foi instalado, instanciado e configurado e aguarda requisições do componente do lado do consumidor da aplicação. Os passos subseqüentes são:

1. a aplicação requisita à classe que implementa a porta transmissora de fluxo uma conexão para iniciar um fluxo de mídia contínua entre um componente produtor e um consumidor. Para isto, ela fornece a referência da porta apresentadora ao método connect da porta transmissora;

QoS Bandwidth Broker 3 QoS’ 4 ORB QoS 2 Sinalização para os Roteadores 1 QoS’’ 6 5 7 8 Aplicação Lógica da AVStreams IQoS

Fig. 4.21: Suporte a facilidades de QoS na plataforma CCM-tel.

QoS de Fluxo (QoS’) Porta Apresentadora } Negociação de QoS no Nível do Serviço { Negociação de QoS no Nível de Rede request(QoS’’)

Lado Produtor Lado Consumidor

QoS’ Porta Transmissora connect Broker Bandwidth OK OK disconnect disconnect disconnect disconnect de Qos Interceptador Serviço AVStreams de Fluxo (QoS) connect(QoS) QoS’ drop(cookie) cookie go_lo_listen(QoS)

2. a porta transmissora requisita ao serviço A/V Streams uma conexão entre o produtor e o con- sumidor com o nível de QoS estabelecido pelo produtor, conforme especificado no descritor de distribuição do contêiner que hospeda o componente produtor;

3. o serviço A/V Streams solicita ao consumidor (porta apresentadora de fluxo) um determinado

port para o envio de mídia, fornecendo também a qualidade de serviço (QoS) que o produtor

pode fornecer; por exemplo, 30 quadros por segundo, 24 bits, JPEG e resolução de 320x240.

4. o consumidor verifica a qualidade (QoS) e pode retornar uma determinada qualidade de serviço QoS’ menor ou no máximo igual à QoS fornecida pelo produtor, por exemplo 15 quadros/seg, 24 bits, JPEG, 320x240. Esta negociação ainda está localizada no nível do serviço A/V Streams;

5. o interceptador de QoS intercepta o retorno da requisição fornecida pelo consumidor. Os parâmetros de QoS de alto nível (especificados pelo produtor e consumidor) são traduzidos para parâmetros de rede (QoS”), notadamente banda. Por exemplo, 70000bps. Em seguida, o interceptador interage com o Bandwidth Broker requisitando QoS”. Este verifica se a requisição pode ser atendida pela rede (autenticação, disponibilidade de recursos, etc.)

6. o Bandwidth Broker retorna um identificador (cookie) para esta requisição;

7. o interceptador de QoS armazena este cookie e retorna;

8. o processamento das operações (itens 3, 2 e 1) se completa.

Analogamente, quando a desconexão das portas transmissora e apresentadora de fluxo ocorre, o interceptador de QoS desfaz a reserva junto ao Bandwidth Broker.