明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

XML、Web服務(wù)與.NET框架(1) 

[摘要]應(yīng)用程序開發(fā)技術(shù)正發(fā)生著一次質(zhì)的飛躍,從根本上大幅度提高開發(fā)人員的生產(chǎn)效率,它開啟了一道通向全新概念的應(yīng)用程序的大門! ≡谶^去,開發(fā)人員一直通過集成本地系統(tǒng)服務(wù)來構(gòu)建應(yīng)用程序。在這種模式下,開發(fā)人員可以訪問豐富的開發(fā)資源并能嚴(yán)格控制應(yīng)用程序的行為! ∪缃瘢_發(fā)人員在很大程度上已掙脫了這種模式的...
應(yīng)用程序開發(fā)技術(shù)正發(fā)生著一次質(zhì)的飛躍,從根本上大幅度提高開發(fā)人員的生產(chǎn)效率,它開啟了一道通向全新概念的應(yīng)用程序的大門。

  在過去,開發(fā)人員一直通過集成本地系統(tǒng)服務(wù)來構(gòu)建應(yīng)用程序。在這種模式下,開發(fā)人員可以訪問豐富的開發(fā)資源并能嚴(yán)格控制應(yīng)用程序的行為。

  如今,開發(fā)人員在很大程度上已掙脫了這種模式的束縛,致力于構(gòu)建具有復(fù)雜結(jié)構(gòu)的n層系統(tǒng),這種系統(tǒng)能將網(wǎng)絡(luò)中各處的眾多的應(yīng)用程序進(jìn)行集成,并大大提升應(yīng)用程序的價值。這樣,開發(fā)人員便可集中精力挖掘軟件獨特的商業(yè)價值,而不必日夜為如何構(gòu)建基本結(jié)構(gòu)傷腦筋了。令人欣喜的局面將應(yīng)運而生:軟件投放市場的時間大大縮短、開發(fā)人員的編程效率明顯提高,最為根本的是開發(fā)出質(zhì)量上乘的軟件。

  我們正在進(jìn)入一個嶄新的計算時代,一個互聯(lián)網(wǎng)時代,其核心技術(shù)是“可擴(kuò)展標(biāo)記語言”,即XML。XML創(chuàng)建出可供任何人從任何地方訪問和使用的功能強(qiáng)大的應(yīng)用程序。它極大地擴(kuò)展了應(yīng)用程序的功能,并實現(xiàn)了軟件的不間斷傳輸。在這種大環(huán)境中,軟件已不完全是指那些從CD進(jìn)行安裝的程序,而是已經(jīng)演變成了一種服務(wù):類似于調(diào)用者的ID驗證或按觀看次數(shù)進(jìn)行收費的電視,人們可通過通信媒體預(yù)定此類服務(wù)。

  這一切,是通過將緊密耦合的、高效的n層計算技術(shù)與面向消息的、松散耦合的Web概念相結(jié)合來實現(xiàn)的。我們將這種計算風(fēng)格稱為Web服務(wù),它的出現(xiàn)標(biāo)志著人類已經(jīng)邁入應(yīng)用程序開發(fā)技術(shù)的新紀(jì)元。Web服務(wù)是一種應(yīng)用程序,它可以使用標(biāo)準(zhǔn)的互聯(lián)網(wǎng)協(xié)議,像超文本傳輸協(xié)議(HTTP)和XML,將功能綱領(lǐng)性地體現(xiàn)在互聯(lián)網(wǎng)和企業(yè)內(nèi)部網(wǎng)上。可將Web服務(wù)視作Web上的組件編程。

  從理論上講,開發(fā)人員可通過調(diào)用Web應(yīng)用編程接口(API)(就像調(diào)用本地服務(wù)一樣),將Web服務(wù)集成到應(yīng)用程序中,不同的是Web API調(diào)用可通過互聯(lián)網(wǎng)發(fā)送給位于遠(yuǎn)程系統(tǒng)中的某一服務(wù)。例如,Microsoft Passport服務(wù)使得開發(fā)人員能夠?qū)δ硲?yīng)用程序進(jìn)行驗證。通過Passport服務(wù)編程,開發(fā)人員可以充分利用Passport的基本結(jié)構(gòu),通過運行Passport來維護(hù)用戶數(shù)據(jù)庫,以確保它的正常運行、定期備份等等。

  松散耦合

  在某個網(wǎng)絡(luò)中分發(fā)應(yīng)用程序邏輯,并不是一個全新的概念,在Web中分發(fā)并集成應(yīng)用程序邏輯才是一個嶄新的概念。

  從前,分布式的應(yīng)用程序邏輯需要使用分布式的對象模型,諸如:微軟的分布式組件對象模型(DCOM)、對象管理集團(tuán)的公用對象請求代理程序體系結(jié)構(gòu)(CORBA)或Sun的遠(yuǎn)程方法調(diào)用(RMI)。通過使用這種基本結(jié)構(gòu),開發(fā)人員仍可擁有使用本地模型所提供的豐富資源和精確性,并可將服務(wù)置于遠(yuǎn)程系統(tǒng)中。

  這些系統(tǒng)有一個共同的缺陷,那就是它們無法擴(kuò)展到互聯(lián)網(wǎng)上:它們要求服務(wù)客戶端與系統(tǒng)提供的服務(wù)本身之間必須進(jìn)行緊密耦合,即要求一個同類基本結(jié)構(gòu)。這樣的系統(tǒng)往往十分脆弱:如果一端的執(zhí)行機(jī)制發(fā)生變化,那么另一端便會崩潰。例如,如果服務(wù)器應(yīng)用程序的接口發(fā)生更改,那么客戶端便會崩潰。

  要求提供緊密耦合的基本結(jié)構(gòu),無可厚非,許多應(yīng)用程序均是基于這種系統(tǒng)構(gòu)建而成的。但是,當(dāng)各個公司需要相互合作、或信息技術(shù)提供商擴(kuò)大業(yè)務(wù)范圍時,便很難實現(xiàn)單一而統(tǒng)一的基本結(jié)構(gòu)。您根本無法保證您希望與之進(jìn)行遠(yuǎn)程通信的管道的另一端,具備所有您需要的基本結(jié)構(gòu):對于它使用的操作系統(tǒng)、對象模型或編程語言,您可能一無所知。

  相反,Web服務(wù)彼此是松散偶合的。連接中的任何一方均可更改執(zhí)行機(jī)制,卻不影響應(yīng)用程序的正常運行。從技術(shù)角度講,人們已轉(zhuǎn)向使用一種基于消息的異步技術(shù)來實現(xiàn)高可靠性的系統(tǒng)性能,通過使用諸如HTTP、簡單郵件傳輸協(xié)議(SMTP)以及至為重要的XML來實現(xiàn)統(tǒng)一的連接。

  消息傳遞系統(tǒng)將通信的基本單元打包成自我描述型的數(shù)據(jù)包(又稱作消息),并將其放到網(wǎng)絡(luò)纜線中。消息傳遞系統(tǒng)與分布式對象系統(tǒng)之間的本質(zhì)區(qū)別在于:要求發(fā)送方辨識接收方的基本結(jié)構(gòu)的程度有所不同。在分布式系統(tǒng)中,發(fā)送方需對接收方的情況作出種種猜測:應(yīng)用程序是如何激活或拆包的,調(diào)用的是什么樣的界面,等等。

  另一方面,消息傳遞系統(tǒng)會在纜線格式級上創(chuàng)建合同。發(fā)送方既不需考慮消息被接收后的情況,也不需考慮接發(fā)雙方之間的通信情況,唯一需要考慮的是接收方是否能辯識發(fā)送的消息內(nèi)容。

  在纜線格式級上創(chuàng)建合同的優(yōu)勢不言而喻。例如,接收方可在任何時刻進(jìn)行更改,而不會干擾發(fā)送方的消息發(fā)送,只要它仍可辯識原有消息的內(nèi)容。另外,發(fā)送方無需任何特殊的軟件即可與接收方通信:只要它發(fā)出正確格式的消息,接收方就可以響應(yīng)。