*报文格式
AS400核心系统的联机交易报文,是体现系统设计优劣的一个重要部分,并且,也决定了联机交易主控的处理方式。
系统的报文规范遵循简单灵活安全高效的原则,应做到以下几点。首先,交易通过短连接单次通讯完成,不需要先分配端口,多次交互,也没有任何前后交易的状态耦合。其次,交易报文一次一密全文加密,并且不需要每次交易做多次密钥交换动作。即使将成功报文原样重新发送,系统也会识别为重复提交而不会重复执行。最后,报文组织应充分考虑AS400应用程序的写法,既要满足交易程序参数传递的性能,又要尽量保持报文灵活,并减少无意义的内容传送。在交易RPG程序中,输入输出接口,基本上都是以DS或DS数组的形式PARM传递进来处理。因此,体现单个字段key-value的XML,JSON之类格式,就不太适合作为AS400报文使用。因此,Firebird设计了一种特定的报文格式。
整体报文结构规则是,不论输入报文或者输出报文,除了少数报文头字段,其余均以接口结构方式组织。接口结构由接口名称,记录条数,单条长度,接口内容四个部分组成。一个交易的接口结构顺序,是否出现均不固定,不影响交易的执行。特别的,当接口为数组时,报文只需出现实际条数的接口内容,如果数组为空,则整个数组接口都不会出现。这样就减少了报文的大小,提升了通讯效率。在交易输出报文中,除了预先定义的交易输出接口外,还可以附加的方式返回其他特殊用途接口。例如提示信息,常用于交易成功但需要传递的提醒或警告