一种聚合数据内容的方法和系统的制作方法

文档序号:6596795阅读:137来源:国知局
专利名称:一种聚合数据内容的方法和系统的制作方法
技术领域
本发明涉及Web应用中的数据聚合技术,尤其涉及一种聚合Widget数据内容的方 法和系统。
背景技术
Widget是一种客户端的应用程序,它允许开发者使用Web标准将内容嵌入Web文 件。Widget—般提供一定的配置功能,允许用户进行自定义。由于Widget的功能比较具体, 可复用的程度比较高。Widget—般构建在某种平台之上,由平台负责对Widget进行管理, 与此同时,平台会提供一系列的应用程序接口 (API, Application Programming Internet) 供Widget使用。第三方可根据此平台提供的开发规范,开发自身的窗口小部件,并运行在 该平台上。通常,Widget可按照运行平台分成三类桌面窗口 Widget (desktop Widget)、移 动Widget(Mobile Widget)禾口 Web Widget。 图1示出了现有的Widget的结构,如图1所示,Widget由用户输入(Userlnput) 和处理逻辑(Logic)组成,Widget提供一个接口来接受用户输入,处理逻辑根据这个输 入得到输出结果,处理逻辑采用Web标准的语言JavaScript编写,通过在HTML中嵌入 JavaScript来向用户展示输出。 图2示出了现有的Widge运行的系统,如图2所示,Widget所完成的功能比较具 体和单一,多个Widget之间运行独立,没有形成通信的规范和标准,也没有为Widget输出 定义标准的接口,而且Widget之间的参数也不能直接传递,因此,Widget之间不能交互和 形成聚合。

发明内容
有鉴于此,本发明的主要目的在于提供一种聚合Widget数据内容的方法和系统, 能使Widget之间进行数据内容的交互和聚合,满足用户的个性化需求。
为达到上述目的,本发明的技术方案是这样实现的
本发明提供了一种聚合数据内容的方法,包括 分析输入的Widget源码;根据用户的选择建立一个以上Widget间输入输出映射 关系,生成聚合模板; 根据所述聚合模板生成Widget代码,将所生成的Widget代码插入所述Widget源 码; 所述Widget引擎运行所述Widget和所述Widget源码,所述Widget从Widget引 擎的存储区中读取输出变量作为自身之外的Widget输入。 其中,所述分析输入的Widget源码具体为获取所述Widget源码;分析Widget的 输入和Widget的输出;并将分析得到的Widget的输入的变量名和Widget的输出的变量名 传送给转换器。 上述方案中,所述根据规则分析Widget的输入具体为所述Widget利用接收用户
4输入的接口,分析和查找用来定义所述Widget中用户输入的特定标签,获得所述Widget的 输入。 上述方案中,所述分析Widget的输出具体为Widget的逻辑根据JavaScript输 出的规律获得Widget的输出。 上述方案中,所述建立一个以上Widget间输入输出映射关系,生成聚合模板具体 为获得分析过的所述Widget的输入和Widget的输出,用户选择需要聚合的Widget ;接收 用户选择的更改项,如果用户选择需要聚合Widget的输入,则显示已存储的Widget输出变 量名,并接收已存储的输出变量名;如果用户选择需要聚合Widget的输出,则接收要存储 的输出变量名,并根据Widget名和输出变量名生成唯一的存储标识;判断用户是否完成要 接收的所有更改项,如果完成,则根据映射关系生成聚合模板;如果未完成,则继续判断用 户选择。 上述方案中,所述生成聚合模板为用户按照一定的规则或约定写文件生成所述
聚合模板,或者通过用户界面选择后由聚合预处理器自动生成所述聚合模板。 上述方案中,所述存储区存储Widget的输出变量,并为需要输入的Widget提供参数。 本发明还提供了一种一种聚合数据内容的系统,包括聚合预处理器、Widget引 擎;其中, 聚合预处理器,用于分析输入的Widget源码,并根据用户的选择建立一个以上 Widget间输入输出映射关系,生成聚合模板;根据所述聚合模板生成Widget代码,将所生 成的Widget代码插入所述Widget源码; Widget引擎,用于运行Widget和Widget源码,并为Widget的输出提供存储区。
其中,所述聚合预处理器进一步包括分析模块、模板生成模块、代码生成模块; 其中, 分析模块,用于接收所述Widget引擎发送的所述Widget源码和聚合模板,并分析 Widget的输入和Widget的输出,将所述Widget的输入的变量名和Widget的输出的变量名 传送给转换器; 模板生成模块,用于在获得分析过的Widget的输入和Widget的输出后,向用户发 送响应,选择需要聚合的Widget,并接收用户选择的更改项;当用户选择需要聚合Widget 的输入时,显示已经存储的Widget输出变量名供用户选择,用户选择需要聚合Widget的输 出时,接收要存储的输出变量名;接收用户为输入变量选择的已存储的输出变量名,并根据 Widget名和输出变量名为输出变量生成唯一的存储标识,根据映射关系生成聚合模板;
代码生成模板,用于分析生成的所述聚合模板,在Widget代码存储变量并在所述 Widget代码中读取存储变量;将获取的全部Widget输出的Widget代码插入到所述Widget 源码中。 上述系统中,所述Widget引擎进一步包括存储区、Widget ;其中, 存储区,用于存储Widget的输出,为需要输入的Widget提供所需的变量; Widget,用于提供接口接收用户输入,根据用户输入得到输出结果,并输出变量到
Widget引擎的存储区。 本发明所提供的聚合Widget数据内容的方法和系统,分析输入的Widget源码,根据用户选择建立Widget间的输入和输出的映射关系,并利用存储区存储输出变量,经 过聚合预处理后的Widget源码在Widget引擎上运行时能够从存储区读取变量,从而实现 Widget间的数据内容交互和聚合,用户可以利用多个Widget实现用户的定制应用,达到满 足用户个性化需求的效果,提升用户的体验。


