国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

海洋計算模型協(xié)同一體化流程管理系統(tǒng)研究

2020-06-18 03:41:54趙丹楓劉新陽戴舒原黃冬梅梅海彬
計算機(jī)工程 2020年6期
關(guān)鍵詞:業(yè)務(wù)流程粒度雞群

趙丹楓,劉新陽,戴舒原,黃冬梅,2,梅海彬

(1.上海海洋大學(xué) 信息學(xué)院,上海 201306; 2.上海電力大學(xué),上海 200090)

0 概述

現(xiàn)有海洋計算模型涉及眾多學(xué)科領(lǐng)域,開發(fā)環(huán)境各不相同,并且使用的數(shù)據(jù)源結(jié)構(gòu)復(fù)雜、規(guī)模龐大,不同模型之間的數(shù)據(jù)格式和數(shù)據(jù)結(jié)構(gòu)很難匹配,導(dǎo)致其在進(jìn)行傳統(tǒng)的協(xié)同計算時存在較多問題。在傳統(tǒng)海洋計算模型的計算應(yīng)用方面,不同領(lǐng)域的模型關(guān)聯(lián)程度很低。如果要完成一次協(xié)同計算,需要人工將模型計算結(jié)果進(jìn)行轉(zhuǎn)換、整理甚至是修補(bǔ)后再復(fù)用,如風(fēng)暴潮預(yù)測使用的數(shù)值模擬方法[1],首先使用流體力學(xué)方法處理初始數(shù)據(jù),當(dāng)臺風(fēng)中心到達(dá)海岸時,再利用風(fēng)、氣壓模型計算在沿岸引起的風(fēng)暴潮分布的動力學(xué)模式,該方法是基于風(fēng)暴潮控制方程、計算方法和計算機(jī)應(yīng)用的一種人工計算預(yù)測方法。在傳統(tǒng)的業(yè)務(wù)流程配置方面,海洋業(yè)務(wù)流程在多數(shù)據(jù)、多模型之間的連通上存在困難。由于數(shù)據(jù)在定義標(biāo)準(zhǔn)、格式標(biāo)準(zhǔn)以及信息標(biāo)準(zhǔn)等方面都存在不統(tǒng)一性[2-4],實(shí)現(xiàn)海洋業(yè)務(wù)的流程化管理需要綜合考慮海洋計算模型和數(shù)據(jù)的特殊性,如地理空間約束下的業(yè)務(wù)流程建模[5],也需要考慮如何將地理信息引入到業(yè)務(wù)流程管理中。針對流程優(yōu)化問題[6],需要采取特殊的建模方式處理流程結(jié)構(gòu)、資源調(diào)度和流程的容錯性等問題。

為解決傳統(tǒng)海洋計算模型協(xié)同計算時存在的上述問題,本文設(shè)計面向海洋計算模型的協(xié)同一體化流程管理系統(tǒng)。在該系統(tǒng)中,只需輸入采集到的數(shù)據(jù),根據(jù)業(yè)務(wù)流程配置模型運(yùn)行規(guī)則與參數(shù)即可完成協(xié)同計算。系統(tǒng)通過模型封裝、數(shù)據(jù)轉(zhuǎn)換解決模型因關(guān)聯(lián)度低難以調(diào)用的問題,通過引入業(yè)務(wù)流程配置交互機(jī)制實(shí)現(xiàn)多粒度流程配置,同時利用搭載額外的資源調(diào)度策略保證計算流程的執(zhí)行效率。

1 系統(tǒng)體系架構(gòu)

為了使系統(tǒng)具有良好的可擴(kuò)展性和可維護(hù)性,系統(tǒng)的總體架構(gòu)正交地分為3個層級和3個模塊。在3個層級中:第1層為數(shù)據(jù)服務(wù)層,主要完成數(shù)據(jù)交換與服務(wù)的搭載;第2層為業(yè)務(wù)邏輯層,主要完成服務(wù)集成、監(jiān)控與業(yè)務(wù)流程配置的功能;第3層為UI層,主要完成用戶與系統(tǒng)的交互操作以及信息顯示等功能。3個模塊分別為海洋計算模型封裝與數(shù)據(jù)轉(zhuǎn)換模塊、服務(wù)集成與監(jiān)控模塊和海洋計算業(yè)務(wù)流程一體化配置模塊。本文系統(tǒng)依據(jù)SOA模式進(jìn)行設(shè)計,其總體架構(gòu)如圖1所示。

圖1 本文系統(tǒng)總體架構(gòu)

1.1 海洋計算模型封裝與數(shù)據(jù)轉(zhuǎn)換模塊

模型封裝與數(shù)據(jù)轉(zhuǎn)換是系統(tǒng)的基礎(chǔ),對應(yīng)系統(tǒng)架構(gòu)中的轉(zhuǎn)換器與緩存管理,用于實(shí)現(xiàn)海洋計算模型服務(wù)化封裝集成與數(shù)據(jù)協(xié)同轉(zhuǎn)換。

1.1.1 海洋計算模型封裝集成

