WCF подходит для всех случаев? - PullRequest
1 голос
/ 25 апреля 2009

Я создаю приложение, которое будет распределять его обработку по ферме. В моем базовом дизайне у меня есть две услуги:

«Контроллер», который следит за новой работой, ставит ее в очередь и управляет результатами.

«Рабочий», который привязывается к определенному контроллеру. Рабочий проверит работу со своего контроллера и отправит результаты обратно.

В кратком изложении, которое я видел в WCF, похоже, подразумевается SOA для передачи сообщений в стиле MEST. Этот механизм, кажется, не сочетается с типами общения и координации, которые я буду делать.

Я запутался в том, что такое WCF? Есть ли еще место в этом мире для удаленного взаимодействия .NET? Или я думаю о проблеме в юрском, до WCF мышлении.

Edit:
Оставил некоторые детали. Дело в том, что мне нужно вовремя работать. Если рабочий элемент проверяется слишком долго, я могу ошибиться. Все примеры, которые я видел, занимают позицию «отправь и забудь» по отношению к исходящим сообщениям. Мне нужен детерминированный результат или ошибка в разумные сроки. Надеюсь, что проясняет.

1 Ответ

3 голосов
/ 25 апреля 2009

Я не рекомендую удаленное взаимодействие для большинства сценариев; он непереносим, ​​иногда немного болезнен, а BinaryFormatter хрупок (версия не переносит).

WCF довольно хорошо подходит для большинства случаев; если вы работаете на ферме, вы, вероятно, захотите работать без сеансов и т. д., но я все равно это делаю (для повышения производительности) - просто используя базовый профиль http.

Я не совсем понимаю сценарий, который вы описываете. Конечно, вы всегда можете свернуть свой собственный RPC с помощью xml / json / binary - или использовать любой из других заранее подготовленных стеков связи ... или промежуточное программное обеспечение, например MSMQ или BizTalk.


Повторное редактирование; WCF может использоваться синхронно (блокировка ответа, с (я полагаю) настраиваемым таймаутом). Вы можете делать более сложные вещи (откат и т. Д.) С распределенными транзакциями и т. Д., Но это быстро добавляет сложности. Вам нужно взвесить важность времени бездействия и т. Д.

Если период времени больше, чем вы хотели бы ожидать вызова, вы также можете рассмотреть такие вещи, как рабочий процесс - помимо WF существует целый ряд продуктов рабочих процессов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...