LabServer Architecture

Draft - 7 Sep 2009 - LJP


The architecture consists of two parts:

  1. LabServer Core Libraries – The majority of LabServer code is common to all types of experiments. This is a result of the iLab ServiceBroker-to-LabServer API which is common to all Batch LabServers. All experiment input parameters (specification) are specified in an XML format and are sent to the LabServer for processing. The LabServer parses the specification for validity and then places the experiment specification on a queue ready for an experiment engine to run the experiment according to that specification. When the experiment has completed, the results are saved in an XML format and are available for retrieval.

  2. LabServer Specific Implementation – Each type of experiment has it own specific set of input parameters and output results. The experiment engine needs to know the format of the specification so that it can extract the parameters needed to run the experiment. These parameters include the "setup" or particular configuration of the experiment that will be run, which in turn determines the equipment driver that will be invoked to run the experiment.

Source code on SourceForge

The source code for some Batch LabServers is available on SourceForge in the iLabsProject at: "http://sourceforge.net/projects/ilabproject/". To get to the code tree, go to: "http://ilabproject.svn.sourceforge.net/viewvc/ilabproject/" and browse to "/trunk/LabServer".