领域空间信息服务扩展

发送反馈


SuperMap iServer 将空间服务分为两类,一类是通用空间服务(Generic Spatial Service,GSS),如地图服务、空间数据服务、空间分析服务、网络分析服务等,SuperMap iServer 默认提供了这类服务;另外一类服务是领域空间信息服务(Domain Spatial Service,DSS),用户根据行业特定的业务逻辑,自行构建出的与空间信息相关的服务。

SuperMap iServer 对于服务的构建和发布提供了一套灵活的机制,无论是通用空间服务还是领域空间信息服务都可以通过 SuperMap iServer 进行灵活的配置和发布。

iServer 服务框架是一个三层结构的体系,包含服务提供者、服务组件、服务接口(参见:体系结构介绍)。领域空间信息服务扩展可以在任意层次进行:

在 iServer 中,服务提供者是 GIS 功能的来源,扩展服务提供者,可以扩宽 iServer 的 GIS 功能来源。例如:扩展一个地图服务提供者,实现读取 iServer 2008 地图缓存的功能,就可以将 iServer 2008的地图缓存在 iServer 中发布为各种服务(如:地图 REST 服务、WMS 服务等);扩展一个地图服务提供者,实现获取 GoogleMaps 地图服务的功能,就可以将 GooleMaps 的地图服务源在 iServer 中发布为各种地图服务(如:地图 RSET 服务、WMS 服务)等。

同时,可以定义新的服务提供者类型,实现特定行业领域的功能。领域服务提供者可以跟其他服务提供者一起在服务组件层被组合、封装成粒度更粗的模块,实现领域功能与 GIS 功能的结合。

参见:扩展说明

服务组件层的作用在于对服务提供者层提供的功能进行组合和封装。

现有服务组件提供的功能不能满足需求时,可以进行扩展,从而封装更多的功能,例如:对现有 GIS 服务提供者进行重新组合、封装,或对领域服务提供者和原地图服务提供者进行组合、封装。

同时,服务组件层的扩展可以与服务接口层的扩展相结合。新扩展的服务组件,通过服务接口层发布为 Web 服务(形式有在基于 JAX-RS 机制的 REST 服务接口下定制新的资源、定制全新的服务接口等)。

例如,在气象领域,在 iServer 提供的通用空间服务的基础之上,加上天气预报服务、气象警报服务等功能,就需要在服务组件层进行扩展。

参见:扩展说明

服务接口层是功能展现层,通过定制新的服务接口,可以丰富 iServer 提供的服务类型(参见:iServer 服务介绍),提供符合特定业务需要的更多类型服务。

另外,对已有的服务接口(参见:服务接口)扩展,如:JaxrsServletForJersey、RestServlet 进行扩展,定制新的 REST 资源实现,可以很好的对接领域组件(服务组件层扩展实现)的功能。

参见:扩展说明

注意:

从 SuperMap iServer 7C(2015) SP2开始,领域服务扩展开发时,注记中由支持普通 Java 类变更为必须使用接口。即:服务组件注记@Component 中用于申明服务提供者类型的 providerTypes 属性必须是一个或多个 Java 接口;服务接口注记@Interface 中用于申明组件类型的 componentTypes 属性必须是一个 Java 接口。

除此之外,基于 iServer 扩展的领域模块,可以集成到 iServer 的服务管理器(参见:领域空间服务集成到 iServer),还可以基于 iServer 的集群机制,快速搭建自己的集群(参见:搭建领域空间信息服务集群)。

领域服务扩展的其他综合示例请参考:三层结构扩展综合示例