Download agML: Lenguaje y servidor intermediario modular

Document related concepts
no text concepts found
Transcript
agML: Lenguaje y servidor intermediario modular
Perez G.(p), Rodeiro J.
Escuela Superior de Ingeniería Informática Ourense.
SUMMARY
By means of the development of this system, composed of a part client/server and a
language, it is tried to provide a useful tool for the conversion between graphical
formats, as well as for the generation of graphs of data in distributed enviroments.
For the development of the language agML (abstract graphing Markup Language)
has been used XML. This allows to equip it with an intrinsic capacity to be used in
multiple platforms.
This language allows us to define simple primitive graphs (bidimensional as much
three-dimensional), as well as to transmit numerical series. The inclusion of the
numerical series must to the given direction to the system so that also it is possible
the generation of graphs of data. As far as the software part of the architecture agML,
has been decided on the use of the Java technology for its implementation. More
concretely Java Servlets the modular server and Java Applet for the native client.
The denomination native client is specified because it is possible to ask for requests
to the server that they use, an example would be the client for the platform VRML
that already is implemented, any other type of client, platform and/or format of
graphical storage.
RESUMEN
Mediante el desarrollo de este sistema, compuesto de una parte cliente/servidor y un
lenguaje, se pretende proporcionar una herramienta útil para la conversión entre
formatos gráficos, así como para la generación de gráficos de datos en un entorno
distribuido. Para el desarrollo del lenguaje agML (abstract graphing Markup
Language) se ha empleado XML. Esto permite dotarlo de una capacidad intrínseca
para ser empleado en múltiples plataformas.
Este lenguaje nos permite definir primitivas gráficas sencillas (tanto bidimensionales
como tridimensionales), así como transmitir series numéricas. La inclusión de las
series numéricas se debe a la orientación dada al sistema para que también sea
posible la generación de gráficos de datos. En cuanto a la parte software de la
arquitectura agML, se ha optado por el empleo de la tecnología Java para su
implementación. Más concretamente Java Servlets para el servidor modular y Java
Applet para el cliente nativo.
La denominación cliente nativo se especifica debido a que es posible solicitar
peticiones al servidor que empleen, un ejemplo sería el cliente para la plataforma
611
VRML que ya se encuentra implementado, cualquier otro tipo de cliente, plataforma
y/o formato de almacenamiento gráfico.
1. INTRODUCCION.
1.2 Objetivos.
Mediante este sistema se pretende crear un sistema que permita agilizar la
comunicación entre distintas computadoras a la hora de intercambiar ficheros
gráficos, concretamente los basados en series numéricas.
Para ello han de definirse:
•
Un lenguaje de descripción gráfica.
•
Un servidor.
•
Un cliente.
•
Módulos para la implementación de los formatos de salida y los tipos de
gráficos de datos que se desee soporte el sistema.
1.3 Descripción Técnica.
Se hará uso de un lenguaje de descripción de primitivas para la definición de los
gráficos. Este lenguaje será definido mediante el uso de una DTD (Data Type
Definition, definición de tipo de datos) de XML. Gracias a lo cual podremos
aprovechar las ventajas que nos proporciona un lenguaje de este tipo.
Esto se debe, principalmente, a la gran aceptación que tienen en estos momentos
los lenguajes de marcado enfocados al almacenamiento (de una forma estructurada)
de información.
Para desarrollarlo de manera práctica se va a utilizar tecnología Java,
concretamente Java Applet y Java Servlet debido a su portabilidad, y a la facilidad
para crear aplicaciones cliente/servidor.
Una vez realizado el estudio de las series numéricas y la descomposición de los
gráficos en representaciones basadas en lenguajes de marcas se han implementado
en Java, utilizando Applets y Servlets.
Es muy importante el hecho de que no es necesario el envío de este archivo al
emisor de la petición. El documento XML permanecerá almacenado en el servidor
para que el cliente, a través de un navegador apropiado, pueda visualizarlo.
También hay que destacar que el applet Java es solo uno de los posibles métodos
de visualización. Dada la arquitectura modular del sistema es posible obtener la
salida en otro tipo de formato, que no sea el nativo, como por ejemplo VRML,
SVG,…
2. ARQUITECTURA DEL SISTEMA.
612
Una vez que se han planteado los objetivos de este proyecto, es importante
presentar la arquitectura que se pretende posea el sistema.
2.1 Definición y comportamiento de la arquitectura.
Durante la petición el cliente enviará al servidor los datos (las series) usando agML,
ya que de esta manera podrá enviar, junto con las etiquetas correspondientes a los
datos, primitivas gráficas que compongan, por ejemplo, un logotipo corporativo.
Para lograr simplificar el diseño de la parte cliente (es decir, la parte encargada de
representar el gráfico final, procesado por el servidor) algo especialmente útil es el
hecho de que las etiquetas de datos sean procesadas en el servidor del sistema, y
que este solo devuelva (mediante la comunicación servidor-cliente) primitivas
gráficas.
Se ha de tener en cuenta que la transformación de los datos en componentes
básicos del gráfico resultante varia mucho según el tipo de diagrama (gráficos de
barras, puntos, sectores,...) que se haya solicitado.
Diagrama de la arquitectura del sistema agML.
Al añadir esta tarea de transformación del lado servidor se simplifica la parte cliente
hasta el punto de hacer innecesaria su especialización en clientes distintos, esto es,
uno por cada tipo de gráfico. Con este diseño solo se hace necesario un cliente
genérico que sea capaz de representar todas las primitivas gráficas soportadas por
el lenguaje.
Es importante observar que el proceso inicial de procesado genera un archivo de
primitivas intermedias en formato agML que solo contiene componentes básicos de
dibujado (linea, polígono, arco, etc).
613
Teniendo esto en cuenta es interesante dotar al servidor de mecanismos que le
permitan transformar la salida desde agML a otros tipos de representación, como
SVG o VRML.
Para lograr esto, se debe dotar al servidor de una interfaz, encargada de transformar
la salida agML en otra, como las arriba mencionadas, a petición del cliente.
El mecanismo de uso por parte del servidor de esta segunda interfaz, encargada de
la traducción, ha de ser el mismo que el encargado del procesamiento de las
peticiones en cuanto a la generación del gráfico.
2.2 Implicaciones para los gráficos de datos.
El primer punto importante que ha de incorporar cualquier sistema, es el referente a
la entrada de la información.
Ya se ha explicado que se pretende que agML sea, además de un lenguaje gráfico,
un lenguaje de generación de gráficos de datos. Por tanto es clave, para el
desarrollo de este proyecto, el modo en que el servidor reciba los datos que no se
correspondan con primitivas gráficas. Es decir, las series numéricas que han de ser
representadas mediante el gráfico de datos deseado.
Para solucionar el envío de los datos de las series numéricas al servidor se han
incluido en el lenguaje etiquetas para contener series numéricas, dando soporte, a
series numéricas de dos y tres dimensiones, lo que, en un principio, es suficiente
para la mayor parte de los gráficos de datos.
Es por esto, que se puede considerar agML como un lenguaje de dos vías ya que es
utilizado de distinta manera en la comunicación cliente-servidor (petición), que en la
servidor-cliente (respuesta).
3. MODULARIDAD Y EXTENSIBILIDAD DE AGML.
Como ya se ha expuesto en esta documentación, uno de los principales objetivos de
este proyecto es conseguir que el sistema final tenga las siguientes características:
•
Facilidad de ampliación.
•
Gran adaptabilidad.
Aunque ambas se refieren a aspectos distintos del sistema, están muy
interrelacionadas. Así, una aplicación muy adaptable será, probablemente, más fácil
de ampliar que una rígida. En el caso opuesto, en un sistema fácil de ampliar, la
tarea de adaptarlo a los nuevos requerimientos que puedan surgir, es una tarea más
sencilla.
En este capítulo se detallan las distintas vías, aplicadas en el desarrollo de este
sistema, que permiten dotarlo de ambas características.
614
Es importante, sin embargo, recordar a que partes del sistema se le aplica el
enfoque modular:
Procesamiento de la entrada: Se encarga de interpretar el documento agML
inicial, en el formato de salida. En el caso de que el formato de salida también sea
agML el procesamiento se centra en la generación de gráficos de datos.
Generar la salida: Cada modulo implementa la manera de crear el entorno
necesario para presentar el gráfico en la plataforma de destino.
3.1 Modularidad.
Desde un principio, ya en el momento de definir la arquitectura agML, se consideró
la modularidad como indispensable.
Se pretendía construir una arquitectura que sirviese de paso entre diversos formatos
de salida gráfica. De igual manera, era deseable que también diese soporte a las
distintas plataformas que puedan servir como soporte para dichos gráficos.
3.2 ¿Qué aporta la modularidad?.
A continuación se expondrán las ventajas que se obtiene al aplicar dicho enfoque a
nuestro sistema.
•
Servidor genérico: Al extraer las funcionalidades hacia los módulos
conseguimos obtener un servidor mucho más ligero. Así mismo podemos
centrarlo sólo en tareas de alto nivel, como pueden ser gestión de la petición,
gestión de la salida,… Gracias a esto, el servidor no tiene que incluir las
funcionalidades, necesarias para trabajar con todos los tipos de gráficos que
soporte, que mediante este enfoque se encuentran en los módulos. Por
contra, ha de añadírsele la gestión y carga de dichos componentes.
•
Facilidad de ampliación: El proceso de integrar el soporte para un nuevo
formato es más rápido y sencillo. Es así ya que lo único que se debe hacer
es crear un módulo que maneje dicho formato y, por otra parte configurar el
sistema para que pueda hacer uso de el.
Para la configuración de estos módulos se emplean archivos XML. Esto permite
enlazar las tareas de los módulos de procesamiento gráfico con la de los módulos de
generación de la salida específica de una plataforma.
3.3 Extensibilidad.
Íntimamente relacionado con la modularidad podemos encontrar la extensibilidad. En
el caso de agML, la extensibilidad se logra, en parte a través de la modularidad.
En otra gran parta se logra gracias al empleo de XML como base para la gestión de
todos los aspectos del sistema. Básicamente, el uso de XML para dichas tareas nos
permite cambiar o ampliar (extender) las capacidades del sistema sin tener que
cambiar la implementación del diseño del sistema.
615
Para ello el sistema debe ser capaz de interpretar dicha información, referente a los
siguientes aspectos:
Configuración del servidor.
Gestión y configuración de los módulos.
Componer los estilos aplicables a los formatos de salida.
Definición de gráficos. Esta es la parte central, definir un lenguaje (agML)
mediante XML.
BIBLIOGRAFIA.
Jan Christian Herlitz, DrawML and SVG, Proceedings of the First XML Europe
conference (XML Europe 99), 1999, pp 61-70.
Mark Roberts, Graphic Element Markup, Proceedings of the First XML Europe
conference (XML Europe 99), 1999, pp 547—557.
Benoît Marchal, XML by example, Que 201West 103rd street Indianapolis Indiana
46290, Dic 1999, ISBN 0-7897-2242-9.
Javier Rodeiro, Gabriel Pérez, Generación de gráficos en arquitecturas clienteservidor mediante XML, Proceedings del XI Congreso Español de Informática
Gráfica, 2001.
CORRESPONDENCIA.
Javier Rodeiro Iglesias
Departamento de Informática. ESII. Edificio Politécnico.
Campus As Lagoas S/N. 32004. Ourense
Universidade de Vigo
Tlf: 988 387 020
Fax: 988 387 001.
e-mail: [email protected]
616