本發(fā)明涉及車用控制器軟件領(lǐng)域,尤其涉及應(yīng)用于汽車開放系統(tǒng)架構(gòu)(automotive?open?system?architecture,autosar)中的一種用于實現(xiàn)分布式swc(software?component,swc)鏈接(link)處理的方法、裝置及系統(tǒng)。
背景技術(shù):
1、隨著汽車智能化、網(wǎng)聯(lián)化程度越來越高,目前采用的是基于autosar規(guī)范來進行汽車控制器軟件領(lǐng)域的開發(fā)。根據(jù)規(guī)范,將軟件根據(jù)不同的功能,劃分為不同的軟件組件(swc),swc可以在不同的電子控制元件(electronic?control?unit,ecu)上運行。swc由autosar描述文件(arxml)定義,并通過autosar代碼生成工具生成代碼。swc的核心功能是通過輸入輸出端口與其他swc或底層軟件組件(bsw)交互,同時也可以使用內(nèi)部端口進行內(nèi)部通信。
2、同時,不同的swc之間可以存在相互調(diào)用的關(guān)系;此時需要通過兩者之間建立鏈接(link)功能,不同的swc之間才能實現(xiàn)正常調(diào)用。具體地,link在汽車領(lǐng)域通常是指autosar中的信號與接口鏈接,用于在不同的swc之間傳遞數(shù)據(jù)。建立這種鏈接需要進行定義信號、端口以及映射等工作。
3、現(xiàn)有技術(shù)中出現(xiàn)了一種autosar?builder工具,其提供了一套完整的用戶圖形界面,通過導(dǎo)入各個模塊swc的arxml,解析arxml里面的內(nèi)容,最終抽象成一系列的模型。link的過程實際上就是抽象模型之間關(guān)系綁定,然后將抽象模型以及他們之前的綁定關(guān)系,轉(zhuǎn)化為arxml的數(shù)據(jù)結(jié)構(gòu),最終回寫到arxml中,從而達(dá)到真正實現(xiàn)swc之間的link目的。
4、但是現(xiàn)有這種使用商業(yè)軟件工具來進行swc之間的link的方案存在一些不足之處:
5、link效率低。由于汽車控制器軟件的模塊化越來越多,功能迭代越來越頻繁,變更也越來越頻繁,當(dāng)某個swc改動后,都需要重新“組裝”,因此會導(dǎo)致link效率低下。
6、link質(zhì)量差,容易造成錯誤的link。由于采用的集中式“組裝”的方式,各個swc之間都是可見的,處于一種“透明”狀態(tài),缺乏link的限制規(guī)則??赡軙a(chǎn)生錯誤的swc之間link,從而影響整個軟件功能上的錯誤,影響軟件質(zhì)量。
7、造成非必要的系統(tǒng)開銷。由于link的實時性,因為arxml的解析、結(jié)構(gòu)化、封裝等操作會占用一定的系統(tǒng)開銷,故每次link都會引發(fā)系統(tǒng)資源(主要是cpu和內(nèi)存的消耗)額外增加。然而,link操作往往不是一次性,有時候可能swca與swcb進行l(wèi)ink,然后又取消了;改成了swca與swcc進行l(wèi)ink,則之前的link產(chǎn)生的系統(tǒng)資源消耗,就無端浪費了,造成了非必要的系統(tǒng)開銷。
8、上述這些不足之處會嚴(yán)重影響整車軟件的開發(fā)周期。
技術(shù)實現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題在于,提供一種用于實現(xiàn)分布式swc鏈接處理的方法、裝置及系統(tǒng),可以有效提高不同swc之間的鏈接效率、提高鏈接質(zhì)量,并能減少非必要的系統(tǒng)性能損耗,從而提高整車軟件的開發(fā)效率及靈活性。
2、為解決上述技術(shù)問題,作為本發(fā)明的一方面,提供一種用于實現(xiàn)分布式swc鏈接處理的方法,應(yīng)用于包含有的分布式swc服務(wù)端和分布式swc終端的車輛中,其至少包括如下步驟:
3、啟動分布式swc服務(wù)端的swc模塊服務(wù)以及注冊表服務(wù);
4、接收來自分布式swc終端的鏈接注冊請求,所述鏈接注冊請求中包含有本次注冊請求的鏈接信息,所述鏈接信息包括:請求方swc標(biāo)識以及目標(biāo)swc標(biāo)識;
5、檢索所啟動的swc模塊服務(wù)的服務(wù)列表中是否存在所述目標(biāo)swc標(biāo)識,確定注冊是否成功,并將注冊結(jié)果通知請求方swc;
6、將本次鏈接注冊請求的鏈接信息存儲于車載存儲器中;
7、根據(jù)車載存儲器中存儲的各鏈接注冊請求的鏈接信息,執(zhí)行各次鏈接注冊請求對應(yīng)的鏈接操作,建立各請求方swc和目標(biāo)swc之間的鏈接關(guān)系。
8、其中,所述啟動分布式swc服務(wù)端的swc模塊服務(wù)以及注冊表服務(wù),進一步包括:
9、啟動分布式swc服務(wù)端的swc模塊服務(wù)以及注冊表服務(wù),從車載存儲器中加載當(dāng)前所有swc模塊服務(wù)的服務(wù)列表,以及注冊表服務(wù)對應(yīng)的注冊表數(shù)據(jù)。
10、其中,檢索所啟動的swc模塊服務(wù)的服務(wù)列表中是否存在所述目標(biāo)swc標(biāo)識,確定注冊是否成功,并將注冊結(jié)果通知請求方swc,進一步包括:
11、檢索所啟動的swc模塊服務(wù)的服務(wù)列表中是否存在所述目標(biāo)swc標(biāo)識,如果檢索結(jié)果為存在,確定注冊成功,并將請求方swc標(biāo)識以及目標(biāo)swc標(biāo)識存入注冊表服務(wù)對應(yīng)的注冊表中;如果檢索結(jié)果為不存在,則確定注冊失敗;
12、將所確定的注冊結(jié)果通知請求方swc。
13、其中,將本次鏈接注冊請求的鏈接信息存儲于車載存儲器中,進一步包括:
14、將本次鏈接注冊請求中的請求方swc標(biāo)識以及目標(biāo)swc標(biāo)識存儲于車載存儲器,記錄為一次鏈接注冊請求,并通知分布式終端本次鏈接已完成。
15、其中,根據(jù)車載存儲器中存儲的各鏈接注冊請求的鏈接信息,執(zhí)行各次鏈接注冊請求對應(yīng)的鏈接操作,建立各請求方swc和目標(biāo)swc之間的鏈接關(guān)系,進一步包括:
16、判斷預(yù)定執(zhí)行條件是否到達(dá),所述預(yù)定執(zhí)行條件為:車載存儲器中存儲的各鏈接注冊請求的鏈接信息達(dá)到預(yù)定數(shù)量閾值,或接收最后一條鏈接注冊請求超過預(yù)定時間閾值;
17、在預(yù)定執(zhí)行條件到達(dá)時,根據(jù)車載存儲器中存儲的各鏈接注冊請求的鏈接信息,執(zhí)行所有鏈接注冊請求對應(yīng)的鏈接操作,建立各請求方swc和目標(biāo)swc之間的鏈接關(guān)系。
18、其中,進一步包括:
19、接收分布式終端推送的swc信息新增、更改或刪除請求,在注冊表中進行相應(yīng)新增、更改或刪除操作。
20、相應(yīng)地,本發(fā)明的另一方面,還提供一種用于實現(xiàn)分布式swc鏈接處理的裝置,其至少包括:
21、服務(wù)啟動單元,用于啟動分布式swc服務(wù)端的swc模塊服務(wù)以及注冊表服務(wù);
22、鏈接注冊請求接收單元,用于接收來自分布式swc終端的鏈接注冊請求,所述鏈接注冊請求中包含有本次注冊請求的鏈接信息,所述鏈接信息包括:請求方swc標(biāo)識以及目標(biāo)swc標(biāo)識;
23、檢索處理單元,用于檢索所啟動的swc模塊服務(wù)的服務(wù)列表中是否存在所述目標(biāo)swc標(biāo)識,確定注冊是否成功,并將注冊結(jié)果通知請求方swc;
24、鏈接信息存儲單元,用于將本次鏈接注冊請求的鏈接信息存儲于車載存儲器中;
25、鏈接執(zhí)行單元,用于根據(jù)車載存儲器中存儲的各鏈接注冊請求的鏈接信息,執(zhí)行各次鏈接注冊請求對應(yīng)的鏈接操作,建立各請求方swc和目標(biāo)swc之間的鏈接關(guān)系。
26、其中,所述服務(wù)啟動單元進一步包括:加載單元,用于在啟動分布式swc服務(wù)端的swc模塊服務(wù)以及注冊表服務(wù)時,從車載存儲器中加載當(dāng)前所有swc模塊服務(wù)的服務(wù)列表,以及注冊表服務(wù)對應(yīng)的注冊表數(shù)據(jù);
27、所述檢索處理單元,進一步包括:
28、檢索確定單元,用于檢索所啟動的swc模塊服務(wù)的服務(wù)列表中是否存在所述目標(biāo)swc標(biāo)識,如果檢索結(jié)果為存在,確定注冊成功,并將請求方swc標(biāo)識以及目標(biāo)swc標(biāo)識存入注冊表服務(wù)對應(yīng)的注冊表中;如果檢索結(jié)果為不存在,則確定注冊失??;
29、通知單元,用于將所確定的注冊結(jié)果通知請求方swc。
30、其中,所述鏈接執(zhí)行單元進一步包括:
31、執(zhí)行條件判斷單元,用于判斷預(yù)定執(zhí)行條件是否到達(dá),所述預(yù)定執(zhí)行條件為:車載存儲器中存儲的各鏈接注冊請求的鏈接信息達(dá)到預(yù)定數(shù)量閾值,或接收最后一條鏈接注冊請求超過預(yù)定時間閾值;
32、執(zhí)行處理單元,用于在預(yù)定執(zhí)行條件到達(dá)時,根據(jù)車載存儲器中存儲的各鏈接注冊請求的鏈接信息,執(zhí)行所有鏈接注冊請求對應(yīng)的鏈接操作,建立各請求方swc和目標(biāo)swc之間的鏈接關(guān)系。
33、其中,進一步包括:
34、swc信息接收單元,用于接收分布式終端推送的swc信息新增、更改或刪除請求,在注冊表中進行相應(yīng)新增、更改或刪除操作。
35、相應(yīng)地,本發(fā)明的再一方面,還提供一種用于實現(xiàn)分布式swc鏈接處理的系統(tǒng),其包括設(shè)置于車輛中的分布式swc服務(wù)端和分布式swc終端,其中:
36、所述swc服務(wù)端中設(shè)置有如前述的裝置;
37、所述分布式swc終端用于向所述swc服務(wù)端推送swc信息新增、更改或刪除請求,以及用于向swc服務(wù)端發(fā)送鏈接注冊請求,所述鏈接注冊請求中包含有本次注冊請求的鏈接信息,所述鏈接信息包括:請求方swc標(biāo)識以及目標(biāo)swc標(biāo)識。
38、實施本發(fā)明實施例,具有如下的有益效果:
39、本發(fā)明提供一種用于實現(xiàn)分布式swc鏈接處理的方法、裝置及系統(tǒng)。由于在車輛的ecu中采用分布式swc終端和服務(wù)端。swc之間采用鏈接注冊申請機制,根據(jù)注冊表來限制哪些swc之間可以進行鏈接。同時,在每次鏈接注冊申請時鏈接的生成是“惰性”的,只有在最終確認(rèn)鏈接的時候,才會集中地執(zhí)行真正的鏈接的動作,從而可以有效提高不同swc之間的鏈接效率、提高鏈接質(zhì)量,并能減少非必要的系統(tǒng)性能損耗??梢蕴岣哒囓浖拈_發(fā)效率及靈活性。