Czy powinienem używać WFS, WMS lub SOS, biorąc pod uwagę wydajność i bezpieczeństwo?

10

Moim zadaniem jest opracowanie aplikacji internetowej, która wizualizuje dane czasowe na mapie i generuje rodzaj przepływu danych (lub animacji) z obrazów / danych otrzymanych z serwera.

W tym celu zamierzam korzystać z OpenLayers API i usług sieciowych OGC WFS lub WMS lub SOS.

Jednym z głównych wymagań jest bezpieczne i szybkie przesyłanie danych o wysokiej wydajności.

Pytanie, które mam, brzmi: z której usługi WFS, WMS i SOS dobrze będzie korzystać w przypadku takiej aplikacji internetowej pod względem wydajności, bezpieczeństwa, niezawodności itp.?

Wiem, że każda usługa internetowa oferuje różne funkcje. Ale jeśli używam WMS dla moich danych czasowych, aby uzyskać obrazy mapy poprzez wykonanie pewnego rodzaju agregacji w bazie danych (ponieważ jest to wizualizacja czasowa), wówczas moja aplikacja zwolni na niektórych urządzeniach, takich jak telefony komórkowe / tablety, ponieważ może to zająć dużo czasu czas na pobranie zdjęć.

Z drugiej strony, jeśli użyję SOS lub WFS, istnieje ryzyko, że nasza aplikacja wyśle ​​surowe dane, co naprawdę nie jest bezpieczne.

Będzie naprawdę wspaniale, jeśli ktoś może dać mi radę lub przemyślenia na ten temat.

Jeśli myślisz, że na to pytanie nie można po prostu odpowiedzieć, to czy ktoś może mi dać pomysł, jak powinienem postępować dalej w przypadku problemu opartego na badaniach?

Rajat Arora
źródło
zdefiniować „wysoką wydajność” i ile danych mówimy / różni się w poszczególnych klatkach kluczowych animacji?
Ragi Yaser Burhum

Odpowiedzi:

7

Wiem, że każda usługa internetowa oferuje różne funkcje. Ale jeśli użyję usługi WMS dla moich danych czasowych w celu uzyskania obrazów mapy poprzez wykonanie pewnego rodzaju agregacji w bazie danych (ponieważ jest to wizualizacja czasowa), wówczas moja aplikacja będzie działać wolno na niektórych urządzeniach, takich jak telefony komórkowe / tablety, ponieważ może to zająć dużo czasu na pobieranie zdjęć ”.

Nie zgadzam się z tym stwierdzeniem z trzech powodów.

Czas potrzebny na pobranie danych WFS może być również długi, ponieważ zapytania przestrzenne mogą być również powolne. Mam na myśli, że ilość przesłanych surowych bajtów nie jest jedynym czynnikiem ograniczającym.

Innym powodem jest to, że ponieważ dane wyjściowe WFS są zwykle pełne - ponieważ do transportu danych używa GML , który jest „dialektem” XML, możesz zakończyć wysyłanie większej liczby nieprzetworzonych bajtów niż w przypadku użycia WMS.

Wreszcie dane wektorowe - podobnie jak dane wyjściowe WFS - będą wymagały większej mocy obliczeniowej od urządzeń klienckich, ponieważ będą musiały renderować te funkcje; z drugiej strony odpowiedzi WMS na żądania GetMap są już renderowane, co oznacza mniej pracy po stronie klienta. Dlatego używanie danych wektorowych na klientach o ograniczonej mocy obliczeniowej może stanowić problem.

dariapra
źródło
1
dopóki nie zobaczyłem tej odpowiedzi, dodam coś podobnego. Funkcje wektorowe mogą być niezwykle złożone, a przesyłanie tych danych przez WFS może spowodować ogromne ładunki XML. W przypadku WMS głównym problemem jest czas przetwarzania wymagany do wygenerowania obrazu na grubym serwerze (cienkim kliencie), ale przynajmniej obraz można buforować w celu zwiększenia wydajności. Dzięki WFS musisz przesyłać ten sam kod XML za każdym razem, a ten ruch sieciowy może potencjalnie wpłynąć na postrzeganą wydajność w takim samym lub większym stopniu niż generowanie obrazu (więc cienki serwer / gruby klient niekoniecznie czyni cię bardziej skalowalnym).
tomfumb
4
Nie musisz używać GML z WFS, GeoJOSN, a pliki kształtów można na przykład wysyłać. Dobry serwer również skompresuje dane. Ale WMS będzie nadal szybszy dla każdego realistycznego zestawu danych.
Ian Turton
Dziękuję bardzo za odpowiedzi. Po przeprowadzeniu nieco więcej badań odkryłem, że dobrym rozwiązaniem będzie użycie WMS w takiej aplikacji internetowej. Bardziej wydajne będzie przesyłanie renderowanego obrazu do klienta. Szczególnie w przypadku dużych zestawów danych transmisja renderowanego obrazu może być szybsza niż kodowanie, przesyłanie i dekodowanie dużych plików XML.
Rajat Arora
6

Bezpieczne WMS / WFS z HTTPS używają certyfikatów po stronie klienta do uwierzytelniania poszczególnych użytkowników dla każdego żądania do serwera. Ma tę zaletę, że nie trzeba zmieniać implementacji WMS / WFS (z wyjątkiem umieszczenia go na serwerze HTTPS ), ale ma znaczną wadę polegającą na tym, że należy rozpowszechniać certyfikaty wśród użytkowników - zwykle nie do zaakceptowania, z wyjątkiem sytuacji o wysokim poziomie bezpieczeństwa .

WFS umożliwia jednolity bezpośredni dostęp do funkcji przechowywanych na serwerze. Użyj WFS, gdy chcą wykonywać takie czynności, jak:

query a dataset and retrieve the features
find the feature definition (feature’s property names and types)
add features to dataset
delete feature from a dataset
update feature in a dataset
lock features to prevent modification

WMS pozwala na jednolity dostęp do funkcji przechowywanych na serwerze. Użyj WMS, jeśli chcesz wykonywać takie czynności, jak:

Producing Maps
Very simple Querying of data

Trochę bardziej się komplikuje, gdy mamy do czynienia z WMS i HTTPS

http://idlastro.gsfc.nasa.gov/idl_html_help/HTTP_Authentication_Security_and_Encodinga.html

i http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html#AA

Użyłem WMS z FME Server i Geosever z HTTPS i oba działają dobrze.

Mapperz
źródło