ibm spss代码_通过JMS将IBM Integration Bus与IBM SPSS Scoring Service集成

ibm spss代码

IBM SPSS Collaboration and Deployment Services是一个企业级应用程序,允许部署和使用预测分析。 客户端应用程序通过使用IBM SPSS Collaboration and Deployment Services中可用的Web服务来访问分析资产。 通过使用SPSS Scoring Service,客户端应用程序可以使用从IBM SPSS Modeler中开发的预测模型获得的实时分数。

通常,通过使用基于HTTP或REST的SOAP(即通过基于HTTPJavaScript对象表示法(JSON))来访问SPSS Scoring Service。 这两种机制本质上都是同步的。 有时,出于性能或技术要求,您可能希望与SPSS Scoring Service进行异步,无阻塞的集成。 在这种情况下,基于SOAP over JMS的集成会有所帮助。 本教程显示了如何通过SPSS Scoring Service实现基于JMS的SOAP集成。 它还包括SPSS和IBM Integration Bus的配置详细信息。

在本教程中,将在IBMWebSphere®Application Server环境中的SPSS Collaboration and Deployment Services上部署和运行SPSS Scoring Service。

在SPSS应用程序服务器上配置JMS

IBM SPSS Collaboration and Deployment Services具有预定义的JMS资源,供Collaboration and Deployment Services本身使用。 要使外部JMS客户端访问这些JMS资源,您需要进行以下配置:

  1. 在WebSphere Integrated Solutions Console中,验证传输设置:
    1. 在左侧导航窗格中,选择安全性>全局安全性
    2. 在“全局安全性”面板中,选择“ RMI / IIOP”
    3. 在“ CSIv2入站通信”面板中的“ CSIv2传输层”下,对于“ 传输” ,选择“ 支持SSL” (图1)。
      图1. RMI / IIOP安全性
      RMI / IIOP安全
  2. 验证服务器端口配置:
    1. 在左侧导航窗格中,选择服务器>服务器类型> WebSphere应用程序服务器
    2. 在WebSphere Application Server面板中,选择SPSSServer
    3. 在“ SPSSServer”面板中,选择“ 端口”
    4. 在“端口”面板中,对于BOOTSTRAP_ADDRESS和ORB_LISTENER_ADDRESS端口名,验证是否可以从IBM Integration Bus服务器访问主机名(在本示例中为spss.ibm.com )。 在您的环境中,如果IBM Integration Bus服务器远离SPSS,则主机名localhost将不起作用。 您可能必须将其替换为SPSS服务器的实际主机名。 因此,我们指定了实际的主机名,如图2所示。
      图2.服务器端口配置
      服务器端口配置
  3. 配置队列连接工厂:
    1. 在左侧导航窗格中,选择资源> JMS>队列连接工厂
    2. 在“队列连接工厂”面板中,选择ConnectionFactory
    3. 在CDSQueueConnFactory面板的“提供者端点”框中,使用格式<Bus_Member_Host_Name>:<SIB-Endpoint-Address-Port>:BootstrapBasicMessaging更新连接工厂<Bus_Member_Host_Name>:<SIB-Endpoint-Address-Port>:BootstrapBasicMessaging

      对于<SIB-Endpoint-Address-Port> ,请参阅服务器端口配置(图2)。 在此示例中(如图3所示),我们输入spss.ibm.com:7277:BootstrapBasicMessaging

      图3.队列连接工厂
      队列连接工厂

定义响应队列端点

SPSS Scoring Service将响应队列用作答复队列。 要创建队列及其JNDI定义:

  1. 定义一个带有标识符的新队列:
    1. 在左侧导航窗格中,选择服务集成>总线> CDS_BUS
    2. 在CDS_BUS面板中,选择Destinations
    3. 在“目标”面板中,单击“ 新建”以定义新队列。 在此示例中,对于标识符,我们指定SPSSResponse ,如图4所示。
      图4.服务总线中的响应队列
      服务总线中的响应队列
  2. 为刚创建的响应队列创建一个JNDI定义:
    1. 在左侧导航窗格中,选择资源> JMS>队列
    2. 单击“ 新建” ,然后选择“ 默认消息传递提供程序”
    3. 在“配置”面板中,对于JNDI名称 ,输入queue/SPSSResponse
      图5.响应队列的JNDI定义
      响应队列的JNDI定义

在IBM Integration Bus上配置JMSProvider

