内容


使用 ITCAM for SOA 监控 BPM Systems,第 3 部分

使用 Service-to-Service 拓扑视图

使用 Service-to-Service 拓扑视图监控 WDPE 模型和运行时调用执行路径

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 使用 ITCAM for SOA 监控 BPM Systems,第 3 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:使用 ITCAM for SOA 监控 BPM Systems,第 3 部分

敬请期待该系列的后续内容。

什么是 Service-to-Service 拓扑?

我们可以使用一个示例来解释什么是 Service-to-Service 拓扑。在图 1 展示的示例场景中,一个 BPEL 组件调用 4 个服务序列来完成其工作。假定这 4 个服务序列是异构的,BPEL 组件必须通过不同的协议(如 SCA、JAX-RPC、JMS 和 HTTP)来调用它们。

图 1. 示例场景
本文使用的示例场景
本文使用的示例场景

以上示例场景展示了这样一种拓扑:BPEL 组件根据对应的导出使用各种导入方法(SCA 导入\JAX-RPC 导入\JMS 导入)调用服务。这个场景可以在 WID 中实现,然后将应用程序部署到 WPS (Websphere Process Server) 并运行。当 ITCAM for SOA 监控到这样的场景时,它将在 Service-to-Service 视图中展示该场景的拓扑,如图 2 所示。

图 2. Service-to-Service 拓扑视图
Service-to-Service 拓扑视图
Service-to-Service 拓扑视图

在图 2 中,一个 “齿轮” 代表一个服务,齿轮之间的箭头表示调用事务,ITCAM for SOA 通过服务之间的事务建立服务之间的关系。由于这个图将服务之间的关系展示为拓扑,因此我们将其称之为 Service-to-Service 拓扑。

ITCAM for SOA 不仅能够显示事务之间的拓扑,而且能够显示流量数据等事务细节。图 2 中有许多齿轮,当您将鼠标移动到某个齿轮之上时,它将显示详细的流量数据信息,图 3 显示了一个事务的流量数据。

图 3. 一个事务的流量数据
一个事务的流量数据
一个事务的流量数据

限制拓扑图中的数据范围

这个拓扑视图默认显示 ITCAM for SOA 能够发现的所有关系,因此,如果涉及的应用程序很多,则图表将变得相当复杂。如果您通过打开 “ITCAM for SOA” Navigator 视图并选择 “Operational Flows” 工作空间来导航 Service-to-Service 拓扑工作空间,这个视图将显示 ITCAM for SOA 监控到的企业中的所有流的拓扑结构。我们将其称为 “All Operational Flows” 视图,参见 “图 4. All Operational Flows” 了解细节。在图 4 中,我们不仅看到如图 3 所示的拓扑,还看到来自 ITCAM for SOA 正在监控的其他系统的拓扑。

图 4. All Operational Flows
All Operational Flows
All Operational Flows

随着应用程序数量不断增加,“齿轮” 的数量也会迅速增加,因此,包含大量应用程序的复杂系统的拓扑图将变得越来越复杂。毫无疑问,您需要一种方法来在大量 “齿轮” 中找到您所需的部分,否则您将遇到麻烦。有许多方法可以限制这个视图中显示的数据范围,您可以利用它们轻松、准确地找到所需的内容。

要限制数据范围,您可以通过多种方法启动操作流视图,比如通过特定服务器节点或特定消息启动。拓扑中显示的元素将仅限于您启动的范围。

1. 通过特定服务器节点链接到 Service-to-Service 拓扑视图。

这种方法的目的是将拓扑范围限制到所选择的应用服务器,拓扑视图将显示所选服务器而不是整个企业中的 Service-to-Service 的关系。

如果您导航到某台机器对应的一个应用服务器节点(例如 AppMem1,参见 “图 5. 将数据范围限制到一个应用服务器”)并选择 “Operational Flow for application Server”,涉及的服务将限制到选中的应用服务器中发生的调用。“图 2. Service-to-Service 拓扑视图” 正是为 AppMem1 选择 “Operational Flow for application Server” 的结果,您可以对照 “图 4. All Operational Flows” 中显示的服务总图更清晰地理解该视图。

图 5. 将数据范围限制到一个应用服务器
将数据范围限制到一个应用服务器
将数据范围限制到一个应用服务器

2. 通过特定消息链接到 Service-to-Service 拓扑视图。

这种方法的目的是将拓扑限制到消息类型的范围。ITCAM for SOA 中有两种消息类型:Requester 和 Provider。您可以选择从 Requester 方或 Provider 方显示拓扑。

