对动态调用服务的执行结果进行渲染的方法、装置及系统的制作方法

文档序号:6354345阅读:285来源:国知局
专利名称:对动态调用服务的执行结果进行渲染的方法、装置及系统的制作方法
技术领域
本发明一般地涉及执行结果渲染技术,尤其是对动态调用服务的执行结果进行渲染的方法、装置及系统。
背景技术
在互联网高速发展的今天,大量的Web服务或各自独立或互相协作地运行于互联网上,并提供包括基础设施、平台和软件在内的各种各样的服务。然而,Web服务技术主要被设计为用于机器与机器之间的交互,其输入和输出的类型都是通过XML schema来定义的,并不包含如何对输出进行显示的信息,也就无法将Web服务的执行结果友好而直接地展示给执行结果查看者。因此,对Web服务执行结果进行渲染是很必要的。
传统的方法可以用来解决静态调用的Web服务的执行结果的渲染问题。因为对于静态调用的Web服务来说,调用者在设计其调用客户端时就可以确定该Web服务,进而确定其输出类型,然后便可以通过硬编码的方式对该Web服务的执行结果进行渲染。而对于动态调用的Web服务来说,由于被调用的Web服务及其输出类型不可预知,所以不能通过硬编码的方式来进行渲染。现有技术中,根据每个Web服务的XML schema为其输出类型配置模板,可以实现对动态调用的Web服务的执行结果进行渲染。这种方法很灵活,因为仅通过修改模板,而不用修改代码,便可改变对执行结果进行渲染的方式。然而,由于记录有每个Web服务的输出类型的XML schema是由各个服务提供者自定义的,而这些服务提供者不可能事先达成一个如何对相同类型进行定义的共识。因此,这便造成了很多在语法上不同但是在语义层面上却是重复的模板,这些模板彼此没有关系,不便于组织、管理和维护。

发明内容
有鉴于此,本发明实施例提供对动态调用服务的执行结果进行渲染的方法、装置及系统,能够减少系统中的模板的数量,便于模板的组织、管理和维护。根据本发明实施例的一个方面,提供一种对动态调用服务的执行结果进行渲染的方法,其中所述执行结果是本体中的类的实例,包括确定所述执行结果所属的类;从模板库中查找所述执行结果所属的类对应的模板,其中所述模板库是预先根据所述本体中的各个类及其属性而生成的;以及利用所找到的模板,对所述执行结果进行渲染。根据本发明实施例的另一个方面,提供一种对动态调用服务的执行结果进行渲染的装置,其中所述执行结果是本体中的类的实例,所述装置包括确定单元,用于确定所述执行结果所属的类;查找单元,用于从模板库中查找所述执行结果所属的类对应的模板,其中所述模板库是预先根据所述本体中的各个类及其属性而生成的;以及第一渲染单元,用于利用所找到的模板,对所述执行结果进行渲染。根据本发明实施例的再一个方面,提供一种对动态调用服务的执行结果进行渲染的系统,包括模板库,用于保存根据本体中的各个类及其属性而生成的模板;管理模块,包括查找子模块,用于接收到查找指定类对应的模板的请求时,返回该类对应的模板;以及本发明实施例所述的对动态调用服务的执行结果进行渲染的装置。另外,根据本发明的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本发明的上述对动态调用服务的执行结果进行渲染的方法。此外,根据本发明的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本发明的上述对动态调用服务的执行结果进行渲染的方法。
根据本发明实施例的上述方法,可以根据本体中的类进行模板的定义,并利用这些本体中的类对应的模板对动态调用服务的执行结果进行渲染,也即,各个动态调用服务的执行结果都可以使用本体中的类对应的模板进行渲染。换言之,不需要分别为各个动态调用服务的执行结果分别生成各自的模板,因此,有利于减少系统中的模板的数量,便于模板的组织、管理和维护。在下面的说明书部分中给出本发明实施例的其他方面,其中,详细说明用于充分地公开本发明实施例的优选实施例,而不对其施加限定。


