車載SOA軟件架構(gòu)設(shè)計
根據(jù)基于模型的系統(tǒng)工程方法和以下面向服務(wù)架構(gòu)的建模語言(SOAML),提供了用于面向服務(wù)和軟件架構(gòu)建模的各種元模型的詳細(xì)信息。SOA和軟件層元模型大致分為兩類:核心建模(數(shù)據(jù))和圖表(可視化)。

SOA設(shè)計-核心模型設(shè)計
這些是為每個特性或系統(tǒng)建模SOA和軟件體系結(jié)構(gòu)的核心。
服務(wù):服務(wù)可以通過定義的接口提供可用的功能。每個服務(wù)都有一個用于服務(wù)注冊和發(fā)現(xiàn)的唯一ID。服務(wù)使用者應(yīng)使用此ID識別服務(wù),并根據(jù)定義的接口使用功能,盡管服務(wù)定義不一定要有使用者。服務(wù)的類型包括:
硬件抽象服務(wù):基于ECUs功能和硬件外圍設(shè)備(例如傳感器、執(zhí)行器),定義硬件抽象服務(wù)。這些服務(wù)應(yīng)該在軟件平臺級別提供。
平臺核心服務(wù):所有跨應(yīng)用程序集群和域的公共服務(wù)都需要在軟件平臺級別定義和提供。
域核心服務(wù):在一個應(yīng)用集群中,跨不同應(yīng)用層序的公共服務(wù)定義為域核心服務(wù)。
應(yīng)用程序服務(wù):特定于系統(tǒng)的每個應(yīng)用程序或功能的服務(wù),需要定義為應(yīng)用程序服務(wù)。
服務(wù)提供者:服務(wù)提供者是具有提供服務(wù)功能的特定角色的服務(wù)的實例。服務(wù)提供商根據(jù)定義的服務(wù)接口提供服務(wù)。
服務(wù)使用者:服務(wù)使用者是具有使用服務(wù)功能的特定角色的服務(wù)實例。服務(wù)使用者需要確保從提供者獲得定義的服務(wù)接口。
服務(wù)端口:服務(wù)端口是服務(wù)提供者或使用者之間互相通信的接口點。
服務(wù)接口:服務(wù)接口是服務(wù)提供者和使用者之間數(shù)據(jù)交換的定義。它定義了向使用者公開的服務(wù)的屬性。服務(wù)接口具有以下內(nèi)容:
使用getter和setter將字段轉(zhuǎn)換為屬性;
方法(請求和響應(yīng));
fire-and-forget 方法(請求無需響應(yīng));
事件和事件組;
方法-請求和響應(yīng):這是服務(wù)接口的一部分,在客戶端或者服務(wù)器中調(diào)用方法并期待得到確認(rèn)。
fire-and-forget方法:這是服務(wù)接口的一部分,在服務(wù)接口中,客戶機在不等待服務(wù)器確認(rèn)的情況下調(diào)用該方法。
事件:這是服務(wù)接口的一部分,服務(wù)角色在其中更新數(shù)據(jù)或傳遞操作。服務(wù)使用者可以訂閱事件或者事件組。
屬性或字段:這是表示服務(wù)器中某些數(shù)據(jù)的服務(wù)接口的一部分。服務(wù)器應(yīng)該通過公開getter和setter方法向使用者提供該數(shù)據(jù)的訪問。
參數(shù):它定義一個方法的輸入或返回參數(shù)(請求/響應(yīng)和fire-and-forget方法)。
面向服務(wù)的體系結(jié)構(gòu):每個特性或系統(tǒng)的SOA包括具有id的服務(wù)定義、服務(wù)角色(提供者和使用者)、服務(wù)器接口定義以及與定義的服務(wù)接口相關(guān)的相互接口的服務(wù)角色。
組合:用于按層次結(jié)構(gòu)組織軟件組件。
應(yīng)用軟件組件(SWC):它表示在軟件體系結(jié)構(gòu)層具有足夠粒度的給定功能。它應(yīng)該足夠細(xì)化,可以部署在單個硬件組件上。SWC應(yīng)為AUTOSAR經(jīng)典或自適應(yīng)或非AUTOSAR軟件組件。如果是AUTOSAR經(jīng)典或自適應(yīng),則必須按照標(biāo)準(zhǔn)AUTOSAR定義遵循類型-原型-實例結(jié)構(gòu)。
軟件端口:軟件端口存在于軟件組件上,表示操作(如果是客戶端服務(wù)通信)或數(shù)據(jù)元素(如果是發(fā)送方=接收方通信?),提供或訂閱的數(shù)據(jù),發(fā)送方-接收方接口或客戶端接口被分配給軟件端口。
軟件組裝連接器:通過使用軟件組裝連接器(軟件級數(shù)據(jù)流)連接軟件端口,使軟件相互連接。
客戶機服務(wù)接口、操作和參數(shù):如果軟件端口以客戶機和服務(wù)器模式交換數(shù)據(jù),則分配給它們的接口稱為客戶機服務(wù)接口。這個接口需要包括每個操作的操作和參數(shù)(輸入和返回)。
發(fā)送方=接收方接口和數(shù)據(jù)元素:如果軟件端口以雙向模式交換數(shù)據(jù),則分配的接口稱為發(fā)送方-接收方接口。此接口需要包括數(shù)據(jù)元素(表示交換的數(shù)據(jù))和數(shù)據(jù)類型分配。數(shù)據(jù)類型應(yīng)為應(yīng)用數(shù)據(jù)類型和實現(xiàn)數(shù)據(jù)類型。應(yīng)根據(jù)這些數(shù)據(jù)類型定義計算方法。
SOA設(shè)計—圖表設(shè)計
SOA設(shè)計和軟件架構(gòu)( architecture)數(shù)據(jù)應(yīng)以表格格式或圖表形式可視化。應(yīng)使用定制的表格格式來可視化SOA設(shè)計數(shù)據(jù)和軟件架構(gòu)定義面向服務(wù)的體系結(jié)構(gòu)圖(SOAD):該圖應(yīng)可視化給定功能或服務(wù)、服務(wù)角色(服務(wù)提供者和服務(wù)使用者)、服務(wù)端口和服務(wù)接口。下面是SOA圖的示例視圖:

