-
Notifications
You must be signed in to change notification settings - Fork 5
Service Catalog
Similar to what the Device Catalog does to describe available IoT devices and resources (and their APIs), the Service Catalog describes the services available in the network and exposes a similar JSON-based RESTful API.
The Service Catalog can be considered as the entry point for applications and other components (e.g., Device Gateway), mainly to discover available services in the network (e.g., Device Catalog). We use zeroconf/DNS-SD to advertise the endpoint of the Service Catalog, such that applications and services can be deployed without manual configuration.
Service Catalog contains entries of everything that is meant to be discovered by applications and other services, which can be called a “service” and is not a physical device or a “virtual sensor” worth being considered as such. Examples: (global) Device Catalog, MQTT Broker, etc.
Distinguishing between Devices, Resources, and Services, we follow their conceptional differences:
- Device is a physical “IoT” device with communication capabilities (or a similar virtual abstraction) providing a “native” communication protocol or an API (also proprietary) and exposes various Resources (sensors, actuators) over it
- Resource is an abstraction of a resource hosted by a Device, which has a state that can be obtained and/or manipulated. The access to this state is provided and managed by the hosting Device
- Service is a network service (Web Service, Message broker, etc) available on the network and providing a protocol endpoint
Just like devices, the services are expected to be different: talk different protocols, use different data formats, etc. The Registration format enabling such heterogeneity is similar to that used in the Device Catalog.
The Service Catalog API is also REST/JSON-based, similar to the Device Catalog API with CRUD for services registering themselves and a search API for applications. Unlike the Device Catalog, we expect to have only a “global" Service Catalog in one private network. For more information on the data format and the API, please refer to Service Catalog API.
To register third-party services (e.g., MQTT Broker), patchwork provides a simple registrator utility that can be used to register a service in the Service Catalog by providing its description in the JSON format as described in Configuring Services.
About Patchwork Toolkit
Configuration
- Configuring Device Gateway
- Configuring Devices
- Configuring Device Catalog
- Configuring Service Catalog
- Configuring Services
Deployment examples
- Singleall-in-on-box
- Multiple Device Gateways with optional central Device Catalog
- Using central Service Catalog
API for Application developers
Integrating devices
- TBD...
Third-party integrations