目前,軟件模塊構(gòu)建或服務(wù)構(gòu)建軟件在迭代開發(fā)時并不能提高軟件開發(fā)的生產(chǎn)力和質(zhì)量。模型封裝方式是組件化開發(fā),其中最重要的是集成組件到系統(tǒng)的方法,但組件是黑盒,修改難度大。文獻(xiàn)[7]提出了一種將設(shè)計模式應(yīng)用于組件集成的方法,但該方法只考慮了組件封裝的模式,沒有考慮組件內(nèi)部與組件之間的多粒度模式。因此,需要在模型封裝時追加考慮模型的粒度問題,包括模型之間的耦合度以及模型內(nèi)部方法的關(guān)聯(lián)策略。模型在最小粒度的程度上封裝成黑盒,用戶只需要知道模型用途而不需要關(guān)心模型的實(shí)現(xiàn)原理。

模型集成分為2個部分,一部分是系統(tǒng)默認(rèn),即已經(jīng)標(biāo)準(zhǔn)化封裝好的模型服務(wù),用戶直接調(diào)用需要的服務(wù),上傳數(shù)據(jù)進(jìn)行計算;另一部分是用戶自定義,系統(tǒng)設(shè)有上傳模塊,用戶可將自己經(jīng)過編譯的模塊代碼上傳,如上傳一段python圖像識別代碼,在啟動運(yùn)行時系統(tǒng)會調(diào)用os中的運(yùn)行環(huán)境進(jìn)行編譯組建,運(yùn)行程序顯示結(jié)果。

1.1.2 海洋數(shù)據(jù)協(xié)同轉(zhuǎn)換

為了使系統(tǒng)適用多樣化的海洋數(shù)據(jù),本文設(shè)計了一種通用數(shù)據(jù)轉(zhuǎn)換接口,加入分類與轉(zhuǎn)換算法,將轉(zhuǎn)換后的數(shù)據(jù)及數(shù)據(jù)類型全部存儲在數(shù)據(jù)緩存區(qū),轉(zhuǎn)換后的緩存數(shù)據(jù)等待加載消息通知。已經(jīng)被標(biāo)準(zhǔn)化封裝后的模型腳本作為多個服務(wù)分布式地存儲在各個服務(wù)器緩存區(qū)中,直到發(fā)起調(diào)用時經(jīng)過模型解析區(qū)調(diào)用并在模型服務(wù)加載區(qū)準(zhǔn)備計算。同時,在消息隊列中注冊消息,系統(tǒng)通過消息策略分發(fā)注冊的消息,封裝后的海洋計算模型與解析模塊接收消息就會被協(xié)同調(diào)用,數(shù)據(jù)與模型在并發(fā)器中進(jìn)行計算服務(wù),同時引入資源調(diào)度策略,實(shí)現(xiàn)系統(tǒng)負(fù)載均衡。

1.2 基于Dubbo框架的服務(wù)集成與監(jiān)控模塊

現(xiàn)有的分布式服務(wù)監(jiān)控系統(tǒng)[8-9]并不能在實(shí)現(xiàn)服務(wù)器性能、數(shù)據(jù)情況和服務(wù)情況全面即時的監(jiān)測的同時又能實(shí)現(xiàn)調(diào)用。因此,系統(tǒng)基于Apache Dubbo框架實(shí)現(xiàn)了服務(wù)調(diào)用集成與快速全面的監(jiān)控功能,實(shí)現(xiàn)分布式解耦服務(wù)。

1.2.1 基于Dubbo框架的分布式服務(wù)模式

Dubbo框架基于定義服務(wù)的形式,指定可以通過參數(shù)和返回類型遠(yuǎn)程調(diào)用的方法。在服務(wù)器端,實(shí)現(xiàn)注冊接口和數(shù)據(jù)接口并運(yùn)行Dubbo服務(wù)器來處理客戶端調(diào)用并注冊服務(wù)信息。在客戶端請求存檔接口,提供與服務(wù)器相同的方法,Consumer在請求調(diào)用分布式存儲資源時,通過查找注冊信息找到資源所在的服務(wù)器進(jìn)行接口配對,直接獲取分布式存儲系統(tǒng)中的服務(wù)資源,通過注冊機(jī)制來實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用,從而形成分布式服務(wù)模式。

1.2.2 海洋計算模型集成監(jiān)控

監(jiān)控主要包括服務(wù)器性能監(jiān)控、數(shù)據(jù)計算狀態(tài)監(jiān)控以及服務(wù)狀態(tài)監(jiān)控。首先把Dubbo-Monitor中的監(jiān)控信息提取到監(jiān)控區(qū),用以標(biāo)記封裝的服務(wù)狀態(tài),同時通過反射的方法把模型內(nèi)部的方法映射到監(jiān)控接口,實(shí)現(xiàn)多粒度服務(wù)監(jiān)控。設(shè)計專門針對Povider和Consumer的信息接口,分別集成其他監(jiān)控功能。其中,性能監(jiān)控方面,構(gòu)建了一種性能探針,在服務(wù)下發(fā)時可以裝載到分布式存儲系統(tǒng)中,從而獲取各個服務(wù)器的性能;數(shù)據(jù)監(jiān)控方面,設(shè)計了一種特殊的消息機(jī)制,Provider提供模型計算服務(wù)時,可以通過接口返回運(yùn)行信息,Consumer在調(diào)用服務(wù)時訪問接口并實(shí)時監(jiān)測,返回的進(jìn)度信息將直接刷新在服務(wù)配置上,構(gòu)成快速的服務(wù)監(jiān)控方案。

