摘 要 本文提出一種新的通過軟件功能共享而實現軟件共享的方法,這種方法的優點是以遠程調用Web服務的形式實現軟件功能的共享,而不將軟件拷貝到客戶端,也減小了網絡上的一些資源冗余,也有利于共享現有Web服務集成新的系統。而且本文通過學生身份驗證模塊實例分析了這種新方法的有效性。
Web服務提供者就是Web服務的擁有者,它在服務代理處注冊以配置和發布服務,并耐心等待為其他服務和用戶提供自己的功能;Web服務請求者就是Web功能的使用者,它使用查找操作來從服務代理者檢索服務描述,然后與服務提供者綁定并調用Web服務或同它交互。 Web服務提供者相當于中介,它把一個Web服務請求者與合適的Web服務提供者聯系在一起,一般是UDDI,UDDI為服務請求者提供了動態查找Web服務的機制。 2、基于Web Services的軟件共享的實現方式 在軟件開發過程中,人們常常按照功能把軟件劃分為不同的模塊,以方便模塊功能的重組復用和修改升級。通過Web Services技術實現軟件共享,也需要首先對集成系統按功能劃分模塊;然后,創建Web服務來實現這些功能模塊;為了使Web服務可訪問,還需要發布服務描述(部署Web服務)以便其它模塊可以查找并調用它。這樣,以Web服務方式實現的軟件功能就可以被應用程序甚至其它Web服務共享。 應用程序或其它Web服務等服務請求者當需要調用Web服務時,首先檢索服務描述或在服務注冊中心查詢所要求的服務類型。當找到所需服務時,就可以使用服務描述與服務提供者進行綁定,并調用相應的服務。 微軟新推出的旗艦產品Visual Studio.NET是被稱為開發Web服務的首選工具,使用Visual Studio.NET可以非常方便地實現Web服務創建與調用。下面,將給出一個具體的基于Web Services技術實現軟件共享的實例。 3、軟件共享的應用舉例:學生身份驗證模塊的共享實現。 目前,在高校中有很多的軟件系統,例如:選課系統、成績查詢系統、網絡課程系統、圖書館系統、學生財務系統等。由于各個系統相互獨立,每一個系統都有一個學生身份驗證模塊,存在功能上的重復設計;另外,各個系統的相互獨立,存在著學生需要記憶不同系統的密碼。 鑒于以上情況及目前校園網絡的高度發達,我們完全可以用Web服務的方式來實現學生身份驗證模塊的共享。下面將介紹使用Visual Studio.NET環境用C#語言實現創建并調用學生身份驗證Web服務的過程。 1) Web服務的創建 學生身份驗證模塊有1個Web服務構成: public Boolean ValidUser(string userID,string Pwd) Web服務ValidUser用于驗證學生身份。已經在Sql Server數據庫StudentsInfo中建立了一個學生基本信息表Student,其中字段UserID、Pwd分別保存學生的用戶代碼及密碼。 下面將具體介紹Web服務的創建過程: a 運行Visual Studio.NET開發環境,新建"ASP.NET Web服務"類型的項目WSStudentLogin。 b Web服務的具體代碼實現。 //省略代碼…… public class Service1 : System.Web.Services.WebService { string ConStr="; ConnStr="DATABASE=StudentsInfo;SERVER=10.1.111.19;UID=sa;PWD=;"; //省略代碼…… [WebMethod] public Boolean ValidUser(string userID,string Pwd) { Boolean flag=false; string sqlStr="; //建立一個數據庫連接對象 SqlConnection tempConn=new SqlConnection(ConnStr); sqlStr="select * from student where ID='"+userID+"' and pwd='"+Pwd+"';"; //建立一個命令對象 SqlCommand tempComm=new SqlCommand(sqlStr,tempConn); tempConn.Open(); SqlDataReader tempReader=tempComm.ExecuteReader(CommandBehavior.CloseConnection); if (tempReader.HasRows) flag=true; tempReader.Close(); tempComm.Dispose(); return flag; } } 需要注意的是:只有用[WebMethod]說明的方法才是可以被遠程調用的Web服務。因此方法前面的[WebMethod]不能省略。 要使Web服務可由他人使用,必須將其部署到您希望支持的客戶端可訪問的Web服務器。若要將Web服務部署到開發服務器以外的服務器,可以添加 Web安裝項目或者將所需的文件復制到目標服務器。為篇幅所限,本文不對此展開深入討論,假設本例的Web服務部署在開發服務器上。 創建了并部署了Web服務之后,我們就可以在客戶端調用相應的Web服務。下面介紹如何在客戶端定位、引用Web服務功能。 2)Web服務的調用 使用Web服務的過程實際上是實現Web服務的使用者與Web服務實現綁定,并調用其方法的過程。為了簡化綁定的過程。Visual Studio.NET提供了服務代理類的方法。服務代理類是根據Web服務的描述文檔(XXX.WSDL)產生本地類,在執行的過程中,客戶使用代理類中的信息訪問Web服務,實現實際的方法的調用。Visual Studio.NET提供了我們實現這一過程的簡單方式: a 創建Web服務訪問客戶程序。 Web服務訪問客戶程序可是各種類型的應用程序,也可以是其它Web服務。在這里,我們新建一個"ASP.NET WEB應用程序"類型的項目WebApplication2。 b、服務引用。 首先,在"項目"菜單上單擊"添加 Web 引用"。接下來,因為本例中的Web服務位于本地計算機上,我們單擊瀏覽器窗格中的"本地計算機上的 Web 服務"鏈接。然后,從所提供的列表中單擊Service1鏈接以檢索有關該 Web服務的信息。然后,單擊"添加引用"為目標Web服務添加Web引用。Visual Studio.NET將下載服務說明并生成一個作為應用程序和Web服務之間的接口的代理類。 c、在客戶程序中調用Web服務的具體代碼舉例。
其它 Web Services技術為軟件共享的實現,為在現有信息系統基礎上實現系統集成提供了很好的技術基礎。但是,要使基于Web Service技術實現軟件共享具有真正的實用性。我們還要需要解決好以下一些問題:首先是安全可靠性,一是Web服務網絡傳輸的連接可靠性,二是Web服務內容的可靠性,即確保數據完整性和保密性。其次是服務使用權限的控制,Web服務是"軟件作為一種服務"的體現,什么人被禁止使用此服務,什么人被允許使用此服務,使用此服務如何收費等,都是實際使用需要解決的問題。另外,Web服務的承載能力、Web服務的部署與發現、客戶調用Web服務失效處理等問題也是需要解決好的問題。 小結 本文提出了從軟件功能共享的角度來實現軟件共享,討論了利用Web Services技術來實現遠程軟件功能共享,并且通過學生身體驗證模塊來實例分析軟件功能共享的有效性及其優點。軟件功能共享的研究對實現分布式計算等都具有重大的意義,它還需要進一步的研究。 |
溫馨提示:喜歡本站的話,請收藏一下本站!