Didacticiel : Publication d'un service WFS-T

Complexité : Débutant Exigences en matière de données : Utiliser vos propres données Objectif : Publier un service WFS-T sur ArcGIS Server et l'utiliser dans un navigateur Web.

Ce didacticiel explique comment publier un service WFS avec transactions (WFS-T) sur ArcGIS Server à l'aide d'ArcMap. WFS est une spécification publiée par l'OGC (Open Geospatial Consortium, Inc.) qui permet de diffuser les entités géographiques sur Internet. Un service WFS avec des transactions (WFS-T) permet aux clients WFS d'appliquer des modifications (insertions, suppressions et mises à jour) aux données dans la base de données source par l'intermédiaire du service WFS.

Lorsqu'un service de carte ou un service de géodonnées est publié avec les fonctions WFS, les données sont accessibles par les clients WFS conformes à l'OGC, y compris l'Extension ArcGIS Data Interoperability pour Desktop dans ArcGIS for Desktop. Ces clients WFS peuvent également voir les modifications les plus récentes apportées aux données. Si vous ne connaissez pas les services WFS et souhaitez en savoir plus avant d'entreprendre ce didacticiel, reportez-vous à la rubrique Services WFS.

Les services WFS prennent en charge des entités simples émanant de sources Esri, telles que les fichiers de formes et les géodatabases. Toutefois, si vous comptez activer les transactions sur le service (WFS-T), toutes les données que vous souhaitez mettre à jour doivent être stockées dans une géodatabase ArcSDE. Ce didacticiel montre le workflow qui doit être utilisé spécifiquement lors de l'utilisation de données versionnées.

Avant de commencer ce didacticiel

Si vous venez d'installer ArcGIS Server, vous devez réaliser certaines étapes préparatoires avant de pouvoir vous connecter au serveur et publier des services.

Choix d'un service de géodonnées ou d'un service de carte

Avec les services WFS, vous avez la possibilité de publier un service de géodonnées ou un service de carte. Vous devez prendre en compte certaines différences lorsque vous sélectionnez le type de service vous allez créer. Les sections suivantes récapitulent les fonctionnalités disponibles avec les services de géodonnées et les services de carte pour vous aider à identifier le type de service qui répond le mieux à vos besoins.

Services de carte

Un service de carte WFS représente une carte que vous avez mise à la disposition d'autres personnes par le biais d'Internet ou de tout client WFS conforme à l'OGC. Les services de carte avec la fonctionnalité WFS vous permettent de contrôler étroitement les données publiées par l'intermédiaire du service. Voici quelques raisons courantes pour la configuration d'un service de carte :

  • Contrairement à un service de géodonnées, un service de carte seul peut comprendre des données de diverses sources, y compris des données de plusieurs géodatabases (fichier et ArcSDE), ainsi que des fichiers de formes.
  • Vous pouvez sélectionner les classes d'entités à afficher par le biais d'un service de carte.
  • Vous pouvez renommer les classes d'entités dans la carte afin que le service n'affiche pas les noms réels dans la source de données.

Les services de carte WFS connaissent également certaines limites. Prenez en compte les points suivants lors de la publication d'un service WFS à partir d'une carte :

  • La carte est simplement une spécification des couches qui seront disponibles dans votre service WFS. La symbologie, les définitions de requête et les alias de champ définis au niveau de la couche ne sont pas transférés vers le service WFS, car l'objectif du service est d'afficher les entités dans les données. Pour afficher les propriétés visuelles de votre carte par l'intermédiaire des spécifications OGC, utilisez un service WMS.
  • Deux couches ou plus dans la carte ne peuvent pas référencer la même classe d'entités.
  • Deux couches ou plus dans la carte ne peuvent pas avoir le même nom.
  • Comme WFS ne fonctionne qu'avec des entités, les couches raster de la carte sont exclues du service.
  • Les tables non spatiales ne sont pas affichées.
  • Si vous souhaitez que le service WFS prenne en charge des transactions pour la mise à jour (WFS-T), les données source de toutes les couches de la carte doivent provenir du même espace de travail, par exemple, la même géodatabase ArcSDE.

