日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SOA面向服务架构详解

發(fā)布時(shí)間:2023/12/9 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SOA面向服务架构详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、定義介紹

? ? ? ?SOA(Service-Oriented Architecture,面向服務(wù)的架構(gòu))是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。面向服務(wù)架構(gòu),它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。

? ? ? ?SOA是一種粗粒度、松耦合服務(wù)架構(gòu)服務(wù)之間通過簡單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。SOA可以看作是B/S模型、XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)/Web Service技術(shù)之后的自然延伸。

? ? ? ?SOA將能夠幫助軟件工程師們站在一個(gè)新的高度理解企業(yè)級架構(gòu)中的各種組件的開發(fā)、部署形式,它將幫助企業(yè)系統(tǒng)架構(gòu)者以更迅速、更可靠、更具重用性架構(gòu)整個(gè)業(yè)務(wù)系統(tǒng)。較之以往,以SOA架構(gòu)的系統(tǒng)能夠更加從容地面對業(yè)務(wù)的急劇變化

二、體系結(jié)構(gòu)

松耦合的系統(tǒng)

? ? ? ?這種具有中立的接口定義(沒有強(qiáng)制綁定到特定的實(shí)現(xiàn)上)的特征稱為服務(wù)之間的松耦合。松耦合系統(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ù)存在。與之相反,緊耦合意味著應(yīng)用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當(dāng)需要對部分或整個(gè)應(yīng)用程序進(jìn)行某種形式的更改時(shí),它們就顯得非常脆弱。

? ? ? ?對松耦合的系統(tǒng)的需要來源于業(yè)務(wù)應(yīng)用程序需要根據(jù)業(yè)務(wù)的需要變得更加靈活,以適應(yīng)不斷變化的環(huán)境,比如經(jīng)常改變的政策、業(yè)務(wù)級別、業(yè)務(wù)重點(diǎn)、合作伙伴關(guān)系、行業(yè)地位以及其他與業(yè)務(wù)有關(guān)的因素,這些因素甚至?xí)绊憳I(yè)務(wù)的性質(zhì)。我們稱能夠靈活地適應(yīng)環(huán)境變化的業(yè)務(wù)為按需(On demand)業(yè)務(wù),在按需業(yè)務(wù)中,一旦需要,就可以對完成或執(zhí)行任務(wù)的方式進(jìn)行必要的更改。

? ? ? ?雖然面向服務(wù)的體系結(jié)構(gòu)不是一個(gè)新鮮事物,但它卻是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P?#xff0c;面向?qū)ο蟮哪P褪蔷o耦合的,已經(jīng)存在二十多年了。雖然基于 SOA 的系統(tǒng)并不排除使用面向?qū)ο蟮脑O(shè)計(jì)來構(gòu)建單個(gè)服務(wù),但是其整體設(shè)計(jì)卻是面向服務(wù)的。由于它考慮到了系統(tǒng)內(nèi)的對象,所以雖然 SOA 是基于對象的,但是作為一個(gè)整體,它卻不是面向?qū)ο蟮摹2煌幵谟诮涌诒旧怼OA 系統(tǒng)原型的一個(gè)典型例子是通用對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA),它已經(jīng)出現(xiàn)很長時(shí)間了,其定義的概念與 SOA 相似。

? ? ? ?然而, SOA 已經(jīng)有所不同了,因?yàn)樗蕾囉谝恍└碌倪M(jìn)展,這些進(jìn)展是以可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)為基礎(chǔ)的。通過使用基于XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集) 的語言(稱為 Web 服務(wù)描述語言(Web Services Definition Language,WSDL))來描述接口,服務(wù)已經(jīng)轉(zhuǎn)到更動態(tài)且更靈活的接口系統(tǒng)中,非以前 CORBA 中的接口描述語言(Interface Definition Language,IDL)可比了。

? ? ? ?Web 服務(wù)并不是實(shí)現(xiàn) SOA 的惟一方式。前面剛講的 CORBA 是另一種方式,這樣就有了面向消息的中間件(Message-Oriented Middleware)系統(tǒng),比如 IBM 的 MQseries。但是為了建立體系結(jié)構(gòu)模型,您所需要的并不只是服務(wù)描述。您需要定義整個(gè)應(yīng)用程序如何在服務(wù)之間執(zhí)行其工作流。您尤其需要找到業(yè)務(wù)的操作和業(yè)務(wù)中所使用的軟件的操作之間的轉(zhuǎn)換點(diǎn)。因此,SOA 應(yīng)該能夠?qū)I(yè)務(wù)的商業(yè)流程與它們的技術(shù)流程聯(lián)系起來,并且映射這兩者之間的關(guān)系。例如,給供應(yīng)商付款的操作是商業(yè)流程,而更新您的零件數(shù)據(jù)庫,以包括進(jìn)新供應(yīng)的貨物卻是技術(shù)流程。因而,工作流還可以在 SOA 的設(shè)計(jì)中扮演重要的角色。

? ? ? ?此外,動態(tài)業(yè)務(wù)的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進(jìn)行的操作。因此,為了提高效率,您需要定義應(yīng)該如何得知服務(wù)之間的關(guān)系的策略,這種策略常常采用服務(wù)級協(xié)定和操作策略的形式。

