監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

Microsoft.Net與Web Services

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

AMTeam.org

Microsoft.Net與Web Services

姚志軍

Microsoft.Net是Microsoft的新一代Internet全面解決方案,開發(fā)者利用.Net平臺(tái)、產(chǎn)品和服務(wù),可以輕松地建設(shè)真正分布式的、協(xié)作的新一代的Web服務(wù),讓用戶在任何設(shè)備、任何時(shí)間和任何地點(diǎn),輕松地獲取信息。
 
1.Net是什么?
 
Microsoft .Net的目標(biāo)是讓分布在不同區(qū)域的計(jì)算機(jī)、設(shè)備一起工作,為用戶提供各種各樣的服務(wù)。人們可以控制在什么時(shí)候、獲取什么信息以及怎樣獲取信息,而不必像現(xiàn)在這樣,用戶在無數(shù)個(gè)信息孤島中找來找去,尋找著自己需要的信息。例如,我想在居住的小區(qū)內(nèi)找一家燒烤店,并且晚上7點(diǎn)還有空位; 又比如,我有一筆業(yè)務(wù)要做,我要知道哪家供貨商庫存有該貨物,如果有幾家可以提供該商品,我還要知道誰能給我最好的價(jià)格以及誰能最先將貨送到。類似這樣的服務(wù)在現(xiàn)在的Internet上并不存在,因?yàn)闆]有一個(gè)標(biāo)準(zhǔn)將這些分屬于不同單位的信息集成起來。Microsoft .Net將徹底改變現(xiàn)在Internet的工作方式,推動(dòng)下一代Internet的發(fā)展。XML和SOAP是實(shí)現(xiàn)上述偉大理想的核心技術(shù)。
簡(jiǎn)單地說,.Net主要由兩大部分組成:

● .Net平臺(tái) 包括.Net基礎(chǔ)框架、工具和核心服務(wù)等;

● .Net產(chǎn)品和服務(wù) 包括Windows .Net、MSN.Net、Office.Net、Visual Studio.Net以及bCentral for .Net。

本文主要介紹.Net基礎(chǔ)框架以及 .Net包含的重要理念——Web Services。 


 

 

2Web Services架構(gòu)
 
Web Service是由應(yīng)用程序完成的服務(wù),通過Internet標(biāo)準(zhǔn),可以和其他Web Service集成,它是一個(gè)URL服務(wù)資源,客戶端可以通過編程方式請(qǐng)求得到它返回的信息。Web Services的一個(gè)重要特點(diǎn)就是客戶端不需要知道所請(qǐng)求的服務(wù)是怎樣實(shí)現(xiàn)的,這一點(diǎn)與傳統(tǒng)的分布式組件對(duì)象模型(DCOM/CORBA)完全不同。

.Net系統(tǒng)之間的通信采用通行的Web協(xié)議和數(shù)據(jù)格式,例如HTTP和XML,任何支持Web標(biāo)準(zhǔn)的系統(tǒng)都能支持Web Services。XML是定義一套可擴(kuò)展的、標(biāo)準(zhǔn)化的語言的最好選擇,它可以表示命令和類型數(shù)據(jù)定義。SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議)則是一套用XML表示數(shù)據(jù)和命令的國際標(biāo)準(zhǔn)。因此,在.Net中,選用SOAP定義通信消息格式應(yīng)是很好的選擇。

Web Services 定義了明確的接口,在.Net中被稱為約定(contracts),它描述了Web Services提供的服務(wù),客戶端應(yīng)用程序就是根據(jù)約定知道Web Services是否包含所需的服務(wù)以及調(diào)用方法。開發(fā)人員可以通過組合調(diào)用遠(yuǎn)程服務(wù)、本地服務(wù)和自己編寫代碼來實(shí)現(xiàn)一個(gè)Web應(yīng)用。圖1顯示了怎樣將Web Services連接在一起,建立分布式的Web應(yīng)用。
 
3.Net框架
 
