ArcIMS服务器层组件是其架构最核心的部分,它包含了空间服务器、虚拟服务器和ArcIMS服务三种对象和概念。其中,空间服务器是ArcIMS产生地图数据的最关键对象,而虚拟服务器则是管理前者的一个虚拟概念,它们的最终目标就是为了新建某种类型的ArcIMS服务。

2.2.1. 空间服务器Spatial Servers

ArcIMS的空间服务器是产生地图图像文件和与地图相关信息的核心对象,当它收到一个ArcXML请求时,会调用一个或多个函数来进行相应的处理。每个这样的函数都可以被看作是空间服务器的一种组件,这样的组件种类很多,包括以下几种:

Ø Image:根据ArcIMS Author产生的地图配置文件AXL生成地图影像文件;

Ø ArcMap Image:根据用ArcMap产生的地图配置文件MXD生成地图影像文件;

Ø Feature:产生地图要素流;

Ø Query:根据搜索条件寻找匹配的要素;

Ø Geocode:执行地址匹配运算;

Ø Extract:将选择的地图要素转换为Shapefile文件;

Ø Metadata:发布和搜索地图元数据;

Ø Route:必须安装可选的RouteServer扩展才能使用,用于计算两点或多点之间的路径,但其数据是美国的,不适合国内使用;

Ø SDCGeocode:基于RouteServer数据进行地址匹配操作;

那么,一个空间服务器对象是由哪些组件组成的呢?这种组成方式分为两种,一是除了ArcMap Image组件之外的其它所有组件组成的空间服务器;另一种则是仅由ArcMap Image组件组成的空间服务器。其关系如图 2‑2所示:

图 2‑2 空间服务器的组件

ArcIMS空间服务器在本质上是一个运行于计算机上的程序进程aimsserver.exe。在Windows平台中,我们可以在任务管理器的进程列表中找到它。ArcIMS默认安装时,仅有一个非ArcMap Image式空间服务器进程存在,如果在Windows、Solaris和Linux平台上安装ArcIMS时选择了ArcMap Server扩展插件,则会有另外两个ArcMap Image式空间服务器进程存在,即计算机上将同时存在三个aimsserver.exe进程。Aimsserver.exe进程也可以通过增加server,提高地图处理和显示能力。

尽管如此,空间服务器进程并不能被开发人员直接访问,我们对其的管理仅局限在添加和移除操作上,而对空间服务器的大部分交互工作都是通过虚拟服务器进行的。

2.2.2. 虚拟服务器Virtual Server

假设我们有2台电脑(即ArcIMS中的Server),每台机器上有5个空间服务器进程,由于不能与空间服务器进程直接进行交互,我们需要找到一种更好的方式对这10个进程进行管理,这可以使用ArcIMS提出的虚拟服务器概念。

比起空间服务器这类实际存在的对象(进程),虚拟服务器是一个纯粹概念上的管理工具。由于虚拟服务器的类型划分是根据空间服务器组件的功能作为依据,因此,每一个空间服务器都可以属于一个或多个虚拟服务器。这其中唯一的例外是ArcMap Server上的空间服务器,它是在安装ArcIMS时就指定的。在图 2‑3中,两个ArcIMS空间服务器都由一个名为ImageServer1的虚拟服务器进行管理。

图 2‑3 一个虚拟服务器管理两个空间服务器

ArcIMS中有多少种类型的虚拟服务器呢?空间服务器有9类组件,因此也就有9种不同的虚拟服务器。其中公共的有ImageServer1、ImageServerArcMap1、FeatureServer1、MetadataServer1四种;而私有的则是QueryServer1、GeocodeServer1、ExtractServer1、RouteServer1和SDCGeocodeServer1五种。图 2‑4展示了nbjbt这台计算机上存在的7种虚拟服务器,缺失的两种是因为没有安装必要的ArcIMS扩展插件。

图 2‑4 ArcIMS的虚拟服务器

虚拟服务器要么是公共的,要么是私有的。当我们使用管理工具时,只有公共虚拟服务器可以暴露给用户。我们可以选择产生或改变服务。但私有虚拟服务器的工作隐藏于幕后,它们只是在影像或要素服务需要时才被调用的。

如图 2‑5所示,该对话框用于新建一个虚拟服务器:

图 2‑5 新建一个虚拟服务器

在新建虚拟服务器的过程中,Server Type有四种选择,除了ImageServer-ArcMap外,其它三种虚拟服务器的Instances属性都是2,即默认有两个实例,而ImageServer-ArcMap只有1,即单个实例。同时,我们还可以在不同的Server上部署虚拟服务器,这个过程只需点击“New Server…”按钮选择一台Server即可,这样就可以根据荷载的情况在多台服务器硬件上部署虚拟服务器了。增加虚拟服务器,可以间接提升ArcIMS部分功能的处理能力。

