Bes
The BES framework, which forms the basis for the Hyrax server
Install / Use
/learn @OPENDAP/BesREADME
<a href="https://travis-ci.org/OPENDAP/bes"><img alt="TravisCI" src="https://travis-ci.org/OPENDAP/bes.svg?branch=master"/> </a>
README for the OPeNDAP BES
Version 3.21.1-0
This version of the BES is part of Hyrax 1.17.1, a data server that supports the OPeNDAP data access protocols. See opendap.org/software/hyrax/1.17 for information about Hyrax.
For specific information about the BES, see the file NEWS for a summary of new features and important updates. See ChangeLog for a complete listing of changes/fixes since the previous release.
Major changes in this release are substantially improved support for HDF4, HDF4-EOS and HDF4-EOS2 data stored in S3 via the DMR++ much faster generation of NetCDF4 response files. There are many other improvements and bug fixes.
This version of the BES requires libdap-3.21.1
Version 3.21.0-46
This version of the BES is part of Hyrax 1.17.0, a data server that supports the OPeNDAP data access protocols. See opendap.org/software/hyrax/1.17 for information about Hyrax.
For specific information about the BES, see the file NEWS for a summary of new features and important updates. See ChangeLog for a complete listing of changes/fixes since the previous release.
Major changes in this release are substantially improved support for HDF5 data stored in S3 via the DMR++ much faster generation of NetCDF4 response files. There are many other improvements and bug fixes.
This version of the BES requires libdap-3.21.0
Version 3.20.13
This version of the BES is part of Hyrax 1.16.8, a data server that supports the OPeNDAP data access protocols. See opendap.org/software/hyrax/1.16 for information about Hyrax.
For specific information about the BES, see the file NEWS for a summary of new features and important updates. See ChangeLog for a complete listing of changes/fixes since the previous release.
This version of the BES requires libdap-3.20.11
Version 3.20.12
DOI available at https://zenodo.org/ search for OPENDAP/bes version 3.20.12
This version of the BES is part of Hyrax 1.16.7, a data server that supports the OPeNDAP data access protocols. See opendap.org/software/hyrax/1.16 for information about Hyrax.
For specific information about the BES, see the file NEWS for a summary of new features and important updates. See ChangeLog for a complete listing of changes/fixes since the previous release.
This version of the BES requires libdap-3.20.10
Version 3.20.11
This version of the BES is part of Hyrax 1.16.6, a data server that supports the OPeNDAP data access protocols. See opendap.org/software/hyrax/1.16 for information about Hyrax.
For specific information about the BES, see the file NEWS for a summary of new features and important updates. See ChangeLog for a complete listing of changes/fixes since the previous release.
This version of the BES requires libdap-3.20.10
Introduction
The Back-end Server (BES) for Hyrax is a unix daemon that builds DAP2 and DAP4 response for various kinds of data. Since the daemon runs on Unix hosts, it often works with data that are stored in files or collections of files found on file systems. However, the BES can also use data stored in database systems, web object stores (e.g., S3), other kinds of web APIs and remote data accessed using plain HTTP.
In addition to the DAP2/4 protocols, the BES can package responses to queries for data in a number of well-known binary file types, including NetCDF3/4, GeoTIFF and JPEG2000.
All of the functionality specific to DAP or particular types of data is implemented using a group of 'plugin modules.' These modules isolate the operations for specific kinds of daa from the BES software itself. Each kind of data that can be read is accessed using a different module and each response other than the DAP2/4 responses is returned its own module.
The BES does not contain (much) software that implements the DAP2/4 protocols. Instead it uses the libdap4 library for that. See github.com/opendap/libdap4.
The BES does not implement the WEB API for DAP2/4, instead the OLFS (OPeNDAP Lightweight Front-end Server) is used to do that. See github.com/opendap/olfs.
The BES framework is designed to be extensible and can be used to combine reading various kinds of data with building different kinds of responses. The framework is designed to support lazy data read operations, only reading those data that are needed and only when they are needed. Note that some kinds of well-known binary responses must be built in full before they are returned, but this is not a requirement of the framework but the responses, or their APIs.
Information about the Hyrax data server can be found here in the <a href="https://opendap.github.io/hyrax_guide/Master_Hyrax_Guide.html"> latest and most comprehensive Hyrax documentation.</a> <br /> <br/> <a href="https://opendap.github.io/bes/html/">The BES API Documentation is here</a>
Contents
- What's here: What files are in the distribution
- Configuration: How to configure the BES
- Testing: Once built and configured, how do you know it works?
- Various features the BES supports
What's here
Here there's a bes-config script which will be installing in $prefix/bin that can be used to determine where the libraries and their header files have been installed. This directory also contains some documentation files.
dispatch: This is where the bulk of the BES source code resides. server: The BES server and standalone executables; build using dispatch cmdln: A command line client which can communicate with the bes server.
dap: A module that implements the (OPeN)DAP access.
modules: All the modules that are part of a standard Hyrax distribution. The configure script looks for their dependencies and only tries to build the ones that can be built. Note that the HDF4 and 5 modules are pulled in from separate git repositories.
xmlcommand: The BES/dispatch software is a framework. The basic commands recognized by it are defined and implemented by software in this directory.
standalone: The 'standalone version of the server; used for testing.
apache: An Apache module, currently not part of the default build
ppt: The PPT implementation. The BES uses PPT for its communication
templates: A collection of source files which can be used as templates when you write your own handlers/modules, et cetera.
conf: Where the automake and autoconf configuration files live
docs: Where some bes documentation resides
Configuration
The BES configuration is controlled by a set of configuration files. While the complete configuration could be held in one file, it is easier to store information specific to each module in a different file. The main configuration file then reads all of the module configuration files, following a common Unix pattern.
Basic Configuration
Once the BES software has been installed, you will need to make a few
changes to the BES configuration file, which is the bes.conf located in
prefix/etc/bes/bes.conf. Module and handler configuration files will
be installed in the prefix/etc/bes/modules directory.
Only a few parameters need to be modified to get the BES up and running for the first time. These parameters are located at the top of the configuration file are are:
BES.ServerAdministrator
- set this to an email address that can be used for users to contact if there are issues with your installation of the server.
BES.User=user_name
BES.Group=group_name
- set these to a valid username and groupname on your system. We recommend that you create a username and groupname called bes that has permissions to write only to the BES installation directory. We'll need to write to the log file, and that's about it.
BES.LogName=./bes.log
- Set this to the full path and file name for where you want the BES log file to be written.
With this configuration you will be able to start the BES. No handlers or modules have been installed yet, so you won't be able to serve data, but the BES should run.
Configuration for Hyrax
For the BES to run with Hyrax, additional changes will need to be made
to the dap.conf and dap-server.conf files, which are located in the
modules directory prefix/etc/bes/modules. The dap module should be
installed by default with the BES. If the dap.conf file is not found, be
sure that you have libdap installed. The dap-server module, known as the
General purpose handlers, adds responses for the DAP ascii response, the
DAP info response, and the DAP html form response. You will need to get
the dap-server module. You should see a dap-server.conf file in the
modules directory.
The changes r