下面结合具体的实施例,并参照附图,对本发明实施例的上述和其它目的和优点做进一步的描述。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。图I是本体结构示意图;图2是本发明实施例提供的方法的流程图;图3是本发明实施例提供的方法中渲染结果示意图;图4是本发明实施例提供的方法中另一渲染结果示意图;图5是本发明实施例提供的第一装置的示意图;图6是本发明实施例提供的第二装置的示意图;图7是本发明实施例提供的第三装置的示意图;图8是本发明实施例提供的第四装置的示意图;图9是本发明实施例提供的系统的示意图;图10是本发明实施例提供的另一系统的示意图;图11是示出作为本发明的实施例中所采用的信息处理设备的个人计算机的示例性结构的框图。
具体实施例方式下面参照附图来说明本发明实施例的实施例。在本发明实施例中,为了对动态调用服务的执行结果进行渲染,首先需要生成模板,这种模板是根据本体中的类生成的。为了便于理解,下面首先对本体的概念进行简单地介绍。本体可以看作是形式化定义词语关系的规范化文件,通常由各个领域的专家维护,在每个领域都具有一个标准的分类体系,在该分类体系下,各个类别能够涵盖整个领域,同时又不重复。在本发明实施例中,本体可以是某个领域本体或者由多个领域本体组合产生的通用本体(或称核心本体)。本体中的每一个类(Class)代表一种数据类型,每个数据类型还有自己的属性,包括数据属性(DataProperty)或对象属性(ObjectProperty),同时对象属性也描述了数据类型之间的关系。
例如,图I所示为一个本体的示意图,其中,RootType是这个本体的根节点类。共有三个叶子节点类,分别是Item、Rss和Search ;ClassHasItem是Rss和Search共同的父类,它具有一个或多个hasltem对象属性(ObjectProperty)。hasltem属性的值域是Item。Item 和 Rss 都有以下值域为 http://www. w3. org/2001/XMLSchema#string 的数据属性(DataProperty) :hasTitle、hasLink、hasDescription、hasCategory、hasPubDate。 Search具有一个值域为 http://www. w3. org/2001/XMLSchema#string 的数据属性hasKeyword。这个本体的命名空间(namespace)为http://www. example, com。每一个类或者属性都有各自的URL,用于唯一标识该类或属性。其中,类或属性的URL都可以是以”namespace#name”形式表示的,比如Rss这个类的URL为http://www. example. com#Rss。也就是说,本体中具有标准的数据类型(例如Item、Search、Rss等)及其之间的关系,每种数据类型具有自己的URL以及各自的属性,同时,每个属性也分别具有自己的URL。而对于实际的动态调用服务的执行结果而言,是本体中的某个类的实例。也即,虽然动态调用服务的输出类型是由服务提供者自定义的,但是,无论服务提供者在创建动态调用服务时,如何定义数据类型,其执行结果总会是某个本体中某个类的实例。因此,在本发明实施例中,就是要利用依据本体中的类创建的模板,对各个动态调用服务的执行结果进行渲染。为此,首先需要创建模板,下面对创建模板的过程进行介绍。在本发明实施例中,模板是根据本体中描述的数据类型及其属性创建的,它可以采用HTML等语言来描述,并且与本体中描述的数据类型一一对应,也就是说,本体中有多少个数据类型,针对该本体就可以创建多少个模板,可以将这些模板进行保存,生成针对该本体的模板库。并且,在保存时,还可以保存数据类型的URL及其模板之间的对应关系,这样,根据数据类型的URL可以唯一找到该数据类型对应的模板。对于某数据类型而言,其模板就是要描述出,该数据类型的各个属性的值出现的位置。在模板中,由于各个属性还没有具体的取值,因此,可以由各个属性的URL(为方便描述,本发明实施例就以此为例进行介绍)来代替。在渲染时,相当于是将执行结果中各个属性的值,替换对应属性的URL即可。其中,如前文所述,一个数据类型可能具有数据属性,还可能具有对象属性,在生成某数据类型的模板时,该数据类型的数据属性的URL必须出现在模板中,否则,该属性的值将无法出现在最终的渲染结果中。而该数据类型的对象属性则不必在模板中进行显示声明,如果出现在模板中,则该对象属性的值将会出现在该属性的URL在模板中的位置,否贝U,该对象属性的值将会依次连接到该对象属性部分所属实例的渲染结果的末端。生成的模板可以存储于模板库的一张表中,该表可以含有两个字段,第一个字段用于存储数据类型的URL,第二个字段用于存储模板的内容。如前文所述,数据类型的URL可以以”namespaceiiname”形式表示,存储URL的字段可以做为该表的主键用来唯一查找指定数据类型的模板。假设在图I所示的本体中,模板库中保存了表I所示的各个数据类型的模板。表I
权利要求
1.一种对动态调用服务的执行结果进行渲染的方法,其中所述执行结果是本体中的类的实例,所述方法包括 确定所述执行结果所属的类; 从模板库中查找所述执行结果所属的类对应的模板,其中所述模板库是预先根据所述本体中的各个类及其属性而生成的;以及 利用所找到的模板,对所述执行结果进行渲染。
2.根据权利要求I所述的方法,其中模板的内容部分保存有类的各个数据属性的统一资源标识符URL,所述对所述执行结果进行渲染进一步包括 如果执行结果中存在实例的数据属性,则利用所述执行结果中该数据属性的值替换所述模板中该数据属性的URL。
3.根据权利要求I所述的方法,其中所述对所述执行结果进行渲染进一步包括 如果执行结果中存在实例的对象属性,则将所述对象属性的值转换为另一实例,确定该另一实例所属的类,利用该类对应的模板,对所述执行结果中实例的对象属性部分进行渲染。
4.根据权利要求3所述的方法,其中对所述执行结果中实例的对象属性部分进行渲染进一步包括 如果所述对象属性的URL出现在所述执行结果所属的类的模板中,则利用所述对象属性部分的渲染结果,替换该模板中该对象属性的URL ; 否则,将所述对象属性部分的渲染结果依次连接到所述对象属性部分所属实例的渲染结果的末端。
5.根据权利要求I至4任一项所述的方法,其中如果所述执行结果所属的类的模板不存在,所述方法还包括 查找与所述执行结果所属的类最相似的类; 利用所述最相似的类对应的模板,对所述执行结果进行渲染。
6.一种对动态调用服务的执行结果进行渲染的装置,其中所述执行结果是本体中的类的实例,所述装置包括 确定单元,用于确定所述执行结果所属的类; 查找单元,用于从模板库中查找所述执行结果所属的类对应的模板,其中所述模板库是预先根据所述本体中的各个类及其属性而生成的;以及 第一渲染单元,用于利用所找到的模板,对所述执行结果进行渲染。
7.根据权利要求6所述的装置,其中模板的内容部分保存有类的各个数据属性的统一资源标识符URL,所述第一渲染单元进一步包括 第一替换子单元,用于如果执行结果中存在实例的数据属性,则利用所述执行结果中该数据属性的值替换所述模板中该数据属性的URL。
8.根据权利要求6所述的装置,其中所述第一渲染单元进一步包括 实例转换子单元,用于如果执行结果中存在实例的对象属性,则将所述对象属性的值转换为另一实例; 对象属性渲染子单元,用于确定该另一实例所属的类,利用该类对应的模板,对所述执行结果中实例的对象属性部分进行渲染。
9.根据权利要求6至8任一项所述的装置,还包括 相似查找单元,用于如果所述执行结果所属的类的模板不存在,查找与所述执行结果所属的类最相似的类; 第二渲染单元,用于利用所述最相似的类对应的模板,对所述执行结果进行渲染。
10.一种对动态调用服务的执行结果进行渲染的系统,包括 模板库,用于保存根据本体中的各个类及其属性而生成的模板; 管理模块,包括查找子模块,用于接收到查找指定类对应的模板的请求时,返回该类对应的模板;以及 权利要求6至9任一项所述的对动态调用服务的执行结果进行渲染的装置。
全文摘要
本发明实施例公开了对动态调用服务的执行结果进行渲染的方法、装置及系统。根据本发明一个实施例的对动态调用服务的执行结果进行渲染的方法包括确定所述执行结果所属的类;从模板库中查找所述执行结果所属的类对应的模板,其中所述模板库是预先根据所述本体中的各个类及其属性而生成的;以及利用所找到的模板,对所述执行结果进行渲染。通过本发明的实施例,能够减少系统中的模板的数量,便于模板的组织、管理和维护。
文档编号G06F9/44GK102622219SQ20111003607
公开日2012年8月1日 申请日期2011年1月31日 优先权日2011年1月31日
发明者于浩, 张军, 李邵明, 松尾昭彦, 王主龙, 皮冰锋, 苏亮, 邹纲, 钟朝亮 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1