流程门户
Sandy 确定基于门户的帐户开立流程与仪表板应用程序之间需要更紧密的集成。虽然帐户开立仪表板的最初实现可以解决现存的许多难题,但是,若要实现让登录到门户的用户能以个性化的方式与基于后端 BPEL 的帐户开立业务流程进行直接交互,还需要一个门户表示层。
注意:流程门户旨在通过业务流程的一致且易于使用的个性化用户界面,在适当的时间将适当的任务呈现给适当的人员。
建议的解决方案
Edmund 最近知道了如何让流程门户允许来自不同客户端类型(Web 浏览器、富客户端、移动客户端等)的用户以其惯用的方式访问帐户开立流程,而无需为每种访问渠道制定不同的机制。在 JKHLE 环境中,需要支持以下用户的 Web 浏览器客户端:Internet 和内部网用户、与语音响应系统进行交互的仅使用语音服务的用户,以及与客户服务代表协作的用户。
Edmund 注意到,需要尽可能少或根本没有人工交互使业务流程尽快向前发展,然而他也知道可能需要一些人工交互。
Edmund 使用以下标准来评估帐户开立业务流程对人工交互的需要:
- 法律法规:是否有一些政府规定和法规?
- 缺少规则:是否存在灰色区域,其中没有基于模式的决策流程来生成一致的业务结果?
- 数据输入:以电子方式输入信息时是否需要指导?
Edmund 确定帐户开立流程需要人工交互。
使用带有电子表格的流程门户可满足定义的需求。Edmund 准备了一份设计文档,用于捕获流程门户的关键需求和高级解决方案体系结构。接下来,Edmund 与 Ming 讨论如何提出设计需求,以及促进低级设计和流程门户组装的开发。
Ming 设想使用一种安全门户,客户需要先注册才能使用。
注册客户然后登录并在流程门户中使用电子表格 (eForms) 完成帐户应用程序。此功能是通过使用 IBM Lotus Forms 以及 IBM WebSphere Portal,并将这两者与 IBM WebSphere Process Server 集成在一起实现的。在填写了 eForm 并提交之后,业务流程将启动。基于 BPEL 的业务流程根据某些业务规则确定是否需要信用管理器来对应用程序进行评估,如果需要,系统会在信用管理器仪表板中显示审批请求。
Ming 决定在低级流程门户设计和组装中使用流程 Portlet。最终得到的设计提供了流程 Portlet 与业务流程的人工任务之间的紧密集成。Task 页面上的其他 Portlet 通过属性代理程序从流程 Portlet 中接收其业务上下文。因此,Task 页面将呈现与手头任务相关的内容。系统将向客户通报关于帐户在整个帐户开立流程中的状态。如果帐户成功经过审核和处理,系统会通过电子邮件向客户通报帐户条款和条件。
图 6 显示了流程门户高级解决方案体系结构

开发组织决定对用于组装以下产品的 Portlet、业务流程和 eForm 的工具进行标准化:IBM Rational Application Developer、IBM Lotus Forms Designer、IBM WebSphere Business Modeler 和 IBM WebSphere Integration Developer。在部署基础结构时,将使用 IBM WebSphere Portal、IBM WebSphere Process Server 和 IBM Lotus Forms。
托管客户端
销售团队和客户均已报告了现有的帐户开立流程在用户界面和体验方面存在不一致性,这给客户满意度带来了负面影响,并且对发展新客户造成了影响。
此外,销售团队已请求获得在连接和断开连接模式下从富客户端访问帐户开立流程应用程序的能力。
销售团队希望,在断开连接模式下,可以在企业客户处采用电子方式现场捕获客户信息。当销售团队处于连接模式时,他们可以将客户帐户信息公布到帐户开立流程门户来启动工作流。
建议的解决方案
Edmund 确定,需要基于定义的需求采用标准和分布式 SOA 组合应用程序体系结构。
采用标准
Edmund 与开发组织讨论,就采用标准事宜达成一致。JKHLE 团队同意通过以下三项关键计划采用标准:
- JSR 168 Portlet
- 基于 Eclipse 的 IBM Rational Application Developer 工具
- IBM WebSphere Portal 和 IBM Lotus Expeditor 中间件基础结构
使用 Rational Application Developer 工具组装 JSR 168 Portlet 不仅能获得在通用编程模型上实现标准化所带来的好处,还能减少编写大量代码的需要。这样就可以进行更快速的实现,集中精力进行技能开发。
SOA 组合应用程序
Edmund 研究并掌握了如何使用 SOA 组合应用程序来满足这些需求。通过实现分布式组合应用程序,用户及相应的富客户端和移动客户端可以获得一个通用的基于门户的用户界面,这样他们就能基于用户角色与相关的服务和内容进行交互,从而提高工作效率。
此解决方案是使用 IBM Lotus Expeditor 和 IBM WebSphere Portal 实现的。
Lotus Expeditor 包括客户端和服务器,它们用于部署和管理组合应用程序。Expediter 包括基于 Eclipse 的工具包,此工具包可与 IBM Rational Application Developer 结合使用来组装组合应用程序。客户端组合应用程序用户界面可以使用 AWT、Swing、Web 实现,也可以基于门户实现。Expeditor 能够通过使用 OSGI 来远程分发和管理客户端代码。
在 Lotus Expeditor 组合应用程序中部署的组件能够与 WebSphere Portal Server 紧密集成。Lotus Expeditor 组件还可以与其他组件进行通信,使用 WSRP,以及在联机连接和断开连接模式下无缝地运行。Lotus Expeditor 桌面客户端为在断开连接模式下在本地运行的组合应用程序提供了 SSO 功能。组合应用程序还可以在连接模式下向远程门户主机发出凭据以实现 SSO。
Lotus Expeditor 客户端与服务器之间的通信是使用不同的协议执行的,具体取决于连接模式:
- 在联机连接模式下,客户端可以针对查询和事务使用 Web 服务通过 SOAP over HTTP 与服务器进行通信。
- 在断开连接模式下,应用程序查询存储在本地数据库中,然后使用 DB2® Everyplace® (DB2e) 同步功能与服务器应用程序进行同步。
在处于断开连接模式下,将使用 MQ 和 MQ Everyplace (MQe) 将事务以 JMS 消息的形式从客户端发送到服务器。JMS 消息将保存在客户端中,并在客户端下次连接时发送给服务器。
在完成事务更新之后,由此产生的更改将同步发送回客户端。
Lotus Expeditor 客户端应用程序利用了 Lotus Expeditor 桌面客户端提供的许多 OSGi 服务,如针对本地服务提供者的 Web 服务代理、MQe 和 DB2e。JKHLE 开发人员可以利用 Lotus Expeditor 工具包及相关的组件提供的功能来对现有的门户应用程序进行转换,以构建能够在联机连接模式和断开连接模式下运行门户应用程序的分布式组合应用程序。
图 7 中所示的组合应用程序使用了 Lotus Expeditor 提供的几种主要解决方案模式和技术。带有 eForm 的基于通用门户的用户界面在 Expeditor 客户端上运行。客户端组合应用程序代码从远程 Expeditor 服务器分发到 Expeditor 客户端。
图 7 使用 Lotus Expeditor 和 WebSphere Portal 的 SOA 组合应用程序

