FIWARE brings a curated framework of open source software platform components which can be assembled together and with other third-party components to build platforms that support the development of Smart Solutions faster, easier and cheaper. The main and only mandatory component of any “Powered by FIWARE” platform or solution is a FIWARE Context Broker Generic Enabler, supplying a cornerstone function required in any smart solution: the need to manage context information, enabling to perform updates and bring access to context.
FIWARE NGSI is the API exported by a FIWARE Context Broker, used for the integration of platform components within a “Powered by FIWARE” platform and by applications to update or consume context information. FIWARE NGSI API specifications have evolved over time, currently matching NGSIv2 specifications but evolving to align with the ETSI NGSI-LD standard. The FIWARE Community plays an active role in the evolution of ETSI NGSI-LD specifications which were based on NGSIv2 and commits to deliver compatible open source implementations of the specs.
Building around the FIWARE Context Broker, a rich suite of complementary open source FIWARE Generic Enablers are available, dealing with the following:
- Interfacing with the Internet of Things (IoT), Robots and third-party systems, for capturing updates on context information and translating required actuations.
- Context Data/API management, publication, and monetization, bringing support to usage control and the opportunity to publish and monetize part of managed context data.
- Processing, analysis, and visualization of context information implementing the expected smart behavior of applications and/or assisting end users in making smart decisions.
The following sections describe the current list of Generic Enablers of the FIWARE platform structured into five architectural chapters. Before you start setting up your own “Powered by FIWARE” platform, we suggest that you first try developing your first application using FIWARE and also review the FIWARE Tour Guide.
To check out the source code of all of these open source projects and to view the latest test results of the Generic Enablers, go to the catalogue’s GitHub repository.
Core Context Management
A Context Broker Generic Enabler is the core and mandatory component of any “Powered by FIWARE” platform or solution. It enables to manage context information in a highly decentralized and large-scale manner.
- The Orion-LD Context Broker Generic Enabler is a NGSI-LD Broker, which supports the NGSI-LD and the NGSI-v2 APIs. The current beta release is nearly feature complete, and the plan is to merge it with the main branch of Orion.
The following Context Broker implementations, supporting the ETSI NGSI-LD API specifications are under incubation:
- The Orion-LD Context Broker Generic Enabler is a NGSI-LD Broker, which supports the NGSI-LD and the NGSIv2 APIs. Currently in alpha version, plan is to merge it with the main branch of Orion.
- The Scorpio Broker Generic Enabler is an alternative NGSI-LD Broker which can also be used in federated environments
- The Stellio Context Broker Generic Enabler is another alternative NGSI-LD Broker
Accompanying a Context Broker component as part of Core Context Management:
- The STH Comet Generic Enabler brings the means for storing a short-term history of context data (typically months) on MongoDB
- The Cygnus Generic Enabler brings the means for managing the history of context that is created as a stream of data which can be injected into multiple data sinks, including some popular databases like PostgreSQL, MySQL, MongoDB or AWS DynamoDB as well as BigData platforms like Hadoop, Storm, Spark or Flink.
- The Draco Generic Enabler is an alternative data persistence mechanism for managing the history of context. It is based on Apache NiFi and is a dataflow system based on the concepts of flow-based programming. It supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic and also offers an intuitive graphical interface.
- The Cosmos Generic Enabler enables simpler Big Data analysis over context integrated with popular Big Data platforms (Spark and Flink).
- The QuantumLeap Generic Enabler supports the storage of context data into a time series database (CrateDB and Timescale).
Further information can be found on dedicated pages linked to Core Context Management.
Interface with IoT, Robots and third-party systems
A number of Generic Enablers are available making it easier to interface with the Internet of Things, Robots and Third-party systems for the purpose of gathering valuable context information or trigger actuations in response to context updates:
- The IDAS Generic Enabler offers you a wide range of IoT Agents making it easier to interface with devices using the most widely used IoT protocols (LWM2M over CoaP, JSON or UltraLight over HTTP/MQTT, OPC-UA, Sigfox or LoRaWAN)
- IoT Agent for JSON – a bridge between HTTP/MQTT messaging (with a JSON payload) and NGSI
- IoT Agent for LWM2M – a bridge between the Lightweight M2M protocol and NGSI
- IoT Agent for Ultralight – a bridge between HTTP/MQTT messaging (with an UltraLight2.0 payload) and NGSI
- IoT Agent for LoRaWAN – a bridge between the LoRaWAN protocol and NGSI
- IoT Agent for OPC-UA – a bridge between the OPC Unified Architecture protocol and NGSI
- IoT Agent for Sigfox – a bridge between the Sigfox protocol and NGSI
- IoT Agent for ISOXML – a bridge between the ISOXML/ADAPT protocol for agricultural machinery and NGSI
- IoT Agent library – library for developing your own IoT Agent.
The following is a list of Generic Enablers under incubation within this area:
- The OpenMTC Incubated Generic Enabler brings an open source implementation of the OneM2M standard. A northbound interface with the Orion Context Broker is implemented as part of the product.
- The Fast DDS Incubated Generic Enabler has been adopted as default middleware in ROS2, the widely known Robot Operating System, therefore it helps to interface with ROS2-based robotics systems.
- The Micro XRCE-DDS Incubated Generic Enabler is a lite version of the DDS middleware, adapted to run in extremely constrained resource devices (e.g. micro-controllers).
- The FIROS Incubated Generic Enabler works as a translator between the robotics domain and the cloud, transforming ROS messages into NGSI v2 and vice versa.
- The Domibus Incubated Generic Enabler helps users to exchange electronic data and documents with one another in a reliable and trusted way.
- The Oliot Incubated Generic Enabler is a mediation gateway which translates information from NGSI based platforms to EPCIS based IoT platforms.
Context Processing, Analysis and Visualisation
A number of Generic Enablers are available making it easier to process, analyze or visualize context information for the purpose of implementing the “smart behaviour” expected in any application:
- The Wirecloud Generic Enabler brings a powerful web mashup platform making it easier to develop operational dashboards which are highly customizable by end users.
- The Kurento Generic Enabler enables real-time processing of media streams supporting the transformation of video cameras into sensors as well as the incorporation of advanced application functions (integrated audiovisual communications, augmented reality, flexible media playing and recording, etc)
- The FogFlow Generic Enabler is a distributed execution framework to support dynamic processing flows over cloud and edges.
The following is a list of Generic Enablers under incubation within the chapter:
- The Perseo Generic Enabler introduces Complex Event Processing (CEP) defined using a rules-based system, enabling you to fire events which send HTTP requests, emails, tweets, SMS messages etc.
- The OpenVidu Generic Enabler is an abstraction layer for Kurento, making media processing easier to program.
Further information can be found on dedicated pages linked to Context Processing, Analysis and Visualization.
Context Data/API Management, Publication and Monetization
You can implement secured access to components in the architecture of any “Powered by FIWARE” solution using Generic Enablers of the Security chapter:
- The Keyrock Identity Management Generic Enabler brings support to secure and private OAuth2-based authentication of users and devices, user profile management, privacy-preserving disposition of personal data, Single Sign-On (SSO) and Identity Federation across multiple administration domains.
- The Wilma proxy Generic Enabler brings support of proxy functions within OAuth2-based authentication schemas. It also implements PEP functions within an XACML-based access control schema.
- The AuthZForce PDP/PAP Generic Enabler brings support to PDP/PAP functions within an access control schema based on the XACML standard.
This division also brings Generic Enablers for the publication and monetization of context data resources, available through the core Orion Context Broker component of your platform:
- The CKAN extensions Generic Enabler brings a number of add-ons enabling to extend current capabilities of the world-leading CKAN Open Data publication platform to allow publication of datasets matching right-time context data, the assignment of access terms and policies to those datasets and the assignment of pricing and pay-per-use schemas to datasets.
- The Biz Framework Generic Enabler brings backend support to Context API/Data monetization based on open TM Forum Business APIs.
The following Generic Enabler is under incubation within this area:
- Idra is able to federate existing Open Data Management Systems based on heterogeneous technologies (e.g. CKAN, SOCRATA, DKAN etc.) providing a single API and a standard metadata format (DCAT-AP) to discover open datasets.
- APInf API Management Framework is a tool for API owners to manage their APIs. It provides all the necessary features to run business with APIs and makes it easy for API consumers to find and start using the standard APIs.
- CoatRack is a third-party backend-to-backend communications framework facilitating API access, monitoring and monetization.
Further information can be found on dedicated pages linked to Context Data/API Management, Publication and Monetization and Security.
FIWARE components can be deployed using standard containerization techniques. Most components are directly available as Docker Images, links can be found within the GitHub repository of each generic enabler. For fully scalable production-ready instances please refer to the FIWARE Helm Chart recipes. A docker-compose file may also be available within individual GitHub repositories, but these should only be used in development environments.
Join the FIWARE Open Source Community
Are you already contributing? Don’t forget to
Willing to contribute your technology to FIWARE?