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