视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
浅谈基于Flex的RIA技术实现完美的WEBGIS开发
2025-10-03 15:17:27 责编:小OO
文档
浅谈基于Flex的RIA技术实现完美的WEBGIS开发

胡晓婷

(西北大学城市与资源学院 陕西 西安 710127)

摘要:随着计算机网络技术的高速发展,互联网已经日益成为应用程序开发的默认平台。但是,在当今的GIS领域中,用户对GIS系统要求越来越高,如在用户有复杂交互、地图无缝平滑缩放等需求的时候,传统的Web技术很难满足用户的要求。Flex(最新版名为 Flash Builder)是优秀的RIA开发技术之一。本文首先分析RIA相比传统Web应用的优势,引入基于RIA的Web开发平台;然后结合 Flex 的特点基于ActionScript 脚本语言和MXML标签语言,对Flex RIA的软件框架、设计模式以及数据交互等进行探讨;最后引用一些实例,展示基于Flex的RIA技术和REST架构实现完美的WebGIS开发,并对RIA的发展趋势浅谈GIS的发展方向。

关键字:RIA,Flex,MXLM,ActionScript脚本语言,WebGIS开发

1 引言    

随着计算机网络技术的告诉发展,面对日新月异、纷繁复杂的新技术、新方法,对于正处于转型期的GIS技术,我们很难预测它在未来十年内的走向,但是,回顾其发展历程启发了我们一下几点:首先,目前推动IT技术进一步发展的驱动力有:硬件性能、网络宽带和微型化;其次,IT发展历史从大型机到小型机再到微型机,从基于主机模式到C/S模式再到B/S模式的开发模式,经历了几次系统结构方面的重要转变,从面向专家型到面向大众化普及,几十年的发展,极大地推动了世界的进步且丰富了我们的生活。

在这一发展过程中,用户界面表现形式也从DOS到桌面再到Internet,它随着应用需求的日益复杂性进一步向前发展。而现在的发展趋势即是互联网软件在向客户端整合、客户端在向互联网融合。RIA 作为一个互联网领域越来越火的术语,究其根本在于它相对传统Web应用的诸多优势。RIA 作为“富互联网应用”的代名词(Rich Internet Application),从名字上就已经可以看出它最大的特点:Rich,这个Rich是多方面的,包括丰富的表现力、富有交互、内容丰富、基于富客户端引擎等等。采用丰富互联网应用程序技术,网络应用程序可以提供更具有交互性和响应性的用户体验,其研究是非常有意义的。Adobe Flex则是一套完整的综合性RIA技术解决方案,Flex提供了一种高效的开发模型,能够很容易地与过去很多年积累下来的标准及最佳实践相集成。Flex开发模型使用MXML来设计和布局用户界面,ActionScript来创建客户端逻辑。因此RIA时代已经到来,对该技术进行学习和研究,构架新时代完美的WebGIS系统是十分有必要的。

2 RIA介绍

2.1 RIA相比传统Web应用的优势

传统Web应用的很多不足都来源于HTML的静态性,虽然由于JavaScript脚本的存在可以在浏览器中实现一些客户端交互和效果;同时,Web2.0浪潮推广的 AJAX 技术也使浏览器和服务器的通讯更及时、页面表现也更友好。但是,传统Web 的根基使这些进步都是局限的,在声音、视频、Socket通讯、本地存储这些方面它都捉襟见肘。 

RIA 则在某种程度上了传统Web应用的理念和设计。为了能提供客户端更优秀的表现和交互能力,RIA 一般会在客户端添加一个引擎,这个引擎和Java虚拟机的作用很相似,RIA 则会在返个引擎中运行所有编译过的脚本及相关的资源。通过这个引擎的中介作用,RIA 就把传统Web应用中很多在服务器上执行的功能(比如输出页面)转移到了客户端。一方面减轻了服务器的压力,另一方面也提高了客户端的处理和交互能力。

通常,RIA一般会提供比较出色的表现能力,这也是RIA之所以被称为“Rich”的最重要原因。 传统的Web页面即使通过JavaScript脚本的帮劣也很难达到RIA 能做到的页面效果和功能,特别是 GIS领域,在用户有复杂交互、地图无缝平滑缩放等需求的时候, RIA 的这个优势尤其突出。 由于RIA在表现方面的特色,用户在RIA与传统Web站点之间能感到明显的体验上的差距,返是RIA 受欢迎的重要因素之一。 

另外值得一提的是 RIA 的标准性。传统Web应用在面向不同的操作系统和浏览器的时候,呈现出的页面可能千差万别;RIA则不同,由于操作系统或浏览器中都会有一个客户端引擎来运行我们的RIA,因此在各种支持的操作系统和浏览器中都没有差别,也就是说,你设计好的 RIA 在各种环境下表现地都会很标准。 

