Ce didacticiel explique comment publier un service WFS (Web Feature Service) avec transactions (WFS-T) sur ArcGIS Server à l'aide d'ArcMap. WMS est une spécification publiée par l'OGC (Open Geospatial Consortium, Inc.) qui permet la diffusion d'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 de géodonnées est publié avec des fonctionnalités WFS, les clients WFS conformes à la norme OGC, y compris l'Extension ArcGIS Data Interoperability for Desktop dans ArcGIS Desktop, peuvent accéder aux données. 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 de groupe de travail ou d'entreprise. 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.
- Pour plus d'informations sur la façon de configurer le site ArcGIS Server, consultez la section Démarrage après l'installation du système d'aide.
- Pour savoir comment mettre à disposition du serveur les données référencées par la ressource GIS, consultez la rubrique Rendre vos données accessibles à ArcGIS Server.
Remarque :
Ce didacticiel utilise des exemples pour WFS 1.1.0, cependant ces étapes sont également applicables à WFS 2.0.0. WFS 1.0.0 ne prend pas en charge les transactions.
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.
Service de géodonnées
Un service de géodonnées WFS vous permet d'accéder à une géodatabase de groupe de travail, d'entreprise 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 d'entreprise pour gérer des données stockées dans ses bureaux de Los Angeles et New York. Une fois les géodatabases d'entreprise créées, chaque bureau peut les publier sur Internet à l'aide d'un service de géodonnées.
Service de carte
Un service de carte WFS représente une carte que vous avez mise à la disposition d'autres personnes par l'intermédiaire 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 de 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, 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 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 d'entreprise.
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 :
- Il convient de les charger dans une géodatabase d’entreprise ou dans un groupe de travail.
- 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 à une base de données (.sde) à mettre à jour.
Suivez les étapes suivantes pour préparer vos données pour un service WFS-T avec des données versionnées :
- Dans ArcCatalog ou la fenêtre Catalogue d’ArcGIS Desktop, chargez les données à publier dans une géodatabase de groupe de travail ou d'entreprise. Pour plus d'informations sur le chargement de données, reportez-vous à la rubrique Chargement de données dans ArcCatalog.
- 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.
- 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 la connexion à la base de données et choisissez Administration > Administrer la géodatabase.
- Dans la fenêtre de connexion, cliquez sur l'onglet Versions.
- 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.
- 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.
Remarque :
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.
- Ouvrez votre document ArcMap dans ArcMap.
- Dans la table des matières d'ArcMap, cliquez sur Répertorier par source .
- Cliquez avec le bouton droit de la souris sur la connexion de géodatabase et sélectionnez Changer de version.
- Dans la boîte de dialogue Changer de version, sélectionnez la version consacrée aux utilisateurs WFS et cliquez sur OK.
- 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.
- Dans ArcCatalog ou dans la fenêtre Catalogue d'ArcGIS Desktop, cliquez avec le bouton droit sur la connexion à la géodatabase, puis sélectionnez Administration > Administrer la géodatabase.
- Dans la boîte de dialogue Administration, cliquez sur Versions.
- 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 :
- Suivez les instructions dans la table suivante selon le type de service que vous souhaitez publier :
Option Description Pour publier un service de carte WFS-T...
...ouvrez votre document ArcMap dans ArcMap, sélectionnez Fichier > Partager en tant que > Service, puis cliquez sur Suivant.
Pour publier un service de géodonnées WFS-T...
...accédez à la géodatabase de groupe de travail, d'entreprise ou fichier dans ArcCatalog ou dans la fenêtre Catalogue, cliquez avec le bouton droit sur la géodatabase et sélectionnez Partager en tant que service de géodonnées.
- Dans la fenêtre Partager en tant que service, sélectionnez Publier un service, puis cliquez sur Suivant.
La boîte de dialogue Publier un service s'affiche.
- Dans la boîte de dialogue Publier un service, cliquez sur Connecter à ArcGIS Server pour créer une connexion au serveur.
La fenêtre Ajouter un serveur ArcGIS apparaît.
- Dans la fenêtre Ajouter un serveur ArcGIS, sélectionnez Publier les services SIG, puis cliquez sur Suivant.
- Pour l'URL du serveur, saisissez l'URL du site ArcGIS Server auquel vous souhaitez vous connecter. Par exemple, http://gisserver.domain.com:6080/arcgis.
- Dans la liste déroulante Type de serveur, sélectionnez ArcGIS Server.
- 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.
- Si votre administrateur de serveur a activé la sécurité de votre site, entrez vos Nom d'utilisateur et Mot de passe, puis cliquez sur Terminer.
- 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 Next (Suivant).
- 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.
- 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.
- Par défaut, Cartographie et KML sont activés. Sélectionnez WFS.
- 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 affiche l'URL utilisée par les clients pour accéder au service WFS. L'URL présente le format suivant : http://gisserver.domain.com:6080/arcgis/services/folder/service/MapServer/WFSServer.
Conseil :
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.
- Le champ URL affiche l'URL utilisée par les clients pour accéder au service WFS. L'URL présente le format suivant : http://gisserver.domain.com:6080/arcgis/services/folder/service/MapServer/WFSServer.
- 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.
- Cliquez sur Analyse. Cette fonction examine votre carte ou géodatabase pour voir si elle peut être publiée sur le serveur.
Conseil :
Pour agrandir la zone d'affichage lors de la configuration de votre service WFS-T, cliquez sur le bouton Réduire en haut de la fenêtre Editeur de services.
- Corrigez les erreurs éventuelles dans la fenêtre Préparation avant de 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.
Remarque :
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és 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'inscription d'un dossier ou d'une géodatabase auprès de votre site ArcGIS Server, reportez-vous à la rubrique Inscription de vos données auprès d'ArcGIS Server à l'aide d'ArcGIS Desktop.
- Dans l'éditeur de services, vous pouvez également cliquer sur 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.
- Une fois que vous avez corrigé les erreurs dans votre document ArcMap ou votre géodatabase, cliquez sur 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.0 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.
- Ouvrez un navigateur Web.
- 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://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/GeoDataServer/WFSServer?service=WFS&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, copiez et collez l'URL WFS dans la barre d'adresse et ajoutez ?SERVICE=WFS&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://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.1.0
Ajout de filtres
Vous pouvez également spécifier une seule classe d'entités ou table pour laquelle vous souhaitez disposer d'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&REQUEST=DescribeFeatureType&TypeName=<type d'entité à saisir 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 du type d'entité Continent :
Exemple d'URL : http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/GeoDataServer/WFSServer?SERVICE=WFS&REQUEST=DescribeFeatureType&typeName=Continent&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.
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://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?service=WFS&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. 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://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?service=WFS&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 ArcGIS Data Interoperability extension vous permet de lire et d'écrire des données dans des formats de données autres qu'ArcGIS. Vous pouvez utiliser l'outil Connexions Interoperability dans ArcCatalog ou la fenêtre Catalogue d'ArcGIS 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.
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 sa propre vue isolée de la géodatabase sur laquelle il peut travailler. Dans ArcMap, les éditeurs mettent directement à jour la version par défaut via ArcMap. Les éditeurs WFS-T accèdent au service WFS sur Internet. Cela permet aux éditeurs WFS-T d'apporter des modifications à 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 empêche le processus d'aboutir. 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.
Vous avez un commentaire à formuler concernant cette rubrique ?