This service is no longer maintained by the LinkSmart® society.
LinkSmart® Resource Catalog provides a registry of available IoT devices and the resources they expose.
It exposes a simple JSON-based RESTful API, which is intended to be used by:
- Device_Connectors to register the available devices and their resources
- Applications to discover these devices and learn how to talk to them
The distinguisment between Devices and Resources is the following:
- 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
To describe heterogeneous IoT devices with different capabilities, the Resource Catalog uses a Registration format that is not restricted to a specific communication protocol or data format exposed by IoT devices. This is achieved by separating the metadata and capabilities of devices from the actual protocols and data formats used for communication with them, and by avoiding strict restrictions on the Registration schema.
Furthermore, the Resource Catalog API is based on JSON-LD, which allows for a clean and readable JSON API, and at the same time makes it possible to use Semantic Web/Linked Data where needed: every device and resource can be uniquely addressed through a URL exposed by the Resource Catalog API. In addition to that, the semantic metadata can be embedded directly in the registrations describing devices and their resources, to be later used for search.
The current implementation of Resource Catalog allows description of devices exposing resources over REST and MQTT, using plain-text and JSON data formats. Even though the API is JSON-based, the registration format can describe devices exposing data in XML and other “non-JSON” formats by providing external references to them (e.g., a URL to the XML schema). Furthermore, it offers a simple search/filter API, such that applications are able to find the devices they are interested in by various criteria.
Because the Resource Catalog API is very lightweight, we consider different implementations of it using different backends and running on different hardware. Moreover, we distinguish between a local catalog running on the Device Connector with read-only API exposing local devices and a “global”, network-wide catalog having information about devices from the whole network. Both kinds of catalogs are exposing the same API for registrations retrieval and search, and the global catalog is expected to use a more powerful storage backend and maybe provide a more powerful search API.
For more details on the data format and the API, please refer to the Resource Catalog API.
- Visit LinkSmart® Code