Thisis an internal project and is fully funded by CeDInt.
BatMP is a software platform or middleware designed for the monitoring and management of buildings through the data obtained from electronic devices.
Due to the increasing necessity of a remote monitoring and management of previously installed home automation devices, to the existence of a large number of protocols associated to the existing technologies and to the necessity of storage and data analysis to make decisions with respect to these devices, a new management gateway was developed. Its aim was to fulfill all of these functionalities.
One of the aims of this Gateway developed by CeDInt is to offer a set of APIs so future developers could use these APIs to create different kinds of applications which can run on this platform and several drivers for the existing or new technologies. The final goal of this open platform was that developers around the world could add their own drivers and applications allowing users to use them with different aims related to the control of physical spaces through electronic devices.
Every BatMP gateway is connected with a central server where all the measures from the electronic devices connected to this gateway are stored. The applications developed over BatMP will have access to the measurements of a certain client which are store don the central server, so these data can be visualized and used to make intelligent decisions, through a series of rules or algorithms, with respect to the way those electronic devices act. In the next figure the structure of BatMP gateway and the central server is shown.
Figure 2 BATMP and central server structure
The design of the platform BatMP satisfies the following objetives:
Multiprotocol: The system must be able to interact with devices from the different home automation technologies which have been released in the market.
Service Oriented: This gateway will be a platform where high level services will be executed (climate control, lighting, etc.). This way the lower layers related to the operating capacity of the system will be transparent for the developer who is going to develop these services. An application developer or user does not need to know which technologies have been used in the development of this platform so it has to be completely transparent for them.
In the next figure a service or application example is shown.
Multiplatform: The gateway must be completely functional in any operating system where it can be executed.
Secure: Only the authorized users must be allowed to interact with the system and their own devices and/or parameters. There are several access profiles established, so the data security and communication security can be guaranteed. Users must authenticate themselves in a secure way against the central server so they can have Access to the data which are stored there.
Extensible design: Not only the hardware design, but also the software design must take into account that in the future new requirements may appear (new functionalities or modifications over them). These future requirements should be able to be implemented with the minimum impact on the rest of the system functions. The system model should ease the development of high level services.
IP Connectivity: The system will use the protocol TCP/IP to allow Access to the services and as a way of communication between different remote systems. It will also use the software architecture style REST as a means to perform that communication.
Hot plugging of services: The system must be able to install remotely, start, stop, update, and uninstall new services without requiring a reboot. To be able to fullfill all these requirements, the system must be based on OSGi. Using this specification the system is divided in smaller modules called bundles which can be installed and uninstalled without rebooting the gateway.
In the next figure the modular structure of a platform BatMP and all its modules can be observed.
Hot plugging of devices: The system must be able to manage the connection of new devices without rebooting or disconnecting the gateway. To fulfill this requirement, the system will get as much information as it can and will only ask to the user the data which it cannot get independently (location, uses, …)
- Framework: Equinox (OSGi), Java jdk6, Maven, JUnit,
- Ontologies: RDF, OWL, Jenna, Empire (JPA),
- Home Automation Technologies: KNX (Calimero), Lonworks, EnOcean, ModBus, COAP + IPSO
- IP-based communication protocols: Rest, JSON
- Software development tools: Eclipse, SVN, Hudson, Artifactory, Protegé (ontologíes)
- BatMP-Core: Technology Manager, Model Manager, Application Manager, Gateway Manager…
- Monitoring Service