色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

將舊應用遷移到 SOA 面臨的挑戰

jf_EksNQtU6 ? 來源:車端 ? 2023-12-18 10:26 ? 次閱讀

軟件定義汽車 (SDV) 的特點是 AI、自主、連接和電氣化。最近,汽車行業已開始采用“基于服務”的方法來設計 SDV 的現代應用。這種稱為面向服務的架構 (SOA) 的方法為開發軟件應用提供了一種新范式,其特點是高重用性、易于更新以及與硬件的松散耦合。SOA 的構建原則是一個應用由一組服務組成,這些服務可以被動態地發現、發布、訂閱和在運行時重新配置。SOA 的概念已被廣泛納入行業標準,包括 AUTomotive Open System ARchitecture (AUTOSAR)。

在 SOA 框架中,服務具有自包含、模塊化、松散耦合等特征,這使得創建本質上非一體式的復雜分布式應用成為可能?;?SOA 的應用可以使用自上而下或自下而上的方法來開發。在標準 SOA 軟件堆棧中,應用軟件由服務、平臺服務和中間件組成。它們都運行在高性能硬件或虛擬機上。

將舊應用遷移到 SOA 面臨的挑戰

由于舊應用的若干特性,將其遷移到 SOA 可能頗具挑戰性。這些特性包括:

一體式設計:舊應用通常采用一體式設計(圖 1),組件的耦合和互連均很緊密。這使得很難將其分解成若干單獨的服務,因為功能是相互交錯的,而不是模塊化的。

d6ced2ec-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 1. 組件緊密耦合的一體式設計

執行順序:舊應用的組件通常有預定義的執行順序。這種順序執行方式使得應用難以轉換為可動態發現和在運行時重新配置的獨立服務。

基于信號和基于時間的通信:舊應用通常依賴組件之間基于信號或基于時間的通信。在 SOA 中,通信通?;诜?a target="_blank">接口和交換消息。將舊應用的通信機制調整到面向服務的方法需要仔細考慮各個事項,甚至可能需要重新設計通信協議。

克服這些挑戰通常需要全面分析舊應用的架構,并仔細確定組件之間的服務邊界和依存關系。這可能需要將應用重構為更加模塊化和松散耦合的若干單元,進而將這些單元封裝為 SOA 框架中的各個服務。

將舊應用組合轉換為服務是一項復雜的任務。例如,以前設計的一體式應用組合(如高速公路車道跟蹤應用)可以變換為單個服務,也可以分解為多個服務,如相機服務、視覺服務、雷達和車道導航服務。

系統專業知識和基于模型的設計有助于把一體式應用設計分解為若干服務函數,從而將各個邏輯組件進行封裝和抽象分離。它可以助力信號到服務接口的遷移并確定正確的執行順序。在本文中,我們將介紹一個基于模型的設計工作流。此工作流可對新服務進行建模,亦可將您的傳統應用組合轉換為基于軟件定義汽車的 AUTOSAR Adaptive 概念的服務。

將傳統應用軟件組合分解成服務

將傳統應用軟件組合分解成 SOA 應用的服務涉及將一體式架構分解成更小、更模塊化的組件(圖 2)。這對 SDV 來說意味著更大的靈活性、可擴展性和自適應性。

d6e7a984-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 2. 將傳統應用軟件組合分解成服務的步驟

將傳統應用軟件組合分解為 SOA 應用的服務涉及四個步驟。

識別和分析服務:識別組成 SOA 的服務、組件、功能、執行順序和依存關系。對于工程師來說,這是最困難的部分。完成之后,他們必須分析服務,以將傳統的一體式應用分解成更小的組件(圖 3)。

d6f1d490-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 3. 將軟件組件分解為服務

定義服務和接口:在識別服務后,必須定義它們之間的接口。這涉及指定用于服務間通信的協議和數據格式,以及定義指定服務間交互的條款和條件的服務合約。

定義服務合約:此步驟指定服務之間交互的條款和條件。AUTOSAR 架構版本 22-11 中引入了這些概念。該架構指定服務的版本控制,支持在不破壞現有客戶端兼容性的情況下發布新版本的服務。

實現和部署服務:實現服務并將其部署為獨立應用,具有自己的工件,包括接口描述。

使用基于模型的設計遷移到服務

基于模型的設計已用于開發非 AUTOSAR 框架和 AUTOSAR Classic 框架的應用。它還可用于為 AUTOSAR Adaptive 和通用 SOA 框架開發基于 SOA 的應用。對于 SDV 應用,業界通常利用通用 SOA 或基于 AUTOSAR Adaptive 平臺的 SOA。基于模型的設計的優勢在于可以提供統一的開發平臺,有效地處理所有類型平臺(包括 SOA、AUTOSAR Classic 和 AUTOSAR Adaptive)的整個開發過程,能夠確保全面的一致性和效率。

使用基于模型的設計將一體式應用組件分解為服務涉及以下步驟:

識別和分析服務:了解各種組件、其功能、執行順序以及它們之間的依存關系。一個一體式應用的所有組件均部署為一個可執行文件進行部署(圖 4)。然而,當分解成服務時,每個單獨的服務均獨立部署。

d7066d9c-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 4. 所有 Simulink 模型作為一個可執行文件進行部署

例如,圖 4 中有一個在 Simulink 中開發的高速公路車道跟隨應用,它作為一個一體式應用組合進行部署。使用 Simulink 將這樣的一體式組件分解成服務(圖 5)需要依據單一職責原則和依賴倒置原則。根據這些原則,高速公路車道跟隨模型可分解為多項服務,如雷達、視覺和車道。這些服務具有良好定義的職責和松散耦合的依存關系,支持隔離對服務的更改,并且最小化更改對其他服務的影響。

d714bb04-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 5. 使用基于模型的設計將一體式舊應用分解為服務

一體式應用分解成若干基于 SOA 的服務,并用客戶端-服務器端口將它們連接起來

定義服務和接口:使用接口定義的服務是服務邊界的一部分。服務邊界同樣定義了服務與其他服務交互的通信通道。服務邊界還封裝功能,以實現重用、可維護性、版本控制、可見性、編排和其他好處。使用 System Composer,您可以配置相關服務組件的端口以實現數據一致性,并通過原型來表示這些服務之間的交互方式。這提供了服務之間依存關系和交互的可視化表示(圖 6)。

d72b5bca-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 6. 在 Simulink 中配置服務組件的服務接口和端口

定義服務合約:我們建議為服務建立清晰的邊界,定義其輸入、輸出和行為。這讓服務可以獨立地開發、測試和部署,而不需要與架構的其他部分緊密耦合。通過定義服務合約,您可以了解服務的功能和限制,并且可以更輕松地與它們集成。此外,服務合約可以在不破壞與現有客戶端的兼容性的情況下發布新版本的服務。

實現和部署:使用基于模型的設計中的客戶端-服務器接口,您可以創建 SOA 軟件架構模型。圖 8 展示了在 Simulink 中作為服務實現的 LaneGuidanceApp、DetectionApp、雷達和視覺算法。

d743e500-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 8. Simulink 中 SOA 服務的算法實現

此外,您可以使用 Embedded Coder 為通用 SOA 應用生成 C++ 代碼。

為 AUTOSAR Adaptive 應用配置服務

您可以使用 Simulink 建模結構為 AUTOSAR Adaptive 無縫配置這些服務。如圖 9 所示,我們使用 System Composer 中直觀的 AUTOSAR 編輯器,成功地將所有服務作為 AUTOSAR Adaptive 服務進行了集成。隨后,我們為每個端口和接口建立了必要的映射,確保它們與對應的 AUTOSAR Adaptive 屬性保持一致。

d760672a-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 9. 設計、開發 AUTOSAR Adaptive 應用的服務并為其生成 C++ 代碼

以雷達服務為例,它鏈接到一個 Simulink 模型。該模型在根級使用 Simulink Function 模塊來創建Adaptive methods (3:50)服務接口。此處,AUTOSAR 服務接口的方法定義了一個軟件組件(建模為提供接口的服務器)和另一個軟件組件(建模為需要接口的客戶端)之間的交互。

在 Simulink 中,客戶端-服務器通信可以用同步或異步調用行為進行建模。同步客戶端模型導致客戶端執行阻塞,也就是說客戶端會向服務器發送請求并等待響應。異步客戶端模型不會導致執行阻塞,也就是說客戶端會發送請求、在發送請求后繼續當前執行并在收到服務器響應后進行處理。

