• Aucun résultat trouvé

A arquitetura proposta pode ser dividida logicamente em quatro camadas, de acordo com as funções de cada componente e também pelos fluxos de dados transmitidos entre eles. A Fi- gura 2.2 ilustra essa organização, bem como os componentes e as estruturas de comunicação existentes. A seguir, os detalhes e objetivos de cada camada são descritos.

Primeira Camada

Na primeira camada, estão localizados os provedores de fluxo, também denominados SPs (do Inglês, stream providers). Cada SP pode ser comparado a uma emissora de um canal da televi- são convencional. Além da produção de conteúdo televisivo, um SP pode gerar fluxos somente de áudio, assim como ocorre nas rádios on-line. Adicionalmente, um determinado conteúdo pode estar pré-armazenado, ou seja, não ser gerado ao vivo. O objetivo desta camada é oferecer suporte à geração de conteúdo televisivo em múltiplos canais, o que diferencia a arquitetura proposta dos sistemas peer-to-peer de fluxo de mídia, que concentram esforços no meio de transmissão para a entrega de um único canal.

Cada fluxo produzido por um SP é codificado através da codificação em múltiplos descri- tores em camadas, gerando n descritores distintos para aquele canal. Enquanto o número de descritores existentes para um determinado canal pode variar, a banda deles, após codificados, é a mesma. Desse modo, um canal de alta qualidade apresenta um número maior de descritores do que um canal de baixa qualidade. Essa característica auxilia a arquitetura proposta a se ade- quar à uma das propriedades da topologia baseada em múltiplas árvores de distribuição, que é a taxa de transmissão ser constante em cada uma das árvores existentes (Subseção 2.1.1).

2.3. Proposta de uma Nova Arquitetura 29

Segunda Camada

Os SPs ficam conectados a servidores dedicados, também denominados DSNs (do Inglês, dedi- cated super nodes); estes componentes, presentes na segunda camada da arquitetura proposta, são responsáveis pela disseminação global dos fluxos gerados. Pode-se comparar o conjunto de DSNs ao meio físico pelo qual as ondas de rádio e televisão são propagadas na televisão conven- cional, incluindo as transmissões globais via satélite. O objetivo desta camada é disponibilizar, em cada DSN, todos os descritores de todos os canais existentes; além disso, ela é responsável por prover a infraestrutura dedicada necessária para se compensar o deficit de recursos causado pelos clientes menos capacitados; por fim, ela também coordena a admissão de novos usuários no sistema (a ser explicado na Subseção 2.3.3).

A principal dificuldade desta camada é propagar os fluxos existentes por todos os DSNs. Para diminuir o número de saltos necessários para a distribuição dos fluxos, um cenário ideal seria provisionar conexões diretas entre todos os DSNs. Utilizando-se grafos para representar a arquitetura, com cada DSN sendo um vértice e cada conexão entre dois DSNs uma aresta, ter-se-ia a formação de um grafo completo K. Isso significa que cada DSN deveria apresentar uma banda de saída equivalente a, pelo menos, o conteúdo produzido por todos os SPs que estão conectados a ele vezes o número de DSNs restantes no sistema. De forma análoga, cada DSN deveria apresentar uma banda de entrada equivalente a, pelo menos, o conteúdo total produzido por todos os SPs do sistema. Esse cenário, no entanto, somente é viável com um número reduzido de DSNs e de canais existentes.

Para ilustrar, seja n1 o número de descritores produzidos para o Canal 1, n2 o número de descritores produzidos para o Canal 2, e assim sucessivamente, até o I-ésimo canal. Seja N = ∑Ii=1ni o conjunto de todos os descritores existentes no sistema. Seja k a banda única

dos descritores, em Kbps; D o número total de DSNs no sistema; DSN.SPs o conjunto de SPs conectados a um determinado DSN; e DSN.Bout e DSN.Bin as bandas de saída e de entrada, respectivamente, daquele mesmo DSN (considerando a rede que conecta os DSNs entre si, bem como com seus respectivos SPs). Tem-se então que:

DSN.Bout = (

i∈DSN.SPs

ni) ∗ k ∗ (D − 1) Kbps (2.1)

e

DSN.Bin = (N ∗ k) Kbps (2.2)

Alternativamente, em um cenário com muitos DSNs ou muitos canais existentes, a arquite- tura proposta poderia empregar multicast para a propagação dos fluxos nesta camada. Caso a funcionalidade de multicast IP não esteja disponível entre os DSNs, então uma solução baseada em multicast na camada de aplicação pode ser empregada. Essa abordagem, no entanto, acar-

reta em um aumento do número de saltos necessários para que o conteúdo chegue até o usuário final, prejudicando as latências de reprodução que a arquitetura proposta busca minimizar.

Terceira Camada

