<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-128  評論-55  文章-5  trackbacks-0

                               Web 服務簡介

     

    在網絡飛速發展的今天,每個組織都面臨著同樣一個挑戰:在平衡核心能力和已有應用程序時創建同構的環境。IT需要一個簡單的,與平臺無關的應用程序間通信方式。在這種需求下產生了Web服務,它是一類可以從Internet上獲取的服務的總稱,它使用標準的XML消息接發系統,并且不受任何操作系統和編程語言的約束。在過去的三年中,出現了三種作為全球標準的主要技術:SOAP,WSDL和UDDI。它們構成了今天Web服務技術的核心。然而所有Web服務協議和新技術都是以XML作為其數據表示層的,XML消除了協議特有的網絡,操作系統以及平臺綁定限制,因此XML是所有Web服務的基礎。

    1. XML Extensible Markup Language

    1.1 XML

    HTML的誕生使得Web發布變得非常簡單,但是HTML存在很大的局限性,由于標準的標記已經由W3C預先確定,所以在描述復雜文檔時HTML就顯得力不從心。并且HTML是面向描述的,而非面向對象的,因此HTML不會給出內容的含義。為了解決這些問題,W3C開始尋找答案,這就是XML。

    XML是可擴展的,我們可以創建自定義元素以滿足創作的需要。XML同時也是可結構化的。我們可以檢查XML文檔的語法,從而避免大量錯誤的XML文檔在Internet上流傳。這便是DTD。

    1.2 DTD

    DTD(文檔類型定義)可以看作是標記語言的語法文件,它是一套定義XML標記如何使用的規則,DTD定義了元素,元素的屬性和取值,以及哪個元素可以被包含在另一個元素中的說明。DTD還可以定義實體。XML解析器可以使用DTD文件來解析XML文檔。DTD使得我們能夠發布文檔以供其他人共享。一個擁有DTD參考文件的XML文檔稱為一個有效的XML文檔。

    然而由于XML DTD并不能完全滿足XML自動化處理的要求,例如不能很好實現應用程序不同模塊間的相互協調,缺乏對文檔結構、屬性、數據類型等約束的足夠描述等等,所以W3C于2001年5月正式推薦XML Schema為XML 的標準模式。顯然,W3C希望以XML Schema來作為XML模式描述語言的主流,并逐漸代替XML DTD。

    1.3 XML Schema

    XML Schema與XML DTD有很大的區別。XML Schema事實上是XML的一種應用,也就是說XML Schema的格式與XML的格式是完全相同的,而作為SGML DTD的一個子集,XML DTD具有著與XML格式完全不同的格式。這種區別給XML Schema的使用帶來了很多好處。如:XML語法分析器可以直接的應用到XML Schema,而不需要修改。另外作為XML的一個應用,XML Schema理所當然的繼承了XML的自描述性和可擴展性,這使得XML Schema 更具有可讀性和靈活性。同時由于格式完全與XML一樣,XML Schema除了可以像XML一樣處理外,也可以同它所描述的XML文檔以同樣的方式存儲在一起,方便管理。

    1.4 DOM

    另外,為了更好的訪問XML文檔,我們需要用到文檔對象模型DOM(Document Object Model),DOM事實上就是采用樹狀對象集合的方式訪問給定文檔內容的抽象規范。DOM對象庫可以讓我們在內存中構建XML語法樹,從而提供了更有效的方法來增加文檔、定位文檔結構、填加,修改和刪除文檔元素。

    有了以上這些規范,XML已經為我們在網絡上傳輸數據提供了一個規范的結構。XML-RPC技術就為通過網絡的方法或函數調用提供了基于XML和HTTP的機制。XML-RPC允許程序通過網絡調用函數或過程。它只用了很少的XML詞匯描述請求和響應的屬性,用HTTP協議將信息從客戶端傳遞給服務器。客戶端在XML請求中指定過程名和參數,服務器在XML響應中返回一個錯誤或響應。當然對于普遍運用對象的編程領域,XML-RPC對于許多應用程序來說似乎太受限制了。但當我們需要集成不同類型的系統時,XML-RPC固有的簡潔性優勢便能體現出來。在我們建立公共服務時,可以用XML-RPC來定義接口,并且選擇一種語言來實現它,這樣一旦服務在Web上發布,任何具有XML-RPC能力的客戶端就能連上它。而且在建立分布式系統時,也可以用XML-RPC作為粘貼碼來連接內部網絡中的不同部分。因此,雖然XML-RPC很簡單,但簡單的工具有創造力的應用可以構建復雜而功能強大的體系結構。當各種各樣的系統需要通信時,XML-RPC可能是最合適的最低標準。

    2. SOAPSimple Object Access Protocol

    2.1 SOAP

         SOAP是一種基于XML的,用于計算機之間交換信息的協議。SOAP能應用于各種消息接發系統,并能通過各種傳輸協議進行傳遞,但最初的側重點是通過HTTP傳輸的遠程過程調用。因此,SOAP能使客戶應用程序和容易的連接遠程服務并調用遠程方法。

    SOAP規范主要定義了四個元素:SOAP信封規范,傳輸和協議綁定,編碼規則和一個RPC協定。

    n         SOAP信封規范,SOAP信封規范對計算機間傳遞的數據如何封裝定義了具體的規則。這包括應用特定的數據,如要調用的方法名,方法參數和返回值;還包括誰將處理封裝內容,失敗時如何編碼錯誤消息等信息。

    n         數據編碼規則,為了交換數據,計算機必須在編碼特定數據類型的規則上達成一致,SOAP也有自己的一套編碼數據類型的約定。大部分約定都基于W3C XML Schema規范。

    n         RPC協定,SOAP能用于單向和雙向等各種消息接發系統。SOAP為雙向消息接發定義了一個簡單的協定來進行遠程過程調用和響應,這使得客戶端應用可以指定遠程方法名,獲取任意多個參數并接受來自服務器的響應。

    n         傳輸和協議綁定,提供了更底層協議傳輸SOAP封套的一套通用機制。

    源自客戶端的請求或來自服務器的響應是一個單向消息,稱為SOAP消息。每個消息都有一個強制性的Envelope元素,一個可選的Header元素和一個強制性的Body元素。SOAP請求必須包括要調用的方法名和所有必須的參數。其次還需要定義若干個命名空間,用于區分XML元素和屬性,或用于引用外部模式。SOAP響應與SOAP請求相類似。

    XML和SOAP能夠很好的描述數據,但許多應用程序的數據并不適合用XML來描述,比如圖像的二進制數據。這時候就需要SWA(Soap With Attachments)來解決問題。SWA將SOAP協議和MIME格式組合在一起,從而使SOAP消息中可以包含任意想要的數據。

    2.2 SOAP-RPC

    SOAP-RPC使用SOAP底層結構定義了一個用來表示RPC以及RPC響應的模型。它并不要求一定要緊緊綁定一個同步的請求/響應模型或者一個HTTP協議。實際上SOAP-RPC的使用和協議的綁定是無關的。因此重要的是SOAP定義了一個統一的模型,來表示RPC及其一個或多個返回值。SOAP還提供了對方法簽名,頭數據和代表目的地的URI進行編碼的方法。所以SOAP-RPC比XML-RPC更加復雜,功能也更加強大。

    3. WSDLWeb Services Description Language

    WSDL是一種將Web服務描述為一系列訪問端點的XML文法,這些端點具有以面向過程或者面向文檔的方式交換信息的能力。WSDL描述了四種關鍵的數據:

    n         描述所有公用函數的接口信息。

    n         所有消息請求和消息響應的數據類型消息。

    n         所使用的傳輸協議的綁定信息。

    n         用來定位指定服務的地址信息。

    總之,WSDL在服務請求者和服務提供者之間提供了一個協議,主要用于描述SOAP服務。WSDL本身使用的是XML語法,可以分為六個主要的元素:

    n         definitions :必須是所有WSDL文檔的根元素。它定義了Web服務的名稱,聲明文檔其他部分使用的多個名稱空間,并包含所有服務元素。

    n         types :描述在客戶端和服務器之間使用的所有數據類型。

    n         message :描述一個單向信息,定義消息的名稱,可以包含零個或多個的引用消息參數或消息返回值的消息part元素。

    n         portType : 結合多個message元素,形成一個完美的單向或往返操作。

    n         binding : 描述了在Internet上實現服務的具體細節。

    n         service : 用于定義調用指定服務的地址。一般包含調用SOAP服務的URL。

    4.         UDDIUniversal Description Discovery and Integration

    UDDI是一個描述,發現和連接Web服務的技術規范。有了UDDI,公司不但可以發布Web服務,還能查找Web服務。UDDI的核心由兩部分組成。第一,UDDI是一個建立業務和Web服務的分布式目錄的技術規范。數據存儲在特定的XML格式中,UDDI規范包括搜索已有數據和發布新數據的API細節。第二,UDDI業務注冊中心是UDDI規范的一個完全操作實現。

    n         UDDI的技術體系結構由三部分組成:

    n         UDDI數據模型 :一個描述業務和Web服務的XML Schema。

    n         UDDI API :一個用于搜索和發布UDDI數據的,基于SOAP的API。

    n         UDDI 服務群 :一個提供UDDI規范實現的根據預定基礎使所與數據同步的操作入口站點。

    綜上所述,以上的后三種技術以及傳輸協定組成了一個完整的Web服務的四個層面,自上而下分別為:

    n         發現 ------------------------------ UDDI

    n         描述 ------------------------------ WSDL

    n         XML消息接發 ----------------------- XML-RPC,SOAP,XML

    n         傳輸 ------------------------------- HTTP,SMTP,FTP,BEEP

        這些技術使得Web服務實現了 基于XML,松散耦合,粗粒度,同步或異步能力,支持遠程過程調用和支持文檔交換等特性,從而讓Web服務得到了更廣泛的應用。



    Author: orangelizq
    email: orangelizq@163.com

    歡迎大家訪問我的個人網站 萌萌的IT人
    posted on 2007-09-30 10:00 桔子汁 閱讀(934) 評論(0)  編輯  收藏 所屬分類: WebService 技術

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成人A毛片免费观看网站| 亚洲日产2021三区| 亚洲最大AV网站在线观看| 亚洲Av无码乱码在线播放| 亚洲av无码成人精品区| 免费观看日本污污ww网站一区| 亚洲小说区图片区| 亚洲第一页在线视频| 亚洲黄色网站视频| 亚洲在成人网在线看| 亚洲人xxx日本人18| 一本色道久久88—综合亚洲精品 | 青青草无码免费一二三区| AAA日本高清在线播放免费观看| 亚洲一区二区三区久久| 亚洲视频在线观看视频| 亚洲手机中文字幕| 亚洲欧洲专线一区| 美女视频黄a视频全免费网站色| 亚洲欧洲国产视频| 国产日本亚洲一区二区三区 | 免费的一级黄色片| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲日韩国产一区二区三区| 亚洲狠狠爱综合影院婷婷| 中文字幕精品亚洲无线码二区| 日韩电影免费在线| 免费欧洲毛片A级视频无风险| 可以免费看的卡一卡二| 蜜臀91精品国产免费观看| 亚洲AV无码之日韩精品| 亚洲精品高清国产一线久久| 自怕偷自怕亚洲精品| 亚洲中文无码mv| 又黄又大的激情视频在线观看免费视频社区在线 | 国产裸体美女永久免费无遮挡 | 亚洲av永久无码制服河南实里| 免费一级做a爰片久久毛片潮喷| 99爱在线精品免费观看| 日韩在线看片免费人成视频播放| 免费看片在线观看|