




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn)(碩士論文) 南京航空航天大學(xué)碩士學(xué)位論文 摘要 面向服務(wù)體系結(jié)構(gòu)service-oriented architecture, soa是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元抽象為服務(wù),并將這些服務(wù)通過定義良好的接口和契約聯(lián)系起來。為了優(yōu)化企業(yè)的信息系統(tǒng)基礎(chǔ)架構(gòu),以實(shí)現(xiàn)面向服務(wù)的體系結(jié)構(gòu),企業(yè)需要一個(gè)智能化的基礎(chǔ)設(shè)施,以降低服務(wù)重用的復(fù)雜性,并可靠地集成企業(yè)信息系統(tǒng)中存在的各種技術(shù)、協(xié)議和應(yīng)用。為此,需要建立一個(gè)以服務(wù)為中心的抽象層,以隱藏各種應(yīng)用和技術(shù)帶來的底層復(fù)雜性,這個(gè)服務(wù)中間層就是企業(yè)服務(wù)總線enterprise service bus,
2、esb。 論文首先對面向服務(wù)體系結(jié)構(gòu)和 web服務(wù)技術(shù)理論進(jìn)行了研究,通過與傳統(tǒng)企業(yè)應(yīng)用集成方法的比較,總結(jié)了面向服務(wù)體系結(jié)構(gòu)的優(yōu)勢和發(fā)展趨勢,并對企業(yè)服務(wù)總線技術(shù)的定義和技術(shù)特性進(jìn)行了詳細(xì)的分析。在對課題項(xiàng)目背景進(jìn)行充分調(diào)研后,提出了基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線系統(tǒng)解決方案,對系統(tǒng)架構(gòu)、運(yùn)行策略和通信機(jī)制等進(jìn)行了深入的分析。通過對面向服務(wù)體系結(jié)構(gòu)和企業(yè)服務(wù)總線技術(shù)的深入研究,以及對國內(nèi)外已有規(guī)范標(biāo)準(zhǔn)的分析,設(shè)計(jì)并實(shí)現(xiàn)了企業(yè)服務(wù)總線 amsesb系統(tǒng)的核心部分。 文章最后以某大型汽車制造企業(yè)檔案管理系統(tǒng) ams為項(xiàng)目背景,使用企業(yè)服務(wù)總線 amsesb系統(tǒng)實(shí)現(xiàn)了電子公文辦結(jié)自動(dòng)歸檔的業(yè)務(wù)
3、用例,驗(yàn)證了系統(tǒng)的功能和性能,總結(jié)了不足和相關(guān)經(jīng)驗(yàn),并提出了改進(jìn)措施,對系統(tǒng)下一階段的發(fā)展方向進(jìn)行展望,為后繼的工作奠定了基礎(chǔ)。關(guān)鍵詞:面向服務(wù)體系結(jié)構(gòu),企業(yè)服務(wù)總線,web服務(wù),企業(yè)應(yīng)用集成 i基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) abstract service-oriented architecture soa is a component model that inter-relates an applications different functional units, called services, through well-defined interfaces and
4、 contracts between these services. to optimize the it infrastructure and deliver the service in time to make the soa possible, it forum needs an intelligent structure to reduce the complexity of the service reusability, and to integrate all technologies, protocols and applications. for this reason,
5、the it forum creates an abstract layer focus on the service to reduce the underlying complexity by integrating all applications and technologies. such a layer for services is called enterprise service bus esbthe thesis first shows the research on theories of soa and web services. by compared with tr
6、aditional eai approach, the thesis summarizes the highlight and trend of soa, then analyses the definition and features of esb. with investigation of project background, a preliminary solution of esb system based on soa theory is given. then it analyses the systems architecture, executing strategy,
7、communication and so on. with deep research on technology of soa and esb, and also with absorbing of some technology specifications, a prototype of enterprise service bus amsesb is designed and implementedat the end of the thesis, an application sample based on amsesb is given. with the background o
8、f an archive management system of a motor manufacturing enterprise, the functions and capabilities of the system are validated. the disadvantages of the system are summarized and improvements are proposed, which settled the base of succeeding jobs key words: soa, esb, web services, eai ii南京航空航天大學(xué)碩士學(xué)
9、位論文 圖表清單 圖 2.1傳統(tǒng)豎井方式與 soa方式對比6 圖 2.2事件驅(qū)動(dòng)的體系結(jié)構(gòu).10 圖 2.3企業(yè)服務(wù)總線示意圖.11 圖3.1項(xiàng)目總體系統(tǒng)結(jié)構(gòu).14 圖 3.2企業(yè)服務(wù)總線系統(tǒng)總體架構(gòu).15 圖 3.3抽象服務(wù)模型.17 圖 3.4具體服務(wù)模型.18 圖 3.5抽象 wsdl消息模型19 圖 3.6單向輸入模式.20 圖 3.7可靠的單向輸入模式.21 圖 3.8請求-回復(fù)模式22 圖 3.9請求-選擇回復(fù)模式.23 圖 3.10外部服務(wù)消費(fèi)者調(diào)用總線服務(wù).25 圖 3.11總線服務(wù)調(diào)用外部服務(wù)提供者.26 圖 3.12組件生命周期.27 圖 4.1規(guī)范化消息類圖29 圖 4.
10、2消息交換類圖.32 圖 4.3消息交換工廠類圖.35 圖 4.4單向消息交換類圖.36 圖 4.5可靠的單向消息交換類圖.37 圖 4.6雙向消息交換類圖.37 圖 4.7可選雙向消息交換類圖38 圖 4.8總線傳遞通道類圖.39 圖 4.9規(guī)范化消息路由類圖.41 圖 4.10組件框架類圖.44 圖 5.1電子公文辦結(jié)歸檔流程49 圖 5.2企業(yè)服務(wù)總線應(yīng)用結(jié)構(gòu)49 圖 5.3系統(tǒng)運(yùn)行流程.53 圖 5.4檔案處理完畢后系統(tǒng)頁面.54 表 3.1消息模型示例.20 表 4.1規(guī)范化消息類成員數(shù)據(jù)類型.30 表 4.2總線路由 router成員42 表 4.3通過路由發(fā)送消息.42 表 4.
11、4路由接收消息過程.43 表 4.5消息交換監(jiān)聽器代碼片斷.45 表 4.6組件安裝描述符46 表 5.1組件部署描述符50 表 5.2郵件服務(wù)配置.51 表 5.3組件綁定注冊.51v承諾書本人鄭重聲明:所呈交的學(xué)位論文,是本人在導(dǎo)師指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本學(xué)位論文的研究成果不包含任何他人享有著作權(quán)的內(nèi)容。對本論文所涉及的研究工作做出貢獻(xiàn)的其他個(gè)人和集體,均已在文中以明確方式標(biāo)明。 本人授權(quán)南京航空航天大學(xué)可以有權(quán)保留送交論文的復(fù)印件,允許論文被查閱和借閱,可以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或其他復(fù)制
12、手段保存論文。 保密的學(xué)位論文在解密后適用本承諾書作者簽名: 日 期:南京航空航天大學(xué)碩士學(xué)位論文 第一章 緒論 1.1 課題的研究背景 隨著信息技術(shù)的日益發(fā)展,現(xiàn)代企業(yè)對生產(chǎn)管理信息化的需求和依賴越來越明顯,不斷加大投入進(jìn)行企業(yè)信息系統(tǒng)的建設(shè)。與此同時(shí),隨著硬件系統(tǒng)、操作系統(tǒng)平臺(tái)的不斷增加以及企業(yè)網(wǎng)絡(luò)的飛速蔓延,軟件系統(tǒng)間的異構(gòu)度和復(fù)雜度也不斷增加,這就使得如何整合彼此分散的自治信息系統(tǒng)以提高其利用效率成為企業(yè)信息化建設(shè)中必須面對的重要課題。 在最初的信息化建設(shè)過程中,企業(yè)應(yīng)用大多是用來替代重復(fù)性勞動(dòng)的一些簡單設(shè)計(jì)。當(dāng)時(shí)并沒有考慮到企業(yè)數(shù)據(jù)的集成,惟一的目標(biāo)就是用計(jì)算機(jī)代替一些孤立的、體力性
13、質(zhì)的工作環(huán)節(jié)。然而,使用傳統(tǒng)開發(fā)方法所形成的軟件系統(tǒng)是剛性的,也就是說系統(tǒng)嚴(yán)格按照預(yù)先設(shè)定的目標(biāo)進(jìn)行設(shè)計(jì),各功能模塊按照確定的順序執(zhí)行,一旦開發(fā)完成并投入運(yùn)行,就是固定不變的,不能在使用過程中進(jìn)行調(diào)整和改變。如果數(shù)據(jù)結(jié)構(gòu)或者業(yè)務(wù)邏輯發(fā)生了改變,就必須對所有相關(guān)的軟件模塊、數(shù)據(jù)源和消息逐個(gè)進(jìn)行修改。為了應(yīng)對這種局面,上世紀(jì) 90年代末興起了企業(yè)應(yīng)用集成enterprise application integration, eai的技術(shù)潮流,即通過定義企業(yè)私有的數(shù)據(jù)結(jié)構(gòu)、通訊協(xié)議以及適配器接口,來聯(lián)系橫貫整個(gè)企業(yè)的異構(gòu)系統(tǒng)、應(yīng)用、數(shù)據(jù)源等,完成在企業(yè)內(nèi)部的 erp、crm、scm、數(shù)據(jù)庫、數(shù)據(jù)倉庫
14、以及其他重要的內(nèi)部系統(tǒng)之間無縫地共享和交換數(shù)據(jù)的需要,從而消除信息孤1島 。然而,隨著這種方法的廣泛實(shí)施和應(yīng)用,eai被證實(shí)缺乏必要的靈活性和適應(yīng)性,擴(kuò)展性較差,從而無法取得與大量投入相匹配的收益效果。隨著對信息整合的需求和認(rèn)識(shí)的深入,近年來面向服務(wù)體系結(jié)構(gòu) service-oriented architecture, soa的概念逐漸走入人們的視野并被廣泛接受。 面向服務(wù)體系結(jié)構(gòu)采用服務(wù)請求service request的方式,通過將業(yè)務(wù)應(yīng)用功能以服務(wù)的形式提供給最終用戶應(yīng)用或其他服務(wù),使軟件系統(tǒng)向“柔性化”邁進(jìn)了一大步?;仡欆浖_發(fā)的演化過程,我們可以看出面向服務(wù)體系結(jié)構(gòu)的出現(xiàn)有其必然性:
15、從最初面向機(jī)器語言的開發(fā)模式到面向過程的開發(fā)模式,軟件開發(fā)通過獨(dú)立于機(jī)器的程序語言如 c, pascal等不再依賴于不同平臺(tái)的機(jī)器語言,實(shí)現(xiàn)了代碼的重用;隨后面向?qū)ο箝_發(fā)模式的出現(xiàn)使人們可以通過smalltalk, java等語言以更接近現(xiàn)實(shí)的對象來表述完整的事物,即進(jìn)行對象的重用;此后隨著軟件開發(fā)規(guī)模的擴(kuò)大,在涉及分布式、異構(gòu)等復(fù)雜特征的環(huán)境中,出現(xiàn)了基于dcom, corba, ejb等技術(shù)的面向組件模式,軟件開發(fā)的重用也上升到組件的級(jí)別;進(jìn)入 21世紀(jì),當(dāng)軟件的開發(fā)面對更加復(fù)雜的 it環(huán)境和更加靈活多變的需1基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) 求時(shí),人們開始將應(yīng)用程序以服務(wù)的形
16、式公布出來供別人使用,而完全不需要去考慮這些業(yè)務(wù)服務(wù)運(yùn)行在哪一個(gè)架構(gòu)體系上,這就是面向服務(wù)的體系結(jié)構(gòu)。相對于傳統(tǒng)的代碼重用,對象重用,和組件重用,面向服務(wù)體系結(jié)構(gòu)更加著重于業(yè)務(wù)2級(jí)的應(yīng)用,即服務(wù)的重用 。 1.2 論文研究的主要內(nèi)容 課題“基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn)”是針對處于復(fù)雜應(yīng)用環(huán)境中的企業(yè)對面向服務(wù)體系結(jié)構(gòu)的實(shí)施需求而提出的,目的在于幫助企業(yè)在資源分布和系統(tǒng)異構(gòu)的情況下通過中間層有效整合資源協(xié)同工作。課題的研究目標(biāo)是基于面向服務(wù)的體系結(jié)構(gòu)分析、設(shè)計(jì)和實(shí)現(xiàn)一個(gè)基于標(biāo)準(zhǔn)的靈活的服務(wù)中間層,即企業(yè)服務(wù)總線系統(tǒng),幫助企業(yè)實(shí)現(xiàn)在面向服務(wù)體系結(jié)構(gòu)中不同服務(wù)之間的智能化管理。課題的
17、項(xiàng)目背景是“某大型汽車制造企業(yè)檔案管理系統(tǒng)archive management system, ams”,該系統(tǒng)主要負(fù)責(zé)企業(yè)生產(chǎn)和管理環(huán)節(jié)中的檔案管理及利用,實(shí)現(xiàn)檔案管理流程的自動(dòng)化和規(guī)范化。作者在項(xiàng)目中主要負(fù)責(zé)企業(yè)服務(wù)總線系統(tǒng)的研究與實(shí)現(xiàn)工作。 企業(yè)服務(wù)總線不同于一般意義上的消息機(jī)制系統(tǒng),其著重解決面向服務(wù)體系結(jié)構(gòu)中的兩個(gè)重要問題:服務(wù)的提供者如何在系統(tǒng)中以通用的方式聲明自己,以3及服務(wù)的消費(fèi)者如何發(fā)現(xiàn)系統(tǒng)中提供所需服務(wù)的生產(chǎn)者 。因此,課題的研究主要包括以下幾個(gè)方面的內(nèi)容: 1. 基礎(chǔ)理論的研究。企業(yè)服務(wù)總線是一項(xiàng)比較新的技術(shù)概念,作為面向服務(wù)體系結(jié)構(gòu)的基礎(chǔ)中間設(shè)施,其最主要的技術(shù)與 we
18、b服務(wù)密不可分,如 web服務(wù)描述語言web services description language, wsdl、統(tǒng)一描述發(fā)現(xiàn)與集成協(xié)議universal description, discovery and integration, uddi和簡單對象訪問協(xié)議 simple object access protocol, soap等,這方面的技術(shù)目前處于穩(wěn)定的發(fā)展階段。此外,還有一些相關(guān)的技術(shù)例如業(yè)務(wù)流程執(zhí)行語言business process execution language, bpel、服務(wù)組件架構(gòu)service component architecture, sca和 java
19、業(yè)務(wù)集成規(guī)范java business integration, jbi等,也都與企業(yè)服務(wù)總線有著密切的聯(lián)系。因此,對這些理論和技術(shù)的研究是必不可少的。 2. 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。在理論和技術(shù)研究的基礎(chǔ)上,結(jié)合檔案管理系統(tǒng)的項(xiàng)目背景,提出企業(yè)服務(wù)總線 amsesb的設(shè)計(jì)實(shí)現(xiàn)方案,對系統(tǒng)各個(gè)模塊進(jìn)行劃分和詳細(xì)設(shè)計(jì),并對系統(tǒng)的核心組件進(jìn)行編碼實(shí)現(xiàn)工作。企業(yè)服務(wù)總線應(yīng)該能夠在底層支持現(xiàn)有的各種通訊協(xié)議,并具有很好的可擴(kuò)展性,所以必須設(shè)計(jì)一種靈活的可插接的系統(tǒng)結(jié)構(gòu),供服務(wù)供求雙方隨時(shí)加入到總線系統(tǒng)中。此外,傳統(tǒng)eai實(shí)施中最大的問題就是被集成者都有自己的方言,即各自的消息格式。作為2南京航空航天大學(xué)碩士學(xué)
20、位論文 soa 系統(tǒng)的服務(wù)中間層,企業(yè)服務(wù)總線必須能夠?qū)ο到y(tǒng)范疇內(nèi)的任何一種消息進(jìn)行解析。因此,還需要定義一種規(guī)范的通用消息傳遞格式用于系統(tǒng)中各服務(wù)的消費(fèi)者和提供者。這樣,在企業(yè)服務(wù)總線中,對消息的處理就會(huì)成為核心,這也是其總線功能的體現(xiàn)。 3. 項(xiàng)目驗(yàn)證和論述。在系統(tǒng)的核心功能開發(fā)完成后,通過 ams項(xiàng)目中的電子公文辦結(jié)自動(dòng)歸檔用例對企業(yè)服務(wù)總線系統(tǒng) amsesb的功能進(jìn)行驗(yàn)證,對課題的研究工作進(jìn)行總結(jié),針對不足之處提出改進(jìn)措施,并對下一階段的發(fā)展進(jìn)行展望。 通過對面向服務(wù)體系結(jié)構(gòu)和企業(yè)服務(wù)總線相關(guān)技術(shù)規(guī)范的研究,論文以ams項(xiàng)目中設(shè)計(jì)和實(shí)現(xiàn)的企業(yè)服務(wù)總線系統(tǒng) amsesb為藍(lán)本,對系統(tǒng)的體
21、系結(jié)構(gòu)及各個(gè)模塊的設(shè)計(jì)實(shí)現(xiàn)細(xì)節(jié)進(jìn)行了深入討論。 amsesb系統(tǒng)遵循業(yè)界的規(guī)范標(biāo)準(zhǔn),按照規(guī)范性要求進(jìn)行設(shè)計(jì)并予以實(shí)現(xiàn),具備良好的靈活性和可擴(kuò)展性,并已在 ams項(xiàng)目中投入運(yùn)行使用。 1.3 論文組織結(jié)構(gòu) 全文共分為六章,內(nèi)容結(jié)構(gòu)如下: 第一章:緒論。給出課題的研究背景和研究目的,明確論文的主要研究內(nèi)容。 第二章:面向服務(wù)體系結(jié)構(gòu)研究。闡述了面向服務(wù)體系結(jié)構(gòu)的理論基礎(chǔ),介紹了企業(yè)服務(wù)總線的定義和技術(shù)特征,并分析了其應(yīng)用價(jià)值。 第三章:系統(tǒng)分析與總體架構(gòu)設(shè)計(jì)。對課題的項(xiàng)目背景進(jìn)行了介紹,并對企業(yè)服務(wù)總線系統(tǒng)的體系結(jié)構(gòu)、消息模型、組件框架和總線執(zhí)行原理進(jìn)行了分析和設(shè)計(jì)。 第四章:企業(yè)服務(wù)總線系統(tǒng)設(shè)計(jì)
22、與實(shí)現(xiàn)。介紹了企業(yè)服務(wù)總線的各個(gè)模塊,詳細(xì)論述了系統(tǒng)各關(guān)鍵部分的設(shè)計(jì)與實(shí)現(xiàn),以及它們之間的聯(lián)系。 第五章:企業(yè)服務(wù)總線的應(yīng)用。描述企業(yè)服務(wù)總線的應(yīng)用,通過給出電子公文辦結(jié)自動(dòng)歸檔的應(yīng)用實(shí)例來對系統(tǒng)運(yùn)行的可行性和正確性進(jìn)行驗(yàn)證。 第六章:總結(jié)與展望。總結(jié)了全文的研究工作,歸納了系統(tǒng)的實(shí)現(xiàn)情況和優(yōu)缺點(diǎn),并對下一步的工作進(jìn)行了展望。 3基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) 第二章 面向服務(wù)體系結(jié)構(gòu)研究 2.1 企業(yè)應(yīng)用集成 企業(yè)應(yīng)用集成enterprise application integration, eai是企業(yè)實(shí)現(xiàn)業(yè)務(wù)自動(dòng)化4的基礎(chǔ),傳統(tǒng)的企業(yè)應(yīng)用集成包括面向信息的集成和面向過程的集
23、成兩種 。面向信息的集成技術(shù)是數(shù)據(jù)級(jí)的集成,主要采用數(shù)據(jù)復(fù)制、數(shù)據(jù)聚合和接口集成等方式,其中接口集成是比較主流的技術(shù)。它通過集成代理的方式實(shí)現(xiàn),即為應(yīng)用系統(tǒng)創(chuàng)建適配器作為自己的代理,如果適配器的結(jié)構(gòu)支持一定的標(biāo)準(zhǔn),則將極大的簡化集成的復(fù)雜度,并有助于標(biāo)準(zhǔn)化。目前,j2ee中的 java連接器架構(gòu)java connector architecture, jca極大地方便了企業(yè)應(yīng)用集成,這項(xiàng)技術(shù)可以用來協(xié)調(diào)各企業(yè)信息系統(tǒng)之間的信息交換和共享。而面向過程的集成技術(shù)則是一種過程流集成的思想,它不需要處理用戶界面開發(fā)、數(shù)據(jù)庫邏輯和事務(wù)邏輯,而只是處理系統(tǒng)之間的過程邏輯,從而與核心業(yè)務(wù)邏輯相分離。在結(jié)構(gòu)上
24、,面向過程的集成方法新增了過程邏輯層,而在該結(jié)構(gòu)的底層,應(yīng)用服務(wù)器和消息中間件提供了支持?jǐn)?shù)據(jù)傳輸和跨過程協(xié)調(diào)的基礎(chǔ)服務(wù)。 隨著信息技術(shù)的發(fā)展和企業(yè)對信息系統(tǒng)集成的需求日益擴(kuò)大并復(fù)雜化,傳統(tǒng)的企業(yè)應(yīng)用集成技術(shù)逐漸暴露出其所存在的一些不足之處。無論是面向信息的集成還是面向過程的集成,從本質(zhì)上講都是面向功能的企業(yè)集成,只注重從技術(shù)和內(nèi)容進(jìn)行分類,并偏重于各自實(shí)現(xiàn)的功能,而沒有強(qiáng)調(diào)各類集成間的相互關(guān)系和影響,以及作為一個(gè)共同整體對企業(yè)應(yīng)用的影響。雖然這種方式相對簡單和直觀,但從宏觀和長遠(yuǎn)角度上難以形成可以靈活配置和擴(kuò)展的體系架構(gòu),在管理上也不便提供有效的控制框架來適應(yīng)多變的業(yè)務(wù)需求。 企業(yè)應(yīng)用集成的目
25、標(biāo)是支持對企業(yè)現(xiàn)有信息系統(tǒng)的重新利用,通過相關(guān)技術(shù)將不同的軟件和系統(tǒng)串聯(lián)起來,延長這些應(yīng)用系統(tǒng)的生命周期。企業(yè)應(yīng)用集成往往使用如 corba和 com等消息中間件技術(shù)進(jìn)行分布式、跨平臺(tái)的程序交互,修改企業(yè)資源規(guī)劃以達(dá)到新的目標(biāo),使用中間件、xml等方法來進(jìn)行數(shù)據(jù)分配。因此,實(shí)際上傳統(tǒng)的企業(yè)應(yīng)用集成是組件級(jí)的重用。可是,基于組件的架構(gòu)缺乏統(tǒng)一的標(biāo)準(zhǔn),各個(gè)廠商都有各自不同的企業(yè)應(yīng)用集成解決方案,由此出現(xiàn)了各種各樣的中間件平臺(tái)。當(dāng)企業(yè)應(yīng)用集成過程中碰到了異構(gòu)的信息系統(tǒng)環(huán)境,就必須分別考慮怎樣在各個(gè)不同的中間件之間周旋,以實(shí)現(xiàn)合理的集成方式。因此,企業(yè)需要尋求一個(gè)更好的方案來解決企業(yè)系統(tǒng)集成的問題。
26、4南京航空航天大學(xué)碩士學(xué)位論文 2.2 面向服務(wù)體系結(jié)構(gòu) 面向服務(wù)體系結(jié)構(gòu)service-oriented architecture, soa是一個(gè)系統(tǒng)架構(gòu)層次的概念,其中所有的功能或服務(wù)都使用描述語言加以定義,并且各自的接口都可以通過網(wǎng)絡(luò)進(jìn)行發(fā)現(xiàn)。這類接口采用獨(dú)立方式定義,不受服務(wù)實(shí)現(xiàn)所在的硬件平臺(tái)、操作系統(tǒng)和編程語言的影響。 2.2.1 面向服務(wù)體系結(jié)構(gòu)的定義 顧能公司gartner最早提出了 soa的思想:“面向服務(wù)的架構(gòu)是一種基于客戶機(jī)/服務(wù)器模式的軟件設(shè)計(jì)方法,其中的應(yīng)用由服務(wù)提供者和服務(wù)使用者也稱5為客戶機(jī)或服務(wù)請求者雙方組成” 。gartner為 soa描述的遠(yuǎn)景目標(biāo)是:使企業(yè)信
27、息系統(tǒng)變得更有彈性,以更快地響應(yīng)業(yè)務(wù)部門的需求,實(shí)現(xiàn)實(shí)時(shí)企業(yè)模式real-time enterprise。 而 ibm對 soa的定義為:面向服務(wù)的體系結(jié)構(gòu)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元稱為服務(wù)通過這些服務(wù)之間定義良好的接口和契約聯(lián)系5起來 。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。 2.2.2 與傳統(tǒng)開發(fā)方式的對比 傳統(tǒng)的軟件開發(fā)是以一種相對孤立的方式進(jìn)行,在此方式中,每個(gè)部門構(gòu)建自己的系統(tǒng),而完全不考慮企業(yè)中的其他部門已完成了哪些東西。傳統(tǒng)應(yīng)用程序是“豎井silo”
28、型的,人力資源應(yīng)用程序無法與財(cái)務(wù)應(yīng)用程序通信,而后者又無法和分布應(yīng)用程序進(jìn)行通信。所有這些應(yīng)用程序都有獨(dú)立的領(lǐng)域,在獨(dú)立的計(jì)算機(jī)上運(yùn)行,盡管很有用但并不能很好地在彼此間共享數(shù)據(jù)。 這種“豎井”方式將會(huì)導(dǎo)致低效且開銷巨大的情況出現(xiàn),可能會(huì)造成多次開發(fā)、部署和維護(hù)相同的功能。而面向服務(wù)體系結(jié)構(gòu)基于在整個(gè)企業(yè)組織范圍內(nèi)共享服務(wù),提供了對現(xiàn)有資產(chǎn)的有效重用和集成,如圖 2.1所示: 5基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) 豎井silo方式 soa方式應(yīng)用1 應(yīng)用2 應(yīng)用3 應(yīng)用1 應(yīng)用2 應(yīng)用3功 功 功 功 功 功服務(wù)a能 能 能 能 能 能服務(wù)ba b a b a b圖 2.1傳統(tǒng)豎井方式
29、與 soa方式對比 2.2.3 面向服務(wù)體系結(jié)構(gòu)的優(yōu)點(diǎn) 從以上的分析可以看出,采用面向服務(wù)體系結(jié)構(gòu)將為企業(yè)帶來幾方面的好處: 1 充分利用現(xiàn)有的信息系統(tǒng) 面向服務(wù)體系結(jié)構(gòu)提供了一個(gè)抽象層,通過這個(gè)抽象層,企業(yè)可以繼續(xù)利用它在現(xiàn)有信息系統(tǒng)方面的投資,方法是將這些現(xiàn)有的資產(chǎn)包裝成提供各種功能的服務(wù)。企業(yè)可以繼續(xù)從現(xiàn)有的資源中獲取價(jià)值,而不必從頭開始構(gòu)建。 2 更易于集成和管理 在面向服務(wù)體系結(jié)構(gòu)中,集成點(diǎn)是服務(wù)而不是具體實(shí)現(xiàn)。這為服務(wù)的使用者提供了透明性,并將基礎(chǔ)設(shè)施和實(shí)現(xiàn)所發(fā)生的改變帶來的影響降到最低限度。通過提供基于現(xiàn)有資源和資產(chǎn)構(gòu)建的服務(wù),集成變得更加易于管理,因?yàn)閺?fù)雜性被隔離了。當(dāng)更多的企
30、業(yè)一起協(xié)作提供價(jià)值鏈時(shí),這就變得更加重要。 3 更快的響應(yīng)和部署速度 從現(xiàn)有服務(wù)中組合新服務(wù)的能力為企業(yè)靈活地響應(yīng)多變的業(yè)務(wù)需求提供了獨(dú)特的優(yōu)勢。通過利用現(xiàn)有的組件和服務(wù),可以減少完成軟件開發(fā)生命周期包括收集需求、進(jìn)行設(shè)計(jì)、開發(fā)和測試所需的時(shí)間。這使得企業(yè)可以快速地開發(fā)新的業(yè)務(wù)服務(wù),并允許信息系統(tǒng)迅速地對改變做出響應(yīng)。 4 增加重用減少成本 通過以松散耦合的方式公開業(yè)務(wù)服務(wù),企業(yè)可以根據(jù)業(yè)務(wù)要求更輕松地使用和組合服務(wù)。這意味著企業(yè)對信息系統(tǒng)資源的重用和信息成本的降低。 5 更易于用戶使用 面向服務(wù)體系結(jié)構(gòu)的業(yè)務(wù)流程是由一系列業(yè)務(wù)服務(wù)組成的,可以更輕松地創(chuàng)建、修改和管理它來滿足不同時(shí)期的需要。面
31、向服務(wù)體系結(jié)構(gòu)為企業(yè)提供了靈活性和響應(yīng)能力,這對于企業(yè)的生存和發(fā)展來說是十分重要的。 6南京航空航天大學(xué)碩士學(xué)位論文 2.3 web服務(wù) 基礎(chǔ) web服務(wù)web services結(jié)合了兩種常見技術(shù): xml和通用數(shù)據(jù)描述語言,并且通過 http傳輸協(xié)議廣泛被瀏覽器和 web服務(wù)器所支持。作為重要的soa實(shí)現(xiàn)方式, web服務(wù)是一種廣泛被人們接受的技術(shù),它可以將運(yùn)行在 intranet, extranet或 internet分布式服務(wù)器上的應(yīng)用集成在一起。 2.3.1 web服務(wù)定義 w3c中 web服務(wù)體系結(jié)構(gòu)工作組對 web服務(wù)的定義如下:“web服務(wù)是一種通過 url識(shí)別的軟件應(yīng)用,并通過
32、 xml語言進(jìn)行定義、描述和發(fā)現(xiàn)。web12服務(wù)支持通過 http協(xié)議交換基于 xml的消息或與其他軟件代理直接交互。 ” 從以上定義可以看出, web服務(wù)有兩層含義:其一是指封裝成單個(gè)實(shí)體并發(fā)布到網(wǎng)絡(luò)上的功能集合體;其二是指功能集合體被調(diào)用后所提供的服務(wù)。簡單地講,web服務(wù)是一個(gè) url資源,客戶端可以通過編程方式請求得到它的服務(wù),而不需要知道所請求的服務(wù)是怎樣實(shí)現(xiàn)的,這一點(diǎn)與傳統(tǒng)的分布式對象模型不同。一個(gè)完整的 web服務(wù)除了其代碼實(shí)現(xiàn)外,還定義了明確的接口。通常,接口描述 web服務(wù)的內(nèi)容和訪問格式,客戶端根據(jù)一個(gè) web服務(wù)的接口描述知道該 web服務(wù)是否包含所需的功能以及它的調(diào)用方
33、法。 2.3.2 web服務(wù)的組成 web服務(wù)規(guī)范通常歸為兩類:基本 web 服務(wù)規(guī)范和擴(kuò)展 web 服務(wù)規(guī)范?;疽?guī)范包括 soap, uddi和 wsdl等,擴(kuò)展規(guī)范則有包括 ws-bpel在內(nèi)的數(shù)十種 ws-*規(guī)范。以下將對本文研究和實(shí)現(xiàn)企業(yè)服務(wù)總線過程中所涉及的部分web服務(wù)規(guī)范進(jìn)行簡要的介紹。 soap 簡單對象訪問協(xié)議simple object access protocol, soap是基于 xml的消息協(xié)議,它能使分布式環(huán)境下的程序相互交換事先定義好的結(jié)構(gòu)化信息。soap是服務(wù)使用者和服務(wù)提供者共同遵守的消息格式,由于它也是基于 xml技術(shù),所以 soap是獨(dú)立
34、于編程語言和操作平臺(tái)的消息協(xié)議,能使在異構(gòu)環(huán)境下的應(yīng)用程序相互通訊和操作。 soap協(xié)議為使用 xml在松散分布的環(huán)境中對等地交換結(jié)構(gòu)化和類型化信息提供了一個(gè)簡單的機(jī)制。soap本身并不定義任何應(yīng)用語義,如編程模型或特定語義實(shí)現(xiàn),它只是定義一種簡單的機(jī)制,通過一個(gè)模塊化的包裝模型和對模塊中特定格式編碼的數(shù)據(jù)重編碼機(jī)制來表示應(yīng)用語義。 7基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) soap協(xié)議主要由 soap信封、編碼規(guī)則、遠(yuǎn)程過程調(diào)用協(xié)定三部分組成。信封定義了整體 soap消息的表示框架,可用于表示消息中的內(nèi)容是什么,誰發(fā)送的,誰應(yīng)當(dāng)接受并處理它,以及這些處理操作是否必需。soap編碼規(guī)則定
35、義了數(shù)據(jù)的編碼機(jī)制,通過它來定義應(yīng)用程序中需要使用的數(shù)據(jù)類型,并可用來交換這些數(shù)據(jù)類型所生成的實(shí)例。遠(yuǎn)程過程調(diào)用協(xié)定則定義了一個(gè)用于表示遠(yuǎn)程調(diào)13用和響應(yīng)的約定。 uddi 統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議universal description, discovery and integration, uddi 是由結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織organization for the advancement of structured information standards, oasis制定的一套關(guān)于 web服務(wù)注冊、發(fā)布、查詢、發(fā)現(xiàn)和訪問服務(wù)接口時(shí)要用到技術(shù)的標(biāo)準(zhǔn)規(guī)范。uddi基于
36、http, xml, xml schema和 soap等開放的工業(yè)標(biāo)準(zhǔn),為公開發(fā)布的服務(wù)和只在公司內(nèi)部使用的服務(wù)提供了一個(gè)基于 web服務(wù)的軟件基礎(chǔ)架構(gòu)。 uddi注冊中心是對所有提供公共 uddi注冊服務(wù)站點(diǎn)的統(tǒng)稱,在邏輯上它是一個(gè)統(tǒng)一體,但在物理上則以分布式系統(tǒng)結(jié)構(gòu)實(shí)現(xiàn),不同的站點(diǎn)之間采用對等的網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn),因此訪問其中任意一個(gè)站點(diǎn)就等同于訪問 uddi注冊中心。一般情況下,訪問 uddi入口站點(diǎn)所獲得的結(jié)果是整個(gè) uddi注冊中心所覆蓋區(qū)域的信息。信息查詢無需身份認(rèn)證,但在 uddi入口站點(diǎn)上進(jìn)行信息發(fā)布,則必須14通過這個(gè)站點(diǎn)使用用戶名進(jìn)行權(quán)限的認(rèn)證。 wsdl web
37、服務(wù)描述語言web services description language, wsdl是基于 xml格式的網(wǎng)絡(luò)服務(wù)描述語言,它將 web服務(wù)中的服務(wù)描述成一組服務(wù)訪問點(diǎn),客戶端可以通過使用服務(wù)訪問點(diǎn)來訪問這些網(wǎng)絡(luò)服務(wù)。 wsdl將操作和消息以一種抽象的方式進(jìn)行描述,然后將具體的網(wǎng)絡(luò)協(xié)議和消息格式綁定來定義一個(gè)服務(wù)訪問點(diǎn)。相關(guān)的服務(wù)實(shí)現(xiàn)者將與這個(gè)抽象的服務(wù)訪問點(diǎn)聯(lián)系起來。wsdl是可擴(kuò)展的,它獨(dú)立于服務(wù)消息格式和具體的網(wǎng)絡(luò)通訊協(xié)議的標(biāo)準(zhǔn)。目前常用的 wsdl規(guī)范是 w3c在 2001年 3月發(fā)布的 wsdl1.1版本,wsdl2.0也已經(jīng)在 2006年3月發(fā)布。 ws-bpe
38、l web 服務(wù)業(yè)務(wù)過程執(zhí)行語言web services business process execution language, ws-bpel是專門為整合 web服務(wù)而制定的一項(xiàng)規(guī)范標(biāo)準(zhǔn)。它從本質(zhì)上來說是 ibm的 web服務(wù)流語言web services flow language, wsfl和微軟的8南京航空航天大學(xué)碩士學(xué)位論文 xlang語言的結(jié)合物和演化,同時(shí)摒棄了一些復(fù)雜繁瑣的部分,形成了一種較為自然的描述商業(yè)活動(dòng)的抽象高級(jí)語言。bpel語言是一種基于 xml的標(biāo)記語言,同時(shí)它也繼承了傳統(tǒng)編程語言中的一些特性如賦值操作、循環(huán)操作等。 bpel定義的業(yè)務(wù)流程決定了合成的 web服務(wù)
39、之間的邏輯依賴性,即流程定義了 web服務(wù)之間的調(diào)用順序控制流和傳送的數(shù)據(jù)數(shù)據(jù)流。bpel能清楚說明服務(wù)間交換消息的協(xié)作行為,而又不涉及到服務(wù)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),這樣就不暴露出企業(yè)在內(nèi)部業(yè)務(wù)中所做的決策和對數(shù)據(jù)的管理。另外在更改服務(wù)的具體實(shí)現(xiàn)時(shí),也不會(huì)影響到已定義業(yè)務(wù)的工作流程。 2.3.3 web服務(wù)與 soa 面向服務(wù)體系結(jié)構(gòu)從方法學(xué)和系統(tǒng)架構(gòu)方面考慮,是一種概念和模型,而web服務(wù)是一種具體的實(shí)現(xiàn)技術(shù),soa并不等于就是 web服務(wù)。web服務(wù)是目前最適合實(shí)現(xiàn) soa的一些技術(shù)的集合,web服務(wù)標(biāo)準(zhǔn)的成熟和應(yīng)用的普及為廣泛的實(shí)現(xiàn)面向服務(wù)體系結(jié)構(gòu)提供了基礎(chǔ)。 需要說明的是 web服務(wù)并不是唯一
40、實(shí)現(xiàn)面向服務(wù)體系結(jié)構(gòu)的技術(shù),可以找到許多其它組織成功實(shí)現(xiàn) soa架構(gòu)的例子。web服務(wù)也被用于實(shí)現(xiàn)非面向服務(wù)體系結(jié)構(gòu)的其他結(jié)構(gòu)。但是用 web服務(wù)來封裝業(yè)務(wù)服務(wù)有很多優(yōu)勢,因?yàn)?web服務(wù)是標(biāo)準(zhǔn)的,ws-i協(xié)議保證了來自不同供應(yīng)商的 web服務(wù)即使運(yùn)行在不同的平臺(tái)上,底層的實(shí)現(xiàn)機(jī)理不同也可以順利交互,這是以前的任何一種技術(shù)如corba, ejb, 或者 dcom都不能做到的。而且,web服務(wù)的定義與實(shí)現(xiàn)是分開描述的,即松散耦合,因此可以很方便地替換服務(wù)的內(nèi)在實(shí)現(xiàn)而不會(huì)對現(xiàn)有的系17統(tǒng)造成任何沖擊,這也極大地提高了企業(yè)信息系統(tǒng)架構(gòu)的靈活性。 2.4 事件驅(qū)動(dòng)的體系結(jié)構(gòu)與 soa 事件驅(qū)動(dòng)的體系結(jié)
41、構(gòu)event-driven architecture, eda定義了一種用于進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)應(yīng)用程序和系統(tǒng)的方法,其中的事件在各個(gè)分解的軟件組件和服務(wù)間進(jìn)行傳遞。 事件驅(qū)動(dòng)體系結(jié)構(gòu)使用消息傳遞來在兩個(gè)或多個(gè)應(yīng)用程序進(jìn)程間進(jìn)行通信,此類通信是由“事件”發(fā)起的。觸發(fā)器通常與某種業(yè)務(wù)情況對應(yīng),該事件的所有訂閱者將隨后得到通知,從而激活,如圖 2.2所示。 9通知基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) eda節(jié)點(diǎn)edaeda節(jié)點(diǎn)節(jié)點(diǎn)eda節(jié)點(diǎn)圖 2.2事件驅(qū)動(dòng)的體系結(jié)構(gòu) 事件驅(qū)動(dòng)體系結(jié)構(gòu)對 soa形成補(bǔ)充,雖然 soa通常更適合請求/響應(yīng)交換環(huán)境,但事件驅(qū)動(dòng)體系結(jié)構(gòu)引入了一些長時(shí)間運(yùn)行的異步進(jìn)程功
42、能。而且,eda節(jié)點(diǎn)可發(fā)布事件,并不依賴于所發(fā)布的服務(wù)的可用性。它真正地實(shí)現(xiàn)了同其他節(jié)點(diǎn)的分離,因此事件驅(qū)動(dòng)體系結(jié)構(gòu)有時(shí)也被稱為“事件驅(qū)動(dòng)的 soa”。 2.5 企業(yè)服務(wù)總線 企業(yè)服務(wù)總線enterprise service bus, esb將事件驅(qū)動(dòng)的方法和面向服務(wù)的方法結(jié)合使用,以簡化業(yè)務(wù)單元的集成,從而在異類平臺(tái)和環(huán)境間建立聯(lián)系,充當(dāng)不同應(yīng)用程序間通信的中間層。部署到企業(yè)服務(wù)總線的服務(wù)可以由使用者或事件觸發(fā),它同時(shí)支持同步方式和異步方式,可實(shí)現(xiàn)一個(gè)或多個(gè)參與者之間的交互(一對一和多對多通信)。 2.5.1 企業(yè)服務(wù)總線定義 企業(yè)服務(wù)總線是一種體系結(jié)構(gòu)模式,可以使不同的系統(tǒng)在企業(yè)內(nèi)或企業(yè)間
43、組裝為聯(lián)合總線,它是企業(yè)構(gòu)建基于面向服務(wù)體系結(jié)構(gòu)解決方案時(shí)所使用基礎(chǔ)架構(gòu)的關(guān)鍵部分。簡而言之,企業(yè)服務(wù)總線連接了企業(yè)內(nèi)部和跨企業(yè)間的軟件應(yīng)用程序,并以豐富的管理功能監(jiān)控應(yīng)用程序之間的交互。從本質(zhì)上來說,企業(yè)服務(wù)總線就是一種可以提供可靠的、有保證的消息服務(wù)的新型中間件技術(shù)。企業(yè)服務(wù)總線利用的是 web 服務(wù)標(biāo)準(zhǔn)和面向消息的中間件message-oriented middleware, mom協(xié)議接口。企業(yè)服務(wù)總線的共有特性包括:連接異構(gòu)的信息系統(tǒng)、利用web 服務(wù)描述語言接口封裝消息中間件協(xié)議,以及在消息系統(tǒng)傳輸層上傳送18soap數(shù)據(jù)流 。 10發(fā)布通知通知南京航空航天大學(xué)碩士學(xué)位論文 服務(wù)a
44、 服務(wù)b企業(yè)服務(wù)總線服務(wù)c 服務(wù)d圖 2.3企業(yè)服務(wù)總線示意圖 企業(yè)服務(wù)總線的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),它可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案,同時(shí)還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用程序協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)了不同服務(wù)之間的通信與整合。從功能上看,企業(yè)服務(wù)總線提供了事件驅(qū)動(dòng)和消息導(dǎo)向的處理模式,以及分布式的運(yùn)行管理機(jī)制,它支持基于內(nèi)容的路由和過濾,具備復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口。 企業(yè)服務(wù)總線不是一種產(chǎn)品而是一種實(shí)現(xiàn) soa的實(shí)踐方案,包含了服務(wù)消費(fèi)者和服務(wù)提供服務(wù)之間的消息格式轉(zhuǎn)換、路由選擇和傳輸協(xié)議的轉(zhuǎn)換等功能。而企業(yè)服務(wù)總線與傳統(tǒng)的消息交換系統(tǒng)最大的不同就在
45、于它提供了服務(wù)的自我描述和發(fā)現(xiàn)機(jī)制以及實(shí)現(xiàn)消息間的異步傳遞。 2.5.2 服務(wù)發(fā)現(xiàn)機(jī)制 作為企業(yè)級(jí)應(yīng)用的服務(wù)總線,服務(wù)使用者能夠發(fā)現(xiàn)服務(wù)提供者始終非常重要。一般的 web服務(wù)采用的方法是由第三方注冊中心維護(hù)一個(gè)已知服務(wù)提供者的數(shù)據(jù)庫??蛻魴C(jī)在運(yùn)行時(shí)動(dòng)態(tài)地查詢該注冊中心,或者,在開發(fā)時(shí)定位符合所定義的標(biāo)準(zhǔn)的一個(gè)或多個(gè)提供者。例如,在檔案管理系統(tǒng)中,客戶機(jī)可能要定位所有實(shí)現(xiàn)文件歸檔”archive”端口類型的服務(wù)提供者。在 web服務(wù)中完成此任務(wù)的傳統(tǒng)方法是:向 uddi服務(wù)器提交一個(gè)查詢,分析結(jié)果,選擇提供者,然后調(diào)用服務(wù)。 在這個(gè)例子中,客戶機(jī)代碼可能不關(guān)心承載文件歸檔服務(wù)的開發(fā)平臺(tái)和操作系統(tǒng)
46、,但仍然需要緊密地綁定到”archive”端口類型及其提供者的具體實(shí)現(xiàn)。如果服務(wù)提供者更改了其文件歸檔服務(wù)的地址,每個(gè)按照這種方式綁定到服務(wù)的客戶機(jī)都會(huì)受影響,因而必須進(jìn)行更新。確保客戶機(jī)使用的是正確服務(wù)的唯一辦法就是在每個(gè)”archive”操作調(diào)用前重新查詢 uddi注冊中心,然而這將使客戶機(jī)浪費(fèi)大量的時(shí)間重復(fù) uddi查詢。 對于企業(yè)服務(wù)總線而言,簡化此問題的一個(gè)方法就是引入代理作為調(diào)用 11基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) web服務(wù)的中間層??蛻魴C(jī)不再直接調(diào)用服務(wù)提供者,而調(diào)用相應(yīng)的服務(wù)代理對服務(wù)提供者進(jìn)行調(diào)用。該服務(wù)代理的任務(wù)就是定位恰當(dāng)?shù)膶?shí)現(xiàn),以使代碼不必自己進(jìn)行服務(wù)發(fā)
47、現(xiàn)操作。 使用企業(yè)服務(wù)總線可以將選擇恰當(dāng)服務(wù)提供者的負(fù)擔(dān)從客戶機(jī)代碼轉(zhuǎn)到中間件上,從而為服務(wù)使用者提供一個(gè)簡單得多的體系結(jié)構(gòu)。服務(wù)代理不僅免除了客戶機(jī)定位服務(wù)提供者的負(fù)擔(dān),還提供了一種靈活的方法,可以提高服務(wù)調(diào)用過程的效率。如果采用其他方式,客戶機(jī)就不能獲得這種靈活性。例如,服務(wù)代理可以緩存 uddi數(shù)據(jù),以提高服務(wù)提供者選擇過程的性能?;蛘?服務(wù)代理可以封裝業(yè)務(wù)邏輯,以根據(jù)已建立的服務(wù)級(jí)別協(xié)議或業(yè)務(wù)規(guī)則改變服務(wù)提供者的選擇。 因此,企業(yè)服務(wù)總線模型的一個(gè)優(yōu)勢在于:可以管理服務(wù)調(diào)用過程,并同時(shí)簡化使用,且不會(huì)給提供者代理帶來負(fù)擔(dān)。換句話說,企業(yè)服務(wù)總線通過將企業(yè)應(yīng)用程序組件間交互的具體細(xì)節(jié)封裝
48、到中間件代理,以松散耦合的方式對這些組件進(jìn)行了集成。 2.5.3 異步消息傳遞 企業(yè)服務(wù)總線的另一個(gè)重要方面就是其強(qiáng)調(diào)組件間面向消息和面向事件的通信。遠(yuǎn)程過程調(diào)用樣式的 web服務(wù)使用了在面向?qū)ο笳Z言方法調(diào)用中常見的同步請求-響應(yīng)模式。不過,企業(yè)服務(wù)總線側(cè)重于使用異步消息交換的模式,通過這種方法,客戶機(jī)和中間件之間的全部交互都會(huì)使用一個(gè)輸入和輸出消息隊(duì)列集合異步進(jìn)行。當(dāng)響應(yīng)可用時(shí),中間件要么觸發(fā)事件回調(diào),將響應(yīng)通知客戶機(jī),要么依賴客戶機(jī)定期輪詢輸出隊(duì)列以獲得響應(yīng)。中間件與服務(wù)提供者件的交互可以采用異步模式,也可以不采用異步模式。 客戶機(jī)并不知道是哪個(gè)服務(wù)提供者處理它的請求,其所做的僅是將請求放
49、入消息隊(duì)列,然后從輸出隊(duì)列獲得響應(yīng)。服務(wù)代理的操作、服務(wù)提供者的選擇以及中間層要執(zhí)行的其他過程都完全對客戶機(jī)透明。服務(wù)提供者也可以采用完全相同的方式連接到服務(wù)總線,偵聽隊(duì)列并將結(jié)果發(fā)送到響應(yīng)隊(duì)列,它們可能并不知道提供同一個(gè)服務(wù)的其他提供者,甚至連發(fā)出請求的客戶機(jī)的身份也不知道。提供者只是傳遞要進(jìn)行處理的請求。 因此,遠(yuǎn)程過程調(diào)用樣式的 web服務(wù)與面向?qū)ο蠓椒ㄕ{(diào)用很相似:客戶機(jī)使用 soap信封編碼輸入?yún)?shù)和返回值,然后對對象同步調(diào)用方法。而使用 企業(yè)服務(wù)總線,客戶機(jī)可以使用消息隊(duì)列發(fā)送請求消息和接收響應(yīng)消息,與面向?qū)ο蠓椒ㄕ{(diào)用相比,這與 java消息服務(wù)java message servic
50、e, jms更為相似。 12南京航空航天大學(xué)碩士學(xué)位論文 2.5.4 企業(yè)服務(wù)總線的優(yōu)點(diǎn) 通過利用其內(nèi)部服務(wù),企業(yè)服務(wù)總線解決方案可帶來各種好處。就本質(zhì)而言,它降低了連接各種相異應(yīng)用程序的代價(jià),從而提高了業(yè)務(wù)的靈活性,并提供了其22他一些功能:基于標(biāo)準(zhǔn)的連接 作為很多異構(gòu)應(yīng)用程序間的集成中樞,企業(yè)服務(wù)總線提供了不同的集成方式,并對大量現(xiàn)有標(biāo)準(zhǔn)技術(shù)加以利用。更大范圍的集成 企業(yè)服務(wù)總線可以跨越不同的部門、業(yè)務(wù)單元甚至業(yè)務(wù)合作伙伴進(jìn)行應(yīng)用程序集成。而且,它的體系結(jié)構(gòu)還可以促進(jìn)異構(gòu)開發(fā)平臺(tái)上的應(yīng)用程序之間的通信。例如,企業(yè)服務(wù)總線解決方案可以在不同的編程語言j2ee, c+或.net之間起到橋梁作用
51、??煽康男阅?企業(yè)服務(wù)總線可以同時(shí)提供同步和異步消息傳遞功能。傳輸服務(wù)能夠確保消息可靠交付和事務(wù)的完整性,因此,企業(yè)服務(wù)總線可以盡可能減少信息系統(tǒng)集成解決方案失敗的風(fēng)險(xiǎn)。 2.6 小結(jié) 本章闡述了面向服務(wù)體系結(jié)構(gòu)和 web服務(wù)的理論基礎(chǔ),介紹了企業(yè)服務(wù)總線的定義和技術(shù)特征,分析了企業(yè)應(yīng)用集成、面向服務(wù)體系結(jié)構(gòu)、事件驅(qū)動(dòng)體系結(jié)構(gòu)、web服務(wù)以及企業(yè)服務(wù)總線之間的關(guān)系。相比傳統(tǒng)的企業(yè)應(yīng)用集成方式,企業(yè)服務(wù)總線將業(yè)務(wù)邏輯封裝到服務(wù)中間件中,并能夠支持更為靈活的面向消息和面向事件的交互模式。 13基于面向服務(wù)體系結(jié)構(gòu)的企業(yè)服務(wù)總線研究與實(shí)現(xiàn) 第三章 系統(tǒng)分析與總體架構(gòu)設(shè)計(jì) 3.1 項(xiàng)目背景介紹 ams
52、 系統(tǒng)是為某大型美資汽車制造企業(yè)開發(fā)的檔案管理系統(tǒng),全稱為archive management system, 主要負(fù)責(zé)企業(yè)生產(chǎn)和管理環(huán)節(jié)中的檔案管理及利用。企業(yè)目前在中國內(nèi)地?fù)碛?3大生產(chǎn)基地, 4個(gè)整車生產(chǎn)廠和 2個(gè)動(dòng)力總成廠,伴隨著公司業(yè)務(wù)的迅速發(fā)展,企業(yè)系統(tǒng)的電子化也逐步成熟,其在信息化建設(shè)方面的投入和規(guī)模位居國內(nèi)汽車企業(yè)的前列。作為企業(yè)信息系統(tǒng)建設(shè)的重要組成部分,檔案系統(tǒng)的電子化被擺到了十分重要的位置。 ams項(xiàng)目的目標(biāo)是以企業(yè)已有的信息資源為基礎(chǔ),開發(fā)符合實(shí)際需求的檔案信息化管理系統(tǒng),加強(qiáng)對企業(yè)各類檔案的管理和利用,使檔案信息化與企業(yè)信息化、企業(yè)各項(xiàng)工作的發(fā)展要求相適應(yīng)。檔案管理系統(tǒng)主要面向幾種類型的用戶:部門立卷人、檔案員、普通查詢?nèi)藛T和部門主管。其中立卷人和檔案員負(fù)責(zé)平時(shí)檔
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具拆卸搬運(yùn)合同范本
- 點(diǎn)火系統(tǒng):點(diǎn)火開關(guān)競爭策略分析報(bào)告
- 中醫(yī)護(hù)理質(zhì)量自查報(bào)告
- 個(gè)人股份協(xié)議書
- 個(gè)人租房合同簡易版
- 廈門運(yùn)輸合同范例
- 賣煤提成合同范例
- 丑小鴨閱讀心得體會(huì)
- 廠房裝修材料合同范本
- 廚房櫥柜合同范本
- 2025年黑龍江生態(tài)工程職業(yè)學(xué)院單招職業(yè)傾向性測試題庫1套
- 白介素6臨床意義
- DeepSeek的應(yīng)用與部署
- 《彰化縣樂樂棒球》課件
- 2025-2030年墻體裂縫檢測與修復(fù)機(jī)器人行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 北京2025年01月全國婦聯(lián)所屬在京事業(yè)單位2025年度公開招考93名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 《馬爾科夫過程介紹》課件
- 四川成都?xì)v年中考語文現(xiàn)代文閱讀之非連續(xù)性文本閱讀4篇(截至2024年)
- 高教社馬工程倫理學(xué)(第二版)教學(xué)課件10
- 巨量千川營銷師(初級(jí))認(rèn)證考試題(附答案)
- 《智能制造技術(shù)基礎(chǔ)》課件-第5章 智能制造系統(tǒng)
評(píng)論
0/150
提交評(píng)論