混搭服务器和提供混搭服务的方法

文档序号:6424616阅读:241来源:国知局

专利名称::混搭服务器和提供混搭服务的方法
技术领域
:本发明涉及混搭Web应用,具体涉及混搭服务器和提供混搭服务的方法。
背景技术
:混搭(mashup)是ー种通过将多个Web应用或服务组合起来以创建新的Web应用或服务的技木。通常,一个混搭Web应用利用ー个Web应用的输出作为输入去调用另ー个Web应用。例如,利用从ー个网页中得到的经度和纬度的地理位置信息去调用ー个地图Web应用。然而,由于大多数已有的网页中几乎不包含标识语义的信息,传统的混搭技术不能识别输入和输出的语义,因而也不能保证输入和输出之间的语义兼容性。如果输入和输出的语义不兼容,这样构建出来的混搭Web应用通常是没有意义的,有时甚至会导致被混搭的Web应用的系统错误。例如,利用非地理位置信息去调用地图Web应用、利用非歌曲信息去调用歌曲捜索Web应用、利用非地名信息去调用天气预报的Web应用等等,这些混搭Web应用都是语义不兼容的。微格式(MiCToformat)数据是ー种能够无缝地嵌入到网页中的结构化的数据。由于人和机器都能阅读微格式,并且微格式包含轻量级的语义信息,使得通过利用微格式来解决上述问题成为可能。然而,现有的大多数网页中并不包含微格式,为了利用微格式的优点,开发人员需要手动修改其Web应用以插入微格式。例如,《SA-RESTand(S)mashupsAddingSemanticstoRESTfulServices》(作者JonLathem,KarthikGomadam,AmitP.Sheth)中提出了向RESTfulService的描述文件中添加语义(微格式)的方法。
发明内容根据现有技术的方法,毎次网页更新时,需要人工重新对该网页进行语义标注。然而,对于大量的Web应用,人工进行语义标注显然是困难且耗时的。因此,需要一种能够实现微格式的自动添加的设备和/或方法,以便实现按需处理,并且具有更大的灵活性和可扩展性。本发明的ー个目的在于提供ー种自动地向网页中插入微格式数据并基于该微格式数据构建语义兼容的混搭Web应用的装置和方法,以至少部分地克服现有技术的上述缺陷。根据本发明的一个实施例,提供ー种混搭服务器,包括转发模块,其被配置为进行用户浏览器与应用服务器之间的转发处理;抽取模块,其被配置为当转发模块接收到来自所述应用服务器的网页时,使用一个或更多个预定模板从网页中抽取数据;以及插入模块,其被配置为根据抽取模块抽取出的数据以及与抽取该数据所使用的模板相对应的微格式来生成微格式数据,并将该微格式数据插入到要由转发模块发送给用户浏览器的网页。根据本发明的另ー个实施例,提供ー种混搭服务提供方法,包括步骤从应用服务器接收用户所请求的网页;使用ー个或更多个预定模板从网页中抽取数据;根据抽取出的数据以及与抽取该数据所使用的模板相对应的微格式来生成微格式数据,并将该微格式数据插入到网页;以及将插入了该微格式数据的网页提供给用户。根据本发明的实施例,可以由混搭服务器作为中继服务器,代表用户浏览器向应用服务器发起请求。当接收到应用服务器返回的所请求的网页后,混搭服务器可以利用模板从该网页中抽取能够以微格式的形式插入到该网页中的数据,根据该数据生成微格式数据,并且将该微格式数据以隐藏域的形式插入到原始网页的末端,产生包含了微格式的新网页。这样,开发人员就无需对已有的Web应用进行修改。此外,还可以将工具栏插入到原始网页之中。该工具栏将被请求的Web应用与其他Web应用通过微格式混搭起来,成为ー个新的混搭Web应用。用户可以通过该工具栏来执行与所选微格式语义兼容的混搭Web应用。此外,工具栏可以为最终用户提供创建从特定Web应用的网页中抽取特定微格式的模板的界面。另外,混搭服务器可以提供一种反馈机制。它根据最終用户执行的混搭Web应用的次数,来动态调整用于抽取相应微格式数据的模板的优先级,以提高微格式数据抽取的准确度。利用根据本发明的实施例的装置和方法,能够保证基于微格式构建的混搭Web应用的语义兼容性。參照下面结合附图对本发明实施例进行的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。图I是示出根据本发明实施例的混搭服务器100的配置的框图;图2示出作为混搭服务器的处理对象的示例网页的源代码片段;图3示出添加了微格式数据的网页的源代码片段的示例;图4示出插入了工具栏代码和脚本的网页源代码片段的示例;图5示出由混搭服务器插入了工具栏的网页界面的示例;图6是示出根据本发明的另ー实施例的混搭服务器600的配置的框图;图7是示出由根据本发明实施例的混搭服务器中在网页中创建的用于生成新模板的操作界面的示例;图8是示出根据本发明实施例的混搭服务提供方法的流程图;图9是示出其中实现本发明的装置和方法的计算机的示例性结构的框图。具体实施例方式下面參照本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。图I是示出根据本发明实施例的混搭服务器100的配置的框图。混搭服务器100包括转发模块110、抽取模块120和插入模块130。转发模块110进行用户浏览器和应用服务器之间的转发处理。当用户通过用户浏览器访问混搭服务器100,并输入所要访问的功能应用,例如输入Web应用的URL(统ー资源定位符)时,转发模块110向该Web应用发送获取请求。当转发模块110接收到来自应用服务器的网页时,转发模块110将网页提供给抽取模块120以对该网页进行数据抽取处理。抽取模块120使用预定模板从该网页中抽取数据。抽取模块120可以通过任意基于模板的Web信息抽取方式来实现,在下面对本发明的示例性实施例的说明中,以基于XPath模板的抽取方法为例说明抽取模块120进行的处理。作为抽取模块120的处理对象的网页中可能包含可以被抽取并通过添加标签而生成微格式数据的内容。例如,在图2所示的示例性网页的源代码片段中,包含^address(地址)”、“street(資道)”、“locality(地区),,和“state(州)”等信息。这些内容适合于生成具有以下形式的示例性微格式“addressadr”<divclass-Addressaar’,>くspanclass=’’street-address”>$street-address</span>くspanclass=,,locality,,>$locality</span>くspanclass=,’region’’>$region</span〉</div>其中“street-address(街1道地址)”、“locality(地区)”和“region(区域)”为地址信息的类别,而“$street_address”、“$locality”和“$region”分别代表街1道地址、地区和区域的具体内容。对于每种可能的微格式,抽取模块120可以使用多种模板从网页抽取数据。模板按照与微格式相应的信息格式,为信息格式中包含的每项信息定义匹配规则,当原始网页中包含的数据符合该匹配规则时,则提取该数据并将其置于该信息格式中相应的项。例如,抽取模块120可以利用对应于上述“addressadr”微格式的如下示例性模板street-address:/html/body/tabIe[iclass=,,address”]/tr[@class=”street”]/td[2]locality:/html/body/table[iclass=”address”]/tr[Oclass=’’locality”]/td[2]region:/html/body/table[iclass=’’address”]/tr[Oclass=,,state,,]/td[2]其中,分别为“street-address(街1道地址)”、“locality(地区)”和“region(区域)”定义了匹配规则。利用该模板,抽取模块120能够从上述示例原始网页中抽取出对应于“addressadr”微格式的地理位置信息。微格式与模板之间可以具有一对多的对应关系,并且可以利用数据库将抽取模块120所使用的各种模板预先存储在混搭服务器100的存储单元(未示出)中。根据本发明的一个实施例,模板可以包括通用模板和专用模板,其中,通用模板适用于所有的Web应用,而专用模板仅适用于某些特定Web应用。因此,对于专用模板,还可以利用数据库预先存储专用模板与特定Web应用的站点之间的对应关系。其中,专用模板与Web应用的站点之间的对应关系可以是多对多的关系,即,一个专用模板可以用于多个特定Web应用站点,而ー个Web应用站点可以对应于多个专用模板。当从转发模块110接收到网页时,抽取模块120可以针对多种微格式中的每ー种微格式,选取指定数量个模板以用于从网页中抽取数据。例如,抽取模块120可以通过查询存储在混搭服务器100的存储单元中的模板数据库,确定N个通用模板和M个与该网页的站点相对应的专用模板(N,M彡I)。并且可以在混搭服务器100中设置该常数N和M。另夕卜,如下面将要说明的,根据本发明的一个实施例,抽取模块120可以按照模板的优先级选取前N个通用模板和前M个专用模板用于数据抽取。在确定了所要使用的模板之后,抽取模块120依次利用这些模板从原始网页中抽取数据。例如,抽取模块120利用上述“addressadr”微格式的示例性模板可以从图2所示的示例网页源代码中抽取得到如下数据street-address:1401NShorelineBlvd.locality!MountainViewregion!California其中,“street-address(街1道-地址)”、“locality(地区)”和“region(区域)”分别标注出抽取出的数据中的“1401NShorelineBlvd.(N海岸大道)”、“MountainView(山景城)”和“California(加利福尼亚)”等信息对应于微格式中的哪ー项信息。当抽取模块120使用所选用的各模板完成对原始网页的抽取之后,抽取模块120将原始网页、从原始网页中抽取出的数据以及抽取该数据所使用的模板的标识提供给插入模块130。当接收到抽取模块120提供的上述内容时,插入模块130根据抽取模块120抽取出的数据以及与抽取该数据所使用的模板相对应的微格式来生成微格式数据。例如,插入模块130根据上述例子中的数据,以及该模板所对应的微格式,能够生成以下微格式数据<divclass=”addressadr,,>くspanclass=”street-address”>1401NShorelineBlvd.</span>くspanclass=,,locality,,>locality:MountainView</span><spanclass=,,region’,>region:Califomia</span></div>其中,“street-address(資道-地址)”、“locality(地区)”和“region(区域)”分别作为原始网页中的“1401NShorelineBlvd.(N海岸大道)”、“MountainView(山景城)”和“California(加利福尼亚)”等信息的语义标注。另外,插入模块130将所生成的微格式数据插入到该网页中,从而使该网页包含人和机器都能阅读的微格式数据。根据本发明的一个实施例,插入模块130将所生成的微格式数据作为隐藏域添加到原始网页的末端,从而不影响原始网页的布局。图3示出插入了该隐藏域的示例性网页的源代码片段。根据本发明的一个实施例,插入模块130还能够在网页中创建用于调用以所插入的微格式数据作为输入的功能应用的操作界面。例如,插入模块130可以在网页中创建エ具栏,该工具栏向用户提供利用所生成的微格式数据调用相应的混搭Web应用的操作界面。可以在混搭服务器的存储单元中预先存储记录微格式与功能应用之间的对应关系的数据库,插入模块130根据该对应关系确定能够以所生成的微格式数据作为输入的功能应用。当确定了功能应用之后,插入模块130例如在原始网页中插入一段生成工具栏的HTML和Javascript代码。另外,插入模块130还可以创建用于从特定Web应用的网页中抽取特定微格式的模板的界面。图4示出插入了工具栏代码和脚本的网页源码的示例。图5示出插入了工具栏的网页界面的示例。用户可以通过点击或将光标移动至相应的图标来查看相应的微格式数据以及可用的Web应用。例如,当用户将光标移至“Addresses(地址)”框时,可以弹出从原始网页中抽取出的地址信息“1401NShorelineBlvd.”,而当用户进一歩将光标移至该地址信息时,可以进一步弹出可用的Web应用“Mapservice(地图服务)”和“Searchservice(搜索服务)”。插入模块130将插入了微格式数据的网页提供给转发模块110,并由转发模块110将该网页提供给用户浏览器。图6是示出根据本发明的另ー实施例的混搭服务器600的配置的框图。混搭服务器600与先前參照图I说明的混搭服务器100的区别在于除了转发模块610、抽取模块620和插入模块630之外,还包括调用模块640和反馈模块650。调用模块640被配置为响应于来自用户浏览器的调用请求,调用以微格式数据作为输入的功能应用。例如,当用户点击图5中所示的“MapService”吋,向调用模块640发送调用“MapService”的请求的Javascript代码将被执行。调用模块640可以根据微格式与功能应用之间的对应关系,以及相应功能应用所要求的输入參数的格式,将微格式数据映射成功能应用所要求的參数格式。例如,当相应的功能应用要求的输入參数格式为q=$street_address+”,”+$locaility+”,”+$region时,调用模块640将上述不例中的微格式数据映射为“1401NShorelineBlvd.,MountainView,California”。之后,调用模块640例如通过查询数据库来得到该功能应用的应用程序接ロ(API)或调用所需的脚本,并向该功能应用,例如地图Web应用发送获取请求。最后,调用模块640将该功能应用的响应转发至用户浏览器。另外,调用模块640将来自用户浏览器的调用请求转发给反馈模块650。反馈模块650被配置为根据调用请求来调整抽取与调用请求相对应微格式数据所使用的模板的优先级。该优先级可以作为抽取模块选取模板时的依据。具体地,反馈模块650可以提高与调用请求相关模板的优先级,因为用户的调用操作表明该用户对以该模板抽取出的微格式数据感兴趣,从而证明该模板是相对有效的。另ー方面,对于那些也被用于从同一网页中抽取微格式数据的模板,如果与该模版抽取的微格式数据相对应功能应用未被调用,则反馈模块650可以降低该模板的优先级。利用反馈模块的这一功能,能够根据用户的反应动态调整模板的优先级,从而可以提高利用模板抽取微格式数据的准确度。、根据本发明的一个实施例,混搭服务器600的插入模块630还被配置为在网页中创建用于生成新模板的操作界面,并且反馈模板650还被配置为接收并处理用户生成新模板的请求。图7示出了由插入模块630在网页中创建的用于生成新模板的操作界面的示例。如图7所示,用户选择ー种类型的微格式(图中为“Address”),并输入用于抽取微格式的各个属性,即“street_address”、“locality”和“region”属性的值的XPath语句,然后点击提交(submit)按钮。之后,工具栏将创建模板的请求发送至反馈模块650,反馈模块650根据该请求在数据库中创建一条针对该Web应用抽取相应微格式的专用模板记录。图8是示出根据本发明实施例的混搭服务提供方法的流程图。首先,在步骤S810,从应用服务器接收用户所请求的网页;接下来,在步骤S820,使用一个或更多个预定模板从该网页中抽取数据;接下来,在步骤S830,根据抽取出的数据以及与抽取该数据所使用的模板相对应的微格式来生成微格式数据,并将该微格式数据插入到原始网页;最后,在步骤S840,将插入了微格式数据的网页提供给用户。根据本发明的一个实施例,在步骤S830中,该混搭服务提供方法还包括在提供给·用户的网页中创建用于调用以该微格式数据作为输入的功能应用的操作界面的步骤(未示出)。根据本发明的一个实施例,在步骤S840之后,该混搭服务提供方法还包括步骤响应于来自用户的调用请求,调用以该微格式数据作为输入的功能应用;以及根据该调用请求来调整对应于该微格式数据的模板的优先级。另外,在步骤S820中,按照优先级选取指定数量个模板以用于抽取数据。根据本发明的一个实施例,在步骤S830中,该混搭服务提供方法还包括在网页中创建用于生成新模板的操作界面的步骤。并且在步骤S840之后还包括根据用户的请求生成新模板的步骤。所属
技术领域
的技术人员知道,本发明可以体现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质中的计算机程序产品的形式,该介质中包含计算机可用的程序码。可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质,计算机可读存储介质例如可以是,但不限于,电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括有ー个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的有形介质。用于执行本发明的操作的计算机程序码,可以以ー种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言ー诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言ー诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为ー个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络ー包括局域网(LAN)或广域网(WAN)—连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。图9是示出其中实现本发明的设备和方法的计算机的示例性结构的框图。在图9中,中央处理单元(CPU)901根据只读存储器(ROM)902中存储的程序或从存储部分908加载到随机存取存储器(RAM)903的程序执行各种处理。在RAM903中,也根据需要存储当CPU901执行各种处理等等时所需的数据。CPU901、ROM902和RAM903经由总线904彼此连接。输入/输出接ロ905也连接到总线904。下述部件连接到输入/输出接ロ905:输入部分906,包括键盘、鼠标等等;输出部分907,包括显示器,比如阴极射线管(CRT)、液晶显示器(IXD)等等,和扬声器等等;存储部分908,包括硬盘等等;和通信部分909,包括网络接ロ卡比如LAN卡、调制解调器等等。通信部分909经由网络比如因特网执行通信处理。根据需要,驱动器910也连接到输入/输出接ロ905。可拆卸介质911比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器910上,使得从中读出的计算机程序根据需要被安装到存储部分908中。在通过软件实现上述步骤和处理的情况下,从网络比如因特网或存储介质比如可拆卸介质911安装构成软件的程序。本领域的技术人员应当理解,这种存储介质不局限于图9所示的其中存储有程序、与方法相分离地分发以向用户提供程序的可拆卸介质911。可拆卸介质911的例子包含磁盘、光盘(包含光盘只读存储器(⑶-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD))和半导体存储器。或者,存储介质可以是ROM902、存储部分908中包含的硬盘等等,其中存有程序,并且与包含它们的方法一起被分发给用户。权利要求中的对应结构、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属
技术领域
的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属
技术领域
的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。权利要求1.ー种混搭服务器,包括转发模块,其被配置为进行用户浏览器与应用服务器之间的转发处理;抽取模块,其被配置为当所述转发模块接收到来自所述应用服务器的网页时,使用一个或更多个预定模板从所述网页中抽取数据;以及插入模块,其被配置为根据所述抽取模块抽取出的数据以及与抽取所述数据所使用的模板相对应的微格式来生成微格式数据,并将所述微格式数据插入到要由所述转发模块发送给所述用户浏览器的网页。2.根据权利要求I所述的混搭服务器,其中,所述插入模块还被配置为在所述网页中创建用于调用以所述微格式数据作为输入的功能应用的操作界面。3.根据权利要求I或2所述的混搭服务器,还包括调用模块,其被配置为响应于来自所述用户浏览器的调用请求,调用以所述微格式数据作为输入的功能应用;以及反馈模块,其被配置为根据所述调用请求来调整对应于所述微格式数据的所述模板的优先级。4.根据权利要求3所述的混搭服务器,其中,对于每种微格式,所述抽取模块按照所述优先级选取指定数量个所述模板以用于抽取所述数据。5.根据权利要求3所述的混搭服务器,其中,所述插入模块还被配置为在所述网页中创建用于生成新模板的操作界面,并且所述反馈模块还被配置为接收并处理用户生成新模板的请求。6.ー种混搭服务提供方法,包括步骤从应用服务器接收用户所请求的网页;使用一个或更多个预定模板从所述网页中抽取数据;根据抽取出的数据以及与抽取所述数据所使用的模板相对应的微格式来生成微格式数据,并将所述微格式数据插入到所述网页;以及将插入了所述微格式数据的网页提供给所述用户。7.根据权利要求6所述的方法,还包括步骤在提供给所述用户的所述网页中创建用于调用以所述微格式数据作为输入的功能应用的操作界面。8.根据权利要求6或7所述的方法,还包括步骤响应来自所述用户的调用请求,调用以所述微格式数据作为输入的功能应用;以及根据所述调用请求来调整对应于所述微格式数据的所述模板的优先级。9.根据权利要求8所述的方法,其中,在所述使用一个或更多个预定模板从所述网页中抽取数据的步骤中,按照所述优先级选取指定数量个所述模板以用于抽取所述数据。10.根据权利要求6所述的方法,还包括步骤在所述网页中创建用于生成新模板的操作界面;以及根据用户的请求生成新模板。全文摘要一种混搭服务器和提供混搭服务的方法。该混搭服务器包括转发模块,其被配置为进行用户浏览器与应用服务器之间的转发处理;抽取模块,其被配置为当转发模块接收到来自应用服务器的网页时,使用一个或更多个预定模板从网页中抽取数据;以及插入模块,其被配置为根据抽取模块抽取出的数据以及与抽取该数据所使用的模板相对应的微格式来生成微格式数据,并将该微格式数据插入到要由转发模块发送给用户浏览器的网页。文档编号G06F17/30GK102789471SQ201110132770公开日2012年11月21日申请日期2011年5月17日优先权日2011年5月17日发明者大木宪二,张军,松尾昭彦,王主龙,田中昌弘,粂照宣,钟朝亮申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1