關(guān)于soa是什么意思 出口貿(mào)易,soa是什么意思這個(gè)問(wèn)題很多朋友還不知道,今天小六來(lái)為大家解答以上的問(wèn)題,現(xiàn)在讓我們一起來(lái)看看吧!
1、面向服務(wù)的體系結(jié)構(gòu)(service-oriented architecture,SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。
2、接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。
3、這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。
4、 這種具有中立的接口定義(沒(méi)有強(qiáng)制綁定到特定的實(shí)現(xiàn)上)的特征稱為服務(wù)之間的松耦合。
5、松耦合系統(tǒng)的好處有兩點(diǎn),一點(diǎn)是它的靈活性,另一點(diǎn)是,當(dāng)組成整個(gè)應(yīng)用程序的每個(gè)服務(wù)的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)逐漸地發(fā)生改變時(shí),它能夠繼續(xù)存在。
6、而另一方面,緊耦合意味著應(yīng)用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當(dāng)需要對(duì)部分或整個(gè)應(yīng)用程序進(jìn)行某種形式的更改時(shí),它們就顯得非常脆弱。
7、 對(duì)松耦合的系統(tǒng)的需要來(lái)源于業(yè)務(wù)應(yīng)用程序需要根據(jù)業(yè)務(wù)的需要變得更加靈活,以適應(yīng)不斷變化的環(huán)境,比如經(jīng)常改變的政策、業(yè)務(wù)級(jí)別、業(yè)務(wù)重點(diǎn)、合作伙伴關(guān)系、行業(yè)地位以及其他與業(yè)務(wù)有關(guān)的因素,這些因素甚至?xí)绊憳I(yè)務(wù)的性質(zhì)。
8、我們稱能夠靈活地適應(yīng)環(huán)境變化的業(yè)務(wù)為按需(On demand)業(yè)務(wù),在按需業(yè)務(wù)中,一旦需要,就可以對(duì)完成或執(zhí)行任務(wù)的方式進(jìn)行必要的更改。
9、 雖然面向服務(wù)的體系結(jié)構(gòu)不是一個(gè)新鮮事物,但它卻是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P?,面向?qū)ο蟮哪P褪蔷o耦合的,已經(jīng)存在二十多年了。
10、雖然基于 SOA 的系統(tǒng)并不排除使用面向?qū)ο蟮脑O(shè)計(jì)來(lái)構(gòu)建單個(gè)服務(wù),但是其整體設(shè)計(jì)卻是面向服務(wù)的。
11、由于它考慮到了系統(tǒng)內(nèi)的對(duì)象,所以雖然 SOA 是基于對(duì)象的,但是作為一個(gè)整體,它卻不是面向?qū)ο蟮摹?/p>
12、不同之處在于接口本身。
13、SOA 系統(tǒng)原型的一個(gè)典型例子是通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA),它已經(jīng)出現(xiàn)很長(zhǎng)時(shí)間了,其定義的概念與 SOA 相似。
14、 然而,現(xiàn)在的 SOA 已經(jīng)有所不同了,因?yàn)樗蕾囉谝恍└碌倪M(jìn)展,這些進(jìn)展是以可擴(kuò)展標(biāo)記語(yǔ)言(eXtensible Markup Language,XML)為基礎(chǔ)的。
15、通過(guò)使用基于 XML 的語(yǔ)言(稱為 Web 服務(wù)描述語(yǔ)言(Web Services Definition Language,WSDL))來(lái)描述接口,服務(wù)已經(jīng)轉(zhuǎn)到更動(dòng)態(tài)且更靈活的接口系統(tǒng)中,非以前 CORBA 中的接口描述語(yǔ)言(Interface Definition Language,IDL)可比了。
16、 Web 服務(wù)并不是實(shí)現(xiàn) SOA 的惟一方式。
17、前面剛講的 CORBA 是另一種方式,這樣就有了面向消息的中間件(Message-Oriented Middleware)系統(tǒng),比如 IBM 的 MQseries。
18、但是為了建立體系結(jié)構(gòu)模型,您所需要的并不只是服務(wù)描述。
19、您需要定義整個(gè)應(yīng)用程序如何在服務(wù)之間執(zhí)行其工作流。
20、您尤其需要找到業(yè)務(wù)的操作和業(yè)務(wù)中所使用的軟件的操作之間的轉(zhuǎn)換點(diǎn)。
21、因此,SOA 應(yīng)該能夠?qū)I(yè)務(wù)的商業(yè)流程與它們的技術(shù)流程聯(lián)系起來(lái),并且映射這兩者之間的關(guān)系。
22、例如,給供應(yīng)商付款的操作是商業(yè)流程,而更新您的零件數(shù)據(jù)庫(kù),以包括進(jìn)新供應(yīng)的貨物卻是技術(shù)流程。
23、因而,工作流還可以在 SOA 的設(shè)計(jì)中扮演重要的角色。
24、 此外,動(dòng)態(tài)業(yè)務(wù)的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進(jìn)行的操作。
25、因此,為了提高效率,您需要定義應(yīng)該如何得知服務(wù)之間的關(guān)系的策略,這種策略常常采用服務(wù)級(jí)協(xié)定和操作策略的形式。
26、 最后,所有這些都必須處于一個(gè)信任和可靠的環(huán)境之中,以同預(yù)期的一樣根據(jù)約定的條款來(lái)執(zhí)行流程。
27、因此,安全、信任和可靠的消息傳遞應(yīng)該在任何 SOA 中都起著重要的作用。
28、 我可以用面向服務(wù)的體系結(jié)構(gòu)做什么? 對(duì) SOA 的需要來(lái)源于需要使業(yè)務(wù) IT 系統(tǒng)變得更加靈活,以適應(yīng)業(yè)務(wù)中的改變。
29、通過(guò)允許強(qiáng)定義的關(guān)系和依然靈活的特定實(shí)現(xiàn),IT 系統(tǒng)既可以利用現(xiàn)有系統(tǒng)的功能,又可以準(zhǔn)備在以后做一些改變來(lái)滿足它們之間交互的需要。
30、 下面舉一個(gè)具體的例子。
31、一個(gè)服裝零售組織擁有 500 家國(guó)際連鎖店,它們常常需要更改設(shè)計(jì)來(lái)趕上時(shí)尚的潮流。
32、這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產(chǎn)品。
33、如果零售商和制造商之間的系統(tǒng)不兼容,那么從一個(gè)供應(yīng)商到另一個(gè)供應(yīng)商的更換可能就是一個(gè)非常復(fù)雜的軟件流程。
34、通過(guò)利用 WSDL 接口在操作方面的靈活性,每個(gè)公司都可以將它們的現(xiàn)有系統(tǒng)保持現(xiàn)狀,而僅僅匹配 WSDL 接口并制訂新的服務(wù)級(jí)協(xié)定,這樣就不必完全重構(gòu)它們的軟件系統(tǒng)了。
35、這是業(yè)務(wù)的水平改變,也就是說(shuō),它們改變的是合作伙伴,而所有的業(yè)務(wù)操作基本上都保持不變。
36、這里,業(yè)務(wù)接口可以作少許改變,而內(nèi)部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。
37、 另一種形式是內(nèi)部改變,在這種改變中,零售組織現(xiàn)在決定它還將把連鎖零售商店內(nèi)的一些地方出租給專賣流行衣服的小商店,這可以看作是采用店中店(store-in-store)的業(yè)務(wù)模型。
38、這里,雖然公司的大多數(shù)業(yè)務(wù)操作都保持不變,但是它們現(xiàn)在需要新的內(nèi)部軟件來(lái)處理這樣的出租安排。
39、盡管在內(nèi)部軟件系統(tǒng)可以承受全面的檢修,但是它們需要在這樣做的同時(shí)不會(huì)對(duì)與現(xiàn)有的供應(yīng)商系統(tǒng)的交互產(chǎn)生大的影響。
40、在這種情況下,SOA 模型保持原封不動(dòng),而內(nèi)部實(shí)現(xiàn)卻發(fā)生了變化。
41、雖然可以將新的方面添加到 SOA 模型中來(lái)加入新的出租安排的職責(zé),但是正常的零售管理系統(tǒng)繼續(xù)如往常一樣。
42、 為了延續(xù)內(nèi)部改變的觀念,IT 經(jīng)理可能會(huì)發(fā)現(xiàn),軟件的新配置還可以以另外的一種方式加以使用,比如出租粘貼海報(bào)的地方以供廣告之用。
43、這里,新的業(yè)務(wù)提議是通過(guò)在新的設(shè)計(jì)中重用靈活的 SOA 模型得出的。
44、這是來(lái)自 SOA 模型的新成果,并且還是一個(gè)新的機(jī)會(huì),而這樣的新機(jī)會(huì)在以前可能是不會(huì)有的。
45、 垂直改變也是可能的,在這種改變中,零售商從銷售他們自己的服裝完全轉(zhuǎn)變到專門通過(guò)店中店模型出租地方。
46、如果垂直改變完全從最底層開始的話,就會(huì)帶來(lái) SOA 模型結(jié)構(gòu)的顯著改變,與之一起改變的還可能有新的系統(tǒng)、軟件、流程以及關(guān)系。
47、在這種情況下,SOA 模型的好處是它從業(yè)務(wù)操作和流程的角度考慮問(wèn)題而不是從應(yīng)用程序和程序的角度考慮問(wèn)題,這使得業(yè)務(wù)管理可以根據(jù)業(yè)務(wù)的操作清楚地確定什么需要添加、修改或刪除。
48、然后可以將軟件系統(tǒng)構(gòu)造為適合業(yè)務(wù)處理的方式,而不是在許多現(xiàn)有的軟件平臺(tái)上常??吹降钠渌绞健?/p>
49、 正如您可以看到的,在這里,改變和 SOA 系統(tǒng)適應(yīng)改變的能力是最重要的部分。
50、對(duì)于開發(fā)人員來(lái)說(shuō),這樣的改變無(wú)論是在他們工作的范圍之內(nèi)還是在他們工作的范圍之外都有可能發(fā)生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進(jìn)行交互。
51、與開發(fā)人員不同的是,架構(gòu)師的作用就是引起對(duì) SOA 模型大的改變。
52、這種分工,就是讓開發(fā)人員集中精力于創(chuàng)建作為服務(wù)定義的功能單元,而讓架構(gòu)師和建模人員集中精力于如何將這些單元適當(dāng)?shù)亟M織在一起,它已經(jīng)有十多年的歷史了,通常用統(tǒng)一建模語(yǔ)言(Universal Modeling Language,UML),并且描述成模型驅(qū)動(dòng)的體系結(jié)構(gòu)(Model-Driven Architecture,MDA)。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!