Upload
estevan-gambles
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
The European Organisation for the Safety of Air Navigation
REST and WFS InterfacesUsage in Digital SNOWTAM Trial
REST and WFS Interfaces 2
Trial – Application architecture
AIXM 5.1 data
WFS
soon
REST and WFS Interfaces 3
Contents• REST and WFS
• WFS Introduction• REST Introduction
• REST and WFS in the Digital SNOWTAM Trial
• Examples
REST and WFS Interfaces 4
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 5
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 6
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 7
REST• Representational State Transfer• An architectural style• A technology agnostic abstraction• The Web is RESTful
REST and WFS Interfaces 8
REST - Key principles
• Identifiable Resources• Representations • Hypermedia• Uniform Interface• Actions – Verbs• Client-server• Transparency and layering• Type of data
REST and WFS Interfaces 9
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 10
Contents• REST and WFS
• WFS Introduction• REST Introduction
• REST and WFS in the Digital SNOWTAM Trial
• Examples
REST and WFS Interfaces 11
WFS - Implementation
REST and WFS Interfaces 12
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 13
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 14
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 15
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 16
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 17
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 18
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 19
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 20
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 21
REST - Implementation
• Only GET is needed for the trial.
REST and WFS Interfaces 22
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 23
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 24
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 25
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 26
Contents• REST and WFS
• WFS Introduction• REST Introduction
• REST and WFS in the Digital SNOWTAM Trial
• Examples
REST and WFS Interfaces 27
REST - 1 – Create Contamination
• Use Bromma to create a contamination
REST and WFS Interfaces 28
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 29
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 30
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 31
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 32
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 33
AIXM 5.1
• TEMPDELTA and a BASELINE