Services de géodonnées

Un service de géodonnées WFS vous permet d'accéder à une géodatabase ArcSDE ou fichier via Internet ou tout client WFS conforme à l'OGC. Lors de la création d'un service WFS à partir d'un service de géodonnées, il est important de ne pas oublier que toutes les classes d'entités de la géodatabase seront affichées dans le service.

Les services de géodonnées s'avèrent particulièrement utiles lorsque vous devez accéder à des géodatabases distantes. Par exemple, une entreprise peut configurer des géodatabases ArcSDE pour gérer des données stockées dans ses bureaux de Los Angeles et New York. Une fois les géodatabases ArcSDE créées, chaque bureau peut les publier sur Internet à l'aide d'un service de géodonnées.

Préparation des données pour un service WFS-T

Avant de créer un service WFS avec un accès en lecture et en écriture, vous devez configurer les données de certaines façons :

Suivez les étapes suivantes pour préparer vos données pour un service WFS-T avec des données versionnées :

Etapes :
  1. Dans ArcCatalog ou la fenêtre Catalogue d’ArcGIS for Desktop, chargez les données que vous désirez publier dans une géodatabase ArcSDE. Pour plus d'informations sur le chargement de données, reportez-vous à la rubrique Chargement de données dans ArcCatalog.
  2. Inscrivez les données comme versionnées en cliquant avec le bouton droit de la souris sur le jeu de données et en choisissant Inscrire comme versionné dans le menu contextuel. Pour plus d'informations, reportez-vous à la rubrique Inscription de données comme versionnées.
  3. Maintenant que les données sont versionnées, vous devez consacrer une version spécifique aux utilisateurs WFS pour qu'ils puissent la modifier. En l'absence d'une telle version, cliquez avec le bouton droit sur votre connexion ArcSDE et sélectionnez Administration > Administrer la géodatabase.
  4. Dans la fenêtre de connexion, cliquez sur l'onglet Versions.
  5. Cliquez avec le bouton droit sur la version de la géodatabase pour laquelle vous désirez créer une version enfant et cliquez sur Nouveau.
  6. Donnez un Nom à la nouvelle version. Si des utilisateurs autres que l'auteur vont modifier les données, l'option Autorisation doit être définie sur Publique.
RemarqueRemarque :

Si vous créez un service de carte, passez à la section Services de carte ci-dessous. Si vous créez un service de géodonnées, passez à la section Services de géodonnées ci-dessous.

Pour les services de carte

Pour vous assurer que le service de carte publie les données appropriées lorsqu'il est créé, votre carte doit être mise à jour afin de faire référence à la version WFS créée récemment.

Etapes :
  1. Ouvrez la carte dans ArcMap.
  2. Dans la table des matières d'ArcMap, cliquez sur la vue Répertorier par source Répertorier par source.
  3. Cliquez avec le bouton droit de la souris sur la connexion de géodatabase et sélectionnez Changer de version.
  4. Dans la boîte de dialogue Changer de version, sélectionnez la version consacrée aux utilisateurs WFS et cliquez sur OK.
  5. Enregistrez les changements sur la carte.

Pour les services de géodonnées

Pour vous assurer que le service de géodonnées publie les données appropriées lorsqu'il est créé, les propriétés de connexion de la géodatabase doivent être mises à jour afin qu'elles fassent référence à la nouvelle version WFS qui a été créée.

Etapes :
  1. Dans ArcCatalog ou dans la fenêtre Catalogue d'ArcGIS for Desktop, cliquez avec le bouton droit sur la connexion de géodatabase et sélectionnez Administration > Administrer la géodatabase.
  2. Dans la boîte de dialogue Administration, cliquez sur Versions.
  3. Sélectionnez la version consacrée aux utilisateurs WFS et cliquez sur OK.

