- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ArcGIS服务对象扩展SOE新手自学笔记:初识SOE.doc
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,并测试
1.REST SOE
当客户端使用REST方式发送SOE请求时,实际上是利用HTTP协议发送了一个请求字符串,ArcServer获得该字符串后会将其解析成一系列命令执行,并返回JSON数据。
返回的JSON格式数据如下:
?
2.创建REST SOE
(1)提醒
为了确保你创建的REST SOE能够成功执行,你需要仔细考虑一下向服务器端发送请求的数据类型和你希望返回的数据。
一个REST SOE通常包含资源和操作两部分(Resource和Operation):
Resource---可以从服务器端获取的一系列信息。它类似于类中暴露出的某一个属性;
Operation---服务器端根据发送的请求进行一系列的操作。在Operation执行完后,你
文档评论(0)