本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種多因子算法服務(wù)的管理系統(tǒng)、終端及方法。
背景技術(shù):
人臉、眼紋、聲紋、虹膜和指紋等生物信息都可以用來識別自然人,通過這些信息進(jìn)行的個(gè)人身份識別稱為生物識別技術(shù)。但是,通過單一的生物信息(即,單因子)來識別,往往準(zhǔn)確率不高,因此,為了提高對生物識別的準(zhǔn)確性,可以采用多種生物信息的結(jié)合(即,多因子)來實(shí)現(xiàn)。
作為支撐生物識別的算法服務(wù),需要利用中央處理器(centralprocessingunit;以下簡稱:cpu)、內(nèi)存等服務(wù)器資源,而多因子生物識別算法服務(wù)需要大量的服務(wù)器資源。但是,在現(xiàn)有技術(shù)中,多因子算法服務(wù)所需的服務(wù)器資源是相互獨(dú)立的,即,每一種算法服務(wù)都分別部署在不同的物理服務(wù)器上,因此,無法統(tǒng)一管理,并且難以進(jìn)行資源的靈活分配。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種多因子算法服務(wù)的管理系統(tǒng)、終端及方法,以實(shí)現(xiàn)對服務(wù)器資源的統(tǒng)一調(diào)度和靈活分配。
為達(dá)到上述目的,本發(fā)明實(shí)施例提供了一種多因子算法服務(wù)的管理系統(tǒng),包括多個(gè)用于運(yùn)行所述算法服務(wù)的算法服務(wù)器,還包括:管理服務(wù)器,用于根據(jù)每個(gè)所述算法服務(wù)器的資源數(shù)據(jù)對所述算法服務(wù)進(jìn)行資源分配,所述資源數(shù)據(jù)用于指示所述算法服務(wù)器的資源利用情況,多個(gè)所述算法服務(wù)器中分別設(shè)置有功能模塊,用于根據(jù)所述管理服務(wù)器的資源分配結(jié)果,部署所述算法服務(wù)。
本發(fā)明實(shí)施例還提供了一種終端,包括:請求模塊,用于向管理服務(wù)器發(fā)送清單獲取請求,所述清單獲取請求中包含待訪問算法服務(wù)的服務(wù)名稱;緩存模塊,用于接收并緩存所述管理服務(wù)器返回的分配清單,所述分配清單包含所述待訪問算法服務(wù)所分配的算法服務(wù)器的識別碼;訪問模塊,用于根據(jù)所述識別碼,向所述算法服務(wù)器發(fā)送訪問請求,所述訪問請求中包含所述待訪問算法服務(wù)的服務(wù)名稱;訪問結(jié)果接收模塊,用于接收所述算法服務(wù)器返回的訪問結(jié)果信息。
本發(fā)明實(shí)施例還提供了一種多因子算法服務(wù)的管理方法,所述算法服務(wù)運(yùn)行于多個(gè)算法服務(wù)器中,所述方法包括:根據(jù)每個(gè)所述算法服務(wù)器的資源數(shù)據(jù)對所述算法服務(wù)進(jìn)行資源分配,所述資源數(shù)據(jù)用于指示所述算法服務(wù)器的資源利用情況;將資源分配結(jié)果發(fā)送至所述算法服務(wù)器。
本發(fā)明實(shí)施例還提供了一種多因子算法服務(wù)的管理方法,應(yīng)用于多個(gè)用于運(yùn)行所述算法服務(wù)的算法服務(wù)器中,包括:向管理服務(wù)器發(fā)送資源數(shù)據(jù),所述資源數(shù)據(jù)用于指示所述算法服務(wù)器的資源利用情況;根據(jù)所述管理服務(wù)器的資源分配結(jié)果,部署所述算法服務(wù)。
本發(fā)明實(shí)施例還提供了一種多因子算法服務(wù)的管理方法,包括:向管理服務(wù)器發(fā)送清單獲取請求,所述清單獲取請求中包含待訪問算法服務(wù)的服務(wù)名稱;接收并緩存所述管理服務(wù)器返回的分配清單,所述分配清單包含所述待訪問算法服務(wù)所分配的算法服務(wù)器的識別碼;根據(jù)所述識別碼,向所述算法服務(wù)器發(fā)送訪問請求,所述訪問請求中包含所述待訪問算法服務(wù)的服務(wù)名稱;接收所述算法服務(wù)器返回的訪問結(jié)果信息。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理系統(tǒng)、終端及方法,通過增設(shè)管理服務(wù)器,對多個(gè)算法服務(wù)器的資源進(jìn)行統(tǒng)一調(diào)度和靈活分配,通過在算法服務(wù)器中增設(shè)功能模塊,實(shí)現(xiàn)了不同服務(wù)算法之間的資源隔離。
附圖說明
圖1為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)一個(gè)實(shí)施例的系統(tǒng)框圖;
圖2為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)中管理服務(wù)器實(shí)施例的結(jié)構(gòu)示意框圖;
圖3為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)另一個(gè)實(shí)施例的系統(tǒng)框圖;
圖4為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)中算法服務(wù)器實(shí)施例的結(jié)構(gòu)示意框圖;
圖5為本發(fā)明提供的終端一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖6為本發(fā)明提供的多因子算法服務(wù)的管理方法一個(gè)實(shí)施例的方法流程圖;
圖7為本發(fā)明提供的多因子算法服務(wù)的管理方法另一個(gè)實(shí)施例的方法流程圖;
圖8為本發(fā)明提供的多因子算法服務(wù)的管理方法又一個(gè)實(shí)施例的方法流程圖;
圖9為本發(fā)明提供的多因子算法服務(wù)的管理方法再一個(gè)實(shí)施例的方法流程圖。
附圖標(biāo)記說明:
1-算法服務(wù)器、2-管理服務(wù)器、11-功能模塊、21-壓縮模塊、22-第一接收模塊、23-分配模塊、24-第一發(fā)送模塊、25-再分配模塊、26-第二發(fā)送模塊、3-客戶端、111-第一接收單元、112-容器創(chuàng)建單元、113-執(zhí)行單元、114-容器管理單元、31-請求模塊、32-緩存模塊、33-訪問模塊、34-訪問結(jié)果接收模塊。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明實(shí)施例多因子算法服務(wù)的管理系統(tǒng)、終端及方法進(jìn)行詳細(xì)描述。
實(shí)施例一
圖1為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)一個(gè)實(shí)施例的系統(tǒng)框圖。如圖1所示,本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理系統(tǒng),包括多個(gè)算法服務(wù)器1和管理服務(wù)器2。其中,算法服務(wù)器1用于運(yùn)行算 法服務(wù);管理服務(wù)器2用于根據(jù)每個(gè)算法服務(wù)器1的資源數(shù)據(jù)對算法服務(wù)進(jìn)行資源分配,該資源數(shù)據(jù)用于指示算法服務(wù)器1的資源利用情況。多個(gè)算法服務(wù)器1中分別設(shè)置有功能模塊11。該功能模塊11用于根據(jù)管理服務(wù)器2的資源分配結(jié)果,部署算法服務(wù)。
在本發(fā)明實(shí)施例中,多因子算法服務(wù)可以包括但不限于:人臉識別(face)、眼紋識別(eye)、聲紋識別(voice)、虹膜識別(iris)、指紋識別(finger)等算法服務(wù)。每個(gè)算法服務(wù)器1可以運(yùn)行一種或者多種算法服務(wù)。管理服務(wù)器2根據(jù)每個(gè)算法服務(wù)器1的資源利用情況對算法服務(wù)進(jìn)行資源分配。算法服務(wù)器1中的功能模塊11根據(jù)管理服務(wù)器2的資源分配結(jié)果,對各個(gè)算法服務(wù)進(jìn)行部署,分配相應(yīng)的資源容器。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理系統(tǒng),通過增設(shè)管理服務(wù)器,對多個(gè)算法服務(wù)器的資源進(jìn)行統(tǒng)一調(diào)度和靈活分配,通過在算法服務(wù)器中增設(shè)功能模塊,實(shí)現(xiàn)了不同服務(wù)算法之間的資源隔離。
實(shí)施例二
圖2為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)中管理服務(wù)器實(shí)施例的結(jié)構(gòu)示意框圖。如圖2所示,在上述實(shí)施例的基礎(chǔ)上,管理服務(wù)器2可以包括:壓縮模塊21、第一接收模塊22、分配模塊23和第一發(fā)送模塊24。
其中,壓縮模塊21用于對算法服務(wù)的可執(zhí)行程序進(jìn)行壓縮處理,生成算法服務(wù)包;第一接收模塊22用于接收每個(gè)算法服務(wù)器的資源數(shù)據(jù);分配模塊23用于根據(jù)該資源數(shù)據(jù),對算法服務(wù)進(jìn)行資源分配,生成分配清單(manifest文件);第一發(fā)送模塊24用于將壓縮模塊21生成的算法服務(wù)包和分配模塊23生成的分配清單發(fā)送至相應(yīng)的算法服務(wù)器。
在對某個(gè)算法服務(wù)進(jìn)行部署時(shí),壓縮模塊21將該算法服務(wù)的可執(zhí)行程序打包,生成算法服務(wù)包。同時(shí),分配模塊23根據(jù)各算法服務(wù)器的資源數(shù)據(jù)以及算法服務(wù)對資源的需求量,對算法服務(wù)進(jìn)行資源分配,生成分配清單(manifest文件)。然后,第一發(fā)送模塊24將上述算法服務(wù)包和分配清單發(fā)送至相應(yīng)的算法服務(wù)器,以進(jìn)行部署,分配資源容器。
具體地,上述分配清單可以包括:算法服務(wù)的服務(wù)名稱、分配的算 法服務(wù)器的數(shù)量、分配的每個(gè)算法服務(wù)器的識別碼(identity;以下簡稱:id)、單個(gè)算法服務(wù)器中分配的cpu量和單個(gè)算法服務(wù)器中分配的內(nèi)存量。例如,該manifest文件可以包括{“service”:“eye”,“cpu”:16,“mem”:32,“servers”:1},表示服務(wù)名稱為“眼紋識別”,單個(gè)算法服務(wù)器中分配的cpu量為16核(core),單個(gè)算法服務(wù)器中分配的內(nèi)存量為32gb,分配的算法服務(wù)器的數(shù)量為1。
在本發(fā)明實(shí)施例中,當(dāng)客戶端訪問算法服務(wù)時(shí),首先訪問管理服務(wù)器,從管理服務(wù)器獲取待訪問算法服務(wù)的分配清單,管理服務(wù)器接收到客戶端發(fā)送的清單獲取請求后,根據(jù)清單獲取請求中的服務(wù)名稱,將與其對應(yīng)的分配清單發(fā)送至客戶端。然后,客戶端根據(jù)分配清單中的算法服務(wù)器的id,訪問部署在該算法服務(wù)器中的算法服務(wù)。如果該算法服務(wù)部署在多個(gè)算法服務(wù)器中,則客戶端可以隨機(jī)選取某個(gè)算法服務(wù)器進(jìn)行訪問。
進(jìn)一步地,管理服務(wù)器2還可以包括:再分配模塊25和第二發(fā)送模塊26。
其中,再分配模塊25用于根據(jù)算法服務(wù)的訪問量和每個(gè)算法服務(wù)器的資源數(shù)據(jù),對該算法服務(wù)進(jìn)行資源再分配,更新分配清單;第二發(fā)送模塊26用于將分配清單發(fā)送至相應(yīng)的算法服務(wù)器。
隨著客戶端對算法服務(wù)的訪問量的不斷變化,每個(gè)算法服務(wù)隊(duì)資源的需求也不同。因此,當(dāng)算法服務(wù)器上部署了算法服務(wù)后,可以根據(jù)算法服務(wù)的訪問量和各算法服務(wù)器的資源利用情況,對該算法服務(wù)進(jìn)行資源調(diào)整。如果僅調(diào)整單臺算法服務(wù)器上的cpu量和內(nèi)存量,則第二發(fā)送模塊26將包含cpu量和內(nèi)存量的分配清單發(fā)送至相應(yīng)的服務(wù)器,以進(jìn)行調(diào)整。如果需要調(diào)整算法服務(wù)器的數(shù)量,則第二發(fā)送模塊26需要將算法服務(wù)包和分配清都發(fā)送至新分配的算法服務(wù)器,以部署算法服務(wù)。而沒有再被分配的算法服務(wù)器則根據(jù)管理服務(wù)器的指令,銷毀相應(yīng)的資源容器。避免某個(gè)算法服務(wù)大量占用系統(tǒng)資源,導(dǎo)致影響其它算法服務(wù)。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理系統(tǒng),通過增設(shè)管理服務(wù)器,對多個(gè)算法服務(wù)器的資源進(jìn)行統(tǒng)一調(diào)度和靈活分配,通過在算法 服務(wù)器中增設(shè)功能模塊,實(shí)現(xiàn)了不同服務(wù)算法之間的資源隔離。同時(shí),根據(jù)算法服務(wù)的運(yùn)行情況和各算法服務(wù)器的資源利用情況,實(shí)現(xiàn)了對資源的動(dòng)態(tài)調(diào)整和共享,提高了資源利用率。
實(shí)施例三
圖3為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)另一個(gè)實(shí)施例的系統(tǒng)框圖。如圖3所示,管理服務(wù)器2中的生物識別算法注冊服務(wù)(biorosterservice)根據(jù)每個(gè)算法服務(wù)器1的資源利用情況對算法服務(wù)進(jìn)行資源分配。每個(gè)算法服務(wù)器1中的生物識別資源框架(bioframework)根據(jù)管理服務(wù)器2的資源分配結(jié)果,對各個(gè)算法服務(wù)進(jìn)行部署,分配相應(yīng)的資源容器,如“人臉識別”(face)、“眼紋識別”(eye)、“聲紋識別”(voice)等。當(dāng)客戶端(bioclient)3訪問算法服務(wù)時(shí),首先訪問biorosterservice,從biorosterservice獲取待訪問算法服務(wù)的分配清單,然后根據(jù)分配清單中的算法服務(wù)器1的id,訪問部署在該算法服務(wù)器1中的算法服務(wù)。如果該算法服務(wù)部署在多個(gè)算法服務(wù)器1中,則客戶端3可以隨機(jī)選取某個(gè)算法服務(wù)器進(jìn)行訪問。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理系統(tǒng),通過增設(shè)管理服務(wù)器,對多個(gè)算法服務(wù)器的資源進(jìn)行統(tǒng)一調(diào)度和靈活分配,實(shí)現(xiàn)了對算法服務(wù)器的靈活訪問,通過在算法服務(wù)器中增設(shè)功能模塊,實(shí)現(xiàn)了不同服務(wù)算法之間的資源隔離。
實(shí)施例四
圖4為本發(fā)明提供的多因子算法服務(wù)的管理系統(tǒng)中算法服務(wù)器實(shí)施例的結(jié)構(gòu)示意框圖。如圖4所示,在圖1所示實(shí)施例的基礎(chǔ)上,功能模塊11可以包括:第一接收單元111、容器創(chuàng)建單元112和執(zhí)行單元113。
其中,第一接收單元111用于接收管理服務(wù)器發(fā)送的算法服務(wù)包和分配清單;容器創(chuàng)建單元112用于根據(jù)第一接收單元111接收到的分配清單,為算法服務(wù)創(chuàng)建資源容器,該資源容器包括為算法服務(wù)提供的cpu量和內(nèi)存量;執(zhí)行單元113用于對算法服務(wù)包進(jìn)行解壓處理,獲取該算法服務(wù)的可執(zhí)行程序,并在資源容器中執(zhí)行上述可執(zhí)行程序。
在對某個(gè)算法服務(wù)進(jìn)行部署時(shí),第一接收單元111接收打包后的算 法服務(wù)包和分配清單,容器創(chuàng)建單元112根據(jù)該分配清單創(chuàng)建資源容器,執(zhí)行單元113將算法服務(wù)包解壓縮,并在資源容器中執(zhí)行該算法服務(wù)的可執(zhí)行程序。
在本發(fā)明實(shí)施例中,每個(gè)新的算法服務(wù)器上線,都需要設(shè)置功能模塊11。功能模塊11主動(dòng)在管理服務(wù)器上完成注冊并與管理服務(wù)器保持心跳,通過心跳信息將資源數(shù)據(jù)發(fā)送至管理服務(wù)器。
當(dāng)客戶端訪問算法服務(wù)時(shí),首先訪問管理服務(wù)器,從管理服務(wù)器獲取待訪問算法服務(wù)的分配清單,然后根據(jù)分配清單中的算法服務(wù)器的id,訪問部署在該算法服務(wù)器中的算法服務(wù)。算法服務(wù)器接收到客戶端發(fā)送的訪問請求后,根據(jù)待訪問算法服務(wù)的服務(wù)名稱,訪問為該算法服務(wù)創(chuàng)建的資源容器,進(jìn)行相應(yīng)的處理操作。然后,將訪問結(jié)果信息發(fā)送至客戶端。
當(dāng)算法服務(wù)器上部署了算法服務(wù)后,可以根據(jù)算法服務(wù)的訪問量和各算法服務(wù)器的資源利用情況,對該算法服務(wù)進(jìn)行資源調(diào)整。當(dāng)算法服務(wù)器接收到管理服務(wù)器發(fā)送的分配清單后,根據(jù)分配清單中的cpu量和內(nèi)存量,調(diào)整為算法服務(wù)創(chuàng)建的資源容器。
更進(jìn)一步地,功能模塊11還可以包括:容器管理單元114。該容器管理單元114用于對為算法服務(wù)創(chuàng)建的資源容器進(jìn)行監(jiān)控、維護(hù)或銷毀。
在本發(fā)明實(shí)施例中,容器管理單元114可以對資源容器的生命周期進(jìn)行管理,即,根據(jù)管理服務(wù)器的指令對已創(chuàng)建的資源容器進(jìn)行相應(yīng)的數(shù)據(jù)監(jiān)控;定期或不定期對資源容器進(jìn)行維護(hù)(例如,進(jìn)行健康檢查或請求量負(fù)載均衡等);以及當(dāng)進(jìn)行資源調(diào)整時(shí),對不再需要的資源容器進(jìn)行銷毀。避免某個(gè)算法服務(wù)大量占用系統(tǒng)資源,導(dǎo)致影響其它算法服務(wù)。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理系統(tǒng),通過增設(shè)管理服務(wù)器,對多個(gè)算法服務(wù)器的資源進(jìn)行統(tǒng)一調(diào)度和靈活分配,通過在算法服務(wù)器中增設(shè)功能模塊,實(shí)現(xiàn)了不同服務(wù)算法之間的資源隔離。同時(shí),根據(jù)算法服務(wù)的運(yùn)行情況和各算法服務(wù)器的資源利用情況,實(shí)現(xiàn)了對資源的動(dòng)態(tài)調(diào)整和容器管理,提高了資源利用率。
實(shí)施例五
圖5為本發(fā)明提供的終端一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。如圖5所示,本發(fā)明上述實(shí)施例中的客戶端,可以為一個(gè)終端,也可以為集成在終端上的裝置或芯片,還可以為部署于終端上的軟件開發(fā)工具包(softwaredevelopmentkit;以下簡稱:sdk)。本發(fā)明實(shí)施例提供的終端,包括:請求模塊31、緩存模塊32、訪問模塊33和訪問結(jié)果接收模塊34。
其中,請求模塊31用于向管理服務(wù)器發(fā)送清單獲取請求,該清單獲取請求中包含待訪問算法服務(wù)的服務(wù)名稱;緩存模塊32用于接收并緩存管理服務(wù)器返回的分配清單,該分配清單包含待訪問算法服務(wù)所分配的算法服務(wù)器的識別碼;訪問模塊33用于根據(jù)該識別碼,向算法服務(wù)器發(fā)送訪問請求,該訪問請求中包含待訪問算法服務(wù)的服務(wù)名稱;訪問結(jié)果接收模塊34用于接收算法服務(wù)器返回的訪問結(jié)果信息。如果該算法服務(wù)部署在多個(gè)算法服務(wù)器中,則訪問模塊33可以隨機(jī)選取某個(gè)算法服務(wù)器進(jìn)行訪問。
在本發(fā)明實(shí)施例中,當(dāng)終端訪問算法服務(wù)時(shí),首先訪問管理服務(wù)器,請求模塊31向管理服務(wù)器發(fā)送清單獲取請求。緩存模塊32從管理服務(wù)器獲取待訪問算法服務(wù)的分配清單,并緩存該分配清單。然后,訪問模塊33根據(jù)分配清單中的算法服務(wù)器的id,訪問部署在該算法服務(wù)器中的算法服務(wù)。訪問結(jié)果接收模塊34接收算法服務(wù)器返回的訪問結(jié)果信息。
在本發(fā)明實(shí)施例中,緩存超過了一定時(shí)間,客戶端主動(dòng)訪問管理服務(wù)器以重新獲取分配清單,此時(shí),舊的分配清單緩存失效。當(dāng)訪問模塊33發(fā)出訪問請求超過一定時(shí)間后,若訪問結(jié)果接收模塊34仍未接收到訪問結(jié)果信息,則服務(wù)超時(shí),本次訪問失效。此時(shí),請求模塊31重新發(fā)送清單獲取請求,緩存模塊32接收并替換已緩存的分配清單。當(dāng)訪問結(jié)果接收模塊34接收到訪問失敗的訪問結(jié)果信息時(shí),說明服務(wù)不可用,本次訪問失效。此時(shí),請求模塊31重新發(fā)送清單獲取請求,緩存模塊32接收并替換已緩存的分配清單。
本發(fā)明實(shí)施例提供的終端,在訪問算法服務(wù)之前,首先訪問管理服務(wù)器,通過管理服務(wù)器對資源的統(tǒng)一調(diào)度和靈活分配,實(shí)現(xiàn)了對多個(gè)算法服務(wù)器的靈活訪問。并且在緩存失效或訪問失效的情況下,重新訪問 管理服務(wù)器,提高了訪問算法服務(wù)的有效性。
實(shí)施例六
圖6為本發(fā)明提供的多因子算法服務(wù)的管理方法一個(gè)實(shí)施例的方法流程圖,該方法的執(zhí)行主體可以為管理服務(wù)器,也可以為集成在管理服務(wù)器上的裝置或芯片。如圖6所示,該多因子算法服務(wù)的管理方法包括如下步驟:
s610,根據(jù)每個(gè)算法服務(wù)器的資源數(shù)據(jù)對算法服務(wù)進(jìn)行資源分配,該資源數(shù)據(jù)用于指示算法服務(wù)器的資源利用情況。
在本發(fā)明實(shí)施例中,多因子算法服務(wù)可以包括但不限于:face、eye、voice、iris、finger等算法服務(wù),可以運(yùn)行于多個(gè)算法服務(wù)器中。每個(gè)算法服務(wù)器可以運(yùn)行一種或者多種算法服務(wù)。首先,根據(jù)每個(gè)算法服務(wù)器的資源利用情況對算法服務(wù)進(jìn)行資源分配。
s620,將資源分配結(jié)果發(fā)送至算法服務(wù)器。
然后,將資源分配結(jié)果發(fā)送至算法服務(wù)器,算法服務(wù)器中的功能模塊根據(jù)管理服務(wù)器的資源分配結(jié)果,對各個(gè)算法服務(wù)進(jìn)行部署,分配相應(yīng)的資源容器。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理方法,根據(jù)算法服務(wù)器的資源利用情況,對多個(gè)算法服務(wù)器的資源進(jìn)行靈活分配,實(shí)現(xiàn)了資源的統(tǒng)一調(diào)度。
實(shí)施例七
圖7為本發(fā)明提供的多因子算法服務(wù)的管理方法另一個(gè)實(shí)施例的方法流程圖。如圖7所示,本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理方法還可以包括如下步驟:
s710,生物識別算法注冊服務(wù)(biorosterservice)接收每個(gè)算法服務(wù)器的資源數(shù)據(jù),根據(jù)該資源數(shù)據(jù)以及算法服務(wù)對資源的需求量,對算法服務(wù)進(jìn)行資源分配,生成分配清單manifest文件)。將算法服務(wù)的可執(zhí)行程序進(jìn)行壓縮處理,生成算法服務(wù)包。
具體地,上述分配清單可以包括:算法服務(wù)的服務(wù)名稱、分配的算法服務(wù)器的數(shù)量、分配的每個(gè)算法服務(wù)器的id,單個(gè)算法服務(wù)器中分配 的cpu量和單個(gè)算法服務(wù)器中分配的內(nèi)存量。例如,該manifest文件可以包括:{“service”:“eye”,“cpu”:16,“mem”:32,“servers”:1},表示服務(wù)名稱為“眼紋識別”,單個(gè)算法服務(wù)器中分配的cpu量為16核(core),單個(gè)算法服務(wù)器中分配的內(nèi)存量為32gb,分配的算法服務(wù)器的數(shù)量為1。
s720,biorosterservice將算法服務(wù)包和分配清單發(fā)送至相應(yīng)的算法服務(wù)器中的生物識別資源框架(bioframework)。
s730,bioframework根據(jù)manifest文件,為算法服務(wù)創(chuàng)建資源容器。
進(jìn)一步地,當(dāng)客戶端訪問算法服務(wù)時(shí),首先訪問管理服務(wù)器,從管理服務(wù)器獲取待訪問算法服務(wù)的分配清單。在接收到客戶端發(fā)送的清單獲取請求后,根據(jù)清單獲取請求中的服務(wù)名稱,將與其對應(yīng)的分配清單發(fā)送至客戶端。然后,客戶端根據(jù)分配清單中的算法服務(wù)器的id,訪問部署在該算法服務(wù)器中的算法服務(wù)。如果該算法服務(wù)部署在多個(gè)算法服務(wù)器中,則客戶端可以隨機(jī)選取某個(gè)算法服務(wù)器進(jìn)行訪問。
更進(jìn)一步地,在對算法服務(wù)進(jìn)行資源調(diào)整時(shí),管理服務(wù)器根據(jù)算法服務(wù)的訪問量和每個(gè)算法服務(wù)器的資源數(shù)據(jù),對算法服務(wù)進(jìn)行資源再分配,更新分配清單;并將分配清單發(fā)送至相應(yīng)的算法服務(wù)器。如果僅調(diào)整單臺算法服務(wù)器上的cpu量和內(nèi)存量,則將包含cpu量和內(nèi)存量的分配清單發(fā)送至相應(yīng)的服務(wù)器,以進(jìn)行調(diào)整。如果分配清單還用于指示算法服務(wù)器的數(shù)量的調(diào)整,則需要將算法服務(wù)包和分配清都發(fā)送至新分配的算法服務(wù)器,以部署算法服務(wù)。而沒有再被分配的算法服務(wù)器則根據(jù)管理服務(wù)器的指令,銷毀相應(yīng)的資源容器。避免某個(gè)算法服務(wù)大量占用系統(tǒng)資源,導(dǎo)致影響其它算法服務(wù)。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理方法,根據(jù)算法服務(wù)器的資源利用情況,對多個(gè)算法服務(wù)器的資源進(jìn)行統(tǒng)一調(diào)度和靈活分配。同時(shí),根據(jù)算法服務(wù)的運(yùn)行情況和各算法服務(wù)器的資源利用情況,實(shí)現(xiàn)了對資源的動(dòng)態(tài)調(diào)整和共享,提高了資源利用率。
實(shí)施例八
圖8為本發(fā)明提供的多因子算法服務(wù)的管理方法又一個(gè)實(shí)施例的方法流程圖,該方法的執(zhí)行主體可以為算法服務(wù)器,也可以為集成在算法 服務(wù)器上的裝置或芯片。如圖8所示,該多因子算法服務(wù)的管理方法包括如下步驟:
s810,向管理服務(wù)器發(fā)送資源數(shù)據(jù),該資源數(shù)據(jù)用于指示算法服務(wù)器的資源利用情況。
在本發(fā)明實(shí)施例中,多因子算法服務(wù)可以包括但不限于:face、eye、voice、iris、finger等算法服務(wù),可以運(yùn)行于多個(gè)算法服務(wù)器中。每個(gè)算法服務(wù)器可以運(yùn)行一種或者多種算法服務(wù)。每個(gè)新的算法服務(wù)器上線,都需要設(shè)置功能模塊。功能模塊主動(dòng)在管理服務(wù)器上完成注冊,與管理服務(wù)器保持心跳,通過心跳信息將資源數(shù)據(jù)發(fā)送至管理服務(wù)器。
s820,根據(jù)管理服務(wù)器的資源分配結(jié)果,部署算法服務(wù)。
管理服務(wù)器根據(jù)每個(gè)算法服務(wù)器的資源利用情況對算法服務(wù)進(jìn)行資源分配。功能模塊根據(jù)管理服務(wù)器的資源分配結(jié)果,對各個(gè)算法服務(wù)進(jìn)行部署,分配相應(yīng)的資源容器。算法服務(wù)器接收管理服務(wù)器發(fā)送的算法服務(wù)包和分配清單,根據(jù)分配清單,為算法服務(wù)創(chuàng)建資源容器,該資源容器包括為算法服務(wù)提供的cpu量和內(nèi)存量。然后,對算法服務(wù)包進(jìn)行解壓處理,獲取該算法服務(wù)的可執(zhí)行程序,并在資源容器中執(zhí)行該可執(zhí)行程序。
具體地,上述分配清單可以包括:算法服務(wù)的服務(wù)名稱、分配的算法服務(wù)器的數(shù)量、分配的每個(gè)算法服務(wù)器的id,單個(gè)算法服務(wù)器中分配的cpu量和單個(gè)算法服務(wù)器中分配的內(nèi)存量。
當(dāng)客戶端訪問算法服務(wù)時(shí),算法服務(wù)器可以接收客戶端發(fā)送的訪問請求,該訪問請求中包含待訪問算法服務(wù)的服務(wù)名稱;根據(jù)待訪問算法服務(wù)的服務(wù)名稱,訪問為該算法服務(wù)創(chuàng)建的資源容器,進(jìn)行相應(yīng)的處理操作,獲取訪問結(jié)果信息;將訪問結(jié)果信息發(fā)送至客戶端。
在對算法服務(wù)進(jìn)行資源調(diào)整時(shí),算法服務(wù)器可以接收管理服務(wù)器發(fā)送的分配清單;根據(jù)該分配清單,調(diào)整為算法服務(wù)創(chuàng)建的資源容器。
在對算法服務(wù)進(jìn)行容器管理時(shí),算法服務(wù)器還可以對為算法服務(wù)創(chuàng)建的資源容器進(jìn)行監(jiān)控、維護(hù)或銷毀。在本發(fā)明實(shí)施例中,可以對資源容器的生命周期進(jìn)行管理,即,根據(jù)管理服務(wù)器的指令對已創(chuàng)建的資源容器進(jìn)行相應(yīng) 的數(shù)據(jù)監(jiān)控;定期或不定期對資源容器進(jìn)行維護(hù)(例如,進(jìn)行健康檢查或請求量負(fù)載均衡等),以及當(dāng)進(jìn)行資源調(diào)整時(shí),對不再需要的資源容器進(jìn)行銷毀。避免某個(gè)算法服務(wù)大量占用系統(tǒng)資源,導(dǎo)致影響其它算法服務(wù)。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理方法,通過管理服務(wù)器對多個(gè)算法服務(wù)器的資源進(jìn)行靈活分配,實(shí)現(xiàn)了資源的統(tǒng)一調(diào)度,通過增設(shè)功能模塊,實(shí)現(xiàn)了不同服務(wù)算法之間的資源隔離。同時(shí),根據(jù)算法服務(wù)的運(yùn)行情況和各算法服務(wù)器的資源利用情況,實(shí)現(xiàn)了對資源的動(dòng)態(tài)調(diào)整和容器管理,提高了資源利用率。
實(shí)施例九
圖9為本發(fā)明提供的多因子算法服務(wù)的管理方法再一個(gè)實(shí)施例的方法流程圖,該方法的執(zhí)行主體可以為客戶端,該客戶端可以為一個(gè)終端,也可以為集成在終端上的裝置或芯片,還可以為部署于終端上的sdk。如圖9所示,本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理方法可以包括如下步驟:
s910,向管理服務(wù)器發(fā)送清單獲取請求,該清單獲取請求中包含待訪問算法服務(wù)的服務(wù)名稱。
在本發(fā)明實(shí)施例中,當(dāng)客戶端訪問算法服務(wù)時(shí),首先訪問管理服務(wù)器,向管理服務(wù)器發(fā)送清單獲取請求。
s920,接收并緩存管理服務(wù)器返回的分配清單,該分配清單包含待訪問算法服務(wù)所分配的算法服務(wù)器的id。
管理服務(wù)器接收到清單獲取請求后,向客戶端發(fā)送分配清單,客戶端接收并緩存該分配清單。
s930,根據(jù)算法服務(wù)器的id,向算法服務(wù)器發(fā)送訪問請求,該訪問請求中包含待訪問算法服務(wù)的服務(wù)名稱。
然后,根據(jù)分配清單中算法服務(wù)器的id,訪問部署在該算法服務(wù)器中的算法服務(wù)。如果該算法服務(wù)部署在多個(gè)算法服務(wù)器中,則可以隨機(jī)選取某個(gè)算法服務(wù)器進(jìn)行訪問。
進(jìn)一步地,在執(zhí)行步驟s930之前,還可以包括:在緩存分配清單的同時(shí),進(jìn)行計(jì)時(shí)操作;當(dāng)計(jì)時(shí)達(dá)到第一預(yù)設(shè)時(shí)間閾值時(shí),重新向管理服務(wù)器發(fā)送清單獲取請求;接收并替換已緩存的分配清單。也就是說,當(dāng) 緩存超過了一定時(shí)間,客戶端主動(dòng)訪問管理服務(wù)器以重新獲取分配清單,此時(shí),舊的分配清單緩存失效。
s940,接收算法服務(wù)器返回的訪問結(jié)果信息。
更進(jìn)一步地,在執(zhí)行步驟s940之前,還可以包括:在發(fā)送訪問請求的同時(shí),進(jìn)行計(jì)時(shí)操作;當(dāng)計(jì)時(shí)達(dá)到第二預(yù)設(shè)時(shí)間閾值、且未接收到訪問結(jié)果信息時(shí),重新向管理服務(wù)器發(fā)送清單獲取請求;接收并替換已緩存的分配清單;根據(jù)分配清單中包含的算法服務(wù)器的id,向算法服務(wù)器發(fā)送訪問請求。當(dāng)客戶端發(fā)出訪問請求超過一定時(shí)間后,若仍未接收到訪問結(jié)果信息,則服務(wù)超時(shí),本次訪問失效。此時(shí),客戶端重新發(fā)送清單獲取請求,然后,接收并替換已緩存的分配清單。
另外,當(dāng)接收到算法服務(wù)器返回的用于指示訪問失敗的訪問結(jié)果信息時(shí),客戶端可以重新向管理服務(wù)器發(fā)送清單獲取請求,然后,接收并替換已緩存的分配清單。當(dāng)客戶算接收到訪問失敗的訪問結(jié)果信息時(shí),說明服務(wù)不可用,本次訪問失效。此時(shí),可以重新發(fā)送清單獲取請求。
本發(fā)明實(shí)施例提供的多因子算法服務(wù)的管理方法,客戶端在訪問算法服務(wù)之前,首先訪問管理服務(wù)器,通過管理服務(wù)器對資源的統(tǒng)一調(diào)度和靈活分配,實(shí)現(xiàn)了對多個(gè)算法服務(wù)器的靈活訪問。并且在緩存失效或訪問失效的情況下,重新訪問管理服務(wù)器,提高了訪問算法服務(wù)的有效性。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。