01
SOA架構(gòu)技術(shù)概述
1.1 面向服務(wù)計算的目的和價值
面向服務(wù)計算的七大戰(zhàn)略目標(biāo)相互聯(lián)系,具體來說可以分為兩組,即戰(zhàn)略目標(biāo)和戰(zhàn)略價值(優(yōu)勢)。其中提高組織業(yè)務(wù)敏捷性、提高投資回報率和減少研發(fā)成本(或IT負(fù)擔(dān))是其他四個目標(biāo)實(shí)現(xiàn)所帶來的價值和優(yōu)勢。 在將面向服務(wù)持續(xù)應(yīng)用于軟件程序設(shè)計時,一系列戰(zhàn)略目標(biāo)和優(yōu)勢(如圖1所示)共同代表了我們所期望實(shí)現(xiàn)的目標(biāo)狀態(tài)。理解這些目標(biāo)和優(yōu)勢是非常有益的,因?yàn)樗鼈兛梢詾槲覀兲峁┻B續(xù)不斷的總體背景和理由,以維持我們長期實(shí)現(xiàn)面向服務(wù)的投入。
以下簡單說明七大戰(zhàn)略目標(biāo)的內(nèi)涵:
1. 增強(qiáng)本征互操作性:即互操作性指的是數(shù)據(jù)的共享。軟件程序的互操作性越高,其之間的信息交換越容易。
2. 增強(qiáng)聯(lián)合:即服務(wù)的聯(lián)合。軟件資源和應(yīng)用程序聯(lián)合在一起,同時保持其各自的自主性和自治性。
3. 增加供應(yīng)商多元化選擇:即供應(yīng)商多元化能力,指組織必須選擇“最佳品種"的供應(yīng)商產(chǎn)品和技術(shù)創(chuàng)新。
4. 同步提升業(yè)務(wù)與技術(shù)領(lǐng)域:即應(yīng)用程序的設(shè)計和實(shí)現(xiàn)不僅要滿足初始業(yè)務(wù)需求,也應(yīng)滿足未來隨業(yè)務(wù)性質(zhì)和方向變化時的業(yè)務(wù)需求。
5. 提高投資回報率:即衡量自動化解決方案投資回報率(ROI)是決定應(yīng)用程序或系統(tǒng)實(shí)際成本效益的關(guān)鍵因素。
6. 提高組織的業(yè)務(wù)敏捷性:即組織能夠?qū)ψ兓龀龇磻?yīng)的效率,以適應(yīng)行業(yè)變化并超越競爭對手。
7. 減少研發(fā)成本(IT成本):即減少浪費(fèi)和冗余,縮小規(guī)模和運(yùn)營成本,減少與其治理和演進(jìn)相關(guān)開銷等。
1.2 SOA架構(gòu)特征及優(yōu)缺點(diǎn)
SOA是一個組件化模型,它將應(yīng)用程序的不同功能單元(服務(wù))通過這些服務(wù)間良好的接口和契約聯(lián)系起來。其中,服務(wù)(Service)是一個粗顆粒度的、可發(fā)現(xiàn)的軟件實(shí)體,以一個單獨(dú)實(shí)例存在,通過一組松耦合和基于消息的模型與其他應(yīng)用或服務(wù)交互。接口是采用中立的方式進(jìn)行定義的,獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,使得構(gòu)建在這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。
交互的服務(wù)大致由三個實(shí)體組成:服務(wù)請求者、服務(wù)提供者和服務(wù)注冊表。其中實(shí)體間的操作包括:服務(wù)發(fā)布、服務(wù)發(fā)現(xiàn)、服務(wù)綁定和調(diào)用。 面向服務(wù)架構(gòu)是眾多軟件架構(gòu)風(fēng)格中的一種,是微服務(wù)架構(gòu)的一種。因面向服務(wù)架構(gòu)風(fēng)格具有基于標(biāo)準(zhǔn)、松散耦合、共享服務(wù)和粗粒度等優(yōu)勢,表現(xiàn)出易于集成現(xiàn)有系統(tǒng)、具有標(biāo)準(zhǔn)化的架構(gòu)、提升開發(fā)效率、降低開發(fā)維護(hù)復(fù)雜度等特征,更符合智能網(wǎng)聯(lián)化時代車載系統(tǒng)對軟件架構(gòu)的要求,所以被汽車行業(yè)引入和采用。
SOA因組件化和服務(wù)化模型特征,有其自身的優(yōu)缺點(diǎn),具體分析如下(僅針對IT行業(yè)業(yè)務(wù)特征和實(shí)施環(huán)境):
優(yōu)點(diǎn)分析:
靈活性,根據(jù)需求變化,可重新編排服務(wù)或應(yīng)用程序
對IT資產(chǎn)的復(fù)用
使企業(yè)的信息化建設(shè)真正以業(yè)務(wù)或應(yīng)用為核心,業(yè)務(wù)人員根據(jù)需求編排服務(wù),不需要考慮技術(shù)細(xì)節(jié)
缺點(diǎn)分析:
服務(wù)劃分很困難
服務(wù)的編排是否得當(dāng)
如果選擇的接口標(biāo)準(zhǔn)有問題,會帶來系統(tǒng)的額外開銷和不穩(wěn)定性
對IT硬件資產(chǎn)還談不上復(fù)用
主流實(shí)現(xiàn)方式接口很多,很難統(tǒng)一
主流實(shí)現(xiàn)方式只局限于不帶界面的服務(wù)的共享
1.3 SOA國內(nèi)外技術(shù)應(yīng)用現(xiàn)狀
在IT行業(yè),國外于1996年由Gartner第一次提出SOA思想,2005年SOA開始推廣和普及,2007年應(yīng)用廠商希望通過發(fā)布標(biāo)準(zhǔn)來推動SOA的實(shí)施,如SCA和SDO通過OASIS審核,WS-POLICY、W3C成為W3C標(biāo)準(zhǔn)等,如今SOA在國外IT行業(yè)、通訊行業(yè)、政府部門得到廣泛系統(tǒng)性應(yīng)用。其中,歐美實(shí)現(xiàn)SOA架構(gòu)的關(guān)鍵任務(wù)是:對已有系統(tǒng)中的功能進(jìn)行提取和包裝,形成標(biāo)準(zhǔn)化的“服務(wù)”。
在國內(nèi),2006年之前是技術(shù)萌芽;2006-2008年是過熱期;2009年度過了幻滅期;從2010年開始進(jìn)入復(fù)蘇期,現(xiàn)在正處于由復(fù)蘇期邁向成熟期。其中,國內(nèi)近30年的IT建設(shè)多為生產(chǎn)型系統(tǒng),服務(wù)型系統(tǒng)普遍未開始建設(shè),大量"服務(wù)"需要全新標(biāo)準(zhǔn)化構(gòu)造。
在汽車行業(yè),因汽車智能化和網(wǎng)聯(lián)化需求,尤其是自動駕駛系統(tǒng)研發(fā)應(yīng)用的需要,車載系統(tǒng)SOA軟件架構(gòu)技術(shù)受到國內(nèi)外整車企業(yè)的關(guān)注。國外,2010年以寶馬、電裝、大眾等為首的歐、美、日汽車產(chǎn)業(yè)巨頭便開始車載SOA軟件架構(gòu)的研究工作,形成一定理論基礎(chǔ)和實(shí)踐成果,并對傳統(tǒng)汽車電子系統(tǒng)進(jìn)行革命性創(chuàng)新。
當(dāng)前,大眾、奧迪、寶馬、福特等汽車巨頭自成聯(lián)盟,進(jìn)行SOA軟件架構(gòu)技術(shù)和規(guī)范的應(yīng)用研究,預(yù)計2023前后將開始應(yīng)用于量產(chǎn)車型。國內(nèi),整車企業(yè)有加入和使用的意愿,但考慮軟件架構(gòu)規(guī)范核心實(shí)施技術(shù)不給予開放,后期產(chǎn)品技術(shù)和產(chǎn)品生態(tài)會高度依賴國外技術(shù)平臺和標(biāo)準(zhǔn)規(guī)范,將會嚴(yán)重制約車企自身創(chuàng)新發(fā)展。
其中, 一汽、東風(fēng)和上汽等部分頭部OEM己意識到SOA軟件架構(gòu)的重要性,在尋找自主解決方案。同時,軟件架構(gòu)技術(shù)屬于行業(yè)共性技術(shù),屬于開發(fā)式共性平臺,因國內(nèi)缺少行業(yè)協(xié)同和協(xié)作機(jī)制,在共性平臺和生態(tài)建設(shè)方面發(fā)展緩慢。
02
SOA技術(shù)規(guī)范現(xiàn)狀
2.1 Web服務(wù)SOA相關(guān)技術(shù)規(guī)范概述
Web服務(wù)作為SOA架構(gòu)技術(shù)發(fā)展的典型和成熟代表,其促進(jìn)了SOA架構(gòu)技術(shù)的發(fā)展和推廣,其標(biāo)準(zhǔn)體系的開發(fā)方式和開發(fā)內(nèi)容對于車載SOA軟件架構(gòu)技術(shù)規(guī)范開發(fā)具有深入的指導(dǎo)意義。
2. 1. 1技術(shù)標(biāo)準(zhǔn)組織
SOA架構(gòu)的WEB服務(wù)相關(guān)的標(biāo)準(zhǔn)化組織主要有三家,分別為萬維網(wǎng)聯(lián)盟(World Wide Web Consortium, W3C)、結(jié)構(gòu)信息標(biāo)準(zhǔn)化促進(jìn)組織(Organisationfor the Advancement of Structured Information Standards, OASIS)和Web服務(wù)互操作組織(Web Service Interoperability Organisation,WS-I) W3C是一個專注于開發(fā)基于Web的行業(yè)技術(shù)標(biāo)準(zhǔn)的國際聯(lián)盟。它的使命是通過開發(fā)協(xié)議和指導(dǎo)方針,確保萬維網(wǎng)作為一種多功能媒體的長期增長,使萬維網(wǎng)充分發(fā)揮其潛力。1994年Tim Berners-Lee創(chuàng)建了W3C,因?yàn)榭?a target="_blank">網(wǎng)絡(luò)分割的風(fēng)險變得越來越明顯(特別是在多個版本的HTML同時工作時)。從那時起,W3C就開始優(yōu)先開發(fā)核心的Web技術(shù)(HTML、XML等),以及相關(guān)的樣式化語言(CSS 、XSLT等)。如今,Web服務(wù)嚴(yán)重依賴于W3C開發(fā)的技術(shù),W3C委員會制作Web服務(wù)技術(shù)
主要由以下幾部分:
? XML 架構(gòu)1.0;
? WSDL 1.1,2.0;
? SOAP 1.1, 1.2;
? WS-Addressing 1.0;
? WS-Policy 1.5;
OASIS
OASIS成立于1993年,是一家非營利性的國際協(xié)會,旨在開發(fā)、整合和推廠包括Web服務(wù)、安全、商業(yè)事務(wù)、供應(yīng)鏈、電子政務(wù)、互操作性等所需的標(biāo)準(zhǔn)。OASIS對Web服務(wù)的貢獻(xiàn)包括對UDDI(Universal Description Discovery and Integration)規(guī)范的標(biāo)準(zhǔn)化,以及對WS-BPEL規(guī)范的標(biāo)準(zhǔn)化。此外OASIS也推出了諸如面向服務(wù)的架構(gòu)參考模型和面向服務(wù)架構(gòu)的相關(guān)規(guī)范等。OASIS和W3C不同,他的主要興趣在于制定附加規(guī)范以及支持不同的行業(yè),與應(yīng)用領(lǐng)域的關(guān)系更為密切。
WS-I
WS-I成立于2002年,其目的不是建立新的標(biāo)準(zhǔn),而是旨在推動Web服務(wù)的互操作性。具體目包括三個方面:
為客戶的網(wǎng)絡(luò)服務(wù)應(yīng)用提供實(shí)施指導(dǎo)和培訓(xùn);
促進(jìn)跨平臺、跨應(yīng)用軟件和跨程序語言的網(wǎng)絡(luò)服務(wù)的一致和兼容,并保證可靠兼容;
致力于使網(wǎng)絡(luò)服務(wù)協(xié)同成為本行業(yè)共同遵守的準(zhǔn)則,以幫助客戶在網(wǎng)絡(luò)服務(wù)技術(shù)的選擇上輕松決策,提高網(wǎng)絡(luò)服務(wù)的應(yīng)用范圍和水平,并確保網(wǎng)絡(luò)服務(wù)技術(shù)的持續(xù)發(fā)展。
2. 1. 2技術(shù)標(biāo)準(zhǔn)的形成 標(biāo)準(zhǔn)如何被開發(fā)出來?
為了充分利用Web服務(wù)技術(shù),最大潛力發(fā)掘其技術(shù)價值,理解將技術(shù)規(guī)范開發(fā)為已批準(zhǔn)的行業(yè)標(biāo)準(zhǔn)的過程是很重要的。 這一切都始于新技術(shù)的原創(chuàng)想法,當(dāng)社區(qū)對這個想法有足夠的興趣時,W3C就會舉行一個開放的研討會,相關(guān)方聚在一起討論技術(shù)解決的范圍和技術(shù)提出的解決方案。
就Web服務(wù)而言,供應(yīng)商組織通常倡議他們獨(dú)立或合作開發(fā)的技術(shù),雖然這些技術(shù)常常用來解決那些對供應(yīng)商來說很重要的問題,但人們希望讓它們成為非專有的Web服務(wù)框架的一部分。如果W3C參與者之間有足夠的協(xié)議,那么這些所提出的技術(shù)將成為創(chuàng)建行業(yè)標(biāo)準(zhǔn)的基礎(chǔ)。
標(biāo)準(zhǔn)開發(fā)流程是怎樣的?
W3C技術(shù)規(guī)范聲明周期的第一步是成立一個負(fù)責(zé)定義目標(biāo)標(biāo)準(zhǔn)的工作組。該組將由W3C成員組成,他們通常由供應(yīng)商代表和從業(yè)者組成。W3C還提供了支持的技術(shù)人員,幫助確保該技術(shù)將完全補(bǔ)充其他已經(jīng)開發(fā)的行業(yè)標(biāo)準(zhǔn)。然后,該組通過以下階段開發(fā)一個規(guī)范:
l.工作草案——這是一個定期發(fā)布的規(guī)范的快照,以讓社區(qū)了解工作組所采取的方向,并收集早期的意見。
2.最后一次呼叫工作草案——當(dāng)工作組認(rèn)為該規(guī)范滿足其所有原始要求時,它將發(fā)布此文件并正式請求社區(qū)的意見。這一步驟通常至少持續(xù)三周。
3.候選推薦——納入前一階段的反饋后,工作組要求實(shí)施規(guī)范,以確保規(guī)范實(shí)際上是可實(shí)現(xiàn)和互操作的。
4.建議——證明規(guī)范巳以互操作方式成功實(shí)施,已提交W3C咨詢委員會批準(zhǔn),這一步驟至少會持續(xù)四周。
5.建議——規(guī)范為W3C建議,通常稱為“行業(yè)標(biāo)準(zhǔn)”。整個過程的持續(xù)時間因所開發(fā)規(guī)范的范圍和復(fù)雜程度而不同。從一個工作組成立的那一刻起,它可能需要18個月到幾年的時間來提交W3C建議。在這些階段,公眾可以通過提交工作組有義務(wù)回應(yīng)的反饋,對正在制定的技術(shù)規(guī)范發(fā)表評論。工作組成員之間的所有通信和工作組的所有交付成果都發(fā)布為公開訪問。 W3C的一個特殊性是,它的過程是基于共識的,這意味著整個工作組在做出決定之前需要就解決方案達(dá)成一致。投票只有在有嚴(yán)重分歧的情況下才會進(jìn)行投票,而通過投票作出的任何決定通常會在剩下的過程中進(jìn)行仔細(xì)審查。
2.2 AUTOSAR-AP平臺SOA相關(guān)技術(shù)規(guī)范概述
AUTOSAR-AP平臺采用SOA方法論,主要涉及一種自適應(yīng)軟件產(chǎn)品的開發(fā),是一套包括軟件分析、設(shè)計、開發(fā)、部署在內(nèi)的復(fù)雜工作流程。主要包括兩個方面:工作流定義與成果物定義(如圖2-2)。具體描述如下:
2.21 流程定義
AP平臺的方法論作為CP平臺的擴(kuò)展,其引入了新的概念,AP平臺軟件的實(shí)例是在進(jìn)程的上下文中執(zhí)行。AP平臺引入了“機(jī)器”(Machine)的概念,“機(jī)器”是虛擬化的ECU,一個可以部署軟件的實(shí)體。它可以是真實(shí)存在的處理器,也可以是一個虛擬機(jī),AP軟件則運(yùn)行在某一特定的“機(jī)器”上。
(1)開發(fā)服務(wù)接口(Service Interface)
AP平臺是一個面向服務(wù)的軟件架構(gòu)(SOA),基于AP平臺的軟件開發(fā),首先需要進(jìn)行服務(wù)接口的設(shè)計。服務(wù)接口可以由事件(Events)、方法(Methods)和字段(Fields)組成,是生成軟件組件頭文件的基礎(chǔ)。
(2)開發(fā)通信結(jié)構(gòu)(Communication Structure)
OEM在設(shè)計階段需要指定預(yù)期“機(jī)器”(Machine)的通信結(jié)構(gòu)以及相應(yīng)的配置參數(shù),包括機(jī)器的所有網(wǎng)絡(luò)端點(diǎn)和服務(wù)發(fā)現(xiàn)地址端口等。這一步將產(chǎn)生一個可交付的“機(jī)器設(shè)計”(Machine Design),一個特定的“機(jī)器”模型將引用一個特定的“機(jī)器設(shè)計“ 模型。
(3)開發(fā)自適應(yīng)應(yīng)用軟件(Adaptive Application Software)
自適應(yīng)應(yīng)用軟件開發(fā)從軟件組件(SW component)的設(shè)計開始,軟件組件是通過其端口(Port)定義的,每個端口實(shí)現(xiàn)一個服務(wù)接口?;诜?wù)接口描述,生成包含實(shí)現(xiàn)軟件組件的頭文件。開發(fā)人員在此基礎(chǔ)上實(shí)現(xiàn)軟件組件的核心功能。
(4)開發(fā)自適應(yīng)平臺軟件(Adaptive Platform Software)
與應(yīng)用級軟件類似,平臺級軟件可以由基于標(biāo)準(zhǔn)化服務(wù)接口的軟件組件組成,也可以直接實(shí)現(xiàn)而不需要軟件組件模型。
(5)定義和配置機(jī)器
包括了功能組狀態(tài)和每個狀態(tài)超時的定義,進(jìn)程到特定機(jī)器的映射,以及平臺服務(wù)(例如NM、DoIP) 和基礎(chǔ)模塊(例如日志)配置等。此過程會產(chǎn)生一個獨(dú)立于服務(wù)實(shí)例或應(yīng)用程序的機(jī)器清單(Machine Manifest)
(6)集成軟件
軟件的實(shí)現(xiàn)和編譯完成后,需要集成到一個可執(zhí)行文件CExecutable)中。通過進(jìn)程來定義特定機(jī)器上可執(zhí)行文件的實(shí)例化,每一個進(jìn)程會產(chǎn)生一個執(zhí)行清單CExecution Manifest),其中包括了進(jìn)程及其啟動配置。
(7)定義和配置服務(wù)實(shí)例(Service Instance)
首先對服務(wù)接口進(jìn)行部署,然后定義服務(wù)接口的實(shí)例,并決定是否提供或使用該服務(wù)實(shí)例。其次要建立服務(wù)實(shí)例到機(jī)器的映射,以及服務(wù)實(shí)例到端口的映射。此過程會產(chǎn)生進(jìn)程所需的所有服務(wù)實(shí)例清單(Service Instance Manifest)
(8)生成軟件包(Software Package)
將可執(zhí)行文件及所需清單整合為軟件包上傳到機(jī)器上,而無需重新刷寫。OEM可以將軟件包存儲在后端服務(wù)器中進(jìn)行統(tǒng)一管理。
2.22 成果物定義
由于AUTOSAR的工作流包含了整個汽車軟件開發(fā)流程,涉及多個開發(fā)角色,因此需要各個開發(fā)角色之間有信息交互,為了保證信息不出現(xiàn)二義性,需要對各個環(huán)節(jié)的工作成果物規(guī)則進(jìn)行定義。同時為了信息的保存、傳輸、交互的需求,需要定義這些成果物的載體,ARXML就是定義了不同流程成果物的載體,使用不同的標(biāo)簽來表示不同的信息及流程,這些標(biāo)簽的定義就是AUTOSAR的數(shù)據(jù)元模型(如下圖)。
MO:使用Ml級規(guī)則生成的可運(yùn)行軟件實(shí)體,例如車門控制的可自行軟件組件
Ml:使用M2級規(guī)則定義軟件組件,例如車門控制的軟件組件,軟件組件的表現(xiàn)形式可以是ARXML,C/C++語言或各類文檔。一般情況下會使用工具鏈以ARXML的形式定義軟件組件的框架,然后導(dǎo)入下游工具鏈生成目標(biāo)語言?;蛑苯由赡繕?biāo)語言框架,然后手寫代碼的形式完成整體的軟件組件;
M2:使用M3級規(guī)則定義使用AUTOSAR開發(fā)的元素、語法及規(guī)則,例如軟件組件,port口,機(jī)器,清單等。該級別的元素與具體的功能無關(guān),類似于各類開發(fā)語言的語法;
M3:用于定義M2的元模型
審核編輯:劉清
-
Web服務(wù)器
+關(guān)注
關(guān)注
0文章
137瀏覽量
24356 -
SCA
+關(guān)注
關(guān)注
1文章
36瀏覽量
11952 -
SOA
+關(guān)注
關(guān)注
1文章
282瀏覽量
27404 -
ROI
+關(guān)注
關(guān)注
0文章
14瀏覽量
6214
原文標(biāo)題:SOA架構(gòu)技術(shù)概述及技術(shù)規(guī)范現(xiàn)狀
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論