IBM i教程:IBM Java Toolbox for i使用PCML远程调用RPG

相对与传统的绿屏IBM i应用,现代的很多IBM i应用都基于Web技术,即前端采用基于Web的图形用户界面 ,后端重用传统的RPG与COBOL业务程序。如何实现软件复用,是IBM i应用现代化的一个重要目标。一方面, 基于Web Service技术的IBM Integrated Web Services for i服务器可将传统RPG与COBOL应用发布成Web Service,实现软件重用;另一方面,作为基于IBM i的Java应用程序编程接口,IBM Java Toolbox for i可通 过相关编程接口调用RPG与COBOL,同样实现了软件重用的目标。Program Call Markup Language (以下称 PCML),作为IBM i服务器端程序参数的XML描述语言,大大简化了Web Service与IBM Java Toolbox for i的客 户端编程模型。本文的主要目标是,指导读者如何使用IBM Java Toolbox for i编程模型,结合PCML语言,实 现重用传统RPG与COBOL业务程序。Web Service及其相关技术不在本文讨论的范围之内。有关IBM Java Toolbox for i的基础知识,请参见另一篇技术文档“Toolbox for Java 和 JTOpen”。

从内容上,本 文主要分为3部分。第一部分主要介绍PCML相关的基础知识,包括PCML的概念,语法,使用方法等。在第二部 分中,我们将围绕IBM Java Toolbox for i相关的PCML类,结合样例,调用RPG程序,实现软件复用的目标。 性能优化也是这一部分的重点内容之一。最后一部分是总结。

作为样例,‘用户身份查询’RPG程序 RTVSTS.PGM的业务逻辑是根据输入的用户ID号,查询数据库,返回对应的身份信息。

PCML

作为 一种基于XML的标记语言,PCML的设计目标是描述IBM i服务器端程序的输入输出参数,减少客户端程序调用的 代码。

作为示例,清单1描述的是‘用户身份查询’RPG程序对应的输入输出参数。输入参数custid表 示用户的查询ID,而输出参数status则表示身份信息查询的返回结果。

清单1. PCML样例 — 描述用户 身份信息

<pcml>

  <program name="rtvsts" path="/QSYS.lib/DEMO.lib/RTVSTS.pgm">

     <data name="custid" usage="input" type="int">

     <data name="status" usage="output" type="char" length="20">

  </program>

</pcml>

从语法角度, PCML的根标签是<pcml>,主要嵌套以下3种标签:

<program>标签描述IBM i程序。有关<program>标签及相关属性的详细说明,请参见IBM i信 息中心PCML program tag一节。

<data>标签描述的是IBM i程序的参数,对应的参数为基础类型。有关<data>标签及相关属性 的详细说明,请参见IBM i信息中心PCML data tag一节。

<struct>标签描述的也是IBM i程序的参数,对应的参数类型为结构体。有关<struct>标签及 相关属性的详细说明,请参见IBM i信息中心PCML struct tag一节。

时间: 2024-10-06 19:46:41

IBM i教程:IBM Java Toolbox for i使用PCML远程调用RPG的相关文章

IBM Java Toolbox for i 实现 Web 与智能移动设备调用 RPG

IBM Java Toolbox for i 实现 Web 与智能移动设备调用 RPG IBM i 平台的主流语言为 RPG,其运行效率很高.而 Java 作为当今主流的编程语言,应用在全球 30 亿设备.如何在不改变业务逻辑,不重新编译的前提下,继续复用已有 IBM i 平台的 RPG 应用,是 Java 应用程序开发所需关注的一个重点.从跨语言的角度来看,Web Service 无疑是一种可行的通用实现方案.但是对于熟悉 Java 编程语言的开发人员而言,借助 IBM Java Toolbo

IBM i教程:使用IBM Java Toolbox for i管理IBM i权限

从安全性的角度,IBM i提供了三个级别的安全保护机制,分别为:物理安全性.登录安全性.以及资源安 全性.物理安全性是从硬件的角度,主要涉及的是IBM i数据存储介质的保护:登录安全性则以用户为中心, 限制哪些用户访问IBM i以及登录后可执行哪些操作:资源安全性是围绕IBM i对象与文件等资源,保护文件. 对象以及对象中数据避免非法访问.另一方面,作为一组Java应用程序编程接口,IBM Java Toolbox for i主 要用于访问IBM i的数据与资源.有关IBM Java Toolb

IBM Java Toolbox for i实现三种基于IBM i的身份验证策略

对于从事IBM i平台的应用开发者而言,用户身份验证是保证程序安全性的最基本功能之一.作为访问与操 纵IBM i平台上数据与资源的Java API,IBM Java Toolbox for i从编程的角度,实现了各种用户身份验证策 略,可简单.高效地解决程序的安全性问题.本文将从Web应用的角度,结合具体样例,指导IBM i Web应用程 序开发者如何使用IBM Java Toolbox for i实现不同的身份验证策略.有关IBM Java Toolbox for i的基础知 识,请参见另一篇

使用IBM Java Toolbox for i访问IBM i数据队列

进程通信是操作系统内核中非常重要的部分.对于IBM i而言,数据队列是一种非常重要的进程通信方式. 一方面,数据队列功能强大,不受编程语言的限制,并能同时支持进程的同步通信与异步通信:另一方面,数 据队列使用灵活,其数据消息不受任何格式束缚,换句话说,用户可以根据业务需求自定义数据格式.作为 IBM i的Java 应用程序编程接口,IBM Java Toolbox for i支持IBM i数据队列的相关操作,这样,Java应用 程序与其它IBM i程序(诸如C,RPG,COBOL程序)之间的通信

使用IBM Java Toolbox for i 实现IBM i的作业管理(下)

IBM Java Toolbox for i对IBM i子系统的编程支持 除队列之外,子系统也是IBM i的一大特色.为满足用户的各种需求,IBM i 支持多种类型的作业.不同种类的作业对系统资源的要求不同,比如,交互式作业要求较快的响应时间,批处理作业可能要求较多的CPU时间等.为了更加合理.有效地使用系统资源,系统(System)被划分成若干个子系统(Subsystem),所有的作业在子系统的监控下运行.因此,可以认为子系统是专门为了运行某一类作业而配置的环境. 从面向对象的编程模型角度,I

使用IBM Java Toolbox for i 实现IBM i的作业管理(上)

通俗地讲,IBM i 作业管理的内容是负责处理用户或程序提交的系统请求,它是IBM i平台的基本功能之一 .不同于Windows与Unix,围绕IBM i作业管理的概念较多,如作业,作业描述符,作业队列,子系统,子系统 描述符,内存池,输出队列等.而本文的目标是:围绕IBM i作业管理的相关概念,指导读者如何使用IBM Java Toolbox for i实现对IBM i作业管理的编程支持.有关IBM Java Toolbox for i的基础知识,请参见另 一篇技术文档"Toolbox for

IBM Java Toolbox for i数据转换类

从面向对象的角度,IBM Java Toolbox for i提供了一个AS400DataType接口,用于描述IBM i数据类型与 Java数据类型之间的具体转换逻辑与规则.从AS400DataType接口对应的实现类,可大致可分为: 数值 文本 日期 复合类型(数字与文本) 表1对应的是与数字相关的AS400DataType实现类. 表 1.  AS400DataType相关的实现类 对于IBM i的RPG程序而言,PACKED DECIMAL与ZONED DECIMAL是两种常见的数值类型

IBM Java Toolbox for i实现安全访问IBM i

作为一组面向IBM i平台的Java应用程序编程接口,IBM Java Toolbox for i主要用于访问IBM i的数据与 资源.而数据与应用的安全性是从事IBM i应用开发者需要考虑的重要因素之一.通过依赖IBM Java Toolbox for i与IBM i之间的SSL通信,上层客户端应用程序可有效解决与IBM i服务器交互过程中的出现数据安全问题 .本文的目标是结合SSL加密技术,IBM i相关的SSL证书管理组件--IBM i 数字证书管理器(或DCM),指导 读者如何利用IBM

利用IBM Java Toolbox for i实现针对数据库文件的记录级访问

对于从事 IBM i 平台的数据库应用开发而言,如何使用 IBM Java Toolbox for i http://www.aliyun.com/zixun/aggregation/11872.html">访问数据库文件是非常重要的技能.本文的目标是系统性介绍如何利用 IBM Java Toolbox for i 实现针对数据库文件的记录级访问(RLA 或 Record Level Access),并指出 JDBC 与 RLA 两种技术的区别. 从文件系统的角度,IBM i 提供了对 P