Вопрос

У меня есть проект:устройства с собственной системой, написанной на языке C, и приложение Windows для управления (отправка конфигурации, получение записанных данных с устройств, мониторинг состояния устройства).У меня есть свобода выбора, какую технологию я буду использовать.Требования сейчас довольно размыты, поэтому должно быть что-то гибкое.Основной протокол связи — TCP.Мы можем использовать COM-порты в качестве варианта обслуживания, когда нормальная связь прерывается, например, из-за какой-либо неисправности сети.

Я рассматриваю возможность использования службы WCF в качестве «прокси» между приложением и устройствами.Приложение отправляет данные в службу, служба обрабатывает данные и отправляет TCP-пакеты на устройства (данные в пакетах понятны устройствам), устройства реагируют на отправку TCP-пакетов обратно в службу WCF, которая, в свою очередь, отправляет обработанное сообщение приложению.Имеет ли такое использование WCF какой-либо смысл?

Доступ к WCF можно легко получить из веб-приложения, поэтому, помимо обычного приложения Windows, мы могли бы сделать нашу систему более привлекательной с его помощью, но стоит ли оно того?Что думаете, поделитесь идеями, пожалуйста :)

Это было полезно?

Решение

Насколько я понимаю, вы рассматриваете архитектуру системы из трех элементов.Приложение Windows, набор устройств, а затем дополнительная служба, которая будет действовать как прокси или посредник, обеспечивая связь между ними.

Первый вопрос:есть ли причина, по которой приложение управления не может подключиться к самим устройствам?Приложение Windows, используемое для управления, должно иметь возможность открывать сокет для устройств так же легко, как и другое приложение.Почему бы и нет?Я думаю, еще один способ спросить об этом: Чем оправдано введение в архитектуру брокера, третьего элемента? Есть ли какая-то асинхронность, которую вы хотите внести?Это вопрос масштаба — возможно, количество устройств настолько велико, что вам нужно отдельное приложение для управления связью со всеми ними, а не прямое подключение из приложения с пользовательским интерфейсом.Это вопрос топологии сети?Прежде чем рассматривать, какую технологию использовать в брокере, сначала решите, что побуждает вас включить брокер в архитектуру.

Предположим, что для третьего элемента имеется хорошее обоснование, и вы можете рассмотреть вопрос о том, является ли WCF подходящей коммуникационной технологией для этого элемента.Конечно, между двумя приложениями на базе Windows WCF будет работать хорошо.Если они находятся на одной машине, вы можете использовать привязку именованных каналов и получить очень хорошую производительность для локальной связи.Если эти два приложения распространяются на разных компьютерах с Windows, вы можете использовать TCP для обеспечения очень хорошей производительности сетевого взаимодействия.

Вы также хотите рассмотреть связь между брокером и устройствами.WCF может соединяться с системами, не относящимися к WCF.Вам придется написать некоторые расширения на стороне WCF для взаимодействия с существующей системой.Но это возможно, и я бы сказал, что это почти основной вариант использования WCF.Видеть этот вопрос, чтобы узнать больше по этой теме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top