專利名稱:桌面應(yīng)用遷移系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用遷移領(lǐng)域,更具體地涉及一種基于模板的桌面應(yīng)用遷移系統(tǒng)和方法。
背景技術(shù):
隨著云計(jì)算和互聯(lián)網(wǎng)的發(fā)展,人們?cè)絹?lái)越希望隨時(shí)隨地享受服務(wù)。但是,現(xiàn)存的大量桌面應(yīng)用(單機(jī)版應(yīng)用或者客戶端-服務(wù)器版應(yīng)用)都要求用戶必須先安裝客戶端才可以執(zhí)行相應(yīng)的操作,而并非隨時(shí)隨地提供服務(wù)。如果將已有的系統(tǒng)廢棄掉,重新開發(fā)一套功能完全一致的瀏覽器-服務(wù)器版本的系統(tǒng),開發(fā)代價(jià)過(guò)于高昂,而且造成了原有系統(tǒng)的浪費(fèi)。所以,需要一套高效的桌面應(yīng)用遷移方案。這里,“桌面應(yīng)用遷移”的意思是為了開發(fā)一套網(wǎng)絡(luò)應(yīng)用,利用現(xiàn)有的桌面應(yīng)用及其資源,通過(guò)遷移手段,以很少的開發(fā)量完成該網(wǎng)絡(luò)應(yīng)用,這個(gè)網(wǎng)絡(luò)應(yīng)用的界面和功能與現(xiàn)有的桌面應(yīng)用大致相同?!斑w移手段”的意思是運(yùn)行現(xiàn)有的桌面應(yīng)用,并將其界面以網(wǎng)頁(yè)的形式(或其他網(wǎng)絡(luò)客戶端可以呈現(xiàn)的方式)重繪出來(lái)呈現(xiàn)給用戶;當(dāng)用戶在網(wǎng)頁(yè)上執(zhí)行操作后,將該操作在桌面應(yīng)用上重現(xiàn),以完成相應(yīng)的功能;然后,再將更新的界面重繪成網(wǎng)頁(yè),并呈現(xiàn)給用戶。這樣,開發(fā)人員就不用關(guān)心桌面應(yīng)用的數(shù)據(jù)存取、邏輯流程、算法實(shí)現(xiàn)等功能實(shí)現(xiàn)的具體細(xì)節(jié),能夠在短時(shí)間內(nèi)開發(fā)出網(wǎng)絡(luò)應(yīng)用。這種技術(shù)方案能充分利用已有資源、節(jié)約開發(fā)成本、提高開發(fā)效率。目前,主要有兩種方法可以將桌面應(yīng)用遷移為網(wǎng)絡(luò)應(yīng)用一種方法是,在運(yùn)行時(shí),根據(jù)桌面應(yīng)用實(shí)時(shí)的GUI (圖形用戶界面)界面信息(例如,界面的截圖,每個(gè)界面元素/控件的必要屬性信息等)生成對(duì)應(yīng)的網(wǎng)頁(yè)。這樣做的缺點(diǎn)是實(shí)時(shí)生成所有網(wǎng)頁(yè)元素將耗費(fèi)大量的時(shí)間。另一種方法是,在線下(即事先)做好網(wǎng)頁(yè)的模板,然后,在運(yùn)行時(shí),根據(jù)已有的模板,快速生成網(wǎng)頁(yè)。與前一方法相比,這是一種更好的解決方案。在中國(guó)發(fā)明專利公開號(hào)CN 1555534A中,公開了一種用于在網(wǎng)絡(luò)中傳送動(dòng)態(tài)信息的方法和系統(tǒng),其中在接收到請(qǐng)求后,網(wǎng)絡(luò)服務(wù)器搜索相應(yīng)的模板和動(dòng)態(tài)數(shù)據(jù),然后把它們發(fā)送到瀏覽器端。瀏覽器將呈現(xiàn)動(dòng)態(tài)信息。具體地,圖1示出了 CN 1555534A所公開的系統(tǒng)的方框示意圖。如圖1所示,各個(gè)模塊的功能如下令請(qǐng)求解析單元110 位于服務(wù)器100 —側(cè),解析來(lái)自瀏覽器200的HTTP請(qǐng)求 (URL),以得到瀏覽器200在請(qǐng)求哪個(gè)動(dòng)態(tài)網(wǎng)頁(yè);今數(shù)據(jù)搜索單元120 位于服務(wù)器100 —側(cè),根據(jù)請(qǐng)求解析單元110的解析結(jié)果, 從數(shù)據(jù)庫(kù)170中搜索相關(guān)數(shù)據(jù),這些搜索到的數(shù)據(jù)將被用于產(chǎn)生網(wǎng)頁(yè)中的動(dòng)態(tài)部分;今模板存取單元130 位于服務(wù)器100 —側(cè),根據(jù)請(qǐng)求解析單元110的解析結(jié)果,從模板庫(kù)160中取得被請(qǐng)求的特定模板;
5
今變量賦值單元140 位于服務(wù)器100 —側(cè),用于為模板存取單元130所獲得的特定模板中的變量進(jìn)行賦值,即,用數(shù)據(jù)搜索單元120搜索到的具體數(shù)據(jù)賦值給模板存取單元130所獲得的特定模板中的變量;今發(fā)送單元150 位于服務(wù)器100 —側(cè),用于發(fā)送賦值過(guò)的模板發(fā)送給瀏覽器200, 作為瀏覽器200所發(fā)送的HTTP請(qǐng)求(URL)的響應(yīng);今渲染單元210 位于瀏覽器200—側(cè),用于將動(dòng)態(tài)網(wǎng)頁(yè)渲染(顯示)到瀏覽器200上。圖2示出了 CN 1555534A所公開的模板的具體實(shí)例。如圖2所示,模板由視圖部分和數(shù)據(jù)部分組成;視圖部分是模板的主要部分,由程序員事先寫好,其中可變化的部分用變量(圖2中的虛線框圈出的“Tablel.msgl”和“Tablel.msg〗”)表示;數(shù)據(jù)部分由變量賦值單元140負(fù)責(zé)填充。將從數(shù)據(jù)庫(kù)170查詢到的具體數(shù)據(jù)替換視圖部分中存在的對(duì)應(yīng)變量(圖2中的虛線框圈出的“Tablel.mSgrm“Tablel.mSg2”)。在圖2中,瀏覽器200在實(shí)際運(yùn)行時(shí),將用具體的數(shù)據(jù)代替變量“Tablel.msgl”和“Tablel.msg〗”今用msgl 的值代替 “Tablel.msgl,,;以及今用msg2 的值代替 “Tablel. msg2,,。但是,CN 1555534A所公開的現(xiàn)有解決方案存在以下缺點(diǎn)1.當(dāng)不是開發(fā)一個(gè)全新的網(wǎng)絡(luò)應(yīng)用,而是在已有的桌面應(yīng)用的基礎(chǔ)上實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)應(yīng)用(這個(gè)網(wǎng)絡(luò)應(yīng)用的界面和功能與桌面應(yīng)用全部相同或大部分相同,即本發(fā)明所定義的“桌面應(yīng)用遷移”)時(shí),所有的模板必須全部由程序員手工完成,開發(fā)效率很低,尤其是在頁(yè)面較多的情況下;2.通常對(duì)于網(wǎng)絡(luò)應(yīng)用的開發(fā)人員來(lái)說(shuō),無(wú)法獲得桌面應(yīng)用的數(shù)據(jù)庫(kù),所以不能從中直接抽取數(shù)據(jù)信息,并利用這些信息填充模板。
發(fā)明內(nèi)容
鑒于現(xiàn)有技術(shù)的上述缺點(diǎn),本發(fā)明提出了一種基于模板的桌面應(yīng)用遷移系統(tǒng)和方法,分為開發(fā)階段和實(shí)際運(yùn)行階段。在開發(fā)階段,通過(guò)遍歷桌面應(yīng)用的所有窗口,抽取每個(gè)窗口中的界面描述數(shù)據(jù);利用每個(gè)窗口的界面描述數(shù)據(jù),半自動(dòng)地生成初始模板;在初始模板的基礎(chǔ)上,進(jìn)一步(手動(dòng)和/或按規(guī)則)指定哪些部分是“數(shù)據(jù)類型界面元素”,從而形成最終模板。在實(shí)際運(yùn)行階段,實(shí)時(shí)獲取桌面應(yīng)用的界面描述數(shù)據(jù),并從中抽取出“數(shù)據(jù)類型界面元素”的值和屬性信息,填充模板,從而形成最后的待呈現(xiàn)網(wǎng)頁(yè)。根據(jù)本發(fā)明的第一方案,提出了一種服務(wù)器,包括窗口遍歷單元,用于遍歷桌面應(yīng)用的所有窗口、菜單項(xiàng)和/或?qū)υ捒?;界面信息抽取單元,用于針?duì)桌面應(yīng)用的每個(gè)窗口,抽取界面信息,組織成界面描述數(shù)據(jù);以及模板生成單元,用于根據(jù)界面描述數(shù)據(jù),生成初始模板,指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。優(yōu)選地,所述服務(wù)器還可以包括界面跳轉(zhuǎn)關(guān)系抽取單元,用于根據(jù)所述窗口遍歷單元的遍歷過(guò)程,自動(dòng)記錄桌面應(yīng)用的各個(gè)窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù)。優(yōu)選地,所述模板生成單元可以包括界面生成單元,用于根據(jù)界面描述數(shù)據(jù)生成所需的靜態(tài)頁(yè)面;響應(yīng)函數(shù)生成單元,用于為每個(gè)界面元素/控件加入相應(yīng)的響應(yīng)函數(shù),其
6中當(dāng)所述界面元素/控件被操作時(shí),所述響應(yīng)函數(shù)將被觸發(fā)執(zhí)行,以發(fā)送動(dòng)作描述數(shù)據(jù)給服務(wù)器;以及數(shù)據(jù)類型元素定義單元,用于指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。優(yōu)選地,所述模板生成單元可以根據(jù)配置文件,自動(dòng)指定初始模板中的數(shù)據(jù)類型元素,所述配置文件規(guī)定了哪種類型的控件的什么屬性是數(shù)據(jù)類型元素。根據(jù)本發(fā)明的第二方案,提出了一種用于桌面應(yīng)用遷移的模板生成方法,包括遍歷桌面應(yīng)用的所有窗口、菜單項(xiàng)和/或?qū)υ捒?;針?duì)桌面應(yīng)用的每個(gè)窗口,抽取界面信息, 組織成界面描述數(shù)據(jù);根據(jù)界面描述數(shù)據(jù),生成初始模板;以及指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。優(yōu)選地,所述用于桌面應(yīng)用遷移的模板生成方法還可以包括記錄桌面應(yīng)用的各個(gè)窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù)。優(yōu)選地,初始模板生成步驟可以包括以下子步驟根據(jù)界面描述數(shù)據(jù)生成所需的靜態(tài)頁(yè)面;以及為每個(gè)界面元素/控件加入相應(yīng)的響應(yīng)函數(shù),其中當(dāng)所述界面元素/控件被操作時(shí),所述響應(yīng)函數(shù)將被觸發(fā)執(zhí)行,以發(fā)送動(dòng)作描述數(shù)據(jù)給服務(wù)器。優(yōu)選地,可以根據(jù)配置文件,自動(dòng)指定初始模板中的數(shù)據(jù)類型元素,所述配置文件規(guī)定了哪種類型的控件的什么屬性是數(shù)據(jù)類型元素。根據(jù)本發(fā)明的第三方案,提出了一種服務(wù)器,包括請(qǐng)求解析單元,用于解析來(lái)自瀏覽器的、針對(duì)桌面應(yīng)用的請(qǐng)求,得到動(dòng)作描述數(shù)據(jù);動(dòng)作重現(xiàn)單元,用于根據(jù)動(dòng)作描述數(shù)據(jù),再現(xiàn)針對(duì)桌面應(yīng)用的操作;界面信息抽取單元,用于針對(duì)桌面應(yīng)用的當(dāng)前窗口,抽取界面信息,組織成界面描述數(shù)據(jù);以及發(fā)送單元,用于將界面描述數(shù)據(jù)發(fā)送至瀏覽器。優(yōu)選地,所述服務(wù)器還可以包括新窗口判斷單元,用于根據(jù)界面描述數(shù)據(jù),確定有新窗口彈出;以及模板存取單元,用于在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板,其中所述發(fā)送單元還可以用于將找到的模板發(fā)送至瀏覽器。更優(yōu)選地,所述服務(wù)器還可以包括 模板生成單元,用于在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板,指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。優(yōu)選地,所述服務(wù)器還可以包括新窗口判斷單元,用于根據(jù)動(dòng)作描述數(shù)據(jù),查詢界面關(guān)系庫(kù),確定有新窗口彈出;以及模板存取單元,用于在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板,其中所述發(fā)送單元還可以用于將找到的模板發(fā)送至瀏覽器。更優(yōu)選地,所述服務(wù)器還可以包括模板生成單元,用于在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板,指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板, 存入模板庫(kù);以及界面跳轉(zhuǎn)關(guān)系抽取單元,用于記錄與所述最終模板相關(guān)的窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù)。根據(jù)本發(fā)明的第四方案,提出了一種基于模板的桌面應(yīng)用遷移方法,包括在服務(wù)器側(cè),解析來(lái)自瀏覽器的、針對(duì)桌面應(yīng)用的請(qǐng)求,得到動(dòng)作描述數(shù)據(jù);根據(jù)動(dòng)作描述數(shù)據(jù),再現(xiàn)針對(duì)桌面應(yīng)用的操作;針對(duì)桌面應(yīng)用的當(dāng)前窗口,抽取界面信息,組織成界面描述數(shù)據(jù); 以及將界面描述數(shù)據(jù)發(fā)送至瀏覽器;以及在瀏覽器側(cè),解析界面描述數(shù)據(jù),抽取出相應(yīng)的界面信息;以及以所述界面信息填充模板中的數(shù)據(jù)類型元素。優(yōu)選地,所述基于模板的桌面應(yīng)用遷移方法還可以包括在服務(wù)器側(cè),根據(jù)界面描述數(shù)據(jù),確定有新窗口彈出;在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板;以及將找到的模板發(fā)送至瀏覽器;以及在瀏覽器側(cè),以所述界面信息填充所接收到的模板中的數(shù)據(jù)類型元素。更優(yōu)選地,所述基于模板的桌面應(yīng)用遷移方法還可以包括在服務(wù)器側(cè),在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板;指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù);以及將所述最終模板發(fā)送至瀏覽器。優(yōu)選地,所述基于模板的桌面應(yīng)用遷移方法還可以包括在服務(wù)器側(cè),根據(jù)動(dòng)作描述數(shù)據(jù),查詢界面關(guān)系庫(kù),確定有新窗口彈出;在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板; 以及將找到的模板發(fā)送至瀏覽器;以及在瀏覽器側(cè),以所述界面信息填充所接收到的模板中的數(shù)據(jù)類型元素。更優(yōu)選地,所述基于模板的桌面應(yīng)用遷移方法還可以包括在服務(wù)器側(cè),在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板;指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù);記錄與所述最終模板相關(guān)的窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù);以及將所述最終模板發(fā)送至瀏覽器。優(yōu)選地,所述數(shù)據(jù)類型元素填充步驟可以包括以下子步驟定位界面信息中數(shù)據(jù)類型元素的位置;定位模板中對(duì)應(yīng)數(shù)據(jù)類型元素的位置;以及用界面信息中數(shù)據(jù)類型元素的值代替模板中對(duì)應(yīng)數(shù)據(jù)類型元素的值?;蛘?,可選地,所述數(shù)據(jù)類型元素填充步驟可以包括以下子步驟定位模板中數(shù)據(jù)類型元素的位置;定位界面信息中對(duì)應(yīng)數(shù)據(jù)類型元素的位置;以及用界面信息中對(duì)應(yīng)數(shù)據(jù)類型元素的值代替模板中數(shù)據(jù)類型元素的值。與最相近的現(xiàn)有技術(shù)相比,本發(fā)明的有益效果至少包括今本發(fā)明通過(guò)半自動(dòng)地生成模板,極大提高了創(chuàng)建新網(wǎng)絡(luò)應(yīng)用的效率,節(jié)約了開發(fā)成本。
結(jié)合附圖,根據(jù)下面對(duì)本發(fā)明的非限制性實(shí)施例的詳細(xì)描述,本發(fā)明的上述及其他目的、特征和優(yōu)點(diǎn)將變得更加清楚,附圖中圖1示出了 CN 1555534A所公開的系統(tǒng)的方框示意圖。圖2示出了 CN 1555534A所公開的模板的具體實(shí)例。圖3示出了根據(jù)本發(fā)明第一實(shí)施例的服務(wù)器300在模板生成階段的結(jié)構(gòu)示意框圖。圖4示出了根據(jù)本發(fā)明第一實(shí)施例的服務(wù)器300和瀏覽器400在運(yùn)行階段的結(jié)構(gòu)示意框圖。圖5示出了根據(jù)本發(fā)明第二實(shí)施例的服務(wù)器500在模板生成階段的結(jié)構(gòu)示意框圖。圖6示出了根據(jù)本發(fā)明第二實(shí)施例的服務(wù)器500和瀏覽器400在運(yùn)行階段的結(jié)構(gòu)示意框圖。圖7示出了根據(jù)第一實(shí)施例的改進(jìn)的服務(wù)器300和瀏覽器400在運(yùn)行階段的結(jié)構(gòu)示意框圖。圖8示出了根據(jù)第二實(shí)施例的改進(jìn)的服務(wù)器500和瀏覽器400在運(yùn)行階段的結(jié)構(gòu)示意框圖。圖9示出了模板生成階段的應(yīng)用實(shí)例。
圖10示出了運(yùn)行階段的應(yīng)用實(shí)例。附圖中,用相同的附圖標(biāo)記表示相關(guān)的單元,以示出它們之間的相關(guān)性。
具體實(shí)施例方式下面,根據(jù)附圖描述本發(fā)明。在以下描述中,一些具體實(shí)施例僅用于描述目的,而不應(yīng)該理解為對(duì)本發(fā)明有任何限制,而只是本發(fā)明的示例。在可能導(dǎo)致對(duì)本發(fā)明的理解造成混淆時(shí),將省略常規(guī)結(jié)構(gòu)或構(gòu)造。第一實(shí)施例根據(jù)本實(shí)施例,基于模板的桌面應(yīng)用遷移方法可以包括模板生成階段和運(yùn)行階段。下面,將結(jié)合圖3和圖4對(duì)本實(shí)施例進(jìn)行詳細(xì)描述。圖3示出了根據(jù)本實(shí)施例的服務(wù)器300在模板生成階段的結(jié)構(gòu)示意框圖。如圖3所示,服務(wù)器300包括安裝在服務(wù)器300 —側(cè)的桌面應(yīng)用600、窗口遍歷單元510、界面信息抽取單元520、模板生成單元530和模板庫(kù)360。在模板生成階段,桌面應(yīng)用600主要根據(jù)窗口遍歷單元510的指示進(jìn)行相應(yīng)的操作,并返回相應(yīng)的輸出(窗口、響應(yīng)信息等)。窗口遍歷單元510用于遍歷桌面應(yīng)用600的所有窗口、菜單項(xiàng)、和/或?qū)υ挻?。此遍歷過(guò)程可以是人工完成,也可以是半自動(dòng)完成。例如,窗口遍歷單元510逐一操作主窗口中的每一個(gè)可操作控件,得到相應(yīng)的子窗口,并重復(fù)此過(guò)程,直到遍歷完此桌面應(yīng)用600的所有窗口。界面信息抽取單元520將來(lái)自桌面應(yīng)用600的每個(gè)窗口的界面信息抽取出來(lái),并將其組織成界面描述數(shù)據(jù)。界面描述數(shù)據(jù)可以采用XML、HTML、WML等描述性語(yǔ)言的格式,本發(fā)明在這一點(diǎn)上并無(wú)具體限制。模板生成單元530用于生成模版并存入模板庫(kù)360。模板庫(kù)360用于存儲(chǔ)半自動(dòng)生成的模板。模板生成單元530又包括界面(UI)生成單元5310、響應(yīng)函數(shù)生成單元5320和數(shù)據(jù)類型元素定義單元5330。UI生成單元5310用于根據(jù)界面描述數(shù)據(jù)生成所需的靜態(tài)頁(yè)面,例如,可以是XML 網(wǎng)頁(yè)、HTML網(wǎng)頁(yè)、WML網(wǎng)頁(yè)等。當(dāng)然,也可以是能在網(wǎng)絡(luò)客戶端呈現(xiàn)的任何表現(xiàn)形式,例如 Flash文件等。響應(yīng)函數(shù)生成單元5320為每個(gè)界面元素/控件加入相應(yīng)的響應(yīng)函數(shù)。如果某界面元素在瀏覽器端被操作,則它的響應(yīng)函數(shù)將被觸發(fā)執(zhí)行,并發(fā)送動(dòng)作描述數(shù)據(jù)給服務(wù)器 300。動(dòng)作描述數(shù)據(jù)包含動(dòng)作的相關(guān)信息,例如在哪個(gè)界面元素上執(zhí)行了什么動(dòng)作,執(zhí)行該動(dòng)作的必要參數(shù)等。數(shù)據(jù)類型元素定義單元5330用于定義模板中的數(shù)據(jù)部分。數(shù)據(jù)部分指動(dòng)態(tài)部分, 是在實(shí)際運(yùn)行時(shí)根據(jù)桌面應(yīng)用600的實(shí)際情況而生成的。數(shù)據(jù)類型元素定義單元5330可以根據(jù)“配置文件”中的信息,自動(dòng)判斷哪種類型的控件的什么屬性是數(shù)據(jù)類型元素,例如, 表1給出了配置文件的實(shí)例。表 1·文本
9
權(quán)利要求
1.一種服務(wù)器,包括窗口遍歷單元,用于遍歷桌面應(yīng)用的所有窗口、菜單項(xiàng)和/或?qū)υ捒颍?界面信息抽取單元,用于針對(duì)桌面應(yīng)用的每個(gè)窗口,抽取界面信息,組織成界面描述數(shù)據(jù);以及模板生成單元,用于根據(jù)界面描述數(shù)據(jù),生成初始模板,指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。
2.根據(jù)權(quán)利要求1所述的服務(wù)器,還包括界面跳轉(zhuǎn)關(guān)系抽取單元,用于根據(jù)所述窗口遍歷單元的遍歷過(guò)程,自動(dòng)記錄桌面應(yīng)用的各個(gè)窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù)。
3.根據(jù)權(quán)利要求1或2所述的服務(wù)器,其特征在于所述模板生成單元包括界面生成單元,用于根據(jù)界面描述數(shù)據(jù)生成所需的靜態(tài)頁(yè)面; 響應(yīng)函數(shù)生成單元,用于為每個(gè)界面元素/控件加入相應(yīng)的響應(yīng)函數(shù),其中當(dāng)所述界面元素/控件被操作時(shí),所述響應(yīng)函數(shù)將被觸發(fā)執(zhí)行,以發(fā)送動(dòng)作描述數(shù)據(jù)給服務(wù)器;以及數(shù)據(jù)類型元素定義單元,用于指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。
4.根據(jù)權(quán)利要求1 3之一所述的服務(wù)器,其特征在于所述模板生成單元根據(jù)配置文件,自動(dòng)指定初始模板中的數(shù)據(jù)類型元素,所述配置文件規(guī)定了哪種類型的控件的什么屬性是數(shù)據(jù)類型元素。
5.一種用于桌面應(yīng)用遷移的模板生成方法,包括 遍歷桌面應(yīng)用的所有窗口、菜單項(xiàng)和/或?qū)υ捒颍会槍?duì)桌面應(yīng)用的每個(gè)窗口,抽取界面信息,組織成界面描述數(shù)據(jù); 根據(jù)界面描述數(shù)據(jù),生成初始模板;以及指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。
6.根據(jù)權(quán)利要求5所述的用于桌面應(yīng)用遷移的模板生成方法,還包括 記錄桌面應(yīng)用的各個(gè)窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù)。
7.根據(jù)權(quán)利要求5或6所述的用于桌面應(yīng)用遷移的模板生成方法,其特征在于初始模板生成步驟包括以下子步驟根據(jù)界面描述數(shù)據(jù)生成所需的靜態(tài)頁(yè)面;以及為每個(gè)界面元素/控件加入相應(yīng)的響應(yīng)函數(shù),其中當(dāng)所述界面元素/控件被操作時(shí),所述響應(yīng)函數(shù)將被觸發(fā)執(zhí)行,以發(fā)送動(dòng)作描述數(shù)據(jù)給服務(wù)器。
8.根據(jù)權(quán)利要求5 7之一所述的用于桌面應(yīng)用遷移的模板生成方法,其特征在于根據(jù)配置文件,自動(dòng)指定初始模板中的數(shù)據(jù)類型元素,所述配置文件規(guī)定了哪種類型的控件的什么屬性是數(shù)據(jù)類型元素。
9.一種服務(wù)器,包括請(qǐng)求解析單元,用于解析來(lái)自瀏覽器的、針對(duì)桌面應(yīng)用的請(qǐng)求,得到動(dòng)作描述數(shù)據(jù); 動(dòng)作重現(xiàn)單元,用于根據(jù)動(dòng)作描述數(shù)據(jù),再現(xiàn)針對(duì)桌面應(yīng)用的操作; 界面信息抽取單元,用于針對(duì)桌面應(yīng)用的當(dāng)前窗口,抽取界面信息,組織成界面描述數(shù)據(jù);以及發(fā)送單元,用于將界面描述數(shù)據(jù)發(fā)送至瀏覽器。
10.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于所述服務(wù)器還包括新窗口判斷單元,用于根據(jù)界面描述數(shù)據(jù),確定有新窗口彈出;以及模板存取單元,用于在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板, 其中所述發(fā)送單元還用于將找到的模板發(fā)送至瀏覽器。
11.根據(jù)權(quán)利要求10所述的服務(wù)器,其特征在于所述服務(wù)器還包括模板生成單元,用于在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板,指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù)。
12.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于所述服務(wù)器還包括新窗口判斷單元,用于根據(jù)動(dòng)作描述數(shù)據(jù),查詢界面關(guān)系庫(kù),確定有新窗口彈出;以及模板存取單元,用于在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板, 其中所述發(fā)送單元還用于將找到的模板發(fā)送至瀏覽器。
13.根據(jù)權(quán)利要求12所述的服務(wù)器,其特征在于所述服務(wù)器還包括模板生成單元,用于在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板,指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù); 以及界面跳轉(zhuǎn)關(guān)系抽取單元,用于記錄與所述最終模板相關(guān)的窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù)。
14.一種基于模板的桌面應(yīng)用遷移方法,包括 在服務(wù)器側(cè),解析來(lái)自瀏覽器的、針對(duì)桌面應(yīng)用的請(qǐng)求,得到動(dòng)作描述數(shù)據(jù);根據(jù)動(dòng)作描述數(shù)據(jù),再現(xiàn)針對(duì)桌面應(yīng)用的操作;針對(duì)桌面應(yīng)用的當(dāng)前窗口,抽取界面信息,組織成界面描述數(shù)據(jù);以及將界面描述數(shù)據(jù)發(fā)送至瀏覽器;以及在瀏覽器側(cè),解析界面描述數(shù)據(jù),抽取出相應(yīng)的界面信息;以及以所述界面信息填充模板中的數(shù)據(jù)類型元素。
15.根據(jù)權(quán)利要求14所述的基于模板的桌面應(yīng)用遷移方法,還包括 在服務(wù)器側(cè),根據(jù)界面描述數(shù)據(jù),確定有新窗口彈出; 在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板;以及將找到的模板發(fā)送至瀏覽器;以及在瀏覽器側(cè),以所述界面信息填充所接收到的模板中的數(shù)據(jù)類型元素。
16.根據(jù)權(quán)利要求15所述的基于模板的桌面應(yīng)用遷移方法,還包括 在服務(wù)器側(cè),在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板;指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù);以及將所述最終模板發(fā)送至瀏覽器。
17.根據(jù)權(quán)利要求14所述的基于模板的桌面應(yīng)用遷移方法,還包括 在服務(wù)器側(cè),根據(jù)動(dòng)作描述數(shù)據(jù),查詢界面關(guān)系庫(kù),確定有新窗口彈出; 在模板庫(kù)中,查找與所述新窗口對(duì)應(yīng)的模板;以及將找到的模板發(fā)送至瀏覽器;以及在瀏覽器側(cè),以所述界面信息填充所接收到的模板中的數(shù)據(jù)類型元素。
18.根據(jù)權(quán)利要求17所述的基于模板的桌面應(yīng)用遷移方法,還包括 在服務(wù)器側(cè),在未找到所需的模板時(shí),根據(jù)界面描述數(shù)據(jù),生成初始模板;指定初始模板中的數(shù)據(jù)類型元素,為數(shù)據(jù)類型元素加入處理腳本,生成最終模板,存入模板庫(kù);記錄與所述最終模板相關(guān)的窗口間的跳轉(zhuǎn)關(guān)系,存入界面關(guān)系庫(kù);以及將所述最終模板發(fā)送至瀏覽器。
19.根據(jù)權(quán)利要求14 18之一所述的基于模板的桌面應(yīng)用遷移方法,其特征在于所述數(shù)據(jù)類型元素填充步驟包括以下子步驟定位界面信息中數(shù)據(jù)類型元素的位置; 定位模板中對(duì)應(yīng)數(shù)據(jù)類型元素的位置;以及用界面信息中數(shù)據(jù)類型元素的值代替模板中對(duì)應(yīng)數(shù)據(jù)類型元素的值。
20.根據(jù)權(quán)利要求14 18之一所述的基于模板的桌面應(yīng)用遷移方法,其特征在于所述數(shù)據(jù)類型元素填充步驟包括以下子步驟定位模板中數(shù)據(jù)類型元素的位置;定位界面信息中對(duì)應(yīng)數(shù)據(jù)類型元素的位置;以及用界面信息中對(duì)應(yīng)數(shù)據(jù)類型元素的值代替模板中數(shù)據(jù)類型元素的值。
全文摘要
本發(fā)明提出了一種基于模板的桌面應(yīng)用遷移系統(tǒng)和方法,分為開發(fā)階段和實(shí)際運(yùn)行階段。在開發(fā)階段,通過(guò)遍歷桌面應(yīng)用的所有窗口,抽取每個(gè)窗口中的界面描述數(shù)據(jù);利用每個(gè)窗口的界面描述數(shù)據(jù),半自動(dòng)地生成初始模板;在初始模板的基礎(chǔ)上,進(jìn)一步(手動(dòng)和/或按規(guī)則)指定哪些部分是“數(shù)據(jù)類型界面元素”,從而形成最終模板。在實(shí)際運(yùn)行階段,實(shí)時(shí)獲取桌面應(yīng)用的界面描述數(shù)據(jù),并從中抽取出“數(shù)據(jù)類型界面元素”的值和屬性信息,填充模板,從而形成最后的待呈現(xiàn)網(wǎng)頁(yè)。本發(fā)明通過(guò)半自動(dòng)地生成模板,極大提高了創(chuàng)建新網(wǎng)絡(luò)應(yīng)用的效率,節(jié)約了開發(fā)成本。
文檔編號(hào)G06F9/44GK102193953SQ201010130159
公開日2011年9月21日 申請(qǐng)日期2010年3月17日 優(yōu)先權(quán)日2010年3月17日
發(fā)明者劉慧峰, 劉曉煒, 史敬威, 孟昕, 宋才良, 王煉 申請(qǐng)人:日電(中國(guó))有限公司