Online Book Reader

Home Category

Beautiful RIA [10]

By Root 407 0
了一种组件化的方式引入 Flex,这是因为我 们对这部分技术的引入并不是从零开始,为了应对企业级应用开发的需求,我们很早就构建 了一个企业级应用开发平台——GAP(Global Application Platform)平台,这是一个 Full-Stack 的应用开发平台,除了底层框架、组织权限、工作流引擎、数据字典等等,还包括界面框架、 通用 Web控件,Ajax控件等,Flex的引入是对现在平台的补充和完善。

基于以上考虑,我们对 Flex的应用分为三个阶段。

 首先,进行 Flex与 GAP平台的整合,包括组件化集成、前后台通信机制的设计,在这 一阶段我们主要采用了 ant和 xdoclet技术进行组件的打包、资源文件的合并,采用 Spring BlazeDS Integration技术与 GAP平台框架进行交互访问,通信方式采用了 Felx提供的 RemoteObject。(Spring BlazeDS Integration是 Adobe与 Spring共同联合开发一个开源项 目,其目标是开发者可以利用 Spring开发模型通过 Flex、 BlazeDS、Spring以及 Java技 术创建 RIA)。


 其次,构建 Flex图形组件框架,对 Flex提供的控件进行封装、扩展,形成针对企业应用 的个性化 RIA控件库。在这一阶段我们主要是基于 Adobe的开源项目 Cairngorm进行构 建的。Cairngorm是一个基于 Flex技术的微内核的 MVC框架,设计简洁而易于扩展,非 常适合构建自己的 RIA控件库。

 第三,使用 Flex技术解决企业应用中的实际问题。

下面我们主要从实际应用的角度来看一下 Flex在企业级系统开发中能够做什么。

一、企业组织结构的图形化展示

凡是为企业开发过系统的人都知道,企业的组织结构管理和权限管理几乎是每个项目或产品 不可或缺的基础组件之一。从功能角度分析,GAP平台的组织权限系统已经非常完善了,无 论是多关系的组织结构、细粒度的权限控制,都可以非常好地满足客户对于组织管理和安全 的需求。直到有一天一个客户提出,能不能把那棵呆板的组织机构树变成组织结构图,如果 能支持图形化操作就更好了。听到项目组给我们反馈的这个需求,第一个反应就是拒绝,因

Flex技术在企业级开发中的应用

为实现起来太麻烦了。

原有的组织结构树如下图所示:

客户需要的展示方式可能是:

也可能是:

Flex技术在企业级开发中的应用

同时企业客户还希望能够进行图形化操作管理,这种功能如果通过 Javascript来实现无疑是 困难的,而 Flex技术在处理类似的功能时则具备先天的优势。首先 Flex是一种可以运行在 网络上的客户端技术,它提供了一套成熟的图形化控件和类库,可以很容易的实现图形和布 局控制。同时,Flex可以通过多种通讯方式(HttpService、RemoteObject、WebService)与 Server端的服务进行数据交互,使得图形化操作变得非常简单,例如把人员拖到另一部门, 双击显示该机构的详细信息等。最终我们也是通过 Flex技术实现了客户的需求。

二、表单操作

Flex 同样可以构造出复杂的表单功能,操作便捷,响应迅速,适应企业不同场景的需求。例 如这样一个基于 Flex技术的表格,看似简单,实际上是包含了排序、过滤、表头拖拽、表 头固定、合并等功能,类似的功能如果用 Ajax的方式来实现代码量会很大,但是在 Flex中, 这些特性基本上是原生的,或经过简单开发即可实现,代码量非常小,而且性能远远超过普 通列表控件和 Ajax列表控件。经测试,在同一场景下,通过 Flex列表控件加载 1000条数据, 平均响应时间是 0.1秒,Ajax控件 0.5秒,普通刷新页面的方式最慢,从发出请求到返回并 显示数据,大概需要 1秒钟。

Flex技术在企业级开发中的应用

三、流程设计器

2004 年我们开始研发工作流平台,其核心功能是工作流引擎和流程设计器。为了开发出 Web-Based(基于 Web)的流程设计器,我们投入了极大的人力物力,最终采用 ActiveX控 件实现了复杂的流程设计、流程监控等功能。到目前为止基于浏览器的流程设计和监控仍然 是我们的功能特色之一。但是随着技术的发展,基于 Activex控件的流程设计器越来越显示 出局限性,例如不支持多浏览器,不支持国际化,在各种 Windows和 IE版本中的自动安装 经常会出现问题,最重要的是扩展起来比较复杂。

下图就是基于 ActiveX技术的流程设计器。看上去很美,但的确存在着问题。事实上我们正 在积极准备基于 Flex技术对流程设计器进行改造,改造完成后,上面提到的问题即可迎刃 而解。技术的进步带来应用的改进,所以我一直强调,技术创新才是软件企业的原动力。

