作為表現層(presentation)要請求服務的話,只需要有以下幾種請求方式就可以了。
下面以登入為例:
1. 直接請求
request request
=new
request("users","login");
request[「userid」]
=this
.txtuser.text.trim();
request[「userpwd」]
=this
.txtpwd.text.trim();
response response
=request.getresponse();
if(response.iserror)
else
else}
這種請求的好處在於簡潔,但壞處在於"userid","userpwd"畢竟是字串,不利於編譯器檢查。另外在(bool)response["islogin"]型別轉換時會讓人膽顫心驚。另外有乙個不好不壞的地方在於它雖如此,但引數型別,數量都因xml自動檢測。所以你不能隨便請求,必須遵循規則。這個規則在上一章節的xml裡體現出來了。
2. 封裝請求
loginrequest request
=new
loginrequest();
request.userid
=this
.txtuser.text.trim();
request.userpwd
=this
.txtpwd.text.trim();
if(request.iserror)
else
else}
這種方式優點是所有型別都是強資料型別,對於編譯器來說比較安全。但它需要額外一層來構造loginrequest, loginresponse兩個類,當然這兩個類都分別繼承於request. response。只是這個時候業務規則的xml顯得有點多餘,雖然也能進行引數型別和數量檢測,但畢竟已經是強資料型別了。
3. 通過web services請求
直接將request, response或loginrequest, loginresponse序列化放在web服務上進行操作。**幾乎同上,只是變成了引用服務而已。
其實這是最好的一種方式,也是最標準的一種方式。目前希望能在今後研究分布式wcf服務上能夠應用。
出處:
分布式服務框架設計指標
特性名 功能名說明 服務訂閱發布 配置化發布和引用服務 支援通過xml配置的方式發布和匯入服務 服務自動發現機制 支援服務實時自動發現,由註冊中心推送服務提供者位址,消費者不需要配置服務提供者位址,位址透明化 支援執行態註冊和取消服務 服務路由 預設提供隨機路由 輪詢 基於權重的策略等 粘滯連線 總...
Linux伺服器框架設計思路
多程序 程序池 主程序偵聽socket,將客戶端socket分配給子程序去處理。這樣程式設計簡單,可能需要用到程序間的通訊,但程序開銷很大,併發量非常小。多執行緒 執行緒池 主線程偵聽socket,將客戶端socket分配給每乙個執行緒去處理。這樣程式設計較簡單,但執行緒的建立和切換同樣開銷較大,併...
分布式框架設計中的服務降級
另外一些場景就是某些服務不可用時,又不能直接讓整個流程失敗就本地mcok 模擬 實現,做流程放通 eg 使用者登入餘額鑑權服務不能正常工作,需要做業務放通,記錄消費話單允許使用者繼續訪問,而不是返回失敗 為了保證以上兩種場景的正常服務,服務需要有降級 服務降級主要包括容錯降級和遮蔽降級 遮蔽降級 1...