《WebGIS开发实践手册》2.4 ArcIMS连接器和Web ADF

ArcIMS支持多种开发环境,如ASP、ASPX、ColdFusion和JSP等,这让具有不同开发背景的程序员都能开发ArcIMS的客户端程序。

ArcIMS应用服务器是与空间服务器的交互语言是ArcXML,因此,ArcIMS需要一种机制将来自这些客户端的请求转换为ArcXML,这个转换是通过ArcIMS连接器(Connector)和Web ADF实现的,它们居于Web服务器和ArcIMS应用服务器之间,起到了一个“二传手”的作用。连接器占用的端口一般是5300。

2.4.1. ArcIMS应用服务器连接器

我们应该可以想到,ArcIMS支持多少种开发环境,就应该存在多少种类型的连接器,,因为类似COM的应用程序是无法访问Java类型连接器的。普通的连接器包括Servlet Connector、Java Connector、ColdFusion Connector和ActiveX Connector。

ArcIMS的Servlet Connector是缺省安装的连接器,它使用一个Servlet引擎提供Web服务器与ArcIMS应用服务器之间的通讯管道。该连接器可以被HTML浏览器、Java标准浏览器和自定义的浏览器使用,同时,它也支持Java版本的ArcExplorer、ArcMap和ArcPad的访问。

Java Connector是一个纯Java的可重用软件组件,它包括一个JavaBean对象模型库和一套自定义JSP标签库。Java Connector驻留于Web服务器中,为JSP和独立的Java应用程序客户端与ArcIMS应用服务器进程搭建起桥梁。而Java Connector中的JavaBeans和JSP标签则能够让你通过HTTP、HTTPS或TCP/IP协议,在服务器与客户端之间发送请求和接收响应。

ArcIMS的ColdFusion Connector是为ColdFusion服务器程序准备的,它只能用于Windows和Solaris两种平台。ColdFusion是一种比ASP更为简单的语言和开发环境,其文件后缀名为cfm。这些文件运行于ColdFusion服务器上。ColdFusion在国外使用的非常普遍,我们可以浏览ESRI官方网站,会发现大部分页面其实都是cfm文件,但在国内,由于ColdFusion服务器价格高昂等原因,使用公司较少。

如果使用的开发环境是ASP,那么ArcIMS就必须安装ActiveX Connector,它是一个COM格式的DLL文件。该连接器用于处理典型的地图和查询操作,但它只能在Windows平台上使用。

2.4.2. OGC和基于标准的连接器

OGC标准[1]是一种公开的地理数据标准集,其中很多标准已经成为事实上的标准。ArcIMS也有可以处理OGC请求和响应的连接器存在,如Web Map Server(WMS)连接器、Web Feature Server(WFS)连接器和CS-W连接器等。

WMS连接器是一种Java类型的Web应用程序,它能为由ArcIMS Image和ArcMap Image发布的数据(地图图片文件)提供一个基于OGC标准的WMS接口,这个接口的交互语言不是ArcXML,而是一种纯XML格式。

WFS连接器允许用户发布基于GML格式的要素级地理数据,它可以满足一些矢量型WebGIS的需要,GML的解析文件保存在wfsconnector\schema\gml中。

除了提供了地图图片文件、矢量数据流,当然还有元数据的内容,ArcIMS的CS-W连接器提供了一个OGC标准目录服务[2](OGC Standard Catalog Service ,CAT2.0)的接口,用于发布ArcIMS的Metadata服务。

除了基于OGC的元数据服务外,ArcIMS还提供了另外两种连接器用于发布元数据,它们是Z3950连接器和OAI-PMH连接器。

2.4.3. Web应用程序开发框架 (Web ADF)

用户可以从第一行代码开始开发完全属于自己的ArcIMS浏览器程序,这需要耗费许多的精力,并对相关知识需要较为熟悉。除此以外,ArcIMS也提供了一个开发框架让用户能够在极短的时间内搭建出一个客户端应用程序或Web服务,这就是Web ADF。

Web ADF开发的Web应用程序和Web服务能够访问多种类型的GIS服务器,包括ArcIMS、ArcGIS Server、ESRI提供的ArcWeb Services和符合OGC标准的WMS Map Service,而访问这些服务器使用的Web控件和模板都是一样的。这种多源架构的好处在于,我们能够将来自不同源的地图服务进行叠加,不同的地图服务就好象图层一样能够添加到同一个地图内容中。

Web ADF为.NET和Java程序员分别准备了开发环境,即Web ADF for the Microsoft .NET Framework和Web ADF for the Java Platform

Ø Web ADF for the Microsoft .NET Framework与Visual Studio环境紧密结合,它与ArcIMS的服务交互由ArcIMS对象模型负责的,该环境只能在Windows平台上使用。

Ø Web ADF for the Java Platform包含了基于Web控件的Java Server Faces(JSF),而其与ArcIMS服务的交互由Java Connector负责。这一过程可用于所有的平台。

小知识:Servlet引擎

我们在介绍Servlet Connector时,曾经提过Servlet引擎的概念,到底什么是Servlet引擎呢?搞清楚这个问题,可以解释在安装ArcIMS时的一个步骤。

Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。 它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。由于Servlet是Java编写的,并能够处理请求,就需要某种Web容器来调用它们(就像ASP文件必须在IIS这个容器内才能运行一样),这种容器一般被称为Servlet引擎,我们常见的Servlet引擎有Tomcat和ServletExec等。

Tomcat或ServletExec这样一种容器负责监听任何对这些servlet的访问并给出响应,由于ArcIMS的Servlet连接器是缺省默认安装的,这就解释了为什么一定要安装servlet Engine的原因。

如果ArcIMS不安装Web服务器IIS(或Apache),只是依靠Servlet Engine来支持Servlet Connector发布服务,这种做法是否可行呢?完全可以!由于Servlet Engine一般占用8080端口,我们可以通过http://127.0.0.1:8080/xxx(地图文件夹)来访问。但事实上,在访问一个服务器的时候,一般是不习惯带个端口的,即我们通常使用默认的80端口来访问。这就需要一种协调机制,即使用IIS或Apache,让访问从占用80端口的服务“传递”到占用8080端口的Servlet Engine中。这样就符合了我们的访问习惯,即http://127.0.0.1/XXX就可以访问一个站点了。


[1] 本书将在后面章节中详细介绍OGC标准

[2] 关于CAT2.0,可以访问http://www.opengeospatial.org/standards/cat

posted on 2009-09-25 09:41  浩淼  阅读(917)  评论(0编辑  收藏  举报

导航