Webediting mit WFS-Services
In diesem Thema
Wenn Sie einen Karten- oder Geodaten-Service mit aktivierter WFS-Funktion veröffentlichen, können die Daten mithilfe von OGC-konformen WFS-Clients aufgerufen und bearbeitet werden. Diese WFS-Clients können auch die letzten an den Daten vorgenommenen Änderungen anzeigen.
Wenn eine Anforderung von einem WFS-Client, beispielsweise einem Viewer, eingeht, werden die Daten so zurückgegeben, wie sie zum gegebenen Zeitpunkt in der Datenquelle vorhanden sind. Nehmen wir zum Beispiel an, Sie haben ein Kartendokument, das eine Feature-Class enthält. Diese Feature-Class stammt aus einer File-Geodatabase. Jetzt veröffentlichen Sie dieses Kartendokument als Karten-Service und aktivieren die WFS-Funktion. Ein Client mit einem WFS-Viewer kann auf die Daten in der Feature-Class über die WFS-URL zugreifen, die vom Karten-Service bereitgestellt wurde.
Nehmen wir nun an, dass ein anderer Benutzer auf die Quell-File-Geodatabase zugreift und Features in der Feature-Class hinzufügt, aktualisiert und löscht. Bei der nächsten Aktualisierung des Clients, auf dem sich der WFS-Viewer befindet, werden die Daten angezeigt, die zuletzt bearbeitet wurden.
Wenn die Datenquelle eine Enterprise-, Workgroup- oder Desktop-Geodatabase-Geodatabase ist, veröffentlichen Geodaten-Services und Karten-Services Daten aus einer bestimmten Version. Wenn Daten in dieser Version bearbeitet werden, werden die Änderungen sowohl bei den WFS-Clients als auch bei Nicht-WFS-Clients wiedergegeben. Wenn jedoch in anderen Versionen Bearbeitungen vorgenommen werden, werden die Änderungen in den Clients erst angezeigt, wenn sie mit der veröffentlichten Version abgeglichen werden.
Dadurch haben Sie mehr Kontrolle über die durch die Services bereitgestellten Daten. Angenommen, Sie veröffentlichen einige Daten mit der WFS-Funktion aus einer Version mit der Bezeichnung "WFS". Clients mit WFS-Viewern greifen von nun an über Ihren Service auf die Daten zu. Währenddessen aktualisieren Editoren im Büro die Standardversion mithilfe von ArcGIS. Die von den Editoren vorgenommenen Änderungen werden dann überprüft und gegebenenfalls angepasst. Sobald die Auswertung abgeschlossen ist, wird die WFS-Version mit der Standardversion abgeglichen. Erst jetzt werden die letzten Aktualisierungen durch die Editoren in den WFS-Clients angezeigt.
Transaktionale WFS-Services
Bei einem transaktionalen WFS-Service (gelegentlich auch als WFS-T bezeichnet) können WFS-Editoren Änderungen an den Daten in der Quelldatenbank mithilfe des WFS-Service anwenden. Um Änderungen durch WFS-T anzuwenden, müssen die Daten aus einer Enterprise-, Workgroup- oder Desktop-Geodatabase-Geodatabase stammen. Transaktionen können für Services aktiviert werden, die über versionierte Daten, nicht versionierte Daten oder über eine Kombination beider Varianten verfügen. Wenn Sie versionierte Daten verwenden, wird auch empfohlen, dass Sie den Service aus einer nicht standardmäßigen Version veröffentlichen.
Ausführliche Anweisungen zum Erstellen eines transaktionalen WFS-Service finden Sie unter Lernprogramm: Veröffentlichen eines WFS-T-Service.
Sobald Sie Transaktionen aktiviert werden, können WFS-Clients mithilfe von WFS-Methoden Änderungen auf die Geodatabase anwenden. Im Folgenden finden Sie ein Beispiel für das Anwenden von Änderungen:
- Der WFS-Client stellt eine Verbindung zu dem WFS-Service her, der mit aktivierten Transaktionen veröffentlicht wurde.
- Die bearbeiteten Features und Zeilen werden auf dem Server gesperrt (z. B. mithilfe der WFS-Methode "GetFeatureWithLock").
- Bearbeitungen werden über einen WFS-Editor auf dem WFS-Client vorgenommen.
- Die Bearbeitungen werden dann auf den Server angewendet (mit der entsprechenden Transaktions-WFS-Methode).
Sobald die Bearbeitungen übernommen wurden, werden die Sperrungen wieder aufgehoben und die Features können von anderen WFS-Editoren bearbeitet werden. Sperren können auch aufgehoben werden, weil das Timeout erreicht ist. Standardmäßig laufen Sperren nach fünf Minuten ab. Sie können jedoch über die GetFeatureWithLock-Methode ein anderes Timeout in Minuten festlegen. Ein Administrator kann das Standard-Timeout festlegen, indem er eine Konfiguration manuell bearbeitet und das DefaultLockExpiration-Element (Zeit in Minuten) festlegt.
Wenn ein Client mit "GetFeatureWithLock" eine Sperre beantragt, werden eine Feature-Erfassung mit den gesperrten Features und eine ID für die Sperre zurückgegeben. Wenn eines der angeforderten Features nicht gesperrt werden kann, schlägt die Anforderung fehl, und der Client muss GetFeatureWithLock erneut aufrufen. Es wird verhindert, dass andere Clients Sperren für diese Features abrufen, bis die Sperren aufgehoben werden.
Bei reinen Einfüge-Transaktionen müssen keine Features gesperrt werden. Da vorhandene Features hier nicht geändert (aktualisiert oder gelöscht) werden, ist es nicht erforderlich, "GetFeatureWithLock" aufzurufen. Sämtliche Transaktionsanforderungen, die Aktualisierungen oder Löschvorgänge vorsehen, müssen eine Sperren-ID aufweisen.
Wenn Änderungen durch WFS-T zurückgeschrieben werden, werden sie auf die veröffentlichte Version (mit versionierten Daten) oder auf die Business-Tabellen (mit nicht versionierten Daten) angewendet. In den folgenden Abschnitten werden wichtige Unterschiede in den Workflows erläutert, die bei der Arbeit mit versionierten Daten oder nicht versionierten Daten berücksichtigt werden müssen.
WFS-T-Services und versionierte Daten
Der leistungsstarke Ansatz der Versionierung macht es möglich, dass Sie die Geodatabase sowohl für WFS-Editoren als auch für WFS-unabhängige Editoren bereitstellen können und die von beiden Gruppen durchgeführten Änderungen effektiv und mit absoluter Konflikterkennung zusammenführen können. Um die Bearbeitungen zusammenzuführen, können Sie die veröffentlichte WFS-T-Version mit der Parent-Version abgleichen und zurückschreiben. Wenn es ausstehende Sperren gibt, lässt das System den Abgleich und das Zurückschreiben nicht zu. Dies ist ein Schutz vor Konflikten zwischen Features, die von WFS-T-Clients gesperrt wurden, und Features, die durch den Abgleich- und Rückschreibprozess geändert wurden. Darüber hinaus wird durch den Vorgang des Abgleichens und Zurückschreibens die veröffentlichte Version gesperrt und somit verhindert, dass während des Prozesses GetFeatureWithLock- und Transaction-Aufrufe erfolgen. Weitere Informationen zum Arbeiten mit versionierten Daten finden Sie unterKurzer Überblick über die Versionierung.
Feature-Sperren werden mittels einer entsprechenden Tabelle auf dem Server geführt. Die Sperrtabelle wird erstellt, wenn Transaktionen aktiviert werden, und wird als reguläre Tabelle in der Geodatabase angezeigt werden. Für die Tabelle gilt die Benennungsregel "VERSION_<versionID> _ROW_LOCKS". Um zu verhindern, dass der Prozess des Abgleichens und Zurückschreibens gesperrt wird, können Administratoren ausstehende Sperren aufheben, indem Sie die entsprechenden Zeilen direkt in der Sperrtabelle löschen, bevor sie den Abgleich und die Rückschreibung durchführen.
Die veröffentlichte WFS-T-Version sollte nicht mit ArcGIS bearbeitet werden. Ein ArcGIS-Editor beachtet keine Feature-Sperren, weshalb möglicherweise gesperrte Features bearbeitet werden. In diesem Fall können die in ArcGIS vorgenommenen Bearbeitungen Konflikte auslösen, die verhindern, dass die Änderungen vom WFS-T-Client hochgeladen werden. Das Erstellen und Bearbeiten von Child-Versionen der veröffentlichten Version kann ähnliche Probleme hervorrufen, falls Änderungen abgeglichen und in die veröffentlichte Version zurückgeschrieben werden.
Es können mehrere WFS-T-Services auf die gleiche veröffentlichte Version verweisen, da alle dieselbe Sperrtabelle verwenden. Es besteht eine Eins-zu-Eins-Verknüpfung zwischen der veröffentlichten Version und der zugehörigen Sperrtabelle.
Wenn Sie Transaktionen deaktivieren oder den WFS-Service entfernen, wird die Sperrtabelle nicht automatisch gelöscht. Sobald keine WFS-T-Services mehr auf die Version verweisen, kann diese Tabelle manuell gelöscht werden.
WFS-T-Services und nicht versionierte Daten
Wenn Sie nicht versionierte Daten in einem WFS-T-Service veröffentlichen, werden die Bearbeitungen direkt in die Business-Tabellen in der Geodatabase übernommen. Änderungen, die einmal vorgenommen wurden, können also nicht mehr rückgängig gemacht werden. Weitere Informationen zum Arbeiten mit nicht versionierten Daten finden Sie unter Kurzer Überblick über das Arbeiten mit nicht versionierten Daten.
Die auf nicht versionierten Daten basierenden WFS-T-Services-Feature-Sperren werden auch in einer Sperrtabelle auf dem Server gespeichert, die bei der Aktivierung von Transaktionen für den Service erstellt wird. Wenn Bearbeitungen über den Service nur von WFS-T-Clients vorgenommen werden sollen, ähnelt das Verhalten dem Verhalten eines auf versionierten Daten basierten Service. Wenn Sie jedoch beabsichtigen, die im Service veröffentlichten Daten mit Nicht-WFS-T-Clients, z. B. ArcMap, zu bearbeiten, müssen Sie einige wichtige Punkte berücksichtigen:
- ArcMap-Editoren beachten die Feature-Sperren nicht, sodass Features, die durch den WFS-T-Service gesperrt sind, dennoch bearbeitet werden können.
- Wenn ein ArcMap-Editor Features bearbeitet, werden diese für WFS-T-Clients als gesperrt angezeigt. Demzufolge können WFS-T-Clients die betreffenden Features erst sperren, aktualisieren oder löschen, nachdem der ArcMap-Editor die Bearbeitungen gespeichert hat.
Wenn Sie Transaktionen deaktivieren oder den WFS-Service entfernen, wird die Sperrtabelle nicht automatisch gelöscht. Sobald keine WFS-T-Services mehr auf die Version verweisen, kann die Tabelle manuell gelöscht werden.
Zusätzliche Hinweise
- Wenn Sie Editor-Tracking für eine Feature-Class aktivieren, müssen Sie sicherstellen, dass die Änderungen in UTC aufgezeichnet werden. WFS-T-Services unterstützen die Datenbankzeit nicht als Zeitzone zum Verfolgen von Änderungen.
- Der DBMS-Benutzer, über den ArcGIS for Server eine Verbindung zur Enterprise-, Workgroup- oder Desktop-Geodatabase-Geodatabase herstellt, muss berechtigt sein, Tabellen im DBMS zu erstellen, damit WFS-T erfolgreich verwendet werden kann.
- ArcGIS for Desktop verfügt über keinen Mechanismus für die Bearbeitung transaktionaler WFS-Services, sodass Sie einen Client eines Drittanbieters verwenden müssen, wenn Sie Features mithilfe von WFS bearbeiten.
- Feature-Classes mit Z-Werten können nicht mit WFS-T bearbeitet werden.