Publication d'un service WFS-T sur ArcGIS Server

Pour commencer à publier un service WFS-T, suivez ces étapes.

Etapes :
  1. Suivez les instructions dans le tableau ci-dessous en fonction du type de service que vous publiez :

    Option

    Description

    Pour publier un service de carte WFS-T...

    ...ouvrez la carte dans ArcMap et sélectionnez Fichier > Partager en tant que > Service. Cliquez sur Suivant.

    Pour publier un service de géodonnées WFS-T...

    ...accédez à la géodatabase ArcSDE ou fichier dans ArcCatalog ou dans la fenêtre Catalogue, cliquez avec le bouton droit de la souris sur la géodatabase et sélectionnez Partager en tant que service de géodonnées.

  2. Dans la fenêtre Partager en tant que service, sélectionnez Publier un service. Cliquez sur Suivant.
  3. Dans la boîte de dialogue Publier un service, cliquez sur Connecter à ArcGIS Server Ajouter un serveur ArcGIS pour créer une connexion au serveur.
  4. Dans la fenêtre Ajouter un serveur ArcGIS, sélectionnez Publier les services SIG. Cliquez sur Suivant.
  5. Pour l'URL du serveur, saisissez l'URL du site ArcGIS Server auquel vous souhaitez vous connecter. Par exemple : http://myserver:6080/arcgis
  6. Dans la liste déroulante Type de serveur, sélectionnez ArcGIS Server.
  7. Au cours du processus de publication, un fichier de définition de service est créé et stocké temporairement sur un disque local. A l'issue du processus, la définition de service est chargée sur le serveur et le fichier local est supprimé. Dans le cadre de ce didacticiel, acceptez le dossier par défaut et poursuivez.
  8. Si votre administrateur de serveur a activé la sécurité de votre site, entrez vos Nom d'utilisateur et Mot de passe. Cliquez sur Terminer.
  9. Facultativement, dans la fenêtre Publier un service, entrez un nouveau nom pour le service. Le nom ne doit pas dépasser 120 caractères et ne peut contenir que des caractères alphanumériques et des traits de soulignement. Cliquez sur Suivant.
  10. Par défaut, les services sont publiés sur le dossier racine (racine) d'ArcGIS Server. Les services peuvent être organisés dans des sous-dossiers du dossier racine. Choisissez le dossier où vous souhaitez publier le service, ou créez un dossier pour contenir le service. Cliquez sur Continuer.
  11. L'Editeur de services s'affiche. Dans l'Editeur de services, sélectionnez les opérations que les utilisateurs peuvent effectuer sur le service WFS-T. Vous pouvez contrôler en détails la manière dont le serveur exposera votre service. Cliquez sur l'onglet Fonctionnalités.
  12. Par défaut, Cartographie et KML sont activés. Sélectionnez WFS.
  13. Dans le volet gauche de l'Editeur de services, cliquez sur WFS. Ce volet vous permet de sélectionner la configuration des propriétés de votre service WFS. En définissant les propriétés du service WFS, les clients comprennent mieux le publicateur de service.
    • Le champ URL présente l'URL utilisée par les clients pour accéder au service WFS. Cette URL utilise le format http://<nom du serveur>:6080/arcgis/services/<nom du dossier (le cas échéant)>/<nom du service>/MapServer/WFSServer.
      RemarqueRemarque :

      Copiez et enregistrez l'URL du service WFS. Vous en aurez besoin à d'autres étapes de ce didacticiel.

    • Pour publier un service WMS avec les fichiers de fonctionnalités générés par le système, utilisez l'option par défaut Saisir les propriétés du service ci-dessous. Les champs Nom, Titre et Ressources en ligne sont renseignés automatiquement et ne doivent pas être modifiés. Facultativement, vous pouvez renseigner d'autres propriétés à l'aide des champs de la liste. Pour plus d'informations, reportez-vous à la rubrique Propriétés du service WFS disponible.
    • Pour configurer un service WFS et utiliser des fichiers de fonctionnalités externes, sélectionnez Utiliser les fichiers de fonctionnalités externes. Pour utiliser cette option, vous devez avoir déjà créé un fichier de fonctionnalités WFS. Pour plus d'informations, reportez-vous à la rubrique Utilisation des fichiers de fonctionnalités externes avec les services WFS.
  14. Au bas du volet WFS, cochez la case Activer les transactions. Ceci permettra à WFS de modifier les données dans la base de données source.
  15. Cliquez sur Analyser Analyser. Cette fonction examine votre carte ou géodatabase pour voir si elle peut être publiée sur le serveur.
    AstuceAstuce:

    Pour disposer d'une surface d'affichage plus grande lors de la configuration du service WFS-T, cliquez sur Réduire Réduire en haut du Editeur de services.

  16. Le cas échéant, corrigez les erreurs Erreur dans la fenêtre Préparation avant de pouvoir publier. Vous pouvez éventuellement traiter les avertissements et les messages informationnels pour améliorer davantage la performance et l'apparence du service WFS-T. Pour plus d'informations sur la résolution de ces problèmes, reportez-vous à la rubrique Analyse de votre ressource SIG.
    RemarqueRemarque :

    Vous pouvez enregistrer les dossiers et les géodatabases sur votre site ArcGIS Server et ainsi vous assurer que le serveur puisse reconnaître et utiliser vos données. Si vous effectuez les étapes suivantes, toutes les données référencées par votre ressource SIG qui proviennent d'un dossier ou d'une géodatabase non enregistré seront copiées sur le serveur au moment de la publication. Il s'agit d'une mesure de précaution visant à s'assurer que le serveur peut accéder à toutes les données utilisées par le service. Pour obtenir les instructions complètes d'enregistrement d'un dossier ou d'une géodatabase sur votre site ArcGIS Server, reportez-vous à la rubrique Enregistrement des données avec ArcGIS Server ArcGIS for Desktop.

  17. Facultativement, dans l'Editeur de services, cliquez sur Aperçu Aperçu. Cela peut vous donner une idée de l'apparence de votre service WFS-T sur le Web. Reportez-vous à la rubrique Aperçu d'une carte pour plus d'informations.
  18. Une fois que vous avez corrigé les erreurs dans votre carte ou géodatabase, cliquez sur Publier Publier.

Utilisation du service WFS

Une fois que vous avez publié un service WFS, il peut être utilisé dans n'importe quel client prenant en charge WFS 1.1 et le profil d'entités simples GML, y compris des navigateurs Web. Un navigateur Web constitue l'un des clients les plus simples d'un service WFS. Vous pouvez demander des informations via HTTP ; les réponses ou exceptions sont renvoyées via le navigateur.

Suivez les étapes ci-dessous pour accéder aux services WFS par l'intermédiaire d'un navigateur Web.

Etapes :
  1. Ouvrez un navigateur Web.
  2. Effectuez les opérations GetCapabilities, DescribeFeatureType et GetFeature selon les instructions des sections suivantes.

GetCapabilities

Cette demande renvoie tous les types d'entités et les fonctionnalités disponibles à travers le service au format GML. Pour utiliser l'opération GetCapabilities, copiez et collez l'URL du service WFS dans la barre d'adresse et ajoutez ?request=getcapabilities à la fin de l'URL.

Exemple d'URL : http://myserver:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=GetCapabilities

Le graphique suivant est un exemple des fonctionnalités renvoyées par l'opération GetCapabilities :

Fonctionnalité renvoyée par l'opération GetCapabilities

GetCapabilities renvoie également une liste de toutes les classes d'entités et tables disponibles :

Classes d'entités et tables disponibles renvoyées par l'opération GetCapabilities

DescribeFeatureType

