Orange-OpenSource / fiware-cepheus

FIWARE Cepheus - CEP for NGSI IoT gateways
GNU General Public License v2.0
17 stars 21 forks source link

Cepheus CEP in a multi-tenancy way #60

Open salc2 opened 7 years ago

salc2 commented 7 years ago

Is the Cepheus CEP ready for working alone in a multy-tenancy way without Cepheus Broker? I have been doing some test with a simple architecture: IoTAgent, Orion and Cepheus CEP And I just realized that the code where the requests are made isn't sending "Fiware-Service" neither "Fiware-ServicePath" SubscriptionManager headers are null.

marcc-orange commented 7 years ago

You are right, Cepheus CEP is itself multi tenant (can handle CEP rules / event for multiple tenants using Fiware-Service and Fiware-ServicePath headers), but does not handle subscriptions to muti-tenant providers.

We had plans to had the capacity to register to multi tenant providers but this was not implemented.

salc2 commented 7 years ago

Hello @marcc-orange Thx for your answear. So if I would want to use Orion as in (provider) in my CEP rules, do I need to have set Orion in a default tenant (with orion mongo db) am I right? If I would want to implement subscriptions for muti-tenant orion configuration ( e.g. mongo orion-serviceone, orion-servicetwo ) theoretically would be enough to try to set TenantScope.getService and TenantScope.getServicePath in headers in ngsiClient.subscribeContext call, am I right? I mean theoretically, it maybe could be harder than that.

Thx you.

marcc-orange commented 7 years ago

There is two ways to make Cepheus talk to multi-tenant providers such as Orion :

The first is the one you mentioned : if a tenant A on Cepheus tries to subscribe to a provider, Cepheus could automatically add the tenant A Service and ServicePath to the subscription. This would be simpler (no configuration of Service and ServicePath required for each provider), but limits a tenant to only talk to provider with the same tenant.

The second one is to have every provider in the configuration specify its tenant information by adding a Service and ServicePath. This is more powerful as a tenant A on Cepheus could subscribe to data of a tenant B on Orion. Not sure if any real use case could back up this one.

For the implementation on the first solution, you got the picture right.

AhmedEmad031 commented 6 years ago

i want to ask if Cepheus-cep now able to handle subscriptions to Muti-tenant providers ?

marcc-orange commented 6 years ago

Hi @AhmedEmad031 ,

No new features are currently planned. Contributions are welcomed. ;)

pooja1pathak commented 6 years ago

Hello @marcc-orange

I want to ask if this issue is regarding the subscription where we can add Service and ServicePath in the provider section in configuration? As per my understanding from the closed issue: https://github.com/Orange-OpenSource/fiware-cepheus/issues/69 , Cepheus-cep now able to handle subscriptions to Multi-tenant providers by adding Service and ServicePath in the provider section in configuration.

If my above understanding is correct or if I have missed on something?

marcc-orange commented 6 years ago

Hello @pooja1pathak, yes the #69 is a good step in full support for multi-tenancy by Cepheus CEP. But some issues like #73 are still pending and thus prevent full support.

pooja1pathak commented 5 years ago

Hello @marcc-orange , Thanks for your answer. I tried to reproduce issue https://github.com/Orange-OpenSource/fiware-cepheus/issues/73 and found that the request executes as expected without any issue.

I have added my observation on https://github.com/Orange-OpenSource/fiware-cepheus/issues/73. Please check and verify my observation.