A One-day Course on Hyrax Development: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
mNo edit summary
mNo edit summary
Line 5: Line 5:
== Introduction to OPeNDAP ==
== Introduction to OPeNDAP ==
An introduction to both OPeNDAP and the Data Access Protocol (DAP) data model. (lecture - 20m)
An introduction to both OPeNDAP and the Data Access Protocol (DAP) data model. (lecture - 20m)
[http://www.opendap.org/pub/vm/centos6/1_DAP_Intro_dwf_jhrg.ppt Slides]
[http://www.opendap.org/pub/vm/centos6/1_DAP_Intro_dwf_jhrg.ppt Slides],
<!-- [http://www.opendap.org/sites/default/files/miic_class_5.8.2012/MIIC_DAP_Intro_dwf_Mar_2012.ppt Slides] -->
[http://www.opendap.org/pub/vm/centos6/1.1_Data_Model_and_Coverages.pptx Slides],
[http://www.opendap.org/pub/vm/centos6/1.2_DAP4 Overview and Use Cases.pdf Slides]
 
== The Hyrax Data Server Architecture ==
== The Hyrax Data Server Architecture ==
An overview of the architecture of the Hyrax server. This presentation is intended for software developers. (lecture - 40m)
An overview of the architecture of the Hyrax server. This presentation is intended for software developers. (lecture - 40m)
[http://www.opendap.org/sites/default/files/miic_class_5.8.2012/MIIC_HyraxArchitecture.ppt Slides]
[http://www.opendap.org/pub/vm/centos6/2_HyraxArchitecture.ppt Slides]


== Running & Debugging the server ==
== Running & Debugging the server ==
Start the virtual machine and Hyrax (hands-on 40m)
Start the virtual machine and Hyrax (hands-on 40m)
[http://www.opendap.org/sites/default/files/miic_class_5.8.2012/MIIC_Hyrax_Setup.ppt Slides]
[http://www.opendap.org/pub/vm/centos6/3_Hyrax_Setup.ppt Slides]


The VM is an openSUSE 12.1 Linux 32-bit VM that should work with Vmware's Fusion 4, Workstation 7 and Player 3.
The VM is an openSUSE 12.1 Linux 32-bit VM that should work with Vmware's Fusion 4, Workstation 7 and Player 3.


Hyrax setup on the VM (hands-on - 20m)
Hyrax setup on the VM (hands-on - 20m)
[http://www.opendap.org/sites/default/files/miic_class_5.8.2012/MIIC_Checking_the_Server.ppt Slides]
[http://www.opendap.org/pub/vm/centos6/4_Checking_the_Server.ppt Slides]


This shows how to use getdap and telnet to debug the server. These are low-level command line tools that cut to the chase when the server seems to be broken. Also note that both of these slide sets show you how to use the bescmdln tool. The bescmdln tool is very useful for working with the BES alone - note that we used it to test the BES ''before'' we started tomcat and had Hyrax in its full form up and running.  
This shows how to use getdap and telnet to debug the server. These are low-level command line tools that cut to the chase when the server seems to be broken. Also note that both of these slide sets show you how to use the bescmdln tool. The bescmdln tool is very useful for working with the BES alone - note that we used it to test the BES ''before'' we started tomcat and had Hyrax in its full form up and running.  

Revision as of 22:57, 28 September 2014

Many of these slide sets show examples based on Hyrax running in Linux. We have built a CentOS 6 64-bit virtual machine that runs under the VMware hypervisor (Fusion, Workstation or Player will all work with this VM) and it is available for download here. This VM contains a CentOS 6 machine configured according to our page on setting up a CentOS box for RPM production. It also includes Hyrax (from the 1.9 release branch) already built and tested. Additional items from/for the course outlined here may also be on the VM, but if not, just follow the directions to download them.

We have also built an older Virtual Machine that runs openSUSE 12.1 for this tutorial and it's available here. The VM will run in all of the modern versions of Vmware's tools (Fusion, Workstation and Player). This virtual machine contains Hyrax 1.8, also built and testes along with other downloads from the tutorial. We've used it on OS/X (with fusion and Player) and on Windows 7 (with Player). In general, unless you have a particular need for SUSE or Hyrax 1.8, use the newer CentOS 6 VM and Hyrax 1.9.

Introduction to OPeNDAP

An introduction to both OPeNDAP and the Data Access Protocol (DAP) data model. (lecture - 20m) Slides, Slides, Overview and Use Cases.pdf Slides

The Hyrax Data Server Architecture

An overview of the architecture of the Hyrax server. This presentation is intended for software developers. (lecture - 40m) Slides

Running & Debugging the server

Start the virtual machine and Hyrax (hands-on 40m) Slides

The VM is an openSUSE 12.1 Linux 32-bit VM that should work with Vmware's Fusion 4, Workstation 7 and Player 3.

Hyrax setup on the VM (hands-on - 20m) Slides

This shows how to use getdap and telnet to debug the server. These are low-level command line tools that cut to the chase when the server seems to be broken. Also note that both of these slide sets show you how to use the bescmdln tool. The bescmdln tool is very useful for working with the BES alone - note that we used it to test the BES before we started tomcat and had Hyrax in its full form up and running.

The bescmdln tool has several options that are useful:

  • It can use the SQL-like set, define and get commands
  • it can also use the XML command syntax that the front-end also uses
  • It can read sets of commands from text files (using the -i option)
  • ...and those command files can also be used with another tool - besstandalone - which can be used to test server components with actually starting the BES.

For more information on bescmdln see:

All of which you can find on the Developers section of the Hyrax documentation

Server Functions

This is an introduction to Server-side Functions. It is both lecture and hands-on and works best if you have Eclipse, Emacs or another suitable programming editor running. Slides (lecture + hands-on 2 hours)

Note In libdap 3.13 we changed how functions are managed, making it possible to build a 'function module' in the same way that the BES supports modules for format access and response transmission. These function modules are loaded by the BES, just as the other modules are, even though the code they are based on is part of libdap. The essential parts of the function system are the same as before, except that functions are no longer compiled into a specific part of the code base (e.g., libdap or a format handler like FreeForm). Here is a short tutorial that describes how to build a libdap 3.13++ style function module: server side function modules for Hyrax.

  • Background on DAP2 and Constraints
  • Writing Server Functions: short version
  • Programming with libdap
  • A Real Server Function
  • Write HelloWorld()
  • Advanced Topics

Setting up for developing server functions