Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

telemidia.puc.rio.br
from telemidia.puc.rio.br More from this publisher
11.07.2015 Views

AplicacoesNCLjoao.ncl (2 Kbytes)imagensfoto.png (50 Kbytes)chuteira.png (40 Kbytes)videosdrible.mp4 (108 Kbytes)codigos LuaLUAgoals.lua (1 Kbyte)Figura B.3 Árvore de diretórios para um carrossel.A divisão anterior pode não ser a melhor divisão dos arquivos emmódulos. A divisão depende de quando os arquivos serão necessários, osrelacionamentos entre eles etc.Vamos agora colocar os módulos no carrossel. Como o Módulo 1contém a aplicação e ela deve ser carregada antes de tudo, para diminuir o seuretardo de acesso vamos inserir o Módulo 1 mais de uma vez no carrossel,como ilustra a Figura B.4.Módulo 1Módulo 2Módulo 1Módulo 3Figura B.4 Carrossel de objetos para o exemplo da Figura B.3.Como mencionamos, transmitir um módulo mais de uma vez em umcarrossel diminui seu tempo de acesso, mas aumenta o tamanho do carrossel eo tempo de acesso dos outros módulos. Mais ainda, como a banda passante dedifusão é constante (6 MHz no caso do Brasil), aumentar o tamanho docarrossel é diminuir a banda dos outros fluxos que irão no mesmo sinal TS(Transpor Stream), incluindo o áudio e o vídeo principal de um programa deTV. Diminuir a banda desses sinais é diminuir sua qualidade.Alternativamente, poderíamos ter optado por colocar o arquivo joão.ncl nosmódulos 1 e 2, pois nada impede que um arquivo seja transmitido mais deuma vez, em mais de um módulo. Entretanto, os mesmos cuidados devem sertomados. De fato, a otimização de um carrossel é um problema extremamentecomplexo. Não existe maneira de saber qual é o carrossel de objetos maiseficiente para todos os casos. É necessário saber a estrutura e o projeto decada aplicação específica carregada pelo carrossel e, mesmo assim, não énada fácil chegar à solução mais eficiente.456

Como já mencionamos, cada instância do carrossel de objetos érepresentada por um Service Domain, que consiste em uma identificaçãoúnica do carrossel de objetos. Todo Service Domain possui um objeto ServiceGateway, que contém referências para todos os objetos dispostos na raiz docarrossel de objetos.O Service Gateway é um objeto do carrossel de objetos cuja localizaçãoé transmitida em uma mensagem DownloadServerInitiate (DSI), queapresentamos na Seção B.2 (um carrossel de objetos será sempretransportado em um carrossel de duas camadas).O padrão DSM-CC utiliza a mesma estrutura de referências IOR(Interoperable Object Reference), definidas nas especificações CORBA parareferenciar um objeto no carrossel. No contexto do protocolo carrossel deobjetos, uma IOR é normalmente composta pelo identificador do carrossel,seguido do identificador do módulo e pelo identificador do objeto.Vamos a um exemplo um pouco mais simples que o anterior para tornarmais claro o processo. Considere a árvore de diretórios apresentada na FiguraB.5 e o carrossel de objetos gerado a partir dessa árvore, com o ServiceDomain de valor hexadecimal “1”. Nesse Service Domain, dois módulos sãogerados e identificados com valores em hexadecimal “1” e “2”. Oidentificador de cada objeto é apresentado através do campo “objectKey”. Oobjeto que representa o Service Gateway (na Figura B.5: objeto do tipo “srg”)é identificado com o valor “1” e é encapsulado no Módulo “1”. Comoconsequência, a IOR do objeto Service Gateway transmitida na mensagemDownloadServerInitiate é definida por “1,1,1” (Service Domain = 1, id domódulo = 1 e id do objeto = 1). Os objetos que representam o arquivo“weatherConditions.ncl” e o diretório “images” são identificados pelosvalores hexadecimais “2” e “3”, respectivamente, e também são encapsuladosno Módulo “1”. Já o objeto que representa o arquivo contendo o conteúdo daimagem é identificado com o valor “1”, mas encapsulado no Módulo “2”.O objeto Service Gateway possui, por sua vez, duas IORs. Pararelacionar uma IOR ao nome do objeto que a mesma referencia, bem como aotipo desse objeto (arquivo, diretório etc.), as especificações DSM-CC utilizamo conceito de binding. Assim, no exemplo, o objeto Service Gateway possuidois bindings para os dois objetos do Módulo “1” que são filhos diretos daraiz do sistema de arquivos representado pelo carrossel.457

Como já mencionamos, cada instância do carrossel de objetos érepresentada por um Service Domain, que consiste <strong>em</strong> uma identificaçãoúnica do carrossel de objetos. Todo Service Domain possui um objeto ServiceGateway, que contém referências para todos os objetos dispostos na raiz docarrossel de objetos.O Service Gateway é um objeto do carrossel de objetos cuja localizaçãoé transmitida <strong>em</strong> uma mensag<strong>em</strong> DownloadServerInitiate (DSI), queapresentamos na Seção B.2 (um carrossel de objetos será s<strong>em</strong>pretransportado <strong>em</strong> um carrossel de duas camadas).O padrão DSM-CC utiliza a mesma estrutura de referências IOR(Interoperable Object Reference), definidas nas especificações CORBA parareferenciar um objeto no carrossel. No contexto do protocolo carrossel deobjetos, uma IOR é normalmente composta pelo identificador do carrossel,seguido do identificador do módulo e pelo identificador do objeto.Vamos a um ex<strong>em</strong>plo um pouco mais simples que o anterior para tornarmais claro o processo. Considere a árvore de diretórios apresentada na FiguraB.5 e o carrossel de objetos gerado a partir dessa árvore, com o ServiceDomain de valor hexadecimal “1”. Nesse Service Domain, dois módulos sãogerados e identificados com valores <strong>em</strong> hexadecimal “1” e “2”. Oidentificador de cada objeto é apresentado através do campo “objectKey”. Oobjeto que representa o Service Gateway (na Figura B.5: objeto do tipo “srg”)é identificado com o valor “1” e é encapsulado no Módulo “1”. Comoconsequência, a IOR do objeto Service Gateway transmitida na mensag<strong>em</strong>DownloadServerInitiate é definida por “1,1,1” (Service Domain = 1, id domódulo = 1 e id do objeto = 1). Os objetos que representam o arquivo“weatherConditions.ncl” e o diretório “images” são identificados pelosvalores hexadecimais “2” e “3”, respectivamente, e também são encapsuladosno Módulo “1”. Já o objeto que representa o arquivo contendo o conteúdo daimag<strong>em</strong> é identificado com o valor “1”, mas encapsulado no Módulo “2”.O objeto Service Gateway possui, por sua vez, duas IORs. Pararelacionar uma IOR ao nome do objeto que a mesma referencia, b<strong>em</strong> como aotipo desse objeto (arquivo, diretório etc.), as especificações DSM-CC utilizamo conceito de binding. Assim, no ex<strong>em</strong>plo, o objeto Service Gateway possuidois bindings para os dois objetos do Módulo “1” que são filhos diretos daraiz do sist<strong>em</strong>a de arquivos representado pelo carrossel.457

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!