登錄

WEB服務(wù)

百科 > 計(jì)算機(jī) > WEB服務(wù)

1.什么是WEB服務(wù)

  Web服務(wù)是一種面向服務(wù)的架構(gòu)的技術(shù),通過標(biāo)準(zhǔn)的Web協(xié)議提供服務(wù),目的是保證不同平臺的應(yīng)用服務(wù)可以互操作。

  根據(jù)W3C的定義,Web服務(wù)(Web service)應(yīng)當(dāng)是一個(gè)軟件系統(tǒng),用以支持網(wǎng)絡(luò)間不同機(jī)器的互動操作。網(wǎng)絡(luò)服務(wù)通常是許多應(yīng)用程序接口(API)所組成的,它們通過網(wǎng)絡(luò),例如國際互聯(lián)網(wǎng)(Internet)的遠(yuǎn)程服務(wù)器端,執(zhí)行客戶所提交服務(wù)的請求。

  盡管W3C的定義涵蓋諸多相異且無法介分的系統(tǒng),不過通常我們指有關(guān)于主從式架構(gòu)(Client-server)之間根據(jù)SOAP協(xié)議進(jìn)行傳遞XML格式消息。無論定義還是實(shí)現(xiàn),WEB服務(wù)過程中會由服務(wù)器提供一個(gè)機(jī)器可讀的描述(通常基于WSDL)以辨識服務(wù)器所提供的WEB服務(wù)。另外,雖然WSDL不是SOAP服務(wù)端點(diǎn)的必要條件,但目前基于Java的主流WEB服務(wù)開發(fā)框架往往需要WSDL實(shí)現(xiàn)客戶端的源代碼生成。一些工業(yè)標(biāo)準(zhǔn)化組織,比如WS-I,就在WEB服務(wù)定義中強(qiáng)制包含SOAP和WSDL。

2.WEB服務(wù)的產(chǎn)生

  為了實(shí)施電子商務(wù),無論自身的IT部門還是外包的解決方案提供商,其給出的實(shí)施計(jì)劃都是應(yīng)用正式運(yùn)營前的。一旦應(yīng)用被部署之后,由于商務(wù)環(huán)境和商務(wù)需求的不斷改進(jìn)和不斷變化,這些電子商務(wù)應(yīng)用不可避免地需要被修訂、需要被更新,以符合新的電子商務(wù)流程。

  傳統(tǒng)的解決方案是為每個(gè)需要的企業(yè)資源或外部資源編寫連接代碼,以使得應(yīng)用得以運(yùn)行。這些資源包括傳統(tǒng)系統(tǒng)(legacy systems)和數(shù)據(jù)庫、Web應(yīng)用及Web資源。

  傳統(tǒng)解決方案的缺點(diǎn):

  1、 代碼很難再定制;

  2、由于每個(gè)應(yīng)用都有其自己特有的基礎(chǔ)架構(gòu),這些應(yīng)用在部署、更改和維護(hù)上的代價(jià)都異常高昂;

  3、不能被方便地繼承;

  4、不能隨著企業(yè)商務(wù)的規(guī)模擴(kuò)展而方便地實(shí)現(xiàn)應(yīng)用的規(guī)模擴(kuò)展。

  Web服務(wù)的使用將改變目前的開發(fā)模式和應(yīng)用部署的費(fèi)用規(guī)模。各種Web服務(wù)構(gòu)件實(shí)現(xiàn)了一定的電子商務(wù)功能,通過將各種電子商務(wù)的Web服務(wù)進(jìn)行組合和集成以創(chuàng)建動態(tài)電子商務(wù)應(yīng)用。Web服務(wù)能夠統(tǒng)一地封裝信息、行為、數(shù)據(jù)表現(xiàn)以及商務(wù)流程,而無需考慮應(yīng)用所在的環(huán)境是使用何種系統(tǒng)和設(shè)備。