总的来说,RIA相比传统Web应用的优势主要集中在以下几点: 

具有更加丰富的界面,在不重载界面的情况下可提供更多迷人的用户体验;

可向用户提供由用户事件触发的实时反馈和验证;

可实现与传统桌面应用程序一致的感官;

包含完整的多媒体体验 如音频和视频。

2.2 RIA的局限性

当然,RIA 也并不是没有缺陷,它也有它的局限性。RIA 的局限性主要在两方面:其一,是客户端引擎的下载和安装;其二,是目前难于做SEO(搜索引擎优化Search Engine Optimization)。 

事实上RIA的概念和若干年前的 Java Applet 很相似,但是Java Applet已经基本消亡,如今的RIA 却突然火爆,这和 RIA的缺陷在目前得到某种程度的补偿有关系。 首先,客户端引擎的下载和安装。比如Flex,由于Flash在互联网的应用极其普遍,其赖以生存的Flash Player 在各种系统的占有率在 97%左右;Silverlight 则估计会随着下一版本操作系统的推广成为将来Windows用户的标准配置,因此,客户端引擎对它们来说都不是很大的障碍。 而对于搜索引擎优化,一方面,另有面向公众的网站对这方面要求比较高,其它业务型的企业级应用则并不很关心,即使关心也可以把一些无需被搜索的内容放到 RIA中(比如地图) ,而在Web页面中保留需要被搜索的内容;另一方面,Google等搜索引擎也正在和Adobe等公司进行深入合作,将RIA中内容的索引提上了日程, 可以看到,RIA 的迅猛发展使搜索引擎也开始关注这块重要领地了。

3 ArcGIS Server的REST接口

