Server Objects Extension(SOE)开发(二)

前言

SOE的提供了REST和Soap两种模板,只要在模板特定的方法中添加自己的业务逻辑代码即可,开发流程非常的简单便捷。那怎么知道自己的业务逻辑代码该写在模板的那个方法里面呢?这就需要很好的理解SOE的生命周期以及生命周期在模板中的对应。这里将以SOE开发流程来介绍SOE开发rest模板。

环境说明:arcgis server 10.2,visual studio 2012

一、soe的开发流程

通常soe的业务开发流程通常包括以下方面:

1.客户端将参数进行序列化成json对象,通过http协议将参数传递给服务器端

2.服务器端接受和处理参数

通过接受前端的json,反序列化成需要的对象类型,如常见的string,double,或者ao对象如IGometry等

3.业务处理阶段

该阶段调用ArcObject的接口,通常该阶段的代码可以直接从桌面的ao程序移植过来

4.最后阶段是结果返回到前端

soe的前后端的交互是基于http协议的,故结果可以序列化成json返回前端,也可以是图片的形式等符合http协议传输的内容

上图是一个点生成缓冲区的soe实现流程:

1.从客户端获取屏幕坐标点,将屏幕坐标点以json的形式返回到服务端

2.服务端以JsonObject对象实例中反序列化获取参数,

3.参数转换成Ipoint对象

4.调用Ao接口对IPoint对象进行buffer

5.buffer的结果序列化成json对象返回给前端

二、模板及模板对应流程

2.1 模板头

安装完ao sdk,就能以rest或者soap模板的形式实现soe了,打开soe rest模板,前面guid表明soe是com对象的形式实现,

1.指定soe扩展的服务类型,该为10.2版本soe的新特性,在10.2以前的版本中,soe只能扩展MapServer,而10.2的版增加了对imageServer的扩展,

tips:在10.2 rest模板中必须手动选择是扩展MapServer还是imageServer而10.2以前的版本是不需要的

2.all Capabilities 指soe支持的操作,里面填写的名字应该与后面的operation对应 

tips:注意区分这里的Capabilities与服务编辑对话中的Capabilities的区别。这里的Capabilities的可以理解成操作

3.defaultCapilites 是这默认的操作

4.description soe的描述,部署soe后在manager中可以看到期描述

5.soe的显示名称

6.Properties是soe的属性

7.表明是一个rest模板

2.2 IServerObjectExtension 接口的成员

该接口Init()和shutdown()方法是必须实现的接口,这两个方法分别在soe的初始化和关闭的时候触发。

Tips:通过该系列文章1可知,soe的初始化只执行一次,故可以将只需执行一次且耗时的操作放在Init()方法中,比如从MapServer中获取相关的数据

      
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值