IoT Middleware along with AGway (in-house developed Intelligent Gateway) forms the core for AIoTm. It allows secure communication between heterogeneous devices using diverse protocols. Application developers can build their application without worrying about the underlying communication complexities and the complexities of the differences in protocols used by the devices. It also provides API to manage the middleware infrastructure and various service offered by the interface. Following features are incorporated in middleware design
- Scalable: Loosely coupled module design provides scalability of middleware module to any extent. It designed in such way that it can handle any number of devices and any number of protocols
- Reliable communication: Different modules in the system are connected by highly reliable and fast queuing system.
- Secure REST API: Secure authenticated APIs helps user to create their own dashboards and application
- Communication channel isolation for gateway communication: Separate communication channel is used for each gateway. It allows maximum separation for gateway communication from middleware itself
- Lightweight communication channel for gateway: MQTT based communication channel provides lightweight publish and subscribe system for embedded gateway
- Object-oriented domain model: As for the database operation we are using Hibernate, which provides a framework for mapping an object-oriented domain model to a traditional relational database
Currently its supports following features
- Gateway activation and registration process
- Device discovery and registration based on user request
- User configurable gateway health checking
- Sensor streaming scheduler
- Service discovery for various protocols
- UpnP service invocation.
- Secured REST APIs
AIoTm web interface uses bootstrap template, which has a powerful front-end framework with responsive layout for faster and easier web development. To ensure secure platform we are using Spring Framework. Spring is an open source application framework and control container for the Java platform..
AIoTM provides separate dashboards for Users and for the Admin.
Main highlight of admin dashboard are
- Birdseye view on all Gateways registered with the middleware
- Gateway Visualization : Detailed account of Gateway activities can be monitored both visually and using textual data
- Resource Utilization: Ganglia does it for AIoTm. It is a scalable, distributed monitoring tool for high-performance computing systems
- Gateway Locator: Gateways locations are plotted in a geographical map
- Gateway Configuration: Admin has the privilege to add multiple gateways at a time
Main highlights in User dashboard
- Over view of all user specific gateways
- Gateway Response time Visualization
- Zigbee : ZigBee Device plotted using inverted tree structure(D3.js). User can configure multiple devices at the same time to the network
- Stream : User can configure multiple devices for streaming based on specific constraints
Service: User can perform UPnP Service search and using tree view plugin. UPnP devices and its methods and arguments are also plotted. Each method can be invoked based on user input arguments.