新架構(gòu)下服務(wù)建模,關(guān)鍵在這6步!
隨著AUTOSAR、SOA、以太網(wǎng)通訊等新技術(shù)、新理念的成熟化,面向軟件、硬件、網(wǎng)絡(luò)、電氣等多領(lǐng)域的電子電氣系統(tǒng)經(jīng)歷了多代架構(gòu)方法論的迭代。如何跟隨新技術(shù)和新理念的浪潮,構(gòu)建起新型的汽車電子電氣架構(gòu)平臺,以實現(xiàn)新老技術(shù)的快速更替和融合,優(yōu)化協(xié)同系統(tǒng)架構(gòu)的搭建將成為主機廠和供應(yīng)商共同關(guān)注的重點。
經(jīng)緯恒潤基于SystemWeaver平臺,按照SOA建模理念為客戶提供了新一代基于SOA的企業(yè)級電子電氣系統(tǒng)協(xié)同設(shè)計解決方案,可以有效支持服務(wù)和信號的混合架構(gòu)建模。新型架構(gòu)下的服務(wù)建模分為服務(wù)設(shè)計、服務(wù)系統(tǒng)部署、拓?fù)湓O(shè)計、服務(wù)接口部署、服務(wù)實例部署和服務(wù)設(shè)計檢查和集成六大部分。
01 服務(wù)設(shè)計
服務(wù)Service Interface將在服務(wù)設(shè)計庫中進(jìn)行全局維護(hù),系統(tǒng)中的軟件模塊將以引用的方式去調(diào)用服務(wù)接口。在設(shè)計服務(wù)接口之前 ,可在統(tǒng)一的數(shù)據(jù)類型庫中進(jìn)行CppImplementationDatatype的定義和維護(hù),之后將被服務(wù)接口引用。
CppImplementationDatatype是適配于C++的Implementation Datatype,常用的有Type Reference、Array、vector、Struct和String類型等。在SystemWeaver中,用戶將可以用便捷的方式進(jìn)行數(shù)據(jù)類型的定義,其內(nèi)置的校驗規(guī)則將有效支持?jǐn)?shù)據(jù)的正確性和完整性。
圖1 數(shù)據(jù)類型維護(hù)
此后,將進(jìn)一步進(jìn)行服務(wù)接口的定義,用戶需要根據(jù)其功能進(jìn)行詳細(xì)的接口設(shè)計,明確服務(wù)ID、大版本、小版本等基礎(chǔ)信息,并對該服務(wù)的使用和內(nèi)部邏輯進(jìn)行詳細(xì)描述。
服務(wù)接口信息主要包括Method、Event和Field三種通訊形式,需要定義其引用的數(shù)據(jù)類型,也就是上一步中定義出的CppImplementationDatatype用來描述其參數(shù)的信息。SystemWeaver將提供良好的用戶界面完成對于服務(wù)接口的基本信息填寫和接口定義,同時將支持設(shè)計過程中數(shù)據(jù)正確性和完整性的校驗:
· Method、Event和Field的引用數(shù)據(jù)完整性
· 服務(wù)信息完整性
· Method參數(shù)的名稱正確性
· Field的類型完整性
圖2 服務(wù)接口定義
02 服務(wù)系統(tǒng)部署
用戶完成服務(wù)接口的定義之后,下一步將描述其在軟件模塊Adaptive Software Component中的交互邏輯,用戶需要設(shè)計Software Component軟件模塊之間的服務(wù)調(diào)動關(guān)系,為軟件模塊定義Provided Port或者Consumed Port并進(jìn)行服務(wù)庫的服務(wù)引用,以此來表示提供或者消費某個服務(wù)。完成設(shè)計之后,SystemWeaver將提供各種系統(tǒng)框圖進(jìn)行查看和導(dǎo)出。
圖3 軟件模塊交互
軟件模塊設(shè)計完成之后,還需要進(jìn)行Executable的生成,并將軟件模塊和Executable進(jìn)行關(guān)聯(lián);同時需要完成Process Design的定義,并將Executable進(jìn)行分配。
03 拓?fù)湓O(shè)計
在ECU層級,除了和傳統(tǒng)架構(gòu)一樣進(jìn)行ECU的設(shè)計以及軟件模塊的分配之外,還需要對以太網(wǎng)的拓?fù)溥M(jìn)行設(shè)計。其主要內(nèi)容包括:
· ECU對應(yīng)網(wǎng)絡(luò)的設(shè)計,包括對其Connector的定義
· VLAN的定義,包括其基本參數(shù)設(shè)置和Network Endpoint的定義
· 完成ECU網(wǎng)絡(luò)節(jié)點和VLAN 的拓?fù)浣Y(jié)構(gòu)設(shè)計
· Switch的設(shè)置和參數(shù)定義
· ECU網(wǎng)絡(luò)節(jié)點的controller定義,以及其和connector的關(guān)聯(lián)關(guān)系構(gòu)建
· Switch和ECU網(wǎng)絡(luò)節(jié)點的Coupling Port關(guān)聯(lián)
圖4 拓?fù)湓O(shè)計
04 服務(wù)接口部署
服務(wù)接口設(shè)計完成了其設(shè)計層面上的描述,后續(xù)將進(jìn)行其在通訊層面上的部署,需要選擇通訊協(xié)議對服務(wù)接口完成部署,如 SOME/IP、DDS和IPC等,通常還需要對Eventgroup即訂閱組完成設(shè)計。
SystemWeaver將提供服務(wù)接口部署界面用于完成接口部署的參數(shù)例如接口ID和端口號的填寫,以及Eventgroup的定義。與此同時,其包含了很多設(shè)計準(zhǔn)則校驗,將進(jìn)一步幫助用戶完成低錯誤率的接口部署設(shè)計。
圖5 服務(wù)接口部署
05 服務(wù)實例部署
完成接口部署和通訊設(shè)計之后,需要完成服務(wù)實例部署,即定義服務(wù)實例的通訊方式。首先,需要對提供方和消費方的服務(wù)實例完成基本信息設(shè)置,如instance ID等。其次,需要對提供方和消費方通訊中提供和消費的訂閱組進(jìn)行定義,以實現(xiàn)差異化實例的訂閱組信息。最后,需要對通訊的行為進(jìn)行定義,將定義通訊使用的TCP/UDP 協(xié)議及端口號,和通訊所在VLAN的關(guān)聯(lián)。
針對于復(fù)雜的服務(wù)實例生成,System Weaver將提供自動化部署功能。其中包含了設(shè)計中需要遵守的基本準(zhǔn)則,根據(jù)Instance ID不能重復(fù)、提供方和接收方需要在一個VLAN下等要求進(jìn)行了自動化部署的設(shè)計,幫助用戶快速完成復(fù)雜的服務(wù)部署工作。
圖6 服務(wù)實例部署
06 服務(wù)設(shè)計檢查和集成
完成服務(wù)實例部署之后,服務(wù)的整個設(shè)計將宣告結(jié)束,但服務(wù)信息仍需要和下游系統(tǒng)進(jìn)行集成,所以最后一步是對整個系統(tǒng)的所有信息進(jìn)行檢查校驗。SystemWeaver針對數(shù)據(jù)類型、服務(wù)接口、服務(wù)部署、拓?fù)浣Y(jié)構(gòu)等10個維度進(jìn)行了200+條校驗,以保證整個系統(tǒng)層面服務(wù)設(shè)計的合理性和完整性。
數(shù)據(jù)校驗之后,將對數(shù)據(jù)進(jìn)行導(dǎo)出和下游集成。最常用的文件格式是ARXML格式,此外,服務(wù)矩陣表格和IDL格式也都是較為通用的格式。SyetemWeaver可以對多個版本的AUTOSAR標(biāo)準(zhǔn)進(jìn)行服務(wù)文件導(dǎo)出,并支持導(dǎo)出基于單個服務(wù)和全系統(tǒng)兩個維度的服務(wù),同時也支持進(jìn)行定制化服務(wù)矩陣和IDL或者JSON格式的文件導(dǎo)出。
如上所述是基于SOA的整個服務(wù)流程,但是隨著底層軟件設(shè)計成熟度的提升,各個整車廠將對設(shè)計流程進(jìn)行調(diào)整和適配,以試用于其自身的架構(gòu)方法論和工具鏈集成。因此,SystemWeaver也提供了靈活度較高的定制化配置功能,其不僅支持定制化的服務(wù)設(shè)計方法論,也支持服務(wù)設(shè)計過程中所有功能的定制化適配。
此外,System Weaver作為平臺類的協(xié)同研發(fā)平臺,其本身優(yōu)異的協(xié)同能力將有效支持包含服務(wù)設(shè)計在內(nèi)的整個新型架構(gòu)的設(shè)計,它將支持新技術(shù),例如服務(wù)設(shè)計、信息安全和軟件架構(gòu)等;并支持整個V流程“需求—功能—系統(tǒng)—ECU—測試”分層架構(gòu)設(shè)計的融合,實現(xiàn)全系統(tǒng)的數(shù)據(jù)追溯和測試追溯。
了解更多:請致電010-64840808轉(zhuǎn)6116或發(fā)送郵件至market_dept@hirain.com(聯(lián)系時請說明來自EEPW)
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。