-
Notifications
You must be signed in to change notification settings - Fork 1
Home
nuclearg edited this page Sep 18, 2014
·
8 revisions
在不同的系统之间交换数据时,通常会使用“报文”作为载体。
这世上有无数种报文,定长,名值对,xml,8583…… 每个系统都会定义自己的报文,并规定别的系统与其交互时必须采用这种报文。
- 以银行界当年最时髦的8583为例,有标准的iso8583,银联的8583,各种奇形怪状的8583……(主要的区别在于编码、LLVAR的LL部分的格式和长度、以及自定义域的格式)
- 以现在仍然很时髦的XML为例,有像
<a>3</a>这样的风格,也有像<a value="3"/>这样的风格,更有像<field><name>a</name><value>3</value></field>这样的风格,以及各种其它奇形怪状的风格…… - 除了这些常见的报文,还有更多不常见的报文。这些报文大多是由某个系统自己定义的,并且规定别的系统与其交互时必须使用这种报文。随便列一些,就有定长格式报文、名值对格式的报文、基于tag的报文、基于分隔符的报文,甚至基于二维表的报文……
- 同时,要考虑的还有字节序、对齐、补位、BCD码等各种奇形怪状的约定……
总之,几乎每个系统的开发者在向外提供服务时都会设计他自己的报文。这些报文长成什么样的都有,因为设计者要考虑很多东西,比如对报文长度的追求,对解析速度的追求,对符合行业规范的追求……
kyou就是帮你处理掉上面提到的这些麻烦事的。kyou的工作是执行报文组包,将报文数据组成您期望的任意报文格式。
kyou认为,报文数据和最终的表示之间存在着简单的对应关系,就像html+css=页面一样。
数据 + 样式 = 最终报文
kyou定义了一套文档对象模型,用以将所有的报文结构归结为一棵树;同时需要编写一套组包样式定义,用以规定出报文的样式;最后kyou将把合适的组包样式定义应用到报文数据中的每一项上,最终得到期望的最终报文。
您可以先了解一下kyou的一些概念定义,再看一下kyou的组包核心流程。如果您觉得kyou可以帮助您,那您一定会对如何使用比较感兴趣。
- 你的项目需要考虑与多个系统进行基于报文的交互,但不想编写针对每一个系统的接口程序。——kyou可以帮你搞定这些麻烦的接口,只要你提供组包样式定义。
- 你的项目需要与外部系统进行基于报文的交互,需要一个外围系统的挡板用来测试。——kyou可以帮你快速搭建起这个外围系统的挡板。
kyou项目的目标是实现一套通用的、高性能的、易于学习和使用的报文拆组包类库。
当前阶段的重点在于报文通用组包功能,下一个大版本的重点将放在报文通用拆包功能上。敬请期待。