亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SOA的云機(jī)器人服務(wù)框架設(shè)計(jì)

        2021-02-25 05:52:30劉曉軍類成玉
        關(guān)鍵詞:副本調(diào)用集群

        劉曉軍,類成玉,吳 皓+,楊 勇

        (1.中國石油大學(xué)勝利學(xué)院 機(jī)械與控制工程學(xué)院,山東 東營 257000;2.山東大學(xué) 控制科學(xué)與工程學(xué)院,山東 濟(jì)南 250061;3.濟(jì)南皓源自控系統(tǒng)工程有限公司 技術(shù)部,山東 濟(jì)南 250000)

        0 引 言

        服務(wù)型機(jī)器人較普通機(jī)器人在人機(jī)交互時(shí)面臨著更大的計(jì)算和存儲開銷,而傳統(tǒng)服務(wù)型機(jī)器人僅僅依靠本地資源進(jìn)行任務(wù)的求解已無法滿足其實(shí)時(shí)性和計(jì)算能力的需求。文獻(xiàn)[1-5]通過將云計(jì)算與機(jī)器人結(jié)合不僅緩解了機(jī)器人的本地計(jì)算壓力,而且實(shí)現(xiàn)了機(jī)器人之間的協(xié)作和信息共享,使機(jī)器人具有了更高的智能性。然而這些工作普遍采用的使點(diǎn)對點(diǎn)的機(jī)器人服務(wù)提供方式,機(jī)器人與云平臺架構(gòu)不統(tǒng)一,缺乏機(jī)器人服務(wù)的可拓展性。為了使云機(jī)器人服務(wù)具有更高的可拓展性,文獻(xiàn)[6-9]基于SOA架構(gòu)實(shí)現(xiàn)了機(jī)器人應(yīng)用的服務(wù)化,提高了機(jī)器人應(yīng)用的拓展性、可維護(hù)性和可管理性,并且實(shí)現(xiàn)了異構(gòu)機(jī)器人之間服務(wù)的相互調(diào)用。然而上述工作仍然缺乏對云機(jī)器人系統(tǒng)中各種資源的管理和合理調(diào)度,無法充分云機(jī)器人的各種資源。針對這些問題,本文基于SOA架構(gòu)設(shè)計(jì)了一種云機(jī)器人分布式服務(wù)框架,通過云計(jì)算基礎(chǔ)平臺對云機(jī)器人典型應(yīng)用環(huán)境中的資源進(jìn)行統(tǒng)一的管理和調(diào)度,其中包括計(jì)算資源、存儲資源、機(jī)器人資源和設(shè)備/傳感器資源等,提高了云機(jī)器人集群資源的利用率。同時(shí)本文基于Alibaba的Dubbo框架來構(gòu)建云機(jī)器人分布式服務(wù),將機(jī)器人服務(wù)項(xiàng)進(jìn)行多副本化覆蓋到服務(wù)器節(jié)點(diǎn)中,實(shí)現(xiàn)了機(jī)器人服務(wù)的負(fù)載均衡和彈性容錯(cuò)。并且機(jī)器人服務(wù)的分布式部署可以充分利用異構(gòu)主機(jī)的不同特性,充分發(fā)揮異構(gòu)主機(jī)的優(yōu)勢,提高云機(jī)器人系統(tǒng)資源利用率和機(jī)器人服務(wù)的質(zhì)量。

        針對單一服務(wù)無法滿足用戶和機(jī)器人復(fù)雜應(yīng)用需求,我們采用服務(wù)組合[10]的方式將單一的服務(wù)集成組合起來,從而提供更加綜合復(fù)雜的服務(wù)。統(tǒng)一描述發(fā)現(xiàn)和集成(universal description,discovery and integration,UDDI)算法與自適應(yīng)負(fù)載均衡(load capacity based algorithm,LCB)算法是目前常用的服務(wù)查找和組合算法,文獻(xiàn)[11]利用了并行蟻群算法對優(yōu)化了服務(wù)組合,文獻(xiàn)[12]提出了一種基于概率模型檢測服務(wù)組合方法,通過將Web服務(wù)組合過程建立為定量多目標(biāo)馬爾可夫決策過程的方式,解決了服務(wù)組合的不確定性。本文在LCB算法的基礎(chǔ)上對機(jī)器人云平臺各個(gè)節(jié)點(diǎn)提供服務(wù)的服務(wù)質(zhì)量進(jìn)行了詳細(xì)的度量,改進(jìn)了LCB算法,提出了一種新的分布式服務(wù)查找和組合的算法。該算法基于分布式哈希表(distributed hash table,DHT)路由算法注冊和發(fā)布服務(wù)項(xiàng),建立每個(gè)節(jié)點(diǎn)的服務(wù)路由表,隨后測度供選擇節(jié)點(diǎn)的負(fù)載均衡變化狀況以及該節(jié)點(diǎn)的服務(wù)質(zhì)量信息,并根據(jù)這些信息選擇下一跳的服務(wù)節(jié)點(diǎn),動態(tài)地構(gòu)建出路徑代價(jià)最小的服務(wù)組合路徑。

        1 云機(jī)器人分布式服務(wù)框架整體結(jié)構(gòu)

        服務(wù)型機(jī)器人正逐漸進(jìn)入人們的日常生活中,相比工業(yè)機(jī)器人,服務(wù)機(jī)器人常被安置于各式各樣的復(fù)雜環(huán)境中,需要經(jīng)常與人和復(fù)雜環(huán)境交互,因此需要更高的智能性和自主性,能夠?qū)Ω鶕?jù)收集的信息和人們的指令及時(shí)做出反應(yīng),并能夠順應(yīng)環(huán)境的變化做出相應(yīng)調(diào)整。服務(wù)型機(jī)器人的典型應(yīng)用場景中主要有5種角色:用戶、終端設(shè)備、機(jī)器人集群、服務(wù)器集群和固定設(shè)備/傳感器。在該應(yīng)用場景中機(jī)器人既是服務(wù)的提供者又是服務(wù)的消費(fèi)者,從而實(shí)現(xiàn)機(jī)器人集群多機(jī)協(xié)作完成各種復(fù)雜的任務(wù),同時(shí)又可以通過云端獲取環(huán)境中固定硬件設(shè)備的傳感器信息,拓展機(jī)器人的信息來源。服務(wù)器集群則是整個(gè)系統(tǒng)的核心,是服務(wù)的提供者,同時(shí)又是整個(gè)系統(tǒng)的服務(wù)的注冊中心和管理中心,所有服務(wù)包括機(jī)器人集群提供的服務(wù)最后也要向服務(wù)器集群的服務(wù)注冊中心進(jìn)行注冊,并由服務(wù)的管理中心進(jìn)行統(tǒng)一的調(diào)度。用戶作為服務(wù)的消費(fèi)者可以通過指令或終端設(shè)備來獲取由機(jī)器人集群、服務(wù)器集群和固定設(shè)備集群構(gòu)成的云機(jī)器人系統(tǒng)所提供的服務(wù)。

        本文設(shè)計(jì)的云機(jī)器人分布式服務(wù)框架如圖1所示,框架共分為5層,分別為:物理層、資源層、分布式計(jì)算和服務(wù)運(yùn)行層、服務(wù)實(shí)現(xiàn)和服務(wù)組合層、SOA接口層。該框架旨在解決傳統(tǒng)機(jī)器人本地計(jì)算和存儲資源的匱乏,充分利用云端大數(shù)據(jù)處理能力來提升機(jī)器人的計(jì)算和存儲能力,并且結(jié)合環(huán)境中的固定設(shè)備和傳感器來拓展機(jī)器人的信息來源,而且機(jī)器人能夠通過云端共享數(shù)據(jù),方便進(jìn)行協(xié)作,從而提升機(jī)器人的服務(wù)能力??蚣苤械腟OA接口層,使得框架中的硬件設(shè)備都采用統(tǒng)一的接口,屏蔽了異構(gòu)機(jī)器人底層之間差異,從而更方便地為異構(gòu)機(jī)器人提供通用的服務(wù),使得系統(tǒng)的服務(wù)功能拓展和管理更為靈活。

        圖1 云機(jī)器人分布式服務(wù)框架的整體架構(gòu)

        在框架下,物理層的機(jī)器人集群、服務(wù)器集群和設(shè)備/傳感器集群將作為整個(gè)系統(tǒng)中資源的提供者,其為機(jī)器人云平臺中的服務(wù)執(zhí)行提供計(jì)算、存儲、機(jī)器人硬件和設(shè)備/傳感器等資源。而資源層是這些資源的注冊中心和管理中心,為云平臺提供資源發(fā)現(xiàn)和資源管理的功能。分布式計(jì)算和服務(wù)運(yùn)行層、資源層共同構(gòu)成了云平臺,云平臺從物理層獲取資源,對資源進(jìn)行注冊、管理和調(diào)度,并向服務(wù)實(shí)現(xiàn)層提供統(tǒng)一接口,為服務(wù)的運(yùn)行提供基礎(chǔ)環(huán)境。

        下面詳細(xì)介紹一下框架結(jié)構(gòu)中的各層功能:

        (1)物理層和資源層

        物理層是整個(gè)框架的基礎(chǔ),通過網(wǎng)絡(luò)將系統(tǒng)中的服務(wù)器、機(jī)器人和固定設(shè)備進(jìn)行互聯(lián),為云平臺提供計(jì)算資源、存儲資源、機(jī)器人資源和設(shè)備資源。資源層是資源的注冊和管理中心,為云平臺提供資源發(fā)現(xiàn)的功能,并對資源進(jìn)行統(tǒng)一的管理和調(diào)度。在資源層,我們采用云計(jì)算平臺Cloudstack[13]對服務(wù)器集群進(jìn)行管理和配置,對從服務(wù)器集群抽象出的計(jì)算資源和存儲資源以及機(jī)器人和設(shè)備/傳感器進(jìn)行注冊和管理。同時(shí)資源層將提供資源狀態(tài)監(jiān)控服務(wù),隨時(shí)掌握資源的使用狀況,從而更加合理調(diào)度資源,提供資源的利用率。

        (2)服務(wù)實(shí)現(xiàn)層和服務(wù)組合層

        服務(wù)實(shí)現(xiàn)和服務(wù)組合層由服務(wù)開發(fā)者進(jìn)行管理和維護(hù),服務(wù)開發(fā)者根據(jù)云平臺提供的統(tǒng)一接口來開發(fā)機(jī)器人服務(wù),然后對服務(wù)進(jìn)行封裝發(fā)布。同時(shí),服務(wù)開發(fā)者可以集成和組合已有服務(wù)形成新的服務(wù),新服務(wù)的組成成員之間通過通信按照一定的邏輯來處理用戶或者機(jī)器人的復(fù)雜請求,從而靈活地實(shí)現(xiàn)上層的服務(wù)模型。同時(shí)通過分布式服務(wù)組合可以將云機(jī)器人分布式集群中已有的細(xì)粒度服務(wù)集成起來,共同為用戶或機(jī)器人提供更加復(fù)雜的服務(wù)任務(wù),提高云機(jī)器人服務(wù)的可拓展性和健壯性。

        (3)SOA接口層

        SOA接口層是用戶或者機(jī)器人與云平臺進(jìn)行交互的中間件,提供用戶交互、服務(wù)調(diào)用、服務(wù)管理和調(diào)度、服務(wù)監(jiān)測等功能。SOA接口層可以屏蔽異構(gòu)機(jī)器人底層差異,使服務(wù)以統(tǒng)一的方式進(jìn)行交互,為異構(gòu)機(jī)器人提供通用服務(wù)。如圖2所示,SOA接口層主要包含3個(gè)重要的模塊:服務(wù)調(diào)用代理,用戶交互代理和服務(wù)管理及監(jiān)控中心。其中用戶交互代理和服務(wù)調(diào)用代理通過RPC(遠(yuǎn)程過程調(diào)用)實(shí)現(xiàn)遠(yuǎn)程服務(wù)的調(diào)用,用戶交互代理為用戶或機(jī)器人提供了統(tǒng)一的調(diào)用接口,從而實(shí)現(xiàn)用戶客戶端和機(jī)器人客戶端對云機(jī)器人集群中的各種分布式服務(wù)的查詢與調(diào)用。服務(wù)調(diào)用代理負(fù)責(zé)收集用戶交互代理接收到的各種服務(wù)調(diào)用請求,并負(fù)責(zé)將各種請求按照特定協(xié)議序列化,實(shí)現(xiàn)對云機(jī)器人集群環(huán)境中服務(wù)的調(diào)用和對服務(wù)處理響應(yīng)結(jié)果的轉(zhuǎn)發(fā)。

        本文基于Alibaba的Dubbo框架設(shè)計(jì)了云機(jī)器人分布式服務(wù)框架的SOA接口層,Dubbo框架是典型的SOA架構(gòu)。在Dubbo框架下服務(wù)是圍繞服務(wù)提供方和服務(wù)消費(fèi)方的,服務(wù)提供方實(shí)現(xiàn)服務(wù),而服務(wù)消費(fèi)方遠(yuǎn)程調(diào)用服務(wù)。其中服務(wù)提供者運(yùn)行在服務(wù)器端,是暴露服務(wù)的服務(wù)提供方,在云機(jī)器人分布式集群中,服務(wù)提供者可以以多副本的形式運(yùn)行在多臺集群主機(jī)上,通過服務(wù)調(diào)度和負(fù)載均衡為服務(wù)消費(fèi)者提供更健壯和魯棒的服務(wù)。服務(wù)注冊端是服務(wù)注冊和發(fā)現(xiàn)的注冊中心。服務(wù)運(yùn)行容器是服務(wù)實(shí)例的實(shí)際運(yùn)行位置,服務(wù)監(jiān)控端負(fù)責(zé)監(jiān)控服務(wù)的運(yùn)行,統(tǒng)計(jì)服務(wù)的調(diào)用次數(shù)和調(diào)用時(shí)間。

        2 云機(jī)器人服務(wù)組合負(fù)載均衡算法

        2.1 分布式服務(wù)組合的模型定義

        在云機(jī)器人分布式服務(wù)框架下定義了云機(jī)器人集群服務(wù)覆蓋網(wǎng)絡(luò),如圖2所示,在服務(wù)覆蓋網(wǎng)絡(luò)中的節(jié)點(diǎn)可以是服務(wù)器,也可以是機(jī)器人或智能設(shè)備;而邊表示節(jié)點(diǎn)與節(jié)點(diǎn)之間的通訊情況,其值的大小代表節(jié)點(diǎn)之間的通信代價(jià)。在集群服務(wù)覆蓋網(wǎng)絡(luò)中的節(jié)點(diǎn)上可以將服務(wù)以多副本的形式部署上去,對于只能由機(jī)器人節(jié)點(diǎn)處理的服務(wù),應(yīng)該將該類服務(wù)部署到機(jī)器人的節(jié)點(diǎn)主機(jī)上,其它類別的服務(wù)要按照服務(wù)的服務(wù)質(zhì)量選擇部署到響應(yīng)的節(jié)點(diǎn)上,從而充分發(fā)揮異構(gòu)節(jié)點(diǎn)主機(jī)的各自優(yōu)勢,實(shí)現(xiàn)機(jī)器人云平臺的負(fù)載均衡和彈性容錯(cuò)。圖2是云機(jī)器人分布式服務(wù)組合的示意圖,云機(jī)器人服務(wù)組合請求時(shí),利用本文的分布式服務(wù)查找和組合算法在機(jī)器人集群服務(wù)覆蓋網(wǎng)絡(luò)中選擇相應(yīng)的服務(wù),并且建立從服務(wù)調(diào)用客戶端到出口節(jié)點(diǎn)的服務(wù)路徑,并優(yōu)化其路徑代價(jià),從而提高服務(wù)的QPS和高可用性,通過服務(wù)組合可以集成細(xì)粒度的服務(wù)從而構(gòu)成復(fù)雜的新應(yīng)用,提高服務(wù)機(jī)器人的服務(wù)能力。

        圖2 云機(jī)器人分布式服務(wù)組合

        圖2中顯示了4種服務(wù)及其副本的部署情況,用戶請求組合服務(wù)3和服務(wù)4時(shí),算法將搜尋服務(wù)覆蓋網(wǎng)絡(luò)中的節(jié)點(diǎn)并建立一條從服務(wù)調(diào)用節(jié)點(diǎn)到服務(wù)出口節(jié)點(diǎn)的路徑代價(jià)較小的服務(wù)路徑,該路徑連接了服務(wù)4和服務(wù)3兩個(gè)服務(wù)實(shí)例,為用戶提供一個(gè)由服務(wù)3和服務(wù)4組合成的復(fù)雜應(yīng)用服務(wù)。服務(wù)路徑中允許存在請求/響應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù),用來對服務(wù)請求和響應(yīng)的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。服務(wù)數(shù)據(jù)沿著服務(wù)路徑傳輸,最后傳遞給用戶。

        基于SOA架構(gòu)的云機(jī)器人集群服務(wù)覆蓋網(wǎng)絡(luò)如圖2所示,將云機(jī)器人系統(tǒng)集群服務(wù)覆蓋網(wǎng)絡(luò)抽象成一個(gè)無向圖G=(V,E),其中V是集群服務(wù)覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)的集合,其個(gè)數(shù)為N;E是節(jié)點(diǎn)之間邊的集合。設(shè)任意兩個(gè)服務(wù)副本如果位于同一個(gè)節(jié)點(diǎn)上,則其之間的通信延遲為0;若任意兩個(gè)服務(wù)副本位于兩個(gè)不同的節(jié)點(diǎn)上時(shí),則其之間的通信延遲為τ。將節(jié)點(diǎn)集合V中的每個(gè)節(jié)點(diǎn)vi抽象為一個(gè)五元組vi=[ci,mi,qi,si,Di]。其中ci為第i個(gè)節(jié)點(diǎn)主機(jī)的CPU性能;mi表示第i個(gè)節(jié)點(diǎn)主機(jī)的內(nèi)存綜合性能;qi記錄了當(dāng)前節(jié)點(diǎn)vi上部署的云機(jī)器人服務(wù)列表;si表示當(dāng)前節(jié)點(diǎn)vi上的服務(wù)請求隊(duì)列;Di是當(dāng)前節(jié)點(diǎn)vi上的服務(wù)轉(zhuǎn)發(fā)列表。一個(gè)服務(wù)組合請求可以標(biāo)識為Sp(S0,S1,S2,…,SL-1),其中Sp為服務(wù)組合請求,L為服務(wù)請求數(shù)量,服務(wù)組合路徑上的服務(wù)標(biāo)識依次為S0,S1,S2,…。

        2.2 分布式服務(wù)路由的建立

        傳統(tǒng)集群服務(wù)注冊和發(fā)現(xiàn)方法大部分采用中心化結(jié)構(gòu),即采用一個(gè)服務(wù)注冊和管理中心總責(zé)所有節(jié)點(diǎn)上的服務(wù)注冊和查找,這樣使得服務(wù)注冊和管理中心面臨著較高的運(yùn)算壓力,容易造成注冊和管理中心節(jié)點(diǎn)過載導(dǎo)致機(jī)器人云平臺集群的癱瘓。為了解決該問題,本文運(yùn)用基于DHT的路由算法對服務(wù)進(jìn)行注冊和查找,該算法將機(jī)器人云平臺中的每一個(gè)細(xì)粒度的服務(wù)利用哈希方法映射為一個(gè)數(shù)據(jù)元標(biāo)識符,且同一服務(wù)的不同副本具有相同的哈希值,這樣可以滿足服務(wù)及其響應(yīng)副本的功能特征的存儲需求。服務(wù)轉(zhuǎn)發(fā)列表Di的表中元素項(xiàng)可以表示為一個(gè)四元組R=[Ni,RSi,Ti,Li]。其中Ni為服務(wù)組合請求調(diào)用客戶端所在的節(jié)點(diǎn),RSi表示當(dāng)前節(jié)點(diǎn)中所需要調(diào)用的服務(wù)實(shí)例,Ti表示調(diào)用服務(wù)的下一跳節(jié)點(diǎn),Li是從節(jié)點(diǎn)Ni到服務(wù)調(diào)用出口節(jié)點(diǎn)的最短路徑長度。該路由算法分兩步建立分布式服務(wù)路由表:①對每一個(gè)節(jié)點(diǎn)vi,將該節(jié)點(diǎn)上部署的所有服務(wù)實(shí)例存儲到其服務(wù)提供列表qi中,從而實(shí)現(xiàn)服務(wù)的注冊與發(fā)布。②根據(jù)云平臺服務(wù)覆蓋網(wǎng)絡(luò)的通訊狀況對每個(gè)節(jié)點(diǎn)vi中的服務(wù)路由列表Di進(jìn)行構(gòu)建和更新。

        2.3 分布式服務(wù)組合的負(fù)載均衡策略

        (1)

        在實(shí)際云平臺應(yīng)用情形下,云平臺各個(gè)節(jié)點(diǎn)的實(shí)時(shí)負(fù)載狀況是難以觀測的,因此,我們將節(jié)點(diǎn)當(dāng)前時(shí)刻的負(fù)載測度近似為當(dāng)前時(shí)刻前后一段時(shí)間內(nèi)的服務(wù)請求隊(duì)列的變化。節(jié)點(diǎn)的綜合性能由CPU綜合性能狀態(tài)參數(shù)ci、內(nèi)存綜合性能參數(shù)mi、服務(wù)請求等待隊(duì)列si的長度Lsi等狀態(tài)參數(shù)共同決定。設(shè)云機(jī)器人集群服務(wù)覆蓋網(wǎng)中節(jié)點(diǎn)vi在T1時(shí)刻的系統(tǒng)資源的狀態(tài)參數(shù)為ciT1,miT1,LsiT1;在T2時(shí)刻的系統(tǒng)參數(shù)測度為ciT2,miT2,LsiT2,定義節(jié)點(diǎn)vi的負(fù)載變化測度ρ′i

        (2)

        式(2)計(jì)算了某一時(shí)間段內(nèi)節(jié)點(diǎn)的負(fù)載變化情況,如果ρ′i≤0時(shí),表示節(jié)點(diǎn)vi在T1到T2期間有服務(wù)已經(jīng)處理完成,節(jié)點(diǎn)的資源得到了釋放,負(fù)載的測度也隨之降低;反之,當(dāng)ρ′i>0時(shí),表示節(jié)點(diǎn)vi在T1到T2期間存在服務(wù)請求積壓現(xiàn)象,服務(wù)請求處理能力小于接受的服務(wù)請求數(shù),節(jié)點(diǎn)負(fù)載測度隨之增加。

        利用云機(jī)器人集群節(jié)點(diǎn)的負(fù)載測度對機(jī)器人服務(wù)組合路徑進(jìn)行計(jì)算的算法流程如圖3所示,當(dāng)有客戶端向云機(jī)器人集群中某一節(jié)點(diǎn)vi發(fā)起服務(wù)組合請求Sp(S0,S1,S2,…,SL-1)時(shí),會依次對服務(wù)組合請求Sp中的每一個(gè)服務(wù)調(diào)用請求Sj,查詢當(dāng)前節(jié)點(diǎn)的服務(wù)路由列表Di,如果服務(wù)路由列表中只有一條與服務(wù)Sj相關(guān)的信息,則根據(jù)路由列表Di中的信息將服務(wù)Sj的請求轉(zhuǎn)發(fā)至響應(yīng)的節(jié)點(diǎn)vi,并在節(jié)點(diǎn)vj上執(zhí)行當(dāng)前服務(wù),并將服務(wù)響應(yīng)結(jié)果原路返回至客戶端;如果服務(wù)路由列表Di中有多條與服務(wù)Sj相關(guān)的信息,那么根據(jù)式(2)去計(jì)算路由表中每一個(gè)下一跳節(jié)點(diǎn)的負(fù)載測度,并選擇一個(gè)負(fù)載測度最小的節(jié)點(diǎn)Sj,將服務(wù)請求轉(zhuǎn)發(fā)至節(jié)點(diǎn)vj上去執(zhí)行,同樣也將服務(wù)響應(yīng)原路轉(zhuǎn)發(fā)返回至客戶端。如此循環(huán)直至將服務(wù)組合請求中的每一個(gè)服務(wù)請求全部執(zhí)行完畢后,則云機(jī)器人分布式服務(wù)組合成功結(jié)束。

        3 實(shí)驗(yàn)設(shè)計(jì)與分析

        3.1 云機(jī)器人分布式服務(wù)組合和服務(wù)調(diào)用實(shí)驗(yàn)

        實(shí)驗(yàn)利用Alibaba的Dubbo框架搭建云機(jī)器人分布式服務(wù)框架,利用實(shí)驗(yàn)室的3臺電腦來搭建云機(jī)器人分布式集群環(huán)境,3臺主機(jī)配置都是CPU:Intel Core i5-6500,內(nèi)存8 G,硬盤1 T,操作系統(tǒng)Ubuntu16.04 64位。首先利用Dubbo框架封裝了基于opencv的人臉檢測程序和人臉識別程序并將其分別發(fā)布為人臉檢測服務(wù)和人臉識別服務(wù)。然后通過分布式服務(wù)組合算法組合發(fā)布的人臉檢測服務(wù)和人臉識別服務(wù),實(shí)現(xiàn)對機(jī)器人場景中人臉的檢測和識別。實(shí)驗(yàn)具體的處理過程及實(shí)驗(yàn)效果如圖4所示,首先調(diào)用人臉檢測服務(wù)將圖片中的人臉提取出來,然后調(diào)用人臉識別服務(wù)對上一步提取出的人臉進(jìn)行識別。

        實(shí)驗(yàn)中云機(jī)器人集群的節(jié)點(diǎn)分布情況和兩類服務(wù)及其副本的部署情況如圖5所示,集群中的3臺主機(jī)兩兩可以通信,兩類服務(wù)各有3個(gè)服務(wù)副本,其中a1,a2,a3是人臉檢測服務(wù)的3個(gè)副本,b1,b2,b3是人臉識別服務(wù)的3個(gè)服務(wù)副本,c1,c2,c3是非操作服務(wù),主要負(fù)責(zé)服務(wù)請求和響應(yīng)數(shù)據(jù)的轉(zhuǎn)發(fā)。為了說明框架的有效性和魯棒性,我們將發(fā)布的人臉檢測服務(wù)和人臉識別服務(wù)按照圖5的方式部署到云機(jī)器人分布式服務(wù)框架中,并利用wrk工具對云機(jī)器人分布式服務(wù)框架中的這兩種服務(wù)進(jìn)行壓力測試。表1是壓力測試的統(tǒng)計(jì)結(jié)果,我們分別進(jìn)行了3種場景下的3輪壓力測試,3種場景分別是128個(gè)連接、256個(gè)連接和512個(gè)連接,即同一個(gè)時(shí)刻同時(shí)會有128、256或512個(gè)服務(wù)調(diào)用請求,并且每種場景進(jìn)行3輪每輪持續(xù)20 s的服務(wù)調(diào)用壓力測試,分別統(tǒng)計(jì)了這20 s的服務(wù)成功調(diào)用的次數(shù)、服務(wù)調(diào)用失敗(或者超時(shí))的次數(shù)、QPS(每秒服務(wù)成功調(diào)用并返回正確響應(yīng)結(jié)果的次數(shù))。如表1的統(tǒng)計(jì)結(jié)果所示,本文的云機(jī)器人服務(wù)框架在面臨著人臉檢測和人臉識別這類的計(jì)算密集型的服務(wù)時(shí),仍能保持1000以上的QPS,并且隨著連接數(shù)的升高,QPS也能隨著上升。因?yàn)榉?wù)調(diào)用采用的是異步調(diào)用方式,前一個(gè)沒有完成服務(wù)不會阻塞下一個(gè)服務(wù)的調(diào)用,因此能夠獲得較高的QPS。

        圖3 云機(jī)器人分布式服務(wù)組合算法流程

        圖4 實(shí)驗(yàn)過程及實(shí)驗(yàn)效果

        圖5 節(jié)點(diǎn)的分布情況和兩類服務(wù)及其副本的部署情況

        表2是服務(wù)組合路徑的統(tǒng)計(jì)結(jié)果,我們分了3輪實(shí)驗(yàn),分別將服務(wù)調(diào)用客戶端入口置于圖5所示的3個(gè)不同的節(jié)點(diǎn)主機(jī)上,然后分別進(jìn)行服務(wù)組合調(diào)用,統(tǒng)計(jì)每輪實(shí)驗(yàn)的服務(wù)組合服務(wù)路徑,實(shí)驗(yàn)結(jié)果見表2,通過表2可以看出,每次實(shí)驗(yàn)結(jié)果得到的服務(wù)組合路徑基本是最短的,從而驗(yàn)證了本文提出的云機(jī)器人分布式服務(wù)框架的可行性和有效性。

        表1 云機(jī)器人框架中人臉檢測和識別服務(wù)壓力測試的統(tǒng)計(jì)結(jié)果

        3.2 云機(jī)器人分布式服務(wù)查找和組合的仿真實(shí)驗(yàn)

        我們借助Gridsim網(wǎng)絡(luò)仿真工具進(jìn)行仿真實(shí)驗(yàn)來驗(yàn)證本文設(shè)計(jì)的分布式服務(wù)框架的負(fù)載均衡效果以及服務(wù)組合調(diào)用的QPS。首先利用Gridsim工具建立起實(shí)驗(yàn)的云機(jī)器人集群服務(wù)覆蓋網(wǎng)絡(luò),其中含有10個(gè)節(jié)點(diǎn),然后從該10個(gè)節(jié)點(diǎn)中隨機(jī)選出5個(gè)作為服務(wù)實(shí)例的部署節(jié)點(diǎn)。最后在節(jié)點(diǎn)上部署S0~S9共10種不同的服務(wù),每個(gè)服務(wù)會話持續(xù)60 s,且每種服務(wù)含有3個(gè)服務(wù)副本,則在集群服務(wù)覆蓋網(wǎng)絡(luò)中共含有30個(gè)服務(wù)實(shí)例。我們將這30個(gè)服務(wù)實(shí)例均勻部署到50個(gè)部署節(jié)點(diǎn)上去,那么每個(gè)部署節(jié)點(diǎn)含有6個(gè)服務(wù)實(shí)例,同時(shí)設(shè)置資源的權(quán)重集合λ=[0.2,0.2,0.5]。

        表2 服務(wù)組合路徑的統(tǒng)計(jì)結(jié)果

        我們在仿真環(huán)境下進(jìn)行服務(wù)組合調(diào)用,每個(gè)服務(wù)請求隨機(jī)選擇S0~S9這10種服務(wù)中的6種進(jìn)行組合,設(shè)置30 次/s的請求頻率,持續(xù)請求60 s的時(shí)間。表1是該模擬實(shí)驗(yàn)統(tǒng)計(jì)的每種服務(wù)副本上處理請求的個(gè)數(shù),由表1可以看出S0~S9這10種服務(wù)的3個(gè)副本分別處理的請求個(gè)數(shù)基本上一致,因此可以得出結(jié)論,本文的分布式服務(wù)框架具有較好的負(fù)載均衡效果。

        同時(shí),我們在仿真環(huán)境中對UDDI算法、LCB算法和本文提出的分布式服務(wù)查找和組合算法進(jìn)行了壓力測試。設(shè)置每個(gè)服務(wù)會話的持續(xù)時(shí)間為10 ms,設(shè)置服務(wù)覆蓋網(wǎng)絡(luò)是密集的且相鄰節(jié)點(diǎn)的網(wǎng)絡(luò)延遲為8 ms。我們將10種不同壓力環(huán)境(單位時(shí)間內(nèi)進(jìn)行的服務(wù)請求次數(shù))下的單個(gè)服務(wù)組合的平均完成時(shí)間作為服務(wù)組合性能的測度。圖6是這3種算法的性能對比曲線。

        圖6 分布式服務(wù)組合算法的性能對比

        如圖6的3種算法的服務(wù)組合性能對比效果所示,UDDI算法在服務(wù)調(diào)用壓力較小時(shí)(單位時(shí)間內(nèi)的服務(wù)請求次數(shù)較少),其單個(gè)服務(wù)組合的平均完成時(shí)間最少,即服務(wù)組合的性能最好,這是因?yàn)閁DDI采用的是中心化的結(jié)構(gòu),不需要考慮網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),所以其在壓力小時(shí)具有較好的性能。而當(dāng)服務(wù)調(diào)用壓力上升,即單位時(shí)間內(nèi)服務(wù)請求的次數(shù)上升至600 次/s時(shí),UDDI算法的性能下降,這是由于壓力過大時(shí)造成服務(wù)注冊和管理中心過載,服務(wù)調(diào)用周期變長。而由于本文算法和LCB算法采用的是分布式的去中心化的結(jié)構(gòu),在服務(wù)調(diào)用壓力上升時(shí)不會出現(xiàn)類似UDDI算法性能下降的情況,其單個(gè)服務(wù)組合的平均完成時(shí)間變化較為平穩(wěn)。在整體看來,本文算法在各種不同調(diào)用壓力情況下其單個(gè)服務(wù)組合的平均完成時(shí)間都要低于LCB算法,這是因?yàn)楸疚乃惴ㄔ诠?jié)點(diǎn)負(fù)載度量和服務(wù)路徑規(guī)劃方面做了改進(jìn),從圖6可以看出本文的云平臺分布式服務(wù)查找和組合算法在性能上要優(yōu)于LCB算法。

        4 結(jié)束語

        本文設(shè)計(jì)的云機(jī)器人分布式服務(wù)框架,通過云機(jī)器人服務(wù)的分布式部署,充分發(fā)揮了機(jī)器人云平臺中異構(gòu)主機(jī)的各自優(yōu)勢,提高了資源的利用率和服務(wù)的質(zhì)量,并通過設(shè)計(jì)服務(wù)框架的SOA接口層實(shí)現(xiàn)了云機(jī)器人服務(wù)的跨平臺調(diào)用,提升了機(jī)器人云平臺的可拓展性和對異構(gòu)機(jī)器人的兼容性。同時(shí),本文提出的多服務(wù)副本下服務(wù)查找和組合算法,通過節(jié)點(diǎn)一段時(shí)間內(nèi)的負(fù)載變化估計(jì)節(jié)點(diǎn)的負(fù)載情況,并在服務(wù)組合時(shí)根據(jù)節(jié)點(diǎn)的負(fù)載情況動態(tài)構(gòu)建服務(wù)路徑路徑,從而實(shí)現(xiàn)了機(jī)器人云平臺下的負(fù)載均衡和彈性容錯(cuò),提高了云機(jī)器人集群的穩(wěn)定性和服務(wù)的吞吐量。接下來可以對服務(wù)組合的復(fù)雜度進(jìn)行更深入的研究,進(jìn)一步提高機(jī)器人的服務(wù)能力和負(fù)載均衡能力。

        猜你喜歡
        副本調(diào)用集群
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
        面向流媒體基于蟻群的副本選擇算法①
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:40
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        勤快又呆萌的集群機(jī)器人
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        副本放置中的更新策略及算法*
        樹形網(wǎng)絡(luò)中的副本更新策略及算法*
        日本熟妇高潮爽视频在线观看| 亚洲中文久久精品字幕| 极品尤物在线精品一区二区三区| 欧美老妇交乱视频在线观看| 中文字幕乱伦视频| 国产午夜精品一区二区三区不| 亚洲国产成人av第一二三区| 色婷婷精品大在线视频| 亚洲国产女性内射第一区二区| 粗大的内捧猛烈进出看视频| 国产真实乱对白精彩| 最新69国产成人精品视频免费 | 国产亚洲精品A在线无码| 日本一区二区精品色超碰| 国产精品女主播在线播放| 欧美熟妇另类久久久久久不卡| 人妻少妇av无码一区二区| 美女裸体无遮挡免费视频国产| 免费人妻精品一区二区三区| 国产精品国产三级国产av中文| 人妻少妇精品无码专区动漫| 欧美日韩国产一区二区三区地区| 中文字幕乱码亚洲美女精品一区| 久久久精品国产av麻豆樱花| 丰满少妇按摩被扣逼高潮| 欧美激情一区二区三区| 国产亚洲婷婷香蕉久久精品| 人妻无码AⅤ不卡中文字幕| 天堂岛国精品在线观看一区二区| 亚洲av综合色一区二区| 久久精品国产免费观看| 波多野结衣中文字幕久久| 国产精品美女白浆喷水| 日本激情一区二区三区| 亚洲最大成人网站| 中文字幕乱码人妻一区二区三区| 国产亚洲日本人在线观看| 中文字幕在线乱码av| 黑人上司粗大拔不出来电影| 一本久到久久亚洲综合| 亚洲不卡高清av在线|