This document covers the **release 12.07** of the NodeSoftware.
Links to HTML-versions:
* Last release: http://readthedocs.org/docs/vamdc-nodesoftware/en/release/
* Latest development: http://readthedocs.org/docs/vamdc-nodesoftware/en/latest/
Links to PDF-versions:
* Last release: http://media.readthedocs.org/pdf/vamdc-nodesoftware/release/vamdc-nodesoftware.pdf
* Latest development: http://media.readthedocs.org/pdf/vamdc-nodesoftware/latest/vamdc-nodesoftware.pdf
.. _intro:
Introduction
=============
About VAMDC
-------------
The Virtual Atomic and Molecular Data Center is a EU FP7 research
infrastructure project and you can read all about it on http://vamdc.eu/
VAMDC nodes
-------------
A "node" within VAMDC is a data service that offers its data using the
standards and protocols defined by the VAMDC. They are web services with a
simple API, the specification of which can be found in the documentation for
the VAMDC standards: http://vamdc.org/documents/standards/
The scope of this document is to serve as documentation for the
reference implementation of such a service. The goal of this
implementation is to serve as publishing tools for new data services,
i.e. it is meant to be easily deployed at multiple nodes.
A versatile implementation of VAMDC standards
---------------------------------------------
Principle design decisions that were made to arrive at
this software package include
* *Open source*. No software licences need to be bought and the used
software can be adapted if needed.
* The data must exist in a *relational database*. If this is not the
case yet, a tool for creating it is provided.
* *Flexibility in the data structure*.
The service should be able to be plugged on top of existing databases
and therefore needs to cope with almost arbitrary internal data formats.
* *Re-usable code*. The implementation of the VAMDC standards and protocols
themselves should not depend on the requirements of a specific node.
Since the last two points contradict each other in practice, there needs
to be an intermediate layer of abstraction that hides the node-specific
details like the database layout from the parts of code that are shared
between nodes.
Our implementation of the VAMDC node software is therefore based on a
framework called `Django `_ (which in
turn is based on the programming language `Python
`_) that provides both the database abstraction
layer and high level tools for implementing web services.
The ingredients for a VAMDC node based on this software package and its
operation look schematically like this:
.. image:: nodelayout.png
:width: 700 px
:alt: Structural layout of a VAMDC node