SOMIOD is a middleware solution designed to enhance interoperability and promote open data sharing across various Internet of Things (IoT) systems. It standardizes how data is accessed, written, and notified, regardless of the application domain, enabling seamless integration between different devices and platforms. The middleware uses RESTful Web Services and open web standards to achieve uniformity in data handling and application creation.
- Uniform Data Access: Data is always accessed, written, and notified in the same way, promoting consistency across applications.
- Interoperability: Designed to overcome the "Silo of Things" problem by ensuring open communication between different IoT systems.
- RESTful API: All operations are performed using a RESTful API, ensuring simplicity and flexibility in development.
- Subscription Mechanism: Supports event-based notifications via HTTP and MQTT, allowing for real-time updates when data is created or deleted.
All URLs start with: http://<domain:port>/api/somiod/...
- Application:
/application
- Container:
/application/{app_name}/container
- Data:
/application/{app_name}/container/{container_name}/data
- Subscription:
/application/{app_name}/container/{container_name}/subscription
Create, Read, Update, and Delete operations are supported for most resources.
A special discovery mode is available using HTTP headers to list all available resources of a given type (e.g., applications, containers, data).
Notifications are triggered on data creation or deletion. Notifications can be sent via:
- MQTT
- HTTP
- Application: Represents a specific application.
- Container: Groups data and subscriptions.
- Data: Represents individual records within a container.
- Subscription: Represents event notifications (creation or deletion).
All transferred data is in XML format.
All resources and their data are persisted in a database.
This project is licensed under the MIT License - see the LICENSE file for details.