軟件架構(gòu)圖(SWAD):一旦SOA定義完成,就應(yīng)該定義軟件組件方面的服務(wù)部署。此圖顯示了用于數(shù)據(jù)交換的軟件組件、軟件端口及其之間的連接(軟件程序集連接器)。還應(yīng)顯示每個軟件組件上部署的邏輯功能。下面是軟件架構(gòu)圖示:

車載SOA軟件架構(gòu):服務(wù)設(shè)計
服務(wù)定義
服務(wù)使用SOME/IP總線向客戶端提供一些功能。所提供的功能既可以作為請求消息公開,也可以作為發(fā)送消息公開。
服務(wù)集群劃分
服務(wù)是基于子系統(tǒng)重新劃分群集的。
服務(wù)描述模板
服務(wù)描述必須包括以下信息:
服務(wù)描述:服務(wù)目的的簡單描述。
消息類型:方法或事件。
訊息名稱:訊息名稱。消息描述:消息用途的簡短描述。
消息輸入?yún)?shù):此規(guī)范類型使用的輸入?yún)?shù)的完整列表。
返回參數(shù):此規(guī)范類型使用的返回參數(shù)的完整列表。
此外,必須描述枚舉和自定義類型。
AUTOSAR-AP平臺SOA相關(guān)技術(shù)規(guī)范概述
AUTOSAR-AP平臺采用SOA方法論,主要涉及一種自適應(yīng)軟件產(chǎn)品的開發(fā),是一套包括軟件分析、設(shè)計、開發(fā)、部署在內(nèi)的復(fù)雜工作流程。主要包括兩個方面:工作流定義與成果物定義(如圖2-2)。具體描述如下:
流程定義
AP平臺的方法論作為CP平臺的擴展,其引入了新的概念,AP平臺軟件的實例是在進程的上下文中執(zhí)行。AP平臺引入了“機器”(Machine)的概念,“機器”是虛擬化的ECU,一個可以部署軟件的實體。它可以是真實存在的處理器,也可以是一個虛擬機,AP軟件則運行在某一特定的“機器”上。

