一種基于云計算模式的遺產(chǎn)Web應用移動版轉(zhuǎn)化方法
【技術(shù)領域】
[0001]本發(fā)明是一種基于云計算模式的遺產(chǎn)Web應用移動版轉(zhuǎn)化方法,屬于軟件技術(shù)領域。
【背景技術(shù)】
[0002]《第31次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報表》顯示:手機已經(jīng)成為了第一大上網(wǎng)終端,使用手機上網(wǎng)的網(wǎng)民數(shù)量占整體網(wǎng)民數(shù)量的74.5 %。然而目前大多數(shù)應用針對PC設計,影響在移動設備上的用戶體驗,因為移動設備屏幕尺寸小,操作方式與PC不同,網(wǎng)絡帶寬有限。
[0003]針對上述問題,最直接的解決方案是重新開發(fā)一個面向移動設備的全新Web應用。例如,基于流行的響應式用戶界面(Responsive UI)設計方式,Web應用的擁有者可以針對移動設備的屏幕尺寸、操作方式和通訊方式,重新開發(fā)一個與原有應用對應的移動版本應用。盡管這種實現(xiàn)方式的效果最好,但是這種實現(xiàn)方式有兩個問題:一方面,重新開發(fā)移動版Web應用對于個人或中小型企業(yè)而言,需要重新編寫一套HTML、CSS、JavaScript代碼,開發(fā)成本和代價較大;另一方面,PC版和移動版兩個架構(gòu)不同的應用版本也帶來了更高的維護成本,當需要修改應用內(nèi)容時,必須同時修改PC版和移動版兩個不同的應用,這無疑會增大Web應用的維護成本。
[0004]由此可見,盡管重新開發(fā)一個移動版本的應用會使用戶得到最好的體驗,但是開發(fā)成本、維護成本都較大;而全自動轉(zhuǎn)化效果不好。由此,如何半自動地將遺產(chǎn)Web應用轉(zhuǎn)為移動版是一個亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的是提供一種基于云計算模式的遺產(chǎn)Web應用移動版轉(zhuǎn)化方法MobiTran。其核心思想為:在開發(fā)時為遺產(chǎn)Web應用擁有者(以下簡稱開發(fā)者)提供半自動轉(zhuǎn)化技術(shù)和所見即所得的頁面編輯工具,在運行時提供兩套部署方案支持移動版應用的訪問。
[0006]本發(fā)明的技術(shù)方案為:
[0007]一種基于云計算模式的遺產(chǎn)Web應用移動版轉(zhuǎn)化方法,其步驟為:
[0008]I)對web應用頁面中的設定原子類別分別預設一模板,每一原子類別的模板對應一獲取數(shù)據(jù)單元的動作序列;
[0009]2)利用所述模板對每一待轉(zhuǎn)化PC版Web頁面進行自動分析,識別出其中對應于設定原子類別的原子數(shù)據(jù)單元,并生成獲取數(shù)據(jù)單元的動作序列;
[0010]3)將執(zhí)行所述動作序列得到的數(shù)據(jù)填充到對應的原子類別的模板中,生成移動版頁面;
[0011]4)將轉(zhuǎn)換后的移動版頁面生成新的URL,并在該PC版Web頁面添加重定向語句,用于當移動終端訪問該PC版Web頁面時,服務器能重定向至該移動版頁面。
[0012]一種基于云計算模式的遺產(chǎn)Web應用移動版轉(zhuǎn)化方法,其步驟為:
[0013]I)對web應用頁面中的設定原子類別分別預設一模板,每一原子類別的模板對應一獲取數(shù)據(jù)單元的動作序列;
[0014]2)利用所述模板對每一待轉(zhuǎn)化PC版Web頁面進行自動分析,識別出其中對應于設定原子類別的原子數(shù)據(jù)單元,并生成獲取數(shù)據(jù)單元的動作序列;
[0015]3)將執(zhí)行所述動作序列得到的數(shù)據(jù)填充到對應的原子類別的模板中,生成移動版頁面;
[0016]4)在瀏覽器上設置一代理服務器,當該代理服務器判斷訪問該PC版Web頁面的設備類型為移動終端時,返回該移動版頁面。
[0017]進一步的,所述步驟2)的具體方法包括:對每一原子類別預設一系列特征,將該PC版Web頁面中的各個區(qū)域和所有原子類別的特征進行相似度匹配,得到每一區(qū)域的類別和對應的模板及其動作序列;該?(:版Web頁面的頁面模板根據(jù)匹配得到的所有原子類別的模板組成。
[0018]進一步的,對每一類相似頁面創(chuàng)建一 URL正則表達式,根據(jù)該正則表達式抓取Web應用內(nèi)所有滿足該正則表達式的頁面,然后使用該類頁面對應的頁面模板進行頁面轉(zhuǎn)換,生成對應的移動版頁面。
[0019]進一步的,以所見即所得的方式對得到的類別進行標記,并將該標記操作轉(zhuǎn)換為對應的動作序列,與對應原子類別的模板的動作序列保存在一起,得到最終的動作序列。
[0020]進一步的,以所見即所得的方式修改所述頁面模板更改頁面中的模板,與對應原子類別的模板保存在一起,得到最終的頁面模板。
[0021]本發(fā)明主要包含四個步驟:
[0022]1,自動轉(zhuǎn)換。工具首先根據(jù)開發(fā)者輸入的URL對頁面進行自動分析,生成自動轉(zhuǎn)換結(jié)果頁面及轉(zhuǎn)換規(guī)則。
[0023]2,手工修改。工具為開發(fā)者提供所見即所得的方式,支持其對自動轉(zhuǎn)換后的頁面手動標記頁面區(qū)域類型、更換頁面樣式、增加具有移動版特性的元素,同時修改步驟I生成的轉(zhuǎn)換規(guī)則。
[0024]3,抓取并轉(zhuǎn)換頁面。工具根據(jù)開發(fā)者輸入的URL正則表達式抓取Web應用內(nèi)所有滿足該正則表達式的頁面,并使用步驟2生成的規(guī)則進行轉(zhuǎn)換。動作序列和對應模板合并即為對應的轉(zhuǎn)換規(guī)則。
[0025]4,部署。在開發(fā)者對Web應用內(nèi)需要轉(zhuǎn)換的所有頁面完成上述步驟后,工具為開發(fā)者提供兩套部署方式,支持移動版應用的訪問。
[0026]上述步驟的具體技術(shù)方案如下:
[0027]1.自動轉(zhuǎn)換。自動轉(zhuǎn)換頁面要使Web應用初步適應移動設備的顯示屏幕和使用習慣。自動轉(zhuǎn)換工作首先需要確定一系列單元類別,例如列表、網(wǎng)格、段落、表格、圖片、按鈕等,對于每一原子類別,人工根據(jù)其特征并預設模板。然后對原始頁面進行分析,識別出其中對應于上述類別的原子數(shù)據(jù)單元,并生成從該單元獲取數(shù)據(jù)的動作序列,最后由動作序列解釋器執(zhí)行動作序列得到數(shù)據(jù),由模板引擎將數(shù)據(jù)填充到對應的原子類別的模板中,生成移動版頁面。識別數(shù)據(jù)采取相似度匹配的方法,首先針對每一類別預設一系列特征,將頁面中的各個區(qū)域和所有原子類別的特征進行相似度匹配,以此確定該區(qū)域的類別。自動轉(zhuǎn)換的全部工作均在云平臺完成,最終存儲的內(nèi)容包括獲取數(shù)據(jù)的動作序列和頁面模板,其中頁面模板由頁面內(nèi)所有原子類別的模板組成。
[0028]2.手工修改。工具支持開發(fā)者以所見即所得的方式進行編輯。在自動轉(zhuǎn)換階段,轉(zhuǎn)換的結(jié)果可能不能令開發(fā)者完全滿意,例如列表未識別,表格識別錯誤,用戶希望更換模板等等。在手動編輯階段,開發(fā)者可以手動標記頁面中的元素類型,即可以將頁面中的元素標記為網(wǎng)格、段落、表格等,該操作將會轉(zhuǎn)換為對應的動作序列,和自動轉(zhuǎn)換的動作序列保存在一起,得到最終的動作序列;同時,對應的原子類別的模板也會和自動轉(zhuǎn)換的模板保存在一起,得到最終的模板。開發(fā)者還可以更改頁面中的原子類別的模板,例如切換有圖、無圖列表,更改后的模板將會覆蓋頁面模板中對應原子類別的模板,該模板將即時生效。所有編輯工作均以所見即所得的方式進行,由工具進行開發(fā)者操作到動作序列、模型修改的映射。
[0029]3.抓取并轉(zhuǎn)換頁面。如果一個Web應用內(nèi)多個頁面有相似的結(jié)構(gòu),即它們可以使用相同的動作序列和模板進行轉(zhuǎn)換,那么稱這多個頁面是相似的,例如一個新聞網(wǎng)站的所有新聞詳情頁面都是相似的。相似的頁面通常都有相似的URL,可以人工構(gòu)造只匹配這些頁面的正則表達式,工具根據(jù)該正則表達式抓取Web應用內(nèi)所有滿足該正則表達式的頁面,并使用步驟2生成的模板和動作序列進行轉(zhuǎn)換。
[0030]4.部署。本工具為開發(fā)者提供兩套部署方案。方案一中,轉(zhuǎn)換后的所有移動版頁面均生成新的URL,移動版頁面通過新的URL訪問。該方案需要在開發(fā)者在所有原始Web頁面添加重定向語句,保證當移動終端訪問PC版頁面時,服務器能重定