One important part of easyIPC is it’s “repository”, a real-time database that hold all information needed. The repository on devices are very simple and is only a map of objects made available through the interface. Raspberry PI on the other hand will need a repository of all devices as well as a log of data that has been collected. A node hold its own data only and depend on interconnection to other nodes their data. The exception is the dictionary part that need to be on each node so we know what resources we have in our network.
The UML diagram above illustrate the 4 main tables in the repository on Node level. At device level only the Local Object Map is implemented.
Node is a list of main nodes accessible in the system. One of the entries will be “this” node.
Local Object Map is a list of local resources, objects and variables that are available through the interface.
Remote Object Map is the Node’s local info storage about objects. This contain full name, description, PID and other information uploaded from the device at start-up. The Remote Object map can also be loaded/saved locally on the RPI for fast start-up.
Data is a log of data for a selected object/resource.
This is a very early draft so expect some changes as we dig into more details.