3.WEB服務(wù)特點(diǎn)[1]

  Web服務(wù)作為一種新興的Web應(yīng)用模式,是一種嶄新的分布式計(jì)算模型,是Web上數(shù)據(jù)和信息集成的有效機(jī)制。

  Web服務(wù)就像Web上的構(gòu)件編程,開發(fā)人員通過調(diào)用Web應(yīng)用編程接口,將Web服務(wù)集成進(jìn)他們的應(yīng)用程序,就像調(diào)用本地服務(wù)一樣。

  從外部用戶看,Web服務(wù)是一種部署在Web上的對象/組件,具備完好的封裝性、松散耦合、自包含、互操作、動態(tài)、獨(dú)立于實(shí)現(xiàn)技術(shù)、構(gòu)建于成熟技術(shù)、高度可集成、使用標(biāo)準(zhǔn)協(xié)議等特征。從實(shí)施對象看,把資源、計(jì)算能力提供給用戶,需要以服務(wù)的形式完成。

  Web服務(wù)通過WSDL來描述,通過SOAP作訪問,在商業(yè)注冊中心(UDDI)發(fā)布,從而使開發(fā)者和電子商務(wù)應(yīng)用程序可以搜索并定位到該服務(wù)。在Web服務(wù)開發(fā)的過程中有三個(gè)清晰的角色定義,它們是服務(wù)的提供者(Service provider),服務(wù)的請求者(Service request)和服務(wù)的代理(Service broker),下圖顯示了它們之間的關(guān)系。

Image:服務(wù)體系結(jié)構(gòu).jpg

4.WEB服務(wù)體系結(jié)構(gòu)的優(yōu)勢[1]

 ?。ㄒ唬¦EB服務(wù)的高度通用性

  Web服務(wù)既然是一種部署在Web上的對象,自然具備對象的良好封裝性,對于使用者而言,他能且僅能看到該對象提供的功能列表,而不必考慮web服務(wù)對象的內(nèi)部組成,因此有易用性。Web服務(wù)對象內(nèi)封裝都是一些通用功能,因此也具有高度的復(fù)用性。

 ?。ǘ┩耆钠脚_、語言獨(dú)立性

  Web服務(wù)對象具有松散耦合的特性,這一特征也是源于對象/組件技術(shù),當(dāng)一個(gè)Web服務(wù)的實(shí)現(xiàn)發(fā)生變更的時(shí)候,調(diào)用者是不會感到這一點(diǎn)的,對于調(diào)用者來說,只要Web服務(wù)的調(diào)用界面不變,Web服務(wù)的實(shí)現(xiàn)任何變更對他們來說都是透明的,甚至是當(dāng)Web服務(wù)的實(shí)現(xiàn)平臺從J2EE遷移到了.NET或者是相反的遷移流程,用戶都可以對此一無所知。其實(shí)現(xiàn)的核心在于使用XML/SOAP作為消息交換協(xié)議,也就是說web服務(wù)因此具有語言的獨(dú)立性。

  作為Web服務(wù),其協(xié)約必須使用開放的標(biāo)準(zhǔn)協(xié)議(比如HTTP、SMTP等)進(jìn)行描述、傳輸和交換。這些標(biāo)準(zhǔn)協(xié)議應(yīng)該完全免費(fèi),以便由任意平臺都能夠?qū)崿F(xiàn)。一般而言,絕大多數(shù)規(guī)范將最終有W3C或OASIS作為最終版本的發(fā)布方和維護(hù)方,因此web服務(wù)也擁有了平臺獨(dú)立性。

 ?。ㄈ└叨瓤杉尚?

  由于Web服務(wù)采取簡單的、易理解的標(biāo)準(zhǔn)Web協(xié)議作為組件界面描述和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺的差異,無論是CORBA、DCOM還是EJB都可以通過這一種標(biāo)準(zhǔn)的協(xié)議進(jìn)行互操作,實(shí)現(xiàn)了在當(dāng)前環(huán)境下最高的可集成性。

5.WEB服務(wù)的協(xié)議架構(gòu)[1]

  WEB服務(wù)的協(xié)議架構(gòu)大致可以描述成如下表:

