cool apps: building cryospheric data applications with standards-based service oriented architecture
DESCRIPTION
Presented at AGU Fall Meeting 2012TRANSCRIPT
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented ArchitectureJulia A Collins, Ian Truslove, Brendan W Billingsley, Joseph Oldenburg, Mary Jo Brodzik, Scott Lewis, Miao Liu
Outline
1. Introduction2. The Web, circa 20123. 3-tier and Service Oriented
Architectures (SOA)4. Service standards5. NSIDC apps6. Proposal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
INTRODUCTION
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
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
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
Introduction
distributes scientific data
creates tools for data access
supports data users
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Introduction
distributes scientific data
creates tools for data access
supports data users
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Introduction
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
The Web
Distribution of
scientific data
Tools for data
access
Supports data users
Introduction
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
The Web
Distribution of
scientific data
Tools for data
access
Supports data users
3rd party tools
THE WEB
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Web Applications
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
http://blog.fogcreek.com/the-trello-tech-stack/
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
JavaScript Web client
Application Server
Data Abstraction / ORM
Database
Presentation
Business LogicData
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
The Problem:
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Tight CouplingThe Problem:
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
The Problem:
1 user interface requires 1 app stack
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
…and perhaps
portalproliferation
problem
The Problem:
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Extending…
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
New app
Other data
Bridge
3-Tier Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented 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
SOA Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
System A
Client App 1
XML JSON
Service Interfaces
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Clients consume service interfaces
Loose coupling
Systems expose service interfaces
Service Interfaces
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Extending…
SOA Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
System A
Client App 1
Service Interfaces
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
service interfaceproliferation
problem
The Problem:
Service Interfaces and Standards
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Clients consume service interfaces
…service interfaces conforming to standards
Service Standards
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
OGC WMS, WFS, WPS, …OPeNDAPRESTATOMESIP OpenSearchOAI-PMH
data:
publishing:
discovery:metadata:
Service Interfaces
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Reusing…
SOA Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Client App 1Client App 2 Client App 3
System BSystem A
Many clients…
SOA Web Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Client App 1
System A
Many service providers…
System B
Implementing Services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Adopt>
Extend>
Roll your own
Service Standards
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
REST is aN Architectural style!
Services: Roll Your Own
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
DiscoverabilityComprehensibil
ityUniversalityExtensibility
Desirable properties include:
Services, RESTfully
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Discoverability:hypermedia constraint, published
media typesComprehensibility:
familiar URIs; media typesUniversality:
HTTP transport; XML or JSON payloadsExtensibility:
XML, e.g. ATOM
Implementing Services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Adopt>
Extend>
Roll your own RESTful services
SOA @ NSIDC
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
GeoTIFF map data
GeoTIFF map data
GeoTIFF map data
MapServer
IceBridge Portal ACADIS Arctic Data Explorer
Metadata DB
get_metadata
DIF XMLDIF XML
GI-CatjOAISearchlight
Services
Searchlight Core
Libre DataCaster
Libre Aggregator
Web
App
sS
ervi
ces
Dat
aNSIDC’s Service Oriented Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
OAI-PMHESIP Collection Cast
ESIP OpenSearch
WMS, WFS
ESIP OpenSearch
ESIP OpenSearch
Dat
aS
ervi
ces
Web
App
sNSIDC’s Service Oriented Architecture
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
get_metadata
Metadata DB
OAI-PMHSearchlight
CoreESIP Collection Cast
ESIP OpenSearch
MapServer
WMS, WFS
DIF XMLDIF XML
GeoTIFF map data
GeoTIFF map data
GeoTIFF map data
ESIP OpenSearch
Libre DataCaster
GI-CatjOAILibre
Aggregator
ESIP OpenSearch
Searchlight Services
ACADIS Arctic Data ExplorerIceBridge Portal
Operation IceBridge Portal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Operation IceBridge Portal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
NSIDC Searchlight
ESIP OpenSear
ch
NSIDC MapServer
WMS
WFS
Libre Aggregator
ESIP OpenSearch
ACADIS Arctic Data Explorer
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
ACADIS Arctic Data Explorer
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
ACADIS Arctic Data Explorer
ESIP OpenSearch
OAI-PMHOPeNDAP
NSIDC metadata catalog
EOL field catalog (NCAR)
Met.no metadata catalog
ACADIS Gateway (NCAR)
+/-/Δ: OBSERVATIONS
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Disadvantages
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
ComplexityCompromise
Development time
Advantages
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Reuse (and reusability)Off-The-Shelf Software
Development time
Challenges
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
DocumentationAdoption
Continuity
THE WEB OF SERVICES
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
The Web of Services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Clients consume service interfaces
The Web of Services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Web clients…
The Web of Services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Web browsers have security restrictions…
(“same origin policy”)
The Web of Services
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
My web client may not consume
your service interface
A MODEST PROPOSAL
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Goal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Increase the pool of
potential users (web
applications) of our data
HTML5 Standard: CORS
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
CORS: Cross Origin Resource Sharing
http://www.w3.org/TR/cors/http://enable-cors.org/
Proposal
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Write service-enabled clients
Build standards-based services
Enable CORS
Share and reuse data and services
Poster
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Joe Oldenburg: “Cool Apps”
IN43B-1517
Questions
Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture
Write service-enabled clients
Build standards-based services
Enable CORS
Share and reuse data and services
[email protected]@iantruslovehttp://goo.gl/xkxgd
me:
this presentation: