SIRA (Ordoñez, 2006) es una herramienta software cuyo objetivo es soportar la gestión eficiente de los recursos hídricos; es una aplicación Web de fácil manejo, expandible a nuevos análisis y funcionalidades y que permite agregar cartografía nueva, desarrollada con base en una arquitectura abierta y orientada al servicio, con tecnología robusta y software libre. En SIRA existen cuatro roles o usuarios: administrador de cartografía, administrador del componente ambiental, usuario de ingreso de datos y usuario de consulta. La integración con SIRA, como con cualquier otra aplicación se realiza exponiendo el servicio del catalogo como servicio Web. Existen dos posibilidades, utilizar las especificaciones de los servicios Web convencionales o utilizar las especificaciones de servicios OGC. La primera opción tiene el inconveniente de utilizar estructuras de mensajes no estandarizadas.
La mejor opción es implementar las operaciones y los mensajes definidos por la especificación catalogo de OGC, a continuación se listan dichas operaciones (OGC, 2005):
OGC_Service.GetCapabilities: Como respuesta se obtiene el documento que describe las características del servicio de catalogo. Esta operación es obligatoria.
CSW-Discovery.GetRecords: Ejecuta una consulta y genera el documento de respuesta con los resultados. En el modelo general existen dos operaciones search y present, estas dos operaciones son combinadas en la operación GetRecords. Esta operación es obligatoria.
CSW-Discovery.GetRecordById: Consulta registros del repositorio utilizando su identificador y genera un documento de respuesta. Es la implementación de la operación Present definida por el modelo general del catalogo. Se asume que
previamente se conocen los identificadores que serán usados en la operación. Esta operación es un subconjunto de la operación GetRecord utilizada para apuntar registros específicos en el catalogo. Esta operación es obligatoria.
CSW-Discovery.DescribeRecord: Permite a un cliente del catalogo descubrir elementos del modelo de información soportados por el catalogo. Todas las estructuras de información pueden ser descritas.
CSW-Discovery.GetDomain: Determina el dominio y genera un documento de respuesta. Es usado para obtener el rango de valores permitido en los metadatos o en los elementos de respuesta en tiempo de ejecución.
CSW-Publication.Transaction: Ejecuta una transacción y genera un documento de respuesta. Define una interfaz para crear, modificar o borrar registros del catalogo.
CSW-Publication.Harvest: Genera un documento de respuesta que confirma la recepción de la petición y la ejecuta de forma asíncrona. El modelo general define dos operaciones que pueden ser utilizadas para crear o actualizar registros en el catalogo. Estas son, la operación Transactions y la operación HarvestRecords. La operación Harvest referencia los datos a ser insertados o actualizados en el catalogo, quien posteriormente se responsabiliza por traer la información y procesarla. Tiene dos formas de operación: Síncrona o asíncrona.
Como se puede apreciar, implementando las tres operaciones obligatorias se cumple con la especificación OGC Catalog y se obtiene un perfil del catálogo con funcionalidades básicas. Cada operación tiene asociado duplas de mensajes petición / respuesta, como se aprecia en la Figura 6-9.
Figura 6-9 Mensajes propuestos por OGC Catalog
Como contenedor se especifica el protocolo SOAP, de esta forma cuando el cliente o el servidor envían una petición o respuesta, se genera un mensaje SOAP cuyo contenido es la operación definida por el mensaje OGC. El formato de los mensajes puede consultarse en la especificación. Las operaciones, por el contrario, no están especificadas y se pretende que estas sean construidas de acuerdo al contexto de aplicación. (OGC, 2005)
Se propone implementar las siguientes operaciones:
Nombre de la Operación Propuesta Equivalencia OGC
Metadatos() OGC_Service.GetCapabilities
DominioQoS() CSW-Discovery.GetDomain
BuscarServicio() CSW-Discovery.GetRecordById
IngresarServicio() CSW-Publication.Transaction
ActualizarServicio() CSW-Publication.Transaction
BorrarServicio() CSW-Publication.Transaction
Tabla 6-3 Operaciones propuestas para la implementación.
La operación BuscarQoSInfo permite extraer registros ordenados del catalogo de acuerdo a un parámetro de calidad solicitado. DominioQoS entrega los criterios de calidad definidos por el esquema y el formato definido que debe utilizarse en el momento de realizar la consulta.
En general el proceso de gestión de servicios y la arquitectura no cambia, a nivel programático se agregan estas operaciones para lograr que diversas aplicaciones accedan al catálogo utilizando un mecanismo estándar. En la Figura 6-10 puede apreciarse la relación del modulo de integración propuesto con el resto del sistema.
6.6 CONCLUSIONES
Los diferentes frameworks que existen para implementar aplicaciones Web geográficas aun están en etapa de desarrollo. Se destacan las herramientas dispuestas por el proyecto Deegree que provee elementos para construir Infraestructura de Datos espaciales utilizando especificaciones OGC y GeoNetwork Open Source que presenta una aplicación de catálogo completa en el manejo de metadatos.
El modelo de metadatos geográfico es extenso, por lo que se realizó un estudio de los elementos importantes dentro de las especificaciones para ser incluidos en el prototipo. Los elementos de calidad se configuran en un esquema flexible que permite incluir elementos que se consideren importantes para describir el servicio.
Se propone un modulo de integración para ser implementado que incluye un conjunto de mensajes capaz de expresar los requerimientos de calidad deseados en el momento de realizar la consulta. Esto disminuye el tiempo de repuesta ya que el catalogo actúa por si solo sin necesidad de intermediarios.
7 EXPERIMENTACIÓN