Fiware: can we push data from one Orion context broker to another? - fiware

can we push data from one Orion context broker to another Orion?
Thanks in advance for your help!

Yes, you can.
Have a look to the section about Context Broker federation in the documentation about it.

Related

How to choose a FIWARE NGSI-LD context broker?

I need some help to decide which FIWARE context broker (Orion-LD, Scorpio, Stellio) I should choose for a smart city architecture. There is no existing component which uses NGSI-v2.
Is there any other reason why you should choose the Orion-LD context broker besides the fact that it is the only one that supports NGSI-v2?
Is there an advantage that the Orion broker is the main component of FIWARE?
The paper "Open-Source Publish-Subscribe Systems: A Comparative Study" says the scorpio broker is the most complete system overall.
The paper "Enabling Context-Aware Data Analytics in Smart Environments: An Open Source Reference Implementation" says the Orion-LD context broker is the most extended GE.
I also saw the performance comparison where Orion-LD is way faster at small batches of messages and slower than Scorpio and Stellio with larger batches.
Any suggestions?
Thanks!
My understanding is that Orion-LD is easy to operate, only the service and MongoDB. Scorpio uses Kafka which adds an extra complexity layer, operations-wise. I don't have any reference on Stellio.
Orion-LD supports NGSIv2 as it is a fork of Orion but it is not its main focus. If you are starting fresh, you can adopt directly LD, and you are done.

FIWARE Context Broker or Custom API Gateway

I hope I'll find a reply to a bad (for me) question for which i don't find an answer at the moment.
I have to synchronize information between an enterprise asset management software, based on IBM Maximo, and an external data lake. In order to achieve this target I can develop a custom API gateway useful to receive any update/insert of data in Maximo. Or, I could use FIWARE Context Broker developing a custom data model for my asset management entities (and relationship) in order to store data having benefits in terms of NGSI protocol.
Both FIWARE Context Broker or API Gateway can be extended in order to provide public services to an IoT platform or other systems of third parties. So, why shall I use FIWARE Context Broker or a custom API Gateway? What's your advice and considerations?
I put below an example of a generic architecture
Thank you so much for any reply.

Fiware multitenancy

We are evaluating several platforms for integrating a "Smart Energy System".
One important requirement we have to support is multitenancy. From the docs I can see the possibility to start the Orion Context Broker with this option. Orion will ensure the data separation based on the fiware-service request header.
That's fine but how to "secure" this header across the whole software stack (PEP-Proxy, IoT-Agent)?
Which component/device sets this header? Which component ensures that a request with a specific fiware-service header value is authorized to access the data of this tenant?
In my opinion this is a task for Wilma as PEP-Proxy. All traffic to Orion is routed through the PEP-Proxy and the proxy checks if this request is valid. Unfortunately I can not find such a check within the source code nor it is explained in the documentation.
Has someone implemented such an architecture an can help me?
Found another post which answers my question
How to configure access control in Orion NGSI API for tenant isolation using Wilma PEP Proxy and IdM Keyrock?
We will have to implement this kind of authorization for our own.

Can cygnus be used to trigger a change in Context Broker?

I am developing a service agent where I want to know when the values of sensor are changed. Instead of developing an automatic http request in my service to query context broker (each 15 mins or so) I want to know if I can configure cygnus to notify me of these changes?
Im doing this because I want to put the data coming from my sensors in an algorithm that detects certain trends.
Thank you, I hope my question is clear enough.
If you are not an experienced user of fiware technologies please ignore this question.
Probably it is better that you subscribe and end point (integrated with your service) to orion so your service is notified when the sensor value change.
https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Publish/Subscribe_Broker_-_Orion_Context_Broker_-_User_and_Programmers_Guide#Context_subscriptions
Do you really need to use Cygnus?

Interfacing Orion and other GEs from fiware and other APIs

I'm trying to integrate Proton CEP and Mandrill, an email service, mediated by Orion context broker.
When I was starting to study Orion, I thought that it would be able to communicate directly with CEP, exchanging JSON objects through http. And also that Orion would be able to parse each object to deliver to the correct format understandable by each API.
From the examples and documentation available I was able to understand that another API developed by us should be doing the parsing and mediating the communications between each API.
So I'd like to confirm that this is so and that I'm not missing something. Is Orion indeed unable to customize its outputs?
If confirmed, then I will proceed with development of this mediating API.
Arthur
Edit:
I believe I wasn't clear above about the issue. I hope adding this helps.
Proton CEP recieves through http POST JSON objects, but it only understands the variables if they are in simple format, like {"Name1":"Value1","Name2":"Value2"}, with no arrays or complex struture.
Orion, can comunicate in JSON as well through http, but I can't control the structure of the JSON output. So the result is that CEP wouldn't be able to understand inputs from Orion and process them. The same issue arises with other APIs too. And I'd like to confirm that Orion is indeed unable to custom its output and that this integration needs to be done on our side.
You can find best explanation about connection between CEP and Orion in latest guides.
User guide's Appendix A specifies steps to establish such a communication (subscription(s) and/or simple publish).
Orion only understands/returns XML and JSON, and with this it is able to communicate with most of the GEs in FIWARE. I can't tell you anything about the Proton CEP, sorry.
To make sure you have interoperability between GEs (and especially other components) a "mediating gateway" will solve the problem, of course.
The JSON format that Orion Context Broker sends in notification conforms to the NGSI10 context management specification. Using a predefined JSON (instead of a custom one) is the best way to ensure that interoperability with other NGSI-compliant software works.
Before doing the NGSI-to-Proton adaptation piece yourself, I'd recomend you to check with Proton development team if there is any existing NGSI connector to their system that you can reuse. You can find contact details in Proton page at FIWARE catalogue.