En informática , el estándar de interfaz del servicio de funciones web (WFS) del Open Geospatial Consortium proporciona una interfaz que permite solicitudes de funciones geográficas en la web mediante llamadas independientes de la plataforma. Se puede pensar en las características geográficas como el " código fuente " detrás de un mapa, mientras que la interfaz WMS o los portales de mapas en mosaico en línea como Google Maps devuelven sólo una imagen, que los usuarios finales no pueden editar ni analizar espacialmente . El GML basado en XML proporciona la codificación de carga útil predeterminada para transportar características geográficas, pero otros formatos como los archivos de forma también pueden servir para el transporte. A principios de 2006, los miembros de OGC aprobaron el perfil de características simples de OpenGIS GML. [1] Este perfil está diseñado tanto para aumentar la interoperabilidad entre servidores WFS como para mejorar la facilidad de implementación del estándar WFS.
La membresía de OGC definió y mantiene la especificación WFS. Existen numerosas implementaciones comerciales y de código abierto del estándar de interfaz WFS, incluidas las implementaciones de referencia de código abierto GeoServer y deegree . La página de productos de implementación de OGC [2] proporciona una lista completa de implementaciones de WFS.
La especificación WFS define interfaces para describir operaciones de manipulación de datos de características geográficas. Las operaciones de manipulación de datos incluyen la capacidad de:
El servicio de funciones web básico permite consultar y recuperar funciones. Un servicio de funciones web transaccional (WFS-T) permite la creación, eliminación y actualización de funciones.
Un WFS describe operaciones de descubrimiento, consulta o transformación de datos. El cliente genera la solicitud y la publica en un servidor de funciones web mediante HTTP. Luego, el servidor de funciones web ejecuta la solicitud. La especificación WFS utiliza HTTP como plataforma informática distribuida, aunque este no es un requisito estricto.
Hay dos codificaciones definidas para las operaciones WFS:
En la taxonomía de servicios web , WFS se clasifica mejor como un servicio de tipo RPC no RESTful.
La especificación WFS Web Feature Services o Web Feature Server admite dos modelos de comunicación:
El Servicio de notificación web (WNS) es una de las especificaciones de implementación del modelo Pub/Sub. Independientemente del modelo, el formato URL se utiliza y se especifica en la especificación WFS. En este momento no existen implementaciones de estándar abierto de WNS. Los proveedores planean lanzar implementaciones una vez que se haya ratificado el estándar.
Los datos que se pasan entre un servidor de funciones web y un cliente se codifican con Geography Markup Language (GML), un dialecto XML que se puede utilizar para modelar características geográficas.
La versión 1.0.0 de la especificación WFS requiere el uso de GML versión 2.1.2, mientras que la versión 1.1.0 de la especificación WFS requiere el uso de GML versión 3.1.1. Para ambas versiones de la especificación WFS, también se puede definir un número arbitrario de otras codificaciones, además del formato GML 2.1.2 o 3.1.1 requerido (para 1.0.0 y 1.1.0 respectivamente).
GML 2.1.2 contiene soporte de codificación para 'primitivas' geométricas básicas: puntos, líneas, polígonos, etc.
GML 3.1.1 contiene soporte de codificación para representaciones geométricas más avanzadas: curvas, superficies, dimensiones múltiples (tiempo, elevación, imágenes multibanda). Además, GML 3.1.1 incluye soporte de codificación para conjuntos de datos topológicamente integrados.
El modelo de interfaz estática para el modelo de servicio web OGC aparece en la siguiente figura. Las operaciones Transaction y LockFeature también son opcionales.
Al escribir un WFS, debe implementar las siguientes operaciones:
El cliente obtiene actualizaciones mediante uno de dos mecanismos:
Modelo de notificación web de interfaz dinámica WFS
Este modelo utiliza el servicio de notificación web OGC para enviar notificaciones de actualización a clientes registrados.