该实现演示了一些自动回滚功能,这些功能由 AIS 中基于 SCA 的管理与 WS-AT 协议协同提供。在第 2 部分中,您将为示例场景中的 Credit 和 Charge 操作配置事务支持,并实现两个事务 Web 服务(一个使用 .NET® 实现,另一个使用 JEE 实现)。
本系列的第 2 部分将会介绍为示例场景中的 Credit 和 Charge 操作配置事务支持并实现两个事务 Web 服务的步骤:一个 .NET Web 服务,用于从机器 A 上的 SQL Server 上的 Bank1 扣取资金,一个 JEE Web 服务,用于向机器 B 上的 DB2 上的 Bank2 贷入资金。
我们将介绍以下步骤:
配置安全性证书。我们将在 Windows .NET 机器 A 上创建一个证书并将它导入
WebSphere 机器 B 中,
然后在 WebSphere 机器 B 上创建一个证书并将它导入 Windows .NET 机器 A 中。 在 WebSphere 机器 B 上配置 MSDTC 和 WS-AT。 在 Windows 机器 A 上的 WebSphere 中配置事务支持。
配置安全性证书
如 IBM developerWorks 文章 在 WebSphere Application Server 和 Microsoft .NET 中使用 WS-AtomicTransaction 构建事务 Web 服务 和 使用 WS-Atomic 事务实现 WebSphere ESB 服务网关和 Microsoft .NET WCF 之间的互操作性(以及 MSDN 上为基于解决方案的 .NET 的部分 配置 WS-Atomic Transaction 支持) 中所述,WS-AT 协议服务需要管理员显式创作各个帐户来参与分布式事务。我们在示例场景中将配置机器 A 和 B,通过交换正确的证书集,将它们安装在合适的证书库中,以及使用合适的工具将每个机器的证书添加到另一个机器的授权参与者证书列表中,从而建立一种相互 信任关系。这一步对使用 WS-AT 在两个机器之间执行分布式事务很有必要。WebSphere Application Server 支持安全或非安全的事务协议消息(比如 Register、Prepare、Commit、Rollback)交换。本文中给出的场景需要使用 SSL 相互身份验证保护协议消息。这意味着您需要配置 SSL 安全性并设置证书,WS-AT 才能跨两个平台操作。
在生产环境中,将为每个参与者使用来自一个公认证书颁发机构的一个证书。但是,为了保持此示例的简单性,我们将为 Windows .NET 和 WebSphere 生成一个自签名证书。
在 本节中,我们将在机器 A 和 B 之间建立一种相互信任关系。这是一种完整的配置,对我们希望在 A 与 B 之间建立完全双向的事务上下文传播能力的测试环境很有用。在这里描述的场景中,事务协调器是服务器 B 上的 WebSphere 事务服务,一个参与者是机器 A 上的 Microsoft Distributed Transaction Coordinator (MSDTC)。
在 Windows .NET 机器 “A” 上创建一个证书并导入 WebSphere 机器 “B” 中
使用命令行工具 makecert(包含在 Windows 软件开发工具包 中)为 Windows 7 机器创建一个证书颁发机构,如下所示: makecert –sk testRootCA –sky signature –sr localmachine –n "CN=RootTrustedCA" –ss TRUST –r RootTrustedCA.cer 基于该证书颁发机构创建一个可只想能够密钥交换的证书,如下所示: makecert –sk testServer –ss MY –sky exchange –sr localmachine –n "CN=myW7host" –ic RootTrustedCA.cer –is TRUST myW7host.cer
完成后,您将有一个 myW7host.cer 证书,您可在以后将它导入 WebSphere 机器 B 中。
但 是
首先,您需要使用设计来管理
数字证书的 Microsoft
Management Console (MMC) 管理单元,将此证书导入机器 A 的 Windows 证书库中。如果已配置了一个 Certificates 管理控制台管理单元,则可跳过前 5 步: 选择 Windows Start。 在 Start 搜索框中,键入 mmc,然后选择 mmc.exe 并单击 Enter。 选择 File => Add/Remove Snap-in。 选择 Certificates 并单击 Add。 选择 Computer Account,然后选择 Next 并确保已选择了 Local computer,然后单击 Finish 和 OK。图 1 显示了包含 Certificates 管理单元的控制台。
图 1. 包含 Certificates 管理单元的管理控制台
右键单击 Trusted Root Certification Authorities 并选择 All Tasks => Import。 执行向导,选择证书颁发机构文件名,比如 RootTrustedCA.cer。 右键单击 Personal 并选择 All Tasks => Import。 完成向导,选择密钥交换证书文件名,比如 myW7host.cer。 您现在可将 Windows 机器 A 的证书导入机器 B 上的 WebSphere 信任库中了: 将 Windows 证书(比如 myW7host.cer)复制或共享到机器 B。 启动 BPM 机器 B 上的 WebSphere 管理控制台 (WebSphere Integrated Solutions Console)。 选择 Security => SSL certificate and key management。 在右侧,单击 Key stores and certificates。 选择 NodeDefaultTrustStore。 在右侧,单击 Signer certificates。 单击 Add。 指定一个证书别名,比如 myW7host,然后在 File name 字段中,键入证书文件的完整路径。单击 OK,然后单击 Save。