Tutorial: publicar un servicio WFS-T
Con este tutorial aprenderá a publicar un servicio WFS con acceso de lectura-escritura mediante la habilitación de transacciones (WFS-T) utilizando el Administrador de ArcGIS Server. Un servicio de WFS con transacciones (WFS-T) permite a los clientes WFS aplicar ediciones (inserciones, borrados y actualizaciones) a los datos en la base de datos de origen a través del servicio de WFS. Para aplicar los cambios a través de WFS-T, los datos deben proceder de una geodatabase de ArcSDE. Este tutorial muestra el flujo de trabajo que se deberá utilizar cuando se trabaja específicamente con datos versionados.
Cuando un servicio de mapas o un servicio de geodatos se publica con los recursos de WFS, los clientes WFS compatibles con OGC pueden acceder a los datos, incluida la extensión de Data Interoperability en ArcCatalog y ArcMap. Estos clientes WFS también pueden ver los últimos cambios realizados en los datos. Si es la primera vez que usa los servicios WFS y desea obtener más información antes de proseguir con este tutorial, consulte Servicios WFS.
Si acaba de instalar ArcGIS Server, necesita completar algunos pasos de preparación antes de que pueda iniciar sesión en el Administrador o publicar servicios. Puede encontrar dichos pasos en la sección Primeros pasos después de la instalación de este sistema de ayuda.
Requisitos de configuración para publicar un servicio
Para crear un servicio de mapas o un servicio de geodatos, es necesario que coloque el documento de mapa (.mxd), geodatabase (Archivo o Personal), o archivo de conexión SDE en una ubicación compartida visible para todos los equipos del contenedor de objetos de servidor (SOC) en el servidor SIG. La Cuenta SOC creada en las operaciones posteriores a la instalación debe tener también permiso para leer el documento de mapa y todos los datos a los que hace referencia (servicio de mapas), o a todos los datos de la geodatabase que desea publicar (servicio de geodatos).
Los servicios WFS son compatibles con las entidades simples procedentes de fuentes ESRI, tales como shapefiles y geodatabases. Sin embargo, si va a habilitar transacciones en el servicio (WFS-T), todos los datos que desee editar deben estar almacenados en una geodatabase de ArcSDE.
Decidir entre un servicio de geodatos o un servicio de mapas
Con el servicio WFS, tiene la opción de publicar un servicio de geodatos o un servicio de mapas. Hay unas pocas diferencias que tiene que tener en cuenta cuando seleccione el tipo de servicio que va a crear. Las siguientes secciones resumen las funcionalidades disponibles en los servicios de geodatos y mapas para ayudarle a identificar el tipo de servicio que mejor se ajusta a sus requisitos.
Servicios de geodatos
Un servicio de geodatos WFS le permite acceder a una geodatabase a través de Internet o con cualquier cliente de WFS compatible con OGC. Se puede crear un servicio de geodatos para cualquier tipo de geodatabase, entre los que se incluyen geodatabases de ArcSDE, geodatabases personales y geodatabases de archivo. Cuando se crea un servicio WFS a partir de un servicio de geodatos, es importante tener en cuenta que todas las clases de entidad de la geodatabase quedarán expuestas en el servicio.
Los servicios de geodatos son útiles en situaciones en las que necesita acceder a geodatabases en ubicaciones remotas. Por ejemplo, en el caso de que una empresa quiera configurar geodatabases de ArcSDE para gestionar datos en sus oficinas de Los Ángeles y Nueva York. Una vez creadas, cada oficina puede publicar su geodatabase de ArcSDE en Internet mediante un servicio de geodatos.
Servicios de mapas
Un servicio de mapas WFS representa un documento de mapa (.mxd) que ha puesto a disposición de otras personas a través de Internet o cualquier cliente WFS compatible con OGC. Los servicios de mapas con funcionalidad WFS le proporcionan un elevado control de los datos publicados a través del servicio. A continuación, se exponen algunos de los motivo habituales para configurar un servicio de mapas:
- A diferencia de un servicio de geodatos, un servicio de mapas único puede incluir datos procedentes de diferentes orígenes, incluidos los datos procedentes de varias geodatabases (personal, archivo, y ArcSDE) y shapefiles.
- Puede seleccionar las clases de entidad que va a exponer a través del servicio de mapas.
- Puede cambiar el nombre de las clases de entidad en el documento de mapa de manera que el servicio no exponga los nombres reales en la fuente de datos.
También hay algunas limitaciones asociadas con los servicios de mapas de WFS. Tenga en cuenta los siguientes aspectos cuando publique un servicio WFS a partir de un documento de mapa:
- El documento de mapa es una especificación de las capas que estarán disponibles en el servicio WFS. La simbología, definiciones de consulta y alias de campo definidos en el nivel de capa no se transferirán al servicio WFS ya que el objetivo del servicio en exponer las entidades en los datos. Para exponer la propiedades visuales del mapa mediante especificaciones OGC, utilice un servicio WMS.
- Dos o más capas del mapa no pueden hacer referencia a la misma clase de entidad.
- Dos o más capas del mapa no pueden tener el mismo nombre.
- Dado que WFS sólo trabaja con entidades, cualquier capa ráster del mapa quedará excluida del servicio.
- Las tablas no espaciales no se exponen.
- Su desea que el servicio WFS sea compatible con transacciones para edición (WFS-T), los datos de origen de todas las capas del mapa deben proceder del mismo espacio de trabajo, por ejemplo, la misma geodatabase de ArcSDE.
Preparar los datos para un servicio WFS-T
Antes de crear un servicio WFS con acceso de lectura y escritura de datos, hay algunos requisitos iniciales para configurar los datos:
- Los datos deben estar cargados en una geodatabase de ArcSDE.
- Si desea trabajar con datos versionados, deben estar registrados como versionados.
- La versión deberá estar específicamente adaptada para que los editores de WFS puedan trabajar con ella. Si todavía no existe, deberá crearla.
- Se deberá otorgar permiso a los editores específicos de WFS para que puedan acceder al archivo de conexión a SDE para editarlo.
Siga los siguientes pasos para preparar los datos de un servicio WFS-T con datos versionados:
- Cargue los datos que desee publicar en una Geodatabase de ArcSDE. Para obtener más información sobre la carga de datos, consulte Cargar datos en ArcCatalog.
- Registre los datos como versionados, para ello haga clic con el botón derecho del ratón sobre el dataset y seleccione Registrar datos como versionados en el menú contextual. Para obtener más información, consulte Registrar datos como versionados.
-
Ahora que los datos están versionados, debe dedicar específicamente una versión para que los usuarios de WFS la puedan editar. Si no existe dicha versión, siga estos pasos para crear una nueva versión para que los editores de WFS puedan trabajar con ella. Haga clic con el botón derecho del ratón en el archivo de conexión y seleccione Versiones.
-
El el cuadro de diálogo Administrador de versiones, haga clic con el botón derecho del ratón en la versión que desee crear como versión secundaria y, a continuación, haga clic en Nuevo. Se creará una nueva versión que pueden utilizar los editores de WFS.
-
Introduzca un Nombre para la nueva versión. Si otros usuarios, además del creador, van a editar datos, debe configurarse la opción de Permiso en Público.
Si va a crear un servicio de Geodatos, continúe hasta el paso 6. Si va a crear un servicio de mapas, vaya directamente al paso 9.
-
Para asegurar que el servicio de geodatos publica los datos apropiados cuando se crea, las propiedades de conexión de la geodatabase deben estar actualizadas de modo que puedan hacer referencia a la nueva versión de WFS que se ha creado.
Para ello, haga clic con el botón derecho del ratón en el archivo de conexión de la geodatabase y seleccione Propiedades de conexión.
-
En la sección Detalles de conexión, haga clic en el botón Cambiar.
-
Seleccione la versión adaptada para los usuarios de WFS y haga clic en Aceptar.
- Para asegurar que el servicio de mapas publica los datos adecuados cuando se crea, el documento de mapa debe estar actualizado de modo que pueda hacer referencia a la nueva versión de WFS que se ha creado. Para ello, haga clic en la pestaña Fuente de la tabla de contenido.
-
Haga clic con el botón derecho del ratón en la geodatabase y, a continuación, seleccione Cambiar versión. Se abrirá el cuadro de diálogo Administrador de versiones.
-
En el cuadro de diálogo Administrador de versiones, seleccione la versión adaptada para los usuarios de WFS y haga clic en Aceptar.
- Guarde los cambios en el documento de mapa.
Publicar un servicio WFS
Siga los siguientes pasos para crear un servicio de geodatos o mapas:
- Haga clic en Publicar un recurso SIG en la pestaña Servicios.
- Para seleccionar el Recurso, utilice el cuadro desplegable para navegar hasta el documento de mapa (.mxd) o geodatabase (personal, archivo o archivo de conexión a SDE [.sde]) que desea publicar.
- En el cuadro Nombre, introduzca el nombre del servicio. El nombre no puede tener más de 120 caracteres de longitud y sólo puede contener caracteres alfanuméricos y guiones bajos.
-
Hay tres opciones para que la carpeta publique el servicio:
- Utilice el menú desplegable para elegir una carpeta existente.
- Cree una nueva carpeta.
- Acepte la carpeta por defecto que publicará en la carpeta raíz.
Después de seleccionar dónde publicar el servicio, haga clic en Siguiente para continuar.
- Seleccione WFS para habilitar el recurso del servicio y haga clic en Siguiente.
- Revise la información del servicio que está a punto de crear y, a continuación, haga clic en Finalizar para crear el servicio.
Si ya existe un servicio que no tiene habilitados los recursos WFS, siga los siguientes pasos para habilitarlo.
- El servicio puede aparecer con el estado de Iniciado. Para cambiar los ajustes del servicio, debe pararse el servicio. Si el estado se muestra como Iniciado, marque la casilla de verificación situada al lado del servicio y haga clic en el botón Parar.
- Haga clic en la opción Editar del servicio. Podrá editar las propiedades del servicio, incluidos los recursos.
- Haga clic en la carpeta Recursos.
- Marque la casilla de verificación WFS.
- Haga clic en el botón Aceptar para habilitar el recurso.
Habilitar transacciones en el servicio WFS
Una vez que se ha publicado un servicio WFS, hay una opción denominada Transacciones (WFS-T), que debe habilitarse para que los usuarios de WFS puedan editar y aplicar cambios a los datos en la base de datos de origen.
Siga los siguientes pasos para habilitar las transacciones de un servicio WFS.
- En la pestaña Servicios del Administrador de ArcGIS Server, haga clic en Administrar servicios.
- Haga clic en la flecha de lista desplegable Servicios en y navegue a la carpeta de servicios que contenga su servicio publicado.
- El servicio puede aparecer con el estado de Iniciado. Para cambiar los ajustes del servicio, debe pararse el servicio. Si el estado se muestra como Iniciado, marque la casilla de verificación situada al lado del servicio y haga clic en el botón Parar.
- Haga clic en el icono Editar para abrir el cuadro de diálogo Propiedades.
- En el cuadro de diálogo de propiedades, seleccione la pestaña Recursos.
- Haga clic en la opción WFS (en el nombre, no en la casilla de verificación) en la ventana Seleccionar y configurar recursos. Con esto se podrán visualizar las propiedades del servicio WFS.
- Marque la casilla de verificación Habilitar transacciones.
Cómo adquirir la URL del servicio WFS
- En la pestaña Servicios del Administrador de ArcGIS Server, haga clic en Administrar servicios.
- Haga clic en la flecha de lista desplegable Servicios en y navegue a la carpeta de servicios que contenga su servicio publicado.
- El servicio deberá aparecer con el estado de Iniciado. Si el estado se muestra como Parado, marque la casilla de verificación situada al lado de su servicio y haga clic en el botón Iniciar.
- Para adquirir la URL del servicio WFS, haga clic en el icono Editar para abrir el cuadro de diálogo Propiedades.
- Haga clic en la pestaña Recursos.
- Resalte la opción WFS en la ventana Seleccionar y configurar recursos. Con esto se podrán visualizar las propiedades del servicio WFS.
- La URL del servicio WFS se encuentra ubicada en la ventana Acceso Web. Esta es la URL que todos los usuarios deben utilizar para conectarse al servicio WFS que ha publicado.
Una vez haya publicado un servicio WFS, cualquier cliente que admita el servicio WFS 1.1 y el perfil de entidades simples de GML, incluidos los navegadores Web, podrá utilizarlo. Puede utilizar también la extensión Data Interoperability en ArcCatalog y ArcMap para trabajar con los servicios WFS. En las siguientes secciones aprenderá a acceder a los servicios WFS a través de un navegador Web y la extensión Data Interoperability en ArcCatalog.
Conectar el servicio WFS a través de un navegador Web
Un navegador Web es uno de los clientes más sencillos de un servicio WFS. Puede solicitar información mediante HTTP, y las respuestas o excepciones se devuelven a través del navegador.
Para conectarse al servicio, necesita saber la URL del WFS, que se encuentra ubicada en Propiedades del Servicio en la pestaña Recursos del Administrador de ArcGIS Server o ArcCatalog. Una vez tiene la URL, puede utilizar las operaciones OGC estándar para solicitar información acerca del servicio a través del HTTP. Entre las operaciones que puede utilizar para solicitar información se incluyen las siguientes:
GetCapabilities
Esta solicitud le devolverá todo tipo de entidades y funcionalidades disponibles a través del servicio en formato GML. Para utilizar la operación GetCapabilities en un navegador Web, copie y pegue la URL del WFS en la barra de direcciones y agregue ?request=getCapabilities al final, tal como se muestra en el ejemplo y la captura de pantalla siguiente.
Ejemplo de URL: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getcapabilities
El siguiente gráfico es un ejemplo de una funcionalidad devuelta en la operación GetCapabilities:
GetCapabilities también devuelve una lista de todas las tablas y clases de entidad disponibles:
DescribeFeatureType
Esta solicitud describe la información del campo de una o más entidades en el servicio WFS. Esto incluye nombres de campo, tipos de campo, valores de campo mínimos y máximos permitidos, y cualquier otra restricción configurada para un campo de las tablas o clases de entidad.
Para utilizar la operación DescribeFeatureType en un navegador Web, copie y pegue la URL del WFS en la barra de direcciones y agregue ?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0 al final de la URL. Esto devolverá toda la información del campo de cada uno tablas y tipos de entidad disponibles en el servicio de entidades, tal como se puede ver en la captura de pantalla siguiente.
Ejemplo de URL: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0
Agregar filtros
Puede también especificar una única tabla o clase de entidad de la que desea información del campo incorporando la siguiente solicitud al final de la URL con el nombre de la tabla o tipo de entidad: ?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=[enter feature type here]&VERSION=1.1.0
En el siguiente ejemplo, la solicitud DescribeFeatureType se utiliza para identificar la información del campo para el tipo de entidad denominada ciudades.
Ejemplo de URL: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=cities&VERSION=1.1.0
GetFeature
Esta solicitud devuelve información sobre tipos de entidad específicos disponibles a través del servicio WFS. Además, se pueden utilizar filtros para refinar la información devuelta. Para obtener más información acerca de los diferentes filtros disponibles en los servicios WFS, consulte Servicios WFS.
Para utilizar la operación GetFeature en un navegador Web, copie y pegue la URL del WFS en la barra de direcciones y agregue ?request=getFeature&typename=[enter feature type here] al final de la URL. Esto devolverá toda la información sobre atributos y geometría de cada entidad o fila en el tipo de entidad.
Ejemplo de URL: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities
Puede también agregar filtros a la solicitud para refinar la información devuelta. Por ejemplo, puede solicitar todas las ciudades comprendidas en un rango especificado de coordenadas. En el ejemplo siguiente, dos ciudades están comprendidas en un rango especificado de coordenadas.
Ejemplo de URL: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities&BBOX=46.90,-76.21,42.12,-72.88
Utilizar la extensión Data Interoperability para conectarse a un servicio WFS
La extensión Data Interoperability le permite leer y escribir datos en formatos no nativos de ArcGIS. Puede utilizar la herramienta Conexión de interoperabilidad en ArcCatalog para conectarse directamente a formatos de datos externos de ESRI, incluidos los servicios WFS. Una vez realizada la conexión, la fuente de datos aparecerá en la entrada Conexión de interoperabilidad del árbol de catálogo. Una conexión es como cualquier otro dataset que puede agregar a ArcMap o utilizarlo con herramientas de geoprocesamiento. Para obtener más información acerca del uso de la Extensión Data Interoperability con servicios WFS en ArcMap, consulte Cómo trabajar con WFS con el ArcGIS Desktop.
Gestionar cambios realizados a través de un servicio WFS-T con datos versionados
Es importante crear un flujo de trabajo eficaz para gestionar los cambios realizados a través de un servicio WFS-T. Si ha seguido el método recomendado para crear una versión independiente de WFS para que los editores de WFS-T puedan trabajar con ella, el sistema que ha configurado deberá parecerse al siguiente diagrama:
En este ejemplo, los editores de WFS-T y los editores de ArcMap utilizan versiones de manera que cada grupo tenga su propia vista aislada de la geodatabase con la que trabajar. Los editores de ArcMap editan directamente la versión por defecto a través de ArcMap. Los editores de WFS-T acceden al servicio WFS desde la Internet. Esto permite que los editores de WFS-T realicen ediciones en la versión de WFS que fue creada como versión secundaria de la predeterminada. Para obtener más información acerca de las versiones, consulte Recorrido rápido por las versiones en el sistema de ayuda del escritorio.
Para mantener sincronizadas ambas versiones, se puede ejecutar con frecuencia un proceso para actualizar la versión de WFS con los cambios a partir de la versión por defecto, y actualizar la versión por defecto con los cambios a partir de la versión de WFS. Se trata de un proceso de dos pasos en el flujo de trabajo de edición para cualquier sistema versionado denominado conciliar y enviar. Este proceso se puede automatizar o puede administrarlo un editor (dependiendo del permiso que posea), o puede hacerlo también un administrador de base de datos. Para obtener más información acerca del proceso de conciliar y enviar, consulte Recorrido rápido por el proceso de edición de versiones.
Cuando se ejecuta, la operación de conciliar recuperará las actualizaciones a partir de la versión por defecto a la sesión actual de edición en la versión de WFS. Se pueden producir conflictos si se han realizado cambios de las mismas entidades en ambas versiones. En este caso, puede configurar la resolución de conflictos tanto para que sea automática como para resolver manualmente cada conflicto mediante el cuadro de diálogo de resolución de conflictos.
Después de gestionar todos los conflictos, se puede ejecutar la operación de envío. Este proceso fusiona los cambios de la versión WFS en la versión por defecto.
El proceso completo de conciliar y enviar se resume en el diagrama siguiente. Aquí, la versión WFS recupera las actualizaciones a partir de las versión por defecto durante la conciliación. Después de incorporar los cambios, la versión WFS envía las actualizaciones a la versión por defecto mediante la operación de envío. En este punto, la versión por defecto y la WFS tienen el mismo contenido.
Después de finalizar el proceso de conciliar y enviar, ambas versiones están actualizadas con la representación más actualizada de las entidades, y los editores de WFS pueden continuar realizando cambios.
Es importante tener en cuenta que si se produce un bloqueo importante mientras se ejecuta la función conciliar y enviar, el sistema no considerará correcto el proceso. Se trata de un precaución que se aplica para evitar conflictos entre entidades bloqueadas por clientes WFS-T y entidades cambiadas mediante el proceso de conciliación y envío. Igualmente, ejecutar conciliar y enviar bloqueará la versión WFS-T para evitar que los editores de WFS-T realicen bloqueos y peticiones de transacción durante el proceso de conciliación y envío.
Para tener en cuenta esta precaución, se recomienda que el proceso de conciliación y envío se ejecute en momentos determinados que todos los editores de WFS-T conozcan con antelación. Con ello, los cambios que realizan los editores se enviarán a la base de datos. También es posible que los administradores tengan que eliminar manualmente bloqueos de la tabla de bloqueos antes de conciliar y enviar.
Para obtener más información acerca del esquema de bloqueos en WFS-T, consulte Servicios WFS.