CN101425078A - 一种软件源代码的更新方法及装置 - Google Patents

一种软件源代码的更新方法及装置 Download PDF

Info

Publication number
CN101425078A
CN101425078A CNA2008101765448A CN200810176544A CN101425078A CN 101425078 A CN101425078 A CN 101425078A CN A2008101765448 A CNA2008101765448 A CN A2008101765448A CN 200810176544 A CN200810176544 A CN 200810176544A CN 101425078 A CN101425078 A CN 101425078A
Authority
CN
China
Prior art keywords
source code
data content
compared
data
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008101765448A
Other languages
English (en)
Inventor
林正华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CNA2008101765448A priority Critical patent/CN101425078A/zh
Publication of CN101425078A publication Critical patent/CN101425078A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件源代码的更新方法,该方法为:获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;对所述第一源代码与第二源代码进行比较,并获得比较结果;根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源源代码的数据内容进行更新。这样,便避免了对源代码进行手动备份的繁琐,同时也保证了的备份的源代码的准确性,使ETL模块在运行出错时,可以及时根据备份的源代码恢复运行,从而减少了软件运行过程中的错误率,也在一定程度上提升了工作效率。本发明同时公开了一种通信装置。

Description

一种软件源代码的更新方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种软件源代码的更新方法及装置。
背景技术
系统中运行的软件需要定期进行更新升级,以适合日益丰富的客户需求,目前,针对数据库中的数据抽取、转换、装载(Extract Transform Load,ETL)流程,每当执行这一流程的ETL模块的源代码更新完毕后,需要管理人员手动将更新后的源代码在服务器上进行备份。
手动上传更新后的源代码会浪费大量的工作时间,同时,也存在着一定的错误率,例如,管理人员忘记对更新后的源代码进行备份,而ETL服务器由于误操作而删除了正在执行的源代码,那么,在没有备份源代码的情况下,整个ETL模块的源代码就需要重新编写,这在很大程度上降低了工作效率。
发明内容
本发明实施例提供一种软件源代码的更新方法及装置,用以提高软件更新的效率,减少错误率。
本发明实施例提供的具体技术方案如下:
一种软件源代码的更新方法,包括:
获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;
对所述第一源代码与第二源代码进行比较,并获得比较结果;
根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源源代码的数据内容进行更新。
一种软件代码的更新装置,包括:
存储单元,用于保存源代码;
获取单元,获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;
比较单元,用于对所述第一源代码和第二源代码进行比较,并获得比较结果;
更新单元,用于根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源源代码的数据内容进行更新。
本发明实施例中,获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码,并对所述第一源代码与第二源代码进行比较以获得比较结果,以及根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源源代码的数据内容进行更新。这样,便避免了对源代码进行手动备份的繁琐,同时也保证了的备份的源代码的准确性,使ETL模块在运行出错时,可以及时根据备份的源代码恢复运行,从而减少了软件运行过程中的错误率,也在一定程度上提升了工作效率。
附图说明
图1为本发明实施例中处理装置功能结构示意图;
图2为本发明实施例中处理装置根据ETL模块的源代码更新情况对相应的源代码备份进行更新的第一种方法流程图;
图3为本发明实施例中处理装置根据ETL模块的源代码更新情况对相应的源代码备份进行更新的第二种方法流程图。
具体实施方式
为了提高数据抽取、转换、装载(Extract Transform Load,ETL)模块源代码的更新效率,减少错误率。本发明实施例中,获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;对所述第一源代码与第二源代码进行比较,并获得比较结果;根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源源代码的数据内容进行更新。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,本发明实施例中,用于监测ETL模块源代码的版本,并对其进行更新的处理装置包括存储单元10、获取单元11、比较单元12和更新单元13,其中,
存储单元10,用于保存源代码;
获取单元11,获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;
比较单元12,用于对所述第一源代码与第二源代码进行比较,并获得比较结果;
更新单元13,用于在根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源代码的数据内容进行更新。
表1
Figure A200810176544D00061
表2
Figure A200810176544D00071
在上述处理装置中,存储单元10将源代码保存在预设的两张维表内,以下分别称为A表和B表,其中,
A表,用于记录每一个ETL模块的最新版本的源代码,例如,某个ETL模块的源代码内容如表1所示。
B表,用于对各ETL模块的源代码进行备份,即处理装置在每次对A表进行更新时,需要把最新版本的源代码在B表中进行相应备份,如表2所示,B表中的表项包括:每个ETL模块的用户名(SCHEMA),模块类型(OBJECT_TYPE),模块名称(OBJECT_NAME),模块源代码初始添加到本维表中的时间(CREATE_TIME),模块源代码(OBJECT_TEXT)和模块源代码最新被修改的时间(DDL_TIME)。
基于上述系统架构,本实施例中,以模块1为例进行介绍,假设将模块1当前保存在A表中的最新版本的源代码称为源代码I,而将模块1在B表中最近一次备份的源代码称为源代码II,那么参阅图2所示,本实施例中,处理装置定期对A表和B表中针对模块1的相关内容进行比较,并根据比较结果确定是否对B表进行更新的第一种方法的详细流程如下:
步骤200:在A表中获取模块1当前执行的源代码(以下称为源代码I)。
步骤210:在B表中获取最近一次备份的模块1的源代码(以下称为源代码II)。
步骤220:判断源代码I和源代码II包含的数据内容是否一致?若是,则进行步骤240;否则,进行步骤230。
在实际应用中,判断源代码I和源代码II包含的数据内容是否一致有很多种方法,包含但不限于以下举例:
1、在源代码I和源代码II中的相同位置,在第一源代码和第二源代码中的相同位置,分别获取相同长度的数据(例如,2000字节),并对其包含的字节逐个进行比较,如,源代码I中从第一个字节开始,前2000个字节为“0010101100......”,而源代码II中从第一个字节开始,前2000个字节为“0010101100......”,则对上述字节进行比较后,若源代码I和源代码II各自的前2000个字节内每一个对应位置的字节均相同,则说明源代码I和源代码II中这一部分的数据内容相同,那么,应继续读取后续位置的字节并使用相同方法进行比较,直到将源代码I和源代码II包含的字节全部比较完毕。在这个过程中,若确定存在至少一个对应位置的字节不同,则说明源代码I和源代码II的数据内容不同,那么,无需再读取后续位置的字节,而应直接根据源代码I对源代码II进行更新。
2、根据预设的哈希函数分别对源代码I和源代码II进行哈希变换,并判断得到的哈希变换结果是否相同,若是,则说明源代码I和源代码II包含的数据内容相同;否则,说明源代码I和源代码II包含的数据内容不同。
步骤230:根据A表中的源代码I的数据内容对B表中源代码II的数据内容进行更新,接着,进行步骤240。
步骤240:等待设定时长后,返回步骤200。
本实施例中,设置的最优等待时长为1小时。
基于上述实施,在另一种情况下,处理装置也可以先对源代码I和源代码II的数据长度进行比较,并在确定两者长度不一致时,直接根据源代码I对源代码II的数据内容进行更新,这样,便可以在一定程度上节省更新操作所占用的时间,参阅图3所示,本实施例中,处理装置定期对A表和B表中针对模块1的相关内容进行比较,并根据比较结果确定是否对B表进行更新的第二种方法的详细流程如下:
步骤300:在A表中获取模块1当前执行的源代码I。
步骤310:在B表中获取最近一次备份的模块1的源代码II。
步骤320:将源代码I的数码长度与源代码II的数据长度进行比较,判断其数据长度是否一致?若是,则进行步骤330;否则,进行步骤340。
步骤330:判断源代码I和源代码II包含的数据内容是否一致?若是,则进行步骤350;否则,进行步骤340。
步骤340:根据A表中的源代码I的数据内容对B表中源代码II的数据内容进行更新,接着,进行步骤350。
步骤350:等待设定时长后,返回步骤200。
综上所述,本发明实施例中,处理装置获取ETL模块当前执行的源代码I,以及针对该ETL模块最近一次进行备份的源代码II,并对源代码I与源代码II进行比较以获得比较结果,以及根据所述比较结果确定源代码I和源代码II不一致时,根据源代码I的数据内容对源代码II的数据内容进行更新,这样,便避免了对源代码II进行手动备份的繁琐,同时也保证了备份的源代码II的准确性,使ETL模块在运行出错时,可以及时根据备份的源代码II恢复运行,从而减少了软件运行过程中的错误率,也在一定程度上提升了工作效率。
显然,本领域的技术人员可以对本发明中的实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例中的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明中的实施例也意图包含这些改动和变型在内。