1.3 海洋計算業(yè)務(wù)流程一體化配置模塊

本系統(tǒng)可多粒度實(shí)現(xiàn)流程管理和流程區(qū)塊管理。為了應(yīng)對復(fù)雜海洋計算流程,業(yè)務(wù)流程模塊運(yùn)用了根據(jù)ArtiMate建模方法[10]改良設(shè)計的一種面向服務(wù)的多粒度協(xié)作流程建模方法。該方法可以支持復(fù)雜多變的協(xié)作關(guān)系,搭載一體化流程配置引擎與良好的交互界面,保證流程順利執(zhí)行。ArtiMate 建模方法是以Artifact為中心[11-13]將多粒度復(fù)雜流程分解為一組單粒度協(xié)作流程,并通過策略建模解決單粒度流程間的復(fù)雜交互。

在模塊加載完畢后,進(jìn)行業(yè)務(wù)流程配置時,構(gòu)造了一個結(jié)構(gòu)標(biāo)記方法portsEdge()。當(dāng)進(jìn)行業(yè)務(wù)流程配置時,每個服務(wù)在拖放配置時會調(diào)用portsEdge()用于標(biāo)記服務(wù)調(diào)用信息并保存在流程邏輯結(jié)構(gòu)數(shù)組中,用于生成流程邏輯結(jié)構(gòu)消息。portsEdge()方法由兩部分組成,一部分用于邏輯操作實(shí)現(xiàn)業(yè)務(wù)流程配置結(jié)構(gòu)化,另一部分用于保存流程邏輯結(jié)構(gòu)信息,包括消息的進(jìn)棧與出棧。

每個服務(wù)之間對應(yīng)一套統(tǒng)一的消息格式與隊列,在UI層基于bootstrap和javascript實(shí)現(xiàn)圖形化的流程配置界面,所有的服務(wù)和方法以二級列表的方式顯示,并可直接拖動服務(wù)至繪制區(qū)域進(jìn)行業(yè)務(wù)流程配置。流程圖繪制完成后系統(tǒng)將生成一個流程邏輯結(jié)構(gòu)消息,生成的結(jié)構(gòu)消息可直接被解析在流程配置方案中運(yùn)行,解析完畢后的流程將驅(qū)動服務(wù)進(jìn)行協(xié)同計算,同時顯示計算進(jìn)度信息。

2 關(guān)鍵技術(shù)

本節(jié)介紹系統(tǒng)的3種關(guān)鍵技術(shù):適用多類型海洋數(shù)據(jù)的通用轉(zhuǎn)換接口用于實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)轉(zhuǎn)換,解決模型間的數(shù)據(jù)格式難匹配的問題;改進(jìn)雞群算法的資源調(diào)度策略用于系統(tǒng)負(fù)載均衡,解決大規(guī)模模型和數(shù)據(jù)計算時的資源分配問題;面向服務(wù)的多粒度協(xié)作流程建模方法用于實(shí)現(xiàn)業(yè)務(wù)流程管理,解決多模型協(xié)同計算時流程不可控的問題。

2.1 適用于多類型海洋數(shù)據(jù)的通用轉(zhuǎn)換接口

本文構(gòu)建了一種可以將多類型海洋數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一標(biāo)準(zhǔn)形式的接口,在接口應(yīng)用中使用了一種基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法,可用于系統(tǒng)中的海洋數(shù)據(jù)分類與轉(zhuǎn)換融合。

2.1.1 隨機(jī)森林算法

隨機(jī)森林(Random Forest,RF)[14]是一種包含多個決策樹的分類器,它是基于Bagging 的集成學(xué)習(xí)方法,可以用作分類和回歸。RF采用有放回的采樣來構(gòu)造不同數(shù)據(jù)集訓(xùn)練模型,因此模型的泛化能力通常比單一模型強(qiáng)。

隨機(jī)森林訓(xùn)練多個決策樹弱分類器,通過組合這些弱分類器形成一個強(qiáng)分類器,然后以投票的方式來得到最終的分類結(jié)果。與普通的決策樹不同,隨機(jī)森林在訓(xùn)練決策樹時先隨機(jī)選擇部分樣本特征,然后再選擇一個局部最優(yōu)的特征來為決策樹劃分左右子樹,進(jìn)一步提升了模型的泛化能力。

2.1.2 基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法

