一種支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法
【專利摘要】本發(fā)明公開(kāi)了一種支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法,涉及平臺(tái)服務(wù)技術(shù)領(lǐng)域。所述方法基于MDA實(shí)現(xiàn),具體包括:將PIM抽象層區(qū)分為兩個(gè)層面,一個(gè)是應(yīng)用系統(tǒng)層面,另一是業(yè)務(wù)層面;對(duì)應(yīng)用系統(tǒng)層面的多個(gè)應(yīng)用系統(tǒng)進(jìn)行抽象,形成應(yīng)用系統(tǒng)元模型;對(duì)業(yè)務(wù)層面的各個(gè)業(yè)務(wù)進(jìn)行抽象,形成與所述業(yè)務(wù)相應(yīng)的業(yè)務(wù)元模型;形成所述數(shù)據(jù)源元模型與所述業(yè)務(wù)元模型具體實(shí)現(xiàn)相互對(duì)應(yīng)的關(guān)聯(lián)關(guān)系;在PSM具體實(shí)現(xiàn)層面,將應(yīng)用系統(tǒng)元模型轉(zhuǎn)換為平臺(tái)流水線上組裝生成的應(yīng)用系統(tǒng)界面,完成支撐多系統(tǒng)同時(shí)運(yùn)行的應(yīng)用系統(tǒng)平臺(tái)的構(gòu)建。本發(fā)明實(shí)現(xiàn)了使用一套服務(wù)支撐多個(gè)應(yīng)用系統(tǒng)的運(yùn)行,進(jìn)而減少開(kāi)發(fā),部署與維護(hù)的難度與工作量,便于提供集中監(jiān)控管治。
【專利說(shuō)明】
一種支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及平臺(tái)服務(wù)技術(shù)領(lǐng)域,尤其涉及一種支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法。
【背景技術(shù)】
[0002]MDA(Model-Driven Architecture)是一種應(yīng)用系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的方法,用來(lái)組織和管理被自動(dòng)化工具支持的企業(yè)體系架構(gòu),定義模型和推動(dòng)不同模型類型之間的轉(zhuǎn)換的服務(wù)的方法。MDA通常針對(duì)某一個(gè)特定領(lǐng)域的業(yè)務(wù)進(jìn)行抽象,使得模型的具有持久價(jià)值。
[0003]使用現(xiàn)有MDA技術(shù)對(duì)某一個(gè)特定領(lǐng)域統(tǒng)建的大型項(xiàng)目進(jìn)行構(gòu)建,因該大型項(xiàng)目具有多個(gè)應(yīng)用系統(tǒng),故需要開(kāi)發(fā)多個(gè)相對(duì)應(yīng)的思路實(shí)現(xiàn)對(duì)相應(yīng)應(yīng)用系統(tǒng)的構(gòu)建,現(xiàn)有技術(shù)因需多個(gè)思路構(gòu)建多個(gè)應(yīng)用系統(tǒng),故存在開(kāi)發(fā)工作量大、部署多、維護(hù)難度大、難于幾種監(jiān)控的問(wèn)題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法,從而解決現(xiàn)有技術(shù)中存在的前述問(wèn)題。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明所述支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法,所述方法基于MDA實(shí)現(xiàn),具體包括:
[0006]SI,將P頂抽象層區(qū)分為兩個(gè)層面,一個(gè)是應(yīng)用系統(tǒng)層面,另一是業(yè)務(wù)層面;
[0007]S2,對(duì)應(yīng)用系統(tǒng)層面的多個(gè)應(yīng)用系統(tǒng)進(jìn)行抽象,形成應(yīng)用系統(tǒng)元模型;對(duì)業(yè)務(wù)層面的各個(gè)業(yè)務(wù)進(jìn)行抽象,形成與所述業(yè)務(wù)相應(yīng)的業(yè)務(wù)元模型;
[0008]S3,形成所述數(shù)據(jù)源元模型與所述業(yè)務(wù)元模型具體實(shí)現(xiàn)相互對(duì)應(yīng)的關(guān)聯(lián)關(guān)系;
[0009]S4,在PSM具體實(shí)現(xiàn)層面,將應(yīng)用系統(tǒng)元模型轉(zhuǎn)換為平臺(tái)流水線上組裝生成的應(yīng)用系統(tǒng)界面,完成支撐多系統(tǒng)同時(shí)運(yùn)行的應(yīng)用系統(tǒng)平臺(tái)的構(gòu)建。
[0010]優(yōu)選地,所述應(yīng)用系統(tǒng)元模型包括應(yīng)用功能模塊、安全控制模塊、系統(tǒng)資源模塊、界面框架模塊、數(shù)據(jù)源模塊和日志模塊;應(yīng)用系統(tǒng)元模型位于的抽象層之上;
[0011]所述數(shù)據(jù)源模型,負(fù)責(zé)對(duì)任意一個(gè)領(lǐng)域中的各種業(yè)務(wù)模型進(jìn)行統(tǒng)一定義管理。
[0012]優(yōu)選地,所述應(yīng)用系統(tǒng)中包括兩種類型的數(shù)據(jù)庫(kù),分別為系統(tǒng)庫(kù)和業(yè)務(wù)庫(kù);
[0013]所述系統(tǒng)庫(kù),用來(lái)存放應(yīng)用系統(tǒng)元模型;
[0014]所述業(yè)務(wù)庫(kù),用來(lái)存放的具體的業(yè)務(wù)元模型數(shù)據(jù),所述業(yè)務(wù)元模型的數(shù)據(jù)包括存儲(chǔ)過(guò)程、表和視圖。
[0015]優(yōu)選地,步驟S3中,制定所述數(shù)據(jù)源模塊與所述業(yè)務(wù)元模型的關(guān)聯(lián)關(guān)系,具體按照下述步驟實(shí)現(xiàn):
[0016]S31,獲取業(yè)務(wù)元模型中的業(yè)務(wù)A及所述業(yè)務(wù)A的基本信息;所述基本信息包括:名稱,調(diào)用參數(shù),業(yè)務(wù)功能,業(yè)務(wù)歸類以及數(shù)據(jù)庫(kù)定義信息;
[0017]S32,將所述業(yè)務(wù)A的基本信息作為數(shù)據(jù)元A存儲(chǔ)到數(shù)據(jù)源模塊中;
[0018]S33,建立數(shù)據(jù)源A與業(yè)務(wù)A的執(zhí)行關(guān)聯(lián)關(guān)系,具體為:設(shè)置抽取并解析數(shù)據(jù)源A的定義,從數(shù)據(jù)源A的定義中抽取執(zhí)行信息,所述執(zhí)行信息包括數(shù)據(jù)源A所對(duì)應(yīng)的業(yè)務(wù)名稱、數(shù)據(jù)庫(kù)信息和執(zhí)行參數(shù),根據(jù)所述執(zhí)行信息形成需要執(zhí)行的SQL或存儲(chǔ)過(guò)程,完成數(shù)據(jù)源A與業(yè)務(wù)A的執(zhí)彳丁關(guān)聯(lián)關(guān)系的建立;
[0019]S34,執(zhí)行的SQL或存儲(chǔ)過(guò)程,產(chǎn)生與所述數(shù)據(jù)源A建立關(guān)聯(lián)關(guān)系的業(yè)務(wù)A,完成數(shù)據(jù)源A與業(yè)務(wù)A的關(guān)聯(lián)關(guān)系的建立。
[0020]優(yōu)選地,所述應(yīng)用系統(tǒng)平臺(tái)提供的服務(wù)接口具體為:
[0021]從應(yīng)用系統(tǒng)平臺(tái)的定義角度分,包括元模型的數(shù)據(jù)服務(wù)接口和業(yè)務(wù)級(jí)別的數(shù)據(jù)服務(wù)接口 ;所述元模型的數(shù)據(jù)服務(wù)接口,提供的服務(wù)包括應(yīng)用系統(tǒng)服務(wù)、安全控制服務(wù)、系統(tǒng)資源服務(wù)、界面控制服務(wù)和數(shù)據(jù)源服務(wù);所述業(yè)務(wù)級(jí)別的數(shù)據(jù)服務(wù)接口,提供數(shù)據(jù)抽取服務(wù);
[0022]優(yōu)選地,所述應(yīng)用系統(tǒng)平臺(tái)提供的服務(wù)接口具體為:
[0023]從應(yīng)用系統(tǒng)平臺(tái)的運(yùn)行角度分,包括定義時(shí)提供的服務(wù)接口和運(yùn)行時(shí)提供的服務(wù)接口 ;所述定義時(shí)提供的服務(wù)接口,用于開(kāi)發(fā)測(cè)試階段,負(fù)責(zé)提供系統(tǒng)應(yīng)用功能、資源的定制功能和界面定義功能的服務(wù);所述運(yùn)行時(shí)提供的服務(wù)接口,用于投產(chǎn)系統(tǒng)階段,負(fù)責(zé)提供系統(tǒng)定義、應(yīng)用功能定義、資源定義、界面框架與組件相關(guān)定義的查詢,以及業(yè)務(wù)級(jí)別基于數(shù)據(jù)源模型的統(tǒng)一的業(yè)務(wù)服務(wù)接口。
[0024]優(yōu)選地,所述應(yīng)用系統(tǒng)中包括數(shù)據(jù)庫(kù)采用統(tǒng)一的數(shù)據(jù)庫(kù)連接池;所述數(shù)據(jù)庫(kù)連接池除了基本的數(shù)據(jù)庫(kù)連接的池化功能外,還具有監(jiān)控接口與動(dòng)態(tài)調(diào)整接口的功能。
[0025]優(yōu)選地,所述應(yīng)用系統(tǒng)平臺(tái)上的每個(gè)應(yīng)用系統(tǒng)具有唯一編碼,獲取任意一個(gè)應(yīng)用系統(tǒng)與其使用的數(shù)據(jù)庫(kù)建立一對(duì)多的映射關(guān)系,將每個(gè)唯一編碼與數(shù)據(jù)庫(kù)之間的映射的關(guān)系存儲(chǔ)為系統(tǒng)路由表;
[0026]使用RMI偵聽(tīng)/廣播的方法實(shí)現(xiàn)系統(tǒng)路由表的同步性。
[0027]更優(yōu)選地,當(dāng)接收到調(diào)用服務(wù)的消息時(shí),所述應(yīng)用系統(tǒng)平臺(tái)上設(shè)置消息攔截器,在設(shè)置消息連接器的同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組;所述線程ID為執(zhí)行目標(biāo)服務(wù)的消息線程;
[0028]在應(yīng)用系統(tǒng)平臺(tái)執(zhí)行目標(biāo)服務(wù)前,并通過(guò)AOP切面Aspect對(duì)所有服務(wù)的業(yè)務(wù)層接口進(jìn)行切面,然后,從映射中獲取與所述目標(biāo)服務(wù)相關(guān)的數(shù)據(jù)庫(kù),并將數(shù)據(jù)庫(kù)注入到具體的查詢過(guò)程中。
[0029]更優(yōu)選地,當(dāng)接收到調(diào)用服務(wù)的消息時(shí),應(yīng)用系統(tǒng)平臺(tái)具體按照下述步驟實(shí)現(xiàn):
[0030]判斷調(diào)用服務(wù)的發(fā)起方是服務(wù)調(diào)用者還是系統(tǒng)管理者;
[0031]如果是服務(wù)調(diào)用者,則應(yīng)用系統(tǒng)平臺(tái)的消息攔截器,攔截到消息中的一個(gè)或多個(gè)應(yīng)用系統(tǒng)的所有唯一編碼,根據(jù)唯一編碼,檢索系統(tǒng)路由表,并匹配到對(duì)應(yīng)的數(shù)據(jù)庫(kù),同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組;AOP切面基于線程ID將與唯一編碼相關(guān)的數(shù)據(jù)庫(kù)連接池注入到方法體中,執(zhí)行查詢數(shù)據(jù)庫(kù)的操作,并將查詢結(jié)果返回到應(yīng)用系統(tǒng)平臺(tái),實(shí)現(xiàn)使用一個(gè)應(yīng)用系統(tǒng)平臺(tái)支撐多個(gè)應(yīng)用系統(tǒng)同時(shí)運(yùn)行;如果需要調(diào)用的數(shù)據(jù)庫(kù)連接池還未被使用,則對(duì)其進(jìn)行初始化后再使用;
[0032]如果是系統(tǒng)管理者,則系統(tǒng)管理者通過(guò)應(yīng)用系統(tǒng)平臺(tái)的管理控制臺(tái)對(duì)系統(tǒng)路由表修改和更新,監(jiān)控領(lǐng)域級(jí)數(shù)據(jù)庫(kù)連接池的運(yùn)行狀態(tài)與健康情況;系統(tǒng)管理者還通過(guò)應(yīng)用系統(tǒng)平臺(tái)實(shí)現(xiàn)即時(shí)通訊。
[0033]本發(fā)明的有益效果是:
[0034]本發(fā)明所述方法使用一套服務(wù)支撐多個(gè)應(yīng)用系統(tǒng)的運(yùn)行,進(jìn)而減少開(kāi)發(fā),部署與維護(hù)的難度與工作量,便于提供集中監(jiān)控管治。
【附圖說(shuō)明】
[0035]圖1是數(shù)據(jù)源元模型與所述業(yè)務(wù)元模型具體實(shí)現(xiàn)相互對(duì)應(yīng)的關(guān)聯(lián)關(guān)系流程示意圖;
[0036]圖2是采用圖1中所述關(guān)聯(lián)關(guān)系執(zhí)行結(jié)果的流程示意圖;
[0037]圖3是本發(fā)明中所述方法涉及到的系統(tǒng)、模塊和服務(wù)之間的關(guān)系圖;
[0038]圖4是采用本發(fā)明所述方法進(jìn)行構(gòu)建服務(wù)的流程示意圖。
【具體實(shí)施方式】
[0039]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的【具體實(shí)施方式】?jī)H僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0040]實(shí)施例
[0041]本實(shí)施例所述支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法,所述方法基于MDA實(shí)現(xiàn),具體包括:
[0042]SI,將P頂抽象層區(qū)分為兩個(gè)層面,一個(gè)是應(yīng)用系統(tǒng)層面,另一是業(yè)務(wù)層面;
[0043]S2,對(duì)應(yīng)用系統(tǒng)層面的多個(gè)應(yīng)用系統(tǒng)進(jìn)行抽象,形成應(yīng)用系統(tǒng)元模型;對(duì)業(yè)務(wù)層面的各個(gè)業(yè)務(wù)進(jìn)行抽象,形成與所述業(yè)務(wù)相應(yīng)的業(yè)務(wù)元模型;
[0044]S3,形成所述數(shù)據(jù)源元模型與所述業(yè)務(wù)元模型具體實(shí)現(xiàn)相互對(duì)應(yīng)的關(guān)聯(lián)關(guān)系;
[0045]S4,在PSM具體實(shí)現(xiàn)層面,將應(yīng)用系統(tǒng)元模型轉(zhuǎn)換為平臺(tái)流水線上組裝生成的應(yīng)用系統(tǒng)界面,完成支撐多系統(tǒng)同時(shí)運(yùn)行的應(yīng)用系統(tǒng)平臺(tái)的構(gòu)建。
[0046]更詳細(xì)的解釋說(shuō)明為:
[0047](— )所述應(yīng)用系統(tǒng)元模型包括應(yīng)用功能模塊、安全控制模塊、系統(tǒng)資源模塊、界面框架模塊、數(shù)據(jù)源模塊和日志模塊;應(yīng)用系統(tǒng)元模型位于的抽象層之上;
[0048]其中:
[0049]應(yīng)用功能模塊,負(fù)責(zé)對(duì)具體應(yīng)用系統(tǒng)進(jìn)行抽象,主要包括應(yīng)用系統(tǒng)信息定義、全部應(yīng)用功能的粒度劃分、目錄樹(shù)結(jié)構(gòu)、節(jié)點(diǎn)信息、功能與資源的關(guān)聯(lián)以及功能間的關(guān)聯(lián)等元數(shù)據(jù)信息。
[0050]安全控制模塊,結(jié)合系統(tǒng)資源管理模型,采用基于RBAC模型(角色-功能-資源)的權(quán)限控制模型,提供多級(jí)別的權(quán)限控制模型。
[0051]系統(tǒng)資源模塊,負(fù)責(zé)對(duì)應(yīng)用系統(tǒng)中的各種資源進(jìn)行抽象,比如應(yīng)用功能、數(shù)據(jù)源、組件、組件框架、元消息、工作流程和活動(dòng)等,進(jìn)行統(tǒng)一管理歸類,為安全控制模型提供統(tǒng)一的資源訪問(wèn)接口。
[0052]界面框架模塊,負(fù)責(zé)對(duì)界面展示的所需界面框架、組件、組件樣式以及組件間的邏輯控制行為等進(jìn)行定義。
[0053]數(shù)據(jù)源模塊,負(fù)責(zé)對(duì)任意一個(gè)領(lǐng)域中的各種業(yè)務(wù)模塊進(jìn)行統(tǒng)一定義管理,對(duì)業(yè)務(wù)功能的粒度劃分,對(duì)具體業(yè)務(wù)提供定義描述,與界面框架模型結(jié)合,為界面框架提供業(yè)務(wù)級(jí)別的數(shù)據(jù)綁定。
[0054]日志模塊,對(duì)整個(gè)系統(tǒng)各種操作行為進(jìn)行記錄,為行為分析或者安全審計(jì)提供數(shù)據(jù)基礎(chǔ)。
[0055]業(yè)務(wù)元模型在PSM具體實(shí)現(xiàn)層面,對(duì)于業(yè)務(wù)領(lǐng)域的元模型核心在于在數(shù)據(jù)庫(kù)級(jí)別的表,視圖,存儲(chǔ)過(guò)程或者自定義SQL等形式被實(shí)現(xiàn)與演變。通常位于存儲(chǔ)過(guò)程中,比如Orac I e存儲(chǔ)過(guò)程,My SQL存儲(chǔ)過(guò)程。
[0056](二)所述應(yīng)用系統(tǒng)中包括兩種類型的數(shù)據(jù)庫(kù),分別為系統(tǒng)庫(kù)和業(yè)務(wù)庫(kù);
[0057]所述系統(tǒng)庫(kù),用來(lái)存放應(yīng)用系統(tǒng)元模型;
[0058]所述業(yè)務(wù)庫(kù),用來(lái)存放的具體的業(yè)務(wù)元模型數(shù)據(jù),所述業(yè)務(wù)元模型的數(shù)據(jù)包括存儲(chǔ)過(guò)程、表和視圖,這些都通過(guò)統(tǒng)一的業(yè)務(wù)模型資源發(fā)布管理工具展示,供上層系統(tǒng)的應(yīng)用功能查詢使用,類似于可供參考的業(yè)務(wù)級(jí)別的API手冊(cè)。
[0059](三)步驟S3中,制定所述數(shù)據(jù)源模塊與所述業(yè)務(wù)元模型的關(guān)聯(lián)關(guān)系,具體按照下述步驟實(shí)現(xiàn):
[0060]S31,獲取業(yè)務(wù)元模型中的業(yè)務(wù)A及所述業(yè)務(wù)A的基本信息;所述基本信息包括:名稱,調(diào)用參數(shù),業(yè)務(wù)功能,業(yè)務(wù)歸類以及數(shù)據(jù)庫(kù)定義信息;
[0061 ] S32,將所述業(yè)務(wù)A的基本信息作為數(shù)據(jù)元A存儲(chǔ)到數(shù)據(jù)源模塊中;
[0062]S33,建立數(shù)據(jù)源A與業(yè)務(wù)A的執(zhí)行關(guān)聯(lián)關(guān)系,具體為:設(shè)置抽取并解析數(shù)據(jù)源A的定義,從數(shù)據(jù)源A的定義中抽取執(zhí)行信息,所述執(zhí)行信息包括數(shù)據(jù)源A所對(duì)應(yīng)的業(yè)務(wù)名稱、數(shù)據(jù)庫(kù)信息和執(zhí)行參數(shù),根據(jù)所述執(zhí)行信息形成需要執(zhí)行的SQL或存儲(chǔ)過(guò)程,完成數(shù)據(jù)源A與業(yè)務(wù)A的執(zhí)彳丁關(guān)聯(lián)關(guān)系的建立;
[0063]S34,執(zhí)行的SQL或存儲(chǔ)過(guò)程,產(chǎn)生與所述數(shù)據(jù)源A建立關(guān)聯(lián)關(guān)系的業(yè)務(wù)A,完成數(shù)據(jù)源A與業(yè)務(wù)A的關(guān)聯(lián)關(guān)系的建立。
[0064]其中,業(yè)務(wù)領(lǐng)域的具體業(yè)務(wù)必須首先客觀存在,比如業(yè)務(wù)A,抽象出的元模型,以存儲(chǔ)過(guò)程存儲(chǔ)在Oracle數(shù)據(jù)庫(kù)中。具體應(yīng)用系統(tǒng)的數(shù)據(jù)源A依賴于客觀存在的業(yè)務(wù),是一種描述性定義,比如對(duì)于存儲(chǔ)過(guò)程,描述存儲(chǔ)過(guò)程的名稱,調(diào)用參數(shù),業(yè)務(wù)功能,業(yè)務(wù)歸類以及數(shù)據(jù)庫(kù)定義信息;對(duì)應(yīng)于具體業(yè)務(wù)。數(shù)據(jù)抽取服務(wù)會(huì)解析數(shù)據(jù)源A的定義,抽取必要的執(zhí)行信息,比如名稱,數(shù)據(jù)庫(kù)信息,參數(shù)等,形成最終需要執(zhí)行的SQL,或者存儲(chǔ)過(guò)程。執(zhí)行具體的數(shù)據(jù)源,相當(dāng)于某個(gè)業(yè)務(wù)的產(chǎn)生。
[0065](四)所述應(yīng)用系統(tǒng)平臺(tái)提供的服務(wù)接口具體為:從應(yīng)用系統(tǒng)平臺(tái)的定義角度分,包括元模型的數(shù)據(jù)服務(wù)接口和業(yè)務(wù)級(jí)別的數(shù)據(jù)服務(wù)接口 ;所述元模型的數(shù)據(jù)服務(wù)接口,提供的服務(wù)包括應(yīng)用系統(tǒng)服務(wù)、安全控制服務(wù)、系統(tǒng)資源服務(wù)、界面控制服務(wù)和數(shù)據(jù)源服務(wù);所述業(yè)務(wù)級(jí)別的數(shù)據(jù)服務(wù)接口,提供數(shù)據(jù)抽取服務(wù);
[0066]或者所述應(yīng)用系統(tǒng)平臺(tái)提供的服務(wù)接口具體為:從應(yīng)用系統(tǒng)平臺(tái)的運(yùn)行角度分,包括定義時(shí)提供的服務(wù)接口和運(yùn)行時(shí)提供的服務(wù)接口 ;所述定義時(shí)提供的服務(wù)接口,用于開(kāi)發(fā)測(cè)試階段,負(fù)責(zé)提供系統(tǒng)應(yīng)用功能、資源的定制功能和界面定義功能的服務(wù);所述運(yùn)行時(shí)提供的服務(wù)接口,用于投產(chǎn)系統(tǒng)階段,負(fù)責(zé)提供系統(tǒng)定義、應(yīng)用功能定義、資源定義、界面框架與組件相關(guān)定義的查詢,以及業(yè)務(wù)級(jí)別基于數(shù)據(jù)源模型的統(tǒng)一的業(yè)務(wù)服務(wù)接口。
[0067]借助于應(yīng)用系統(tǒng)元模型中的數(shù)據(jù)源模型統(tǒng)一的對(duì)外提供業(yè)務(wù)數(shù)據(jù)服務(wù),使得基于此實(shí)現(xiàn)思想形成的平臺(tái)具有統(tǒng)一業(yè)務(wù)服務(wù)接口,為應(yīng)用各系統(tǒng)框架提供業(yè)務(wù)數(shù)據(jù)等血肉支持。借助于統(tǒng)一的應(yīng)用系統(tǒng)定制工具,基于應(yīng)用系統(tǒng)的元模型與數(shù)據(jù)庫(kù)級(jí)別的業(yè)務(wù)模型,可以快速開(kāi)發(fā)定制應(yīng)用系統(tǒng)。
[0068](五)所述應(yīng)用系統(tǒng)中包括數(shù)據(jù)庫(kù)采用統(tǒng)一的數(shù)據(jù)庫(kù)連接池;所述數(shù)據(jù)庫(kù)連接池除了基本的數(shù)據(jù)庫(kù)連接的池化功能外,還具有監(jiān)控接口與動(dòng)態(tài)調(diào)整接口的功能。
[0069]同一領(lǐng)域的不同數(shù)據(jù)庫(kù)連接池可以復(fù)用,供不同應(yīng)用系統(tǒng)公共使用。對(duì)于某領(lǐng)域的統(tǒng)建項(xiàng)目,通常需要統(tǒng)一的規(guī)劃統(tǒng)籌,對(duì)于數(shù)據(jù)庫(kù)的統(tǒng)一規(guī)劃,復(fù)用是必要的。
[0070]數(shù)據(jù)庫(kù)層面采用統(tǒng)一的數(shù)據(jù)庫(kù)連接池,可以選擇成熟的數(shù)據(jù)庫(kù)連接池,也可以是自主研發(fā)數(shù)據(jù)庫(kù)連接池。數(shù)據(jù)庫(kù)連接池除了基本的數(shù)據(jù)庫(kù)連接的池化功能外,應(yīng)該還提供監(jiān)控的接口與動(dòng)態(tài)調(diào)整接口,以便對(duì)于數(shù)據(jù)庫(kù)連接池的應(yīng)用及時(shí)監(jiān)控,并根據(jù)相應(yīng)的監(jiān)控策略實(shí)現(xiàn)智能的調(diào)整。
[0071 ]數(shù)據(jù)庫(kù)連接池提供池化功能模塊,能夠?qū)芸氐母鞣N數(shù)據(jù)庫(kù)連接池進(jìn)行初始化,銷毀,調(diào)整相關(guān)參數(shù)等功能。
[0072](六)
[0073]1、所述應(yīng)用系統(tǒng)平臺(tái)上的每個(gè)應(yīng)用系統(tǒng)具有唯一編碼,獲取任意一個(gè)應(yīng)用系統(tǒng)與其使用的數(shù)據(jù)庫(kù)建立一對(duì)多的映射關(guān)系,將每個(gè)唯一編碼與數(shù)據(jù)庫(kù)之間的映射的關(guān)系存儲(chǔ)為系統(tǒng)路由表;使用RMI偵聽(tīng)/廣播的方法實(shí)現(xiàn)系統(tǒng)路由表的同步性。
[0074]其中,應(yīng)用程序集群是緩解同一套服務(wù)支撐多系統(tǒng)的壓力的比較通用的方式,為了保障多節(jié)點(diǎn)間系統(tǒng)路由表的同步性,可以使用RMI偵聽(tīng)/廣播的原理來(lái)實(shí)現(xiàn),比如直接借助于Enhance緩存框架的這一功能。
[0075]所述唯一編碼用來(lái)辨識(shí)具體的應(yīng)用系統(tǒng)。
[0076]2、當(dāng)接收到調(diào)用服務(wù)的消息時(shí),所述應(yīng)用系統(tǒng)平臺(tái)上設(shè)置消息攔截器,在設(shè)置消息連接器的同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組;所述線程ID為執(zhí)行目標(biāo)服務(wù)的消息線程。服務(wù)的任何接口調(diào)用都需要,傳入應(yīng)用系統(tǒng)唯一編碼來(lái)區(qū)分系統(tǒng)。以HTTP/SOAP的方式描述,AppCode通常存在與SOAP的header部。所述消息攔截器具體的實(shí)現(xiàn)方式需要根據(jù)具體的服務(wù)暴露方式來(lái)決定,以HTTP/S0AP的方式描述,則需要SOAP消息攔截器。同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組。統(tǒng)一的服務(wù)發(fā)布,通常以web服務(wù)的形式暴露,暴露的具體方式可以多種多樣,比如HTTP/SOAP,REST,Hess ian等。
[0077]在應(yīng)用系統(tǒng)平臺(tái)執(zhí)行目標(biāo)服務(wù)前,并通過(guò)AOP切面Aspect對(duì)所有服務(wù)的業(yè)務(wù)層接口進(jìn)行切面,然后,從映射中獲取與所述目標(biāo)服務(wù)相關(guān)的數(shù)據(jù)庫(kù),并將數(shù)據(jù)庫(kù)注入到具體的查詢過(guò)程中。
[0078]3、當(dāng)接收到調(diào)用服務(wù)的消息時(shí),應(yīng)用系統(tǒng)平臺(tái)具體按照下述步驟實(shí)現(xiàn):
[0079]判斷調(diào)用服務(wù)的發(fā)起方是服務(wù)調(diào)用者還是系統(tǒng)管理者;
[0080]如果是服務(wù)調(diào)用者,則應(yīng)用系統(tǒng)平臺(tái)的消息攔截器,攔截到消息中的一個(gè)或多個(gè)應(yīng)用系統(tǒng)的所有唯一編碼,根據(jù)唯一編碼,檢索系統(tǒng)路由表,并匹配到對(duì)應(yīng)的數(shù)據(jù)庫(kù),同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組;AOP切面基于線程ID將與唯一編碼相關(guān)的數(shù)據(jù)庫(kù)連接池注入到方法體中,執(zhí)行查詢數(shù)據(jù)庫(kù)的操作,并將查詢結(jié)果返回到應(yīng)用系統(tǒng)平臺(tái),實(shí)現(xiàn)使用一個(gè)應(yīng)用系統(tǒng)平臺(tái)支撐多個(gè)應(yīng)用系統(tǒng)同時(shí)運(yùn)行;如果需要調(diào)用的數(shù)據(jù)庫(kù)連接池還未被使用,則對(duì)其進(jìn)行初始化后再使用;統(tǒng)一的平臺(tái)服務(wù),模型服務(wù)與業(yè)務(wù)抽取服務(wù)都是共用的,因此,需要一個(gè)AOP切面Aspect,來(lái)對(duì)所有的服務(wù)的Dao層,進(jìn)行切面。
[0081]如果是系統(tǒng)管理者,則系統(tǒng)管理者通過(guò)應(yīng)用系統(tǒng)平臺(tái)的管理控制臺(tái)對(duì)系統(tǒng)路由表修改和更新,監(jiān)控領(lǐng)域級(jí)數(shù)據(jù)庫(kù)連接池的運(yùn)行狀態(tài)與健康情況;系統(tǒng)管理者還通過(guò)應(yīng)用系統(tǒng)平臺(tái)實(shí)現(xiàn)即時(shí)通訊。對(duì)于企業(yè)級(jí)統(tǒng)建項(xiàng)目,需要為管理員提供對(duì)于應(yīng)用系統(tǒng)的的統(tǒng)一管理功能,比如CRUD等操作,并提供一個(gè)監(jiān)控所有應(yīng)用系統(tǒng)的應(yīng)用狀況的監(jiān)控工具,用來(lái)管理數(shù)據(jù)庫(kù)連接池的運(yùn)行狀況。
[0082]對(duì)于應(yīng)用系統(tǒng)界面的渲染,具體的前端實(shí)現(xiàn),主體思路為通過(guò)快速的抽取系統(tǒng)信息,基于用戶的安全授權(quán)定制,過(guò)濾相關(guān)應(yīng)用功能的,抽取界面與布局等相關(guān)定義,實(shí)現(xiàn)界面框架的渲染,最終,基于界面上綁定的業(yè)務(wù)模型對(duì)應(yīng)的數(shù)據(jù)源,通過(guò)數(shù)據(jù)抽取服務(wù),抽取填充界面框架的關(guān)聯(lián)組件。
[0083]本發(fā)明重點(diǎn)在于服務(wù)設(shè)計(jì)的解決方案,具體的實(shí)現(xiàn)方式可以根據(jù)具體的情況而定。比如以O(shè)racle大型數(shù)據(jù)庫(kù)作為數(shù)據(jù)介質(zhì);利用Oracle的表,視圖或存儲(chǔ)過(guò)程的強(qiáng)大的處理性能作為業(yè)務(wù)模型的載體;以JAVA語(yǔ)言作為實(shí)現(xiàn)語(yǔ)言;利用成熟開(kāi)源的Proxool數(shù)據(jù)庫(kù)連接池作為數(shù)據(jù)庫(kù)連接池,自主開(kāi)發(fā)數(shù)據(jù)庫(kù)連接池池化器;利用Spring框架的AOP切面和JDBC實(shí)現(xiàn)切面與數(shù)據(jù)查詢;采用HTTP/Hessian暴露服務(wù)接口。
[0084]通過(guò)采用本發(fā)明公開(kāi)的上述技術(shù)方案,得到了如下有益的效果:本發(fā)明所述方法使用一套服務(wù)支撐多個(gè)應(yīng)用系統(tǒng)的運(yùn)行,進(jìn)而減少開(kāi)發(fā),部署與維護(hù)的難度與工作量,便于提供集中監(jiān)控管治。
[0085]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種支撐多系統(tǒng)同時(shí)運(yùn)行的服務(wù)構(gòu)建方法,其特征在于,所述方法基于MDA實(shí)現(xiàn),具體包括: SI,將PIM抽象層區(qū)分為兩個(gè)層面,一個(gè)是應(yīng)用系統(tǒng)層面,另一是業(yè)務(wù)層面; S2,對(duì)應(yīng)用系統(tǒng)層面的多個(gè)應(yīng)用系統(tǒng)進(jìn)行抽象,形成應(yīng)用系統(tǒng)元模型;對(duì)業(yè)務(wù)層面的各個(gè)業(yè)務(wù)進(jìn)行抽象,形成與所述業(yè)務(wù)相應(yīng)的業(yè)務(wù)元模型; S3,形成所述數(shù)據(jù)源元模型與所述業(yè)務(wù)元模型具體實(shí)現(xiàn)相互對(duì)應(yīng)的關(guān)聯(lián)關(guān)系; S4,在PSM具體實(shí)現(xiàn)層面,將應(yīng)用系統(tǒng)元模型轉(zhuǎn)換為平臺(tái)流水線上組裝生成的應(yīng)用系統(tǒng)界面,完成支撐多系統(tǒng)同時(shí)運(yùn)行的應(yīng)用系統(tǒng)平臺(tái)的構(gòu)建。2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述應(yīng)用系統(tǒng)元模型包括應(yīng)用功能模塊、安全控制模塊、系統(tǒng)資源模塊、界面框架模塊、數(shù)據(jù)源模塊和日志模塊;應(yīng)用系統(tǒng)元模型位于的抽象層之上; 所述數(shù)據(jù)源模型,負(fù)責(zé)對(duì)任意一個(gè)領(lǐng)域中的各種業(yè)務(wù)模塊進(jìn)行統(tǒng)一定義管理。3.根據(jù)權(quán)利要求1所述方法,其特征在于,所述應(yīng)用系統(tǒng)中包括兩種類型的數(shù)據(jù)庫(kù),分別為系統(tǒng)庫(kù)和業(yè)務(wù)庫(kù); 所述系統(tǒng)庫(kù),用來(lái)存放應(yīng)用系統(tǒng)元模型; 所述業(yè)務(wù)庫(kù),用來(lái)存放的具體的業(yè)務(wù)元模型數(shù)據(jù),所述業(yè)務(wù)元模型的數(shù)據(jù)包括存儲(chǔ)過(guò)程、表和視圖。4.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟S3中,制定所述數(shù)據(jù)源模塊與所述業(yè)務(wù)元模型的關(guān)聯(lián)關(guān)系,具體按照下述步驟實(shí)現(xiàn): S31,獲取業(yè)務(wù)元模型中的業(yè)務(wù)A及所述業(yè)務(wù)A的基本信息;所述基本信息包括:名稱,調(diào)用參數(shù),業(yè)務(wù)功能,業(yè)務(wù)歸類以及數(shù)據(jù)庫(kù)定義信息; S32,將所述業(yè)務(wù)A的基本信息作為數(shù)據(jù)元A存儲(chǔ)到數(shù)據(jù)源模塊中; S33,建立數(shù)據(jù)源A與業(yè)務(wù)A的執(zhí)行關(guān)聯(lián)關(guān)系,具體為:設(shè)置抽取并解析數(shù)據(jù)源A的定義,從數(shù)據(jù)源A的定義中抽取執(zhí)行信息,所述執(zhí)行信息包括數(shù)據(jù)源A所對(duì)應(yīng)的業(yè)務(wù)名稱、數(shù)據(jù)庫(kù)信息和執(zhí)行參數(shù),根據(jù)所述執(zhí)行信息形成需要執(zhí)行的SQL或存儲(chǔ)過(guò)程,完成數(shù)據(jù)源A與業(yè)務(wù)A的執(zhí)彳丁關(guān)聯(lián)關(guān)系的建立; S34,執(zhí)行的SQL或存儲(chǔ)過(guò)程,產(chǎn)生與所述數(shù)據(jù)源A建立關(guān)聯(lián)關(guān)系的業(yè)務(wù)A,完成數(shù)據(jù)源A與業(yè)務(wù)A的關(guān)聯(lián)關(guān)系的建立。5.根據(jù)權(quán)利要求1所述方法,其特征在于,所述應(yīng)用系統(tǒng)平臺(tái)提供的服務(wù)接口具體為: 從應(yīng)用系統(tǒng)平臺(tái)的定義角度分,包括元模型的數(shù)據(jù)服務(wù)接口和業(yè)務(wù)級(jí)別的數(shù)據(jù)服務(wù)接口 ;所述元模型的數(shù)據(jù)服務(wù)接口,提供的服務(wù)包括應(yīng)用系統(tǒng)服務(wù)、安全控制服務(wù)、系統(tǒng)資源服務(wù)、界面控制服務(wù)和數(shù)據(jù)源服務(wù);所述業(yè)務(wù)級(jí)別的數(shù)據(jù)服務(wù)接口,提供數(shù)據(jù)抽取服務(wù);6.根據(jù)權(quán)利要求1所述方法,其特征在于,所述應(yīng)用系統(tǒng)平臺(tái)提供的服務(wù)接口具體為: 從應(yīng)用系統(tǒng)平臺(tái)的運(yùn)行角度分,包括定義時(shí)提供的服務(wù)接口和運(yùn)行時(shí)提供的服務(wù)接口 ;所述定義時(shí)提供的服務(wù)接口,用于開(kāi)發(fā)測(cè)試階段,負(fù)責(zé)提供系統(tǒng)應(yīng)用功能、資源的定制功能和界面定義功能的服務(wù);所述運(yùn)行時(shí)提供的服務(wù)接口,用于投產(chǎn)系統(tǒng)階段,負(fù)責(zé)提供系統(tǒng)定義、應(yīng)用功能定義、資源定義、界面框架與組件相關(guān)定義的查詢,以及業(yè)務(wù)級(jí)別基于數(shù)據(jù)源模型的統(tǒng)一的業(yè)務(wù)服務(wù)接口。7.根據(jù)權(quán)利要求1所述方法,其特征在于,所述應(yīng)用系統(tǒng)中包括數(shù)據(jù)庫(kù)采用統(tǒng)一的數(shù)據(jù)庫(kù)連接池;所述數(shù)據(jù)庫(kù)連接池除了基本的數(shù)據(jù)庫(kù)連接的池化功能外,還具有監(jiān)控接口與動(dòng)態(tài)調(diào)整接口的功能。8.根據(jù)權(quán)利要求1所述方法,其特征在于,所述應(yīng)用系統(tǒng)平臺(tái)上的每個(gè)應(yīng)用系統(tǒng)具有唯一編碼,獲取任意一個(gè)應(yīng)用系統(tǒng)與其使用的數(shù)據(jù)庫(kù)建立一對(duì)多的映射關(guān)系,將每個(gè)唯一編碼與數(shù)據(jù)庫(kù)之間的映射的關(guān)系存儲(chǔ)為系統(tǒng)路由表; 使用RMI偵聽(tīng)/廣播的方法實(shí)現(xiàn)系統(tǒng)路由表的同步性。9.根據(jù)權(quán)利要求8所述方法,其特征在于,當(dāng)接收到調(diào)用服務(wù)的消息時(shí),所述應(yīng)用系統(tǒng)平臺(tái)上設(shè)置消息攔截器,在設(shè)置消息連接器的同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組;所述線程ID為執(zhí)行目標(biāo)服務(wù)的消息線程; 在應(yīng)用系統(tǒng)平臺(tái)執(zhí)行目標(biāo)服務(wù)前,并通過(guò)AOP切面Aspect對(duì)所有服務(wù)的業(yè)務(wù)層接口進(jìn)行切面,然后,從映射中獲取與所述目標(biāo)服務(wù)相關(guān)的數(shù)據(jù)庫(kù),并將數(shù)據(jù)庫(kù)注入到具體的查詢過(guò)程中。10.根據(jù)權(quán)利要求9所述方法,其特征在于,當(dāng)接收到調(diào)用服務(wù)的消息時(shí),應(yīng)用系統(tǒng)平臺(tái)具體按照下述步驟實(shí)現(xiàn): 判斷調(diào)用服務(wù)的發(fā)起方是服務(wù)調(diào)用者還是系統(tǒng)管理者; 如果是服務(wù)調(diào)用者,則應(yīng)用系統(tǒng)平臺(tái)的消息攔截器,攔截到消息中的一個(gè)或多個(gè)應(yīng)用系統(tǒng)的所有唯一編碼,根據(jù)唯一編碼,檢索系統(tǒng)路由表,并匹配到對(duì)應(yīng)的數(shù)據(jù)庫(kù),同時(shí),建立線程ID與數(shù)據(jù)庫(kù)連接池的一對(duì)一映射組;AOP切面基于線程ID將與唯一編碼相關(guān)的數(shù)據(jù)庫(kù)連接池注入到方法體中,執(zhí)行查詢數(shù)據(jù)庫(kù)的操作,并將查詢結(jié)果返回到應(yīng)用系統(tǒng)平臺(tái),實(shí)現(xiàn)使用一個(gè)應(yīng)用系統(tǒng)平臺(tái)支撐多個(gè)應(yīng)用系統(tǒng)同時(shí)運(yùn)行;如果需要調(diào)用的數(shù)據(jù)庫(kù)連接池還未被使用,則對(duì)其進(jìn)行初始化后再使用; 如果是系統(tǒng)管理者,則系統(tǒng)管理者通過(guò)應(yīng)用系統(tǒng)平臺(tái)的管理控制臺(tái)對(duì)系統(tǒng)路由表修改和更新,監(jiān)控領(lǐng)域級(jí)數(shù)據(jù)庫(kù)連接池的運(yùn)行狀態(tài)與健康情況;系統(tǒng)管理者還通過(guò)應(yīng)用系統(tǒng)平臺(tái)實(shí)現(xiàn)即時(shí)通訊。
【文檔編號(hào)】G06F9/44GK106055325SQ201610365831
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年5月27日
【發(fā)明人】陳瑞軍
【申請(qǐng)人】克拉瑪依紅有軟件有限責(zé)任公司