15
OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

Embed Size (px)

Citation preview

Page 1: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

OOI CyberInfrastructure:Technology Overview - Hyrax

January 2009 Claudiu Farcas

OOI CI Architecture & Design TeamUCSD/Calit2

Page 2: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

2

OOI-CYBERINFRASTRUCTURE

Hyrax Overview

• OPeNDAP Hyrax is a server for scientific data provisioning (using DAP2 standard)

• Uses a modular architecture to support different application-level protocols– Data access using DAP– Catalogs using THREDDS– Browsing using HTML and ASCII

• Modules for data access– Different file types– Potential for database and scripting

• Modules for commands– Commands provide varying operations for different

protocols

Page 3: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

3

OOI-CYBERINFRASTRUCTURE

Hyrax High-level Architecture

• Two cooperating components:– OpenDAP Lightweight Front-end Server (OLFS)

provides DAP, plain ASCII & HTML interfaces– Back-end server (BES) reads data from repositories

• Both parts can be customized– Front-end: different network protocols– Back-end: different data formats/systems

OLFS BES Data

Page 4: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

4

OOI-CYBERINFRASTRUCTURE

Hyrax Architecture

• Front-end (OLFS):– Runs inside Tomcat servlet container– Authentication & Authorization performed via

Tomcat– Provides DAP2 compliant interface– SOAP interface for programmatic access– Extensible via pluggable dispatch handlers

• Back-end (BES):– Data resource access.– Extensible (see Patrick’s slides)

• Single/Multiple Machine Installations Possible• Communication between OLFS & BES via

TCP/IP or UNIX Sockets

Page 5: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

OOI-CYBERINFRASTRUCTURE

OLFS

Java Servlet Engine

BES

Unix Daemon

BES Commands

XML- encapsulated object

DataStore

File system with data files,SQL Database, …

DAP2

THREDDS

HTML

Optional THREDDScatalogs

Hyrax Architecture

Page 6: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

6

OOI-CYBERINFRASTRUCTURE

OLFS DAP Request Processing

• DAP requests are made using URLs– URL: <pathname>.<request>[?<constraint>]

• Pathname: names a unique data source• Request: what the client wants• Constraint: optional modification to the request

• OLFS – parses the URL into the pathname, request and

constraint– uses knowledge of the BES commands &

capabilities to instruct the BES how to build the response

– packages the resulting response from the BES (e.g., builds a HTTP ‘text/plain’ response document and inserts the correct content).

Page 7: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

7

OOI-CYBERINFRASTRUCTURE

Extending the OLFS

• Extension ‘modules’ written in Java• Added to a directory within Tomcat• The new modules have complete access to the request

information• Both HTTP GET and POST requests• There is some significant processing done before the

handler is called:– Conditional GET Requests– Authorization & Authentication

Page 8: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

8

OOI-CYBERINFRASTRUCTURE

BES Architecture

Network Protocol andProcess start/stopactivities

Data Store Interfaces

BES Framework

PPT*Initialization/Termination

DAP2Access

NetCDF3 HDF4 FreeForm…

DataCatalogs

Commands**BES Commands/ XML Documents

*PPT: point to point transport**Some commands are built in, most load at run-time

Page 9: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

9

OOI-CYBERINFRASTRUCTURE

BES Components

• Modular architecture in C++• Modules interact with the BES and can interact with

other modules• Modules can add/modify functionality of BES• New modules are loaded at runtime when needed• The command handler can be replaced to replace the

BES’s default command syntax• Handlers are not limited to DAP

Page 10: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

10

OOI-CYBERINFRASTRUCTURE

BES Handler Interaction• Response handlers:

– Respond to commands from the ‘command handler’– Know how to create the response object – Do not necessarily fill in the response object, but know how the

response should be filled in (by asking appropriate request handlers)

– Build & transmit new responses• Request/Format handlers

– Register interests and capabilities (i.e., know-how to fill a response)

– Read data and provide object content• Handlers can:

– Build responses directly from data– Use output from other handlers– Query one or more handlers for fill-in information

• Reporters: Record usage information (e.g., logging, statistics)• Aggregators: Build aggregate responses

Page 11: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

11

OOI-CYBERINFRASTRUCTURE

BES Extensibility

• New request handlers (data handlers like netcdf, hdf4)– Request/data handlers know how to fill in a response object.

(e.g., how to open a netcdf file, access attributes within that file, and add those attributes to the DAS response object)

• New response handlers (flat, Tab, Info)– Response handlers know how to create the response object

and what needs to happen to get that response object filled in. (e.g., for a DAP request, the DAP response handler knows to create a DAS object and contact the request handler for each container to fill in the DAS object)

• New commands (e.g., hello world example)• Container and Definition storage• Aggregation engines (multiple can be installed)• Methods of returning data (return as nc)• Initialization/Termination callbacks• Exception Handlers (registered with the Exception

Manager)• Reporters (data access statistics, metrics, logging, etc)

Page 12: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

12

OOI-CYBERINFRASTRUCTURE

BES Example

Definitions def as c1, c2

get das for def

Containers c1,file1,csv c2,file2,csv ce,file3,nc c4,file4,ffdef

def

command

Response Handlers das, BESDASResponseHandler help, BESHelpResponseHandler

Request Handlers csv, CSVRequestHandler das, fill_das_func help, fill_help_func

das

das

csv

csv

das

c1

das

c1

c1

c2

c2c2

das

show help

help

help

help

csv

csv

Page 13: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

13

OOI-CYBERINFRASTRUCTURE

BES Built-in Commands

• String commands sent from client to server– show help; (version, process, status, keys)– set container …– show containers;– delete container <container_name>;– delete containers;– define …– show definitions;– delete definition <def_name>;– delete definitions;– set context <name> to <value>;– show context;

Page 14: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

14

OOI-CYBERINFRASTRUCTURE

BES DAP Commands

• DAPCommandModule adds:– get das for <def_name> [return as type];– get dds …– get ddx …– get dods …– show catalog [for “node”]; (info)

• dap-server modules (www,usage,ascii) add:– get info_page …– get ascii …– get html_form …

• Data handlers (nc, ff, csv) don’t add any new commands.

Page 15: OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2

15

OOI-CYBERINFRASTRUCTURE

Thank you