? ? ? ?最后,所有這些都必須處于一個(gè)信任和可靠的環(huán)境之中,以同預(yù)期的一樣根據(jù)約定的條款來執(zhí)行流程。因此,安全、信任和可靠的消息傳遞應(yīng)該在任何 SOA 中都起著重要的作用。

三、體系結(jié)構(gòu)作用

? ? ? ?我可以用面向服務(wù)的體系結(jié)構(gòu)做什么?

? ? ? ?對 SOA 的需要來源于需要使業(yè)務(wù) IT 系統(tǒng)變得更加靈活,以適應(yīng)業(yè)務(wù)中的改變。通過允許強(qiáng)定義的關(guān)系和依然靈活的特定實(shí)現(xiàn),IT 系統(tǒng)既可以利用現(xiàn)有系統(tǒng)的功能,又可以準(zhǔn)備在以后做一些改變來滿足它們之間交互的需要。

? ? ? ?下面舉一個(gè)具體的例子。一個(gè)服裝零售組織擁有 500 家國際連鎖店,它們常常需要更改設(shè)計(jì)來趕上時(shí)尚的潮流。這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產(chǎn)品。如果零售商和制造商之間的系統(tǒng)不兼容,那么從一個(gè)供應(yīng)商到另一個(gè)供應(yīng)商的更換可能就是一個(gè)非常復(fù)雜的軟件流程。通過利用 WSDL 接口在操作方面的靈活性,每個(gè)公司都可以將它們的現(xiàn)有系統(tǒng)保持現(xiàn)狀,而僅僅匹配 WSDL 接口并制訂新的服務(wù)級協(xié)定,這樣就不必完全重構(gòu)它們的軟件系統(tǒng)了。這是業(yè)務(wù)的水平改變,也就是說,它們改變的是合作伙伴,而所有的業(yè)務(wù)操作基本上都保持不變。這里,業(yè)務(wù)接口可以作少許改變,而內(nèi)部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。

? ? ? ?另一種形式是內(nèi)部改變,在這種改變中,零售組織決定它還將把連鎖零售商店內(nèi)的一些地方出租給專賣流行衣服的小商店,這可以看作是采用店中店(store-in-store)的業(yè)務(wù)模型。這里,雖然公司的大多數(shù)業(yè)務(wù)操作都保持不變,但是它們需要新的內(nèi)部軟件來處理這樣的出租安排。盡管在內(nèi)部軟件系統(tǒng)可以承受全面的檢修,但是它們需要在這樣做的同時(shí)不會對與現(xiàn)有的供應(yīng)商系統(tǒng)的交互產(chǎn)生大的影響。在這種情況下,SOA 模型保持原封不動,而內(nèi)部實(shí)現(xiàn)卻發(fā)生了變化。雖然可以將新的方面添加到 SOA 模型中來加入新的出租安排的職責(zé),但是正常的零售管理系統(tǒng)繼續(xù)如往常一樣。

? ? ? ?為了延續(xù)內(nèi)部改變的觀念,IT 經(jīng)理可能會發(fā)現(xiàn),軟件的新配置還可以以另外的一種方式加以使用,比如出租粘貼海報(bào)的地方以供廣告之用。這里,新的業(yè)務(wù)提議是通過在新的設(shè)計(jì)中重用靈活的 SOA 模型得出的。這是來自 SOA 模型的新成果,并且還是一個(gè)新的機(jī)會,而這樣的新機(jī)會在以前可能是不會有的。

? ? ? ?垂直改變也是可能的,在這種改變中,零售商從銷售他們自己的服裝完全轉(zhuǎn)變到專門通過店中店模型出租地方。如果垂直改變完全從最底層開始的話,就會帶來 SOA 模型結(jié)構(gòu)的顯著改變,與之一起改變的還可能有新的系統(tǒng)、軟件、流程以及關(guān)系。在這種情況下,SOA 模型的好處是它從業(yè)務(wù)操作和流程的角度考慮問題而不是從應(yīng)用程序和程序的角度考慮問題,這使得業(yè)務(wù)管理可以根據(jù)業(yè)務(wù)的操作清楚地確定什么需要添加、修改或刪除。然后可以將軟件系統(tǒng)構(gòu)造為適合業(yè)務(wù)處理的方式,而不是在許多現(xiàn)有的軟件平臺上常常看到的其他方式。

? ? ? ?正如您可以看到的,在這里,改變和 SOA 系統(tǒng)適應(yīng)改變的能力是最重要的部分。對于開發(fā)人員來說,這樣的改變無論是在他們工作的范圍之內(nèi)還是在他們工作的范圍之外都有可能發(fā)生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進(jìn)行交互。與開發(fā)人員不同的是,架構(gòu)師的作用就是引起對 SOA 模型大的改變。這種分工,就是讓開發(fā)人員集中精力于創(chuàng)建作為服務(wù)定義的功能單元,而讓架構(gòu)師和建模人員集中精力于如何將這些單元適當(dāng)?shù)亟M織在一起,它已經(jīng)有十多年的歷史了,通常用統(tǒng)一建模語言(Unified Modeling Language,UML),并且描述成模型驅(qū)動的體系結(jié)構(gòu)(Model-Driven Architecture,MDA)。

