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

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

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

    隨筆 - 251  文章 - 504  trackbacks - 0
    <2006年11月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!

    留言簿(14)

    隨筆分類

    收藏夾

    My Favorite Web Sites

    名Bloger

    非著名Bloger

    搜索

    •  

    積分與排名

    • 積分 - 204326
    • 排名 - 283

    最新評論

    以下為網(wǎng)上看到的對Web Service比較經(jīng)典易懂的分析,轉(zhuǎn)錄之.

    Web?Service是最近幾年比較火的一個東西,它帶來了一大堆的新名詞,所以顯得比較炫。看透其華而不實的表面,它也就不再神奇。下面的討論均以Java為參考。?

    1?訪問一個Web?Service實際上可以看作調(diào)用一個函數(shù),唯一不同的就是這個函數(shù)是遠程的,這么一說,它和RMI就沒有什么本質(zhì)的區(qū)別了。?
    既然是一個函數(shù),當然要有函數(shù)的聲明了,完成這個工作的就是WSDL,它詳細的定義函數(shù)的原型,包括函數(shù)名、入口參數(shù)、出口參數(shù),這就是WSDL中opertion完成的工作。?
    既然是一個遠程的函數(shù),還要涉及與遠程地址的一個綁定,這是WSDL中service的任務。?
    Axis是一個可以通過WSDL生成相應訪問代碼的開發(fā)包,JBuilder中將它集成了進去,通過Wizard的方式簡化了原本需要在命令行中手工完成的操作。?

    2?既然是遠程訪問,就一定要有一個訪問協(xié)議,Web?Service的訪問協(xié)議就是SOAP,SOAP建立在XML之上,不同的就是對XML原本沒有限制的格式加上了一些限制,需要有envelope,在envelope中,還要分header和body。?
    如果利用SOAP開發(fā)Web?Service的程序,那就需要根據(jù)WSDL的定義來自行組裝SOAP包,這顯然要比利用WSDL直接面向Web?Service開發(fā)要復雜一些。?
    JAXM是一個利用SOAP進行通信的開發(fā)包,它簡化了SOAP消息的打包過程。?

    3?SOAP是建立在XML之上的,那么顯然XML的開發(fā)包同樣適合于SOAP。?
    在這個層次上開發(fā)Web?Service,除了要完成上一層的工作外,還要自行按照SOAP的格式組裝SOAP消息,這顯然又增加了工作量。?
    XML的開發(fā)工具就比較多了,從最簡單的SAX和DOM到DOM4J、JDOM,還有不少XML到對象綁定的工具,如JAXB、Castor等等。?
    其實,不考慮Web?Service,完全用XML做通信協(xié)議的情況也并不少見。知曉XML-RPC的存在,就不難理解了XML做通信的含義了。?

    截至到這里所討論的內(nèi)容,Sun提供了JWSDP(Java?Web?Service?Developer?Pack),其中包含從XML解析到WSDL生成的全套解決方案。?

    4?上面討論的所有東西實際上都還停留在傳遞消息的內(nèi)容上,并未涉及通信的過程。不要一看到Web?Service的Web就想當然認為它只能通過HTTP來傳輸。前面的討論可以看出,所有的消息內(nèi)容與傳輸并無直接關(guān)系,所以,無論是以HTTP傳輸,還是SMTP或是自定義的協(xié)議都沒有問題。?
    在這個層次上開發(fā)Web?Service,前面的種種險阻之外,還要完成對XML的手工解析工作。?
    這里還是以最常見的HTTP方式來討論。?
    HTTP的開發(fā)就將Server和Client區(qū)別對待,Server的實現(xiàn)通常的選擇是Servlet,讓Web?Server替我們完成HTTP協(xié)議的解析可以省去我們很多的作。Client的實現(xiàn)可以選擇JDK自帶的Http?Client,Apache的Jakarta項目下的Commons子項目也提供了一個HttpClient。?

    5?無論是HTTP還是SMTP,抑或是自定義協(xié)議,歸根結(jié)底都是應用級的協(xié)議,底層的實現(xiàn)都是由Socket完成。到了這個層次基本就是原始時代了,什么都沒有,一切都要手工完成。?
    在這個層次上開發(fā)Web?Service,所有前面的困難都要一一經(jīng)歷,此外,還有協(xié)議的開發(fā)等待著不幸至此的人們。?
    到了這里,也不需要其它的工具了,JDK自帶的Socket可以保打天下。?

    6?還想往下嗎?再往下就是操作系統(tǒng)的實現(xiàn)了,Java的平臺無關(guān)就失去了意義,也超出了我目前所了解的范圍,到此打住吧!?

    前面所提及應該算是Web?Service的一個基本知識結(jié)構(gòu),這里并沒有討論UDDI等等的內(nèi)容,一來我對它并不了解,二來那應該屬于應用,不應該算Web?Service實現(xiàn)中。?

    雖然我們可能不會從最下層開發(fā)Web?Service,但遇到底層的問題的情況卻在所難免。?
    我就曾經(jīng)在開發(fā)一個Web?Service應用的時候,被人抓住HTTP頭中的SOAPAction大小寫與某個所謂的規(guī)范不同,我查了半天HTTP規(guī)范和SOAP規(guī)范,知道了HTTP是區(qū)分大小,而SOAPAction就是應該這么寫,據(jù)理力爭,指出所謂規(guī)范的錯誤。?

    經(jīng)過前面的討論,我們可以看出,Web?Service并沒有什么神秘可言,所有的東西都是建立在已有東西的基礎(chǔ)之上。技術(shù)的發(fā)展不會是無中生有,只會是一個更好的解決方案而已,在追新求變之前,一個比較牢固的基礎(chǔ)才是最重要

    查看原文地址
    posted on 2006-11-16 10:20 matthew 閱讀(317) 評論(0)  編輯  收藏 所屬分類: Web Services and SOA
    主站蜘蛛池模板: 3344免费播放观看视频| 亚洲国产美女精品久久久| 久久精品夜色噜噜亚洲A∨| 国产亚洲精品免费| 免费观看的a级毛片的网站| 最近2019中文免费字幕| 成人毛片18女人毛片免费视频未| 国产福利视精品永久免费| 最近免费中文字幕大全免费版视频| 久久国产乱子伦精品免费强| 成人无码a级毛片免费| 99在线热播精品免费99热| 中文字幕一区二区三区免费视频| 成人免费777777被爆出| 中国videos性高清免费| 免费观看久久精彩视频| 久久国产乱子伦免费精品| 1000部啪啪毛片免费看| 在线看片韩国免费人成视频| 久久受www免费人成_看片中文| 最近免费中文字幕大全视频 | 亚洲国产亚洲片在线观看播放| 久久久久久亚洲Av无码精品专口 | 麻豆国产精品入口免费观看| 在线观看亚洲免费| 亚洲国产精品毛片av不卡在线 | 青青草免费在线视频| 免费高清小黄站在线观看| 免费看一级做a爰片久久| 中文字幕亚洲专区| 亚洲国产老鸭窝一区二区三区| 亚洲最大在线观看| 亚洲AV永久无码精品放毛片| 国产精品免费久久久久久久久| 好久久免费视频高清| 免费黄色福利视频| 宅男666在线永久免费观看| 亚洲一区日韩高清中文字幕亚洲 | 国产91久久久久久久免费| 久久亚洲国产精品123区| 亚洲黄色免费网站|