999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Web服務(wù)的構(gòu)建及其典型應(yīng)用

2014-04-29 00:44:03羅海濤
計算機時代 2014年11期
關(guān)鍵詞:應(yīng)用

羅海濤

摘 要: Web服務(wù)基于標準的數(shù)據(jù)格式和協(xié)議,如XML、SOAP和HTTP,不同平臺和操作系統(tǒng)的客戶和服務(wù)端可以基于同樣的協(xié)議,沒有障礙地通信,Web服務(wù)客戶端只需標識Web服務(wù)的位置及其可以調(diào)用的方法,就可以簡單地使用Web服務(wù)。微軟公司的.NET框架針對Web服務(wù)提供了廣泛的支持。因此研究了.NET環(huán)境下Web Services的構(gòu)建、處理流程,舉例說明了Web服務(wù)的典型應(yīng)用。

關(guān)鍵詞: .NET框架; Web服務(wù); 服務(wù)構(gòu)建; 應(yīng)用

中圖分類號:TP311.11 文獻標志碼:A 文章編號:1006-8228(2014)11-22-02

Construction and application research of Web Services

Luo Haitao

(School of Informatics, Guangdong University of Foreign Studies, Guangzhou, Guangdong 510420, China)

Abstract: Web Service is based on standard protocols such as XML, SOAP and HTTP. Client and server with different OS can communicate freely based on the same protocols. The client simply identifies the location and method of Web Service when it uses the services. The .NET Framework of Microsoft Company provides wide support to Web Services. The construction and processing of Web Services under .NET Framework are analyzed. Typical examples of Web Services are proposed.

Key words: .NET framework; Web Services; service construction; application

0 引言

隨著Internet的發(fā)展和深入普及,基于Internet的Web應(yīng)用得到了快速發(fā)展。從早期使用HTML標記語言設(shè)計的靜態(tài)網(wǎng)頁,到使用CGI、ASP、JSP、PHP、ASP.NET開發(fā)設(shè)計的動態(tài)網(wǎng)站,實現(xiàn)的功能越來越復(fù)雜[5]。2002年微軟開發(fā)出了.NET框架(.NET Framework),提供了一種開發(fā)Web應(yīng)用程序,包括Web服務(wù)的全新模式,其底層用類實現(xiàn),是一種面向?qū)ο蟮膶崿F(xiàn)方法。十幾年來.NET框架幾經(jīng)發(fā)展,已可以在這個框架下利用VB.NET、C#、C++或JScript.NET等程序語言,進行WEB應(yīng)用程序設(shè)計(即通常說的動態(tài)網(wǎng)頁/網(wǎng)站)、Web服務(wù)應(yīng)用、Windows應(yīng)用程序設(shè)計、控制臺應(yīng)用程序設(shè)計等。

Web服務(wù)又叫XML Web Service,Web服務(wù)基于“簡單對象訪問協(xié)議”(Simple Object Access Protocol,簡稱SOAP)。Web服務(wù)提供在一個使用標準協(xié)議(如HTTP、XML、XSD、SOAP和WSDL)的松耦合環(huán)境中交換信息的能力,先由服務(wù)開發(fā)方開發(fā),并發(fā)布能夠完成特別應(yīng)用需求的在線應(yīng)用服務(wù),其他用戶或者應(yīng)用軟件能夠通過Internet來訪問并使用這項在線應(yīng)用服務(wù)。XML Web Services基礎(chǔ)結(jié)構(gòu)建立在基于XML的消息通信之上,這些消息遵循服務(wù)開發(fā)方根據(jù)具體服務(wù)發(fā)布的服務(wù)說明。服務(wù)說明是用名為WSDL(Web 服務(wù)描述語言)的XML語法編寫的XML文檔,它定義XML Web Services要求的消息格式,起協(xié)議的作用,它定義XML Web Services的行為和功能,并指示潛在客戶端如何與該服務(wù)進行交互。Web服務(wù)返回給客戶端的是數(shù)據(jù),而不是網(wǎng)頁。Web服務(wù)技術(shù)規(guī)范仍然在飛速發(fā)展中,各種新的Web服務(wù)技術(shù)規(guī)范和定義層出不窮。各個主要的軟件平臺廠商如微軟、IBM和SUN等公司也都不遺余力地推出各類操作系統(tǒng)和開發(fā)平臺對Web服務(wù)提供廣泛的支持。微軟公司的.NET平臺針對Web服務(wù)提供了廣泛的支持,是一個比較適合于構(gòu)建Web服務(wù)的平臺。

1 Web Services的構(gòu)建及處理流程

在.NET框架下,構(gòu)建Web Services大致有三個步驟。第一步,建立一個包含Web Services的擴展名為.asmx的Web服務(wù)文件,文件中定義一個類,在類中定義提供Web Services的方法或者函數(shù)。第二步,用.NET框架提供的工具wsdl對Web服務(wù)文件進行處理,處理時可以指定名稱空間(Namespace)的名字,生成SOAP代理類文件;文件中定義一個剛剛處理時指定名字的Namespace,在Namespace中定義類,類中定義提供Web服務(wù)的相應(yīng)的方法和函數(shù);如果前面的.asmx的Web服務(wù)文件指定語言為VB,則代理類為“.vb”類型文件,如果.asmx的Web服務(wù)文件指定語言為C#,則代理類為“.cs”類型文件。第三步,用vbc(對“.vb”文件)或者csc(對“.cs”文件)工具對上一步生成的SOAP代理類文件進行編譯,生成“.dll”文件,再把它部署到應(yīng)用程序根目錄下的bin文件夾。之后,客戶就可以通過該代理類調(diào)用這個Web服務(wù)。如果是Visual Studio.NET,這些工作是自動完成的,基本的步驟一樣。

客戶端通過代理類訪問服務(wù)端的Web服務(wù),代理類使用XML序列化技術(shù)把請求序列化成SOAP消息。代理類發(fā)出的服務(wù)請求可以采用HTTP GET、HTTP POST或者HTTP SOAP協(xié)議。當(dāng)客戶端請求服務(wù)端的Web服務(wù)時,服務(wù)器的IIS把被請求的.asmx文件映射到Aspnet_isapi.dll,后者則通過請求處理管道把請求轉(zhuǎn)發(fā)給ASP.NET工作進程,之后.NET框架就會通過HttpRuntime來處理這個請求。首先,該請求被送入HttpApplication實例,進入HttpModule,HttpModule完成身份驗證、授權(quán)和緩沖等工作;然后HttpRuntime核實.asmx文件,注冊到WebServiceHandlerFactory Handler并創(chuàng)建一個HTTP handler,它是WebServiceHandler的對象實例,負責(zé)處理Web服務(wù)請求。HTTP handler再把SOAP消息翻譯成Web方法調(diào)用。

2 Web Services典型應(yīng)用

⑴ Web服務(wù)返回DataSet對象[4]

假設(shè)一個搜索引擎專門從各網(wǎng)站搜索體育消息,對各類消息分門別類,例如足球消息、籃球消息、田徑消息等等,保存在數(shù)據(jù)庫sportsnews.mdb的表“sports_news”中,每類消息設(shè)置了相應(yīng)的關(guān)鍵字,以便查詢。該搜索引擎向Internet用戶提供免費查詢各類消息的服務(wù),客戶端界面如圖1所示。

圖1 體育新聞搜索服務(wù)的客戶端界面

服務(wù)器端的.asmx服務(wù)文件主要代碼如下:

Public Class SportsNews :Inherits WebService

Public Function SearchNews(NewsType As

string) As DataSet

Dim connection1 As New OleDbConnection("Provider=

Microsoft.Jet.OLEDB.4.0; Data Source=" & Server

.Mappath("sportsnews.mdb"))

Dim StrSql As String

StrSql="Select * From sportsnews Where newsType

='" & NewsType & "'"

Dim adptr As New OleDbDataAdapter(StrSql, connection1)

Dim ds1 As New DataSet()

adptr.Fill(ds1, "sportsnews")

Return(ds1)

End Function

End Class

該服務(wù)文件由wsdl工具轉(zhuǎn)換為“.vb“文件,轉(zhuǎn)換時指定名稱空間myService1,則轉(zhuǎn)換后的“.vb“文件自動產(chǎn)生一行代碼“Namespace myService1”,后面的代碼則根據(jù).asmx文件規(guī)定,生成相應(yīng)的類及相關(guān)的服務(wù)方法和函數(shù)。之后用vbc工具進行編譯,生成dll文件,并將該文件部署到應(yīng)用程序根目錄的bin文件夾即可。

客戶端通過代理類調(diào)用Web服務(wù),主要代碼如下:

Sub Enter_Click(Sender As Object, E As EventArgs)

Dim ds As New DataSet()

Dim mn As New myNews()

ds=mn.SelectNews(keyword.Text)

MyDataGrid.DataSource=DS.Tables(0).DefaultView

