现在的位置: 首页 > 综合 > 正文

SuperMap iServer Java 6R集群研究1

2013年05月12日 ⁄ 综合 ⁄ 共 2305字 ⁄ 字号 评论关闭

 

对于SuperMap iServer Java6R的很多概念和之前版本的集群略有不同,让我理解起来颇费力气,所以把自己总结分析SuperMap iServer Java6R集群的一些思路做一下记录:

关于名词我最关注如下:

集群服务:集群服务是SuperMap iServer Java提供的一种服务,它能够获取多个GIS应用中的GIS服务,将GIS服务能力进行整合,根据集群服务中GIS服务的状态以及服务能力,为集群服务的客户端提供最佳的GIS服务。

集群服务时以Rest服务形式丢外提供集群服务能力,从监听器获取对应的GIS应用(或者下级集群服务)可用的GIS服务的服务信息。集群服务内部包含负载均衡对行啊,根据指定的算法找出负载最小的可用GIS服务为集群客户端的请求做任务均衡分配。

如果集群服务的客户端是GIS服务组件,那门集群服务会对最小负载的GIS服务构建一个远程GIS服务提供者供GIS服务组件调用。 

GIS应用:GIS应用是针对特定的业务数据提供了一系列专有的GIS服务的集合。GIS应用中包括服务提供者,GIS服务组件和服务接口三部分组成,三个部分相互组合行程一系列专有的GIS服务。服务提供者提供GIS功能的实现或者提供与第三方GIS服务的联系,业务数据在这个模块中被处理。GIS服务组件对服务提供者进行二次封装,形成适当力度的GIS服务组件,服务接口提供入口点,服务使用者可以使用该入口访问服务所提供的功能。

在集群机制中,加入集群或者从集群中卸载的最小单元是一个GIS应用,即集群支持将一个应用中所有的GIS服务加入到集群中,或者卸载出集群,但是不支持将一个GIS应用中的某一个GIS服务单独加入或者卸载出集群。 

异构服务:异构服务时指非SuperMap iServer Java提供的GIS服务。如GoogleMap提供的GIS服务等。SuperMap iServer Java的集群机制不仅可以对SuperMap iServer Java的服务提供者进行集群,还支持将异构服务加入到集群服务中,进行统一管理。

服务提供者:GIS服务的直接提供者。封装并统一了对GIS功能的不同实现,如将本地组件(如 SuperMap Objects .NET/Java)提供的 GIS 功能封装为 UGCMapProvider、UGCDataProvider,对远程服务(如 第三方 WMS 服务),Web 服务(如 REST 服务等)甚至是经过服务聚合之后的服务进行封装,得到不同类型的服务提供者。这些服务提供者屏蔽了不同服务来源的区别,实现 GIS 功能的统一。通过 GIS 服务提供者对不同 GIS 功能实体的封装和统一,SuperMap iServer 实现了对多源异构服务的无缝集成与聚合

GIS服务组件

GIS服务组件通过对服务提供者提供的服务能力进行组合,封装成粒度较粗的GIS服务组件。

在使用集群的情形下,GIS 服务组件作为集群服务的客户端通过 GIS 服务组件上下文与集群服务建立关联关系,集群服务会对最小负载的 GIS 服务构建一个远程 GIS 服务提供者供 GIS 服务组件调用。

 

概念是任何一种实现的基础,对于一个熟悉SuperMap IS.NET集群的人来说,从上面的概念中我读到几个特殊地方:

1、在集群机制中,加入集群或者从集群中卸载的最小单位是一个 GIS 应用,即集群支持将一个应用中所有的 GIS 服务加入到集群中,或者卸载出集群,但是不支持将一个 GIS 应用中的某一个 GIS 服务单独加入或者卸载出集群。也就是说此时的集群单位就是一个以应用为基础的系统了。

2、通过 GIS 服务提供者对不同 GIS 功能实体的封装和统一,SuperMap iServer 实现了对多源异构服务的无缝集成与聚合。也就是所有关于聚合和集群的具体的物理层面的概念就是服务提供者了。

3、在使用集群的情形下,GIS 服务组件作为集群服务的客户端通过 GIS 服务组件上下文与集群服务建立关联关系,集群服务会对最小负载的 GIS 服务构建一个远程 GIS 服务提供者供 GIS 服务组件调用。此处表明集群的使用者是组件,这样作为一个集群的出口:应用,则可以展示出后台所有关于GIS服务了。

 

基于上面的的介绍,下面部署一个简单的集群。下面这个简单的集群是基于一种思路:

A GIS应用有地图A,B GIS应用有地图B:如下图所示

 

image

配置方法如下:

1、打开GIS应用A的地图服务管理工具http://localhost:8090/iserver/manager/,选择集群服务。

在使用集群服务选项栏中点击启用集群服务按钮,然后勾选下面的使用本地集群服务,拷贝本地集群服务地址。

2、打开GIS应用B的地图服务管理工具http://localhost:8091/iserver/manager/,选择集群服务。

在加入集群选项栏中单击添加报告期,弹出添加报告期按钮,然后在报告地址栏中输入刚刚拷贝的本地集群服务地址,勾选报告期启用选项,单击确定,单击保存变更按钮。

3、至此集群配置完毕。打开A的集群选项下--集群成员选项,子啊节点名称下列加入的节点信息,证明集群部署成功。

 

访问:打开A的服务选项,找到服务实例列表--服务实例---点击任一服务实例,如map-World/rest,在其服务实例基本信息中找到服务地址---在浏览器中输入服务地址,如http://localhost:8091/iserver/services/map-World/rest/maps,则会列出改实例下所有地图如下图:

image 则这列列出了GIS应用A,世界地图_Day,也列出了GIS应用B的地图,长春市区图,可以通过点击后面的ajax或者silverlight来浏览地图。

抱歉!评论已关闭.