Flex技术在企业级开发中的应用

四、动态图表

通过图表描述业务数据,加强数据的展现能力。每个图表都可以支持参数的动态变化,响应 点击事件,实现动态效果,而这些几乎不需要额外编写代码。传统的报表工具或制图工具, 例如 BIRT或 JFreeChart等,处理报表图片时都是通过流的方式输入静态图片,一旦生成, 就是静态页面,用户无法与之交互。而使用 Flex进行图表的开发,则可以轻易突破 这一障 碍,Flex提供了大量内置的图表控件,用来进行图表展示,在浏览器上的表现方式为 Flash, 可以在生成图表之后,继续实现前后台数据的交互和展示。例如使用 CandlestickChart控件 来实现蜡烛图的动态展示。从一下两张图可以很清楚的看出,通过选择不同的选项,可以显 示不同的趋势变化,点击图元还可以显示该图元的相关数据。这些复杂的数据操作基本上是 由 CandlestickChart控件完成的,开发者只需要组装数据即可。事实上要实现这个功能样例, 只需要 100行左右的代码。

Flex技术在企业级开发中的应用

五、知识管理

企业信息化 10年,积累了大量的数据、文件、视频需要进行展示,通过 Flex可以构建通用 的播放器,利用流媒体技术、全文检索技术实现企业内部的知识管理。类似的技术和功能在 互联网上已经不是什么新鲜事了,例如 slideshare、youtube,国内的豆丁、优酷等,这些网 站要么是基于文档的管理,要么是基于视频的处理,但它们的共同点是核心技术都采用了 Flex。对于互联网领域,领域的细分无疑是非常明智的,但是在企业级应用领域,企业客户 更关注的是应用的整合,我们拟基于 Flex技术开发通用的前台播放器,可以同事播放视频 和文档,后台采用 Flash Midea Server和文件服务器,结合内容管理、全文检索和标签云技 术,实现企业信息数据的全流程管理。

六、动态商品展示

基于 Flex技术的动态商品展示已经在很多中大型电子商务公司应用,通过 Flex可以实现很 多眩目的效果来进行商品展示,同时可以动态设置商品的属性,让客户更好的了解商品细节, 增加客户粘度。这样的技术在企业级应用中同样适用,主要业务领域应该是企业的电子商务

Flex技术在企业级开发中的应用

平台。

七、全键盘操作

某些特殊领域的客户,比如要快速录入大量数据,就会对全键盘操作有需求,要求在浏览器 做的应用要能像 Excel一样全键盘操作,除了支持 Tab加 Enter键之外,还需要能够支持四 个方向键的操作支持,就像是 Excel一样,当单元格中的文字处于全选状态的时候可以通过 方向键进行导航。这样的功能用普通的 Javascript实现一个是复杂,而是会降低网页性能。 但用 Flex来实现这种特殊场景就完全没由这些问题,本质上来说 Flex还是客户端技术,可 以很好的提供键盘支持。

结束语

企业客户越来越认识到 RIA技术对于企业应用的重要性,而 Flex就是实现 RIA重要的选择之 一。但是,无论技术也好,创新也好,有用的才是好的,不能因为技术而使用技术,因为创 新而创新。就 Flex而言,从根本上说它还是一个客户端程序,所以一定会比普通的 Web页 面更多的占用更多的客户端资源,所以我不建议大家在构建企业应用时大量采用 Flex技术, 一定要用其所长。Flex在互联网领域早已大放异彩,那么它是否能成功应用于企业应用的开 发呢?不必拭目以待,我想这个答案无疑是肯定的。

关于作者

池建强, 12年软件从业经验,先后在洪恩软件和用友集团任职。目前在用友集团瑞友科技 IT应用研究院任副院长,负责公司基础应用平台的研发和整个公司的技术管理。主要关注领 域:企业应用软件平台研发、领域驱动设计,OSGi,动态语言应用、云计算、移动互联等相 关技术。

原文链接:http://www.infoq.com/cn/articles/flex-application

相关内容:

 使用Grails和Flex开发JEE应用

 InfoQ案例研究:纳斯达克市场回放 、使用Flex构建以数据中心的企业应用

 Flex SDK与Flash Builder 4:深度对话Andrew Shorten  Blaze Data Services还是LiveCycle Data Services?

高效率的超大规模 Flex开发

作者 Ryan Knight译者 曹如进

文章着重介绍了 Adobe Flex开发与传统的 Web开发的不同之处,作者告诉大家如何正确理解和 利用这些不同,来为我们创建实用性更强,浏览和更新速度更快的网站。

Adobe Flex 开发与传统的 Web开发有很多不同之处。正确的理解和利用这些不同之处,可 以帮助我们创建更丰富的用户体验,也可以反过来增加网站的可用性以及浏 览和更新速度。 Flex还

Return Main Page Previous Page Next Page

®Online Book Reader