2014-09-27 16 views
2

我使用內置的Apache庫AXIS2C頂部的Staff Library實現服務,我打算是無狀態的。爲什麼'WSF Staff'Web服務庫明確提及「有狀態」服務?

據我所知,服務是否是有狀態的(即「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」或不是)取決於服務體系結構的實現。

據我瞭解,我完全可以使用員工創建無狀態服務。爲什麼頁面的工作人員明確提到「有狀態的Web服務實現」?工作人員圖書館是否有意義呢?

回答

1

也許這不是真正的有狀態。

它被稱爲「有狀態」的理念是:服務器存儲每個會話的服務實例。您的服務可以將本地數據存儲爲類屬性,並且您在會話中工作時將擁有相同的數據。

當您登錄並使用服務提供的sessionId時,服務器將創建(延遲)服務實例綁定到此sessionId。因此,對於兩個不同的會話,您將擁有兩個具有不同屬性值的服務實例。如果你不能在每次調用初始化並摧毀了一些大型對象,例如測地信息系統,這可能是非常有用的。

無狀態的Web服務框架通常會創建每個客戶端的呼叫,並沒有什麼服務實例可以在本地存儲,異常使用如共享內存或DBMS一些全球性機制,通過一些標識一個客戶區分到另一個。

+0

是的,我在想同樣的思路。我才發現,我可以在一個服務對象增加的今天持續成員變量時,我的一個同事指出來給我。所以,就像我懷疑,只要我不使用這些持久的成員變量存儲任何信息,我的服務實現將是無狀態的。感謝您花時間回答。 – balajeerc 2014-09-27 18:13:36