Vous pouvez étendre les services d’imagerie et de carte ArcGIS Server (notamment des extensions de services d’imagerie et de carte, telles que les services d’entités) avec une logique personnalisée qui peut s’exécuter sur des clients ArcGIS. Vous pouvez étendre ces types de services de deux façons :
- Les extensions d’objet serveur (SOE) vous permettent de créer des opérations de service afin d’étendre les fonctions de base des services d’imagerie ou de carte. Les SOE sont appropriées si vous devez exécuter une logique métier bien définie ne pouvant pas facilement être accomplie à l’aide des API clientes ArcGIS. La plupart des SOE utilisent du code personnalisé pour travailler avec les cartes et les données géospatiales.
- Les intercepteurs d’objet serveur (SOI) vous permettent d’intercepter les demandes pour les opérations intégrées existantes des services d’imagerie ou de carte. Vous pouvez ainsi exécuter une logique personnalisée et modifier le comportement de ces services en remplaçant les opérations existantes de manière transparente pour les clients existants. Ces clients peuvent être des applications conçues avec ArcGIS Maps SDK for JavaScript ou ArcGIS Maps SDK, entre autres.
Extensions d’objets serveur
Les extensions d’objet serveur (SOE) sont appropriées si vous souhaitez créer des opérations de service afin d’étendre les fonctions de base des services d’imagerie et de carte (notamment les extensions de services d’imagerie et de carte telles que les services d’entités). Les SOE présentent les avantages suivants :
- Vous pouvez proposer une SOE en tant que service Web REST ou SOAP, ce qui permet aux clients personnalisés créés sur les API clientes ArcGIS et tout autre client REST ou SOAP de les invoquer. En fait, vos SOE REST s'affichent dans le répertoire des services ArcGIS et peuvent proposer les types d'objet courants que les API clientes d'ArcGIS comprennent, principalement au format JSON.
- Lorsque vous créez une extension d’objet serveur, vous fournissez des méthodes grossières qui exécutent des tâches sur ArcGIS Server, plutôt que de passer un grand nombre d’appels depuis le client vers le serveur. Les SOE encapsulent très efficacement la logique métier, ce qui fournit un environnement parfaitement adapté à l’exécution rapide de vos appels.
Vous pouvez développer une SOE pour présenter des fonctions non disponibles autrement ou à exécuter très rapidement.
Éléments à prendre en compte avant de développer une SOE
Les SOE requièrent une connaissance du développement Web, des outils de développement ArcGIS et des langages de programmation, tels que Java ou d’un langage de type .NET, tel que C#. Une SOE développée avec Java peut être déployée sur ArcGIS Server sous Windows et Linux, alors qu’une SOE développée avec .NET peut uniquement être déployée sur ArcGIS Server sous Windows.
Les SOE peuvent être développées avec ArcGIS Enterprise SDK. Si, lorsque vous utilisez ce SDK, vous souhaitez écrire des pages de propriétés ArcGIS Server Manager personnalisées pour vos extensions en plus des pages générées automatiquement, vous devez connaître le développement de formulaires Web en HTML et en JavaScript.
Une SOE peut être développée uniquement pour un type de service particulier : un service de carte ou un service d’imagerie. Par exemple, vous ne pouvez pas développer une SOE générique qui fonctionne à la fois avec un service de carte et avec un service d’imagerie. Dans ce cas, vous devez développer une SOE différente pour chaque type de service : une pour un service de carte et une autre pour un service d’imagerie.
Avant de développer une SOE, vous pouvez envisager d'autres alternatives. Une alternative au développement d’une SOE peut consister à créer un modèle de géotraitement exécutant votre logique métier et à le publier en tant que service. Vous pouvez utiliser ModelBuilder pour glisser-déplacer et connecter les outils nécessaires de manière interactive plutôt que d’écrire le code d’une logique métier personnalisée. Les services de géotraitement vous permettent également de les exécuter de manière asynchrone. Vous pouvez alors lancer une tâche, passer à autre chose et y revenir plus tard pour vérifier les résultats.
L'un des inconvénients des services de géotraitement réside dans leur impact relativement important sur la mémoire. De plus ils peuvent s'exécuter plus lentement que les extensions d'objet serveur. Si vous n'exécutez un processus que quelques fois par jour, cela ne pose pas de problème. En revanche, si vous exécutez un processus de nombreuses fois par jour, ou si beaucoup d'utilisateurs l'exécutent simultanément, il peut valoir la peine de prendre le temps de créer une extension d'objet serveur.
De nombreux développeurs ont écrit par le passé du code personnalisé pour différentes tâches qui sont désormais accessibles sans ce code. Pour en savoir plus sur la résolution de problèmes de cartographie web sans recours au développement d’extensions, reportez-vous à la rubrique Alternatives aux extensions d’objet serveur.
Intercepteurs d’objet serveur
Les intercepteurs d’objet serveur (SOI) sont appropriés si vous souhaitez modifier le comportement des opérations de services de carte ou d’imagerie existants (notamment les extensions de services d’imagerie et de carte telles que les opérations de service d’entités). Vous pouvez par exemple modifier le comportement d'une requête ou d'une demande d'exportation d'images cartographiques.
Vous pouvez également développer des SOI pour implémenter une logique métier personnalisée, notamment pour répondre à des critères de sécurité ou d’audit que le service d’imagerie ou de carte par défaut ne remplit pas, par exemple :
- Audit et consignation de toutes les requêtes : à des fins de débogage, vous pouvez créer une série de SOI qui consigne des informations détaillées sur les requêtes entrantes, telles que des informations complètes sur les paramètres en entrée et les informations d'identification utilisateur transmises avec la requête.
- Incluez un filigrane sur toutes les images cartographiques créées par le serveur. Une série de SOI peut être créée pour surimposer un filigrane personnalisé sur des images cartographiques créées par le serveur. Cela permet aux organisations ou aux sociétés d'hébergement d'assurer une personnalisation correcte sur toutes les images.
- Réponses de post-traitement : des informations complémentaires issues de systèmes métier distincts non pris en charge par ArcGIS Server peuvent être ajoutées aux réponses sortantes afin de joindre des données spatiales à d’autres types de données Business Intelligence.
- Contrôle d’accès au niveau des opérations pour les services de carte : ArcGIS Server prend uniquement en charge l’activation des opérations de service pour tous les utilisateurs du service ou la désactivation complète de l’accès. Une série de SOI peut filtrer les demandes entrantes en fonction du rôle de l’utilisateur afin d’implémenter l’accès au service au niveau des opérations.
- Contrôle d’accès au niveau des couches pour les services de carte : ArcGIS Server prend uniquement en charge l’accès aux données au niveau des services ; soit l’utilisateur bénéficie d’un accès complet à toutes les données des services, soit l’utilisateur n’a aucun accès. Une série de SOI peut être implémentée pour filtrer l'accès à des couches spécifiques ou même filtrer des données au sein d'une couche en fonction du rôle de l'utilisateur.
Si vous souhaitez accomplir une ou plusieurs tâches à l’aide d’une série d’extensions, vous pouvez utiliser les intercepteurs d’objet serveur (SOI). Plusieurs SOI peuvent être enchaînés sur un ou plusieurs services. Vous pouvez à tout moment modifier la liste des SOI et leur ordre d’exécution dans la chaîne.
Éléments à prendre en compte avant de développer un SOI
Les SOI requièrent une connaissance du développement Web, des outils de développement ArcGIS et des langages de programmation, tels que Java ou d’un langage de type .NET, tel que C#. Un SOI développé avec Java peut être déployé sur ArcGIS Server sous Windows et Linux, alors qu’un SOI développé avec .NET peut uniquement être déployé sur ArcGIS Server sous Windows.
Il est possible de développer des SOI à l’aide d‘ArcGIS Enterprise SDK. Si, lorsque vous utilisez ce SDK, vous souhaitez écrire des pages de propriétés ArcGIS Server Manager personnalisées pour vos extensions en plus des pages générées automatiquement, vous devez connaître le développement de formulaires Web en HTML et en .
Un SOI peut être développé uniquement pour un type de service particulier : un service de carte ou un service d’imagerie. Par exemple, vous ne pouvez pas développer un SOI générique qui fonctionne à la fois avec un service de carte et avec un service d’imagerie. Dans ce cas, vous devez développer un SOI différent pour chaque type de service : un pour un service de carte et un autre pour un service d’imagerie.
Avant de développer un SOI, demandez-vous si vous avez besoin de cette fonction. Si vous souhaitez renforcer votre serveur par de nouvelles fonctions, vous pouvez utiliser un SOE ou des modèles de géotraitement et des scripts. Les SOI conviennent pour ajouter une nouvelle logique métier ou un nouveau comportement, en complément des opérations ArcGIS Server existantes, de manière transparente pour les applications client existantes.
Vous avez un commentaire à formuler concernant cette rubrique ?