ONLINE Database API

Welcome to the world of online API development. The intention of this blog is to record plans, thoughts, progress, architectural notes and pseudo-code for comment and for archival documentation. The project definition is found here....

Project Definition

A review of this definition suggests that this project is, at least partially, based on anticipated needs. Therefore the approach in planning this project will be quite different then software development where the proposed application will fill a well defined void to perform discrete predefined tasks. Ultimately our design will be, at least, partially predictive. We can, however, make the following assumptions

  1. There will be, and in fact run_5 has already seen the beginnings of, faster detectors
  2. There has already been an expressed need in the collaboration for a faster turn-around for data calibration
  3. There are already event-by-event analyses and this need will increase with time
  4. There is no coordinated, controlled access to the online databases.
These four assumptions elucidate areas that would require attention in the current system. Also, it is obvious from the nature of these assumptions that the driving factor to any modification will have to be the scalability of the system. Flexibility of the code to adapt and fold in unforeseen requirements must also be considered.

A definite need is presented; however, specific parameters are a bit hidden. So where do we look for guidance? First, a clear description of the present system is needed as a foundation. Next an enumeration of all ad-hoc processes that would be supplanted should present some primitive 'user needs'. Finally, a close review of the offline API will show the potential architecture of the API and/or provide a common base library to be used by both systems.