ArcGIS Server 开发系列(一)--编程框架总览

    作者:Flyingis

    ArcGIS Server是一个发布企业级GIS应用程序的综合平台,如果想对ArcGIS Server基础有更多的了解,可以先看看《ArcGIS Server 体系结构》、ESRI(中国)BBS论坛ESRI网站。这里及接下来的一系列文章将主要介绍ArcGIS Server开发相关的内容(如不加说明,后文中Server专指ArcGIS Server),由浅入深,充分利用Server的资源来构建我们的企业级应用,同时也可以了解Server的优势及不足,在实际应用中扬长避短。

    进行Server开发之前,我们首先需要了解Server开发的整体架构。下图(截取自官方文档)可以看到,Server提供了一系列的应用开发途径,从 1到4难度逐步增加,当然功能和可定制性也越来越强,我们可以充分利用Server提供的这些资源来构建我们的应用。


    Web应用开发

    Server为Web应用开发提供了一系列的开发方式,在visual studio 2005中可以直接使用Web Mapping Application template建立应用,它包含了Web ADF框架,是学习Server开发的入口。对照上面的示意图,可以这样来理解,如果想使用各种Web控件加上少量代码来构建Web应用,可以直接使用第一种途径,这样的应用比较死板,让人感觉有点想搭积木,程序员可能没有任何成就感,好处是开发迅速,适合入门学习或做个简单的Server演示。如果想在 Common API基础上,使用各种通用的functionality,通过各种data source类型来定制Web ADF,可以使用第二种开发途径。如果想使用Common API,并且需要通过Common API调用specific API来定制Web ADF,可以通过第三种途径来开发。

    Web Service开发

    Web Service是什么不用再介绍,ArcGIS提供了两种类型的Web Service创建方法:GIS Web Service和Application Web Service。

    GIS Web Service提供了一种将ArcGIS Server Object(Local data source)发布为ArcGIS Server Web Service(Internet data source)的ESRI标准,GIS Web Service不用于开发,通常它们是用来发布信息和提供资源,ArcMap就可以直接使用GIS Web Service的资源而不用进行任何开发,另外Web ADF控件和Common API也可以使用GIS Web Service资源。因为GIS Web Service基于标准web service,它可以作为传统web service来使用,ArcGIS Server提供了SOAP API进行相关的开发,以后的学习中会使用到。

    Application Web Service是基于标准web service建立的应用,使用一种ESRI的data source进行开发。因为web service没有用户接口,上图中途径一不适合这样的应用,途径四是最适合的,因为web service可充分利用ESRI提供的各种data source specific API的所有functionality。

    桌面客户端应用开发

    ESRI在桌面客户端应用中提供了两种实现GIS功能和服务的方法:ArcGIS Engine和data source specific developer APIs,上图中只有第四种途径可用于桌面客户端应用。

    ArcEngine不论是和本地GIS资源交互,还是使用远程数据资源,都拥有丰富的控件和众多API,但它在使用和分发之前必须进行授权注册,而任何data source specific developer APIs都可以在桌面客户端应用中编程使用。

    移动应用开发

    移动应用和Web应用、web services比较类似,但它们是为某一个特定的客户端环境而设计,如PocketPC。Mobile ADF是为移动应用定制的开发框架,通常使用途径四来进行开发,这样可以充分利用ArcGIS Server Web services和SOAP API提供的功能。

    在以后的实际开发过程中,我们会逐步了解上述各种开发方式,并不断深入。

    参考资料(部分翻译):
    ArcGIS Server 9.2 .Net开发文档http://edndoc.esri.com/arcobjects/9.2/NET_Server_Doc/developer/getting_started.htm

Flyingis @ China
email: dev.vip#gmail.com
blog: http://flyingis.cnblogs.com/

posted @ 2007-08-09 16:04 Flyingis 阅读(10766) 评论(22)  编辑 收藏 网摘 所属分类: ArcGIS Server

  回复  引用    
#1楼2007-08-12 11:44 | pp315[未注册用户]
  回复  引用    
#2楼2007-08-23 15:07 | victor[未注册用户]
楼主文中有出错误:“Web应用不能使用第四种途径。”
ESRI文档上说的是WEB应用可以使用所有的4种途径,而只有第四种途径可以用来开发桌面客户端应用程序。原文如下:
“For example, all paths can be utilized in a Web application, but only path IV is available for Desktop client applications.”

  回复  引用  查看    
#3楼[楼主]2007-08-23 15:41 | Flyingis      
@victor
感谢指正!
当时看得快就写下来了,这句话的确是错了,web应用可以通过第四种途径来开发,后续文章中会涉及到。

  回复  引用    
#4楼2008-03-20 16:27 | anticopy[未注册用户]
抄亦有道

既然是翻译的,为什么不注明呢?

  回复  引用  查看    
#5楼[楼主]2008-03-20 21:59 | Flyingis      
@anticopy
做server开发的都知道这篇大部分来自于文档,如果多些人参与翻译server开发文档,受益的人只会更多。

