日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

汽車行業(yè)SOA架構(gòu)對(duì)服務(wù)的定義

2022-01-02 23:58:00·  來(lái)源:車載SOA開(kāi)發(fā)  
 
寫(xiě)在最前面:在軟件定義汽車的浪潮中,中國(guó)的主機(jī)廠面對(duì)的第一道考題,就是如何建設(shè)自主獨(dú)立的軟件平臺(tái)。進(jìn)而達(dá)到軟硬件分離,軟件定義汽車的目的。作為傳統(tǒng)的汽
寫(xiě)在最前面:
在軟件定義汽車的浪潮中,中國(guó)的主機(jī)廠面對(duì)的第一道考題,就是如何建設(shè)自主獨(dú)立的軟件平臺(tái)。進(jìn)而達(dá)到軟硬件分離,軟件定義汽車的目的。作為傳統(tǒng)的汽車人如何張開(kāi)環(huán)抱擁抱互聯(lián)網(wǎng)的沖擊,學(xué)習(xí)精華盡快完成轉(zhuǎn)型是不容易的
作為一個(gè)傳統(tǒng)汽車人,疊加消費(fèi)電子產(chǎn)品經(jīng)理,不只是工作,也是愛(ài)好和一份思考,將所思所想所學(xué)所知整理成文章。才疏學(xué)淺,請(qǐng)各路大咖指正,參與討論。
01.SOA架構(gòu)相關(guān)
設(shè)計(jì)與開(kāi)發(fā)SOA的流程,從描述到代碼。
從頭說(shuō)起吧,整個(gè)從系統(tǒng)到代碼的大致流程應(yīng)該是這樣的:
  1. 首先需要整理出整車功能配置列表,這個(gè)步驟需要輸出整車級(jí)別的邏輯架構(gòu)與功能需求文檔;
  2. 接下來(lái)子系統(tǒng)和功能的網(wǎng)絡(luò)架構(gòu),輸出功能的拓?fù)鋱D和具體布置到那個(gè)硬件中,類似電子電器架構(gòu)的輸出物;
  3. 做系統(tǒng)架構(gòu),在子系統(tǒng)內(nèi)部定義出服務(wù)和公共的接口的設(shè)置;
  4. 系統(tǒng)中的服務(wù)架構(gòu)和服務(wù)的網(wǎng)絡(luò)關(guān)系,輸出配置方案;以上四步都是用系統(tǒng)的視角在推進(jìn)工作,從第四步開(kāi)始進(jìn)入了軟件的內(nèi)容定義,算是進(jìn)入了軟件領(lǐng)域。
  5. HPC內(nèi)的架構(gòu),輸出是將內(nèi)容模塊化,以及寫(xiě)碼的規(guī)則方法;
  6. 最后就是做具體的軟件架構(gòu)生成二進(jìn)制代碼。
后面我會(huì)用具體案例和比較說(shuō)明如何定義一個(gè)服務(wù),這里想先預(yù)先說(shuō)明
  1. 對(duì)于定義服務(wù)或服務(wù)體系結(jié)構(gòu),沒(méi)有通用的標(biāo)準(zhǔn)方法。SOA是一種邏輯推導(dǎo),而不是一種技術(shù)。
  2. 服務(wù)定義基于特定的功能和特性體系結(jié)構(gòu),和需求相關(guān)和硬件相關(guān),因此通常在產(chǎn)品的設(shè)計(jì)和生命周期中不斷變化。
  3. 為了優(yōu)化服務(wù)架構(gòu),通常會(huì)進(jìn)行多次迭代,例如將SW功能切換到服務(wù)(在集群或應(yīng)用程序級(jí)別)。
  4. 服務(wù)架構(gòu)設(shè)計(jì)可以與軟件架構(gòu)工作相比較:抽象級(jí)別和技術(shù)不同,對(duì)工程師的要求也是相似的。
02.關(guān)于Service的顆粒度是邏輯推導(dǎo),沒(méi)有簡(jiǎn)單定義
比較晦澀難懂,舉個(gè)例子吧。
所謂服務(wù)是一個(gè)個(gè)獨(dú)立的,可以反復(fù)利用的,并且易于鏈接的函數(shù),可大可小?;谶@個(gè)定義那么,獨(dú)立性,低耦合性,接口通用性就成為服務(wù)的三個(gè)特性。
如果我們把信號(hào)流看做最小的服務(wù),那么硬件能實(shí)現(xiàn)的最小功能就是最基礎(chǔ)的服務(wù),如何來(lái)定義的顆粒度呢?比如我們把“遠(yuǎn)程召喚”作為一個(gè)要實(shí)現(xiàn)的場(chǎng)景,其中的服務(wù)設(shè)定為“發(fā)動(dòng)”+“行駛到指定位置”+“自動(dòng)泊車”,為什么要把這三項(xiàng)分開(kāi),而不是把“遠(yuǎn)程召喚”定義為一個(gè)服務(wù)?原因很明顯“發(fā)動(dòng)”和“自動(dòng)泊車”是高頻使用的功能,他們非常的獨(dú)立,又有可以重復(fù)使用的部分。
那么如果我們?cè)黾恿恕把E泊車”的功能,服務(wù)設(shè)定為“行駛到指定位置”+“自動(dòng)泊車”,那么也許再結(jié)合“完成鎖定通知”就可以重新我們就會(huì)把“跑步”獨(dú)立成一個(gè)服務(wù)。最終“健身運(yùn)動(dòng)”=“跑步”+“機(jī)跑步”+“俯臥撐”+“洗澡”;“夜跑”=“操場(chǎng)”+“跑步”+“洗澡”。
用這個(gè)比喻就是想說(shuō)明,所謂服務(wù)的定義,沒(méi)有統(tǒng)一的原則方法,是一種邏輯推導(dǎo),需要有很強(qiáng)的邏輯能力,需要對(duì)工程有深刻的理解,需要對(duì)整車功能的關(guān)聯(lián)性有深刻的理解。所以經(jīng)驗(yàn)對(duì)于SOA的設(shè)計(jì)是至關(guān)重要的。如果展開(kāi)說(shuō)去,服務(wù)的排列順序,服務(wù)的選擇組合都和對(duì)車的理解有關(guān),尤其再加深一步到時(shí)序相關(guān),牽涉到強(qiáng)實(shí)時(shí)性的信號(hào)流與服務(wù)流的結(jié)合,就需要對(duì)車的功能有更深一步的了解了。這可能也是很多純粹的互聯(lián)網(wǎng)企業(yè),擁有強(qiáng)大的軟件實(shí)力,確難以很好的完成整車軟件平臺(tái)的原因之一。
03.用一個(gè)具體的feature來(lái)說(shuō)說(shuō)SOA
首先,我們假設(shè)有如下這樣一個(gè)功能需求的描述作為輸入.
Feature Description: Park Buckler
Part_1:定位停車車輛的GPS位置,利用當(dāng)?shù)氐奶鞖庑畔?暫定為雨)控制所有的窗戶(包括天窗),在窗戶沒(méi)有完全關(guān)閉的情況下自動(dòng)關(guān)閉。同時(shí),在關(guān)閉所有窗口之前,用戶應(yīng)該能夠通過(guò)安裝的前攝像頭檢查天氣狀況,以驗(yàn)證是否下雨。
Part_2:車輛停放并上鎖后,如發(fā)現(xiàn)車輛未經(jīng)授權(quán)進(jìn)入,系統(tǒng)應(yīng)通過(guò)智能手機(jī)APP以錄制或直播視頻數(shù)據(jù)或消息的形式通知用戶。
可以看到這里對(duì)功能需求的定義是非常粗略的,遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到完整的詳細(xì)的水平,那作為一個(gè)平臺(tái)級(jí)的功能的開(kāi)發(fā),是如何將一段描述一步步拆解為可以打包成服務(wù)的代碼的呢,我們一步步來(lái)看。
首先,進(jìn)行函數(shù)樹(shù)的分析,類似于思維導(dǎo)圖,弱邏輯強(qiáng)發(fā)散,旨在把所有和功能的相關(guān)項(xiàng)目進(jìn)行羅列。如下圖,對(duì)用戶設(shè)置的檢測(cè),通知用戶,預(yù)設(shè)條件檢測(cè),周圍環(huán)境檢測(cè),內(nèi)部座艙檢測(cè),確認(rèn)車鎖,確認(rèn)車窗,確認(rèn)車的定位,確認(rèn)時(shí)間,確認(rèn)下雨...在這些一級(jí)條件之下,還有更多的二級(jí)條件,三級(jí)條件...最終形成下圖

