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

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
Line 33: Line 33:


== Server Functions ==
== 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. [http://www.opendap.org/sites/default/files/miic_class_5.8.2012/MIIC_Server_Side_Functions.ppt Slides] (lecture + hands-on 2 hours)''


 
<blockquote>'''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: [[Hyrax: Server Side Functions | server side function modules for Hyrax.]]
[[Hyrax: Server Side Functions | Here is short tutorial on how to write a server side function for Hyrax.]]
 
 
 
 
==== <font color="grey">Old Way...</font>  ====
<font color="grey">
''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. [http://www.opendap.org/sites/default/files/miic_class_5.8.2012/MIIC_Server_Side_Functions.ppt Slides] (lecture + hands-on 2 hours)''


* ''Background on DAP2 and Constraints''
* ''Background on DAP2 and Constraints''
Line 50: Line 43:
* ''Write HelloWorld()''
* ''Write HelloWorld()''
* ''Advanced Topics''
* ''Advanced Topics''
</font>


== Setting up for developing server functions ==
== Setting up for developing server functions ==

Revision as of 22:24, 27 September 2014

Many of these slide sets show examples based on Hyrax running in Linux. We built a Virtual Machine that runs openSUSE 12.1 for this and it's available here. The VM will run in all of the modern versions of Vmware's tools (Fusion, Workstation and Player). We've used it on OS/X (with fusion and Player) and on Windows 7 (with Player).

Introduction to OPeNDAP

An introduction to both OPeNDAP and the Data Access Protocol (DAP) data model. (lecture - 20m) 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