两种常见的Web Services存取網路資源方式比较

資料導向模式

圖 12
圖 12 資料導向模式

參考圖 12 資料導向模式,一般而言使用這種方式的系統多是過去的多層式架構 (N-Tier),主要分為客戶層,商業邏輯層,資料存取層,和後端資料庫。透過這種架構,客戶端的 Smart Client 可以直接使用資料存取元件取得後端資料庫的資料,由於這類架構發展已久,且各軟體廠商都有提供許多完整的解決方案,如 SQL Server 所提供的資料複製等功能,因此多數系統會選擇使用這種方式開發存取資料庫的程式。

資料導向模式雖然清楚的將系統中的元件,按照其功能切割為不同的層次,然而這種架構存在著一些缺陷:

  • 部署客戶端的程式是和伺服器端緊密耦合的,而這種情況極常發生於 Mobile Device 等小型裝置上。舉例而言,開發需要存取資料庫程式的 Mobile 軟體,通常會將存取資料庫部分的程式碼獨立寫為元件。即使如此,軟體本身的介面和資料庫部分的程式碼仍然依附在 Mobile Device 本身,而一旦程式有所變更,所有的程式就必須重新部署到相關的 Mobile Device。試想公司若有一百台 Pocket PC,需要花多少時間重新部署?
  • 由於存在於客戶端的程式碼和後端資料庫的資料表定義關係密不可分,因此不論是資料表的結構定義、商 業邏輯、資料庫存取方式的變更都會非常的困難。一旦這些關於資料表的定義有所變更,客戶端的程式不管是在合併、更新、刪除資料的方法都必須要重新撰寫,並 將更新過後的程式重新部署至客戶端。


服務導向模式

圖 13
圖 13 服務導向模式

參考圖 13 服務導向模式,客戶端最主要是使用 Web Services 和後端伺服器系統溝通,期間主要是透過 XML 格式的 SOAP 訊息達成資料的交換。通常在這種架構中客戶端會在本機中保有軟體的快取資料和狀態,一旦需要的時候,便會對 Web Services 發出存取資料庫的要求,而有關於資料的所有異動全部都是交由 Web Services 代為處理。

使用服務導向模式的好處,一旦資料庫的資料表定義、商業邏輯、存取資料庫的程式有所變更時,也只需變更 Web Services 實際的撰寫內容,而無須變更客戶端的程式,此外由於採用 Web Services和Service Oriented Architecture(SOA),因此整體架構是屬於鬆散耦合的,只要確保客戶端和伺服器端彼此的服務介面沒有變更,便可以在需要的時候修改伺服器端 存取資料庫的程式碼,而不致影響到客戶端的部署及軟體功能。

在使用服務導向模式需注意幾點情況:

  • 資料異動同步處理 – 通常在 Smart Client 都會存有本機的快取資料,當客戶端在連線狀況要求伺服器端更新回傳資料時,可能會遇到本機快取資料和遠端資料庫不同步的問題,因此在設計服務導向架構的資料庫存取服務元件時,需要特別處理這種情形的發生。
  • 非同步呼叫資料 – 由於 Smart Client 是透過網路呼叫 Web Services 要求資料,因此客戶端在等候資料處理完畢前通常是無法進行任何其他動作的,針對這個問題可以使用非同步存取資料模式的方法來處理,以便客戶端在等候 Web Services 回傳資料的期間,還可以進行其他的操作。由於非同步存取資料模式需要使用比較複雜的設計方法,往後會特別針對此一主題進行說明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值