版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、全面掌握报文协议全面掌握ISO8583报文协议我刚进入金融行业时,就知道了 IS08583报 文协议,我想可能我还没进入这个行业都已经听 过了,可知ISO8583的影响力有多大了。最初 刚接触它时,确实对其中的一些细节概念不是很 清晰,对有些地方比较迷惑。鉴于此,我想很多 同行也必然会经历同样得阶段,所以我写下本 文,以便大家能够少走一些弯路。同时,我在网 上写下我要写“全面掌握ISO8583报文”和“符合CEN/XFS (即WOSA/XFS)规范的SP编写”两 篇文章时,很多人都询问我什么时候能够写出 来,可知许多人是需要了解这方面的知识的,即 使我时间不是很多,也得尽量将这两篇文章写出 来
2、,给需要的人提供一些参考。如果单纯的讲IS08583那些字段的定义,我 觉得没有什么意思,标准中已经对每个字段解释 的非常详细了,如果你觉得理解英文版的ISO8583规范有些困难,网上也有同行为我们:译好的中文版ISO8583规范,所以我的目的是 达到阅读本文后能够对ISO8583知其然,亦知 其所以然,使以前基本没有接触它的人也能够达 到掌握ISO8583报文规范。好了,我们该转入正题了。liiJ:开始时,金融系统只有IBM这些大的公司 来提供设备,象各种主机与终端等。在各个计算 机设备之间,需要交换数据。我们知道数据是通 过网络来传送的,而在网络上传送的数据都是基 于0或1这样的二进制数据
3、,如果没有对数据进 行编码,则这些数据没有人能够理解,属于没有 用的数据。起初的X.25、SDLC以及现在流行的 TCP/IP网络协议都提供底层的通讯编码协议, 它们解决了最底层的通讯问题,能够将一串字符 从一个地方传送到另一个地方。但是,仅仅传送 字符串是没有太大意义的,怎样来解析字符串代 表什么内容是非常重要的,否则传送一些 “0123abcd的字符串也是无用的乱码。让我们随着时光回到几十年前的某个时刻,假设我们被推到历史的舞台上,由我们来设计个通用报文协议,来解决金融系统之间的报文交liiJ换,暂且称该协议叫做ISO8583协议。此时, 技术是在不断的前行,当初IBM 一支独秀的局 面好
4、像已经不妙了,各种大小不一的公司都进入 金融行业以求能有所斩获,呈一片百花齐放的局 面。我们怎样来设计一个报文协议,能够将这些 如雨后春笋般出现的所有公司都纳入进来,其实 也不是一件很简单的事。我们还是先一步步的来考虑吧。金融行业其 实涉及到的数据内容并不是成千上万,无法统 计恰恰相反,是比较少的。我们都可以在心底 数得过来,象交易类型、帐号、帐户类型、密码、 交易金额、交易手续费、日期时间、商户代码、 2磁3磁数据、交易序列号等,把所有能够总结 出来的都总结起来不过100个左右的数据。那我 们可以首先简单的设计ISO8583,定义128个字 段,将所有能够考虑到的类似上面提到的“帐号” 等金
5、融数据类型,按照一个顺序排起来,分别对 应128个字段中的一个字段。每个数据类型占固 定的长度,这个顺序和长度我们都事先定义好。这样就简单了,要发送一个报文时,就将128个 字段按照顺序接起来,然后将接起来的整串数据 包发送出去。任何金融软件收到ISO8583包后,直接按照 我们定义的规范解包即可,因为整个报文的128 个字段从哪一位到哪一位代表什么,大家都知 道,只要知道你的数据包是ISO8583包即可, 我们都已经定义好了。比如第1个字段是“交易 类型”,长度为4位,第2个字段位是“帐号”, 为19位等等。接收方就可以先取4位,再取接 着的19位,依次类推,直到整个数据包128个 字段都解
6、完为止。其实这种做法真是简单直接,基本上就可以 满足需要了。不过我们有几个问题要思考下:1、我怎么知道每个字段的数据类型呢,是数字 还是字符?2、每个传送的报文都把128个字段都传过去, 那网络带宽能够承受得了,有时候我可能只需要 其中5个字段,结果多收到了 123个无用的字段。3、如果我某些字段的长度不固定,属于变长怎么办,因为你现在解包是当作数据包每个字段都 是固定的,用C语言解包时直接依靠指针取固 定长度的一串字符做为一个字段。我们来一一解决这些问题。第一个问题简单,我在定义ISO8583时除了 定义每个字段表示什么,还规定其内容是数字或 是字符等即可。考虑可能出现的类型不过有以下 几种
7、:字母、数字、特殊字符、年月日等时间、 二进制数据。比如我对128个字段中的“商户类 型”字段定义其长度是15,同时定义其类型为字 母。再精细点,如果“商户类型”里面的数据同时 包括数字和字母呢?那我们就定义其类型为字 母也可,为数字也可,即一个字段可以同时属于 多个类型。第二个问题稍微复杂点。其本质就是如果我 只传128个字段的5个字段,接收方怎么知道我 传了哪几个字段给它了。要是我们把剩下的123 全部填成0或其他特殊标识,标明该字段不需要 使用?这种处理方法没有半点用处,没有解决网络带宽的本质问题,还是要传128个字段。2 4 16 2 8 256换个思路,我在报文前面加上个包头,包头 里面包含的信息能够让别人知道只传了 5个字 段。怎样设计这个包头,可以这样,我们用16 个字节,即128个bit (一个字节等于8bit)来 表示128个字段中的某个字段是否存在。每个 bit在计算机的二进制里面不是1就是0,如果是 1就表示对应的字段在本次报文中存在,如果是 0就是不存在。这样好了,如果别人接收到了ISO8583报文,可以先根据最前面的报文头,就 知道紧接着报文头后面的报文有哪些字段,没有哪些字段了。比如,我要发送5个字段,分别属 于128个字段中的第2、3、6、8、9字段,我就 可以将 12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理人力资源管理与医院文化建设
- 护理礼仪的服务意识
- 2026年高考语文作文预测范文5篇
- 护理心理治疗中的心理干预
- 护理礼仪的规范与执行
- 护理心理治疗中的心理支持
- 旅游行业的市场营销策略与推广方法
- 零售业店长晋升运营经理面试技巧
- 基于云计算的游戏开发平台研究
- 旅游行业导游主管面试要点与技巧
- 2025年公务员考试行测逻辑推理试题库及答案(共200题)
- 慢性泪小管炎的护理查房
- 《脑出血护理查房范例》课件
- 售电业务居间服务合同协议
- 毕业设计(论文)-AGV搬运机器人设计-AGV小车
- 2024年浙江出版联团招聘真题
- DB37-T 4401-2021 养老机构分级护理服务规范
- 2025-2030年中国土砂石开采行业市场竞争格局规划分析报告
- 人机配合安全
- 导数中的同构问题【八大题型】解析版-2025年新高考数学一轮复习
- ANCA相关性小血管炎肾损伤病因介绍
评论
0/150
提交评论