? ? ? ?對于面向同步和異步應(yīng)用的,基于請求/響應(yīng)模式的分布式計(jì)算來說,SOA是一場革命。一個(gè)應(yīng)用程序的業(yè)務(wù)邏輯(business logic)或某些單獨(dú)的功能被模塊化并作為服務(wù)呈現(xiàn)給消費(fèi)者或客戶端。這些服務(wù)的關(guān)鍵是他們的松耦合特性。例如,服務(wù)的接口和實(shí)現(xiàn)相獨(dú)立。應(yīng)用開發(fā)人員或者系統(tǒng)集成者可以通過組合一個(gè)或多個(gè)服務(wù)來構(gòu)建應(yīng)用,而無須理解服務(wù)的底層實(shí)現(xiàn)。舉例來說,一個(gè)服務(wù)可以用.NET或J2EE來實(shí)現(xiàn),而使用該服務(wù)的應(yīng)用程序可以在不同的平臺之上,使用的語言也可以不同。.

四、特性狀況

基本特征

? ? ? ?SOA的實(shí)施具有幾個(gè)鮮明的基本特征。實(shí)施SOA的關(guān)鍵目標(biāo)是實(shí)現(xiàn)企業(yè)IT資產(chǎn)的最大化作用。要實(shí)現(xiàn)這一目標(biāo),就要在實(shí)施SOA的過程中牢記以下特征:

(1)可從企業(yè)外部訪問

(2)隨時(shí)可用

(3)粗粒度的服務(wù)接口分級

(4)松散耦合

(5)可重用的服務(wù)

(6)服務(wù)接口設(shè)計(jì)管理

(7)標(biāo)準(zhǔn)化的服務(wù)接口

(8)支持各種消息模式

(9)精確定義的服務(wù)契約

? ? ? ?SOA服務(wù)具有平臺獨(dú)立的自我描述XML文檔。Web服務(wù)描述語言(WSDL, Web Services Description Language)是用于描述服務(wù)的標(biāo)準(zhǔn)語言。

? ? ? ?SOA 服務(wù)用消息進(jìn)行通信,該消息通常使用XML Schema來定義(也叫做XSD, XML Schema Definition)。消費(fèi)者和提供者或消費(fèi)者和服務(wù)之間的通信多見于不知道提供者的環(huán)境中。服務(wù)間的通訊也可以看作企業(yè)內(nèi)部處理的關(guān)鍵商業(yè)文檔。

? ? ? ?在一個(gè)企業(yè)內(nèi)部,SOA服務(wù)通過一個(gè)扮演目錄列表(directory listing)角色的登記處(Registry)來進(jìn)行維護(hù)應(yīng)用程序在登記處(Registry)尋找并調(diào)用某項(xiàng)服務(wù)。統(tǒng)一描述,定義和集成(UDDI, Universal Description, Definition, and Integration)是服務(wù)登記的標(biāo)準(zhǔn)。

? ? ? ?每項(xiàng)SOA服務(wù)都有一個(gè)與之相關(guān)的服務(wù)品質(zhì)(QoS, quality of service)。QoS的一些關(guān)鍵元素有安全需求(例如認(rèn)證和授權(quán)),可靠通信(譯注:可靠消息是指確保消息“僅且僅僅”發(fā)送一次,從而過濾重復(fù)信息。),以及誰能調(diào)用服務(wù)的策略。

五、新興變革

隨著全球信息化的浪潮,信息化產(chǎn)業(yè)不斷發(fā)展、延伸,已經(jīng)深入了眾多的企業(yè)及個(gè)人,SOA系統(tǒng)架構(gòu)的出現(xiàn),將給信息化帶來一場新的革命。?

? ? ? ?縱觀信息化建設(shè)與應(yīng)用的歷程,盡管出現(xiàn)過XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)、Unicode、UML等眾多信息標(biāo)準(zhǔn),但是許多異構(gòu)系統(tǒng)之間的數(shù)據(jù)源仍然使用各自獨(dú)立的數(shù)據(jù)格式、元數(shù)據(jù)以及元模型,這是信息產(chǎn)品提供商一直以來形成的習(xí)慣。各個(gè)相對獨(dú)立的源數(shù)據(jù)集成一起,往往通過構(gòu)建一定的數(shù)據(jù)獲取與計(jì)算程序來實(shí)現(xiàn),這樣的做法需要花費(fèi)大量工作。信息孤島大量存在的事實(shí),使信息化建設(shè)的ROI(投資回報(bào)率)大大降低,ETL成為集中這些異構(gòu)數(shù)據(jù)的有效工具。 ETL常用于從源系統(tǒng)中提取數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為與目標(biāo)系統(tǒng)相兼容的格式,然后將其裝載到目標(biāo)系統(tǒng)中。數(shù)據(jù)經(jīng)過獲取、轉(zhuǎn)換、裝載后,要產(chǎn)生應(yīng)用價(jià)值,還需另外的數(shù)據(jù)展現(xiàn)工具予以實(shí)現(xiàn),如此復(fù)雜的數(shù)據(jù)應(yīng)用過程,必定產(chǎn)生高昂的應(yīng)用成本。

? ? ? ?結(jié)構(gòu)化的數(shù)據(jù)管理尚可通過以上方法,予以實(shí)現(xiàn)其集成應(yīng)用。在非結(jié)構(gòu)化的內(nèi)容方面,這些具有挑戰(zhàn)性的問題令人生畏。內(nèi)容管理的應(yīng)用方案基于不同的信息化應(yīng)用系統(tǒng),而且大部分是縱向的以組織部門為界限的。在內(nèi)容管理市場中,經(jīng)常使用來自不同廠商的產(chǎn)品來提供這些解決方案。即使是同一個(gè)廠商的產(chǎn)品,相互之間的功能也是經(jīng)常重疊,并且無法集成。

? ? ? ?隨著信息化建設(shè)的深入,不同應(yīng)用系統(tǒng)之間的功能界限已趨于模糊。同時(shí)企業(yè)資源計(jì)劃系統(tǒng)和協(xié)同商務(wù)系統(tǒng),又需要商業(yè)智能的分析展現(xiàn)數(shù)據(jù)提供用戶操作依據(jù)。

? ? ? ?在激烈競爭且多變的市場環(huán)境下,企業(yè)的管理模式很難固化,應(yīng)用傳統(tǒng)的信息化軟件,當(dāng)企業(yè)要做出一些改動時(shí)需要面對巨大的挑戰(zhàn)。

SOA系統(tǒng)架構(gòu)的出現(xiàn),信息化變革

? ? ? ?微軟大中華區(qū)服務(wù)部總經(jīng)理辛兒倫介紹說,從上世紀(jì)60年代應(yīng)用于主機(jī)的大型主機(jī)系統(tǒng),到80年代應(yīng)用于PC的CS 架構(gòu),一直到90年代互聯(lián)網(wǎng)的出現(xiàn),系統(tǒng)越來越朝小型化和分布式發(fā)展。2000年WebService出現(xiàn)后,SOA被譽(yù)為下一代Web服務(wù)的基礎(chǔ)框架,已經(jīng)成為計(jì)算機(jī)信息領(lǐng)域的一個(gè)新的發(fā)展方向。

? ? ? ?SOA的出現(xiàn)給傳統(tǒng)的信息化產(chǎn)業(yè)帶來新的概念,不再是各自獨(dú)立的架構(gòu)形式,能夠輕松的互相聯(lián)系組合共享信息

? ? ? ?可復(fù)用以往的信息化軟件。基于SOA的協(xié)同軟件提供了應(yīng)用集成功能,能夠?qū)RP、CRM、HR等異構(gòu)系統(tǒng)的數(shù)據(jù)集成。

? ? ? ?松散耦合方式,只要充分了解業(yè)務(wù)的進(jìn)程,就可以不用編寫一行代碼,通過流程圖實(shí)現(xiàn)一套我們自己的信息系統(tǒng)。就像已經(jīng)給你準(zhǔn)備好了磚瓦和水泥,只需要想好蓋什么樣的房子就可以輕松的蓋起。加快開發(fā)速度,并且減少了開發(fā)和維護(hù)的費(fèi)用。軟件將所有的管理提煉成表單和流程,以記錄管理的內(nèi)容,指定過程的流轉(zhuǎn)方向。

? ? ? ?更簡便的信息和數(shù)據(jù)集成。信息集成功能可以將散落在廣域網(wǎng)和局域網(wǎng)上的文檔、目錄、網(wǎng)頁輕松集成,加強(qiáng)了信息的協(xié)同相關(guān)性。同時(shí),復(fù)雜、成本高昂的數(shù)據(jù)集成,也變成了可以簡單且低成本實(shí)現(xiàn)的參數(shù)設(shè)定。創(chuàng)建了完全集成的信息化應(yīng)用新領(lǐng)域。

? ? ? ?在具體的功能實(shí)現(xiàn)上,SOA協(xié)同軟件所實(shí)現(xiàn)的功能包括了知識管理、流程管理、人事管理、客戶管理、項(xiàng)目管理、應(yīng)用集成等,從部門角度看涉及了行政、后勤、營銷、物流、生產(chǎn)等。從應(yīng)用思想上看,SOA協(xié)同軟件中的信息管理功能,全面兼顧了貫穿整個(gè)企業(yè)組織的信息化軟硬件投入。盡管各種IT技術(shù)可以用于不同的用途,但是信息管理并沒有任意地將信息分為結(jié)構(gòu)化或者非結(jié)構(gòu)化的部分,因此ERP等結(jié)構(gòu)化管理系統(tǒng)并不是信息化建設(shè)的全部;同時(shí),信息管理也沒有將信息化解決方案劃分為部門的視圖,因此僅僅以部分為界限去構(gòu)建軟件應(yīng)用功能的思想未必是不可撼動的。基于SOA的協(xié)同軟件與 ERP、CRM等傳統(tǒng)應(yīng)用軟件相比,關(guān)鍵的不同在于它可以在合適的時(shí)間、合適的地點(diǎn)并且有正當(dāng)理由向需要它提供服務(wù)的任何用戶提供服務(wù)。

六、為何選擇SOA

簡介介紹

