2.2 Sistema de Processamento de Modelos Luar
3.0.7 Proposta Luar-X
O sistema de processamento de modelos Luar-X provê uma infraestrutura de reúso para o desenvolvimento baseado em modelos por engenheiros de software. O Luar-X mantém o uso dos conceitos de modelo completo e componente do Sistema Luar, mas modifica a linguagem de autoria.
A linguagem de autoria do Luar-X por padrão é Lua, mas pode ser qualquer linguagem imperativa combinada com XML, isso é possível por meio de plugins. A combinação das linguagens simplifica o desenvolvimento de modelos XML, pois as notações já são conhe- cidas na comunidade de desenvolvedores, e permite a criação dos modelos generalizando e simplificando o desenvolvimento destes.
A PXTL faz uso dessa abordagem de combinar linguagens ao utilizar a linguagem Python juntamente com a XML, sendo uma abordagem semelhante ao Luar-X.
O sistema Luar-X se mostra uma ferramenta de reúso promissora e completa. Nele é possível encontrar características que outros sistemas possuem como as bibliotecas de modelos, que também são encontradas na XTemplate, e o modo de processar modelos, similar a PXTL. Os plugins também são uma característica importante, não encontrada no Luar, pois permitirão customizações e darão maior uso a ferramenta.
As linguagens XSLT, XTemplate, Template Authoring Language e Template Attribute
Language diferem do Luar-X ao definirem uma sintaxe própria. A XSLT, XTemplate e
Template Attribute Languageusam notações fora do contexto do modelo conceitual e abs-
tração da linguagem alvo, dificultando a aprendizagem de uso por parte do desenvolvedor. A seguir, é apresentado na Tabela 3.1 um resumo das principais características de cada uma das linguagens ou sistemas de modelos apresentados.
XSLT TAL PXTL XTemplate 3.0 TAL Luar Luar-X
Conceito de Reuso Modelo Modelo Modelo Modelo Modelo Completo e Componente Completo e Componente Biblioteca Não possui Não possui Não possui Própria Não possui Portal Ginga-CDN Própria
Linguagem Própria Própria Python Própria Própria Lua Múltiplas
Open Source Sim Sim Sim Sim Sim Sim Sim
Plugins Não Não Não Não Não Não Sim
Capítulo 4
Sistema de Processamento de Modelos
Luar-X
O sistema Luar-X é o melhoramento, extensão e generalização do sistema de modelos Luar para qualquer linguagem baseada em XML. O Luar-X modificou a sintaxe, a bibli- oteca, permitiu o processamento em lote de modelos e incluiu a possibilidade de plugins para customização do próprio sistema. Os plugins são uma poderosa característica do Luar-X, pois possibilitam e aumentam as funcionalidades nesse sistema, como por exem- plo, o uso de diferentes linguagens combinadas com a XML para autoria dos documentos Luar-X.
A linguagem Lua foi mantida como padrão no sistema Luar-X. Os conceitos de mo- delos completos e componentes e a forma de interação do usuário com o sistema também permaneceram. A Figura 4.1 apresenta os elementos básicos e fluxo do sistema de mode- los Luar-X.
CAPÍTULO 4. SISTEMA DE PROCESSAMENTO DE MODELOS LUAR-X 20 Documentos XML Modelos Luar-X Kernel Luar-X Tratador de Commandos Processador Luar-X Scripts de Funções Documentos Luar-X + código Luar-X Biblioteca de Modelos Plugins Repositório de Plugins
Figura 4.1: Elementos básicos e fluxo do sistema Luar-X
Os elementos básicos e o fluxo do sistema Luar-X são os mesmos elementos e fluxos do modelo genérico de um sistema de processamento de modelos, como apresentado na Figura 2.1.
O sistema Luar-X possui quatro partes: o kernel, a biblioteca de modelos, a linguagem e o repositório de plugins. A linguagem é apresentada na Figura 4.1 por meio dos modelos e dos documentos Luar-X.
O fluxo do sistema inicia-se com o desenvolvimento de uma aplicação que fará uso de modelos. Os modelos são mantidos em coleções na biblioteca. O sistema Luar-X pode processar um único documento Luar-X ou um lote de documentos, contendo os dados para compor o modelo, que são enviados para o kernel. Os comandos executam funções específicas do sistema e são utilizados para interação com o kernel. O kernel tem a responsabilidade de fazer o processamento dos modelos por meio do processador Luar- X. Após o processamento é gerado o documento XML a partir do modelo e dos dados recebidos pelo processador. No processamento, caso detectado, pode ser usado algum
pluginpara tratamento de uma especificidade do documento. O documento XML torna-
se um documento Luar-X ao ser inserido o código Luar-X. Essa característica é útil para que o desenvolvedor utilize mais modelos ou processe novamente o código XML, caso seja necessário.
A linguagem Luar-X manteve os conceitos de modelos completos e componentes, mas utiliza outros scriptlets e tags delimitadoras para fazer a combinação de linguagem imperativa e a XML.
CAPÍTULO 4. SISTEMA DE PROCESSAMENTO DE MODELOS LUAR-X 21
A seguir, serão apresentados o kernel, a linguagem, o processamento de modelos em lote, os plugins e a biblioteca de modelos do sistema Luar-X.
4.1
Kernel Luar-X
A Figura 4.2 apresenta com mais detalhes o kernel do sistema Luar-X. Nesta seção, serão detalhados o funcionamento, os elementos e o fluxo da interação desse sistema.
Requisições via comandos Scripts Tratador de Comandos Núcleo Processador de Modelos Plugins Documento XML Resultante
Figura 4.2: Elementos básicos e fluxo do sistema Luar-X
A interação com o kernel do Luar-X acontece por meio de linhas de comandos. Os co- mandos enviados passam pelo tratador de comandos que executa os scripts com a função desejada.
A principal função do kernel é de processar o documento Luar-X descrito pelo desen- volvedor. O documento é enviado ao núcleo do processador Luar-X que faz a leitura do documento. No núcleo, na medida que é realizada a leitura do documento, identifica-se na descrição as tarefas a serem realizadas e essas são enviadas aos determinados elementos responsáveis. As tarefas são a de processar modelos, processar descrições genéricas ou executar plugins.
O processador de modelos recebe o trecho do documento Luar-X para ser combinado com um modelo, seja ele completo ou componente, e devolve ao núcleo a descrição XML respectiva. O processador ainda realiza o processamento de descrições genéricas, que o desenvolvedor utiliza a linguagem Lua para descrição dinâmica XML.
CAPÍTULO 4. SISTEMA DE PROCESSAMENTO DE MODELOS LUAR-X 22
O núcleo ao detectar um trecho que solicita um determinado plugin para processá-lo, o envia ao plugin responsável. O plugin realiza o tratamento do trecho e devolve o XML resultante para o núcleo.
Ao fim da leitura do documento Luar-X e com as descrições XML resultantes, o nú- cleo escreve a descrição XML total em um documento XML resultante. O núcleo pode so- licitar alternadamente o processamento via processador de modelos ou plugins, de acordo com a ordem que aparecer no documento Luar-X.