Silverlight API的多源数据访问研究

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 数据服务引用(自动生成实体模型代码),在代码中异步调用方法完成数据访问操作。
在 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用户能够享受到的一大优势。

你可能感兴趣的:(silver,light)