? ? ? ?不同種類的操作系統(tǒng),應(yīng)用軟件,系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)相互交織,這便是IT企業(yè)的現(xiàn)狀。一些現(xiàn)存的應(yīng)用程序被用來處理當(dāng)前的業(yè)務(wù)流程(business processes),因此從頭建立一個(gè)新的基礎(chǔ)環(huán)境是不可能的。企業(yè)應(yīng)該能對業(yè)務(wù)的變化做出快速的反應(yīng),利用對現(xiàn)有的應(yīng)用程序和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)的投資來解決新的業(yè)務(wù)需求,為客戶,商業(yè)伙伴以及供應(yīng)商提供新的互動渠道,并呈現(xiàn)一個(gè)可以支持有機(jī)業(yè)務(wù)(organic business)的構(gòu)架。SOA憑借其松耦合的特性,使得企業(yè)可以按照模塊化的方式來添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需要,提供選擇從而可以通過不同的渠道提供服務(wù),并可以把企業(yè)現(xiàn)有的或已有的應(yīng)用作為服務(wù), 從而保護(hù)了現(xiàn)有的IT基礎(chǔ)建設(shè)投資。

? ? ? ?一個(gè)使用SOA的企業(yè),可以使用一組現(xiàn)有的應(yīng)用來創(chuàng)建一個(gè)供應(yīng)鏈復(fù)合應(yīng)用(supply chain composite application),這些現(xiàn)有的應(yīng)用通過標(biāo)準(zhǔn)接口來提供功能。

服務(wù)架構(gòu)

為了實(shí)現(xiàn)SOA,企業(yè)需要一個(gè)服務(wù)架構(gòu),下圖顯示了一個(gè)例子:

在上圖中, 服務(wù)消費(fèi)者(service consumer)可以通過發(fā)送消息來調(diào)用服務(wù)。這些消息由一個(gè)服務(wù)總線(service bus)轉(zhuǎn)換后發(fā)送給適當(dāng)?shù)姆?wù)實(shí)現(xiàn)。這種服務(wù)架構(gòu)可以提供一個(gè)業(yè)務(wù)規(guī)則引(business rules engine),該引擎容許業(yè)務(wù)規(guī)則被合并在一個(gè)服務(wù)里或多個(gè)服務(wù)里。這種架構(gòu)也提供了一個(gè)服務(wù)管理基礎(chǔ)(service management infrastructure),用來管理服務(wù),類似審核,列表(billing),日志等功能。此外,該架構(gòu)給企業(yè)提供了靈活的業(yè)務(wù)流程,更好地處理控制請求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影響其他服務(wù)的情況下更改某項(xiàng)服務(wù)。

基礎(chǔ)結(jié)構(gòu)

要運(yùn)行,管理SOA應(yīng)用程序,企業(yè)需要SOA基礎(chǔ),這是SOA平臺的一個(gè)部分。SOA基礎(chǔ)必須支持所有的相關(guān)標(biāo)準(zhǔn),和需要的運(yùn)行時(shí)容器。下圖所示的是一個(gè)典型的SOA基礎(chǔ)結(jié)構(gòu)。

SOAP, WSDL, UDDI

WSDL,UDDI和SOAP是SOA基礎(chǔ)的基礎(chǔ)部件。WSDL用來描述服務(wù);UDDI用來注冊和查找服務(wù);而SOAP,作為傳輸層,用來在消費(fèi)者和服務(wù)提供者之間傳送消息。SOAP是Web服務(wù)的默認(rèn)機(jī)制,其他的技術(shù)為可以服務(wù)實(shí)現(xiàn)其他類型的綁定。一個(gè)消費(fèi)者可以在UDDI注冊表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過SOAP來調(diào)用服務(wù)

WS-I Basic Profile

WS-I Basic Profile,由Web服務(wù)互用性組織(Web Services Interoperability Organization)提供,是SOA服務(wù)測試與互用性所需要的核心構(gòu)件。服務(wù)提供者可以使用Basic Profile測試程序來測試服務(wù)在不同平臺和技術(shù)上的互用性。

J2EE 和 .Net

盡管J2EE和.NET平臺是開發(fā)SOA應(yīng)用程序常用的平臺,但SOA不僅限于此。像J2EE這類平臺,不僅為開發(fā)者自然而然地參與到SOA中來提供了一個(gè)平臺,還通過他們內(nèi)在的特性,將可擴(kuò)展性,可靠性,可用性以及性能引入了SOA世界。新的規(guī)范,例如 JAXB(Java API for XML Binding),用于將XML文檔定位到Java類;JAXR(Java API for XML Registry)用來規(guī)范對UDDI注冊表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用來調(diào)用遠(yuǎn)程服務(wù),這使得開發(fā)和部署可移植于標(biāo)準(zhǔn)J2EE容器的Web服務(wù)變得容易,與此同時(shí),實(shí)現(xiàn)了跨平臺(如.NET)的服務(wù)互用。

服務(wù)品質(zhì)

