-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Subscription/Notifications only work when created via Mobius #40
Comments
It is a bug of rosemary. They do not currently maintain rosemary, so it is recommended to get the necessary part from Mobius to use rosemary. (Rosemary is implemented based on the old version of Mobius) |
Thanks, but does this mean that we should rely only on Mobius (in-cse) and forget rosemary, like this: TAS+ADN_AE----------------------Mobius(in-cse)------------------------------Mobile_App_AE By the way, the examples provided by nCube-Thyme (mqtt, ws and coap) all follow the above scenario... Is mn-cse (local gateway) to be forgotten? I am confused... |
Mobius and Rosemary don't support 5.2.3.4 of TS-0010. |
http://tech.iotocean.org/board/mobius This is Mobius QnA site operated by KETI. If there is no answer, it's not a language problem, it's just that they don't respond. |
Thank you hsebs! Ok... :-( It seems that we can not have "local regions" (controlled by gateways), right? Thanks also for the information about the QnA. I am going to ask things in there. |
|
I dont want to use mqtt at all, if possible. .Mobius (in public network) ----------------------------Mobile App (connected to Mobius) . Rosemary1(private net1,with ADN AE and connected to Mobius) .Rosemary2(private net2, with ADN AE and connected to Mobius) The idea is to support sensing and actuation on Devices from mobile app. As Mobius/Rosemary do not support long polling (http) I have to use mqtt (public mqtt server) in order to address devices from Mobile app, right? But then you say that "You can have local regions when AEs don't use mqtt.". Probably a solution could be to put Rosemary instances also in public network and rely on mqtt on local sensors representatives, and rely on http between rosemary and Mobius... But then we can not have local AE (running on the gateways), we have to rely always in mobile app... Also, when rosemary registers on (public) Mobius via mqtt, rosemary never receives response and then rosemary is always trying to register from 5 to 5 minutes:
|
In my case, I modified Rosemary to connect 2 mqtt brokers. I found a similar question in http://tech.iotocean.org/board/mobius. I hope this helps you. Q. Do I need a separate setting to register Thyme to Mobius via Rosemary? A. Rosemary is MN-CSE and acts as a gateway, and if target is not itself, it performs forwarding to IN-CSE. There is no data synchronization function. In other words, I created a resource in rosemary, but the resource is not created in Mobius. This is because rosemary and Mobius are separate CSEs. For synchronization, you need to use a separate AE that sends the same request to Mobius. |
Hello hsebs, I know that I can have an IN-CSE with public IP and have a ADN-AE connected to IN-CSE and then having also a IN-AE (mobile app) connected to IN-CSE. The prblem is that this architecture is too much centralized (too much load in the in-CSE). An alternative is to have one or more field domain gateway (MN-CSE) connected to IN-CSE and having ADN-AE connected to gateways. Data remains on Gateways and IN-CSE is used just for discovery, and access data one gateways. The problem is that gateways are situated in pivate networks and IN-CSE can not forward queries to them, even using MQTT. My question is: using Mobius and Rosemary, is it possible to implement the alternative described above? I have been trying and without success till now. Thanks a lot! |
Maybe you can implement it with Mobius and rosemary. (But I do not recommend it.) In my case, I used 2 network chips to connect the gateway to the private and public networks. I modified rosemary to use multi mqtt brokers. I placed a mqtt broker on the public network to connect Mobius and Rosemaries, and mqtt brokers on each private network to connect Rosemary to AE. AE created a subscription in rosemary container. Using Postman I was able to create content instances in Rosemary by making a request to Mobius. AE read it and acted. It is the same as what you are trying to do. Right? P.S.
|
Is there an alternative I am not aware of? Implement my own OneM2M system?
Sorry, I dont know the term "network ships"... Do you mean VPN?
Yes, it is that scenario I am trying to implement...
Ok, But when one part if hidden in a private network, HTTP is not usable, but MQTT could be the solution. The problem is that rosemary MQTT support seems not be very well implemented.
Sure. Addressing is different.
Right.
But Why was rosemary left behind and only Mobius was updated through the time? Is this a signal that solutions should rely just on Mobius (private or Public) ?
What I need is to keep rosemary in a private network and Mobius in the pubic network and keep communication between each other. Just that... (*) By the way, if someone asked you (as a SW developer) to implement the scenario (*), what btool would you use to implement it? Thank you. |
Network chips means Network cards, not ships. I used wifi chip for private and LTE chip for public.
In my case, the LTE chip does not allow inbound connections. If you want the same effect, use a firewall. In my memory, Mobius chooses http when multiple connection methods are available. This may be why your Rosemary and Mobius are not communicating. Unfortunately, I can't remember that part very well. Check the Mobius's logs to see how Mobius sent registration requests. |
Registration requests are sent according to the configured cbprotocol in configuration files. |
Hello,
Scenario:
AE-----Rosemary-----------Mobius---------------Mobile app AE (HTTP Binding)
Assuming an AE and a Container created in rosemary
While trying to evaluate subscription/notification mechanism in Mobius/rosemary I realized that this mechanism only works when subscription is make via Mobius, like this:
Assume that AE creates a subscription in rosemary container. If someone else creates a content instance directly in rosemary container then the AE is notified.
But if someone alse create a content instance in rosemary container via Mobius the AE is not notified.
This is because var subl become empty (sgn.js, exports.check())
Assume now that AE creates a subscription in rosemary container via Mobius. If someone else creates a content instance directly in rosemary container or via Mobius, then the AE is always notified.
Is this a bug or is this the expected behaviour?
Thank you
The text was updated successfully, but these errors were encountered: