熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Javascript >> 正文

Java Web 服務學習報告—Web簡介

2013-11-23 17:57:46  來源: Javascript 

  在網絡飛速發展的今天每個組織都面臨著同樣一個挑戰在平衡核心能力和已有應用程序時創建同構的環境IT需要一個簡單的與平台無關的應用程序間通信方式在這種需求下產生了Web服務它是一類可以從Internet上獲取的服務的總稱它使用標准的XML消息接發系統並且不受任何操作系統和編程語言的約束在過去的三年中出現了三種作為全球標准的主要技術SOAPWSDL和UDDI它們構成了今天Web服務技術的核心然而所有Web服務協議和新技術都是以XML作為其數據表示層的XML消除了協議特有的網絡操作系統以及平台綁定限制因此XML是所有Web服務的基礎
  
   XML (Extensible Markup Language)
  
   XML
  
  HTML的誕生使得Web發布變得非常簡單但是HTML存在很大的局限性由於標准的標記已經由WC預先確定所以在描述復雜文檔時HTML就顯得力不從心並且HTML是面向描述的而非面向對象的因此HTML不會給出內容的含義為了解決這些問題WC開始尋找答案這就是XML
  
  XML是可擴展的我們可以創建自定義元素以滿足創作的需要XML同時也是可結構化的我們可以檢查XML文檔的語法從而避免大量錯誤的XML文檔在Internet上流傳這便是DTD
  
   DTD
  
  DTD(文檔類型定義)可以看作是標記語言的語法文件它是一套定義XML標記如何使用的規則DTD定義了元素元素的屬性和取值以及哪個元素可以被包含在另一個元素中的說明DTD還可以定義實體XML解析器可以使用DTD文件來解析XML文檔DTD使得我們能夠發布文檔以供其他人共享一個擁有DTD參考文件的XML文檔稱為一個有效的XML文檔
  
  然而由於XML DTD並不能完全滿足XML自動化處理的要求例如不能很好實現應用程序不同模塊間的相互協調缺乏對文檔結構屬性數據類型等約束的足夠描述等等所以WC於月正式推薦XML Schema為XML 的標准模式顯然WC希望以XML Schema來作為XML模式描述語言的主流並逐漸代替XML DTD
  
   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文檔以同樣的方式存儲在一起方便管理
  
   DOM
  
  另外為了更好的訪問XML文檔我們需要用到文檔對象模型DOM(Document Object Model)DOM事實上就是采用樹狀對象集合的方式訪問給定文檔內容的抽象規范DOM對象庫可以讓我們在內存中構建XML語法樹從而提供了更有效的方法來增加文檔定位文檔結構填加修改和刪除文檔元素
  
  有了以上這些規范XML已經為我們在網絡上傳輸數據提供了一個規范的結構XMLRPC技術就為通過網絡的方法或函數調用提供了基於XML和HTTP的機制XMLRPC允許程序通過網絡調用函數或過程它只用了很少的XML詞匯描述請求和響應的屬性用HTTP協議將信息從客戶端傳遞給服務器客戶端在XML請求中指定過程名和參數服務器在XML響應中返回一個錯誤或響應當然對於普遍運用對象的編程領域XMLRPC對於許多應用程序來說似乎太受限制了但當我們需要集成不同類型的系統時XMLRPC固有的簡潔性優勢便能體現出來在我們建立公共服務時可以用XMLRPC來定義接口並且選擇一種語言來實現它這樣一旦服務在Web上發布任何具有XMLRPC能力的客戶端就能連上它而且在建立分布式系統時也可以用XMLRPC作為粘貼碼來連接內部網絡中的不同部分因此雖然XMLRPC很簡單但簡單的工具有創造力的應用可以構建復雜而功能強大的體系結構當各種各樣的系統需要通信時XMLRPC可能是最合適的最低標准
  
   SOAP(Simple Object Access Protocol)
  
   SOAP
  
  SOAP是一種基於XML的用於計算機之間交換信息的協議SOAP能應用於各種消息接發系統並能通過各種傳輸協議進行傳遞但最初的側重點是通過HTTP傳輸的遠程過程調用因此SOAP能使客戶應用程序很容易地連接遠程服務並調用遠程方法
  
  SOAP規范主要定義了四個元素SOAP信封規范傳輸和協議綁定編碼規則和一個RPC協定
  
  SOAP信封規范SOAP信封規范對計算機間傳遞的數據如何封裝定義了具體的規則這包括應用特定的數據如要調用的方法名方法參數和返回值還包括誰將處理封裝內容失敗時如何編碼錯誤消息等信息
  
  數據編碼規則為了交換數據計算機必須在編碼特定數據類型的規則上達成一致SOAP也有自己的一套編碼數據類型的約定大部分約定都基於WC XML Schema規范
  
  RPC協定SOAP能用於單向和雙向等各種消息接發系統SOAP為雙向消息接發定義了一個簡單的協定來進行遠程過程調用和響應這使得客戶端應用可以指定遠程方法名獲取任意多個參數並接受來自服務器的響應
  
  傳輸和協議綁定提供了更底層協議傳輸SOAP封套的一套通用機制
  
  源自客戶端的請求或來自服務器的響應是一個單向消息稱為SOAP消息每個消息都有一個強制性的Envelope元素一個可選的Header元素和一個強制性的Body元素SOAP請求必須包括要調用的方法名和所有必須的參數其次還需要定義若干個命名空間用於區分XML元素和屬性或用於引用外部模式SOAP響應與SOAP請求相類似
  
  XML和SOAP能夠很好的描述數據但許多應用程序的數據並不適合用XML來描述比如圖像的二進制數據這時候就需要SWA(Soap With Attachments)來解決問題SWA將SOAP協議和MIME格式組合在一起從而使SOAP消息中可以包含任意想要的數據
  
   SOAPRPC
  
  SOAPRPC使用SOAP底層結構定義了一個用來表示RPC以及RPC響應的模型它並不要求一定要緊緊綁定一個同步的請求/響應模型或者一個HTTP協議實際上SOAPRPC的使用和協議的綁定是無關的因此重要的是SOAP定義了一個統一的模型來表示RPC及其一個或多個返回值SOAP還提供了對方法簽名頭數據和代表目的地的URI進行編碼的方法所以SOAPRPC比XMLRPC更加復雜功能也更加強大
  
   WSDL(Web Services Description Language)
  
  WSDL是一種將Web服務描述為一系列訪問端點的XML文法這些端點具有以面向過程或者面向文檔的方式交換信息的能力WSDL描述了四種關鍵的數據
  
  描述所有公用函數的接口信息
  
  所有消息請求和消息響應的數據類型消息
  
  所使用的傳輸協議的綁定信息
  
  用來定位指定服務的地址信息
  
  總之WSDL在服務請求者和服務提供者之間提供了一個協議主要用於描述SOAP服務WSDL本身使用的是XML語法可以分為六個主要的元素
  
  definitions 必須是所有WSDL文檔的根元素它定義了Web服務的名稱聲明文檔其他部分使用的多個名稱空間並包含所有服務元素
  
  types 描述在客戶端和服務器之間使用的所有數據類型
  
  message 描述一個單向信息定義消息的名稱可以包含零個或多個的引用消息參數或消息返回值的消息part元素
  
  portType 結合多個message元素形成一個完美的單向或往返操作
  
  binding 描述了在Internet上實現服務的具體細節
  
  service 用於定義調用指定服務的地址一般包含調用SOAP服務的URL
  
    UDDI(Universal Description Discovery and Integration)
  
  UDDI是一個描述發現和連接Web服務的技術規范有了UDDI公司不但可以發布Web服務還能查找Web服務UDDI的核心由兩部分組成第一UDDI是一個建立業務和Web服務的分布式目錄的技術規范數據存儲在特定的XML格式中UDDI規范包括搜索已有數據和發布新數據的API細節第二UDDI業務注冊中心是UDDI規范的一個完全操作實現
  
  UDDI的技術體系結構由三部分組成
  
  UDDI數據模型 一個描述業務和Web服務的XML Schema
  
  UDDI API 一個用於搜索和發布UDDI數據的基於SOAP的API
  
  UDDI 服務群 一個提供UDDI規范實現的根據預定基礎使所與數據同步的操作入口站點
  
  綜上所述以上的後三種技術以及傳輸協定組成了一個完整的Web服務的四個層面自上而下分別為
  
  發現 —— UDDI
  
  描述 —— WSDL
  
  XML消息接發 —— XMLRPCSOAPXML
  
  傳輸 —— HTTPSMTPFTPBEEP
  
  這些技術使得Web服務實現了 基於XML松散耦合粗粒度同步或異步能力支持遠程過程調用和支持文檔交換等特性從而讓Web服務得到了更廣泛的應用
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25442.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.