Back to start page
Back to start page Tockit (active section) Docco (section) Tupleware (section) ToscanaJ (section) Score (section) CGXML (section) Banner
Technologies (active)

Technologies to be used in the Tockit project

One basic aspect is that the development should be object-oriented, component-based and iterative -- with a strong touch of postmodernism. The code should be the result of a software engineering process and not a simple hack, designed for reuse and documented.

The main programming language of our choice is Java. This is mainly due to the fact of its broad support and its ease of use in comparision to C++. One of the main advantages is the large number of standardized libraries, there are many Open Source libraries out there helping us a lot.

The file formats should be build using XML. Again it is mainly the availabilty of tools and documentation that makes XML a technology of our choice. The interoperability of our framework with other tools should be easier with XML based files formats, esp. writing export filters will often be just a writing a simple XSL file.

The framework should offer the option to use three-tier architectures like using a relational database as backend, a Java Servlet server for application control and a web browser as frontend. The database might even need a separate abstraction layer if an application needs to operate on existing databases. On the other hand we will support simpler systems which store their data in memory.

Here is a list of Java Open Source projects we have used in some of our projects and that we really appreciate -- no particular order:

Libraries and embedded tools

The HSQL Database Engine is a neat little RDBMS which we use as embedded database for ToscanaJ. It is small in size, but quite powerful.
We don't do any High Energy Physics, but some of the library code of the FreeHEP project is still useful for us. At the moment this is mostly graphic export (PDF, EPS, EMF, PPM), but we might extent that one day.
Batik allows us to export nice SVG graphics. We might start using the SVG canvas one day, having a unified rendering platform would be interesting, esp. since there are libraries offering SVG rendering for other platforms.
Lucene is a nice indexing engine storing an inverted file index and having support for rather complex queries, while keeping the simple things simple. Used as backend for Docco.

Development tools

First of all two non-Java tools: Sourceforge and CVS are probably the most helpful tools we use. The Java ones are:

Our most used IDE is Eclipse. Not as good in guessing what you want as IntelliJ's IDEA, but it is for free and has some other advantages. We are still thinking about doing an FCA-based software analysis plugin one day.
We love using Apache's Ant for building our releases. At any time one click is enough to have a complete deployment version of any of our tools.
We should probably do some more unit testing with JUnit, but the bit we do is already quite handy. :-)
< ---------------------------------- >