ArcGIS解决方案与超图的对比.docx
- 文档编号:8957702
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:369.82KB
ArcGIS解决方案与超图的对比.docx
《ArcGIS解决方案与超图的对比.docx》由会员分享,可在线阅读,更多相关《ArcGIS解决方案与超图的对比.docx(13页珍藏版)》请在冰豆网上搜索。
ArcGIS解决方案与超图的对比
ArcGIS解决方案与superMap的对比
1功能综述
1.1Server级产品功能
1.1.1服务管理机制
ArcGISServer提供了完整的服务管理机制和管理方法,包括通过桌面软件ArcCatalog进行管理,和通过网页访问的方式进行管理。
REST服务有专门的页面进行浏览和访问,检查服务的元数据和相关信息。
SuperMapiServer服务的配置管理异常简单,没有考虑系统的对象池化机制、进程回收机制、进程占用模式、存使用机制、安全控制、缓存机制,这些机制对于面向SOA的GIS服务器都是至关重要、不可或缺的,因此,iServer还没有发展为一个完善的GIS服务器产品。
由于iServer不能基于桌面软件进行管理,因此对于网页管理器,SuperMapiServer和ArcGISServer的服务配置管理的差异可以从以下方面进行对比分析。
1.1.1.1服务的发布方式
配置空间数据库,制作地图文档,配置地图服务,发布地图服务是GIS服务
发布的一般流程。
ArcGISServer可以基于.Net平台或Java平台发布地图服务,发布方式可以通过网页管理器,也可以通过桌面软件ArcCatalog,形式灵活方便。
SuperMapiServer只能基于Java平台发布地图服务,并且发布方式局限于网页管理器,不能在相应的GIS平台SuperMapDeskpro2008实现服务的管理和发布。
1.1.1.2服务组织管理
ArcGISServerManager或ArcCatalog支持管理多个ArcGISServer服务器,每个服务器中可以添加多个GIS服务,并单独设置服务的启停状态,在一个具体应用中可以使用多种不同的服务实现多源数据的集成和业务系统的整合。
SuperMapiServer网页管理器中的一个iServer服务器只能基于一个工作空间管理多个地图,同时每个地图均提供了基础地图服务、数据服务、网络分析服务、空间分析服务、交通换乘出行服务,不能设置这些地图或服务各自的启停状态,或全部启动,或全部停止,很难实现地图服务的精细化管理和多种服务的融合共享,这种不合理的机制给服务器的配置和应用服务的管理带来了极大的不便,更重要的是影响GIS平台在企业环境中的应用。
1.1.1.3管理页面风格
ArcGISServerManager经过四个版本发展,目前页面风格和页面逻辑已经比较成熟,左侧菜单仿Outlook风格简洁实用。
iServer网页管理器界面粗燥简单,对于各个子功能菜单没有精细设计和组织,网页对W3C标准支持差,页面定位方式为绝对定位,不能随浏览器窗口大小改变而变化。
1.1.1.4对象池化机制
GIS对象池,和数据库连接池类似,就是用一个大的容器,将一些已建立好的实例放入其中,随时听从调度,当请求的实例小于等于容器中最大实例数的时候,则无需请求新的server实例,如果请求数大于容器中最大实例数时,只能等待被占用对象的释放,设置对象池可以获得请求速度的提升,但必然要受到连接数的限制。
最接数需要根据具体的并发需求和硬件配置而定。
进行对象池化设置ArcGISServer可以灵活设置池化实例数,在程序设计中也提供了显示创建和销毁对象的方法。
SuperMapiServer没有提供类似功能。
1.1.1.5进程占用模式
一个实例占用操作系统一个进程,还是多个实例占用操作系统一个进程,ArcGISServer均可以根据实际应用进行设置,前者每个实例拥有独立的计算资源,实例与实例之间相互不影响,便于应用效率的提升和服务故障的排查。
SuperMapiServer没有提供类似功能。
1.1.1.6进程回收机制
服务器软件需要具备长时间不间断为应用提供服务支持和计算的能力,为了避免垃圾对象常驻存造成存泄漏,以及系统长时间运行带来的不稳定性,需要提供一种机制能够定期关闭进程、重启进程以保证服务的稳定和性能,进程回收的时间可以自行设置,一般为网络访问的空闲期,如凌晨3点。
ArcGISServer可以对进程回收进行详细设置,SuperMapiServer没有提供类似功能。
1.1.1.7缓存机制
1.1.1.7.1切片缓存
地图缓存机制是WebGIS面向公众应用的基础,也是提升用户体验的前提,地图切片的工作需要在应用部署之前进行,包括设置缓存级别、缓存比例尺、切片的大小、图片格式、原点坐标等等。
当底图数据更新时,还需要对地图缓存进行更新,这些都是地图缓存所必须的功能。
ArcGISServer9.3在9.2基础上进一步完善了地图缓存机制。
SuperMapiServer管理器中没有提供缓存生成和管理的功能,需要SuperMap研发人员提供相应程序用以切图,用户或二次开发人员无法自行对地图切片进行管理。
1.1.1.7.2动态缓存
当地图没有切片时,可以设置动态缓存,用户访问地图时,系统会自动缓存当前围的地图,以至于用户再次访问该围的地图时,无需动态请求服务器,实现按需减轻服务器的负担并提升用户体验的目的。
ArcGISServerMapResourceManager控件可以直接设置地图是否采用动态缓存,SuperMapiServer没有提供类似功能。
1.1.1.8安全机制
ArcGISServer通过本地安全和Internet连接安全来实现服务的安全机制,本地安全通过agsadmin、agsusers的权限设计实现,Internet连接安全则基于角色的访问控制来保护GIS服务器发布的容。
ArcGISServer通过多种机制实现Web服务和Web应用的安全:
a)用户和角色
对于ArcGISServerfor.Net,用户和角色可以存储于:
●Windows操作系统用户和组
●MicrosoftSQLServer
●自定义Provider
自定义Provider由标准ASP.NET成员资格管理框架提供支持,允许将用户和角色存储于不同的位置,如其他数据库、XML文件、动态目录、LDAP等等。
b)授权方式
不同的用户和角色存储方式拥有不同的系统授权方法,对于ArcGISServerfor.Net,授权方法有:
●Windows身份认证
●HTTP基本认证
●基于令牌的身份认证(客户端通过用户名和密码获取令牌,然后使用令牌去访问服务)
●基于窗体的身份认证
c)安全嵌套层(SSL)
SSL通过HTTPS方式加密用户在客户端页面的输入,保证输入信息的安全传输。
SSL可以在HTTP基本认证、令牌身份认证和窗体身份认证模式下使用。
ArcGISServerforJava有着类似的安全设计。
SuperMapiServer没有任何安全性设置,简单的安全控制,如页面登录超时控制没有提供,即使是最基本的页面管理器登录名和密码,也是通过明码的形式写入xml配置文件,安全性极差。
1.1.1.9应用程序创建和初始化
ArcGISServer可以在网页管理器中直接创建模板应用程序,迅速将发布的服务部署为一个应用供测试访问或基于模板进行扩展开发,部署过程中可以设置地图的初始化信息,动态缓存,存使用机制,图层显示样式等等。
SuperMapiServer同样可以在页面管理器创建应用程序,但创建过程生硬,同类图层如点、线、面的符号样式只能按照一种方式显示,服务和应用的耦合度高。
1.1.1.10存使用机制
当没有使用地图切片缓存时,ArcGISServerADF应用程序可以指定生成的临时地图的存放位置,可以是存或硬盘Output目录,前者消耗存但提升了性能,后者节省了存但损失了一定的性能,给用户选择的余地。
SuperMapiServer没有提供类似的机制。
1.1.2支持的服务
1.1.2.1常用服务类型
ArcGISServer提供的服务主要有:
地图服务、地理编码服务、空间数据服务、几何服务、地理工具服务、三维服务、栅格影像服务等。
相对而言,SuperMapiServer只能提供八种常用地图服务:
1.基础地图服务
2.数据服务
3.空间分析服务
4.网络分析服务
5.交通换乘分析服务
6.OGC服务
7.KML服务
8.GeoRSS服务
1.1.2.2REST服务
REST全称为RepresentationalStateTransfer(表述性状态转移),REST软件架构由RoyThomasFielding博士在2000年首次提出,它的五条关键原则是:
a)为所有“事物”定义ID
b)将所有事物在一起
c)使用标准方法
d)资源多重表述
e)无状态通信
WebGIS应用服务器实现RESTAPI,可以通过访问节点和URL地址的层次结构访问WebGIS应用服务器所发布的各种服务及服务所包含的容,如:
结构非常清晰,所有的信息交互由JSON格式数据完成,效率很高,可以应用于轻量级的客户端应用开发框架中。
ArcGISServer客户端开发接口均通过REST服务实现,SuperMapiServer没有提供REST服务。
(据说最新版尚未正式发布的SuperMapGIS6R产品系列提供了对Rest类型服务的支持,但实际应用效果未知)
1.1.2.3OGC和ISO/TC211国际标准的支持
ArcGISServer对OGC标准规提供了较好的支持,主要包括WFS1.0/1.1、WFS-T1.1、WMS1.1.1/1.3、WCS1.0/1.1/1.1.1、SLD1.0、CS-W2.0.1、KML2.1、GML等等,具体请参考《ESRI-SupportedOpenGeospatialConsortium,Inc.,andISO/TC211Standards》。
SuperMapiServer提供WFS1.0、WMS1.0/1.1.1、GeoRSS2.0、KML2.1的支持,对OGC规支持不好,服务发布比较繁琐。
ArcGISServer对ISO/TC211提供了较好的支持,用于功能规和质量保证,SuperMapiServer没有提供任何支持。
1.2对开发的支持
1.2.1.Net开发平台
ArcGISServerADFfor.Net基于.Net平台,是一套用来构建WebGIS应用的ASP.NET开发库,包括本地.Net库、COM库、Javascript库。
整个开发环境集成于VisualStudio2005/2008之上,同时帮助系统嵌入在MSDN中,方便开发人员查阅和调试。
除此之外,开发环境搭建好之后,VistualStudio中会提供一套模板应用程序,供初学者学习或作为项目程序的基础。
二十多种已有的Web控件以及自定义的Web控件全部支持AJAX,增强了应用的性能,改善用户体验。
.Net开发平台提供两种主要开发方式:
SoapAPI和AOAPI。
SoapAPI主要面向无状态应用开发,通过WebService调用ArcGISServer服务,AOAPI既能面向无状态应用开发,也可以面向有状态应用开发,通过DCOM方式远程调用COM对象实现复杂的GIS功能。
SuperMap官方上看到SuperMapiServer2008有基于.Net的版本,但是没有在实际项目中见过真正的产品,暂时不做分析。
1.2.2Java开发平台
ArcGISServerADFforJava和ADFfor.Net的开发架构类似,提供SoapAPI和AOAPI两种开发方式,用于实现无状态或有状态系统开发。
SuperMapiServerJava2008提供了一套完整的应用开发框架,包括WebGIS应用的基本功能和少部分高级分析功能,分析功能主要还是网络分析、公交换乘等。
SuperMap系列产品基于UGC共相式核,由于SuperMapDeskpro能够实现的分析功能有限并简单,所以SuperMapiServer所能实现的功能非常有限,除了提供对部分开源标准的支持之外,基本还停留在SuperMapIS.Net水平。
SuperMapiServerJava2008开发接口分为四大类:
CommonTypes、Components、Service、SAC,对象模型图如下图所示:
图5-1SuperMapiServerJava服务器对象模型图
1.2.3客户端开发
从功能实现的角度考虑,服务器端开发框架能够利用更多服务器开发语言的优势,访问地理信息平台基础对象库,实现更多更复杂的有状态或无状态应用,相对于服务器端开发框架,客户端开发框架更为轻便,通常用于实现一些通用性服务供公众或企业使用,用于无状态应用。
从用户体验的角度考虑,用客户端API实现的RIA(富互联网应用系统),极大改善了传统应用的用户体验和应用效率,Javascript、Flex、Silverlight分别是RIA开发的三面旗帜。
1.2.3.1RESTAPI
ArcGISServerRESTAPI是基于REST服务的一套全新API,通过GET或POST方式向ArcGISServer服务器发送请求,返回结果为JSON格式的数据,为基于REST服务的各种客户端API提供服务支持,除了ESRI已经推出的JavascriptAPI、FlexAPI、SilverlightAPI,开发人员可以使用其他客户端开发库进行拓展,如EXT等等。
ArcGISREST服务的出现,为企业级GIS应用开辟了一条新的实现思路,利用现在各种流行的富客户端技术为WebGIS用户提供了良好的用户体验和轻量级开发的选择,并且易于扩展,易于和互联网上各种服务实现Mushup融合共享,是ServerGIS发展的重要趋势之一。
SuperMapiServer不支持REST服务。
1.2.3.2JavascriptAPI
ArcGISServerJavascriptAPI使用的服务由RESTAPI提供支持,而JavascriptAPI在客户端的实现基于开源的Dojo库,并使用面向对象的方式封装了地图操作的基础功能,基于SOA架构理论上我们可以对JavascriptAPI进行无限扩展,但该框架不易于实现服务器端开发框架的所有功能,或实现方式受互联网应用的限制,如空间数据的高级编辑。
它所提供的主要功能有:
a)显示交互性的地图
b)执行一个GIS模型并显示结果(可以利用所有GIS地理工具)
c)基于在线地图或GoogleMap或VirtualEarth基础地图上显示业务数据
d)对属性或几何图形进行查询搜索并显示结果
e)查询地址并显示结果
JavascriptAPI包含的资源组件一般有:
a)Maps--支持Ags上cache和非cache地图的显示,指定投影参考系
b)Graphics--绘图,和通过鼠标、键盘等操作实现属性信息的展示或地理操作
c)Tasks--和C/S应用非模态对话框类似,提供Querying、Findingaddresses、Findingattributes、Identifyingfeatures、Geoprocessing功能
基于Dojo和其他库进行扩展--比如利用Dojowidgets,googlemapsapi,virtualearthapi等等。
ArcGISServerJavascriptAPI定位于轻量级的无状态应用,能够和其他的服务进行资源整合,实现"Mushup",最典型的应用就是通过GoogleMapExtension将GoogleMap地图作为底图,上面放置业务图层,访问ArcGISServer发布的GP服务。
SuperMapiServerJava提供了一套完整的JavascriptSDKAPI,用于客户端应用开发:
这套开发框架最大的问题在于接口相对独立,没有基于开源库,很难自行进行扩展和开发。
服务调用模式类似于ArcIMS,没有基于REST服务,因此SuperMapiServerJava客户端开发框架无法享用REST所提供的清晰的服务组织结构,并真正实现GIS共享。
1.2.3.3FlexAPI
ArcGISServerFlexAPI和JavascriptAPI类似,实现基于REST服务的无状态应用,因此该框架能实现的地图服务功能和JavascriptAPI一样,区别在于客户端的实现和应用,Flex更适合于完整的纯GIS地图展现与应用,当涉及到与大量网页HTML交互时,采用JavascriptAPI框架更合适。
1.2.3.4SilverlightAPI
ArcGISServerSilverlight/WPFAPI是ArcGISRIA开发的一种新的选择,同样基于REST服务用以实现无状态的应用,提供良好的用户体验和开发方式。
该API构建于Silverlight/WPF平台之上并与VisualStudio2008整合,开发简便易用。
1.2.4Mobile终端开发
Mobile移动终端应用是信息化发展的趋势,Mobile结合GPS、GIS可以实现终端在途监控,任务移动处理,历史轨迹分析,商业智能分析等。
ArcGISServer提供了一套Mobile终端的开发接口和Mobile服务,能够实现基于ArcGISServer的移动终端应用,便于和其他基于ArcGISServer应用程序进行无缝整合。
SuperMapiServer不支持Mobile终端开发和Mobile服务。
1.2.5针对开发的总结
1.2.5.1GIS服务决定功能实现
基于SOA架构的GIS服务器软件,为各种不用的应用场景提供不同的GIS服务,来满足复杂业务环境对GIS系统的要求。
不论是ArcGISServer还是SuperMapiServer,都是基于SOA架构而构建,它们对服务的管理、对服务标准的兼容、对服务类型的支持、对服务功能的实现,都将直接影响该软件是否能够真正的适应企业级应用。
通过上文对两者服务类型和标准支持的对比,可以看出ArcGISServer的服务设计更为成熟和完善,有能力支撑各种类型的客户端应用和业务功能的需求。
SuperMapiServer的服务设计比较初级,管理方式简单,面临真正的项目很难基于SuperMapiServer直接进行二次开发。
1.2.5.2开发方式决定功能实现
ArcGISServer标准服务支持ADFfor.Net、ADFforJava、ADFforMobile开发,ArcGISServerREST服务支持Javascript、Flex、Silverlight/WPF客户端开发,并且可以扩展到任意客户端开发平台。
这些开发方式面向不同的开发需求,可以实现不同的应用功能,选择多种多样。
SuperMapiServer提供了Java和.Net(没见过实际产品)两种基于服务器端的开发接口,以及Javascript客户端的开发接口。
Javascript客户端开发使用部分ASP.NetAjax开发库,为传统的WebGIS开发方式,类似于ArcIMS,指定服务器地址、端口、地图名称等参数获得连接,向服务器发送请求并获得响应,没有提供统一的面向服务的开发方式,不易实现系统的扩展和整合,不易为用户提供Flex、Silverlight等良好用户体验的开发方式。
虽然目前超图官方宣布在其下一代发布的SuperMapGIS6R产品系列中将提供对Flex,Silverlight等开发方式支持,但尚未有成功的应用案例,从目前了解的技术资料来看,其提供的功能也极其有限。
1.3功能扩展
ArcGISServer和SuperMapiServer均能提供面向服务的应用,系统集成能力和功能扩展能力是软件必不可少的。
ArcGISServer提供了多种符合SOA规、符合OGC标准的服务,除此之外,GeoprocessingService(简称GP服务)为系统的扩展提供了非常坚实和灵活的基础,通过AO定制Toolbox,将Toolbox发布为服务,以实现各种复杂的功能应用。
ArcGISServer相比过去ArcIMS优势之一就是提供了几乎所有桌面的GIS功能,但是由于网络环境的种种限制,很难或不便直接通过各种客户端的指令去访问ArcGISServer提供的这些功能,即桌面开发的思想无法直接应用于面向服务的软件架构中,因此,ArcGISServer实现了将功能封装为GP服务,通过标准服务将
功能接口暴露出来,服务于应用。
GP服务的设计是一种标准的设计结构,而GP服务所实现的功能是多种多样的,或由系统直接提供,或由开发人员进行自由定制,以面向服务的方式实现了对原桌面复杂GIS功能的调用,这也是基于SOA的ArcGISServer架构优势所在,在系统集成和企业级GIS应用中具有非常重要的意义。
SuperMapiServer基于超图共相式设计,但无法将底层功能发布为服务供应用层使用,二次开发人员很难自行设计面向服务的GIS功能,即使直接修改软件底层,由于SuperMapDeskpro2008桌面功能所限,开发人员所能发挥的空间有限,无法适应系统集成和企业级GIS应用的大环境要求。
目前SuperMapiServer2008只能支持已经提供的五种功能有限的基本服务,并且服务管理能力很差。
2资源对比
2.1文档和例子代码
ArcGISServerfor.Net文档嵌入在MSDN中,ArcGISServerforJava文档嵌入在Eclipse帮助或其他IDE环境中,ArcGISServer文档既是开发帮助文档,也是全面学习ArcGISServer的专业教材。
安装在本地的各种平台下的例子代码有一百多个,在线资料库中有更多更完整的文档和代码资料。
SuperMapiServer提供了一份CHM格式的联机帮助,容简单,服务器端开发和客户端开发的代码例子各一套,学习资料稀缺。
2.2在线资料库
ArcGISServer在线资料库相当丰富,不仅包含了ArcGISServer介绍资料、典型案例、音频讲解、在线Demo,还按开发方式分为不同的专题,包含许多成熟应用代码和各种在线演示,系列代码教程可以帮助初级开发者从入门到精通。
ArcGISServer资料库:
resources.esri./arcgisserver/SuperMapiServer在线资料非常有限,仅有一篇文字介绍,和几个在线演示Demo,没有供开发者学习的资料和例子代码。
SuperMapiServer资料库:
2.3中文社区
ESRI中文社区有四万多名会员,每天发帖量400-800,其中包含丰富的技术教程和开发经验讨论文章
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ArcGIS 解决方案 超图 对比