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

programas não-lineares ao vivo pela emissora de TV. Em muitos programas,a decisão de quais objetos de mídia comporão o serviço pode ser decidida aovivo. Retornando ao nosso exemplo do jogo de futebol, suponha que nomomento em que um jogador marcar um gol será exibida a estatística dos golsem toda a sua carreira. Ora, a princípio não se sabe quem vai marcar o golnem se vai haver gol. A decisão de qual objeto de mídia com a estatística serátransmitido e quando só pode ser tomada após a ocorrência do gol.Isso nos leva a um quarto requisito que deve ser oferecido por ummiddleware: suporte à edição ao vivo (em tempo de exibição).Comentamos anteriormente que o vídeo principal é a fonte maisimportante de sincronismo, incluindo a interação do usuário. Diferentementedas aplicações usuais de navegação na Web, que são usualmente baseadas emtexto, as aplicações de TV são usualmente baseadas no conteúdo do vídeo(programa de TV) principal. Embutir informação de navegação em vídeo éproblemático, quando não impossível. Assim, permitir a definição derelacionamentos entre objetos de mídia semembutir” tais relacionamentosnos conteúdos é um requisito importante.Isso nos traz a um quinto requisito: suporte à definição derelacionamentos de sincronismo espacial e temporal separado da definição doconteúdo dos objetos de mídia relacionados. Na literatura isso é conhecidocomo definição baseada na estrutura (structure-based), em contraste com adefinição embutida no conteúdo dos objetos de mídia, conhecida comobaseada no conteúdo de mídia (media-based).Em resumo, um middleware deve oferecer um bom suporte para:o sincronismo de uma forma geral e, como caso particular, ainteração do usuário;a definição de relacionamentos de sincronismo espacial e temporalseparado da definição do conteúdo dos objetos de mídia relacionados;a adaptação do conteúdo e da forma como o conteúdo é exibido;o uso de múltiplos dispositivos de exibição;a edição ao vivo (em tempo de exibição).No caso do Brasil, a TV pode representar um grande veículocomplementar para inclusão digital, permitindo às classes menosprivilegiadas não só o acesso à informação, mas também a geração(produção) de informação (conteúdo). Assim, acresce aos requisitos de ummiddleware o bom suporte a aplicações ditas cidadãs, como as voltadas paraas áreas de saúde, educação, cultura etc.28

1.3.2 Ambientes de ProgramaçãoAs aplicações de TV digital vão desde aquelas em que a aplicaçãotransmitida não tem nenhuma relação semântica com o programa principal emexibição (como, por exemplo, a exibição de mensagens de notícias urgentesdurante a exibição de um programa de TV) até os programas não-lineares(onde todos os objetos de mídia são sincronizados entre si, incluindo o áudioprincipal e o vídeo principal), passando pelas aplicações com vários objetosde mídia relacionados entre si e que só fazem sentido dentro do contexto doprograma sendo assistido, mas não tendo nenhum relacionamento temporalcom o áudio principal e o vídeo principal.Aplicações são usualmente desenvolvidas usando dois paradigmas deprogramação distintos: o declarativo e o não-declarativo.Linguagens de programação declarativas (linguagens que seguem oparadigma declarativo) são linguagens de mais alto nível de abstração, muitasvezes ligadas a um domínio ou objetivo específico. Nas linguagensdeclarativas, o programador fornece apenas o conjunto das tarefas a seremrealizadas, não estando preocupado com os detalhes de como o executor dalinguagem (interpretador, compilador ou a própria máquina real ou virtual deexecução) realmente implementará essas tarefas. Linguagens declarativasresultam em uma declaração do resultado desejado, em vez da suadecomposição em uma implementação algorítmica e, portanto, normalmentenão necessitam de tantas linhas de código para definir uma certa tarefa e sãomenos sujeitas a erros de programação. Entre as linguagens declarativas maiscomuns estão a NCL (Nested Context Language) [ABNT NBR 15606-2,2011] [ITU-T H.761, 2011], a SMIL [W3C REC-SMIL2-20051213, 2008],a SVG [W3C REC-SVG11-20110816, 2011] e a XHTML [W3C RECxhtml1-20020801,2002].Numa programação não-declarativa, devemos informar cada passo a serexecutado. Pode-se afirmar que, em uma especificação seguindo o paradigmanão-declarativo, o programador possui maior poder sobre o código, sendoobrigado a estabelecer todo o fluxo de controle e execução de seu programa.Entretanto, para isso, ele deve ser qualificado e conhecer bem os recursos deimplementação. Linguagens não-declarativas podem seguir diferentesmodelos. Temos, assim, as linguagens baseadas em módulos, orientadas aobjetos etc. Entre as linguagens não-declarativas mais comuns no domínio daTV digital estão C, Java e ECMAScript.O universo das aplicações de um sistema de TV digital pode serparticionado em um conjunto de aplicações declarativas e um conjunto deaplicações não-declarativas. Uma aplicação declarativa é aquela em que otipo do conteúdo de sua “entidade inicial” é declarativo. Por outro lado, umaaplicação não-declarativa é aquela cujo tipo do conteúdo de sua “entidade29