我們知道,.Net的主要目標(biāo)就是在Internet的站點(diǎn)之間通過分布式的協(xié)作,為用戶提供更加完美的服務(wù)。但在目前的技術(shù)條件下,實(shí)現(xiàn)這樣的應(yīng)用難度非常大,Microsoft為此開發(fā)的.Net框架、核心基礎(chǔ)構(gòu)件服務(wù)以及系列開發(fā)工具,將使開發(fā)人員可以很容易地搭建這樣的應(yīng)用(包括開發(fā)Web應(yīng)用和Web 服務(wù))。.Net框架是Microsoft繼DNA之后最新提出的新一代Internet軟件開發(fā)模型。圖2顯示了Microsoft .Net框架的組成。

 

從圖中可以看出,Microsoft.Net框架的核心是公共語言運(yùn)行環(huán)境(Common Language Runtime)引擎和服務(wù)框架(Servies Frameworks),它們建立在操作系統(tǒng)層之上。公共語言運(yùn)行環(huán)境(Runtime)引擎的功能是管理代碼的運(yùn)行,代碼可以采用任何現(xiàn)代編程語言編寫,并以一種中間語言(IL)代碼的形式出現(xiàn)。另外,運(yùn)行環(huán)境引擎還提供了許多服務(wù)功能以簡(jiǎn)化代碼的開發(fā)和應(yīng)用配置,同時(shí)也改善了應(yīng)用程序的可靠性。.Net還包括一組類庫,開發(fā)人員可以在任何一種編程語言環(huán)境中使用。最上一層是各種應(yīng)用程序開發(fā)模型,并特別針對(duì)開發(fā)Web站點(diǎn)和Web服務(wù)提供了更高一級(jí)的組件和服務(wù)。

1.公共語言運(yùn)行環(huán)境(Runtime)

.Net框架的核心是公共語言運(yùn)行環(huán)境(Runtime)引擎。很多程序員對(duì)Runtime這個(gè)概念并不陌生,我們知道C Runtime庫、標(biāo)準(zhǔn)模板庫、MFC庫、活動(dòng)模板庫以及VB運(yùn)行庫等,目的都是為應(yīng)用程序提供公共服務(wù),以節(jié)省編程時(shí)間和提高程序的可靠性。Runtime引擎和庫同樣如此,不同的是,Runtime引擎更像Java虛擬機(jī),因?yàn)樗芾淼拇a是與機(jī)器無關(guān)的中間代碼,在Runtime加載后才編譯執(zhí)行。

專門為Runtime生成的代碼在.Net中稱為可管理代碼(Managed Code)。簡(jiǎn)單地說,可管理代碼意味著在執(zhí)行代碼和Runtime之間定義了一個(gè)接口,諸如創(chuàng)建對(duì)象、方法調(diào)用等任務(wù)都可以交給Runtime完成,它同時(shí)還向執(zhí)行代碼提供一些附加的服務(wù)功能。另外,Runtime還具有平臺(tái)無關(guān)、語言交叉集成、自描述組件、簡(jiǎn)單配置、版本控制和集成安全服務(wù)等特性。

● 平臺(tái)無關(guān)

在圖2中,最底層是操作系統(tǒng)但并沒有特指是Windows,因此它可以是任何一種操作系統(tǒng),只要開發(fā)出了可在該操作系統(tǒng)下運(yùn)行的Runtime,就可以在上面執(zhí)行.Net應(yīng)用。一個(gè)可管理的.Net應(yīng)用(完全是由可管理代碼組成),只要編寫一次,就能夠在任何支持.Net 的平臺(tái)上執(zhí)行。Microsoft.Net的平臺(tái)無關(guān)性與Java完全一樣。

● 語言集成

過去,我們可以用不同的編程語言實(shí)現(xiàn)對(duì)COM的互操作,現(xiàn)在,.Net實(shí)現(xiàn)了語言的相互集成。例如,用C++建立一個(gè)類,而其基類是VB實(shí)現(xiàn)的類,則.Net可以實(shí)現(xiàn)這一目標(biāo),因?yàn)樗x并提供了一個(gè)對(duì)所有.Net語言都通用的公共類型系統(tǒng)。

● 公共類型系統(tǒng)

語言集成是在公共類型系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)的,公共類型系統(tǒng)能表示絕大多數(shù)現(xiàn)代編程語言的語法。通過定義一組標(biāo)準(zhǔn)的類型和規(guī)則集,可建立新的類型,Runtime知道怎樣建立和執(zhí)行這些類型(類)。編譯器和解釋器使用Runtime提供的服務(wù)來定義類型、管理對(duì)象和進(jìn)行方法調(diào)用,而以前是使用工具或某種語言特定的方法來完成同樣的事情。

● 自描述組件

自描述組件可以大大簡(jiǎn)化系統(tǒng)的開發(fā)、配置,并且改進(jìn)系統(tǒng)的可靠性。由Runtime提供的許多服務(wù)都需要元數(shù)據(jù)(metadata)的驅(qū)動(dòng),元數(shù)據(jù)是執(zhí)行代碼的附加信息,由于所有的數(shù)據(jù)和代碼都放在一個(gè)文件中,因此,這個(gè)執(zhí)行文件在.Net中稱作自描述組件。自描述組件最主要的優(yōu)點(diǎn)是使用這個(gè)組件時(shí)不再需要其他文件。

● 匯編(assembly)

.Net 框架再次提出了匯編的概念。這里的匯編與DOS下宏匯編的概念稍有不同,在這里,一個(gè)匯編是資源、類型(類)以及與資源和類型相關(guān)的元數(shù)據(jù)的組合,它們可以被裝配成一個(gè)單元(Unit)。元數(shù)據(jù)稱作匯編清單,它包括一些信息,例如對(duì)外可見的類型(類)以及資源的列表信息。一個(gè)匯編可以專屬于某個(gè)應(yīng)用,也可由多個(gè)應(yīng)用共享。另外,一個(gè)匯編的多個(gè)版本也可以同時(shí)放在一臺(tái)機(jī)器上。

● .Net 安全

Runtime 提供了系統(tǒng)的安全服務(wù),以保證未授權(quán)用戶不能訪問機(jī)器上的資源,并且代碼也不能完成未授權(quán)的活動(dòng),這將大大改善系統(tǒng)的安全性和可靠性。由于用Runtime加載代碼、建立對(duì)象并實(shí)現(xiàn)方法調(diào)用,因此,當(dāng)可管理代碼被加載和執(zhí)行時(shí),Runtime可以進(jìn)行安全檢查和執(zhí)行安全策略。.Net框架提供了兩種安全方案:代碼訪問安全和基于角色的安全。

● 中間語言和JIT編譯器

在.Net中,編譯器產(chǎn)生的可管理代碼并不是x86機(jī)器碼或其他機(jī)器碼,而是Microsoft中間語言(MSIL)代碼。MSIL比大多數(shù)機(jī)器語言的層次高,它懂得對(duì)象類型,有建立和初始化對(duì)象、在對(duì)象上調(diào)用虛擬方法以及直接操縱數(shù)組元素等指令,它甚至有提交和捕捉例外進(jìn)行錯(cuò)誤處理的指令。MSIL指令不能在CPU上直接執(zhí)行,因此,Runtime引擎必須首先編譯可管理的MSIL指令,使其成為本地CPU指令。

2. Win Forms應(yīng)用模型

在圖2中可以看到,在服務(wù)框架的上方有兩種應(yīng)用模型:Win Forms應(yīng)用模型和Web應(yīng)用模型。雖然.Net框架的主要目標(biāo)是開發(fā)Web服務(wù)和Web應(yīng)用,但它也可以用來開發(fā)傳統(tǒng)的Windows應(yīng)用,同時(shí)這些應(yīng)用也可以使用Web Services。