销售人员可以在企业客户处于断开连接模式下时现场在基于门户的 eForm 中输入帐户信息。帐户数据将存储在本地 JMS 队列中。当销售人员处于连接模式下时,将使用 JMS 将帐户信息发布到流程门户,以启动帐户开立工作流。由于内容呈现是在 Expeditor 客户端上本地执行的,因此销售团队将会非常欣喜地看到门户页面性能方面的改进。当处于连接模式时,组合应用程序可以与指向后端系统的服务进行交互。
使用 Web 2.0 实现组织协作
Peggy Smith 是财务部帐户经理,主要负责监视帐户开立流程的业务成果。Peggy 是一位明智的业务用户,她正在寻找可在当前业务区中立即可用的自定义门户页面或企业 Mashup 解决方案。
Peggy 定义了用于监视帐户状态和业务成果的门户页面所需的信息。接下来,她与 IT 主管 Andy Brunner 联系,请求 Andy 为她开发访问她定义的信息所需的接口。
Andy 的团队之前已开发了一些服务,并且已将这些服务公开为可用作接口的代表性状态传输 (REST) 服务。Andy 与他的团队协作,对将访问这些 REST 服务的相应 Portlet 的开发任务进行分配。这样,Peggy 需要做的是搜索企业门户来找出各种预构建的 Portlet、创建页面、使用门户自定义功能组装和连接 Portlet,然后显示这些 Portlet 以创建自定义、个性化用户界面或门户页面。
建议的解决方案
Andy 将为帐户开立流程服务设计和实现 REST 接口这一任务分配给了 Ming(帐户开立项目的开发负责人)。Ming 确定此解决方案将提供 ATOM Feed,其中包含过时的帐户开立活动的列表,以及用于提供帐户清单和帐户历史记录详细信息的 REST 服务。
在创建和维护帐户的热门列表时需要用到使用 REST 和 Portlet 接口的新服务。热门列表可供帐户经理和客户服务代表用于监视帐户流程和业务成果,以获得很高的客户满意度。热门列表是使用 IBM WebSphere Application Server Feature Pack for Web 2.0 作为 ATOM Feed 提供的。
Ming 使用 IBM WebSphere Portlet Factory 来开发 Portlet,该 Portlet 可连接到帐户开立流程所使用的现有 SOAP 服务。Ming 向企业门户发布了新服务和 Portlet。
Ming 告诉 Andy 和 Peggy,Peggy 将使用的企业门户上已经提供了请求的 REST 接口和相应的 Portlet。
Peggy 值得兴奋的是,她现在可以利用门户自定义功能快速构建自定义门户页面来满足她的需求。既然所需的 Portlet 可用,那么她可以使用以下工具自定义门户页面:编辑布局、连接 Portlet 以及其他所见即所得工具。既然 Portlet 在整个 Portlet 调色板中可用,Peggy 就可以创建她的门户页面并将 Portlet 添加到此页面。
接下来,她将各个 Portlet 连接在一起,以创建具有以下四个主要区域的自定义门户页面:
- 新开立帐户的过时清单,显示每个帐户在流程中某一阶段的状态。
- 帐户历史记录,使用新创建的帐户历史记录服务的 ATOM Feed 服务接口提供关于帐户的详细信息。
- 对于每个帐户,Peggy 现在可以使用文档 Feed 访问她在 IBM Lotus Quickr(TM) 服务器上为其客户端维护的所有的合法文档。
- Peggy 可以单击 Feed 直接跳转到文档,而无需查找相关库并搜索文档。
- 信用报告,显示从 JKHLE 和外部信用机构收集的关于帐户持有者的当前和过去的信用信息。
- 热门列表区域,用于标记需要注意的帐户。在最近部署了 IBM Lotus Connections 之后,Peggy 和她的团队可以为他们当前正在处理的每个帐户维护活动,并快速查看需要注意的地方。
图 8 概要介绍了以下关键解决方案元素和任务:开发服务和 Portlet、发布到企业门户、部署到基础结构,以及通过 Portlet 使用服务。
图 8 使用 Web 2.0 技术的自定义门户
