DELIVERABLE EXECUTIVE SUMMARY

D2104 Report on implementation of the resource control agent for the second trial
 

The main task of work-package 2.1 was the design and implementation of the resource control layer. However, the result of this work is not only the prototype software used in the trial. Additionally, many design decisions and implementation experience are worth noting and may help for similar decisions in further projects.

This deliverable shortly describes some of these decisions and reports our experience. Fur-thermore, some basic mechanisms used in various software components are described.

The general approach taken in the first trial has been proven to be useful and reasonable:

  • The choice of JAVA as programming language fulfilled the promise: the code was rela-tively soon in a good status with only few errors. Especially the language helped to avoid some typical mistakes, which happen more often with other languages (e.g. memory leaks).
  • The JAVA language proved its platform independence. All JAVA software developed runs on Sun Solaris as well as Windows NT without any changes.
  • The rich amount of available interfaces enabled the easy use of technologies like CORBA, LDAP and XML.
  • CORBA enabled us to clearly specify interfaces using IDL and minimised interfacing problems between packages implemented by different partners.
  • LDAP proved its usability as an easy-to-use database concept for data, which is more of-ten read than written.

However, there were also some problems identified:

  • Using the serialisation mechanism of JNDI to store objects has two major drawbacks: It makes the data unreadable for a human, because it is stored as binary content, and it com-plicates upgrades of the stored objects.
  • When each software component uses its own method to store and retrieve configuration data, the overall system gets hardly manageable.

This document also describes our experience with the approach to define and store configura-tion data using XML to represent structured data and LDAP for storage.

Additionally, it describes some commonly used mechanisms like event handling, use of plug-gable algorithms and the trace facilities.