基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法分為兩個作用域,分布在數(shù)據(jù)流的接口中,分別實(shí)現(xiàn)海洋數(shù)據(jù)分類和數(shù)據(jù)轉(zhuǎn)換的功能,將原始數(shù)據(jù)轉(zhuǎn)換成通用的模型輸入流。算法作用如圖2所示。

圖2 基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法作用示意圖

算法在隨機(jī)森林首次分裂前對欲分類的文件進(jìn)行預(yù)處理,通過讀取輸入數(shù)據(jù)的文件信息,聯(lián)系模型輸入格式作為數(shù)據(jù)標(biāo)記,以此標(biāo)記作為數(shù)據(jù)分類的基礎(chǔ),在構(gòu)建隨機(jī)森林前將所有數(shù)據(jù)先做一層篩選,進(jìn)一步在該層篩選結(jié)果中使用隨機(jī)森林算法構(gòu)建分類樹。預(yù)處理的目的是更快地得到與相應(yīng)模型輸入需求相同的數(shù)據(jù)集,從而提高分類的速度和精度,并且部分所需分類結(jié)果在預(yù)處理中就可以完成。

在分類完成時,用戶可以根據(jù)分類結(jié)果對數(shù)據(jù)進(jìn)行統(tǒng)一轉(zhuǎn)換,轉(zhuǎn)換方法根據(jù)不同的數(shù)據(jù)格式與模型需求嵌入不同的處理操作。以遙感影像為例,對應(yīng)的基本轉(zhuǎn)換處理過程有分辨率調(diào)整、灰度值調(diào)整等。帶有結(jié)構(gòu)的數(shù)據(jù)類型,如臺風(fēng)數(shù)據(jù)在轉(zhuǎn)換過程中將調(diào)用相應(yīng)的方法被格式化為標(biāo)準(zhǔn)格式。針對不同數(shù)據(jù)結(jié)構(gòu),可以根據(jù)模型需求定制不同的轉(zhuǎn)換算法。

基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法描述如下:

算法基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法

輸入數(shù)據(jù)集d={(x1,y1),(x2,y2),…,(xn,yn)},樣本子集的個數(shù)T

輸出最終的強(qiáng)分類器f(x)與轉(zhuǎn)換器g(x)

1)識別原始樣本中的文件信息,建立分類c,形成按文件信息分類的訓(xùn)練數(shù)據(jù)集D={d1,d2,…,dc}。

2)對第t(t=1,2,…,T)次抽樣:

(1)從訓(xùn)練樣本集中隨機(jī)抽取a個樣本點(diǎn),得到一個訓(xùn)練集Dt。

(2)用訓(xùn)練集Dt訓(xùn)練一個CART決策樹,在訓(xùn)練的過程中,對每個節(jié)點(diǎn)的切分規(guī)則是先從所有特征中隨機(jī)選擇k個特征,然后再從這k個特征中選擇最優(yōu)的切分點(diǎn)做左右子樹的劃分。

3)在分類算法中,預(yù)測的最終類別為該樣本點(diǎn)所到葉節(jié)點(diǎn)中投票數(shù)最多的類別。

4)在分類結(jié)果中,識別文件信息,調(diào)用相應(yīng)的轉(zhuǎn)換算法。

算法預(yù)處理和轉(zhuǎn)換的兩次循環(huán)只在最外層分別進(jìn)行,時間復(fù)雜度為O(n),n是訓(xùn)練樣本個數(shù)。而隨機(jī)森林分類算法的時間復(fù)雜度為O(mn),m是特征維數(shù),采用預(yù)處理策略后可減少特征子集生成的次數(shù)x,x∈[0,m-1],因此算法的時間復(fù)雜度為O(n)+O((m-x)n)≈O((m-x)n)

2.1.3 實(shí)驗(yàn)與結(jié)果分析

實(shí)驗(yàn)使用海島和中尺度渦的遙感影像等各類圖片數(shù)據(jù)、溫州臺風(fēng)網(wǎng)1945年—2017年臺風(fēng)數(shù)據(jù)以及其他各類干擾數(shù)據(jù)作為算法輸入的all_data,假設(shè)用戶設(shè)定模型需求為遙感影像和臺風(fēng)數(shù)據(jù),實(shí)驗(yàn)過程如圖3所示。

圖3 基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法實(shí)驗(yàn)過程

圖4為通過轉(zhuǎn)換算法對分類數(shù)據(jù)進(jìn)行轉(zhuǎn)換后的結(jié)果,其中圖4(a)為圖片數(shù)據(jù)的部分轉(zhuǎn)換結(jié)果,圖4(b)為文本數(shù)據(jù)的部分轉(zhuǎn)換結(jié)果。

圖4 數(shù)據(jù)轉(zhuǎn)換結(jié)果

將分類實(shí)驗(yàn)結(jié)果與人工分類結(jié)果進(jìn)行對比,如表1所示,其中,alu列表示算法分類結(jié)果數(shù),per表示人工分類結(jié)果數(shù),gis行表示遙感影像的分類結(jié)果數(shù),pic-other表示其他圖片類型數(shù)據(jù)的分類結(jié)果數(shù),typh表示臺風(fēng)數(shù)據(jù)分類結(jié)果數(shù)。由表1可以看出,數(shù)據(jù)量對分類結(jié)果有一定的影響。

表1 分類實(shí)驗(yàn)結(jié)果

準(zhǔn)確率的計算公式為:

(1)

圖5為分類結(jié)果準(zhǔn)確率的對比,可以看出,隨著數(shù)據(jù)量的增長,文本類的臺風(fēng)數(shù)據(jù)對分類結(jié)果不存在影響,分類結(jié)果始終準(zhǔn)確。而針對圖片類數(shù)據(jù)的分類隨著數(shù)據(jù)規(guī)模的增大出現(xiàn)了一定的偏差,“≤1 000”和“>1 000”時遙感影像分類的準(zhǔn)確率分別下降到94.4%和97.8%,通過對分類結(jié)果進(jìn)行查驗(yàn),發(fā)現(xiàn)導(dǎo)致準(zhǔn)確率下降的原因?yàn)橐恍└蓴_數(shù)據(jù)的特征與遙感影像的特征比較接近。經(jīng)過重復(fù)實(shí)驗(yàn)驗(yàn)證,分類結(jié)果準(zhǔn)確率均高于91%,分類結(jié)果較為準(zhǔn)確。

圖5 3種算法的分類準(zhǔn)確率對比

將基于隨機(jī)森林的數(shù)據(jù)分類與轉(zhuǎn)換算法分別與SVM分類算法和原始隨機(jī)森林分類算法在不同規(guī)模的數(shù)據(jù)量下進(jìn)行性能對比,圖6為各算法分類時間對比結(jié)果。可以看出,本文基于隨機(jī)森林的數(shù)據(jù)分類算法通過對數(shù)據(jù)的預(yù)處理,顯著提高了分類速度。

圖6 3種算法的分類時間對比

2.2 基于改進(jìn)雞群算法的資源調(diào)度策略

在實(shí)際的系統(tǒng)運(yùn)行中,面對規(guī)模龐大的服務(wù)群及任務(wù)執(zhí)行數(shù)量多的問題,作為提高云計算系統(tǒng)性能的關(guān)鍵技術(shù)之一,資源調(diào)度成為研究重點(diǎn)。由于系統(tǒng)是分布式服務(wù)架構(gòu),因此涉及的資源調(diào)度實(shí)際上是在云計算分布式存儲系統(tǒng)中的調(diào)度。針對云計算環(huán)境中會產(chǎn)生資源不均與能耗過高的問題,本文提出一種改進(jìn)雞群算法用于云計算低能耗資源調(diào)度。

2.2.1 雞群算法

雞群算法(Chicken Swarm Optimization,CSO) 是由文獻(xiàn)[16]提出的一種基于雞群搜索行為的隨機(jī)優(yōu)化方法,CSO模擬了雞群等級制度和雞群行為。整個雞群分為若干子群,每一個子群都由一個公雞、若干母雞和小雞組成。不同的雞遵循不同的移動規(guī)律,在具體的等級制度下,不同的雞群之間存在競爭,它是一種全局優(yōu)化算法。

根據(jù)文獻(xiàn)[15-16],在雞群理想化的條件下,假設(shè)NR、NH、NC和NM分別為公雞、母雞、小雞和媽媽母雞的個數(shù)。在整個雞群中,所有的個體數(shù)假設(shè)為N,每個個體的位置xi,j(t)表示第i個體的j維在第t次迭代的值。整個雞群有3種類型的雞,雞群中個體位置更新公式隨著雞種類的不同而不同。公雞對應(yīng)雞群中適應(yīng)度值最好的個體,它們可以在更廣闊的空間尋找食物,公雞對應(yīng)的位置更新公式如下:

xij(t+1)=xi,j(t)·(1+Randn(0,σ2))

(2)

(3)

其中,Randn(0,σ2)是均值為0、標(biāo)準(zhǔn)差為σ2的一個高斯分布,ε為一個很小的常數(shù),k(k∈[1,NC],k≠i)為所有公雞中除去i后的任一個體。母雞的位置更新公式如下:

xij(t+1)=xi,j(t)+C1·Rand·(xr1,j(t)-

xi,j(t))+C2·Rand·(xr2,j(t)-xi,j(t))

(4)

(5)

C2=exp(fr2-fi)

(6)

其中,Rand為[0,1]之間均勻分布的隨機(jī)數(shù),r1為第i只母雞自身所在群中的公雞,r2為整個雞群中公雞和母雞中隨機(jī)選取的任意個體,且r1≠r2。小雞的位置更新公式如下:

xi,j(t+1)=xi,j(t)+F·(xm,j(t)-xi,j(t))

(7)

其中,m為第i只小雞對應(yīng)的母雞,F(F∈[0,2]) 為跟隨系數(shù),表示小雞跟隨母雞尋找食物。

2.2.2 改進(jìn)雞群算法

本文對雞群算法的主要改進(jìn)如下:

