The Eclipse Bridge.IoT project aims at igniting an IoT ecosystem by introducing an API (Bridge.IoT API) for interoperability and an online marketplace (Bridge.IoT Marketplace) for providers to offer and monetize their IoT resources (data and services) and for consumers to discover them and access them from their applications and services.
Bridge.IoT proposes an architecture for IoT ecosystems that places an open marketplace for IoT platforms and services (as providers trading resources) at its center. IoT applications or services as consumers of resources can use the marketplace to discover them and access them in real-time. The architecture is centered around a common set of interfaces (Bridge.IoT API), that are supported both by resource providers and consumers, as well as the marketplace, where resources are traded.
The Bridge.IoT API offers the following core functionalities:
- Identity management to enable users (developers, administrators) to self-register their organizations and create provider and consumer instances along with the necessary IDs and credentials
- Registration of resource offerings, to allow providers to offer and advertise their assets on the marketplace
- Discovery of resources according to consumer-defined search criteria (i.e. queries) at run-time
- Access to offered resources on a provider instance by means of request/response or streaming protocols
- Vocabulary management for semantic descriptions of offerings, queries, input/output data, etc.
- Security management including authentication, authorization, and key management
- Accounting of access to resources, which allows the monetization of assets through charging and billing
To become Bridge.IoT compatible, providers of existing platforms just need to implement the Bridge.IoT API beside their existing (and often proprietary) API or deploy a Bridge.IoT Gateway Service (using the Bridge.IoT Provider Lib) for their existing platform. This puts service providers and application providers in the position to develop overarching solutions.
To lower the hurdle of using the Bridge.IoT API, it is envisioned to offer developers easy to use SDKs - the Bridge.IoT Lib - that reduces the time and efforts for developers to interact with Bridge.IoT ecosystems. The Bridge.IoT Lib consists of a Provider Lib and a Consumer Lib part. It translates function calls from the respective application or service logic, or the platform code into interactions with the marketplace, or peer-services/-platforms. The Provider Lib allows a platform or service to authenticate itself on a marketplace and to register offerings. The Consumer Lib allows an application or service to authenticate itself on a marketplace, to discover available offerings based on semantic queries, and to subscribe to offerings of interest.
As a result, the Bridge.IoT Lib should be available for the software platform and the programming language of a consumer or provider. For the time being, there is a Java implementation of the Bridge.IoT Lib. With the support of the Eclipse community, it is intended to grow the number of Bridge.IoT Lib implementations for different software platforms and programming languages.