服務層框架設計(二) 服務請求示例

2021-09-05 20:34:20 字數 1173 閱讀 8803

作為表現層(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...