專利名稱:一種聚合數(shù)據(jù)內(nèi)容的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web應(yīng)用中的數(shù)據(jù)聚合技術(shù),尤其涉及一種聚合Widget數(shù)據(jù)內(nèi)容的方 法和系統(tǒng)。
背景技術(shù):
Widget是一種客戶端的應(yīng)用程序,它允許開發(fā)者使用Web標(biāo)準(zhǔn)將內(nèi)容嵌入Web文 件。Widget—般提供一定的配置功能,允許用戶進(jìn)行自定義。由于Widget的功能比較具體, 可復(fù)用的程度比較高。Widget—般構(gòu)建在某種平臺(tái)之上,由平臺(tái)負(fù)責(zé)對(duì)Widget進(jìn)行管理, 與此同時(shí),平臺(tái)會(huì)提供一系列的應(yīng)用程序接口 (API, Application Programming Internet) 供Widget使用。第三方可根據(jù)此平臺(tái)提供的開發(fā)規(guī)范,開發(fā)自身的窗口小部件,并運(yùn)行在 該平臺(tái)上。通常,Widget可按照運(yùn)行平臺(tái)分成三類桌面窗口 Widget (desktop Widget)、移 動(dòng)Widget(Mobile Widget)禾口 Web Widget。 圖1示出了現(xiàn)有的Widget的結(jié)構(gòu),如圖1所示,Widget由用戶輸入(Userlnput) 和處理邏輯(Logic)組成,Widget提供一個(gè)接口來接受用戶輸入,處理邏輯根據(jù)這個(gè)輸 入得到輸出結(jié)果,處理邏輯采用Web標(biāo)準(zhǔn)的語言JavaScript編寫,通過在HTML中嵌入 JavaScript來向用戶展示輸出。 圖2示出了現(xiàn)有的Widge運(yùn)行的系統(tǒng),如圖2所示,Widget所完成的功能比較具 體和單一,多個(gè)Widget之間運(yùn)行獨(dú)立,沒有形成通信的規(guī)范和標(biāo)準(zhǔn),也沒有為Widget輸出 定義標(biāo)準(zhǔn)的接口,而且Widget之間的參數(shù)也不能直接傳遞,因此,Widget之間不能交互和 形成聚合。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種聚合Widget數(shù)據(jù)內(nèi)容的方法和系統(tǒng), 能使Widget之間進(jìn)行數(shù)據(jù)內(nèi)容的交互和聚合,滿足用戶的個(gè)性化需求。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
本發(fā)明提供了一種聚合數(shù)據(jù)內(nèi)容的方法,包括 分析輸入的Widget源碼;根據(jù)用戶的選擇建立一個(gè)以上Widget間輸入輸出映射 關(guān)系,生成聚合模板; 根據(jù)所述聚合模板生成Widget代碼,將所生成的Widget代碼插入所述Widget源 碼; 所述Widget引擎運(yùn)行所述Widget和所述Widget源碼,所述Widget從Widget引 擎的存儲(chǔ)區(qū)中讀取輸出變量作為自身之外的Widget輸入。 其中,所述分析輸入的Widget源碼具體為獲取所述Widget源碼;分析Widget的 輸入和Widget的輸出;并將分析得到的Widget的輸入的變量名和Widget的輸出的變量名 傳送給轉(zhuǎn)換器。 上述方案中,所述根據(jù)規(guī)則分析Widget的輸入具體為所述Widget利用接收用戶
4輸入的接口,分析和查找用來定義所述Widget中用戶輸入的特定標(biāo)簽,獲得所述Widget的 輸入。 上述方案中,所述分析Widget的輸出具體為Widget的邏輯根據(jù)JavaScript輸 出的規(guī)律獲得Widget的輸出。 上述方案中,所述建立一個(gè)以上Widget間輸入輸出映射關(guān)系,生成聚合模板具體 為獲得分析過的所述Widget的輸入和Widget的輸出,用戶選擇需要聚合的Widget ;接收 用戶選擇的更改項(xiàng),如果用戶選擇需要聚合Widget的輸入,則顯示已存儲(chǔ)的Widget輸出變 量名,并接收已存儲(chǔ)的輸出變量名;如果用戶選擇需要聚合Widget的輸出,則接收要存儲(chǔ) 的輸出變量名,并根據(jù)Widget名和輸出變量名生成唯一的存儲(chǔ)標(biāo)識(shí);判斷用戶是否完成要 接收的所有更改項(xiàng),如果完成,則根據(jù)映射關(guān)系生成聚合模板;如果未完成,則繼續(xù)判斷用 戶選擇。 上述方案中,所述生成聚合模板為用戶按照一定的規(guī)則或約定寫文件生成所述
聚合模板,或者通過用戶界面選擇后由聚合預(yù)處理器自動(dòng)生成所述聚合模板。 上述方案中,所述存儲(chǔ)區(qū)存儲(chǔ)Widget的輸出變量,并為需要輸入的Widget提供參數(shù)。 本發(fā)明還提供了一種一種聚合數(shù)據(jù)內(nèi)容的系統(tǒng),包括聚合預(yù)處理器、Widget引 擎;其中, 聚合預(yù)處理器,用于分析輸入的Widget源碼,并根據(jù)用戶的選擇建立一個(gè)以上 Widget間輸入輸出映射關(guān)系,生成聚合模板;根據(jù)所述聚合模板生成Widget代碼,將所生 成的Widget代碼插入所述Widget源碼; Widget引擎,用于運(yùn)行Widget和Widget源碼,并為Widget的輸出提供存儲(chǔ)區(qū)。
其中,所述聚合預(yù)處理器進(jìn)一步包括分析模塊、模板生成模塊、代碼生成模塊; 其中, 分析模塊,用于接收所述Widget引擎發(fā)送的所述Widget源碼和聚合模板,并分析 Widget的輸入和Widget的輸出,將所述Widget的輸入的變量名和Widget的輸出的變量名 傳送給轉(zhuǎn)換器; 模板生成模塊,用于在獲得分析過的Widget的輸入和Widget的輸出后,向用戶發(fā) 送響應(yīng),選擇需要聚合的Widget,并接收用戶選擇的更改項(xiàng);當(dāng)用戶選擇需要聚合Widget 的輸入時(shí),顯示已經(jīng)存儲(chǔ)的Widget輸出變量名供用戶選擇,用戶選擇需要聚合Widget的輸 出時(shí),接收要存儲(chǔ)的輸出變量名;接收用戶為輸入變量選擇的已存儲(chǔ)的輸出變量名,并根據(jù) Widget名和輸出變量名為輸出變量生成唯一的存儲(chǔ)標(biāo)識(shí),根據(jù)映射關(guān)系生成聚合模板;
代碼生成模板,用于分析生成的所述聚合模板,在Widget代碼存儲(chǔ)變量并在所述 Widget代碼中讀取存儲(chǔ)變量;將獲取的全部Widget輸出的Widget代碼插入到所述Widget 源碼中。 上述系統(tǒng)中,所述Widget引擎進(jìn)一步包括存儲(chǔ)區(qū)、Widget ;其中, 存儲(chǔ)區(qū),用于存儲(chǔ)Widget的輸出,為需要輸入的Widget提供所需的變量; Widget,用于提供接口接收用戶輸入,根據(jù)用戶輸入得到輸出結(jié)果,并輸出變量到
Widget引擎的存儲(chǔ)區(qū)。 本發(fā)明所提供的聚合Widget數(shù)據(jù)內(nèi)容的方法和系統(tǒng),分析輸入的Widget源碼,根據(jù)用戶選擇建立Widget間的輸入和輸出的映射關(guān)系,并利用存儲(chǔ)區(qū)存儲(chǔ)輸出變量,經(jīng) 過聚合預(yù)處理后的Widget源碼在Widget引擎上運(yùn)行時(shí)能夠從存儲(chǔ)區(qū)讀取變量,從而實(shí)現(xiàn) Widget間的數(shù)據(jù)內(nèi)容交互和聚合,用戶可以利用多個(gè)Widget實(shí)現(xiàn)用戶的定制應(yīng)用,達(dá)到滿 足用戶個(gè)性化需求的效果,提升用戶的體驗(yàn)。
圖1為現(xiàn)有Widget的內(nèi)部結(jié)構(gòu)圖; 圖2為現(xiàn)有Widget運(yùn)行時(shí)的系統(tǒng)的示意圖; 圖3為本發(fā)明實(shí)現(xiàn)聚合Widget數(shù)據(jù)內(nèi)容的方法的整體流程示意圖;
圖4為本發(fā)明實(shí)現(xiàn)聚合預(yù)處理器分析Widget源碼的方法的流程示意圖;
圖5為本發(fā)明實(shí)現(xiàn)聚合預(yù)處理器根據(jù)用戶的選擇建立輸入、輸出映射對(duì),生成聚 合模板的方法的流程示意圖; 圖6為本發(fā)明實(shí)現(xiàn)聚合預(yù)處理器生成Widget代碼并將代碼插入Widget源碼的方 法的流程示意圖; 圖7為本發(fā)明實(shí)現(xiàn)Widget引擎運(yùn)行Widget和Widget源碼時(shí)的方法的流程示意 圖; 圖8為本發(fā)明實(shí)現(xiàn)聚合Widget數(shù)據(jù)內(nèi)容的系統(tǒng)的內(nèi)部結(jié)構(gòu)的示意圖;
圖9為本發(fā)明一實(shí)施例實(shí)現(xiàn)Widget數(shù)據(jù)內(nèi)容聚合的效果示意圖。
具體實(shí)施例方式
為了實(shí)現(xiàn)Widget間的數(shù)據(jù)內(nèi)容聚合和交互,需要獲得Widget的輸出,并將這個(gè)輸 出作為參數(shù)傳遞給其他Widget作為輸入;本發(fā)明的基本思想是分析輸入的Widget源碼, 根據(jù)用戶的選擇建立Widget間輸入和輸出的映射關(guān)系,并采用存儲(chǔ)區(qū)存儲(chǔ)輸出變量,使得 Widget間的輸入和輸出能夠通過存儲(chǔ)區(qū)進(jìn)行交互。 具體的,聚合預(yù)處理器可作為一個(gè)獨(dú)立的模塊,輸入的是Widget源碼,輸出的是 經(jīng)過處理后的Widget源碼,因此,Widget引擎在部署Widget源碼前調(diào)用聚合預(yù)處理器處 理Widget源碼,在Widget引擎運(yùn)行Widget源碼時(shí),經(jīng)過聚合預(yù)處理器處理過的Widget源 碼能實(shí)現(xiàn)數(shù)據(jù)內(nèi)容的交互和聚合。 下面通過附圖及具體實(shí)施例對(duì)本發(fā)明再做進(jìn)一步的詳細(xì)說明。 本發(fā)明提供的聚合Widget數(shù)據(jù)內(nèi)容的方法,如圖3所示,該方法包括 步驟301,分析輸入的Widget源碼; 步驟302,根據(jù)用戶的選擇建立一個(gè)以上Widget間輸入輸出映射關(guān)系,生成聚合 模板; 步驟303,根據(jù)聚合模板生成Widget代碼,將所生成的Widget代碼插入Widget源 碼; 步驟304, Widget引擎運(yùn)行Widget和Widget源碼,Widget從Widget引擎里的存 儲(chǔ)區(qū)中讀取輸出變量作為自身之外的Widget輸入。 圖4是圖3中實(shí)現(xiàn)步驟301的具體方法,是本發(fā)明聚合預(yù)處理器分析輸入的 Widget源碼的方法流程圖,如圖4所示,該方法包括以下步驟
步驟401,接收Widget引擎發(fā)送的Widget源碼和聚合模板;
其中,Widget代碼一般是XML代碼中包含JavaScript代碼。
步驟402,分析Widget的輸入; 具體的,Widget利用接收用戶輸入的接口,比如有些Widget中使用特定的標(biāo)簽,如〈UserPref〉標(biāo)簽來定義用戶的輸入,這樣,聚合預(yù)處理器通過分析和查找用來定義Widget中用戶輸入的特定的標(biāo)簽,獲得Widget的輸入。
步驟403,分析Widget的輸出; 具體的,Widget沒有為輸出代碼設(shè)定接口,但是Widget的邏輯通過JavaScript來實(shí)現(xiàn),所以,根據(jù)JavaScript輸出的規(guī)律獲得Widget的輸出。比如,JavaScript會(huì)使用document, write () , in證Text () , i騰r匿L()方法來動(dòng)態(tài)輸出widget的內(nèi)容,可通過尋找這些標(biāo)志來分析和獲得Widget的輸出。 步驟404,將分析得到的Widget的輸入的變量名和Widget的輸出的變量名傳送給轉(zhuǎn)換器。 這里,所述轉(zhuǎn)換器是用于將Widget的輸入的變量名和Widget的輸出的變量名轉(zhuǎn)換成Widget需要的格式,經(jīng)過轉(zhuǎn)換器轉(zhuǎn)換的Widget的輸入的變量名和Widget的輸出的變量名可以被下一個(gè)步驟利用。 圖5是圖3中步驟302的具體實(shí)現(xiàn)方法,是本發(fā)明聚合預(yù)處理器根據(jù)用戶的選擇建立一個(gè)以上Widget間輸入輸出映射關(guān)系,生成聚合模板的方法的流程圖,如圖5所示,該方法包括以下步驟 步驟501,在獲得分析過的Widget的輸入和Widget的輸出后,通過文件或圖形界面的方式向用戶發(fā)送響應(yīng),用戶根據(jù)聚合預(yù)處理器發(fā)送的響應(yīng)選擇需要聚合的Widget。
步驟502,接收用戶選擇的更改項(xiàng),如果用戶選擇需要聚合Widget的輸入,則執(zhí)行步驟503 ;如果用戶選擇需要聚合的Widget的輸出,則執(zhí)行步驟504。 其中,所述更改項(xiàng)包括需要聚合的Widget的輸入和需要聚合的Widget的輸出。 步驟503,顯示已經(jīng)存儲(chǔ)的Widget輸出變量名供用戶選擇; 以下Widget輸出變量名以圖7中的01、02. ..On為例。 步驟504,接收用戶選擇的要存儲(chǔ)的輸出變量名; 假設(shè)用戶選擇的Widget輸出變量名以01為例。 步驟505,接收用戶為輸入變量選擇的已存儲(chǔ)的輸出變量名; 例如用戶選擇的輸入變量為圖7中i2,輸出變量為圖7中01。 步驟506,根據(jù)Widget名和輸出變量名,為步驟404中的輸出變量生成唯一的存儲(chǔ)標(biāo)識(shí)。 這里,所述Widget名是用戶根據(jù)需求定義的Widget引擎中Widget的名字,用于區(qū)別Widget引擎中的多個(gè)Widget。 步驟507,判斷用戶是否完成要接收的所有更改項(xiàng),如果完成所有更改項(xiàng),則執(zhí)行步驟508 ;如果未完成,則返回到步驟502,繼續(xù)判斷用戶選擇的更改項(xiàng)是Widget輸入還是Widget輸出。 步驟508,根據(jù)映射關(guān)系生成聚合模板。 假如通過聚合預(yù)處理器的處理獲得Widgetl(zipcodejii即)的輸入input為zipcode, Widgetl (zipcode—map)的輸出output為cityname ;Widget2 (Real—estate—info)的輸入input為city, Widget2 (Real_estate_info)的輸出output為real_estate,則用戶希望聚合Widgetl和Widget2的數(shù)據(jù)內(nèi)容,即:將Widgetl的輸出cityname作為Widget2的輸入,用戶可按照一定的規(guī)則或約定來寫文件生成聚合模板,或者通過用戶界面選擇后由聚合預(yù)處理器自動(dòng)生成聚合模板。 其中,所述聚合模板表示W(wǎng)idget間的聚合,可按照以下格式定義聚合模板 〈mashup> 〈widget_out name:> 〈output name: > 〈/output> 〈/widget_out> 〈widget_in name:> 〈input name:> 〈/input> 〈/widget_in> 〈mashup> 比如上述郵政編碼Widget和房產(chǎn)信息Widget的聚合,可由如下的聚合模板來表示 〈mashup> 〈widget_out name:zipcode_map> 〈output name:cityname> 〈/output> 〈/widget_out> 〈widget_in name:Real_estate_info>
〈i即ut name:city> 〈/input> 〈/widget_in> 〈mashup> 圖6是圖3中步驟303的具體實(shí)現(xiàn)方法,是本發(fā)明根據(jù)聚合模板生成Widget代
碼,將所生成的Widget代碼插入Widget源碼的方法流程圖,如圖6所示,該方法包括以下步驟 步驟601,分析在步驟508中生成的聚合模板。 步驟602,對(duì)聚合模板中的輸出標(biāo)簽〈output〉對(duì)應(yīng)的變量名,根據(jù)聚合模板中〈widget_out>標(biāo)簽在Widget代碼存儲(chǔ)變量。 比如對(duì)于步驟508中的聚合模板,插入存儲(chǔ)Widgetl (zipcodejn即)的output (01) cityname變量的代石馬為setCookie( "acityname,,, city, name)。
步驟603中,對(duì)聚合模板中的輸入標(biāo)簽〈input〉對(duì)應(yīng)的變量名,根據(jù)聚合模板中〈widget」n〉標(biāo)簽在Widget代碼中讀取存儲(chǔ)變量。 比如對(duì)于步驟508中的聚合模板,為Widget2(Real_estate」nfo)的Input (il)city讀取0 1的代石馬為var cityname = getCookieByName (cookie0bj, "cityname,,)。
步驟604,將獲取的全部Widget輸出的Widget代碼插入到Widget源碼。
這里,所述插入可以是用戶通過編輯界面編寫程序?qū)⑷縒idget輸出的代碼寫進(jìn)Widget引擎。 圖7是圖3中步驟304的具體實(shí)現(xiàn)方法,是本發(fā)明Widget引擎運(yùn)行Widget和Widget源碼的方法流程圖,如圖7所示,該方法包括 Widgetl提供接口來接收用戶輸入il,Widget中的處理邏輯根據(jù)這個(gè)用戶輸入得到輸出結(jié)果01、 02等;Widgetl根據(jù)輸入得到輸出01,并將同時(shí)得到的輸出變量01輸出到Widget引擎中的存儲(chǔ)區(qū);經(jīng)過聚合預(yù)處理器處理后的Widget源碼在Widget引擎上運(yùn)行時(shí),使得Widget能夠從存儲(chǔ)區(qū)讀取變量,因此Widget2能夠從存儲(chǔ)區(qū)中讀取Widgetl的輸出變量01作為自身的輸入;然后Widget2輸出02并輸出變量02到Widget引擎中的存儲(chǔ)區(qū),以此類推,實(shí)現(xiàn)Widget之間數(shù)據(jù)內(nèi)容的聚合。 Widget引擎中的存儲(chǔ)區(qū)存儲(chǔ)有Widget的輸出變量01、 02. . . On,并為需要輸入的Widget提供參數(shù),因此,Widget間的輸入和輸出能夠利用所述存儲(chǔ)區(qū)實(shí)現(xiàn)Widget數(shù)據(jù)內(nèi)容的交互。用戶可以根據(jù)需要改變Widget引擎中的Widget數(shù)量,用戶也可以根據(jù)要求來選擇作為存儲(chǔ)區(qū)的介質(zhì)。 為實(shí)現(xiàn)上述方法,本發(fā)明還提供了一種聚合Widget數(shù)據(jù)內(nèi)容的系統(tǒng),如圖8所示,該系統(tǒng)包括聚合預(yù)處理器81、 Widget引擎82 ;其中, 聚合預(yù)處理器81,用于分析輸入的Widget源碼,并根據(jù)用戶的選擇建立一個(gè)以上Widget間輸入輸出映射關(guān)系,生成聚合模板;根據(jù)所述聚合模板生成Widget代碼,將所生成的Widget代碼插入Widget源碼; 所述聚合預(yù)處理器81進(jìn)一步包括分析模塊811、模板生成模塊812、代碼生成模塊813 ;其中, 分析模塊811,用于接收Widget引擎發(fā)送的Widget源碼和聚合模板,并分析Widget的輸入和Widget的輸出,最后將Widget的輸入的變量名和Widget的輸出的變量名傳送給轉(zhuǎn)換器。 這里,所述轉(zhuǎn)換器用于將Widget的輸入和Widget的輸出的變量名轉(zhuǎn)換成模板生成模塊812中Widget需要的格式,經(jīng)過轉(zhuǎn)換器轉(zhuǎn)換的Widget的輸入的變量名和Widget輸出的變量名可以被模板生成模塊812利用。 模板生成模塊812,用于在獲得分析過的Widget的輸入、輸出后,通過文件或者圖形界面的方式向用戶發(fā)送響應(yīng),用戶根據(jù)聚合預(yù)處理器發(fā)送的響應(yīng)選擇需要聚合的Widget,并接收用戶選擇的更改項(xiàng),當(dāng)用戶選擇需要聚合Widget的輸入時(shí),則顯示已經(jīng)存儲(chǔ)的Widget輸出變量名供用戶選擇;當(dāng)用戶選擇需要聚合Widget的輸出時(shí),則接收用戶選擇的要存儲(chǔ)的輸出變量名;接收用戶為輸入變量選擇的已存儲(chǔ)的輸出變量名;根據(jù)Widget名和輸出變量名為輸出變量生成唯一的存儲(chǔ)標(biāo)識(shí),最后根據(jù)映射關(guān)系生成聚合模板。
其中,所述Widget名是用戶根據(jù)需求定義的Widget引擎中Widget的名字,用于區(qū)別Widget引擎中的多個(gè)Widget。 代碼生成模板813,用于分析生成的聚合模板,對(duì)聚合模板中的輸出標(biāo)簽對(duì)應(yīng)的變量名,根據(jù)聚合模板中〈Widget_0ut>標(biāo)簽,在Widget代碼存儲(chǔ)變量;對(duì)聚合模板中的輸入標(biāo)簽對(duì)應(yīng)的變量名,根據(jù)聚合模板中〈widget」n〉標(biāo)簽,在Widget代碼中讀取存儲(chǔ)變量;最后將獲取的全部Widget輸出的代碼,插入到Widget源碼。 所述Widget引擎82,用于運(yùn)行Widget和Widget源碼,并為Widget的輸出提供存儲(chǔ)區(qū);Widget引擎進(jìn)一步包括存儲(chǔ)區(qū)821、Widget ;其中, 存儲(chǔ)區(qū)821,用于存儲(chǔ)Widget的輸出,為需要輸入的Widget提供所需變量;
這里,Widget間的輸入和輸出能夠利用所述存儲(chǔ)區(qū),實(shí)現(xiàn)Widget數(shù)據(jù)內(nèi)容的交;用戶可以根據(jù)需求來選擇作為存儲(chǔ)區(qū)的介質(zhì),本實(shí)施例中選取Cookie作為存儲(chǔ)區(qū)介質(zhì)存儲(chǔ)Widget的輸出變量。 Widget,用于提供接口來接收用戶輸入,Widget中的處理邏輯根據(jù)該用戶輸入得
到輸出結(jié)果,并輸出變量到Widget引擎的存儲(chǔ)區(qū); 這里,用戶可以根據(jù)需要改變Widget引擎中的Widget數(shù)量。 下面結(jié)合附圖來說明本發(fā)明的一個(gè)具體實(shí)施例的詳細(xì)實(shí)現(xiàn)過程。 圖9是一個(gè)聚合Widget數(shù)據(jù)內(nèi)容的具體實(shí)施例,如圖9所示,三個(gè)Widget經(jīng)過聚
合預(yù)處理器處理后生成一個(gè)新的Mashup應(yīng)用程序,實(shí)現(xiàn)了 Widget間的數(shù)據(jù)聚合。 圖9中的三個(gè)Widget是互相獨(dú)立的Widget,圖9從左往右依次為輸入框Widget、
地圖Widget和房產(chǎn)信息Widget,輸入框Widget的功能是輸入郵政編碼后在Widget的界面
上顯示該郵政編碼,地圖Widget的功能是輸入郵政編碼后在該Widget的界面上顯示與郵
政編碼相對(duì)應(yīng)的地理位置的地圖和天氣情況,房產(chǎn)信息Widget的功能是輸入城市名后該
Widget的界面上顯示該城市的房產(chǎn)相關(guān)信息。 經(jīng)過聚合預(yù)處理器處理后,三個(gè)Widget實(shí)現(xiàn)了數(shù)據(jù)內(nèi)容的聚合,聚合后實(shí)現(xiàn)的功能是在輸入框Widget中輸入郵政編碼,該Widget界面上顯示郵政編碼,同時(shí)地圖Widget上顯示和該郵政編碼相應(yīng)的地理位置的地圖和天氣預(yù)報(bào),房產(chǎn)信息Widget上顯示該地理位置相應(yīng)城市的房產(chǎn)信息列表。 下面按步驟描述聚合預(yù)處理器是如何處理這三個(gè)Widget代碼的,具體的, 第一步,聚合預(yù)處理器分析Widget的輸入、輸出;輸入框Widget、地圖Widget和
房產(chǎn)信息Widget的輸入、輸出分析結(jié)果如下 Widget name :Input initial input :zipcode output :zipcode Widget name :Weather Map input :zipcode map output :cityname Widget name :Real Estate input :city output :real estate infolist 第二步,聚合預(yù)處理器根據(jù)第一步的Widget輸入、輸出,選擇建立輸入、輸出映射
關(guān)系,生成聚合模板。 本實(shí)施例中,用戶選擇Widget輸入時(shí),Widget (Input」nitial)的輸出郵政編碼(zipcode)作為地圖Widget (Weather Map)的輸入郵政編碼(zipcode_map),地圖Widget (Weather Map)的輸出城市名(cityname)作為房產(chǎn)信息列表Widget的輸入城市名(city),使用下面的聚合模板來表示三者之間的數(shù)據(jù)內(nèi)容聚合關(guān)系
〈mashup〉 〈widget_out name = Input_initial> 〈output name = zipcode>:0130] 〈/output>
:0131] 〈/widget_out>
:0132] 〈widget_in name = Weather Map>
:0133] <input name = zipcode一map〉
:0134] 〈/input>
:0135] 〈/widget_in>
:0136] </mashup>
:0137] 〈mashup>
:0138] 〈widget_out name = Weather Map〉
:0139] 〈output name = cityname>
:0140] 〈/output>
:0141] 〈/widget_out>
:0142] 〈widget—in name 二 Real Estate>
:0143] 〈input name = city>
:0144] 〈/input>
:0145] 〈widget_in>
:0146] 〈/mashup>
:0147] 第三歩,聚合預(yù)處理器根據(jù)第二步中形成的聚合模板生成Widget代碼,并將代碼
插入Widget源碼。 以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種聚合數(shù)據(jù)內(nèi)容的方法,其特征在于,該方法包括分析輸入的Widget源碼;根據(jù)用戶的選擇建立一個(gè)以上Widget間輸入輸出映射關(guān)系,生成聚合模板;根據(jù)所述聚合模板生成Widget代碼,將所生成的Widget代碼插入所述Widget源碼;所述Widget引擎運(yùn)行所述Widget和所述Widget源碼,所述Widget從Widget引擎的存儲(chǔ)區(qū)中讀取輸出變量作為自身之外的Widget輸入。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分析輸入的Widget源碼具體為 獲取所述Widget源碼;分析Widget的輸入和Widget的輸出;并將分析得到的Widget的輸入的變量名和 Widget的輸出的變量名傳送給轉(zhuǎn)換器。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)規(guī)則分析Widget的輸入具體為 所述Widget利用接收用戶輸入的接口 ,分析和查找用來定義所述Widget中用戶輸入的特 定標(biāo)簽,獲得所述Widget的輸入。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述分析Widget的輸出具體為Widget 的邏輯根據(jù)JavaScript輸出的規(guī)律獲得Widget的輸出。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立一個(gè)以上Widget間輸入輸出映 射關(guān)系,生成聚合模板具體為獲得分析過的所述Widget的輸入和Widget的輸出,用戶選擇需要聚合的Widget ;接收用戶選擇的更改項(xiàng),如果用戶選擇需要聚合Widget的輸入,則顯示已存儲(chǔ)的 Widget輸出變量名,并接收已存儲(chǔ)的輸出變量名;如果用戶選擇需要聚合Widget的輸出, 則接收要存儲(chǔ)的輸出變量名,并根據(jù)Widget名和輸出變量名生成唯一的存儲(chǔ)標(biāo)識(shí);判斷用戶是否完成要接收的所有更改項(xiàng),如果完成,則根據(jù)映射關(guān)系生成聚合模板;如 果未完成,則繼續(xù)判斷用戶選擇。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述生成聚合模板為用戶按照一定的規(guī) 則或約定寫文件生成所述聚合模板,或者通過用戶界面選擇后由聚合預(yù)處理器自動(dòng)生成所 述聚合模板。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)區(qū)存儲(chǔ)Widget的輸出變量,并為 需要輸入的Widget提供參數(shù)。
8. —種聚合數(shù)據(jù)內(nèi)容的系統(tǒng),其特征在于,該系統(tǒng)包括聚合預(yù)處理器、Widget引擎; 其中,聚合預(yù)處理器,用于分析輸入的Widget源碼,并根據(jù)用戶的選擇建立一個(gè)以上Widget 間輸入輸出映射關(guān)系,生成聚合模板;根據(jù)所述聚合模板生成Widget代碼,將所生成的 Widget代碼插入所述Widget源碼;Widget引擎,用于運(yùn)行Widget和Widget源碼,并為Widget的輸出提供存儲(chǔ)區(qū)。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述聚合預(yù)處理器進(jìn)一步包括分析模 塊、模板生成模塊、代碼生成模塊;其中,分析模塊,用于接收所述Widget引擎發(fā)送的所述Widget源碼和聚合模板,并分析 Widget的輸入和Widget的輸出,將所述Widget的輸入的變量名和Widget的輸出的變量名 傳送給轉(zhuǎn)換器;模板生成模塊,用于在獲得分析過的Widget的輸入和Widget的輸出后,向用戶發(fā)送 響應(yīng),選擇需要聚合的Widget,并接收用戶選擇的更改項(xiàng);當(dāng)用戶選擇需要聚合Widget的 輸入時(shí),顯示已經(jīng)存儲(chǔ)的Widget輸出變量名供用戶選擇,用戶選擇需要聚合Widget的輸 出時(shí),接收要存儲(chǔ)的輸出變量名;接收用戶為輸入變量選擇的已存儲(chǔ)的輸出變量名,并根據(jù) Widget名和輸出變量名為輸出變量生成唯一的存儲(chǔ)標(biāo)識(shí),根據(jù)映射關(guān)系生成聚合模板;代碼生成模板,用于分析生成的所述聚合模板,在Widget代碼存儲(chǔ)變量并在所述 Widget代碼中讀取存儲(chǔ)變量;將獲取的全部Widget輸出的Widget代碼插入到所述Widget 源碼中。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述Widget引擎進(jìn)一步包括存儲(chǔ) 區(qū)、Widget ;其中,存儲(chǔ)區(qū),用于存儲(chǔ)Widget的輸出,為需要輸入的Widget提供所需的變量; Widget,用于提供接口接收用戶輸入,根據(jù)用戶輸入得到輸出結(jié)果,并輸出變量到 Widget引擎的存儲(chǔ)區(qū)。
全文摘要
本發(fā)明公開了一種聚合數(shù)據(jù)內(nèi)容的方法,分析輸入的Widget源碼;根據(jù)用戶的選擇建立一個(gè)以上Widget間輸入輸出映射關(guān)系,生成聚合模板;根據(jù)所述聚合模板生成Widget代碼,將所生成的Widget代碼插入Widget源碼;所述Widget引擎運(yùn)行所述Widget和Widget源碼,所述Widget從Widget引擎的存儲(chǔ)區(qū)中讀取輸出變量作為自身之外的Widget輸入。本發(fā)明還同時(shí)公開了一種聚合Widget數(shù)據(jù)內(nèi)容的系統(tǒng),根據(jù)本發(fā)明的技術(shù)方案,能使Widget之間進(jìn)行數(shù)據(jù)內(nèi)容的交互和聚合,滿足用戶的個(gè)性化需求,提升用戶的體驗(yàn)。
文檔編號(hào)G06F9/54GK101794240SQ20101000120
公開日2010年8月4日 申請(qǐng)日期2010年1月4日 優(yōu)先權(quán)日2010年1月4日
發(fā)明者王文東, 王蔚, 秦靈伶, 賈霞, 闕喜戎, 龔向陽 申請(qǐng)人:中興通訊股份有限公司;北京郵電大學(xué)