Встроенные системы: сокеты против MSMQ
-
26-09-2019 - |
Вопрос
Я разрабатываю несколько приложений для встроенных устройств; Они должны быть совместимы как с Windows CE 5.0, так и XP, встроенным с использованием C # 2.0. Приложения должны обмениваться небольшими сообщениями, которые обычно представляют собой события. Я реализовал первый прототип с использованием розетки TCP и отдельный сервер, действующий в качестве диспетчера (с пабом / субъектом). Работает, но мне интересно, если использование MSMQ будет лучшее решение. Упорные сообщения помогут мне в нескольких сценариях, но вообще все события должны быть немедленно потреблены целевыми приложениями. Я хотел бы знать плюсы и минусы для обоих решений, так и некоторые рекомендации, которые помогут мне с решением.
Спасибо
Решение
Ну, очередь сообщений отлично подходит для его гарантированной доставки по адресу транзакционной очереди. Что помогает сделать вашу систему устойчиво к сбоям и неожиданным перезагрузкам. Но это, как правило, обычно работают только хорошо, когда вы можете перезагрузить приложение от такого минимала и иметь возможность восстановить состояние, прежде чем снова начать получать сообщения.
Это нетривиальное требование. Если вы не можете встретиться с ним, какие-либо государственные сообщения, как правило, снимают машину снова. В сообщениях почти всегда явное состояние, даже если их контент не является штатом, просто по приказу, в котором они принимаются и мутируют состояние вашего программного обеспечения. Это было проклятие промежуточного программного обеспечения, программного обеспечения, которое предполагает, что сеть - это деталь реализации, которые могут быть абстрагированы, не работает хорошо на практике.
я думал Этот ответ При этом особенно хорошо высказал эту проблему.
Другие советы
Я был бы склонен к абстрагированию интерфейса и реализовывать их как на основе интерфейса, так и принять решение о настройке элемента. Пусть пользователи выбирают протокол на основе их потенциально меняющихся потребностей.