### ArcObject 10.1 – ArcServer 开发 ArcObject 宝典 #### SOE (Server Object Extension) 介绍及开发指南 随着 ArcGIS 10.1 的发布,Esri 对其 Server 平台进行了重要的升级和改进,其中最显著的变化之一就是取消了对 DCOM 连接的支持。这意味着开发者不能再通过传统的本地方式访问 ArcObjects 的强大功能。为了解决这一问题,Esri 引入了一种新的机制——Server Object Extension (SOE),这是一种能够在 ArcGIS Server 中运行的自定义组件,旨在扩展 Server 的核心功能。 ### SOE 由来 SOE 的出现主要是为了解决 ArcGIS 10.1 中不再支持 DCOM 方式的连接所带来的挑战。由于 ArcObjects 提供了丰富的 API 和强大的地理处理能力,但在新版本中无法直接使用,SOE 成为了连接 ArcObjects 和 ArcGIS Server 的桥梁。 #### SOE 的定义 - **SOE**:即 Server Object Extension,是一种包含一系列方法的类,可以在 Server Object Container (SOC) 中运行,并且能够被 Web 应用程序调用。 - **Server Objects**:是粗粒度的 ArcObjects 组件,它们隐藏了底层更复杂的 ArcObjects,并提供了执行特定任务(如绘制地图、地理编码等)的能力。Server Objects 支持 SOAP 接口,可以将其暴露为 Web Services 供客户端调用。 ### SOE 的优势 SOE 具有以下两个主要优势: 1. **作为 Web 服务**:SOE 可以作为 SOAP 或 REST Web 服务运行,这使得使用 ArcGIS Web APIs 构建的客户端(如 JavaScript、Flex、Silverlight、iOS 等)能够轻松地调用这些服务。此外,SOE 也能够在 ArcGIS Services Directory 中展示,提供特性设置、基本类型等 ArcGIS APIs 能够理解的对象类型。 2. **封装 ArcObjects**:SOE 能够有效地封装 ArcObjects,提供了一个理想的环境来快速执行复杂指令。例如,可以构建一个 SOE 来使用动态分段获取里程标志位置,或者实现几何网络分析等功能。 ### SOE 开发需求 开发 SOE 需要掌握 ArcObjects、.NET 或 Java 编程语言,以及 REST 与 SOAP 等 Web 服务通信技术。Esri 提供了 SDK,包括了许多可用于参考的示例项目,支持 Java 和 .NET。 #### 开发流程概述 在开发 SOE 的过程中,需要关注以下几个关键步骤: 1. **获取请求**:从客户端获取请求,并将传入的参数转换为 ArcObjects 可识别的格式。 2. **处理数据**:利用 ArcObjects 进行数据处理。 3. **返回结果**:将处理后的结果转换为 JSON 格式,返回给客户端,客户端再对 JSON 数据进行解析。 ### SOE 使用 #### 必选接口 为了确保 SOE 正常运行,需要实现两个必选接口:`IRESTRequestHandler` 和 `IServerObjectExtension`。 ##### IRESTRequestHandler 接口 该接口定义了两个主要方法: 1. **GetSchema 方法**:用于获取 SOE 的模式描述,通常返回 JSON 格式的字符串,描述了 SOE 的结构和可用操作。 2. **HandleRESTRequest 方法**:这是 SOE 中最重要的方法,具有双重作用: - 回调资源和操作的方法。 - 获取资源在实例级别的描述。 **方法参数**: - **capabilities**:一组被资源授权的操作,可以为空字符串。 - **resourceName**:资源名称。空字符串表示根级别,子资源会通过 ‘/’ 表示。 - **operationName**:操作名称。 - **operationInput**:操作的参数,JSON 格式。 - **outputFormat**:客户端请求的输出格式,如 JSON、AMF 等。 - **responseProperties**:通过操作返回的一组键值对,逗号分开。 #### IServerObjectExtension 接口 除了 `IRESTRequestHandler` 接口外,还需要实现 `IServerObjectExtension` 接口。该接口定义了一些生命周期方法,用于初始化、销毁等操作。 ### 创建 SOE 创建 SOE 的过程主要包括以下几个步骤: 1. **设计 SOE 类**:首先需要设计 SOE 类,并实现必要的接口。 2. **配置 SOE**:在 ArcGIS Server Manager 中配置 SOE 的相关信息,包括名称、描述等。 3. **部署 SOE**:将 SOE 部署到 ArcGIS Server 中,可以通过 ArcGIS Server Manager 进行管理。 4. **测试 SOE**:部署完成后,需要对 SOE 进行测试,确保其正常工作。 5. **使用 SOE**:在 Web 应用程序中调用 SOE 提供的服务。 ### 结论 SOE 作为一种扩展 ArcGIS Server 功能的有效手段,在 ArcGIS 10.1 中占据了非常重要的位置。它不仅能够弥补取消 DCOM 支持带来的功能缺失,还能够提供更加灵活的扩展性和更好的性能。通过掌握 SOE 的开发和使用技巧,开发者能够更好地利用 ArcObjects 的强大功能,构建出更加高效和实用的地理信息系统应用。
剩余26页未读,继续阅读
- 粉丝: 1
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助