1、 硕士学位论文 基于 BPPF的电信计费财务预处理系统的研究与实现 专 业 名 称 : 软件工程 研究生姓名 : 校 内 导 师 : 校 外 导 师 : I 要 关键词: 目录 II Abstract Keywords: 目录 目 录 摘要 .I Abstract . II 第一章 绪论 . 1 1.1 研究背景 . 1 1.2 国内外研究及现状 . 2 1.2.1 分布式处理技术 . 2 1.2.2 数据流 . 3 1.3 课题研究目的及意义 . 3 1.4 研究目标和内容 . 3 1.5 论文章节安排 . 4 第二章 相关技术与基本概念 . 5 2.1 数据流组件 . 5 2.2 Hado
2、op Map/Reduce. 6 2.3 BPPF 分布式框架 . 7 2.4 会计恒等式 . 9 2.5 复式记账法 . 10 2.6 交易资金记账模式以及分摊计算规则 . 12 2.7 本章小结 . 14 第三章 系统总体设计 . 15 3.1 系统业务需求 . 15 3.2 系统总体框架 . 16 3.2.1 系统硬件架构 . 16 3.2.2 系统软件架构 . 18 3.3 本章小结 . 20 第四章 系统详细设计 . 21 4.1 预处理模块 . 21 4.1.1 数据流格式 . 21 4.1.2 数据流执行流程 . 23 4.1.3 模块设计 . 25 4.2 日记账模块 . 27
3、 4.2.1 模块主要功能 . 27 4.2.2 BPPF 组合并算法 . 29 4.2.3 模块设计 . 31 4.3 日汇总模块 . 36 4.3.1 模块主要功能 . 36 4.3.2 BPPF 分组粒度以及分组优化 . 37 4.3.3 模块设计 . 38 4.4 过账模块 . 39 4.4.1 模块主要功能 . 39 4.4.2 过账回退以及文件撤销 . 40 4.4.3 模块设计 . 44 4.5 本章小结 . 46 目录 IV 第五章 系统实现与测试 . 47 5.1 测试环境搭建 . 47 5.1.1 BME 运行环境搭建 . 47 5.1.2 数据流以及财务预处理系统业务包部
4、署 . 50 5.2 系统测试环境 . 51 5.3 系统实现效果 . 51 5.4 系统测试 . 57 5.5 本章小结 . 59 第六章 总结与展望 . 60 6.1 本文总结 . 60 6.2 展望 . 60 致 谢 . 62 参考文献 . 63 第一章 绪论 1.1 研究背景 随着社会经济的飞速发展以及电信通信业务的普及,互联网以及手机已经被越来越多的人选择作为交流的媒介,电信运营商也就随之兴起,比如中国移动,马来西亚的 DiGi,日本的 SoftBank。而这些电信运营商不可避免的需要解决计费问题,因此计费软件领域的竞争在近几年也日趋白热 化 。市面上计费软件供应商主要有 Comve
5、rse Technology, Oracle, Amdocs,爱立信,中兴,华为等等,因此 可以说在计费领域竞争比较激烈的。以 Comverse 为例,在融合计费的理念和市场需求产生后,Comverse 公司及时推出了其融合计费解决方案,同时通过并购,吸收了计费方面的名牌产品线及有专项服务特长的产品,充实了其计费解决方案的综合实力, 2008 年 6 月推出了 Comverse ONE 解决方案,为后续市场机会的发展把握奠定了基础。 电信 计费系统的核心是记账,即输出记账数据给第三方 ERP 或者财务系统,为生成财务报表提供数据源, 因此记账方案的质量决定了公司财务系统的稳定。这个质量不仅仅体
6、现在系统的稳定上,也体现在 其对数据的处理能力上。而通过对大数据处理机制的研究,探索,提高数据处理效率,有利于迎合市场需求,抢占市场份额。 随着大数据的普及,其处理技术也越来越多,包括大规模并行数据库、并行处理引擎( Hadoop Map/Reduce)、流式计算( Storm,Spark)、并行数据挖掘和机器学习等等,其中 Hadoop Map/Reduce经过几年的发展,已经成为大数据分析平台的标配。尽管 Map/Reduce 的分布式模型技术在模式上很简单,但还存在许多问题,比如需要数据分析人员自行设计编写 Map 与 Reduce 函数内部细 节,所以传统的数据挖掘与知识发现算法,需要
7、重新设计,才能更好地实现代码向数据迁移这一目标,所以传统算法的 Map/Reduce 优化成为一个研究热点,值得我们深入研究。 本文介绍的财务预处理系统采用的 BPPF 分布式框架汲取借鉴了 Map/Reduce 的分组思想,对于传统的 Map 算法做出了优化,提高处理效率。同时该系统采用了复式记账的方式进行财务拆分,并对拆分后的财务数据按照可配的维度进行汇总以及过账,结合数据流抽取,筛选数据生成过账文件,完成财务数据的输出。 2 1.2 国内外研究及现状 1.2.1 分布式处理技术 分布式处理技术旨在集中互联网中可用闲置资源,利用这些资源完成庞大、复杂的计算工程和数据处理工作。这种技术是当今
8、社会信息技术飞速发展的必然产物,也是互联网方向的重点研究课题之一。在上文研究背景中提到了几种大数据处理技术, Hadoop Map/Reduce 无论是在企业界还是学术界获得的关注度无疑是最高的。 首先 Map/Reduce 编程模型的思想起源于函数式编程语言 Lisp,该语言是有 Googel 公司提出并率先应用于大型集群的数据处理。同时, Google 也发表了 GFS、 BigTable 等底层系统用以应用Map/Reduce 模型。在 2007 年, Googles Map/Reduce Programming Model-Revisted 论文发表,进一步介绍了 Google Map
9、/Reduce 模型。 Google 以 Map/Reduce 作为基石,逐步发展成为全球互联网企业的领头羊。 Hadoop 作为 Apache 基金会资助的开源项目,基于 Lucene 和 Nutch 等开源项目,实现了 Google的 GFS 和 Map/Reduce 思想。在 2004 年,研发团队实现了 Hadoop 分布式文件系统和 Map/Reduce并发布了最初版; 2005 年 12 月, Map/Reduce 能够稳定运行在 20 个节点的集群; 2006 年 2 月, Apache Hadoop 项目正式支持 HDFS 和 Map/Reduce 的独立开发。同时,新兴公司
10、Cloudera 为 Hadoop 提供了商业支持,协助企业实现标准化安装,并志愿贡献社区。 Hadoop 的最新版本是 0.20.2,说明其还在不断完善发展之中。 2008 年 2 月,雅虎宣布搭建出世界上最大的基于 Hadoop 的集群系统 Yahoo! Search Webmap,另外 Hadoop 还被广泛应用到雅虎的日志分析、广告计算以及科研实验中 ;亚马逊的搜索门户 A中的商品搜索的索引生成就是基于 Hadoop 完成的;著名 SNS 网站 Facebook 用 Hadoop 构建了整个网站的数据仓库,目前有 320 多台机器进行着网站的日志分析和数据挖掘。 在 2008 年之后,
11、国内应用和研究 Hadoop 的企业也越来越多,包括阿里巴巴、百度、腾讯、网易、金山等。阿里巴巴是国内最先使用 Hadoop 的公司之一;百度在 Hadoop 基础上做出广泛应用并对它进行了改进和调整,同时赞助了 HyperTable 的开发。总而言之,互联网企业是 Hadoop 在国内的主要使用力量。 1.2.2 数据流 数据流 (data flow)最初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。然而,本文中提到的数据流的概念与此不同,在本文中,数据流作为数据提取、转换以及加载的一个工具。这种作用的工具又有一个代表性的名字: ETL( Extraction-Transf
12、ormation-Loading 的缩写),市面上的 ETL 工具主要有: OWB(Oracle Warehouse Builder)、 ODI(Oracle Data Integrator)、 Informatic PowerCenter、 Trinity、 AICloudETL、 DataStage、 Repository Explorer、 Beeload、 Kettle、 DataSpider这几种。 ETL 主要负责将分散或异构数据源中的数据比如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库中,作为数据进一步分析处理的基础。 1.3 课题研究目的及
13、意义 随着社会经济和计算机技术的飞速发展,特别是移动通信的普及,电信运营商对于计费软件的要求逐步提高,已经不仅仅需要计费软件支持融合计费,对于系统的稳定性以及快速性都提 出了很高标准。记账作为计费软件对外输出的窗口,其重要性不言而喻。而目前的财务记账系统在大数据处理,记账方案的选择等诸多方面存在不足。本课题将着手于财务预处理系统的研究,给出一整套记账处理流程用于业务数据和财务数据的转换,并结合大数据分布式处理框架,对传统的分组策略进行优化,提高处理效率和稳定性。 1.4 研究目标和内容 本课题研究基于华为 CBS 融合计费软件,着重于计费方案的研究,并结合本人在实习期间学习的有关大数据处理策略
14、,设计了一个电信计费财务预处理系统。该系统为解决时下记账方案的不足提供了一个全新的记 账模型,具备一定的参考与实践价值。 本文的工作重点主要在于以下几个方面: 1. 由于本财务预处理属于计费系统的一个子系统,上游模块课通过本系统对外提供的文件接口输入交易文件。因此首先需要完成的是对数据的抽取,清洗,转换并加载到数据库中以便进一步处理。对数据的这些操作均由数据流完成。 2. 设计一个记账流程,完成业务数据和财务数据之间的转换,并最终完成过账文件的输出。 3. 完成 BPPF 分布式框架的设计,并将其和业务流程无缝结合,最大化提高处理效率。 4. 结合业务提出分组优化方案,对比分组前后的执行时间,
15、证实该算法的可行性。 4 1.5 论文章节安排 本论文组织结构如下: 第一章为绪论。主要介绍论文的研究背景、国内外研究现状、课题研究目的以及意义、研究目标和内容。 第二章为相关技术与基本概念。 介绍系统中涉及或使用到的理论、技术以及财务上的一些基本概念 。包括数据流组件、 Hadoop Map/Reduce、 BPPF 分布式框架 、会计恒等式、复式记账法、交易资金记账模式以及 分摊计算规则 等。 第三章为系统总体设计。 主要介绍系统的总体设计,主要包括系统业务需求,根据业务需求设计系统总体框架,其中包括系统的硬件架构和系统软件架构两部分。 第 四章为系统详细设计。 主要介绍系统各个模块的详细
16、设计。 包括预处理模块、日记账模块、日汇总模块以及过账模块。 第五章为系统实现与测试。主要介绍系统实现与测试。包含测试环境搭建,系统测试环境介绍,系统实现效果展示,以及最后系统性能测试结果说明等。 第六章为总结与展望。对本文进行简要的总结,并提出当前财务预处理系统的不足以及问题的解决办法。 第二章 相关技术与基本概念 本章主要介绍系统中涉及或使用到的理论、技术以及财务上的一些基本概念。主要包括数据流组件、 hadoop Map/Reduce、 BPPF 分布式 框架、会计恒等式、复式记账法、以及交易资金记账模式以及分摊计算规则。 2.1 数据流组件 财务预处理系统在财务系统中的地位是 “ 承上
17、启下 ” ,因为它的输入数据源需要上游模块提供(以文件接口的形式),而输出又需要与第三方对接。在预处理任务中,通过读取上游系统输出的业务数据文件,并根据规则因子配置将文件中的交易数据映射到数据库中,这个规则因子是由预处理数据流承担。数据流是指对数据集的处理流程,主要负责对数据集进行查找、过滤、排序、路由等处理流程。处理流程图如图 2-1: 数 据 输 出数 据 抽 取数 据 加 载数 据 源数 据 转 换图 2-1 数据流处理流程图 从上图中可以看出,数据流的处理主要分为两类,一类是数据抽取,一类是数据加载。所谓抽取,指的就是从数据源中提取需要的数据,抽取动作的发起方应该是数据流,也就是说要做
18、到主动抽取,无需和数据资源同步。所谓加载,指的是将转换后的数据按照一定的规则存储到数据库或者其他数据载体中。本系统按照数据源以及输出方式的需要,对于抽取提供 JDBC 以及文本两种抽取方式,对于加载提供 JDBC 以及文本两种加载方式。 对于本系统来说,选择数据流是有一定的必要性的。由于运营商需要在每个过账日的 处理的文件量会比较大,如果每次都需要对数据提取,匹配,转换,输出,处理复杂度将会大大增加,而将这些规则整合到一个配置文件中,将这些规则预先规定,提供文件接口,用于输入上游的文件,并可以根据数据模型定义的字段匹配映射规则,最终完成数据入库,这样处理复杂度就会得到有效的控制。而这样做的好处,就是增加了预处理灵活度,对于文件来说,如果想要更换映射规则,仅仅