一、引言
随着网络向着更开放、更迅速的纵深方向发展。TCP/IP在各种平台、各种网络的应用也越来越广泛。包括一些传统的主机, 如AS/400、S/390等都支持TCP/IP, 并提供丰富的API接口。
AS/400是IBM公司小型机的传统产品, 它从诞生到发展已经有十几年, 它以运行稳定、交易处理能力超群而著称, 因而被许多处理关键业务的系统所采用, 如银行、保险、大型制造业、仓储物流企业等。
AS/400进行关键业务应用, 传统上是建立在SNA协议上的, SNA嵌入AS/400的应用在AS/400的许多开发工具上都有着成功应用, 而AS/400 TCP/IP应用较晚。IBM公司在最近几年的OS/400的开发平台上大力支持了TCP/IP, 使TCP/IP能够很好的应用在关键业务系统上[1,2,3]。
二、某仓储物流企业项目概述
1. 应用系统设计特点
(1) 集中式数据管理, 分布式数据处理的二级Client/Server体系结构;
(2) 异种数据库连接 (主机—DB2/400, 前台—Informix) ;
(3) 自动EBCDI码—ASCII码转换;
(4) 模块化的系统设计;
(5) 统一交易调度程序, 通信程序和应用系统分离。交易处理采用交易码驱动。
2. 系统的运行环境
总部计算中心采用IBM AS/400小型计算机双机系统, 运行的操作系统为OS/400, 数据库为DB2, 应用程序采用ILE C/400、RPG/400、SQL/400、CL语言编写。营业网点柜台采用普通PC机, 运行Unix多用户操作系统, 数据库为Informix, 应用程序采用ESQL/C语言编写。整个系统采用TCP/IP网络体系结构, DDN、PSTN电话线路, 通过TCP/IP Socket实现网络通信。系统采用集中式数据库结构, 以满足业务信息管理的实际需要以及实时交易业务的需要。
三、AS/400上实现TCP/IP通信
在AS/400上的TCP/IP的开发经过两个过程:
1. 在开发机AS/400 40S上的TCP/IP的应用。此时的AS/400是OS/400 3.7版本, 设计的是后台多点等待, 前台动态连接的方式。通过该种方式, 很好地解决了AS/400处理大量TCP/IP的连接问题, 并采用了异步判断。
2. 将系统移植到生产机上, 因为AS/400生产机是AS/400 620, 操作系统是OS/400 4.2版本。经过对OS/400 4.2版本的研究, 将AS/400上的TCP/IP Server程序进行改进, 变成Server端单点等待, 动态生成子JOB, 这样, 系统在CPU开销和内存的利用上大大地节省了, 为仓储物流企业业务系统的稳定运行提供了保障。
四、在OS/400 Version 4.2上的Server端代码
这套程序类似于Unix的fork进程, 但与Unix的Fork主从在一个程序中不一样;在AS/400上通过主程序和子程序形成一套主从的形式。具体的方式是:主程序在AS/400端等待, 一旦有套接口连接来了, 调用一个子程序, 若同时有一百个SOCKET连接到来, 则相应生成一百个同一程序名的子JOB。每一次SOCKET连接终止, 子程序自动关闭, 释放内存。
1. Server主程序
2. Server子程序
五、AS/400上TCP/IP通信的特点
通过对AS/400上TCP/IP通信程序的开发和实际应用, 总结出以下特点:
1. 速度快。TCP/IP与SNA比较, 平均一笔交易比SNA方式快4倍以上。
2. TCP交易的处理能力强。和仓储物流企业合作开发的TCP/IP应用, 结构合理, 性能稳定, 使AS/400上交易吞吐能力达到了4500笔/秒的高速度。
3. 在OS/400 Version4.2的API提供了完善的TCP/IP Fork子进程的机制, 使TCP/IP的结构与传统的Unix结构更为相似。AS/400 TCP/IP程序只有两个:主Server与子TCP/IP应用。由于是动态调用子TCP/IP应用 (只有CLIENT端SOCKET连接来了才调用子TCP/IP应用程序) , 同一时间调用的程序少了, 占用CPU和内存小了, 使AS/400能运行更多的应用, 性能得到改善。
4. 在OS/400 Version 4.2的TCP/IP应用要求CPU速度快, 因为只有主Server TCP/IP程序接受所有的SOCKET访问, 再由它分配给子TCP/IP应用程序。因此, 主Server TCP/IP程序的负担重, 要求CPU性能高。
5. 对比在OS/400 Version 3.7的TCP/IP应用, 由于采用了多个TCP/IP Server程序同时等待, 由TCP/IP Client端来发现Server是否忙, 决定用哪个PORT口的AS/400 TCP/IP Server程序相连。这种情况能将CPU的峰值分担到数个TCP/IP Server, 恰好能适应较早型号的AS/400 CPU慢速度, 但内存能够适应TCP/IP同时的连接数。
六、结束语
TCP/Ip Socket通信应用于传统的AS/400的应用中, 可以很好的满足企业业务信息管理的实际需求以及实时交易业务的需要。该系统运行实践证明, 其性能优越, 实用性强。