《基于soa架構的集成方法研究與應用》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
中南大學碩士學位論文基于SOA架構的集成方法研究與應用姓名:尹兆冰申請學位級別:碩士專業(yè):計算機科學與技術指導教師:王加陽20100526 摘要當前,伴隨著經(jīng)濟建設的步伐,企業(yè)信息化得到了快速發(fā)展。但是,企業(yè)內也積累了許多分散孤立的應用系統(tǒng),形成一個個的“信息孤島”,所以集成這些應用系統(tǒng)成為當今企業(yè)的迫切需要。在這種背景下,面向服務構架應運而生。它為企業(yè)應用集成提供了一種動態(tài)、可擴展的架構方案,同時Web服務、服務組件架構和服務數(shù)據(jù)對象技術的成熟為面向服務架構以及企業(yè)應用集成提供了技術支持。本文提出一種新的方案來解決基于面向服務架構的企業(yè)應用集成。首先闡述了實現(xiàn)企業(yè)應用集成的面向服務架構理論以及Web服務、服務組件架構、服務數(shù)據(jù)對象技術。在闡述功能層集成思想的基礎上,深入研究了基于而向服務架構的企業(yè)應用集成,分析了Web服務應用集成原理并設計了一個Web服務集成架構、討論了Web服務應用集成的優(yōu)點、同時分析了服務組件架構應用集成以及該應用集成的優(yōu)勢。然后,結合對基于面向服務架構的企業(yè)應用集成的分析,將Web服務、服務組件架構技術相結合,設計了一個基于服務組件架構、服務數(shù)據(jù)對象和Web服務技術的企業(yè)應用集成架構,該架構解決了集成中的服務組裝和數(shù)據(jù)編程問題。重點對該架構進行了分析并對SCA組件調用、服務合成與匹配、服務組件架構設計理念及策略、數(shù)據(jù)訪問服務進行了深入的研究。最后,根據(jù)設計的集成架構來設計和實現(xiàn)個人房屋貸款系統(tǒng),同時詳細分析了開發(fā)中涉及的技術問題。關鍵詞面向服務的架構,Web服務,服務組件架構,服務數(shù)據(jù)對象,企業(yè)應用集成 ABSTRACTCurrently,Enterpriseinformationhasdevelopedrapidlyalongwiththeeconomicconstruction.However,enterprisesalsohaveaccumulatedmanyisolatedapplicationsystemswhichleadtoserial"informationisolatedislands",SOintegrationoftheseapplicationsisbecomingtheutmostneedsofenterprisestoday.Underthissituation,service—orientedarchitectureisdeveloped.Meanwhile,thematurityofservicecomponentarchitecture,servicedataobjectandwebservicestechnologiesprovidethetechnicalsupportforenterpriseapplicationintegration.Thethesisproposesanewsolutionofenterpriseapplicationintegrationbasedontheservice—orientedarchitecture.Firstly,itdiscussesthetheoryofservice—orientedarchitecture,thetechnologiesofwebservices,servicecomponentarchitectureandservicedataobjectindetail.Onthebasisofanalyzingtheintegrationoftheservicelayer,itmakesanin-depthstudyoftheenterpriseapplicationintegrationbasedontheservice.orientedarchitecture.Itanalyzestheprincipleofapplicationintegrationbasedonwebservices,designsanintegrationarchitecturebasedonwebserivicesanddiscussestheadvantagesofitsintegration.Meanwhile,itanalyzestheapplicationintegrationbasedonservicecomponentarchitectureanddiscussestheadvantagesforitsintegration.Secondly,Combiningwiththeanalysisoftheenterpriseapplicationintegrationbasedontheservice—orientedarchitecture,itdesignsanenterpriseintegrationarchitecturebasedonservicecomponentarchitecture,servicedataobjectandwebservicestechnologies.Thearchitectureresolvestheproblemsofserviceassemblyanddataprogramming.Itpaysmoreattentiontoanalyzethearchitectureandmakesanin.depthstudyontheinvokingofservicecomponent,servicecompositionandmatch,servicecomponentarchitecturedesignandstrategy,dataaccessservice.Finally,itdesignsandimplementstheindividualhousingloansystemaccordingtothedesignedintegrationarchitecture.Meanwhile,itanalyzesthetechnicalissuesintheprocessofdevelopment.1I KEYWORDSservice—orientedarchitecture,webservices,servicecomponentarchitecture,servicedataobject,enterpriseapplicationintegration!11 碩一l:學位論文第一章緒論當前,企業(yè)信息技術發(fā)展迅猛,其發(fā)展的~個主要趨勢是企業(yè)應用集成(EnterpriseApplicationIntegration,EAI),企業(yè)應用集成是實現(xiàn)企業(yè)業(yè)務自動化的基礎。企業(yè)應用集成已經(jīng)成為最近幾年應用程序和信息系統(tǒng)開發(fā)的驅動力。面向服務架構(Service—OrientedArchitecture,SOA)為傳統(tǒng)的企業(yè)應用集成帶來了一場革命,它能提供一種面向功能層的企業(yè)應用系統(tǒng)集成方式。這種方式不僅能保證遺留系統(tǒng)的數(shù)據(jù)安全性和邏輯安全性,而且還能實現(xiàn)各系統(tǒng)之間的松散藕合,這樣可以最大限度的集成現(xiàn)有的遺留應用。1.1研究背景當前,大多數(shù)企業(yè)都有各種各樣的系統(tǒng)、應用程序以及不同時期和技術的體系結構,通過使用這些應用系統(tǒng),達到降低管理成本、規(guī)范業(yè)務流程和提高服務質量的目的。而這些應用系統(tǒng)彼此之問并不是孤立的,通常它們彼此之間需要信息交互,通過它們之間的相互協(xié)作來更好地完成企業(yè)分配的任務,這就需要探索一種新的軟件開發(fā)方法,通過這種新的開發(fā)方法將現(xiàn)有的各個應用系統(tǒng)整合起來,從而達到整合企業(yè)資源的目的。這樣,企業(yè)應用集成的研究由此展開。傳統(tǒng)的企業(yè)應用集成解決方案按采用的方法學分類分為幾種。點對點集成方法,是通過少數(shù)不同應用系統(tǒng)之問的直接硬代碼集成。面向消息的中間件集成方法,利用高效可靠的消息傳遞機制進行平臺無關的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行網(wǎng)絡應用系統(tǒng)的集成【¨。但是,傳統(tǒng)的企業(yè)應用集成方法很復雜,成本高,而且不具備靈活性。此外,傳統(tǒng)的企業(yè)應用集成方法也不能很好的支持企業(yè)轉向以業(yè)務過程為中心的經(jīng)營模式。在不改變原有企業(yè)應用系統(tǒng)的基礎上,基于面向服務架構的企業(yè)應用集成開發(fā)方案被提了出來,企業(yè)應用集成進入面向服務架構的新時代。它通過發(fā)布可發(fā)現(xiàn)的接口為其它的應用程序提供服務,而其中的服務可以通過網(wǎng)絡進行調用。采用面向服務的架構,我們可以最大程度地減少系統(tǒng)間的耦合,從而提高可重用性。當前,已經(jīng)存在許多實現(xiàn)面向服務架構的方式。Web服務技術是其中之一,目前是一種的主流方式。它的若干實現(xiàn)技術基于XML標準接口,從而使得它具有良好的業(yè)務封裝機制、標準的協(xié)議規(guī)范、松散藕合集成機制以及高度的可集成性等特點,能夠很好的滿足面向服務架構應用模式需求。通過在企業(yè)應用集成中引入面向服務架構和W曲服務的相關技術(如SOAP/WSD圳DDI等),可以實現(xiàn)面向服務的企業(yè)應用集成。但是,面向服務架構并不一定是通過Web服務技術來實現(xiàn),而且一個基于Web服務技術開發(fā)出來的應用系統(tǒng)也不一定就代表一個基于面向服務架構的應用,Web服務技術只是實現(xiàn) 碩l:學位論文第一章緒論面向服務架構的具體方式之一。而服務組件架構、服務數(shù)據(jù)對象編程技術的相繼出現(xiàn),為面向服務架構提供了一種新的實現(xiàn)方式。兩者有著密切的聯(lián)系,相互協(xié)作,為企業(yè)應用集成提供了很好的支持。服務組件架構為開發(fā)者提供了單一的、使用服務的編程模型,服務數(shù)據(jù)對象為丌發(fā)者提供了單一的、展現(xiàn)和使用數(shù)據(jù)源的編程模型。本文正是基于服務組件架構、服務數(shù)據(jù)對象和Web服務技術構建了一種面向服務的、相粒度、松散耦合的、位置和傳輸協(xié)議透明的集成架構解決方案。1.2國內外研究現(xiàn)狀20世紀60年代,企業(yè)應用集成伴隨著信息技術的發(fā)展而出現(xiàn)。企業(yè)應用集成的理念就隨著企業(yè)信息化程度的不斷提高得到不斷的發(fā)展,其關注的焦點也不停地變化。到80年代初,企業(yè)規(guī)模丌始不斷擴大,業(yè)務和數(shù)據(jù)閂趨復雜,一些公司丌始意識到企業(yè)應用集成的價值和必要性,許多公司的專業(yè)技術人員試圖在企業(yè)系統(tǒng)整體概念的指導下對現(xiàn)有的應用系統(tǒng)進行重新設計,以期將它們集成在一起。這時,一種點對點(Point.to.Point)的集成技術開始出現(xiàn),在各個應用系統(tǒng)之間通過各自不同的接口進行點對點的簡單連接,實現(xiàn)信息和數(shù)據(jù)的共享。80年代術到90年代初,隨著企業(yè)規(guī)模的進~步擴大,應用系統(tǒng)不斷增加,簡單的傳統(tǒng)點對點集成已經(jīng)很難滿足企業(yè)不斷增長的業(yè)務要求,企業(yè)迫切需要新的集成方案。它以較少代碼編寫、低成本的開發(fā)來實現(xiàn)集成,可以將各種遺留系統(tǒng)和新系統(tǒng)無縫集成起來。利用CORBA、DCOM、MOM等面向信息的中間件技術【2】,實現(xiàn)了對企業(yè)信息系統(tǒng)的集成,~定程度上促進了企業(yè)的進一步發(fā)展,但其不足在于數(shù)據(jù)與傳輸緊密的耦合,不便于重用13】。當前,企業(yè)應用集成技術在國內外的應用已經(jīng)處于一個高速發(fā)展的時期。企業(yè)應用集成不受行業(yè)的限制,它廣泛應用于國防、汽車、金融服務、新聞、電信、高科技、咨詢、法律、政府等機構和行業(yè),主要應用范圍涉及企業(yè)應用系統(tǒng)問的數(shù)據(jù)整合、流程整合、異構系統(tǒng)集成、電子商務數(shù)據(jù)交換等諸多企業(yè)應用集成領域。在國外,以Microsott、BEA的企業(yè)應用集成解決方案最有代表性。目前,國內企業(yè)提供企業(yè)應用集成的解決方案并不多,用友、金蝶等國內大的軟件公司的產(chǎn)品競爭力也不很強。近幾年來,成為研究熱點的面向服務架構和Web服務技術的誕生,為企業(yè)內部及外部系統(tǒng)以及面向服務的集成提供了理論支撐和技術支持。在國外,面向服務架構已經(jīng)不一個新鮮的概念。早在1996年此概念就已經(jīng)出現(xiàn)了,不過受當時技術發(fā)展的限制,并不能完全地實現(xiàn)面向服務的架構。因此,面向服務架構在相當一段時間內沒有得到大家的重視。2002年的12月,Gartner再次提出“面向服務的體系結構”是現(xiàn)代應用開發(fā)領域最重要的課題之后,不僅國內外計算機專家學者對此表現(xiàn)出極大的興趣,而且以IBM和BEA為代表的各大lT廠商也紛紛加入研究面向服務架構的行列。目fi{f面向服務架構的理論研究主要集中在以下幾個方面。2 碩十學位論文第一章緒論(1)理論模型。為了更好地促進未來應用系統(tǒng)間的交互,需要規(guī)范和指導基于面向服務架構的企業(yè)應用系統(tǒng)的開發(fā)。從事面向服務架構參考模型研究的意義正在于此。各個研究機構和各個公司提出了若干概念參考模型,作為面向服務的體系結構的指導方針。OASIS在2006年初提出了面向服務架構參考模型【4l,各大公司IBM、BEA也有自己的面向服務架構參考模型【5,61。(2)服務設計。服務的構件要考慮到當前大量使用面向對象或面向構件方法開發(fā)出來的大量遺留構件的復用問題,因此將現(xiàn)有的非面向服務的構件轉化或者擴展為服務組件,為復用大量現(xiàn)有構件提供有效的途徑。除了要兼容以前的遺留構件外,服務的設計研究主要應該是使用新的技術和標準來開發(fā)服務構件,在這個方面已經(jīng)有了一些研究成果。比如OSOA聯(lián)盟的服務組件架構、服務數(shù)據(jù)對象規(guī)范,Microsoft的WCF以及SUN公司的JBI規(guī)范。這些規(guī)范為服務的設計和丌發(fā)提供了方法、規(guī)范,促進了面向服務的設計和開發(fā)的發(fā)展,是目前服務設計和開發(fā)方面的主流,也是整個面向服務的軟件體系結構方面實質性的探索和研究。(3)服務組合。它足面向服務的體系結構的研究中的熱點和重點。目前基于流程的研究大多基于BPEL(BusinessProcessExecutionLanguage,業(yè)務流程執(zhí)行語言)17J,BPEL是最有影響力,最廣泛接受的流程語言,并已經(jīng)成為標準。此鄉(xiāng),bOWL-St81,是一個比較有名的基于語義的流程語言,在學術研究中占有重要地位。此外還有基于語義的方法、基于形式化方法、基于規(guī)劃的方法的研究。文獻【9】提出了一種基于領域本體的服務動態(tài)組合算法。該方法利用領域本體及其推理能力,生成一個優(yōu)化的服務組合圖,然后基于該圖給出了一個高效的服務組合算法。(4)服務發(fā)現(xiàn)?;ヂ?lián)網(wǎng)上存在著大量的w曲服務,但是我們所需要的只是其中的少量W曲服務,W曲服務發(fā)現(xiàn)研究目的就在于此,使用w曲服務發(fā)現(xiàn)方法查找出滿足要求的服務。服務調用的質量由服務發(fā)現(xiàn)的效果來決定,同時,服務發(fā)現(xiàn)的效果也影響服務組合的相容性和可替換性,關系到能否真正實現(xiàn)服務的即插即用。由于傳統(tǒng)的Web服務發(fā)現(xiàn)機制查準率較低,w曲服務發(fā)現(xiàn)的研究者引入了語義網(wǎng)(SemanticWeb)技術加強服務描述信息的機器可理解性,支持用戶需求和服務能力之間的邏輯推理匹配;利用P2P技術來處理服務元數(shù)據(jù)的交捌Ⅻ,克服傳統(tǒng)UDDI(UniversalDescription,DiscoveryandIntegration,統(tǒng)一描述、發(fā)現(xiàn)和集成)技術中服務元數(shù)據(jù)集中注冊、集中存放對搜索廣度帶來的限制。值得一提的是,文科Il】是國內比較系統(tǒng)的總結和研究服務發(fā)現(xiàn)的文獻,它系統(tǒng)地總結了服務發(fā)現(xiàn)的相關技術,并在此基礎上提出了基于服務質量QoS的服務匹配算法,服務選擇模型,提出了Web服務發(fā)現(xiàn)的體系結構,提出了w曲服務發(fā)現(xiàn)的原型系starWSDS。服務發(fā)現(xiàn)是面向服務的體系結構的研究熱點,也是難點,這方面需要解決的問題還很多,未來幾年內仍然會有很多研究針對這個方面。在面向服務的體系結構的應用方面,各大軟件廠商在推行面向服務架構時一般結合3 第一章緒論自己產(chǎn)品平臺進行。IBM作為業(yè)界科技創(chuàng)新的領導廠商,早在面向服務架構領域投入了大量精力,提出面向服務架構的IBM解決方案,使客戶能夠快速實施面向服務的架構,并幫助企業(yè)全面丌發(fā)面向服務架構的潛能,從而實現(xiàn)隨需而變的業(yè)務。在通過面向服務架構實現(xiàn)真正業(yè)務價值的過程中,IBMWebSphere在IBM中間件的基礎上強化了很多應用接口。正如IBM所強調的“總線”概念,它關注的領域是系統(tǒng)領域,為企業(yè)用戶提供全套的架構服務【121。此外,BEA、SAP等軟件廠在商推出了自己的面向服務架構產(chǎn)品。它們都是站在自己的角度,所提的概念也不盡相同,很難形成統(tǒng)一的標準,這導致目前面向服務架構的實踐處于一種較為混亂的局面。在國內,對面向服務架構的研究仍然處于探索階段。國內科研機構的理論研究成果也并不多,對于面向服務架構的著作更是少見。中國企業(yè)正在尋求解決動態(tài)lT應用整合的問題,越來越多的企業(yè)己經(jīng)了解到面向服務架構的價值及重要性。盡管受到全球金融危機的影響,面向服務架構在會融、電信、交通行業(yè)【l3】等其它領域的應用有很大的進展。在2007年3月,面向服務架構核心組件標準SCA/SDO標準1.O正式發(fā)布,中國的企業(yè)普元軟件第一次在軟件架構層面參與全球標準制定,其研發(fā)的PrimetonEOS產(chǎn)品,是基于J2EE技術實現(xiàn)企業(yè)級應用開發(fā)、運行、管理、監(jiān)控、維護的中問件平臺【14】,其開發(fā)與集成技術接近于國外IT巨頭面向服務架構產(chǎn)品的水平。EOS采用面向構件構建應用系統(tǒng)的模式,一定程度上體現(xiàn)了面向服務架構的思想。但從總的來說,國內對面向服務架構的實踐仍處于較為初步而零散的局面。1.3本文主要工作為了能夠更好的解決企業(yè)應用集成的問題,人們不斷的提出新的解決方案,這些新的解決方案在一定程度上能夠彌補以往的不足,從而達到一種更加完美的解決方案。軟件體系結構的出現(xiàn)克服了軟件危機中的問題,降低了軟件開發(fā)的復雜度。伴隨著經(jīng)濟的飛速發(fā)展,企業(yè)的規(guī)模在不斷的壯大,企業(yè)信息化所需的軟件復雜度也在增加,傳統(tǒng)的軟件體系結構暴露出了它們的弊端,新的體系結構正在嶄露頭角,解決了過去軟件開發(fā)中出現(xiàn)的種種問題。面向服務架構正是為軟件體系結構注入了新的生命活力,實現(xiàn)了應用程序間良好的互操作性、可擴展性以及高度的集成性。基于面向服務架構的企業(yè)應用集成解決方案,將企業(yè)中不同業(yè)務功能的應用程序集成在一起。從而構建一個可供數(shù)據(jù)交流共享和應用溝通的中心系統(tǒng),達到現(xiàn)有的應用系統(tǒng)能夠在新的環(huán)境中良好運行的目的,使我們可以從另外一個角度來看待企業(yè)內部的信息資源,新的企業(yè)信息和企業(yè)原有的信息資源融合在一起,使得它們能夠在新的平臺上交互,從而一起發(fā)揮集成效應。本文從面向服務架構的企業(yè)應用集成角度出發(fā),深入闡述了面向服務架構模型以及w曲服務、服務組件架構、服務數(shù)據(jù)對象等技術。在研究了W曲服務應用集成、服務組4 碩+l二學位論文第一章緒論件架構應用集成的基礎上,結合本人碩士階段參與的軟件項目的經(jīng)驗和一些體會,進而提出了一種基于面向服務架構的企業(yè)應用集成方案。主要研究工作如下:(1)闡述了面向服務架構理論以及Web服務、服務組件架構和服務數(shù)據(jù)對象技術,對其中的概念、模型、特征、優(yōu)勢等方面進行了深入的分析,將它們與企業(yè)應用集成聯(lián)系起來,為最終的企業(yè)應用集成解決方案和架構設計提供理論依據(jù)。(2)深入研究了基于面向服務架構的企業(yè)應用集成,包括分析了集成的層次,重點研究了w曲服務、服務組件架構技術來實現(xiàn)基于面向服務架構的企業(yè)應用集成。分析了w曲服務工作原理并設計一個基于w曲服務的企業(yè)應用集成架構。同時,分析了基于服務組件架構的企業(yè)應用集成并闡述了該集成的優(yōu)勢。(3)提出一個基于面向服務架構的企業(yè)應用集成新方案,該方案最大的特點在于整合了w曲服務、服務組件架構和服務數(shù)據(jù)對象技術。設計了一個基于w曲服務、服務組件架構和服務數(shù)據(jù)對象的企業(yè)應用集成架構SSWSOA,其不同于W曲服務以及服務組件架構各自來實現(xiàn)企業(yè)應用集成。重點對該架構進行架構分析,深入分析架構中每層的功能及實現(xiàn)的技術,并對架構中的SCA組件調用、服務合成與匹配、服務組件架構策略框架以及設計理念、數(shù)據(jù)訪問服務進行了分析。(4)結合設計的SSWSOA,設計和實現(xiàn)了個人房屋貸款系統(tǒng)并對開發(fā)中涉及的主要問題進行了分析。1.4內容組織本文以基于面向服務架構的企業(yè)應用集成的研究為出發(fā)點,通過對面向服務體系架構理論以及實現(xiàn)基于面向服務架構的企業(yè)應用集成的技術Web服務、服務組件架構以及服務數(shù)據(jù)對象分析,提出一個企業(yè)應用集成解決新方案,該方案基于面向服務架構,充分體現(xiàn)了面向服務架構的思想,并根據(jù)這些技術設計了一個企業(yè)應用集成架構SSWSOA。本文分六章進行論述:第一章緒論,闡述了論文研究背景、研究意義和目的;詳細分析了國內外研究現(xiàn)狀以及闡述了論文的內容組織。第二章面向服務架構理論與技術,主要闡述了面向服務架構理論以及用于實現(xiàn)基于面向服務架構的企業(yè)應用集成的Web服務、服務組件架構、服務數(shù)據(jù)對象技術。第三章面向服務架構的企業(yè)應用集成,首先分析了企業(yè)應用集成層次,針對功能層集成優(yōu)勢,引出基于面向服務架構的企業(yè)應用集成解決方案。然后,研究了Web服務、服務組件架構技術來實現(xiàn)基于面向服務架構的應用集成。分析了Web服務工作原理,設計一個集成架構并闡述Web服務集成之優(yōu)點;研究了服務組件架構應用集成并分析了其集成帶來的優(yōu)勢。第四章面向服務架構的集成架構設計,主要內容是創(chuàng)新性的提出一個基于面向服5 碩士學位論文第一章緒論務架構的企業(yè)應用集成解決方案,該方案融合了基于Web服務的企業(yè)應用集成以及基于服務組件架構的企業(yè)應用集成方法,設計了一個基于服務組件架構、服務數(shù)據(jù)對象和Web服務技術的企業(yè)應用集成架構SSWSOA。并對框架進行以及其中每層中的問題進行研究。第五章面向服務架構的企業(yè)應用集成架構應用,主要通過個人房屋貸款系統(tǒng)的設計和實現(xiàn)展示基于面向服務架構的企業(yè)應用集成架構SSWSOA的應用。首先分析了個人房屋貸款系統(tǒng)的業(yè)務背景,對目的支持服務組件架構的編程環(huán)境的集成環(huán)境與工具進行了分析并選擇丌發(fā)技術與工具。接著,基于設計的集成架構SSWSOA對系統(tǒng)進行總體設計并分析了每層所使用的技術。然后,從數(shù)據(jù)訪問、業(yè)務功能、模塊設計以及客戶端調用幾個角度對系統(tǒng)進行實現(xiàn)。最后,論述了系統(tǒng)開發(fā)中的一些技術性問題。第六章總結與展望,是對本文的工作進行總結,并對未來作出展望。1.5本章小結面向服務架構及其實現(xiàn)技術的不斷發(fā)展越來受到人們的關注,如何設計與應用一種符合企業(yè)本身的集成架構成為了研究的熱點。本章首先介紹了企業(yè)應用集成的研究背景,指出本文將基于面向服務架構的企業(yè)應用集成研究作為出發(fā)點。然后,較為深入地分析了面向服務架構及其企業(yè)應用集成的國內外研究現(xiàn)狀。最后,討論了論文的主要研究就工作以及內容組織安排。6 碩-J:學位論文第_二章面向服務架構理論‘j技術第二章面向服務架構理論與技術為了實現(xiàn)應用系統(tǒng)問的集成,企業(yè)最初主要采取緊耦合的集成方法,最典型的就是點對點的集成,這種集成方法有著很多的弊端。不僅需要對應用系統(tǒng)做較大的改動,還需要編寫大量的代碼,并且當再有一個新系統(tǒng)需要集成時,系統(tǒng)需要再次重新設計,不儀加大了集成的難度,而且提高了集成的成本。為了有效的降低集成難度,減少集成的成本,成功的實現(xiàn)多個應用系統(tǒng)間的無縫集成,并且能保證系統(tǒng)集成的松散耦合性、開放性。本文設計了一個基于面向服務架構的企業(yè)應用集成架構,該集成架構采用了一些實現(xiàn)面向服務架構的技術,充分體現(xiàn)了面向服務架構的思想。對此,本章將主要對面向服務架構理論以及實現(xiàn)面向服務架構的技術Web服務、服務組件架構和服務數(shù)據(jù)對象予以闡述,為下面幾章進行企業(yè)應用集成分析以及架構設計打下基礎。2.1面向服務架構隨蓿信息技術的不斷發(fā)展,特別是分布式計算技術和因特網(wǎng)的飛速發(fā)展使企業(yè)擁有了大量基于網(wǎng)絡的大型分布式應用系統(tǒng)。而這些應用系統(tǒng)之間的數(shù)據(jù)很難共享,從而不可避免的形成了一個個的“信息孤島”。SOA,即面向服務架構正是為處理這個復雜問題而提出的有效解決方案。這種體系結構思想起源于“把軟件作為服務(SoftwareasaService)”的觀點。2.1.1概念及模型Gartner在1996年提出面向服務架構的概念,只是作為一種架構理念。2002年12月,Gartner3L提出面向服務架構是“現(xiàn)代應用開發(fā)領域最重要的課題’’,并預測到2008年,面向服務架構將成為占有絕對優(yōu)勢的軟件工程實踐方法。許多的學者提出了自己的面向服務架構的概念與定義。文獻【l5】提到服務有八條基本原則,其中,自治性、松散耦合、抽象、以及需要正式契約被視為形成面向服務架構根本基礎的核心原則。文獻【I6】定義面向服務架構是一種設計方式,它指導著業(yè)務服務在其生命周期中包括創(chuàng)建和使用的方方面面。面向服務架構也是一種定義和提供IT基礎設施的方式,它允許不同應用相互交換數(shù)據(jù)、參與業(yè)務流程,無論它們各自背后使用的是何種操作系統(tǒng)或采用了何種編程語言。其中文獻【17】定義面向服務架構是一個軟件架構,它包含四個關鍵概念:應用程序前端、服務、服務庫和服務總線。一個服務包含一個合約、一個或多個接口和一個實現(xiàn)。IdeaGroup對比了面向服務的體系結構和現(xiàn)存技術的不同和相同之處,用參照的方式陳述了面向服務架構的概念。7 碩l:學位論文第二章面向服務絮構理論oj技術Service-architecture.tom將面向服務架構定義為,“質上是服務的集合。服務間彼此通信,這種通信可能是簡誓的數(shù)據(jù)傳送,也可能是兩個或更多的服務協(xié)調進行某些活動。服務問需要某些方法進行連接【l引。所謂服務就是精確定義、封裝完善、獨立于其它服務所處壞境和狀態(tài)的函數(shù)”??傮w來說,面向服務架構是一種架構模型,它可以根據(jù)需求通過網(wǎng)絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。面向服務架構模型描述了三種角色(服務提供者,服務請求者,服務注冊中心),三種基本活動(發(fā)布,查找,綁定),這與基本的Web服務架構相同[19】。圖2.1描述了面向服務架構的參考模型。圖2-1面向服務架構模型下面對面向服務架構模型中的三個基本活動進行分析。發(fā)布(Publish)H艮務,服務提供者向服務注冊中心發(fā)布服務描述,以使服務使用者可以發(fā)現(xiàn)和調用,發(fā)布的信息包括與該服務交互必要的所有內容,如服務路徑,傳輸協(xié)議以及消息格式等圓】;查找(Findl服務,服務請求者直接檢索服務描述或在服務注冊中心來查找和定位滿足其標準的服務,查找服務的操作由用戶或者其它服務發(fā)起;綁定和調用(BindandInvoke)服務,在檢索服務描述之后,服務消費者繼續(xù)根據(jù)服務描述中的信息來調用服務。對應于這三種活動,涉及至.tl--種基本角色【2¨。服務提供者(ServiceProvider),即服務的創(chuàng)建者和擁有者,是一個可以通過網(wǎng)絡訪問的實體,它將自己的服務和服務描述發(fā)布到服務注冊中心,以便于服務請求者來定位,也可以因為用戶需求的改變而取消服務;服務請求者(ServiceRequester)從服務注冊中心定位其需要的服務,向服務提供者發(fā)送一個消息來啟動服務的執(zhí)行。它可以是一個請求的應用、服務或者其它類型的軟件模塊,完成發(fā)現(xiàn)提供所需服務的WSDL文檔,以及與服務通信的功能;服務注冊中,t】,(ServieeRegistry)作用是服務提供者在此發(fā)布自己的服務描述,服務請求者查找服務并獲得服務的綁定信息。實現(xiàn)增加、刪除、修改己發(fā)布的服務描述以及從注冊表中查詢服務的功能。由模型圖可以看出,面向服務的體系結構中的主要構件包括服務和服務描述。服務8 碩。f二學位論文第-二章面向服務架構理論與技術(Service)是一個由服務描述來描述的接口,而服務描述的實現(xiàn)就是該服務。服務是一個軟件模塊f221,獨立于技術的業(yè)務接口,可在不同業(yè)務過程中被重復調用,而且具體的服務實現(xiàn)不依賴特定實現(xiàn)語言與工具;服務描述(ServiceDescription),其本質是服務內容的標準化描述,提供了服務內容、綁定類型、傳輸協(xié)議和服務地址等,生成相應的完全的文檔,發(fā)布給服務請求者或服務注冊中心。2.1.2基本特征面向服務架構是一種粗粒度、松耦合的服務架構,其服務之間通過簡單、精確定義接口進行通訊,不涉及底層編程接口和通訊模型。這種架構特征歸納如下。(1)松散耦合。面向服務架構是“松散藕合”的組件服務,這一點區(qū)別于大多數(shù)其它的組件架構。歸納起來,在面向服務架構中松散耦合包括三個方面。接口藕合是將服務使用者和服務提供者在服務實現(xiàn)和客戶如何使用服務方面隔離開來。服務提供者和服務使用者間松散藕合背后的關鍵點是服務接口作為與服務實現(xiàn)分離的實體而存在1151。這使服務實現(xiàn)能夠在完全不影響服務使用者的情況下進行修改。技術耦合強調服務請求者和服務提供者的實現(xiàn)和運行不需要依賴與特定的某種技術,可以使用不同的技術實現(xiàn)。流程耦合強調服務不應與具體的業(yè)務流程相關,以便能夠用于多種不同的業(yè)務流程與應用,體現(xiàn)了服務的可重用性。(2)粗粒度服務。服務所公開功能的范圍,即為服務粒度(servicegranularity)。一般分為細粒度(fine—grainedservice)和粗粒度(coarse-grained)兩種。細粒度服務提供較小的功能單元。粗粒度服務針對復雜的業(yè)務邏輯,封裝了大塊的業(yè)務。服務粒度在設計時應該選擇合適的大小,必須在服務粒度設計上維護一種平衡,以獲得成本降低、靈活響應的好處。設計中在滿足一致性的前提下盡可能地進行粗粒度建模。(3)標準化的接口。面向服務架構通過服務接口的標準化描述,使得該服務可以提供給任何異構平臺和任何用戶接口使用。這一描述囊括了與服務交互需要的全部細節(jié),包括消息格式、傳輸協(xié)議和位置【231。該接E1隱藏了實現(xiàn)服務的細節(jié),允許獨立于服務基于的軟硬件平臺和編寫服務所用的編程語言。2.2Web服務技術W曲服務是由W3C(WoddWidew曲Consortium,萬維網(wǎng)聯(lián)盟)制定的一套開放的標準技術規(guī)范,其基于XML的三大關鍵技術SOAP,WSDL和UDDI,其最大的特點是允許不同的軟件應用程序能相互操作,無論這些程序是用什么編程語言實現(xiàn)、運行在什么樣的操作平臺或架構技術上。Web服務能使應用程序以一種松散耦合的方式組合起來,并實現(xiàn)復雜的交互。9 第二:章面向服務粲構理論’j技術2.2.1Web服務原理及概念Web服務體系工作組對Web服務提供了如下的參考定義:W曲Serviceprovidesastandardmeansofinteroperatingbetweendifferentsoftwareapplications,runningonavarietyofplatformsandframeworks。對Web服務更精確的解釋是【241,Web服務是建立可互操作的分布式應用程序的新平臺。Web服務平臺是一套標準,定義了一套標準的調用過程。從定義可以知道,Web服務在不同的軟件應用之問提供了標準的交互方式,使原來各孤立的站點之問的信息能夠相互通信、共享,而不用考慮應用程序的實現(xiàn)技術以及運行平臺。學術界對Web服務技術的研究趨于成熟,因此對其定義的解釋很多。本文在此提出對Web服務的理解,WebService=SOAP+H1]四+WSDL。其中,SOAP(SimpleObjectAccessProtocol,簡單對象訪問協(xié)議)是Web服務的主體。WSDL(WebServiceDescriptionLanguage,web服務描述語言)是一個XML文檔,它通過H丌P向公眾發(fā)布,公告客戶端程序關于某個具體的Web服務的URL信息、方法的命名,參數(shù),返回值等。2.2.2Web服務協(xié)議棧在Web服務環(huán)境中,工作任務是通過面向服務架構模型的三個角色之間的相互合作來完成的,要完成這種跨平臺的交互,必須有一套標準的Web服務規(guī)范,如服務描述格式、通訊格式、數(shù)據(jù)交換格式以及其它方面的規(guī)范,這就構成了web服務架構的協(xié)議棧嘲,如圖2.2所示。一f:作流業(yè)務處理WSFLBPEL4WS蔓UDDI壘兀服’司W(wǎng)SDL數(shù)磐象SOAP握:磕.’官:晷鴦圖協(xié)議棧層次結構從這樣的層次結構可以看出,由底向上,依次為基礎網(wǎng)絡層、傳輸層、信息包裝層、服務描述層、服務發(fā)現(xiàn)發(fā)布層、業(yè)務描述層。此外,服務質量、安全性、事物性、可靠性和可管理性貫穿了整個協(xié)議棧。W曲服務是建立在、和lO 碩-J二學位論文第二章面向服務架構理論’j技術基礎上的分布式技術【26】。Web服務需要通過網(wǎng)絡來訪問和調用,所以Web服務協(xié)議棧的基礎層是網(wǎng)絡層,使用HTTP標準網(wǎng)絡通訊協(xié)議。Web服務還可以支持其它的因特網(wǎng)協(xié)議,如SMTP、FTP等。信息包裝層采用的主要協(xié)議是SOAP,是基于XML的消息傳遞,是一個用于在分布式環(huán)境下數(shù)據(jù)交換的簡單、輕量級協(xié)議,它與編程語言、對象模型以及操作系統(tǒng)平臺都無關【2。71。服務描述層,采用的是Web服務描述語’言(WSDL),是用XML文檔來描述web服務的標準,是Web服務的接口定義語言,描述了服務所提供的操作、參數(shù)和參數(shù)類型;服務發(fā)布、發(fā)現(xiàn)層定義了服務如何公丌它們自己以及如何在網(wǎng)絡上相互發(fā)現(xiàn),對于要相互查找的服務,統(tǒng)一描述、發(fā)現(xiàn)和集成為查找和訪問服務定義了注冊中心和相關的協(xié)議,本質是服務的公共網(wǎng)址【281。由于WSDL文件中已經(jīng)定義了web服務的地址URL,外部可以直接通過WSDL提供的URL進行相應的Web服務調用,所以UDDI不是W曲服務必須的一個組成部分。最后一層是業(yè)務描述層,采用Web服務流語言(wsFL)、Web服務業(yè)務流程執(zhí)行語言(BPEL4WS),WSFL作為敘述網(wǎng)絡服務流程的語言,定義了服務操作的順序,服務間的交互方式;BPEL4WS定義了一起進行分布式事務處理的工作流操作、web服務事務(ws.Transaction)、Web服務協(xié)調(ws—Coordination),集成并替代了IBM的Web服務流語一言-(WSFL)和微軟的XLANG規(guī)范,用于應用程序和流程的集成【291。2.2.3Web服務實現(xiàn)技術面向服務架構是建立在分布式計算技術的基礎上,它使得分布在網(wǎng)絡上的軟件組件可以被發(fā)布,相互之間可以發(fā)現(xiàn)和調用。組件所提供的服務可以在任何地方、為任何人所獲得。Web服務是一種優(yōu)秀的分布式計算技術,在因特網(wǎng)或者企業(yè)內部網(wǎng)上通過使用標準的XML協(xié)議和信息格式來展現(xiàn)商業(yè)應用服務。通過使用開放的因特網(wǎng)標準:SOAP簡單對象訪問協(xié)議(用來服務調用)、WSDL(Web服務描述語言,用來服務描述)和UDDI(統(tǒng)一描述、發(fā)現(xiàn)和集成規(guī)范,用來服務的發(fā)布和集成1,使得服務發(fā)布者、Web服務平臺等相互獨立,從而消除了現(xiàn)存解決方案(如CORBA和DCOM)中的不足方面。(1)數(shù)據(jù)表示為XML。即ExtensibleMarkupLanguage(n-I"擴展標注語言),是基于文本的、自描述的結構化語言,完全獨立于平臺和編程語言,所以特別適合作為不同應用之間進行數(shù)據(jù)交換和消息傳遞的數(shù)據(jù)載體。它是是由W3C于1998年2月發(fā)布的一種標準,是SGML(StandardGeneralizedMarkupLanguage,標準通用標注語言)的一個簡化子集f30‘。XML具有可擴展、自描述性、獨立于平臺和應用等特點f311。需要注意的是XML不是HTML的替代品,XML和HTML是兩種不同用途的語言。XML是用來描述數(shù)據(jù),如何存放數(shù)據(jù)的,而HTML是用來顯示數(shù)據(jù)的,側重描述如何顯示數(shù)據(jù);HTML是與顯示信息相關的,而XML則是與描述信息相關的。 碩I:學位論文第二章面向服務架構理論oi技術(2)消息傳輸方式SOAP。即SimpleObjectAccessProtocol(簡單對象訪問協(xié)議),是一種輕量的、簡瞥的、基于XML的分布式計算協(xié)議,它允許在一個分散、分布式的壞境中交換信息。SOAP具有跨硬件平臺、操作系統(tǒng)、編程語言和網(wǎng)絡硬件平臺的高度互操作性。Web服務就是采用SOAP作為標準通信協(xié)議。SOAP規(guī)范由四部分組成:SOAPenvelop(SOAP信封)、encodingrules(soAP編碼規(guī)則)、SOAPRPCrepresentation(SOAPRPC表示)和SOAPbinding(SOAP綁定)【32J。SOAP信封結構是SOAP消息的信息框架。對于SOAP的工作機理,可以理解為一個開放協(xié)議SQ"=RPC+H1]rP+xML。XML作為數(shù)據(jù)傳送的格式,RPC作為一致性的調用途徑以及HTTP作為底層通訊協(xié)議,允許服務提供者和服務請求者經(jīng)過防火墻在因特網(wǎng)進行通訊交互。如圖2.3所示。圖2-3SOAP工作原理(3)描述方式WSDL。即W曲ServiceDescriptionLanguage(Web服務描述語言),是Web服務描述語言。簡單的說,就是一個XML文檔,它將Web服務描述定義為一組服務訪問端點,客戶端可以通過這些服務訪問端點對包含面向文檔信息或面向過程調用的服務進行訪問。本文在集成應用一章中將會闡述WSDL文件的創(chuàng)建。一個完整的WSDL文檔包括五個部分【331。types元素表示W(wǎng)曲服務中使用的數(shù)據(jù)類型,它是獨立與機器和語言的類型定義,這些數(shù)據(jù)類型被
此文檔下載收益歸作者所有