2014-09-27 3 views
2

Я использую Staff Library, построенный на вершине библиотеки Apache Axis2c, чтобы реализовать сервис, который я намерен считать безстоящим.Почему в библиотеке веб-сервисов «WSF Staff» явно упоминаются сервисы «с сохранением состояния»?

Как я понимаю, независимо от того, является ли служба государственной или нет (т. Е. «whether the interaction of client and server involves the server keeping track of the interaction-specific data as each subsequent interaction may depend upon the outcome of the previous interaction» или нет), это будет зависеть от реализации архитектуры службы.

Как я понимаю, для меня вполне возможно использовать Персонал для создания службы без состояния. Почему же тогда страница 'features' явно упоминает о «реализации веб-сервисов с сохранением состояния»? Имеет ли смысл использовать библиотеку Staff для этого?

ответ

1

Возможно, это не по-настоящему с точки зрения состояния.

Идея, почему это называется «stateful»: сервер хранит экземпляры службы за сеанс. Ваша служба может хранить локальные данные как свойства класса, и при работе в сеансе у вас будут одни и те же данные.

При входе в систему и использовании sessionId, предоставляемой службой Login, сервер создаст (лениво) служебные экземпляры, связанные с этим sessionId. Таким образом, для двух разных сеансов у вас будет два экземпляра службы с разными значениями свойств. Это может быть очень полезно, если вы работаете с некоторыми крупными объектами, которые не могут быть инициализированы и уничтожены при каждом вызове, например, в геодезических информационных системах.

Равенства веб-службы без учета состояния обычно создают экземпляры службы на клиентский вызов, и ничто не может храниться локально, в исключении вы используете какой-либо глобальный механизм, такой как разделяемая память или СУБД, и передаете некоторый идентификатор, чтобы отличать одного клиента к другому.

+0

Да, я много думал по тем же линиям. Я только обнаружил, что сегодня могу добавить постоянные переменные-члены в объект службы, когда один из моих коллег указал мне на это. Поэтому, как я и предполагал, до тех пор, пока я не использую эти постоянные переменные-члены для хранения какой-либо информации, моя реализация сервиса будет неактивной. Спасибо, что нашли время ответить. – balajeerc