點擊查看:歷年計算機軟考《系統(tǒng)分析師》復(fù)習(xí)知識點總結(jié)
SOA
【基本概念】
1、SOA定義:
一種粗粒度、松耦合的體系結(jié)構(gòu)模型;不同功能單元通過中立方式定義的接口聯(lián)系起來;獨立于硬件、操作系統(tǒng)、編程語言;構(gòu)建的服務(wù)以統(tǒng)一通用方式進行交互;
SOA涉及三種角色:1)服務(wù)提供者(Service Provider);2)服務(wù)請求者(Service Requestor);3)服務(wù)目錄 (Service Registry)。
SOA涉及三個操作:1)發(fā)布(Publish);2)查找(Find);3)綁定(Bind)。
2、三個抽象級別:操作、服務(wù)、業(yè)務(wù)流程;
3、3個軟件層次:
(1)基礎(chǔ)設(shè)計層:OOA、OOD思想,設(shè)計開發(fā)底層服務(wù)構(gòu)件;
(2)應(yīng)用結(jié)構(gòu)層:采用EA架構(gòu),以表示業(yè)務(wù)服務(wù)邏輯構(gòu)建為中心,集中定義服務(wù)間接口和服務(wù)級協(xié)定;
(3)業(yè)務(wù)組織層:BMP,流程編排與組織;
4、SOA常用標(biāo)準(zhǔn)、規(guī)范:
SOAP, WSDL, UDDI
WSDL,UDDI和SOAP是SOA基礎(chǔ)的基礎(chǔ)部件。WSDL用來描述服務(wù);UDDI用來注冊和查找服務(wù);而SOAP,作為傳輸層,用來在消費者和服務(wù)提供者之間傳送消息。SOAP是Web服務(wù)的默認(rèn)機制,其他的技術(shù)為可以服務(wù)實現(xiàn)其他類型的綁定。一個消費者可以在UDDI注冊表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過SOAP來調(diào)用服務(wù)。
5、SOA特征
·可從企業(yè)外部訪問
·隨時可用
·粗粒度的服務(wù)接口分級
·松散耦合
·可重用的服務(wù)
·服務(wù)接口設(shè)計管理
·標(biāo)準(zhǔn)化的服務(wù)接口
·支持各種消息模式
·精確定義的服務(wù)契約
6、關(guān)鍵問題
·發(fā)現(xiàn)服務(wù)
·服務(wù)規(guī)約
·服務(wù)實現(xiàn)
7、基礎(chǔ)架構(gòu)
【優(yōu)勢】
SOA是一種可適應(yīng)的、靈活的體系結(jié)構(gòu)類型,基于SOA構(gòu)建的系統(tǒng)架構(gòu)可以在系統(tǒng)的開發(fā)和維護中縮短產(chǎn)品上市時間,因而可以降低企業(yè)系統(tǒng)開發(fā)的成本和風(fēng)險。因此,當(dāng)SOA架構(gòu)師遇到一個十分復(fù)雜的企業(yè)系統(tǒng)時,首先考慮的應(yīng)該是如何重用已有的投資而不是替換遺留系統(tǒng)
【作用】
SOA解決的是集成的問題,包括數(shù)據(jù)集成、應(yīng)用集成、流程集成等,分兩步:一是將業(yè)務(wù)系統(tǒng)能力分解為獨立、自治、離散和可復(fù)用的服務(wù);二是對服務(wù)進行組裝和編排來滿足業(yè)務(wù)和流程的變化。
SOA本身是集成平臺,本身并不產(chǎn)生能力,本身也不存儲和結(jié)構(gòu)化數(shù)據(jù),SOA服務(wù)目錄庫能力源自業(yè)務(wù)系統(tǒng),業(yè)務(wù)系統(tǒng)提供服務(wù)注冊到SOA服務(wù)目錄庫,SOA更多是能力集成平臺,可以將業(yè)務(wù)系統(tǒng)各個層面能力轉(zhuǎn)化為數(shù)據(jù)服務(wù)、業(yè)務(wù)服務(wù)、流程服務(wù)和展現(xiàn)層服務(wù)。通過SOA集成這些服務(wù),提供統(tǒng)一的服務(wù)目錄庫來屏蔽底層業(yè)務(wù)系統(tǒng)。
【SOA解決方案】
【注意事項】
最常見的失誤包括:
1. 注意供應(yīng)商專有服務(wù)產(chǎn)品 。不要局限于實際上具有專有特征的 SOA 供應(yīng)商產(chǎn)品;這可能會導(dǎo)致失去真正 SOA 的互操作性和靈活性好處。
2. 尋求使用開放標(biāo)準(zhǔn)的穩(wěn)定性 。行業(yè)中的最新開放標(biāo)準(zhǔn)規(guī)范并不一定是最穩(wěn)定的;因此,可能并不成熟,不適合采用。
3. 仔細(xì)評估遺留資產(chǎn)現(xiàn)代化工作 。選擇特定遺留系統(tǒng)進行現(xiàn)代化工作時,請從企業(yè)的全局出發(fā)進行考慮。SOA 過渡中的豎井 (Silo) 方法可能導(dǎo)致出現(xiàn)冗余。
4. 避免“瀑布”式開發(fā)和缺少服務(wù)版本控制的情況 。SOA 過渡本質(zhì)上應(yīng)該具有迭代的特征。服務(wù)生命周期管理應(yīng)該具有維護服務(wù)的多個版本的功能。
5. 了解遺留系統(tǒng)的技術(shù)限制 。在進行遺留資產(chǎn)現(xiàn)代化工作前,請充分考慮遺留系統(tǒng)的所有技術(shù)限制。
6. 不要將 SOA 等同于 Web 服務(wù) 。了解 SOA(一種體系結(jié)構(gòu)樣式)和 Web 服務(wù)(一組 SOA 實現(xiàn)標(biāo)準(zhǔn))間的差異。
7. 避免采用豎井方法處理服務(wù)創(chuàng)建和所有關(guān)系 。理解傳統(tǒng)應(yīng)用程序開發(fā)和基于 SOA 的開發(fā)之間的范式轉(zhuǎn)換。
8. 避免使用細(xì)粒度服務(wù) 。與細(xì)粒度應(yīng)用程序編程接口(Application Program Interfaces,API)相比,服務(wù)是更高級的抽象。服務(wù)應(yīng)該為粗粒度的,且與業(yè)務(wù)一致。
9. 避免點到點調(diào)用 。使 SOA 生態(tài)系統(tǒng)具有可管理性,且組件間采用松散耦合方式。加入中介層,以處理服務(wù)發(fā)現(xiàn)和調(diào)用,并協(xié)調(diào)不同 SOA 實現(xiàn)間的基礎(chǔ)技術(shù)差異。
10. 避免不遵循標(biāo)準(zhǔn)的情況 。采用穩(wěn)定的、經(jīng)過驗證的行業(yè)特定標(biāo)準(zhǔn)。此方法將為您的 SOA 帶來互操作性的好處。
11. 使用冗余數(shù)據(jù)存儲 。將重點放在數(shù)據(jù)整合策略上。通過創(chuàng)建虛擬數(shù)據(jù)服務(wù)來提供數(shù)據(jù)冗余性。
12. 避免使用“大爆炸”方法 。對于復(fù)雜 SOA 過渡,請完全避免使用“大爆炸”方法。請充分認(rèn)識到,最好的平穩(wěn) SOA 過渡是通過采用迭代方法實現(xiàn)的,并尊重這一事實。
13. 分配服務(wù)所有關(guān)系 。不要讓服務(wù)孤立。為其提供一個環(huán)境,讓某個業(yè)務(wù)部門作為其所有者。此所有關(guān)系使得有人負(fù)責(zé)維護非功能性服務(wù)質(zhì)量。
進行 SOA 治理 。授權(quán)治理組織管理整個服務(wù)生命周期。
【面向服務(wù)的開發(fā)】
·兩個視圖:服務(wù)提供者關(guān)注服務(wù)實現(xiàn)、封裝、發(fā)布、服務(wù)消費者關(guān)注服務(wù)組合滿足需求;
·面向重用的開發(fā);
面向服務(wù)開發(fā)是對前面已經(jīng)討論過的面向過程、面向?qū)ο蟆⒚嫦蚍矫娴乳_發(fā)方法的補充。它具有以下優(yōu)點:
1重用:創(chuàng)建可重用用各種業(yè)務(wù)應(yīng)用的服務(wù)能力;
2 效率:通過組合現(xiàn)有服務(wù),以快速創(chuàng)建新的服務(wù)和業(yè)務(wù)應(yīng)用的能力,這樣就可以集中精力于數(shù)據(jù)共享,而不是底層實現(xiàn)的能力;
3 與技術(shù)的松耦合:獨立于服務(wù)的執(zhí)行環(huán)境進行服務(wù)建模的能力。例如,緊緊盯以服務(wù)能夠收發(fā)的消息,而不需要考慮具體的技術(shù)實現(xiàn)。
4職責(zé)的劃分:可以令業(yè)務(wù)人員和技術(shù)人員分別關(guān)注業(yè)務(wù)問題和技術(shù)問題,雙方通過服務(wù)契約進行協(xié)同。
當(dāng) SOA 架構(gòu)師構(gòu)建一個企業(yè)級的 SOA 系統(tǒng)架構(gòu)的時候,關(guān)于系統(tǒng)中最重要的元素,也就是 SOA系統(tǒng)中的服務(wù)的構(gòu)建。
有一點需要特別注意的地方,就是對于服務(wù)粒度的控制。服務(wù)粒度的控制 SOA 系統(tǒng)中的服務(wù)粒度的控制是一項十分重要的設(shè)計任務(wù)。通常來說,由于服務(wù)的訪問通常是遠(yuǎn)程的,所以,對于將暴露在整個系統(tǒng)外部的服務(wù)推薦使用粗粒度的接口,而相對較細(xì)粒度的服務(wù)接口通常用于企業(yè)系統(tǒng)架構(gòu)的內(nèi)部。
應(yīng)用服務(wù)來設(shè)計、開發(fā)和部署應(yīng)用,需要在思考方式上發(fā)生重大轉(zhuǎn)變,為了幫助這一轉(zhuǎn)變的完成,我們可以把 IT部門的職責(zé)劃分為兩個部分:
1創(chuàng)建服務(wù):處理服務(wù)所涉及的復(fù)雜的下層技術(shù),確保 Web 服務(wù)的描述與服務(wù)消費者的需要相一致,而且雙方共享著應(yīng)該有的數(shù)據(jù)。
2使用服務(wù):組裝新的合成應(yīng)用(Composite Applications)和業(yè)務(wù)流程流(Business Process Flows),確保共享數(shù)據(jù)以及業(yè)務(wù)流程流能夠準(zhǔn)確反映業(yè)務(wù)的運營和戰(zhàn)略需求。
在項目層次上,架構(gòu)師通常要指導(dǎo)可重用服務(wù)的開發(fā),并確定一種存放、管理和檢索服務(wù)描述的方法?芍赜玫姆⻊(wù)層把業(yè)務(wù)操作(比如“獲取客戶信息”、“下訂單”)與下層軟件平臺的實現(xiàn)差異相隔離(就象瀏覽器把服務(wù)器的實現(xiàn)語言的差異相隔離一樣),這樣,就有可能具備把可重用的服務(wù)快速組合成更大服務(wù)的能力,這樣,組織就具備了使過程自動化和快速適應(yīng)環(huán)境的優(yōu)點。事實上,定義可重用的服務(wù)是面向服務(wù)最重要的方面,要實現(xiàn)服務(wù)的最高價值,必須在開發(fā)的時候,就考慮與其它服務(wù)的互操作,并且通過與其它服務(wù)的組合來構(gòu)建應(yīng)用。這種思想上的轉(zhuǎn)變,可能需要某個處于領(lǐng)導(dǎo)職位上的人協(xié)調(diào)完成檢查設(shè)計,以確保它們與新的 IT 目標(biāo)一致。
【與數(shù)據(jù)倉庫關(guān)系】
把數(shù)據(jù)和服務(wù)作為企業(yè)的資產(chǎn)
主數(shù)據(jù)(Master Data,MD)指系統(tǒng)間共享數(shù)據(jù)(例如,客戶、供應(yīng)商、賬戶和組織部門相關(guān)數(shù)據(jù))。與記錄業(yè)務(wù)活動,變動較大的交易數(shù)據(jù)相比,主數(shù)據(jù)(也稱基準(zhǔn)數(shù)據(jù))變化緩慢,一般每年的變化在 20 %左右。
(區(qū)別元數(shù)據(jù):元數(shù)據(jù)是指表示數(shù)據(jù)的相關(guān)信息,比如數(shù)據(jù)定義等,而主數(shù)據(jù)是指實例數(shù)據(jù),比如產(chǎn)品目錄信息等。)
數(shù)據(jù)存儲層規(guī)劃:為了保證業(yè)務(wù)系統(tǒng)的性能同時實現(xiàn)數(shù)據(jù)的共享、數(shù)據(jù)分析的需要,將數(shù)據(jù)存儲層的數(shù)據(jù)分為三個層次:私有數(shù)據(jù)層、共享數(shù)據(jù)層和分析數(shù)據(jù)層。
·私有數(shù)據(jù)層:主要用于支撐企業(yè)的運營,是典型的操作型數(shù)據(jù)環(huán)境。包括經(jīng)營、財務(wù)、人力資源、資產(chǎn)管理等已有系統(tǒng)的數(shù)據(jù)庫,其主要職能在于支撐企業(yè)日常的經(jīng)營和管理活動的運營需要。
·共享數(shù)據(jù)層:包含業(yè)務(wù)共享數(shù)據(jù)、主數(shù)據(jù)、系統(tǒng)數(shù)據(jù)、流程數(shù)據(jù)和元數(shù)據(jù)。
·分析數(shù)據(jù)層:該層的數(shù)據(jù)集主要用于支撐企業(yè)的管理和決策需要,是典型的分析型數(shù)據(jù)環(huán)境。它從數(shù)據(jù)倉庫中提取數(shù)據(jù)并整合管理決策所需要的數(shù)據(jù)集。
【與云計算關(guān)系】
• 應(yīng)用系統(tǒng)涉及的跨系統(tǒng)邊界的主數(shù)據(jù)抽象到主數(shù)據(jù)管理系統(tǒng),提高數(shù)據(jù)服務(wù)能力。
• 業(yè)務(wù)系統(tǒng)下層,業(yè)務(wù)模塊分為界面和邏輯兩個部分內(nèi)容,業(yè)務(wù)模塊下沉為提供業(yè)務(wù)服務(wù)能力的單元
• 流程引擎+業(yè)務(wù)規(guī)則引擎可以進一步對業(yè)務(wù)服務(wù),數(shù)據(jù)服務(wù)進行服務(wù)的編排
• 展現(xiàn)層可以實現(xiàn)界面層的組裝,可以調(diào)用數(shù)據(jù)服務(wù)能力和業(yè)務(wù)服務(wù)能力
【云計算融合】
SOA中的ESB能力,流程引擎能力、規(guī)則引擎能力,演化至云計算中的Pssa層;
硬件能力(底層虛擬化資源池:計算能力、存儲能力、網(wǎng)絡(luò)能力),可以集成至ESB ;
【展望】
IBM談到的下一代SOA的概念,說到下一代 SOA 需要做到五件事:連接本地應(yīng)用和云應(yīng)用、將應(yīng)用擴展到移動設(shè)備上、連接到物聯(lián)網(wǎng)、發(fā)布 API 并將企業(yè)連接到社交網(wǎng)絡(luò)、提供可以滿足大數(shù)據(jù)需求的服務(wù)規(guī)模和質(zhì)量。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |