Welcome to the GRIDS Project
GRIDS is an acronym for the Generic Runtime Infrastructure for Distributed Simulation. It is essentially middleware used to connect disparate simulations together to execute in parallel and be perceived as a single simulation.
GRIDS is conceptually very close the DMSO's HLA (High Level Architecture, IEEE standard 1516). This is a document that describes an approach to linking simulations together using software known as the RTI (RunTime Infrastructure). IEEE standard 1516 defines the interface specification for the RTI but does not define the structure of an implementation of the RTI. This is left up to RTI vendors.
The GRIDS platform is a very loose implementation of an RTI. However, it is important to note that it is not a HLA compliant RTI by any stretch of the imagination. In fact it uses a complete different model to providing services within the middleware known as Thin Agents.
An HLA RTI provides services are predefined by the HLA documentation and standard. This implies the simulation integrators (the people responsible for stitching disparate simulations together into a distributed simulation) has a fixed set of services to use in achieving this. Our view states that other services beyond the HLA spec may be required to support generalised simulation interoperability. To address this concern, GRIDS brings a dynamic service mechanism known as Thin Agents. These agents are very different from traditional agents in that they delivery specific, well-defined functionality within the GRIDS platform rather than the more complete functionality that traditional agents support.
As part of this project and various others, I have not found a suitable solution to the problem of persistence. O/R mapping tools or pure serialisation options to me are not flexible enough solutions. Instead a friend (Simon Kent) and I have put together an abstract persistence framework inspired by a technical paper by Scott Ambler. The framework allows for the ability to plugin concrete implementations of persistence (to databases, XML files or whatever). The application uses a fixed and abstract API to interact with the persistence framework which which in turn delegates to the implementation specific persistence mechanism. When the project eventually releases versions of GRIDS, the persistence mechansim will be made available as well - I hope people find it useful!
Rajeev Sudra Copyright 2001, 2002, 2003