JavaScript Client Libraries for the
(Former) Long Tail of OGC Standards
FOSS4G-Europe, Bremen, July 2014
Daniel Nüst (52°North GmbH), Matthes Rieke (52N), Paul Breen (BAS)
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 2
http://commons.wikimedia.org/wiki/File:Long_tail.svg
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 3
2014
JavaScript is on the rise (node, JS engines)
Cloud
jQuery
AngularJS, Dojo, ExtJS, …
OpenLayers, Leaflet, GeoExt, …
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 4
Motivation
Create generic client libraries because…
applications move to the browser,
WPS and SOS reach(ed) 2nd version,
need to build apps, and
we don’t want to repeat ourselves.
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 5
SOS.JS AND WPS-JS
Coming up: new project introduction and demonstration
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 6
WPS-JS
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 7
About wps-js
JavaScript WPS Client to build interactive
forms to control standardized processes.
Build on: OpenLayers (requests, XML)
GitHub: https://github.com/52North/wps-js
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 8
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 9
https://www.ohloh.net/p/wps-js
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 10
OGC WPS
“Geo-ready” web processing standard
GetCapabilities
DescribeProcess
Execute
WPS-G, WPS-T
More: http://www.ogcnetwork.net/wps
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 11
wps-js Features
Form generation based on process descriptions
WPS 1.0.0
Interactive execution of processes
Pre-configuration of UI/form
Style-free
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 12
Demo
http://nuest.github.io/wps-js/
http://geostatistics.demo.52north.org/wps/client.html
http://geoviqua.dev.52north.org/wps-js-client/
Simple calculator
Table output
Data intercomparison and colocation
(pre-configuration)
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 13
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 14
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 15
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 16
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 17
http://geoviqua.dev.52north.org/wps-js-
client/demo/geca-
intercomparison/client.html?source=Testlink&_pdPortl
et_WAR_geoportal_uuid=067a17f9-8d37-4d15-b405-
25e701dd03b0&_pdPortlet_WAR_geoportal_uuid=311
72be3-01ae-4d4d-b500-8e734a1d5432&hide=false
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 18
SOS.JS
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 19
About SOS.js
Javascript library to browse, visualise, and
access, data from an OGC Sensor Observation
Service.
Basis: OpenLayers
GitHub: https://github.com/52North/sos-js
History…
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 20
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 21
https://www.ohloh.net/p/sos-js
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 22
Live Demos
http://basmet.nerc-bas.ac.uk/sos/
http://52north.github.io/sos-js/
http://sensors.geonovum.nl/sos-js-test/sos-app-test.html
[integrated in 52°North SOS]
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 23
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 24
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 25
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 26
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 27
Experiences
Shortest path to beta (OL)
Raw time series data can be handled in JS
XML is possible, of course JSON is simpler…
Hard to reach “completeness” when driven by projects
Be aware of CORS when you deploy services
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 28
Goals
Useful and usable libraries for application developers (not
SWE/processing experts)
Facilitate usage of WPS and SOS
Minimal footprint
Flexible use (domain applications)
User-friendly interfaces
Non-copyleft licenses
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 29
Steps
1) Become independent…
from mapping libraries
from specific frameworks
modularize
release version 1.0
2) Extend developer/user community
3) Ease usage (plugins for JS libs/JS mapping)
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 30
Challenges
“lib-independent library”
JavaScript modularization
Coordination and community building
Testing and service compatibility
SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 31
@FiveTwoN
http://blog.52north.org/
52north.org/communities/

JavaScript Client Libraries for the (Former) Long Tail of OGC Standards

  • 1.
    JavaScript Client Librariesfor the (Former) Long Tail of OGC Standards FOSS4G-Europe, Bremen, July 2014 Daniel Nüst (52°North GmbH), Matthes Rieke (52N), Paul Breen (BAS)
  • 2.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 2 http://commons.wikimedia.org/wiki/File:Long_tail.svg
  • 3.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 3 2014 JavaScript is on the rise (node, JS engines) Cloud jQuery AngularJS, Dojo, ExtJS, … OpenLayers, Leaflet, GeoExt, …
  • 4.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 4 Motivation Create generic client libraries because… applications move to the browser, WPS and SOS reach(ed) 2nd version, need to build apps, and we don’t want to repeat ourselves.
  • 5.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 5 SOS.JS AND WPS-JS Coming up: new project introduction and demonstration
  • 6.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 6 WPS-JS
  • 7.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 7 About wps-js JavaScript WPS Client to build interactive forms to control standardized processes. Build on: OpenLayers (requests, XML) GitHub: https://github.com/52North/wps-js
  • 8.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 8
  • 9.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 9 https://www.ohloh.net/p/wps-js
  • 10.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 10 OGC WPS “Geo-ready” web processing standard GetCapabilities DescribeProcess Execute WPS-G, WPS-T More: http://www.ogcnetwork.net/wps
  • 11.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 11 wps-js Features Form generation based on process descriptions WPS 1.0.0 Interactive execution of processes Pre-configuration of UI/form Style-free
  • 12.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 12 Demo http://nuest.github.io/wps-js/ http://geostatistics.demo.52north.org/wps/client.html http://geoviqua.dev.52north.org/wps-js-client/ Simple calculator Table output Data intercomparison and colocation (pre-configuration)
  • 13.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 13
  • 14.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 14
  • 15.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 15
  • 16.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 16
  • 17.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 17 http://geoviqua.dev.52north.org/wps-js- client/demo/geca- intercomparison/client.html?source=Testlink&_pdPortl et_WAR_geoportal_uuid=067a17f9-8d37-4d15-b405- 25e701dd03b0&_pdPortlet_WAR_geoportal_uuid=311 72be3-01ae-4d4d-b500-8e734a1d5432&hide=false
  • 18.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 18 SOS.JS
  • 19.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 19 About SOS.js Javascript library to browse, visualise, and access, data from an OGC Sensor Observation Service. Basis: OpenLayers GitHub: https://github.com/52North/sos-js History…
  • 20.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 20
  • 21.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 21 https://www.ohloh.net/p/sos-js
  • 22.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 22 Live Demos http://basmet.nerc-bas.ac.uk/sos/ http://52north.github.io/sos-js/ http://sensors.geonovum.nl/sos-js-test/sos-app-test.html [integrated in 52°North SOS]
  • 23.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 23
  • 24.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 24
  • 25.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 25
  • 26.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 26
  • 27.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 27 Experiences Shortest path to beta (OL) Raw time series data can be handled in JS XML is possible, of course JSON is simpler… Hard to reach “completeness” when driven by projects Be aware of CORS when you deploy services
  • 28.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 28 Goals Useful and usable libraries for application developers (not SWE/processing experts) Facilitate usage of WPS and SOS Minimal footprint Flexible use (domain applications) User-friendly interfaces Non-copyleft licenses
  • 29.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 29 Steps 1) Become independent… from mapping libraries from specific frameworks modularize release version 1.0 2) Extend developer/user community 3) Ease usage (plugins for JS libs/JS mapping)
  • 30.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 30 Challenges “lib-independent library” JavaScript modularization Coordination and community building Testing and service compatibility
  • 31.
    SOS.js & wps-js@ FOSS4G-E, Bremen, 2014 31 @FiveTwoN http://blog.52north.org/ 52north.org/communities/

Editor's Notes

  • #2 What is the former long tail??
  • #5 What is missing today are generic libraries that operate at the same level of performance and quality to (i) access observation and time series data, for example coming from OGC Sensor Observation Services (SOS) as part of the Sensor Web Enablement (SWE) suite of standards, and (ii) control processes published online, for examples as an OGC Web Processing Service (WPS). These standards are less widespread than WMS and WFS but gain momentum as data volumes increase, for example with a myriad of smart sensors in the internet of things or new EO satellite missions, and subsequent requirements for sophisticated architectures for (event-based) processing and management of time series data. SWE standards have just reached their second versions; a new WPS standard is currently under development.
  • #6 During the talk we will demonstrate sample applications build with the libraries and share experiences of developing client libraries for XML-based standardized web services with Javascript, which include programming as well as project build and management lessons. SOS.js is a Javascript framework to access SOS data and build sophisticated lightweight browser applications for discovering and displaying time series data as plots, tables, and maps. It consists of two modules: core and user interface.
  • #8 wps-js is a Javascript client library for the WPS generating forms based on the standardized metadata from the service and interactively creating and submitting processing tasks. It uses a templating mechanism for XML building and an internal Javascript class hierarchy. Both libraries are based on OL’s request and response encoding.
  • #11 WPS-G (extension, based on WPS-T) (un)deployment of processes and data, process mgmt (monitor, control), download results
  • #13 Wps-js is a simple form generation framework, limited styling etc. to allow easy integration into other websites
  • #16 Process description for simple calculator
  • #18 Data intercomparison clients pre-configuration Parameter passing through URL http://geoviqua.dev.52north.org/wps-js-client/demo/geca-intercomparison/client.html?source=Testlink&_pdPortlet_WAR_geoportal_uuid=067a17f9-8d37-4d15-b405-25e701dd03b0&_pdPortlet_WAR_geoportal_uuid=31172be3-01ae-4d4d-b500-8e734a1d5432
  • #19 SOS.js is a Javascript framework to access SOS data and build sophisticated lightweight browser applications for discovering and displaying time series data as plots, tables, and maps. It consists of two modules: core and user interface.
  • #20 Paul Breen, BAS
  • #28 We conclude that Javascript is ready to handle raw (timeseries) data and it is used more than ever. Also, both the standards and their open source implementations are ready for operational deployments. So it is now time to spread them further by increasing the usability with good browser client applications based on small and flexible open source libraries.
  • #29 Currently XML parsing facilities and request handling of OL are used (XML.js) One goal for both libraries is to become independent of OL and provide service access with a minimal footprint, for example to display data without maps. Might OL and Leaflet eventually use these libraries instead of their own client implementations for SOS and WPS? We see an advantage of developing such small and focussed libraries maintained by field experts in these non-mainstream domains. We’ll happily discuss if this is the best approach and pose the following question: Is there a (technical, organisational) way to build a compatible Javascript client frameworks across all geo-service standards?
  • #32 While the presented libraries are developed withing the 52°North communities we want to use this talk to actively reach out to members of other open source projects to seek collaborators and to organise interoperability tests to make these tools useful for a broader community.