写点什么

Eclipse RAP 2.0发布——首词相同,含义不同

2013 年 3 月 06 日

2013 年 1 月 11 日,在经过 6 年的开发后, Eclipse RAP 2.0 终于发布。在这期间,项目已经完全跟 Eclipse 平台整合,并支持基于 Ecipse 4 上的多用户界面。

Eclipse Rich Application 平台最初由 Innoopract,也就是现在的 EclipseSource 发起,是一个对 RCP、SWT 和 JFace 类库重新实现的构建富客户端的平台。SWT 的 RAP 实现生成的 Javascript 是通过 qooxdoo 的 widget 在浏览器中渲染的,而不是通过本地图形设备渲染。在服务器和客户端之间的状态同步是通过使用 HTPP 长连接的方式进行更新。在 Vaddin 的实现中,也使用了类似的概念,Vaddin 的服务端是由 SWT 实现,并通过 GWT 提供 Javascript Widgets 的实现。

然而,RCP 的一些功能限制在 RAP 1.0 中没有解决。比如 Eclipse RCP 无法处理多用户的情况(译注:指的是多用户界面及 i18n 问题的情况),这对于一个 web 应用来说十分常见。在 Eclipse 4 的开发中,这些限制都得到修正,允许 RAP 提供统一的 API 给任意类型的客户端实现。

随着 Eclipse RAP 2.0 的发布,RAP 将名称从 Rich Ajax Platform 更改为 Remote Application Platform。新的名称的改变反映出其概念已经转变为能适合任何远程服务器客户的平台,这从 1.5 版本起已经开始了,来自 Eclipse Source 的 Ralf Sternberg 在他关于 RAP 2.0 的系列博客文章中有提及。在 1.0 版本中,服务端的组件和浏览器之间通过 Javascript 通讯,现在则可以使用公开的 JSON API。在 RAP 2.0 中,客户端不再限制使用 Javascript,甚至可以使用本地的实现,如 Tabris ,它提供 iOS 和 Android 用户界面的实现。

InfoQ 采访了 Eclipse RAP 的项目负责人 Ralf Sternberg,了解关于项目的下一步计划:

InfoQ:首先祝贺 RAP 2.0 的发布。很高兴看到很多在 RAP 1.0 中的问题都通过 Eclipse 平台和 RAP 团队得到了解决。你认为解决了的最大问题是什么,两者之间是如何合作的?

“谢谢。回首在 1.0 版本的日子,RAP 是一个很酷的全新项目,能在浏览器中运行 RCP 应用。经过多年的发展,项目已经变得成熟,现在已经成为 Eclipse 平台的一部分。这让我们提高了在 Eclipse 社区中服务端应用的竞争意识。

这些挑战中最明显的是应对多用户的处理。举个例子,当使用不同语言的用户同时访问应用时,如果保存某个字符串的译文效率是很低的。多用户访问的需求导致 RAP 最终在 Equinox 和在 JFace 的对话框框架中必须支持本地化。

看下今天的 Eclipse 平台,很高兴看到服务端的需求已经影响着新一代 Eclipse 平台,即 E4 的设计。服务端应用通常需要更多关注如何解耦,线程安全和性能。随着技术的发展,我想这些实践将成为每一个现代应用的标准。”

InfoQ 你认为 RAP 最适合什么类型的项目?使用 RAP 2.0 的话能带来怎样的改善?

“目前,开发者正面临应用程序必须支持越来越多平台的形势。五年前,要支持的平台一直是桌面和浏览器。如今,手机和平板电脑正取而代之。每个平台都需要不同的开发工具和专业知识。这正是我们要面对和解决的问题,我们的理念是单一的应用能适应不同的平台。

在 RAP 2.0 中,我们推出了能将客户端和任何相关的计算平台通过开放的协议连接的选项。在 EclipseSource 中,我们提供了一种方法,让开发者可以通过使用“Tabris"这个开源项目,构建本地原生的 iOS 和 Android 客户端。新的协议能让任何人都可以开发其他平台的 RAP 客户端。在这样的开发模式下,RAP 继续提供“一次编写,随处运行”的平台。

因此,RAP 最适合那些正在寻找一个可持续开发的,包括即使在将来的平台中依然能重用代码的项目。这种需求在企业中是最常见的。”

InfoQ 将来的计划是怎样的?你是在关注像 Vaadin 那样的技术么?你是如何看待 RAP 的地位?

“当然,我们也在关注在服务端 UI 领域的其他项目。有一些真正令人印象深刻的单页应用程序的框架,我们正使用它们作为基准以改善 RAP 的外观。我们仍然看到一些改善的空间,我们将和用户一起逐步解决这些问题。最近的一个例子是为安联保险设计了一个新的动态下拉框。

