While the Internet of Things is a vibrant and fast-growing sector in IT business, it evolves in a very fragmented way:
At the moment, a multitude of IoT platforms are available focusing on different domains, targeting different geographical regions and offering heterogeneous vendor- or consortium-specific APIs with varied functional range. Hence, most of these IoT platforms are used only for a restricted set of applications (vertical silos). Until now, harmonization attempts towards IoT ecosystems failed because of the large number of stakeholders involved in IoT ecosystems, namely thing providers, platform providers, service providers, developers, and users. For a single stakeholder the potential gain for establishing such a collaborative IoT ecosystem is low, while the risk is high not to reach the critical mass of market share.
The lack of widely accepted standards is a real hurdle for the invention of advanced IoT solutions dealing with cross-platform and cross-domain services and applications envisioned for the future of IoT business. Developers have to negotiate access to platforms and their IoT assets individually and need to adapt to the platform-specific API and information models. Having to do these efforts for different platforms and domains, makes such solutions quickly very expensive and thus infeasible. This fragmentation of the IoT and the missing interoperability result in high entry barriers for application and service developers, and currently prevent the emergence of cross-domain IoT ecosystems. The lack of interoperability also results in lost business opportunities and prevents innovative business ideas.
To overcome this situation, IoT platform and service providers require a simple, established way to offer and sell access to their assets. Marketplaces that enable providers to monetize access to their resources (data and services) are not yet available. Once these marketplaces are established, developers will be able to easily create advanced IoT services and applications and build their products around these. Revenue streams can then be shared across all contributing entities in an economically fair manner. A key task of a marketplace is to provide extended functionalities to enable the advertising, dynamic discovery, subscription and negotiation of access to resources in an automatically orchestrated manner, facilitating true collaboration among ecosystem stakeholders.
The intention of the BIG IoT (Bridging the Interoperability Gap of the IoT) project - as part of the European IoT Platform Initiative - is to enable the emergence of cross-platform, cross-standard, and cross-domain IoT services and applications towards building economically viable IoT ecosystems. These ecosystems will connect platform and service providers as well as the consumers of those. IoT platforms and services are enriched with a common interface, the BIG IoT API, which offers the required set of functionalities to offer resources (data and services) on the BIG IoT Marketplace and to discover and subscribe to those resource offerings via the marketplace.
The goal of the BIG IoT project is to enable harmonization across IoT platforms, and to develop a suitable IoT marketplace for platforms and services as providers to trade available resources (data and services). IoT applications or services as consumers of resources can use the marketplace to discover them and access them in real-time.
Therefore, the BIG IoT project provides three elementary components:
- BIG IoT Marketplace – a reference implementation including the marketplace API, a basic Web portal as well as the core backend functionality.
- BIG IoT Provider Lib – an SDK for marketplace interactions (registration) and an API to be deployed/integrated by providers to allow consumers direct and secure access to registered resources.
- BIG IoT Consumer Lib – an SDK for marketplace interactions (discovery and subscriptions) and to access resources of providers.
The BIG IoT Marketplace is the central component in context of BIG IoT. It allows providers to register their offerings (based on semantic descriptions) and consumers to discover and subscribe to relevant offerings (based on semantic queries) at run-time. The marketplace also provides accounting support for consumers and providers to track the amount of resources accessed, as well as a Web portal for developers and administrators to support the integration/implementation of their platforms, services and applications and the management of their offerings, queries and subscriptions respectively.
The BIG IoT Libs encapsulate access to marketplace functionality (for both consumers and providers perspective), and to directly access resources on a provider (form a consumers perspective). Furthermore, the BIG IoT Provider Lib implements (or supports integration of existing) APIs with a callback interface to be implemented by providers to make their resources accessible to consumers in homogeneous manner.
It is out of scope to create and implement an additional IoT platform.
The BIG IoT project aims at igniting an IoT ecosystem by introducing an API (BIG IoT API) for interoperability and an online marketplace (BIG 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.
BIG 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 (BIG IoT API), that are supported both by resource providers and consumers, as well as the marketplace, where resources are traded.
The BIG 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 BIG IoT compatible, providers of existing platforms just need to implement the BIG IoT API beside their existing (and often proprietary) API or deploy a BIG IoT Gateway Service (using the 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 BIG IoT API, it is envisioned to offer developers easy to use SDKs - the BIG IoT Lib - that reduces the time and efforts for developers to interact with BIG IoT ecosystems. The BIG 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 BIG 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 BIG IoT Lib. With the support of the Eclipse community, it is intended to grow the number of BIG IoT Lib implementations for different software platforms and programming languages.
Beside harmonization of existing IoT platforms (by encouraging their providers to implement the BIG IoT API), the main focus of the BIG IoT project is on establishing marketplaces for IoT data and services. At the time present, such a marketplace component is a missing building block in the Eclipse IoT landscape. This project aims to fill this gap. The success of this initiative depends on attracting a significant amount of IoT players that share the belief in open standards enabling cross-platform and cross-domain services and applications. This is not just the platform providers that have to implement the BIG IoT API but also service providers that are willing to offer access to their data on BIG IoT marketplaces as well as the developers that are attracted by the advantages of the BIG IoT API.
The Eclipse IoT Working Group has a high visibility among all kinds of IoT players and the community around Eclipse IoT has a lot of experience in the IoT sector, from which the BIG IoT project can profit. On the other hand, the Eclipse IoT community can benefit from standardization efforts of the BIG IoT initiative.
With respect to other Eclipse IoT projects, we see the following interesting connections:
- Eclipse Vert.x could be an enabler for additional implementations of the BIG IoT Lib for different programming languages.
- Eclipse Paho and Eclipse Mosquitto are candidates to enable MQTT for the data access established between consumer and provider.
There are no known legal issues.
Initial contribution in August 2017.
- Extend the functionalities of the BIG IoT Lib and the Marketplace
- Provide a reference implementation of a BIG IoT Gateway Service (for easy integration of existing platforms and services)
- Provide a reference implementation of a BIG IoT Proxy Service (for integration of resource constraint platforms)
- Provide reference implementations of BIG IoT Platform Adapters (i.e. platform-specific extensions based on the Lib) for a selected IoT platforms
- Provide further examples and demo applications