一種業(yè)務(wù)組件管理系統(tǒng)及其方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是指一種業(yè)務(wù)組件管理系統(tǒng)及其方法。
【背景技術(shù)】
[0002]目前JAVA軟件編程中采用的比較多的方式是面向?qū)ο螅琂AVA項(xiàng)目中有比較多的SERVICE。在信息萬(wàn)變的時(shí)代,需求的變更往往比開(kāi)發(fā)快。一個(gè)軟件可能剛開(kāi)發(fā)完,由于需求變更,設(shè)計(jì)也要變化,對(duì)應(yīng)的SERVICE也發(fā)生變化,導(dǎo)致和此SERVICE有依賴(lài)關(guān)系的SERVICE都要調(diào)整,這時(shí)需要開(kāi)發(fā)人員修改代碼、單元測(cè)試、發(fā)布、集成測(cè)試、驗(yàn)證、上線,過(guò)程很長(zhǎng),并且風(fēng)險(xiǎn)大,代碼是人工修改需要測(cè)試、檢測(cè)都非常的不好控制。
[0003]針對(duì)該問(wèn)題,現(xiàn)有技術(shù)中SERVICE之間的調(diào)用采用接口的方式依賴(lài)注入,減少SERVICE之間的耦合度,但是并沒(méi)有完全的去掉耦合。另外,市面上采用工作流的方式解決一部分需求變更,主要是解決單個(gè)對(duì)象狀態(tài)的變更;另一種是采用構(gòu)建的方式,這種方式可以對(duì)于業(yè)務(wù)重新構(gòu)建,但工作量大,構(gòu)建的項(xiàng)目沒(méi)有分層,不能做分布式部署。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的在于提出一種業(yè)務(wù)組件管理系統(tǒng)及其方法,能夠使業(yè)務(wù)組件之間、SERVICE之間實(shí)現(xiàn)零耦合。
[0005]基于上述目的本發(fā)明提供的業(yè)務(wù)組件管理系統(tǒng),包括組件管理子系統(tǒng)、業(yè)務(wù)流程定義子系統(tǒng)、業(yè)務(wù)API流程配置子系統(tǒng)、業(yè)務(wù)流程發(fā)布子系統(tǒng)和業(yè)務(wù)組件流程解析子系統(tǒng),所述組件管理子系統(tǒng)、所述業(yè)務(wù)流程定義子系統(tǒng)分別與所述業(yè)務(wù)API流程配置子系統(tǒng)相連,所述業(yè)務(wù)API流程配置子系統(tǒng)還分別與所述業(yè)務(wù)流程發(fā)布子系統(tǒng)、所述業(yè)務(wù)組件流程解析子系統(tǒng)相連。
[0006]可選地,所述組件管理子系統(tǒng)維護(hù)業(yè)務(wù)組件部署信息、業(yè)務(wù)組件注冊(cè)、系統(tǒng)組件注冊(cè);其中,所述的業(yè)務(wù)組件部署信息是對(duì)組件部署的物理地址進(jìn)行的描述,包括機(jī)器IP、端口、部署路徑、狀態(tài)、包名;所述的業(yè)務(wù)組件注冊(cè)分為四類(lèi),分別是組件定義、組件中服務(wù)類(lèi)定義、組件中方法描述和組件數(shù)據(jù)資源定義;所述的系統(tǒng)組件注冊(cè)包括定義SPRING事務(wù)管理、數(shù)據(jù)庫(kù)連接管。
[0007]進(jìn)一步地,所述組件定義包括創(chuàng)建組件ID,裝載工廠,內(nèi)、外調(diào)用方式和地址,所述的組件中服務(wù)類(lèi)定義包括服務(wù)類(lèi)ID、錯(cuò)誤代碼、描述、裝載工廠、類(lèi)路徑,所述的組件中方法描述包括方法名和參數(shù)格式。
[0008]可選地,所述的業(yè)務(wù)流程定義子系統(tǒng)是用于定義項(xiàng)目業(yè)務(wù)組件中業(yè)務(wù)對(duì)象流程、流程分入口和過(guò)程。
[0009]可選地,所述的業(yè)務(wù)API流程配置子系統(tǒng)的入口流程配置有初始化值和業(yè)務(wù)檢測(cè)信息功能,流程類(lèi)型分為入口、正流程、逆流程和修改流程四種方式。
[0010]可選地,所述的業(yè)務(wù)流程發(fā)布子系統(tǒng)用于發(fā)布業(yè)務(wù)流程,每次流程修改增加流程版本控制,修改前記錄備份,最新記錄版本號(hào)加一;通過(guò)版本號(hào)控制和發(fā)布最新的流程;在發(fā)布前先經(jīng)過(guò)自動(dòng)測(cè)試,測(cè)試方式分自動(dòng)和手動(dòng),該自動(dòng)測(cè)試是先由發(fā)布人員導(dǎo)入測(cè)試源數(shù)據(jù),根據(jù)源數(shù)據(jù)通過(guò)流程定義自動(dòng)執(zhí)行,將結(jié)果展示出來(lái);該手動(dòng)測(cè)試是針對(duì)單個(gè)業(yè)務(wù)流程測(cè)試。
[0011]可選地,所述業(yè)務(wù)組件流程解析子系統(tǒng)根據(jù)接收客戶(hù)端發(fā)送的信息查找配置信息,再根據(jù)配置信息解析API調(diào)用信息,而后調(diào)用組件觸發(fā)API發(fā)送信息。
[0012]進(jìn)一步地,所述的業(yè)務(wù)組件管理系統(tǒng)的管理方法包括:
[0013]第一步,所述組件管理子系統(tǒng)維護(hù)業(yè)務(wù)組件部署信息、業(yè)務(wù)組件注冊(cè)和系統(tǒng)組件注冊(cè);
[0014]第二步,所述業(yè)務(wù)流程定義子系統(tǒng)定義項(xiàng)目業(yè)務(wù)組件中業(yè)務(wù)對(duì)象流程、流程分入口和過(guò)程;
[0015]第三步,所述業(yè)務(wù)API流程配置子系統(tǒng)的入口流程配置初始化值和業(yè)務(wù)檢測(cè)信息;
[0016]第四步,所述業(yè)務(wù)流程發(fā)布子系統(tǒng)發(fā)布所述業(yè)務(wù)API流程配置子系統(tǒng)的流程配置信息。
[0017]進(jìn)一步地,所述業(yè)務(wù)組件管理系統(tǒng)處理客戶(hù)端請(qǐng)求的方法包括:
[0018]第一步,所述業(yè)務(wù)組件流程解析子系統(tǒng)接收客戶(hù)端發(fā)送的信息;
[0019]第二步,所述業(yè)務(wù)組件流程解析子系統(tǒng)通過(guò)接收的單據(jù)類(lèi)型、節(jié)點(diǎn)到所述的業(yè)務(wù)API流程配置子系統(tǒng)中獲取流程配置信息,然后將動(dòng)態(tài)獲取數(shù)據(jù)源JSON格式轉(zhuǎn)成MAP對(duì)象,并且循環(huán)配置信息;
[0020]第三步,所述業(yè)務(wù)組件流程解析子系統(tǒng)基于JAVA的動(dòng)態(tài)語(yǔ)言機(jī)制,通過(guò)動(dòng)態(tài)語(yǔ)言模板配置信息,根據(jù)取值對(duì)照關(guān)系獲取對(duì)象類(lèi)型常量、JAVASCRIPT變量、JVM, CACHE對(duì)應(yīng)的數(shù)值;
[0021]第四步,所述業(yè)務(wù)組件流程解析子系統(tǒng)從所述業(yè)務(wù)API流程配置子系統(tǒng)中獲取對(duì)應(yīng)業(yè)務(wù)組件API流程配置集合,并循環(huán)業(yè)務(wù)組件API流程配置集合;
[0022]第五步,所述業(yè)務(wù)組件流程解析子系統(tǒng)檢測(cè)API入口條件是否滿足;
[0023]第六步,所述業(yè)務(wù)組件流程解析子系統(tǒng)獲取API調(diào)用的參數(shù)格式JSON以及參數(shù)取值對(duì)照關(guān)系JSON ;
[0024]第七步,所述業(yè)務(wù)組件流程解析子系統(tǒng)將參數(shù)取值對(duì)照關(guān)系JSON轉(zhuǎn)成MAP,參數(shù)格式JSON轉(zhuǎn)成MAP對(duì)象;
[0025]第八步,所述業(yè)務(wù)組件流程解析子系統(tǒng)默認(rèn)取參數(shù)格式MAP對(duì)象KEY為空字符串的對(duì)象,獲取參數(shù)格式對(duì)象屬性;
[0026]第九步,所述業(yè)務(wù)組件流程解析子系統(tǒng)判斷是否有嵌套KEY,如有則進(jìn)行步驟十,若沒(méi)有則直接進(jìn)行步驟十一;
[0027]第十步,所述業(yè)務(wù)組件流程解析子系統(tǒng)根據(jù)嵌套KEY重新獲取參數(shù)格式對(duì)象屬性,根據(jù)數(shù)據(jù)源KEY獲取數(shù)據(jù)源對(duì)應(yīng)數(shù)據(jù);
[0028]第十一步,所述業(yè)務(wù)組件流程解析子系統(tǒng)獲取參數(shù)解析方式,判斷當(dāng)前解析條件;
[0029]第十二步,所述業(yè)務(wù)組件流程解析子系統(tǒng)循環(huán)取值處理對(duì)照關(guān)系MAP對(duì)象,獲取取值對(duì)照關(guān)系對(duì)象類(lèi)型常量、JAVASCRIPT變量、JVM, CACHE對(duì)應(yīng)的數(shù)值;
[0030]第十三步,所述業(yè)務(wù)組件流程解析子系統(tǒng)通過(guò)JAVA反射方法獲取API方法的注解,通過(guò)注解和返回的參數(shù)格式,生成JAVA調(diào)用參數(shù)的JSON格式;
[0031]第十四步,所述業(yè)務(wù)組件流程解析子系統(tǒng)根據(jù)調(diào)用協(xié)議配置封裝調(diào)用對(duì)象;
[0032]第十五步,所述業(yè)務(wù)組件流程解析子系統(tǒng)采用消息隊(duì)列異步發(fā)送處理后的所述配置封裝調(diào)用對(duì)象。
[0033]從上面所述可以看出,本發(fā)明提供的業(yè)務(wù)組件管理系統(tǒng)及其方法,通過(guò)組件管理子系統(tǒng)、業(yè)務(wù)流程定義子系統(tǒng)分別與業(yè)務(wù)API流程配置子系統(tǒng)相連,業(yè)務(wù)API流程配置子系統(tǒng)還分別與業(yè)務(wù)流程發(fā)布子系統(tǒng)、業(yè)務(wù)組件流程解析子系統(tǒng)相連。從而,本發(fā)明所述的業(yè)務(wù)組件管理系統(tǒng)及其方法可實(shí)現(xiàn)業(yè)務(wù)組件之間、SERVICE之間都是零耦合,同時(shí)業(yè)務(wù)組件可以分布式部署,也可以整體部署。
【附圖說(shuō)明】
[0034]圖1為本發(fā)明實(shí)施例一種業(yè)務(wù)組件管理系統(tǒng)的結(jié)構(gòu)示意圖;
[0035]圖2為本發(fā)明實(shí)施例一種業(yè)務(wù)組件管理方法的流程示意圖;
[0036]圖3為本發(fā)明實(shí)施例業(yè)務(wù)組件管理系統(tǒng)處理客戶(hù)端請(qǐng)求的方法流程示意圖。
【具體實(shí)施方式】
[0037]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
[0038]參閱圖1所示,為本發(fā)明實(shí)施例一種業(yè)務(wù)組件管理系統(tǒng)的結(jié)構(gòu)示意圖,所述的業(yè)務(wù)組件管理系統(tǒng)包括組件管理子系統(tǒng)101、業(yè)務(wù)流程定義子系統(tǒng)102、業(yè)務(wù)API流程配置子系統(tǒng)103、業(yè)務(wù)流程發(fā)布子系統(tǒng)104和業(yè)務(wù)組件流程解析子系統(tǒng)105。其中,組件管理子系統(tǒng)101、業(yè)務(wù)流程定義子系統(tǒng)102分別與業(yè)務(wù)API流程配置子系統(tǒng)103相連。業(yè)務(wù)API流程配置子系統(tǒng)103還分別與業(yè)務(wù)流程發(fā)布子系統(tǒng)104、業(yè)務(wù)組件流程解析子系統(tǒng)105相連。
[0039]作為本發(fā)明的一個(gè)實(shí)施例,所述組件管理子系統(tǒng)101可以進(jìn)行維護(hù)業(yè)務(wù)組件部署信息、業(yè)務(wù)組件注冊(cè)、系統(tǒng)組件注冊(cè)