Cette demande décrit les informations de champ concernant une ou plusieurs entités du service WFS. Cela inclut les noms de champs, les types de champs, les valeurs minimales et maximales autorisées dans les champs et toute autre contrainte définie dans un champ des classes d'entités ou tables.

Pour utiliser l'opération DescribeFeatureType, copiez et collez l'URL WFS dans la barre d'adresse et ajoutez ?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0 à la fin de l'URL. Cette demande renvoie toutes les informations de champ concernant chaque type d'entité et table disponible dans le service d'entités.

Exemple d'URL : http://myserver:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0

Classes d'entités, tables et informations de champ renvoyées par l'opération DescribeFeatureType

Ajout de filtres

Vous pouvez également spécifier une seule classe d'entités ou table à propos de laquelle vous souhaitez obtenir des informations de champ en ajoutant la demande suivante à la fin de l'URL avec le nom du type d'entité ou de la table : ?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=<saisir le type d'entité ici>&VERSION=1.1.0.

Pour plus d'informations sur les différents filtres disponibles avec les services WFS, consultez la rubrique Communication avec un service WFS dans un navigateur Web.

Dans l'exemple ci-dessous, la demande DescribeFeatureType permet d'identifier les informations de champ pour le type d'entité des villes.

Exemple d'URL : http://myserver:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=cities&VERSION=1.1.0

Classe d'entités Cities et informations de champ correspondantes renvoyées par l'opération DescribeFeatureType filtrée

GetFeature

Cette demande renvoie des informations concernant des types d'entités spécifiques disponibles par l'intermédiaire du service WFS.

Pour utiliser l'opération GetFeature dans un navigateur Web, copiez et collez l'URL WFS dans la barre d'adresse et ajoutez ?request=getFeature&typename=<saisir le type d'entité ici> à la fin de l'URL. Cette demande renvoie toutes les informations d'attribut et de géométrie concernant chaque entité ou ligne dans le type d'entités.

Exemple d'URL : http://myserver:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities

Informations d'attribut et de géométrie renvoyées par l'opération GetFeature pour la classe d'entités Cities

Ajout de filtres

Vous pouvez ajouter également des filtres dans la demande pour affiner les résultats renvoyés. Par exemple, vous pouvez demander toutes les villes qui se trouvent dans une plage de coordonnées spécifiée. Dans l'exemple ci-dessous, deux villes se trouvent dans une plage de coordonnées spécifiée. Pour plus d'informations sur les différents filtres disponibles avec les services WFS, consultez la rubrique Communication avec un service WFS dans un navigateur Web.

Exemple d'URL : http://myserver:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities&BBOX=46.90,-76.21,42.12,-72.88

Villes dans la plage de coordonnées spécifiée renvoyées par l'opération GetFeature filtrée

Utilisation de l'extension Data Interoperability pour se connecter à un service WFS

L'extension Data Interoperability vous permet de lire et écrire des données dans des formats autres qu'ArcGIS. Vous pouvez utiliser l'outil Connexions Interoperability qui se trouve dans ArcCatalog ou dans la fenêtre Catalogue d'ArcGIS for Desktop pour vous connecter directement aux formats de données Esri externes, y compris aux services WFS. Une fois la connexion établie, la source de données apparaît sous l'entrée Connexions Interoperability dans l'arborescence du Catalogue. Une connexion ressemble à n'importe quel autre jeu de données, en ce sens que vous pouvez l'ajouter à la table des matières ou l'utiliser dans les outils de géotraitement. Pour plus d'informations sur la connexion à un service WFS à l'aide de l'extension Data Interoperability, reportez-vous à la rubrique Procédure d'utilisation de WFS avec ArcGIS for Desktop.

Gestion de mises à jour effectuées par l'intermédiaire d'un service WFS-T avec des données versionnées

Il est important de créer un workflow efficace pour gérer les mises à jour effectuées par l'intermédiaire d'un service WFS-T. En supposant que vous avez suivi la méthode recommandée, qui consiste à créer une version WFS distincte pour les éditeurs WFS-T, le système que vous avez configuré doit ressembler au diagramme ci-dessous :

