Шаблоны проектирования для идентификаторов сеансов (отслеживания) в системах на основе услуг? - PullRequest
2 голосов
/ 03 июня 2011

У нас есть сервисная система.Система является многоуровневой или многоуровневой, поэтому один вызов службы от внешнего объекта может повлиять на одну, две или три другие службы в зависимости от типа вызова и состояния системы.

Что мы хотим сделатьдля отслеживания прохождения данного вызова через эти разные службы.

В идеале, когда поступает внешний вызов, генерируется номер отслеживания, и это следует за всеми последующими вызовами в нашей системе.

Существуют ли какие-либо конкретные шаблоны проектирования или функции WCF (реализации шаблона), которые мы можем использовать для отслеживания этого прогресса?

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

Эта страница также может иметь некоторое отношение.

Мы особенно заинтересованыв реализации C # / WCF, но ссылки на любые соответствующие ресурсы интересны (Java / PHP / что угодно).

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Я бы использовал аспектно-ориентированное программирование, чтобы справиться с этим.Я считаю, что правильная часть - это поведение службы.

Это позволит вам создать атрибут, который вы прикрепите к своим методам обслуживания (или службе).Это имеет BeforeAction / AfterAction / OnError.

Для службы точки входа я бы предложил создать ваш личный sessionid, вставить его в контекст WCF и затем использовать методы Before, After и Error для публикации данныхк вашему хранилищу данных или как вы планируете определить прогресс.

0 голосов
/ 28 июля 2011

Ответ Криса хороший, но мы нашли эту информацию от Microsoft очень, очень полезной - и она встроена в поддержку IIS / WCF.на скриншоте ниже действительно помогли.

enter image description here

...