在企業(yè)中,關(guān)鍵任務(wù)系統(tǒng)(mission-critical system,譯注:關(guān)鍵任務(wù)系統(tǒng)是指如果一個(gè)系統(tǒng)的可靠性對于一個(gè)組織是至關(guān)重要的,那么該系統(tǒng)就是該企業(yè)的關(guān)鍵任務(wù)系統(tǒng)。比如,電話系統(tǒng)對于一個(gè)電話促銷企業(yè)來說就是關(guān)鍵任務(wù)系統(tǒng),而文字處理系統(tǒng)就不那么關(guān)鍵了。)用來解決高級需求,例如安全性,可靠性,事物。當(dāng)一個(gè)企業(yè)開始采用服務(wù)架構(gòu)作為工具來進(jìn)行開發(fā)和部署應(yīng)用的時(shí)候,基本的Web服務(wù)規(guī)范,像WSDL,SOAP,以及UDDI就不能滿足這些高級需求。正如前面所提到的,這些需求也稱作服務(wù)品質(zhì)(QoS,quality of services)。與QoS相關(guān)的眾多規(guī)范已經(jīng)由一些標(biāo)準(zhǔn)化組織(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分將會討論一些QoS服務(wù)和相關(guān)標(biāo)準(zhǔn)。

安全質(zhì)量

Web服務(wù)安全規(guī)范用來保證消息的安全性。該規(guī)范主要包括認(rèn)證交換, 消息完整性和消息保密。該規(guī)范吸引人的地方在于它借助現(xiàn)有的安全標(biāo)準(zhǔn),例如,SAML(as Security Assertion Markup Language)來實(shí)現(xiàn)web服務(wù)消息的安全。OASIS正致力于Web服務(wù)安全規(guī)范的制定。

可靠信度

在典型的SOA 環(huán)境中,服務(wù)消費(fèi)者和服務(wù)提供者之間會有幾種不同的文檔在進(jìn)行交換。具有諸如“僅且僅僅傳送一次”( once-and-only-once delivery),“最多傳送一次”( at-most-once delivery),“重復(fù)消息過濾”(duplicate message elimination),“保證消息傳送”(guaranteed message delivery)等特性消息的發(fā)送和確認(rèn),在關(guān)鍵任務(wù)系統(tǒng)(mission-critical systems)中變得十分重要。WS-Reliability 和 WS-ReliableMessaging是兩個(gè)用來解決此類問題的標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)都由OASIS負(fù)責(zé)。

策略計(jì)劃

服務(wù)提供者有時(shí)候會要求服務(wù)消費(fèi)者與某種策略通信。比如,服務(wù)提供商可能會要求消費(fèi)者提供Kerberos安全標(biāo)示,才能取得某項(xiàng)服務(wù)。這些要求被定義為策略斷言(policy assertions)。一項(xiàng)策略可能會包含多個(gè)斷言。WS-Policy用來標(biāo)準(zhǔn)化服務(wù)消費(fèi)者和服務(wù)提供者之間的策略通信。

控制能力

當(dāng)企業(yè)著手于服務(wù)架構(gòu)時(shí),服務(wù)可以用來整合數(shù)據(jù)倉庫(silos of data),應(yīng)用程序,以及組件。整合應(yīng)用意味著例如異步通信,并行處理,數(shù)據(jù)轉(zhuǎn)換,以及校正等進(jìn)程請求必須被標(biāo)準(zhǔn)化。在SOA中,進(jìn)程是使用一組離散的服務(wù)創(chuàng)建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用來控制這些服務(wù)的語言。WSBPEL也由OASIS負(fù)責(zé)。

管理能力

隨著企業(yè)服務(wù)的增長,所使用的服務(wù)和業(yè)務(wù)進(jìn)程的數(shù)量也隨之增加,一個(gè)用來讓系統(tǒng)管理員管理所有運(yùn)行在多相環(huán)境下的服務(wù)的管理系統(tǒng)就顯得尤為重要。WSDM(Web Services for Distributed Management)規(guī)定了任何根據(jù)WSDM實(shí)現(xiàn)的服務(wù)都可以由一個(gè)WSDM適應(yīng)(WSDM-compliant)的管理方案來管理。

其它的qos特性,比如合作方之間的溝通和通訊,多個(gè)服務(wù)之間的事務(wù)處理,都在WS-Coordination 和 WS-Transaction 標(biāo)準(zhǔn)中描述, 這些都是OASIS 的工作。

Web服務(wù)

在理解SOA和Web服務(wù)的關(guān)系上,經(jīng)常發(fā)生混淆。根據(jù)2003年4月的Gartner報(bào)道,Yefim V. Natis就這個(gè)問題是這樣解釋的:“Web服務(wù)是技術(shù)規(guī)范,而SOA是設(shè)計(jì)原則。特別是Web服務(wù)中的WSDL,是一個(gè)SOA配套的接口定義標(biāo)準(zhǔn):這是Web服務(wù)和SOA的根本聯(lián)系。”從本質(zhì)上來說,SOA是一種架構(gòu)模式,而Web服務(wù)是利用一組標(biāo)準(zhǔn)實(shí)現(xiàn)的服務(wù)。Web服務(wù)是實(shí)現(xiàn)SOA的方式之一。用Web服務(wù)來實(shí)現(xiàn)SOA的好處是你可以實(shí)現(xiàn)一個(gè)中立平臺,來獲得服務(wù),而且隨著越來越多的軟件商支持越來越多的Web服務(wù)規(guī)范,你會取得更好的通用性。

SOA優(yōu)勢

SOA的概念并非什么新東西,SOA不同于現(xiàn)有的分布式技術(shù)之處在于大多數(shù)軟件商接受它并有可以實(shí)現(xiàn)SOA的平臺或應(yīng)用程序。SOA伴隨著無處不在的標(biāo)準(zhǔn),為企業(yè)的現(xiàn)有資產(chǎn)或投資帶來了更好的重用性。SOA能夠在最新的和現(xiàn)有的應(yīng)用之上創(chuàng)建應(yīng)用;SOA能夠使客戶或服務(wù)消費(fèi)者免予服務(wù)實(shí)現(xiàn)的改變所帶來的影響;SOA能夠升級單個(gè)服務(wù)或服務(wù)消費(fèi)者而無需重寫整個(gè)應(yīng)用,也無需保留已經(jīng)不再適用于新需求的現(xiàn)有系統(tǒng)。總而言之,SOA以借助現(xiàn)有的應(yīng)用來組合產(chǎn)生新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。

