Silverlight API的多來源資料訪問研究

來源:互聯網
上載者:User

1  概述
    一個只能訪問空間資料的Web GIS系統,不是一個好系統。只有與業務完美結合,才能最大化地實現GIS的價值。因此,在構建一個Web GIS系統的時候,首先需要考慮的就是如何訪問業務資料。
業務資料通常儲存在關聯式資料庫中,但是由於安全沙箱的限制,Silverlight 用戶端不能直接存取資料庫,因此需要藉助一些技術手段來實現這個目標。
本文將探討在基於ArcGIS Silverlight API構建Web GIS應用系統的時候,如何?對業務資料的訪問,包括常規的訪問方式,以及ArcGIS使用者所擁有的特殊優勢。

2  常規的關聯式資料庫訪問
    在Silverlight中,要實現對關聯式資料庫的訪問,主要是通過服務的方式,包括Web Service和WCF服務等,結合ADO.NET實體資料模型和LINQ to SQL等技術,以下是對這些技術路線的簡要說明。

2.1 Web Services
原理:在伺服器端(ASP.NET網站)通過 ADO.NET 編碼實現資料的增刪查改操作,將方法封裝為 Web Service 發布;Silverlight 用戶端添加 Web Service 引用,在代碼中調用服務方法完成資料訪問操作。
優點:靈活、資料庫相容性好。
缺點:代碼量較大,開發效率低、安全性一般。

2.2 WCF Data Services
原理:在伺服器端(ASP.NET網站)通過 ADO.NET  Entity Data Model,將 OData (開放式資料協議)資料封裝為實體模型(自動產生增刪查改方法),然後發布 WCF 服務;Silverlight 用戶端添加 WCF Data Services引用(自動產生實體模型代碼),在代碼中非同步呼叫方法完成資料訪問操作。
在 Silverlight 3 稱為 ADO.NET Data Service。
優點:代碼量較小,開發效率高、安全性高。
缺點:資料庫相容性一般(預設只能訪問SQL Server和Access,訪問Oracle、DB2等資料庫需要安裝第三方外掛程式)、擴充性一般。

2.3 Silverlight-enabled WCF Service
原理:在伺服器端(ASP.NET網站)通過 LINQ to SQL ,將資料封裝為實體模型(增刪查改方法需手動編碼),然後通過 Silverlight — enabled WCF Service 發布服務;Silverlight 用戶端添加 WCF 服務引用,在代碼中非同步呼叫方法完成資料訪問操作。
優點:安全性高、擴充性好。
缺點:代碼量較大,開發效率底、資料庫相容性差(只能訪問SQL Server和Access,即使安裝了第三方外掛程式,也不支援)。

2.4 WCF RIA Services
原理:在伺服器端(ASP.NET網站)通過 ADO.NET  Entity Data Model,將資料封裝為實體模型(自動產生增刪查改方法),然後通過 Domain Service 發布服務;Silverlight 用戶端添加 Domain Service 引用(自動在用戶端產生實體類代碼—實體模型鏡像),在代碼中同步調用實體類的方法完成資料訪問操作。
優點:代碼量很小,開發效率很高、安全性高、擴充性好。
缺點:資料庫相容性一般(預設只能訪問SQL Server和Access,訪問Oracle、DB2等資料庫需要安裝第三方外掛程式)。

2.5 小結
是對這幾種資料庫訪問方式的一個概括:

3  ArcGIS 使用者的特殊優勢
    如果您是ArcGIS使用者,那麼除了上述幾種常規的資料庫訪問方式之外,您還可以通過獨立表格和關聯查詢,以物件導向的方式訪問業務資料,大大降低開發難度。

3.1 獨立表格
    在ArcGIS Server 10.0中,可以將資料庫中的獨立表格添加到地圖文檔中,隨圖層一同發布為地圖服務。ArcGIS Server REST介面支援對獨立表格的訪問,就和訪問圖層一樣。同時在ArcGIS Silverlight API中,可以通過將QueryTask的URL指向獨立表格,從而實現對獨立表格中的業務資料的查詢訪問。
注意:一個地圖文檔中,可以添加多個獨立表格,這些獨立表格可以同時來自SQL Server、Oracle等不同的資料庫中。獨立表格不需要註冊到Geodatabase中。添加獨立表格的操作和添加圖層類似,只不過需要通過OLEDB資料庫連接選擇表。

3.2 關聯查詢
    除了獨立表格,ArcGIS中還有一種方式可以訪問到業務資料,即ArcGIS Server 10.0中新增的關聯查詢。進行關聯查詢的業務表,需要註冊到Geodatabase中,然後在ArcMap中與圖層建立關聯關係(Join或Relate),然後將地圖文檔發布為地圖服務,最後在ArcGIS Silverlight API中,通過QueryTask的關聯查詢方法,即可訪問到與地理實體相關聯的業務表中的資料。

3.3 小結
是對ArcGIS使用者在資料訪問方面特殊優勢的概括:

4  結論
    在構建Web GIS系統的時候,業務資料的重要性毋庸置疑,Silverlight中提供了多種基於服務的資料庫訪問方式,而對於ArcGIS使用者來說,除了這些常規方式以外,還能通過獨立表格與關聯查詢的方式訪問業務資料。
    在基於ArcGIS Silverlight API構建應用系統時,可以對多種來源的業務資料進行訪問,並將其整合在一個地圖服務中,大大方便了不同資料的管理和訪問,並且降低了開發難度,提高了開發效率,這是ArcGIS使用者能夠享受到的一大優勢。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.