1、EBCDIC 文件转码器 厦门大学软件学院 - 1 - 本科毕业论文 (科研训练、毕业设计 ) 题 目: EBCDID 公共转码器 及转码模拟器的实现 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日 EBCDIC 文件转码器 厦门大学软件学院 - 2 - EBCDID 公共转码器及转码模拟器的实现 摘要 EBCDIC 文件公共转码器主要是针对源系统 (在 UDI 项目中,专指 DCC 和国际卡系统 )的 EBCDIC 文件进行解码,解成 UDI 内部标准的 ASCII 文件格式,中文部分采用 G
2、BK 编码。同时进行格式检查 ,对不符合检核规则的记录生成相应的 reject file(不符合检核规则而丢弃的记录)和 warning file(不符合检核规则报错但继续转换的记录) .公共转码器包含日志组件, XML 解析器。转码模拟器是 EBCDIC 文件公共转码器的逆向转换操作,支持将 ASCII文件,通过 XML Table Definition 格式定义文件,转换成模拟的 EBCDIC 文件。反转时不进行格式检查,但反转要求 ASCII 文件是定长文件,最后 只生成转换得到的 EBCDIC 文件。 本文档详细描述了公共转码器和转码模拟器的设计构思 ,处理流程以及与其他模块的接口 .
3、 关键字 EBCDIC 文件公共转码器 UDI XML 解析器 转码模拟器 EBCDIC 文件转码器 厦门大学软件学院 - 3 - Abstract EBCDIC file commonality coding decoder mostly decodes the EBCDIC file in the source system (It is for the DCC system and international block system in the UDI project).It decodes into the ASCII file format according the UDI i
4、nner standerd.The Chinese part adopts GBK coding.At the same time ,carrying the format checking.It will create corresponding rejecting file and warning file while it dose not according to checking rule.The commonality coding decoder contained log module and XML parser.Code decoder simulator is the o
5、persite operation to EBCDIC file coding decoder .It supported to decoding ASCII file to EBCDIC file ,through XML Table Definition format definition file.It will not carry the format checking ,but it required the file to be fixed-long .Finally ,it will only create the EBCDIC file.The document particu
6、lar described the design of commonality coding decoder and decoder simulator, transaction flow and the interface with other module. Key Words EBCDIC file commonality coding decoder UDI XML parser decoder simulator EBCDIC 文件转码器 厦门大学软件学院 - 4 - 目录 EBCDID公共转码器及转码模拟器的实现 . 2 第一章 引言 . 6 第二章 系统设计 . 8 1.模块设计
7、的基本需求及设计原则 . 8 ( 1) 基本需求(如表 1) . 8 ( 2) 设计原则(如表 2) . 8 2.模块的整体结构 . 9 ( 1) 模块的整体框图:如图 1 . 9 ( 2) 各模块间的调用关系:如图 2 . 10 ( 3) 模块的整体流程:如图 3 . 11 3. 重要的数据结构及公共参数 . 12 ( 1) Cobol字段转码前后类型和长度对照表 :(如表 3) . 12 ( 2) 检核规则定义 : . 15 ( 3) 系统 ID: . 17 第三章 详细设计 . 18 1.EBCDIC文 件模拟器 . 18 ( 1) 功能定义 : . 18 ( 2) 模块框图: . 18
8、 ( 3) 反转码的处理流程: . 19 ( 4) 反转码函数: . 19 2. 模块对外提供接口说明及使用举例 . 23 ( 1) EBCDIC文件公共转码器 (EbctoAsc) . 23 ( 2) EBCDIC文件模拟器 (EbcSimulator) . 24 3. XML解析器 . 25 ( 1) xml介绍 . 25 ( 2) xml解析器介绍 . 27 EBCDIC 文件转码器 厦门大学软件学院 - 5 - ( 3) 编写的 xml解析器的类 . 28 ( 4) 示例 . 31 结论 . 32 致谢 语 . 33 参考书目 . 34 EBCDIC 文件转码器 厦门大学软件学院 -
9、6 - 第一章 引言 中国建设银行和其他银行一样面临着入世后带来的各种机遇和挑战,配合建设银行上市的步伐,满足内部 股份改造的需要,全面提高整体科技应用水平成为当务之急。 如今,建行的柜面系统已经很完善了,但是对客户信息的管理,决策支持系统还有待进一步的完善, DCC(数据集中工程)就是把数据集中在总行 统一处理 ,另外考虑到各系统间数据的交互,于是引入的 UDI(统一数据交换池 )的项目,而 DCC 和国际卡业务的数据 都是在大型机上以 EBCDIC 码( Extended Binary-Coded Decimal Interchange Code,扩展二、十进制交换码 )的形式存储的,要与
10、其他系统进行交互既要转换成通常所用的 ASCII码的形 式,我们编制的 EBCDIC 文件公共转码器 功能是将 EBCDIC 码文件转换成 UDI内部标准的 ASCII 文件 , EBCDIC 是 IBM 公司为它的大型机开发的 8 位字符编码,转码时先装入公共配置文件及表定义文件。公共配置文件定义了一些合法的缺省格式,表定义文件记录的是元数据,即对数据的类型、属性、长度等等一些相关信息的描述。根据装入的表定义文件中数据的类型执行相应的检核程序, 对不符合检核规则的记录生成相应的 reject file(不符合检核规则而丢弃的记录)和 warning file(不符合检核规则报错但继续转换的记
11、录 )。 然后执行相应的转码程序。 EBCDIC 文件公共转码器还包含日志组件和 XML 解析器。 日志组件时刻记录程序的运行情况,输出程序运行中产生的错误、警告及一些相关信息。 XML 解析器用来解析 XML 文件, 在本程序中是很重要的组件,公共配置文件和数据的表定义文件都是存储在 xml 文件中的,对于不同的数据只要装入不同的表定义文件 即 可运行转码程序得到转码后的文件 。 这样有利于程序的模块化和封装性,对不同的数据不用编写不同的转码,程序增强了程序的通用性, 另外考虑到将来的平台测试,以及测试数据模拟的问题,增加 了一个 用于测试的模块 (EBCDIC 文件模拟器 ),主要用于从输
12、入的 ASCII 源文件,根据 COPYBOOK 定义,生成对应的 EBCDIC模拟文件。 转码模拟器实现的是 EBCDIC 公共转码器的逆向转换操作,即将 ASCII 文件转换成 ECBDIC 文件,转换的过程是先装 入公共配置文件和表定义文件,反转过程不用进行类型检核,直接根据表定义文件中定义的数据类型执行相应的反转码函数。 在这次项目中,我主要负责的是转码模拟器的实现以及 XML 解析器的封装。 本文档主要描述了 1. 公共转码器及转码模拟器的设计构思 ,处理流程以及与其他模块的接口。 EBCDIC 文件转码器 厦门大学软件学院 - 7 - 2. 具体描述了模 块的整体结构,包含的各个子
13、模块的功能及相互之间的关系。 3. 模块的对外接 口及实用实例。 4. XML 解析器的原理及应用实例。 EBCDIC 文件转码器 厦门大学软件学院 - 8 - 第二章 系统设计 1.模块设计的基本需求及设计原则 ( 1) 基本需求(如表 1) # 需求描述 来源于 R001 处理性能大于 1GB/S R002 支持 EBCDIC 码文件转码成 UDI 标准的定长加分隔符ASCII 码文件 R003 支持带分隔符的 ASCII码文件转码成 UDI标准的定长加分隔符 ASCII 码文件(目前还没有做,将来支持) R004 支持定长 ASCII 码文件转码 成 UDI 标准的定长加分隔符ASCII
14、 码文件(目前没有做,将来支持) R005 支持对转码前后的文件进行检核 R006 对转码过程有相应统计分析,形成结果标记文件 R007 对检核出错的数据,能根据检核规则形成 rejectfile 或warning file R008 对出错次数有控制,当超过最大允许 reject 或 warning 次数时停止转码 R009 对于检核规则应实现可配置 R010 能够依赖元数据定义的 XML 文件实现对各种文件的自动转码,模块必须具有通用性 表 1 ( 2) 设计原则(如表 2) # 设计原则描述 其他 P001 采用 C/C+进行编写,必须支持 UDI 服务器的运行平台 EBCDIC 文件转
15、码器 厦门大学软件学院 - 9 - AIX 以命令行的方式提供给应用层调用。 P002 公共转码模块的性能应该达到 1GB/分钟 的处理速度。 P003 设计上应该能够处理所有 小于 64GB 的文件。 P004 支持 EBCDIC 定长文件和 ASCII 码定长及分隔符文件的转码。 P005 支持对转码后的文件进行数据检核。 P006 程序具有通用性 ,只要提供库结构 ,就可以转相应 表的数据。 P007 设计上要考虑文件模拟要求 ,进行少量修改就可以将转码后的文件逆向转为 EBCDIC 码定长文件。 表 2 2.模块的整体结构 ( 1) 模块的整体框图:如图 1 图 1 主控类 结果标记文
16、件 表定义文件 EBCDIC 文件 公共配置文件 Warn 文件 Rej 文件 ASCII 文件 EBCDIC 文件转码器 类型检核模块 EBCDIC 文件转码器 厦门大学软件学院 - 10 - ( 2) 各模块间的调用关系:如图 2 主控+ I n it ( ) : in t+ Re a d Re c o n d ( ) : in t源文件类公共参数类转码类 类型检核类公共函数R e j e c t F ile 类N o r m a lF ile 类W a r ni ng 类结果标记类图 2 依据模块总体框图,本模块主要由 10 个子模块组成,按照面向对象的设计原则分为10 个大类 : 数据处理 主控程序 ,控制整个处理流程。 转码类 ,负责处理 EBCDIC 到 ASCII 的转码。 类型检核类 ,负责源文件特殊值的转换和类型检查。 文件操作 源文件类 ,包括所有对源数据的操作 ,如读取指定数据等。 表定义类,装入表定义 XML 文件。 公共参数类 ,负责读取公共参数文件和表定义文件的配置信息 ,计算各个字段的长度和转码、检核函数。 Normal文件类 ,负责写转码后的标准 ASCII 文件 Reject file 类 , 如果是主键值字段,只要一个出现解码错误,或者主键值字段为空,则 reject 这条记录,并记录 Reject file。