1)根據(jù)原始雞群算法子群中的個體關(guān)系,通過上節(jié)中分類算法得到的服務(wù)的關(guān)聯(lián)信息,劃分相關(guān)聯(lián)的服務(wù)類作為初始化的種群,保證算法最優(yōu)解能夠在空間中均勻分布。

2)通過轉(zhuǎn)換算法中的計數(shù)參數(shù)獲取搜索空間大小,確定迭代范圍,以較少的迭代次數(shù)完成小雞向母雞和公雞的學(xué)習(xí)。

3)在迭代過程中增加差分進(jìn)化算法(Differential Evolution,DE)[17-18]中的變異過程,避免陷入局部最優(yōu)。在第g次迭代中,從種群中隨機(jī)選擇3個個體Xp1(g)、Xp2(g)、Xp3(g),且p1≠p2≠p3≠i,生成的變異向量為:

Hi(g)=Xp1(g)+F·(Xp2(g)-Xp3(g))

(8)

其中,Δp2,p3(g)=Xp2(g)-Xp3(g)為差分向量,參數(shù)F的取值自適應(yīng)調(diào)整為將變異算子中隨機(jī)選擇的雞群中的三個個體進(jìn)行適應(yīng)度從高到低的排序,得到Xb、Xm、Xw,對應(yīng)小雞的適應(yīng)度fb、fm、fw,變異算子改為:

Vi=Xb+Fi(Xm-Xw)

(9)

同時,F的取值根據(jù)生成差分向量的2個個體自適應(yīng)變化:

(10)

其中,Fl=0.1,Fu=0.9。

變異策略:

DE/rand/1:Vi(g)=Xp1(g)+F·(Xp2(g)-Xp3(g))

DE/best/1:Vi(g)=Xbest(g)+F·(Xp1(g)-Xp2(g))

DE/current to best/1:

Vi(g)=Xi(g)+F·(Xbest(g)-Xi(g))+F·(Xp1(g)-Xp2(g))

DE/best/2:

Vi(g)=Xbest(g)+F·(Xp1(g)-Xp2(g))+F·(Xp3(g)-Xp4(g))

DE/rand/2:

Vi(g)=Xp1(g)+F·(Xp2(g)-Xp3(g))+F·(Xp4(g)-Xp5(g))

4)融合SJF算法的思想,更迅速地更新小雞的位置。改進(jìn)后的小雞位置更新公式如下:

xi,j(t+1)=xi,j(t)+F·(xm,j(t)-xi,j(t))+

(11)

其中,n為小雞i對應(yīng)的公雞,M為小雞的覓食程度,L為小雞在雞群中的學(xué)習(xí)程度,M/L權(quán)重值反應(yīng)小雞需要覓食的緊急程度,權(quán)重值越大,優(yōu)先權(quán)越高,小雞的位置更新越快。

改進(jìn)雞群算法流程如圖7所示。

圖7 改進(jìn)雞群優(yōu)化算法流程

改進(jìn)后的雞群算法主要針對迭代次數(shù)、適應(yīng)度更新策略進(jìn)行了優(yōu)化與自適應(yīng)調(diào)整,在保證原有算法快速收斂的優(yōu)點(diǎn)的同時,結(jié)合上節(jié)算法的數(shù)據(jù)統(tǒng)計結(jié)果,減少迭代次數(shù),提高算法執(zhí)行效率,在模擬調(diào)度時更高效。

2.2.3 仿真實(shí)驗(yàn)分析

圖8為原始雞群算法與改進(jìn)雞群算法的性能分析結(jié)果對比,實(shí)驗(yàn)選取迭代次數(shù)為100次,隨機(jī)取重復(fù)實(shí)驗(yàn)的30次數(shù)據(jù)作為結(jié)果統(tǒng)計。圖8(a)和圖8(b)分別為兩次實(shí)驗(yàn)的結(jié)果圖,可以看出改進(jìn)雞群算法更快地達(dá)到最優(yōu)條件。由圖8(c)可得改進(jìn)雞群算法與原始雞群算法相比,達(dá)到最佳適應(yīng)度的迭代次數(shù)減少了29% ~37%,性能有較大的提升。

在Cloudsim3.0平臺上模擬算法對云任務(wù)調(diào)度的作用情況,實(shí)驗(yàn)選取任務(wù)數(shù)量為10個~100個模擬結(jié)果,算法在調(diào)度完成時所需要的時間即為任務(wù)調(diào)度完成時間,實(shí)驗(yàn)結(jié)果采用30次實(shí)驗(yàn)所得的平均響應(yīng)時間和平均調(diào)度完成時間,由圖9可知,較原始雞群算法和SJF,改進(jìn)雞群算法的平均調(diào)度完成時間及平均響應(yīng)時間較短。

圖8 Matlab實(shí)驗(yàn)結(jié)果

圖9 Cloudsim3.0平臺模擬實(shí)驗(yàn)結(jié)果

2.3 面向服務(wù)的多粒度協(xié)作流程建模方法

基于ArtiMate建模方法加以改進(jìn),核心思想是將多粒度復(fù)雜流程分解為低粒度或單粒度的協(xié)作流程,通過組合低粒度或單粒度流程協(xié)作建模,實(shí)現(xiàn)通用化交互策略建模的方法,減少以Artifact為中心的建模成本,有效提高業(yè)務(wù)流程建模效率。本節(jié)以中尺度渦模型計算業(yè)務(wù)流程為例,如圖10所示,描述以服務(wù)為中心的多粒度協(xié)作流程建模方法。

中尺度渦模型計算業(yè)務(wù)流程如圖11所示,首先依據(jù)Artifact具有完整的生命周期的特點(diǎn),在流程初始化時創(chuàng)建Artifact表單,Consumer每調(diào)用一個服務(wù),服務(wù)都會產(chǎn)生一個活動,活動對服務(wù)進(jìn)行調(diào)用內(nèi)部方法、返回參數(shù)等操作。根據(jù)模型運(yùn)行的實(shí)際情況對服務(wù)模型進(jìn)行擴(kuò)展。

圖10 中尺度渦模型計算流程

圖11 中尺度渦計算業(yè)務(wù)流轉(zhuǎn)示意圖

面向服務(wù)的多粒度協(xié)作流程建模是首先將多粒度海洋計算業(yè)務(wù)流程分解為一組單粒度協(xié)作流程,通過策略建模解決單粒度流程間的復(fù)雜交互。從2個方面對proclets方法[19-20]和CorPN[21]進(jìn)行擴(kuò)展:1)在業(yè)務(wù)流程建模中采用以 Artifact 為中心的方法,明確刻畫海洋計算業(yè)務(wù)目標(biāo)和業(yè)務(wù)進(jìn)展,適應(yīng)模型計算業(yè)務(wù)變化;2)使用解耦交互機(jī)制和交互策略,允許依據(jù)海洋計算模型服務(wù)的內(nèi)容綁定多種類別的流程,通過替換與通用化交互策略增強(qiáng)業(yè)務(wù)流程對環(huán)境的適應(yīng)性。

流程建模方法依據(jù)ArtiMate的建模思想,將復(fù)雜的業(yè)務(wù)流程拆分成一組低粒度或單粒度流程(以下簡稱smallist),這是各個業(yè)務(wù)的實(shí)際業(yè)務(wù)內(nèi)容。由圖11中可知其基數(shù)約束、多重性約束和復(fù)雜交互關(guān)系以策略組件的方式介入的交互策略定義(以下簡稱combine),combine存在通用性策略,也可以相互組合關(guān)聯(lián),形成新的combine,能夠全面靈活地支持各種海洋計算業(yè)務(wù)交互情況。combine連接彼此交互的 smallist,共同構(gòu)成多粒度業(yè)務(wù)流程應(yīng)用的模型。

3 系統(tǒng)運(yùn)行效果

系統(tǒng)根據(jù)高級軟件工程架構(gòu)簡化了環(huán)境依賴,將開發(fā)與集成落到最底層實(shí)現(xiàn),系統(tǒng)直接部署在Tomcat中,只需以默認(rèn)選項安裝Redis即可直接在Tomcat中啟動運(yùn)行。

3.1 運(yùn)行環(huán)境

海洋計算模型協(xié)同一體化流程管理系統(tǒng)是基于Web端開發(fā)的應(yīng)用,以Java、JavaScript作為開發(fā)語言,結(jié)合Apache Tomcat8、Redis等運(yùn)行所需環(huán)境,使用eclipse和webstorm作為開發(fā)工具進(jìn)行開發(fā)。系統(tǒng)存在可拓展性,可結(jié)合不同開發(fā)環(huán)境進(jìn)行擴(kuò)展開發(fā)。

系統(tǒng)客戶端目前主要適配Windows系統(tǒng)各個版本,適用于Chrome、Internet Explorer、Firefox、Safari等瀏覽器。

3.2 交互界面

海洋研究中使用海洋計算模型進(jìn)行計算的實(shí)驗(yàn)人員在進(jìn)行操作時需要了解服務(wù)中的模型信息,通過模型信息分析所需要調(diào)用的服務(wù)進(jìn)行流程配置,完成流程配置后在運(yùn)行時關(guān)注運(yùn)行情況和服務(wù)情況等。以下功能用以協(xié)助研究人員提高海洋數(shù)據(jù)分析與協(xié)同計算的效率,快速便利地完成海洋數(shù)據(jù)復(fù)合處理需求。

1)服務(wù)信息查看。在進(jìn)入系統(tǒng)服務(wù)界面后,所有的服務(wù)及方法以疊加列表的方式展示在右側(cè),點(diǎn)擊各個服務(wù)模塊可以在data preview區(qū)域里查看相應(yīng)的服務(wù)信息,服務(wù)信息包括:服務(wù)名和對應(yīng)的方法名、服務(wù)器名、模型來源、數(shù)據(jù)類型等,通過以上信息判斷計算需求,選取所需服務(wù),如圖12所示。

圖12 系統(tǒng)服務(wù)界面