如果您导航到某个应用服务器节点(如 AppMem1)以查看 Performance Summary 视图,则该视图下方的面板显示 “Services Inventory”。位于表行的左边的链接图标可用于链接到 Service-to-Service 拓扑视图,参见 “图 6. 通过消息链接到 Service-to-Service 拓扑”。

图 6. 通过消息链接到 Service-to-Service 拓扑
通过消息链接到 Service-to-Service 拓扑
通过消息链接到 Service-to-Service 拓扑

如果您选择一个 “requester” 行的链接,则该链接被称为 “Operational Flows for Application Server”。这个链接将导致生成一个 “只” 显示来自请求者端的消息的拓扑。参见 “图 7. 消息拓扑视图”,显示了选择来自请求者端的消息的拓扑。

如果在 ND 环境中调用服务,消息实例可以在任何应用程序成员上运行。不管消息在哪个应用程序成员上执行,ITCAM for SOA 都将显示该消息。例如,如果您从 AppMem1 链接消息拓扑视图,则 ITCAM for SOA 将以蓝色突出显示在 AppMem1 上执行的消息,以灰色显示其他消息以表明那些消息不在 AppMem1 上执行,但被 ITCAM for SOA 捕获。您可以阅读本系列文章的第 4 部分 “使用 ITCAM for SOA 监控并分析 ND 集群环境”,了解关于 ND 集群环境中的 ITCAM for SOA 的更多信息。

图 7. 消息拓扑视图
消息拓扑视图
消息拓扑视图

如果您选择一个 “provider” 行的链接,则这个链接被称为 “Operational Flows for Operation”。这个链接生成的拓扑将 “只” 显示对 Services Inventory 表的这个行涉及 Service/Operation 的那些流。与 “requester” 视图类似,表示选中的 Service/Operation 的 “Operational Flows for Operation” 拓扑中的节点以蓝色突出显示,表明该节点被执行,而流中的其他节点以灰色显示,表明它们没有被执行。

通常,我们不建议用户通过 “All Operation Flows” 路径到达 Service-to-Service 拓扑工作空间,建议以这两种方法之一启动它们,以便将拓扑限制到用户更容易监控的特定项目(Application Server 或 Service/Operation)。

使用 Service-Group 来定制受到关注的服务

默认情况下,Service-to-Service 拓扑视图将显示所有受到监控的操作。但是,客户可能对服务图表的某个部分而不是整个拓扑更感兴趣。例如,在 “图 2. Service-to-Service 拓扑视图” 中,该拓扑拥有 4 个分支。假定客户只关心第一个分支,原因是该分支与处理高风险申请人有关。

在某些情况下,客户可能想在一个视图内显示不相关的服务。例如,在一个 Web 采购场景中,“客户订单产品” 和 “物流交付产品” 是两个不相关的流程并在不同的系统中运行,但客户想同时显示它们以从头到尾跟踪整个采购状态。

为实现这一点,我们可以使用 “服务组”。在 Service-to-Service 拓扑工作空间中,我们可以选取关注的操作节点,然后在右键单击弹出菜单上选择 “Manage Service Groups” 命令,然后在下一个对话框中定义服务组。图 8 展示如何定义服务组。

图 8. 定义服务组
定义服务组
定义服务组

图 9 中显示的 Manage Service Group 面板将弹出来,我们可以为选中的服务定义一个 “High risk verfication”。

图 9. 管理服务组
管理服务组
管理服务组

定义一个服务组后,您可以从 “Service Groups Summary” 视图检查该服务的状态。要访问服务组视图,转到 “ITCAM for SOA” 导航器,然后从弹出菜单中选择 “Service Groups Summary” 命令。参见图 10 中的 Service groups summary 视图,该图表的右半部分显示了定义的服务组的状态。

图 10. Service groups summary 视图
Service groups summary 视图
Service groups summary 视图

我们刚才定义的服务组的状态在这个摘要视图中显示出来。在这个视图中,我们可以快速监控所关注的服务的状态。如果服务组出现问题,则它有以下 4 种状态:

  • Fatal
  • Critical
  • Warning
  • Unavailable

通过定义服务组,我们可以以逻辑方式对服务编组,从而满足业务需求。这不仅允许客户在 IT 层面监控企业,还允许客户在业务层面监控企业。

使用 SystemContext 修饰符避免 Service-to-Service 拓扑出现碎片

在存在非 SCA 绑定时,您可能会发现拓扑视图中的关系会被打破,这样拓扑看起来十分零碎,因此难以理解。参见 “图 11. 破碎的拓扑视图”,它所展现的场景与本文提出的第一个场景类似(其服务拓扑如图 2 所示),它包含没有应用 SystemContext 修饰符的非 SCA 绑定。

