當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 上海OA系統(tǒng) > 上海OA快博
Microsoft.Net與Web Services
Microsoft.Net與Web Services
姚志軍
Microsoft.Net是Microsoft的新一代Internet全面解決方案,開發(fā)者利用.Net平臺、產(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的工作方式,推動下一代Internet的發(fā)展。XML和SOAP是實(shí)現(xiàn)上述偉大理想的核心技術(shù)。
簡單地說,.Net主要由兩大部分組成:
● .Net平臺 包括.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ù)資源,客戶端可以通過編程方式請求得到它返回的信息。Web
Services的一個(gè)重要特點(diǎn)就是客戶端不需要知道所請求的服務(wù)是怎樣實(shí)現(xiàn)的,這一點(diǎn)與傳統(tǒng)的分布式組件對象模型(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(簡單對象訪問協(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ù)功能以簡化代碼的開發(fā)和應(yīng)用配置,同時(shí)也改善了應(yīng)用程序的可靠性。.Net還包括一組類庫,開發(fā)人員可以在任何一種編程語言環(huán)境中使用。最上一層是各種應(yīng)用程序開發(fā)模型,并特別針對開發(fā)Web站點(diǎn)和Web服務(wù)提供了更高一級的組件和服務(wù)。
1.公共語言運(yùn)行環(huán)境(Runtime)
.Net框架的核心是公共語言運(yùn)行環(huán)境(Runtime)引擎。很多程序員對Runtime這個(gè)概念并不陌生,我們知道C
Runtime庫、標(biāo)準(zhǔn)模板庫、MFC庫、活動模板庫以及VB運(yùn)行庫等,目的都是為應(yīng)用程序提供公共服務(wù),以節(jié)省編程時(shí)間和提高程序的可靠性。Runtime引擎和庫同樣如此,不同的是,Runtime引擎更像Java虛擬機(jī),因?yàn)樗芾淼拇a是與機(jī)器無關(guān)的中間代碼,在Runtime加載后才編譯執(zhí)行。
專門為Runtime生成的代碼在.Net中稱為可管理代碼(Managed
Code)。簡單地說,可管理代碼意味著在執(zhí)行代碼和Runtime之間定義了一個(gè)接口,諸如創(chuàng)建對象、方法調(diào)用等任務(wù)都可以交給Runtime完成,它同時(shí)還向執(zhí)行代碼提供一些附加的服務(wù)功能。另外,Runtime還具有平臺無關(guān)、語言交叉集成、自描述組件、簡單配置、版本控制和集成安全服務(wù)等特性。
● 平臺無關(guān)
在圖2中,最底層是操作系統(tǒng)但并沒有特指是Windows,因此它可以是任何一種操作系統(tǒng),只要開發(fā)出了可在該操作系統(tǒng)下運(yùn)行的Runtime,就可以在上面執(zhí)行.Net應(yīng)用。一個(gè)可管理的.Net應(yīng)用(完全是由可管理代碼組成),只要編寫一次,就能夠在任何支持.Net
的平臺上執(zhí)行。Microsoft.Net的平臺無關(guān)性與Java完全一樣。
● 語言集成
過去,我們可以用不同的編程語言實(shí)現(xiàn)對COM的互操作,現(xiàn)在,.Net實(shí)現(xiàn)了語言的相互集成。例如,用C++建立一個(gè)類,而其基類是VB實(shí)現(xiàn)的類,則.Net可以實(shí)現(xiàn)這一目標(biāo),因?yàn)樗x并提供了一個(gè)對所有.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ù)來定義類型、管理對象和進(jìn)行方法調(diào)用,而以前是使用工具或某種語言特定的方法來完成同樣的事情。
● 自描述組件
自描述組件可以大大簡化系統(tǒng)的開發(fā)、配置,并且改進(jìn)系統(tǒng)的可靠性。由Runtime提供的許多服務(wù)都需要元數(shù)據(jù)(metadata)的驅(qū)動,元數(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ù)稱作匯編清單,它包括一些信息,例如對外可見的類型(類)以及資源的列表信息。一個(gè)匯編可以專屬于某個(gè)應(yīng)用,也可由多個(gè)應(yīng)用共享。另外,一個(gè)匯編的多個(gè)版本也可以同時(shí)放在一臺機(jī)器上。
● .Net 安全
Runtime
提供了系統(tǒng)的安全服務(wù),以保證未授權(quán)用戶不能訪問機(jī)器上的資源,并且代碼也不能完成未授權(quán)的活動,這將大大改善系統(tǒng)的安全性和可靠性。由于用Runtime加載代碼、建立對象并實(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ī)器語言的層次高,它懂得對象類型,有建立和初始化對象、在對象上調(diào)用虛擬方法以及直接操縱數(shù)組元素等指令,它甚至有提交和捕捉例外進(jìn)行錯誤處理的指令。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ā)、配置也變得很簡單。ASP+的核心概念是HTTP
Runtime、模塊管道和請求處理器。HTTP
Runtime是基于底層結(jié)構(gòu)建立的高性能HTTP處理運(yùn)行環(huán)境;模塊管道和請求處理器則增強(qiáng)了系統(tǒng)的靈活性和可擴(kuò)展性。另外,ASP+還對ASP中的三種Web應(yīng)用狀態(tài)管理功能進(jìn)行了增強(qiáng),并提供了緩存服務(wù)。在ASP+編程模型之上,還有以下兩種更高級的編程模型:
● 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)多種不同的客戶端平臺,包括低端瀏覽器的HTML3.2和IE5.0的動態(tài)HTML。
代碼和內(nèi)容的分離使得ASP+頁面可動態(tài)編譯成可管理的類,從而使性能有很大的提高。
● ASP+ Web Services
ASP+ Web Services編程模型的主要優(yōu)點(diǎn)是簡化了Web
Services的開發(fā),同時(shí),其編程模型也非常類似人們已熟悉的ASP或VB開發(fā)。
開發(fā)者用ASP+建立Web服務(wù)的方法很簡單,通過編寫一個(gè)擴(kuò)展名為.ASMX的文件,并且將其配置成Web應(yīng)用的一部分即可。ASMX文件要么包含一個(gè)對已定義的可管理類的引用,要么本身有一個(gè)類定義,且類是從ASP+提供的Web
Services類中導(dǎo)出來的。
目前,微軟正在積極地實(shí)施它的.Net戰(zhàn)略,及早地了解有關(guān)技術(shù)細(xì)節(jié),將會有助于我們開發(fā)出更好的應(yīng)用產(chǎn)品。
- 1Web服務(wù)防黑談(二)
- 2麥肯錫電子商務(wù)論叢-B2B市場銷售指南
- 3深入考察兩種Web服務(wù)架構(gòu)
- 4未來之路——Web服務(wù)應(yīng)用方案掃描
- 5上海OA的功能框架
- 6Perspective:關(guān)于網(wǎng)絡(luò)服務(wù)的5大謊言
- 7《解構(gòu)Web services系列之二》新興技術(shù)較勁 競爭白熱化
- 8認(rèn)識上海OA(上)(by AMT 姚磊)
- 9實(shí)現(xiàn)Web應(yīng)用中的本地打印
- 10網(wǎng)絡(luò)服務(wù)新戰(zhàn)場:IT巨頭爭搶認(rèn)證服務(wù)
- 11拉美CRM、集成和Web服務(wù)熱
- 12WS-I公布網(wǎng)絡(luò)服務(wù)標(biāo)準(zhǔn)草案 SUN 最終加入成為會員
- 13性能比較:.NET Remoting與ASP.NET Web服務(wù)
- 14上海OA:未來企業(yè)核心競爭力
- 15信息生命周期管理:存儲界的最新發(fā)展浪潮
- 16《電子內(nèi)容》雜志信息科技100強(qiáng)(Econtent 100)(陳贛峰)
- 17選擇OA辦公系統(tǒng)時(shí)盡量少看方案,多看產(chǎn)品或試用
- 18分析員:英特爾與Web Service
- 19上海OA戰(zhàn)略、方法及其績效研究(謝洪明 劉常勇 李曉彤)
- 20Web服務(wù)安全技術(shù)大比拼
- 21Sun氣勢洶洶 決心在網(wǎng)絡(luò)服務(wù)領(lǐng)域超越微軟
- 22中低端價(jià)格兼顧中高端應(yīng)用技術(shù)的泛普軟件OA是不錯的選擇
- 23微軟觸角伸至網(wǎng)絡(luò)服務(wù) 軟件業(yè)同行視為最大勁敵
- 24Sun ONE完美Web服務(wù)
- 25Web服務(wù)之路越走越亮
- 26協(xié)同OA辦公軟件項(xiàng)目實(shí)施過程中交付物的質(zhì)量控制
- 27“自由聯(lián)盟”即將公開單一登錄標(biāo)準(zhǔn)
- 28關(guān)于安全的建議:對投入使用的XML Web Services禁用HTTP-GET和HTTP-POST協(xié)議
- 29甲骨文呼吁W3C調(diào)解網(wǎng)絡(luò)服務(wù)標(biāo)準(zhǔn)紛爭
- 30如何實(shí)現(xiàn)知識共享?
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114