本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種基于artifact的大數(shù)據(jù)服務(wù)平臺的處理方法,還涉及一種基于artifact的大數(shù)據(jù)服務(wù)平臺。
背景技術(shù):
近年來,隨著技術(shù)和網(wǎng)絡(luò)的發(fā)展,人們對相關(guān)的計(jì)算能力、資源集中化、資源利用率的要求越來越高,因而,云計(jì)算應(yīng)運(yùn)而生,使得人們越來越傾向于將應(yīng)用和服務(wù)部署到云環(huán)境中。目前,如何有效的對各種各樣的服務(wù)進(jìn)行管理和調(diào)用,是云計(jì)算面臨的一個關(guān)鍵問題。傳統(tǒng)的web服務(wù)調(diào)用方式已經(jīng)有很多學(xué)者進(jìn)行了研究,但是隨著各種各樣的大數(shù)據(jù)服務(wù)不斷涌現(xiàn)并且web服務(wù)調(diào)用方式不能直接應(yīng)用于大數(shù)據(jù)服務(wù)中,使得根據(jù)大數(shù)據(jù)服務(wù)的特點(diǎn),提出一種服務(wù)描述文檔格式,以滿足云計(jì)算中根據(jù)服務(wù)描述文檔對大數(shù)據(jù)服務(wù)進(jìn)行調(diào)用的要求是十分必要的。
傳統(tǒng)環(huán)境下的服務(wù)選擇和組合的研究已經(jīng)有了一定進(jìn)展,但是目前的研究還是以傳統(tǒng)的web服務(wù)作為研究對象。然而隨著各種各樣的大數(shù)據(jù)服務(wù)的不斷涌現(xiàn),也為服務(wù)組合帶來了新的挑戰(zhàn),大數(shù)據(jù)服務(wù)由于本身的特性,有著與web服務(wù)不同的一面,但是,目前大數(shù)據(jù)服務(wù)與web服務(wù)相對穩(wěn)定的處理時間不同,大數(shù)據(jù)服務(wù)的處理時間受到輸入數(shù)據(jù)量的影響很大而且處理時間都是較長的,同時因?yàn)閭鹘y(tǒng)的web服務(wù)調(diào)用方式和組合方式也不能直接應(yīng)用于大數(shù)據(jù)服務(wù)中,所以對大數(shù)據(jù)服務(wù)的組合也是云環(huán)境下服務(wù)組合所面臨的另一個關(guān)鍵問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的一是,提供一種基于artifact的大數(shù)據(jù)服務(wù)的平臺處理方法,可有效進(jìn)行大數(shù)據(jù)調(diào)用服務(wù),提高處理速率。
本發(fā)明的目的二是,提供實(shí)現(xiàn)該方法的一種平臺。
為實(shí)現(xiàn)該目一的,提供了一種基于artifact的大數(shù)據(jù)服務(wù)平臺的處理方法,該方法涉及到服務(wù)執(zhí)行引擎和消息隊(duì)列rabbitmq,其包括以下處理步驟:
步驟101:用戶向平臺發(fā)送http請求,http請求包含要調(diào)用服務(wù)的地址id和輸入?yún)?shù)集;
步驟102:平臺接收到http請求后,將請求通過rabbitmq發(fā)送到服務(wù)執(zhí)行引擎;
步驟103:服務(wù)執(zhí)行引擎根據(jù)服務(wù)的地址id查找出該服務(wù)描述文檔位置;
步驟104:服務(wù)執(zhí)行引擎根據(jù)服務(wù)描述文檔調(diào)用服務(wù)。
優(yōu)選地,當(dāng)在步驟103中,服務(wù)執(zhí)行引擎根據(jù)服務(wù)的地址id查找出的為復(fù)合服務(wù)描述文檔的位置,在步驟104中進(jìn)行復(fù)合服務(wù)處理,所述復(fù)合服務(wù)處理包括以下處理步驟:
步驟401:解析復(fù)合服務(wù)描述文檔;
步驟402:將復(fù)合服務(wù)的輸入?yún)?shù)名進(jìn)行分割,分別解析出對應(yīng)的信息載體artifact的名稱和屬性attribute的名稱,然后將服務(wù)輸入的參數(shù)值賦給artifact中的屬性attribute;
步驟403:復(fù)合服務(wù)處理的組合過程采用事件驅(qū)動的模式,先對artifacts屬性進(jìn)行監(jiān)控,當(dāng)artifacts里的屬性變化后,更新artifacts的狀態(tài),查詢?nèi)恳?guī)則rules,檢測是否有rules符合,若沒有rules符合時,則保持當(dāng)前狀態(tài),繼續(xù)等待新的復(fù)合服務(wù)完成后觸發(fā)新的狀態(tài)改變后,重新檢測rules,若有則觸發(fā)業(yè)務(wù)流程服務(wù)services中服務(wù)的操作,調(diào)用外部服務(wù),調(diào)用完成后對artifacts里的屬性進(jìn)行修改,當(dāng)檢測到artifacts里的屬性狀態(tài)都進(jìn)入結(jié)束狀態(tài)后,服務(wù)組合流程執(zhí)行完成,復(fù)合服務(wù)調(diào)用結(jié)束。
優(yōu)選地,在步驟401中,解析復(fù)合服務(wù)描述文檔后生成一個執(zhí)行實(shí)例,所述執(zhí)行實(shí)例對應(yīng)的數(shù)據(jù)結(jié)構(gòu)包括倉庫repository實(shí)例、artifact模型的字典、規(guī)則rule的列表、服務(wù)類型的字典。
優(yōu)選地,在步驟403中,對artifacts屬性進(jìn)行監(jiān)控為對artifact模型的字典進(jìn)行監(jiān)控;當(dāng)檢測到artifact模型的字典狀態(tài)都進(jìn)入結(jié)束狀態(tài),服務(wù)組合流程執(zhí)行完成,復(fù)合服務(wù)調(diào)用結(jié)束。
優(yōu)選地,該平臺的處理方法對服務(wù)的調(diào)用采用中介代理的方式,服務(wù)執(zhí)行引擎負(fù)責(zé)從平臺獲取服務(wù)請求后,根據(jù)服務(wù)請求信息將請求轉(zhuǎn)化為對服務(wù)實(shí)例的調(diào)用,調(diào)用過程為根據(jù)請求查找服務(wù)信息,根據(jù)服務(wù)信息下載對應(yīng)的服務(wù)契約,根據(jù)服務(wù)契約調(diào)用服務(wù)。
優(yōu)選地,該平臺的處理方法還通過服務(wù)執(zhí)行引擎對設(shè)于服務(wù)執(zhí)行引擎外部服務(wù)集群進(jìn)行服務(wù)調(diào)用。
為實(shí)現(xiàn)目的二,還提供了一種基于artifact的大數(shù)據(jù)服務(wù)平臺,包括提供網(wǎng)站界面和web接口給用戶進(jìn)行交互的管理中心、用于服務(wù)調(diào)用的服務(wù)執(zhí)行引擎、用于傳遞信息的消息隊(duì)列rabbitmq,所述管理中心通過消息隊(duì)列rabbitmq與服務(wù)執(zhí)行引擎進(jìn)行信息傳遞。
優(yōu)選地,該平臺還包括復(fù)合服務(wù)執(zhí)行器,所述復(fù)合服務(wù)執(zhí)行器為服務(wù)執(zhí)行引擎的子系統(tǒng)。
優(yōu)選地,該平臺還包括有設(shè)于服務(wù)執(zhí)行引擎外部的服務(wù)集群,所述服務(wù)集群與服務(wù)執(zhí)行引擎連接。
本發(fā)明與現(xiàn)有技術(shù)相比,其有益效果在于:
本發(fā)明中管理中心根據(jù)用戶的請求通過rabbitmq去調(diào)用服務(wù)執(zhí)行引擎的功能,可有效進(jìn)行大數(shù)據(jù)調(diào)用服務(wù),提高處理速率。本發(fā)明中通過http請求就可以讓服務(wù)執(zhí)行引擎根據(jù)服務(wù)描述文檔調(diào)用大數(shù)據(jù)服務(wù)并返回結(jié)果,處理更快速,簡潔。
附圖說明
圖1為本發(fā)明的平臺結(jié)構(gòu)框圖;
圖2為本發(fā)明的平臺處理方法流程圖;
圖3為本發(fā)明中復(fù)合服務(wù)執(zhí)行器的處理方法流程圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例,對本發(fā)明作進(jìn)一步的描述,但不構(gòu)成對本發(fā)明的任何限制,任何在本發(fā)明權(quán)利要求范圍所做的有限次的修改,仍在本發(fā)明的權(quán)利要求范圍內(nèi)。
如圖1、圖2所示,一種基于artifact的大數(shù)據(jù)服務(wù)平臺的處理方法,其特征在于,該方法涉及到服務(wù)執(zhí)行引擎3和消息隊(duì)列rabbitmq2,其包括以下處理步驟:
步驟101:用戶向平臺發(fā)送http請求,http請求包含要調(diào)用服務(wù)的地址id和輸入?yún)?shù)集;
步驟102:平臺接收到http請求后,將請求通過rabbitmq2發(fā)送到服務(wù)執(zhí)行引擎;
步驟103:服務(wù)執(zhí)行引擎3根據(jù)服務(wù)的地址id查找出該服務(wù)描述文檔位置;
步驟104:服務(wù)執(zhí)行引擎3根據(jù)服務(wù)描述文檔調(diào)用服務(wù)。
如圖3所示,當(dāng)在步驟103中,服務(wù)執(zhí)行引擎根據(jù)服務(wù)的地址id查找出的為復(fù)合服務(wù)描述文檔的位置,在步驟104中進(jìn)行復(fù)合服務(wù)處理,所述復(fù)合服務(wù)處理包括以下處理步驟:
步驟401:解析復(fù)合服務(wù)描述文檔;
步驟402:將復(fù)合服務(wù)的輸入?yún)?shù)名進(jìn)行分割,分別解析出對應(yīng)的信息載體artifact的名稱和屬性attribute的名稱,然后將服務(wù)輸入的參數(shù)值賦給artifact中的屬性attribute;
步驟403:復(fù)合服務(wù)處理的組合過程采用事件驅(qū)動的模式,先對artifacts屬性進(jìn)行監(jiān)控,當(dāng)artifacts里的屬性變化后,更新artifacts的狀態(tài),查詢?nèi)恳?guī)則rules,檢測是否有rules符合,若沒有rules符合時,則保持當(dāng)前狀態(tài),繼續(xù)等待新的復(fù)合服務(wù)完成后觸發(fā)新的狀態(tài)改變后,重新檢測rules,若有則觸發(fā)業(yè)務(wù)流程服務(wù)services中服務(wù)的操作,調(diào)用外部服務(wù),調(diào)用完成后對artifacts里的屬性進(jìn)行修改,當(dāng)檢測到artifacts里的屬性狀態(tài)都進(jìn)入結(jié)束狀態(tài),服務(wù)組合流程執(zhí)行完成,復(fù)合服務(wù)調(diào)用結(jié)束。
在本實(shí)施例中,復(fù)合服務(wù)描述文檔為基于服務(wù)描述文檔的格式寫,在復(fù)合服務(wù)描述文檔中可以包含若干個服務(wù)描述文檔,在復(fù)合服務(wù)描述文檔的調(diào)用過程中可以將若干個服務(wù)組合到一起調(diào)用,也可以有先后順序得調(diào)用。
在本實(shí)施例中,當(dāng)觸發(fā)業(yè)務(wù)流程服務(wù)services中服務(wù)的操作,調(diào)用外部服務(wù),調(diào)用完成后對artifacts里的屬性進(jìn)行修改,又對artifacts狀態(tài)進(jìn)行修改,然后繼續(xù)檢測artifacts里的屬性狀態(tài)是否都進(jìn)入結(jié)束狀態(tài)。
在步驟401中,解析復(fù)合服務(wù)描述文檔后生成一個執(zhí)行實(shí)例,執(zhí)行實(shí)例對應(yīng)的數(shù)據(jù)結(jié)構(gòu)包括倉庫repository實(shí)例、artifact模型的字典、規(guī)則rule的列表、服務(wù)類型的字典。執(zhí)行實(shí)例為復(fù)合服務(wù)處理的具體操作處理事件或流程。
在步驟403中,對artifacts屬性進(jìn)行監(jiān)控為對artifact模型的字典進(jìn)行監(jiān)控;當(dāng)檢測到artifact模型的字典狀態(tài)都進(jìn)入結(jié)束狀態(tài)后,服務(wù)組合流程執(zhí)行完成,復(fù)合服務(wù)調(diào)用結(jié)束。
在本實(shí)施例中,所述復(fù)合服務(wù)處理負(fù)責(zé)對復(fù)合服務(wù)描述文檔進(jìn)行解析和執(zhí)行服務(wù)組合的流程。
該平臺的處理方法對服務(wù)的調(diào)用采用中介代理的方式,服務(wù)執(zhí)行引擎3負(fù)責(zé)從平臺獲取服務(wù)請求后,根據(jù)服務(wù)請求信息將請求轉(zhuǎn)化為對服務(wù)實(shí)例的調(diào)用,調(diào)用過程為根據(jù)請求查找服務(wù)信息,根據(jù)服務(wù)信息下載對應(yīng)的服務(wù)契約,根據(jù)服務(wù)契約調(diào)用服務(wù)。
該平臺的處理方法還通過服務(wù)執(zhí)行引擎3對設(shè)于服務(wù)執(zhí)行引擎3外部服務(wù)集群4進(jìn)行服務(wù)調(diào)用。
如圖1所示,本發(fā)明還提供了一種基于artifact的大數(shù)據(jù)服務(wù)平臺,包括提供網(wǎng)站界面和web接口給用戶進(jìn)行交互的管理中心1、用于服務(wù)調(diào)用的服務(wù)執(zhí)行引擎3、用于傳遞信息的消息隊(duì)列rabbitmq2,所述管理中心1通過消息隊(duì)列rabbitmq2與服務(wù)執(zhí)行引擎3進(jìn)行信息傳遞。
在本實(shí)施例中,用戶在網(wǎng)頁上進(jìn)行操作,管理中心1便會根據(jù)用戶的操作通過rabbitmq2去調(diào)用服務(wù)執(zhí)行引擎3的功能,并將結(jié)果即時返回給用戶。管理中心1只需要將請求發(fā)送到消息隊(duì)列rabbitmq2中,服務(wù)執(zhí)行引擎3的節(jié)點(diǎn)就會從消息隊(duì)列拉取請求并進(jìn)行處理,當(dāng)有多個節(jié)點(diǎn)同時監(jiān)聽同個隊(duì)列時,消息隊(duì)列也可以均勻的將數(shù)據(jù)發(fā)配給各個節(jié)點(diǎn),保證了各個節(jié)點(diǎn)的負(fù)載均衡。該平臺對服務(wù)的調(diào)用采用中介代理的形式,服務(wù)執(zhí)行引擎3負(fù)責(zé)從管理中心1獲取服務(wù)請求后,根據(jù)服務(wù)請求信息將請求轉(zhuǎn)化為對服務(wù)實(shí)例的調(diào)用,調(diào)用過程為根據(jù)請求查找服務(wù)信息,根據(jù)服務(wù)信息下載對應(yīng)的服務(wù)契約,根據(jù)服務(wù)契約調(diào)用服務(wù)。rabbitmq2使得通過增加服務(wù)器數(shù)量就能擴(kuò)展服務(wù)執(zhí)行引擎3的計(jì)算能力,極大提高了橫向擴(kuò)展能力;使用rabbitmq3來進(jìn)行異步調(diào)用能夠保證管理中心1及時反饋用戶的請求解決服務(wù)執(zhí)行引擎3調(diào)用大數(shù)據(jù)服務(wù)時所需時間長的問題。
該平臺還包括復(fù)合服務(wù)執(zhí)行器,所述復(fù)合服務(wù)執(zhí)行器為服務(wù)執(zhí)行引擎3的子系統(tǒng)。該平臺還包括有設(shè)于服務(wù)執(zhí)行引擎3外部的服務(wù)集群4,所述服務(wù)集群4與服務(wù)執(zhí)行引擎3連接。
在本實(shí)施例中,所述復(fù)合服務(wù)執(zhí)行器負(fù)責(zé)對復(fù)合服務(wù)描述文檔進(jìn)行解析和執(zhí)行服務(wù)組合的流程。復(fù)合服務(wù)執(zhí)行器采用基于事件驅(qū)動設(shè)計(jì)架構(gòu)并且使用java實(shí)現(xiàn)。
本實(shí)施例的工作流程:用戶向服務(wù)管理中心1發(fā)送http請求,http請求包含要調(diào)用的服務(wù)地址id和輸入?yún)?shù)集;管理中心1接收到http請求后,將請求通過rabbitmq2發(fā)送到服務(wù)執(zhí)行引擎3;服務(wù)執(zhí)行引擎3根據(jù)服務(wù)地址查找出該服務(wù)描述文檔位置并且服務(wù)執(zhí)行引擎3根據(jù)請求查找服務(wù)信息,然后根據(jù)服務(wù)信息下載對應(yīng)的服務(wù)契約,再根據(jù)服務(wù)契約從服務(wù)集群4調(diào)用服務(wù)。在處理對復(fù)合服務(wù)描述文檔時,服務(wù)執(zhí)行引擎3使用復(fù)合服務(wù)執(zhí)行器進(jìn)行處理。復(fù)合服務(wù)執(zhí)行器解析復(fù)合服務(wù)描述文檔,解析對應(yīng)的數(shù)據(jù)結(jié)構(gòu)包括倉庫repository實(shí)例,artifact模型的字典,保存規(guī)則rule的列表,服務(wù)類型的字典;將服務(wù)的輸入?yún)?shù)名進(jìn)行分割,解析出對應(yīng)的信息載體artifact和屬性attribute的名稱,然后將服務(wù)輸入?yún)?shù)的值賦給artifact中的屬性attribute;服務(wù)組合過程通過采用事件驅(qū)動的模式,對artifact模型的字典進(jìn)行監(jiān)控,當(dāng)artifacts里的屬性變化后,更新artifacts的狀態(tài),遍歷規(guī)則rules,檢測是否有規(guī)則rules符合,有則觸發(fā)業(yè)務(wù)流程服務(wù)services中的服務(wù)的操作調(diào)用外部服務(wù),調(diào)用完成后對artifacts里的屬性進(jìn)行修改,當(dāng)檢測到artifact模型的字典狀態(tài)都進(jìn)入結(jié)束狀態(tài)后,服務(wù)組合流程執(zhí)行完成,復(fù)合服務(wù)調(diào)用結(jié)束。
通過本發(fā)明可有效進(jìn)行大數(shù)據(jù)調(diào)用服務(wù),提高處理速率。
以上僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出對于本領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明結(jié)構(gòu)的前提下,還可以作出若干變形和改進(jìn),這些都不會影響本發(fā)明實(shí)施的效果和專利的實(shí)用性。