【问题标题】:Calling web services from Mainframe batch programs从大型机批处理程序调用 Web 服务
【发布时间】:2011-02-18 09:34:13
【问题描述】:

我们目前正在考虑从 Main Frame 进行部分迁移。

一些用 Mainframe Cobol 编写的功能是从 Mainframe Batch 程序中调用的。

我们希望将这些 cobol 程序移出大型机。

例如,如果我们将 cobol 程序中的功能移至 Java 或 .Net Web 服务。是否可以从大型机批处理程序中调用此 Web 服务?

【问题讨论】:

    标签: java .net web-services batch-file mainframe


    【解决方案1】:

    首先,我不确定是否有办法直接从 Cobol 调用 Web 服务,但我们在尝试使用 RPG 和 CL 从 iSeries(AS400) 调用 Web 服务时遇到了类似的问题。

    最后,我们用java编写了一个简单的Socket程序,运行在服务器上,我们称之为WebServiceBridge,桥接程序只是简单地从socket程序中取出数据,然后用Java构造一个webservice调用。我们只是简单地通过套接字返回结果。

    如果 Cobol 在 Web 服务方面遇到困难,那么这可能是一个简单的解决方案。但请注意,您的网桥需要像设计 Web 服务一样受到监控、具有弹性并且始终可用。

    【讨论】:

    • Cobol 批处理有许多选项可以访问 Web 服务。 OP 可以使用内置的 xml 解析器和生成器连接自己的肥皂;他们可以使用 EXEI 接口路由到 TS/SOAP;可以利用 RD/z 支持来调用 Web 服务;有许多第三方产品允许此类访问。
    • IBM 的 MQ Integrator 桥接产品也可以做到这一点。对不起,我忘了在之前的评论中提到它。
    【解决方案2】:

    在以前的生活中,我编写了汇编程序例程,使用此处描述的技术从 PL/1 调用 TCP/IP 堆栈,这些技术也适用于 COBOL:

    http://publib.boulder.ibm.com/infocenter/zos/v1r9/index.jsp?topic=/com.ibm.zos.r9.halz002/tcpipapis.htm

    很遗憾,我无法与您分享它们,但它们并不太复杂。 请记住,Web 服务将对 ASCII 或 UTF-8 感兴趣,并且您的 COBOL 可能正在运行 EBCDIC,因此必须有人进行翻译。

    一旦您可以与套接字通信,您就必须使用各种标头来制定您的 Web 请求,然后对结果进行解码......这不是微不足道的,但它是可能的。 '希望有帮助。

    【讨论】:

      【解决方案3】:

      [这里假定“Web 服务”是指 HTTP(S) 和 SOAP]

      CICS TS 3.1 及更高版本的 API 包括应用程序调用 Web 服务的能力。 CICS 应用程序通常是交互式的,但可以通过外部 CICS 接口从现有的批处理应用程序调用。此接口使用 CICS 逗号,因此传递的数据必须适合 32K 缓冲区。

      进入 CICS 的另一个途径是 MQSeries(现在更名为 WebSphereMQ)。在这种情况下,您的批处理应用程序会将数据(在这种情况下没有 32K 限制)放入定义为已触发的队列中,触发器监视器将自动启动 CICS 应用程序。 CICS 应用程序将通过响应队列将响应返回给 Web 服务。

      如果您执行其中任何一项操作,我预计批处理作业的时钟时间会增加。与在本地执行代码相比,通过网络执行某些代码所需的时间更长。

      【讨论】:

      • +1 谢谢,但在这种情况下,我们只有批处理,没有 CICS,但我们仍然可以通过 MQ。
      【解决方案4】:

      我已经做到了。使用 c 语言程序进行 http 调用和使用 cobol copybook 的 cobol 接口程序,因此它看起来像任何其他程序调用一样的应用程序。所有的http头都被c程序转换为ascii并返回,而payload被转换为主机。

      【讨论】:

        猜你喜欢
        • 2019-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-09
        相关资源
        最近更新 更多