RCP是Rich Client Platform的缩写。Rich Client大概在20世纪90年代初期开始使用,其经典的开发工具有Visual Basic和Delphi。类似于VB、Delphi这样的可视化开发环境使得开发富客户端程序变得简单而有趣味。
RCP是基于Eclipse项目推出的一个开发富客户端应用框架,目的在于为开发人员提供一个功能更加强大的、快捷的、可扩展的应用平台。在需求变化异常频繁的今天,用户不仅要求有丰富的图形用户界面,还希望能够具有智能跟更新、跨平台性、可扩展性等特性。Eclipse RCP可以满足这些需求,这也是其他的富客户端不能做到的。
RCP应用程序实际上是插件和运行时内核的组合,其大致构成如下图2-1所示。
图2-1 RCP体系结构
OSGi(Open Service Gateway Initiative)有双重含义。一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务(业务)规范--OSGi服务平台(Service Platform)。
OSGi Alliance是一个由SUN、IBM、爱立信等于1999年3月成立的开放的标准化组织,最初名为Connected Alliance。该组织及其标准原本主要目的在于使服务提供商通过住宅网关,为各种家庭智能设备提供各种服务。目前该平台逐渐成为一个为室内、交通工具、移动电话和其他环境下的所有类型的网络设备的应用程序和服务进行传递和远程管理的开放式服务平台。
该规范和核心部分是一个框架 ,其中定义了应用程序的生命周期模式和服务注册。基于这个框架定义了大量的OSGi服务:日志、配置管理、偏好, HTTP(运行servlet)、XML分析、设备访问、软件包管理、许可管理、星级、用户管理、IO连接、连线管理、Jini和 UPnP。
实际上,一个最小化的RCP应用程序只需要Java基础类库,例如Java EE 5.0 JRE。根据RCP的复杂程度,可能只需要大约6~40M磁盘空间。开发者可以根据需要选取相应插件。例如不使用JFace,或者不基于OSGI,只要能够满足要求即可。
国外已经有大量应用Eclipse RCP开发的项目,比较著名有:
美国国家航空航天管理局(NASA)的火星探测计划项目;
新版的IBM Workplace开发平台;
新版的JBuilder;
新版的Flash9;
宝马轿车的控制系统。
国内RCP应用也逐渐发展和壮大起来,越来越多的项目开始采用Eclipse RCP开发,如电信、金融、医药、电力系统等行业已经开始应用Eclipse RCP开发的桌面系统了。可以预见,Eclipse RCP具有非常广阔的发展前景。
图2-2为国外一个开源的Eclipse RCP软件。该软件是一个在线股票交易系统,能够进行股价的实时查看、历史数据浏览、数据分析等功能。
图2-2 在线股票交易系统
图2-3为国外一个商业Eclipse RCP软件。该软件主要应用于医学领域,帮助小儿科医生进行日常工作的更新管理。
图2-3 Osmosis Filios
可以看到,国外已经有大量应用Eclipse RCP开发的项目,美国国家航空航天管理局(NASA)的火星探测计划项目,就是一个Eclipse RCP应用,还用新版的IBM Workplace开发平台、JBuilder、Flash 9,等等。国内RCP应用人群也逐渐发展和壮大起来,越来越多的项目开始采用Eclipse RCP开发,例如电信、金融、医药、电力系统等行业已经开始应用Eclipse RCP开发的桌面系统了。由此可以预见,Eclipse RCP具有非常广阔的发展前景。