图1为现有Widget的内部结构图; 图2为现有Widget运行时的系统的示意图; 图3为本发明实现聚合Widget数据内容的方法的整体流程示意图;
图4为本发明实现聚合预处理器分析Widget源码的方法的流程示意图;
图5为本发明实现聚合预处理器根据用户的选择建立输入、输出映射对,生成聚 合模板的方法的流程示意图; 图6为本发明实现聚合预处理器生成Widget代码并将代码插入Widget源码的方 法的流程示意图; 图7为本发明实现Widget引擎运行Widget和Widget源码时的方法的流程示意 图; 图8为本发明实现聚合Widget数据内容的系统的内部结构的示意图;
图9为本发明一实施例实现Widget数据内容聚合的效果示意图。
具体实施例方式
为了实现Widget间的数据内容聚合和交互,需要获得Widget的输出,并将这个输 出作为参数传递给其他Widget作为输入;本发明的基本思想是分析输入的Widget源码, 根据用户的选择建立Widget间输入和输出的映射关系,并采用存储区存储输出变量,使得 Widget间的输入和输出能够通过存储区进行交互。 具体的,聚合预处理器可作为一个独立的模块,输入的是Widget源码,输出的是 经过处理后的Widget源码,因此,Widget引擎在部署Widget源码前调用聚合预处理器处 理Widget源码,在Widget引擎运行Widget源码时,经过聚合预处理器处理过的Widget源 码能实现数据内容的交互和聚合。 下面通过附图及具体实施例对本发明再做进一步的详细说明。 本发明提供的聚合Widget数据内容的方法,如图3所示,该方法包括 步骤301,分析输入的Widget源码; 步骤302,根据用户的选择建立一个以上Widget间输入输出映射关系,生成聚合 模板; 步骤303,根据聚合模板生成Widget代码,将所生成的Widget代码插入Widget源 码; 步骤304, Widget引擎运行Widget和Widget源码,Widget从Widget引擎里的存 储区中读取输出变量作为自身之外的Widget输入。 图4是图3中实现步骤301的具体方法,是本发明聚合预处理器分析输入的 Widget源码的方法流程图,如图4所示,该方法包括以下步骤
步骤401,接收Widget引擎发送的Widget源码和聚合模板;
其中,Widget代码一般是XML代码中包含JavaScript代码。
步骤402,分析Widget的输入; 具体的,Widget利用接收用户输入的接口,比如有些Widget中使用特定的标签,如〈UserPref〉标签来定义用户的输入,这样,聚合预处理器通过分析和查找用来定义Widget中用户输入的特定的标签,获得Widget的输入。
步骤403,分析Widget的输出; 具体的,Widget没有为输出代码设定接口,但是Widget的逻辑通过JavaScript来实现,所以,根据JavaScript输出的规律获得Widget的输出。比如,JavaScript会使用document, write () , in證Text () , i騰r匿L()方法来动态输出widget的内容,可通过寻找这些标志来分析和获得Widget的输出。 步骤404,将分析得到的Widget的输入的变量名和Widget的输出的变量名传送给转换器。 这里,所述转换器是用于将Widget的输入的变量名和Widget的输出的变量名转换成Widget需要的格式,经过转换器转换的Widget的输入的变量名和Widget的输出的变量名可以被下一个步骤利用。 图5是图3中步骤302的具体实现方法,是本发明聚合预处理器根据用户的选择建立一个以上Widget间输入输出映射关系,生成聚合模板的方法的流程图,如图5所示,该方法包括以下步骤 步骤501,在获得分析过的Widget的输入和Widget的输出后,通过文件或图形界面的方式向用户发送响应,用户根据聚合预处理器发送的响应选择需要聚合的Widget。
步骤502,接收用户选择的更改项,如果用户选择需要聚合Widget的输入,则执行步骤503 ;如果用户选择需要聚合的Widget的输出,则执行步骤504。 其中,所述更改项包括需要聚合的Widget的输入和需要聚合的Widget的输出。 步骤503,显示已经存储的Widget输出变量名供用户选择; 以下Widget输出变量名以图7中的01、02. ..On为例。 步骤504,接收用户选择的要存储的输出变量名; 假设用户选择的Widget输出变量名以01为例。 步骤505,接收用户为输入变量选择的已存储的输出变量名; 例如用户选择的输入变量为图7中i2,输出变量为图7中01。 步骤506,根据Widget名和输出变量名,为步骤404中的输出变量生成唯一的存储标识。 这里,所述Widget名是用户根据需求定义的Widget引擎中Widget的名字,用于区别Widget引擎中的多个Widget。 步骤507,判断用户是否完成要接收的所有更改项,如果完成所有更改项,则执行步骤508 ;如果未完成,则返回到步骤502,继续判断用户选择的更改项是Widget输入还是Widget输出。 步骤508,根据映射关系生成聚合模板。 假如通过聚合预处理器的处理获得Widgetl(zipcodejii即)的输入input为zipcode, Widgetl (zipcode—map)的输出output为cityname ;Widget2 (Real—estate—info)的输入input为city, Widget2 (Real_estate_info)的输出output为real_estate,则用户希望聚合Widgetl和Widget2的数据内容,即:将Widgetl的输出cityname作为Widget2的输入,用户可按照一定的规则或约定来写文件生成聚合模板,或者通过用户界面选择后由聚合预处理器自动生成聚合模板。 其中,所述聚合模板表示Widget间的聚合,可按照以下格式定义聚合模板 〈mashup> 〈widget_out name:> 〈output name: > 〈/output> 〈/widget_out> 〈widget_in name:> 〈input name:> 〈/input> 〈/widget_in> 〈mashup> 比如上述邮政编码Widget和房产信息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的具体实现方法,是本发明根据聚合模板生成Widget代
码,将所生成的Widget代码插入Widget源码的方法流程图,如图6所示,该方法包括以下步骤 步骤601,分析在步骤508中生成的聚合模板。 步骤602,对聚合模板中的输出标签〈output〉对应的变量名,根据聚合模板中〈widget_out>标签在Widget代码存储变量。 比如对于步骤508中的聚合模板,插入存储Widgetl (zipcodejn即)的output (01) cityname变量的代石马为setCookie( "acityname,,, city, name)。
步骤603中,对聚合模板中的输入标签〈input〉对应的变量名,根据聚合模板中〈widget」n〉标签在Widget代码中读取存储变量。 比如对于步骤508中的聚合模板,为Widget2(Real_estate」nfo)的Input (il)city读取0 1的代石马为var cityname = getCookieByName (cookie0bj, "cityname,,)。
步骤604,将获取的全部Widget输出的Widget代码插入到Widget源码。
这里,所述插入可以是用户通过编辑界面编写程序将全部Widget输出的代码写进Widget引擎。 图7是图3中步骤304的具体实现方法,是本发明Widget引擎运行Widget和Widget源码的方法流程图,如图7所示,该方法包括 Widgetl提供接口来接收用户输入il,Widget中的处理逻辑根据这个用户输入得到输出结果01、 02等;Widgetl根据输入得到输出01,并将同时得到的输出变量01输出到Widget引擎中的存储区;经过聚合预处理器处理后的Widget源码在Widget引擎上运行时,使得Widget能够从存储区读取变量,因此Widget2能够从存储区中读取Widgetl的输出变量01作为自身的输入;然后Widget2输出02并输出变量02到Widget引擎中的存储区,以此类推,实现Widget之间数据内容的聚合。 Widget引擎中的存储区存储有Widget的输出变量01、 02. . . On,并为需要输入的Widget提供参数,因此,Widget间的输入和输出能够利用所述存储区实现Widget数据内容的交互。用户可以根据需要改变Widget引擎中的Widget数量,用户也可以根据要求来选择作为存储区的介质。 为实现上述方法,本发明还提供了一种聚合Widget数据内容的系统,如图8所示,该系统包括聚合预处理器81、 Widget引擎82 ;其中, 聚合预处理器81,用于分析输入的Widget源码,并根据用户的选择建立一个以上Widget间输入输出映射关系,生成聚合模板;根据所述聚合模板生成Widget代码,将所生成的Widget代码插入Widget源码; 所述聚合预处理器81进一步包括分析模块811、模板生成模块812、代码生成模块813 ;其中, 分析模块811,用于接收Widget引擎发送的Widget源码和聚合模板,并分析Widget的输入和Widget的输出,最后将Widget的输入的变量名和Widget的输出的变量名传送给转换器。 这里,所述转换器用于将Widget的输入和Widget的输出的变量名转换成模板生成模块812中Widget需要的格式,经过转换器转换的Widget的输入的变量名和Widget输出的变量名可以被模板生成模块812利用。 模板生成模块812,用于在获得分析过的Widget的输入、输出后,通过文件或者图形界面的方式向用户发送响应,用户根据聚合预处理器发送的响应选择需要聚合的Widget,并接收用户选择的更改项,当用户选择需要聚合Widget的输入时,则显示已经存储的Widget输出变量名供用户选择;当用户选择需要聚合Widget的输出时,则接收用户选择的要存储的输出变量名;接收用户为输入变量选择的已存储的输出变量名;根据Widget名和输出变量名为输出变量生成唯一的存储标识,最后根据映射关系生成聚合模板。
其中,所述Widget名是用户根据需求定义的Widget引擎中Widget的名字,用于区别Widget引擎中的多个Widget。 代码生成模板813,用于分析生成的聚合模板,对聚合模板中的输出标签对应的变量名,根据聚合模板中〈Widget_0ut>标签,在Widget代码存储变量;对聚合模板中的输入标签对应的变量名,根据聚合模板中〈widget」n〉标签,在Widget代码中读取存储变量;最后将获取的全部Widget输出的代码,插入到Widget源码。 所述Widget引擎82,用于运行Widget和Widget源码,并为Widget的输出提供存储区;Widget引擎进一步包括存储区821、Widget ;其中, 存储区821,用于存储Widget的输出,为需要输入的Widget提供所需变量;
这里,Widget间的输入和输出能够利用所述存储区,实现Widget数据内容的交;用户可以根据需求来选择作为存储区的介质,本实施例中选取Cookie作为存储区介质存储Widget的输出变量。 Widget,用于提供接口来接收用户输入,Widget中的处理逻辑根据该用户输入得
到输出结果,并输出变量到Widget引擎的存储区; 这里,用户可以根据需要改变Widget引擎中的Widget数量。 下面结合附图来说明本发明的一个具体实施例的详细实现过程。 图9是一个聚合Widget数据内容的具体实施例,如图9所示,三个Widget经过聚
合预处理器处理后生成一个新的Mashup应用程序,实现了 Widget间的数据聚合。 图9中的三个Widget是互相独立的Widget,图9从左往右依次为输入框Widget、
地图Widget和房产信息Widget,输入框Widget的功能是输入邮政编码后在Widget的界面
上显示该邮政编码,地图Widget的功能是输入邮政编码后在该Widget的界面上显示与邮
政编码相对应的地理位置的地图和天气情况,房产信息Widget的功能是输入城市名后该
Widget的界面上显示该城市的房产相关信息。 经过聚合预处理器处理后,三个Widget实现了数据内容的聚合,聚合后实现的功能是在输入框Widget中输入邮政编码,该Widget界面上显示邮政编码,同时地图Widget上显示和该邮政编码相应的地理位置的地图和天气预报,房产信息Widget上显示该地理位置相应城市的房产信息列表。 下面按步骤描述聚合预处理器是如何处理这三个Widget代码的,具体的, 第一步,聚合预处理器分析Widget的输入、输出;输入框Widget、地图Widget和
房产信息Widget的输入、输出分析结果如下 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 第二步,聚合预处理器根据第一步的Widget输入、输出,选择建立输入、输出映射
关系,生成聚合模板。 本实施例中,用户选择Widget输入时,Widget (Input」nitial)的输出邮政编码(zipcode)作为地图Widget (Weather Map)的输入邮政编码(zipcode_map),地图Widget (Weather Map)的输出城市名(cityname)作为房产信息列表Widget的输入城市名(city),使用下面的聚合模板来表示三者之间的数据内容聚合关系
〈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] 第三歩,聚合预处理器根据第二步中形成的聚合模板生成Widget代码,并将代码
插入Widget源码。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种聚合数据内容的方法,其特征在于,该方法包括分析输入的Widget源码;根据用户的选择建立一个以上Widget间输入输出映射关系,生成聚合模板;根据所述聚合模板生成Widget代码,将所生成的Widget代码插入所述Widget源码;所述Widget引擎运行所述Widget和所述Widget源码,所述Widget从Widget引擎的存储区中读取输出变量作为自身之外的Widget输入。
2. 根据权利要求1所述的方法,其特征在于,所述分析输入的Widget源码具体为 获取所述Widget源码;分析Widget的输入和Widget的输出;并将分析得到的Widget的输入的变量名和 Widget的输出的变量名传送给转换器。
3. 根据权利要求2所述的方法,其特征在于,所述根据规则分析Widget的输入具体为 所述Widget利用接收用户输入的接口 ,分析和查找用来定义所述Widget中用户输入的特 定标签,获得所述Widget的输入。
4. 根据权利要求2所述的方法,其特征在于,所述分析Widget的输出具体为Widget 的逻辑根据JavaScript输出的规律获得Widget的输出。
5. 根据权利要求1所述的方法,其特征在于,所述建立一个以上Widget间输入输出映 射关系,生成聚合模板具体为获得分析过的所述Widget的输入和Widget的输出,用户选择需要聚合的Widget ;接收用户选择的更改项,如果用户选择需要聚合Widget的输入,则显示已存储的 Widget输出变量名,并接收已存储的输出变量名;如果用户选择需要聚合Widget的输出, 则接收要存储的输出变量名,并根据Widget名和输出变量名生成唯一的存储标识;判断用户是否完成要接收的所有更改项,如果完成,则根据映射关系生成聚合模板;如 果未完成,则继续判断用户选择。
6. 根据权利要求5所述的方法,其特征在于,所述生成聚合模板为用户按照一定的规 则或约定写文件生成所述聚合模板,或者通过用户界面选择后由聚合预处理器自动生成所 述聚合模板。
7. 根据权利要求1所述的方法,其特征在于,所述存储区存储Widget的输出变量,并为 需要输入的Widget提供参数。
8. —种聚合数据内容的系统,其特征在于,该系统包括聚合预处理器、Widget引擎; 其中,聚合预处理器,用于分析输入的Widget源码,并根据用户的选择建立一个以上Widget 间输入输出映射关系,生成聚合模板;根据所述聚合模板生成Widget代码,将所生成的 Widget代码插入所述Widget源码;Widget引擎,用于运行Widget和Widget源码,并为Widget的输出提供存储区。
9. 根据权利要求8所述的系统,其特征在于,所述聚合预处理器进一步包括分析模 块、模板生成模块、代码生成模块;其中,分析模块,用于接收所述Widget引擎发送的所述Widget源码和聚合模板,并分析 Widget的输入和Widget的输出,将所述Widget的输入的变量名和Widget的输出的变量名 传送给转换器;模板生成模块,用于在获得分析过的Widget的输入和Widget的输出后,向用户发送 响应,选择需要聚合的Widget,并接收用户选择的更改项;当用户选择需要聚合Widget的 输入时,显示已经存储的Widget输出变量名供用户选择,用户选择需要聚合Widget的输 出时,接收要存储的输出变量名;接收用户为输入变量选择的已存储的输出变量名,并根据 Widget名和输出变量名为输出变量生成唯一的存储标识,根据映射关系生成聚合模板;代码生成模板,用于分析生成的所述聚合模板,在Widget代码存储变量并在所述 Widget代码中读取存储变量;将获取的全部Widget输出的Widget代码插入到所述Widget 源码中。
10.根据权利要求8或9所述的系统,其特征在于,所述Widget引擎进一步包括存储 区、Widget ;其中,存储区,用于存储Widget的输出,为需要输入的Widget提供所需的变量; Widget,用于提供接口接收用户输入,根据用户输入得到输出结果,并输出变量到 Widget引擎的存储区。
全文摘要
本发明公开了一种聚合数据内容的方法,分析输入的Widget源码;根据用户的选择建立一个以上Widget间输入输出映射关系,生成聚合模板;根据所述聚合模板生成Widget代码,将所生成的Widget代码插入Widget源码;所述Widget引擎运行所述Widget和Widget源码,所述Widget从Widget引擎的存储区中读取输出变量作为自身之外的Widget输入。本发明还同时公开了一种聚合Widget数据内容的系统,根据本发明的技术方案,能使Widget之间进行数据内容的交互和聚合,满足用户的个性化需求,提升用户的体验。
文档编号G06F9/54GK101794240SQ20101000120
公开日2010年8月4日 申请日期2010年1月4日 优先权日2010年1月4日
发明者王文东, 王蔚, 秦灵伶, 贾霞, 阙喜戎, 龚向阳 申请人:中兴通讯股份有限公司;北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1