Os componentes da terceira e da quarta camada são formados pelos próprios usuários partici- pantes, que variam de papel dinamicamente de acordo com a carga do sistema. Esses compo- nentes podem ser comparados a aparelhos receptores da televisão convencional, nos quais se seleciona uma frequência de transmissão e, com isso, se tem a reprodução de um determinado canal ou estação.

Na terceira camada, encontram-se os servidores temporários, também denominados TSNs (do Inglês, temporary super nodes). Estes componentes representam os clientes melhor capaci- tados em termos de recursos que estão dispostos a cooperar ostensivamente com o sistema. O objetivo desta camada é reunir múltiplos servidores temporários que, juntamente com os servi- dores dedicados da segunda camada, dividirão a tarefa de distribuição de conteúdo entre todos os participantes; além disso, os TSNs dividem entre si a sobrecarga de gerenciamento das múl- tiplas árvores de distribuição, viabilizando a adoção desta topologia pela arquitetura proposta.

Enquanto cada DSN tem disponível, localmente, todos os descritores de todos os canais, um TSN recebe somente os descritores do canal servido e do canal assistido. Adicionalmente, um TSN recebe um subconjunto de m descritores iniciais de cada um dos demais canais, para que sejam implementados os esquemas de troca de canais descritos no Capítulo 4.

Sejam s e a os canais servido e assistido, respectivamente, por um determinado TSN (a Figura 2.2 ilustra um cenário de um TSN com s = 4). Seja I o número total de canais existentes e M = (I − 2) ∗ m o número de todos os m descritores iniciais de cada canal que não seja s e nem a. Sejam T SN.Bin e T SN.Bout as bandas de entrada e de saída, respectivamente, requeridas daquele mesmo TSN (considerando a rede que conecta os TSNs aos DSNs e aos demais usuários). Tem-se então que:

T SN.Bin = (ns + na + M) ∗ k Kbps (2.3) A banda de saída requerida de cada TSN para fins de cooperação depende do quanto se quer amplificar a disponibilidade de recursos no sistema. Seja α um fator de amplitude que represente essa característica. Logo:

T SN.Bout = α ∗ T SN.Bin (2.4) Se α = 1, então os recursos de banda passante para admissão no sistema, determinados inicialmente pelas capacidades de admissão dos DSNs, são mantidos; se α = 2, então tais recursos são dobrados; e assim por diante. Dada a questão levantada na Subseção 2.2.3, nota-se a necessidade de se ter, pelo menos, α > 1.

2.3. Proposta de uma Nova Arquitetura 31

Quarta Camada

Na quarta camada, estão localizados os nós regulares, também denominados RNs (do Inglês, regular nodes). Esses componentes representam clientes dentro das seguintes possibilidades:

• Aqueles com capacidade de banda passante inferior;

• Aqueles que não estão dispostos a cooperar ostensivamente com o sistema (além do es- tritamente necessário);

• Aqueles bem capacitados e dispostos a cooperar, mas que não foram selecionados pelo sistema ainda (por não haver demanda).

O objetivo desta camada é reunir todos os participantes que não estejam atuando como ser- vidores temporários, mas que estejam efetuando o repasse de descritores nas diferentes árvores de distribuição do sistema. Como esses clientes recebem o mesmo tratamento nas operações de admissão, tratamento de falhas e mecanismo de incentivo, eles são posicionados logicamente na mesma camada.

Dependendo da seleção de canal de um RN, ele é admitido por um certo TSN que esteja servindo aquele canal. Os RNs são admitidos pelos TSNs de maneira similar ao que ocorre nos sistemas CoopNet [123, 125] e SplitStream [23]. Eles são admitidos como nós interiores em apenas uma das árvores existentes, sendo admitidos como nós folhas nas demais. Com isso, consegue-se diversificar o interior das árvores e, consequentemente, aumentar a tolerância a falhas do sistema. O que diferencia a terceira e quarta camadas da arquitetura proposta dos sistemas CoopNet e SplitStream é a existência de dois conjuntos de árvores de distribuição: um deles é utilizado para a transmissão dos descritores do canal servido, enquanto que o outro é utilizado para a transmissão dos descritores iniciais dos demais canais, possibilitando, assim, o esquema de troca de canais proposto.

Com relação à heterogeneidade dos clientes, cada RN pode receber somente um subcon- junto dos descritores do canal assistido, ou seja, não estar admitido em todas as árvores de distribuição do primeiro conjunto de árvores. O mesmo ocorre com os descritores de nave- gação, transmitidos pelo segundo conjunto de árvores, ou seja, o cliente não precisa receber todos os canais distintos simultaneamente. Enquanto o primeiro caso resulta em uma qualidade de fluxo inferior, o segundo reduz as chances daquele cliente ter uma troca rápida de canais quando necessário.