Dear Madam/Sir
I am researching a subject of decoupling hardware and software components in small and medium sized astronomical observatories (up to 2.0 m): removing single point of failures (USB, RS232), introducing new standards and increasing the reliability and availability of observatories. I am software developer and architect for Project Solaris (4 autonomous observatories on 3 continents) and a start-up company working on control software. After a long research and many discussions within the community, we ended up with three solutions on the table:
- DDS,
- OPC UA,
- EPICS.
My personal opinion can be summarized in this small table:
| DDS | OPC UA | EPICS |
learning curve | steep | steep | steep |
price for start-up | good | high | free |
feature set | large | very large | very large |
Support (community/commercial) | very good | very good | good |
market share | high | very high | low |
internet of things/future | well established | very well established | unknown |
low memory/CPU devices support | good | very good | fair |
Roadmap | clear | Clear | unknown |
The table doesn’t show the clear winner but emphasizes that the DDS and OPC UA have brighter future, higher market share and better support. However I am not very familiar with EPICS, so I am probably missing a few points. Could you point me to the sources or give me more information on the comparison DDS vs OPC UA vs EPICS? During the last SPIE conference in Montreal I finished with votes (projects working and being happy with) 3 for OPC UA, 2 for DDS, 1 for EPICS and 1 for ZeroMQ.
I would be grateful for pros and cons of each technology that you can provide (our typical astronomical observatory consist of tens of devices, some of them redundant, real time communication is not required but quick event propagation and QoS is welcomed, some devices are simple sensors, some simple actuators, there are few devices that can produce bursts of data, for example CCD camera can produce 200 MB in one second, the data doesn’t have to be propagated through the system immediately, but shouldn’t choke the communication, some kind of prioritization is welcomed).
Best regards
Piotr Sybilski