首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

WebSphere Message Broker V7 下的影响分析

2012-09-01 
WebSphere Message Broker V7 上的影响分析在调用存款或提款操作时,Message Broker 将输入信息转换成可被

WebSphere Message Broker V7 上的影响分析

在调用存款或提款操作时,Message Broker 将输入信息转换成可被银行后端系统接受的消息格式。在这个示例中,为了简单起见,一个子流程模拟连接到银行后端系统。

通过使用 ESQL 代码,来自银行后端系统的响应被返回且一个 SOAP 消息已构造,以便为该操作产生一个回复消息。图 2 显示了消息流的概况,BankOperationFlow.msgflow 实现了刚才所描述的场景:


图 2. 描述示例场景的消息流
WebSphere Message Broker V7 下的影响分析

图 1 中描述的 WSDL 被导入到消息集中,且 MXSD 定义包含了 transferIntransferOut 消息的 ops.mxsd,其通过导入创建。在执行存款时 transferIn 是输入消息,而在请求提款时 transferOut 是被使用的消息。

模拟的后端系统采用消息 changeRequest 作为输入并返回 updateConfirmation。这些都在文件 BackendOperationMessages.mxsd 中被定义。

根据被调用的操作,消息 transferIntransferOut 必须被映射到消息 changeRequest 中以便将变更持久化到存储系统中。此映射的示例如图 3 所示:


图 3. 执行映射以便创建适用于后端系统的消息格式的示例
WebSphere Message Broker V7 下的影响分析

来自 transferOut 消息的映射是相似的。因为本文的重点不是映射,所以仅使用一个直观的映射示例进行说明。

一旦消息流通过调用模拟子流程更新了后端上的信息,则主流程会传递控制到 Compute(计算)节点,其在 ESQL 内调用模块以确定变更是否成功。

ESQL 的第二个功能是通过从 updateConfirmation 消息复制字段来构建 SOAP 回复消息。以下是 ESQL 代码:


图 4. 构建 SOAP 回复消息的 ESQL 代码段
WebSphere Message Broker V7 下的影响分析

虽然这个应用程序没有任何验证错误,但是建立它是为了反映正在开发的应用程序的状态;也就是说,项目的一些位置并没有遵循最佳实践,且一些构造没有清晰地命名。本文为您展示了如何使用影响分析来帮助您修改保持应用程序最终有效状态的项目和构造。

此 Impact Analysis 子菜单列出了影响分析可以为所选项目进行分析的变更。如果该项目不支持影响分析,则此子菜单将不显示。


图 6. Impact Analysis 子菜单
WebSphere Message Broker V7 下的影响分析

调用影响分析的第二种方法是在编辑器内选择构造并调用与上下文相关的 Impact Analysis 菜单。正如第一种选择那样,它只出现在那些支持影响分析的构造上。在 Message Broker V7.0 中,来自编辑器内的影响分析支持仅在消息定义编辑器 (Message Definition Editor) 中可用。

调用影响分析的示例如下面的图 7 所示。引用构造(如元素引用和组引用)无法通过其他项目引用,因此在引用项目上 Impact Analysis 子菜单不出现。为了说明此概念,请查看如图 7 所示的消息 transferIn 上的元素引用 tns:id。这不是一个全局性的元素定义而是一个全局性元素 id(列于 Elements and Attributes(元素和属性)下)的元素引用。如果您在 transferIn 下的 tns:id 上单击右键,则上下文菜单中将不会有 Impact Analysis 子菜单。然而,如果您在 Elements and Attributes 下的 id 上单击右键,您将会在上下文菜单内看到 Impact Analysis 子菜单:


图 7. 通过消息定义编辑器调用影响分析
WebSphere Message Broker V7 下的影响分析

您可以在应用程序示例内对许多不同类型的对象调用影响分析。本文重点介绍两个重新命名的变更和一个移动的变更以便提供 Message Broker V7.0 功能的概述。在本文的后面,您可以作出一系列其他的变更以了解有关影响分析的更多信息。

