Данные передаются как параметр или как результат - PullRequest
0 голосов
/ 22 марта 2011

Я хочу, чтобы данные передавались из точки A в точку B. У меня есть веб-службы в A и B. Какой дизайн лучше?

  1. A.GetData (): размещено в A, возвращает данные, будет вызвано из B
  2. B.TakeData (данные pData): размещено в B, данные, переданные в качестве параметра, будут вызываться из A

Почему подход 1 или 2 - лучший способ?

1 Ответ

1 голос
/ 22 марта 2011

Вы хотели бы реализовать Pull GetData() или Push TakeData() на основе того, как будет выглядеть проблема / решение в реальной бизнес-проблеме. Очень грубый пример - while implementing a fire alarm. Я бы заставил его толкнуть эту информацию всем людям в здании, даже если они не ожидают (polling), что здесь TakeData() более подходит. Если я хочу внедрить GetEmployeeSalary, мне редко нужно передавать эту информацию всем подписчикам, поскольку это конфиденциальная / конфиденциальная информация, которую я хотел бы предоставить людям, которые ее запрашивают, также после проверки, что им разрешено сделать это здесь GetData() имеет больше смысла.

Я не знаю, какую технологию вы используете, но должны быть механизмы для реализации модели push или pull (по крайней мере, WCF имеет эти WS-Eventing ).

При нажатии - В идеале, когда существует реальный мир, необходимо обновить несколько систем / клиентов с помощью обновления. Представьте себе биржевую веб-службу, и каждый клиент интересуется разными цитатами. Возможно, имеет смысл отправлять push-уведомления платным клиентам о каждом изменении, касающемся тикера, который интересует каждого клиента, и в то же время разрешает извлекать данные типа GetData() с отложенными данными для бесплатных клиентов.

  • Используйте push, когда вы видите опрос (опрос - это потеря ресурсов)
  • Предпочитать push при наличии требований распределенной обработки событий в веб-сервисах.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...