Contents Digital-SNOWTAM Trial Introduction REST Introduction

Slides:



Advertisements
Similar presentations
Pierre-Johan CHARTRE Java EE - JAX-RS - Pierre-Johan CHARTRE
Advertisements

REST - Representational State Transfer
Building and using REST information services Rion Dooley.
The European Organisation for the Safety of Air Navigation REST and WFS Interfaces Usage in Digital SNOWTAM Trial.
Building RESTful Interfaces
Semantic Web Introduction
Snejina Lazarova Senior QA Engineer, Team Lead CRMTeam Dimo Mitev Senior QA Engineer, Team Lead SystemIntegrationTeam Telerik QA Academy SOAP-based Web.
Depositing e-material to The National Library of Sweden.
Peoplesoft: Building and Consuming Web Services
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
Service-Oriented Programming
© 2011 IBM Corporation Overview on Modeling RESTful Services August, 2011 Manoj Paul, Software Developer, Rational,
1 Topics raised Implementation of the Digital NOTAM system Mapping the information to AIXM how to generate a minimum subset of the aixm model to generate.
IT 210 The Internet & World Wide Web introduction.
Chapter 1: Introduction to Web
Server-side Scripting Powering the webs favourite services.
Designing and Implementing Web Data Services in Perl
Web application architecture
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
Getting Started with the ASP.NET Web API Dhananjay Kumar Infragistics Consultant Microsoft MVP
Indo-US Workshop, June23-25, 2003 Building Digital Libraries for Communities using Kepler Framework M. Zubair Old Dominion University.
Open Data Protocol * Han Wang 11/30/2012 *
A/WWW Enterprises15 July 1996 Implementing Queries with HTTP A. Warnock A/WWW Enterprises
Kingdom of Saudi Arabia Ministry of Higher Education Al-Imam Muhammad Ibn Saud Islamic University College of Computer and Information Sciences Chapter.
Nadir Saghar, Tony Pan, Ashish Sharma REST for Data Services.
REST - Introduction Based on material from InfoQ.com (Stefan Tilkov) And slides from MindTouch.com (Steve Bjorg) 1.
FIMS v1.1 Version numbers in schema Richard Cartwright Quantel July 2013.
Introduction to the SharePoint 2013 REST API. 2 About Me SharePoint Solutions Architect at Sparkhound in Baton Rouge
SNOWTAM Trial: REST Interface. AIXM XML Developers' Seminar 2 Contents Digital-SNOWTAM Trial Introduction REST Introduction REST in the Digital-SNOWTAM.
SNOWTAM Trial: REST Interface. AIXM XML Developers' Seminar 2 Contents Digital-SNOWTAM Trial Introduction REST Introduction REST in the Digital-SNOWTAM.
1 Seminar on Service Oriented Architecture Principles of REST.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
REpresentational State Transfer.  Resources  Representations  Verbs  Links  Headers  HTTP Status Codes.
SOAP-based Web Services Telerik Software Academy Software Quality Assurance.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
Advanced Web Technologies Lecture #4 By: Faraz Ahmed.
1 © Donald F. Ferguson, All rights reserved.Modern Internet Service Oriented Application Development – Lecture 2: REST Details and Patterns Some.
Representational State Transfer (REST). What is REST? Network Architectural style Overview: –Resources are defined and addressed –Transmits domain-specific.
RESTful Web Services What is RESTful?
Web Services An Introduction Copyright © Curt Hill.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
The Akoma Ntoso Naming Convention Fabio Vitali University of Bologna.
© 2015 Cisco System Inc. All rights reserved Cisco Confidential 1 © 2015 Cisco System Inc. All rights reserved. 1 Subject Line Customization for Notifications.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Programming for RESTful-SOA An introduction to building a SOA System with light-weighted RESTful Web Services (Web Services without SOAP or WSDL) Xiong.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
National College of Science & Information Technology.
The Next Generation Network Enabled Weather (NNEW) SWIM Application
CS 330 Class 7 Comments on Exam Programming plan for today:
Using E-Business Suite Attachments
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
REST: Web Services Abel Sanchez.
REST- Representational State Transfer Enn Õunapuu
Node.js Express Web Services
Contents Digital-SNOWTAM Trial Introduction REST Introduction
An introduction to REST for SharePoint 2013
Hypertext Transfer Protocol
Lesson 11: Web Services & API's
UML to XSD.
Ashish Pandit IT Architect, Middleware & Integration Services
WEB API.
$, $$, $$$ API testing Edition
Testing RESTful Web APIs
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
4/4/2019.
RESTful Web Services.
WEB SERVICES From Chapter 19, Distributed Systems
Week 05 Node.js Week 05
Chengyu Sun California State University, Los Angeles
SDMX IT Tools SDMX Registry
Presentation transcript:

Contents Digital-SNOWTAM Trial Introduction REST Introduction REST in the Digital-SNOWTAM Trial Why it is used Architecture How it is used Example http://en.wikipedia.org/wiki/Representational_State_Transfer AIXM XML Developers' Seminar

