SWIM MasterClass - Building SWIM B2B web services using Open Standards
1. Building SWIM B2B web services
using Open Standards
Debbie Wilson
Snowflake Software
2. The Problem
• Development of SWIM is going to be complex and time
consuming
• To realise the benefits, organisations need to freely
exchange ATM data in a interoperable manner
– Both within and outside the industry
• The AIRM and ISRM provide the conceptual blueprint
– Data exchange models (AIRM)
– Service operations (ISRM)
• SWIM must be developing using Open Standards:
– OGC/ISO
– W3C
3. Prototype Primary Goals
• Reduce costs of creating and consuming SWIM services
– Replicate the NOP B2B Airspace Activation services
• OGC web services backbone
• Provide flexible, open API
• Chain tailored services for specific ATM application
• Pave the way for „model driven‟ service creation from the ISRM
• Encourage a dynamic eco-system around ATM data
– Demonstrate multiple ways of deploying NOP services
• One logical service, many implementations
• Implementations designed for communities consuming them
• Demonstrate the benefits of existing open standards
5. Data Maintenance Architecture
SESAR SWIM • The prototype connected to the EAUP
B2B Airspace
Service Condition Routes (CDR) and Restricted
Airspace (RSA) web services
SWIM
Master Class • A custom Java client was developed to
Download Java connect to the B2B Services
Client
• An AIXM 5.1 extension was developed to store
EAUP Change Date and Sequence Number
EAUP CDR/RSA
• GO Loader was configured to load BASELINEs
& TEMPDELTAs into Oracle
6. Loading data using GO Loader
Configure database
schema mapping from
AIXM 5.1 Schema
AIXM 5.1 Extension to support
• chainDate
• sequenceNumber
8. OGC Web Feature Service (WFS)
• An OGC WFS is a generic web service that allows users to submit
requests to retrieve and maintain features or properties using
queries that contain XPath and filter expressions:
Logical Comparison Identifier
Spatial Temporal
Example Retrieval Requests:
•Get all CDR for the EAUP Chain 2012-04-25”, sequence number = 2
•Get all active FIR airspaces that are valid between 2012-04-12 to 2012-04-22
that intersect Route “abc1234”
9. WFS Stored Queries
• Stored queries can be used to limit or tailor the request
for specific applications
• Stored queries were developed to replicate the EAUP
requests:
– EAUPCDR
– EAUPRSA
• Stored queries defined using the CreateStoredQuery
operation containing a standard wfs:Query and fes:Filter
10. CreateStoredQuery
Request
Each Stored
query has an
identifier and title
and contains request
parameters:
• chainDate
• sequenceNumber
13. Data Publication Architecture
Airspace Airspace Flight ATM
Management Design Planning Viewer
EAUP CDR/RSA
Request/Response
• Stored queries are used by RESTful SWIM NOP
Services Services
the RESTful API and SWIM
SOAP Wrapper WFS Filter
Query
WFS Stored Queries
OGC WFS 2.0
Oracle 11g
Express Edition
14. RESTful API
• REST is a lightweight, loosely couple API
• Requests are simply URIs
• EAUP RESTful URI Design
– /SwimEAUPCDR/{chainDate}/{sequenceNumber}
– /SwimEAUPRSA/{chainDate}/{sequenceNumber}
• RESTful URI pattern was designed toreturn all EAUPs for
ensure it is
"hackable up the tree": specified chainDate
• /SwimEAUPCDR/2012-04-22/
15. SWIM SOAP Wrapper
Transform request into a WFS HTTP Get request
(stored query) and submit
• Designed to replicate
SWIM B2B Airspace Receive WFS Response
SOAP Service
If response contains a set of If response contains no
features, extract feature and insert into features, generate relevant response
relevant SWIM response document document
(EAUPCDRReply or EAUPRSAReply)
16. SWIM SOAP Wrapper
Transform request into a WFS HTTP Get request
(stored query) and submit
Receive WFS Response
If response contains a set of If response contains no features,
features, extract feature and insert into generate relevant response document
relevant SWIM response document
(EAUPCDRReply or EAUPRSAReply)
17. SWIM SOAP Wrapper
Transform request into a WFS HTTP Get request
(stored query) and submit
Receive WFS Response
If response contains a set of If response contains no
features, extract feature and insert into features, generate relevant response
relevant SWIM response document document
(EAUPCDRReply or EAUPRSAReply)
20. Technology Benefits
• Single Conceptual service deployed in many styles:
SOAP Services, RESTful Services, OGC Services
– One logical service, many types of end-point to encourage an eco-
system around ATM data
– Fit for purpose services removing barriers for data consumers
– Standards based services enabling off the shelf clients
– Richer services for finer grained access
• All deployed through standards based configuration
– Minimal software development required
– Reduced costs and timeframe of implementing SWIM Web Services
– Proving the way towards model driven service generation directly
from the ISRM
21. Experiment with the Services
http://wiki.snowflakesoftware.com/dis
play/LAB/Resources
Download the viewer
http://www.snowflakesoftware.com/20
12/10/atm-viewer-for-aixm/
Contact:
Ian Painter : ian.painter@snowflakesoftware.com
Debbie Wilson : debbie.wilson@snowflakesoftware.com
Editor's Notes
Hi I’m ***** from Snowflake Software and I’m going to take you through our award-winning SWIM MasterClass prototype
The development of SWIM web services is going to be a complex, time consuming process particularly as it involves a wide range of legacy systems and applications so they can take advantages of new technologies and the future internet.To assist in the development of SWIM, Eurocontrol is developing the Aeronautical Information and Information Services Reference Models which provide the conceptual blueprint for the underpinning data exchange models and necessary service operations.While SWIM has an operational focus – how can we ensure and encourage use of these services outside the ATM industry? This can be achieved by ensuring that SWIM is developed using Open Standards – particularly those that widespread use across a diverse range of domains such as the OGC standards.
The aim of our prototype was to demonstrate how to rapidly develop NOP SWIM services by building upon web services that implement the OGC open standards using the SESAR SWIM B2B Airspace Service as an example.The OGC web service standards provide rich spatial-temporal querying capabilities so provide a flexible backbone upon which you can chain tailored services for specific ATM applications. This approach also aims to pave the way for “model-driven” service creation from the ISRM. The key objective being to encourage a dynamic ecosystem of services for accessing and using ATM data via the ever increasing number of desktop, web and mobile apps.
The Prototype architecture involves thethreecore components
The first component to be developed was the data maintenance architecture for the local cache of Airspace data. The data maintenance architecture comprised of two components:GO Loader – this is our COTS product which loads the BASELINE and TEMPDELTA Airspace and Route features into the dataCustom Java Download client – which polled the SESAR SWIM B2B Airspace Service and downloaded the EAUP Conditional Routes and Restricted AirspacesAn AIXM 5.1 EAUP extension schema was developed to enable us to store the additional EAUP properties necessary to request the data which is not available in AIXM 5.1. These properties are available in the request to the Airspace Service are appended to the data on download by the Java Download Client.
GO Loader is a highly flexible AIXM loading solution and was used to quickly and easily configure the mappings necessary for loading both the BASELINE and TEMPDELTAs received from the SWIM B2B services.
However, thekey component of the protoytpe was the data publication architecture. We rapidly developed a two tier architecture of web services providing a diverse range of different interfaces to the same data to support the wide range of different ATM and external applications.An OGC Web Feature Service provided the foundation with more specific REST and SOAP services configured on top.
An OGC Web Feature Service provides a generic interface that allows users to retrieve and manage data with a spatial context. These requests contain queriesthat Filter Expressions allowing the user huge flexibility to request data.These vary from simple requests such as get theconditional routes valid on 25th April 2012 to more complex requests such as get all the FIR airspaces that are active between the 12th to 22nd April 2012 that intersect a specific route.While the flexiblility of the WFS is an advantage, it can be too open for some applications.
But it can be contrained using stored queries to limit it to support specific requests. We used the stored queries capability to replicate the replicate the Airspace Service – EAUP Conditional Route and Resticted Airspace request/response operations.Stored queries can be configured using either the WFS CreateStoredQuery operation which contains a standard WFS query or via using proprietary operations.
We used the CreateStoredQuery request to generate the stored query to replicate the EAUPCDR and EAUPRSA requests.The create stored query request defines the allowable query parameters: which for both queries was the EAUP chain date and sequence number
The Stored Query can then be executed as a simple HTTP Get request
And returnsthe data within an AIXM Basic Message
These stored queries are then used by the RESTFul API and SOAP wrapper.
The REST API is a generic lightweight, loosely coupled web service and provides a much more simple request interface to the WFS and SOAP Wrapper.The request is simply a HTTP URI which should be designed to be intuitive and hackable.The EAUP URI was designed to be comprised of 3 parts:Service requestEAUP chain dateEAUP service numberBy putting the chain date first when a user requests CDR for a specific chain date it returns the full set of EAUPs released for that day
The SWIM SOAP Wrapper was developed to replicate the SWIM B2B Airspace Available Service. Both the requests and response are exactly the same as the original SWIM service. But instead of directly connecting to the data it is chained to the WFS.The user submits a EAUP CDR Request to the wrapper which is the converted into a WFS request using the EAUP CDR Stored Query.
The wrapper then receives the WFS response If it contains a set of features generates the relevant EAUP Reply.and converts it into a EAUPCDRReply
Alternatively if it contains no features it generates the relevant status response
The final step was to demonstrate visualising the EAUP CDR and RSA applications to support decision-making using our ATM Viewer.To enable visualisation, we had to process the data on load to generate simple features geometries.
Our prototype demonstrated that a single conceptual service can be deployed in several styles within the SWIM environment. As all of these services were based on open standards - minimal software development was required as it involved mainly configurationThis significantly reduced the cost in both time and effort to implement SWIM servicesIt also proved that model-driven service generation from the ISRM is a possibility