Cool Apps: Building Cryospheric Data Applications With Standards-Based Service Oriented Architecture

Preview:

DESCRIPTION

Presented at AGU Fall Meeting 2012

Citation preview

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

ian.truslove@nsidc.org@iantruslovehttp://goo.gl/xkxgd

me:

this presentation:

Recommended