呈现服务器和在其中使用的XSL文件处理方法技术

技术编号:4191170 阅读:209 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及呈现服务器和在其中使用的XSL文件处理方法。该XSL/XSLT文件处理方法在呈现服务器中使用,所述呈现服务器为至少一个呈现实体和多个订阅者提供服务,所述多个订阅者可以订阅所述至少一个呈现实体的XML形式的呈现信息,该方法包括以下步骤:接收步骤,用于接收所述多个订阅者的多个订阅请求,其中每个订阅请求对应于一个XSL/XSLT文件;抽象语法树生成步骤,用于为每个所述XSL/XSLT文件生成一个抽象语法树,从而针对所述多个订阅请求,生成对应的多个抽象语法树;公共子表达式识别步骤,用于识别所述多个抽象语法树之间的公共子表达式;以及合并步骤,用于通过公共子表达式消去将所述多个抽象语法树合并成一个树结构。

【技术实现步骤摘要】

本专利技术一般涉及计算机
,具体地说,涉及一种呈现服务 器和在呈现服务器中使用的XSL/XSLT文件处理方法。
技术介绍
目前,呈现服务已经发展到远远超出类似于MSN或Sametime 中的在线伙伴。呈现服务现在被广泛应用于电信、企业和消费营 销领域,并且成为Web 2.0、 IMS(IP多媒体系统)、SOA (面向月艮务 架构)、3GPP (第三代移动通信伙伴项目)等技术的基本能力。此外, 对于呈现的内容,除了在线状态之外,呈现服务还可以提供节点的状 态信息,例如电话、计算机、甚至是应用的可用性、是否就绪、工作 负荷、健全性等。这些状态被称为呈现信息。这种呈现服务能被良好接受并被成功部署的一个原因在于它是 一个标准且清楚的操作模型。图1示出了呈现服务的一个抽象模型。 该模型包括三个实体呈现实体103 (Presentity)、呈现服务器101 (Presence Server )和订阅者105 ( Subscriber )。虽然为了简单起见, 在图1中只示出了一个呈现实体和一个订阅者,但是本领域技术人员 应该理解,在该呈现系统中可以有多个呈现实体和多个订阅者。并且 呈现实体本身也可以是一个订阅者。在该模型中,呈现服务器与两种不同的客户端连接。 一种客户端 是呈现实体,它向呈现服务器提供呈现信息,以在呈现服务器上存储 和发布呈现信息。另一种客户端是订阅者,它从呈现服务器接收呈现 信息。应该注意的是,虽然在该模型中,这两种客户端被分离对待, 但是它们可以合并在一个实体里。呈现实体(例如装置、应用等)是 会发生状态改变的实体,而订阅者是对这种状态改变感兴趣的实体。呈现实体将其当前状态信息(呈现信息)发布到类似于呈现服务 器的实体中。呈现信息被存储在呈现服务器中。订阅者向呈现服务器 请求某些呈现实体的呈现信息的改变通知。当被订阅的呈现实体的呈 现信息改变时,例如当用户上线了一会之后就下线时,呈现信息的改 变通过通知被发布到订阅者。图2A至2C显示了呈现信息从P1改变到P2时的信息流。在图 2A中,呈现实体的呈现信息从P1改变到P2。在图2B中,呈现实体 将呈现信息P2发布到呈现服务器,呈现服务器将原先存储的该呈现 实体的呈现信息Pl更新为P2。在图2C中,呈现服务器将呈现信息 P2通知给订阅者,从而使订阅者知道该呈现实体的呈现信息已从Pl 改变到P2。上述模型是一个pub-sub (发布-订阅)模型,该pub-sub模型已 被证明是非常高效的,越来越多的应用已采用该模型。现在,呈现信息通常用XML (extensible Markup Language,可 扩展标记语言)来表示,因为XML具有标准化和结构化的性质。也 就是说,将一个XML文档用作呈现信息,该文档通常被称为PIDF (Presence Information Data Format,呈现信息数据格式)文档。随着越来越广泛地采用基于pub-sub/呈现信息的应用,可伸缩性 和性能已经成为阻碍该技术进一步成功应用的两个主要障碍。事实 上,对于一个呈现服务器,可能有超过30万个订阅者。每个订阅者 可能订阅了呈现信息中的不同内容,此外,每个订阅者可能具有不同 的处理和理解能力,这些都可以通过登记(Register)而通知给呈现 服务器。登记是pub-sub模型中的另一常用方法,因其是本领域技术 人员所公知的,在此不对其详细描述。然后,呈现服务器可以根据呈现信息中感兴趣的内容和订阅者自 身的能力,对所述呈现信息进行定制,以通知各个订阅者。通常,呈 现服务器对每个订阅者应用一个过滤器。为了处理XML PDIF文档, 该过滤器可以是用来进行XML转换的XSL(Extensible Stylesheet Language,可扩展样式单语言)或XSLT(Extensible Stylesheet LanguageTransformations,可扩展样式单语言转换)文件。但是,尤其是考虑到 在呈现服务器中有大于90%的通信量是公布/通知消息而在这些公布/ 通知消息中又有大于90 %的消息是通知消息这一事实,处理如此多的 XSL/XSLT文件对于呈现服务器来说是非常困难的事情。由于XML的基于文本进行解析和编写的性质,资源消耗将会迅 速使呈现服务器过载,从而无法实现更大的规模和更好的性能。
技术实现思路
为了解决上述问题,本专利技术提供了 一种呈现服务器和在其中使用 的XSL/XSLT文件处理方法。根据本专利技术的第一方面,提供了一种呈现服务器,该呈现服务器 为至少一个呈现实体和多个订阅者提供服务,所述多个订阅者可以订 阅所述至少一个呈现实体的XML形式的呈现信息,所述呈现服务器 包括接收装置,用于接收所述多个订阅者的多个订阅请求,其中每 个订阅请求对应于一个XSL/XSLT文件;抽象语法树生成装置,用于 为每个所述XSL/XSLT文件生成一个抽象语法树,从而针对所述多个 订阅请求,生成对应的多个抽象语法树;公共子表达式识别装置,用于识别所述多个抽象语法树之间的公共子表达式;和合并装置,用于通过公共子表达式消去将所述多个抽象语法树合并成一个树结构。 根据本专利技术的第二方面,提供了一种用于在呈现服务器中处理XSL/XSLT文件的方法,所述呈现服务器为至少一个呈现实体和多个 订阅者提供服务,所述多个订阅者可以订阅所述至少一个呈现实体的 XML形式的呈现信息,该方法包括以下步骤接收步骤,用于接收 所述多个订阅者的多个订阅请求,其中每个订阅请求对应于一个 XSL/XSLT文件;抽象语法树生成步骤,用于为每个所述XSL/XSLT 文件生成一个抽象语法树,从而针对所述多个订阅请求,生成对应的 多个抽象语法树;公共子表达式识别步骤,用于识別所述多个抽象语 法树之间的公共子表达式;以及合并步骤,用于通过公共子表达式消 去将所述多个抽象语法树合并成一个树结构。通过实施本专利技术,与传统技术相比,实现了下述优点使作为呈 现信息的XML文档流过合并后的树形结构而不是由各XSL文件分别 对其进行从头至尾的处理,这提高了中间处理结果的重用率。根据本专利技术的方法适于在订阅关系发生变化时执行。因为在呈现 服务器中大部分(例如,大于90% )的通信量是公布/通知消息而在 这些公布/通知消息中又有大部分(例如,大于卯% )的消息是通知 消息,而订阅关系的变化次数同通知消息的发送次数相比是非常少 的,所以本专利技术的方法对于性能提高是非常有帮助的。另外,本专利技术的方法可在不改动原有服务器运行方式的情况下执 行,无需对原有服务器的硬件进行改动,所以能够在提高性能的同时 抑制整体成本的上升。附图说明以下通过结合附图阅读参考下述对说明性实施例的详细描述,将 更好地理解本专利技术本身、实施方式、其它目的及其优点。在附图中 图1示出了现有技术中的呈现服务的一个抽象模型。 图2A至2C示出了呈现信息从Pl改变到P2时的信息流。 图3A和3B分别示出了 XSL文件A和B的抽象语法树。 图4示出了合并图3A和3B中的抽象语法树而得到的抽象语法树。图5示出了根据本专利技术的一个实施例的在呈现服务器中合并XSL/XSLT文件的方法的流程500。图6示出了根据本专利技术的另一实施例的在呈现服务器中合并XSL/XSLT文件的方法的流程600本文档来自技高网
...

