7. Criar (mapear) as instância da base de regras para classes da package RuleDb (copyPackage())
8. Para cada tag do documento Web faça
8.1. Selecionar as regras referentes a tag (selectRule()) 8.2. Para cada regra de conversão encontrada faça
8.2.1. Realizar a conversão gerando aplicação MHEG-5 na package iso.mheg5 (translateApplication())
8.2.2. Ler próxima regra de conversão (selectRule()) 8.3. Fim-Para
8.4. Ler próxima tag do documento Web 9. Fim-Para
10. Caso o usuário deseja criar várias aplicações MHEG-5 então
10.1. Criar aplicações MHEG-5 de acordo com os documentos Web
(makeApplications())
11. Fim-Caso
12. Para cada aplicação MHEG-5 gerada faça
12.1. Armazenar a(s) aplicação(ões) MHEG-5 gerada(s) na package iso.mheg5 para o banco de dados multimídia do SOMm (Application) (storeApplication())
13. Fim-Para
Os métodos destacados em negrito são detalhados abaixo, com exceção daqueles já especificados na seção anterior.
Método....: getDocument(String nameDocument)
Classe...: Module021 Retorno:...: null
Objetivo...: Receber a URL ou nome do documento SMIL/HTML para realizar a conversão
Algoritmo
. Recebe a URL ou o nome do documento SMIL/HTML a ser convertida em aplicações MHEG-5
Método....: provideDocument(String nameDocument)
Classe...: Module022 Retorno....: null
Objetivo...: Recupera o documento SMIL/HTML de acordo com o arquivo ou URL.
Algoritmo
. Busca no arquivo ou na URL o documento SMIL/HTML solicitado
Método....: displaySource(String nameDocument)
Classe...: Module022 Retorno....: null
Objetivo...: Mostra o código fonte do documento SMIL/HTML
Algoritmo
. Mostra o conteúdo de um documento SMIL/HTML.
Método....: translateApplication(String contentRule)
Classe...: Module023 Retorno....: MHEG-5 Class
Objetivo...: Realiza a conversão de uma tag para um atributo ou classe correspondente em MHEG-5
Algoritmo
. Associa conteúdo da regra a classe ou ao atributo da classe . classe= MHEGClass.Name + Attribute.Name + rule.description . Retorna (classe)
Método....: makeApplications(String nameApplication)
Classe...: Module024 Retorno....: null
Objetivo...: Cria várias aplicações MHEG-5 de acordo com a quantidade de documentos SMIL/HTML
Algoritmo
Método....: storageApplication()
Classe...: Module024 Retorno....: null
Objetivo...: Armazena as aplicações MHEG-5 nas classes MHEG-5 do banco de dados multimídia do SOMm
Algoritmo
. Armazena as aplicações MHEG-5 na classe MHEG-5 do banco de dados multimídia SOMm
. Executa o método insertObject() da classe O2Connection . Executa o método write() da classe Application e Scene
Esta seção foi dedicada a definição do processo de conversão de documentos SMIL/HTML para aplicações MHEG-5. Como auxílio a esses dois tipos de conversões, foi utilizada uma base de regras que é especificada na próxima seção.
7
7..33BBaassee
ddee
RReeggrraassddeeCCoonnvveerrssããoo
Para realizar as conversões entre aplicações MHEG-5 e SMIL foi desenvolvida uma base de regras para armazenar as regras de conversões. Observa-se na literatura que a maioria dos métodos de conversão existentes, como os citados em [Doorn94] e [Yang96], trabalham com uma base de regras de auxílio para realizar transformações. Essas bases de regras são normalmente estáticas, isto é, são impostas na implementação de acordo com a situação do momento (regras existentes), e quando surge a necessidade de impor novas regras, estas são inseridas na própria implementação dos conversores. Uma desvantagem desse processo é a atualização contínua do código do conversor mediante novas regras. Com o intuito de evitar esse problema, decidiu-se criar como auxílio ao conversor, uma base de regras dinâmica. Essa base de regras é representada por uma estrutura de classes e tipos, para armazenar as regras de conversão. Assim, quando surgir a necessidade de impor novas regras, será necessário apenas inserir (instanciar) novos objetos nas classes, sem que haja alteração no conversor em si.
Para que o conversor obtenha um bom desempenho, e também para mantê-lo atualizado, é necessário que haja flexibilidade de mudanças na base de regras. A base de regras é um dos componentes importantes no processo de conversão, e atualmente possui uma estrutura de dados para suportar linguagens especificadas a partir de SGML, isto é, linguagens que tratam aplicações multimídia de forma textual através de uso de comandos específicos, também chamados de tags.
Na figura 7.3 é mostrada a estrutura da base de regras (denominada RuleDB), juntamente com os relacionamentos existentes entres as classes e tipos. A figura utiliza a notação UML para a representação.
Para a definição da base de regras foram definidas as classes: MHEGClass, Tag,
Parameter e Rule e os dois tipos: Extension_Tag e Attribute.
A idéia geral é ter uma estrutura de classes para armazenar todos os elementos (meta informações) envolvidos nos padrões MHEG-5 e HTML/SMIL e as correspondências existentes entre os elementos desses padrões, para dar suporte à conversão de aplicações, de um padrão para o outro.
M HE G Clas s nam e : S tring Ins ertA ttribute() Ins ertRule() (fro m R u l e _ D b ) A ttribute nam e : S tring Ins ertRule() (fro m R u l e _ D b ) < < t ype> > 1 0..* 1 0..* E x tens ion_Tag brows er_nam e : S tring c om plete_s y ntax : S tring new_param eter : s et (S tring) (fro m R u l e _ D b ) < < t ype> > P aram eter nam e : S tring ty pe : S tring (fro m R u l e _ D b ) Rule va lue : S tring des c ription : String (fro m R u l e _ D b ) 0..* 0..1 0..* 0..1 0..* 0..1 0..* 0..1 0..* 0..1 0..* 0..1 Tag c om m and : S tring bas ic _s y ntax : S tring c om m ent : S tring language : S tring Ins ertUs edContex t() Ins ertCom pleteS y ntax () Ins ertE x tens ion() Ins ertP aram eter() (fro m R u l e _ D b ) 1 0..* 1 0..* 1 0..* 1 0..* 0..* 1 0..* 1 Has_Complete_Syntax Used_Context 0..* 0..* 1 1
FIGURA 7.3–ESTRUTURA DA RULEDB PARA ARMAZENAMENTO DE REGRAS DE CONVERSÃO
A estrutura da RuleDB foi implementada em O2C e Java. A implementação em O2C
foi necessária para criar o banco de dados para armazenar as regras de conversão. Já a sua implementação em Java foi necessária, devido ao fato do conversor utilizar essa estrutura para realizar as conversões, isto é, o conversor busca as regras no banco de dados RuleDB e cria instâncias nas respectivas classes em Java. Com a adoção desse critério, o processo de conversão se torna mais rápido, pois não é necessário acessar a todo o momento o banco de dados de conversão RuleDB.
7
7..33..11EElleemmeennttoossddooppaaddrrããooMMHHEEGG--55
Para representar as classes do padrão MHEG-5 foi criada a classe MHEGClass. Esta classe é composta por um único atributo chamado name, que armazena o nome de cada classe MHEG-5. Essa classe possui um relacionamento de associação com a classe Rule para representar as regras de conversão que a classe MHEG-5 pode possuir independentemente de seus atributos. O quadro 01 mostra algumas instâncias da classe
MHEGClass e o quadro 02 apresenta a implementação dessa classe tanto na linguagem
Java como na linguagem O2C do SGBDOO O2.