Was ist eine Serverobjekterweiterung?
Mit Serverobjekterweiterungen (SOEs) können Sie die Basisfunktionalität von ArcGIS-Server-Karten- und Image-Services erweitern. Es werden keine anderen Service-Typen unterstützt. Die meisten SOEs verwenden dazu ArcObjects-Code, um mit GIS-Daten und -Karten zu arbeiten. ArcObjects sind die Kernkomponenten, auf denen ArcGIS basiert. Sie ermöglichen Ihnen die größtmögliche Flexibilität beim Schreiben von GIS-Funktionen.
SOEs sind geeignet, wenn Sie eine gut definierte Geschäftslogik ausführen müssen, was mithilfe der ArcGIS-Web-APIs nur schwer erreicht werden kann. SOEs haben die folgenden Vorteile:
-
Sie können eine SOE als REST (Representational State Transfer)- und/oder SOAP (Simple Object Access Protocol)-Web-Service bereitstellen, sodass Clients auf die ArcGIS-Web-APIs aufsetzen können, um sie leicht aufzurufen. In der Tat werden die REST-SOEs im Verzeichnis "ArcGIS-Services" angezeigt und können die typischen Objekttypen bereitstellen, die die ArcGIS-Web-APIs verstehen, meistens im JSON-Format.
-
Wenn Sie eine SOE erstellen, stellen Sie einfache Methoden bereit, die Arbeiten auf ArcGIS Server ausführen, anstatt eine große Anzahl von Aufrufen vom Client zum Server zu tätigen. SOEs kapseln die ArcObjects-Logik sehr effizient und stellen eine ideale Umgebung bereit, um die Aufrufe schnell auszuführen.
Sie können eine SOE entwickeln, wenn Sie ArcObjects-Funktionen bereitstellen möchten, die auf keine andere Weise verfügbar sind oder eine schnelle Ausführung erfordern.
SOEs eignen sich für erfahrene Entwickler und erfordern Kenntnisse verschiedener Entwicklungsplattformen. Die ArcObjects-SDKs für Java und Microsoft .NET Framework enthalten mehrere SOE-Beispiele, die Sie untersuchen können.
Was Sie zum Entwickeln einer SOE wissen müssen
Zur SOE-Entwicklung sind Kenntnisse der ArcObjects-Verwendung durch Java oder die .NET-Programmiersprachen erforderlich. Außerdem ist ein Verständnis der REST- oder SOAP-Prinzipien erforderlich.
Wenn Sie darüber hinaus benutzerdefinierte Eigenschaftenseiten für die SOEs jenseits der automatisch generierten schreiben möchten, benötigen Sie Kenntnisse in der Windows Forms-Entwicklung oder von Java Swing (für ArcCatalog-Seiten) oder in der Web Forms-Entwicklung mit Hypertext Markup Language (HTML) und JavaScript (für Managerseiten).
Wann eine SOE notwendig ist
SOEs können Kenntnisse in der Web-Service-Entwicklung und ArcObjects erfordern und müssen einen Bereitstellungsprozess durchlaufen, um auf dem Server verfügbar gemacht zu werden. Bevor Sie eine Serverobjekterweiterung entwickeln, sollten Sie einige einfachere Alternativen erwägen.
Die einfachste Alternative zum Entwickeln einer SOE ist möglicherweise das Erstellen eines Geoverarbeitungsmodells, das die Geschäftslogik erfüllt, und deren Veröffentlichung als Service. Sie können ModelBuilder verwenden, um die benötigten Werkzeuge interaktiv zu ziehen, abzulegen und zu verbinden, anstatt ArcObjects-Code zu schreiben. Geoverarbeitungs-Services unterstützten auch die asynchrone Ausführung, sodass Sie einen Auftrag starten, dann zu etwas Anderem wechseln und später zum Auftrag zurückkehren können, um die Ergebnisse zu überprüfen.
Ein Nachteil von Geoverarbeitungs-Services ist, dass sie einen relativ großen Speicherbedarf haben und möglicherweise langsamer als SOEs ausgeführt werden. Wenn Sie einen Prozess nur wenige Male am Tag ausführen, sollte dies kein Problem sein. Wenn Sie einen Prozess allerdings häufig am Tag oder mit vielen Benutzern gleichzeitig ausführen, könnte es sinnvoll sein, die Zeit in die Erstellung einer SOE zu investieren.
Viele Entwickler haben in der Vergangenheit ArcObjects-Code für verschiedene Aufgaben geschrieben, die jetzt ohne ArcObjects durchführbar sind. Eine ausführliche Diskussion der Möglichkeiten, sich den Herausforderungen des Web Mapping zu nähern, ohne ArcObjects zu verwenden, finden Sie unter Alternativen zu Serverobjekterweiterungen.