我是一名研二的學(xué)生,現(xiàn)在已經(jīng)開題了,前不久剛剛通過開題答辯。我的畢業(yè)設(shè)計題目是《基于J2EE平臺的Web服務(wù)復(fù)合技術(shù)的研究與應(yīng)用》,實際上我對web服務(wù)認(rèn)識不是很深,希望在接下來的一年時間通過對這個題目的研究能夠?qū)@方面達(dá)到一定的認(rèn)識
隨著Internet的迅速發(fā)展,基于各種平臺的網(wǎng)絡(luò)應(yīng)用程序已廣泛用于各行業(yè)中,但問題也隨之而來,如何使基于各平臺的異構(gòu)應(yīng)用程序在一起協(xié)同工作,使不同系統(tǒng)能無縫地進(jìn)行通信和數(shù)據(jù)共享。Web Services正是出于這種目的,基于XML技術(shù)上發(fā)展起來的。
Web服務(wù)是對web的擴(kuò)展,Web原本是為人提供服務(wù)的基礎(chǔ),經(jīng)擴(kuò)展后就能為相互間連接的軟件提供服務(wù)。Web服務(wù)建構(gòu)在簡單對象訪問協(xié)議(SOAP)之上,并在添加一個過程和一組協(xié)議之后達(dá)到下一層次。使用這些協(xié)議,業(yè)務(wù)就能通過Web而不是預(yù)先建立的網(wǎng)絡(luò)發(fā)現(xiàn)彼此的存在,并進(jìn)行交互。Web服務(wù)中的關(guān)鍵因素是一個存儲庫,它可把另一用戶添加到傳統(tǒng)的客戶機(jī)提供者。組件程序集的面向?qū)ο笫呛茈y實現(xiàn)的夢想,除非現(xiàn)在處于松耦合的全球性Web中,其中的詞匯是關(guān)于服務(wù)而不是關(guān)于對象的。
Web服務(wù)是一種技術(shù),同時也是一種過程和現(xiàn)象。作為一種技術(shù),它是構(gòu)建在全球連接之上的一組協(xié)議,而這一連接是因為SOAP以及XML和HTTP的合作才成為可能的。作為一種過程,它是用于在Web上發(fā)現(xiàn)和連接軟件的一種方法。作為一種現(xiàn)象,整個行業(yè)都認(rèn)識到:不能忽略分散的、松耦合的和相互協(xié)作的Web。
如今較流行的分布式對象模型是OMG的CORBA、Microsoft的DCOM、Sun的RMI,但這些模型都僅僅是本地或本網(wǎng)計算的模型,它們都有一個共同的缺陷,就是無法擴(kuò)展到互聯(lián)網(wǎng)上:他們要求客戶端和系統(tǒng)提供的服務(wù)本身之間必須進(jìn)行緊密耦合,即要求一個同類基本結(jié)構(gòu)。這樣的系統(tǒng)往往十分脆弱,如果一端的執(zhí)行機(jī)制發(fā)生變化,那么另一端便會崩潰。Web服務(wù)是一種優(yōu)秀的分布式計算技術(shù)。
當(dāng)前Web Services領(lǐng)域的兩個主要的應(yīng)用框架J2EE和.NET,兩者都是目前企業(yè)Web Services平臺市場上兩個最重要的應(yīng)用框架 (Application Framework),他們是正面競爭的兩個強(qiáng)大的平臺,同時它們也是能夠互相融合和集成的應(yīng)用部署環(huán)境。
在對Web Services的支持上,Microsoft的.NET在設(shè)計之初就緊緊地把平臺規(guī)范與產(chǎn)品膠合在一起。不過隨著.NET架構(gòu)中的C#、CLI等逐漸標(biāo)準(zhǔn)化,.NET也正在向J2EE的模式靠攏。
J2EE作為一種開放的規(guī)范,從一開始就得到了眾多廠商的支持,如IBM、BEA、HP、Oracle等在J2EE的實施上都灑下了大筆的投資。目前市場上最好的J2EE Application Server是Bea的WebLogic和IBM的WebShpere。
到目前為止,Web服務(wù)是近十年里出現(xiàn)的最關(guān)鍵的技術(shù)之一。這項技術(shù)所具備的價值完全有潛力成為繼因特網(wǎng)之后的第二個重要發(fā)明,并且將對公司企業(yè)、消費(fèi)者/用戶、以及共同文化產(chǎn)生巨大影響。
Web Services可以從多個角度來定義。從技術(shù)方面講,一個Web Services是可以被URI識別的應(yīng)用軟件,其接口和綁定由XML描述和發(fā)現(xiàn),并可與其他基于XML消息的應(yīng)用程序交互。從功能角度講,Web Services是一種新型的Web發(fā)布、查找和調(diào)用。其實現(xiàn)的功能可以是響應(yīng)客戶一個簡單的請求,也可以是完成一個復(fù)雜的商務(wù)流程。一個Web Services配置好后,其他應(yīng)用程序和Web Services就可以直接發(fā)現(xiàn)和調(diào)用該服務(wù)。具體而言,Web Services應(yīng)具有如下特征:
1)可描述,Web服務(wù)描述了自己的功能和屬性,以使其他應(yīng)用程序知道如何使用它;
2)可發(fā)布,Web服務(wù)注冊存儲庫包含了三種網(wǎng)頁。白色網(wǎng)頁是有關(guān)基本的服務(wù)提供者的信息,黃色網(wǎng)頁分類列出了各種服務(wù),綠色網(wǎng)頁描述了如何使用連接和使用這些服務(wù);
3)可查找,通過向注冊服務(wù)器發(fā)送查詢請求可以找到滿足查詢條件的服務(wù),獲取服務(wù)的綁定信息;
4)可綁定,通過服務(wù)的描述信息可以生成可調(diào)用的服務(wù)實例或服務(wù)代理;
5)可調(diào)用,使用服務(wù)描述信息中的綁定細(xì)節(jié)可以實現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用;
6)可返回,當(dāng)某一服務(wù)被調(diào)用時,結(jié)果就返回給發(fā)出請求的應(yīng)用程序。
7)可組合,可以與其他服務(wù)組合在一起形成新的服務(wù)。
一個完整的Web Services包括三種邏輯組件:服務(wù)提供者、服務(wù)注冊庫和服務(wù)請求者,如圖2所示,各組件分別對應(yīng)不同的角色。服務(wù)是提供給需求者,按一定規(guī)則使用的應(yīng)用程序,其描述信息和訪問規(guī)則被發(fā)布到服務(wù)注冊庫。服務(wù)提供者是服務(wù)的所有者,它是提供服務(wù)訪問的平臺。服務(wù)請求者是需要特定功能的以企業(yè)或組織,從體系結(jié)構(gòu)上看是查找和調(diào)用服務(wù)的客戶端應(yīng)用程序。服務(wù)注冊庫是存儲服務(wù)描述信息的信息庫,服務(wù)提供者在此發(fā)布他們的服務(wù),服務(wù)請求者在此查找服務(wù),獲取服務(wù)的綁定信息。
Web Services涉及的最基本的技術(shù)規(guī)范包XML,SOAP,UDDI和WSDL。SOAP提供了應(yīng)用程序和Web服務(wù)之間的通信手段。Web Services可以通過UDDI來注冊自己的特性,其他應(yīng)用程序可以通過UDDI找到需要的Web服務(wù)。WSDL是程序員描述Web Services的編程接口。而SOAP,UDDI,WSDL都建立在XML基礎(chǔ)之上。
⒊1 XML
XML作為一種新的數(shù)據(jù)表示格式,已成為Internet上數(shù)據(jù)表示與數(shù)據(jù)交換的新標(biāo)準(zhǔn);它可以把所有的、包括異構(gòu)的信息都存于文檔中,采用HTTP方式傳輸,使網(wǎng)絡(luò)上應(yīng)用程序可以從中提取需要的信息,以實現(xiàn)不同平臺間異構(gòu)信息的共享、集成。
XML使用標(biāo)記界定內(nèi)容,允許用戶定義任意復(fù)雜度的結(jié)構(gòu),具有良好的擴(kuò)張性;它具有自描述性,適合數(shù)據(jù)交換和共享;XML另一個優(yōu)點(diǎn)是無關(guān)性,獨(dú)立于具體的平臺和廠商,確保了結(jié)構(gòu)化數(shù)據(jù)的統(tǒng)一。目前XML已成為開發(fā)環(huán)境下描述數(shù)據(jù)信息的標(biāo)準(zhǔn)技術(shù),也是Web Services中信息描述和交換的標(biāo)準(zhǔn)手段。
XML使用XML Schema作為建模語言,它具有豐富的數(shù)據(jù)類型,支持類型繼承,能對XML文件進(jìn)行嚴(yán)格的合法性檢查;使用于XML完全一致的文法,統(tǒng)一了分析和處理方式;引入了命名空間的概念,解決了可能的名稱重復(fù)問題。XML Schema是Web Services中協(xié)議制定的標(biāo)準(zhǔn)語言,它和XML共同構(gòu)成Web Services的基石。
⒊2 SOAP
XML使數(shù)據(jù)易于理解和共享,但應(yīng)用實體之間要發(fā)送和接收XML文檔,還需對網(wǎng)絡(luò)協(xié)議、訪問點(diǎn)等細(xì)節(jié)達(dá)成共識。XML主要的發(fā)展發(fā)展之一就是SOAP,Web Services實體間交互使用的就是這種簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)。它提供了Internet中交換結(jié)構(gòu)化信息的輕量級機(jī)制,實現(xiàn)異構(gòu)應(yīng)用之間的互操作性。
SOAP包括三個部分:封裝結(jié)構(gòu),編碼規(guī)則和RPC機(jī)制。封裝結(jié)構(gòu)定義了一個整體框架,描述消息內(nèi)容,內(nèi)容的屬性以及誰負(fù)責(zé)處理。編碼規(guī)則定義了交換應(yīng)用程序數(shù)據(jù)的一系列機(jī)制,它支持XML Schema中全部調(diào)用和應(yīng)答的協(xié)定,通過SOAP綁定,可以將SOAP封在HTTP,SMTP等協(xié)議上進(jìn)行傳送。
⒊3 UDDI
為了使服務(wù)申請者能夠查找需要的服務(wù),業(yè)界制定了注冊和查找Web服務(wù)的UDDI技術(shù)規(guī)范。UDDI注冊中心是對所有提供公共UDDI注冊服務(wù)站點(diǎn)的統(tǒng)稱,凡是實現(xiàn)UDDI規(guī)范的站點(diǎn)都可被稱為UDDI操作入口站點(diǎn),站點(diǎn)之間通過復(fù)制機(jī)制保持彼此間的內(nèi)容同步。服務(wù)提供者可以在服務(wù)注冊中心發(fā)布自己提供的服務(wù),服務(wù)請求者則在注冊中心查找期望的服務(wù)。
⒊4 WSDL
在應(yīng)用程序調(diào)用一個Web Services之前,必須知道其調(diào)用接口。Web Services具有松散耦合和自動集成的特點(diǎn),要求接口描述方式能夠被機(jī)器自動識別。Web Services采用WSDL(Web Services Description Language)來描述其服務(wù)接口。WSDL采用XML Schema定義,能夠?qū)Ω鞣N語言實現(xiàn)的服務(wù)接口進(jìn)行描述,具有語言無關(guān)性。WSDL將Web Services定義為網(wǎng)絡(luò)端點(diǎn)的集合,使用類型、消息、端口等元素來描述服務(wù)接口。請求者據(jù)此可以知道服務(wù)要求的數(shù)據(jù)類型、消息結(jié)構(gòu)、傳輸協(xié)議等,從而實現(xiàn)對Web Services的調(diào)用。