亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2498 | 回復(fù): 0
打印 上一主題 下一主題

全面解讀:Web service到底是什么? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-30 16:42 |只看該作者 |倒序?yàn)g覽
分布式應(yīng)用程序和瀏覽器
  研究一下當(dāng)前的應(yīng)用程序開發(fā),你會(huì)發(fā)現(xiàn)一個(gè)絕對(duì)的傾向:人們開始偏愛基于瀏覽器的瘦客戶應(yīng)用程序。這當(dāng)然不是因?yàn)槭菘蛻裟軌蛱峁└玫挠脩艚?br /> 面,而是因?yàn)樗軌虮苊饣ㄔ谧烂鎽?yīng)用程序發(fā)布上的高成本。發(fā)布桌面應(yīng)用程序成本很高,一半是因?yàn)閼?yīng)用程序安裝和配置的問題,另一半是因?yàn)榭蛻艉头⻊?wù)器之間
通信的問題。
  傳統(tǒng)的
Windows

客戶應(yīng)用程序使用DCOM來與服務(wù)器進(jìn)行通信和調(diào)用遠(yuǎn)程對(duì)象。配置好DCOM使其在一個(gè)大型的網(wǎng)絡(luò)中正常工作將是一個(gè)極富挑戰(zhàn)性的工作,同時(shí)也是許多IT
工程師的噩夢(mèng)。事實(shí)上,許多IT工程師寧愿忍受瀏覽器所帶來的功能限制,也不愿在局域網(wǎng)上去運(yùn)行一個(gè)DCOM。在我看來,結(jié)果就是一個(gè)發(fā)布容易,但開發(fā)難
度大而且用戶界面極其受限的應(yīng)用程序。極端的說,就是你花了更多的資金和時(shí)間,卻開發(fā)出從用戶看來功能更弱的應(yīng)用程序。不信?問問你的會(huì)計(jì)師對(duì)新的基于瀏
覽器的會(huì)計(jì)軟件有什么想法:絕大多數(shù)商用程序用戶希望使用更加友好的
Windows
用戶界面。
  關(guān)于客戶端與服務(wù)器的通信問題,一個(gè)完美的解決方法是使用HTTP協(xié)議來通信。這是因?yàn)槿魏芜\(yùn)行
Web瀏覽器
的機(jī)器都在使用HTTP協(xié)議。同時(shí),當(dāng)前許多防火墻也配置為只允許HTTP連接。
  許多商用程序還面臨另一個(gè)問題,那就是與其他程序的互操作性。如果所有的應(yīng)用程序都是使用COM或.NET語言寫的,并且都運(yùn)行在
Windows

臺(tái)上,那就天下太平了。然而,事實(shí)上大多數(shù)商業(yè)數(shù)據(jù)仍然在大型主機(jī)上以非關(guān)系文件(VSAM)的形式存放,并由COBOL語言編寫的大型機(jī)程序訪問。而
且,目前還有很多商用程序繼續(xù)在使用C++、Java、Visual
Basic和其他各種各樣的語言編寫,F(xiàn)在,除了最簡(jiǎn)單的程序之外,所有的應(yīng)用程序都需要與運(yùn)行在其他異構(gòu)平臺(tái)上的應(yīng)用程序集成并進(jìn)行數(shù)據(jù)交換。這樣的任
務(wù)通常都是由特殊的方法,如文件傳輸和分析,消息隊(duì)列,還有僅適用于某些情況的的API,如IBM的"高級(jí)程序到程序交流(APPC)"等來完成的。在以
前,沒有一個(gè)應(yīng)用程序通信標(biāo)準(zhǔn),是獨(dú)立于平臺(tái)、組建模型和編程語言的。只有通過
Web Service
,客戶端和服務(wù)器才能夠自由的用HTTP進(jìn)行通信,不論兩個(gè)程序的平臺(tái)和編程語言是什么。
  什么是
Web Service

  對(duì)這個(gè)問題,我們至少有兩種答案。從表面上看,
Web Service
就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過Web進(jìn)行調(diào)用的API。這就是說,你能夠用編程的方法通過Web來調(diào)用這個(gè)應(yīng)用程序。我們把調(diào)用這個(gè)
Web Service
的應(yīng)用程序叫做客戶。例如,你想創(chuàng)建一個(gè)
Web Service
,它的作用是返回當(dāng)前的天氣情況。那么你可已建立一個(gè)ASP頁面,它接受郵政編碼作為查詢字符串,然后返回一個(gè)由逗號(hào)隔開的字符串,包含了當(dāng)前的氣溫和天氣。要調(diào)用這個(gè)ASP頁面,客戶端需要發(fā)送下面的這個(gè)HTTP GET請(qǐng)求:
  http://host.company.com/weather.asp?zipcode=20171
  返回的數(shù)據(jù)就應(yīng)該是這樣:
  這個(gè)ASP頁面就應(yīng)該可以算作是
Web Service
了。因?yàn)樗贖TTP GET請(qǐng)求,暴露出了一個(gè)可以通過Web調(diào)用的API。當(dāng)然,
Web Service
還有更多的東西。
  下面是對(duì)
Web Service
更精確的解釋:
Web Service
s是建立可互操作的分布式應(yīng)用程序的新平臺(tái)。作為一個(gè)
Windows
程序員,你可能已經(jīng)用COM或DCOM建立過基于組件的分布式應(yīng)用程序。COM是一個(gè)非常好的組件技術(shù),但是我們也很容易舉出COM并不能滿足要求的情況。
  
Web Service
平臺(tái)是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在Web上實(shí)現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺(tái)上寫
Web Service
,只要我們可以通過
Web Service
標(biāo)準(zhǔn)對(duì)這些服務(wù)進(jìn)行查詢和訪問。
  新平臺(tái)
  
Web Service
平臺(tái)需要一套協(xié)議來實(shí)現(xiàn)分布式應(yīng)用程序的創(chuàng)建。任何平臺(tái)都有它的數(shù)據(jù)表示方法和類型系統(tǒng)。要實(shí)現(xiàn)互操作性,
Web Service
平臺(tái)必須提供一套標(biāo)準(zhǔn)的類型系統(tǒng),用于溝通不同平臺(tái)、編程語言和組件模型中的不同類型系統(tǒng)。在傳統(tǒng)的分布式系統(tǒng)中,基于界面(interface)的平臺(tái)提供了一些方法來描述界面、方法和參數(shù)(譯注:如COM和COBAR中的IDL語言)。同樣的,
Web Service
平臺(tái)也必須提供一種標(biāo)準(zhǔn)來描述
Web Service
,讓客戶可以得到足夠的信息來調(diào)用這個(gè)
Web Service
。最后,我們還必須有一種方法來對(duì)這個(gè)
Web Service
進(jìn)行遠(yuǎn)程調(diào)用。這種方法實(shí)際是一種遠(yuǎn)程過程調(diào)用協(xié)議(RPC)。為了達(dá)到互操作性,這種RPC協(xié)議還必須與平臺(tái)和編程語言無關(guān)。下面幾個(gè)小節(jié)就簡(jiǎn)要介紹了組成
Web Service
平臺(tái)的這三個(gè)技術(shù)。
  XML和XSD
  可擴(kuò)展的標(biāo)記語言(XML)是
Web Service
平臺(tái)中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML主要的優(yōu)點(diǎn)在于它既是平臺(tái)無關(guān)的,又是廠商無關(guān)的。無關(guān)性是比技術(shù)優(yōu)越性更重要的:軟件廠商是不會(huì)選擇一個(gè)由競(jìng)爭(zhēng)對(duì)手所發(fā)明的技術(shù)的。
  XML解決了數(shù)據(jù)表示的問題,但它沒有定義一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,更沒有說怎么去擴(kuò)展這套數(shù)據(jù)類型。例如,整形數(shù)到底代表什么?16位,32位,
還是64位?這些細(xì)節(jié)對(duì)實(shí)現(xiàn)互操作性都是很重要的。W3C制定的XML
Schema(XSD)就是專門解決這個(gè)問題的一套標(biāo)準(zhǔn)。它定義了一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,并給出了一種語言來擴(kuò)展這套數(shù)據(jù)類型。
Web Service
平臺(tái)就是用XSD來作為其數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語言(如VB.NET或C#)來構(gòu)造一個(gè)
Web Service
時(shí),為了符合
Web Service
標(biāo)準(zhǔn),所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為XSD類型。你用的工具可能已經(jīng)自動(dòng)幫你完成了這個(gè)轉(zhuǎn)換,但你很可能會(huì)根據(jù)你的需要修改一下轉(zhuǎn)換過程。在第二章中,我們將深入XSD,學(xué)習(xí)怎樣轉(zhuǎn)換自定義的數(shù)據(jù)類型(例如類)到XSD的類型。
  SOAP
  
Web Service
建好以后,你或者其他人就會(huì)去調(diào)用它。簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP)提供了標(biāo)準(zhǔn)的RPC方法來調(diào)用
Web Service
。實(shí)際上,SOAP在這里有點(diǎn)用詞不當(dāng):它意味著下面的
Web Service
是以對(duì)象的方式表示的,但事實(shí)并不一定如此:你完全可以把你的
Web Service
寫成一系列的C函數(shù),并仍然使用SOAP進(jìn)行調(diào)用。SOAP規(guī)范定義了SOAP消息的格式,以及怎樣通過HTTP協(xié)議來使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的數(shù)據(jù)編碼方式。第三章我們會(huì)討論SOAP,并結(jié)識(shí)SOAP消息的各種元素。
  WSDL
  你會(huì)怎樣向別人介紹你的
Web Service
有什么功能,以及每個(gè)函數(shù)調(diào)用時(shí)的參數(shù)呢?你可能會(huì)自己寫一套文檔,你甚至可能會(huì)口頭上告訴需要使用你的
Web Service
的人。這些非正式的方法至少都有一個(gè)嚴(yán)重的問題:當(dāng)程序員坐到電腦前,想要使用你的
Web Service
的時(shí)候,他們的工具(如Visual Studio)無法給他們提供任何幫助,因?yàn)檫@些工具根本就不了解你的Web
  service。解決方法是:用機(jī)器能閱讀的方式提供一個(gè)正式的描述文檔。
Web Service
描述語言(WSDL)就是這樣一個(gè)基于XML的語言,用于描述
Web Service
及其函數(shù)、參數(shù)和返回值。因?yàn)槭腔赬ML的,所以WSDL既是機(jī)器可閱讀的,又是人可閱讀的,這將是一個(gè)很大的好處。一些最新的開發(fā)工具既能根據(jù)你的
Web Service
生成WSDL文檔,又能導(dǎo)入WSDL文檔,生成調(diào)用相應(yīng)
Web Service
的代碼。
               
               
               

本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u2/61975/showart_2164977.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP