欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實現(xiàn)分布式編譯的方法和分布式編譯系統(tǒng)的制作方法

文檔序號:10686882閱讀:576來源:國知局
一種實現(xiàn)分布式編譯的方法和分布式編譯系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種實現(xiàn)分布式編譯的方法和分布式編譯系統(tǒng)。其中方法包括:當(dāng)用戶登錄分布式編譯系統(tǒng)時,確定用戶分組信息并根據(jù)該信息向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶提交的編譯任務(wù)并將其與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息;接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,判斷其是否對該任務(wù)具有操作權(quán)限,是則將該任務(wù)放入待處理任務(wù)隊列中;將待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上并由其獲取對應(yīng)的待編譯文件后進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。該技術(shù)方案通過權(quán)限管理控制了編譯的安全性。
【專利說明】
一種實現(xiàn)分布式編譯的方法和分布式編譯系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及編譯領(lǐng)域,具體涉及一種實現(xiàn)分布式編譯的方法和分布式編譯系統(tǒng)。
【背景技術(shù)】
[0002]代碼編譯是將程序員編寫的程序源碼通過編譯程序編譯為機器可執(zhí)行文件的過程。在軟件開發(fā)公司中,往往不是由個人而是多人負(fù)責(zé)開發(fā)某個軟件,因此在開發(fā)過程中會產(chǎn)生多個版本的代碼,而最終軟件只能由某個最終確定的版本編譯生成,因此許多公司內(nèi)都搭建了代碼服務(wù)器進(jìn)行代碼的管理。然而現(xiàn)有技術(shù)中對于代碼編譯并沒有較為合理的管理方法,由于任一臺開發(fā)機上都有可能安裝編譯程序,因此每一個開發(fā)人員都可以使用自己的開發(fā)機對代碼執(zhí)行編譯,導(dǎo)致最終生成的軟件產(chǎn)品質(zhì)量難以控制。

【發(fā)明內(nèi)容】

