本书第一部分分析现有信息系统开发方法及其问题,介绍复合应用的概念、实例、需求分析、设计方法和实现技术。第二部分详细介绍用 Eclipse 技术实现复合应用的基本方法。第三部分介绍企业级复合应用平台的需求和 IBM 对应的产品 Lotus Expeditor 和 Lotus Notes 8,和在这些平台上进行企业级复合应用设计、开发、部署。本书可供具有基本信息系统开发经验的人员了解复合应用系统的需求、设计、实现和运行技能,以及如何应用企业级复合应用平台设计开发复杂的企业级复合应用系统。第 1 章首先介绍当前信息系统技术的现状,企业中信息系统不断增加产生的不能适应企业发展要求的问题,然后介绍复合系统的基本概念和应用实例。
在此我们推出了本书的前言和第 1、5 章供大家在线浏览。更多推荐书籍请访问 developerWorks 图书频道。
|
5.1 Eclipse RCP 简介
要深入了解 Eclipse RCP,需要了解 Eclipse 开源社区。本节简单介绍相关背景知识,为进一步介绍基于 Eclipse RCP 的复合应用提供基础。有关部分 Eclipse 及 Eclipse RCP 的详细内容可以访问 Eclipse 网站。
5.1.1 Eclipse 平台
Eclipse 是 IBM 向开源社区提供的基于 Java 的可扩展平台,最初是作为开放的集成开发环境。其自我扩充的平台,开放的插件架构,良好的用户界面,支持多种操作系统和开源模式使其得到了许多开发工具厂商和开发人员的认可和支持。
如图 5-1 所示,Eclipse 包含运行基础平台,SDK 包自带的 Java 开发环境 JDT 和插件开发环境 PDE 。在实际使用时,用户可以根据自己的需要加入第三方插件,形成满足自己要求的应用开发和运行平台。许多厂商开发了各种开发工具的插件使其成为包括嵌入式系统和支持多种语言的集成开发和测试环境。
图 5-1 Eclipse 体系结构
图 5-2 Eclipse 平台及应用运行的界面
Eclipse 的插件是 Eclipse 运行环境的一部分。所有 Eclipse 代码都以插件形式存在于文件系统中。当向 Eclipse 中增加功能时,新的代码要符合插件的结构。将代码放入工作空间后,Eclipse 平台自动加载新代码,构成新的 Eclipse 平台。图 5-3 为 Eclipse 平台在文件系统中的目录结构。
图 5-3 Eclipse 平台及应用的目录结构
Eclipse 的开发包和文档资料可以从其官方网站 www.eclipse.org 下载。 Eclipse 相关开发可以参考有关书籍,在后续章节也有更详细的介绍。
5.1.2 Eclipse 插件结构
Eclipse 的插件结构是其扩展性的技术基础。其思想是允许开发者按接口标准开发 Java 应用模块,每个模块利用 plugin.xml 的规范描述自己的接口功能。 Eclipse 定义插件所在的目录。平台在启动时自动扫描插件目录,从而可以使不同开发者开发的插件运行在一个平台上。
5.1.3 Eclipse RCP 平台及应用
在使用 Eclipse 集成环境开发各种应用的过程中,一些开发者注意到 Eclipse 成为桌面应用运行平台的可能性和价值,提出利用 Eclipse Workbench 实现开放的桌面应用开发和运行平台,即 Eclipse RCP(Rich Client Platform)富客户端平台。
Eclipse RCP 是去掉了和应用开发有关的插件的 Eclipse 核心平台,它具有 Eclipse 的所有基本结构和优点。在 Eclipse 的早期版本中,Eclipse RCP 是 Eclipse 平台客户化的一个应用。到目前的 3.2 版,它已是一个与 Java,C++,J2EE 并列的专门开发包。
经过几年的发展,Eclipse RCP 已经成为 Java 开发人员在企业桌面应用开发时常见的选择,它适于对界面交互要求高,有复杂信息展现的应用。 Eclipse RCP 与 Java J2EE 一起可以构成完整的企业信息系统编程模型,例如国外比较著名的应用—— NASA 火星探测计划中的任务执行管理系统。国内也有很多公司开发了许多基于 Eclipse RCP 的桌面业务应用。
5.2 Eclipse RCP 作为复合应用平台
5.2.1 Eclipse RCP 结构与复合应用架构的对应
Eclipse 的插件结构使 Eclipse RCP 成为天然的复合应用平台和框架。如图 5-4 所示,RCP 中的 View 对应复合应用中的各个界面构件。每个透视图(Perspective)对应一个应用组合。每个员工需要的所有应用组合可以用一系列的透视图实现。
图 5-4 Eclipse RCP 与复合应用的对应关系
在 Eclipse RCP 中开发复合应用,就要针对用户的各个任务,为每类任务定义一个可以方便工作的透视图。在每个透视图中,针对具体业务操作和数据的要求,将所需要的软件界面集成进去。针对业务切换的要求还需要切换不同透视图。
5.2.2 在 Eclipes RCP 中集成各种技术的应用系统
在 Eclipse RCP 中可以集成各种技术开发的应用,包括传统的 Windows 应用,Java Swing 应用,传统 Web 应用和 Web 复合应用中的构件(Portlet 和 Google Widget)。本书后面有详细实例介绍集成 .NET 应用,Java Swing 应用和 Web 应用。
这些应用成为构件后都可以与其他构件协作,成为整体框架下复合应用的有机组成部分。
5.2.3 对企业应用 Eclipse RCP 需要扩展
企业复合应用需要管理支持。 Eclipse 只是提供了桌面复合应用的最基本的运行框架,而在企业应用中最重要的系统可管理性、安全性等服务在 Eclipse RCP 中却都没有实现。因此 Eclipse RCP 需要扩展功能才能成为实用的企业复合应用平台。
5.3 基于 Eclipse RCP 的复合应用开发和管理
5.3.1 复合应用开发与 Eclipse RCP 开发的对应
从上面复合应用与 Eclipse RCP 的结构的对应关系,可以得到相应复合应用开发的过程。基于 Eclipse RCP 的复合应用的开发包括各个 Perspective 定义的 RCP 框架的开发,以及各个插件的开发。在实际项目中经常需要迭代开发。即首先定义和实现基础框架,然后开发各个插件。再通过框架和插件的集成,确定下一步对框架和构件的要求。
插件定义和实现的独立性是实现复合应用优点的关键。基本方法是不同的业务系统应当属于不同的插件,不同插件间的依赖关系应该减到最小。
5.3.2 复合应用框架在 Eclipse RCP 中的实现
在 Eclipse RCP 中实现复合应用框架的最简单方式是设计一个 Perspective 作为任务管理空间,针对每个任务类型设计一个 Perspective 作为完成该类型任务的工具,定义角色与任务类型的关系。复合应用框架就是编程判断当前用户的角色,为其提供任务管理和各种任务工具 Perspective 的选择。
这种基本思想可以扩充为用各种配置和数据库来管理员工、角色、任务类型和工具空间,从而实现动态角色定义,复杂的工具空间管理等功能。
5.3.3 复合应用构件在 Eclipse RCP 中的实现
复合应用中的构件可以用 Eclipse RCP 中的 View 插件实现。每个业务应用系统可以用 SWT 控件或 View 包装成 Eclipse 的插件。这种插件可以像传统业务应用一样使用各种协议访问其专用的或公共的后端服务。每个 View 可以在多个 Perspective 中出现,从而实现某个传统应用在不同组合中的应用。
5.3.4 基于 Eclipse RCP 的复合应用的部署和管理
Eclipse 提供了可扩展的部署管理器,可以独立开发、部署插件。基于 Eclipse RCP 的复合应用可以充分利用 Eclipse 提供的基础插件部署功能,实现对各个构件和复合框架的手工和自动部署。后续各章将有较详细的介绍。
5.4 小结与进一步学习
Eclipse RCP 的框架和插件结构与复合应用结构有着天然的对应关系。作为开放源码的技术,Eclipse 是初学者学习复合应用技术和开发方法的方便平台。(责任编辑:A6)