现在的位置: 首页 > 综合 > 正文

Web service 与 CICS 事务处理应用的集成

2013年04月25日 ⁄ 综合 ⁄ 共 2266字 ⁄ 字号 评论关闭

CICS(Customer Information Control System),即客户信息控制系统,是为 IBM 和非 IBM
平台上一系列应用提供联机事务处理和事务管理的产品,其主要功能是为商业应用提供一个事务处理环境。该产品拥有近四十年的悠久历史,被广泛应用于银行金融业。但随着当前信息技术的迅猛发展,很多经典的事务处理应用面临着如何被扩展和重用,以求与其他平台应用相集成的问题。CICS
作为 IBM 的重要产品,借鉴了 SOA 的主要思想,采用 Web service 封装已有的应用,实现了 CICS
与其他平台应用的结合与互操作。本文通过一个实际的例子,将一个已有的 CICS 应用程序封装成 Web service 的请求者(requester)请求另一个
Web service,同时又作为服务提供者(provider)接受其它应用的访问。读者不仅能从本文详细了解到如何在 z/OS 上构建 CICS Web
service 的详细步骤,同时能够把握 CICS Web service 如何与部署在其他平台上的 Web service 进行互操作,以及与 IBM
WSRR(WebSphere Service Registry and Repository) 的结合使用。

概述

主机 (Mainframe) 上的 CICS
服务由于其历史的悠久,存在着很多对于事务处理的经典应用。如何将这些应用重用,并与其他平台的服务进行交互是本文的主要内容。本文模拟了一个非常普遍的应用场景,通过实例介绍
CICS Web service 的封装和具体应用。该实例的总体框架如图 1 所示,主要包括三部分。

  1. 实时汇率服务 (Exchange Rate Service, 下文简称为 RateService),是部署在 Windows 操作系统
    Websphere Application Server(WAS) 上的一个 Web service,提供汇率值的实时查询服务,由 Java
    语言实现。为了使例子简单易懂,这里仅仅提供了人民币对美元的汇率和人民币对欧元的汇率。
  2. 转账服务 (TransferService),一个存在于主机 z/OS 环境中的 CICS 事务处理应用程序,它是由 C
    语言编写,用于银行帐户不同币种的转账处理。例如某银行客户张三,上月去美国透支了信用卡中 1000
    美元用于消费,现在回到中国必须用人民币转账到自己的信用卡美元账户以偿还透支额度。转账过程中必须知道人民币对美元的汇率,因此需要封装成为 Web service
    的客户端 (requester) 访问 RateService
    提供的实时汇率服务。同时,为了使转账服务能够提供给异构平台上各种语言的客户端调用,还需要将其封装成 Web service 的提供者 (provider)。
  3. 网上银行 (Online Trading Platform),模拟的网上交易平台。客户端调用转账服务 (TransferService)
    完成客户用人民币偿还信用卡美元帐户等类似转账交易。作者在本文中给出了一个 Struts 框架实现的 Web 应用程序来模拟这一交易平台。

图 1. 实例总体框架
 实例总体框架



回页首

第一步:汇率服务的创建

  1. 开发环境

    • 开发平台:Windows 操作系统,IBM Rational Application Developer 7.0.0( 内置 Websphere
      Application Server 6.1)
    • 开发语言:Java
  2. 开发步骤
    • 新建一个动态 web 项目。在 IBM RAD7 开发环境中,选择 "File->New->Project", 选择动态 web
      项目,命名为 exchange,保留其它选项默认值。
    • 编写要暴露成 Web service 的 Java bean。右键点击 Java Resources:src 目录,选择
      "New->Class",填写包名 rate、类名 Rate。Java bean 源代码如清单 1 所示,提供了人民币对美元和人民币对欧元的汇率。

      清单 1. Java Bean 源代码

       

      package rate;

      public class Rate {

      double RMBtoDollar = 0.1426;

      double RMBtoEuro = 0.09026;

      String errorMsg = "Input is not correct";

      public double getRate(String source, String target) {

      if (source.equalsIgnoreCase("RMB")) {

      if (target.equalsIgnoreCase("Dollar"))
      return RMBtoDollar;

      if (target.equalsIgnoreCase("Euro"))
      return RMBtoEuro;
      }
      // any input error, return 0
      return 0;
      }
      }

    • 将 Java Bean 封装成 Web service。右键点击项目名称 exchange, 选择 "New->Other->Web
      Services->Web Service"。设置 Web service 的构建方式,选择 "Bottom Up Java Bean Web
      Service"——自底向上(由 Java Bean 生成 WSDL 文件)的构建方式。同时指定 Rate 类作为该 Java Bean,如图 2 所示。点击
      "Finish",一个 Web service 便构建成功。在 ".../exchange/WebContent/WEB-INF/wsdl"
      目录下可以找到刚刚生成的 Rate.wsdl 文件。wsdl 文件描述了该服务的相关信息,该文件可从附件中下载查看。

      图 2. 设置 Web service 构建方式

 

本文转自IBM Developerworks中国

      请点击此处查看全文

 

抱歉!评论已关闭.