Didacticiel : Publication d'un service WFS-T

Complexité : Débutant Exigences relatives aux données : Utilisez vos propres données

Ce didacticiel explique comment publier un service WFS avec un accès en lecture-écriture en activant des transactions (WFS-T) à l'aide du gestionnaire ArcGIS Server. 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. Pour appliquer des changements par l'intermédiaire de WFS-T, les données doivent provenir d'une géodatabase ArcSDE. Ce didacticiel montre le workflow qui doit être utilisé spécifiquement lors de l'utilisation de données versionnées.

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 Data Interoperability dans ArcCatalog et ArcMap. 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.

Si vous venez d'installer ArcGIS Server, vous devez réaliser certaines étapes préparatoires avant de pouvoir vous connecter au gestionnaire ou de publier des services. Ces étapes sont expliquées dans la section Démarrage après l'installation du système d'aide.

Configuration requise pour la publication d'un service

Pour créer un service de carte ou un service de géodonnées, vous devez placer la carte (.mxd), la géodatabase (fichier ou personnelle) ou le fichier de connexion ArcSDE dans un emplacement partagé visible à toutes les machines de conteneur d'objets serveur (SOC) dans votre serveur SIG. Le compte utilisateur du conteneur ArcGIS que vous avez créé au cours de la post-installation doit également disposer des autorisations requises pour lire la carte et toutes les données référencées (service de carte), ou toutes les données de la géodatabase que vous souhaitez publier (service de géodonnées).

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.

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 géodonnées

Un service de géodonnées WFS vous permet d'accéder à une géodatabase via Internet ou tout client WFS conforme à l'OGC. Un service de géodonnées peut être créé pour tout type de géodatabase, y compris les géodatabases ArcSDE, personnelles et fichier. 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.

Services de carte

Un service de carte WFS représente une carte (.mxd) 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 :

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 :

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 :

  • Les données doivent être chargées dans une géodatabase ArcSDE.
  • Si vous souhaitez utiliser des données versionnées, elle doit être inscrite comme versionnée.
  • Une version doit être consacrée spécifiquement aux éditeurs WFS pour qu'ils puissent l'utiliser. Si aucune version n'existe encore, elle doit être créée.
  • Certains éditeurs WFS doivent être autorisés à accéder au fichier de connexion ArcSDE à mettre à jour.

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

Étapes :
  1. Chargez les données que vous souhaitez 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 à ce sujet, 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. Si une telle version n'existe pas encore, suivez ces étapes pour créer une version que les éditeurs WFS pourront utiliser. Cliquez avec le bouton droit de la souris sur le fichier de connexion et choisissez Versions.
    Cette opération ouvre la boîte de dialogue Gestionnaire de versions.
  4. Dans la boîte de dialogue Gestionnaire de versions, cliquez avec le bouton droit de la souris sur la version à partir de laquelle créer une version enfant, puis choisissez Nouveau. Cette opération crée une version que les éditeurs WFS pourront utiliser.
  5. 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.

    Si vous créez un service de géodonnées, passez à étape 6. Si vous créez un service de carte, passez à étape 9.

  6. Pour les services de géodonnées
  7. 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.

    Pour ce faire, cliquez avec le bouton droit de la souris sur le fichier de connexion de la géodatabase et choisissez Propriétés de la connexion.

  8. Sous la section Détails de la connexion, cliquez sur le bouton Modifier.
  9. Sélectionnez la version consacrée aux utilisateurs WFS et cliquez sur OK.
  10. Pour les services de carte
  11. 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. Pour ce faire, cliquez sur l'onglet Source dans la table des matières.
  12. Cliquez avec le bouton droit de la souris sur la géodatabase et sélectionnez Changer de version. Cette opération ouvre la boîte de dialogue Gestionnaire de versions.
  13. Dans la boîte de dialogue Gestionnaire de versions, sélectionnez la version consacrée aux utilisateurs WFS et cliquez sur OK.
  14. Enregistrez les changements sur la carte.

Publication d'un service KML

Procédez comme suit pour créer votre service de géodonnées ou de carte :

Étapes :
    Démarrez le gestionnaire ArcGIS Server et ouvrez une session. Pour obtenir de l'aide supplémentaire sur cette étape, reportez-vous à la rubrique Connexion au gestionnaire.
  1. Cliquez sur Publier une ressource SIG sous l'onglet Services.
  2. Pour sélectionner la Ressource, utilisez la zone de liste déroulante pour accéder à la carte (.mxd) ou à la géodatabase (personnelle, fichier ou fichier de connexion ArcSDE [.sde]) que vous souhaitez publier.
  3. Dans la zone Nom, donnez un nom au 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.
  4. Trois possibilités s'offrent à vous pour choisir le dossier dans lequel publier le service :
    • Utilisez le menu déroulant pour sélectionner un dossier existant.
    • Créez un nouveau dossier.
    • Acceptez le dossier par défaut. La publication s'effectuera dans le dossier racine.

    Après avoir choisi l'emplacement de publication du service, cliquez sur Suivant pour continuer.

  5. Sélectionnez WFS pour activer la fonctionnalité du service et cliquez sur Suivant.
  6. Passez en revue les informations concernant le service que vous allez créer, puis cliquez sur Terminer pour créer le service.

