想象一個更復雜的CRUD應用程序,它具有三層架構並通過Web服務進行通信。客戶端開始與服務器的對話並執行一些嚮導。爲了處理嚮導,客戶需要服務器給出的反饋。有狀態與無狀態Web服務
我們開始討論這種方法的有狀態或無狀態Web服務。我做了一些研究,結合我自己的經驗,後面提到了這個問題。具有下列特性(在我們的例子)
無國籍的WebServices:
+ high scalability
+ high availability
+ high speed
+ rapid testing
- bloated contract
- implementing more logic on server-side
但是,我們可以劃掉第一個兩分,我們的應用程序並不需要高可擴展性和可用性。
所以我們來到有狀態的web服務。我讀了一堆博客和論壇帖子和執行有狀態web服務最發明的一點是:
+ simplifies contract (protocol)
- bad testing
- runs counter to the basic architecture of http
但並不幾乎所有的網絡應用程序有這些壞點? Web應用程序使用cookie,查詢字符串,會話ID以及所有內容來避免http的無狀態。
那麼爲什麼它對web服務不好呢?
非常接近愚蠢:http://stackoverflow.com/questions/988819/stateful-webservice – gregmac 2010-04-06 21:16:35
把狀態置於一個可以輕鬆處理狀態的地方:數據庫 – 2010-04-06 21:18:18