Claims (14)

1、一种软件源代码的更新方法,其特征在于,包括:
获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;
对所述第一源代码与第二源代码的进行比较,并获得比较结果;
根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源代码的数据内容进行更新。
2、如权利要求1所述的方法,其特征在于,对第一源代码与第二源代码进行比较包括:对两者包含的数据内容进行比较。
3、如权利要求2所述的方法,其特征在于,在比较所述第一源代码与第二源代码之前,先对所述第一源代码与第二源代码的数据长度进行比较,并在确定两者的数据长度一致时,对两者的数据内容进行比较。
4、如权利要求3所述的方法,其特征在于,确定所述第一源代码与第二源代码的数据长度不一致时,直接根据所述第一源代码的数据内容对所述第二源代码的数据内容进行更新。
5、如权利要求1-4任一项所述的方法,其特征在于,对所述第一源代码和第二源代码的数据内容进行比较时,在第一源代码和第二源代码中的相同位置,分别获取相同长度的数据,并对其包含的字节逐个进行比较。
6、如权利要求1-4任一项所述的方法,其特征在于,对所述第一源代码和第二源代码的数据内容进行比较时,根据预设的哈希函数分别对所述第一源代码和第二源代码进行哈希变换,并将得到的哈希变换结果进行比较。
7、如权利要求1-4任一项所述的方法,其特征在于,按照设定周期对所述第一源代码和第二源代码进行比较。
8、一种软件源代码的更新装置,包括:
存储单元,用于保存源代码;
获取单元,获取ETL模块当前执行的第一源代码,以及针对该ETL模块最近一次进行备份的第二源代码;
比较单元,用于对所述第一源代码和第二源代码进行比较,并获得比较结果;
更新单元,用于根据所述比较结果确定所述第一源代码和第二源代码不一致时,根据所述第一源代码的数据内容对所述第二源源代码的数据内容进行更新。
9、如权利要求8所述的装置,其特征在于,所述比较单元对第一源代码与第二源代码进行比较时,将两者包含的数据内容进行比较。
10、如权利要求9所述的装置,其特征在于,所述比较单元在比较所述第一源代码与第二源代码的数据内容之前,先对所述第一源代码与第二源代码的数据长度进行比较,并在确定两者的数据长度一致时,对两者的数据内容进行比较。
11、如权利要求10所述的装置,其特征在于,所述比较单元确定所述第一源代码与第二源代码的数据长度不一致时,通知所述更新单元直接根据所述第一源代码的数据内容对所述第二源代码的数据内容进行更新。
12、如权利要求8-11任一项所述的装置,其特征在于,所述比较单元对所述第一源代码和第二源代码的数据内容进行比较时,在第一源代码和第二源代码中的相同位置,分别获取相同长度的数据,并对其包含的字节逐个进行比较。
13、如权利要求8-11任一项所述的装置,其特征在于,所述比较单元对所述第一源代码和第二源代码的数据内容进行比较时,根据预设的哈希函数分别对所述第一源代码和第二源代码进行哈希变换,并将得到的哈希变换结果进行比较。
14、如权利要求8-11任一项所述的装置,其特征在于,所述第一比较单元按照设定周期对所述第一源代码和第二源代码的数据内容进行比较。
CNA2008101765448A 2008-11-17 2008-11-17 一种软件源代码的更新方法及装置 Pending CN101425078A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101765448A CN101425078A (zh) 2008-11-17 2008-11-17 一种软件源代码的更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101765448A CN101425078A (zh) 2008-11-17 2008-11-17 一种软件源代码的更新方法及装置

