摘 要:目前Internet發(fā)展迅速,以Web作為基礎的各種應用逐漸應用于各個行業(yè)領域。ASP.NET技術作是Microsoft.Net的一個重要組成部分,有著簡便易用的特點,因而在Web服務當中的服務端開發(fā)以及客戶端開發(fā)得到廣泛的應用。
關鍵詞:ASP.NET;Web服務;開發(fā);技術
中圖分類號:TP393.09
隨著電子商務以及Web應用的飛速發(fā)展,應用系統(tǒng)使用的開發(fā)語言、平臺、數(shù)據(jù)格式以及通信協(xié)議越來越多元化,如何有效實現(xiàn)系統(tǒng)集成可以說是企業(yè)實現(xiàn)應用集成面臨的重要難題。近年來Web服務技術的發(fā)展提供有效解決的方案,主要功能是在各種平臺的基礎上來構筑一個通用技術層,從而實現(xiàn)不同平臺間的應用集成以及連接。
1 ASP.NET技術概述
ASP.NET技術是Microsoft.Net的一個組成部分,同時在Web應用的開發(fā)過程當中發(fā)揮著非常重要的影響。該技術建立于CLR的基礎之上,從而可以充分發(fā)揮出.Net Framework的各項功能[1]。借助于該技術而開發(fā)的程序可以實現(xiàn)類型安全、異??刂埔约皠討B(tài)編譯等方面的功能。除此之外,使用ASP.NET技術開發(fā)的程序可以實現(xiàn)多語言編寫等。在開發(fā)程序的過程當中,使用ASP.NET技術可以通過Web Form的模型來快捷方便地實現(xiàn)編程操作。該模型能夠通過底層系統(tǒng)來實現(xiàn)服務器以及客戶之間的交互,從而避免繁瑣的操作。除此之外,該模型還能夠改善狀態(tài)管理的功能,從而在不同頁面進行請求操作的時候,能夠保護頁面數(shù)據(jù)。通過ASP.NET技術可以支持不同服務器控件在Web開發(fā)當中的應用,例如說HML Servers Controls[2]。同時在編寫ASP.Net程序的時候,頁面的顯示部分以及控制邏輯的部分可以實現(xiàn)分離存儲,也就是分別存儲于.cs文件以及.aspx文件當中,分離儲存可以顯著提高Web程序維護的快捷性[3]。上述ASP.Net特點確保其可編程設計方法能夠面向對象,這樣一來就確保Web應用的開發(fā)更加簡單快捷。不過需要注意的是Web程序開發(fā)需要針對自身特點,來選擇設計開發(fā)的模型,從而最大限度發(fā)揮ASP.NET的優(yōu)點,最終獲得更理想的Web程序。
2 ASP.NET在Web服務中的應用
Web服務的本質是提供系列服務的編程單元,并且通過互聯(lián)網(wǎng)的標準讓它可以為其它的程序提供服務,并且被各種系統(tǒng)調(diào)用。使用ASP.Net來進行Web服務的級開發(fā)主要分成客戶端開發(fā)以及服務端開發(fā)這兩個部分。
2.1 客戶端開發(fā)的應用
客戶端開發(fā)主要包括Web服務調(diào)度的優(yōu)化以及降低Internet的數(shù)據(jù)傳輸量。為改善那些處理時間比較長的Web服務性能,需要借助于異步web服務,并且減少Internet冗余數(shù)據(jù)的發(fā)送,提高web服務的有效通信帶寬。
在Web服務的調(diào)度方面,Web服務使用同步RPC的調(diào)用來完成,也就是客戶端發(fā)送請求到Web服務端,Web服務端則執(zhí)行任務,并將結果發(fā)回到客戶端。要是Web服務馬上響應,就不會出現(xiàn)性能問題。不過要是通過Internet來調(diào)用Web服務,或者Web服務端耗費較長時間處理服務,客戶端的程序請求線程就一直占用,在這一條件下,使用同步Web服務就容易導致利用效率下降,甚至誘發(fā)事務性以及伸縮性的問題。因此為改善服務處理的時間問題,可以采取異步Web服務,讓客戶端程序的主線程及時返回,同時繼續(xù)執(zhí)行操作,從而改善應用程序性能以及系統(tǒng)伸縮性。
在控制Internet的數(shù)據(jù)傳輸這一方面,Web服務往往需要從數(shù)據(jù)庫來讀取數(shù)據(jù)并修改數(shù)據(jù),對于數(shù)據(jù)庫的修改而言,主要就兩種情況:數(shù)據(jù)添加,可以通過Web服務來添加行,而不涉及已有數(shù)據(jù);修改非連接數(shù)據(jù),將數(shù)據(jù)加載到客戶端應用,修改更新數(shù)據(jù)庫的記錄。數(shù)據(jù)添加可以通過多種方式來實現(xiàn),Web服務當中僅僅需要執(zhí)行INSERT的語句,就能夠實現(xiàn)數(shù)據(jù)添加步驟。對非連接數(shù)據(jù)的修改而言,則能夠借助于Data Set的對象完成,這些對象讓客戶端訪問本地數(shù)據(jù)庫,返回修改之后的Data Set來Web服務提交修改。
2.2 服務器開發(fā)的應用
Web服務當中的高速緩存可以說是緩沖器,能夠將應用程序使用頻繁那些數(shù)據(jù)保存在較快的容器內(nèi),例如OS內(nèi)存以及數(shù)據(jù)庫等。高速緩存在創(chuàng)建高可用性以及伸縮性Web站點的過程當中有著重要的作用。借助于高速緩存,能夠顯著改善Web服務性能,例如在內(nèi)存當中調(diào)用高速緩存創(chuàng)建數(shù)據(jù)結構,能夠提升Web服務性能,而無需為每個請求重建緩存數(shù)據(jù)源。
在輸出高速緩存方面,要求在指定時間將Web服務的輸出實現(xiàn)緩沖存儲。Web服務通過使用Web Method聲明的Cache Duration支持高速緩存輸出。使用這一屬性,可以設置高速緩存輸出的間隔為60秒,在60秒內(nèi)服務返回時間是首次服務調(diào)用之后返回需要的時間,亦即在首次調(diào)用Web服務時,輸出的結果存儲于輸出緩存當中,之后59秒的服務調(diào)用結果都是從輸出緩存讀取。輸出高速緩存的技術同Cache Duration的設置時限有聯(lián)系,還同服務輸入?yún)?shù)的變化有關。例如某個Web服務當中有輸入?yún)?shù)A以及B,A有兩種輸入的選擇即Al、A2,同樣B有兩種選擇B1、B2,因此輸入組合就是{Al,B1}、{A1,B1}、{A2,B1}以及{A2,B2}[4],那么高速緩存的設定期限之內(nèi),如果有同一Web服務的參數(shù)組合請求,輸出就從高速緩存當中返回。要是特殊參數(shù)組合缺乏輸出高速緩存,Web服務的請求就得到處理并將結果會返回到客戶端,產(chǎn)生Web服務的輸出則在輸出高速緩存當中緩存一定時間。
在數(shù)據(jù)高速緩存方面,Cache對象以及Application對象都能夠高速緩存Web服務常用數(shù)據(jù)。不過Cache對象在高速緩存數(shù)據(jù)操作過程中更加靈活,在此用Cache對象來分析數(shù)據(jù)高速緩存。.NET Framework的命名空間System.Web.Caching當中提供Cache類,同時Cache類的實例在程序域內(nèi)部創(chuàng)建,在Web服務中借助Context屬性來實現(xiàn)Cache對象的訪問[5]。Cache對象能夠為高速緩存數(shù)據(jù)提供簡便方法,通過使用鍵緩存重要的數(shù)據(jù),并通過使用鍵標來找回數(shù)據(jù)。這樣各種產(chǎn)品的種類信息就通過Data Set形式得到緩存,之后再檢索種類信息的時候只需要從Cache當中檢索,而無需訪問數(shù)據(jù)庫,這樣就改善Web服務性能。
綜上所述,Web服務解決創(chuàng)建重用應用程序的邏輯單元以及分布式Internet應用的問題,一方面有著簡單易用以及節(jié)約時間的優(yōu)點,另一方面可以通過Internet而發(fā)揮作用,因此影響日益廣泛。隨著ASP.Net技術的應用,Web服務的技術逐漸完善,相信會有更多的應用基于Web服務而實現(xiàn)。
參考文獻:
[1]王爭.基于ASP.NET技術的Web應用系統(tǒng)安全機制分析與設計[J].計算機科學,2013(02):305-308.
[2]蘇彥君.ASP.NET開發(fā)環(huán)境下Web系統(tǒng)安全解決方囊的實現(xiàn)[J].實驗室研究與探索,2012(03):112-115.
[3]盧守東.ASP.NET Web服務的事務處理技術友其應用模式[J].網(wǎng)絡與信息,2013(06):159-162.
[4]林弘之.WebServices原理與開發(fā)實務[M].北京:電子工業(yè)出版社,2013:110-112.
[5]彭江平.Microsoft.Net的Web Services及其實現(xiàn)[J].計算機系統(tǒng)應用,2013(04):125-126.
作者單位:宜賓職業(yè)技術學院,四川宜賓 644003