本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種服務(wù)框架系統(tǒng)。
背景技術(shù):
目前,互聯(lián)網(wǎng)行業(yè)發(fā)展迅速,為提高基礎(chǔ)服務(wù)的開發(fā)速率,和方便基礎(chǔ)服務(wù)的迭代,提出了服務(wù)框架的應(yīng)用。與軟件框架不同,服務(wù)框架是面向特定領(lǐng)域的可復(fù)用軟件集成平臺(tái),反映了該領(lǐng)域應(yīng)用的一般需求和結(jié)構(gòu)。
雖然目前行業(yè)內(nèi)已經(jīng)有一些服務(wù)框架可以使用,但是存在服務(wù)框架響應(yīng)不夠及時(shí),響應(yīng)速度較低的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問題是提供一種服務(wù)框架系統(tǒng),提高服務(wù)框架系統(tǒng)的響應(yīng)速度。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種服務(wù)框架系統(tǒng),所述系統(tǒng)包括:
至少一個(gè)插件接口單元和框架核心單元;其中,所述插件接口單元,適于存儲(chǔ)插件的配置信息;所述框架核心單元,適于定時(shí)檢測(cè)所述插件的配置信息是否正確,當(dāng)所述插件的配置信息正確時(shí),控制所述插件處于啟動(dòng)狀態(tài)。
可選地,所述框架核心單元還適于當(dāng)所述插件的配置信息錯(cuò)誤時(shí),輸出插件配置錯(cuò)誤信息至所述插件的日志中。
可選地,所述框架核心單元還適于:
檢測(cè)所述插件的配置信息是否從所述插件接口單元中移除,當(dāng)所述插件的配置信息被移除時(shí),刪除所述框架核心單元中與所述插件對(duì)應(yīng)的服務(wù)功能模塊。
可選地,所述服務(wù)框架系統(tǒng)還包括所述服務(wù)框架系統(tǒng)還包括至少一個(gè)代理服務(wù)單元,所述代理服務(wù)單元適于存儲(chǔ)代理服務(wù)的配置信息;所述框架核心單元還適于檢測(cè)所述代理服務(wù)的配置信息是否正確,當(dāng)所述代理服務(wù)的配置信息正確時(shí),控制所述代理服務(wù)處于生效狀態(tài)。
可選地,所述框架核心單元還適于當(dāng)所述代理服務(wù)的配置信息錯(cuò)誤時(shí),輸出錯(cuò)誤信息至指定目錄。
可選地,所述框架核心單元還存儲(chǔ)有所述服務(wù)框架系統(tǒng)的環(huán)境配置信息所依賴的庫(kù)。
可選地,所述框架核心單元還適于當(dāng)解析出客戶端發(fā)來的服務(wù)請(qǐng)求所針對(duì)的插件時(shí),查詢針對(duì)該插件的干預(yù)權(quán)限信息,使得該插件根據(jù)所述干預(yù)權(quán)限信息指示的處理權(quán)限,在多個(gè)備選處理階段中選擇符合所述處理權(quán)限的處理階段。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
本發(fā)明實(shí)施例提供的服務(wù)框架系統(tǒng),包括插件接口單元和框架核心單元。所述插件接口單元適于存儲(chǔ)插件的配置信息,本發(fā)明實(shí)施例通過框架核心單元定時(shí)檢測(cè)所述插件的配置信息是否正確,當(dāng)所述插件的配置信息正確時(shí),控制所述插件處于啟動(dòng)狀態(tài),從而實(shí)現(xiàn)定期自動(dòng)檢測(cè)各個(gè)插件的配置信息的正確性,避免在啟動(dòng)插件前還需手動(dòng)驗(yàn)證該插件配置信息的正確性,提高了驗(yàn)證服務(wù)框架配置信息的效率,進(jìn)而提高了服務(wù)框架系統(tǒng)響應(yīng)服務(wù)請(qǐng)求的速率。與此同時(shí),本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)包括至少一個(gè)插件接口單元,因而實(shí)現(xiàn)一個(gè)服務(wù)框架系統(tǒng)支持多個(gè)插件服務(wù)模塊的開發(fā)和使用,從而提高服務(wù)框架系統(tǒng)的可復(fù)用性。
進(jìn)一步地,本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)通過在檢測(cè)到插件的配置信息被移除時(shí),刪除框架核心單元中與所述插件對(duì)應(yīng)的服務(wù)功能模塊,從而使得冗余的服務(wù)功能模塊得到及時(shí)的刪除,不需要手動(dòng)檢測(cè)和卸載,提高了服務(wù)框架的維護(hù)效率。
進(jìn)一步地,本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)還包括至少一個(gè)代理服務(wù)單元,所述代理服務(wù)單元存儲(chǔ)相應(yīng)的配置信息,使得服務(wù)框架系統(tǒng)同時(shí)支持插件服務(wù)和代理服務(wù),提高服務(wù)框架系統(tǒng)的通用性。
進(jìn)一步地,本發(fā)明實(shí)施例的框架核心單元中還存儲(chǔ)有所述服務(wù)框架系統(tǒng)的環(huán)境配置信息所依賴的庫(kù),使得在安裝服務(wù)框架系統(tǒng)時(shí),只需要將服務(wù)框架拷貝到預(yù)設(shè)的目錄即可使用,提高了服務(wù)框架系統(tǒng)的可移植性。
附圖說明
圖1是本發(fā)明實(shí)施例中的一種服務(wù)框架系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例中的另一種服務(wù)框架系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
如前所述,為提高基礎(chǔ)服務(wù)的開發(fā)速率,提出了服務(wù)框架的應(yīng)用。雖然目前行業(yè)內(nèi)已經(jīng)有一些服務(wù)框架可以使用,但是存在驗(yàn)證服務(wù)框架配置效率較低的問題。
本發(fā)明實(shí)施例提供的服務(wù)框架系統(tǒng),包括插件接口單元和框架核心單元。所述插件接口單元適于存儲(chǔ)插件的配置信息,本發(fā)明實(shí)施例通過框架核心單元定時(shí)檢測(cè)所述插件的配置信息是否正確,當(dāng)所述插件的配置信息正確時(shí),控制所述插件處于啟動(dòng)狀態(tài),從而實(shí)現(xiàn)定期自動(dòng)檢測(cè)各個(gè)插件的配置信息的正確性,避免在啟動(dòng)插件前還需手動(dòng)驗(yàn)證該插件配置信息的正確性,提高了驗(yàn)證服務(wù)框架配置信息的效率。與此同時(shí),本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)包括至少一個(gè)插件接口單元,因而實(shí)現(xiàn)一個(gè)服務(wù)框架系統(tǒng)支持多個(gè)插件服務(wù)模塊的開發(fā)和使用,從而提高服務(wù)框架系統(tǒng)的可復(fù)用性。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說明。
圖1是本發(fā)明實(shí)施例中的一種服務(wù)框架系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示的服務(wù)框架系統(tǒng)10,可以包括:至少一個(gè)插件接口單元101和框架核心單元102。
所述插件接口單元101,適于存儲(chǔ)插件的配置信息。
在具體實(shí)施中,每個(gè)所述插件接口單元101與一個(gè)插件的業(yè)務(wù)功能模塊對(duì)應(yīng),多個(gè)插件接口單元101形成一個(gè)插件池。例如,將所述服務(wù)框架系統(tǒng)應(yīng)用于二手物品交易平臺(tái)的開發(fā),該服務(wù)框架系統(tǒng)具有2個(gè)插件接口單元101,分別對(duì)應(yīng)“二手車”和“二手房”的插件的服務(wù)功能模塊。
本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)包括至少一個(gè)插件接口單元101,因而可實(shí)現(xiàn)一個(gè)服務(wù)框架支持多個(gè)插件服務(wù)模塊的開發(fā)和使用。
所述框架核心單元102,適于定時(shí)檢測(cè)所述插件的配置信息是否正確,當(dāng)所述插件的配置信息正確時(shí),控制所述插件處于啟動(dòng)狀態(tài)。
在具體實(shí)施中,檢測(cè)插件的配置信息是否正確是指檢測(cè)插件的配置信息是否符合預(yù)設(shè)的框架開發(fā)規(guī)范所要求的配置信息。其中,所述框架開發(fā)規(guī)范所要求的配置信息可以預(yù)先存儲(chǔ)于所述框架核心單元102。
在具體實(shí)施中,每個(gè)所述插件接口單元101可以位于同一級(jí)目錄,該目錄為預(yù)先設(shè)定的目錄L。例如,所述服務(wù)框架系統(tǒng)包括2個(gè)插件接口單元101,分別記為第一插件接口單元和第二插件接口單元,第一插件接口單元存儲(chǔ)第一插件的配置信息,第二插件接口單元存儲(chǔ)第二插件的配置信息。第一插件接口單元和第二插件接口單元均位于目錄L下,所述框架核心單元102在定期檢測(cè)配置信息時(shí),按照預(yù)先設(shè)定的目錄L所指示的路徑可查找到第一插件接口單元和第二插件接口單元,并可讀取其中各自存儲(chǔ)的配置信息,以進(jìn)一步驗(yàn)證各自配置信息是否正確。
具體地,所述框架核心單元102可以包括定時(shí)器和檢測(cè)執(zhí)行模塊,由定時(shí)器定期發(fā)出檢測(cè)命令后,檢測(cè)執(zhí)行模塊根據(jù)檢測(cè)命令檢測(cè)相應(yīng)的插件接口單元101中的配置信息是否正確。如果正確,則控制所述插件處于啟動(dòng)狀態(tài)。具體而言,如果是首次啟動(dòng),則控制啟動(dòng)所述插件,如果不是首次啟動(dòng)(也即,所述插件已經(jīng)處于啟動(dòng)狀態(tài)),則控制所述插件維持啟動(dòng)狀態(tài)。
由于設(shè)置所述框架核心單元102定時(shí)檢測(cè)所述插件的配置信息,那么在需要新增插件時(shí),可以在該同級(jí)目錄下新增一個(gè)插件接口單元101存儲(chǔ)新增插件的配置信息,一旦新增的插件接口單元中的配置信息經(jīng)定時(shí)檢測(cè)驗(yàn)證正確時(shí),則可啟動(dòng)該新增插件,并將其加入服務(wù)行列,從而不需要人工手動(dòng)啟動(dòng)新增插件,提高了驗(yàn)證配置信息的效率和啟動(dòng)插件的效率,進(jìn)而提高了服務(wù)框架系統(tǒng)的響應(yīng)速率。
在具體實(shí)施中,所述框架核心單元102還適于檢測(cè)所述插件的配置信息是否從所述插件接口單元101中移除,當(dāng)所述插件的配置信息被移除時(shí),刪除所述框架核心單元102中與所述插件對(duì)應(yīng)的服務(wù)功能模塊。插件對(duì)應(yīng)的服務(wù)功能模塊為實(shí)現(xiàn)該插件業(yè)務(wù)功能的具體模塊,存儲(chǔ)于所述框架核心單元102中。具體地,可以設(shè)置所述插件接口單元101位于指定的路徑下,所述框架核心單元102可以通過檢測(cè)命令查找所述在該指定的路徑下所述插件的配置信息是否存在,如果不存在,則表明所述插件的配置信息被移除,刪除所述框架核心單元102中與所述插件對(duì)應(yīng)的服務(wù)功能模塊。
由此可以看出,本發(fā)明實(shí)施例通過所述框架核心單元定時(shí)檢測(cè)所述插件的配置信息是否正確,可以實(shí)現(xiàn)及時(shí)啟動(dòng)新增插件和及時(shí)刪除冗余的插件的服務(wù)功能模塊。
在具體實(shí)施中,所述框架核心單元102還適于當(dāng)所述插件的配置信息錯(cuò)誤時(shí),輸出插件配置錯(cuò)誤信息至所述插件的日志中。所述插件的日志可以存放于特定的日志目錄下。通過輸出錯(cuò)誤信息到日志中,可以方便排查插件服務(wù)的錯(cuò)誤原因。
圖2是本發(fā)明實(shí)施例中的另一種服務(wù)框架系統(tǒng)的結(jié)構(gòu)示意圖。所述服務(wù)框架系統(tǒng)20可以包括:至少一個(gè)插件接口單元201和框架核心單元202。其中:
所述插件接口單元201,適于存儲(chǔ)插件的配置信息;
所述框架核心單元202,適于定時(shí)檢測(cè)所述插件的配置信息是否正確,當(dāng)所述插件的配置信息正確時(shí),控制所述插件處于啟動(dòng)狀態(tài)。
有關(guān)所述插件接口單元201和所述框架核心單元202的上述功能的說明可以對(duì)應(yīng)參照?qǐng)D1中所述插件接口單元101和所述框架核心單元102的說明,不再贅述。
在具體實(shí)施中,所述服務(wù)框架系統(tǒng)20還可以包括:至少一個(gè)代理服務(wù)單元203,所述代理服務(wù)單元203適于存儲(chǔ)代理服務(wù)的配置信息;所述框架核心單元202還適于檢測(cè)所述代理服務(wù)的配置信息是否正確,當(dāng)所述代理服務(wù)的配置信息正確時(shí),控制所述代理服務(wù)處于生效狀態(tài)。
在具體實(shí)施中,所述框架核心單元202可以定時(shí)檢測(cè)所述代理服務(wù)的配置信息是否正確,也可以設(shè)置在其他事件發(fā)生時(shí)觸發(fā)檢測(cè)所述代理服務(wù)的配置信息。
上述檢測(cè)代理服務(wù)的配置信息是否正確是指檢測(cè)所述代理服務(wù)是否符合規(guī)定的代理服務(wù)配置文件開發(fā)規(guī)范,例如,可以將nginx代理服務(wù)配置作為代理服務(wù)配置文件開發(fā)規(guī)范。
在具體實(shí)施中,如果新增了代理服務(wù),只需要將新增的代理服務(wù)的配置信息存放于指定的代理服務(wù)目錄,由此,通過本發(fā)明實(shí)施例的所述框架核心單元202檢測(cè)到所述代理服務(wù)的配置信息正確時(shí),則控制所述代理服務(wù)處于生效狀態(tài),從而實(shí)現(xiàn)及時(shí)使代理服務(wù)生效,進(jìn)而提高代理服務(wù)的響應(yīng)速度。
在具體實(shí)施中,所述框架核心單元202還適于當(dāng)所述代理服務(wù)的配置信息錯(cuò)誤時(shí),輸出代理服務(wù)錯(cuò)誤信息至指定目錄,以便從所述指定目錄獲取代理服務(wù)的錯(cuò)誤原因,從而方便代理服務(wù)的維護(hù)。
所述框架核心單元202還存儲(chǔ)有所述服務(wù)框架系統(tǒng)的環(huán)境配置信息所依賴的庫(kù),使得在安裝服務(wù)框架系統(tǒng)時(shí),只需要將服務(wù)框架拷貝到預(yù)設(shè)的目錄即可使用,從而提高服務(wù)框架系統(tǒng)的可移植性。
在具體實(shí)施中,所述框架核心單元202還適于當(dāng)解析出客戶端發(fā)來的服務(wù)請(qǐng)求所針對(duì)的插件時(shí),查詢針對(duì)該插件的干預(yù)權(quán)限信息,使得該插件根據(jù)所述干預(yù)權(quán)限信息指示的處理權(quán)限,在多個(gè)備選處理階段中選擇符合所述處理權(quán)限的處理階段處理所述服務(wù)請(qǐng)求。
具體地,在一個(gè)非限制性的例子中,客戶端發(fā)來的服務(wù)請(qǐng)求可以為針對(duì)某插件的http請(qǐng)求包,該http請(qǐng)求包需要由相應(yīng)插件的服務(wù)功能模塊來實(shí)現(xiàn)響應(yīng),本實(shí)施例通過查詢針對(duì)該插件的干預(yù)權(quán)限信息,可以獲得該插件對(duì)應(yīng)的處理權(quán)限,進(jìn)一步而言,可以獲知該插件可以在哪些備選處理階段進(jìn)行哪些權(quán)限的處理操作。
例如,一般而言,在插件獲取http請(qǐng)求包后,要經(jīng)過11個(gè)處理階段,分別為:讀取請(qǐng)求內(nèi)容階段、server請(qǐng)求地址重寫階段、配置查找階段、請(qǐng)求地址重寫階段、訪問權(quán)限檢查提交階段、訪問權(quán)限檢查準(zhǔn)備階段、訪問權(quán)限檢查階段、訪問權(quán)限檢查提交階段、配置項(xiàng)try_files處理階段、內(nèi)容產(chǎn)生階段和日志模塊處理階段。本實(shí)施例中的所述框架核心單元202預(yù)設(shè)了不同插件各自的處理權(quán)限,處理權(quán)限包括可以處理的階段和處理操作的內(nèi)容,從而使得不同的插件可以在不同的處理階段進(jìn)行相應(yīng)的處理操作。例如,通過預(yù)設(shè)插件A和插件B的處理權(quán)限,使得插件A可以在上述備選階段中的“訪問權(quán)限檢查準(zhǔn)備階段”進(jìn)行特別權(quán)限的處理操作,插件B可以在上述備選階段中的“訪問權(quán)限檢查提交階段”進(jìn)行特別權(quán)限的處理操作等。而現(xiàn)有技術(shù)中,插件A和插件B均只能在上述11個(gè)備選階段的每個(gè)階段進(jìn)行常規(guī)權(quán)限的操作,具體而言,插件A不能在11個(gè)備選階段中的某個(gè)階段進(jìn)行特別權(quán)限的操作,插件B也不能在上述備選階段中進(jìn)行特別權(quán)限的操作。相對(duì)于常規(guī)權(quán)限,特別權(quán)限可以具有更高的處理優(yōu)先級(jí),或者可以訪問更高級(jí)的數(shù)據(jù),或者可以具有其他特權(quán)。由上,通過處理權(quán)限的設(shè)置,使得服務(wù)請(qǐng)求的處理過程更加靈活、更加多樣性。
需要說明的是,所述備選處理階段不以上述列舉為限。
由此,本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)不僅支持插件服務(wù),還同時(shí)支持代理服務(wù),提高服務(wù)框架系統(tǒng)的通用性。此外本發(fā)明實(shí)施例的服務(wù)框架系統(tǒng)通過對(duì)不同插件設(shè)置在不同備選處理階段的操作,從而提高服務(wù)框架系統(tǒng)對(duì)不同插件的兼容性,進(jìn)而提高服務(wù)框架系統(tǒng)的復(fù)用性。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于以計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。