[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的實現(xiàn)分布式編譯的方法和分布式編譯系統(tǒng)。
[0004]依據(jù)本發(fā)明的一個方面,提供了一種實現(xiàn)分布式編譯的方法,包括:
[0005]當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息;
[0006]接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限,是則將所述指定編譯任務(wù)放入待處理任務(wù)隊列中;
[0007]將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上,由相應(yīng)虛擬機根據(jù)編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。
[0008]可選地,所述當(dāng)用戶登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息包括:
[0009]如果用戶是首次登錄分布式編譯系統(tǒng),根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;
[0010]如果用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。
[0011]可選地,對用戶進(jìn)行多級分組;所述用戶分組信息包括:用戶在每一層級中的分組信息;
[0012]所述根據(jù)該用戶的用戶分組信息,向該用戶展示其有查看權(quán)限的編譯任務(wù)包括:根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。
[0013]可選地,所述判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限包括:接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限;
[0014]將所述指定編譯任務(wù)放入待處理任務(wù)隊列中包括:在所述指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。
[0015]可選地,生成對公共數(shù)據(jù)庫的訪問賬戶信息;
[0016]接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。
[0017]可選地,為不同的用戶分組配置不同的簽名證書;
[0018]從公共數(shù)據(jù)庫中獲取編譯結(jié)果文件;
[0019]根據(jù)編譯結(jié)果文件對應(yīng)的用戶所屬分組的簽名證書,對該編譯結(jié)果文件進(jìn)行簽名操作后輸出簽名后的文件。
[0020]可選地,每個編譯任務(wù)中還包括:編譯環(huán)境要求信息;
[0021]所述將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上包括:根據(jù)預(yù)先搜集的各虛擬機的編譯環(huán)境信息,將待處理任務(wù)隊列中編譯任務(wù)分配給符合該編譯任務(wù)的編譯環(huán)境要求的空閑的虛擬機。
[0022]可選地,該方法進(jìn)一步包括:
[0023]虛擬機對待編譯文件進(jìn)行編譯時如果需要編譯公用資源,先到公共數(shù)據(jù)庫中查詢;
[0024]如果公共數(shù)據(jù)庫中存在需要的編譯公用資源,則從公共數(shù)據(jù)庫獲取;
[0025]如果公共數(shù)據(jù)庫中不存在需要的編譯公用資源,則從代碼服務(wù)器獲取該編譯公用資源,并保存到公共數(shù)據(jù)庫中。
[0026]可選地,該方法進(jìn)一步包括:
[0027]接收各虛擬機反饋的編譯信息,將編譯任務(wù)以及與編譯任務(wù)相關(guān)的用戶信息和編譯信息保存到回溯數(shù)據(jù)庫中;
[0028]以及將虛擬機反饋的編譯信息,通過前端頁面展示給用戶。
[0029]可選地,該方法進(jìn)一步包括:
[0030]通過前端頁面接收用戶提交的查詢信息;
[0031]根據(jù)查詢信息從回溯數(shù)據(jù)庫和/或公共數(shù)據(jù)庫中獲取相應(yīng)的內(nèi)容,并通過前端頁面展示給用戶。
[0032]依據(jù)本發(fā)明的另一方面,提供了一種分布式編譯系統(tǒng),其中,該編譯系統(tǒng)包括:中心控制器、分布式的虛擬機集群、代碼服務(wù)器和公共數(shù)據(jù)庫;
[0033]中心控制器,適于當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息;
[0034]中心控制器,還適于在接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限,是則將所述指定編譯任務(wù)放入待處理任務(wù)隊列中;將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上;
[0035]虛擬機,適于根據(jù)所分配的編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。
[0036]可選地,所述中心控制器,適于當(dāng)用戶是首次登錄分布式編譯系統(tǒng)時,根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;當(dāng)用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。
[0037]可選地,所述中心控制器,適于對用戶進(jìn)行多級分組;所述用戶分組信息包括:用戶在每一層級中的分組信息;
[0038]所述中心控制器,適于根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。
[0039]可選地,所述中心控制器,適于接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限;并在確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限后,在所述指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。
[0040]可選地,所述中心控制器,進(jìn)一步適于生成對公共數(shù)據(jù)庫的訪問賬戶信息;接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。
[0041 ]可選地,該系統(tǒng)進(jìn)一步包括:簽名服務(wù)器;
[0042]所述中心控制器,進(jìn)一步適于為不同的用戶分組配置不同的簽名證書;
[0043]簽名服務(wù)器,適于從公共數(shù)據(jù)庫中獲取編譯結(jié)果文件;根據(jù)編譯結(jié)果文件對應(yīng)的用戶所屬分組的簽名證書,對該編譯結(jié)果文件進(jìn)行簽名操作后輸出簽名后的文件。
[0044]可選地,每個編譯任務(wù)中還包括:編譯環(huán)境要求信息;
[0045]所述中心控制器,進(jìn)一步適于根據(jù)預(yù)先搜集的各虛擬機的編譯環(huán)境信息,將待處理任務(wù)隊列中編譯任務(wù)分配給符合該編譯任務(wù)的編譯環(huán)境要求的空閑的虛擬機。
[0046]可選地,虛擬機,適于在對待編譯文件進(jìn)行編譯時如果需要編譯公用資源,先到公共數(shù)據(jù)庫中查詢;如果公共數(shù)據(jù)庫中存在需要的編譯公用資源,則從公共數(shù)據(jù)庫獲取;如果公共數(shù)據(jù)庫中不存在需要的編譯公用資源,則從代碼服務(wù)器獲取該編譯公用資源,并保存到公共數(shù)據(jù)庫中。
[0047]可選地,該系統(tǒng)進(jìn)一步包括:回溯數(shù)據(jù)庫;
[0048]所述中心控制器,進(jìn)一步適于接收各虛擬機反饋的編譯信息,將編譯任務(wù)以及與編譯任務(wù)相關(guān)的用戶信息和編譯信息保存到回溯數(shù)據(jù)庫中;以及將虛擬機反饋的編譯信息,通過前端頁面展示給用戶。
[0049]可選地,所述中心控制器,進(jìn)一步適于通過前端頁面接收用戶提交的查詢信息;根據(jù)查詢信息從回溯數(shù)據(jù)庫和/或公共數(shù)據(jù)庫中獲取相應(yīng)的內(nèi)容,并通過前端頁面展示給用戶。
[0050]由上述可知,本發(fā)明的技術(shù)方案,要求用戶登錄分布式編譯系統(tǒng)才能對編譯任務(wù)進(jìn)行相關(guān)操作,具體地,當(dāng)用戶通過前端頁面登錄到該系統(tǒng)時,根據(jù)確定的該用戶的分組信息向用戶展示其有查看權(quán)限的編譯任務(wù),用戶通過前端頁面提交編譯任務(wù)時,將用戶的分組信息與該編譯任務(wù)對應(yīng)保存。當(dāng)已登錄用戶對具有查看權(quán)限的編譯任務(wù)中的指定任務(wù)提交執(zhí)行編譯操作的指令時,需要驗證該用戶對該任務(wù)的操作權(quán)限,通過驗證后再將該編譯任務(wù)放入待處理任務(wù)隊列中,并將該隊列中的任務(wù)調(diào)度到虛擬機集群中的具體虛擬機上執(zhí)行得到編譯結(jié)果文件并輸出到公共數(shù)據(jù)庫。該技術(shù)方案為編譯提供了多層級的權(quán)限管理,用戶可以根據(jù)獲得權(quán)限的不同,對編譯任務(wù)進(jìn)行查看、提交或執(zhí)行該任務(wù),一方面控制了編譯結(jié)果文件的質(zhì)量,另一方面,由于每項操作是與用戶的權(quán)限信息相關(guān)的,當(dāng)出現(xiàn)安全問題時可以及時追查到相關(guān)責(zé)任人,方便管控。
[0051]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0052]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0053]圖1示出了根據(jù)本發(fā)明一個實施例的一種實現(xiàn)分布式編譯的方法的流程圖;
[0054]圖2示出了根據(jù)本發(fā)明一個實施例的一種分布式編譯系統(tǒng)的結(jié)構(gòu)示意圖;
[0055]圖3-a示出了在前端頁面中展示編譯任務(wù)列表的界面示意圖;
[0056]圖3-b示出了在前端頁面中展示編譯結(jié)果的界面示意圖;
[0057]圖3-c示出了在前端頁面中展示編譯歷史記錄的界面示意圖。
【具體實施方式】
[0058]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0059]圖1示出了根據(jù)本發(fā)明一個實施例的一種實現(xiàn)分布式編譯的方法的流程圖,如圖1所示,該方法包括:
[0060]步驟S110,當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息。例如,用戶根據(jù)所在項目組的不同,分為手游組、安全組、網(wǎng)盤組等,每個項目組人員具有與該項目組對應(yīng)的分組信息。
[0061]步驟S120,根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù)。例如,手游組的開發(fā)人員只能查看到手游組的編譯任務(wù)。
[0062]步驟S130,接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息。特別地,也可以為提交編譯任務(wù)的操作設(shè)置權(quán)限,例如,只有網(wǎng)盤組的組長才可以執(zhí)行該操作。
[0063]步驟S140,接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對指定編譯任務(wù)具有操作權(quán)限,是則將指定編譯任務(wù)放入待處理任務(wù)隊列中。
[0064]例如,安全組的小王在登錄后可以查看到安全組的全部編譯任務(wù),但只有對編號為1-5的編譯任務(wù)具有操作權(quán)限,則小王無法提交對編號6的編譯任務(wù)的編譯操作指令(例如在前端頁面上選中該編譯任務(wù)后,編譯操作的按鈕為灰色無法選取)?;蛘?,在小王提交該任務(wù)的編譯操作的指令后,系統(tǒng)判斷其對該任務(wù)沒有操作權(quán)限,則進(jìn)行報警提示。
[0065]步驟S150,將待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上,由相應(yīng)虛擬機根據(jù)編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。
[0066]可見,圖1所示的方法,要求用戶登錄分布式編譯系統(tǒng)才能對編譯任務(wù)進(jìn)行相關(guān)操作,具體地,當(dāng)用戶通過前端頁面登錄到該系統(tǒng)時,根據(jù)確定的該用戶的分組信息向用戶展示其有查看權(quán)限的編譯任務(wù),用戶通過前端頁面提交編譯任務(wù)時,將用戶的分組信息與該編譯任務(wù)對應(yīng)保存。當(dāng)已登錄用戶對具有查看權(quán)限的編譯任務(wù)中的指定任務(wù)提交執(zhí)行編譯操作的指令時,需要驗證該用戶對該任務(wù)的操作權(quán)限,通過驗證后再將該編譯任務(wù)放入待處理任務(wù)隊列中,并將該隊列中的任務(wù)調(diào)度到虛擬機集群中的具體虛擬機上執(zhí)行得到編譯結(jié)果文件并輸出到公共數(shù)據(jù)庫。該技術(shù)方案為編譯提供了多層級的權(quán)限管理,用戶可以根據(jù)獲得權(quán)限的不同,對編譯任務(wù)進(jìn)行查看、提交或執(zhí)行該任務(wù),一方面控制了編譯結(jié)果文件的質(zhì)量,另一方面,由于每項操作是與用戶的權(quán)限信息相關(guān)的,當(dāng)出現(xiàn)安全問題時可以及時追查到相關(guān)責(zé)任人,方便管控。
[0067]在本發(fā)明的一個實施例中,圖1所示的方法中,當(dāng)用戶登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息包括:如果用戶是首次登錄分布式編譯系統(tǒng),根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;如果用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。
[0068]例如,安全組的新員工小李在組長的幫助下,首次登錄到該系統(tǒng)。那么小李的分組信息既可以是在登錄賬號的創(chuàng)建時,就調(diào)用安全組的分組配置信息配置好的,也可以是在登錄到系統(tǒng)后,選擇加入安全組。如果該公司又新成立了頁游組,則該組組長在登錄到系統(tǒng)后,可以創(chuàng)建新的頁游組分組。這樣各組的成員在日后的登錄過程中,就可以根據(jù)登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。特別地,用戶在取得更改分組信息的權(quán)限后,可以對所屬分組進(jìn)行更改,例如手游組的小賀轉(zhuǎn)到頁游組,就需要將其手游組的分組信息修改為頁游組的分組信息。
[0069]在本發(fā)明的一個實施例中,圖1所示的方法中,對用戶進(jìn)行多級分組;用戶分組信息包括:用戶在每一層級中的分組信息;根據(jù)該用戶的用戶分組信息,向該用戶展示其有查看權(quán)限的編譯任務(wù)包括:根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。
[0070]在本實施例中,對權(quán)限進(jìn)行了進(jìn)一步的細(xì)化,以適應(yīng)大項目組的用戶需求,例如安全組下還有各個子項目,如優(yōu)化子項目、殺毒子項目等等,需要對各大組內(nèi)的各子項目的成員分別分配權(quán)限,例如優(yōu)化子項目的用戶在登錄到系統(tǒng)后只能看到安全組下的優(yōu)化子項目層級中的編譯任務(wù),而無法看到殺毒子項目層級中的編譯任務(wù)。
[0071]在本發(fā)明的一個實施例中,圖1所示的方法中,判斷該已登錄用戶是否對指定編譯任務(wù)具有操作權(quán)限包括:接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對指定編譯任務(wù)具有操作權(quán)限;將指定編譯任務(wù)放入待處理任務(wù)隊列中包括:在指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。
[0072]前面提到,一個開發(fā)項目在代碼服務(wù)器中可能存在多個版本的待編譯文件,同時在代碼服務(wù)器中存在多個開發(fā)項目的待編譯文件,為了安全控制,用戶在訪問代碼服務(wù)器需要對用戶代碼權(quán)限進(jìn)行校驗。在本實施例中,用戶通過登錄分布式編譯系統(tǒng)執(zhí)行編譯任務(wù),而編譯任務(wù)的代碼同樣是從代碼服務(wù)器獲取的,因此仍然需要代碼服務(wù)器對用戶代碼權(quán)限進(jìn)行校驗,例如,用戶A通過前端頁面提交對指定編譯任務(wù)進(jìn)行編譯操作的指令時,需要在頁面的相應(yīng)位置輸入與該任務(wù)對應(yīng)的用戶代碼權(quán)限信息,例如用戶登錄代碼服務(wù)器的登錄名和密碼,則通過該用戶代碼權(quán)限信息先去代碼服務(wù)器進(jìn)行檢驗,通過后在編譯任務(wù)中的用戶代碼權(quán)限信息中打上校驗通過標(biāo)志,再將編譯任務(wù)調(diào)度至相應(yīng)的虛擬機上,虛擬機編譯時通過打上校驗通過標(biāo)志的用戶代碼權(quán)限信息,從代碼服務(wù)器獲取對應(yīng)的待編譯文件進(jìn)行編譯。
[0073]在本發(fā)明的一個實施例中,圖1所示的方法進(jìn)一步包括:生成對公共數(shù)據(jù)庫的訪問賬戶信息;接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。
[0074]在對待編譯文件進(jìn)行編譯時,經(jīng)常會用到.1ib頭文件等公用編譯資源,這些資源是很多編譯任務(wù)都需要用到的,如果每次都向代碼服務(wù)器進(jìn)行訪問獲取會大大浪費時間和資源,因此可以將這些公用資源存儲到公共數(shù)據(jù)庫中。如果編譯任務(wù)所需的公共資源無法在公共數(shù)據(jù)庫中找到,再從代碼服務(wù)器進(jìn)行獲取,在獲取到該公共資源后可以將其存至公共數(shù)據(jù)庫,這樣其他編譯任務(wù)如果需要該公共資源就不必到代碼服務(wù)器進(jìn)行獲取,節(jié)約了時間,效率更高。也即是說,虛擬機對待編譯文件進(jìn)行編譯時如果需要編譯公用資源,先到公共數(shù)據(jù)庫中查詢;如果公共數(shù)據(jù)庫中存在需要的編譯公用資源,則從公共數(shù)據(jù)庫獲取;如果公共數(shù)據(jù)庫中不存在需要的編譯公用資源,則從代碼服務(wù)器獲取該編譯公用資源,并保存到公共數(shù)據(jù)庫中。
[0075]這樣,由于公共數(shù)據(jù)庫中包含大量的從代碼服務(wù)器獲取的內(nèi)容,因此如果不對公共數(shù)據(jù)庫的訪問權(quán)限加以限制,很容易引起安全問題,因此在本實施例中,需要生成對公共數(shù)據(jù)庫的訪問賬戶信息,使得虛擬機根據(jù)獲取.更新的訪問賬戶信息來訪問公共數(shù)據(jù)庫。
[0076]在本發(fā)明的一個實施例中,圖1所示的方法進(jìn)一步包括:為不同的用戶分組配置不同的簽名證書;從公共數(shù)據(jù)庫中獲取編譯結(jié)果文件;根據(jù)編譯結(jié)果文件對應(yīng)的用戶所屬分組的簽名證書,對該編譯結(jié)果文件進(jìn)行簽名操作后輸出簽名后的文件。
[0077]編譯結(jié)果文件進(jìn)行簽名后就擁有了軟件開發(fā)者的認(rèn)證,而各項目組所使用的簽名證書可能是不同的,因此,在本實施例中為不同的用戶分組配置不同的簽名證書。簽名操作是對編譯結(jié)果文件進(jìn)行的操作,因此可以將其以獨立的簽名服務(wù)器的方式進(jìn)行實現(xiàn),這樣就可以從公共數(shù)據(jù)庫中獲取到編譯結(jié)果文件進(jìn)行簽名操作,使得簽名操作與編譯操作相互獨立,更有效率。簽名后的文件同樣可以推送至公共數(shù)據(jù)庫進(jìn)行留檔存儲。
[0078]在本發(fā)明的一個實施例中,圖1所示的方法中,每個編譯任務(wù)中還包括:編譯環(huán)境要求信息;將待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上包括:根據(jù)預(yù)先搜集的各虛擬機的編譯環(huán)境信息,將待處理任務(wù)隊列中編譯任務(wù)分配給符合該編譯任務(wù)的編譯環(huán)境要求的空閑的虛擬機。
[0079]舉例而言,針對安卓系統(tǒng)、1S系統(tǒng)、Windows系統(tǒng)編寫的代碼文件所要求的編譯環(huán)境是不同的,因此每個待編譯文件都需要特定的編譯環(huán)境,如要求編譯環(huán)境配置有VS2008,VS2010等組件才能實現(xiàn)編譯。又例如,根據(jù)開發(fā)項目的需求不同,編譯過程中可以根據(jù)設(shè)置參數(shù)的不同生成不同的編譯結(jié)果文件,如要求編譯結(jié)果文件包含符號表Pdb文件,因此可以在前端頁面上為用戶提供生成的編譯文件包含Pdb文件的選項。如果某個開發(fā)項目強制要求編譯輸出該文件,則可以在后臺將該選項設(shè)置為無法在前端頁面進(jìn)行操作的默認(rèn)設(shè)置項。這樣,一方面各虛擬機可以配置相同或不同的編譯環(huán)境以應(yīng)對不同的編譯需求,另一方面也可以根據(jù)用戶輸入的參數(shù)控制編譯結(jié)果文件的類型。其中虛擬機的編譯環(huán)境信息可以維護(hù)為一個編譯環(huán)境信息列表供查詢。因此在接收到編譯任務(wù)后,調(diào)取其中的編譯環(huán)境要求信息,在編譯環(huán)境信息列表中匹配滿足要求的虛擬機,再從中選出空閑的虛擬機進(jìn)行編譯。
[0080]在本發(fā)明的一個實施例中,上述方法進(jìn)一步包括:接收各虛擬機反饋的編譯信息,將編譯任務(wù)以及與編譯任務(wù)相關(guān)的用戶信息和編譯信息保存到回溯數(shù)據(jù)庫中;以及將虛擬機反饋的編譯信息,通過前端頁面展示給用戶。用戶可以根據(jù)這些信息了解到編譯執(zhí)行的狀況,方便進(jìn)行中斷、回滾等操作。
[0081]在本發(fā)明的一個實施例中,上述方法進(jìn)一步包括:通過前端頁面接收用戶提交的查詢信息;根據(jù)查詢信息從回溯數(shù)據(jù)庫和/或公共數(shù)據(jù)庫中獲取相應(yīng)的內(nèi)容,并通過前端頁面展示給用戶。
[0082]其中,提交查詢信息的過程與編譯過程可以是相互獨立的,例如在提交編譯任務(wù)前,查看公共數(shù)據(jù)庫中是否包含所需的頭文件,又例如,在編譯結(jié)果文件出現(xiàn)問題需要排查時,訪問回溯數(shù)據(jù)庫調(diào)取之前執(zhí)行過的編譯任務(wù)等信息。
[0083]圖2示出了根據(jù)本發(fā)明一個實施例的一種分布式編譯系統(tǒng)的結(jié)構(gòu)示意圖,如圖2所示,分布式編譯系統(tǒng)200包括:中心控制器210、分布式的虛擬機220集群、代碼服務(wù)器230和公共數(shù)據(jù)庫240。
[0084]中心控制器210,適于當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器230上的存儲路徑信息;
[0085]中心控制器210,還適于在接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對指定編譯任務(wù)具有操作權(quán)限,是則將指定編譯任務(wù)放入待處理任務(wù)隊列中;將待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機220集群中的相應(yīng)虛擬機220上;
[0086]虛擬機220,適于根據(jù)所分配的編譯任務(wù)從代碼服務(wù)器230獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫240。
[0087]可見,圖2所示的系統(tǒng),要求用戶登錄分布式編譯系統(tǒng)才能對編譯任務(wù)進(jìn)行相關(guān)操作,具體地,當(dāng)用戶通過前端頁面登錄到該系統(tǒng)時,根據(jù)確定的該用戶的分組信息向用戶展示其有查看權(quán)限的編譯任務(wù),用戶通過前端頁面提交編譯任務(wù)時,將用戶的分組信息與該編譯任務(wù)對應(yīng)保存。當(dāng)已登錄用戶對具有查看權(quán)限的編譯任務(wù)中的指定任務(wù)提交執(zhí)行編譯操作的指令時,需要驗證該用戶對該任務(wù)的操作權(quán)限,通過驗證后再將該編譯任務(wù)放入待處理任務(wù)隊列中,并將該隊列中的任務(wù)調(diào)度到虛擬機集群中的具體虛擬機上執(zhí)行得到編譯結(jié)果文件并輸出到公共數(shù)據(jù)庫240。該技術(shù)方案為編譯提供了多層級的權(quán)限管理,用戶可以根據(jù)獲得權(quán)限的不同,對編譯任務(wù)進(jìn)行查看、提交或執(zhí)行該任務(wù),一方面控制了編譯結(jié)果文件的質(zhì)量,另一方面,由于每項操作是與用戶的權(quán)限信息相關(guān)的,當(dāng)出現(xiàn)安全問題時可以及時追查到相關(guān)責(zé)任人,方便管控。
[0088]在本發(fā)明的一個實施例中,圖2所示的系統(tǒng)中,中心控制器210,適于當(dāng)用戶是首次登錄分布式編譯系統(tǒng)時,根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;當(dāng)用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。
[0089]在本發(fā)明的一個實施例中,圖2所示的系統(tǒng)中,中心控制器210,適于對用戶進(jìn)行多級分組;用戶分組信息包括:用戶在每一層級中的分組信息;中心控制器210,適于根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。
[0090]在本發(fā)明的一個實施例中,圖2所示的系統(tǒng)中,中心控制器210,適于接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器230進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對指定編譯任務(wù)具有操作權(quán)限;并在確定該已登錄用戶對指定編譯任務(wù)具有操作權(quán)限后,在指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。
[0091]在本發(fā)明的一個實施例中,圖2所示的系統(tǒng)中,中心控制器210,進(jìn)一步適于生成對公共數(shù)據(jù)庫240的訪問賬戶信息;接收各虛擬機220在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫240的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機220。
[0092]在本發(fā)明的一個實施例中,圖2所示的系統(tǒng)進(jìn)一步包括:簽名服務(wù)器;中心控制器210,進(jìn)一步適于為不同的用戶分組配置不同的簽名證書;簽名服務(wù)器,適于從公共數(shù)據(jù)庫240中獲取編譯結(jié)果文件;根據(jù)編譯結(jié)果文件對應(yīng)的用戶所屬分組的簽名證書,對該編譯結(jié)果文件進(jìn)行簽名操作后輸出簽名后的文件。
[0093]在本發(fā)明的一個實施例中,上述系統(tǒng)中,每個編譯任務(wù)中還包括:編譯環(huán)境要求信息;中心控制器210,進(jìn)一步適于根據(jù)預(yù)先搜集的各虛擬機220的編譯環(huán)境信息,將待處理任務(wù)隊列中編譯任務(wù)分配給符合該編譯任務(wù)的編譯環(huán)境要求的空閑的虛擬機220。
[0094]在本發(fā)明的一個實施例中,上述系統(tǒng)中,虛擬機220,適于在對待編譯文件進(jìn)行編譯時如果需要編譯公用資源,先到公共數(shù)據(jù)庫240中查詢;如果公共數(shù)據(jù)庫240中存在需要的編譯公用資源,則從公共數(shù)據(jù)庫240獲取;如果公共數(shù)據(jù)庫240中不存在需要的編譯公用資源,則從代碼服務(wù)器230獲取該編譯公用資源,并保存到公共數(shù)據(jù)庫240中。
[0095]在本發(fā)明的一個實施例中,上述系統(tǒng)進(jìn)一步包括:回溯數(shù)據(jù)庫(圖未示出);中心控制器210,進(jìn)一步適于接收各虛擬機220反饋的編譯信息,將編譯任務(wù)以及與編譯任務(wù)相關(guān)的用戶信息和編譯信息保存到回溯數(shù)據(jù)庫中;以及將虛擬機220反饋的編譯信息,通過前端頁面展示給用戶。
[0096]在本發(fā)明的一個實施例中,上述系統(tǒng)中,中心控制器210,進(jìn)一步適于通過前端頁面接收用戶提交的查詢信息;根據(jù)查詢信息從回溯數(shù)據(jù)庫和/或公共數(shù)據(jù)庫240中獲取相應(yīng)的內(nèi)容,并通過前端頁面展示給用戶。
[0097]需要說明的是,上述各系統(tǒng)實施例的【具體實施方式】與前述對應(yīng)方法實施例的【具體實施方式】相同,在此不再贅述。
[0098]圖3-a、圖3-b和圖3-c給出了本發(fā)明一個具體實施例中前端頁面的界面示意圖,具體地,圖3-a示出了在前端頁面中展示編譯任務(wù)列表的界面示意圖;圖3-b示出了在前端頁面中展示編譯結(jié)果的界面示意圖;圖3-c示出了在前端頁面中展示編譯歷史記錄的界面示意圖。如圖所不,用戶可以點擊相應(yīng)的鏈接查看相關(guān)信息,例如用戶點擊圖3_a中的相應(yīng)任務(wù)的“編譯結(jié)果”鏈接,便可以彈出如圖3-b所示的編譯結(jié)果頁面,等等。在圖3-c所示的頁面中,用戶可以非常方便地查看編譯歷史記錄,查看編譯時間和編譯人信息等。
[0099]綜上所述,本發(fā)明的技術(shù)方案,要求用戶登錄分布式編譯系統(tǒng)才能對編譯任務(wù)進(jìn)行相關(guān)操作,具體地,當(dāng)用戶通過前端頁面登錄到該系統(tǒng)時,根據(jù)確定的該用戶的分組信息向用戶展示其有查看權(quán)限的編譯任務(wù),用戶通過前端頁面提交編譯任務(wù)時,將用戶的分組信息與該編譯任務(wù)對應(yīng)保存。當(dāng)已登錄用戶對具有查看權(quán)限的編譯任務(wù)中的指定任務(wù)提交執(zhí)行編譯操作的指令時,需要驗證該用戶對該任務(wù)的操作權(quán)限,通過驗證后再將該編譯任務(wù)放入待處理任務(wù)隊列中,并將該隊列中的任務(wù)調(diào)度到虛擬機集群中的具體虛擬機上執(zhí)行得到編譯結(jié)果文件并輸出到公共數(shù)據(jù)庫。該技術(shù)方案為編譯提供了多層級的權(quán)限管理,用戶可以根據(jù)獲得權(quán)限的不同,對編譯任務(wù)進(jìn)行查看、提交或執(zhí)行該任務(wù),一方面控制了編譯結(jié)果文件的質(zhì)量,另一方面,由于每項操作是與用戶的權(quán)限信息相關(guān)的,當(dāng)出現(xiàn)安全問題時可以及時追查到相關(guān)責(zé)任人,方便管控。
[0100]需要說明的是:
[0101]在此提供的算法和顯示不與任何特定計算機、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0102]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0103]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0104]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0105]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
[0106]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的分布式編譯系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0107]應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0108]本發(fā)明的實施例公開了Al、一種實現(xiàn)分布式編譯的方法,其中,該方法包括:
[0109]當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息;
[0110]接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限,是則將所述指定編譯任務(wù)放入待處理任務(wù)隊列中;
[0111]將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上,由相應(yīng)虛擬機根據(jù)編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。
[0112]A2、如Al所述的方法,其中,所述當(dāng)用戶登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息包括:
[0113]如果用戶是首次登錄分布式編譯系統(tǒng),根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;
[0114]如果用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。
[0115]A3、如Al所述的方法,其中,
[0116]對用戶進(jìn)行多級分組;所述用戶分組信息包括:用戶在每一層級中的分組信息;
[0117]所述根據(jù)該用戶的用戶分組信息,向該用戶展示其有查看權(quán)限的編譯任務(wù)包括:根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。
[0118]A4、如Al所述的方法,其中,
[0119]所述判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限包括:接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限;
[0120]將所述指定編譯任務(wù)放入待處理任務(wù)隊列中包括:在所述指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。
[0121 ] A5、如Al所述的方法,其中,該方法進(jìn)一步包括:
[0122]生成對公共數(shù)據(jù)庫的訪問賬戶信息;
[0123]接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。
[0124]A6、如Al所述的方法,其中,該方法進(jìn)一步包括:
[0125]為不同的用戶分組配置不同的簽名證書;
[0126]從公共數(shù)據(jù)庫中獲取編譯結(jié)果文件;
[0127]根據(jù)編譯結(jié)果文件對應(yīng)的用戶所屬分組的簽名證書,對該編譯結(jié)果文件進(jìn)行簽名操作后輸出簽名后的文件。
[0128]A7、如Al -A6中任一項所述的方法,其中,
[0129]每個編譯任務(wù)中還包括:編譯環(huán)境要求信息;
[0130]所述將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上包括:根據(jù)預(yù)先搜集的各虛擬機的編譯環(huán)境信息,將待處理任務(wù)隊列中編譯任務(wù)分配給符合該編譯任務(wù)的編譯環(huán)境要求的空閑的虛擬機。
[0131]A8、如A1-A6中任一項所述的方法,其中,該方法進(jìn)一步包括:
[0132]虛擬機對待編譯文件進(jìn)行編譯時如果需要編譯公用資源,先到公共數(shù)據(jù)庫中查詢;
[0133]如果公共數(shù)據(jù)庫中存在需要的編譯公用資源,則從公共數(shù)據(jù)庫獲?。?br>[0134]如果公共數(shù)據(jù)庫中不存在需要的編譯公用資源,則從代碼服務(wù)器獲取該編譯公用資源,并保存到公共數(shù)據(jù)庫中。
[0135]A9、如A1-A6中任一項所述的方法,其中,該方法進(jìn)一步包括:
[0136]接收各虛擬機反饋的編譯信息,將編譯任務(wù)以及與編譯任務(wù)相關(guān)的用戶信息和編譯信息保存到回溯數(shù)據(jù)庫中;
[0137]以及將虛擬機反饋的編譯信息,通過前端頁面展示給用戶。
[0138]A10、如A9所述的方法,其中,該方法進(jìn)一步包括:
[0139]通過前端頁面接收用戶提交的查詢信息;
[0140]根據(jù)查詢信息從回溯數(shù)據(jù)庫和/或公共數(shù)據(jù)庫中獲取相應(yīng)的內(nèi)容,并通過前端頁面展示給用戶。
[0141]本發(fā)明的實施例還公開了B11、一種分布式編譯系統(tǒng),其中,該編譯系統(tǒng)包括:中心控制器、分布式的虛擬機集群、代碼服務(wù)器和公共數(shù)據(jù)庫;
[0142]中心控制器,適于當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息;
[0143]中心控制器,還適于在接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限,是則將所述指定編譯任務(wù)放入待處理任務(wù)隊列中;將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上;
[0144]虛擬機,適于根據(jù)所分配的編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。
[0145]B12、如Bll所述的系統(tǒng),其中,
[0146]所述中心控制器,適于當(dāng)用戶是首次登錄分布式編譯系統(tǒng)時,根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;當(dāng)用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。
[0147]B13、如Bll所述的系統(tǒng),其中,
[0148]所述中心控制器,適于對用戶進(jìn)行多級分組;所述用戶分組信息包括:用戶在每一層級中的分組信息;
[0149]所述中心控制器,適于根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。
[0150]B14、如Bll所述的系統(tǒng),其中,
[0151]所述中心控制器,適于接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限;并在確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限后,在所述指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。
[0152]B15、如Bll所述的系統(tǒng),其中,
[0153]所述中心控制器,進(jìn)一步適于生成對公共數(shù)據(jù)庫的訪問賬戶信息;接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。
[0154]B16、如Bll所述的系統(tǒng),其中,該系統(tǒng)進(jìn)一步包括:簽名服務(wù)器;
[0155]所述中心控制器,進(jìn)一步適于為不同的用戶分組配置不同的簽名證書;
[0156]簽名服務(wù)器,適于從公共數(shù)據(jù)庫中獲取編譯結(jié)果文件;根據(jù)編譯結(jié)果文件對應(yīng)的用戶所屬分組的簽名證書,對該編譯結(jié)果文件進(jìn)行簽名操作后輸出簽名后的文件。
[0157]B17、如B11-B16中任一項所述的系統(tǒng),其中
[0158]每個編譯任務(wù)中還包括:編譯環(huán)境要求信息;
[0159]所述中心控制器,進(jìn)一步適于根據(jù)預(yù)先搜集的各虛擬機的編譯環(huán)境信息,將待處理任務(wù)隊列中編譯任務(wù)分配給符合該編譯任務(wù)的編譯環(huán)境要求的空閑的虛擬機。
[0160]B18、如B11-B16中任一項所述的系統(tǒng),其中,
[0161]虛擬機,適于在對待編譯文件進(jìn)行編譯時如果需要編譯公用資源,先到公共數(shù)據(jù)庫中查詢;如果公共數(shù)據(jù)庫中存在需要的編譯公用資源,則從公共數(shù)據(jù)庫獲取;如果公共數(shù)據(jù)庫中不存在需要的編譯公用資源,則從代碼服務(wù)器獲取該編譯公用資源,并保存到公共數(shù)據(jù)庫中。
[0162]B19、如B11-B16中任一項所述的系統(tǒng),其中,該系統(tǒng)進(jìn)一步包括:回溯數(shù)據(jù)庫;
[0163]所述中心控制器,進(jìn)一步適于接收各虛擬機反饋的編譯信息,將編譯任務(wù)以及與編譯任務(wù)相關(guān)的用戶信息和編譯信息保存到回溯數(shù)據(jù)庫中;以及將虛擬機反饋的編譯信息,通過前端頁面展示給用戶。
[0164]B20、如B19所述的系統(tǒng),其中,
[0165]所述中心控制器,進(jìn)一步適于通過前端頁面接收用戶提交的查詢信息;根據(jù)查詢信息從回溯數(shù)據(jù)庫和/或公共數(shù)據(jù)庫中獲取相應(yīng)的內(nèi)容,并通過前端頁面展示給用戶。
【主權(quán)項】
1.一種實現(xiàn)分布式編譯的方法,其中,該方法包括: 當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息; 接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限,是則將所述指定編譯任務(wù)放入待處理任務(wù)隊列中; 將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上,由相應(yīng)虛擬機根據(jù)編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。2.如權(quán)利要求1所述的方法,其中,所述當(dāng)用戶登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息包括: 如果用戶是首次登錄分布式編譯系統(tǒng),根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中; 如果用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。3.如權(quán)利要求1所述的方法,其中, 對用戶進(jìn)行多級分組;所述用戶分組信息包括:用戶在每一層級中的分組信息; 所述根據(jù)該用戶的用戶分組信息,向該用戶展示其有查看權(quán)限的編譯任務(wù)包括:根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。4.如權(quán)利要求1所述的方法,其中, 所述判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限包括:接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限; 將所述指定編譯任務(wù)放入待處理任務(wù)隊列中包括:在所述指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。5.如權(quán)利要求1所述的方法,其中,該方法進(jìn)一步包括: 生成對公共數(shù)據(jù)庫的訪問賬戶信息; 接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。6.—種分布式編譯系統(tǒng),其中,該編譯系統(tǒng)包括:中心控制器、分布式的虛擬機集群、代碼服務(wù)器和公共數(shù)據(jù)庫; 中心控制器,適于當(dāng)用戶通過前端頁面登錄分布式編譯系統(tǒng)時,確定該用戶的用戶分組信息;根據(jù)該用戶的用戶分組信息,通過前端頁面向該用戶展示其有查看權(quán)限的編譯任務(wù);接收該用戶通過前端頁面提交的編譯任務(wù),將編譯任務(wù)與該用戶的分組信息對應(yīng)保存;每個編譯任務(wù)中包括:待編譯文件在代碼服務(wù)器上的存儲路徑信息; 中心控制器,還適于在接收到已登錄用戶的對有查看權(quán)限的編譯任務(wù)中的指定任務(wù)進(jìn)行編譯操作的指令時,進(jìn)一步判斷該已登錄用戶是否對所述指定編譯任務(wù)具有操作權(quán)限,是則將所述指定編譯任務(wù)放入待處理任務(wù)隊列中;將所述待處理任務(wù)隊列中的編譯任務(wù)調(diào)度到分布式的虛擬機集群中的相應(yīng)虛擬機上; 虛擬機,適于根據(jù)所分配的編譯任務(wù)從代碼服務(wù)器獲取對應(yīng)的待編譯文件、對待編譯文件進(jìn)行編譯并將編譯結(jié)果文件輸出到公共數(shù)據(jù)庫。7.如權(quán)利要求6所述的系統(tǒng),其中, 所述中心控制器,適于當(dāng)用戶是首次登錄分布式編譯系統(tǒng)時,根據(jù)該用戶輸入的分組創(chuàng)建信息或分組加入信息、或者根據(jù)預(yù)設(shè)的分組配置信息確定該用戶的用戶分組信息,并將該用戶的登錄賬號信息和用戶分組信息保存到用戶分組信息記錄庫中;當(dāng)用戶是非首次登錄分布式編譯系統(tǒng),根據(jù)該用戶的登錄賬號信息查詢用戶分組信息記錄庫,獲取該用戶端的用戶分組信息。8.如權(quán)利要求6所述的系統(tǒng),其中, 所述中心控制器,適于對用戶進(jìn)行多級分組;所述用戶分組信息包括:用戶在每一層級中的分組信息; 所述中心控制器,適于根據(jù)該用戶在每一層級中的分組信息,向該用戶展示每一層級中所在組中的編譯任務(wù);如果在一個層級中該用戶未被分組則該用戶沒有權(quán)限查看該層級中的任何編譯任務(wù)。9.如權(quán)利要求6所述的系統(tǒng),其中, 所述中心控制器,適于接收該已登錄用戶輸入的與指定編譯任務(wù)對應(yīng)的用戶代碼權(quán)限信息;將用戶代碼權(quán)限信息發(fā)送給代碼服務(wù)器進(jìn)行校驗,如果校驗通過則確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限;并在確定該已登錄用戶對所述指定編譯任務(wù)具有操作權(quán)限后,在所述指定編譯任務(wù)中寫入用戶代碼權(quán)限信息并打上校驗通過標(biāo)志,再放入待處理任務(wù)隊列中。10.如權(quán)利要求6所述的系統(tǒng),其中, 所述中心控制器,進(jìn)一步適于生成對公共數(shù)據(jù)庫的訪問賬戶信息;接收各虛擬機在每次啟動時發(fā)送的獲取/更新公共數(shù)據(jù)庫的訪問賬戶信息的請求,將所生成的相應(yīng)訪問賬戶信息發(fā)送給發(fā)送請求的虛擬機。
【文檔編號】G06F9/45GK106055377SQ201610391270
【公開日】2016年10月26日
【申請日】2016年6月3日
【發(fā)明人】張 杰, 楊銀輝, 王玉琨
【申請人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
两当县| 天柱县| 朝阳市| 镇原县| 咸宁市| 乳山市| 福泉市| 雅江县| 镇原县| 台东市| 宜兰市| 中宁县| 晴隆县| 于田县| 榆社县| 蒙自县| 南皮县| 山东| 新乡市| 云南省| 正阳县| 南丹县| 丰都县| 沙洋县| 郧西县| 顺平县| 固安县| 沾化县| 偏关县| 黄浦区| 张北县| 清流县| 洛扎县| 台江县| 虹口区| 云和县| 平定县| 南漳县| 隆回县| 宣城市| 格尔木市|