一種軟件版本的控制方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種軟件版本的控制方法和系統(tǒng),代碼服務(wù)器接收到任務(wù)調(diào)度服務(wù)器發(fā)送的新運營代碼或者開發(fā)機發(fā)送的新開發(fā)代碼;代碼服務(wù)器將新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理;當(dāng)代碼服務(wù)器接收到從任務(wù)調(diào)度服務(wù)器或開發(fā)機發(fā)送的新版本發(fā)布請求時,從代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回給任務(wù)調(diào)度服務(wù)器或開發(fā)機。本發(fā)明的方法及系統(tǒng),使得運營代碼和開發(fā)代碼在統(tǒng)一的代碼版本庫中進(jìn)行配置管,解決了開發(fā)人員和運營人員共同維護(hù)一個完整的項目代碼的問題,通過同樣的代碼管理方式進(jìn)行統(tǒng)一維護(hù),可以使項目代碼完整且版本正確,并使開發(fā)人員能用最熟悉的環(huán)境,提高開發(fā)效率。
【專利說明】一種軟件版本的控制方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件版本管理【技術(shù)領(lǐng)域】,尤其涉及一種軟件版本的控制方法及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]目前,隨著互聯(lián)網(wǎng)的快速發(fā)展,出現(xiàn)了很多具有大量用戶的網(wǎng)絡(luò)應(yīng)用,這些網(wǎng)絡(luò)應(yīng)用為用戶提供大量的信息,因此需要大量人員來維護(hù)網(wǎng)站的運營。目前可以將網(wǎng)站的工作人員分為兩種類型的人員,第一種類型的人員為Web開發(fā)工程師,開發(fā)工程師負(fù)責(zé)網(wǎng)站程序部分的開發(fā),主要包括后端Php工程師及前端jS、CSS開發(fā)工程師。另一類人員是網(wǎng)站運營人員:他們利用網(wǎng)站開發(fā)工程師所提供的網(wǎng)站程序來維護(hù)Web頁面鏈接、數(shù)據(jù),通過運營方式使得Web頁面內(nèi)容不斷更新。
[0003]利用這種方式,現(xiàn)在的網(wǎng)站大多數(shù)都實現(xiàn)了開發(fā)和運營的分離。然而網(wǎng)站運營人員在維護(hù)的時候,可能Web開發(fā)工程師也修改代碼,Web開發(fā)工程師進(jìn)行開發(fā)和運營人員修改代碼之間是獨立進(jìn)行的,并且各自維護(hù)代碼,工程代碼分離,需要運營維護(hù)的數(shù)據(jù)代碼。從現(xiàn)有工程中分離出去,這樣不利于項目的統(tǒng)一管理、維護(hù),無法提供工程師一個有效率的開發(fā)環(huán)境。代碼的上線無法和項目上線方式保持一致,這會給項目的維護(hù)工作帶來很多問題。例如,網(wǎng)絡(luò)運營人員通過cms系統(tǒng)更新內(nèi)容時,往往一次只能提交一個或者少數(shù)幾個內(nèi)容,并且在數(shù)次操作中完成整個內(nèi)容的更新,當(dāng)網(wǎng)站為具有大量用戶的網(wǎng)站時,用戶甚至?xí)诟缕陂g訪問網(wǎng)站,從而會看見更新不完整的內(nèi)容,降低對網(wǎng)站的滿意度。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明要解決的一個技術(shù)問題是提供一種軟件版本的控制方法,運營代碼和開發(fā)代碼在統(tǒng)一的代碼版本庫中進(jìn)行配置管理。
[0005]一種軟件版本的控制方法,包括:所述代碼服務(wù)器接收到任務(wù)調(diào)度服務(wù)器發(fā)送的新運營代碼或者開發(fā)機發(fā)送的新開發(fā)代碼;所述代碼服務(wù)器將所述新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理;當(dāng)所述代碼服務(wù)器接收到從所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機發(fā)送的新版本發(fā)布請求時,從所述代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回給所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機。
[0006]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,后臺Web服務(wù)器提供修改運營代碼的界面,并將新運營代碼轉(zhuǎn)發(fā)給所述任務(wù)調(diào)度服務(wù)器;所述后臺Web服務(wù)器提供發(fā)布新版本的界面,用于向所述任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求;所述任務(wù)調(diào)度服務(wù)器向所述代碼服務(wù)器發(fā)送新版本發(fā)布請求,并將所述代碼服務(wù)器返回的所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
[0007]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述任務(wù)調(diào)度服務(wù)器接收從后臺Web服務(wù)器發(fā)送的請求,并將所述請求對應(yīng)的任務(wù)發(fā)送給工作進(jìn)程,所述請求包括:更新運營代碼請求和軟件發(fā)布請求;運行在所述任務(wù)調(diào)度服務(wù)器中的所述工作進(jìn)程執(zhí)行所述任務(wù),所述任務(wù)包括:將新運營代碼轉(zhuǎn)發(fā)到所述代碼服務(wù)器、接收所述代碼服務(wù)器返回的所述最新版本的軟件、將所述最新版本的軟件發(fā)布到前端Web服務(wù)器。
[0008]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述開發(fā)機中運行版本控制工具維護(hù)所述代碼版本庫中的開發(fā)代碼;當(dāng)檢測到所述代碼版本庫中有修改時,所述開發(fā)機將與所述修改相對應(yīng)的新開發(fā)代碼發(fā)送到所述代碼服務(wù)器;所述開發(fā)機向所述代碼服務(wù)器發(fā)送新版本發(fā)布請求,并通過命令行腳本工具將所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
[0009]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述代碼服務(wù)器中的代碼版本庫為SVN代碼庫;通過所述工作機中運行的SVN客戶端維護(hù)所述SVN代碼庫中的開發(fā)代碼,所述工作機中的操作系統(tǒng)為Iinux并提供代碼編輯器;所述任務(wù)調(diào)度服務(wù)器為Gearman服務(wù)器。
[0010]本發(fā)明要解決的一個技術(shù)問題是提供一種軟件版本的控制系統(tǒng),運營代碼和開發(fā)代碼在統(tǒng)一的代碼版本庫中進(jìn)行配置管理。
[0011]一種軟件版本的控制系統(tǒng),包括:任務(wù)調(diào)度服務(wù)器,用于向代碼服務(wù)器發(fā)送新運營代碼;開發(fā)機,用于向代碼服務(wù)器發(fā)送新開發(fā)代碼;代碼服務(wù)器,將接收到的所述新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理;當(dāng)接收到從所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機發(fā)送的新版本發(fā)布請求時,從所述代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機。
[0012]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,還包括:后臺Web服務(wù)器,用于提供修改運營代碼的界面,并將新運營代碼轉(zhuǎn)發(fā)給任務(wù)調(diào)度服務(wù)器;提供發(fā)布新版本的界面,所述界面用于向所述任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求;其中,所述任務(wù)調(diào)度服務(wù)器,還用于向所述代碼服務(wù)器發(fā)送新版本發(fā)布請求,并將所述代碼服務(wù)器返回的所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
[0013]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述任務(wù)調(diào)度服務(wù)器,具體用于接收從后臺Web服務(wù)器發(fā)送的請求,并將所述請求對應(yīng)的任務(wù)發(fā)送到工作進(jìn)程,所述消息包括:更新運營代碼請求和軟件發(fā)布請求;運行在所述任務(wù)調(diào)度服務(wù)器中的工作進(jìn)程執(zhí)行所述任務(wù),所述任務(wù)包括:將新運營代碼轉(zhuǎn)發(fā)到所述代碼服務(wù)器、接收所述代碼服務(wù)器返回的所述最新版本的軟件、將所述最新版本的軟件發(fā)布到前端Web服務(wù)器。
[0014]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述開發(fā)機,,具體用于通過運行版本控制工具維護(hù)所述代碼版本庫中的開發(fā)代碼;當(dāng)檢測到版本庫中有修改時,將與所述修改相對應(yīng)的新開發(fā)代碼發(fā)送到所述代碼服務(wù)器;向所述代碼服務(wù)器發(fā)布請求新版本發(fā)布請求,并通過命令行腳本工具將所述代碼服務(wù)器返回的所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
[0015]根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述代碼服務(wù)器中的代碼版本庫為SVN代碼庫;所述工作機,具體用于通過SVN客戶端維護(hù)所述SVN代碼中的開發(fā)代碼;所述工作機中的操作系統(tǒng)為Iinux并提供代碼編輯器;所述任務(wù)調(diào)度服務(wù)器為Gearman服務(wù)器。
[0016]本發(fā)明的軟件版本的控制方法及系統(tǒng),運營代碼和開發(fā)代碼在統(tǒng)一的代碼版本庫中進(jìn)行配置管理解決了開發(fā)人員和運營人員共同維護(hù)一個完整的項目代碼的問題,可以使項目代碼完整且版本正確。
【專利附圖】
【附圖說明】[0017]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為根據(jù)本發(fā)明的軟件版本的控制方法的一個實施例的流程圖;
[0019]圖2為根據(jù)本發(fā)明的軟件版本的控制方法的一個實施例中運營人員維護(hù)、發(fā)布軟件的流程圖;
[0020]圖3為根據(jù)本發(fā)明的軟件版本的控制方法的一個實施例中開發(fā)人員維護(hù)、發(fā)布軟件的流程圖;
[0021]圖4為根據(jù)本發(fā)明的軟件版本的控制系統(tǒng)的一個實施例的示意圖。
【具體實施方式】
[0022]下面參照附圖對本發(fā)明進(jìn)行更全面的描述,其中說明本發(fā)明的示例性實施例。下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]本發(fā)明中的運營代碼是指由運營人員進(jìn)行修改、維護(hù)的代碼或文件,包括:HTML文件、照片、圖片、視頻等等。例如,運營人員修改網(wǎng)頁HTML文件中的圖片、標(biāo)題、鏈接等等,可以通過工具來完成。
[0024]本發(fā)明中的開發(fā)代碼是指由開發(fā)人員開發(fā)的代碼或文件,例如有css,java文件、php頁面等等。
[0025]圖1為根據(jù)本發(fā)明的軟件版本的控制方法的一個實施例的流程圖,如圖1所示:
[0026]步驟101,代碼服務(wù)器接收到任務(wù)調(diào)度服務(wù)器發(fā)送的新運營代碼或者開發(fā)機發(fā)送的新開發(fā)代碼。
[0027]新運營代碼是指由運營人員修改、新建的代碼或文件,包括:HTML文件、照片、圖片、視頻等等。例如,運營人員修改了網(wǎng)頁HTML文件中的圖片、標(biāo)題、鏈接等等。新開發(fā)代碼是指由開發(fā)人員開發(fā)的新代碼或文件以及修改的代碼或文件,包括:css,java文件、php頁面等等。
[0028]步驟102,代碼服務(wù)器將新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理。
[0029]步驟103,當(dāng)代碼服務(wù)器接收到從任務(wù)調(diào)度服務(wù)器或開發(fā)機發(fā)送的新版本發(fā)布請求時,從代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回給任務(wù)調(diào)度服務(wù)器或開發(fā)機。
[0030]代碼版本控制是現(xiàn)代軟件開發(fā)中必不可少的管理機制之一,通常借助版本配置管理軟件來實現(xiàn)。版本配置管理軟件在軟件開發(fā)中的重要作用如下:作為代碼倉庫有效的管理軟件開發(fā)中各個不同版本的源代碼和文檔,占用空間小并且方便各個版本代碼和文檔的獲取。對開發(fā)小組中對源代碼的訪問進(jìn)行有效的協(xié)調(diào)(不同的版本控制軟件采取不同的協(xié)調(diào)策略)。版本配置管理軟件包括:clearcaSe、SVN、git等等。[0031]根據(jù)本發(fā)明的一個實施例,在代碼服務(wù)器中設(shè)置代碼版本庫,即通過版本配置管理軟件建立的代碼倉庫。例如,在代碼服務(wù)器上運行SVN建立代碼倉庫,管理不同版本的源代碼和文檔。當(dāng)要生成最新的軟件版本時,在代碼服務(wù)器上運行的SVN根據(jù)源代碼和文檔的版本信息,從源代碼和文檔的版本分支中獲取最新的源代碼和文檔,進(jìn)行編譯、集成,生成最新版本的軟件,包括:jar包、exe文件等等。
[0032]運營人員將新的HTML文件發(fā)送到任務(wù)調(diào)度服務(wù)器,由任務(wù)調(diào)度服務(wù)器發(fā)送到代碼服務(wù)器。任務(wù)調(diào)度服務(wù)器包括=Gearman服務(wù)器、Kafka服務(wù)器等等。例如,運營人員通過后臺Web服務(wù)器將新修改的HTML文件轉(zhuǎn)發(fā)給任務(wù)調(diào)度服務(wù)器,任務(wù)調(diào)度服務(wù)器將接收到的新修改的HTML文件發(fā)送到代碼服務(wù)器。后臺Web服務(wù)器、任務(wù)調(diào)度服務(wù)器和代碼服務(wù)器之間可以采用ftp等方式傳輸新運營代碼。
[0033]代碼服務(wù)器中運行版本配置管理軟件,版本配置管理軟件對源代碼和文檔進(jìn)行配置、管理。在代碼服務(wù)器中設(shè)置代碼版本庫,即通過版本配置管理軟件建立的代碼倉庫,管理不同版本的源代碼和文檔。代碼服務(wù)器將新運營代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理,例如對文件標(biāo)識版本號等等。開發(fā)機是指開發(fā)人員進(jìn)行軟件開發(fā)的設(shè)備,可以通過telnet登錄使用,或配備外設(shè)鍵盤和顯示器等,由開發(fā)人員直接使用。開發(fā)人員修改了開發(fā)代碼,開發(fā)機將開發(fā)代碼發(fā)送到代碼服務(wù)器上,代碼服務(wù)器將新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理,例如對文件標(biāo)識版本號等等。
[0034]根據(jù)本發(fā)明的一個實施例,Web工程師通過命令行腳本工具完成上線工作。網(wǎng)站運營人員也可以完成上線工作。Web工程師和網(wǎng)站運營人員都能夠獲取同一個代碼版本庫中生成的最新版本軟件進(jìn)行發(fā)布,實現(xiàn)版本的更新一致,改善用戶訪問網(wǎng)站的體驗。
[0035]根據(jù)本發(fā)明的一個實施例,后臺Web服務(wù)器提供修改運營代碼的界面,可以是網(wǎng)頁,并將新運營代碼轉(zhuǎn)發(fā)給任務(wù)調(diào)度服務(wù)器。后臺Web服務(wù)器提供發(fā)布新版本的界面,可以是網(wǎng)頁,用于向任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求。
[0036]圖2為根據(jù)本發(fā)明的軟件版本的控制方法的一個實施例中運營人員維護(hù)、發(fā)布軟件的流程圖,如圖2所不:
[0037]步驟201,運營人員通過后臺Web服務(wù)器提供的修改運營代碼的界面,將新運營代碼轉(zhuǎn)發(fā)給任務(wù)調(diào)度服務(wù)器。
[0038]步驟202,任務(wù)調(diào)度服務(wù)器將新運營代碼發(fā)送給代碼服務(wù)器。代碼服務(wù)器將新運營代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理。
[0039]步驟203,運營人員通過后臺Web服務(wù)器提供的發(fā)布新版本的界面,向任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求。
[0040]步驟204,任務(wù)調(diào)度服務(wù)器向代碼服務(wù)器發(fā)送新版本發(fā)布請求,代碼服務(wù)器從代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回給任務(wù)調(diào)度服務(wù)器。
[0041]步驟205,任務(wù)調(diào)度服務(wù)器將代碼服務(wù)器返回的最新版本的軟件發(fā)布到前端Web服務(wù)器,完成最新版本的軟件的發(fā)布、上線,并給后端Web服務(wù)器發(fā)送完成任務(wù)的結(jié)果。
[0042]根據(jù)本發(fā)明的一個實施例,任務(wù)調(diào)度服務(wù)器也可以是任務(wù)調(diào)度服務(wù)系統(tǒng),任務(wù)調(diào)度服務(wù)器可以是Gearman服務(wù)器、Kafka服務(wù)器等等。例如,Gearman提供通用的應(yīng)用程序框架,主要用來把任務(wù)轉(zhuǎn)發(fā)給到其他機器或進(jìn)程。使用Gearman的程序由3個部分組成:客戶端(client)、執(zhí)行端(worker)和任務(wù)服務(wù)器(job server)。Client的職責(zé)是創(chuàng)建任務(wù)Job并發(fā)送給Job server。Job server會找到適合的Worker并轉(zhuǎn)發(fā)job。Worker執(zhí)行client的請求,然后通過jobserver把處理結(jié)果返給client。
[0043]根據(jù)本發(fā)明的一個實施例,任務(wù)調(diào)度服務(wù)器和后臺Web服務(wù)器之間采用消息機制傳送請求,任務(wù)調(diào)度服務(wù)器接收從后臺Web服務(wù)器發(fā)送的請求,并將請求對應(yīng)的任務(wù)發(fā)送給工作進(jìn)程,請求包括:更新運營代碼請求和軟件發(fā)布請求等。
[0044]運行在任務(wù)調(diào)度服務(wù)器中的工作進(jìn)程執(zhí)行任務(wù),任務(wù)包括:將新運營代碼轉(zhuǎn)發(fā)到代碼服務(wù)器、接收代碼服務(wù)器返回的最新版本的軟件、將最新版本的軟件發(fā)布到前端Web服務(wù)器等。
[0045]圖3為根據(jù)本發(fā)明的軟件版本的控制方法的一個實施例中開發(fā)人員維護(hù)、發(fā)布軟件的流程圖,如圖3所不:
[0046]步驟301,開發(fā)人員通過開發(fā)機將新開發(fā)代碼發(fā)送到代碼服務(wù)器。新開發(fā)代碼可以是根據(jù)項目或進(jìn)度等開發(fā)的新代碼或修改已有的代碼,或者當(dāng)檢測到版本庫中有修改時,開發(fā)人員開發(fā)的與此修改相對應(yīng)的新開發(fā)代碼或修改已有的代碼。
[0047]步驟302,開發(fā)機向代碼服務(wù)器發(fā)送新版本發(fā)布請求,代碼服務(wù)器集成最新版本的軟件包,并將最新版本的軟件包返回開發(fā)機。
[0048]步驟303,開發(fā)人員使用開發(fā)機通過命令行腳本工具將最新版本的軟件發(fā)布到前端Web服務(wù)器,完成最新版本的軟件的發(fā)布、上線。
[0049]根據(jù)本發(fā)明的一個實施例,開發(fā)人員通過版本控制工具維護(hù)代碼版本庫中的開發(fā)代碼。當(dāng)檢測到版本庫中有修改時,開發(fā)機將與修改相對應(yīng)的新開發(fā)代碼發(fā)送到代碼服務(wù)器,并保存在代碼版本庫中。
[0050]在開發(fā)機上安裝版本控制工具的客戶端,例如,SVN客戶端,可以將新代碼加入代碼版本庫中,或者對已有的版本進(jìn)行修改,通過checko ut、checkin等操作更新代碼。工作機中的操作系統(tǒng)為Iinux并提供代碼編輯器。
[0051]開發(fā)機向代碼服務(wù)器發(fā)送新版本發(fā)布請求,代碼服務(wù)器使用build、ant命令等集成最新版本的軟件包。使用開發(fā)機通過命令行腳本工具將最新版本的軟件發(fā)布到前端Web服務(wù)器,完成最新版本的軟件的發(fā)布、上線。例如,Web工程師使用自己熟悉的環(huán)境進(jìn)行開發(fā)(如linux+vim),通過版本控制工具(如svn)維護(hù)代碼,并通過命令行腳本工具完成上線工作。
[0052]根據(jù)本發(fā)明的一個實施例,在前端Web服務(wù)器中部署了一個管理系統(tǒng),此管理系統(tǒng)的源代碼和文檔都存儲在代碼服務(wù)器中。
[0053]在代碼服務(wù)器上運行版本配置管理工具,例如SVN,建立代碼倉庫,即代碼版本庫,將此管理系統(tǒng)的源代碼和文檔都存儲在代碼版本庫中,SVN可以對每個代碼文件和文檔都建立獨立的分支,并對源代碼和文檔的不同版本進(jìn)行管理。
[0054]運營人員對管理系統(tǒng)進(jìn)行修改,例如,修改了 一個網(wǎng)頁文件a 1.htm中的鏈接,并更換了一個新增的圖片image, jpg。運營人員通過后臺Web服務(wù)器提供的修改運營代碼的界面,將新修改的al.htm和新增的image, jpg發(fā)送給任務(wù)調(diào)度服務(wù)器,并標(biāo)識al.htm為修改狀態(tài)以及image, jpg為新增狀態(tài)。
[0055]任務(wù)調(diào)度服務(wù)器中運行的工作進(jìn)行接收新修改的al.htm和新增的image, jpg,并轉(zhuǎn)發(fā)給代碼服務(wù)器,標(biāo)識al.htm為修改狀態(tài)、image, jpg為新增狀態(tài)。[0056]代碼服務(wù)器上運行的一個工作進(jìn)程接收新修改的al.htm和新增的image, jpg,并調(diào)用SVN為代碼版本庫中原有的al.htm建立新的版本分支,并將此新版本的文件設(shè)置為運營人員新修改的al.htm,并標(biāo)注新的版本號,調(diào)用SVN為image, jpg在代碼版本庫中建立新分支及版本號,并存儲image, jpg。
[0057]開發(fā)人員對代碼進(jìn)行修改,例如,新增了一個java文件d2.java,開發(fā)人員通過SVN客戶端檢測到代碼版本庫中有新修改的al.htm和新增的image, jpg,針對代碼版本庫中的修改,開發(fā)人員修改了代碼版本庫中原有的CSS文件cl.css.,
[0058]開發(fā)機通過SVN客戶端將d2.java和cl.css發(fā)送給代碼服務(wù)器,并標(biāo)識cl.css為修改狀態(tài)和d2.java為新增狀態(tài)。代碼服務(wù)器接收新修改的cl.css和新增的d2.java,調(diào)用SVN為代碼版本庫中原有的Cl.css建立新的版本分支,將此新版本的文件設(shè)置為開發(fā)人員新修改的cl.css,并標(biāo)識新的版本號,調(diào)用SVN為d2.java在代碼版本庫中建立新分支及版本號,并存儲d2.java。
[0059]當(dāng)運營人員通過后臺Web服務(wù)器提供的發(fā)布新版本的界面向任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求,任務(wù)調(diào)度服務(wù)器向代碼服務(wù)器發(fā)送新版本發(fā)布請求,或者,開發(fā)人員通過開發(fā)機向代碼服務(wù)器發(fā)送新版本發(fā)布請求時,代碼服務(wù)器上的工作進(jìn)程調(diào)用SVN、或者SVN根據(jù)接收的SVN客戶端發(fā)送的指令生成軟件版本。
[0060]代碼服務(wù)器上運行的SVN根據(jù)代碼版本庫中各個源代碼和文檔分支的版本號信息,獲取代碼版本庫中各個源代碼文件和文檔帶有最新版本號的文件,并進(jìn)行編譯、打包等操作生成新的軟件包,軟件包中包含新修改的al.htm、cl.CSS和新增的image.jpg、d2.java。
[0061]代碼服務(wù)器將軟件包返回給任務(wù)調(diào)度服務(wù)器,任務(wù)調(diào)度服務(wù)器將代碼服務(wù)器返回的軟件包發(fā)布到前端Web服務(wù)器,或者代碼服務(wù)器將軟件包返回開發(fā)機,開發(fā)機通過命令行腳本工具將軟件包發(fā)布到前端Web服務(wù)器,完成最新版本的軟件的發(fā)布、上線。運營人員和開發(fā)人員都能獲取同一個代碼版本庫中生成的最新版本軟件包并進(jìn)行發(fā)布,實現(xiàn)了軟件版本的更新一致。
[0062]本發(fā)明的軟件版本的控制方法,可以使項目代碼完整,能通過同樣的代碼管理方式進(jìn)行統(tǒng)一維護(hù),使得開發(fā)人員能用最熟悉的環(huán)境,提高開發(fā)效率,提供運營人員交互、友好的界面,例如Web界面,能和開發(fā)人員協(xié)同工作,共同維護(hù)項目代碼。
[0063]圖4為根據(jù)本發(fā)明的軟件版本的控制系統(tǒng)的一個實施例的示意圖,如圖4所示,軟件版本的控制系統(tǒng)包括:任務(wù)調(diào)度服務(wù)器42、開發(fā)機43和代碼服務(wù)器41。
[0064]任務(wù)調(diào)度服務(wù)器42向代碼服務(wù)器41發(fā)送新運營代碼。開發(fā)機43向代碼服務(wù)器發(fā)送新開發(fā)代碼。
[0065]代碼服務(wù)器41將接收到的新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理,例如,更改或添加版本號等等。
[0066]當(dāng)接收到從任務(wù)調(diào)度服務(wù)器42或開發(fā)機43發(fā)送的新版本發(fā)布請求時,代碼服務(wù)器41從代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回任務(wù)調(diào)度服務(wù)器42或開發(fā)機43。
[0067]根據(jù)本發(fā)明的一個實施例,在代碼服務(wù)器上運行的版本配置管理軟件建立代碼倉庫,管理各個不同版本的源代碼和文檔。例如SVN,當(dāng)生成軟件版本時,在代碼服務(wù)器上運行的SVN根據(jù)源代碼和文檔的版本信息,從源代碼和文檔的版本分支中獲取最新的源代碼和文檔,進(jìn)行編譯、集成,生成最新版本的軟件,包括:jar包、exe文件等等。
[0068]根據(jù)本發(fā)明的一個實施例,運營人員使用筆記本電腦46、47訪問后臺Web服務(wù)器44,后臺Web服務(wù)器44對運營人員提供修改運營代碼的Web界面,并將新運營代碼轉(zhuǎn)發(fā)給任務(wù)調(diào)度服務(wù)器42。
[0069]后臺Web服務(wù)器44也可以向運營人員提供發(fā)布新版本的Web界面,通過Web界面向任務(wù)調(diào)度服務(wù)器42發(fā)送軟件發(fā)布請求。
[0070]任務(wù)調(diào)度服務(wù)器42向代碼服務(wù)器41發(fā)送新版本發(fā)布請求,并將代碼服務(wù)器41返回的最新版本的軟件發(fā)布到前端Web服務(wù)器48,完成最新版本的軟件的發(fā)布、上線,并向后臺Web服務(wù)器44返回執(zhí)行的結(jié)果。
[0071]根據(jù)本發(fā)明的一個實施例,任務(wù)調(diào)度服務(wù)器42接收從后臺Web服務(wù)器44發(fā)送的請求,并將請求對應(yīng)的任務(wù)發(fā)送到工作進(jìn)程,請求包括:更新運營代碼請求和軟件發(fā)布請求
坐寸ο
[0072]運行在任務(wù)調(diào)度服務(wù)器42中的工作進(jìn)程執(zhí)行任務(wù),任務(wù)包括:將新運營代碼轉(zhuǎn)發(fā)到代碼服務(wù)器、接收代碼服務(wù)器返回的最新版本的軟件、將最新版本的軟件發(fā)布到前端Web服務(wù)器等。
[0073]根據(jù)本發(fā)明的一個實施例,當(dāng)檢測到版本庫中有修改時,開發(fā)人員使用個人筆記本電腦45登錄開發(fā)機43,或直接使用開發(fā)機43將與修改相對應(yīng)的新開發(fā)代碼發(fā)送到代碼服務(wù)器41,通過版本控制工具維護(hù)代碼版本庫中的開發(fā)代碼。
[0074]開發(fā)機43向代碼服務(wù)器41發(fā)布請求新版本發(fā)布請求,開發(fā)人員通過開發(fā)機中的命令行腳本工具將代碼服務(wù)器41返回的最新版本的軟件發(fā)布到前端Web服務(wù)器48,完成最新版本的軟件的發(fā)布、上線。
[0075]代碼服務(wù)器41中的代碼版本庫可以為SVN代碼庫。開發(fā)人員通過開發(fā)機43上的SVN客戶端維護(hù)SVN代碼中的開發(fā)代碼。開發(fā)機43中的操作系統(tǒng)為Iinux并且開發(fā)人員通過vim編輯器進(jìn)行開發(fā)代碼。任務(wù)調(diào)度服務(wù)器42為Gearman服務(wù)器。
[0076]本發(fā)明的軟件版本的控制系統(tǒng),解決了開發(fā)人員和運營人員共同維護(hù)一個完整的項目代碼的問題,可以使項目代碼完整且版本正確,能通過同樣的代碼管理方式進(jìn)行統(tǒng)一維護(hù),使得開發(fā)人員能用最熟悉的環(huán)境,提高開發(fā)效率,提供運營人員交互、友好的界面,例如Web界面,能和開發(fā)人員協(xié)同工作,共同維護(hù)項目代碼。
[0077]可能以許多方式來實現(xiàn)本發(fā)明的方法和系統(tǒng)。例如,可通過軟件、硬件、固件或者軟件、硬件、固件的任何組合來實現(xiàn)本發(fā)明的方法和系統(tǒng)。用于方法的步驟的上述順序僅是為了進(jìn)行說明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說明。此外,在一些實施例中,還可將本發(fā)明實施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實現(xiàn)根據(jù)本發(fā)明的方法的機器可讀指令。因而,本發(fā)明還覆蓋存儲用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。
[0078]本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計適于特定用途的帶有各種修改的各種實施例。
【權(quán)利要求】
1.一種軟件版本的控制方法,其包括: 代碼服務(wù)器接收到任務(wù)調(diào)度服務(wù)器發(fā)送的新運營代碼或者開發(fā)機發(fā)送的新開發(fā)代碼; 所述代碼服務(wù)器將所述新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理; 當(dāng)所述代碼服務(wù)器接收到從所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機發(fā)送的新版本發(fā)布請求時,從所述代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回給所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機。
2.如權(quán)利要求1所述的方法,其中: 后臺Web服務(wù)器提供修改運營代碼的界面,并將新運營代碼轉(zhuǎn)發(fā)給所述任務(wù)調(diào)度服務(wù)器; 所述后臺Web服務(wù)器提供發(fā)布新版本的界面,用于向所述任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求; 所述任務(wù)調(diào)度服務(wù)器向所述代碼服務(wù)器發(fā)送新版本發(fā)布請求,并將所述代碼服務(wù)器返回的所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
3.如權(quán)利要求2所述的方法,其中: 所述任務(wù)調(diào)度服務(wù)器接收從后臺Web服務(wù)器發(fā)送的請求,并將所述請求對應(yīng)的任務(wù)發(fā)送給工作進(jìn)程,所述請求包括:更新運營代碼請求和軟件發(fā)布請求; 運行在所述任務(wù)調(diào)度服務(wù)器中的所述工作進(jìn)程執(zhí)行所述任務(wù),所述任務(wù)包括:將新運營代碼轉(zhuǎn)發(fā)到所述代碼服務(wù)器、接收所述代碼服務(wù)器返回的所述最新版本的軟件、將所述最新版本的軟件發(fā)布到前端Web服務(wù)器。
4.如權(quán)利要求3所述的方法,其中: 所述開發(fā)機中運行版本控制工具維護(hù)所述代碼版本庫中的開發(fā)代碼; 當(dāng)檢測到所述代碼版本庫中有修改時,所述開發(fā)機將與所述修改相對應(yīng)的新開發(fā)代碼發(fā)送到所述代碼服務(wù)器; 所述開發(fā)機向所述代碼服務(wù)器發(fā)送新版本發(fā)布請求,并通過命令行腳本工具將所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
5.如權(quán)利要求4所述的方法,其中: 所述代碼服務(wù)器中的代碼版本庫為SVN代碼庫;通過所述工作機中運行的SVN客戶端維護(hù)所述SVN代碼庫中的開發(fā)代碼;所述工作機中的操作系統(tǒng)為Iinux并提供代碼編輯器;所述任務(wù)調(diào)度服務(wù)器為Gearman服務(wù)器。
6.一種軟件版本的控制系統(tǒng),其包括: 任務(wù)調(diào)度服務(wù)器,用于向代碼服務(wù)器發(fā)送新運營代碼; 開發(fā)機,用于向代碼服務(wù)器發(fā)送新開發(fā)代碼; 代碼服務(wù)器,用于將接收到的所述新運營代碼或新開發(fā)代碼保存在代碼版本庫中,并進(jìn)行相應(yīng)的版本更新處理;當(dāng)接收到從所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機發(fā)送的新版本發(fā)布請求時,從所述代碼版本庫中生成最新版本的軟件,并將最新版本的軟件返回所述任務(wù)調(diào)度服務(wù)器或所述開發(fā)機。
7.如權(quán)利要求6所 述的系統(tǒng),其中,還包括:后臺Web服務(wù)器,用于提供修改運營代碼的界面,并將新運營代碼轉(zhuǎn)發(fā)給任務(wù)調(diào)度服務(wù)器;提供發(fā)布新版本的界面,所述界面用于向所述任務(wù)調(diào)度服務(wù)器發(fā)送軟件發(fā)布請求; 其中,所述任務(wù)調(diào)度服務(wù)器,還用于向所述代碼服務(wù)器發(fā)送新版本發(fā)布請求,并將所述代碼服務(wù)器返回的所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
8.如權(quán)利要求7所述的系統(tǒng),其中: 所述任務(wù)調(diào)度服務(wù)器,具體用于接收從后臺Web服務(wù)器發(fā)送的請求,并將所述請求對應(yīng)的任務(wù)發(fā)送到工作進(jìn)程,所述請求包括:更新運營代碼請求和軟件發(fā)布請求;運行在所述任務(wù)調(diào)度服務(wù)器中的工作進(jìn)程執(zhí)行所述任務(wù),所述任務(wù)包括:將新運營代碼轉(zhuǎn)發(fā)到所述代碼服務(wù)器、接收所述代碼服務(wù)器返回的所述最新版本的軟件、將所述最新版本的軟件發(fā)布到前端Web服務(wù)器。
9.如權(quán)利要求8所述的系統(tǒng),其中: 所述開發(fā)機,具體用于通過運行版本控制工具維護(hù)所述代碼版本庫中的開發(fā)代碼;當(dāng)檢測到版本庫中有修改時,將與所述修改相對應(yīng)的新開發(fā)代碼發(fā)送到所述代碼服務(wù)器;向所述代碼服務(wù)器發(fā)布請求新版本發(fā)布請求,并通過命令行腳本工具將所述代碼服務(wù)器返回的所述最新版本的軟件發(fā)布到前端Web服務(wù)器,完成所述最新版本的軟件的發(fā)布、上線。
10.如權(quán)利要 求9所述的系統(tǒng),其中: 所述代碼服務(wù)器中的代碼版本庫為SVN代碼庫; 所述工作機,具體用于通過SVN客戶端維護(hù)所述SVN代碼中的開發(fā)代碼;所述工作機中的操作系統(tǒng)為Iinux并提供代碼編輯器; 所述任務(wù)調(diào)度服務(wù)器為Gearman服務(wù)器。
【文檔編號】G06F9/44GK103729195SQ201410017266
【公開日】2014年4月16日 申請日期:2014年1月15日 優(yōu)先權(quán)日:2014年1月15日
【發(fā)明者】李鋼 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司