發(fā)展效益

A. 平衡最初的舊系統(tǒng)投資(Leverage initial investment):

組織過去所投資的系統(tǒng)、軟硬體,如果能再利用等于賦予其新的價(jià)值,這也替組織降低成本并增加競爭力。

B. 基礎(chǔ)建設(shè)的便利性(Infrastructure Commoditization):

讓所有的應(yīng)用程式能相互溝通(互通性)。

C. 快速的接近市場(Faster time-to-market):

服務(wù)的重復(fù)使用(再利用),來縮短過去的組織流程,更快速的提供服務(wù)來接近市場。

D. 減少支出(Reduce Cost):

服務(wù)的重復(fù)使用,可降低開發(fā)成本。因?yàn)殚_發(fā)新系統(tǒng)的成本,大部份比更新舊有系統(tǒng)來的花費(fèi)大。

E. 減低風(fēng)險(xiǎn)(Risk mitigation):

開發(fā)新系統(tǒng)的風(fēng)險(xiǎn)遠(yuǎn)大于更新舊系統(tǒng)。

F. 持續(xù)改善商業(yè)流程的循環(huán)(Continuous improvement cycle for business process)

G. 中心流程處理(Process-centric processing)

主要優(yōu)勢

一,SOA可通過互聯(lián)網(wǎng)服務(wù)器發(fā)布,從而突破企業(yè)內(nèi)網(wǎng)的限制,實(shí)現(xiàn)與供應(yīng)鏈上下游伙伴業(yè)務(wù)的緊密結(jié)合。通過SOA架構(gòu),企業(yè)可以與其業(yè)務(wù)伙伴直接建立新渠道,建立新伙伴的成本得以降低。

二,SOA與平臺無關(guān),減少了業(yè)務(wù)應(yīng)用實(shí)現(xiàn)的限制。要將企業(yè)的業(yè)務(wù)伙伴整合到企業(yè)的“大”業(yè)務(wù)系統(tǒng)中,對其業(yè)務(wù)伙伴具體采用什么技術(shù)沒有限制。

三, SOA具有低耦合性特點(diǎn),業(yè)務(wù)伙伴對整個(gè)業(yè)務(wù)系統(tǒng)的影響較低。在企業(yè)與各業(yè)務(wù)伙伴關(guān)系不斷發(fā)生變化的情況下,節(jié)省的費(fèi)用會越來越多。

四, SOA具有可按模塊分階段進(jìn)行實(shí)施的優(yōu)勢。可以成功一步再做下一步,將實(shí)施對企業(yè)的沖擊減少到最小。

五, SOA的實(shí)施可能并不具有成本顯著性。這要分三種情況加以討論:

(1) 當(dāng)企業(yè)從零開始構(gòu)建業(yè)務(wù)系統(tǒng)時(shí),采用SOA架構(gòu)與不采用SOA架構(gòu)成本可看做是相同的。

(2) 當(dāng)企業(yè)業(yè)務(wù)發(fā)展或發(fā)生企業(yè)重組等變化而原有系統(tǒng)不能滿足需要,而需要重構(gòu)業(yè)務(wù)系統(tǒng)時(shí),采用SOA架構(gòu)與不采用SOA架構(gòu)成本可看做是相同的。

(3) 當(dāng)企業(yè)業(yè)務(wù)發(fā)生緩慢變化并可預(yù)見到將來需要重構(gòu)業(yè)務(wù)系統(tǒng)時(shí),由于可以按模塊分階段逐步實(shí)施SOA以適應(yīng)變化的需要,這樣企業(yè)不需一下投入一大筆經(jīng)費(fèi)進(jìn)行系統(tǒng)改造,而是根據(jù)企業(yè)業(yè)務(wù)發(fā)展情況和資金情況逐步投入,緩解了信息投入的壓力。

推動因素

IDC負(fù)責(zé)企業(yè)平臺研究的副總裁Michelle Bailey說,最近的IDC的研究表明,到2011年,18%以上的全部新服務(wù)器都將采用虛擬化技術(shù),對于服務(wù)器硬件供應(yīng)商來說,這是一個(gè)年收入達(dá)220億美元的市場機(jī)會。

對于企業(yè)來說,日益增長的挑戰(zhàn)是如何管理和保證虛擬環(huán)境的安全,因?yàn)殡S著機(jī)構(gòu)采用虛擬化技術(shù),傳統(tǒng)的管理物理服務(wù)器蔓延的挑戰(zhàn)正在轉(zhuǎn)向管理虛擬機(jī)蔓延的挑戰(zhàn)。機(jī)構(gòu)將需要可靠的、穩(wěn)定的、安全的和可管理的虛擬化解決方案。

綠色I(xiàn)T一直被列為頭號的戰(zhàn)略技術(shù)和2008年大多數(shù)機(jī)構(gòu)的趨勢。據(jù)IDC稱,虛擬化的綠色的好處不僅是減少服務(wù)器占地面積,而是還包括減少碳排放量和耗電量。這些好處正在成為重要的好處。

