(отредактировано после комментариев Василия, перед началом поста :))
Я ожидаю, что вы имеете в виду OPC-UA, так как OPC заменяются единой реализацией архитектуры. Немного перекрестный, OPC - это немного больше, чем Windows COM/DCOM, UA - полная переделка как SOA.
Спецификация функциональной совместимости DDS требует UDP/IP и многоадресной рассылки для анонимного обнаружения, а не TCP/IP. Можно использовать TCP, но пока нет спецификации, позволяющей различным производителям реализовать ее, но они хотят. Предположим, что транспорт TCP/IP одного поставщика не будет работать с транспортом TCP/IP другого поставщика (также применяется к транспортным средствам общей памяти и т. Д. Они не совместимы).
OPC-UA использует спокойную связь по HTTP-подобным протоколам. TCP не является детерминированным, поэтому вы не можете гарантировать постоянную осведомленность о том, что происходит. UDP - лучшее усилие (RTPS2, протокол, который использует DDS, включает методы для обеспечения надежного трафика по UDP, то есть надежность обеспечивается на более высоком уровне протокола), но по крайней мере ваши приложения знают, что данные имеют/не пришли вовремя и могут соответственно реагировать.
OPC-UA по умолчанию клиент/сервер (но может быть настроен как одноранговый, если вы хотите накладные расходы на реализацию сервера во встроенной системе). DDS является анонимным одноранговым (но настраивая его как клиент-сервер так же просто, как только реализация одного абонента для данной темы).
OPC-UA предназначен для промышленного управления (SCADA). DDS подходит практически для любого соединения «машина-машина», где «машина» определяется как некоторый бит аппаратного обеспечения, запускает какой-то код, который имеет доступ к стеку UDP/IP и достаточное ОЗУ для поддержки объема данных/сорта/скорости/изменчивости/поставщика/v ... требований устройства.
Оба полностью отсоединены друг от друга и являются независимыми от платформы (аппаратное обеспечение, ОС, язык и т. Д.), Но достигают этого по-другому.DDS продвигает данные на полностью квалифицированный эксперт системы: издатель публикует «данные». Абонент подписывается на «данные». Это -не- "издатель беседует с подписчиком".
OPC-UA использует внутренний протокол (opc-tpc: // или https: //) и RESTful. Трудно ввернуть это.
И OPC (фундамент), и OMG (корпус открытых стандартов) для обеспечения совместимости между реализациями.
QoS: QoS в DDS - поле для себя. Вы будете впечатлены. Вы будете удивлены. Вы будете потрясены и запутаны и будете разочарованы, когда два коллеги, на одной и той же теме, используя то же самое определение типа в той же подсети, все равно не будут разговаривать друг с другом. Тогда вы скажете: «О. duh ", измените одну настройку в файле QoS, и все снова станет сладостью и светом.
Поскольку OPC-UA нацелен на конкретный прецедент, нет необходимости в каком-либо QoS, кроме того, что требуется конкретному случаю использования. DDS гораздо более способна/намного лучше осведомлена о QoS, поскольку она не ограничивается одним вариантом использования.
A Тема - это экземпляр и пример, ориентированный (зависит от того, являются ли они ключевыми экземплярами). «Документ» подразумевает тяжеловесную вещь, экземпляр - это просто экземпляр и не подразумевает, сколько или как мало данных. –
Я бы повернул комментарий «Выберите * От» на голове. DDS предоставляет предложение Where для фильтрации на стороне издателя (и масштаб зависит от реализации поставщика. RTI имеет облачный PoC, который показывает 10^7 отдельных точек присутствия и разреженный доступ ...), но Select * From приходит в коде приложения (или с использованием экземпляров с ключами). –