Publications (1)

Publication Number Publication Date
CN101425078A true CN101425078A (zh) 2009-05-06

Family

ID=40615692

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101765448A Pending CN101425078A (zh) 2008-11-17 2008-11-17 一种软件源代码的更新方法及装置

Country Status (1)

Country Link
CN (1) CN101425078A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617122A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种源代码的比对方法
TWI484413B (zh) * 2012-04-03 2015-05-11 Mstar Semiconductor Inc 基於功能性的程式比較方法
CN105389262A (zh) * 2015-12-23 2016-03-09 北京奇虎科技有限公司 一种针对界面测试生成测试建议的方法和装置
CN105893860A (zh) * 2016-05-05 2016-08-24 百度在线网络技术(北京)有限公司 关键代码保护方法以及代码生成装置和代码运行装置
WO2016151425A1 (en) * 2015-03-20 2016-09-29 International Business Machines Corporation Automated identification of complex transformations and generation of subscriptions for data replication
CN108701067A (zh) * 2016-03-01 2018-10-23 洋马株式会社 终端装置以及软件改写程序

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI484413B (zh) * 2012-04-03 2015-05-11 Mstar Semiconductor Inc 基於功能性的程式比較方法
CN103617122A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种源代码的比对方法
CN103617122B (zh) * 2013-12-12 2016-03-30 用友网络科技股份有限公司 一种源代码的比对方法
WO2016151425A1 (en) * 2015-03-20 2016-09-29 International Business Machines Corporation Automated identification of complex transformations and generation of subscriptions for data replication
US10210233B2 (en) 2015-03-20 2019-02-19 International Business Machines Corporation Automated identification of complex transformations and generation of subscriptions for data replication
US10216819B2 (en) 2015-03-20 2019-02-26 International Business Machines Corporation Automated identification of complex transformations and generation of subscriptions for data replication
CN105389262A (zh) * 2015-12-23 2016-03-09 北京奇虎科技有限公司 一种针对界面测试生成测试建议的方法和装置
CN105389262B (zh) * 2015-12-23 2019-02-15 北京奇虎科技有限公司 一种针对界面测试生成测试建议的方法和装置
CN108701067A (zh) * 2016-03-01 2018-10-23 洋马株式会社 终端装置以及软件改写程序
CN105893860A (zh) * 2016-05-05 2016-08-24 百度在线网络技术(北京)有限公司 关键代码保护方法以及代码生成装置和代码运行装置

