Connecting multiple remote sites #1105
-
Hi, I am currently evaluating if ecal is a suitable fit for our usecase and would really benefit from your input! The usecase is a research setup in the maritime domain where we plan for a cyberphysical system of systems simplified as:
Is it possible to configure ecal so that:
What other tools/solutions (in addition to ecal) would you recommend for such a setup? VPN? SSH tunneling? Or maybe a separate middleware altogether for the data and vpn or ssh for only the built-in-features of ecal? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hi @freol35241,
This is the perfect scenario for eCAL. eCAL scales very when all you nodes (i.e. eCAL Programs) run
the term "good" is flexible, as it depends on the actual throughput you want to achieve.
I understand this as a setup, where you connect multiple clusters (those machines are connected via an ethernet switch) over internet. This over-the-internet-setup isn't exactly what eCAL was made for, even though we have tunnel-solutions for this purpose that work well. The reason why a native eCAL approach will not scale well over the internet, is that eCAL makes heavy use of UDP Multicast (as that scales very well in local networks, even for many subscribers). UDP multicast means that each publisher sends UDP packages that are delivered to any machine that has joined this multicast group. When sending these packages out to the internet, they will just be dropped by some router, as delivering those packages to all machines on the entire internet would be devastating. The other (and probably better) way is to use a proxy that transmits the data over a different protocol. We have the ecal-mqtt-bridge available for that purpose. MQTT may not be as performant as eCAL, but it has an entirely different architecture and can easily work over the internet. When using this, each of your clusters would have one machine running the ecal-mqtt-bridge. You would use the configuration file of the bridge to tell it about any topic that you want to be transferred over MQTT. The Bridge will then create an eCAL Subscriber on one end, send the data via MQTT and publish it to eCAL on the other end again.
As I mentioned, the mqtt-ecal-bridge can serve the purpose of transferring a specific set of eCAL topics over the internet. Inside the main-site, eCAL will only transfer data over network, that is actually needed by some other remote node. This configuration is however implicit. eCAL will automatically decide which topics need to be transferred over network. There currently is no way to configure that with an explicit configuration technique.
Even if you are using a tunneling solution like mqtt-ecal-bridge, the eCAL Monitor will continue to work. But of course it will only see the remote topics that you configured the mqtt-ecal-bridge to transfer. You will always be able to see all topics that are published by any node in the entire eCAL network though (but not all that are published in another remote eCAL network that is just connected via MQTT). Something that is currently not being transferred via MQTT are the eCAL Services. The eCAL Services are for instance used to tell a recorder client that is shall start a distributed recording. Of course you can still create a distributed recording by just triggering the eCAL Recorder at roughly the same time on the main and all remote-sites, but out recorder GUI will not be able to help you with that. Distributed recordings within one of your sites will obviously be fully functional. You may need to know, that additional to the actual data transport, every eCAL node periodically sends metadata information about itself and the topic it publishes and subscribes. That information is always transferred via UDP and therefore always visible by all other eCAL nodes in the network. So the eCAL Monitor will be able to tell you information about all topics, even if they are not published on your current host. If you open the inspection window of eCAL Mon however, to inspect the data content, eCAL will obviously start transferring the data of that remote topic over network, as well. |
Beta Was this translation helpful? Give feedback.
Hi @freol35241,
This is the perfect scenario for eCAL. eCAL scales very when all you nodes (i.e. eCAL Programs) run
the term "good" is flexible, as it depends on the actual throughput you want to achieve.
I understand this as a setup, where you connect multiple clusters (those machines are connected via an ethernet switch) over internet. This ove…