雷達服務是一個使用客戶端-服務器通信的服務器。在圖 9 中,代碼映射 UI 顯示了 Simulink Function 模塊和函數元素端口的映射 - radarCtrl.Adjust 和 radarCtrl.Calibrate 及其各自的 Adaptive 端口。

此外,您還可以在 Methods 服務接口的 AUTOSAR 字典中查看和編輯 AUTOSAR 屬性(圖 10)。

d76d8e96-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 10. 用于查看/編輯屬性的 AUTOSAR 字典

LaneGuidanceApp 服務作為客戶端運行,并通過異步調用利用客戶端-服務器通信(圖 11)。此示例中的客戶端使用異步通信,并受益于非阻塞執行,能夠在向服務器發送請求后繼續執行。在 Simulink 模型中,它使用帶有 Message Triggered Subsystem 模塊的 Function-Call Subsystem 模塊來異步執行函數調用。代碼映射 UI 顯示 Simulink 函數調用方與對應 AUTOSAR Adaptive 端口。

d779ec9a-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 11. 映射到 LaneGuidanceApp 服務的 AUTOSAR 屬性的 Simulink 模型

同樣,所有其他 SOA 服務都是根據 Simulink 中的 AUTOSAR Adaptive 概念進行配置的。

經過驗證和仿真后,每個 AUTOSAR Adaptive 服務都可以作為獨立應用程序進行部署,并具有自己的工件,包括 C++ 代碼和 AUTOSAR 接口描述,其中包含機器、執行和 ServiceInstanceManifest 文件。最后,使用 Embedded Coder 生成 AUTOSAR Adaptive C++ 代碼以及對應的軟件描述和清單文件,以便進一步集成到工作流中(圖 12)。

d7891d46-9bfa-11ee-8b88-92fbcf53809c.jpg

圖 12. AUTOSAR Adaptive 應用程序的 C++ 代碼接口文件生成

結論和將來的工作

基于模型的設計為系統開發提供了一種結構化方法,支持創建表示應用架構、組件和交互的模型。在本文中,我們通過高速公路車道跟隨參考示例說明了如何使用基于模型的設計將傳統一體式應用分解為服務,然后將它們配置為 AUTOSAR Adaptive 應用程序。這些模塊化服務可作為一個開端,使工程師能夠創建、仿真和生成 C++ 代碼以及清單文件,以便進一步集成到工作流中。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9237

    瀏覽量

    85665
  • AUTOSAR
    +關注

    關注

    10

    文章

    363

    瀏覽量

    21625
  • SOA
    SOA
    +關注

    關注

    1

    文章

    292

    瀏覽量

    27518
  • 客戶端
    +關注

    關注

    1

    文章

    290

    瀏覽量

    16713
  • 軟件定義
    +關注

    關注

    0

    文章

    79

    瀏覽量

    13699