服務(wù)發(fā)現(xiàn)層 UDDI
服務(wù)發(fā)布層 UDDI
服務(wù)描述層 WSDL
消息傳輸層 SOAP
數(shù)據(jù)表現(xiàn)協(xié)議層 XML
網(wǎng)絡(luò)傳輸層 HTTP,FTP,MQ,IIOP

  表格自底向上,每一層協(xié)議都為上一層提供服務(wù)。

 ?。ㄒ唬︰DDI

  UDDI是統(tǒng)一描述、發(fā)現(xiàn)和集成(Universal Description, Discovery, and Integration)的縮寫。它是一個(gè)基于XML的跨平臺的描述規(guī)范,可以使世界范圍內(nèi)的企業(yè)在互聯(lián)網(wǎng)上發(fā)布自己所提供的服務(wù)。

  UDDI是OASIS發(fā)起的一個(gè)開放項(xiàng)目,它使企業(yè)在互聯(lián)網(wǎng)上可以互相發(fā)現(xiàn)并且定義業(yè)務(wù)之間的交互。UDDI業(yè)務(wù)注冊包括三個(gè)元件:

  0、白頁:有關(guān)企業(yè)的基本信息,如地址、聯(lián)系方式以及已知的標(biāo)識;

  1、黃頁:基于標(biāo)準(zhǔn)分類的目錄;

  2、綠頁:與服務(wù)相關(guān)聯(lián)的綁定信息,及指向這些服務(wù)所實(shí)現(xiàn)的技術(shù)規(guī)范的引用。

  UDDI是核心的Web服務(wù)標(biāo)準(zhǔn)之一。它通過簡單對象存取協(xié)議進(jìn)行消息傳輸,用Web服務(wù)描述語言描述Web服務(wù)及其接口使用。

  (二)WSDL

  WSDL(Web服務(wù)描述語言,Web Services Description Language)是為描述Web服務(wù)發(fā)布的XML格式。W3C組織(World Wide Web Consortium)沒有批準(zhǔn)1.1版的WSDL,但是2.0版本已經(jīng)在制訂中,2.0版將被作為推薦標(biāo)準(zhǔn)(recommendation)(一種官方標(biāo)準(zhǔn)),并將被W3C組織批準(zhǔn)為正式標(biāo)準(zhǔn)。

  WSDL描述Web服務(wù)的公共接口。這是一個(gè)基于XML的關(guān)于如何與Web服務(wù)通訊和使用的服務(wù)描述;也就是描述與目錄中列出的Web服務(wù)進(jìn)行交互時(shí)需要綁定的協(xié)議和信息格式。通常采用抽象語言描述該服務(wù)支持的操作和信息,使用的時(shí)候再將實(shí)際的網(wǎng)絡(luò)協(xié)議和信息格式綁定給該服務(wù)。

 ?。ㄈ㏒OAP

  SOAP:簡單對象訪問協(xié)議,簡單對象訪問協(xié)議(SOAP)是一種輕量的、簡單的、基于 XML 的協(xié)議,它被設(shè)計(jì)成在 WEB 上交換結(jié)構(gòu)化的和固化的信息。 SOAP 可以和現(xiàn)存的許多因特網(wǎng)協(xié)議和格式結(jié)合使用,包

  括超文本傳輸協(xié)議( HTTP),簡單郵件傳輸協(xié)議(SMTP),多用途網(wǎng)際郵件擴(kuò)充協(xié)議MIME)。它還支持從消息系統(tǒng)到遠(yuǎn)程過程調(diào)用(RPC)等大量的應(yīng)用程序。

6.WEB服務(wù)的技術(shù)體系

  一個(gè)Web服務(wù)被分為數(shù)據(jù)層(Data Layer)、數(shù)據(jù)訪問層(Data Access Layer)、業(yè)務(wù)層(Business Layer)、業(yè)務(wù)面(Business Facade)和監(jiān)聽者(Listener)五個(gè)邏輯層。

  在Web服務(wù)中,通信是基于Internet協(xié)議(例如HTTP、SMTP、FTP等)互相傳遞XML消息的通信協(xié)議規(guī)范,描述采用一種基于XML的語言描述和定義接口與綁定,發(fā)布和發(fā)現(xiàn)把Web服務(wù)提交到注冊中心而讓用戶通過中介發(fā)現(xiàn)Web服務(wù)。

7.WEB服務(wù)的發(fā)現(xiàn)和定制

  首先,服務(wù)發(fā)現(xiàn)功能在Internet上搜尋已有的程序和數(shù)據(jù)。若滿足用戶需求功能的Web服務(wù),則調(diào)用需求分析功能分解用戶的服務(wù)需求,進(jìn)入服務(wù)定制過程。

  其次,需求分析功能在用戶參與下準(zhǔn)確定位用戶需要的服務(wù)。

  第三,把服務(wù)組裝方案提交到執(zhí)行用戶具體服務(wù)的環(huán)境,對組裝鏈接的計(jì)算資源進(jìn)行驗(yàn)證與一致性測試。

評論  |   0條評論