完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > SOA
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
體系結構
松耦合的系統(tǒng)
這種具有中立的接口定義(沒有強制綁定到特定的實現上)的特征稱為服務之間的松耦合。松耦合系統(tǒng)的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程序的每個服務的內部結構和實現逐漸地發(fā)生改變時,它能夠繼續(xù)存在。與之相反,緊耦合意味著應用程序的不同組件之間的接口與其功能和結構是緊密相連的,因而當需要對部分或整個應用程序進行某種形式的更改時,它們就顯得非常脆弱。
對松耦合的系統(tǒng)的需要來源于業(yè)務應用程序需要根據業(yè)務的需要變得更加靈活,以適應不斷變化的環(huán)境,比如經常改變的政策、業(yè)務級別、業(yè)務重點、合作伙伴關系、行業(yè)地位以及其他與業(yè)務有關的因素,這些因素甚至會影響業(yè)務的性質。我們稱能夠靈活地適應環(huán)境變化的業(yè)務為按需(On demand)業(yè)務,在按需業(yè)務中,一旦需要,就可以對完成或執(zhí)行任務的方式進行必要的更改。
雖然面向服務的體系結構不是一個新鮮事物,但它卻是更傳統(tǒng)的面向對象的模型的替代模型,面向對象的模型是緊耦合的,已經存在二十多年了。雖然基于 SOA 的系統(tǒng)并不排除使用面向對象的設計來構建單個服務,但是其整體設計卻是面向服務的。由于它考慮到了系統(tǒng)內的對象,所以雖然 SOA 是基于對象的,但是作為一個整體,它卻不是面向對象的。不同之處在于接口本身。SOA 系統(tǒng)原型的一個典型例子是通用對象請求代理體系結構(Common Object Request Broker Architecture,CORBA),它已經出現很長時間了,其定義的概念與 SOA 相似。
然而, SOA 已經有所不同了,因為它依賴于一些更新的進展,這些進展是以可擴展標記語言(eXtensible Markup Language,XML)為基礎的。通過使用基于XML(標準通用標記語言的子集) 的語言(稱為 Web 服務描述語言(Web Services Definition Language,WSDL))來描述接口,服務已經轉到更動態(tài)且更靈活的接口系統(tǒng)中,非以前 CORBA 中的接口描述語言(Interface Definition Language,IDL)可比了。
Web 服務并不是實現 SOA 的惟一方式。前面剛講的 CORBA 是另一種方式,這樣就有了面向消息的中間件(Message-Oriented Middleware)系統(tǒng),比如 IBM 的 MQseries。但是為了建立體系結構模型,您所需要的并不只是服務描述。您需要定義整個應用程序如何在服務之間執(zhí)行其工作流。您尤其需要找到業(yè)務的操作和業(yè)務中所使用的軟件的操作之間的轉換點。因此,SOA 應該能夠將業(yè)務的商業(yè)流程與它們的技術流程聯系起來,并且映射這兩者之間的關系。例如,給供應商付款的操作是商業(yè)流程,而更新您的零件數據庫,以包括進新供應的貨物卻是技術流程。因而,工作流還可以在 SOA 的設計中扮演重要的角色。
此外,動態(tài)業(yè)務的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進行的操作。因此,為了提高效率,您需要定義應該如何得知服務之間的關系的策略,這種策略常常采用服務級協(xié)定和操作策略的形式。
最后,所有這些都必須處于一個信任和可靠的環(huán)境之中,以同預期的一樣根據約定的條款來執(zhí)行流程。因此,安全、信任和可靠的消息傳遞應該在任何 SOA 中都起著重要的作用。
體系結構作用
我可以用面向服務的體系結構做什么
對 SOA 的需要來源于需要使業(yè)務 IT 系統(tǒng)變得更加靈活,以適應業(yè)務中的改變。通過允許強定義的關系和依然靈活的特定實現,IT 系統(tǒng)既可以利用現有系統(tǒng)的功能,又可以準備在以后做一些改變來滿足它們之間交互的需要。
下面舉一個具體的例子。一個服裝零售組織擁有 500 家國際連鎖店,它們常常需要更改設計來趕上時尚的潮流。這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產品。如果零售商和制造商之間的系統(tǒng)不兼容,那么從一個供應商到另一個供應商的更換可能就是一個非常復雜的軟件流程。通過利用 WSDL 接口在操作方面的靈活性,每個公司都可以將它們的現有系統(tǒng)保持現狀,而僅僅匹配 WSDL 接口并制訂新的服務級協(xié)定,這樣就不必完全重構它們的軟件系統(tǒng)了。這是業(yè)務的水平改變,也就是說,它們改變的是合作伙伴,而所有的業(yè)務操作基本上都保持不變。這里,業(yè)務接口可以作少許改變,而內部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。
另一種形式是內部改變,在這種改變中,零售組織決定它還將把連鎖零售商店內的一些地方出租給專賣流行衣服的小商店,這可以看作是采用店中店(store-in-store)的業(yè)務模型。這里,雖然公司的大多數業(yè)務操作都保持不變,但是它們需要新的內部軟件來處理這樣的出租安排。盡管在內部軟件系統(tǒng)可以承受全面的檢修,但是它們需要在這樣做的同時不會對與現有的供應商系統(tǒng)的交互產生大的影響。在這種情況下,SOA 模型保持原封不動,而內部實現卻發(fā)生了變化。雖然可以將新的方面添加到 SOA 模型中來加入新的出租安排的職責,但是正常的零售管理系統(tǒng)繼續(xù)如往常一樣。
為了延續(xù)內部改變的觀念,IT 經理可能會發(fā)現,軟件的新配置還可以以另外的一種方式加以使用,比如出租粘貼海報的地方以供廣告之用。這里,新的業(yè)務提議是通過在新的設計中重用靈活的 SOA 模型得出的。這是來自 SOA 模型的新成果,并且還是一個新的機會,而這樣的新機會在以前可能是不會有的。
垂直改變也是可能的,在這種改變中,零售商從銷售他們自己的服裝完全轉變到專門通過店中店模型出租地方。如果垂直改變完全從最底層開始的話,就會帶來 SOA 模型結構的顯著改變,與之一起改變的還可能有新的系統(tǒng)、軟件、流程以及關系。在這種情況下,SOA 模型的好處是它從業(yè)務操作和流程的角度考慮問題而不是從應用程序和程序的角度考慮問題,這使得業(yè)務管理可以根據業(yè)務的操作清楚地確定什么需要添加、修改或刪除。然后可以將軟件系統(tǒng)構造為適合業(yè)務處理的方式,而不是在許多現有的軟件平臺上常??吹降钠渌绞?。
正如您可以看到的,在這里,改變和 SOA 系統(tǒng)適應改變的能力是最重要的部分。對于開發(fā)人員來說,這樣的改變無論是在他們工作的范圍之內還是在他們工作的范圍之外都有可能發(fā)生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進行交互。與開發(fā)人員不同的是,架構師的作用就是引起對 SOA 模型大的改變。這種分工,就是讓開發(fā)人員集中精力于創(chuàng)建作為服務定義的功能單元,而讓架構師和建模人員集中精力于如何將這些單元適當地組織在一起,它已經有十多年的歷史了,通常用統(tǒng)一建模語言(Unified Modeling Language,UML),并且描述成模型驅動的體系結構(Model-Driven Architecture,MDA)。
對于面向同步和異步應用的,基于請求/響應模式的分布式計算來說,SOA是一場革命。一個應用程序的業(yè)務邏輯(business logic)或某些單獨的功能被模塊化并作為服務呈現給消費者或客戶端。這些服務的關鍵是他們的松耦合特性。例如,服務的接口和實現相獨立。應用開發(fā)人員或者系統(tǒng)集成者可以通過組合一個或多個服務來構建應用,而無須理解服務的底層實現。舉例來說,一個服務可以用.NET或J2EE來實現,而使用該服務的應用程序可以在不同的平臺之上,使用的語言也可以不同。.
SOA增益恢復波長依賴性:使用單色泵浦探針技術進行模擬和測量(二)
我們使用的是文獻[21, 18, 20]中報道的 SOA 模型,該模型與文獻[3]中的 pumpprobe 實驗結果具有良好的一致性。
SOA架構開發(fā)小助手PAVELINK.SOA-Converter 2.1.2新版本發(fā)布
為提升汽車SOA架構設計開發(fā)效率,優(yōu)化用戶體驗,我們對PAVELINK.SOA-Converter進行了全新升級。本次2.1.2新版本升級,聚焦于提升軟...
此前,2025年1月28日至30日,全球光電領域頂級盛會——美國西部光電子展(Photonics West)在加利福尼亞州舊金山隆重開幕。來自中國天津的...
SOA增益恢復波長依賴性:使用單色泵浦探針技術進行模擬和測量(一)
? 摘要:迄今為止,對半導體光放大器(SOA)中增益恢復時間的波長依賴性的測量大多采用泵浦-探頭技術,泵浦和探頭在不同的波長上工作。泵浦波長的選擇及其與...
使用ROS機器人技術和SOA(面向服務架構)推進ADAS原型設計
? 汽車設計的創(chuàng)新是一種持續(xù)的驅動力,每代汽車都會出現新的特性和性能。在不斷發(fā)展的汽車技術環(huán)境中,雷諾率先采用面向服務架構 (SOA) 來滿足現代車輛系...
9月26日云技術研討會 | SOA整車EE架構開發(fā)流程及工具實施方案
本次研討會經緯恒潤將結合業(yè)務團隊多年來在SOA架構開發(fā)和工具實施領域的項目實踐經驗,分享探討SOA趨勢下先進的整車EE架構開發(fā)模式,聚焦在SOA開發(fā)難點...
編輯推薦廠商產品技術軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯網 | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網 | 國民技術 | Microchip |
開關電源 | 步進電機 | 無線充電 | LabVIEW | EMC | PLC | OLED | 單片機 |
5G | m2m | DSP | MCU | ASIC | CPU | ROM | DRAM |
NB-IoT | LoRa | Zigbee | NFC | 藍牙 | RFID | Wi-Fi | SIGFOX |
Type-C | USB | 以太網 | 仿真器 | RISC | RAM | 寄存器 | GPU |
語音識別 | 萬用表 | CPLD | 耦合 | 電路仿真 | 電容濾波 | 保護電路 | 看門狗 |
CAN | CSI | DSI | DVI | Ethernet | HDMI | I2C | RS-485 |
SDI | nas | DMA | HomeKit | 閾值電壓 | UART | 機器學習 | TensorFlow |
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 |