组件开发之MapXtreme for windows架构概述
- 组件式GIS
- 2007-10-10
- 58热度
- 0评论
MapXtreme是MapInfo公司的地图网上发布产品,是一个典型的基于服务器端的应用系统,它的核心是MapX控件。安装MapXtreme后可以添加MapX控件。MapXtreme由3大部分组成:(1) 地图服务器管理,完成服务器的配置和地图引擎的设定,它指定了浏览器端所显示的地图表现形式;(2) 基准地图数据管理是一个管理无缝地图图层的工具,指定了基准地图数据所在目录和路径;(3) 地图对象管理,由多个地理对象按选定的投影方式以适当的显示比例构成地理对象集合(Geoset),并根据不同的地理对象设置相应的缩放显示范围。这种由上至下的设置方式实现了地图对象的逐级分类显示,可以保证图面的清晰和整洁,还允许系统设置标注属性、增减图层或改变图层属性设置。
一、构网方法与系统方案
系统运行和开发环境采用MicroSoft的Internet解决方案,即服务器主机操作系统平台为Windows NT 4.0, IIS 4.0 Web服务器,SQL-Server数据库,程序开发语言为HTML,ASP,和VBScript,javascript等。
采用ASP环境生成一个基于MapXtreme的地理信息网上发布系统,还需规划一个应用系统的工作目录。在Web-Server上,利用微软管理组(MicroSoft Management Console)等工具创建一个虚拟目录指向该工作目录,并使虚拟目录的“Executable”项选中(Checked)。
浏览器端采用帧组(FrameSets)方式划分为两帧,一帧为地图及相应的表单提交控制窗口,用来显示地图对象并提供地图对象的操作按钮及其他相关的表单控制键;另一帧为信息显示窗口。用户通过统一资源定位器URL定位到本应用后,首先获取一个地图引擎(mapengine),在地图显示窗口输出地图,点击查询操作后信息窗口显示相关查询信息。
二、使用动态服务器网页ASP
ASP(Active Server Pages)是微软公司的新一代开发动态网页的技术。它是一个Web服务器端的开发环境,利用它可以生成和运行动态的、交互的、高性能的Web服务应用程序。ASP属于Active技术中的Server端技术,与常见的Client端实现动态主页的技术(如javascript等)不同,ASP中的命令和Script(脚本)语句都是由服务器端来解释执行的,执行的结果产生动态生成的Web页面,并送给浏览器,因此不必考虑浏览器是否支持ASP。
ASP具有以下特征:(1) 完全和HTML集成;(2) 易于生成,无须手工编译和链接;(3) 面向对象,可扩展Active Server组件;(4) 可使用任何Script语言,只要提供相应的脚本驱动(engine)即可。ASP自身提供了VBScript和javascript的驱动,VBScript为其缺省的Script语言。
ASP的5个内建对象可提供更高一级的Web功能。
(1) Request——从浏览器端获取信息。本对象的一个重要方法是Form(),其作用是用来提取浏览器端的用户请求信息。例如,本应用为用户提供地图显示比例设置,系统使用Form()方法完成对用户设置的请求,参考代码为
If Request.Form(FRM-LAST-ZOOM).Count=1 Then
fZoom=Request.Form(FRM-LAST-ZOOM)
If IsNumeric(fZoom) Then
bResult=SetMapZoom(fZoom)
End If
End If
(2) Response——将信息回馈给浏览器,它的一个重要方法是Write(),用来向浏览器输出一条消息;对应于用户查询请求,系统将查询结果信息组织到进程变量SESN-HTML中去,然后使用Write()方法在信息显示帧显示查询结果:
Response. Write Session(SESN-HTML)
(3) Server——提供Web-Server工具。
(4) Session——存储在一个进程内使用的信息,本进程采用以下代码初始化用户所请求的地图对象:
Set Session(SESN-MAPPER)=
Session(SESN-COURIER).GetMapFromNewServer(miMapName)
(5) Application——在一个ASP应用内让不同的用户使用这共享信息。
三、请求—响应方式
通过JavaApplet生成一个Web页面(HTML),它首先定义如何装载Applet,ASP代码完成为GIF文件输出,并将GIF文件的URL传递给JavaApplet,JavaApplet显示由ASP代码产生的GIF文件。(JavaApplet在客户端运行,而ASP脚本命令在服务器端运行)。ASP的余下部分定义了表单域的分类,它允许用户完成多种任务如查询,设置显示比例,专题统计图制作等。一旦请求装载完成后,用户就可以与MapApplet交互。
交互的方式有2种渠道:
(1) 直接的地图操作。如果用户点击工具板按钮(如缩放、漫游、文字注记、信息查询、丈量距离等),系统由一个Java小程序负责处理这些请求。Java小程序针对具体的请求完成相应的动作,并将处理结果回馈用户。
(2) 使用表单域进行非直接的地图交互,如定位查询、图层控制、专题图制作等,点击这部分表单引起应用重置。
四、进程控制
系统以进程的方式向用户分发请求响应。用户启动浏览即开始一个进程,系统给每一个进程分配一指定的时间,如果在指定的时间内用户没有“活动”(Activity),则发生用户进程超时。进程超时后,系统自动调用一个子例程来释放本进程,以减少服务器端的开销,更好地满足其他用户的进程请求和速度需求。
如果进程超时后,用户再次激活系统应用,这时会再次引起一个新的表单提交,系统再次为响应用户请求而初始化一个新的进程。系统设计了隐式表单(Hidden-form fields),通过调用隐式表单的方法来获取用户上一进程的状态参数。新的进程自动使用这些状态参数来“恢复”为上次进程状态,因此用户不会体会到进程超时的问题。