劉明偉,羅歡,張凌志
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510700)
目前,一些普通服務(wù)業(yè)務(wù)通過(guò)平臺(tái)就可以解決,極大地便利了大眾的生活,因此人們對(duì)于平臺(tái)的功能要求越來(lái)越高、越來(lái)越嚴(yán)格,微服務(wù)平臺(tái)仍然存在一些功能等待開(kāi)發(fā)[1-2]。
傳統(tǒng)的微服務(wù)平臺(tái)是通過(guò)云服務(wù)技術(shù)和智能終端設(shè)備構(gòu)建而成的,由于云服務(wù)技術(shù)應(yīng)用范圍有限,因此在使用過(guò)程中暴露出許多漏洞,最主要的問(wèn)題就是功能過(guò)于單一。適應(yīng)度函數(shù)是遺傳算法中的重要函數(shù),能夠利用最大值和最小值實(shí)現(xiàn)信息增強(qiáng)。
該文基于適應(yīng)度函數(shù)算法設(shè)計(jì)了一種新的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng),在此基礎(chǔ)上,以增量式技術(shù)為核心研究并設(shè)計(jì)微服務(wù)的硬件和軟件,延伸微服務(wù)平臺(tái)的功能,提高平臺(tái)的體驗(yàn)效果。
微服務(wù)架構(gòu)的特點(diǎn)一方面是微服務(wù)框架的各個(gè)組成模塊是獨(dú)立運(yùn)行的,方便各個(gè)模塊的更新和更改,微服務(wù)框架的操作者和開(kāi)發(fā)者可以同時(shí)操作平臺(tái),提高微服務(wù)框架的工作效率;另一方面微服務(wù)架構(gòu)每一個(gè)組件的更改方式簡(jiǎn)單,具有較強(qiáng)的功能延伸性,有利于框架的升級(jí)和刪除[3-4]。
基于適應(yīng)度函數(shù)的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)架構(gòu)如圖1 所示。
由圖1 可知,微服務(wù)架構(gòu)主要由網(wǎng)關(guān)、負(fù)載組件以及服務(wù)通信設(shè)備組成。網(wǎng)關(guān)以一個(gè)服務(wù)器的身份存在于微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)硬件區(qū)域內(nèi)部,同時(shí)也是系統(tǒng)的信息通道入口,網(wǎng)關(guān)存在的目的是在數(shù)據(jù)通信過(guò)程中,解決客戶(hù)端和微服務(wù)端通信卡頓的問(wèn)題,提高微服務(wù)框架的工作效率。網(wǎng)關(guān)的工作原理是第一時(shí)間接收微服務(wù)平臺(tái)客戶(hù)端發(fā)出的服務(wù)請(qǐng)求數(shù)據(jù),根據(jù)網(wǎng)關(guān)的身份快速完成服務(wù)業(yè)務(wù),最后將結(jié)果發(fā)回接收服務(wù)業(yè)務(wù)的實(shí)際服務(wù)器上[5-6]。網(wǎng)關(guān)的獨(dú)特優(yōu)勢(shì)是最先捕獲客戶(hù)端發(fā)出的服務(wù)請(qǐng)求,一個(gè)網(wǎng)關(guān)可以負(fù)責(zé)多個(gè)請(qǐng)求服務(wù),并且一個(gè)請(qǐng)求服務(wù)可以調(diào)用多個(gè)網(wǎng)關(guān)[7-8]。根據(jù)網(wǎng)關(guān)特性和數(shù)據(jù)封裝性,直接連接客戶(hù)端和微服務(wù)架構(gòu),減少微服務(wù)架構(gòu)的工作量,提高微服務(wù)框架的工作效率。
服務(wù)通信組件的工作任務(wù)是維護(hù)客戶(hù)端和微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)的正常通信,通信服務(wù)組件采用遠(yuǎn)程訪問(wèn)路由的方法,組件客戶(hù)端請(qǐng)求服務(wù)時(shí)只需要識(shí)別出請(qǐng)求服務(wù)的請(qǐng)求地址、請(qǐng)求數(shù)據(jù)以及服務(wù)類(lèi)型即可,縮短平臺(tái)解決服務(wù)業(yè)務(wù)的時(shí)間。
負(fù)載組件的功能是平衡微服務(wù)平臺(tái)的資源負(fù)載強(qiáng)度,負(fù)載組件通過(guò)對(duì)網(wǎng)關(guān)和任務(wù)的進(jìn)度進(jìn)行監(jiān)測(cè),平衡各個(gè)網(wǎng)關(guān)的工作量,避免出現(xiàn)服務(wù)緩沖時(shí)間過(guò)長(zhǎng)的情況,使服務(wù)請(qǐng)求和網(wǎng)關(guān)接收無(wú)縫銜接。
硬件模塊由請(qǐng)求探測(cè)器、效應(yīng)器、抽象器、推理器、策略評(píng)估器組成。系統(tǒng)硬件結(jié)構(gòu)如圖2 所示。
圖2 中,請(qǐng)求探測(cè)器用來(lái)感知微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)內(nèi)部的請(qǐng)求環(huán)境狀態(tài),因?yàn)槠脚_(tái)由許多傳感設(shè)備構(gòu)成,傳感器發(fā)出的信號(hào)波對(duì)于客戶(hù)端的請(qǐng)求信號(hào)存在排斥性,因此請(qǐng)求探測(cè)器可以降低傳感設(shè)備的信號(hào)波強(qiáng)度,擴(kuò)大請(qǐng)求信號(hào)的強(qiáng)度[9]。
效應(yīng)器的主要工作是調(diào)節(jié)微服務(wù)平臺(tái)內(nèi)部的資源分配情況,平衡各個(gè)組件的負(fù)載強(qiáng)度。
抽象器是處理客戶(hù)端發(fā)出的抽象請(qǐng)求服務(wù)信號(hào),將此請(qǐng)求信號(hào)轉(zhuǎn)化為普通請(qǐng)求,后續(xù)則進(jìn)行普通微服務(wù)請(qǐng)求的運(yùn)行。推理器的目的是根據(jù)請(qǐng)求服務(wù)語(yǔ)句按照規(guī)則進(jìn)行推理,深入剖析請(qǐng)求服務(wù)內(nèi)容[10-11]。
策略評(píng)估器負(fù)責(zé)對(duì)請(qǐng)求服務(wù)數(shù)據(jù)的上下文請(qǐng)求感知策略進(jìn)行評(píng)估,如果一條策略經(jīng)過(guò)評(píng)估后具有可行性,則執(zhí)行其動(dòng)作部分,策略評(píng)估器還需進(jìn)一步驅(qū)動(dòng)應(yīng)用環(huán)境體的執(zhí)行部分,最后完成策略所規(guī)定的動(dòng)作。微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)硬件電路圖如圖3 所示。
圖3 開(kāi)發(fā)系統(tǒng)硬件電路圖
在系統(tǒng)硬件中,該文還設(shè)計(jì)了增量開(kāi)發(fā)模塊,增量開(kāi)發(fā)模塊是基于適應(yīng)度函數(shù)的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)研究的核心,可實(shí)現(xiàn)對(duì)新開(kāi)發(fā)得到的各個(gè)適應(yīng)性功能的在線動(dòng)態(tài)部署。增量開(kāi)發(fā)模塊的任務(wù)是將微服務(wù)平臺(tái)各個(gè)模塊賦予功能延展性,以此提高微服務(wù)平臺(tái)的工作服務(wù)效率,增量開(kāi)發(fā)模塊的工作流程分為兩個(gè)階段,分別為服務(wù)請(qǐng)求初始化階段和增量開(kāi)發(fā)處理階段。服務(wù)請(qǐng)求初始化階段的主要內(nèi)容包括請(qǐng)求服務(wù)環(huán)境建模、服務(wù)平臺(tái)狀態(tài)建模、請(qǐng)求服務(wù)數(shù)據(jù)邏輯性分析[12-13]。第二階段為平臺(tái)增量開(kāi)發(fā)處理階段,首先在微服務(wù)平臺(tái)各個(gè)組件插入一個(gè)組件槽,然后對(duì)微服務(wù)平臺(tái)內(nèi)部組件信息進(jìn)行感知提取,與相應(yīng)領(lǐng)域的實(shí)時(shí)技術(shù)相匹配,如果不匹配,則在組件槽里對(duì)其組件進(jìn)行升級(jí)替換。
客戶(hù)使用微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)時(shí),客戶(hù)最直觀的感知來(lái)源于系統(tǒng)登錄頁(yè)面,因此系統(tǒng)登錄頁(yè)面的設(shè)計(jì)十分重要。系統(tǒng)登錄頁(yè)面設(shè)計(jì)的要求是格式簡(jiǎn)單,并且將系統(tǒng)的功能百分百地呈現(xiàn)給使用者,為此,該文登錄頁(yè)面設(shè)計(jì)了兩部分,一部分是微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)點(diǎn)擊功能區(qū)域;另一部分是主動(dòng)搜索功能區(qū)域。在系統(tǒng)登錄頁(yè)面的各個(gè)功能處都設(shè)定一個(gè)功能觸發(fā)點(diǎn),一旦用戶(hù)點(diǎn)擊后,系統(tǒng)立刻跳轉(zhuǎn)頁(yè)面,完成功能的實(shí)現(xiàn)[14]。系統(tǒng)登錄流程如圖4所示。
圖4 系統(tǒng)登錄流程
為了提高微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)的數(shù)據(jù)調(diào)用速度,數(shù)據(jù)庫(kù)功能的設(shè)計(jì)是必不可少的,數(shù)據(jù)庫(kù)是一個(gè)有組織、具有一定擴(kuò)展性、可共享的存儲(chǔ)數(shù)據(jù)集合。數(shù)據(jù)庫(kù)語(yǔ)言一方面可以直觀明了地表達(dá)微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)界面中的數(shù)據(jù)以及數(shù)據(jù)之間的關(guān)系,同時(shí)也是設(shè)計(jì)人員與用戶(hù)進(jìn)行數(shù)據(jù)交流的一項(xiàng)重要方式[15-16]。為了提高微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)的服務(wù)體驗(yàn)效果,該文對(duì)數(shù)據(jù)庫(kù)中的表和列進(jìn)行相應(yīng)規(guī)范設(shè)計(jì)。數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖5 所示。
圖5 數(shù)據(jù)庫(kù)結(jié)構(gòu)
為了減少微服務(wù)平臺(tái)內(nèi)部增量式開(kāi)發(fā)系統(tǒng)的緩存資源,該文設(shè)計(jì)的系統(tǒng)數(shù)據(jù)庫(kù)規(guī)范一是各表的屬性不允許列存在空數(shù)據(jù)的情況,因?yàn)閿?shù)據(jù)庫(kù)各個(gè)有效表中存儲(chǔ)數(shù)據(jù)信息的各個(gè)屬性都明確時(shí),才是一個(gè)有效的功能,如果表中的列存在空,那么微服務(wù)平臺(tái)的功能模塊屬性不全,則無(wú)法進(jìn)行調(diào)用,只能無(wú)效地存儲(chǔ)在微服務(wù)平臺(tái)中,占據(jù)平臺(tái)的有效空間。數(shù)據(jù)庫(kù)規(guī)范二是數(shù)據(jù)庫(kù)表中不允許出現(xiàn)重復(fù)的列,因?yàn)橹貜?fù)的列會(huì)增加微服務(wù)平臺(tái)內(nèi)部資源數(shù)據(jù)的冗余情況,表中數(shù)據(jù)應(yīng)該有唯一的標(biāo)識(shí)符。
適應(yīng)度函數(shù)算法是微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)軟件區(qū)域的核心功能,適應(yīng)度函數(shù)控制遺傳算法的收斂速度和最優(yōu)解的選擇,降低計(jì)算機(jī)的計(jì)算復(fù)雜度,提高運(yùn)算能力。適應(yīng)度函數(shù)的計(jì)算原理是根據(jù)項(xiàng)目的要求,對(duì)其設(shè)定一個(gè)適應(yīng)度值,通過(guò)對(duì)比衡量數(shù)據(jù)與適應(yīng)度的值,選擇最優(yōu)的解決路徑,其本質(zhì)是“適者生存”。對(duì)于微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng),適應(yīng)度函數(shù)通過(guò)對(duì)客戶(hù)端請(qǐng)求數(shù)據(jù)進(jìn)行快速識(shí)別調(diào)用,在開(kāi)發(fā)系統(tǒng)的數(shù)據(jù)庫(kù)中調(diào)用適應(yīng)度函數(shù)算法,對(duì)客戶(hù)端的服務(wù)請(qǐng)求命令進(jìn)行分析,縮短完成用戶(hù)請(qǐng)求的時(shí)間。具體的適應(yīng)度函數(shù)算法表達(dá)式如下:
其中,k為被測(cè)程序的實(shí)際執(zhí)行路徑與目標(biāo)路徑中較短的一條路徑上的請(qǐng)求數(shù)據(jù)長(zhǎng)度,AP(L) 和OP(L)分別為被測(cè)程序的實(shí)際執(zhí)行路徑和目標(biāo)路徑數(shù)據(jù),OP-Ap為兩條路徑長(zhǎng)度的差值,n為服務(wù)請(qǐng)求數(shù)據(jù)個(gè)數(shù)。
以上兩個(gè)公式都是適應(yīng)度函數(shù)算法,算法識(shí)別平臺(tái)接收到的請(qǐng)求,分別進(jìn)行計(jì)算,f(a)、f(b)的數(shù)值差值越小,則服務(wù)方法的效果越好。適應(yīng)度函數(shù)對(duì)微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)提出的服務(wù)應(yīng)對(duì)路徑進(jìn)行分析,選擇出最優(yōu)的服務(wù)功能,提交給客戶(hù)端,完成系統(tǒng)的軟件工作。
為了研究該文提出的基于適應(yīng)度函數(shù)的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)的有效性,與傳統(tǒng)基于數(shù)據(jù)挖掘的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)、基于神經(jīng)網(wǎng)絡(luò)的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)進(jìn)行對(duì)比實(shí)驗(yàn),設(shè)置實(shí)驗(yàn)參數(shù)如表1 所示。
表1 實(shí)驗(yàn)參數(shù)
根據(jù)表1 的實(shí)驗(yàn)參數(shù)進(jìn)行實(shí)驗(yàn),得到的開(kāi)發(fā)時(shí)間實(shí)驗(yàn)結(jié)果如圖6 所示。
圖6 開(kāi)發(fā)時(shí)間實(shí)驗(yàn)結(jié)果
根據(jù)圖6 可知,對(duì)于相同能量的服務(wù)平臺(tái),該文的開(kāi)發(fā)時(shí)間更短,因?yàn)樵撐囊肓诉m應(yīng)度函數(shù),利用遺傳算法,在短時(shí)間內(nèi)確定最大值、最小值,明確開(kāi)發(fā)范圍,而傳統(tǒng)的方法由于需要采集過(guò)量信息,所以開(kāi)發(fā)時(shí)間過(guò)長(zhǎng)。
系統(tǒng)適應(yīng)性如表2 所示。
表2 系統(tǒng)適應(yīng)性實(shí)驗(yàn)結(jié)果
由表2 可知,目前開(kāi)發(fā)的系統(tǒng)適應(yīng)性都難以達(dá)到90%以上,這是由于不同的微服務(wù)平臺(tái)都存在一定的局限性,但是在3 種系統(tǒng)中,該文提出的系統(tǒng)適應(yīng)性更廣。由于該文的系統(tǒng)開(kāi)發(fā)耗時(shí)短,所以可以針對(duì)不同微服務(wù)平臺(tái)的特點(diǎn)進(jìn)行分析,適應(yīng)范圍更廣。
該文研究的基于適應(yīng)度函數(shù)的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng),硬件區(qū)域由微服務(wù)框架、增量開(kāi)發(fā)模塊和硬件實(shí)體設(shè)計(jì)模塊構(gòu)成,軟件區(qū)域包括數(shù)據(jù)庫(kù)、系統(tǒng)登錄軟件以及適應(yīng)度函數(shù)算法,共同構(gòu)成一個(gè)全新的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)。通過(guò)該文的微服務(wù)平臺(tái)增量式開(kāi)發(fā)系統(tǒng)的研究,對(duì)于微服務(wù)平臺(tái)的發(fā)展有重大影響,并且提高微服務(wù)平臺(tái)使用者的體驗(yàn)感,便利大眾的生活。