使用IBM ODM V8.5中新增的RESTful接口的方法

本文将简要介绍 HTDS,讨论构建一个 HTDS 客户端和使用 IBM ODM V8.5 中新增的 ">RESTful 接口的方法。本文将
重点介绍使用 HTDS 的潜在问题和难点,这些问题和难点主要与控制它的服务接口相关,本文还会介绍一些解决这些问题的实用方法。

Hosted Transparent Decision Service (HTDS) 是一个部署到应用服务器上的预定义的应用程序,它使得规则集可以自动公开为 Web 服务。此外,它还支持使用 JMX MBean 协议访问决策服务元数据和运行时统计数据。它是 IBM ODM Decision Server 中的一个标准执行组件,位于以下目录中的一个企业归档文件 (EAR) 中:<InstallDir>/executionserver/applicationservers/<app- server>/jrules-res-htds-<app_server>.ear。HTDS 集成了本地 ODM Rule Execution Server,必须与 eXecution Unit (XU) 位于相同的应用服务器中。

为什么使用 HTDS?

使用 HTDS,只要将规则集部署到 Rule Execution Server,就可以将它作为 Web 服务调用。无需额外的编码或部署,就可以将规则集公开为 Web 服务。这有助于将规则与远程规则客户端相集成,节省大量的开发时间和工作。

规则服务 WSDL

HTDS 将规则集公开为 Web 服务或规则服务,除了构建规则集之外,无需开发人员编码。这意味着开发人员无需为该 Web 服务构造一个 Web 服务描述语言 (WSDL) 文件。那么如何生成规则服务 WSDL?非常简单,WSDL 由 HTDS 生成。

在 ODM 中,无需输入和输出规则集参数来指定一个规则集的签名。不用奇怪,这些输入和输出参数是 HTDS 用于生成 WSDL 的元素。一个规则集的 WSDL 可以通过 Rule Execution Server 控制台来检索。WSDL 文件也可以通过以下网址进行访问:http://<HOST>:<PORT>/DecisionService/ws /<RULESETPATH>?wsdl,其中 <HOST>:<PORT> 表示应用服务器实例的位置,<RULESETPATH> 是通过串联 RuleApp 名称/版本和规则集名称/版本而形成的规则集标识符,例如:/miniloanruleapp/1.0/miniloanrules/1.0。

一 个规则集的输入和输出参数是执行对象模型 (XOM) 的一部分。XOM 可以定义为 Java 类或 XML 模式定义 (XSD)。在 ODM V7.5 以前,只有 XSD XOM 和基本 Java 原语类型可用于 HTDS。但是,此限制已不再适用,Java XOM 可用于 HTDS。使用一个 Java XOM 会得到更好的性能,还支持将行为和方法附加到对象上,因此是首选的方法。必须将 Java XOM 部署到 Rule Execution Server 上,然后才能将它用于 HTDS。

使用一个 Java 客户端调用 HTDS

XOM 中定义的类由 HTDS 解析来生成 WSDL。使用 Java XOM(以及在更加受限制的情况下使用 XSD XOM),在某些情况下 HTDS 生成的默认 WSDL 要么不够,要么在从 Java 客户端调用时具有某些问题。本节将介绍一种简单的业务场景,以便重点介绍与从服务使用者调用 HTDS 相关的潜在难题和问题。具体来讲,我们的重点是 Java 客户端与一个使用 Java XOM 的 HTDS 规则集的集成。

场景描述

考 虑一个简单的规则应用程序,它基于一系列业务策略确定哪些客户帐户可以升级。本文不会深入介绍业务策略,而是重点介绍客户端与规则服务的集成。规则服务的 签名由规则集参数确定。在此场景中,我们使用请求/响应模式来识别传入规则服务和从规则服务返回的数据。这里使用的领域模型非常简单,只是为了强调与 HTDS 集成的潜在问题。简单地讲,如 图 1 中的 UML 类图中所示,请求包含一个具有一组帐户的客户,而响应包含一组可升级的帐户。

图 1. 该场景的领域模型

此模型被实现为 Java 类,这些类构成规则集的 XOM。

HTDS Web 服务

分析 WSDL

之 前已经提到过,在将规则集部署到 Rule Execution Server 之后,HTDS 就可以生成它的 WSDL。这个 WSDL 包含组成我们的 XOM 的领域类的所有 XSD 版本。此外,HTDS 使用规则集名称和规则集参数名称来生成一些特定于 HDTS 的元素:

元素由 HTDS 依据规则集参数名称而定义。 与规则集名称对应的 XML 包装器元素由 HTDS 创建。具体来讲,我们创建了 <rulesetName>Request 和 <rulesetName>Response。 默认的命名空间使用了 RuleApp 和规则集名称:http://www.ibm.com/rules/decisionservice/<RuleApp name>/<ruleset name>

使用一个规则服务客户端测试

现在已部署了规则服务,我们可以生成一个客户端来调用它。这可以使用 IDE 中的向导或使用调用 wsimport 的命令行脚本来完成。对于本文,我们将使用 Rational Software Architect V8.5。Rational Software Architect 提供了一个简单的 Web Service Client 向导 (图 2) 来生成一个 JAX-WS Web 服务客户端,可以通过提示指定 WSDL 的位置来启动该客户端。

图 2. Rational Software Architect 中的 Web Service Client 向导

成 功执行该向导后,将会生成两个项目:DetermineUpgradeableAccountsClient 和 DetermineUpgradeableAccountsClient EAR。EAR 项目可用于导出企业归档文件 (.ear),或直接将它部署到 Rational Software Architect 中配置的 WebSphere Application Server。在将企业归档文件部署到服务器之后,可以使用 Rational Software Architect 所提供的一种测试方法对其进行测试,比如 Test with Generic Service Client,如 图 3 中所示。使用此测试客户端,您首先要编辑一个请求,然后调用该服务,最后查看响应。

