The service database is an extremely simple database that may be used to implement simple database-like services. While this database is provided for public use, it was primarily developed to explore functionality. Hence, the current implementation is not particularly scalable. Nevertheless, it is useful for implementing services quickly since it provides a ready-made solution.
Before using this simple database, you may wish to consider using the SQL database wrapper.
The service database is initialized from an XML file that contains a definition of all services in the database; this file may also provide the service database with initial information. Clients retrieve information from the database by issuing Aura Service Interface queries. Services may be updated in two ways: 1 - another "collector" service is queried periodically to provide information, 2 - update and delete functions may be used to directly control the information contained in the service database (note that these functions are not part of the Aura Service Interface, but are part of the DataSink interface). The DataSink method of updating is demonstrated in the City Service Example.
For the exact format of the XML file that initializes the database see the City Service Example. Note that when the database is started clients may perform custom initialization using a DBInitializer. Again, this is demonstrated in the City Service Example.
The database currently does not support attribute requirements. The code to do this was partially included in this release, so attribute requirements should not be included in queries sent to the database as bad things may happen right now.
Note that while attribute requirements are not supported, dynamic attributes are. The DataSink interface allows updating the dynamic attributes and their meta-attributes will be updated as well. This is all passed on to clients when the query a dynamic attribute.