2)業(yè)務(wù)流程配置。在判斷需要使用的服務(wù)及方法后,通過拖拽的形式可以直接把要使用的服務(wù)作為流程節(jié)點(diǎn)加入到流程編輯區(qū)域,流程編輯區(qū)域中的初始節(jié)點(diǎn)Start和完成節(jié)點(diǎn)End已自動加入,Start節(jié)點(diǎn)只有輸出標(biāo)志點(diǎn),End節(jié)點(diǎn)只有輸入標(biāo)志點(diǎn)。每個節(jié)點(diǎn)的輸出標(biāo)志點(diǎn)可以點(diǎn)擊拖出連接線與要連接的節(jié)點(diǎn)的輸入標(biāo)志點(diǎn)進(jìn)行連接,從連接線的任意一端的標(biāo)志點(diǎn)拖離即可刪除連接重新配置,連接完成后即可點(diǎn)擊運(yùn)行按鈕直接執(zhí)行,如圖13所示。如果服務(wù)有相應(yīng)的擴(kuò)展依賴,在拖放流程節(jié)點(diǎn)時會自動識別,相應(yīng)的節(jié)點(diǎn)會自動加入擴(kuò)展功能,點(diǎn)擊對應(yīng)功能的按鈕即可加入擴(kuò)展內(nèi)容,如上傳數(shù)據(jù)或載入新的模型等。

圖13 流程配置與運(yùn)行結(jié)果界面

3)信息監(jiān)控。在點(diǎn)擊運(yùn)行時,被配置調(diào)用的服務(wù)會以進(jìn)度條的形式顯示該服務(wù)的運(yùn)行進(jìn)度,運(yùn)行結(jié)束后服務(wù)節(jié)點(diǎn)被標(biāo)記成已完成狀態(tài),計算結(jié)果顯示在下方的result viewing區(qū)域。在監(jiān)控區(qū)域,系統(tǒng)以圖表的方式動態(tài)地將各個服務(wù)器的資源使用情況刷新在界面上,供用戶查看情況,同時可以查看負(fù)載均衡情況,保證模型計算穩(wěn)定地運(yùn)行,如圖14所示。

圖14 信息監(jiān)控界面

4 結(jié)束語

本文結(jié)合dubbo框架、工作流等計算技術(shù)對海洋計算模型進(jìn)行服務(wù)化封裝和計算業(yè)務(wù)流程配置。將隨機(jī)森林算法用于數(shù)據(jù)分類與轉(zhuǎn)換,通過改進(jìn)雞群優(yōu)化算法優(yōu)化計算服務(wù)資源調(diào)度過程,同時結(jié)合多粒度流程建模方法開發(fā)海洋計算模型協(xié)同一體化流程管理系統(tǒng),實(shí)現(xiàn)海洋計算業(yè)務(wù)流程的一體化配置和多模型協(xié)同計算。該系統(tǒng)可減少分布式服務(wù)下的調(diào)度負(fù)擔(dān),解決海洋計算業(yè)務(wù)的模型復(fù)合困難、流程復(fù)雜的問題,提高海洋數(shù)據(jù)分析人員的工作效率。下一步將構(gòu)建封裝覆蓋范圍更廣和復(fù)雜度更高的海洋計算模型,優(yōu)化自定義模型的使用方法,同時針對數(shù)據(jù)通用匹配性和大數(shù)據(jù)情況下的負(fù)載均衡問題探索解決方案。此外,還將優(yōu)化流程管理的后臺機(jī)制,實(shí)現(xiàn)流程的持久存儲與服務(wù)化調(diào)用。

猜你喜歡
業(yè)務(wù)流程粒度雞群
林下養(yǎng)殖雞群人工免疫失敗的成因及應(yīng)對措施
引起雞群呼吸道疾病的因素
粉末粒度對純Re坯顯微組織與力學(xué)性能的影響
RPA機(jī)器人助業(yè)務(wù)流程智能化
基于矩陣的多粒度粗糙集粒度約簡方法
STK業(yè)務(wù)流程優(yōu)化的探究
電子測試(2018年23期)2018-12-29 11:11:28
企業(yè)財務(wù)管理、業(yè)務(wù)流程管理中整合ERP之探索
基于財務(wù)業(yè)務(wù)流程再造的ERP信息系統(tǒng)構(gòu)建探析
中國商論(2016年34期)2017-01-15 14:24:22
基于粒度矩陣的程度多粒度粗糙集粒度約簡
雞群霉菌毒素中毒的防治
库伦旗| 景东| 将乐县| 栖霞市| 河津市| 甘谷县| 泰顺县| 望谟县| 左权县| 济源市| 五常市| 云南省| 托克逊县| 邹平县| 黄龙县| 黄骅市| 晋中市| 广灵县| 南开区| 离岛区| 定西市| 福海县| 贵港市| 江山市| 乌鲁木齐县| 万年县| 威宁| 汤阴县| 嘉善县| 云林县| 河源市| 和顺县| 高州市| 都安| 社旗县| 洛隆县| 南乐县| 商水县| 蚌埠市| 青岛市| 宜阳县|