Insurers' journeys to build a mastery in the IoT usage
Bryan lawrence
1. What is a Web Service
or some relevant web services
(for) Developing Applications for
Real-time Environmental Data
Bryan Lawrence
Head, NCAS British Atmospheric Data Centre
P.I. The NERC DataGrid.
2. Outline
Question: What is a Web Service?
Answer: Acronym Soup!
Fundamentals (XML+)
• SOAP and REST
• WSDL
OGC Web Services
• WFS, WCS, WFS
UNIDATA
• LDM
NDG Web Services
British Atmospheric Data Centre
http://badc.nerc.ac.uk
3. What is a web service?
Googling gives:
• Answers.Com: Web-based applications that dynamically interact
with other Web applications using open standards that include XML,
UDDI and SOAP.
• (Yuck: UDDI?)
• emergingtech.ittoolbox.com:
– A Service-Oriented Architecture (SOA) is a collection of services
or software agents that communicate freely with each other.
– Sub-topic definition: Web Services protocols and standards are
the technology that promote the sharing and distribution of
information and business data. A protocol is a standard method
for transmitting data through a network. There are many
different specialized protocols to accommodate the many kinds
of data that might be transmitted.
British Atmospheric Data Centre
http://badc.nerc.ac.uk
4. SOAP
Simple Object Access Protocol
Horrible looking XML specification, but
lots of SOAP pacakges available which
are (generally easy to use), eg:
from SOAPpy import SOAPproxy
url=http://services.xmethods.net:80/soap/
servlet/rpcrouter’
n=‘urn:xmethods-Temperature’
server=SOAPProxy(url,namespace=n)
temperature=server.getTemp(‘27502’)
Returns the temperature at U.S. zipcode 27502 (from
Dive Into Python, Mark Pilgrim)
(One knew a priori that a method named getTEmp would return a float given an argument of a zip
code, provided one used the right namespace – How?)
British Atmospheric Data Centre
http://badc.nerc.ac.uk
5. WSDL :Web Services Description Language
>>>from SOAPpy import WSDL
>>>Server=WDSL.Proxy(‘path/to/WSDL’)
>>>server.method.keys()
[u’doGoogleSearch’,u’doGetCachedPage’ …]
>>>callInfo=server.methods[‘doGoogleSearch’]
>>>for arg in callInfo.inparams:
S
. . . print arg.name, arg.type IE
RT
PE
key (u’http://www.w3.org/2001/XMLSchema’,u’string’)
. . .
RO
T P for a service, and
AC parameters).
Define expected messages
their (input orR
T output
A BS will group together a number of
An interface
messages (operations)
Bind an Interface via a definition to
a specific transport (e.g. HTTP) and The network location where the service is
messaging (e.g. SOAP) protocol implemented , e.g. http://localhost:8080
British Atmospheric Data Centre
http://badc.nerc.ac.uk
6. REST’ful Web Services
• REST (representational state transfer) is an
approach for getting information content
from a Web site by reading a designated
(ok, you need a URI) Web page that
contains an XML (Extensible Markup
Language) file that describes and includes
the desired content.
• That’s it! You use HTTP (get,put,…) to a
URI, with XML as the payload …
British Atmospheric Data Centre
http://badc.nerc.ac.uk
7. Web Services the confusion:
(Tim Ewald): “Today, I see three camps:
1) It's all about SOAP messages …,
2) It's all about WSDL,
3) It's all about XML/HTTP.
Microsoft is definitely in the first camp, focusing on doing things
with SOAP whether or not they are ultimately represented
as XML or a binary data rep.
IBM and Iona are in the second camp, focusing on describing in
WSDL, whether or not they are ultimately represented as
SOAP or a binary protocol.
Lots of developers and some big companies like Amazon are in
the XML/HTTP camp, focusing on getting data from one
place to another in a way they can consume it.
[Tim Ewald: http://pluralsight.com/blogs/tewald/archive/2004/10/18/2875.aspx]
British Atmospheric Data Centre
http://badc.nerc.ac.uk
8. Standards
• Dimensions of interoperability for
earth science data dis
co
very
ISO / OGC
access
e
us
British Atmospheric Data Centre
http://badc.nerc.ac.uk
9. OGC web services
• Data access services, e.g.:
– Live Access Server, NDG DataExtractor
– GADS
– DODS/OPeNDAP
– OGC web services
• OGC web services
– Web Map Service
– Web Feature Service
– Web Coverage Service
[Open Geospatial Consortium (OGC): International consortium of nearly 300
companies, government agencies and universities participating in a
consensus process to develop publicly available geoprocessing
specifications]
British Atmospheric Data Centre
http://badc.nerc.ac.uk
10. OGC web services
• Web Map Service (WMS)
• Three operations: eg, GLOBE program WMS server
– GetCapabilities (required) GetCapabilities:
http://viz.globe.gov/viz-bin/wmt.cgi
– GetMap (required) ?REQUEST=GetCapabilities&SERVICE=WMS
– GetFeatureInfo (optional)
• Typically support HTTP GET binding, SOAP
being considered
• GetCapabilities request
– <Service> metadata for service as a whole (ISO 19115 compliant)
– <Capability> metadata describes request bindings, exceptions, and:
– <Layer>s: title, name, SRS, bounding box, keywords, style; nested
layers inherit from parent
British Atmospheric Data Centre
http://badc.nerc.ac.uk
11. OGC web services
• e.g.: ERA40 re-analysis surface air temperature, 2001-04-27
– deegree open-source WMS modified with netCDF connector
Overlaid with rainfall from
globe.digitalearth.govData Centre
British Atmospheric
WMS server
http://badc.nerc.ac.uk
12. OGC web services
Web Coverage Service (WCS) – cf DODS/OPeNDAP/GADS
A geographic coverage is raw (typically gridded) data
WCS similar to WMS, but provides data, not images
(cf DODS/OPeNDAP, GADS)
Operations:
• GetCapabilities
• DescribeCoverage
• GetCoverage
Coverages supplied in well-known-binary format:
• GeoTIFF, HDF-EOS, DTED, NITF, GML, netCDF???
British Atmospheric Data Centre
http://badc.nerc.ac.uk
13. OGC web services
Web Feature Service (WFS)
Provides access to geographic feature instances
Features are defined by application schema compliant with the Geography
Markup Language (GML)
Operations:
• DescribeFeatureType (required): returns XML schema for the feature
• GetFeature (required): allows retrieval of features in XML compliant to the feature
schema. Selected features may be constrained through Xpath expressions
• Transaction and LockFeature (optional): for inserting, updating and deleting
feature instances
• GetCapabilities: describes capabilities of WFS (as for WMS)
Typically used for vector data (eg cruise tracks), but can be any
application schema
British Atmospheric Data Centre
http://badc.nerc.ac.uk
14. OGC web services
• FOSS implementations
– server:
• deegree
• geoserver
• mapserver
– client:
• quickWMS
• www.wmsviewer.com
– List maintained on NDG wiki at
http://ndg.nerc.ac.uk/kwiki/ndg/index.cgi?
OtherProjects
British Atmospheric Data Centre
http://badc.nerc.ac.uk
15. OGC web services
Summary
– Web Map Service (WMS, ISO 19128)
• GetCapabilities
• GetMap
– Web Feature Service (WFS)
• GetCapabilities
• DescribeFeatureType
• GetFeature
• Transaction, LockFeature
– Web Coverage Service (WCS)
• GetCapabilities
• DescribeCoverage
• GetCoverage
– Catalog Service for the Web (CSW) – very new!
– REST, not SOAP (currently)
British Atmospheric Data Centre
http://badc.nerc.ac.uk
16. NDG: CSML
Climate Science Modelling Language
(CSML, a GML application schema)
http://ndg.nerc.ac.uk/csml
– Defines seven features of interest!
CSML feature type Description Examples
TrajectoryFeature Discrete path in time and space of a ship’s cruise track, aircraft’s flight path
platform or instrument.
PointFeature Single point measurement raingauge measurement
ProfileFeature Single ‘profile’ of some parameter along a wind sounding, XBT, CTD, radiosonde
directed line in space.
GridFeature Single time-snapshot of a gridded field gridded analysis field
PointSeriesFeature Series of single datum measurements tidegauge, rainfall timeseries
ProfileSeriesFeature Series of profile-type measurements vertical or scanning radar, shipborne ADCP,
thermistor chain timeseries
GridSeriesFeature Timeseries of gridded parameter fields. numerical weather prediction model, ocean
general circulation model
British Atmospheric Data Centre
http://badc.nerc.ac.uk
17. CSML
ProfileSeriesFeature
ProfileFeature
GridFeature
British Atmospheric Data Centre
http://badc.nerc.ac.uk
18. NERC DataGrid; web services coming soon
Discovery Service (here now)
Data Extractor (next week)
Vocab Service (next month)
Attribute Authority (next couple of months)
Data Provider (next couple of months)
DeliveryBroker (later this year)
Browse Service (a long way off)
All Open Source, documented, clear APIs
British Atmospheric Data Centre
http://badc.nerc.ac.uk
21. UNIDATA
Unidata (www.unidata.ucar.edu) provide data feeds
using their Local Data Manager (LDM) technology
to push data around the U.S. (and further afield) in
the Internet Data Distribution system (IDD).
• Users to specify in advance which data should be
delivered to their local systems. The IDD then
delivers the data as soon as they are available.
• The IDD is a data subscription service,
implemented in such a way that delivery (and
often processing) are triggered by external events.
• WMO considering the use of LDM for some data
movement.
British Atmospheric Data Centre
http://badc.nerc.ac.uk
22. Unidata: LDM
LDM Delivery
•Scalable
•Hierarchical fan out
•Relying on relay sites with
appropriate resources
•Flexible
•New data products can be
introduced from any node in
the system
British Atmospheric Data Centre
http://badc.nerc.ac.uk
24. Summary
• Web services not just about SOAP and WSDL …
• We should use
• web service standards,
• WS mechanisms optimised for environmental
applications
• Currently need to extend GML (CSML)
• Options for data push if UK community want it
based on LDM (or similar) technologies …
• NDG can (and is) building a range of
environmental web services
British Atmospheric Data Centre
http://badc.nerc.ac.uk