那么在有了發(fā)散的函數(shù)樹(shù)型圖之后,接下來(lái)基于弱邏輯的圖,對(duì)功能需求形成有邏輯的描述。
Design Requirements (REQ-General):
1.先決條件檢查(即:硬件安裝和健康狀態(tài),電源模式,電池水平)在啟用Park Buckler功能之前.
2.故障的判斷機(jī)制----為了避免故障事件數(shù)據(jù)通過(guò)車輛狀態(tài)的組合發(fā)送給用戶(例如:門的關(guān)閉和鎖,窗的位置,公園,小屋和報(bào)警狀態(tài))作為算法設(shè)計(jì)的一部分。
3.用戶體驗(yàn)-手動(dòng)(或默認(rèn))啟用/禁用的選項(xiàng)和靈敏度的調(diào)整,給定的功能應(yīng)該提供給用戶通過(guò)車內(nèi)娛樂(lè)系統(tǒng)或智能手機(jī)應(yīng)用程序。還包括三個(gè)級(jí)別的靈敏度設(shè)置(低,中,高)。
4.連通性——為了避免網(wǎng)絡(luò)連接不良,系統(tǒng)應(yīng)該能夠在本地錄制視頻數(shù)據(jù),然后在連接恢復(fù)正常時(shí)將數(shù)據(jù)傳輸?shù)皆?用戶。
Design requirements (REQ-Automatic Windows Close if Raining):
5.準(zhǔn)確性:除了REQ-General外,檢測(cè)算法還應(yīng)包含GPS數(shù)據(jù)(確定位置)、導(dǎo)航和光數(shù)據(jù)(確定室外或室內(nèi))、雨傳感器數(shù)據(jù)(利用紅外光數(shù)據(jù)確定雨)和相機(jī)數(shù)據(jù)(利用視頻或圖像數(shù)據(jù)確定雨)。
6.在滿足REQ1, 2, 3, 5設(shè)置的條件后,激活Windows。
Design Requirements (REQ-Unauthorized Access):
7. 準(zhǔn)確性:除了REQ-General之外,檢測(cè)算法還應(yīng)包括接近數(shù)據(jù)(確定入侵者接近車輛的方向和區(qū)域,以初始化預(yù)觸發(fā)階段)、客艙攝像數(shù)據(jù)(確定乘員)或/和客艙體積數(shù)據(jù)(確定乘員)。
8.在滿足REQ1, 2, 3, 7設(shè)置的條件后,激活Windows.
再有邏輯性的功能描述之后,有必要的移步是手繪出完整的這個(gè)功能的邏輯走向,將之前細(xì)化分析出的影響功能的相關(guān)像都包含在內(nèi),并且顯示出輸入純屬出的邏輯關(guān)系。也有的開(kāi)發(fā)者會(huì)運(yùn)用熟悉的工具例如Preevision直接就做了。但我認(rèn)為這一步還是非常有必要的,任何工具都沒(méi)有辦法完整的滿足現(xiàn)在日益增加功能需求,并且存在配置的不完備之處。在計(jì)劃的初期就能對(duì)整套功能有完整的解構(gòu),并且存檔,無(wú)論是對(duì)新來(lái)者的理解幫助,還是對(duì)主機(jī)廠自身知識(shí)體系的建設(shè)都有很大的幫助。如下圖。


接著可以用熟悉的工具加速開(kāi)發(fā),在AOUTOSAR的架構(gòu)下,對(duì)函數(shù)進(jìn)行打包,形成完整的功能函數(shù)。那么也就完成了對(duì)一個(gè)Feature的開(kāi)發(fā),其實(shí)潛移默化中也完成了對(duì)這個(gè)Feature中Service的定義。
在邏輯結(jié)構(gòu)的基礎(chǔ)上,對(duì)一些復(fù)用價(jià)值低的,不能獨(dú)立成型的函數(shù)進(jìn)行打包整合,形成SOA的架構(gòu)設(shè)計(jì)如下圖,并對(duì)接口做好定義就完成。
例如我們要做環(huán)境感知下雨關(guān)窗戶這個(gè)操作,那么如下圖調(diào)用感知環(huán)境和關(guān)窗戶兩個(gè)服務(wù),整個(gè)調(diào)用服務(wù)的流程解構(gòu)如下圖
04.總結(jié)
以上就是一個(gè)簡(jiǎn)單功能的正向SOA開(kāi)發(fā)流程,是對(duì)功能的理解,也是對(duì)邏輯的推導(dǎo)。里面還有很多細(xì)節(jié)值得深挖,在做幾張圖的時(shí)候其中的根本邏輯和幾大項(xiàng)目都是一致的有連貫性的。甚至如果是在沒(méi)有前面的思想逐步推導(dǎo),直接拿到任何一張SOA架構(gòu)圖,都會(huì)覺(jué)得晦澀難懂。更別說(shuō)如果直接拿到的是代碼了。
對(duì)于主機(jī)廠來(lái)說(shuō)曾經(jīng)的FDD,FDS是整車需求的發(fā)起點(diǎn),那么在軟件定義汽車的新時(shí)代里,盡快的做出屬于自己的有自主產(chǎn)權(quán)的從描述到架構(gòu)到代碼的推導(dǎo)過(guò)程,并在此之上進(jìn)行軟件迭代和硬件增加,功能增加等等,才能夠有條不紊,底氣十足的砥礪前行。
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25