Я должен реализовать некоторый механизм формы общения в своем приложении, для отправки уведомлений/сообщений от одного экземпляра приложения до всего другие. Это - нормальный сценарий, где кто-то добавляет и объект или удаляет и объект, и Вы хотите уведомить других пользователей, что это произошло.
Выполнение приложения на клиенте и подключениях к базе данных по локальной сети. Так не как все клиенты получают доступ к экземпляру сервера приложения. Таким образом от того, что я знаю, что мог использовать MessageQueues или некоторую форму опроса Базы данных, где у меня есть таблица, которая хранит все сообщения (не идеальный).
Проблема, я должен реализовать это очень быстро, так печально не могу пойти очень сложный, но нуждаться в самом быстром самом легком решении.
спасибо за справку!
Похоже, вам будет проще использовать оптимистичный параллелизм. Предположим, что что-то не будет удалено, и разобраться с этим на затронутом клиенте, когда это произойдет, что должно быть проще, чем разработка какой-то системы одновременных уведомлений, которая вообще не будет масштабироваться ...
Кроме того, если вы являетесь клиентом list небольшой, опрос db - это самый простой способ сделать это, не добавляя еще один уровень связи в вашу систему, просто добавьте таблицу и реализуйте библиотеку классов, чтобы каждый мог делать свое дело, если вы можете получить доступ к БД, к которой вы можете узнать об удаленных элементах и т. д.
Очереди Rhino должны помочь. Это сверхлегкая очередь, которая не требует MSMQ и может быть развернута XCOPY
http://ayende.com/Blog/archive/2009/04/03/rhino-queues-take-6.aspx
В зависимости от топологии вашей сети естественным выбором будет либо широковещательная (та же подсеть), либо многоадресная рассылка по нескольким подсетям, когда добавляется что-то новое.
Трансляции довольно просто запрограммировать, но вы сначала необходимо проверить, разрешены ли они в вашей сети.
Возможно, вы захотите проверить мое сообщение в блоге здесь , в котором обсуждается возможная реализация агрегатора межпроцессных событий.
Я думаю, что опрос БД будет самым быстрым способом. Что-то очень простое, например, когда в таблице происходит модификация, сохраните время, когда это произошло, в другой таблице, используя триггер - это один из способов сделать это.
Ваши клиенты запрашивают эту таблицу и сравнивают с локально хранящимся временем изменения, если время в базе данных новее, то обновляют.
Все, что больше этого, стало бы сложным, особенно с вашим требованием "пары секунд".
Вы можете реализовать все это таким образом, чтобы позже, если потребуется, заменить на более тяжелый метод.
Я считаю, что вы можете сделать это с помощью WCF. Он имеет привязку для одноранговой связи.