转载于:https://www.cnblogs.com/chiangbt/archive/2009/09/22/1571555.html

《WebGIS开发实践手册》2.2 ArcIMS服务器组件[1]相关推荐

  1. 《WebGIS开发实践手册》将在ESRI用户大会首发

    <WebGIS开发实践手册>已经在上周末(9号)印刷结束,本周即将装订入库.首批样书已经发往"搜海书店"(ESRI中国有限公司网络书店合作伙伴),将在20日的ESRI中 ...

  2. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.3 rich-text 组件,以及如何单击预览它的节点图片并保存

    一.rich-text组件 nodes: [{name: 'div',attrs: {class: 'div_class',style: 'line-height: 20px;padding:20px ...

  3. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.10 image组件,如何实现图片懒加载?

    一.与image组件有关的技术问题 1.1 什么是WebP? webp是image组件的一个boolean属性,开启这个属性之后,代表url可以设置webp这种格式的图片.webP是一种同时提供了有损 ...

  4. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.6 scroll-view组件,在小程序中如何实现滚动锚定,如何渲染一个滚动的长列表?

    scroll-view 是一个可以滚动的视图区域的容器组件. 一.重要属性 scroll-view 的滚动属性,实现了两套功能 左右或上下滚动 下拉更新 1.1 与滚动有关的属性: scroll-x ...

  5. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.5 可移动容器及可移动区域,以及如何实现侧滑删除功能

    一.学习使用moveable-view与movable-area组件 1.1 关于元素的定位 static 静态定位 元素在页面流动的当前位置定位,这个时候它的top.left.right.botto ...

  6. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.9 页面链接组件,如何自定义一个导航栏?

    一.小程序中的导航组件 functional-page-navigator 仅在插件中有效,用于跳转到插件功能页. navigator 小程序标准的导航组件 小程序插件是对一些js接口.自定义组件或页 ...

  7. webgis从基础到开发实践_ArcGIS API For Javascript 开发笔记(四)

    二.应用篇 1.应用部署 部署也就意味着一个 DEMO 或者系统即将完工,也意味着系统即将上线,相对来说Javascript 应用的部署不是很复杂,但是这是有前提的,要对部署中的一些概念有所了解,比如 ...

  8. 《Linux C/C++服务器开发实践》简介

    #好书推荐##好书奇遇季#Linux网络服务器编程入门书<Linux C/C++服务器开发实践>,京东当当天猫都有发售.416页厚书,定价99元,打折一下更便宜. 本书从五大服务器编程基础 ...

  9. GitLab首席执行官Sid Sijbrandij畅谈当前开发实践

    \ 关键摘要 \\ 现代软件开发使用了许多工具,这些工具覆盖项目的整个生命周期--从规划到性能监控,同时现代软件开发也需要更多沟通.\\t 对GitLab来说,开放源码模式不具有可持续性,因此,他们转 ...

最新文章

  1. R:关系型数据库管理
  2. App Store 申请审核加速
  3. DB time抖动的原因分析
  4. JavaSE(十三)——Swing
  5. 迷失的毕业生——小余答疑(一)
  6. 脚本安装mysql数据库_Linux使用脚本安装MySQL数据库
  7. java中如何调出字体对话框_java 字体对话框
  8. KICKSTART 语法参考
  9. mysql limit分页_MySQL order by limit 分页数据重复问题
  10. 你绝对猜不到 Java 14 有什么新特性?
  11. linux缺页异常处理--用户空间
  12. matlab中用xlsread()函数在Excel中读取数据
  13. 新浪微博批量删除微博方法
  14. SPSS异方差检验的实现
  15. UPnP的介绍和理解
  16. 计算机漫游模式,深入理解操作系统之一 —— 计算机系统漫游
  17. 使用Python制作专属微信小客服
  18. NDK实践(一)在linux环境下编译ffmpe
  19. [进阶]-多线程、多进程、异步IO实用例子
  20. HTTP状态码 201 304 404 500等代表的含义

热门文章

  1. 第二届高校大数据比赛之鼠标轨迹识别
  2. Java合并pdf文件
  3. 为什么使用了索引,查询还是慢?
  4. Spark中RDD转换成DataFrame的两种方式(分别用Java和scala实现)
  5. 金九银十中,看看这31道Android面试题
  6. 关于阅读java编程思想和effective java的一些看法
  7. String_boot热部署学习
  8. jmeter之关联操作
  9. Go语言之标志符可见性
  10. lua 初接触 --- The first time use Lua for programing