2.2 WCF 技术与 RESTful 架构。
WCF 技术很好地支持了 RESTful 架构服务的开发,首先通过数据契约(DataContract)标记创建一个类来定义服务返回的对象结构。然后通过服务契约(ServiceContract)标记创建一个表示服务契约的接口,其中通过 WebGetAttribute 属性定义获取数据的 GET 方法,UriTemplate 定义调用 RESTful 服务的调用方式 URI,并且可以通过占位符实现路径中的动态部分与参数之间的映射,通过 WebMessageFormat 属性(Xml/Json)定义消息传递的格式。最后通过在 svc 的标记中加上 Factory = “System. ServiceModel. Activation.WebServiceHostFactory” 属性将该 RESTful 发布到寄宿程序中。
2.3 数据服务。
基于 WCF 技术开发并对外发布基于 RESTful架构的台风路径,以及全市气象、水情、雨情、工情、灾情等实时数据服务。
数据服务采用简单、直观、可预测且易于理解的 URI 命名,例如 http://域名或 IP/dataservice/jsonservice.svc/gettaifenglujing/{taifengname},开发人员无需解释或者参考资料,一看便能了解此服务是用于获得台风路径资源的。
数据服务提供了 JSON 数据格式,使得服务可由运行在不同平台和设备上的采用不同语言编写的各种各样的客户端所使用,最小化与使用服务的应用程序之间的数据耦合。台风路径服务提供的台风路径数据如表 1 所示。
除了台风、水位等基础信息的数据服务之外,数据服务还提供台风相似路径计算、雨量时段统计及最大小时雨量计算等服务。台风相似路径计算服务应用 Hausdorff 距离匹配法计算出路径相似的台风,并提供 Hausdorff 距离(DMHD)和路径相似度(SAB)2 个量化指标。以 2012 年 11 号台风“海葵”为例,系统自动查找出与其路径相似的台风,192208,194906,195411,0008 杰拉华,193309,195612,0216 森拉克,相似度依次为 89.8%,89.3%,88.2%,87%,85.9%,85.7%,85.7%.
基于 WCF 技术 RESTful 架构的数据服务在不改变原有数据结构的基础上,优化了对多源异构数据的跨库表访问方式,简化了数据共享与交换的难度,提高了数据库的安全程度,实现了对原有系统的零改造;同时考虑了跨部门、行业数据共享的访问权限控制,用户须经过系统身份验证、具有访问权限才可获得相应的数据资源。
3 基于 ArcGIS Server 10.1 平台的 Restful架构地图服务构建。
3.1 ArcGIS Server 10.1 平台及部署。
本系统采用 ArcGIS Server 10.1 平台软件提供GIS 资源服务。ArcGIS Server 10.1 是基于 SOA 架构的 GIS 服务器,通过它可以以服务形式共享二三维地图、地址定位器、空间数据库和地理处理工具等 GIS 资源,并允许多种客户端(如 Web 端、移动端、桌面端等)使用这些资源创建 GIS 应用[6].
ArcGIS Server 10.1 架构模型的逻辑关系简单概括为以站点(Site)为架构单位,集群(Cluster)为GIS 服务的逻辑单位,GIS 服务器(Server)为实际处理单位。
ArcGIS Server 站点的用途是接收对服务的请求、执行请求,然后将结果发回到需要这些服务的客户端应用程序。以下组件构成了 ArcGIS Server站点:
1)GIS 服务器。GIS 服务器用于执行对 Web 服务的请求,可绘制地图、运行工具、查询数据,以及执行能够通过服务执行的任何其他操作。GIS 服务器可由 1 台或多台一起工作的计算机构成。这些计算机都具有访问相同数据和配置信息的权限,因此,整个 ArcGIS Server 10.1 平台是个具有弹性的、可伸缩的平台。GIS 服务器通过 Web 协议 HTTP 公开服务。安装 GIS 服务器后,即会获得 1 组可以在应用程序中使用的 Web 服务。GIS 服务器可按组组织成集群。按照服务器管理员的配置,每个集群都运行 1 个专门的服务子集。例如,可以创建一个集群运行所有地图服务,然后创建服务器的另一个集群运行地理处理服务。
2)Web 适配器。负责将 ArcGIS Server 站点与IIS,WebSphere,WebLogic 等 Web 服务器相集成,通过 Web 服务器地址及普通 URL 接收 GIS 服务请求,并将这些请求发送到站点上的各个 GIS 服务器计算机。
本系统在 VMWare 虚拟化平台上分 3 个部分安装部署 ArcGIS Server 10.1 平台。底层为数据服务器,包含 1 台部署了 MSSQLServer 和 ArcSDE 的地理数据库服务器及 1 台通过网络共享文件夹提供雷达及卫星云图数据的服务器,对核心层统一提供地理数据。核心层为在 6 台服务器中安装 ArcGISServer 作为 GIS 服务器,并将这 6 台 GIS 服务器组织成 1 个 ArcGIS Server 站点统一管理,并根据业务需求创建 2 个计算集群(Cluster)分别处理已有缓存的瓦片和动态地图服务;同时将 SDE 地理数据库服务器及雷达、卫星云图共享文件夹成功注册。顶层洪敏慎等:基于 RESTful 架构的台风路径发布系统研究为在对外提供服务的 3 台 Web 服务器的 IIS 中安装部署 Web 适配器并注册 ArcGIS Server 站点,对外统一提供基于 RESTful 架构的地理服务。