OpenMUC Framework - Overview
All boxes seen in the picture are implemented as software modules called OSGi bundles that run independently in the OSGi environment. All modules except for the Data Manager are optional. Thus by selecting the modules you need you can easily create your own customized and light weight system. The different modules in the picture are now further explained:
- The Data Manager is at the core and center of OpenMUC. Virtually all other OpenMUC modules (drivers, data loggers, servers, applications) communicate with it through OSGi services. The Data Manager gets automatically notified when new drivers or data loggers get installed. What the Data Manager does is mostly controlled through a central configuration.
- In the configuration the user defines data channels. Data channels are the frameworks representation of data points in connected devices. Amongst others the channel configuration holds the following information:
- communication parameters that the drivers require
- when to sample new data from connected devices
- when to send sampled data to existing data logger(s) for efficient persistent storage.
- A driver is used by the Data Manager to get data from a connected device. Thus a driver usually implements a communication protocol. Several communication drivers have already been developed (e.g. IEC 61850, ModbusTCP, KNX, DLMS/COSEM). While implementing drivers for OpenMUC we also developed standalone communication libraries (e.g. OpenIEC61850, jMBus). These libraries do not depend on the OpenMUC framework and can therefor be used by any Java application. New communcation drivers can be easily developed by third parties.
- A data logger saves sampled data persistently. Essentially the Data Manager forwards sampled data to all available data loggers if configured to do so. Data loggers are specifically designed to store time series data for short storage and retrieval times. Note that this usually means that they are not SQL-based. OpenMUC currently includes two data loggers. The ASCII Data Logger saves data in a human readable format while SlotsDB saves data in a more efficient binary format.
- If all you want is sample and log data you may not need to program an application. But if you want to process sampled data or control a device you will want to write your own application. Like all other modules your application will be an OSGI bundle. In your application you can use the DataAccessService and the ConfigService provided by the Data Manager to access sampled and logged data. You may also issue immediate read or write commands that are forwarded by the Data Manager the driver. The configuration (when to sample and to log) can also be changed during run-time by the application. At all times the application only communicates with the Data Manager and is thus hidden from the complicated details of the communication technology.
- If your application is located on a remote system (e.g. a smart phone or an Internet server) then the data and configuration can be accessed through an OpenMUC server. At the moment we have a single server: a RESTful Web Service. In the future and IEC 61850 server is planned.
- Finally the OpenMUC framework provides a web user interface for tasks such as configuration, visualization of sampled data, or exporting logged data. The web interface is modular and provides a plug-in interface. This way developers may write a website that integrates into the main menu of the web interface.
Authors of the OpenMUC framework: