亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

.NET框架與網絡服務(上)

2019-11-18 21:15:25
字體:
來源:轉載
供稿:網友



  網絡服務(Web Service)是基于網絡的分布式應用程序的基本構造模塊,而這些程序是以平臺、對象模板和多語言方式構建的。


  網絡服務是建立在象HTTP和xml之類的開放的Internet 標準之上的,并且由此形成了可編程網絡理念的基礎。


    


  圖1 網絡服務應用模型


  這篇文章詳細講述網絡服務以及為其提供支持的技術,這些技術能確保服務被集成到應用程序里去。同時本文將講述新的Microsoft.NET框架及其對生成和使用網絡服務的支持。


  現在開發中最緊迫的問題是應用程序的集成化:運行在不同操作系統上的不同的應用程序,通常是由不同編程語言對象模板建立的,獲取這些程序然后把它們轉化為易于使用的網絡應用程序。建立在象HTTP和XML之類開放的網絡標準之上的網絡服務接受了這項挑戰。


  但是只支持標準協議是不夠的,我們必須有途徑來生成、部署、擴展和維護這些網絡服務,這正是Microsoft.NET框架要解決的問題。


    


  圖2 Microsoft.NET Framework體系結構


  下面筆者將介紹網絡服務及Microsft.NET框架的組件,包括通用運行語言(Common Language Runtime)、服務框架和用于建立、集成網絡服務的程序模板。


  ■網絡服務一覽


  通常說來,網絡服務只是一個作為服務發行的簡單應用程序。換句話說,它是可通過URL定位的自動將信息返回到需要它的客戶端那里的一種資源。網絡服務一個重要的特點是客戶不需要知道一種服務是怎樣實現的。在本文中,筆者將向你解釋網絡及網絡服務如何把基于組件技術的最好的方面結合在一起,并且介紹與網絡服務通信所需的基本框架。


  同組件一樣,網絡服務提供“黑匣子”函數,它可以被多次用而不用關心此服務是怎樣實現的。網絡服務還提供被稱為契約的精確定義的接口,此接口描繪了所提供的服務。開發人員可以將遠程服務、本地服務和定制代碼組合在一起集成到應用程序中。例如,某公司可以使用如下服務組建一個在線商店:微軟護照(Passport)服務用來驗證用戶身份、第三方個人化服務用來使網頁匹配每一個用戶的參數、信用卡處理服務、銷售稅服務、對每個運輸公司的包裹跟蹤服務,鏈接公司內部庫存管理程序的內部目錄服務以及少量定制代碼,以使他們的商店能脫穎而出。圖1顯示的模型說明了為生成分布式網絡應用程序應怎樣鏈接網絡服務。


  然而,網絡服務與現在的組件技術并不相同,它不使用需要在服務器和客戶機有明確的、同類型基本構架的具體對象模型協議,例如DCOM、RMI或IIOP。盡管與具體組件技術緊密結合的實現在一個受控的環境中能很好地被接受,但它們在網絡環境中變得不切實際。因為一個集成商業程序的參與者會發生變化,隨著時間的推移,技術也在變化,所以在所有參與者間確保一個單一的、統一的體系架構就變得十分困難。網絡服務采取了另外一種途徑,它使用普便存在的網絡協議和數據格式進行通信,如HTTP和XML。支持這些網絡標準的任何系統都支持網絡服務。


  而且,網絡服務契約描述的是以術語報文形式提供的服務,這些服務是由網絡服務生成和接受的,而并不描述服務是如何實現的。通過把重點放在報文上,網絡服務模板對語言、平臺和對象模板變得完全透明。這樣,用任何一套編程語言、對象模型和平臺的完全特性集,都可實現網絡服務。網絡服務可以在任何平臺上,被任何應用程序所使用。只要用于解釋服務容量、報文序列和所期望協議的契約得到認同,那么所實現的網絡服務及網絡服務用戶就可相互不同,而不會影響會話另一端的應用程序。


  網絡服務模板對最小體系架構的要求很低,目的是確保網絡服務在使用任何技術和編程語言的平臺上實現和訪問。對網絡服務互用性的解決可以只依靠網絡標準。然而,為了使應用程序更容易使用網絡服務,簡單地通過標準網絡協議訪問網絡服務是不夠的。當網絡服務和網絡服務使用者依靠標準的方式(如XML)表示數據和命令、表示網絡服務契約、算出網絡服務所提供的容量時,網絡服務才會更加容易使用。


  XML是定義一個標準的、可擴展的用于提供命令和典型數據的語言的明智選擇。雖然為表示命令和典型數據可以定義使用其它技巧(比如編碼為一種查詢字符串)的規則,但XML被專門設計為描述數據的標準元語言。簡單對象存取協議(SOAP)是以一種可擴展的方式使用XML表示數據和命令的工業標準。網絡服務可選擇用SOAP決定報文的格式。


  XML是網絡服務契約的一種常用技術。服務契約語言(SCL)是記錄網絡服務契約的XML語法。由于SCL是基于XML的,所以對開發者和開發工具來說,它更容易生成并解釋契約。


    


  圖3 Services Framework類庫


  Disco規范為服務提供者發布網絡服務契約和相應的機制描述了一個標準方式,這將使開發者或開發工具可找到契約文獻。


  象SOAP、SCL和Disco這樣的標準有助于開發者,因為它們不需要明白和實現所使用的每一個網絡服務的訪問方式。支持這些標準的更好的、已充分測試的、高性能的體系架構將由開發平臺提供,這會大大簡化整個開發過程。


  ■Microsoft.NET Framework


  Microsoft.NET框架的目的是使你更容易建立網絡應用程序和網絡服務。圖2顯示了Microsoft.NET框架的體系結構。建立在操作系統最上層的服務,是管理運行代碼需求的Common Language Runtime,這些代碼可以用任何現代編程語言所編寫。Runtime提供了許多服務,這些服務有助于簡化代碼開發和應用程序的開發,同時也將提高應用程序的可靠性。.NET Framework包括一套可被開發者用于任何編程語言的類庫。在此之上是許多應用程序模板,這些模板為開發網絡站點和網絡服務提供了高級組件和服務,下面筆者將逐層描述。


  ■Common Language Runtime


  運行語言(Runtime)可以調用并運行任何編程語言所寫的代碼。以運行為目標的代碼被稱為受控(Managed)代碼,受控代碼只是意味著在內部可執行代碼與自身代碼存在已經定義好的合作契約。對于生成對象、調用方法等這樣的任務,被委托給了運行語言,這使得運行語言能為可執行代碼增加額外的服務。


  運行語言具有交叉語言集成、自描述組件、簡單配制、版本化以及集成安全服務等特點。


  運行語言使用一種能表達大部分現代編程語言語義的通用類型系統,該通用類型系統定義了一套標準類型及生成新標準的規則。運行語言知道怎樣生成、執行這些類型。編譯器和解釋器使用運行語言服務來定義類型、管理對象、進行方法調用。


  類型系統的主要設計目的是使多種語言能深度集成。用一種語言所寫的代碼能繼承用另一種語言所寫的類,用一種語言所寫的代碼拋出的異常能被用另一種語言寫的代碼所捕獲,象調試之類的操作會在完全封閉下進行,而不用考慮代碼編寫所用的語言。這就意味著編寫可重用類庫的開發者,不再需要為每一種編程語言或編譯器生成一個版本,并且使用類庫的開發者也將不再受到他們所使用的編程語言開發庫的限制。


  自描述組件簡化了開發和配制,并提高了系統的可靠性。許多由運行語言提供的服務是由元數據及用于補充可執行代碼的信息所驅動。因為所有的信息都儲存在一起,只有可執行的代碼才被稱為自描述組件。


  自描述組件的一個主要優點是,使用它們并不需要其它文件。類的定義不需要單獨的頭文件;通過檢查元數據對類的定義可以從組件自身獲得??缯Z言或過程邊界訪問組件并不需要各自的IDL文件、類型文件或PRoxy/stubs;所必需的信息已存在于元數據之中。最主要的是,由于元數據是在編譯過程中由源代碼生成,并與可執行代碼儲存在一起,因此,它將永遠和可執行部分同步。


  除了改善對單個組件的配置,Microsft .NET框架定義了一個應用程序配置模板,以解決定制應用程序安裝和DLL版本化(通常被稱為“DLL Hell”)這一復雜過程的問題,運行語言提供了支持這個模板的服務。


  Microsft.NET框架引入了組合體的概念。一個組合體是一組資源和類型,并包括有關這些資源和類型的元數據,也就是被作為一個單元配置的。元數據被稱為組合體的名單,它包含象類型和資源表之類能被組合體外看得見的信息,這個名單也包括有關從屬關系之類的信息,例如組合體建立時的版本號。開發人員可以指定版本策略,以指示運行語言是否裝入系統上已安裝的依賴于組合體的最新版本,裝入一指定版本,或在編譯時使用的版本。


  某軟件組件的多個拷貝可以存在于同樣的操作系統上,然而,通常只有其中的一個拷貝能被操作系統注冊、調入內存并執行。對系統來說,定位和調入內存的策略是全局性的。.NET Framework Common Language Runtime增加了所必須的體系架構以支持管理組件定位和調入的每個應用程序策略,這通常被稱為并行配置。


  組合體可以被一個應用程序私有,或被多個應用程序共享。一個組合體的多個版本可以同時配置在同一臺機器上。應用程序的配置信息定義了應到何處去查找組合體,這樣,Runtime就能為同時運行的兩個不同的應用程序裝入到同一組合體的不同版本中,消除了由組件版本的不兼容性引起的問題,提高了系統整體的穩定性。如果必要,管理員可以為配置時的組合體增加配置信息。


  因為組合體是自描述的,所以并不需要在系統上進行注冊。應用程序的配置簡單到了只需將文件拷貝到目錄中即可(如果為了使應用程序能夠運行,必須安裝未經組織過的組件的話,情況會稍微復雜一點)。配置信息保存在可被任何文本編輯器編輯的XML文件中。


  最后,運行語言也提供完整的、普遍深入的安全服務,以確保未經授權的用戶不能訪問機器上的資源,并且代碼不會執行未經允許的動作。這就提高了系統整體的安全性和可靠性。由于運行語言用于裝入代碼、生成對象、執行方法調用,所以當受控代碼裝入內存并執行時,運行語言能進行安全檢查,從而強化安全策略。


  Microsft.NET框架不僅規定代碼訪問安全機制,還規定基于角色的安全機制。通過代碼訪問安全機制,開發人員能為應用程序指定完成工作所必需的權限。例如,程序或許需要寫文件或訪問環境變量的權力。這類信息和有關代碼標志的信息一起存儲在配置級上。當代碼裝入內存并執行方法調用時,運行語言將驗證是否能給予代碼所要求的權限。如果不能,將記錄一條安全沖突信息。給予權限的策略,被稱之為信任策略,是由系統管理員建立的,并且是建立在關于代碼的證據基礎之上。比如:代碼是誰發布的,是從什么地方獲得的,以及在組合體中找到的代碼標志和它要求的權限。開發人員可以指定他們具體的權限,以防止其它人惡意使用他們的代碼。如果所需要的權限依賴直到運行時刻才會知道的信息,那么就可寫入綱領性的安全檢查。


  除了代碼訪問安全機制,運行語言還支持基于角色的安全機制?;诮巧陌踩珯C制建立同代碼訪問安全機制一樣的權限模板,只是這些權限是建立在用戶的身份之上,而不是建立在代碼的標志之上。角色表明了用戶所屬的類,并且可以在開發和配置階段定義。給予權限的策略被分配到每個預定義的角色。在運行時刻,用戶的身份被確定,代碼將代表這個身份運行。運行語言決定用戶是哪個角色的成員,然后給予基于這個角色的權限。


  在查看Microsft.NET框架的可編程模板前,先看一下它所提供的服務。


  ■服務框架


  正如我們從圖2所看到的那樣,在Common Language Runtime之上是服務框架(Services Framework),此框架提供能被任何現代編程語言所調用的類。所有的類都遵循一套命名和設計方針,從而大大減小了開發人員學習過程中的難度。


  圖3顯示了服務框架中的一些主要類庫??蚣馨ㄒ惶组_發人員希望在標準語言庫中存在的基類庫,例如:集合、輸入/輸出、字符串及數據類。另外,基類庫提供訪問操作系統服務如圖畫、網絡、線程、全球化和加密的類。服務框架也包括數據訪問類庫及開發工具,如調試和剖析服務等。(譯: 金志立)


    
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩女在线观看| 欧美成人免费大片| 91久久综合亚洲鲁鲁五月天| 日韩一中文字幕| 久久99久国产精品黄毛片入口| 亚洲精品一区二区网址| 国产精品 欧美在线| 尤物九九久久国产精品的特点| 国产三级精品网站| 久久久久久国产精品| 777777777亚洲妇女| 青青草成人在线| 欧美激情18p| 精品国产乱码久久久久久虫虫漫画| 久久人人爽人人爽人人片av高请| 欧洲一区二区视频| 亚洲欧美日韩精品久久奇米色影视| 日韩欧美国产中文字幕| 91热精品视频| 8050国产精品久久久久久| 欧美极品少妇与黑人| 欧美大片在线看免费观看| 91地址最新发布| 黑人巨大精品欧美一区二区三区| 亚洲免费av网址| 亚洲精品国产综合久久| 欧美成人精品三级在线观看| 欧美高跟鞋交xxxxhd| 色爱精品视频一区| 亚洲va男人天堂| 国产福利精品在线| 日韩有码视频在线| 国外日韩电影在线观看| 亚洲综合av影视| 国内精品久久影院| 中文字幕亚洲欧美日韩在线不卡| 日韩国产一区三区| 中文字幕最新精品| 日韩在线观看免费| 国产视频亚洲精品| 亚洲精品综合久久中文字幕| 久久6精品影院| 亚洲午夜精品久久久久久久久久久久| 亚洲级视频在线观看免费1级| 欧美午夜xxx| 国产一区二区三区视频免费| 国产亚洲一级高清| 欧美尺度大的性做爰视频| 亚洲性视频网站| 亚洲精品国偷自产在线99热| 日韩免费观看av| 欧美在线视频免费观看| 亚洲精品国产精品国自产观看浪潮| 亚洲精品久久7777777| 国产精品99久久久久久www| 91在线精品视频| 日韩最新免费不卡| 欧美老女人xx| 国产美女精品免费电影| 插插插亚洲综合网| 亚洲一级黄色片| 久久精品99久久香蕉国产色戒| 在线播放日韩精品| 欧美激情2020午夜免费观看| 国产成人精品久久二区二区| 国产日韩亚洲欧美| 欧美影院成年免费版| 中文字幕视频在线免费欧美日韩综合在线看| 欧美激情va永久在线播放| 青青草99啪国产免费| 日韩在线观看免费全集电视剧网站| 亚洲一区二区三区sesese| 日韩精品在线看| www.久久撸.com| 亚洲精品在线视频| 久久久91精品国产一区不卡| 国产精品视频免费在线观看| 欧美国产激情18| 亚洲电影成人av99爱色| xvideos亚洲人网站| 国产成人短视频| 亚洲小视频在线观看| 久久亚洲影音av资源网| 亚洲欧美日韩直播| 伊人伊成久久人综合网站| 亚洲精品天天看| 亚洲国产欧美精品| 国产精品中文字幕在线观看| 97在线视频一区| 最新的欧美黄色| 中文字幕亚洲欧美日韩高清| 欧美午夜片在线免费观看| 日韩精品在线播放| 亚洲性线免费观看视频成熟| 九九热精品视频国产| 亚洲天堂第二页| 亚洲国产成人精品久久| 性欧美办公室18xxxxhd| 欧美人成在线视频| 69av视频在线播放| 久久天天躁夜夜躁狠狠躁2022| 久久亚洲春色中文字幕| 亚洲人成电影在线观看天堂色| 欧美亚洲日本网站| 一本大道久久加勒比香蕉| 久久久精品日本| 日本精品久久久久影院| 亚洲精品在线视频| 日韩中文字幕在线观看| 啊v视频在线一区二区三区| 欧美综合在线第二页| 欧美精品亚州精品| 91国偷自产一区二区三区的观看方式| 亚洲自拍欧美另类| 亚洲人成77777在线观看网| 国产精品久久久久99| 日韩不卡中文字幕| 欧美激情视频三区| 日韩一区二区欧美| 久久99精品久久久久久琪琪| 欧美成人中文字幕在线| 亚洲欧美制服第一页| 久久精品中文字幕| 96精品视频在线| 中文字幕精品国产| 久久天堂av综合合色| 91精品国产高清自在线看超| 国产免费一区视频观看免费| 久久久久久久久久av| 欧美性猛交xxxx黑人| 丝袜亚洲欧美日韩综合| 国产91热爆ts人妖在线| 668精品在线视频| 欧美日韩国产成人| 亚洲精品日韩丝袜精品| 国产精品久久久久9999| 国产91精品高潮白浆喷水| 国内精品美女av在线播放| 国产精品黄色av| 一本色道久久88综合亚洲精品ⅰ| 热久久免费视频精品| 福利一区视频在线观看| 成人午夜高潮视频| 亚洲成人激情视频| 精品亚洲永久免费精品| 久久精品国产v日韩v亚洲| 国产情人节一区| 国外视频精品毛片| 国产成人精品日本亚洲专区61| 欧美尤物巨大精品爽| 国产精品视频久久久久| 久久久久久久久久久久av| 亚洲毛片在线观看.| 欧美有码在线观看视频| 日韩一区二区三区xxxx| 亚洲综合最新在线| 久久久亚洲福利精品午夜| 亚洲在线观看视频网站| 国产suv精品一区二区| 国产成人综合精品在线| 精品中文字幕久久久久久| 久久久91精品国产一区不卡| 国产va免费精品高清在线| 91精品国产91久久久久久吃药|