Story Transcript
“Sistemas de Información Geográfica a la medida de la Administración Pública: una arquitectura abierta”
INDICE
1. Resumen ...................................................................................... 3 2. Introducción General .................................................................... 4 3. Descripción ................................................................................... 7 3.1 Estructura general .................................................................................... 7 3.2 Composición de la aplicación ................................................................... 8 3.3 Aplicación práctica .................................................................................... 9
4. Innovaciones y mejoras .............................................................. 16 5. Conclusiones .............................................................................. 18 6. Terminología usada .................................................................... 20 7. Referencias................................................................................. 22
1. Resumen El presente proyecto introduce una arquitectura abierta
para el diseño de
Sistemas de Información Geográfica (SIG) orientado a entornos corporativos. Dicha arquitectura posibilita un sistema SIG flexible a dos niveles, por una parte flexibilidad del sistema a nivel de la organización al presentar el sistema escalabilidad que permite la actualización y la modificación del mismo sin necesidad de reprogramar el código de la aplicación y por otra parte a nivel del usuario al permitir la personalización, en el sentido de que el usuario construye interactivamente la aplicación a su medida escogiendo las funcionalidades necesarias. A grandes rasgos el sistema esta formado por una colección de paquetes entre los cuales es de destacar un núcleo central ligero, el cual contiene la funcionalidad básica del sistema, y un conjunto de paquetes externos que responden a funcionalidades adicionales. Cada uno de estos paquetes implementa una parte específica del SIG y su descarga y conexión al cliente SIG se realiza automáticamente a solicitud del cliente a través de Internet.
2. Introducción General El procesamiento de datos espaciales y la posibilidad de extraer información a partir de ellos, es una necesidad que la sociedad actual demanda. Para ello son necesarias herramientas específicas, como son, los sistemas de información geográfica (SIG). Los SIG son sistemas de información computerizados adecuados para capturar, almacenar, manipular, analizar, modelizar y representar datos referenciados espacialmente, así como para la resolución de problemas complejos de planificación y gestión (Fischer, Nijkamp, 1993). Dentro del mundo de los SIG existen desarrollos específicos para entornos corporativos. Este tipo de implementaciones van dirigidas a organizaciones públicas o privadas con un gran número de usuarios que constituyen el entorno corporativo. Dichas organizaciones tienen la necesidad de compartir datos espaciales, dar servicio coordinado y facilitar la cooperación entre los distintos departamentos.
Estudios realizados sobre soluciones SIG existentes para entornos corporativos, han puesto de manifiesto ciertas limitaciones, las cuales se pretenden superar a través de la arquitectura diseñada. En este sentido, las características más relevantes de la arquitectura que se propone son las siguientes:
Personalización. El usuario a solicitud propia debe ser capaz de instalar específicamente los componentes necesarios para el desarrollo de su trabajo y no todas las funcionalidades.
Extensibilidad. El sistema debe ser escalable a las nuevas necesidades de la organización., con reutilización total del sistema existente, a ser posible.
Distribución del software. Debe de ser posible descargar e instalar el software deseado en cada ordenador a través de una red, sin la necesidad de efectuar instalaciones específicas desde CDs u otro tipo de dispositivo de almacenamiento.
Centralización. Una arquitectura centralizada facilita la administración del sistema, ya que permite actualizaciones con coste mínimo, así como el seguimiento de las descargas y del uso “real” del software en la organización.
Mantenimiento de licencias. La utilización de un software de calidad exento de pago por el uso de licencias es también una característica importante que queremos para nuestro sistema y que deberemos tener en consideración en el diseño de la arquitectura que se propone.
La arquitectura SIG que se propone se fundamenta en una arquitectura genérica clienteservidor, en la cual, la función del servidor es la de almacenar todos los paquetes de funcionalidad que constituyen el Sistema de Información Geográfica así como la de enviar de forma remota el software de instalación específico acorde a las peticiones específicas de cada cliente. Existen distintas líneas de investigación, que tratan de mejorar y optimizar el funcionamiento de clientes y servidores, así como su integración. La aportación del presente proyecto se centra en el campo de los clientes SIG, concretamente en la definición de una arquitectura y metodología de desarrollo que proporcione un cliente SIG flexible y distribuido a través de una red.
Los SIG todavía no han llegado de forma masiva a la sociedad en general. Los principales usuarios son organizaciones e instituciones de carácter público o privado. Estos usuarios potenciales, suelen estar compuestos por unidades de trabajo independientes, las cuales tienen necesidades muy específicas y que pueden diferir de unas a otras. Pensemos por ejemplo, en el caso de la administración pública. El Ministerio de Medio Ambiente necesita un cliente SIG, al igual que el Ministerio de Obras Públicas y Transporte, para poder visualizar y tratar sus datos. Entre ambos clientes podemos encontrar una serie de necesidades similares, pero también un importante número de necesidades propias de cada uno. Para cubrir ambas situaciones, se puede pensar en realizar un desarrollo a medida para cada uno de ellos, o plantear un único desarrollo que sea flexible y personalizable, de forma que cada usuario seleccione sólo las funcionalidades que necesite.
Gracias a Internet se pueden vencer las barreras geográficas en lo que a distribución del software se refiere, lo que significa que es posible enviar e instalar una aplicación
informática en cualquier lugar del mundo. El proceso general es el siguiente: el usuario descarga en su ordenador personal el software, lo instala, lo configura y luego lo ejecuta. Es muy probable que en este ciclo, desde la descarga hasta el funcionamiento correcto del software, se produzca algún tipo de problema o que debido a la complejidad en alguna de las fases, sea necesaria la intervención de algún experto o de la empresa desarrolladora de dicho paquete de software. Estudios realizados en diferentes empresas muestran que la mayoría de los usuarios sólo utiliza un porcentaje mínimo de las funcionalidades que por defecto son instaladas en el Sistema de Información Geográfica, teniendo el administrador que instalar y mantener obligatoriamente un sistema completo, que en general será infrautilizado y que además contribuirá a un importante desembolso económico de la organización en concepto de licencias. Nos planteamos por tanto para nuestra propuesta que sea el usuario que configure el software de instalación acorde a sus necesidades y que por otra parte la administración del sistema quede centralizada en un servidor.
El caso piloto que ha sido utilizado como base de estudio, se ubica en la administración pública, aunque la solución planteada pretender ser lo más genérica posible. En concreto dentro de la Administración Pública se han atendido para este estudio, las necesidades de la Consejería de Obras Públicas y Transporte (COPUT) de la Comunidad Valenciana. Dicho organismo cuenta con más de 400 usuarios de SIG que generalmente utilizan sistemas propietarios “stand alone” por los que se tienen que pagar importantes cantidades económicas en concepto de licencias y que en general no se prestan a un fácil seguimiento y coordinación. Por otra parte, en estudios previos realizados en esta consejería sobre identificación de perfiles de usuario queda patente que, en general, el usuario utiliza un conjunto muy específico de funcionalidades de los clientes SIG siendo el resto de funcionalidades del sistema absolutamente innecesarias. Como valor añadido a la arquitectura que se propone y pieza clave para el crecimiento del sistema en un entorno abierto, se han reutilizado librerías de programación OpenSource bajo licencia GNU (G. Anderson, R. Moreno. 2003). Gracias a la disponibilidad del código, se pueden modificar y extender este tipo de librerías para generar componentes software que añadan nuevas funcionalidades al sistema.
3. Descripción En esta sección se presenta una solución que cubre las necesidades que se han planteado previamente. Es nuestra pretensión, por tanto, modificar la concepción tradicional de cliente SIG monolítico para orientarlo a un entorno cambiante, corporativo e integrado en red. En esta línea, la arquitectura que se propone se fundamenta en dos aspectos básicos, por una parte el de facilitar la distribución y actualización del software así como por otra parte el de definir el sistema conceptualmente de modo que tenga la capacidad de ser extendido con nuevas funcionalidades sin necesidad de reingeniería del sistema. 3.1 Estructura general Es nuestra propuesta añadir una capa intermedia en la arquitectura SIG cliente-servidor. Esta nueva capa actuaría a modo de middelware, siendo la encargada de dar soporte a algunas nuevas funcionalidades del cliente como son la identificación y validación del usuario así como la personalización de los paquetes enviados desde el servidor a un cliente SIG específico.
CLIENTE
Validación Actualización
Selección
MIDDLEWARE XML Config. SERVIDOR
Repositorio núcleo paquete 1 paquete N
Figura 1 – Arquitectura SIG a tres capas
Registro
El diagrama de la arquitectura que se propone se muestra en la figura 1. Los pasos a seguir para que el usuario defina la aplicación SIG que atiende a sus necesidades son los que seguidamente se especifican:
a) Conexión a la capa middleware. Este paso se realiza únicamente la primera vez que el usuario desea definir y descargar la aplicación SIG que quiere utilizar.
b) Validación del usuario por medio de su login y password. El usuario debe haber sido dado de alta por el administrador del SIG para la utilización del sistema. Dependiendo de los privilegios del usuario el middelware mostrará una lista de paquetes accesibles para incorporar a la aplicación. c) Selección de los paquetes que el usuario desea instalar. En función de las necesidades del usuario, éste seleccionará los paquetes que cubran sus necesidades específicas. d) Configuración XML. Después de recibir el resultado de la selección, el middelware genera un archivo XML que contiene la información de los paquetes seleccionados y del usuario. Seguidamente, este archivo xml de configuración es enviado al servidor. e) Interpretación del servidor. El servidor procesa los archivos de configuración recibidos y envía el software de instalación específico para cada cliente.
3.2 Composición de la aplicación Tras la descarga por parte del cliente de los paquetes seleccionados, el núcleo generará de forma automática en el cliente la aplicación SIG. En la figura 2 se muestra la estructura de la composición de paquetes.
La aplicación SIG se diseña de modo que los paquetes encajan en la estructura general del núcleo. Con anterioridad a la implementación del núcleo, cada parte accesible debe definirse de acuerdo con una especificación de implementación. Estas partes son denominadas puntos de extensión (Bolour. 2003). Al recibir el cliente cada uno de los
paquetes seleccionados, el núcleo los analiza y extrae la información contenida en el archivo XML de configuración. Dicho archivo debe estar definido de acuerdo con el DTD del núcleo, en el cual se definen los distintos puntos de extensión existentes. Por ejemplo, es posible definir un punto de extensión del menú de la aplicación. El archivo XML debe contener una etiqueta que indique que el nuevo paquete debe de ser incluido en el menú y que tiene una acción determinada asociada. Los paquetes también contienen clases que implementan una funcionalidad determinada. El núcleo leerá del archivo XML el nombre las clases registradas y las cargará de forma que se genere la aplicación SIG que finalmente utilizará el cliente.
paquete 1 XML
nivel 1 clases
Núcleo
DTD XML
Registro de extensiones
paquete 2 XML clases
clases Interface
paquete N XML clases
Figura 2 – Composición de paquetes
3.3 Aplicación práctica Como aplicación práctica y prototipo de pruebas de la arquitectura diseñada, se ha implementado un Sistema de Información Geográfica que cumple las características definidas en este estudio. El sistema ha sido desarrollado haciendo uso de la plataforma
de programación Java Web Start y ha sido dividido en tres partes correspondientes al cliente, a la capa middleware y al servidor. Cliente SIG La aplicación está compuesta por un núcleo principal y por paquetes adicionales que proporcionan funcionalidades específicas al cliente. En el núcleo se ha implementado la interfaz gráfica de usuario de la aplicación, la cual contiene:
La vista principal: encargada de la visualización de datos espaciales y datos ráster.
La vista de datos: en la que se muestran datos alfanuméricos tabulados.
La barra de menú: contiene las etiquetas del menú principal y los submenús.
La barra de herramientas: contiene iconos asociados a funcionalidades de uso frecuente.
Cada uno de estos elementos definidos está asociado a una clase independiente que muestra públicamente una interfaz que permite su extensibilidad. A través de estas interfaces los paquetes externos pueden acceder al núcleo del sistema. La conexión entre el núcleo y los paquetes de funcionalidad adicional que previamente a su descarga selecciona el cliente, es posible gracias a los archivos XML de conexión, los cuales cumplen el esquema definido para los puntos de extensión. Dentro del núcleo existe una clase encargada de parsear dichos archivos XML y extraer la información necesaria para conectar y añadir cada paquete al registro general de paquetes. Desde un punto de vista de mantenimiento y ampliación del sistema, las nuevas funcionalidades con las que se quiera proveer al SIG deben ser implementadas en forma de paquetes por desarrolladores de acuerdo al DTD que define todos los posibles archivos XML de conexión, finalmente sería el administrador del sistema el que ubicaría dicho paquete en el servidor para su uso por todo aquel cliente que tuviera los privilegios necesarios. Al objeto de optimizar el tiempo de descarga de la aplicación SIG que requiera instalar el cliente los paquetes son almacenados en el servidor como ficheros comprimidos.
En el prototipo de pruebas desarrollado se han implementado tres paquetes con las siguientes funcionalidades:
Paquete1: Incluye las herramientas de zoom, pan y selección. Dichas herramientas se muestran en el menú de la aplicación así como en iconos gráficos en la barra de herramientas. Se incluye como ejemplo una parte del archivo XML necesario para que los iconos aparezcan en la aplicación principal así como para que la acción asociada sea ejecutada (código 1). La etiqueta class indica en qué clase es implementa dicha funcionalidad.
Paquete2: Carga y visualiza en la vista principal del cliente un mapa de datos vectoriales. Este paquete ha sido desarrollado haciendo uso del API Open Source GeoTools. Es por tanto, que éste paquete supone una capa intermedia que permite el uso de librerías de libre distribución o desarrolladas ad hoc en la arquitectura SIG que se define.
Paquete 3: Carga una nueva vista en el entorno gráfico de la aplicación. Esta vista realiza búsquedas sobre los datos, selecciona los resultados en el mapa y los muestra en la vista de datos. Análogamente al paquete 2 para su desarrollo ha sido reutilizado código del API GeoTools.
Paquete 4: Carga una nueva vista en el entorno gráfico de la aplicación con datos ráster. Gran parte de las funcionalidades sobre procesamiento y análisis de ortoimágenes de la librería GIA (Geo Image Analyser) han sido transferidas al cliente.
Paquete1 Herramientas 3 Zoom Pan menu Zoom paquete1/Zoom menu Pan paquete1/Pan toolbar Zoom paquete1/Zoom Zoom Zoom paquete1/zoom.gif Zoom Zoom
Código 1 – Detalle del fichero xml de conexión correspondiente al paquete 1.
En las figuras 3 y 4 se muestran dos clientes con diferentes funcionalidades. En la primera de ellas se han cargado todos los paquetes de manipulación de datos vectoriales que han sido implementados, es decir, paquete 1, 2 y 3. En la figura 3 se visualiza un mapa de los estados de Méjico así como su tabla de datos asociados. La operación que se muestra es la búsqueda de una ciudad, concretamente la capital Méjico D.F. El resultado de la búsqueda es marcado tanto en la tabla de datos como en el mapa activo. En la segunda figura se carga el paquete 4 que nos permite la lectura de datos ráster que posteriormente podrán ser procesados y analizados.
Figura 3 – Cliente SIG definido para el análisis de datos vectoriales
Figura 4 – Cliente SIG definido para el análisis de datos ráster
Middleware La capa intermedia entre cliente y servidor ha sido implementada haciendo uso de la tecnología servlets de Java. Cada vez que un cliente se conecta al sistema pasa a través del middleware que valida internamente contra una base de datos al usuario. La implementación de la base de datos ha sido realizada sobre PostgreSQL. En base a los privilegios de paquetes y usuarios se muestra una lista con los paquetes que un determinado usuario puede ver y por tanto descargar. Para el caso de que el usuario posea privilegios de administrador, también se puede subir, borrar o actualizar paquetes en el servidor. Los usuarios cuyo software actual utiliza paquetes obsoletos son avisados por el sistema, pero es decisión del cliente su actualización o el de instalar un cliente con diferente configuración. En la figura 5 se muestra la interfaz gráfica que presenta la capa de Middleware.
Figura 5 –Interfaz para la validación del usuario
Una vez que el usuario ha seleccionado los paquetes que desea incorporar a su aplicación SIG, se genera dinámicamente un archivo XML de configuración del cliente, que debe ser accesible desde el servidor. En este archivo se incluyen los nombres de los paquetes jar que tienen que ser descargados. El contenido de dicho archivo para el caso de que el usuario seleccione el paquete 1 y 3 se muestra seguidamente (código 2).
Prototipo Cliente GIS UPM - Telef
Código 2 – Archivo XML de configuración del cliente
Servidor El servidor recibe el archivo XML de configuración del cliente enviado por la capa middleware y tras su procesamiento envía al cliente los paquetes de funcionalidad seleccionados. Para la implementación de la parte servidora se ha utilizado la plataforma de programación Java y el protocolo de comunicación JNLP (Schmidt, 2001). Por medio de dicho protocolo se puede establecer una canal de comunicación a través de Internet con el sistema del usuario con objeto de enviar la aplicación desde el servidor. La aplicación queda instalada de forma transparente en el PC del usuario, lo que permite ejecutarla localmente. A nivel de seguridad el protocolo JNLP está construido sobre la plataforma Java 2, que proporciona una amplia arquitectura de seguridad. Las aplicaciones ejecutadas se ejecutarán de forma predeterminada en un entorno restringido ("zona protegida") con acceso limitado a los archivos y a la red. Por tanto, para que la aplicación tenga acceso ilimitado los paquetes a descargar deben estar firmados y será el usuario el que aceptará o no la descarga. Este aspecto resulta de especial interés para el caso de redes abiertas y múltiples servidores.
4. Innovaciones y mejoras Seguidamente se detallan las características más relevantes de la arquitectura SIG que se ha presentado:
Escalabilidad. Es posible la adición de nuevas funcionalidades a la aplicación SIG una vez ha finalizado el desarrollo del mismo. Esta característica resulta de gran interés en la actualización del sistema, ya que las nuevas versiones de paquetes existentes o los nuevos paquetes se acoplan al sistema sin necesidad de realizar modificaciones internas. Además, todos los clientes del sistema, tras una actualización parcial de este por parte del administrador, de forma inmediata pueden actualizar sus clientes SIG. Esto es posible gracias a un diseño interno abierto, en el que un núcleo ligero, pieza fundamental en la instalación o actualización del cliente, hace las labores de linkador y contenedor de la aplicación SIG final.
Personalización. Cada usuario puede configurar su propia aplicación SIG a medida instalando las funcionalidades que le son de utilidad. Esto se realiza de manera sencilla, conectando a una capa intermedia que muestra una lista de paquetes visibles dependiendo de los privilegios del usuario.
Distribución. Se evita la tediosa labor de administración de tener que instalar ordenador por ordenador aplicaciones SIG específicas, por el contrario es el usuario el que conecta a un servidor central que envía la aplicación solicitada, que se instalará de forma automáticamente en el cliente. Solamente es necesario conectar al servidor la primera vez que se accede al sistema para definir y ejecutar la aplicación SIG o cuando se desee realizar modificaciones en la configuración, el resto de la ocasiones queda instalada en la máquina del usuario como aplicación SIG local.
Otras características de gran interés para el crecimiento del sistema en un entorno abierto son las siguientes
Utilización de librerías de software libre. El prototipo implementado se ha orientado hacia un desarrollo abierto, donde el principal objetivo es el crecimiento y extensión de la aplicación a partir de fuentes heterogéneas. Al tratarse de código abierto, los desarrolladores pueden definir nuevos paquetes o modificar los ya existentes, aumentando así la funcionalidad del sistema.
Multiplataforma. La aplicación SIG generada es independiente del sistema operativo, pudiendo de esta manera ser utilizado el sistema por el mayor número de usuarios posible con independencia de la heterogeneidad de equipos.
5. Conclusiones Se ha presentado una arquitectura que plantea un conjunto de ideas de interés para el diseño y desarrollo de un SIG en un entorno corporativo. Dichas ideas son el resultado de una investigación previa en el campo de las aplicaciones SIG para la Administración Pública y de las posibilidades del software libre en este campo. Se ha tratado de buscar un diseño adecuado para un entorno corporativo, minimizando gastos en concepto de administración y licencias así como potenciando la interoperabilidad y la flexibilidad de los usuarios de aplicaciones SIG.
Se ha implementado un prototipo de pruebas al objeto de contrastar las ideas definidas al respecto la definición de un SIG en un entorno heterogéneo. Este desarrollo ha sido clave para entender mejor la arquitectura y poder demostrar su validez. Mencionar que la arquitectura propuesta pretende ser universal, en el sentido de que no esta ligada a ningún software o protocolo determinado. No obstante, para la implementación realizada se han utilizado desarrollos ya existentes como el caso del protocolo de comunicaciones JNLP a través de la plataforma de programación Java Web Start.
Uno de los aspectos clave de la arquitectura que se propone es la propia definición en red. Este hecho permite la distribución y posterior instalación del cliente SIG de forma optimizada por medio de la personalización interactiva que los propios usuarios pueden llevar a cabo.
Finalmente mencionar que la arquitectura descrita define un marco abierto para el desarrollo de SIGs pero que solamente con la inclusión de un conjunto de paquetes que cubran un amplio abanico de funcionalidades se podrá satisfacer las necesidades de un colectivo numeroso. Es por tanto necesario para un uso real la implementación de nuevos paquetes que extiendan la aplicación SIG existente dotándole de nuevas funcionalidades. El uso de librerías OpenSource como por ejemplo Terralib y Geotools 2 permite el desarrollo de paquetes con un mínimo coste de desarrollo.
Por otra parte el sistema puede ser extendido en la capa de middleware incluyendo funcionalidades de monitorización, de modo que generen estadísticas acerca del uso real del sistema.
6. Terminología usada SIG
Sistema de Información Geográfica
Cliente
Aplicación ejecutada en un PC, la cual conecta a un servidor (o middleware) para implementar distintas funciones. Concretamente permitirá al usuario hacer una selección interactiva de las funcionalidades que desea instalar.
Servidor
Ordenador dentro de una red encargado de manejar recursos. En nuestro caso el servidor es el encargado del envío de los paquetes seleccionados al cliente.
Cliente-servidor
Arquitectura de red, en la que cada ordenador o proceso de la red es un cliente o un servidor.
Aplicación SIG
Software que implementa una serie de funcionalidades relacionadas con los SIG.
Cliente SIG
Aplicación SIG inmersa dentro de una arquitectura cliente servidor.
Sistema
Utilizado como sinónimo de Sistema corporativo
Núcleo ligero
Conjunto de clases que representan la parte central y más importante de la aplicación, encargadas de conectar los demás componentes.
Paquete
Conjunto de clases que tiene como finalidad dotar de funcionalidad adicional a la aplicación. Para esto debe conectar con el núcleo y acoplarse su estructura.
Punto de extensión
Objetos de la aplicación accesibles desde los paquetes externos, lo que permite incluir funcionalidad adicional sin necesidad de modificar el código interno.
DTD
Document Type definition. Archivo asociado al núcleo que define las estructura de los archivos xml de conexión.
Archivo xml de configuración Fichero
definido
especificaciones
en del
XML
siguiendo
protocolo
JNLP,
las cuya
funcionalidad principal es informar al servidor de los paquetes que tiene que ser enviados al cliente. Archivo xml de conexión
Fichero definido en XML según el DTD del núcleo, que debe ser incluido en cada paquete que desea extender la aplicación, indicando en el mismo los puntos de extensión y las clases que implementan cada funcionalidad.
Middleware
Capa de software entre los servicios de la red y la aplicaciones. En este caso entre el cliente que realiza la demanda los paquetes y el servidor que los envía.
Arquitectura
Empleado como sinónimo de arquitectura software.
Interface
Protocolo que permite a distintos objetos interactuar unos con otros.
Servlet
Programa que se ejecuta en la parte del servidor, el cual permite extender la funcionalidad del servidor web.
GNU
General public license. Tipo de licencia que permite distribuir el código libremente y hacerlo disponible al público.
SIG monolítico
Sistema de información geográfica diseñado según una arquitectura estática que contiene toda la funcionalidad contemplada pero que no es extensible.
Parsear
Separar el contenido de un texto para poder procesarlo.
Usuario SIG
Persona que hace uso de un sistema de información geográfica como herramienta de trabajo.
Administrador del sistema
Persona encargada de mantener y actualizar un sistema informático.
Open source
Código abierto. Software del que se proporcionan los ficheros fuentes.
API
Application Programming Interface
7. Referencias
Anderson G, Moreno-Sanchez R. 2003 “Building Web-Based Spatial Information Solutions around Open Specifications and Open Source Software.” Transactions in GIS, pp 447-466.
Bolour A. 2003. Notes http://www.eclipse.org/articles.
of
the
Eclipse
Plug-in
Architecture,
Fischer M., Nijkamp P. 1993"Design and use of geographic information systems and spatial models." Geographic Information Systemes, Spatial Modelling, and Policy Evaluation. Ed. Manfred M. Fischer and Peter Nijkamp. New York: Springer-Verlag,. pp 3-16.
Schmidt R. 2001. Java Network Launching Protocol & API Specification (JSR – 56), http://java.sun.com.