为什么'WSF Staff'Web服务库明确提到“有状态”服务?

时间:2014-09-27 07:49:37

标签: web-services axis2c staff-wsf

我正在使用构建在Apache Axis2c库之上的Staff Library来实现一项服务,我打算将其置于无状态。

据我了解,服务是否有状态(即" 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"或不是)将取决于服务架构的实施。

据我了解,我完全可以使用Staff来创建无状态服务。为什么'features'工作人员页面明确提到"有状态的Web服务实现"?工作人员库是否有意义呢?

1 个答案:

答案 0 :(得分:1)

也许这不是真正有状态的。

为什么它被称为“有状态”的想法是:服务器存储每个会话的服务实例。您的服务可以将本地数据存储为类属性,当您在会话中工作时,您将拥有相同的数据。

当您登录并使用sessionId服务提供的Login时,服务器将创建(懒惰)绑定到此sessionId的服务实例。因此,对于两个不同的会话,您将拥有两个具有不同属性值的服务实例。如果您处理一些在每次调用时无法初始化和销毁​​的大型对象(例如测地信息系统),这可能非常有用。

无状态Web服务框架通常会为每个客户端调用创建服务实例,并且不会在本地存储任何内容,例外情况是您使用某些全局机制(如共享内存或DBMS)并传递一些ID来区分一个客户端与另一个客户端。