ArcGIS 服务对象扩展(SOE)新手自学笔记(1):初识SOE

简介:
+关注继续查看

1.SOE介绍

  在ArcGIS 10.1中ArcGIS Server不在支持DCOM方式的连接,这也就意味着我们不能通过本地方式的连接使用ArcObjects提供的更多功能,所以我们推荐一种新的方式来实现这些功能,这种方式就是SOE服务器对象扩展。SOE存在于整个服务对象的生存期内,可以利用服务对象的资源并对其进行扩展。一个SOE通常在服务对象创建是初始化,并且在整个服务对象的生存期内只会被创建一次。SOE支持SOAP和REST两种访问方式,其通过强大的AO来扩展服务对象,并可以运行在一个没有AO的客户端中。

  SOE特别适用于那些使用ArcGIS APIs无法完成的复杂业务逻辑功能。SOE可以提供粗粒度的接口,一次完成复杂的工作,而不是向服务器端发送大量的请求。目前大多数Gis公司都有管网项目,而ArcGIS APIs并没有为我们提供几何网络的有关内容,工程师们大多数通过利用AE在后台完成分析操作,然后返回json格式数据。这样每个公司可能会有一套自己的函数库用来完成以上问题,SOE的出现刚好可以用来提供统一的方法来解决这个问题,且其执行速度很快。

  SOE比较适合那些有多种平台工作经验的开发者,开发一个SOE通常会用到AO、.NET或Java、REST或SOAP Web服务通信技术。

2.重要接口

  首先我们来介绍几个必要的接口(REST方式):IServerObjectExtension、IObjectConstruct(可选)、IRESTQuestHandler

  IServerObjectExtension接口主要由两个方法:

  Init---该函数有一个IServerObjectHelper类型的参数。该函数在服务启动时被调用,并将IServerObjectHelper对象传入,此接口是对Server对象弱引用,可以通过其ServerObject属性得到Server对象。

  Shutdown---该方法用在服务器关闭时调用,经常我们在该方法中释放SOE中使用的资源。

 

  IObjectConstruct只有一个方法:Construct();该方法在Init方法执行后立即执行,该方法也只会执行一次,通常用来配置SOE属性,也可以将比较耗费资源的逻辑放在这个方法中。比如获取地图代码,或者获取一个每次请求都会被操作的图层。

 

  IRESTQuestHandler接口主要有以下两个方法:

  GetSchema() ---以JSON格式返回SOE的资源列表

  HandleRESTREquest() 方法主要有两个作用:回调资源和操作的方法、获取资源在实例级别的描述。该方法在识别这两个作用的时候是通过operationName参数,如果该参数是空字符产那就是第二个作用,否则是第一个作用。
该方法的参数如下:
(1).String capabilities:一组被资源授权的操作,可以为空字符串
(2).String resourceName: 资源名称. 空字符串表示根级别,子资源会通过‘/’ 表示
(3).String operationName: 操作名称
(4).String operationInput: 操作的参数,JSON格式
(5).String outputFormat:客户端请求的输出格式,如JSON,AMF
(6).String[] responseProperties: 通过操作返回的一组键值对,逗号分开

3.大致流程

  (1)编写代码。通常使用ESRI提供的REST SOE模板

  (2)在每台SOC机器上注册SOE COM组件

  (3)将SOE注册到ArcGISServer中

  (4)为ArcCatalog或者Manager编写并部署一个属性页(可选)

  (5)在Server中启动SOE,并测试

目录
相关文章
|
6月前
|
Kubernetes Shell 定位技术
Arcgis打包到docker,重启容器后发布的服务丢失解决方案。
Arcgis打包到docker,重启容器后发布的服务丢失解决方案。
100 0
|
SQL Oracle 网络协议
从零开始发布一个ArcGIS Server地图服务
从零开始发布一个ArcGIS Server地图服务
370 0
从零开始发布一个ArcGIS Server地图服务
openlayers加载动态ArcGIS服务
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82853801 openlaye...
1734 0
arcgis server 修改IP后服务无法启动
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bitree1/article/details/80081665 ip修改后会出现服务无法启动的现象,亲测解决方法如下: 找到Server站点的配置目录下的“arcgisserver\config-store\machines”目录。
1505 0
|
定位技术 网络架构 缓存
ArcGIS Runtime for .Net Quartz开发探秘(三):承接来自GIS服务器的服务
在上一篇博客中,我们已经在程序中添加了两个服务,一个是切片地图服务,另一个是三维场景服务。 这篇博客则会从整体上介绍几种常用服务的使用方式。 先解释两个名词:服务、图层 服务:服务器对外提供功能的单元 图层:应用程序组织要素的单元 服务和图层,表现在程序中是这样的: 其中http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer是服务,ArcGISTiledLayer是图层。
2574 0
推荐文章
更多