这是疏忽了,如果是引用他人的原文,我会给出链接,一些翻译的文章,也给出了出处,可以看我其他的文章,我绝大部分文章都是学习之后的总结,和实际开发的经验,不少也被直接转载甚至没有标明出处,这些更让人深恶痛绝,没有明确用于商业目的也没有再追究,因为没有这些精力,有时间能写点东西和大家分享,大家受益了,一起学习了,就够了。楼上有朋友已经说明了文章来自于文档,如果觉得不妥,大可帮我把原文地址写在下面,然后提醒我加上,没必要带有愤的味道,还匿名留言,没什么意义。

原文出处已经加上,闲暇之余才能写点东西,时间有限,如果有疏漏的地方请大家帮忙修正。

  回复  引用    
#6楼2008-03-25 13:34 | hsg77[未注册用户]
写得好!正在学习ArcServer9.2.ing
  回复  引用    
#7楼2008-04-01 17:16 | bingle[未注册用户]
想请教一下楼主:我用arcgis server manager生成的应用能显示地图。而在visual studio里面用web map application生成的应用不能显示地图。我在visual stdio里面把identity已经加进去了。不知楼主有没有遇到类似的情况,多谢了。
  回复  引用  查看    
#8楼[楼主]2008-04-02 09:00 | Flyingis      
你用的是visual studio哪个版本?vs2005中有mapresource manager控件需要修改一下属性,你看看《ags开发系列》后面的文章。
  回复  引用  查看    
#9楼2008-11-14 22:58 | 陈孝勇      
楼主,你好,我准备开始学习arcgis server做毕业设计开发一个WebGis,请问看什么书籍比较好呢?能不能推荐几本,万分感谢啊~~~~~找了好久都找不到这方面的书籍
  回复  引用  查看    
#10楼2008-11-14 22:58 | 陈孝勇      
对了,我用的是ARCGIS SERVER9.2+C#
  回复  引用  查看    
#11楼[楼主]2008-11-15 11:34 | Flyingis      
@陈孝勇
先装vs2005/2008和msdn,然后安装server,看msdn for server文档就行。暂时没有特别好的书籍,不推荐。

  回复  引用    
#12楼2008-11-18 09:51 | zssai[未注册用户]
楼主,你好。我准备利用ArcGIS Server9.2 + java开发WebGIS,基于Java的资料似乎特别少。两天了,依然一头雾水。不知道,能不能推荐一些资料或者思路。如果有一个简单的完整例子更好。谢谢啦!
  回复  引用  查看    
#13楼[楼主]2008-11-18 21:59 | Flyingis      
@zssai
server 9.2 adf for java开发资料确实不多,9.3文档丰富多了,如果没有光盘可以参考在线的。

  回复  引用    
#14楼2008-12-30 15:30 | 海风无限[未注册用户]
楼主的文不错,看来对arcGIS很有研究,正学习arcGis,想结合java 开发一个简单应用嵌入到原来的mis中,就是苦于 没有下载arcGIS Server 的地方,楼主能提供个不,万分感谢!!
  回复  引用    
#15楼2009-02-02 10:57 | zhongguolong[未注册用户]
工作需要正要接触WEBGIS,时间紧,任务急,所以很想找一个好的博客,从前人身上学习快速学习到好的实用的东西,作为自己的技能提升吧。因为很想交流,所以先占个位置
  回复  引用    
#16楼2009-04-12 18:16 | ecicewine[未注册用户]
能帮忙解决一个flex中地图查询的问题吗?
FindTask查询时,FindResult的graphic.geometry为空,Samples里的findtask可以查询到结果的空间属性,但是换了自己的地图后,能查询到结果,但是debug到graphic.geometry时出现Error #1009: 无法访问空对象引用的属性或方法。
谢谢了!

  回复  引用    
#17楼2009-05-20 10:35 | 娟子&Flex
16楼,你也在用flex开发webgis吗?我也在学,正在研究arcgis flex api 的sample。请问我要怎么发布自己的地图?arcgis server我还没接触过,从哪开始学起?有什么好的书或教程没有?楼主有这方面建议吗?可以发我邮箱,谢谢了!我是在读硕士,明年就要毕业了,很着急!我本科是学计算机的,所以gis方面比较欠缺。
  回复  引用  查看    
#18楼[楼主]2009-05-20 16:10 | Flyingis      
@海风无限
我也不知道哪里可以下载,只知道盗版不少:)

  回复  引用  查看    
#19楼[楼主]2009-05-20 16:12 | Flyingis      
@娟子
就顺着这个系列往后看吧,不懂的地方帮助文档有更详细的说明。

  回复  引用    
#20楼2009-05-21 11:43 | 娟子&Flex
谢谢楼主,没想到这么快有回复了。那我就去研究arcserver的帮助文档了,反正也找不到什么好的中文书籍,不懂的我就来这问楼主啦,呵呵



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 849375




相关文章:

相关链接: