本發(fā)明涉及車聯(lián)網(wǎng),尤其涉及一種面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng)及方法。
背景技術(shù):
1、面向服務(wù)的架構(gòu)(service-oriented?architecture,soa)因其模塊化、松耦合和可重用性的優(yōu)勢(shì),逐漸成為汽車軟件設(shè)計(jì)的主流選擇。soa的核心在于服務(wù)之間的獨(dú)立性和互操作性,而面向服務(wù)的架構(gòu)建立在面向服務(wù)的通信(servic?e-orientedcommunication,soc)基礎(chǔ)之上。面向服務(wù)的通信通過(guò)描述通信矩陣,包括服務(wù)之間通信的接口以及接口涉及的數(shù)據(jù)類型,實(shí)現(xiàn)服務(wù)之間的有效通信與協(xié)作。
2、目前,通信矩陣普遍采用arxml(autosar?runtime?interface?xml)格式來(lái)描述。arxml格式具有易于機(jī)器解析的優(yōu)點(diǎn),但是無(wú)法直接閱讀,需要借助于專門的工具來(lái)解析后顯示在界面上才能閱讀。另一種更為靈活且普及的方法是將arxml文件轉(zhuǎn)換為excel格式或直接編輯excel文件來(lái)構(gòu)建通信矩陣。通過(guò)excel工具能夠?qū)崿F(xiàn)對(duì)通信矩陣進(jìn)行增刪改查操作。
3、然而,無(wú)論是采用arxml還是excel作為soa通信矩陣的存儲(chǔ)格式,其最終目的都是為了利用這些信息來(lái)自動(dòng)生成面向服務(wù)的通信代碼?,F(xiàn)有的商業(yè)軟件,如德國(guó)vector公司的達(dá)芬奇工具,雖然能夠高效地解析通信矩陣并生成代碼,但其采購(gòu)成本高昂,使用流程復(fù)雜,學(xué)習(xí)成本高,且解析和代碼生成的高度綁定性。
技術(shù)實(shí)現(xiàn)思路
1、為了解決以上技術(shù)問(wèn)題,本發(fā)明提供了一種面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng)及方法。
2、本發(fā)明所解決的技術(shù)問(wèn)題可以采用以下技術(shù)方案實(shí)現(xiàn):
3、一種面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),包括:
4、解析插件模塊,用于在接收到通信矩陣時(shí)觸發(fā)解析過(guò)程;在所述解析過(guò)程中,基于至少一個(gè)預(yù)定義的信息提取類對(duì)接收到的不同格式的所述通信矩陣進(jìn)行解析處理,得到解析結(jié)果;
5、事件監(jiān)控接口,分別連接所述解析插件模塊和抽象解析模塊,用于在檢測(cè)到所述解析插件模塊觸發(fā)所述解析過(guò)程時(shí),產(chǎn)生所述解析過(guò)程的通知事件,并將所述通知事件發(fā)送至所述抽象解析模塊;
6、所述抽象解析模塊用于在接收到所述通知事件時(shí),根據(jù)所述解析結(jié)果生成數(shù)據(jù)模型,并將所述數(shù)據(jù)模型存儲(chǔ)至信息容器中;
7、代碼生成模塊,連接所述信息容器,用于從所述信息容器中提取模型數(shù)據(jù),基于預(yù)設(shè)的代碼模板對(duì)提取的所述模型數(shù)據(jù)進(jìn)行處理,生成相應(yīng)的代碼。
8、優(yōu)選地,所述解析插件模塊包括:
9、多個(gè)解析插件,每個(gè)所述解析插件分別對(duì)應(yīng)于所述通信矩陣的一種格式;
10、每個(gè)所述解析插件均具有所述預(yù)定義的信息提取類。
11、優(yōu)選地,所述預(yù)定義的信息提取類包括數(shù)據(jù)類型信息提取類、服務(wù)接口信息提取類、通信配置信息提取類中的一種或多種組合。
12、優(yōu)選地,所述事件監(jiān)控接口包括事件通知接口;
13、每個(gè)所述預(yù)定義的提取類分別對(duì)應(yīng)一個(gè)所述事件通知接口,每個(gè)所述事件通知接口中預(yù)定義有與所述預(yù)定義的提取類對(duì)應(yīng)的多個(gè)接口函數(shù),每個(gè)所述接口函數(shù)用于產(chǎn)生所述解析過(guò)程的解析事件對(duì)應(yīng)的通知事件。
14、優(yōu)選地,所述抽象解析模塊基于模型-視圖-控制器架構(gòu)實(shí)現(xiàn)。
15、優(yōu)選地,所述抽象解析模塊包括:
16、至少一個(gè)解析器,所述解析器與所述預(yù)定義的信息提取類一一對(duì)應(yīng),用于在被調(diào)用時(shí),反向調(diào)用所述解析插件模塊的解析函數(shù)以觸發(fā)所述解析過(guò)程;以及在監(jiān)聽到所述通知事件時(shí),基于所述通知事件創(chuàng)建并配置模型對(duì)象,生成所述數(shù)據(jù)模型的模型數(shù)據(jù),并將所述數(shù)據(jù)模型的模型數(shù)據(jù)存儲(chǔ)至所述信息容器中。
17、優(yōu)選地,所述信息容器的成員屬性由至少一個(gè)列表組成,每個(gè)所述列表用于存儲(chǔ)與所述預(yù)定義的提取類相對(duì)應(yīng)的對(duì)象。
18、優(yōu)選地,所述代碼生成模塊包括:
19、數(shù)據(jù)類型定義代碼生成器,用于從所述信息容器中提取模型數(shù)據(jù),基于預(yù)設(shè)的數(shù)據(jù)類型定義代碼模板對(duì)提取的所述模型數(shù)據(jù)進(jìn)行處理,生成第一代碼;
20、服務(wù)client代碼生成器,用于從所述信息容器中提取模型數(shù)據(jù),基于預(yù)設(shè)的服務(wù)client代碼模板對(duì)提取的所述模型數(shù)據(jù)進(jìn)行處理,生成第二代碼;
21、服務(wù)service代碼生成器,用于從所述信息容器中提取模型數(shù)據(jù),基于預(yù)設(shè)的服務(wù)service代碼模板對(duì)提取的所述模型數(shù)據(jù)進(jìn)行處理,生成第三代碼;
22、配置文件生成器,用于從所述信息容器中提取模型數(shù)據(jù),基于預(yù)設(shè)的配置文件代碼模板對(duì)提取的所述模型數(shù)據(jù)進(jìn)行處理,生成第四代碼;
23、每個(gè)服務(wù)均對(duì)應(yīng)包括所述第一代碼、所述第二代碼、所述第三代碼和所述第四代碼。
24、優(yōu)選地,還包括:調(diào)度器,分別連接所述抽象解析模塊、所述信息容器、所述代碼生成模塊和所述代碼模板,用于進(jìn)行所述抽象解析模塊、所述信息容器、所述代碼生成模塊和所述代碼模板的調(diào)度。
25、本發(fā)明還提供一種面向服務(wù)架構(gòu)通信矩陣的代碼生成方法,應(yīng)用于如上述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),包括:
26、在接收到通信矩陣時(shí)觸發(fā)解析過(guò)程;在所述解析過(guò)程中,基于預(yù)定義的信息提取類對(duì)接收到的不同格式的所述通信矩陣進(jìn)行解析處理,得到解析結(jié)果;
27、在檢測(cè)到觸發(fā)所述解析過(guò)程時(shí),產(chǎn)生所述解析過(guò)程的通知事件,并將所述通知事件發(fā)送至所述抽象解析模塊;
28、所述抽象解析模塊在接收到所述通知事件時(shí),將所述解析結(jié)果轉(zhuǎn)換為數(shù)據(jù)模型,并將所述數(shù)據(jù)模型存儲(chǔ)至信息容器中;
29、從所述信息容器中提取模型數(shù)據(jù),基于預(yù)設(shè)的代碼模板對(duì)提取的所述模型數(shù)據(jù)進(jìn)行處理,生成相應(yīng)的代碼。
30、本發(fā)明技術(shù)方案的優(yōu)點(diǎn)或有益效果在于:
31、本發(fā)明通過(guò)采用模塊化設(shè)計(jì),實(shí)現(xiàn)通信矩陣解析和代碼生成的解綁,提高了系統(tǒng)的靈活性和可擴(kuò)展性;同時(shí)采用解析插件模塊和抽象解析模塊將解析過(guò)程分成文件解析和抽象解析兩個(gè)部分,結(jié)合解析事件的主動(dòng)監(jiān)控,實(shí)現(xiàn)解析soa通信矩陣與文件具體格式的解耦,無(wú)需針對(duì)每種格式單獨(dú)開發(fā)解析器,即可輕松應(yīng)對(duì)并解析多種不同格式的通信矩陣文件,降低了開發(fā)與維護(hù)成本。
1.一種面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述解析插件模塊包括:
3.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述預(yù)定義的信息提取類包括數(shù)據(jù)類型信息提取類、服務(wù)接口信息提取類、通信配置信息提取類中的一種或多種組合。
4.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述事件監(jiān)控接口包括事件通知接口;
5.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述抽象解析模塊基于模型-視圖-控制器架構(gòu)實(shí)現(xiàn)。
6.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述抽象解析模塊包括:
7.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述信息容器的成員屬性由至少一個(gè)列表組成,每個(gè)所述列表用于存儲(chǔ)與所述預(yù)定義的提取類相對(duì)應(yīng)的對(duì)象。
8.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,所述代碼生成模塊包括:
9.根據(jù)權(quán)利要求1所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),其特征在于,還包括:調(diào)度器,分別連接所述抽象解析模塊、所述信息容器、所述代碼生成模塊和所述代碼模板,用于進(jìn)行所述抽象解析模塊、所述信息容器、所述代碼生成模塊和所述代碼模板的調(diào)度。
10.一種面向服務(wù)架構(gòu)通信矩陣的代碼生成方法,其特征在于,應(yīng)用于如權(quán)利要求1-9任意一項(xiàng)所述的面向服務(wù)架構(gòu)通信矩陣的代碼生成系統(tǒng),包括: