當前位置:工程項目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
Microsoft.Net 與 Web Services
Microsoft.Net 與 Web Services
1.Net是什么?
Microsoft
.Net的目標是讓分布在不同區(qū)域的計算機、設備一起工作,為用戶提供各種各樣的服務。人們可以控制在什么時候、獲取什么信息以及怎樣獲取信息,而不必像現(xiàn)在這樣,用戶在無數(shù)個信息孤島中找來找去,尋找著自己需要的信息。例如,我想在居住的小區(qū)內找一家燒烤店,并且晚上7點還有空位;
又比如,我有一筆業(yè)務要做,我要知道哪家供貨商庫存有該貨物,如果有幾家可以提供該商品,我還要知道誰能給我最好的價格以及誰能最先將貨送到。類似這樣的服務在現(xiàn)在的Internet上并不存在,因為沒有一個標準將這些分屬于不同單位的信息集成起來。
Microsoft
.Net將徹底改變現(xiàn)在Internet的工作方式,推動下一代Internet的發(fā)展。XML和SOAP是實現(xiàn)上述偉大理想的核心技術。
簡單地說,.Net主要由兩大部分組成:
● .Net平臺 包括.Net基礎框架、工具和核心服務等;
●
.Net產品和服務 包括Windows .Net、MSN.Net、Office.Net、Visual Studio.Net以及bCentral for
.Net。
本文主要介紹.Net基礎框架以及 .Net包含的重要理念——Web Services。
2.Web Services架構
Web Service是由應用程序完成的服務,通過Internet標準,可以和其他Web
Service集成,它是一個URL服務資源,客戶端可以通過編程方式請求得到它返回的信息。Web
Services的一個重要特點就是客戶端不需要知道所請求的服務是怎樣實現(xiàn)的,這一點與傳統(tǒng)的分布式組件對象模型(DCOM/CORBA)完全不同。
.Net系統(tǒng)之間的通信采用通行的Web協(xié)議和數(shù)據(jù)格式,例如HTTP和XML,任何支持Web標準的系統(tǒng)都能支持Web
Services。XML是定義一套可擴展的、標準化的語言的最好選擇,它可以表示命令和類型數(shù)據(jù)定義。SOAP(簡單對象訪問協(xié)議)則是一套用XML表示數(shù)據(jù)和命令的國際標準。因此,在.Net中,選用SOAP定義通信消息格式應是很好的選擇。
Web Services 定義了明確的接口,在.Net中被稱為約定(contracts),它描述了Web
Services提供的服務,客戶端應用程序就是根據(jù)約定知道Web
Services是否包含所需的服務以及調用方法。開發(fā)人員可以通過組合調用遠程服務、本地服務和自己編寫代碼來實現(xiàn)一個Web應用。圖1顯示了怎樣將Web
Services連接在一起,建立分布式的Web應用。
3.Net框架
我們知道,.Net的主要目標就是在Internet的站點之間通過分布式的協(xié)作,為用戶提供更加完美的服務。但在目前的技術條件下,實現(xiàn)這樣的應用難度非常大,Microsoft為此開發(fā)的.Net框架、核心基礎構件服務以及系列開發(fā)工具,將使開發(fā)人員可以很容易地搭建這樣的應用(包括開發(fā)Web應用和Web 服務)。.Net框架是Microsoft繼DNA之后最新提出的新一代Internet軟件開發(fā)模型。圖2顯示了Microsoft .Net框架的組成。
從圖中可以看出,Microsoft.Net框架的核心是公共語言運行環(huán)境(Common Language
Runtime)引擎和服務框架(Servies
Frameworks),它們建立在操作系統(tǒng)層之上。公共語言運行環(huán)境(Runtime)引擎的功能是管理代碼的運行,代碼可以采用任何現(xiàn)代編程語言編寫,并以一種中間語言(IL)代碼的形式出現(xiàn)。另外,運行環(huán)境引擎還提供了許多服務功能以簡化代碼的開發(fā)和應用配置,同時也改善了應用程序的可靠性。.Net還包括一組類庫,開發(fā)人員可以在任何一種編程語言環(huán)境中使用。最上一層是各種應用程序開發(fā)模型,并特別針對開發(fā)Web站點和Web服務提供了更高一級的組件和服務。
1.公共語言運行環(huán)境(Runtime)
.Net框架的核心是公共語言運行環(huán)境(Runtime)引擎。很多程序員對Runtime這個概念并不陌生,我們知道C
Runtime庫、標準模板庫、MFC庫、活動模板庫以及VB運行庫等,目的都是為應用程序提供公共服務,以節(jié)省編程時間和提高程序的可靠性。Runtime引擎和庫同樣如此,不同的是,Runtime引擎更像Java虛擬機,因為它管理的代碼是與機器無關的中間代碼,在Runtime加載后才編譯執(zhí)行。
專門為Runtime生成的代碼在.Net中稱為可管理代碼(Managed
Code)。簡單地說,可管理代碼意味著在執(zhí)行代碼和Runtime之間定義了一個接口,諸如創(chuàng)建對象、方法調用等任務都可以交給Runtime完成,它同時還向執(zhí)行代碼提供一些附加的服務功能。另外,Runtime還具有平臺無關、語言交叉集成、自描述組件、簡單配置、版本控制和集成安全服務等特性。
● 平臺無關
在圖2中,最底層是操作系統(tǒng)但并沒有特指是Windows,因此它可以是任何一種操作系統(tǒng),只要開發(fā)出了可在該操作系統(tǒng)下運行的Runtime,就可以在上面執(zhí)行.Net應用。一個可管理的.Net應用(完全是由可管理代碼組成),只要編寫一次,就能夠在任何支持.Net
的平臺上執(zhí)行。Microsoft.Net的平臺無關性與Java完全一樣。
● 語言集成
過去,我們可以用不同的編程語言實現(xiàn)對COM的互操作,現(xiàn)在,.Net實現(xiàn)了語言的相互集成。例如,用C++建立一個類,而其基類是VB實現(xiàn)的類,則.Net可以實現(xiàn)這一目標,因為它定義并提供了一個對所有.Net語言都通用的公共類型系統(tǒng)。
● 公共類型系統(tǒng)
語言集成是在公共類型系統(tǒng)的基礎上實現(xiàn)的,公共類型系統(tǒng)能表示絕大多數(shù)現(xiàn)代編程語言的語法。通過定義一組標準的類型和規(guī)則集,可建立新的類型,Runtime知道怎樣建立和執(zhí)行這些類型(類)。編譯器和解釋器使用Runtime提供的服務來定義類型、管理對象和進行方法調用,而以前是使用工具或某種語言特定的方法來完成同樣的事情。
● 自描述組件
自描述組件可以大大簡化系統(tǒng)的開發(fā)、配置,并且改進系統(tǒng)的可靠性。由Runtime提供的許多服務都需要元數(shù)據(jù)(metadata)的驅動,元數(shù)據(jù)是執(zhí)行代碼的附加信息,由于所有的數(shù)據(jù)和代碼都放在一個文件中,因此,這個執(zhí)行文件在.Net中稱作自描述組件。自描述組件最主要的優(yōu)點是使用這個組件時不再需要其他文件。
● 匯編(assembly)
.Net
框架再次提出了匯編的概念。這里的匯編與DOS下宏匯編的概念稍有不同,在這里,一個匯編是資源、類型(類)以及與資源和類型相關的元數(shù)據(jù)的組合,它們可以被裝配成一個單元(Unit)。元數(shù)據(jù)稱作匯編清單,它包括一些信息,例如對外可見的類型(類)以及資源的列表信息。一個匯編可以專屬于某個應用,也可由多個應用共享。另外,一個匯編的多個版本也可以同時放在一臺機器上。
● .Net 安全
Runtime
提供了系統(tǒng)的安全服務,以保證未授權用戶不能訪問機器上的資源,并且代碼也不能完成未授權的活動,這將大大改善系統(tǒng)的安全性和可靠性。由于用Runtime加載代碼、建立對象并實現(xiàn)方法調用,因此,當可管理代碼被加載和執(zhí)行時,Runtime可以進行安全檢查和執(zhí)行安全策略。.Net框架提供了兩種安全方案:代碼訪問安全和基于角色的安全。
● 中間語言和JIT編譯器
在.Net中,編譯器產生的可管理代碼并不是x86機器碼或其他機器碼,而是Microsoft中間語言(MSIL)代碼。MSIL比大多數(shù)機器語言的層次高,它懂得對象類型,有建立和初始化對象、在對象上調用虛擬方法以及直接操縱數(shù)組元素等指令,它甚至有提交和捕捉例外進行錯誤處理的指令。MSIL指令不能在CPU上直接執(zhí)行,因此,Runtime引擎必須首先編譯可管理的MSIL指令,使其成為本地CPU指令。
2. Win Forms應用模型
在圖2中可以看到,在服務框架的上方有兩種應用模型:Win
Forms應用模型和Web應用模型。雖然.Net框架的主要目標是開發(fā)Web服務和Web應用,但它也可以用來開發(fā)傳統(tǒng)的Windows應用,同時這些應用也可以使用Web
Services。
在寫Windows客戶端應用程序時采用Win
Forms應用模型,可以調用Windows豐富的界面功能,包括現(xiàn)存的ActiveX控件和一些Windows
2000新功能。不管是選擇傳統(tǒng)的Windows方式還是新的Web方式,Win Forms編程模型和設計支持都是非常直觀的,與現(xiàn)在的Windows窗體方式很相似。
Win
Forms同樣也利用了.Net框架的Runtime引擎,這樣可以減少Windows客戶端應用程序的開發(fā)工作量。.Net框架的安全模型保證了在客戶端機器上能夠安全地執(zhí)行應用程序和組件。
3. Web 應用模型
Microsoft
.Net框架下的Web應用程序模型稱作ASP+。在這個模型中,一個Web應用是從一些基URL引伸而來的一組URL,它涵蓋了在瀏覽器中產生顯示頁面的Web應用和Web
Services。ASP+是從ASP發(fā)展而來。ASP+充分利用了公共語言運行環(huán)境(Runtime)和服務框架(Services
Framework),為Web應用提供可靠的、堅固的和可伸縮的運行環(huán)境。另外,系統(tǒng)提供的服務使應用的開發(fā)、配置也變得很簡單。ASP+的核心概念是HTTP
Runtime、模塊管道和請求處理器。HTTP
Runtime是基于底層結構建立的高性能HTTP處理運行環(huán)境;模塊管道和請求處理器則增強了系統(tǒng)的靈活性和可擴展性。另外,ASP+還對ASP中的三種Web應用狀態(tài)管理功能進行了增強,并提供了緩存服務。在ASP+編程模型之上,還有以下兩種更高級的編程模型:
● ASP+ Web Forms
Web
Forms的開發(fā)風格類似VB窗體的快速應用開發(fā)。Web
Forms支持傳統(tǒng)的ASP語法:混合HTML內容和腳本代碼,但它也提供了一個結構化的方法,可以將應用代碼和用戶界面內容分離。新引入的Web
Forms控件提供了一個機制,即可以將公共用戶界面內容打包。這樣,我們可以使用類似VB的工具,以所見即所得的方式完成Web頁面布局開發(fā)。使用控件的一個重要優(yōu)點是讓程序能自適應客戶端的特點,這樣,相同的頁面就能適應多種不同的客戶端平臺,包括低端瀏覽器的HTML3.2和IE5.0的動態(tài)HTML。
代碼和內容的分離使得ASP+頁面可動態(tài)編譯成可管理的類,從而使性能有很大的提高。
● ASP+ Web
Services
ASP+ Web Services編程模型的主要優(yōu)點是簡化了Web
Services的開發(fā),同時,其編程模型也非常類似人們已熟悉的ASP或VB開發(fā)。
開發(fā)者用ASP+建立Web服務的方法很簡單,通過編寫一個擴展名為.ASMX的文件,并且將其配置成Web應用的一部分即可。ASMX文件要么包含一個對已定義的可管理類的引用,要么本身有一個類定義,且類是從ASP+提供的Web
Services類中導出來的。
目前,微軟正在積極地實施它的.Net戰(zhàn)略,及早地了解有關技術細節(jié),將會有助于我們開發(fā)出更好的應用產品。
- 1EIP 相關資源
- 2[理論] 信息管理的四種模式:從獨裁走向民主(AMT 石家莊OA信息化研究小組)
- 3源天軟件為特優(yōu)仕照明實施協(xié)同辦公管理系統(tǒng)
- 4關于資料收集的一些心得(by AMT 羅贊)
- 5知識庫建設應規(guī)避的5點具體誤區(qū)
- 6Sun拒入“WS-I” 不想跟微軟IBM玩游戲
- 7資本的冬天是協(xié)同軟件行業(yè)的春天
- 8ITToolBox KM(by AMT整理)
- 9炎黃盈動AWS石家莊OA信息化應用套件
- 10XML Web Service 安全性
- 11Accessing Server Variables From Within Web Services
- 12協(xié)同辦公OA軟件對系統(tǒng)登陸的安全設置
- 13石家莊OA信息化的基本XML和RDF技術(六):使用Versa的RDF查詢
- 14大規(guī)模定制時代,知識將會怎樣?(by AMT 夏敬華)
- 15SOAP技術與B2B應用集成--SOAP的型系統(tǒng)和數(shù)據(jù)編碼規(guī)則
- 16石家莊OA信息化與企業(yè)發(fā)展
- 17無SOAP的Web服務,第二部分
- 18在Web Service中使用ASP.net狀態(tài)保持
- 19泛普軟件如何實現(xiàn)知識庫雙機熱備
- 20走出石家莊OA信息化的迷思(BY AMT 夏敬華)
- 21xml and KM
- 22.NET會取代COM嗎?--準備Web服務的未來
- 23OA辦公系統(tǒng)的信息發(fā)布與管理門戶介紹
- 24源天榮獲“2008中國信息產業(yè)年度高成長性企業(yè)”稱號
- 252001年度“世界最受贊賞的知識型企業(yè)”排名揭曉
- 26解讀德魯克
- 27架構Web Service:為什么需要Web服務?
- 28Web服務準備:理解和使用Web服務托管技術
- 29組織學習的五個子系統(tǒng)
- 30如何讓知識員工忠字當頭?
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