330 likes | 340 Views
Learn about the use of Representational State Transfer (REST) and Web Feature Service (WFS) interfaces in the Digital SNOWTAM Trial, enabling query, display, and retrieval of geospatial data from multiple sources. Understand the basic functions, key principles, and implementation of REST and WFS. Discover how resources, representations, hypermedia, and uniform interfaces play a crucial role in interacting with resources. Explore the architecture, implementation, and workflow of the REST framework used.
E N D
REST and WFS Interfaces Usage in Digital SNOWTAM Trial
AIXM 5.1 data WFS Trial – Application architecture soon REST and WFS Interfaces
Contents REST and WFS WFS Introduction REST Introduction REST and WFS in the Digital SNOWTAM Trial Examples REST and WFS Interfaces
WFS • Web Feature Service • Geographic information service implementation specification based on XML and GML • Allows a client to retrieve and update geospatial data encoded in GML from multiple Web Feature Services. • Specification from OGC and now ISO REST and WFS Interfaces
WFS – What does it enable? • A client can query a data source and then display the result. Data can be combined from many different sources. The ability to display data from many sources allows the data to be combined in new and interesting ways. • Web Feature service has two functions: • First, it can implement geospatial data web service, data provider can establish a web feature service upon on spatial database to provide online data service. • Second, it can implement interoperability between heterogeneous system. Two different GIS software can realise heterogeneous data interoperability, including query, browse, update etc. REST and WFS Interfaces
WFS – Basic Functions • GetCapabilities • operation describes capabilities of the WFS using XML, it indicates which feature types it can service and what operations are supported on each feature type • DescribeFeatureType • operation describes the structure of any feature type it can service • GetFeature • operation services a request to retrieve feature instances REST and WFS Interfaces
REST Representational State Transfer An architectural style A technology agnostic abstraction The Web is RESTful REST and WFS Interfaces
REST - Key principles Identifiable Resources Representations Hypermedia Uniform Interface Actions – Verbs Client-server Transparency and layering Type of data REST and WFS Interfaces
REST - Resources A resource is a real thing that can be acted upon with a request Anything that can be named and identified can be a resource They are found/identified using URIs Unified Resource Identifier = network address ~ URL Collection URI (../airports) Member URI (/airports/732d64d4-cd11) REST and WFS Interfaces
Contents REST and WFS WFS Introduction REST Introduction REST and WFS in the Digital SNOWTAM Trial Examples REST and WFS Interfaces
WFS - Implementation REST and WFS Interfaces
REST - Resources and time Resources can vary over time. The only thing that must be static is the semantic of the mapping (name). REST and WFS Interfaces
REST - Representations Resources are always accessed through a representation Captures the current or intended state of the resource There can be more than one (html, xml, pdf…) HTTP provides well known/standardized content types and content negotiation REST and WFS Interfaces
REST - Hypermedia Allows access to related resources Master-detail and other connections URIs in hypertext links Links should always be provided by the server Enables seemless evolution and distribution Different application and servers REST and WFS Interfaces
REST - Uniform Interface Once you know a resource’s ID, you can interact with it in a single standard way Limited set of operations (verbs) in HTTP: GET, PUT, POST, DELETE Pre-defined semantics allows for optimizations REST and WFS Interfaces
REST - Actions GET Used to read a resource or as a query Should be side-effect free POST Creates a new resource or invoke arbitrary processing PUT Updates the resource with new data and create it if necessary DELETE Removes the resource REST and WFS Interfaces
REST - Client Server Interactions Interactions in both directions: from and to the server Interactions are stateless: no client context stored on the server between requests REST and WFS Interfaces
REST - Transparency / Layering An application can interact with a resource by knowing two things: the identifier of the resource and the action required. That’s all! How the representation is found should be transparent to the user REST and WFS Interfaces
REST - Why it is used Support the provision of AIXM 5.1 data to end-user applications The REST interface shall enable digital users to: Query the Digital SNOWTAM database for the list of airports contained in the database and select one of these airports; Get the list of airport’s features for a selected airport; Get the surface contamination records for each such feature; Get the related feature through xlink:href; Get the SNOWTAM text and the free text translation associated with an Airport. REST and WFS Interfaces
REST - Architecture The REST framework used is Struts 2 REST plugin. See http://struts.apache.org/2.x/docs/rest-plugin.html for more information. REST and WFS Interfaces
REST - Implementation Only GET is needed for the trial. REST and WFS Interfaces
REST - Workflow In order to interrogate the database: request the list of airports select one airport and use the xlink:href to get the details about this airport select a related feature and use the corresponding xlink:href to get the details about it The xlink:href is a URL compliant to the Digital SNOWTAM REST request structure Use the UUID for subsequent calls REST and WFS Interfaces
REST - Base URL Base: http://<server>/<app> E.g. http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept Then add a Suffix: /<REST suffix> REST and WFS Interfaces
REST - Find Airports Suffix: /airportheliports[?designator=<pattern>] There are about 15000 airports/heliports in the database so… Optional Parameter: The pattern is of the form [A-Z*]{1,4} where * is the wildcard character. Pattern samples: EB* matches any designator beginning with EB *BBR matches any designator ending in BBR E*R matches any designator beginning with E and ending with R REST and WFS Interfaces
REST - Query an Airport Suffix: /airportheliports/<gml:identifier>[?features=yes/no&contaminations=yes/no&date=<date&time>] Mandatory parameter: gml:identifier – UUID Optional parameters: date - <date&time> is the search date&time features - specify if xlink:href pointing to related features must be included in the results, e.g. runways, taxiways, etc contaminations - specify if contaminations must be included or not in the result REST and WFS Interfaces
Contents REST and WFS WFS Introduction REST Introduction REST and WFS in the Digital SNOWTAM Trial Examples REST and WFS Interfaces
REST - 1 – Create Contamination Use Bromma to create a contamination REST and WFS Interfaces
REST - 2 – Use REST to find the airport http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/airportheliports?designator=ESSB <ResultList> <AirportHeliportFeature designator="ESSB" id="77a0de0e-277a-4824-a561-2ba779a3658c" href="http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/airportheliports/77a0de0e-277a-4824-a561-2ba779a3658c"/> </ResultList> REST and WFS Interfaces
REST - 3 – Find SNOWTAM Text http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/airportheliports/77a0de0e-277a-4824-a561-2ba779a3658c?features=yes&contaminations=yes • <aixm:annotation> • <aixm:Note> • <aixm:definition>snowtam-icao</aixm:definition> • <aixm:translatedNote> • <aixm:LinguisticNote> • <aixm:note lang="eng"> • SW** ESSB 10090900 (SNOWTAM A)ESSB B)10090900 C)12 F)3/2/2 G)1/1/1 H)2/3/3 BRD ) • </aixm:note> • </aixm:LinguisticNote> • </aixm:translatedNote> • </aixm:Note> • </aixm:annotation> REST and WFS Interfaces
REST - 4 – Get Airport data http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/airportheliports/77a0de0e-277a-4824-a561-2ba779a3658c?features=yes … <aixm:associatedRunways> <aixm:associatedRunway id="12/30" xlink:href="http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/runways/58ea128d-1bbe-47f6-92fe-a8961b4bf5ee"/> </aixm:associatedRunways> … REST and WFS Interfaces
REST - 5- Get Runway contamination http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/runways/58ea128d-1bbe-47f6-92fe-a8961b4bf5ee?contaminations=yes • <aixm:areaContaminant> • <aixm:RunwaySectionContamination> • <aixm:observationTime>2009-10-09T09:00:00Z</aixm:observationTime> • <aixm:depth uom="MM">1</aixm:depth> • <aixm:frictionEstimation>MEDIUM</aixm:frictionEstimation> • <aixm:frictionDevice>BRD</aixm:frictionDevice> • <aixm:obscuredLights>NO</aixm:obscuredLights> • <aixm:layer> • <aixm:SurfaceContaminationLayer> • <aixm:layerOrder>1</aixm:layerOrder> • <aixm:type>WATER</aixm:type> • </aixm:SurfaceContaminationLayer> • </aixm:layer> • <aixm:section>2_THIRD</aixm:section> • </aixm:RunwaySectionContamination> • </aixm:areaContaminant> REST and WFS Interfaces
REST - 6 - Time based http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/runways/58ea128d-1bbe-47f6-92fe-a8961b4bf5ee?date=9/10/2009%2009:00&contaminations=yes REST and WFS Interfaces
AIXM 5.1 TEMPDELTA and a BASELINE REST and WFS Interfaces