1.3.2 Ambientes de ProgramaçãoAs aplicações de TV digital vão desde aquelas <strong>em</strong> que a aplicaçãotransmitida não t<strong>em</strong> nenhuma relação s<strong>em</strong>ântica com o programa principal <strong>em</strong>exibição (como, por ex<strong>em</strong>plo, a exibição de mensagens de notícias urgentesdurante a exibição de um programa de TV) até os programas não-lineares(onde todos os objetos de mídia são sincronizados entre si, incluindo o áudioprincipal e o vídeo principal), passando pelas aplicações com vários objetosde mídia relacionados entre si e que só faz<strong>em</strong> sentido dentro do contexto doprograma sendo assistido, mas não tendo nenhum relacionamento t<strong>em</strong>poralcom o áudio principal e o vídeo principal.Aplicações são usualmente desenvolvidas usando dois paradigmas deprogramação distintos: o declarativo e o não-declarativo.Linguagens de programação declarativas (linguagens que segu<strong>em</strong> oparadigma declarativo) são linguagens de mais alto nível de abstração, muitasvezes ligadas a um domínio ou objetivo específico. Nas linguagensdeclarativas, o programador fornece apenas o conjunto das tarefas a ser<strong>em</strong>realizadas, não estando preocupado com os detalhes de como o executor dalinguag<strong>em</strong> (interpretador, compilador ou a própria máquina real ou virtual deexecução) realmente impl<strong>em</strong>entará essas tarefas. Linguagens declarativasresultam <strong>em</strong> uma declaração do resultado desejado, <strong>em</strong> vez da suadecomposição <strong>em</strong> uma impl<strong>em</strong>entação algorítmica e, portanto, normalmentenão necessitam de tantas linhas de código para definir uma certa tarefa e sãomenos sujeitas a erros de programação. Entre as linguagens declarativas maiscomuns estão a <strong>NCL</strong> (Nested Context Language) [ABNT NBR 15606-2,2011] [ITU-T H.761, 2011], a SMIL [W3C REC-SMIL2-20051213, 2008],a SVG [W3C REC-SVG11-20110816, 2011] e a XHTML [W3C RECxhtml1-20020801,2002].Numa programação não-declarativa, dev<strong>em</strong>os informar cada passo a serexecutado. Pode-se afirmar que, <strong>em</strong> uma especificação seguindo o paradigmanão-declarativo, o programador possui maior poder sobre o código, sendoobrigado a estabelecer todo o fluxo de controle e execução de seu programa.Entretanto, para isso, ele deve ser qualificado e conhecer b<strong>em</strong> os recursos deimpl<strong>em</strong>entação. Linguagens não-declarativas pod<strong>em</strong> seguir diferentesmodelos. T<strong>em</strong>os, assim, as linguagens baseadas <strong>em</strong> módulos, orientadas aobjetos etc. Entre as linguagens não-declarativas mais comuns no domínio daTV digital estão C, Java e ECMAScript.O universo das aplicações de um sist<strong>em</strong>a de TV digital pode serparticionado <strong>em</strong> um conjunto de aplicações declarativas e um conjunto deaplicações não-declarativas. Uma aplicação declarativa é aquela <strong>em</strong> que otipo do conteúdo de sua “entidade inicial” é declarativo. Por outro lado, umaaplicação não-declarativa é aquela cujo tipo do conteúdo de sua “entidade29

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

Saved successfully!

Ooh no, something went wrong!