1、1 2023 The MathWorks,Inc.軟件定義汽車-面向服務架構的應用遷移MathWorks中國區汽車行業經理周斌2023-06-14 2汽車行業正在采用面向服務的架構(SOA)作為設計軟件定義汽車(SDV)等現代應用的新范式軟件更新需求頻繁可選OTAApplication ServicesHigh Performance Hardware/Virtual MachineMiddlewarePlatform Services更高的抽象:面向服務的架構100110001010010010100110001010010010100110001010010010背景 軟件定義汽車3計算和
2、SOA的集中化High-performance CPU/GPU新的E/E區域架構SW updatesFrequentSelectiveOver-the-airApplication ServicesHigh Performance Hardware/Virtual MachineBasic Software ServicesPlatform Services更高的抽象:面向服務的架構10011000101001001010011000101001001010011000101001001010011000101001001010011000101001001010011000101001001
3、0軟件功能呈指數級增長4基礎車輛平臺基礎車輛平臺控制實時CAN基于模型設計基于模型設計軟件定義汽車軟件定義汽車轉向,制動速度,扭矩智能網聯AIC+基于中間件的基于中間件的SOA如何將傳統的汽車軟件應用遷移到基于如何將傳統的汽車軟件應用遷移到基于 SOA 的服務?的服務?趨勢 主機廠加大SOA自研力度5將傳統汽車應用轉換為 SOA 應用有哪些挑戰?如何將傳統的應用軟件組合分解為SDV的服務?基于模型設計如何幫助將已有應用遷移到 AP服務?內容6將傳統汽車應用轉換為 SOA 應用有哪些挑戰?如何將傳統的應用軟件組合分解為SDV的服務?基于模型設計如何幫助將已有應用遷移到 AP服務?內容7重用經過驗
4、證的已有算法 知識資產 算法庫 作為擴展到高級功能的基線SoftwareReusability為什么需要對已有應用實施遷移8由各種軟件組件組成作為單個可執行文件部署在微控制器上對不斷變化的需求靈活性低Reference:Software Architecture Patterns:Understanding Common Architecture Patterns and When to Use Them by Mark Richards已有應用本質上是單體式的EXE9打破單體打破單體式架構式架構識別和定識別和定義服務義服務確保兼容確保兼容性性管理數據管理數據性能和可性能和可擴展性擴展性文化挑
5、戰文化挑戰AUTOSAR ClassicRTEBasic SoftwareApplication Software.Application ServicesBasic Softwareara:comAUTOSAR Adaptive將傳統汽車應用轉換為SOA應用有哪些挑戰11將傳統汽車應用轉換為 SOA 應用有哪些挑戰?如何將傳統的應用軟件組合分解為SDV的服務?基于模型設計如何幫助將已有應用遷移到 AP服務?內容12識別和分析服務定義服務及接口定義服務契約實施和部署服務 確定需要采用SOA 架構的服務 分析傳統的單體式應用并將其分解為更小的組件 定義與其他服務通信的服務接口 指定協議和數據格式
6、 定義指定服務之間交互條件的服務契約 指定輸入、輸出和行為 實現服務并將其部署為獨立應用程序 生成代碼和相關工件,快速原型驗證工作流程13Single-Responsibility principle(單一職責原則)Open-Close principle(開放閉合原則)Liskov substitution principle(里氏替換原則)Interface segregation principle(接口隔離原則)Dependency inversion principle(依賴倒置原則)-Explanation of Adaptive Platform Software Archite
7、cture R22-11-Agile Software Development:Principles,Patterns,and Practices一個組件只負責功能的一個獨立部分減少接口變更需要,提升可維護性客戶端不應該依賴于用不到的方法將復雜接口按需拆分為簡單接口高層模塊應該依賴于抽象而非低層模塊降低耦合,提升復用避免循環依賴設計原則-SOLID14組件層級接口定義功能函數定義行為建模代碼和架構文件生成仿真架構平臺15將傳統汽車應用轉換為 SOA 應用有哪些挑戰?如何將傳統的應用軟件組合分解為SDV的服務?基于模型設計如何幫助將已有應用遷移到 AP服務?內容16要將單體式應用程序組件分解為服
8、務,我們需要:識別不同的組件、功能和依賴關系 了解組件交互和組件的執行順序Reference-https:/ ApplicationSWC1SWC2SWC4SWC3Service1Service2Service317作為單體的傳統應用識別和分析服務定義服務及接口定義服務契約實施和部署服務識別和分析服務Monolithic Application Executable18 確定可以單獨部署為服務的組件,這些服務封裝了一個功能,并從單體式應用程序模型的其余部分抽象出來 將每個已識別的組件部署成作為服務的可執行文件識別和分析服務定義服務及接口定義服務契約實施和部署服務SOA 應用傳統應用識別和分析服
9、務19車道跟蹤單體應用分解為基于SOA的服務識別和分析服務定義服務及接口定義服務契約實施和部署服務識別和分析服務20包含事件的數據元素和服務提供方提供的操作作為服務的抽象與外部進行交互具有功能性配置服務接口配置服務接口識別和分析服務定義服務及接口定義服務契約實施和部署服務定義服務接口21定義服務的職責、范圍和依賴關系等作為服務接口的補充包括非功能屬性應用版型到服務應用版型到服務識別和分析服務定義服務及接口定義服務契約實施和部署服務定義服務邊界22指定服務的輸入、輸出和行為可以看作為服務原型服務雙方并行的前提識別和分析服務定義服務及接口定義服務契約實施和部署服務定義服務契約23配置中間件(AP)
10、屬性檢查映射關系生成C+代碼識別和分析服務定義服務及接口定義服務契約實施和部署服務實現和部署服務24每個服務都需要部署為一個獨立的應用程序并生成相關工件:代碼-C+-ARA存根接口描述-機器清單-執行清單-服務實例清單識別和分析服務定義服務及接口定義服務契約實施和部署服務實現和部署服務25快速原型部署服務運行控制測量和標定識別和分析服務定義服務及接口定義服務契約實施和部署服務實現和部署服務26總結將傳統汽車應用轉換為 SOA 應用所面臨著諸多挑戰需要結合設計原則和工程經驗開展服務的識別和分析選擇合適的流程、方法和工具平臺實施遷移工作基于模型設計提供了SOA遷移的關鍵能力 服務的定義和建模 自動生成C+代碼 快速原型部署和驗證了解更多了解更多 2022 The MathWorks,Inc.MATLAB and Simulink are registered trademarks of The MathWorks,Inc.See a list of additional trademarks.Other product or brand names may be trademarks or registered trademarks of their respective holders.