图 3. 使用生成的客户端测试 HTDS

时间: 2024-10-06 13:40:19

使用IBM ODM V8.5中新增的RESTful接口的方法的相关文章

详细介绍Batch在IBM WAS V8.5中的新特性

我们可以将应用程序划分为两类 - OLTP 应用和批处理应用.在传统方式中,批处理应用一般都是用非 Java 技术实现,并运行在大机上.WAS 从版本 7 开始,为 Batch 提供了支持,利用 Batch,用户可以在 J2EE 平台上运行批处理应用.WAS 最初在版本 7 中以 http://www.aliyun.com/zixun/aggregation/33934.html">Modern Batch 功能部件包的形式对 Batch 提供了支持.在版本 8 中,将 Batch 的能力

JDK1.7中新增自动释放资源接口AutoCloseable

新增了try-with-resource 异常声明 在JDK7中只要实现了AutoCloseable或Closeable接口的类或接口,都可以使用try-with-resource来实现异常处理和资源关闭 异常抛出顺序.在Java se 7中的try-with-resource机制中异常的抛出顺序与Java se 7以前的版本有一点不一样. 是先声明的资源后关闭 JDK7以前如果rd.readLine()与rd.close()(在finally块中)都抛出异常则只会抛出finally块中的异常,

在yii中新增一个用户验证的方法详解_php技巧

1.为什么要新增一个用户验证:因为我要将网站后台和前台做在同一个yii的应用中.但是前台也包含有会员的管理中心.而这两个用户验证是完全不同的,所以需要两个不同登陆页面,要将用户信息保存在不同的cookie或session中.所以需要在一个应用中增加一个用户验证2.yii的用户验证:在自定义用户验证前,我们首先要弄清楚yii的验证和授权方式.为了验证一个用户,我们需要定义一个有验证逻辑的验证类.在yii中这个类需要实现IUserIdentity接口,不同的类就可以实现不同的验证方 法.网站登陆一般

在 IBM Operational Decision Management 中实现高级规则治理

引言 本文将介绍高级治理解决方案的 IBM ODM 治理框架.本文基于可配置的 Java 业务逻辑(如 规则治理产品示例所示)提供了常用规则治理实现的一个灵活替代方案.我们将展示,使用规则(而不使用 Java)治理更改流程可在 ODM 中提高高级治理的能效和灵活性. 对于更改活动的治理,我们建议您查 看一下ODM V8.5 中新增的治理功能. 规则治理示例 产品示例中提供的治理扩展的架构如 图 1 所示.本示例的核心是会话控制器,它根据状态提供访问权限.决策中心提供了一个自定义会话控制器,名为

WebSphere Application Server V7、V8和V8.5中的高级安全性加强 二

高级安全注意事项 简介 第 1 部分 解释了 IBM WebSphere Application Server V7.0 和更高版本在设计时如何考虑到默认安全性安全原则.目标是在最常见的配置和比较简单的环境中,让这个产品在默认情况下具有合理的安全水平(尽管这个目标还没有完美地实现).前一篇文章最后介绍了 WebSphere Application Server 中已经采用的许多重要的基于基础架构的预防性安全措施.本文将介绍基于应用程序的其他预防性措施,然后讨论一些重要的注意事项. 尽管本文中的信

WebSphere Application Server V7、V8 和 V8.5 中的高级安全性加强 一

简介 IBM WebSphere Application Server 的安全性在每个版本中都有所改进.除了在新版本中增加了一些新功能之外,我们还不断增强产品的默认安全性.我们通过改进默认设置不断提高满足默认安全性这一关键原则的程度.本文的前一个版本 主要关注 WebSphere Application Server V6 和那个版本所需的加强步骤.在后续 WebSphere Application Server 版本中,显著减少了加强步骤的数量,更重要的是,保留的大多数步骤变得不那么关键了.那

介绍IBM WebSphere Application Server中OSGi的新特性

OSGi 为模块化编程提供了一个开放的.标准的框架.http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Application Server(以下简称 WAS)从版本 7 开始以功能部件包的形式对 OSGi 提供了支持.在版本 8.5 中,对 OSGi 的功能作了进一步加强.本文将详细介绍 OSGi 在 WAS V8.5 中的新增特性. OSGi 概述 OSGi 提供了一个开放的.具有统一接口标准的体系框架,基于这个体

创建自定义管理客户端来简化WAS V8.5 中的系统管理

创建一个自定义管理客户端来简化 WebSphere Application Server V8.5 中的系统管理 使用 WebSphere Application Server V8.5 中的 Admin Command Framework 产品 简介 IBM WebSphere Application Server V8.5 中的 Admin Command Framework (ACF) 提供了用户友好.以任务为导向的命令来执行管理任务.因为它是一个框架,所以所有命令都遵循相同的语法且易于使

OpenSSH的新身份验证方法:IBM支持的OpenSSH中的新特性

简介:本文讨论 OpenSSH 支持的一些身份验证方法.OpenSSH 是一种实现 SSH1 和 SSH2 协议的免费工具.通过本文您将了解 OpenSSH 中一些身份验证方法的配置以及 IBM 支持的 OpenSSH 版本中新增的特性. 简介 OpenSSH 是一种实现 SSH1 和 SSH2 协议的免费工具.它是一种安全可靠的工具,常常用来替代 r-commands.通过 ssh 会话的通信是加密的,它会加密所有通信流,包括密码. 本文描述如何配置基于主机的和 PAM 身份验证方法,以及在