完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>
標簽 > SOA
面向服務的架構(gòu)(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。
面向服務的架構(gòu)(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
面向服務的架構(gòu)(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
體系結(jié)構(gòu)
松耦合的系統(tǒng)
這種具有中立的接口定義(沒有強制綁定到特定的實現(xiàn)上)的特征稱為服務之間的松耦合。松耦合系統(tǒng)的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程序的每個服務的內(nèi)部結(jié)構(gòu)和實現(xiàn)逐漸地發(fā)生改變時,它能夠繼續(xù)存在。與之相反,緊耦合意味著應用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當需要對部分或整個應用程序進行某種形式的更改時,它們就顯得非常脆弱。
對松耦合的系統(tǒng)的需要來源于業(yè)務應用程序需要根據(jù)業(yè)務的需要變得更加靈活,以適應不斷變化的環(huán)境,比如經(jīng)常改變的政策、業(yè)務級別、業(yè)務重點、合作伙伴關(guān)系、行業(yè)地位以及其他與業(yè)務有關(guān)的因素,這些因素甚至會影響業(yè)務的性質(zhì)。我們稱能夠靈活地適應環(huán)境變化的業(yè)務為按需(On demand)業(yè)務,在按需業(yè)務中,一旦需要,就可以對完成或執(zhí)行任務的方式進行必要的更改。
雖然面向服務的體系結(jié)構(gòu)不是一個新鮮事物,但它卻是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P?,面向?qū)ο蟮哪P褪蔷o耦合的,已經(jīng)存在二十多年了。雖然基于 SOA 的系統(tǒng)并不排除使用面向?qū)ο蟮脑O計來構(gòu)建單個服務,但是其整體設計卻是面向服務的。由于它考慮到了系統(tǒng)內(nèi)的對象,所以雖然 SOA 是基于對象的,但是作為一個整體,它卻不是面向?qū)ο蟮摹2煌幵谟诮涌诒旧?。SOA 系統(tǒng)原型的一個典型例子是通用對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA),它已經(jīng)出現(xiàn)很長時間了,其定義的概念與 SOA 相似。
然而, SOA 已經(jīng)有所不同了,因為它依賴于一些更新的進展,這些進展是以可擴展標記語言(eXtensible Markup Language,XML)為基礎(chǔ)的。通過使用基于XML(標準通用標記語言的子集) 的語言(稱為 Web 服務描述語言(Web Services Definition Language,WSDL))來描述接口,服務已經(jīng)轉(zhuǎn)到更動態(tài)且更靈活的接口系統(tǒng)中,非以前 CORBA 中的接口描述語言(Interface Definition Language,IDL)可比了。
Web 服務并不是實現(xiàn) SOA 的惟一方式。前面剛講的 CORBA 是另一種方式,這樣就有了面向消息的中間件(Message-Oriented Middleware)系統(tǒng),比如 IBM 的 MQseries。但是為了建立體系結(jié)構(gòu)模型,您所需要的并不只是服務描述。您需要定義整個應用程序如何在服務之間執(zhí)行其工作流。您尤其需要找到業(yè)務的操作和業(yè)務中所使用的軟件的操作之間的轉(zhuǎn)換點。因此,SOA 應該能夠?qū)I(yè)務的商業(yè)流程與它們的技術(shù)流程聯(lián)系起來,并且映射這兩者之間的關(guān)系。例如,給供應商付款的操作是商業(yè)流程,而更新您的零件數(shù)據(jù)庫,以包括進新供應的貨物卻是技術(shù)流程。因而,工作流還可以在 SOA 的設計中扮演重要的角色。
此外,動態(tài)業(yè)務的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進行的操作。因此,為了提高效率,您需要定義應該如何得知服務之間的關(guān)系的策略,這種策略常常采用服務級協(xié)定和操作策略的形式。
最后,所有這些都必須處于一個信任和可靠的環(huán)境之中,以同預期的一樣根據(jù)約定的條款來執(zhí)行流程。因此,安全、信任和可靠的消息傳遞應該在任何 SOA 中都起著重要的作用。
體系結(jié)構(gòu)作用
我可以用面向服務的體系結(jié)構(gòu)做什么
對 SOA 的需要來源于需要使業(yè)務 IT 系統(tǒng)變得更加靈活,以適應業(yè)務中的改變。通過允許強定義的關(guān)系和依然靈活的特定實現(xiàn),IT 系統(tǒng)既可以利用現(xiàn)有系統(tǒng)的功能,又可以準備在以后做一些改變來滿足它們之間交互的需要。
下面舉一個具體的例子。一個服裝零售組織擁有 500 家國際連鎖店,它們常常需要更改設計來趕上時尚的潮流。這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產(chǎn)品。如果零售商和制造商之間的系統(tǒng)不兼容,那么從一個供應商到另一個供應商的更換可能就是一個非常復雜的軟件流程。通過利用 WSDL 接口在操作方面的靈活性,每個公司都可以將它們的現(xiàn)有系統(tǒng)保持現(xiàn)狀,而僅僅匹配 WSDL 接口并制訂新的服務級協(xié)定,這樣就不必完全重構(gòu)它們的軟件系統(tǒng)了。這是業(yè)務的水平改變,也就是說,它們改變的是合作伙伴,而所有的業(yè)務操作基本上都保持不變。這里,業(yè)務接口可以作少許改變,而內(nèi)部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。
另一種形式是內(nèi)部改變,在這種改變中,零售組織決定它還將把連鎖零售商店內(nèi)的一些地方出租給專賣流行衣服的小商店,這可以看作是采用店中店(store-in-store)的業(yè)務模型。這里,雖然公司的大多數(shù)業(yè)務操作都保持不變,但是它們需要新的內(nèi)部軟件來處理這樣的出租安排。盡管在內(nèi)部軟件系統(tǒng)可以承受全面的檢修,但是它們需要在這樣做的同時不會對與現(xiàn)有的供應商系統(tǒng)的交互產(chǎn)生大的影響。在這種情況下,SOA 模型保持原封不動,而內(nèi)部實現(xiàn)卻發(fā)生了變化。雖然可以將新的方面添加到 SOA 模型中來加入新的出租安排的職責,但是正常的零售管理系統(tǒng)繼續(xù)如往常一樣。
為了延續(xù)內(nèi)部改變的觀念,IT 經(jīng)理可能會發(fā)現(xiàn),軟件的新配置還可以以另外的一種方式加以使用,比如出租粘貼海報的地方以供廣告之用。這里,新的業(yè)務提議是通過在新的設計中重用靈活的 SOA 模型得出的。這是來自 SOA 模型的新成果,并且還是一個新的機會,而這樣的新機會在以前可能是不會有的。
垂直改變也是可能的,在這種改變中,零售商從銷售他們自己的服裝完全轉(zhuǎn)變到專門通過店中店模型出租地方。如果垂直改變完全從最底層開始的話,就會帶來 SOA 模型結(jié)構(gòu)的顯著改變,與之一起改變的還可能有新的系統(tǒng)、軟件、流程以及關(guān)系。在這種情況下,SOA 模型的好處是它從業(yè)務操作和流程的角度考慮問題而不是從應用程序和程序的角度考慮問題,這使得業(yè)務管理可以根據(jù)業(yè)務的操作清楚地確定什么需要添加、修改或刪除。然后可以將軟件系統(tǒng)構(gòu)造為適合業(yè)務處理的方式,而不是在許多現(xiàn)有的軟件平臺上常??吹降钠渌绞健?/p>
正如您可以看到的,在這里,改變和 SOA 系統(tǒng)適應改變的能力是最重要的部分。對于開發(fā)人員來說,這樣的改變無論是在他們工作的范圍之內(nèi)還是在他們工作的范圍之外都有可能發(fā)生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進行交互。與開發(fā)人員不同的是,架構(gòu)師的作用就是引起對 SOA 模型大的改變。這種分工,就是讓開發(fā)人員集中精力于創(chuàng)建作為服務定義的功能單元,而讓架構(gòu)師和建模人員集中精力于如何將這些單元適當?shù)亟M織在一起,它已經(jīng)有十多年的歷史了,通常用統(tǒng)一建模語言(Unified Modeling Language,UML),并且描述成模型驅(qū)動的體系結(jié)構(gòu)(Model-Driven Architecture,MDA)。
對于面向同步和異步應用的,基于請求/響應模式的分布式計算來說,SOA是一場革命。一個應用程序的業(yè)務邏輯(business logic)或某些單獨的功能被模塊化并作為服務呈現(xiàn)給消費者或客戶端。這些服務的關(guān)鍵是他們的松耦合特性。例如,服務的接口和實現(xiàn)相獨立。應用開發(fā)人員或者系統(tǒng)集成者可以通過組合一個或多個服務來構(gòu)建應用,而無須理解服務的底層實現(xiàn)。舉例來說,一個服務可以用.NET或J2EE來實現(xiàn),而使用該服務的應用程序可以在不同的平臺之上,使用的語言也可以不同。.
秒送LBS場景下的C端SOA服務容災建設之-數(shù)據(jù)備份篇
前言 在面向服務的架構(gòu)(SOA)系統(tǒng)中,容災能力是保障系統(tǒng)穩(wěn)定性的重要組成部分。通過引入 多數(shù)據(jù)中心部署、自動化故障轉(zhuǎn)移、數(shù)據(jù)備份 等技術(shù)手段,可以有效...
2024-08-15 標簽:數(shù)據(jù)中心LBS數(shù)據(jù)備份 172 0
在車載以太網(wǎng)開發(fā)過程中,我們最為常見的應用層協(xié)議主要是SOMEIP與DOIP兩大類協(xié)議,其中SOMEIP協(xié)議作為實現(xiàn)SOA架構(gòu)的一種重要實現(xiàn)手段被廣泛應...
從物理范圍來看,智能座艙包括了操控系統(tǒng)、娛樂系統(tǒng)、空調(diào)系統(tǒng)、通信系統(tǒng)、座椅系統(tǒng)、交互系統(tǒng)、感知系統(tǒng)等,以提供駕駛者和乘客更為安全、舒適、智能的駕乘體驗。
2024-04-11 標簽:人機交互操作系統(tǒng)SOA 1802 0
SOA是從遵循服務導向原則的可重用服務中構(gòu)建復雜軟件系統(tǒng)的方法。SOA也是1個組件模型,它將應用程序的不同功能單元(稱為服務),通過這些服務之間定義良好...
9月26日云技術(shù)研討會 | SOA整車EE架構(gòu)開發(fā)流程及工具實施方案
本次研討會經(jīng)緯恒潤將結(jié)合業(yè)務團隊多年來在SOA架構(gòu)開發(fā)和工具實施領(lǐng)域的項目實踐經(jīng)驗,分享探討SOA趨勢下先進的整車EE架構(gòu)開發(fā)模式,聚焦在SOA開發(fā)難點...
當今的恒溫器提供了一系列的功能和特性,使我們的家庭和辦公室更加節(jié)能高效。在網(wǎng)上搜索,您會發(fā)現(xiàn)一系列智能恒溫器,它們不僅可以控制溫度、濕度和空氣質(zhì)量,還具...
嵐圖汽車與東軟睿馳簽署戰(zhàn)略合作協(xié)議,共同打造極致的智能出行體驗
4月26日,東軟睿馳與嵐圖汽車正式簽署戰(zhàn)略合作協(xié)議,雙方將結(jié)合在各自領(lǐng)域擁有的產(chǎn)業(yè)資源、技術(shù)研發(fā)和資本運作等優(yōu)勢,聚焦智能化產(chǎn)品和應用,建立長期共贏的戰(zhàn)...
光庭信息自研的KCarOS及配套工具鏈平臺賦能數(shù)字化智能汽車開發(fā)
在“新汽車”時代,硬件同質(zhì)化趨勢日益明顯,軟件成為了汽車產(chǎn)品競爭力的關(guān)鍵。在多方協(xié)同開發(fā)模式下,如何高效開發(fā)高質(zhì)量軟件顯得至關(guān)重要。
一文帶你看懂什么是SOA半導體光放大器?半導體光放大器的分類及應用 SOA半導體光放大器介紹
SOA介紹 SOA(Semi-conductor Optical Amplifier)半導體光放大器是采用應變量子阱結(jié)構(gòu)的PN結(jié)器件,外部光進入后導致受...
見合八方 SOA半導體光放大器 1550nm SOA 1310nm SOA 1550nm增益芯片
見合八方的半導體光放大器(SOA)系列產(chǎn)品,主要應用于1550nm波 長的光放大,能顯著提高輸出光功率。 該系列產(chǎn)品基于清華大學光電集成微系統(tǒng)研究所...
SOA-Converter v1.3.2上線|新增Excel模板適配插件及ARXML合并功能
PAVELINK.SOA-Converter轉(zhuǎn)換工具,用于銜接基于SOA的控制器設計、開發(fā)及測試過程中所常見的各類軟件工具。PAVELINK.SOA-C...
-本文翻譯自由Geoff H. Darling于2003年撰寫的文章。盡管文章較早,但可以了解一些SOA底層原理,并可看到早期SOA研究的思路和過程,于...
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |