Один из подходов к интеграции вашего существующего приложения с системой на основе DDS состоит в том, чтобы ввести приложение, которое получает данные, поступающие из вашего существующего приложения, и впоследствии пересылает их в домен DDS после преобразования в ожидаемый формат. Служба маршрутизации RTI была разработана для этого стандартным способом c, но вы также можете использовать свою собственную программу C#, чтобы сделать то же самое.
При использовании службы маршрутизации (RS) все необходимые настройки например, Topi c и имена типов, а также параметры QoS могут быть выбраны с помощью файла конфигурации. Сложной частью является получение данных из вашего исходного приложения, потому что это c специфично для вашей ситуации, тогда как RS - это общий c компонент. Служба маршрутизации позволяет вставлять собственный так называемый адаптер, который, по сути, представляет собой загружаемый плагин, отвечающий за считывание данных из существующего приложения - вы должны написать его самостоятельно. Кроме того, преобразование этих данных можно настроить с помощью так называемого процессора, который также представляет собой часть программного обеспечения, которое вы должны написать самостоятельно.
В вашем случае на данном этапе кажется более подходящим расширить свой C# приложение, которое считывает данные с помощью метода клиент-сервер classi c и передает данные в домен DDS. Для этого вам нужно будет определить DDS DataType в IDL (если вы еще этого не сделали) и позволить генератору кода RTI генерировать связанные типы данных C# и строго типизированные классы C# DataWriter для публикации данных. Ваше приложение должно будет прослушивать данные, поступающие из вашего существующего (серверного) приложения, читать их, когда они поступают, форматировать их в соответствии с типами данных C#, созданными генератором кода DDS, а затем пересылать их на ваш DDS DataWriter. Последний вы можете настроить с помощью Topi c и имени типа, а также настроек QoS в соответствии с вашими потребностями, используя обычные механизмы DDS.
После того, как данные перенаправляются в домен DDS вашим расширенным приложением C#, другие приложения могут подписаться на эти данные напрямую. Действительно, это вопрос выбора правильного Topi c и установки правильных политик QoS. Судя по описанию проблемы, вам не кажется, что вам нужна служба маршрутизации.
Типичные примеры применения служб маршрутизации:
- Когда вы строите системы систем, Службы маршрутизации могут прозрачно пересылать данные DDS между ними - примерно так, как IP-маршрутизатор делает для IP-трафика c. Примерами являются многоуровневые архитектуры шины данных и системы, которые включают в себя различные подсети или географически рассредоточенные домены DDS, которые необходимо соединить.
- Если вы хотите импортировать или экспортировать информацию в домен DDS или из него из или в другие типы "данных" домены », служба маршрутизации предоставляет для этого общую структуру c. Это часто требует настройки плагинов для выполнения необходимых преобразований данных, как в вашем случае. Другими примерами, поддерживаемыми «из коробки», являются интеграция с реляционными базами данных для записи временных рядов или для фиксации текущего состояния домена DDS.