Similar Documents

Publication Publication Date Title
EP3428811B1 (en) Database interface agent for a tenant-based upgrade system
CN106649771B (zh) 数据库的数据模型更新方法和系统
KR101556435B1 (ko) 데이터베이스 백업본 복구 방법 및 그 장치
CN101425078A (zh) 一种软件源代码的更新方法及装置
CN108279922A (zh) 差分文件生成方法、基于该差分文件的升级方法及系统
CN103176824A (zh) 一种系统升级的方法及装置
CN104298760A (zh) 一种应用于数据仓库的数据处理方法和数据处理装置
CN100501744C (zh) 一种文档同步方法及系统
CN111857777B (zh) 基于双芯智能电表的系统更新方法、装置和计算机设备
CN107704550B (zh) 文件迁移方法、装置以及计算机可读存储介质
CN103136030A (zh) 虚拟机管理系统及方法
CN103024782A (zh) 一种基站软件版本管理的方法和系统
CN115712623B (zh) 一种基于捕获元数据变更的批量数据容错采集方法
CN104486393A (zh) 资源配置与回收方法和资源配置与回收系统
CN115292307A (zh) 数据同步系统、方法及相应计算机设备和存储介质
CN106603289B (zh) 一种lmt配置文件平滑升级方法
CN113535262B (zh) 一种代理节点的启动控制方法、装置、设备及存储介质
CN100373861C (zh) 通信网管系统中的软件升级装置及其方法
CN114416868A (zh) 一种数据同步方法、装置、设备及存储介质
CN113468143A (zh) 数据迁移方法、系统、计算设备及存储介质
CN105550342A (zh) 一种全透明的分布式数据库的数据处理方法
CN112162992A (zh) 一种高效的数据库更新系统及方法
CN111309740A (zh) 一种数据处理的方法、装置、设备及存储介质
CN104462106A (zh) 数据更新方法及系统
CN111444281B (zh) 一种数据库参数同步的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1129935

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090506

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1129935

Country of ref document: HK