漂亮的图形和用户界面是丰富的互联网应用程序(RIA应用)的最明显的特征。但是侧重于外表,忽略一个重要的客客户端功能:丰富的数据;Java+Flex无疑是解决这一问题的完美方案。
能够在客户端迅速的过滤和排序数千行的数据,比如,可以在业务应用上提供更好的体验,而不是花费时间翻阅几十行的数据。或者,允许用户快速可视化数据的交互式图表,可以证明这比让一个用户从服务器上阅读静态图表有效得多。
如此的交互式体验是有可能实现的,因为丰富的客户端技术有能力有效的从服务器上面获取大量的相关数据,以及在客户端的地址空间执行与显示相关的处理。另外,一个丰富的客户端可以从多个服务器应用中获取数据,得到一个混合的结果。
逐步加强
逐步加强,这个术语是由Steven Champeon 创造的,指的是能够一步一步的改进传统能力,Web 1.0风格的应用程序,伴随着丰富的客户端功能:代替必须要批发购买丰富的客户端技术,这就有可能在客户端引进一种更好的用户体验,而不需要大幅度的改写。在这个系列的另一端,当与应用程序的架构深度结合的时候,一个丰富的客户端技术需要提供某种能力来实现最大程度的客户端利用,比如,利用本地图形加速或者客户端环境的多核CPU架构。
一个分析丰RIA应用的方法就是研究将它们引进到现有的企业级应用程序中的难易度。Flex,Adobe的开源丰富客户端技术,为逐步加强现有的企业级应用提供了很多种可能性。这篇文章介绍了五种技术,开发者可以使用这些技术来改善用户体验,现有的企业级Web应用程序的视觉吸引也使用Flex: 程序员常用的Flex代码总结将一个Flex用户界面放入到一个现有的HTML页面中(FlashVars):这种技术需要几乎没有改变现有的企业应用,但是可以通过简单HTML提供重要用户界面的改进。
HTTP数据存取:这种技术设想暴露了企业应用的Flex数据服务的客户可通过HTTP拜访。这样的数据服务可以返回JSON格式的数据。JSON在Java+Flex打造的RIA应用的数据传送中起到重要作用。
XML 与HTTP:这是早前技术的一个变化,但是在现在的技术下,客户端可以从服务器存取XML数据,使用Flex的语言级别XML的支持来处理显示数据。远程方法调用服务器端Java对象:这项技术依赖于开源BlazeDS远程架构,为服务器上面Java对象的Flex客户端的直接参考进行安排。通过HTTP,客户端—服务器之间的交流仍然可以进行,使得这项技术适用于与安全的企业应用防火墙相互配合。
分布式信息:Flex的远程方法调用是基于一种普遍的Flex信息框架。这种框架可以被用来推动服务器端的数据到Flex客户端,并且对于Flex客户端而言,是可以与企业级应用系统相结合的。
第一项技术将会在这篇文章中进行解释;第二以及第三项技术将会在随后的文章中进行解释;最后两项技术将会在这一系列文章的结论部分进行说明。 Flex:Engine Yard的全新云服务
除了这五项技术以外,Flex客户端可以开放一个直接联结端口到网络服务器。直接联结端口,无论如何,是一项重要的工具,主要用于流媒体类型的应用,对于企业发展的帮助比较小。最终,Flex也支持SOAP。但是SOAP与HTTP技术是非常相似的,在很多现代Web 技术中SOAP应用程序正在逐渐取代RESTful HTTP。
在这一些列文章之后,将会描述Flex与Java框架Spring应用相结合的情况;另一篇文章将会研究Flex 和Scala结合的情况。
每一种Flex集成技术用一个运行实例来说明:管理书店货存清单的应用,允许用户增添以及编辑图书的数据,也包括查找图书功能。
图一,用户界面出现视觉的主要细节,包括图书标题的数据网格,一系列的查找过滤,以及一个词条控制板。
HTML嵌入(FlashVars)
Flex应用程序运行在Flash Player上。Flash Player是一种有特色的浏览器插件,但是Adobe的AIR运行时也使得桌面部署Flex应用程序。Flash Player的主要部分是ActionScript虚拟计算机,执行Flash字节码所在的Flex应用程序的编译。Adobe开源ActionScript虚拟计算机2006版本,然后作为Mozilla Tamarin项目继续实现它的部署。Flash Player,它本身并不是开源的,增加了应用管理,多媒体规范,运行时间分配和更新,以及其它ActionScript VM性能。
通过Java+Flex的结合,无疑将对程序的用户界面做出愉快的改进,同时,又保证了RIA应用在数据和业务处理能方面不再一无是处。
【编辑推荐】