地理信息服务聚合是为了解决 GIS 空间数据、GIS 功能互操作从而带来业务敏捷能力的技术,它并不是简单将一些空间服务、空间数据进行叠加显示,通过聚合希望实现空间数据、GIS 功能优化整合,更希望聚合后的结果也具有同样的业务敏捷,方便当下甚至未来需求变更的重组或重用。因此,实现地理信息服务聚合需要一些规范来约束,主要包括聚合遵循标准化、规范化,聚合的输入、输出端,聚合过程可描述。
1 相关服务标准
各种标准规范的制定是为了让不同个体之间能够流畅的互操作、资源共享。服务聚合会涉及到不同来源的地理信息服务,因此,无论服务提供者还是服务聚合者遵循公开的空间数据服务标准、通用服务标准和通用服务集成标准是实现地理信息信息服务互操作的基本保障。
1.1 空间数据服务标准
空间数据服务标准是对地理信息服务聚合的服务提供者和聚合后的服务进行约束的条件,这样,服务提供者和聚合后的服务需要遵循某一空间数据服务标准发布其空间信息和 GIS 功能服务。空间数据服务标准主要包括通过国际标准化组织(ISO/TC211)或技术联盟(如 OGC)制定空间数据互操作的接口规范、GeoRSS 规范、一些软件商公开的服务接口规范,如 GoogleMaps、Virtual Earth 等。
OGC 和 ISO/TC211共同推出的基于 Web 服务(XML)的空间数据互操作实现规范包括 Web Map Service,Web Feature Service,Web Coverage Service 以及用于空间数据传输与转换的地理信息标记语言 GML。2008年,KML 也正式成为 OGC 标准。
GeoRSS 是“地理编码对象的聚合”,GeoRSS 是 RSS 在地理信息领域的扩展。现在得到包括 Yahoo、微软和 Google 等公司的支持,可以说是一个地理对象聚合事实上的标准。
空间数据服务标准既可以做为 Web 服务的空间数据服务规范,又可以做为空间数据的互操作实现的标准。GIS 服务提供者支持这个接口,地理信息服务聚合器就可以通过这个接口得到所需要的数据。从技术实现的角度,可以将 Web 服务理解为一个应用程序,它向外界暴露出一个能通过 Web 进行调用的接口,允许被任何平台、任何系统,用任何语言编写的程序调用。这个应用程序可以用现有的各种编程语言实现。
1.2 (通用)服务标准
正是 Web 服务通用标准 WS-*,WSDL,SOAP,SCA 框架等保证了 GIS 服务甚至其他类型的 Web 服务实现跨平台、跨语言、跨硬件的互操作的特性。所以,基于通用服务标准 SOAP、WSDL、WS-*或者 SCA 框架来部署、描述、构建一个 Web 服务也是实现地理信息服务聚合的关键约束之一。例如,聚合后的地图服务通过 SOAP 协议发布。
1.3 (通用)服务集成(编排)标准
地理信息服务聚合不仅可以将多方服务进行叠加整合,还可以按照业务的需求,基于服务编排标准进行 GIS 功能的编排、实现,因此地理信息服务聚合可以支持通用的服务集成(编排)标准,如 BPEL,BPM,WS-CDL,OSGi 等。如城市违规车辆自动监控报警系统,将监控车辆查询服务,查询、分析服务,报警服务进行 ESB 编排,通过“企业服务总线”屏蔽各类服务之间的差异,解除不同服务耦合度使它们自由组合,实现车辆自动监测报警的业务流程。
2 聚合的输入、输出类型
地理信息服务聚合有输入和输出端,无论是输入还是输出端主体都是 GIS 服务, 方便构建面向 GIS 服务的敏捷应用。
聚合的服务提供者和聚合后的 GIS 服务都需要遵循服务聚合的规范约束,即聚合输入、输出的服务需为以下标准服务之一:OGC、ISO/TC211的 W*S 服务,KML 服务,GeoRSS 服务,SuperMap IS/iServer 公开的 GIS 服务接口,第三方 GIS 服务商已公开的服务接口,如 GoogleMaps、Virtual Earth。
对于聚合后的 GIS 服务需支持以下协议之一:REST 风格的 web 服务,SOAP 协议的服务,原生二进制 GIS 服务。
地理信息服务聚合的输入端和输出端是多对一的关系,即将多来源的 GIS 服务(N 个)通过聚合器和一定的业务编排,最终聚合为一个 GIS 服务对外发布。这其中包括几个方面的聚合关系:
- 空间数据的多对一:n -> 1; f(n) -> 1。将多来源的空间数据进行数据聚合,最终提供整合后的空间数据,以服务的方式发布。
- 地图的多对一:n -> 1; f(n) -> 1。将多来源的 GIS 功能进行聚合,聚合表现为地图处理的聚合过程和聚合结果-地图,并将地图进行发布。
- 聚合过程的多对一:n -> 1; f(n) -> 1。多来源的 GIS 服务需要在聚合器中进行一定流程的聚合过程,这个过程也表现为多对一的关系。如,N 个 GIS 服务进行聚合,按照业务流程的编排,将 GIS 服务1与 GIS 服务2聚合,聚合结果可以再与 GIS 服务3的数据聚合,如制作专题图等,最终经过这样多流程的聚合编排过程生成一个聚合结果。
3 聚合过程可描述
聚合过程可描述是指1)输入服务可描述; 2)该聚合服务本身可描述;3) 输出服务可描述。
这些描述信息给服务聚合提供了被聚合服务的元数据,聚合内容和过程的元数据,聚合结果即新 GIS 服务的元数据。聚合服务按照这些元数据信息实施一个完整的聚合操作,通过被聚合服务的元数据的描述,服务聚合可以主动获取被聚合服务的数据与功能;通过聚合服务本身能力的元数据描述,包括其聚合范围、使用的聚合器类型等,服务聚合可以确定它所具有的聚合的能力范围,所能够处理的服务类型,并构建适合的聚合器;服务聚合最后根据聚合结果的元数据的描述输出聚合结果,包括输出聚合后地图名称,聚合后地图范围、图层信息、地图相关信息等。