当前页面: 开发资料首页 → Eclipse 专题 → IBM WebSphere 开发者技术期刊: 为 WebSphere 平台部署 Eclipse 富客户端应用程序
摘要: 本文概述如何为 IBM WebSphere 平台开发 Eclipse 富客户端应用程序。了解为什么 WebSphere 的 Eclipse 富客户端是开发端到端解决方案的最佳组合。
摘自 IBM WebSphere 开发者技术期刊。
引言
本文假设您至少听说过两个商标词:Eclipse 和 WebSphere。Eclipse 是一种工具和客户端平台技术,而 WebSphere 更像是服务器端的中间件平台。在本文中,您将学习在结合使用这些技术提交端到端解决方案时,您可以实现的奇特功能。
为什么又使用富客户端?
富客户端应用程序 指基于桌面的胖应用程序,而瘦客户端应用程序 是指基于 Web 的应用程序。很久以来,部署和维护富客户端比较困难;另一方面,瘦客户端的 UI 也没有胖/富客户端的 UI 丰富,而且响应性也不如后者。
随着技术的进步,出现了用于构建最终用户应用程序的新一代平台和框架。异步 JavaScript 和 XML (AJAX)、富 Internet 应用程序 (RIA)、富客户端平台 (RCP) 和 Flash 提供的的技术、框架和技巧,允许开发人员构建具有较丰富的用户界面和更强响应能力的最终用户应用程序。这通常由客户端进程实现。同时,RCP 技术现在可以为方便部署和管理提供更好的支持。
因此,现在为相同的开发人员提供了两种竞争技术。Web 应用程序仍有很大优势,尤其是由 AJAX 和 Web 2.0 之类的技术带来的进步。同时,富客户端前端更适合于某些类别的应用程序。一些示例有 Bank Teller 应用程序或 Call Center 应用程序。在这些情况下,应用程序通常具有下列某些特征:
在这些情况下,为您的参与者构建富 Web 前端并不合适,胖客户端功能才是您真正需要的。这里的富客户端和胖客户端将保留,并且研究公司的数据确认,新一代桌面客户端的接受率在逐渐增长;Giga 小组的报告“返回富客户端”(请参见参考资料)预测在以后的三年中,富浏览器客户端将增长 350%,独立客户端将增长 250%,而 HTML 将下降 50%。
Eclipse 富客户端平台
在您真正远离 RIA 的狂热,并选择现实的胖客户端解决方案后,您的目标是什么呢?答:您选择将为您处理工作的 RCP。从本质上说,RCP 概念将框架带入了 Java 桌面应用程序世界,就像所有 Web 框架为 J2EE/Java EE 世界执行的任务一样。如果您不是 Java 新手,并且在长期关注它的发展,则一定会了解 Eclipse 正在空前流行,Eclipse 富客户端平台 (RCP) 正在成为实际的 Java 桌面客户端框架。
什么是 Eclipse RCP?
将 Eclipse 平台设计为开放工具平台时,它的体系结构仅允许您构建任何客户端应用程序及其组件。构建富客户端应用程序所需的最小插件集总称为富客户端平台。如图 1 所示,Eclipse 富客户端平台由以下组件组成:Eclipse Runtime with OSGi(开放服务网关活动)、SWT(标准小部件工具包)、JFace 和 Workbench UI。 Eclipse RCP 运行时占用更小的空间。最新的 Eclipse 3.2 RCP 运行时只占用 9MB。 尽管它较小,但是它有许多灵活的功能,可以帮助您开发下一代桌面 Java 应用程序。 人们为什么使用 Eclipse RCP
将客户端框架用作 Eclipse RCP 有许多好处: 本机外观:
许多人使用 Eclipse RCP 是因为它允许在多个平台上快速构建具有本机和专业外观的应用程序,使人们把重点集中在他们的增值服务上,这一切都得益于优秀的 SWT 技术。 常见的应用程序服务:
Eclipse RCP 开发人员还赏识组成 RCP 的组件质量高、维护积极并且是开放源代码。他们在最初采用 RCP 之后,常常会发现有许多其他组件可以重用(例如,Help UI、Update Manager、Cheat Sheets 和 Intro 等)。 可扩展性:
有些 Eclipse 采用者还发现 Eclipse 固有的可扩展性允许他们不仅可以构建封闭式产品,而且还可以在他们自已的域中构建开放的平台(如 Eclipse IDE)。 作为集成点的 Eclipse RCP
在 Eclipse 中,集成完全独立的组件非常容易。独立组件的视图可以很容易地共享工作区。所以,使用时会自然选择该视图。 Eclipse RCP 拥有客户端应用程序集成平台,其中 SWT、WEB、Swing、Visual Basic、ActiveX 和本机应用程序都可以共存。 Eclipse RCP 的附加框架
Eclipse RCP 为您提供了构建下一个胖客户端应用程序的坚实基础。但是它不能提供某些高级桌面应用程序所需的一些重要功能。例如,安全(包括身份验证和授权)、脱机功能和部署。IBM 托管的客户机中间件技术可以提供这些功能。 IBM 客户端技术堆栈
在上面的图 2 中,托管的客户端服务基于 OSGi 和服务管理框架 (SMF) 来提供 JVM 中服务和应用程序的独立生命周期管理。平台管理构建在这些托管的客户端服务之上,并使用 SyncML 协议支持应用程序的随需应变的管理(范围从被动分发到主动的智能管理)。 访问服务层可以将后端编程模型和 API 向外扩展到客户端。所以您可以在此处的客户端容器承载 Web 应用程序、数据库应用程序、Web 服务和更多权限。访问服务层还允许访问电子商务应用程序、服务和数据。它同时支持连接的和断开连接的操作。 交互服务可以提供对不同类型客户端的支持:基于浏览器的 HTML、WML、JSPs/Servlets/Portlet 或者 SWT 或 Swing 之类的胖图形用户界面客户端。 协作服务是构建高级实时协作应用程序的框架。 产品支持
从产品角度来看,用于 Window 和 Linux 的 WebSphere Everyplace Deployment(以下称为 WebSphere Everyplace Deployment)提供了部署解决方案应用程序所需的所有内容,并包括所有的交互服务、访问服务和上图的基本核心托管客户端服务和平台管理。IBM Workplace Managed Client(以下称为 Workplace Managed Client)构建在 WebSphere Everyplace Deployment 之上,并添加了协作功能,以便支持丰富的协作。 所以,如果您要部署 Eclipse RCP 应用程序,可以选择以下三个堆栈之一:基本 Eclipse RCP、IBM WebSphere Everyplace Deployment 或 IBM Workplace Managed Client。 构建于 IBM RCP Stack 之上的胖客户端应用程序
Eclipse RCP、WebSphere Everyplace Deployment 和 Workplace Managed Client 是 IBM 的桌面应用程序策略。它们为下一代客户端软件奠定了基础。某些即将发布的 IBM 软件产品已经利用了这些现有的客户端中间件堆栈。其中的一些例子包括:
Lotus Sametime Connect 7.5:即时消息(图 3)
Hannover:IBM Lotus Notes 的下一个版本(图 4)
WebSphere 平台概述
我们已经讨论了可用于为 WebSphere 平台开发新应用程序的客户端框架。但是 WebSphere 平台到底是什么? 中间件平台:
WebSphere 是 IBM 的集成软件平台。它包括整个中间件基础结构。 传统上,当我们讨论 WebSphere 时,指的是 WebSphere Application Server,它是基于 Java EE 标准 API 和规范的 Java 应用服务器平台。但 WebSphere 正逐渐成为基于开放标准的集成平台(如 Web 服务、BPEL、SCA、SDO 等)。基于 WebSphere Application Server 和 WebSphere Enterprise Service Bus 的 WebSphere Process Server 为面向服务的模块化应用程序提供了基础,并支持符合业务规则的应用程序,促进了支持业务流程的应用程序的发展。 易用性的服务和资源
WebSphere Application Server 支持全部的开放标准编程接口。从 J2EE 角度来看,WebSphere Application Server 完全支持 J2EE 1.4 API: 除了开放标准支持外,WebSphere Application Server 和 WebSphere Process Server 还具有满足高级应用程序要求和新出现的用于 SOA 开放标准的 API 扩展支持: 从客户端应用程序角度来看,WebSphere Application Server 和 WebSphere Process Server 承载了各种组件和资源。其中包括: 通过不同的协议和传输可访问上述服务。我们将重点介绍以下传输: 结合使用 Eclipse 富客户端和 WebSphere
传统上,WebSphere 平台客户端应用程序主要是在 WebSphere 或一些其他应用服务器内部运行的基于 Web 的应用程序。它们大多数是基于 Servlet、JSP 或 Portlet 的程序。它们可以满足许多客户应用场景和需要。但是,正如我们在前一部分所讨论的,某些类型的应用程序并不像 Web 应用程序那样能够很好地运行,无论它们使用何种 Web 技术。所以需要让 WebSphere 平台服务更适用于独立应用程序。 而且,如果我们观察建立良好的服务器平台,可以了解到大多数都紧密集成了富桌面客户端平台,无论是 IBM Domino、Window Server 还是 SAP 平台。 由于 Eclipse RCP 的出现,带有 RCP 前端和 J2EE 中间件后端的企业应用程序成为最佳组合。确实,我们已经开始看到一些基于这种体系结构的商业产品。其中一个示例是 IBM Sales Center for WebSphere Commerce(以下称为 Sales Center) IBM Sales Center for WebSphere Commerce:
从图 5 可以看到,Sales Center 充当客户端应用程序,与构建在 WebSphere Application Server 之上的后端 WebSphere Commerce Server 进行交互。所使用的通信协议是 SOAP/HTTP。
使用 Eclipse 富客户端接口的好处
Sales Center 利用 WebSphere Commerce 的目录、订单管理、促销和销售策划功能,向联系中心代表提供他们为跨渠道客户提供服务和追加销售所需的功能。它通过为提高工作效率和多任务而设计的可自定义、高性能用户界面支持大量联系中心所需的速度和工作效率。 其主要特性包括:
示例 RCP JNDI 应程序
如果以前使用过 WebSphere Application Server,您就会知道 JNDI 命名库对应用服务器是多么重要。在许多情况下,您可能需要浏览 JNDI 名称树,以了解应用程序或调试应用程序的问题。在 WebSphere Application Server 中有一个命令行命名空间转储实用工具,但是我希望使用图形较多、用户友好的界面。这是我决定编写 RCP 应用程序以探索 JNDI 树的原因。它仅使用 Eclipse RCP 框架。它仅有一个名为 JNDIExplorer 的视图(图 7)。但是,有了 Eclipse 插件体系结构,您可以对此框架的外观进行更多的自定义。从内部机制看,它使用 JNDI API 与 WebSphere Application Server 命名服务进行通信,以检索信息。 它是一个在许多情况下都可以使用的小巧的实用工具。在没有 Web 服务器的情况下,它可以单独运行,而无需安装到 Web 服务器。您不需要将其部署到许多最终用户。所以,它是桌面客户端应用程序的优秀用例。 结束语
在本文中,我们讨论了在开发某些类型的 WebSphere 平台客户端应用程序时,为什么应该重点考虑将 Eclipse RCP 作为可行的、有吸引力的选项。WebSphere 平台提供了经验证的服务器端技术,而 Eclipse RCP 是流行的客户端框架。使 WebSphere 服务器承载的某些企业服务用于 RCP 客户端可以得到更好的性能和交互,从而可以更好地满足最终用户的需求。 参考资料 关于作者<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="3"></td></tr><tr align="left" valign="top"><td> Peter Xu 是 IBM Software Service for WebSphere 的一名咨询 I/T 专家。
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>
↑返回目录
前一篇: 使用 Update Manager 更新 RCP 应用程序
后一篇: Eclipse Communication Framework 入门