下列图 9 显示带有分析结果的模式对话框。在此窗口内有三个表,用带颜色的数字 1、2 和 3 表示,每一个描述如下:


图 9. 来自重新命名的影响分析的结果
WebSphere Message Broker V7 下的影响分析

    表 1 列出了这些分析结果所属的操作。表 2 列出了初始的变更(也称作主要变更),它们是为执行第一张表中指定的操作而必须执行的操作。初始变更表上的每一行都表示一个单一的操作,包括其上必须执行变更的文件的位置,以及必须做什么的描述。在此示例中,该操作就是重新命名 transferIndepositRequest 且因此必须执行的操作是将消息定义名称从 transferIn 变更为 depositRequest。前两个表都没有提供有关将被此变更影响的项目的任何信息(在执行影响分析时这是我们最感兴趣的事情)。表 3 列出了潜在的影响(也称为次要影响)。此表中的项目依赖正在经历变更的构造。像表 2 那样,除主要变更以外,表 3 中的每一行都描述了一个应该执行的单一操作以避免验证错误。同样地,每一行上的信息可准确地识别哪个文件必须更新且在此文件中需要更新什么。滚动表到右侧以显示每项操作的更多详细说明。例如,消息映射的变更所包含的详细信息:

如果您粘贴报告到通用文本编辑器,则表格式可能不存在。

由于您刚刚做出了变更,因此在可部署的 WSDL 上会有一个错误,这是因为元素 transferIn 被重新命名为 depositRequest(还记得吗,影响分析是在消息而非元素上执行的)。

此示例说明影响分析的一个限制 — 它只报告那些直接依靠正在被变更的构造的项目。在这种情况下,WSDL 依靠元素 transferIn,反过来则要依靠重新命名的消息 depositRequest。为了防止出现这种情况,请在重新命名元素以前执行第二个影响分析以检测将要出现的次要影响,如图 12 所示:


图 12. 将 WSDL 列为次要影响
WebSphere Message Broker V7 下的影响分析

在重新命名元素 transferIn 时,可部署的 WSDL BankOperations.wsdl 如所预期的那样被列为次要影响。虽然消息定义 transferIn 也被列为次要影响,但这是因为消息定义和元素的名称必须一致。

在此示例中,消息映射 BankOperationsFlow_Convert_Withdrawal.msgmap 和 ESQL 文件 BankOperationsFlow.esql 都属于一个名为 testing 的 Broker 架构。这些文件已经被测试过且需要把他们移动到 Broker 架构 impactanalysis.bank 中。但是在移动它们以前,您需要确定此移动是否会影响其他的项目。

图 14 显示了 Impact Analysis — Move Artifact 模式对话框。它显示了将要被分析的项目和构造并让您指定目标位置而后再点击 Analyze Impact


图 14. Impact Analysis — Move Artifact 对话框
WebSphere Message Broker V7 下的影响分析

下一个窗口显示,基于项目如何移动的分析在前一个页面中指定。该接口类似于重新命名操作,但是因为不同的场景而使内容不同。因为选择了多个文件,所以表 1 拥有多个操作。表 2 列出了主要更改,它们是一些将要被移动的文件和构造。表 3 列出了次要影响:


图 15. 在移动一些项目时影响分析的结果
WebSphere Message Broker V7 下的影响分析

在此示例中存在四个次要影响。两个影响在 ESQL 文件自身内,因为这里有一些对将要被移动的架构范围常量的引用。在移动一个 ESQL 文件时,也会移动在 ESQL 文件内的所有构造。

更重要的次要影响关心的是消息流 BankOperationFlow.msgflow。消息流使用消息映射和 ESQL 文件二者来转换消息格式,因此如果功能已经移动到一个新的位置,则消息流必须知道其在哪里。在移动文件以后,为了使应用程序正确地验证,消息流也必须被更新。

项目构造次要影响?变更入口点项目/构造描述名字大小下载方法本文介绍的项目交换文件impactanalysis.zip14 KBHTTP

?

原文:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1007_kalia/1007_kalia.html?ca=drs-tp4608

热点排行