Si vous possédez un service dont les fonctions WFS ne sont pas activées, suivez ces étapes pour les activer :

  1. Il est possible que votre service apparaisse avec l'état Démarré. Pour modifier les paramètres de votre service, le service doit être arrêté. Si l'état indiqué est Démarré, cochez la case en regard de votre service et cliquez sur le bouton Arrêter.
  2. Cliquez sur l'option Mettre à jour correspondant au service. Cela vous permettra de modifier les propriétés du service, y compris les fonctionnalités.
  3. Cliquez sur le dossier Fonctionnalités.
  4. Cochez la case WFS.
  5. Cliquez sur OK pour activer la fonctionnalité.

Activation des transactions sur le service WFS

Après la publication d'un service WFS, vous devez activer l'option Transactions (WFS-T) pour permettre aux utilisateurs WFS de mettre à jour et d'appliquer des modifications aux données de la base de données source.

Suivez ces étapes pour activer des transactions sur un service WFS :

Étapes :
  1. Dans l'onglet Services du gestionnaire ArcGIS Server, cliquez sur Gérer des services.
  2. Cliquez sur la flèche de la liste déroulante Services dans et accédez au dossier de service contenant votre service publié.
  3. Il est possible que votre service apparaisse avec l'état Démarré. Pour modifier les paramètres de votre service, le service doit être arrêté. Si l'état indiqué est Démarré, cochez la case en regard de votre service et cliquez sur le bouton Arrêter.
  4. Cliquez sur l'icône Mettre à jour pour ouvrir la boîte de dialogue des propriétés.
  5. Dans la boîte de dialogue des propriétés, cliquez sur l'onglet Fonctionnalités.
  6. Cliquez sur l'option WFS (le nom, pas la case à cocher) sous la fenêtre Sélectionnez et configurez les fonctionnalités. Cette opération affiche les propriétés du service WFS.
  7. Cochez la case Activer les transactions.

Procédure d'acquisition de l'URL pour votre service WFS

Étapes :
  1. Sous l'onglet Services du gestionnaire ArcGIS Server, cliquez sur Gérer des services.
  2. Cliquez sur la flèche de la liste déroulante Services dans et accédez au dossier de service contenant votre service publié.
  3. Votre service doit apparaître avec l'état Démarré. Si l'état indiqué est Arrêté, cochez la case en regard de votre service et cliquez sur le bouton Démarrer.
  4. Pour acquérir l'URL de votre service WFS, cliquez sur l'icône Mettre à jour pour ouvrir la boîte de dialogue des propriétés.
  5. Cliquez sur l'onglet Fonctionnalités.
  6. Mettez en surbrillance l'option WFS sous la fenêtre Sélectionnez et configurez les fonctionnalités. Cette opération affiche les propriétés du service WFS.
  7. L'URL de votre service WFS se trouve dans la fenêtre Accès Web. Il s'agit de l'URL que vous et d'autres utilisateurs utiliserez pour vous connecter au service WFS que vous avez publié.

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. Vous pouvez également faire appel à l'extension Data Interoperability dans ArcCatalog et ArcMap pour utiliser les services WFS. Les sections suivantes vous indiquent comment accéder aux services WFS par le biais d'un navigateur Web et de l'extension Data Interoperability dans ArcCatalog.

Connexion à votre service WFS à travers un navigateur 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.

Pour se connecter à votre service, vous devez connaître l'URL WFS, qui peut se trouver dans Propriétés du service sous l'onglet Fonctionnalités dans le gestionnaire ArcGIS Server ou ArcCatalog. Une fois que vous avez l'URL, vous pouvez utiliser des opérations OGC standard pour demander des informations sur le service via HTTP. Voici quelques exemples d'opérations que vous pouvez utiliser pour demander des informations :

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 dans un navigateur Web, copiez et collez l'URL WFS dans la barre d'adresse et ajoutez ?request=getCapabilities à la fin, comme indiqué dans l'exemple et la capture d'écran ci-dessous.

Exemple d'URL : http://bobmk/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 :

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

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 dans un navigateur Web, 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, comme le montre la capture d'écran ci-dessous.

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

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=[entrez le type d'entité ici]&VERSION=1.1.0

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://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=cities&VERSION=1.1.0

GetFeature

Cette demande renvoie des informations concernant des types d'entités spécifiques disponibles par l'intermédiaire du service WFS. Vous pouvez en outre utiliser les filtres pour affiner les informations renvoyées. Pour plus d'informations sur les différents filtres disponibles avec les services WFS, consultez la rubrique Services 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=[entrez 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://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=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.

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

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 qui ne sont pas dans des formats natifs d'ArcGIS. Vous pouvez utiliser l'outil Connexions Interoperability qui se trouve dans ArcCatalog 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 à ArcMap ou l'utiliser dans les outils de géotraitement. Pour plus d'informations sur l'utilisation de l'extension Data Interoperability avec les services WFS dans l'ArcMap, reportez-vous à la rubrique suivante Procédure d'utilisation de WFS avec ArcGIS 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 :

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.

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.


3/6/2012