图 11. 破碎的拓扑视图
破碎的拓扑视图
破碎的拓扑视图

图 11 中有一些碎片,这使人很难理解相关服务之间的关系。之所以出现这样的碎片,原因是关系数据来自事务,而事务需要系统上下文来了解调用源和目标。但是,默认情况下,系统上下文通过绑定传播,只有 SCA 绑定会传播系统上下文,而其他绑定不会传播。因此,当系统上下文缺失时,ITCAM for SOA 无法知晓调用源和目标来构建关系,因此在拓扑视图中出现了碎片。

为避免出现这种碎片并显示完整的关系,System Context 必须被传播出去。从 WPS 6.2 发布版开始,System Context 传播通过非 SCA 绑定(包括 JMS/MQ/JAX-RPC/JAX-WS/HTTP/JCA 绑定)支持。由于 System Context 被设计为在默认情况下不会被传播,因此我们需要在导入绑定中添加 “Propagate system context” 来启用传播。

1. 使用 WID6.2.0.1

WID6.2.0.1 已经支持通过 GUI 添加 “Propagate system context” 修饰符。在 WID assembler 视图中,选择导入组件,然后更改 “Propagation” 属性,将 “Propagate system context” 设置为 true,参见 “图 12. 在 WID6.2.0.1 中启用系统上下文传播”。

图 12. 在 WID6.2.0.1 中启用系统上下文传播1
在 WID6.2.0.1 中启用系统上下文传播
在 WID6.2.0.1 中启用系统上下文传播

设置好这个修饰符后,ITCAM for SOA 就能够从系统上下文中得知调用源和目标,从而在请求者和提供者之间建立必要的关系。在图 13 中,您可以看到碎片已经消失,请比较图 11 中的拓扑视图。

图 13. 碎片消失
碎片消失
碎片消失

2. 使用 WID 6.2

如果用户使用 WID 6.2,我们强烈建议用户升级到 WID 6.2.0.1。否则,由于 WID 6.2 不支持 “Propagate system context”,用户必须通过修改 Import 文件手动添加修饰符。

这里有一个手动支持 “Propagate system context” 的例子。您需要找到要传播系统上下文的 *.import 文件并通过一个文本编辑器打开它,然后在 <esbBinding></esbBinding> 标记对中添加字符串 “<scdl:bindingQualifier xsi:type="scdl:IsTargetSCA" value="true"/>”,参见以下代码段中的粗体显示文本。这种方法与在 WID 6.2.0.1 中使用 GUI 方法启用 “Propagate system context” 等效。

<?xml version="1.0" encoding="UTF-8"?>
<scdl:import xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:Binding4="http://tSessionAsyncLib/testInterface/Binding4" 
xmlns:ns1="http://tSessionAsyncLib/testInterface" 
xmlns:scdl="http://www.ibm.com/xmlns/prod/websphere/scdl/6.0.0" 
xmlns:webservice="http://www.ibm.com/xmlns/prod/websphere/scdl/webservice/6.0.0" 
xmlns:wsdl="http://www.ibm.com/xmlns/prod/websphere/scdl/wsdl/6.0.0" 
        displayName="targetWSImport" 
name="targetWSImport">
  <interfaces><interface xsi:type="wsdl:WSDLPortType" portType="ns1:testInterface"/> 
            </interfaces>
<esbBinding xsi:type="webservice:WebServiceImportBinding" 
endpoint="http://localhost:9080/tSessionBusinessContextTargetWeb/sca
                                /testInterfaceExport1" 
port="Binding4:testInterfaceExport1_testInterfaceHttpPort" 
service="Binding4:testInterfaceExport1_testInterfaceHttpService" 
        userContextPropagationEnabled="true">
  <scdl:bindingQualifier xsi:type="scdl:IsTargetSCA" value="true"/>
</esbBinding>
</scdl:import>

结束语

在本文中,您了解了什么是 Service-to-Service 视图以及如何使用 Service-to-Service 拓扑视图来监控 WDPE 运行时。有许多最佳实践可用于简化图表并快速找到感兴趣的服务内容,比如限制拓扑显示范围,定义 Service-Group 或启用 SystemContext 修饰符传播以避免图表碎片。对于客户来说,使用 ITCAM for SOA 来轻松有效地监控他们的 BPM 系统是非常有帮助的。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services, Tivoli
ArticleID=501124
ArticleTitle=使用 ITCAM for SOA 监控 BPM Systems,第 3 部分: 使用 Service-to-Service 拓扑视图
publish-date=07192010