原文標題:傳統應用如何遷移到SOA框架

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CCSv3.3 遷移到 CCSv4的方法

    條件下,雖然 C2000 示例不使用DSP/BIOS,但由于 .PJT 文件中包含一個對“DspBiosBuilder”的空引用,遷移向導選擇默認的 DSP/BIOS工具版本。單擊“Next(下一步
    發表于 09-03 16:08

    如何Spartan 6遷移到Artix-7?

    我們有一個為XC6SLX25開發的設計,我們希望轉移到Artix-7以節省電力。我們可以通過將設計遷移到Artix-7來實際期望節省電力嗎?
    發表于 05-01 12:44

    如何EDK planAhead項目遷移到vivado

    大家好,我正在EDK planAhead項目遷移到vivado。在遷移我的一個pcoreblock時,我收到了該錯誤,并且遷移根本沒有發生。“錯誤:[filemgmt 20-730]
    發表于 05-05 16:59

    如何CCSv3.3遷移到CCSv4?

    如何CCSv3.3遷移到CCSv4
    發表于 02-25 07:15

    如何CubeMX項目從一系列MCU遷移到新系列的MCU?

    如何 CubeMX 項目從一系列 MCU 遷移到新系列的 MCU?
    發表于 01-16 07:02

    codeaurora遷移到不同平臺后,yocto build (imx-5.15.71-2.2.0.xml) 失敗了怎么解決?

    codeaurora 遷移到不同平臺后,yocto build (imx-5.15.71-2.2.0.xml) 失敗
    發表于 04-21 06:58

    codeaurora遷移到github后yocto構建失敗了怎么解決?

    codeaurora 遷移到 github 后 yocto 構建失敗
    發表于 04-21 08:12

    如何Mifare Classic系統遷移到Mifare Plus或Mifare Desfire?

    Desfire EVx。 我們無法一次更改所有基礎架構,因為它確實很大(超過 2000 個讀者)。我們希望周邊閱讀器遷移到安全技術,并在過渡期間閱讀器留在室內。 我聽說過具有雙
    發表于 05-17 07:42

    如何使用Neon intrinsic的矢量處理代碼遷移到氦intrinsic

    本指南旨在幫助任何將使用霓虹燈內部函數的現有矢量處理代碼遷移到氦內部函數的人。我們研究不同復雜度的霓虹燈代碼示例,并研究如何將該霓虹燈代碼遷移到氦。通過研究這些示例,您將了解一些通用的遷移
    發表于 08-02 07:39

    從電源架構遷移到ARM的應用說明

    本文檔的目的是強調那些參與軟件應用程序從Power架構遷移到ARM平臺的人員感興趣的領域。 本文并不試圖一種體系結構提升到另一種體系結構之上,只是為了清楚地解釋現有軟件應用程序從
    發表于 08-22 06:09

    iPhone新增遷移功能

    但是并不能將設備內的數據遷移到新的設備,仍需要依靠iTunes或者iCloud來完成數據遷移
    發表于 07-27 11:06 ?2787次閱讀

    組織如何有效地業務遷移到云平臺

    調研機構Gartner公司指出,如果不采取正確的策略,組織遷移到云平臺將會導致成本增加、安全漏洞以及對云遷移結果的失望。
    的頭像 發表于 01-03 14:32 ?2082次閱讀

    如何Hadoop遷移到云平臺中?

    希望實現數據基礎設施的現代化并將Hadoop遷移到云平臺中嗎?以下是組織在數據遷移之前需要問的五個問題:
    發表于 05-05 16:59 ?862次閱讀

    企業業務遷移到云平臺時要面臨哪五個安全挑戰

    的綜合云計算平臺。 云計算有規模大、虛擬化、可靠性高、通用性強、高可擴展性和廉價等優點。 那么企業業務遷移到云平臺時要面臨哪五個安全挑戰呢? 1.思維方式的轉變 2.沒有提前確定安全
    的頭像 發表于 01-30 17:03 ?1299次閱讀

    傳統汽車應用遷移到面向軟件定義汽車的SOA

    軟件定義汽車 (SDV) 的特點是 AI、自主、連接和電氣化。最近,汽車行業已開始采用“基于服務”的方法來設計 SDV 的現代應用。這種稱為面向服務的架構 (SOA) 的方法為開發軟件應用提供了一種
    的頭像 發表于 12-07 14:48 ?502次閱讀
    <b class='flag-5'>將</b>傳統汽車應用<b class='flag-5'>遷移到</b>面向軟件定義汽車的<b class='flag-5'>SOA</b>
    主站蜘蛛池模板: 中文字幕在线视频在线看| 国产精品亚洲第一区二区三区| 国语大学生自产拍在线观看| 亚洲精品一二三区-久久| 久见久热 这里只有精品| 607080老太太AW| 日本丝袜护士| 国外成人电台| 99久久免费国产精品特黄| 色狠狠xx| 久久免费精彩视频| 波多久久亚洲精品AV无码| 亚洲黄色片免费看| 欧美极品尿交| 国产无遮挡又黄又爽在线视频| 中文字幕一区二区三区在线不卡| 日本一区精品久久久久影院 | 亚洲爆乳少妇精品无码专区| 久久综合中文字幕佐佐木希| 国产AV天堂一区二区三区| 伊人久久精品午夜| 日韩娇小性hd| 辣文肉高h粗暴| 国产女人毛片| 扒开老师粉嫩的泬10P| 夜夜艹日日干| 偷拍久久国产视频免费| 免费女人光着全身网站| 国产香蕉视频在线观看| xvideos中文版在线视频| 一级毛片免费下载| 乡村教师电影版| 秋霞电影在线观看午夜伦| 久久久乱码精品亚洲日韩| 国产乱码卡二卡三卡4W| z0000性欧美| 在线亚洲免费| 亚洲乱码一区二区三区香蕉| 色琪琪丁香婷婷综合久久| 男女又黄又刺激B片免费网站 | 国产精品久久人妻互换毛片|