A previous article describes the FIWARE data models and how you can use them for your systems. This post will give you more information about a component called context broker, and how FIWARE and OpenInfra communities and software components work together.
What is a context broker?
A context broker is a key component of many Internet of Things (IoT) and smart city systems. At a high level, a context broker serves as a middleware layer between data sources (including but not limited to IoT devices) and the applications that use the data. It is responsible for aggregating, managing, and providing access to real-time gathered data, making it available as digital twin data to downstream applications in a standardized and easily consumable format.
More specifically, a context broker performs the following functions:
- Data aggregation: It collects data from various information sources including IoT devices and sensors, regardless of their location or underlying communication protocols. This can include data on temperature, humidity, traffic patterns, energy consumption, and more.
- Data normalization and harmonization: It standardizes and normalizes the data it receives, ensuring that it is consistent and easily consumable by downstream applications. This can involve converting data from different formats, resolving conflicts, and ensuring that data is properly categorized and labeled.
- Data storage and management: It stores the data it collects in a centralized repository, making it easy to query and access by downstream applications. It can be integrated with multiple Identity and Access Management (IAM) frameworks (from traditional OIDC to advanced frameworks based on Decentralised Identity and Verifiable Credentials) thus managing access controls and permissions, ensuring that data is only accessible by authorized users and applications.
- Data distribution: It makes the data it collects available to downstream applications through a set of standardized APIs and data models. This allows applications to easily access and consume the data, regardless of the communication protocols used to access information from data sources, including IoT devices.
- Real-time processing: It can manage subscriptions on the data it collects, allowing it to detect and respond to events as they occur. For example, it can trigger alerts when certain thresholds are exceeded, or notify applications that can adjust the behavior of IoT devices based on real-time data inputs.
Overall, a context broker serves as a critical component of many IoT-enabled smart systems, enabling organizations to collect, manage, and distribute data in a standardized and efficient manner. By aggregating data from various sources and making it easily consumable by downstream applications, context brokers can help organizations break information silos, make more informed decisions and optimize their operations in real-time.
A simple way to spin up a local software stack with a context broker and the supporting services (like authentication) is to use FIWARE’s docker-compose or Kubernetes Helm charts. You can check out the FIWARE catalogue for the list of all available software components.
Collaborating with OpenInfra projects
The FIWARE Foundation has been collaborating and seeks further collaboration with OpenInfra projects, to ensure seamless integration between the services and sharing feedback in both directions.
OpenStack is an open source cloud platform that is used in different cloud models, such as public or private clouds.
The project is also a great example of a long-term collaboration, for instance, the FIWARE Lab has been based on OpenStack for quite some time now. The two communities have also been working together to enhance monitoring of OpenStack services. FIWARE services and standards are further utilized to share and process data that are generated by OpenStack services and applications running on top of the cloud alike.
If you are new to OpenStack, you can learn more about the project and the community on the project’s website. If you are already using the project, together with FIWARE components or separately, make sure to reach out to the community with feedback and questions on the openstack-discuss mailing list.
StarlingX is another OpenInfra project that the FIWARE community is looking into collaborating with. StarlingX is an open source cloud platform that is designed to deploy, operate and maintain large-scale, geographically distributed systems. It implements a Loki stack by integrating the Linux kernel, OpenStack and Kubernetes, along with other open source projects. The platform provides the ability to easily manage sites and resources remotely while providing access to a central view of the deployment to continuously monitor its state. StarlingX is a project that is designed to build a large-scale system, which can handle a large amount of data and at the same time, it can also produce a large amount of data itself from monitoring information, recording events and alarms, configuration information, and more.
The platform in itself can generate a large amount of data, and that amount gets exponentially larger when the application layer feeds into the pipeline as well. When that platform is connected to other systems, it is important to be able to share and process that data efficiently. Which is why StarlingX is a great candidate to integrate with FIWARE components and standards.
If you would like to learn more about the project and get involved check the website for more information or download the code and start to experiment with the platform. If you are already evaluating or using the software please fill out the user survey and help the community improve the project based on your feedback.
Today’s modern infrastructure software is getting more and more complex and will keep generating overwhelming amounts of data. It is crucial that the infrastructure building blocks integrate well with tools and standards to collect, process and share massive amounts of data. FIWARE and OpenInfra projects and standards work well together to provide a complete solution for current and future use cases with high demands and strict requirements and regulations.
Beyond technology, open source is all about participation and open collaboration. If you are using any of the projects mentioned in this article, please make sure to reach out to the communities to share your feedback and collaborate. As projects and standards evolve, don’t be shy to propose new opportunities for cross-community collaboration in the form of new features or projects!