cool apps: building cryospheric data applications with standards-based service oriented architecture

57
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

Upload: ian-truslove

Post on 18-Nov-2014

217 views

Category:

Technology


0 download

DESCRIPTION

Presented at AGU Fall Meeting 2012

TRANSCRIPT

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

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

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

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

Page 3: 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

Page 4: 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

Page 5: 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

Page 6: 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

Page 7: 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

Page 8: 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

Page 9: 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

3rd party tools

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

THE WEB

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

Page 11: 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/

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

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

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

3-Tier Web Architecture

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

The Problem:

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

3-Tier Web Architecture

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

Tight CouplingThe Problem:

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

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

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

3-Tier Web Architecture

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

…and perhaps

portalproliferation

problem

The Problem:

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

3-Tier Web Architecture

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

Extending…

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

3-Tier Web Architecture

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

New app

Other data

Bridge

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

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)

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

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

Page 21: 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

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

Service Interfaces

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

Clients consume service interfaces

Loose coupling

Systems expose service interfaces

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

Service Interfaces

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

Extending…

Page 24: 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

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

Service Interfaces

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

service interfaceproliferation

problem

The Problem:

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

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

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

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:

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

Service Interfaces

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

Reusing…

Page 29: 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

Client App 1Client App 2 Client App 3

System BSystem A

Many clients…

Page 30: 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

Client App 1

System A

Many service providers…

System B

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

Implementing Services

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

Adopt>

Extend>

Roll your own

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

Service Standards

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

REST is aN Architectural style!

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

Services: Roll Your Own

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

DiscoverabilityComprehensibil

ityUniversalityExtensibility

Desirable properties include:

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

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

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

Implementing Services

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

Adopt>

Extend>

Roll your own RESTful services

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

SOA @ NSIDC

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

Page 37: 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

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

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

Page 39: 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

Page 40: 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

Page 41: 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

Page 42: 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)

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

+/-/Δ: OBSERVATIONS

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

Page 44: 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

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

Advantages

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

Reuse (and reusability)Off-The-Shelf Software

Development time

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

Challenges

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

DocumentationAdoption

Continuity

Page 47: 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

Page 48: 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

Page 49: 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

Web clients…

Page 50: 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

Web browsers have security restrictions…

(“same origin policy”)

Page 51: 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

My web client may not consume

your service interface

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

A MODEST PROPOSAL

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

Page 53: 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

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

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/

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

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

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

Poster

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

Joe Oldenburg: “Cool Apps”

IN43B-1517

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

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: