基于DEC的应用层与数据层数据同步问题的研究

2019-08-02 03:08林钰杰吴丽贤
微型电脑应用 2019年7期
关键词:应用层结构化服务器

林钰杰 吴丽贤

(广东电网有限责任公司 佛山供电局, 佛山 528000)

0 引言

数据同步与数据交换的场景在大数据时代下一直存在,例如数据同步发生在分布式数据库中,用户如需获取数据,则可以从数据库中进行修改或管理。DEC,即(Data Exception Control Center),以面向数据以数据为核心的思想来对数据进行管理与提供服务,并解决数据同步与同步过程中可能出现的问题,为解决大数据时代下的软件结构问题打好基础。

1 应用层与数据层同步问题的背景

数据冲突始终是需要考虑的问题。数据冲突是数据源之间的数据不统一、不唯一,任何程序都难免产生数据冲突。一般情况下可以将数据冲突的类型分为两种,即数据语义冲突与数据结构冲突[1]。前者是指同一个现实事物在数据对象之间的描述方式上与内容上存在语义差异,而后者则是由于数据对象构成差异导致的结构变化,即源数据端与目标数据端。例如在Customer/Server场景当中,客户端与服务器同步的过程中就可能出现因为版本冲突产生的数据冲突,因而需要进行数据同步管理[2]。具体冲突原因如下表1所示。

可以看到不同的数据冲突问题需要不同的检测与解决方案,此时也需要有效的机制进行保障,防止数据崩溃的情况产生而导致系统瘫痪[3]。虽然数据冲突并不能百分之百避免,但数据同步时进行的控制可以显著降低冲突产生的可能性,因而应用层与数据层的数据同步问题就显得至关重要。

2 DEC的理论基础

DEC的功能如图1所示。

DEC即数据异常控制中心,能够对数据系统进行有效划分,在行业中具有重要作用。

2.1 自适应管理

表1 数据冲突情况

图1 DEC功能

这项功能的作用是建立在数据维护功能基础上,数据本身存在着多种管理手段。如果是实时应用的场景,则数据需要快速响应,此时安全数据也需要进行监控和管控,DEC则可以对不同的场景提供自适应管理模式,提供安全保障。

2.2 巡检

巡检即对数据进行定期检查和维护,针对于不同的元数据进行管理。

2.3 数据维护

数据维护的功能包括数据访问管理、数据操作管理、任务计划管控与备份数据等[4]。

2.4 异常检测与处理

异常检测与处理工作主要是针对数据产生的异常情况进行处理,关键内容在于数据的检测,并掌握出现异常的数据。需要注意的是系统功能可以探测异常但不能对其进行处理,处理工作需要相关组件,通过通信机制进行协同工作[5]。

2.5 冗余探测与处理

数据量大幅增加的情况下,数据安全性的维护工作固然重要,但数据过多带来的冗余情况也需要得到控制。如果在计算算法上出现偏差,则数据存在缺失或系统损坏的可能性,此时数据信息量直接包含着明确的不确定性,即数据量越少,冗余度越多,在探测过程中也需要对数据进行扫描,但需要考虑到数据之间的耦合性与数据权重问题[6]。

2.6 同步处理

同步处理是关键环节,是保障系统与应用之间的数据交换工作更加稳定的功能要求,尤其是在出现数据变换时,如何保证数据的准确,在云环境中实现同步、高效处理,DEC就可以提供重要的技术支持。

2.7 负载均衡

在大数据的时代下,机器的负载量面临了更高层次的考验,对于复杂数据的处理能力成为了机器的新要求[7]。例如在百度等全球性搜索网站来说,服务器也不会放置于同一区域。北京用户可以通过北京服务器来访问网站,而广州用户也可以通过广州服务器来访问网站,以此类推。因此,这种负载均衡的方式不仅可以提升访问的速度与性能,还能极大地增加用户体验。

3 基于DEC的数据同步设计方案

通过以下几个方面的设计,可以明确同步服务器的模块划分,并掌握不同的模块与子模块所具有的功能,并阐述了数据表与DOA内部数据同步。

3.1 结构设计

结构分为3个部分,即DOA、应用层与数据层。

DEC同步服务器管理DOA内部的数据同步功能,而DOA内部源数据库可以提供目标服务器所需要的数据。数据交换格式基于XML存在,研究工作也将设计数据同步格式,DOA平台会按照这种格式进行数据交换。按照数据流方向可以划分为不同的种类,即源数据主动向目标数据进行数据上传,响应下载;元数据与目标数据同时同步上传,然后服务器同步响应并下载以及服务器同步请求,完成两端同步数据交换3种模式[8]。但无论是哪种模式的同步都需要基于DEC。

3.2 同步模式设计