Digital-SNOWTAM Trial Introduction

Demo AIXM XML Developers' Seminar

REST Introduction

REST Representational State Transfer An architectural style REST It is an architectural style. OFTEN LEAD TO REStful Web Services E.g. Amazon S3 REST API. AIXM XML Developers' Seminar

Main definitions Resources Representations Actions – Verbs Type of data AIXM XML Developers' Seminar

Resources A resource is a real thing that can be acted upon with a request Anything that can be named can be a resource e.g. PDF, XML, SVG, HTML page, today’s weather report. They are found using URIs (see www.purl.org) These are represented using URIs (see purl.org) Anything can be a resource e.g. PDF, XML, SVG, HTML page. A resource is a real thing that can be acted upon with a request AIXM XML Developers' Seminar

Resources and time Resources can vary over time. The only thing that must be static is the semantic of the mapping (name). AIXM XML Developers' Seminar

Representations The data transmitted to and from the resource is called a representation Captures the current or intended state of the resource It can be a copy of the file or a description of it The data transmitted to and from the resource is called a representation. It can be a copy of the file or a description of it. The interaction of the representation on the resource is determined by the verb. AIXM XML Developers' Seminar

Transparency How the representation is found should be transparent to the user It could involve the server parsing the URL, constructing a database query and returning the result AIXM XML Developers' Seminar

Actions - Verbs Once the representation of the resource has been returned, an action can be performed The interaction is determined by the HTTP verbs: GET, PUT, POST and DELETE The interaction is stateless Once the resource has been found, an action can be performed. These use the HTTP verbs: GET, PUT, POST and DELETE AIXM XML Developers' Seminar

Type of data When performing an action on a resource it is important to know what the resource is MIME types can help here (e.g. text/xml) The format of the request/response can be specified in a schema When performing an action on a resource it is important to know what the resource is. MIME types can help here (text/xml). The format of the response can be specified in a schema. Likewise, a schema can define the format of the response. AIXM XML Developers' Seminar

Actions GET Used to read a resource or as a query Should be side-effect free PUT Replaces the target resource in its entirety DELETE Removes the resource POST Has a variety of meanings e.g. it can be used when only a subset of a resource has to be modified AIXM XML Developers' Seminar

REST in the Digital-SNOWTAM Trial

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 feature related through xlink:href; Get the SNOWTAM text and the free text translation associated with an Airport. Read-Only Except for the list of Airports always returns an AIXM Basic Message which contains features There is no AIXM message yet for list of airports AIXM XML Developers' Seminar

Architecture The REST implementation framework used is Struts 2 REST plug-in which in turn uses the Convention plug-in. See http://struts.apache.org/2.x/docs/rest-plugin.html for more information. Please note the REST plug-in is only available for Struts 2.1.1 or above. http://struts.apache.org/2.x/docs/rest-plugin.html http://struts.apache.org/2.x/docs/convention-plugin.html AIXM XML Developers' Seminar

Implementation Only GET is need for the trial. AIXM XML Developers' Seminar

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 runway and use the corresponding xlink:href to get the details about this feature The xlink:href is a URL compliant to the Digital SNOWTAM REST request structure AIXM XML Developers' Seminar

Base URL Base: http://<server>/<app> E.g. http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept Then add a Suffix: /<REST suffix> Will work on HTTPS AIXM XML Developers' Seminar

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 The response to this request is not AIXM5.1-compliant since AIXM5.1 doesn’t define the concept of list of airports/heliports. Can add date&time if needed. AIXM XML Developers' Seminar

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 Use the gml identidfier from the Find Airport stage Here are a few remarks valid for all the suffixes described below: date is an optional parameter and <date&time> is the search date&time in the format dd/mm/yyyy hh:mm (e.g.: 11/06/2009 12:35). In each case, the response will be limited to data valid at that date&time. If no date&time is provided, the current date and time is used. features is an optional parameter to specify if xlink:href pointing to related features must be included in the results,e.g. runways, taxiways, apron of an airport or runway directions of a runway. Possible values are yes and no. If missing, no is assumed. contaminations is an optional parameter to specifiy if contaminations must be included or not in the result. Possible values are yes and no. If missing, no is assumed. AIXM XML Developers' Seminar

Examples

1 – Create Contamination Use Bromma to create a contamination AIXM XML Developers' Seminar

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> Use FireFox with text link plug in: https://addons.mozilla.org/en-US/firefox/addon/1939 AIXM XML Developers' Seminar

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> AIXM XML Developers' Seminar

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> AIXM XML Developers' Seminar

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> http://l-accept-04.pulsar.be/ec-xsnowtam-rest-accept/runways/58ea128d-1bbe-47f6-92fe-a8961b4bf5ee?date=9/10/2009%2009:00&contaminations=yes AIXM XML Developers' Seminar

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 AIXM XML Developers' Seminar

AIXM 5.1 TEMPDELTA and a BASELINE AIXM XML Developers' Seminar