在寫Windows客戶端應(yīng)用程序時(shí)采用Win Forms應(yīng)用模型,可以調(diào)用Windows豐富的界面功能,包括現(xiàn)存的ActiveX控件和一些Windows 2000新功能。不管是選擇傳統(tǒng)的Windows方式還是新的Web方式,Win Forms編程模型和設(shè)計(jì)支持都是非常直觀的,與現(xiàn)在的Windows窗體方式很相似。

Win Forms同樣也利用了.Net框架的Runtime引擎,這樣可以減少Windows客戶端應(yīng)用程序的開發(fā)工作量。.Net框架的安全模型保證了在客戶端機(jī)器上能夠安全地執(zhí)行應(yīng)用程序和組件。

3. Web 應(yīng)用模型

Microsoft .Net框架下的Web應(yīng)用程序模型稱作ASP+。在這個(gè)模型中,一個(gè)Web應(yīng)用是從一些基URL引伸而來的一組URL,它涵蓋了在瀏覽器中產(chǎn)生顯示頁面的Web應(yīng)用和Web Services。ASP+是從ASP發(fā)展而來。ASP+充分利用了公共語言運(yùn)行環(huán)境(Runtime)和服務(wù)框架(Services Framework),為Web應(yīng)用提供可靠的、堅(jiān)固的和可伸縮的運(yùn)行環(huán)境。另外,系統(tǒng)提供的服務(wù)使應(yīng)用的開發(fā)、配置也變得很簡(jiǎn)單。ASP+的核心概念是HTTP Runtime、模塊管道和請(qǐng)求處理器。HTTP Runtime是基于底層結(jié)構(gòu)建立的高性能HTTP處理運(yùn)行環(huán)境;模塊管道和請(qǐng)求處理器則增強(qiáng)了系統(tǒng)的靈活性和可擴(kuò)展性。另外,ASP+還對(duì)ASP中的三種Web應(yīng)用狀態(tài)管理功能進(jìn)行了增強(qiáng),并提供了緩存服務(wù)。在ASP+編程模型之上,還有以下兩種更高級(jí)的編程模型:

● ASP+ Web Forms

Web Forms的開發(fā)風(fēng)格類似VB窗體的快速應(yīng)用開發(fā)。Web Forms支持傳統(tǒng)的ASP語法:混合HTML內(nèi)容和腳本代碼,但它也提供了一個(gè)結(jié)構(gòu)化的方法,可以將應(yīng)用代碼和用戶界面內(nèi)容分離。新引入的Web Forms控件提供了一個(gè)機(jī)制,即可以將公共用戶界面內(nèi)容打包。這樣,我們可以使用類似VB的工具,以所見即所得的方式完成Web頁面布局開發(fā)。使用控件的一個(gè)重要優(yōu)點(diǎn)是讓程序能自適應(yīng)客戶端的特點(diǎn),這樣,相同的頁面就能適應(yīng)多種不同的客戶端平臺(tái),包括低端瀏覽器的HTML3.2和IE5.0的動(dòng)態(tài)HTML。

代碼和內(nèi)容的分離使得ASP+頁面可動(dòng)態(tài)編譯成可管理的類,從而使性能有很大的提高。

● ASP+ Web Services

ASP+ Web Services編程模型的主要優(yōu)點(diǎn)是簡(jiǎn)化了Web Services的開發(fā),同時(shí),其編程模型也非常類似人們已熟悉的ASP或VB開發(fā)。

開發(fā)者用ASP+建立Web服務(wù)的方法很簡(jiǎn)單,通過編寫一個(gè)擴(kuò)展名為.ASMX的文件,并且將其配置成Web應(yīng)用的一部分即可。ASMX文件要么包含一個(gè)對(duì)已定義的可管理類的引用,要么本身有一個(gè)類定義,且類是從ASP+提供的Web Services類中導(dǎo)出來的。

目前,微軟正在積極地實(shí)施它的.Net戰(zhàn)略,及早地了解有關(guān)技術(shù)細(xì)節(jié),將會(huì)有助于我們開發(fā)出更好的應(yīng)用產(chǎn)品。

發(fā)布:2007-03-25 10:35    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
上海OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