




已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Web服務(wù)可視化的研究日期:2006-05-23來(lái)源: 作者:字體:大 中 小 王衛(wèi)民 郭鳴 蘇德富摘 要 可視化不僅是語(yǔ)言環(huán)境的發(fā)展趨勢(shì),還是組件開(kāi)發(fā)的方向。Web服務(wù)1作為一種組件開(kāi)發(fā)技術(shù),其可視化也是一個(gè)值得研究得課題。本文首先分析了Claus Brabrand博士在他的博士論文Domain Specific Languages for Interactive Web Services2中提出的觀點(diǎn),在此基礎(chǔ)上,提出了基于文件下載機(jī)制的Web服務(wù)可視化解決方案,最后改進(jìn)了該方案,提出了基于窗體自動(dòng)生成的Web服務(wù)可視化改進(jìn)方案(WSVL)。關(guān)鍵詞 DSL,Web服務(wù),可視化1 DSL的概念DSL3456是Domain Specific Language(領(lǐng)域?qū)S谜Z(yǔ)言)的縮寫(xiě)。DSL是一種用于解決特定領(lǐng)域問(wèn)題的計(jì)算機(jī)編程語(yǔ)言,它提供了該領(lǐng)域合適的、固定的抽象概念和符號(hào)。DSL通常比較小,側(cè)重于聲明而不是過(guò)多的規(guī)則或命令,并且比通用目標(biāo)語(yǔ)言(GPL General Purpose Language)的表達(dá)能力要差。比如,DSL不能操縱復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。所以領(lǐng)域?qū)S谜Z(yǔ)言也曾被稱(chēng)為應(yīng)用領(lǐng)域語(yǔ)言、“小”語(yǔ)言或宏語(yǔ)言,與腳本語(yǔ)言緊密相關(guān)。像大家熟悉的SQL、Unix shells、makefiles等可以視為領(lǐng)域?qū)S谜Z(yǔ)言7。目前領(lǐng)域?qū)S谜Z(yǔ)言的應(yīng)用已經(jīng)滲透到各種領(lǐng)域,如圖形圖象、金融產(chǎn)品、電話(huà)交換系統(tǒng)、各種協(xié)議、操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、網(wǎng)絡(luò)中的路由器和機(jī)器人語(yǔ)言等。由于DSL在領(lǐng)域級(jí)別上的高度抽象性,使得其更易于編程、易于驗(yàn)證,提高了產(chǎn)品的生產(chǎn)力、可靠性、可維護(hù)性和可移植性,并且可以實(shí)現(xiàn)系統(tǒng)級(jí)的重用。2 DSL for WS的基本思想Claus Brabrand博士在他的博士論文中,將DSL語(yǔ)言應(yīng)用于交互式Web服務(wù)的研究中,獲得了一個(gè)有效的解決方案。他的主要思想是:當(dāng)Web應(yīng)用程序調(diào)用Web 服務(wù)時(shí),該服務(wù)可以動(dòng)態(tài)地產(chǎn)生HTML文件,該HTML文件可以被瀏覽器所解釋?zhuān)D(zhuǎn)換成相應(yīng)的Web窗體和服務(wù)器端組件代碼,這樣就可以實(shí)現(xiàn)Web服務(wù)與客戶(hù)端Web應(yīng)用程序的交互。Claus Brabrand博士采用了DSL來(lái)完成這個(gè)過(guò)程。論文從四個(gè)關(guān)鍵的方面來(lái)闡述了他的主張,它們是交互式會(huì)話(huà)管理、動(dòng)態(tài)HTML/XML的產(chǎn)生、窗體字段驗(yàn)證和并發(fā)控制。但是,我們知道,所有的應(yīng)用程序分兩大類(lèi),Web應(yīng)用程序和桌面應(yīng)用程序。Web服務(wù)的使用者不僅僅是Web應(yīng)用程序,更應(yīng)該是桌面應(yīng)用程序。否則,就根本不需要Web服務(wù)這種技術(shù)了。因?yàn)閭鹘y(tǒng)的Web應(yīng)用程序就可以滿(mǎn)足和客戶(hù)端Web應(yīng)用程序的通信了,且交互性更優(yōu)。當(dāng)Web服務(wù)的使用者是桌面應(yīng)用程序的時(shí)候,Claus Brabrand博士提出的方案顯然就滿(mǎn)足不了組件可視化的需求了。同時(shí)Claus Brabrand博士主要是從交互式應(yīng)用的角度來(lái)考察Web服務(wù)的交互能力的,我們知道,交互并不一定是可視化的?,F(xiàn)在我們需要從可視化的角度來(lái)重新考察這個(gè)問(wèn)題。3 Web服務(wù)可視化的研究可視化的組件比非可視化的組件更好用,更易于維護(hù)。當(dāng)任何一個(gè)動(dòng)態(tài)庫(kù)成了組件,就希望成為可視化的控件,Web服務(wù)組件也不例外。該文主要研究了如何將Web服務(wù)可視化的問(wèn)題。提出了自己的一些設(shè)想,并在一個(gè)Web服務(wù)中間件的開(kāi)發(fā)中使用了這種設(shè)想。我們首先提出了基于文件下載機(jī)制的可視化實(shí)現(xiàn)方案,然后改進(jìn)這個(gè)方案,提出了WSVL解決方案。圖1 傳統(tǒng)的Web服務(wù)調(diào)用過(guò)程圖1顯示了傳統(tǒng)的Web服務(wù)的調(diào)用過(guò)程。我們以一個(gè)實(shí)例來(lái)說(shuō)明這個(gè)過(guò)程,比如一個(gè)遠(yuǎn)程的Web服務(wù)組件WSAuthentication,該組件有一個(gè)認(rèn)證操作,bool Authentication(string username,string password)的操作,其結(jié)果是驗(yàn)證傳遞的用戶(hù)名和密碼,返回驗(yàn)證的結(jié)果true或false。我們添加了相應(yīng)的Web服務(wù)之后,我們就可以使用這個(gè)組件了。為了客戶(hù)可以自己輸入用戶(hù)名和密碼,我們需要建立一個(gè)窗體,它有兩個(gè)文本框,一個(gè)輸入用戶(hù)名,設(shè)為EditName,另一個(gè)輸入密碼,設(shè)為EditPassword,有兩個(gè)按鈕,一個(gè)是“確定”按鈕,另一個(gè)是“取消”按鈕。我們編寫(xiě)確定按鈕事件如下:WSAuthentication theWSAuthentication =new WSAuthentication();/建立Web服務(wù)對(duì)象bool b= theWSAuthentication.Authentication(EditName.text,EditPassword.text);/向這個(gè)對(duì)象發(fā)送消息,要求認(rèn)證。MessageBox.Show(b.ToString();/顯示認(rèn)證結(jié)果。這就是一個(gè)完整的Web服務(wù)組件的使用過(guò)程。但是,在這個(gè)過(guò)程中,我們發(fā)現(xiàn):第一,這個(gè)界面非常特殊,完全可以由客戶(hù)端或服務(wù)器端自動(dòng)生成;第二,這個(gè)過(guò)程直接暴露了Web服務(wù)的操作。這顯然是很不安全的。為了解決這兩個(gè)問(wèn)題,同時(shí)實(shí)現(xiàn)組件的可視化,我們對(duì)這個(gè)調(diào)用過(guò)程改進(jìn)如下圖2所示:圖2 改進(jìn)的Web服務(wù)調(diào)用過(guò)程在這個(gè)過(guò)程中Web服務(wù)客戶(hù)端之前增加了Web服務(wù)界面層,由它負(fù)責(zé)調(diào)用Web服務(wù)的功能?,F(xiàn)在的問(wèn)題是這個(gè)Web服務(wù)界面從哪里來(lái),針對(duì)Web服務(wù)界面的來(lái)源,我們有兩種不同的設(shè)計(jì)方案。1)基于文件下載的解決方案第一種就是基于文件下載的解決方案。這種解決方案的最大特點(diǎn)是,界面從Web服務(wù)端下載下來(lái)。界面可以是語(yǔ)言相關(guān)的窗體代碼,也可以直接是二進(jìn)制代碼,比如可執(zhí)行文件。這兩種文件的傳送方式是不一樣的。窗體代碼可以采用XML文件的形式傳送,二進(jìn)制代碼則不行。在這里我們僅僅討論二進(jìn)制代碼的傳送。首先,我們需要在客戶(hù)端編寫(xiě)程序,它可以將字節(jié)流數(shù)組轉(zhuǎn)換可執(zhí)行文件,并運(yùn)行,返回調(diào)用結(jié)果。void *ExecByte(byte);第二,我們需要在服務(wù)器端編寫(xiě)每一個(gè)Web服務(wù)對(duì)應(yīng)的界面程序。第三,我們?cè)诜?wù)器端編寫(xiě)一個(gè)額外的文件下載服務(wù)方法。它可以將指定的文件轉(zhuǎn)換成字節(jié)流傳送到客戶(hù)端。byte DownLoad(string filename);第四,同時(shí)我們編寫(xiě)統(tǒng)一的服務(wù)調(diào)用操作,它會(huì)將方法對(duì)應(yīng)的程序轉(zhuǎn)換成字節(jié)流。byte Show(string methodname);這樣,Web服務(wù)的調(diào)用過(guò)程變成了:WSAuthentication theWSAuthentication =new WSAuthentication();/建立Web服務(wù)對(duì)象bool *pb=bool*(ExecByte(theWSAuthentication.Show(“Authentication”));MessageBox.Show(*pb).ToString();/顯示認(rèn)證結(jié)果。其中theWSAuthentication.Show(“Authentication”)將認(rèn)證操作對(duì)應(yīng)的可執(zhí)行文件轉(zhuǎn)換成字節(jié)流,并傳送到客戶(hù)端。ExecByte將該字節(jié)流轉(zhuǎn)換成可執(zhí)行文件,并執(zhí)行。執(zhí)行的結(jié)果是,屏幕上將出現(xiàn)一個(gè)標(biāo)準(zhǔn)的對(duì)話(huà)框,提示你輸入用戶(hù)名和密碼,你輸入用戶(hù)名和密碼后,點(diǎn)擊確定按鈕按鈕將調(diào)用真正的認(rèn)證操作,認(rèn)證操作的結(jié)果保存到pb中,如圖3所示。圖3 認(rèn)證對(duì)話(huà)框在該方案中,第一步需要的程序可以直接在開(kāi)發(fā)環(huán)境或操作系統(tǒng)中提供;第二步的界面,第三步的下載服務(wù),第四步的統(tǒng)一的服務(wù)調(diào)用操作都可以由Web服務(wù)開(kāi)發(fā)工具自動(dòng)生成。該方案的優(yōu)點(diǎn):(1)大大提高Web服務(wù)的安全性;(2)更強(qiáng)的交互能力和統(tǒng)一的調(diào)用方式;(3)它還有一個(gè)不可忽視的優(yōu)點(diǎn)是Web服務(wù)操作的界面上可以承載廣告,費(fèi)用信息等內(nèi)容。缺點(diǎn):(1)服務(wù)器要傳送大量的程序;(2)由于從Web服務(wù)所在的服務(wù)器上下載文件直接運(yùn)行,對(duì)客戶(hù)端來(lái)說(shuō)是不安全的;解決的方法是觀察Web服務(wù)界面的統(tǒng)一特點(diǎn),由客戶(hù)端自動(dòng)生成界面代碼。這就是下面的WSVL的解決方案。2)改進(jìn)的解決方案WSVL以上的做法值得改進(jìn),原因有二:一、服務(wù)器端需要編寫(xiě)多個(gè)與Web服務(wù)相關(guān)的額外的程序;二、該程序需要下載到本地,同時(shí)在本地要有一個(gè)函數(shù)來(lái)處理這些程序。我們改進(jìn)這些過(guò)程,原因是客戶(hù)完成Web服務(wù)的添加之后就可以知道Web服務(wù)有關(guān)方法的實(shí)現(xiàn)接口,客戶(hù)端完全可以根據(jù)這些接口生成相應(yīng)的界面和對(duì)應(yīng)的處理程序。例如上述的認(rèn)證操作,它的界面上將有兩個(gè)label,一個(gè)label的caption是用戶(hù)名,另一個(gè)的caption是密碼;有兩個(gè)edit,窗體有兩個(gè)數(shù)據(jù)成員,它們是WebServicesObject,保存這個(gè)Web服務(wù)對(duì)象,另一個(gè)是result,保存服務(wù)調(diào)用的結(jié)果。這兩個(gè)變量都是可變對(duì)象;有兩個(gè)按鈕,一個(gè)確定按鈕按鈕,一個(gè)取消按鈕按鈕。一個(gè)確定按鈕的程序是:thisform.result=thisform.WebServicesObject.Authentication(editusername.text,editpassword.text);thisform.hide;另一個(gè)取消按鈕的內(nèi)容是:editusername.text=“”;editpassword.text=“”;我們以偽碼來(lái)表示窗體設(shè)計(jì)模式:圖4 窗體模式文件圖示模式 Form(list,operate,WebServiceType,Type)/模式有五個(gè)參數(shù),list表示W(wǎng)eb操作的參數(shù)名稱(chēng)數(shù)組;operate對(duì)應(yīng)Web操作的名稱(chēng),WebServiceType表示了該操作對(duì)應(yīng)的Web服務(wù)的類(lèi)型。Type則表示該操作的返回值的類(lèi)型,如圖4所示。根據(jù)list數(shù)組的個(gè)數(shù)n,界面上將有n個(gè)label和n個(gè)edit框。其中l(wèi)abel的名稱(chēng)由label連接listi組成,它的caption屬性為listi,同樣edit的名稱(chēng)由edit連接listi組成。i從0開(kāi)始到n-1:Label:名字為lable+List0,顯示為L(zhǎng)ist0Label:名字為lable+List1,顯示為L(zhǎng)ist1.Label:名字為lable+Listn-1,顯示為L(zhǎng)istn-1Edit:名字為Edit+List0Edit:名字為Edit+List1.Edit:名字為Edit+Listn-1有兩個(gè)變量:一個(gè)是Web服務(wù)對(duì)象,另一個(gè)是返回值類(lèi)型的對(duì)象:WebServiceType WebServicesObject;Type result;有兩個(gè)按鈕,確定按鈕和取消按鈕。確定按鈕的程序:(這里用EditI代表第I個(gè)文本框的名字。)result=(Type) WebServicesObject.operate(Edit.text,Edit2.text,.,Editn.Text);thisform.hide;取消按鈕的程序:edit1.text=“”;edit2.text=“”;editn.text=“”;最后是窗口布局。/模式結(jié)束我們可以將該設(shè)計(jì)模式用XML模式文件表示29。在Visual Studio.Net中可以用設(shè)計(jì)模式來(lái)表示30。在添加Web服務(wù)時(shí),讓客戶(hù)端環(huán)境中的窗體生成向?qū)?lái)處理這個(gè)模式文件,生成所有的窗體文件。生成的窗體文件將有兩種形式:可執(zhí)行文件或環(huán)境有關(guān)的窗體代碼,如果是第一種,處理與上相同,否則處理的時(shí)候就完全可以把它當(dāng)成一個(gè)可視化的組件。這就實(shí)現(xiàn)了設(shè)計(jì)時(shí)的可視化,這時(shí),我們可以改進(jìn)生成的窗體的布局,改進(jìn)界面設(shè)計(jì)。實(shí)現(xiàn)了設(shè)計(jì)時(shí)的可視化后,僅僅需要在設(shè)計(jì)時(shí)添加屬性值就行了。編譯時(shí)這些程序就會(huì)和程序員編寫(xiě)的程序一起被編譯。WSVL將有兩個(gè)部分組成,如圖5所示。圖5 WSVL組成圖示一部分是模式文件,它能根據(jù)輸入的參數(shù)產(chǎn)生具體的窗體;另一部分是窗體生成向?qū)АT撓驅(qū)г谔砑右脮r(shí)被激發(fā),讓用戶(hù)在選擇了要添加的Web服務(wù)之后,選擇要產(chǎn)生窗體的Web方法,然后該向?qū)Ь鸵赃x中的Web方法的參數(shù)列表、它的方法名字、Web服務(wù)類(lèi)型以及返回值類(lèi)型為參數(shù),執(zhí)行窗體模版,形成所需的窗體文件。方案的分析:優(yōu)點(diǎn):顯然,它可以解決基于文件下載機(jī)制所帶來(lái)的不足。缺點(diǎn):這個(gè)方案還有待完善。生成的窗體文件太多也將造成客戶(hù)端的負(fù)擔(dān),同時(shí)這種方案的實(shí)現(xiàn)離不開(kāi)客戶(hù)端的支持。當(dāng)然,如果客戶(hù)端不支持這個(gè),我們完全可以自己編寫(xiě)一個(gè)工具來(lái)實(shí)現(xiàn)。4 小結(jié)Web服務(wù)的可視化是一個(gè)值得研究的課題,本文主要提出了Web服務(wù)的可視化的兩個(gè)方案。隨著Web服務(wù)技術(shù)的進(jìn)一步成熟,它的可視化技術(shù)的進(jìn)一步發(fā)展,以及MDA工具的不斷推廣,我們將可以在利用MDA就可以直接得到可視化的Web服務(wù)。那時(shí),Web服務(wù)完全就可以象本地控件一樣地使用了。參考文獻(xiàn):1 柴曉路,梁宇奇.Web Services技術(shù)、架構(gòu)和應(yīng)用M.電子工業(yè)出版社.2003年1月第1版.2 Claus Brabrand.Domain Specific Languages for Interactive Web Services. PhD thesis, Department of Computer Science University of Aarhus Denmark 2002 9.www.brics.dk/brabrand/dissertation.pdf.3 D. Atkins, T. Ball, M. Benedikt, G. Bruns, K. Cox, P. Mataga, and K. Rehor. Experience with a domain specific language for form-based services. In Proc. Conference on Domain-Specific languages, DSL 97.USENIX, October 1997.4 D. Atkins, T. Ball, G. Bruns, and K. Co
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地綜合整治投標(biāo)方案
- 沉井施工期質(zhì)量檢驗(yàn)與評(píng)定合同
- 婚姻解除后財(cái)產(chǎn)分割與經(jīng)濟(jì)補(bǔ)償協(xié)議范本
- 防汛圍欄井安裝方案
- 攔污柵項(xiàng)目規(guī)劃方案
- 鄉(xiāng)村網(wǎng)絡(luò)面試題及答案
- 內(nèi)外踝骨折護(hù)理常規(guī)
- 天花玻璃安裝方案
- 金融創(chuàng)新:廠房股權(quán)轉(zhuǎn)讓與融資租賃一體化合同
- 2026版《全品高考》選考復(fù)習(xí)方案生物0420 課時(shí)作業(yè)(十九) 細(xì)胞的分化、衰老、死亡 含答案
- 曲靖市羅平縣人民醫(yī)院招聘考試真題2024
- 部編版九年級(jí)語(yǔ)文上冊(cè)教案
- 2023-2024學(xué)年黑龍江省寧安市初中語(yǔ)文七年級(jí)下冊(cè)期末高分通關(guān)試卷
- GB/T 6075.3-2011機(jī)械振動(dòng)在非旋轉(zhuǎn)部件上測(cè)量評(píng)價(jià)機(jī)器的振動(dòng)第3部分:額定功率大于15 kW額定轉(zhuǎn)速在120 r/min至15 000 r/min之間的在現(xiàn)場(chǎng)測(cè)量的工業(yè)機(jī)器
- GB/T 5594.4-2015電子元器件結(jié)構(gòu)陶瓷材料性能測(cè)試方法第4部分:介電常數(shù)和介質(zhì)損耗角正切值測(cè)試方法
- 預(yù)防保健科護(hù)理質(zhì)量控制考核標(biāo)準(zhǔn)
- 起重作業(yè)吊裝令
- 林州重機(jī)710采煤機(jī)電控箱裝配流程
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全管理委員會(huì)及工作職責(zé)
- 個(gè)人求職簡(jiǎn)歷兩頁(yè) (46)應(yīng)聘履歷參考模板可編輯修改
- 統(tǒng)編版小學(xué)語(yǔ)二升三銜接閱讀專(zhuān)項(xiàng)訓(xùn)練—課外閱讀(二)【含答案】
評(píng)論
0/150
提交評(píng)論