IBM Integration Bus提供了JMS节点,以支持与任何符合JMS的应用服务器的JMS通信。 要配置IBM Integration Bus以访问Collaboration and Deployment Services的JMS引擎,请执行以下操作:

  1. 创建目录,例如: c:\WebSphere_WAS_Client 。 然后,从WebSphere Application Server的/ runtimes目录中复制以下两个JAR文件,并将它们粘贴到刚创建的目录中:
    • com.ibm.ws.sib.client.thin.jms_ <WAS_version> .jar
    • com.ibm.ws.ejb.thinclient_ <WAS_version> .jar
  2. 更新JMSProvider WebSphere_WAS_Client以将其jarURL属性设置为您刚创建的目录。 输入以下命令,其中IIB9B是集成节点的名称:
    mqsichangeproperties IIB9B -c JMSProviders -o WebSphere_WAS_Client -n jarsURL -v  c:\WebSphere_WAS_Client

与SPSS Scoring Service集成的非阻塞模式

在集成的非阻塞方式中,IBM Integration Bus的请求处理流将请求发送到SPSS Scoring Service。 处理流程不等待响应返回。 SPSS评分服务将响应返回到预定目标。 要实现非阻塞集成,您可以定义单独的请求和响应处理流程。

请求流程

为了演示集成,图6显示了请求流。 为简单起见,在本教程中,评分SOAP请求由客户端通过HTTP发送。 使用JMSOutput节点将SOAP信封请求消息发送到SPSS Collaboration and Deployment Services服务器上的JMS队列PASWScoring。

图6.请求流
请求流程

图7显示了在JMSOutput节点上设置的属性。 “ 目标队列”字段设置为queue/PASWScoring ,这是Collaboration and Deployment Services的默认请求队列。 对目标答复字段设置为queue/SPSSResponse ,该queue/SPSSResponse是在定义响应队列端点中的步骤2中创建的。 在“ JMS连接”选项卡上,“ 连接工厂名称”设置为ConnectionFactory

图7. JMSOutput节点属性
JMSOutput节点属性

您必须临时存储HTTP会话标识符。 处理响应流中的SPSS响应消息时,需要此ID来获取相关的HTTP会话。 一个简单的扩展SQL(ESQL)节点Create_MQMD_Identifiers准备一个0字节的MQ消息。 它将JMSOutput节点返回的JMSMessageId设置为MQ Correlation ID,并将HTTP Session Identifier设置为MQ消息ID(有关ESQL内容,请参见清单1)。 MQPUT节点将此MQ消息保存到SESSION_STORE队列。

清单1.用于存储HTTP会话标识符的ESQL
CREATE COMPUTE MODULE InvokeSPSSScoring_Non_Blocking_Create_MQMD_Identifiers
	CREATE FUNCTION Main() RETURNS BOOLEAN
	BEGIN
		
		SET OutputRoot.MQMD.CorrelId=CAST ( SUBSTRING(InputLocalEnvironment.WrittenDestination.JMS.DestinationData.JMSMessageID AFTER 'ID:') AS BLOB);
		SET OutputRoot.MQMD.MsgId=CAST (Environment.Variables.HTTP.RequestIdentifier AS BLOB);
		RETURN TRUE;
	END;
END MODULE;

响应流程

响应流从JMS队列queue / SPSSResponse中读取SPSS分数响应。 SPSS评分服务将请求消息的JMSMessageID设置为响应消息的JMSCorrelationID,从而允许请求消息和回复消息的相关性。 您可以使用“ JMS MQ转换”节点将JMSCorrelationID转换为MQ相关ID。 如图8所示,具有“通过关联ID获取”属性的MQGET节点用于从SESSION_STORE队列中检索MQ消息。

图8.响应流
响应流程

所获取的MQ消息的MessageID设置为HTTP请求标识符(参见清单2)。 同样,SPSS响应主体被发送到HTTP Reply节点,这使HTTP Reply节点能够将响应中继回原始客户端。

清单2.恢复SQL会话标识符的ESQL
CREATE COMPUTE MODULE InvokeSPSSScoring_Non_Blocking_Response
	CREATE FUNCTION Main() RETURNS BOOLEAN
	BEGIN
	  SET OutputRoot.XMLNSC=InputRoot.XMLNSC;
	  SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier=InputRoot.MQMD.MsgId;
	  RETURN TRUE;
	END;
END MODULE;

验证请求和响应消息流

要触发请求流,请使用任何工具(例如Firefox HttpRequester或SoapUI)将SOAP请求发布到IBM Integration Bus。 在这里,我们使用SoapUI发起请求。 图9显示了SoapUI客户端收到的成功响应。

图9.成功调用SPSS评分服务
成功调用SPSS评分服务

结论

在本教程中,您学习了如何通过在非阻塞方法中使用JMS来实现IBM Integration Bus流以调用IBM SPSS Scoring Service。 您还了解了SPSS(IBM Integration Bus JMS配置)。 并且,您学习了如何使用JMS消息标识符在请求消息和回复消息之间建立关联。

翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1601_kumar-trs/1601_kumar.html

ibm spss代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值