在不久的将来,我希望看到 web 客户端更广泛地使用自定义部件。RAP 2.0 提供了一种简单的客户端 API,使开发自定义 widgets 和插件更容易。插件组现在可以使用任何的 JS 库去编写,而不再依赖于 RAP 的内核。这种可扩展性对我们的来说是宝贵的财富,我们将继续予以改善。

然而,令 RAP 与其他框架不同的是,它可以超越 HTML5。据我所知,RAP 是唯一一个能实现一次编写,能跨平台运行的框架。浏览器是运行的一个选项,使用原生 widgets 开发的原生应用和原生的导航概念等都是功能相当强大的。

RAP 的另一个重要特点是支持构建模块化的应用程序。RAP 建立在 OSGi 之上,并且是 Eclipse 的一个项目,它能与 Eclipse 中如 EMF、EclipseLink 或 Eclipse 数据绑定技术完美地集成。使用 JFace 可以很容易将 UI 和数据模型绑定。我们认为,模块化是现代应用程序的关键。”

InfoQ::有什么建议给要升级项目的开发者?

“你要知道的是,RAP 2.0 不兼容 1.X 版本,因为我们利用这次发布机会加强了我们 API 的功能。不过,我还是建议升级到 RAP 2.0,因为 2.0 版本中有一些很大的改进,比如改进了的新的事件处理系统和服务端反向推送系统。我已经看到有些项目正在进行快速的迁移,并且没出现问题。我们在网页上提供了迁移指导来帮助项目的升级。”

其中,RAP 2.0新特性和注意迁移手册已经发布,在准备升级前应该仔细阅读。

本文作者Fabian Lange 是《Eclipse Rich Ajax Platform 1.0 》一书作者。

原文链接: Eclipse RAP 2.0 Released - Same Acronym, Different Name


感谢侯伯薇对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013 年 3 月 06 日 03:141924
用户头像

发布了 81 篇内容, 共 16.3 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Redis追命连环问,你能回答到第几问?(上)Redis简介,数据类型及缓存雪崩缓存击穿缓存穿透

大柚子

Java redis 缓存 面试 后端

JeecgBoot手记

卧石漾溪

区块链交易所系统开发内容,数字货币交易所搭建

13530558032

程序员不愿996,创建6个涉黄平台,涉案5000余万元!

程序员生活志

程序员

ARTS 挑战打卡第九周(200706-200712)

老胡爱分享

ARTS 打卡计划

视频码控:CBR、VBR和ABR

潇湘落木

直播 SRS 视频编码 码控

MySQL如何快速插入数据

Simon

MySQL 数据库

深圳区块链支付系统开发,USDT支付系统服务商

13530558032

企业信息化到底重不重要?

代码制造者

低代码 零代码 信息化 编程开发 运营管理

一文讲透布隆过滤器

flyer0126

布隆过滤器

ARTS 打卡第四周(200601-200607)

老胡爱分享

ARTS 打卡计划

交易所合约跟单开发方,数字资产合约跟单系统搭建

13530558032

ARTS挑战打卡第六周(200615-200621)

老胡爱分享

ARTS 打卡计划

ARTS 挑战打卡第七周(200622-200628)

老胡爱分享

ARTS 打卡计划

ARTS挑战打卡第八周(200629-200705)

老胡爱分享

ARTS 打卡计划

从雕像到肖像画,这位设计师用 GAN 和 PS 复原了他眼中的古罗马皇帝「群像」

程序员生活志

马方业:区块链就是新未来 区块链就是新财富

CECBC区块链专委会

区块链 新未来 新财富

ARTS挑战打卡第五周(200608-200614)

老胡爱分享

ARTS 打卡计划

用科学的方法理解每日优鲜

石云升

新零售 每日优鲜 多快好省 科学分析

Linux系统监控工具推荐

王坤祥

监控 工具软件

浅谈备受开发者好评的.NET core敏捷开发工具,讲讲LEARUN工作流引擎

Learun

工作流 开发工具 计算机程序设计艺术 表单

教你用SQL实现统计排名

Simon

MySQL

朱嘉明 算力革命背后是分配制度革命 没有算力就没有未来

CECBC区块链专委会

区块链 数字货币 数字经济

一个人的精益

escray

学习 面试 面试现场

基于ALBERT的文本相似度解决方案

华宇法律科技

人工智能 自然语言处理 Pytho

高频面试题——你真的搞懂物理内存与虚拟内存了吗

大柚子

操作系统 内存管理 虚拟内存 物理内存

ARTS 打卡第三周(200525-200531)

老胡爱分享

ARTS 打卡计划

定时任务最简单的3种实现方法(超实用)

王磊

Java 定时任务

ARTS 打卡第二周(200518-200524)

老胡爱分享

ARTS 打卡计划

小米的护城河

石云升

小米 护城河

Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 实现分库分表

简爱W

Eclipse RAP 2.0发布——首词相同,含义不同-InfoQ