(1)開發(fā)服務(wù)接口(Service Interface)AP平臺是一個面向服務(wù)的軟件架構(gòu)(SOA),基于AP平臺的軟件開發(fā),首先需要進行服務(wù)接口的設(shè)計。服務(wù)接口可以由事件(Events)、方法(Methods)和字段(Fields)組成,是生成軟件組件頭文件的基礎(chǔ)。
(2)開發(fā)通信結(jié)構(gòu)(Communication Structure)OEM在設(shè)計階段需要指定預(yù)期“機器”(Machine)的通信結(jié)構(gòu)以及相應(yīng)的配置參數(shù),包括機器的所有網(wǎng)絡(luò)端點和服務(wù)發(fā)現(xiàn)地址端口等。這一步將產(chǎn)生一個可交付的“機器設(shè)計”(Machine Design),一個特定的“機器”模型將引用一個特定的“機器設(shè)計“ 模型。
(3)開發(fā)自適應(yīng)應(yīng)用軟件(Adaptive Application Software)自適應(yīng)應(yīng)用軟件開發(fā)從軟件組件(SW component)的設(shè)計開始,軟件組件是通過其端口(Port)定義的,每個端口實現(xiàn)一個服務(wù)接口?;诜?wù)接口描述,生成包含實現(xiàn)軟件組件的頭文件。開發(fā)人員在此基礎(chǔ)上實現(xiàn)軟件組件的核心功能。
(4)開發(fā)自適應(yīng)平臺軟件(Adaptive Platform Software)與應(yīng)用級軟件類似,平臺級軟件可以由基于標(biāo)準(zhǔn)化服務(wù)接口的軟件組件組成,也可以直接實現(xiàn)而不需要軟件組件模型。
(5)定義和配置機器包括了功能組狀態(tài)和每個狀態(tài)超時的定義,進程到特定機器的映射,以及平臺服務(wù)(例如NM、DoIP) 和基礎(chǔ)模塊(例如日志)配置等。此過程會產(chǎn)生一個獨立于服務(wù)實例或應(yīng)用程序的機器清單(Machine Manifest)。
(6)集成軟件軟件的實現(xiàn)和編譯完成后,需要集成到一個可執(zhí)行文件CExecutable)中。通過進程來定義特定機器上可執(zhí)行文件的實例化,每一個進程會產(chǎn)生一個執(zhí)行清單CExecution Manifest),其中包括了進程及其啟動配置。
(7)定義和配置服務(wù)實例(Service Instance)首先對服務(wù)接口進行部署,然后定義服務(wù)接口的實例,并決定是否提供或使用該服務(wù)實例。其次要建立服務(wù)實例到機器的映射,以及服務(wù)實例到端口的映射。此過程會產(chǎn)生進程所需的所有服務(wù)實例清單(Service Instance Manifest)。
(8)生成軟件包(Software Package)將可執(zhí)行文件及所需清單整合為軟件包上傳到機器上,而無需重新刷寫。OEM可以將軟件包存儲在后端服務(wù)器中進行統(tǒng)一管理。
成果物定義
由于AUTOSAR的工作流包含了整個汽車軟件開發(fā)流程,涉及多個開發(fā)角色,因此需要各個開發(fā)角色之間有信息交互,為了保證信息不出現(xiàn)二義性,需要對各個環(huán)節(jié)的工作成果物規(guī)則進行定義。同時為了信息的保存、傳輸、交互的需求,需要定義這些成果物的載體,ARXML就是定義了不同流程成果物的載體,使用不同的標(biāo)簽來表示不同的信息及流程,這些標(biāo)簽的定義就是AUTOSAR的數(shù)據(jù)元模型(如下圖)。

