Qu'est-ce qu'une extension d'objet serveur ?
Les extensions d'objet serveur (SOE) vous permettent d'étendre les fonctionnalités de base d'ArcGIS for Server. La plupart des SOE utilisent du code ArcObjects pour travailler avec les données et cartes SIG. Les objets ArcObjects sont les composants principaux sur lesquels ArcGIS est conçu. Ils vous permettent d'écrire des fonctions SIG avec la plus grande souplesse.
Les SOE sont appropriés si vous devez exécuter une logique métier bien définie ne pouvant pas facilement être accomplie à l'aide des API Web ArcGIS. Les SOE présentent les avantages suivants :
-
Vous pouvez mettre une extension d'objet serveur à disposition en tant que service Web REST (Representational State Transfer) et/ou SOAP (Simple Object Access Protocol), ce qui permet aux clients créés sur les API Web ArcGIS de les invoquer facilement. 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 Web 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 ArcObjects, ce qui fournit un environnement idéal à l'exécution rapide de vos appels.
Vous pourriez développer une extension d'objet serveur si vous souhaitiez présenter des fonctionnalités ArcObjects non disponibles autrement (via des outils de géotraitement prêts à l'emploi ou des services ArcGIS Server) ou des fonctionnalités ArcObjects devant être exécutées très rapidement.
Les SOE sont destinées aux développeurs expérimentés et requièrent une connaissance de plusieurs plates-formes de développement. Les SDK ArcObjects pour Java et Microsoft .NET Framework contiennent plusieurs exemples de SOE que vous pouvez examiner.
Les SOE principalement conçues pour l'extension des services de carte.
Précisions à connaître pour le développement d'une extension d'objet serveur
Le développement de SOE nécessite la connaissance de l'utilisation d'ArcObjects via des langages de programmation Java ou .NET. Cela nécessite également de comprendre les principes REST ou SOAP.
En outre, si vous souhaitez rédiger des pages de propriétés personnalisées pour vos extensions d'objets serveur en plus des pages générées automatiquement, vous devez avoir des connaissances en matière de développement de Windows Forms ou Java Swing (pour les pages ArcCatalog) ou de développement de formulaires Web en langage HTML (Hypertext Markup Language) et JavaScript (pour les pages du gestionnaire).
Avez-vous besoin d'une extension d'objet serveur ?
Les SOE peuvent requérir la connaissance du développement de services Web et ArcObjects et elles doivent passer par un processus de déploiement pour être mises à disposition sur votre serveur. Avant de développer une extension d'objet serveur, envisagez de choisir d'autres options plus simples.
L'alternative la plus simple au développement d'une extension d'objet serveur 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 du code ArcObjects. Les services de géotraitement vous permettent également de procéder à une exécution 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 du code ArcObjects pour différentes tâches qui sont désormais accessibles sans ArcObjects. Pour en savoir plus sur la résolution de problèmes de cartographie Web sans recours à l'utilisation d'ArcObjects, reportez-vous à la rubrique Alternatives aux extensions d'objet serveur.