ArcIMS开发模式小结 (转)

如何利用当前流行的开发环境(.net或java)开发基于ArcIMS的应用框架?笔者通过对ArcIMS的了解和实践,总结出一些心得记录下来,以备后用。
     但在对本Blog命题时,有所迷惑,不知用“模式”是否妥当。因此,有必要对“模式”这一词有所了解。

1、 模式(pattern)(摘录)
    模式三要素:特定环境、问题和解。
    在软件设计中,设计模式是借用了建筑中的设计模式的概念,或者可以说是建筑中的模式在软件开发中的引申和应用。因此,模式的三要素对于设计模式也是其三要素。
    从层次上划分,软件开发中的模式可分为:
     1)体系结构模式(Architecture Pattern);
     2)设计模式(Design Pattern);
     3)程序模式(Programming Pattern);
    此三种模式的粒度大小依次递减。
    目前对于设计模式的定义普遍使用的有以下三个版本:
     1)一组相互通讯的对象和类,共同解决特定环境下的一般设计问题。
     2)在特定环境中反复出现的具体形式的一个抽象。
     3)对于特定环境下反复出现的设计问题,给出了经过充分证明的一般解决方案。

2、ArcIMS开发的靶心
    靶心,核心、焦点也。要寻找开发的靶心,首先得了解ArcIMS的体系架构。本文不对此作解剖(GIS论坛或http://www.esrichina-bj.cn/有ArcIMS相关资料),但应该知道ArcIMS各层之间信息传输的标准---ArcXML。
    因此,ArcXML即为ArcIMS开发的靶心。ArcIMS二次开发人员有必要看看ArcXML的帮助文档,动手写一些ArcXML的AXL文件,并用Author打开看看ArcXML的魅力所在(注:通过Author来定制AXL是不全面的,很多标签须手工描述)。在看ArcXML标签时,特别注意区别ArcMap Server和Image Server对相同Element的描述,这样有助于设计比较通用的业务中间层。
    找准了靶心,再看看ArcIMS体系结构,是不是对其理解更深了一步?

3、开发模式
    体系结构模式:以ArcXML为核心,遵循ArcIMS体系结构的设计思路。
    设计模式:应开发者习惯和偏好而定,如可选用工厂设计模式、创建模式或几种模式的混合,等等。一般看看开发之类的书籍即可获得灵感。
    程序模式:以选用什么连接器(AcrIMS Connectors)而定。
   
    本节主要介绍程序模式。

    ArcIMS Connectors包含:Servlet、ActiveX、Java、.Net Link、ColdFusion(不甚了解)。
    1)Servlet Connector是支撑ArcIMS运行的关键连接器(?),用于ArcXML的通讯;
    2)ActiveX Connector是以ArcXML为封装对象,用COM技术封装的业务逻辑(已定义ArcXML)中间件;
    3)Java Connector与ActiveX Connector类似,用Java技术实现的中间层开发包;
    4).Net Link(9.2改为*.ADF.IMS)定义了与空间服务器通信的接口(传输ArcXML),目前没有类似于ActiveX Connector或Java Connector的方法实现(如实现Buffer的方法;.Net  Link如果要实现,即须编写类似Buffer实现的ArcXML传输到空间服务器)。

    根据选用连接器的不同,程序设计模式大体包括:
    1)以JAVASCRIPT为设计语言,以ArcXML为传输接口的实现模式;
    2)以调用ActiveX Connector(aims_ActiveX.dll)接口和方法为主的程序设计模式;
    3)以调用Java Connector(arcims_jconnect.jar)接口和方法为主的程序设计模式;
    4)以.Net设计语言为基础,以ArcXML为传输接口的实现模式;
    以上模式中,2)3)模式开发相对简单;1)4)须充分理解ArcXML语言。

posted @ 2007-06-17 19:58  忧郁的风  阅读(221)  评论(0)    收藏  举报