欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

深入RAP

程序员文章站 2022-05-27 11:31:47
...

作为即将到来的计划于6月25日发布的Eclipse Ganymede的一部分,InfoQ的报道将会覆盖一系列Eclipse的子项目。今天,主角是RAP(Rich Ajax Platform),它正好发布了1.1版。InfoQ采访了Jochen Krause以更多地了解RAP以及它所提供的功能。

    为了描述RAP给Eclipse带来的功能,Krause首先把Eclipse的用户分成了两类:一类是使用Eclipse IDE以及其工具来进行开发,一类是使用基于Eclipse平台的应用。krause表示,对于IDE及工具用户来说,开发工具将只会暴露RAP本身,而 RAP的功能对于他们是透明的。与此不同的是,对于使用基于Eclipse平台应用的用户来说,他们现在将有能力运用基于OSGi的Eclipse插件开 发模型,JFace以及Web版的SWT来构建支持AJAX的富Web应用。RAP的意图类似于Eclipse富客户端项目(RCP),主要的区别在于更 精简的API以及为Web应用的多用户特性所做的增补。相对于RAP 1.0,1.1版扩展了API,引进了一系列诸如SWT的鼠标事件,JFace的图像装饰器以及工作台的增强等等新特性——同时它也包含了Eclipse 3.4的新功能,比如安全 的增强和widgets的阿尔法着色。

    当被问到RAP将如何与诸如Dojo,GWT,OpenLaszlo等AJAX框架相搭配,krause谈到:

    RAP是一个专注于服务器 端 的AJAX框架并与OSGi,Equinox和Eclipse平台有着紧密的关系。要与其它的框架相比并不容易,因为他们的关注点有所不同。 Dojo,GWT,OpenLazlo的widgets工具箱非常出色,但却不能提供一个广泛的应用平台。我们并不将其视为竞争对手,相反的是,他们或许 将成为RAP后续版本客户端表现的附加选项。RAP现有的客户端表现是基于qooxdoo的,这同样是个强大的AJAX框架。RAP和GWT都支持开发者 用Java 编写,但其运行时模型却大不相同,GWT是整个在浏览器执行的,而RAP的执行被分成了服务器 端和客户端两部分。

    Krause同时提到了RAP能够将单一的代码源(codebase)编译成AJAX应用,或者编译成RCP应用,并表示这并不像看上去那么复杂。编译是 针对于同样的工作台,JFace和SWT APIs来完成的,但当以Web应用来运行时,这些库的常规版本都被替换成了其支持Web的版本。在运行时,这些应用的代码都跑在服务器上,并有一个基于Java Script的UI来向服务器传送事件和向客户端传送结果。然而,Krause也指出了RAP开发者必需引起注意的三件事:

    Web是一个多用户环境,所以在一个静态对象中(如singleton)保持应用状态是有可能引起问题的。

    现有的RAP是RCP的一个子集——如果期望得到超出RAP支持的RCP附加功能,这里推荐的做法是通过插件来引入它们。

    因为应用是在服务器上执行,开发者不应给每个用户分配大量的内存(这同样也是桌面应用的最佳实践)

    作为下一代SWT的一部分,RAP计划提供完全基于AJAX的SWT实现。Krause指出并不是所有的平台都支持SWT API,并且SWT是为桌面应用而设计的。尽管大多数的SWT API都能被实现,但像在画布上描绘以及探测鼠标移动等功能还有待于浏览器在这些方面的进一步改善和提高。目前还欠缺的像拖拽和键监听器等API已计划在 RAP的下一发布版本中,并将包含来自其它团队的技术,例如SWT的用于StyledText widget等复杂组件的Java/Flex 交叉编译。

    关于RAP的远景规划,Krause表示将着力于两个主要的领域:扩展RAP API以实现更多的RCP API,以及利用Eclipse平台让用户从Web的视角获得更加自然的用户体验。Krause进一步阐释了第二点,RAP通过与可用性专家紧密协作,分 析用户交互,以解决来自易用性的挑战。Krause同时看到了Web应用和桌面应用通过AJAX和RIA的融合将带来的好处,并提到研究表明在Web环境 里通过基于Eclipse Draw2D API来提供图形编辑器是可行的。

    当问到RAP将如何与E4集成并影响E4,Krause表示:

    在浏览器运行IDE这一用例对我来说没什么吸引力。JDT在我的机器上表现非常出色,我相信大多数开发者都有同样的感觉。但这并不表示没有Web技术让我 们变得更方便的用例。看一看需求,任务管理或是开发流程管理。这是我所能预见RAP在未来将会发挥作用的领域。但回到这个问题。Eclipse平台团队和 RAP团队在08年的EclipseCon上共同宣布了e4,并即将在Ganymede发布之后开始在这一平台上的工作。RAP将会是众多使应用具备 Web能力的技术中的一分子,但并不会是其唯一的可能。我们同样需要支持其它的附加于Eclipse平台的web/JavaScript技术。我期待着孕 育出更多的跨(领域)合作。RAP团队将提供实现以及平台对多用户的专门技术支持,SWT团队对诸如Flex/Silverlight等RIA平台的交叉 编译进行了研究。更优化的风格是我们合作的另一关键领域。还有更多的东西没有被提到,但那理应再对E4本身进行一次采访了。

相关标签: RAP OSGi 平台