opendap 4 data server – hyrax

24
OPeNDAP Developer’s Workshop Feb 21-23 2007 OPeNDAP 4 Data Server – Hyrax James Gallagher and Nathan Potter 21 Feb 2007

Upload: nodin

Post on 12-Jan-2016

67 views

Category:

Documents


0 download

DESCRIPTION

OPeNDAP 4 Data Server – Hyrax. James Gallagher and Nathan Potter 21 Feb 2007. But first…. These are Hyrax. “Despite the unexceptional appearance of modern hyraxes, the order has a remarkable prehistoric lineage and hyraxes may be the closest living relatives of the elephant.” WikiPedia. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

OPeNDAP 4 Data Server – Hyrax

James Gallagher and Nathan Potter

21 Feb 2007

Page 2: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

But first…

• These are Hyrax

“Despite the unexceptional appearance of modern hyraxes, the order has a remarkable prehistoric lineage and hyraxes may be the closest living relatives of the elephant.” WikiPedia.

Page 3: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Overview

• Goals of the Hyrax Project

• Introduction to customization

• Discussion topic

Page 4: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Goals of the Hyrax Project

• Integrate THREDDS catalogs with DAP • Improve security of our data server• Reduce work to maintain the server• Reuse the existing server software• Integrate work with/for Earth System

Grid (ESG) back into the OPeNDAP software

• Improve the server’s performance

Page 5: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Integrate THREDDS

• Requirements:– Standard representation for catalogs– Separation of the logical from the physical data

organization– A no-hands mode » Fully automatic catalogs– Graceful transition from custom to automatic

catalogs– Full THREDDS features – not stripped down– Must use Unidata’s THREDDS software

• Hyrax 1.0.2 has met these.

Page 6: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Improve the Server’s Security• The original data server design was hard to

make ‘hack proof’– Common Gateway Interface (CGI)– Data handlers were run as a subprocess in a

protected shell– Main CGI modules written in Perl

• As the server grew in complexity, these became more pressing issues.

• Improvements– Perl/CGI » Java/Servlet– Subprocess/shell » Specialized IPC

Page 7: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Reduce Maintenance and Reuse Existing Software

• The Perl software was becoming unwieldy – Reimplementation was needed whether in Perl, Java, …

• Considerable effort has gone into writing our data handlers for netCDF, …, and we could not rewrite them.

• Additional code for the handlers had to be minimal (for the most complex handler - asciival, it’s size increased by 21%, format handlers were just half that value)

Page 8: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Integrate ESG Work

• ESG II had developed a flexible server for the DAP– Its capabilities far out stripped the CGI server– Several extensions to OPeNDAP software were

needed

• The changes/extensions to the OPeNDAP software were merged back into our copies of the code and both projects resumed working from the same version of the software.

Page 9: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Improve Performance

• The new server architecture eliminates basic design problems.– Fewer subprocess created, issues with Perl, …

• Response handlers in the BES pass binary objects, not the objects’ network representation

• Better use of HTTP (e.g., persistent connections now supported)

Page 10: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Recap: Goals of Hyrax

• A higher performance server

• Provides true THREDDS catalogs

• A high level of data-handling code reused

• A more secure design

• A more maintainable design that can evolve gracefully

Page 11: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Introduction to Customization

• The OPeNDAP Data Server was designed to be extended.

• Hyrax - can be Extended by:– Writing a handlers for the front end– Writing a handlers for the back end– Directly access the back end

Page 12: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Hyrax Architecture

OLFS

Java Servlet Engine

BES

Unix Daemon

BES Commands

XML- encapsulated object

File system with data files,SQL Database, …

DAP2

THREDDS

HTML

Optional THREDDS catalogs

Page 13: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Adding a new BES Handler

• Add support for a new data format or data source (relational data base)

• Build a gateway to another data system (such as a WCS server)

• Support new response types (such as netCDF 3 files)

• Add new commands• Patrick West will talk about this next.

Page 14: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Direct access to the BES

• Use this to build a connection-oriented system

• Build new front end systems

• And more…

• Jose Garcia will talk about this following Patrick.

Page 15: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Adding a new OLFS Handler

• OLFS – Dispatch activity abstracted– Dispatch figures out what they want– Uses a handler to figure out how to do it

Page 16: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Inside OLFS

Dispatch DispatchHandler

Page 17: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Inside OLFS

Dispatch

GET

POST

DispatchHandler

Network Interface

Page 18: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Inside OLFS

Dispatch

GET

POST

DispatchHandler

Network Interface Uniform Dispatch Interface

Page 19: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Inside OLFS

Dispatch

GET

POST

DispatchHandler

HttpDispatchHandler

ThreddsDispatchHandler

SoapDispatchHandler

Network Interface Uniform Dispatch Interface

Page 20: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Inside OLFS

Dispatch

GET

POST

DASDDScatalog

SOAP

DispatchHandler

HttpDispatchHandler

ThreddsDispatchHandler

SoapDispatchHandler

Network Interface Uniform Dispatch Interface

Page 21: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Inside OLFS

Dispatch

GET

POST

DASDDScatalog

SOAP

DispatchHandler

HttpDispatchHandler

ThreddsDispatchHandler

SoapDispatchHandler

Network Interface Uniform Dispatch Interface Various sources of information

BES

BES

Crawlable…

Page 22: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Summary

• BES Handler: Add support for a new data format, response type, commands or to build a gateway

• OLFS Handler: Build support for a new network protocol while (re)using the existing software and/or interact with a new data source

• Use the BES directly: Build new front–ends (web portals, LAN-based systems)

Page 23: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Recap: Hyrax Architecture

OLFS

Java Servlet Engine

BES

Unix Daemon

BES Commands

XML- encapsulated object

File system with data files,SQL Database, …

DAP2

THREDDS

HTML

Optional THREDDS catalogs

Page 24: OPeNDAP 4 Data Server – Hyrax

OPeNDAP Developer’s Workshop Feb 21-23 2007

Discussion Topic: How Could Hyrax Support the WCS Protocol?

• A BES Handler could be written to support new response formats (i.e., the well-known binary formats)

• A BES command set could be written for operations unique to WCS

• An OLFS DispatchHandler could be built to use the new BES commands