WCF сервис и связь с устройствами - PullRequest
1 голос
/ 03 июня 2009

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

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

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

1 Ответ

1 голос
/ 03 июня 2009

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

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

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

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

...