??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
]]>
ArcIMS可以q行在一个分布式环境中,包含客户端和服务器组件。一个完整服务的q行q程可以单的描述为:一个客L向服务器发送请求信息,服务器处理请求ƈq回信息到客LQ客L所获取的信息展现给l端用户?/font>
ArcIMSI间服务器是ArcIMS 的中心枢U,承蝲着高负L计算dQ对地图数据的请求和相关信息q行处理。当接收C个服务请求, ArcIMSI间服务器主要可以完成以下功能:
Image—从在ArcIMS Author或ArcMap中创建的地图数据中创建媄像文?br /> Feature—缓冲地囄征数?br /> Query—查扑֒搜烦条g相匹配的特征数据
Geocode—执行地址匚w操作
Extract—从选择的地囄征数据中创徏shapefile
Metadata—打印出metadata 数据
Route—在一pd的点之间计算路径距离
ArcIMS Monitor跟踪ArcIMSI间服务器的状态。当pȝ重启ӞArcIMS Monitor自动恢复ArcIMS服务?br />
ArcIMS Tasker清除output目录中的文g。这些由I间服务器创建,以支持ArcIMS服务的文Ӟ在用户定义的时间间隔后被清除。当前服务ؓ地图服务Ӟ用户发送请求得到的数据均是由ArcIMSI间服务器对h产生响应Q返回的数据是图片,保存在output目录中, ArcIMS Tasker会在一定时间后清除q些囄数据?br />
ArcIMS应用服务器(ArcIMS Application ServerQ?br />
ArcIMS应用服务器控制着传入hQ跟t当前哪些服务运行在哪些ArcIMSI间服务器中。ArcIMS应用服务器将h传输到适合的空间服务器。应用服务器是一个Java应用E序Q在Windows操作pȝ中作Z个Windows服务Q在Unix和Linux中作Z个daemonq程?br />
ArcIMS应用服务q接器(ArcIMS application server connectorsQ?/strong>
ArcIMS应用服务q接器将Web服务器和ArcIMS应用服务器连接在一赗ArcIMS Servlet Connector是ArcIMS的默认连接器。它使用ArcXML在Web服务器和ArcIMS应用服务器之间传递信息?br />
相对于ArcIMS Servlet ConnectorQ还有几U其他的q接器可供选择Q?br />
ColdFusion Connector
ActiveX Connector
ArcIMS Java Connector
ArcIMS .NET Link
ColdFusion和ActiveXq接器配合自定义的客L工作Qƈ且将自己的语a转换成ArcXML。ArcIMS Java Connector通过 JSP客户端或独立的Java应用E序和ArcIMS应用服务器保持通信?NET Link提供TCP/IP或HTTPq接到应用服务器?br />
关于q接器的相关资料Q在 ArcIMS Help 中搜索主题:
More about the ArcIMS Servlet Connector
Connectors and ArcMap Server
The ArcIMS documentation set
ArcIMS Viewers
当用ArcIMS Designer创徏了一个ؓ用户提供地图内容的网站时Q可以选择三种ArcIMS ViewersQHTML?Java Standard、或Java Custom。通过定制q些Viewers或定制客L可以辑ֈ基本相同的效果。另外,q可以用比较成熟的客户端,如ArcMap、ArcExplorer和Metadata Explorer?br />
从本质上_viewer或客L是Internet GIS 应用或网l应用的|站Q提供用户需要的地图服务。当用户讉Kq些|站的时候,他们可以在viewer中看到嵌入在|站中的定制地图。整个viewer军_了网站的外观和功能?br />
相关viewer的相兌料,在ArcIMS Help中搜索主题:
Choosing a viewer for your Web site
Designing a Web site
Overview of using the ArcIMS Viewers
关于q接器、客L的选择Q可以参?/font>
q篇文章
?br />
---- 参考资料:ArcIMS Help
]]>
在Web应用和J2EE框架中经常可以碰到各UObject相关的名词,在网上搜索了一下,讨论各种Object术语的帖子一大筐Q大的讨论整个框Ӟ的描述各个层次之间的细微差别,甚至有钻牛角之嫌?/font>
BlogJava
上也有讨论VO和PO的脓(chung)子,例如
非飞
?/font>
《各层共享用PO的代仗?/font>
{。其实无论怎么讨论Q这些术语、分层结构、应用框架无非都是ؓ我们的应用而服务的Q因此,我们需要的是理解这些术语提出的意义Q是理解我们的项目需求,是理解我们采用的框架l构能否最大限度的满目的需要?br />
在刚刚学习MVC/Model2之前Q我是不了解VO/TO/PO/DTO/BO{等q些术语的含义的Q至理解上只是停留在浅层面Q现在多看了一些,做了一炚w目,多了些想法,但肯定还是存在理解上的偏差或误解Q欢q大家讨论指出!
VO: 通常指ValueObject或ViewObject。ViewObject指的是UI需要的对象QStruts的FormBean是其中的一U,它是Value Object和Transfer Object的ȝ?br />
TO: Transfer ObjectQ它和Value Object的区别可以参考Patterns of Enterprise Application Architecture?br />
PO: Persistent ObjectQ即可以被持久化的实体对象?br />
POJO
: Plain Ordinary Java Object?br />
DTO: Data Transfer ObjectQJ2EE 中常用的一U设计模式,现在一般可以将使用Value Object的模式称为DTO模式Q在
Jdon
上一?a target="_blank">《ValueObject和DTO模式的一些疑问?/font>
阐述了两者的关系?br />
BO: Business ObjectQ可以分ZU情况,只包含业务对象的属性,或只包含业务Ҏ(gu)Q或两者都包含。对于BO的详l讨论,可以
参见q里
?br />
q些概念l常交错在一h出,l初学者造成了一些理解上的困难,其实只需要理Z面几点,基本上就能弄清楚层次之前的前后关pd如何合理使用q些对象?br />
1. VO能否和PO相同。首先回{是肯定的,VO是概忉|型的一U抽象反映,当一个业务实体可以用一个物理实体表C的时候,VO和PO属性相同,那么它们是相{的。例如学生成l管理系l中Q成l表单业务实体中包含学生信息、课E信息、成l等Q此时它已经不能用一个物理实体所能描qͼ而其中的学生信息Q其VO和PO在属性上是一LQ此时的VO和PO相同?br />
2. PO能否代替VO。仅仅从功能实现上来_当VO和PO相同的时候,PO可以代替VOQ这样可以减一些代码量Q但需要注意的是,q样会带来一些问题:当一个业务实体需要多个物理实体来表达的时候,在客L昄一个业务实体就会多ơ访问数据库Q即q行多次单表讉KQ非视图Q当一个业务实体属性远于一个物理实体的时候,可能会因装蝲q多不必要的数据而媄响网l传输;对物理实体进行改动的时候会直接影响到表现层。简单的_q样做增加了代码的耦合性,也增加了代码l护的难度,目的可扩展性也大大降低Q如果仅仅是Z减少代码量而付些代显然是不值的Q当然极为简单的应用可以考虑Q一切从目实际出发?br />
3. VO包含的属性可以多于PO、少于PO、或{于PO中的属性?br />
4. 一个基于Struts应用的简单数据提交流E?VO和PO单独存在)QHTML 面中包含了基本的信息,例如文本框、下拉框、单选等Q构Z个ActionForm Bean与之一一对应Q它是Web层数据的表示Q当Web面的操作流E发生改变的时候,需要对它进行修改,但不能将修改传递到业务层和持久层。然后ActiondActionForm Bean的属性,构造PO对象Q调用BO Q当BO收到q个PO之后Q调用DAO接口Ҏ(gu)Q对POq行持久化操作,完成数据的提交。这里,PO在业务层和持久层之间Q没有被传递到Web层的View中去?br />
5. 一个基于Struts应用的简单数据查询流E?VO和PO单独存在)QActiondActionForm Bean中的查询属性信息,然后调用BOQBO获取ActionForm Bean之后调用DAO接口q行查询Q返回所要查询的PO对象Q交lActionQAction通过该PO构徏 ActionForm BeanQ通过request.setAttribute()或session.setAttribute()Q重定向到查询结果页面输出需要的信息?br />
6. 表现层中的字D一般定义ؓString或booleancdQ因此VO中的属性在传到Actionq构建PO对象旉要进行数据类型的转换Q或由ActionForm的helperҎ(gu)来进行{换?br />
参考文章和贴子Q?br />
http://www.jdon.com/jive/article.jsp?forum=91&thread=23672
http://www.jdon.com/jive/article.jsp?forum=91&thread=21571
http://www.hibernate.org.cn/viewtopic.php?t=627&postdays=0&postorder=asc&start=0
http://bbs.hidotnet.com/704/ShowPost.aspx
http://lifework.cnblogs.com/archive/2005/09/03/229596.html
http://www.microsoft.com/china/MSDN/library/architecture/patterns/esp/DesDTO.mspx
3.
数据规范
q里说的数据规范Q指的是可以被系l所正确识别的数据。这依赖于上q数据库建库的第一个过E,x据库标准的制定和数据规范。这里的主要矛盾在于Q因?/span>
GIS
q_的不一_各个q_对空间数据描q的模型不同Q而导致了在一个^C生成的数据在另一个^C能正读出,从而导致{换前后矢量或属性数据的丢失Q甚x法{换的l果?/span>
例如Q?/span>
AutoCAD
存在拟合曲线
Spline
对象Q图形块
Block
对象Q区?/span>
Region
对象Q代理对象等许多Ҏ(gu)的图形对象,?/span>
GIS
pȝ中没有相应的囑Ş对象与之相对应。因此要惛_q些数据入库Q必d以上对象{化,使之变成
GIS
可以识别的图形对象?/span>
AutoCAD
的扩展数据由于ؓ
AutoCAD
所Ҏ(gu)Q因此也必须L解决办法
(
例如数据格式转换
)
Q之能?/span>
GIS
所正确d?/span>
此外q包括数据规范中规定的各个图层之间相互的I间拓扑关系及属性数据等Q这些都要求有相应的和修正工具予以保证?/span>
4.
数据生
数据生q程主要包括准备阶段和数据输入阶Dc以下ؓ
AutoCAD
q_下数据的生q程Z?/span>
准备阶段
此过E包括定义图层名Uͼ配置囑ֱ的各U属性(颜色Q线性,U宽Q图形符LQ。这一q程是数据生产的准备阶段Q工作逻辑上非常简单,在认真设|和查后Q生错误的可能性会很小?/span>
数据生阶段
包括栅格数据自动矢量化和人工输入两个比较大的斚wQ有时候全Zh工输入?/span>
栅格数据自动矢量化是通过扫描仪器输入栅格数据Q然后通过囑փ识别法Q进行矢量跟t,从而确定实体的I间位置。在目前的技术发展中Q程序的法往往不能完全识别出所需要的对象q进行正的矢量化,若栅格数据是l过底图扫描而非遥感影像Q可能还会出现扫面不清晰Q因此会产成各种各样的问题。常见的错误主要有以下几U:
(1)
房屋{面犉合物体留有缺口,即不闭?/span>
(2)
扫描后的U段存在很多重复点的现象?/span>
(3)
扫描后的U段存在自相交的情况?/span>
(4)
在图像边~上的线D,扫描后出现畸变现象?/span>
(5)
在图像的边缘存在数据丢失的现象?/span>
(6)
׃囑փ定位不准Q导致扫描后囑փ部分基准点偏U,从而导致相?c)地区存在囑Ş重叠或交叉的现象?/span>
其中基准点偏差的影响ؓ显著Q严重媄响数据徏库。一般情况下Q我们需要封闭检查,重复Ҏ(gu)查,自相交检查,基准Ҏ(gu)查和校正{检查工具去发现和排除这些错误。在q些错误中,错误
1
?/span>
2
?/span>
3
?/span>
6
在逻辑上比较简单,相对比较好解冟뀂错?/span>
4
?/span>
5
则比较难于检查和解决?/span>
人工输入是指数据录入人员按照要求用鼠标或l图议等手工在图U怸q行l图Qƈ讄和添加各U属性的q程。这一q程十分J重的,q且工作h重复性和枯燥性等特点Q因此容易造成各种错误Q从而媄响数据质量。成的错误的原因主要有两个Q?/span>
_ֺ问题造成的错误,q种原因往往造成囑Ş拓扑关系错误。例如,应该闭合的面状物体没有闭合,应该端点相连的直U没有连接,不应该重叠的U段存在重叠的部分,不应该交叉的囑Ş存在交叉Q面与面之间存在~隙Q面与面之间发生重叠Q基准点和控制点定位不准等{?/span>
Zؓ疏忽造成的原因。例如,有属性的囑Ş物体忘记l属性赋|D属性丢失;有属性的囑Ş物体错误赋|D属性错误;囑ֹҎ(gu)被删除或者移动位|;囑ֹ边界上的囑Ş没有很好的完成接边处理,造成盔R囑Ş不匹配等{。这些错误都l常的会在数据生产过E中发生Q如果不加以和修正Q将直接影响建库的正性和准确性,应予以注意?/span>
5.
结
从以上分析可以看出,数据建模、数据规范、数据生产都?/span>
GIS
数据利、准入库的关键Q在整个q程中,数据校验起到了非帔R要的作用Q在实际操作中,需要系l理论知识和l验知识来作为徏?/span>
GIS
数据库的架构支撑。根据个人有限的pȝ工程斚w的理论知识,只能Ҏ(gu)据校验做出如下概qͼ
(1)
首先Q需要对准备入库的各U源数据q行研究和分析,从中发现数据中存在的明显的错误,q估计潜在的错误?/span>
(2)
Ҏ(gu)数据建库标准和数据规范,分析q些错误可能对徏库造成的媄响,按照严重E度、优先别、逻辑关系{将错误分类Qƈ制定处解决问题的Ҏ(gu)?/span>
(3)
按照制定的解x案有计划、有步骤的纠正这些错误,使之W合建库的规范?/span>
(4)
q样循环查几ơ,量消除数据中的错误Q一般情况下QM有少量错误存在?/span>
(5)
当已l很难找出错误时Q可以开始进行抽h,q小规模q行试验性入库?/span>
(6)
在试验性入库成功后Q进行大扚w的实际入库?/span>
(7)
入库完毕Q对入库成果q行抽样查,查找不正的地方Qƈq行修正?/span>
(8)
GIS
数据入库正式完成Q交付用?/span>
数据库徏库主要有三个q程Q?/span>
First
--
数据库徏模。主要是Ҏ(gu)具体行业的特点及对其的理解,制定出数据规范,在逻辑上徏设数据库?/span>
Second
--
数据校验。主要是数据的正确性,保证数据质量?/span>
Third
--
数据入库。主要是获取的各种数据Q例如纸制数据,矢量数据Q栅格数据,遥感影像数据{准的导入到数据库中?/span>
下面Ҏ(gu)据库建库的整个过E进行详l分析?/span>
1.
数据建模
数据建模的目的是Ҏ(gu)对应用行业的理解Q在逻辑和概念上Ҏ(gu)据库q行设计Q其影响的是数据库徏讑֮毕后的合理性、通用性和可扩展性。徏模是否成功将直接影响到系l是否易用、易扩展Q甚x否成功。地理信息数据库建库q程中遇到的各种问题主要是数据问题,对系l成功进行了建模之后Q若数据存在问题Q将直接影响到数据的入库?/span>
2.
数据入库
在数据入库的q程中,其核心是如何依据所制定的数据规范将各种格式的数据,准确的、快速的导入到数据库中。在q个q程中遇到的问题Q其Ҏ(gu)是如何解决不同q_之间数据集成的问题。在?/span>
GIS
开发者》第八期?sh)子杂志中,曾提出共相式地理信息pȝQ其目的之一也是Z解决数据源的集成问题。在目前Q实现地理信息多源数据集成的方式大致有三U,x据互操作模式Q直接数据访问模式和数据格式转换模式?/span>
q?/span>
GIS
支持多种数据格式的技术框架示意图
(
注:该图引用自?/span>
GIS
开发者》第八期?sh)子杂?/span>
)
(1)
数据互操作模式。数据互操作模式?/span>
OpenGIS Consortium
Q?/span>
OGC
Q制定的规范。这U模式和数据入库的思\有所不同?/span>
(2)
直接数据讉K模式。直接数据访问模式是指在一?/span>
GIS
软g中,实现对其他Y件数据格式的直接讉KQ用户可以用单?/span>
GIS
软g存取多种数据格式。以
ArcGIS
ZQ它可以打开多种
GIS
q_及其它相兌Y件的数据?/span>
(3)
数据格式转换模式格式转换模式是传l的
GIS
数据集成Ҏ(gu)Q也是入库的基本思想。在q种模式下,其他数据格式l专门的数据转换E序q行格式转换后,可以进行入库了。例如,?/span>
ArcToolBox(
版本
9
以后被整合到
ArcMap
?/span>
ArcCatalog
?/span>
)
里,有多种数据格式转换的工兗?/span>
数据格式转换是目?/span>
GIS
pȝ集成的主要办法。现在基本上每个L
GIS
q_都提供了一些数据{换工P?/span>
ESRI
公司?/span>
ArcGIS
q_提供?/span>
ArcToolBox
工具,功能相对完善Q基本上支持所有市面上各种L?/span>
GIS
数据Q例?/span>
Autodesk
公司?/span>
DWG
格式文g?/span>
DXF
格式文gQ?/span>
MapInfo
公司?/span>
MIF
格式Q?/span>
Intergraph
?/span>
DGN
格式Q以及各U栅格图形数据等{,基本上满了一般数据入库的要求。此外,q有其它许多专门的数据格式{换工具可以用。由此可以看出,只要提供的源数据是正的Q符合规范的Q那么利用上q工具就可以数据导入到数据库中Q从而顺利的完成建库的工作。因此,源数据的准确性和规范性就成ؓ建库成功的十分关键的因素。由此看来,数据校验成为徏库能否顺利进行的关键所在?/span>
数据校验需要完成哪些工作,怎样q行校验与把x能在建库之初p预测各种潜在的问题,因此Q需要仔l分析导致数据不准确、不规范的原因。一?font color="#000000">情况下,需要从数据规范和数据生产过E中?/font>虑?br />
GIS数据建库基本思想(?