Système courant de mise à jour WFS-T
Mise à jour Web à l'aide d'un service WFS-T utilisant des données versionnées

Dans cet exemple, les éditeurs WFS-T et les éditeurs ArcMap utilisent des versions qui permettent à chaque groupe d'avoir son propre affichage isolé de la géodatabase sur laquelle il travaille. Les éditeurs ArcMap modifient directement la version par défaut par l'intermédiaire d'ArcMap. Les éditeurs WFS-T accèdent au service WFS sur Internet. Cela permet aux éditeurs WFS-T d'apporter des modifications sur la version WFS créée en tant qu'enfant de la version par défaut. Pour en savoir plus sur les versions, consultez la rubrique Présentation rapide du versionnement dans le système d'aide d'ArcGIS Desktop.

Pour que les deux versions restent toujours synchronisées, vous pouvez lancer régulièrement un processus qui met à jour la version WFS en intégrant les modifications apportées à la version par défaut et qui met à jour la version par défaut en intégrant les modifications apportées à la version WFS. Il s'agit d'un processus en deux étapes du workflow de mise à jour de n'importe quel système versionné, appelé réconciliation et réinjection. Ce processus peut être automatisé, ou il peut être administré par un éditeur (selon ses autorisations) ou un administrateur de base de données. Pour en savoir plus sur le processus de réconciliation et de réinjection, reportez-vous à la rubrique Présentation rapide du processus de mise à jour des versions.

Lorsque ce processus est exécuté, l'opération de réconciliation récupère les mises à jour de la version par défaut pour les intégrer dans la session de mise à jour courante de la version WFS. Des conflits peuvent se produire si des modifications ont été effectuées sur les mêmes entités dans les deux versions. Vous pouvez soit configurer la résolution automatique des conflits, soit résoudre manuellement chaque conflit par le biais de la boîte de dialogue de résolution des conflits.

Une fois tous les conflits gérés, l'opération de réinjection peut être exécutée. Ce processus fusionne les modifications de la version WFS dans la version par défaut.

Le processus de réconciliation et de réinjection dans son entier est récapitulé dans le diagramme ci-dessous. Dans cette illustration, la version WFS extrait les mises à jour de la version par défaut pendant la réconciliation. Une fois les modifications incorporées, la version WFS réinjecte ses mises à jour dans la version par défaut à l'aide de l'opération de réinjection. A ce stade, les versions WFS et par défaut ont toutes les deux le même contenu.

Processus de réconciliation et de réinjection
Processus de réconciliation et de réinjection entre les versions par défaut et WFS

A la fin du processus de réconciliation et de réinjection, les deux versions comportent la représentation la plus récente des entités, et les éditeurs WFS peuvent reprendre leur activité de mise à jour.

Il est important de noter que si des verrouillages subsistent au moment de l'exécution du processus de réconciliation et de réinjection, le système ne permet pas la réussite du processus. Il s'agit d'une protection qui vise à éviter les conflits entre des entités verrouillées par les clients WFS-T et des entités modifiées par le processus de réconciliation et de réinjection. En outre, l'exécution du processus de réconciliation et de réinjection verrouille la version WFS-T pour empêcher les éditeurs WFS-T d'émettre des appels de verrouillage et de transaction au cours du processus.

Pour prendre en compte cette mesure de protection, il est recommandé d'exécuter le processus de réconciliation et de réinjection à des horaires bien établis, que les éditeurs WFS-T connaissent à l'avance. Les modifications des éditeurs seront ainsi réinjectées dans la base de données. Les administrateurs devront peut-être également supprimer manuellement les verrouillages de la table des verrouillages avant le processus de réconciliation et de réinjection.

Pour en savoir plus sur la structure de verrouillage WFS-T, reportez-vous à la rubrique Services WFS.

9/18/2013