MO:?使用Ml級規(guī)則生成的可運行軟件實體,例如車門控制的可自行軟件組件Ml:?使用M2級規(guī)則定義軟件組件,例如車門控制的軟件組件,軟件組件的表現(xiàn)形式可以是ARXML,C/C++語言或各類文檔。一般情況下會使用工具鏈以ARXML的形式定義軟件組件的框架,然后導(dǎo)入下游工具鏈生成目標(biāo)語言。或直接生成目標(biāo)語言框架,然后手寫代碼的形式完成整體的軟件組件;M2:?使用M3級規(guī)則定義使用AUTOSAR開發(fā)的元素、語法及規(guī)則,例如軟件組件,port口,機器,清單等。該級別的元素與具體的功能無關(guān),類似于各類開發(fā)語言的語法;M3:?用于定義M2的元模型。
【免責(zé)聲明】本文來自汽車ECU開發(fā),版權(quán)歸原作者所有,僅用于技術(shù)分享與交流,若有涉及版權(quán)等請告知,將及時修訂刪除,謝謝大家的關(guān)注!

近期公開課程
7月24-26日? ??線上直播? ??動力蓄電池回收拆解處置專項技術(shù)
8月21-22日? ? 上海? ??增程器核心技術(shù)開發(fā)及整車匹配高級技術(shù)
新上線云課程
1、增程控制需求及控制策略(一、二)
2、混動系統(tǒng)動力總成匹配及動力性經(jīng)濟性仿真計算
3、控制系統(tǒng)開發(fā)及i-MMD混動架構(gòu)
4、動力電池模組成組技術(shù)(1-5)
視頻課程可登錄官網(wǎng)www.auttra.com或點擊下方“閱讀原文”進入公眾號學(xué)習(xí)。


公開課
智能電動汽車開發(fā)體系與項目管理
軟件定義汽車關(guān)鍵技術(shù)
整車高壓系統(tǒng)架構(gòu)設(shè)計及安全關(guān)鍵技術(shù)
智能汽車HMI創(chuàng)新設(shè)計方法
ISO26262功能安全軟硬件設(shè)計及及測試
智能駕駛系統(tǒng)架構(gòu)及測試與評價技術(shù)
基于MATLAB環(huán)境搭建滿足AUTOSAR標(biāo)準(zhǔn)的模型
車載以太網(wǎng)的開發(fā)與設(shè)計
新能源汽車電驅(qū)動系統(tǒng)與驅(qū)動電機設(shè)計開發(fā)
整車熱管理開發(fā)設(shè)計
云課堂
動力電池?zé)峁芾碓O(shè)計23講(第1課)
動力電池?zé)峁芾矸抡娣治?0講(第1課)
基于SCDM沖壓冷板簡化
動力系統(tǒng)構(gòu)型及駕駛功能控制
混合動力電驅(qū)動系統(tǒng)控制?
車載以太網(wǎng)協(xié)議架構(gòu)設(shè)計(1-5)
如何在MATLAB平臺上搭建滿足AUTOSAR標(biāo)準(zhǔn)的模型(1-5)
車載充電機開發(fā)設(shè)計(1-3)
48V整體設(shè)計過程(1-3)
整車EMC測試(上、下)
CNA遠程刷新與診斷(1-6)
混動與電動車驅(qū)動設(shè)計(上)(下)
插電式混動(PHEV)系統(tǒng)架構(gòu)
純電動驅(qū)動系統(tǒng)架構(gòu)