IBM i 分布式程序调用
IBM i Remote Command 和 Distributed Program Calls (DPC) 编程模型允许大多数 IBM i 应用程序以请求-答复方式与 TI 交互, (客户端发起的仅) 进行最少修改。 DPC 是一种记录协议,支持 IBM i 上的程序到程序集成,可以使用 TCP/IP 网络协议从基于电脑的应用程序轻松访问。
注意
此接口不支持主机启动的处理 (HIP) ;IBM i 集成仅适用于客户端发起的调用。
下图总结了客户端、默认 DPC 服务器和 IBM i 事务程序之间发生的工作流。 括号中的数字指示事件发生的大致顺序。 数字后跟对事件的更详细的描述。
IBM i 模型流
IBM i DPC 编程模型的摘要工作流图
IBM i DPC 编程模型的工作原理如下:
应用程序在组件服务或 .NET Framework 中配置的 TI 组件中调用方法。
TI 运行时调用 TI 自动化代理。
如果应用程序是 COM+ 组件,则 TI 自动化代理将:
读取以前由 TI 设计器创建的类型库。
将自动化数据类型映射到 IBM i RPG 数据类型。
如果应用程序是 .NET Framework 程序集,则 TI 自动化代理将:
读取以前由 TI 设计器创建的程序集和元数据。
将.NET Framework数据类型映射到 IBM i RPG 数据类型。
然后,TI 自动化代理将:
调用转换例程以将应用程序数据转换为 IBM i RPG 类型。
生成表示 RPG PLIST 的参数化消息缓冲区。
将消息传递给 IBM i DPC 传输组件。
TI TCP 传输使用 IBM i 计算机的 Internet 协议 (IP) 地址和服务器的端口地址向 DPC 服务器系统发送连接请求。 然后,TI TCP 传输会等待回复。
IBM i 上的 DPC 服务器接受会话请求并发出接收。 然后,DPC 服务器将等待启动服务器请求。
TI 自动化代理向 DPC 服务器发送启动服务器请求并发出接收。 然后,TI TCP 传输会等待启动服务器回复。
DPC 服务器处理启动服务器请求,发送启动服务器回复,然后发出接收。 然后,DPC 服务器等待交换属性请求。
TI 运行时处理启动服务器回复,发送属性请求,并发出接收。 然后,TI 运行时等待交换属性回复。
DPC 服务器处理交换属性请求,发送交换属性回复,然后发出接收。 然后,DPC 等待远程程序调用请求。
TI 运行时处理交换属性回复,再发送远程程序调用请求,然后立即发送远程程序调用回复和转换后的数据。
DPC 服务器处理请求,发送远程程序调用回复,后跟远程程序调用参数和数据。
TI 自动化代理接收回复数据并处理回复。 TI 自动化代理将:
接收来自 TCP 传输组件的消息。
读取消息缓冲区。
如果应用程序是 COM+ 组件,则 TI 自动化代理将:
将 IBM i 数据类型映射到自动化数据。
调用转换例程,将 IBM i RPG 类型转换为应用程序数据。
如果应用程序是 .NET 程序集,则 TI 自动化代理将会:
将 IBM i 数据类型映射到.NET Framework数据类型。
调用转换例程,将 IBM i RPG 类型转换为应用程序数据。
TI 运行时将转换后的数据发送回调用方法的 COM 或 .NET Framework 应用程序。
注意
消息的最大大小为 32,767 个字节,包括字段标头和数据。
注意
RMTPGMCALL 可以将最多 35 个参数作为 IN 或 OUT 或 IN/OUT 的任何组合进行传递。
Host Integration Server 包含演示如何实现 IMS Connect 编程模型的示例代码。 示例代码位于 \install directory\SDK\Samples\AppInt。 启动 Microsoft Visual Studio,打开所需的教程,并按照“自述文件”中的说明进行操作。
有关为 IBM ie 配置大型机和编写服务器应用程序的信息,请参阅 ILE RPG/400 程序员指南版本 4 (IBM Document #SC09-2507-02) 和 ILE RPG/400 参考版本 3 (IBM Document #SC09-2077-01) 。
另请参阅
事务集成器组件
将数据类型从 RPG 转换为自动化
将数据类型从自动化转换为 RPG
IBM i Security
COMTIContext 接口
TI 运行时
选择适当的编程模型
编程模型