在java体系结构中集成Macromedia Flex(翻译)
2008-01-05 09:39:48 来源:WEB开发网核心提示:今天我们开发的 J2EE 网络应用程序,在表现层常用的就是Struts, Tapestry, WebWork, or SPRing,在java体系结构中集成Macromedia Flex(翻译),这些工具一般使用MVC体系结构,输出Html到浏览器,有程序需要的额外能力,不象HTML,典型的程序网络开发模型就是要求 用
今天我们开发的 J2EE 网络应用程序,在表现层常用的就是Struts, Tapestry, WebWork, or SPRing。这些工具一般使用MVC体系结构,输出Html到浏览器。典型的程序网络开发模型就是要求 用户对程序的每一个动作都要发送请求到服务器上。对于程序的每个用户请求,服务器生成一个回复答应用户提交一个新请求用以获得更多信息。一个浏览器通常用来为用户渲染界面。但是浏览器是一个有太多限制的客户端,同时缺乏开发和用户体验。
富网络应用程序(RIA)技术用来处理表现层的缺陷。这篇文章将以注重实践的态度来理解什么是RIA,怎样把它融入你的应用体系中。文章也将提出一种是跟几个流行的 开源框架组合潜在的挑战。
浏览器的局限
当前已有的解决方案的问题是什么呢?当程序行为正确时也许并没有什么问题,可是曾经大多数的网络开发者都抱怨在使用浏览器作为客户端的能力限制。这里有几个当网络应用程序使用浏览器产生的问题:
l 各种浏览器以一些不协调的方式解释象javascript这样的脚本语言,这迫使开发者花费出几倍的时间写相同的代码来适应不同的浏览器。
l 一些象标签,向导表单,大型数据列表处理 等普通的功能却困扰着开发人员并需要付出额外的实践来为浏览器写代码。
l HTML本身就有局限性,静态的标签无法扩展。
l 用户界面上的事件处理有着巨大的挑战,因为渲染HTML页面只能同时显示一个,事件无法不通过服务器更新其它页面上的数据。
l 存储程序状态只能通过无法是用对象的cookies,
l 使用浏览器几乎无法开发需要脱机工作的程序
这些例子反复说明了大部分开发者都已知道的:当前的工具是由局限性的。开发者使用浏览器时经常会因为这些问题要去找到解决方案。开发者和用户都已经对这种瘦客户端的能力失去信心。
富网络应用程序
有一种克服以上一些局限性的办法,我们称之为RIA,一个RIA 提供用户一个扩展了浏览器无法实现的能力的胖客户端。大多数普通的J2EE RIA客户端是java和Flash。当需要开发一个以数据为中心的大型应用程序时,RIA通常比较适合。一些可用的开发RIA解决方案有 JDNC (JDesktop Network Components), Laszlo, Thinlet, Java Web Start, and Macromedia Flex。
RIA能解决上面所说的问题,以下是一些RIA能提供的功能列表:
l RIA 提供类似于浏览器的 UI组件,增加了新本地化,更多组件。例如:包含数字递进器,滑动控制,在线数据表格逐渐,和 菜单栏。
l RIA答应使用布局治理组件,象标签向导,折叠栏,树型,还有一些其它的布局,已经接近AWT和SWING开发。
l RIA提供拖动-释放 能力
l RIA中的语言风格对所有客户端都是一致的,所以无需为不同应用重写
l 请求/回复 模型不是所有用户界面动作说必须的。使用RIA,用户与界面交互只需要处理所需要的部分。RIA 可以使用HTTP协议方法上传数据到应用程序服务器。通常,无论如何,首选的机制是remoting,它支持不同的方式使用RIA。RIA 非凡的使用一些扩展协议来在HTTP之上交流。
l 多组件事件处理可使用。
l RIA答应你存储更多信息在客户端代替httpsession,这减少了服务器的内存消耗。
l 持久化状态,大多是在form对象,提供脱机时的能力
RIA是一个比较新的技术,引进了新的观念来发展这些类型的应用。它不是所有应用程序的银弹,根据实现,提供试验。但是,假如你的应用能够受益于富UI设计,那么RIA也许适合你。这篇文章现在将介绍一个RIA解决方案- Macromedia Flex,我们还将讨论整合问题。
Macromedia Flex
Macromedia Flex 是 一种提供RIA的商业表现层服务器。Flash插件是flex程序运行时环境所不可缺少的。大多数浏览器已经预装了Flash插件,这将有助于你 马上使用flex。我们将讨论是用Flash插件代替java插件与J2EE应用服务器交互的一些问题。
开发者使用两种核心的语言来创建flex程序,第一个是Mxml,Macromedia Flex标记语言,它包含了大量的XML标签,答应开发者布局他们的界面。 MXML能引用到XUL,或者XML UI语言,这些标记可以被扩展,有程序需要的额外能力,不象HTML。其它MXML结构答应你拥有自己的 look and feel MXML组件。
赞助商链接