Features

The following features are currently in CRS:

  • CRS Web service
  • Configuration type-safety
  • XML configuration storage
  • Configuration client library
  • Dynamic service advertising and discovery

CRS Web service

The current version of the CRS web service uses a simple HTTP protocol. It is a simple wrapper over the configuration service.

Configuration type-safety

All configuration settings have a specified type. The current types are:

  • BOOL

    Boolean only accepts 'true', 'false', 'on' and 'off' as values.

  • DOUBLE

    Accepts double values.

  • STRING

    Accepts any kind of text.

  • INTEGER

    Accepts integer values.

  • DATE

    Accepts dates in the following notation: 'yyyy-MM-dd-HH:mm:ss'.

  • MULTISTRING

    Accepts several strings concatenated using a ',' delimiter. []

    Requesting a setting (using the current Java client library) is done using a strong typed method (i.e. getStringValue(...), getBooleanValue(...)). When the setting is not of the requested type an exception is thrown.

XML configuration storage

Currently the configurations are stored in an XML format. Other format will be added later.

Configuration client library

As noted above, the current configuration client library is written in Java but can be built in other languages as well as the communication protocol is HTTP.

Dynamic service advertising and discovery

The current CRS web service advertises itself using Multicast DNS (Zeroconf). The current Java configuration client library uses the same technique to find the service, so no configuration is needed to find/locate the configuration service.