MyDataGrid.DataBind()

End Sub

以下僅列出html部分中的表單form部分:

請輸入體育新聞關(guān)鍵字

runat="server"/>

"#BCBCBC" Width="100%" runat="server"/>

⑵ 利用SoapHeader傳遞用戶憑據(jù)[3]

如果是有償服務(wù),服務(wù)器端可以要求客戶端提供憑據(jù),憑據(jù)驗證通過后才提供服務(wù)。下面的例子假設(shè)Web服務(wù)提供了求兩個整數(shù)的平方和計算,返回整數(shù),客戶端可以通過SoapHeader傳遞用戶名和密碼,并假設(shè)用戶名為Luo,密碼為123才能通過驗證,實際應(yīng)用中可以根據(jù)客戶端傳遞的用戶憑據(jù)到數(shù)據(jù)庫中查找,服務(wù)程序文件如下所示:

namespace theNamespace {

public class theHeader : SoapHeader {

public string Username, Password;

}

public class theService {

public theHeader sHeader;

[WebMethod][SoapHeader("sHeader")]

public int theSquare(int a, int b) {

if (sHeader==null) return -1;

string usr=sHeader.Username;

string pwd=sHeader.Password;

if (AuthenticateUser(usr, pwd)) return a*a+b*b;

else return -1;

}

private bool AuthenticateUser(string usr, string pwd) {

if ((usr=="Luo")&&(pwd=="123")) return true;

return false;

}

}

}

客戶端程序主要代碼如下:

theService s1=new theService();

theHeader myHeader=new theHeader();

myHeader.Username="Luo";

myHeader.Password="123";

s1.theHeaderValue=myHeader;

Response.Write(s1.theSquare(3,4));

除了上述兩種典型的方法實現(xiàn)Web服務(wù)應(yīng)用外,還有很多其他方法應(yīng)用Web服務(wù)。例如,利用WSE技術(shù)傳遞UsernameToken令牌以及加密SOAP消息,這是一種更加安全的應(yīng)用方法。Web Services Enhancements(WSE)是微軟公司發(fā)布的一種針對Web Service的增強技術(shù),通過WSE技術(shù)可以把安全、路由、附件等技術(shù)同Web Service完美地結(jié)合在一起,通過在SOAP消息中添加一個或多個安全性憑據(jù),對SOAP消息進行數(shù)字簽名和加密SOAP消息來實現(xiàn)SOAP消息級別的安全性[1]。

而異步Web服務(wù)調(diào)用也是一種可以考慮的選擇。在異步調(diào)用中,向Web服務(wù)發(fā)出請求后,客戶端不必等待請求結(jié)束,可以繼續(xù)執(zhí)行其他任務(wù)。服務(wù)器端不用特別的設(shè)置,就像普通Web服務(wù)一樣即可。.NET Framework的異步調(diào)用方法的設(shè)計模式指定每個同步方法都有兩個異步方法。對于每個同步方法,都有一個Begin異步方法和一個End異步方法[2]。

3 結(jié)束語

Web服務(wù)因為客戶端和服務(wù)器端通信消息采用XML文本格式,便于不同平臺系統(tǒng)之間的通信,因此在一個基于Web服務(wù)的模型中,客戶不需要考慮服務(wù)器端使用的語言和操作系統(tǒng),不同平臺和操作系統(tǒng)的客戶端和服務(wù)器端可以基于同樣的協(xié)議,沒有障礙地通信。客戶端只需標識Web服務(wù)的位置及其可以調(diào)用的方法,就可以簡單地使用Web服務(wù)。微軟公司的.NET框架針對Web服務(wù)提供了廣泛的支持。為了提高服務(wù)的安全性,微軟的.NET框架同時提供了WSE技術(shù)(Web Services Enhancements)。WSE提供對Web服務(wù)技術(shù)規(guī)范的支持,包括WS-Routing、WS-Security和WS-Attachment。總體而言,其.NET框架是實現(xiàn)Web服務(wù)的簡單而且便利的平臺。本文舉例說明了.NET環(huán)境下,Web服務(wù)的構(gòu)建及其典型的應(yīng)用,以供讀者參考。

參考文獻:

[1] Peter Thorsteinson,G. Gnana Arun Ganesh著,梁志敏,蔡建譯,

.NET安全性與密碼術(shù)[M].清華大學(xué)出版社,2004.

[2] J.D. Meier, Srinath Vasireddy, Ashish Babbar, Alex Mackman,

Improving Web Services Performance. http://msdn2.microsoft.com/en-us/library/ms998562.aspx,2004.

[3] 石志國等.ASP.NET應(yīng)用教程[M].清華大學(xué)出版社,2005.

[4] 尚俊杰.ASP.NET程序設(shè)計[M].清華大學(xué)出版社,2004.

[5] 崔淼等.ASP.NET程序設(shè)計教程(C#版)(第2版)[M].機械工業(yè)出版社,

2011.

猜你喜歡
應(yīng)用
配網(wǎng)自動化技術(shù)的應(yīng)用探討
科技視界(2016年21期)2016-10-17 19:54:47
帶壓堵漏技術(shù)在檢修中的應(yīng)用
科技視界(2016年21期)2016-10-17 19:54:05
行列式的性質(zhì)及若干應(yīng)用
科技視界(2016年21期)2016-10-17 18:46:46
癌癥擴散和治療研究中的微分方程模型
科技視界(2016年21期)2016-10-17 18:37:58
紅外線測溫儀在汽車診斷中的應(yīng)用
科技視界(2016年21期)2016-10-17 18:28:05
多媒體技術(shù)在小學(xué)語文教學(xué)中的應(yīng)用研究
考試周刊(2016年76期)2016-10-09 08:45:44
微課的翻轉(zhuǎn)課堂在英語教學(xué)中的應(yīng)用研究
分析膜技術(shù)及其在電廠水處理中的應(yīng)用
科技視界(2016年20期)2016-09-29 14:22:00
GM(1,1)白化微分優(yōu)化方程預(yù)測模型建模過程應(yīng)用分析
科技視界(2016年20期)2016-09-29 12:03:12
煤礦井下坑道鉆機人機工程學(xué)應(yīng)用分析
科技視界(2016年20期)2016-09-29 11:47:01
主站蜘蛛池模板: 在线观看网站国产| 免费无码AV片在线观看中文| 色屁屁一区二区三区视频国产| 国精品91人妻无码一区二区三区| 99久久精品久久久久久婷婷| 欧美国产精品不卡在线观看| 亚洲一区二区日韩欧美gif| 免费国产高清视频| 在线不卡免费视频| 精品国产成人av免费| 婷婷六月综合| 中文字幕啪啪| 白浆视频在线观看| 亚洲欧洲天堂色AV| 日本精品一在线观看视频| 欧美人与性动交a欧美精品| 欧美一级高清免费a| 日韩欧美国产区| 亚洲成在人线av品善网好看| 91亚瑟视频| 欧美专区日韩专区| 精品视频在线观看你懂的一区| a色毛片免费视频| 亚洲天堂成人在线观看| 亚洲视频在线青青| 国产精品久久久久久搜索| 久久精品人人做人人爽| 丁香婷婷激情综合激情| 亚洲精选高清无码| 欧美专区在线观看| 欧美成a人片在线观看| 欧美日韩国产精品综合| 中文字幕乱码中文乱码51精品| 国产精品99久久久久久董美香| 99re精彩视频| 91视频国产高清| 亚洲精品视频免费看| jizz在线观看| 国产青青草视频| 91福利在线看| 亚洲精品日产精品乱码不卡| 中文字幕在线永久在线视频2020| 久久精品国产999大香线焦| 免费国产在线精品一区| 成人噜噜噜视频在线观看| igao国产精品| 久久大香伊蕉在人线观看热2| 丰满人妻被猛烈进入无码| 日韩欧美综合在线制服| 亚洲精品无码av中文字幕| 日韩性网站| 无码精品国产VA在线观看DVD| 国产精品视频a| 国产一区二区三区日韩精品| 亚洲欧洲日产国码无码av喷潮| 久久精品亚洲中文字幕乱码| 久久久久国产一级毛片高清板| 国产精品成| 国产网站一区二区三区| 国产无码精品在线| 亚洲中文字幕在线观看| 国产女人水多毛片18| 综合久久五月天| 99这里精品| 亚洲成aⅴ人在线观看| 欧美区一区二区三| 夜夜操国产| 久久a级片| 亚洲中文在线视频| 国产va在线| 精品国产www| 中文字幕1区2区| 亚洲天堂久久新| 91综合色区亚洲熟妇p| 国内精品视频区在线2021| 中国一级毛片免费观看| 伊人婷婷色香五月综合缴缴情| 成年人福利视频| 91精品国产一区| 无码中字出轨中文人妻中文中| 欧美日韩中文字幕二区三区| 亚洲国产av无码综合原创国产|