This is the OPeNDAP 4 Data Server, also known as Hyrax.
Hyrax uses the Java servlet mechanism to hand off requests from a general web daemon to DAP format-specific software. This results in higher performance for small requests. The servlet front end, which we call the OPeNDAP Lightweight Front end Server (OLFS) looks at each request and formulates a query to a second server (which may or may not on the same machine as the OLFS) called the Back End Server (BES).
The BES is the high-performance server software from HAO. It handles reading data from the data stores and returning DAP-compliant responses to the OLFS. In turn, the OLFS may pass these response back to the requestor with little or no modification or it may use them to build more complex responses. The nature of the Inter Process Communication (IPC) between the OLFS and BES is such that they should both be on the same machine or be able to communicate over a very high bandwidth channel.
Both the OLFS and the BES will run and serve test data immediately after a default installation. Additional configuration is required for them to serve site specific data.
- THREDDS Catalog Support
- Hyrax supports the THREDDS catalogs. It can serve user supplied static catalogs and it will dynamically generate THREDDS catalogs of it's internal holdings.
- Dataset Aggregation
- Collections of related data resources can be collected into a single dataset using the aggregation features. Typically these are formed for geographic tiles, time series, etc.
- Adding/modifying dataset content.
- Datasets can be modified by the server without having to actually change the underlying files. These views are independently accessible from the original data. Both dataset metadata and data values may be added or changed.
- Supports multiple source data formats
- Server can ingest source data stored as HDF4, HDF4-EOS, HDF5, HDF5-EOS, NetCDF-3, NetCDF-4, CEDAR, FITS, Comma Separated Values, and raw ASCII and Binary formats. Because of Hyrax's extensible design, it's easy to add new source data formats.
- Supports data retrieval in multiple return formats
- Hyrax is able to return data in DAP, DAP4, NetCDF-3, NetCDF-4, JSON, CSV, and ASCII formats, Or, you can add your own response types.
- Hyrax supports a gateway feature that allows it to provide DAP (and other Hyrax) services for remotely held datasets that are stored in any of Hyrax's source data formats.
- Hyrax provides RDF descriptions of it's data holdings. These can enable semantic web tools to operate upon the metadata content held in the server.
- Server side functions
- Hyrax supports a number of server side functions out of the box including (but not limited to):
- geogrid: Subset applicable DAP Grids using latitude and longitude values.
- grid: Subset any DAP Grid object using the values of it's map vectors.
- linear_scale: Apply a linear equation to the data returned, including automatic use of CF attributes.
- version: The version function provides a list of the server-side processing functions available.
- New ones are easy to add.
- Extensible WebStart functionality for data clients
- Hyrax provides WebStart functionality for a number of Java based DAP clients. It's simple to add new clients to the list that Hyrax supports.
- Extensible/Configurable web interface
- The web interface for both Hyrax and the administrator's interface can be customized using CSS and XSL. You can add your organizations logo and specialize the colors and fonts in the presentation of data sets.
- Administrator's interface
- Control and dynamically update Hyrax from a convenient web interface. See the Admin interface documentation.
- JSON responses
- Both metadata and data are now available in a JSON encoding.
- Hyrax comes with a complete w10n service stack. W10n navigation is supported through the default catalog where all datasets and "structure" variables appear as graph nodes. Data can be acquired for atomic types or arrays of atomic types in a number of formats.
- Feature Request
- Is there a feature you would like to see but don't? Let us know: email@example.com or firstname.lastname@example.org (You need to subscribe first)
To obtain Hyrax just go to the Hyrax download page and get it.
Updated for Hyrax-1.11 (For older versions see here.)
Installing the binary distribution
- Download the RPM packages from the Hyrax download page
- If your CentOS/Fedora/RHEL 6 machine does not have the EPEL repository configured (rpm -q epel-release will tell if that has been configured) then get the Extra Packages For Linux (EPEL) rpm and install it using sudo rpm -ivh epel-*.rpm Be careful to use the -i option option. Also note that some CentOS 6 images (e.g., Amazon AMIs) ship with EPEL installed but disabled. If that's the case, run yum using --enablerepo=epel or Modify /etc/yum.repos.d/epel.repo. Under the section marked [epel], change enabled=0 to enabled=1. (see the Amazon Linux AMI FAQ for more information).
- Use yum to install the libdap and bes RPMs (sudo yum install libdap-3.14*.rpm bes-3.14*.rpm). Unless you're going to be developing software for Hyrax, skip the libdap-devel and bes-devel since those are for development only.
- At this point you can test the BES by typing the following into a terminal:
- Start it:
- sudo besctl start
- Connect using a simple client:
- Get version information:
- show version;
- Exit from bescmdln:
- Check the java version on your system:
- java -version
- If you have earlier than 1.8.x then you'll need to install java 8:
- yum install java-1.8.0
- If you are on a modernish Linux system you may need to use the alternatives tool to make java 8 the current JVM. Run the command:
- alternatives --config java
- You'll get an interactive terminal application that will allow you to select your newly installed java 8 as the preferred alternative.
- Get Apache Tomcat-7.0.50 or newer if you don't already have it. (Earilier versions like 7.0.30 or so DO NOT support Java 8)
- Download the OLFS Web ARchive (war) file (see above, by the Java logo) and put opendap.war in the tomcat webapps directory (cp opendap.war apache-tomcat-7.0.59/webapps).
- At this point you should be able to start tomcat (./apache-tomcat-7.0.59/bin/startup.sh) and test the server:
- In a web browser, use http://localhost:8080/opendap/
- Look at sample data files shipped with the server
- If you are installing the OLFS/ncWMS bundle, copy both the opendap.war and the ncWMS.war files in the Tomcat webapps directory. (Re)Start Tomcat. Go read about, and then configure ncWMS and the OLFS to work together.
Building And Installing From Source
- Hyrax - Administrators Interface
- Hyrax Configuration Instructions
- Hyrax integration with the Apache Web Server
- Hyrax User Authentication and Identification
- Customizing Hyrax
- System Administrators Workshop
Hyrax has a number of modules that provide the actual functionality of the server: Reading data files, building different kinds of responses and performing different kinds of server processing operations. Most of these modules work with the BES but some are part of the front (web facing) part of the server.
- NetCDF data handler
- HDF4 data handler
- HDF5 data handler
- FreeForm data handler
- NcML data handler
- Gateway handler (Interoperability between Hyrax and other web services)
- CSV handler
- GeoTiff, GRiB2, JPEG2000 hander
Additional Java Modules that use the BES
For Software Developers
- Hyrax GitHub Source Build We have moved the Hyrax source code to GitHub; please don't use the old, read-only SVN repo to build.
- How to use Eclipse with Hyrax Source Code Note that this is a a work in progress, but it will help with some of the odd steps that Eclipse seems to require.
BES Development Information
- How to debug the BES
- BES - Debugging Using besstandalone
- How to create your own BES Module
- Starting and stopping the BES
- Running the BES command line client
- BES Client commands
- BES XML Commands
- Extending your BES Module
- Example BES Modules - the Hello World example and the CSV data handler
- BES communication protocol using PPT (point to point transport)
- BES Administrative Commands
We hope we hope you find this software useful, and we welcome your questions and comments.
Hyrax Java Development:
- ndp <at> opendap <dot> org
Hyrax C++ Development:
- pwest <at> ucar <dot> edu (bes)
- jgallagher <at> opendap <dot> org (libdap)
OPeNDAP Hyrax development is sponsored by:
This material is based upon work supported by the National Science Foundation under Grant No. 0430822. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).