據(jù)IDC對亞太地區(qū)綠色I(xiàn)T的調(diào)查,75%的受訪者對于IT部門沒有綠色I(xiàn)T政策。然而,80%以上的受訪者認(rèn)為他們的IT供應(yīng)商的“綠色”在未來幾年將更加重要。

虛擬化在這方面將發(fā)揮重要作用,一些企業(yè)將采用更環(huán)保的方法經(jīng)營業(yè)務(wù)以便贏得政府部門的合同。其它機(jī)構(gòu)正在采用虛擬化技術(shù)以便得到節(jié)省電源的好處和減少碳排放量的獎(jiǎng)勵(lì)。

同時(shí),一些企業(yè)管理者和市場研究人士也對虛擬化的未來發(fā)展發(fā)表了看法:

Avnet公司營銷經(jīng)理Michael Costigan:

盡管虛擬化有巨大的潛力,許多轉(zhuǎn)銷商不知道這種有潛力的新技術(shù)的實(shí)際狀況。機(jī)構(gòu)能夠獲得顯著的能量和計(jì)算效率,同時(shí)提高技術(shù)的應(yīng)用率和靈活性。

為了幫助你的客戶認(rèn)識到這些好處并且為你的企業(yè)建立強(qiáng)大的市場占有率,你需要了解這個(gè)強(qiáng)大的新技術(shù)的細(xì)節(jié),了解需要采取什么有效手段識別和利用虛擬化的真正機(jī)會。

虛擬化正在用來解決范圍日益廣泛的商業(yè)目標(biāo)和挑戰(zhàn),如服務(wù)器整合/保留、業(yè)務(wù)持續(xù)性、測試/開發(fā)優(yōu)化、軟件開發(fā)與發(fā)布以及桌面管理和安全。

人們對于虛擬化的未來顯然非常感興趣。但是,還有許多言過其實(shí)的宣傳。第一波x86服務(wù)器虛擬化的應(yīng)用一直集中在服務(wù)器整合方面,重點(diǎn)是減少資本開支 (也就是服務(wù)器開支)以及電源和冷卻等運(yùn)營開支。在未來的五年里,機(jī)構(gòu)將超越服務(wù)器整合尋求如何利用虛擬化技術(shù)得到其它的好處,如重點(diǎn)減少運(yùn)營成本(也就是物理管理成本)和讓基礎(chǔ)設(shè)施更有活力和更靈活,以便改善IT對于不斷變化的商業(yè)需求的反應(yīng)能力。

分析師認(rèn)為,虛擬化的下一個(gè)大事將是高可用性和災(zāi)難恢復(fù)工具。災(zāi)難恢復(fù)在歷史上一直是非常難管理的。虛擬化將提供一個(gè)節(jié)省成本的和容易管理的災(zāi)難恢復(fù)解決方案。

虛擬桌面基礎(chǔ)設(shè)施、資源平衡和應(yīng)用程序級高可用性可能是其它的未來應(yīng)用實(shí)例。這些解決方案有一些技術(shù)的和經(jīng)濟(jì)的障礙。這些障礙必須要在虛擬化廣泛應(yīng)用前克服。但是,考慮到虛擬化的重點(diǎn),這些障礙已經(jīng)在開始克服。虛擬化還將成為SOA(面向服務(wù)的架構(gòu))技術(shù)應(yīng)用的推動因素。?[4]??面向服務(wù)的體系結(jié)構(gòu)基于這些實(shí)際活動或業(yè)務(wù)服務(wù)進(jìn)行組織,而不是形成公司所維護(hù)的不同的信息豎井 (Silo)。通過實(shí)現(xiàn) SOA,可以帶來大量好處,包括以下各個(gè)方面:  *更高的業(yè)務(wù)和 IT 一致性

*基于組件的系統(tǒng)

*松散耦合的組件和系統(tǒng)

*基于網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,允許分散于各地且采用不同技術(shù)的資源協(xié)同工作

*動態(tài)構(gòu)建的按需應(yīng)用程序

*更高的代碼重用率

*更好地標(biāo)準(zhǔn)化整個(gè)企業(yè)內(nèi)的流程

*更易于集中企業(yè)控制

七、優(yōu)點(diǎn)

服務(wù)導(dǎo)向架構(gòu)并不是一種全新的解決方案;相反,SOA是技術(shù)與架構(gòu)的自然進(jìn)化。系統(tǒng)架構(gòu)一直在不斷進(jìn)步,與商業(yè)保持高度一致。系統(tǒng)設(shè)計(jì)師與商家很早就認(rèn)識到將技術(shù)與商業(yè)流程相協(xié)調(diào)的重要性,包括充分應(yīng)用并合理化技術(shù)資源,以及為商業(yè)提供更好的支持。

SOA也在一定程度上源于早已有之的企業(yè)架構(gòu)理論。企業(yè)架構(gòu)對技術(shù)進(jìn)行評估,但是更重要的是,它關(guān)注整個(gè)企業(yè)和全部的商業(yè)流程并提供了做出技術(shù)決策的背景信息。SOA工具則融合了互聯(lián)網(wǎng)技術(shù),如HTTP和XML,以及綜合技術(shù),如消息總線、轉(zhuǎn)譯技術(shù)和連接技術(shù)。?

總結(jié)

以上是生活随笔為你收集整理的SOA面向服务架构详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。