XML、Web服務(wù)與.NET框架(1)
發(fā)表時(shí)間:2024-02-23 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]應(yīng)用程序開(kāi)發(fā)技術(shù)正發(fā)生著一次質(zhì)的飛躍,從根本上大幅度提高開(kāi)發(fā)人員的生產(chǎn)效率,它開(kāi)啟了一道通向全新概念的應(yīng)用程序的大門! ≡谶^(guò)去,開(kāi)發(fā)人員一直通過(guò)集成本地系統(tǒng)服務(wù)來(lái)構(gòu)建應(yīng)用程序。在這種模式下,開(kāi)發(fā)人員可以訪問(wèn)豐富的開(kāi)發(fā)資源并能嚴(yán)格控制應(yīng)用程序的行為! ∪缃,開(kāi)發(fā)人員在很大程度上已掙脫了這種模式的...
應(yīng)用程序開(kāi)發(fā)技術(shù)正發(fā)生著一次質(zhì)的飛躍,從根本上大幅度提高開(kāi)發(fā)人員的生產(chǎn)效率,它開(kāi)啟了一道通向全新概念的應(yīng)用程序的大門。
在過(guò)去,開(kāi)發(fā)人員一直通過(guò)集成本地系統(tǒng)服務(wù)來(lái)構(gòu)建應(yīng)用程序。在這種模式下,開(kāi)發(fā)人員可以訪問(wèn)豐富的開(kāi)發(fā)資源并能嚴(yán)格控制應(yīng)用程序的行為。
如今,開(kāi)發(fā)人員在很大程度上已掙脫了這種模式的束縛,致力于構(gòu)建具有復(fù)雜結(jié)構(gòu)的n層系統(tǒng),這種系統(tǒng)能將網(wǎng)絡(luò)中各處的眾多的應(yīng)用程序進(jìn)行集成,并大大提升應(yīng)用程序的價(jià)值。這樣,開(kāi)發(fā)人員便可集中精力挖掘軟件獨(dú)特的商業(yè)價(jià)值,而不必日夜為如何構(gòu)建基本結(jié)構(gòu)傷腦筋了。令人欣喜的局面將應(yīng)運(yùn)而生:軟件投放市場(chǎng)的時(shí)間大大縮短、開(kāi)發(fā)人員的編程效率明顯提高,最為根本的是開(kāi)發(fā)出質(zhì)量上乘的軟件。
我們正在進(jìn)入一個(gè)嶄新的計(jì)算時(shí)代,一個(gè)互聯(lián)網(wǎng)時(shí)代,其核心技術(shù)是“可擴(kuò)展標(biāo)記語(yǔ)言”,即XML。XML創(chuàng)建出可供任何人從任何地方訪問(wèn)和使用的功能強(qiáng)大的應(yīng)用程序。它極大地?cái)U(kuò)展了應(yīng)用程序的功能,并實(shí)現(xiàn)了軟件的不間斷傳輸。在這種大環(huán)境中,軟件已不完全是指那些從CD進(jìn)行安裝的程序,而是已經(jīng)演變成了一種服務(wù):類似于調(diào)用者的ID驗(yàn)證或按觀看次數(shù)進(jìn)行收費(fèi)的電視,人們可通過(guò)通信媒體預(yù)定此類服務(wù)。
這一切,是通過(guò)將緊密耦合的、高效的n層計(jì)算技術(shù)與面向消息的、松散耦合的Web概念相結(jié)合來(lái)實(shí)現(xiàn)的。我們將這種計(jì)算風(fēng)格稱為Web服務(wù),它的出現(xiàn)標(biāo)志著人類已經(jīng)邁入應(yīng)用程序開(kāi)發(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上的組件編程。
從理論上講,開(kāi)發(fā)人員可通過(guò)調(diào)用Web應(yīng)用編程接口(API)(就像調(diào)用本地服務(wù)一樣),將Web服務(wù)集成到應(yīng)用程序中,不同的是Web API調(diào)用可通過(guò)互聯(lián)網(wǎng)發(fā)送給位于遠(yuǎn)程系統(tǒng)中的某一服務(wù)。例如,Microsoft Passport服務(wù)使得開(kāi)發(fā)人員能夠?qū)δ硲?yīng)用程序進(jìn)行驗(yàn)證。通過(guò)Passport服務(wù)編程,開(kāi)發(fā)人員可以充分利用Passport的基本結(jié)構(gòu),通過(guò)運(yùn)行Passport來(lái)維護(hù)用戶數(shù)據(jù)庫(kù),以確保它的正常運(yùn)行、定期備份等等。
松散耦合
在某個(gè)網(wǎng)絡(luò)中分發(fā)應(yīng)用程序邏輯,并不是一個(gè)全新的概念,在Web中分發(fā)并集成應(yīng)用程序邏輯才是一個(gè)嶄新的概念。
從前,分布式的應(yīng)用程序邏輯需要使用分布式的對(duì)象模型,諸如:微軟的分布式組件對(duì)象模型(DCOM)、對(duì)象管理集團(tuán)的公用對(duì)象請(qǐng)求代理程序體系結(jié)構(gòu)(CORBA)或Sun的遠(yuǎn)程方法調(diào)用(RMI)。通過(guò)使用這種基本結(jié)構(gòu),開(kāi)發(fā)人員仍可擁有使用本地模型所提供的豐富資源和精確性,并可將服務(wù)置于遠(yuǎn)程系統(tǒng)中。
這些系統(tǒng)有一個(gè)共同的缺陷,那就是它們無(wú)法擴(kuò)展到互聯(lián)網(wǎng)上:它們要求服務(wù)客戶端與系統(tǒng)提供的服務(wù)本身之間必須進(jìn)行緊密耦合,即要求一個(gè)同類基本結(jié)構(gòu)。這樣的系統(tǒng)往往十分脆弱:如果一端的執(zhí)行機(jī)制發(fā)生變化,那么另一端便會(huì)崩潰。例如,如果服務(wù)器應(yīng)用程序的接口發(fā)生更改,那么客戶端便會(huì)崩潰。
要求提供緊密耦合的基本結(jié)構(gòu),無(wú)可厚非,許多應(yīng)用程序均是基于這種系統(tǒng)構(gòu)建而成的。但是,當(dāng)各個(gè)公司需要相互合作、或信息技術(shù)提供商擴(kuò)大業(yè)務(wù)范圍時(shí),便很難實(shí)現(xiàn)單一而統(tǒng)一的基本結(jié)構(gòu)。您根本無(wú)法保證您希望與之進(jìn)行遠(yuǎn)程通信的管道的另一端,具備所有您需要的基本結(jié)構(gòu):對(duì)于它使用的操作系統(tǒng)、對(duì)象模型或編程語(yǔ)言,您可能一無(wú)所知。
相反,Web服務(wù)彼此是松散偶合的。連接中的任何一方均可更改執(zhí)行機(jī)制,卻不影響應(yīng)用程序的正常運(yùn)行。從技術(shù)角度講,人們已轉(zhuǎn)向使用一種基于消息的異步技術(shù)來(lái)實(shí)現(xiàn)高可靠性的系統(tǒng)性能,通過(guò)使用諸如HTTP、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)以及至為重要的XML來(lái)實(shí)現(xiàn)統(tǒng)一的連接。
消息傳遞系統(tǒng)將通信的基本單元打包成自我描述型的數(shù)據(jù)包(又稱作消息),并將其放到網(wǎng)絡(luò)纜線中。消息傳遞系統(tǒng)與分布式對(duì)象系統(tǒng)之間的本質(zhì)區(qū)別在于:要求發(fā)送方辨識(shí)接收方的基本結(jié)構(gòu)的程度有所不同。在分布式系統(tǒng)中,發(fā)送方需對(duì)接收方的情況作出種種猜測(cè):應(yīng)用程序是如何激活或拆包的,調(diào)用的是什么樣的界面,等等。
另一方面,消息傳遞系統(tǒng)會(huì)在纜線格式級(jí)上創(chuàng)建合同。發(fā)送方既不需考慮消息被接收后的情況,也不需考慮接發(fā)雙方之間的通信情況,唯一需要考慮的是接收方是否能辯識(shí)發(fā)送的消息內(nèi)容。
在纜線格式級(jí)上創(chuàng)建合同的優(yōu)勢(shì)不言而喻。例如,接收方可在任何時(shí)刻進(jìn)行更改,而不會(huì)干擾發(fā)送方的消息發(fā)送,只要它仍可辯識(shí)原有消息的內(nèi)容。另外,發(fā)送方無(wú)需任何特殊的軟件即可與接收方通信:只要它發(fā)出正確格式的消息,接收方就可以響應(yīng)。