DEC开发者充分了解DOA平台的内部数据存储结构,因此对于内部数据的处理可以采取基于触发器的数据同步方式,让所有文件操作都能在控制表中完成。但是对于应用层与数据层来说,DEC对于其存储结构不应该进行过分干预,因为数据获取在很大程度上与数据存储的结构有关,需要一个高移植性与低耦合的方案来进行管理,例如数据层和应用层在符合通信数据规范格式的前提下完成数据同步工作。通过是极限DPA内部基于触发器的方案就可以为同步服务器的工作提供技术参考。

3.3 数据方案设计

DEC功能与中间件类似,可以将DEC下的同步服务器看做基础服务器端,而数据层和应用层可以看做客户端。数据流程也可以分为单向与双向。

单项数据中的应用层会接受服务器发出的数据请求,然后收集数据,将差异进行组合后,向对端同步服务器进行响应。应用层的单向数据同步流程可以使用于DOA内部的数据管理,可以保持在同一个端口分别接收应用层与服务器的不同请求[9]。例如图2所示。

双向数据有所差异,应用层与数据层会先将本地的差异数据进行组合,然后收集两端数据进行差异处理,分别返回给源数据与目标数据,保持一个端口分别用于应用层与数据层的不同请求。

图2 数据流程示意图

3.4 业务功能

业务功能可以分为单项业务流程与双向业务流程,但需要考虑到数据冲突与数据传输中断问题[10]。

单项业务流程中,应用层会先对服务器进行更新要求提交,然后请求同步后,服务器端会接受来自应用层的消息。在验证完毕后,服务器也会向数据层获取更新,服务器此时对数据冲突与数据差异情况进行数据收集,如果出现合并失败,那么服务器会将错误的状态码返回。反之,如果数据成功地合并,那么服务器也会将处理结果返回至应用层与数据层,然后分别更新数据,同步服务器端和数据库中表示时间戳的字段[11]。

双向业务流程则是由配置文件设定的实践,并由定时器来触发数据管理的事件。此时同步服务器会检查两端的数据是否存在数据冲突,如果有则进行解决[12]。另外,如果合并失败,数据层与应用层在接收到同步结果后也会更新自身的数据,再根据两端返回的相应消息来更新数据库中表示时间戳的字段。

3.5 模块管理

模块管理涉及到业务层、数据层与通信层的相关内容。

3.5.1 业务层

业务层的功能包括数据转换、同步处理与程序的调试和跟踪,本质上也是同步模块的公共基础模块,可以在协商过程中解决数据冲突。另外,作为同步过程中的基础模块,数据以Web Service的XML数据流方式进行传输,然后可以转换并转发给同步处理模块[13]。业务层模块还包括非结构化数据转换模块,非结构化的数据通过编码、解码的过程才能够进行转发,然后组装到消息文档之中,用于控制数据变化与记录数据变化。

3.5.2 数据层

数据层的功能是为数据库提供了数据结构,可以提供本地数据库访问时的服务。由于数据库本身带有驱动程序,模块只需要对驱动程序的结构进行封装,就能正常地访问数据库。但出于系统调用时的细节问题,软件开发过程中可能需要自定义封装不同的数据库接口模块[14]。此外,文件系统模块也能提供操作系统级别的文件房问题模式,而控制表模块还能够记录系统的操作,不仅可以为应用层和数据层提供同步使用的数据,还能有效作用于DOA内部的数据交换过程。

3.5.3 通信层

通信层的功能在于网络数据的接收与发送,除了通信接口之外还包括Web Service框架。服务器在数据同步的工作中,业务模块生成的数据可以通过通信接口进行转发,然后将数据序列化之后再转发至操作系统,并最终将字节化的数据发送给网络端[15]。

3.6 数据库设计方案

数据库设计方案可以根据结构化数据信息表与非结构化数据信息表的结构来确定,字段名与结构化数据之间有着密切的联系。在dbinfo表的设计过程中,源数据在与目标数据通信时只有通过DEC才能实现同步,显著提升了系统的安全性与稳定性[16]。但对于非结构化的文件数据来说,存储结构化数据的设备如果是FTP服务器,那么port字段不应该设置为空。

4 总结

DEC作为面向数据体系结构DOA的核心组件,对于数据的定义和管理都具有显著的作用,解决数据同步中可能出现的问题,提供理论支持与技术保障。本研究围绕大数据环境下的数据特点,以DEC理论为研究切入点,探讨了应用层与数据层数据同步问题的相关内容,对已有的数据同步方案与差异变化进行了分析和讨论,探究它们不同的优势与应用场合,在未来更好地解决数据冲突、数据中断恢复等相关工作。但需要注意的是,针对一些不符合规范的数据,服务器在数据不出现错误的前提下也会将其同步至数据库当中,因此在未来的校验工作还需要进一步深入。

猜你喜欢
应用层结构化服务器
改进的非结构化对等网络动态搜索算法
深度学习的单元结构化教学实践与思考
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
PowerTCP Server Tool
BlackJumboDog
2018年全球服务器市场将保持温和增长
传输层和应用层的隧道技术
基于分级保护的OA系统应用层访问控制研究
物联网技术在信息机房制冷系统中的应用