【技术保护点】
一种呈现服务器,其为至少一个呈现实体和多个订阅者提供服务,所述多个订阅者可以订阅所述至少一个呈现实体的XML形式的呈现信息,所述呈现服务器包括: 接收装置,用于接收所述多个订阅者的多个订阅请求,其中每个订阅请求对应于一个XSL/XSL T文件; 抽象语法树生成装置,用于为每个所述XSL/XSLT文件生成一个抽象语法树,从而针对所述多个订阅请求,生成对应的多个抽象语法树; 公共子表达式识别装置,用于识别所述多个抽象语法树之间的公共子表达式;和 合并装置,用 于通过公共子表达式消去将所述多个抽象语法树合并成一个树结构。

【技术特征摘要】
1、一种呈现服务器,其为至少一个呈现实体和多个订阅者提供服务,所述多个订阅者可以订阅所述至少一个呈现实体的XML形式的呈现信息,所述呈现服务器包括接收装置,用于接收所述多个订阅者的多个订阅请求,其中每个订阅请求对应于一个XSL/XSLT文件;抽象语法树生成装置,用于为每个所述XSL/XSLT文件生成一个抽象语法树,从而针对所述多个订阅请求,生成对应的多个抽象语法树;公共子表达式识别装置,用于识别所述多个抽象语法树之间的公共子表达式;和合并装置,用于通过公共子表达式消去将所述多个抽象语法树合并成一个树结构。2、 根据权利要求1所述的呈现服务器,还包括编译装置,该编 译装置用于基于合并的树结构编译生成与所述多个订阅者的 XSL/XSLT文件对应的多个执行模块,其中在运行时所述公共子表达 式的求值结果能够在所述多个执行模块之间重用。3、 根据权利要求1或2所述的呈现服务器,其中,所述多个订 阅请求指的是对同 一呈现实体的呈现信息进行定制的请求。4、 根据权利要求1或2所述的呈现服务器,其中,所述抽象语 法树生成装置包括XSL/XSLT文件生成器,其被配置为基于来自订阅者的订阅请 求,生成XSL/XSLT文件;XSL/XSLT文件数据库,用于存储由XSL/XSLT文件生成器生 成的XSL/XSLT文件;和XSL/XSLT文件解析器,用于将存储在XSL/XSLT文件数据库 中的XSL/XSLT文件解析为抽象语法树。5、 根据权利要求1或2所述的呈现服务器,其中,所述合并装置还包括静态分析装置,用于对所述多个抽象语法树进行语义分析,从而 获得语义信息;并且所述合并装置进一步根据所述语义信息,通过公共子表达式消去 将所述多个抽象语法树合并成一个树结构。6、 根据权利要求1或2所述的呈现服务器,其中,所述语义信 息包括所述公共子表达式的数据类型和/或所述公共子表达式中的变 量的作用域。7、 根据权利要求1或2所述的呈现服务器,还包括非易失性存储装置,用于存储所述多个抽象语法树以及所述语义 信息,以供所述公共子表达式识别装置和所述合并装置重用。8、 根据权利要求1或2所述的呈现服务器,其中,所述合并装 置以增量方式进行公共子表达式消去,从而将所述多个抽象语法树合并成一个树结构。9、 一种用于...

【专利技术属性】
技术研发人员:向哲薛伟赵邑新杨博
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1