LabServer Code
Brought to you by:
marecki
This is the README file for LabServer version 1.1.x.
What is LabServer?
==================
LabServer is a standalone daemon which allows easy data exchange between
SQL databases (PostgreSQL, Oracle and MySQL are supported) and network-aware
software with no direct access to such databases, via TCP connections. It is
highly configurable, can handle requests from multiple clients simultaneously
and allows TCP Wrapper-based access control.
What systems does it run on?
============================
The native OS for LabServer is Linux with GNU libc 2.2. However, it should
compile and run without anything more than a few modifications to the Makefile
under any Unix system.
If you don't mind, please send me both reports of successful compilations on
various platforms and what caused problems with failed ones.
Authors
=======
The first, alpha-level, version of LabServer has been written by
Michal Janik <janik@if.pw.edu.pl> and Piotr Szarwas <szarwas@if.pw.edu.pl>.
Current developer and maintainer is Marek Szuba <Marek.Szuba@cern.ch>.
* LabServer is distributed under GNU Public License Version 2
However, we would like to know who uses it so please send us an e-mail
if you are about to.
Installation
============
The optional packages LabServer can make use of are:
* Client C libraries for databases with their header files:
- PostgreSQL (http://www.postgresql.org/)
- Oracle 8 or better (http://www.oracle.com/); you will also need
libSQLOra8 (http://www.poitschke.de/libsqlora8/)
- MySQL (http://www.mysql.com/)
* TCP Wrappers (available almost everywhere) if you want access control
* libXML2 (http://xmlsoft.org/ or along with the Gnome environment)
if you need the parser
Edit the Makefile to either include or exclude them. Perhaps one day I'll
manage write a proper autoconf script... Note that it's entirely possible
to make LabServer compile with support for no databases at all, just don't
expect it to be of much use then.
Check the installation path, run make to create the executable, then
'make install'.
XML? Parser? What's that for? Also some history
===============================================
For the impatient: if you don't know what ALICE is, you'll probably never need
to use the parser and can safely build your version of LabServer without it.
If you are curious, please read on.
The first versions of LabServer have been designed as a tool to aid data
management for test benches of silicon strip detectors (SSD) for the STAR
(Solenoidal Tracker at RHIC) experiment, which is currently in progress at
Brookhaven National Laboratory in the USA. Later on it has been adapted to
serve a similar purpose for ALICE (A Large Ion Collider Experiment), scheduled
to start in 2007. In both experiments the detector is a very complex (not to
mention enormous!) piece of hardware and all of the components have to exhibit
high levels of performance typical for most modern particle physics projects;
to make sure information about these components can be accessed easily, it has
been decided that testing software, designed in National Instruments LabVIEW,
is to feed the data to relational databases.
In late 2002 the ALICE Detector Construction DataBase (DCDB) group decided
to introduce major changes to the structure of the database. Along with that,
it has been decided all data transfers will make use of XML language, thus
causing a need for the appropriate tool built into LabServer.
To learn more about STAR, visit http://www.star.bnl.gov/
To learn more about ALICE, visit http://alice.web.cern.ch/Alice/AliceNew/
To learn more about the DCDB or to look behind the curtains of the parser,
visit http://det-dbalice.if.pw.edu.pl/
Configuration
=============
LabServer can be controlled by either a config file or command line switches.
If you use both, the latter are privileged. See labserver(1) and
labserver.conf(5) for detailed information.
To learn more about access control read the documentation that came with
TCP Wrappers, namely the hosts_access(5) man page.
Known bugs
==========
None, but please note the 1.1.x branch offers new features which have yet to
prove themselves in non-experimental environment. You are strongly encouraged
to inform me of any problems.
Support
=======
LabServer is now at SourceForge! http://labserver.sourceforge.net/
This a new branch of LabServer and even though a lot of code has been imported
from the older releases, the whole thing is probably far from perfect. If you
come bugs or have any suggestions, patches etc. feel free to contact me - just
make sure you can provide detailed information on how, where and when - all
the usual stuff under such circumstances.