REST(Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。REST本身并不涉及任何新的技术,它基于HTTP 协议,比起SOAP和XML-RPC 来说它更加地简洁、高效,越来越多的大型网站正在使用REST风格来设计和实现。 

REST最突出的特点就是用 URI 来描述互联网上所有的资源,Roy Fielding博士通过观察互联网的运作方式对其进行了抽象,他认为:设计良好的网络应用表现为一系列的虚拟“网页” ,或者说这些虚拟网页就是资源状态的表现(Representational);用户选择这些链接导致下一个虚拟的“网页”传输到用户端展现给使用的人,而返正代表了资源状态的转发(State Transfer)。 

REST主要有以下的特点: 

   资源通过URI来指定和操作 

   对资源的操作包括获取、创建、修改和删除资源,这操作正好对应 HTTP协议提供的 GET、POST、PUT和DELETE方法 

   连接是无状态性的 

   能够利用Cache机制来提高性能

ArcGIS Server原生地支持REST,也就是说在安装完ArcGIS Server后 REST接口已经存在。 使用REST接口最重要的就是 REST服务目录,它是将ArcGIS Server提供的REST资源通过HTML表现出来的 URL。

4 RIA应用利器Flex

4.1初识Flex

Flex是Adobe公司为支持RIA而开发和部署的一系列发展中的技术和产品线的概括,其中包括:Flex SDk、Flex Builder、LiveCycle Data Services等。Flex就是使用 ActionScript脚本语言和MXML标签语言制作SWF类型的应用。

Flex的前身是Flash,Flash是极为流行的互联网矢量动画解决方案,目前据统计97%的浏览器都安装有Flash Player插件用以播放swf动画,其中未安装的3%还有很多是因为某些场合的安全导致的,可以说Flash是极为普及的RIA平台。但是由于Flash 是一个动画制作软件,其中有很多比如时间轴、影片剪辑等程序员不容易理解的概念,因此Macromedia公司推出了Flex。Flex抛弃了许多动画设计术语,转而使用程序员喜欢的方式开发RIA应用,并且Flex能编译生成可以在Flash Player中运行的swf文件,这无疑吸引了大量程序员,并实现了和 Flash 平台的无缝拼接,从而利用Flash平台多年积累的大量素材、美工和设计者。 

Adobe公司在2005年收购了Macromedia公司,并在第一时间将Flex/Flash冠以 Adobe的商标推向市场,可见其对RIA市场和 Flex/Flash的重视。目前,可以说Adobe Flex/Flash是最流行且最成熟的RIA平台。

4.2 Flex 的语言

Flex主要采用MXML+ActionScript来编写程序界面,然后通过编译器编译成Flash Player能够执行的SWF文件并发布使用。

4.2.1 MXML 语言标签

MXML 语言是专门用于Flex程序中,描述界面表现的一种XML 标记语言。MXML是Flex特有的,是区别于Flash的标志。我们可以通过它来描述程序的整体布局,控制组件的样式和外观,也可以构建非可视化的对象,比如XML数据与服务器端通信的WebService组件的数据源等。MXML是XML的扩展,Adobe的XML。

例:

以上就是MXML其中的mx是Adobe默认的Flex框架的命名空间。第1行声明XML的编码为utf-8,使程序支持大部分语言编码。第4、5行放置了两个显示控件,一个是按钮 Button,id指定为“bt1”,按钮上显示“欢迎学习flex”;另一个是文本输入框TextInput,id指定为“tx1”,该文本框的指定宽度为“100”。

在以上的代码中像 mx:Button、mx:TextInput即是MXML的语言标签。众多的语言标签有机结合在一起就构成了一个完整的应用界面。

4.2.1 ActionScript 语言

Flex=ActionScript+MXML。如果说MXML是描述界面的语言,那么ActionScript就是描述逻辑的语言。AS (ActionScript)作为Flash/Flex中的编程语言,经历了1.0 到3.0 版本的转变 从最初的脚本语言演变为面向对象的编程语言AS是由 Flash Player中的 AS 虚拟机(AVM)来运行的,通过AS,Flex/Flash中的内容和应用拥有了交互性和数据的处理及其他功能。

4.3 基于FLEX的RIA典型应用:Adobe Photoshop Express

Photoshop Express(http://www.photoshop.com/express/)是使用FLEX技术开发的影像编辑器,在网页浏览器内利用 Flash player 运行,我们可以将它理解为“Photoshop 在线版”。可以使用Photoshop Express直接在线编辑图片,虽然功能没达到专业人员的需求,但 Photoshop Express 的预设功能已经足够强大和完善 ,能够解决修图中 90% 以上的需求。这个经典案例充分体现了“FLEX 技术是将传统的桌面应用程序搬到浏览器里运行的技术”这一说法。

5 基于RIA的网络GIS应用实例——青海省森林基础信息服务系统

5.1 系统架构

系统在逻辑上设计为3层架构,即前台地理信息应用表达层、中间件地理信息应用服务器层和后台地理数据库服务器层。

5.1.1前台地理信息应用表达层

前台地理信息应用表达层基于Internet/Intranet ,通过智能客户端(如Flash Player) 和浏览器(如IE)以2维的形式显示、查询和分析地理信息。各种系统功能通过中间件应用服务器的Web服务组件来实现。中间件应用服务器实时响应前台的应用请求。各种地理信息或者以文件的形式存储在Web 服务器上,或者以数据库的形式存储在数据库服务器上。

5.1.2 中间件地理信息应用服务器层

中间件地理信息应用服务器是整个系统的核心,所有地理信息系统功能在该层实现。该层由各种构件组成,构件分为. Net 组件、Windows 控件、Web 控件和Web 服务组件等4 种类型。

5.1.3后台地理数据库服务器层

主要完成多源、多尺度数字地图、数字正射影像等地理空间数据的存储和管理。该层分别由地图数据库和遥感影像数据库组成,通过文件和大型关系数据库管理系统进行一体化存储和管理,并提供数据备份、数据存档、数据服务、数据安全等机制。

5. 2 基于RIA的网络GIS的功能

系统使用Flex开发客户端程序,采用功能模块化思想,每一功能模块以Web 组件形式存在,主要包括以下3个模块。

2 维地图显示。实现2 维地图的显示、放大、缩小、漫游、量算、图层控制等功能。

地图要素查询。实现地图要素、空间坐标等查询功能。

报表统计。实现森林资源专题信息统计功能,并生成特定格式报表文件,打印输出。

RIA 通过以上Web 服务组件完成对各个地理信息系统功能的调用,通过自身强大的表达能力实现丰富的用户界面。

暂缺

6 结论

人们对开发具有高度互动性、丰富用户体验以及功能强大的客户端的追求是不变的。因此有理由相信,拥有成熟技术和极高市场占有率的Flash客户端将会在RIA道路上越走越远 ,基于RIA的网络GIS极有可能成为未来网络GIS的主流。

参考文献:

[1] 董龙飞,肖娜.AdobeFlex大师之路[M].电子工业出版社,2009.5

[2] 汪林林,胡德华,王佐成,宋华.基于Flex的RIAWebGIS研究与实现[J]. 计算机应用, 2008.12(12)

[3] ArcGis RIA开发实践[M].2009

[4] 宋朝晖,刘晓菲.浅谈基于Flex技术的RIA设计[J]. 电脑知识与技术,2010.1

[5] 陈显军.基于Flex的RIA应用于研究[D].电子科技大学,2007下载本文

显示全文
专题