Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
1. Cool Apps: Building Cryospheric
Data Applications With Standards-
Based Service Oriented Architecture
Julia A Collins, Ian Truslove, Brendan W Billingsley, Joseph
Oldenburg, Mary Jo Brodzik, Scott Lewis, Miao Liu
2. Outline
1. Introduction
2. The Web, circa 2012
3. 3-tier and Service Oriented Architectures (SOA)
4. Service standards
5. NSIDC apps
6. Proposal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
3. INTRODUCTION
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
4. Introduction
The National Snow and Ice Data Center (NSIDC)
supports research into our world's frozen realms: the
snow, ice, glaciers, frozen ground, and climate
interactions that make up Earth's cryosphere.
NSIDC manages and distributes scientific data, creates
tools for data access, supports data users, performs
scientific research, and educates the public about the
cryosphere.
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
5. Introduction
The National Snow and Ice Data Center (NSIDC)
supports research into our world's frozen realms: the
snow, ice, glaciers, frozen ground, and climate
interactions that make up Earth's cryosphere.
NSIDC manages and distributes scientific data, creates
tools for data access, supports data users, performs
scientific research, and educates the public about the
cryosphere.
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
6. Introduction
distributes scientific data
creates tools for data access
supports data users
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
7. Introduction
distributes scientific data
creates tools for data access
supports data users
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
8. Introduction
Distribution
of scientific
data
The
Web
Supports Tools for
data users data access
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
9. Introduction
Distribution
of scientific
data
3rd
party
tools
The
Web
Supports Tools for
data users data access
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
10. THE WEB
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
12. 3-Tier Web Architecture
Presentation JavaScript Web client
Business Logic Application Server
Data Data Abstraction / ORM
Database
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
13. 3-Tier Web Architecture
The Problem:
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
14. 3-Tier Web Architecture
The Problem: Tight Coupling
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
15. 3-Tier Web Architecture
The Problem:
1 user interface requires 1 app stack
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
16. 3-Tier Web Architecture
The Problem:
…and perhaps
portal
proliferation
problem
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
17. 3-Tier Web Architecture
Extending…
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
18. 3-Tier Web Architecture
Bridge
New app Other data
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
19. 3-Tier Web Architecture
The Problem:
1 user interface requires ≥1 app stack
(hopefully in the same language)
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
20. Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
21. SOA Web Architecture
Client App 1
XML JSON
System A
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
22. Service Interfaces
Clients consume service interfaces
Loose coupling
Systems expose service interfaces
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
23. Service Interfaces
Extending…
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
24. SOA Web Architecture
Client App 1
System A
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
25. Service Interfaces
The Problem:
service interface
proliferation
problem
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
26. Service Interfaces and Standards
Clients consume service interfaces
…service interfaces conforming to
standards
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
27. Service Standards
data: OGC WMS, WFS, WPS, …
OPeNDAP
REST
publishing: ATOM
discovery: ESIP OpenSearch
metadata: OAI-PMH
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
28. Service Interfaces
Reusing…
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
29. SOA Web Architecture
Client App 1
Client App 2 Client App 3
System A System B
Many clients…
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
30. SOA Web Architecture
Client App 1
System A System B
Many service providers…
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
31. Implementing Services
Adopt
>
Extend
>
Roll your own
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
32. Service Standards
REST is aN
Architectural
style!
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
33. Services: Roll Your Own
Desirable properties include:
Discoverability
Comprehensibility
Universality
Extensibility
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
34. Services, RESTfully
Discoverability:
hypermedia constraint, published media types
Comprehensibility:
familiar URIs; media types
Universality:
HTTP transport; XML or JSON payloads
Extensibility:
XML, e.g. ATOM
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
35. Implementing Services
Adopt
>
Extend
>
Roll your own RESTful services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
36. SOA @ NSIDC
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
37. NSIDC’s Service Oriented Architecture
Web Apps
ACADIS Arctic
IceBridge Portal
Data Explorer
WMS, ESIP ESIP ESIP
WFS OpenSearch OpenSearch OpenSearch
Libre Searchlight
Aggregator Services jOAI GI-Cat
OAI-PMH
Services
ESIP Searchlight
Collection Core DIF
DIF
Cast
XML
XML
MapServer Libre
DataCaster
get_metadata
GeoTIFF
GeoTIFF
Data
GeoTIFF
map data
map data Metadata DB
map data
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
38. NSIDC’s Service Oriented Architecture
Web Apps
ACADIS Arctic
IceBridge Portal
Data Explorer
WMS, ESIP ESIP ESIP
WFS OpenSearch OpenSearch OpenSearch
Libre Searchlight
Aggregator Services jOAI GI-Cat
OAI-PMH
Services
ESIP Searchlight
Collection Core DIF
DIF
Cast
XML
XML
MapServer Libre
DataCaster
get_metadata
GeoTIFF
GeoTIFF
Data
GeoTIFF
map data
map data Metadata DB
map data
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
39. Operation IceBridge Portal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
40. Operation IceBridge Portal
ESIP WMS
OpenSearch
WFS NSIDC
ESIP MapServer
OpenSearch
NSIDC
Searchlight
Libre
Aggregator
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
41. ACADIS Arctic Data Explorer
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
42. ACADIS Arctic Data Explorer
ESIP OpenSearch
ACADIS Arctic Data
Explorer
OAI-PMH
OPeNDAP
EOL field NSIDC Met.no
catalog metadata metadata ACADIS
(NCAR) catalog catalog Gateway (NCAR)
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
43. +/-/Δ: OBSERVATIONS
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
44. Disadvantages
Complexity
Compromise
Development time
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
45. Advantages
Reuse (and reusability)
Off-The-Shelf Software
Development time
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
46. Challenges
Documentation
Adoption
Continuity
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
47. THE WEB OF SERVICES
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
48. The Web of Services
Clients consume service interfaces
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
49. The Web of Services
Web clients…
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
50. The Web of Services
Web browsers have security restrictions…
(“same origin policy”)
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
51. The Web of Services
My web client
may not consume
your service interface
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
52. A MODEST PROPOSAL
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
53. Goal
Increase the pool
of potential users
(web applications)
of our data
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
54. HTML5 Standard: CORS
CORS: Cross Origin Resource Sharing
http://www.w3.org/TR/cors/
http://enable-cors.org/
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
55. Proposal
Write service-enabled clients
Build standards-based services
Enable CORS
Share and reuse data and services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
56. Poster
Joe Oldenburg: “Cool Apps”
IN43B-1517
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
57. Questions
Write service-enabled clients
Build standards-based services
Enable CORS
Share and reuse data and services
me: ian.truslove@nsidc.org
@iantruslove
this presentation: http://goo.gl/xkxgd
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture