完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > SOA
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務可以以一種統一和通用的方式進行交互。
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務可以以一種統一和通用的方式進行交互。
體系結構
松耦合的系統
這種具有中立的接口定義(沒有強制綁定到特定的實現上)的特征稱為服務之間的松耦合。松耦合系統的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程序的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在。與之相反,緊耦合意味著應用程序的不同組件之間的接口與其功能和結構是緊密相連的,因而當需要對部分或整個應用程序進行某種形式的更改時,它們就顯得非常脆弱。
對松耦合的系統的需要來源于業務應用程序需要根據業務的需要變得更加靈活,以適應不斷變化的環境,比如經常改變的政策、業務級別、業務重點、合作伙伴關系、行業地位以及其他與業務有關的因素,這些因素甚至會影響業務的性質。我們稱能夠靈活地適應環境變化的業務為按需(On demand)業務,在按需業務中,一旦需要,就可以對完成或執行任務的方式進行必要的更改。
雖然面向服務的體系結構不是一個新鮮事物,但它卻是更傳統的面向對象的模型的替代模型,面向對象的模型是緊耦合的,已經存在二十多年了。雖然基于 SOA 的系統并不排除使用面向對象的設計來構建單個服務,但是其整體設計卻是面向服務的。由于它考慮到了系統內的對象,所以雖然 SOA 是基于對象的,但是作為一個整體,它卻不是面向對象的。不同之處在于接口本身。SOA 系統原型的一個典型例子是通用對象請求代理體系結構(Common Object Request Broker Architecture,CORBA),它已經出現很長時間了,其定義的概念與 SOA 相似。
然而, SOA 已經有所不同了,因為它依賴于一些更新的進展,這些進展是以可擴展標記語言(eXtensible Markup Language,XML)為基礎的。通過使用基于XML(標準通用標記語言的子集) 的語言(稱為 Web 服務描述語言(Web Services Definition Language,WSDL))來描述接口,服務已經轉到更動態且更靈活的接口系統中,非以前 CORBA 中的接口描述語言(Interface Definition Language,IDL)可比了。
Web 服務并不是實現 SOA 的惟一方式。前面剛講的 CORBA 是另一種方式,這樣就有了面向消息的中間件(Message-Oriented Middleware)系統,比如 IBM 的 MQseries。但是為了建立體系結構模型,您所需要的并不只是服務描述。您需要定義整個應用程序如何在服務之間執行其工作流。您尤其需要找到業務的操作和業務中所使用的軟件的操作之間的轉換點。因此,SOA 應該能夠將業務的商業流程與它們的技術流程聯系起來,并且映射這兩者之間的關系。例如,給供應商付款的操作是商業流程,而更新您的零件數據庫,以包括進新供應的貨物卻是技術流程。因而,工作流還可以在 SOA 的設計中扮演重要的角色。
此外,動態業務的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進行的操作。因此,為了提高效率,您需要定義應該如何得知服務之間的關系的策略,這種策略常常采用服務級協定和操作策略的形式。
最后,所有這些都必須處于一個信任和可靠的環境之中,以同預期的一樣根據約定的條款來執行流程。因此,安全、信任和可靠的消息傳遞應該在任何 SOA 中都起著重要的作用。
體系結構作用
我可以用面向服務的體系結構做什么
對 SOA 的需要來源于需要使業務 IT 系統變得更加靈活,以適應業務中的改變。通過允許強定義的關系和依然靈活的特定實現,IT 系統既可以利用現有系統的功能,又可以準備在以后做一些改變來滿足它們之間交互的需要。
下面舉一個具體的例子。一個服裝零售組織擁有 500 家國際連鎖店,它們常常需要更改設計來趕上時尚的潮流。這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產品。如果零售商和制造商之間的系統不兼容,那么從一個供應商到另一個供應商的更換可能就是一個非常復雜的軟件流程。通過利用 WSDL 接口在操作方面的靈活性,每個公司都可以將它們的現有系統保持現狀,而僅僅匹配 WSDL 接口并制訂新的服務級協定,這樣就不必完全重構它們的軟件系統了。這是業務的水平改變,也就是說,它們改變的是合作伙伴,而所有的業務操作基本上都保持不變。這里,業務接口可以作少許改變,而內部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。
另一種形式是內部改變,在這種改變中,零售組織決定它還將把連鎖零售商店內的一些地方出租給專賣流行衣服的小商店,這可以看作是采用店中店(store-in-store)的業務模型。這里,雖然公司的大多數業務操作都保持不變,但是它們需要新的內部軟件來處理這樣的出租安排。盡管在內部軟件系統可以承受全面的檢修,但是它們需要在這樣做的同時不會對與現有的供應商系統的交互產生大的影響。在這種情況下,SOA 模型保持原封不動,而內部實現卻發生了變化。雖然可以將新的方面添加到 SOA 模型中來加入新的出租安排的職責,但是正常的零售管理系統繼續如往常一樣。
為了延續內部改變的觀念,IT 經理可能會發現,軟件的新配置還可以以另外的一種方式加以使用,比如出租粘貼海報的地方以供廣告之用。這里,新的業務提議是通過在新的設計中重用靈活的 SOA 模型得出的。這是來自 SOA 模型的新成果,并且還是一個新的機會,而這樣的新機會在以前可能是不會有的。
垂直改變也是可能的,在這種改變中,零售商從銷售他們自己的服裝完全轉變到專門通過店中店模型出租地方。如果垂直改變完全從最底層開始的話,就會帶來 SOA 模型結構的顯著改變,與之一起改變的還可能有新的系統、軟件、流程以及關系。在這種情況下,SOA 模型的好處是它從業務操作和流程的角度考慮問題而不是從應用程序和程序的角度考慮問題,這使得業務管理可以根據業務的操作清楚地確定什么需要添加、修改或刪除。然后可以將軟件系統構造為適合業務處理的方式,而不是在許多現有的軟件平臺上常常看到的其他方式。
正如您可以看到的,在這里,改變和 SOA 系統適應改變的能力是最重要的部分。對于開發人員來說,這樣的改變無論是在他們工作的范圍之內還是在他們工作的范圍之外都有可能發生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進行交互。與開發人員不同的是,架構師的作用就是引起對 SOA 模型大的改變。這種分工,就是讓開發人員集中精力于創建作為服務定義的功能單元,而讓架構師和建模人員集中精力于如何將這些單元適當地組織在一起,它已經有十多年的歷史了,通常用統一建模語言(Unified Modeling Language,UML),并且描述成模型驅動的體系結構(Model-Driven Architecture,MDA)。
對于面向同步和異步應用的,基于請求/響應模式的分布式計算來說,SOA是一場革命。一個應用程序的業務邏輯(business logic)或某些單獨的功能被模塊化并作為服務呈現給消費者或客戶端。這些服務的關鍵是他們的松耦合特性。例如,服務的接口和實現相獨立。應用開發人員或者系統集成者可以通過組合一個或多個服務來構建應用,而無須理解服務的底層實現。舉例來說,一個服務可以用.NET或J2EE來實現,而使用該服務的應用程序可以在不同的平臺之上,使用的語言也可以不同。.
SOA是從遵循服務導向原則的可重用服務中構建復雜軟件系統的方法。SOA也是1個組件模型,它將應用程序的不同功能單元(稱為服務),通過這些服務之間定義良好...
使用ROS機器人技術和SOA(面向服務架構)推進ADAS原型設計
? 汽車設計的創新是一種持續的驅動力,每代汽車都會出現新的特性和性能。在不斷發展的汽車技術環境中,雷諾率先采用面向服務架構 (SOA) 來滿足現代車輛系...
9月26日云技術研討會 | SOA整車EE架構開發流程及工具實施方案
本次研討會經緯恒潤將結合業務團隊多年來在SOA架構開發和工具實施領域的項目實踐經驗,分享探討SOA趨勢下先進的整車EE架構開發模式,聚焦在SOA開發難點...
嵐圖汽車與東軟睿馳簽署戰略合作協議,共同打造極致的智能出行體驗
4月26日,東軟睿馳與嵐圖汽車正式簽署戰略合作協議,雙方將結合在各自領域擁有的產業資源、技術研發和資本運作等優勢,聚焦智能化產品和應用,建立長期共贏的戰...
一文帶你看懂什么是SOA半導體光放大器?半導體光放大器的分類及應用 SOA半導體光放大器介紹
SOA介紹 SOA(Semi-conductor Optical Amplifier)半導體光放大器是采用應變量子阱結構的PN結器件,外部光進入后導致受...
見合八方 SOA半導體光放大器 1550nm SOA 1310nm SOA 1550nm增益芯片
見合八方的半導體光放大器(SOA)系列產品,主要應用于1550nm波 長的光放大,能顯著提高輸出光功率。 該系列產品基于清華大學光電集成微系統研究所...
編輯推薦廠商產品技術軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯網 | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發電 | 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 |