2976 2010,31(13) ・网络与通信技术・ 计算机工程与设计Computer Engineering and Design 大型网络系统数据同步设计 常 成, 姚文明, 张素伟, 何 勇 (华北计算技术研究所,北京100083) 摘 要:为解决某大型网络系统的多级层次存储结构以及各级数据同步性的要求,提出了一套切实可行又安全可靠的系统 设计方案。这套方案分别从数据库设计、数据上报分发应用子系统设计、多级网络方案设计等3个方面进行了探讨,克服了 海量数据存储模式和网络传输过程中碰到的“瓶颈”。实验结果表明,该方案满足了“逐级上报、集中存储、统一管理、按需共 享”的数据同步要求。 关键词:多级网络;数据同步;数据上报分发;安全加密;虚拟专用网加密机 中图法分类号:TP302.1 文献标识码:A 文章编号:1000—7024(2010)13—2976—04 Design of large—scale network system data synchronization CHANG Cheng, YAO Wen—ming, ZHANG Su—wei,HE Yong (North China Institute of Computing Technology,Beijing 1 00083,China) Abstract:In order to solve the multi—level hierarchical storage structure ofa large network system and the requirements ofal¨evels data synchronization,a set of practical,safe and reliable system design is proposed,which is discussed from 3 braches,such as database desin,applgication subsystem design of data reporting and dispatching,and multi—level network design.The“bo ̄leneck”in the course ofthe massive data storage and network transmission mode is solved out.During practicing,it shows that the desin gis well—done to satisfy the“level—reporting,centralized storage,uniied fmanagement,on—demand sharing'’of data synchronization requirements. Key words:multi-level network;data synchronize;data reporting and dispatching;security encryption;VPN encryption machine 0 引 言 很多大型网络系统部署的范围已遍布全国,甚至更大,面 临的问题也就随之而来,因此大型网络系统的数据同步在国 内外已成为研究热点。某大型网络系统在全国范围部署,要 求数据“逐级上报、集中存储、统一管理、按需共享”,为此建立 了四级数据管理中心和一级基层管理部门,它们是按地区级 别与职能区分的。各级数据管理中心主要负责数据的接收、 企业版数据库管理系统 作为后台应用的支撑。 为了满足各级数据中心和基层管理部门的数据同步要 求,我们在设计数据库模型时既要满足现有业务的需求,又要 记录数据的增量变化为数据同步做准备。因此,本系统的数 据库设计“ 主要包括数据字典、主库、临时库3部分的设计。 数据字典类似于我们常用的汉语词典,它用来描述并存 储数据的具体内容,比如属性、名字、类型、大小、尺寸等,它在 本质上也是一种概念模式,编写数据字典常常要依据程序清 单和一些简单的软件标识符。在这一点上,各级数据中心和 基层管理部门的需求都是一样的,因此数据字典相对固定、变 化不大、数据量也不大,这不是设计的难点。 主库与业务相关,随着基层管理部门的数据逐级上报,其 数据量会越来越大,从数据生成、网络发送、网络接收以及确 认入库等各个环节都面临着很大的考验。因此如何设计主库 汇总、上报和分发,以及数据备份恢复和安全管理,基层管理 部门主要负责数据的采集、维护、上报和日常业务处理。如何 通过接收、汇总、上报和分发4个步骤,完成各级网络之间的 数据同步,并要解决网络传输过程中的“瓶颈”问题就成了该 系统的关键技术所在。 1数据库设计 本系统目前采用了Java十分流行的MVC“。 设计模式,该 设计模式利用数据持久层屏蔽了业务逻辑和数据库的直接连 接,因此对数据库系统的选型没有严格的依赖,是松耦合关 系。考虑到用户未来数据的持续增长、业务承载能力以及对 安全性能指标严格要求等相关的影响,本系统采用了Oracle 这部分,成为本系统的关键所在,通过和用户沟通协调,基本 确定了一种合理的解决方案,就是采用“业务模型+增量标 识”方式来满足用户的需求,一方面现有业务不受到影响,另 一方面“增量标识”的设置减少了数据冗余和数据量,从而达 主库和临时库,两者除部分数据不一样,其它都一样。临 到只有变化的数据才进行数据的上报分发的目的。 收稿日期:2009.09—08;修订日期:2009—11.15。 作者简介:常成(1983一),辽宁丹东人,硕士研究生,研究方向为计算机应用技术; 姚文明(1978一),硕士研究生,高级工程师,研究方向为 计算机应用技术; 张素伟,副总工程师,研究方向为组件开发技术、软件构件技术与应用集成; (1976一),硕士研究生,高级工程师,研 究方向为数据集成。E—mail:cc19831@126.tom 常成,姚文明,张素伟,等:大型网络系统数据同步设计 时库在整个数据上报分发子系统中主要起到一个数据缓冲的 作用,实现了数据的软着陆,为下一步数据确认做准备。 为了解决在数据量很大的情况下数据库增、删、改以及查 询的效率问题,数据库设计上还对相关表作了一些优化处理 (比如建立索引等),尽可能地降低由于数据库不断增长对性能 的影响,避免数据库运转时硬件发生I/O冲突等不良状况。 2010,31(13) 2977 止等控制。 2.1实现策略 上报分发过程分为两部分,一是上报或分发方抽取转换 并发送数据,二是接收方接收数据入库。如图2所示。 另外,Oracle数据库管理系统提供了丰富的手段用以保证 数据库的可靠性 。为降低硬件故障对数据库运行的影响,同 时为提高数据库的性能,因此在对数据库/数据库文件的设计 B:数据接收节点▲ 嗡[样 一 一置别设级 / 一位码 L—————————————————J 厂 相关信息/ ——————————— ——.。... , J接收服务卜————’f 至_}—L 中,本系统将采取下述措施: (1)建立多个控制文件的复本,并将不同的控制文件复本 分布在不同的磁盘上; (2)建立多个重做日志组,并将曰志组的不同成员分布在 不同的磁盘上; (3)建立多个存放数据的表空间,将各表空间对应的数据 文件分别放在不同的磁盘上。 2数据上报分发应用子系统设计 在这个网络系统中,数据上报分发子系统负责整个系统 的数据接收、汇总、上报和分发 。 数据上报分发的使用流程如图l所示。 任务和上下级卜_—-1发送方发送数据 服务器地址 f L———T—一 停募分蓑程妻发任务报l l 1对数据进行审核 监控任务运行 图1数据上报分发使用流程 数据上报分发子系统采取逐级上报模式,因此需要在系统 中对本级单位代码和数据库服务信息进行管理。在首次使用 本系统时,登记上、下级单位代码和数据上报分发服务器信息。 指定数据上报或发送方和数据接收方的数据项对应关 系,指定数据上报或发送接收的策略。如信息何时上报,使用 什么方式上报等。系统将根据配置自动生成上报分发任务, 同时将任务部署到上报分发服务器上。 在上报分发任务设置完成后,数据上报分发子系统将自 动执行已部署任务。使用任务监控能够查看各上报分发任务 的状态、执行情况和日志,并能对上报分发任务进行启动、停 发送 成功 数据 反馈 r r—————————-———一 H L——\A,数据管送节点相关信息\。 图2数据上报分发流程 数据上报分发流程说明: (1)数据上报或发送节点抽取需要发送的相关信息; (2)修改数据的状态标志; (3)将数据打包发送到接收节点; (4)发送成功记录日志,不成功回退所有数据; (5)接收服务将收到的数据写入数据库; (6)根据数据入库情况记录错误信息和接收日志。 2.2数据抽取策略 数据抽取策略包括全部抽取和增量抽取两种。可以提取 所有数据或只提取有修改(包括增加、删除和修改)操作的数据。 数据上报分发子系统的增量抽取采用设置标志位的方式来 获取上报、分发的增量数据,从而减少网络流量,加快同步速度。 根据数据上报、分发的流程要求,设置3类标志位。 (1)更新标志:记录数据的修改状态,包括新增、修改和删除; (2)同步标志:记录数据的上报、分发和同步状态,分为未 上报、已上报、未分发、已分发等; (3)审核标志:记录数据的审核状态,审核通过的数据才 能够上报到上级管理部门。分为未审核、已审核。 采用标志位的方式,在业务处理时需要判断标志位的信 息,已登记未发送的数据在修改时不修改数据操作标志。数 据状态的变化如图3所示。 (1)新增数据的状态为新增未上报 (2)未上报的数据在修改时状态不变,删除时直接删除数据 (3)数据上报后,状态改为已上报 (4)已上报的数据在修改时状态改为修改未上报,删除时 状态改为删除未上报 (5)修改未上报的数据上报后改为已上报,删除未上报的 数据上报后删除 2-3定时策略 在数据上报分发子系统中,数据执行策略分为手工和自 动两种,自动上报可以设置上报时间和循环时间,由上报分发 服务定时上报。这样,只要把数据执行策略设为自动,系统会 自动地把用户要上报分发的数据定时发送过去,减轻了用户 2978 2010,3 1(13) 计算机工程与设计Computer Engineering and Design 图3数据状态变化 J=作的负担。 2.4数据入库处理策略 数据入库的策略主要分布在网络接收、确认入库两个阶 段。现就两个阶段分别米说明: 第一个阶段,数据入库丰要指从网络传过来的数据导入 到临时表的过程,这个过程的策略主要解决该数据需不需要 用户接收的问题,该数据附属信息中记载了数据来源单位,该 单位是否符合当前接收用户单位的接收范围,从而决定是否 接收该批数据以及是否将该批数据导入临时表的关键。 第二个阶段,数据入库主要指将数据从临时表转换到主 表的过程,这个过程是一个数据确认过程,主要采用了批次号 策略,对同一个单位同一任务的数据按批次号先后顺序确认 入库,这样就保证了各级数据中心和基层管理部门之间的数 据一致性。 2.5网络状况应对策略 在网络连通的情况下,数据上报分发子系统能够根据配 置好的策略,自动地将数据打包,发送到目的方。目的方接收 到数据后,能自动将数据导入本级数据库。 在网络不通的情况下,上报分发子系统能够将本级数据 库中需要上报的数据导出为文件包,通过移动存储设备上报 分发到接收单位。 导出文件包中应带有导出时间、导出序号、发送单位、接 收单位、增量标志等信息,以保证通过文件拷贝方式上报时不 丢失数据。 2.6备份恢复策略 数据上报分发子系统已经实现了将现有数据库中的数据 导出到自定义格式的数据文件里以及将这些文件导入到数据 库中的机制,因此常规的备份恢复就可利用这种原理实现,不 必使用Oracle备份恢复策略。 但对数据上报分发系统来说,备份恢复策略比较复杂, 这是因为还要考虑到保证上下级之间数据同步。为此,我们 引入了备份时间点的概念,除在这个时问点采用常规备份之 外,还要对这个时间点之后所产生的数据文件进行备份,这 样,进行恢复时才不至于丢数据,上下级的数据才能一致起 来,才能同步。 3多级网络方案设计 怎样利用网络设备,进一步发挥各种设备的功能,保证数 据上报分发予系统的可靠传输以及安全保密切实有效,将是 制定多级网络设计方案的工作雨点。下面就这两方面做简要 的介绍: 3.1安全加密 对于本系统网络设备的加密有两套方案。第一套方案是 针对一级、二级、三级数据管理中心;第_二套方案针对四级数 据管理中心与基层管理部门。 第 套方案:一级、■级、二级数据管理中心服务器分为 系统服务器、数据服务器、身份认证服务器。系统本身安装在 系统服务器上,数据库安装在数据服务器,做到系统与数据的 分离。系统服务器、数据服务器、身份认证服务器通过交换机 连接SSL加密机,服务器与外界数据的往来都需要通过SSL 加密机 进行加密。 第二套方案:四级数据管理中心与基层管理部门山于信 息量不大,机密程度相对于一级、二级、三级数据管理中心也 较低,所以四级与五级的PC机上直接安装PCI加密卡对数据 源加密即可实现安全的与上下级单位进行数据的上报与下发。 一级、二级、三级数据管理中心的SSL加密机之间、三级 数据管理中心的SSL加密机与四级数据管理中心的PC1加密 卡之间、四级数据管理中心与基层管理部门的PCI卡之间通 过建立VPN通道实现了链路层的加密传输。 VPN(virtualprivatenetwork)中文名称一般称为虚拟专用网 或虚拟私有网。它指的是以公用的网络作为基本传输媒体, 通过加密和验证网络流量来保护存公共网络上传输的私有信 息不会被窃取和篡改,从而想最终用户提供类似于私有网络 性能的网络服务技术。SSL加密机是基于VPN技术而实现的 一种嘲络安全设备。它利用SSL技术,来实现数据的加密和 解密,保证数据在公网上传输的安全。在两级数据中心连接 公网的数据输出口处,分别配备一个SSL加密机,对所有通过 公网传输的系统数据进行加密。 运用了SSL加密机,虽然数据还是通过公嘲传输,但由于 SSL加密机的作用,使总部和分支机构之问建立了一条私有 的隧道,组成了一个虚拟的私有网,所有数据通过这个虚拟私 有网传输,保护数据不受外界的攻击。 为了保护数据的完整性,在这个系统中同时引入了数字 签名技术,其主要实现原理如下:发送的数据经过加密机,首 先对原数据包进行Hash运算得到摘要,然后生成一个私钥经 加密后与摘要一起生成数字签名DDS,将原始数据包和DDS 一起作为新的数据包发送;接收端加密机收到数据后,分解数 据包,得到原数据包和DDS,首先对原数据包进行Hash运算 得到摘要一,同时对DDS解密得到摘要二,将摘要一和摘要 二比较,如果相等,就通过了身份验证,可以将原始数据包发 常成,姚文明,张素伟,等:大型网络系统数据同步设计 2010,31(13) 2979 送给F级机构。 3.2可靠传输 为了实现数据文件在网络中的可靠传输,除建立VPN这 样的专用通道外,我们还在从数据库中导出数据过程中做了 分包处理,就是把数据库中几十G(甚至更大)的数据量分成预 先设定好大小的一个个数据文什,然后将这些文件通过阚络 逐个分批发送m去,这种“化整为零”的做法不仅减轻了网络 的负担,而且能克服了网络传输的数据人小瓶颈问题,进而保 证所有的数据都能通过网络传输过去。 那么,现在的问题就是对指定大小的文件传输,如何实现 其口丁靠传输呢? 我们知道,传输协议提供了町靠性,町靠性足很多应用的 基础。传输控制协议(TCP) 是TCP/IP协议系列中的传输层协 议,负责提供可靠性。TCP提供 个完全可靠的(没有数据重 复或丢失)、面向连接的、全双工的流传输服务,允许两个应用 程序建立一个连接,并在任何一个方向卜发送数据,然后终止 连接。每一TCP连接可靠地建立,友好地终止,在终止发生之 前的所有数据都会被可靠地传递。 从虑用的角度来看,TCP提供的服务有7个主要特征:面 向连接。TCP提供的是而向连接的服务,一个直用程序必须 首先请求 个剑口的地的连接,然后使用这一连接米传输数 据;点对点通信。每…TCP连接有两个端点;充伞町靠性。 TCP确保通过~个连接发送的数据按发送时‘样正确地送到, 且不会发生数据丢失或乱序;全双工通信。 个TCP连接允 许数据在任何一个方向流动,并允许任何一个应用程序在任 何时刻发送数据。TCP能够在两个方向上缓冲输入和输出的 数据,这就使得一个应用在发送数据后,可以在数据传输的时 候继续自己的计算工作;流接口。TCP提供了一个流接口,一 个应用利用它可以发送一个连续的字节流穿过连接。也就是 说,TCP并不提供记录式的表示法,也 确保数据传递到接收 端应用时会与发送端应用有同样尺寸的段;可靠的连接建立。 TCP要求当两个应用创建一个连接时,两端必须遵从新的连 接。前‘次连接所用的重复的包是非法的,也不会影响新的 连接;友好的连接终止。一个应用程序能打开一个连接,发送 任意数量的数据,然后请求终止连接。TCP确保在关闭连接 之前传递的所有数据的可靠性。 传输控制协议(TCP)是TCP/IP协议系列中主要的传输协 议。TCP为应用程序提供了一个可靠的、可流控的、全双工的 流传输服务。在请求TCP建立一个连接之后,一个应用程序 能使用这一连接发送和接收数据,TCP确保数据按序传递而 无重复。最终,当两个应用结束使用‘个连接时,它们请求终 止连接。 一台计算机上的TCP与另一台计算机上的TCP通过交 换报文来进行通信。所使用的报文都使用TCP段格式,包括 携带数据的报文、确认和窗口通告,或用于建立和终止一个连 接的报文。每一TCP段以一个IP数据包的形式传输。 TCP使用了各种机制确保服务的可靠性。除了在一个段 中提供了校验和外,TCP还负责对丢失的任一一报文进行重发。 由于互联网中的延迟随时问不断变化,L人]而TCP的重发超时 必须具有自适应性。一个具有自适应性的币发方案为每一个 连接测量它当前的往返时间来选择一个重发的超时。 不同的运用须要有 同的Qos(quality of service)要求, Qos通常用带宽、时延、时延抖动和分组丢失率来衡量。各 种运用对服务质量的需求在高速增K。服务质量Qos系指 用来表示服务性能之属性的任何组合 为了使其具有价值, 这些属性必须是可提供的、可治理的、可验证的,而且在运用 时它们必须是始终如一的、可猜测的、有的属性甚至是起决定 性作用的。 数据上报分发予系统,为确保传输的可靠性, 仅利用了 基于TCP传输协议能从底层网络故障巾恢复,从而保证满足 必需的服务质量(QOS)要求,而且突破了网络各种传输瓶颈的 ,满足未来数据无限增长的需求。 4结束语 本文围绕大型网络系统的数据同步,从数据库设计、数 据上报分发应用子系统设计、多级网络方案设计等3个方面 讨论,实现了5级网络系统的“逐级上报、集中存储、统一管 理、按需共享”。其巾数据上报分发子系统从数据抽取策略、 定时策略、数据入库策略、嘲络状况应对策略、备份恢复策略 5个方面解决了系统的数据接收、 总、f 报和分发;多级网 络方案设计解决了系统数据的可靠传输 l传输过程巾的安 全加密。 参考文献: [1] 李刚.Struts2权威指南——基于WebWork核心的MVC开发 [M].北京:电子工业出版社,2008:314—317. [2] 陈天河.Struts,Hibernate,Sprint集成开发宝典【MJ.北京:电子工 业出版社,2007:581.676. [3】 汪照东.Oracle 11g数据库管理与优化宝典[M】.北京:电子工业 出版社,2008:251 355. [4] Rick Greenwald,Robert Stackowiak.Oracle高级编程[M].北京: 清华大学出版社,2007:85—112. [5] Christopher Steel,Ramesh Nagappan,Ray Lai.安全模式J2EE、 Web服务和身份管理最佳实践和策略[M].北京:机械工业 版社.2006:5】7-549. [6] John Carnell,Rob Harrop,Kunal Mitta1.Struts与Ajax高级程序 设计[M].北京:人民邮电出版社,2008:363 372. [7] 雷斯克拉.SSL与TLS[M].北京:电子电力出版社,2002:34—135. [8] Craig Hunt.TCP/1P网络管理[M].3版.北京:电子工业出版社, 2006:394—449.