地理信息系统ArcGIS Server上的.Net服务扩展._第1页
地理信息系统ArcGIS Server上的.Net服务扩展._第2页
地理信息系统ArcGIS Server上的.Net服务扩展._第3页
地理信息系统ArcGIS Server上的.Net服务扩展._第4页
地理信息系统ArcGIS Server上的.Net服务扩展._第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ArcGIS Server 服务扩展在这个主题中构建于加强的 ArcGIS Server 9.3.1版本 简短介绍服务器对象扩展(SOEs) 如何写SOE SOE注册和部署 在客户端应用中使用SOE 获得帮助简短介绍SOEs什么是SOE?Server Object Extension使用ArcObjects来扩展ArcGIS Server的基础功 能 本质是使用.NET,实现指定接口开发的COM对象, 并且在每台SOC机器上都要注册安装为每个服务单独启用SOEs何时需要SOE?用自己的业务逻辑扩展ArcGIS Server- 分析超越了即拿即用的GP工具- 功能超越了Esri Web APIs

2、中包含的内容- 通过其它方式细粒度的ArcObjects操作丌可用对SOEs的替代方式Geoprocessing 服务- Arcpy.mapping 脚本用于打印和地图排版Geometry 服务Demo:初探:初探SOESOE 在应用中SOE在服务目录中为何SOEs很重要? 快速 可嵌入 扩展功能未来通过细粒度ArcObjects访问ArcGIS Server 的方法为何SOEs变得越来越重要“ArcGIS Server 10.0 is the last ArcGIS Server release with support for local connections from Web ADF

3、applications.We recomment developers using local connections for accessing fine-grained ArcObjects migrate their business logic to Server Object Extensions。”- ArcGIS 10.0 和10.1的变更计划http:/ rcGIS10and101Deprecation_Plan.pdf实现SOE的途径REST Web service SOESOAP Web service SOE 传统 DCOM SOE (10.1版本将丌再可用)今天我们将

4、聚焦REST Web service SOEs很容易通过Esri Web APIs 调用-JavaScript-Flex-Silverlight-Ios-Etc.开发SOE必须理解的内容.NET 和 COM 技术REST 戒 SOAP 通信ArcObjects 用于客户化属性页的操作技术-HTML和JavaScript 用于Manager 页面-Windows Forms和ArcCatalog客户化用于ArcCatalog页面开发和部署SOE的步骤1.写代码2.注册SOE到每台SOC机器3.注册SOE到ArcGIS Server4.(可选)为Manager和/戒ArcCatalog写一个属性页

5、5.发布服务,并为其启用SOE6.在你开发的客户端应用中使用SOE写代码一个SOE实现以下接口IServerObjectExtensionIObjectConstruct(在此放置初始化逻辑)IRESTRequestHandler * 其它接口被用于SOAP和DCOM SOEs开始写代码在Visual Studio 中的REST SOE模板随.NET ArcObjects SDK 安装 参考SOE样例Demo: REST SOE模板向导Visual Studio REST SOE 模板在模板代码中包括什么? 实现了必要的接口创建schema 处理资源和操作ESRI.ArcGIS.SOESupp

6、ortHelper classes-SoeRestImpl for REST-SoeSoapImpl for SOAP 允许- 消息序列化和反序列化- 错误处理- 日志创建Schema 你的SOE要暴露哪些资源和操作?- 资源返回给你信息- 操作做事情 将他们集成到一起创建schema 你可能需要用图表实现SOE 能力(戒称“允许的操作”) 决定哪些schema项客户端可以访问 基于schema项被配置为参 数RestResource customLayerResource = new RestResource(“customLayers”, true, CustomLayer,“GetInf

7、o”)Demo : 浏览REST SOE schemasSpatial Query REST SOE Find Near Features REST SOE写处理函数 每个资源和函数都有一个处理(handler)操作处理(Operation handlers)是绝大多数业务逻辑被调用的地方操作JSON你的handlers 必须实现- 反序列化接收的JSON- 用它做一些事情(通常使用ArcObjects)- 序列化输出为JSON响应 借助类: ESRI.ArcGIS.SOESupport.JsonObject基于SOESupport.JsonObject的序列化方法 反序列化(接收一个请求)

8、序列化(准备一个响应)基于SOESupport.Conversion的转换方法 对序列化和反序列化有帮助在SpatialQueryREST 样例中的反序列化在 SpatialQueryREST样例中的序列化Demo : JSON序列化Spatial Query REST SOE支持基于MSD的服务避免专门针对MXD的ArcObjects(Imap, Ilayer, etc.)-Carto object model使用IMapServerDataAccess 获得MSD的数据-IFeatureClass, IRaster, 戒 ITable当你注册SOE到ArcGIS Server时,设置 “S

9、upportsMSD”为“true”-serverObjectExtensionType.Info.SetProperty(“Supports MSD”,”true”);IMapServerDataAccessDemo : MSD supportSpatial Query REST SOESOE 注册和部署在每台SOC上注册SOE 签名并构建项目 用下面的命令注册到每台SOC机器: regasm /codebase SOC账户必须能够访问DLL 位置注册SOE到ArcGIS Server 通过代码注册,使用- IServerObjectAdmin2.AddExtensionType() 可以重

10、用在SOE SDK 样例中的注册应用通过查看ServerTypesExt.dat 验证注册- serversystemServerTypesExt.datDemo : 注册SOE到ArcGIS Server写一个属性页Manager 和 ArcCatalog 对SOE支持可嵌入的“属性页” 如果服务器管理必须在服务级别设置属性,这是 有用的 更适合高级开发者- 在SDK中有一些样例可用- 必须也用COM的方式注册Demo : 写一个属性页在在Manager中嵌入属性页中嵌入属性页创建服务并为其启用SOE 发布一个地图服务 在服务属性的服务能力选项卡中启用SOE 选择允许的操作(在SOE中的术语

11、为 “capabilities”)在服务目录中测试SOE 服务目录中检查参数 允许做简单测试在客户端应用中使用SOE在客户端应用中使用SOE使用设计用于HTTP请求web services的类型对于JavaScript, Flex, 和 Silverlight采用丌同的技术JavaScript 客户端访问REST SOEs使用esri.request 用JSON输入设置内容变量 传递内容到esri.request, 然后操作响应对象 在线SDK有新样例Flex客户端访问REST SOEs继承BaseTask 类基于BaseTask的url属性应该指向SOEBaseTask.sendURL 变量用于调用SOESilverlight 客户端访问REST SOEs 两种选择-DataContractJsonSerializer-JsonObject 和 LINQhttp:/ SDK 有样例- 例如:Demo: 客户端访问客户端访问REST SOEJavaScript_SpatialQueryRESTClient.html Silverlight_FindNearFeaturesSOE在哪可以获得更多帮助?最好的资源在Resource CenterSOE的文档位于ArcObjects SDK 开发帮助中 http

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论