通过具有非例示内容的智能事件的动态用户界面聚合转让专利

申请号 : CN201380012934.0

文献号 : CN104160389A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J.S.艾伦P.L.H.卡罗尔S.乔德哈里R.A.金V.潘迪亚拉詹S.斯里瓦斯塔瓦

申请人 : 国际商业机器公司

摘要 :

从在第一框架内执行的第一内容元素公布的事件可能被检测到。作为响应,可以搜索与公布的事件匹配的一个或多个注册的事件的记录,并且如果找到匹配的注册的事件,则可以例示注册了所述匹配的注册的事件的第二内容元素,从而开始在所述框架中执行。第二内容元素根据公布的事件而被动态地聚合到框架中,而第一内容元素不必预先知道第二内容元素,并且第二内容元素不必预先知道第一内容元素。框架也不必被初始设计为部署第二内容元素。可以在运行时期而非设计时期决定将哪一个或多个内容元素聚合到所述框架中。

权利要求 :

1.一种通过具有非例示内容的智能事件动态地聚合内容的方法,包括:

在处理器上,在第一框架内执行第一内容元素;以及

响应于从在所述框架内执行的所述第一内容元素检测到发布的事件,搜索与所述公布的事件匹配的一个或多个注册的事件的注册部,并且如果找到匹配的注册的事件,则例示注册了所述匹配的注册的事件的第二内容元素,从而开始在所述框架中的执行,其中,所述第二内容元素根据所述公布的事件而动态地被聚合到所述框架中,而所述第一内容元素不必预先知道所述第二内容元素,并且所述第二内容元素不必预先知道所述第一内容元素,并且其中,所述框架也不必被初始设计为部署所述第二内容元素。

2.如权利要求1所述的方法,还包括使一个或多个内容元素能够通过指明所述一个或多个内容元素响应的一个或多个事件而动态地注册到所述框架。

3.如权利要求2所述的方法,其中,所述一个或多个内容元素还指明用于响应所述一个或多个事件的过滤条件。

4.如权利要求1所述的方法,其中,所述例示步骤还包括将所述公布的事件传递给所例示的第二内容元素。

5.如权利要求4所述的方法,其中,所述例示步骤还包括将与所述公布的事件相关联的有效负荷传递给所例示的第二内容元素。

6.如权利要求5所述的方法,其中,所述有效负荷包括关于所述第二内容元素应该如何安装到所述框架中的信息。

7.如权利要求4所述的方法,其中,所述公布的事件在传递给所述第二内容元素之前被转换。

8.如权利要求1所述的方法,其中,响应于接收到第二公布的事件,所例示的第二内容元素自动将自己终止。

9.如权利要求1所述的方法,其中,所述框架在运行时期而非设计时期决定哪个或哪些内容元素聚合到所述框架中。

10.如权利要求1所述的方法,其中,所述框架包括操作系统、网络应用、或用户界面应用或其组合。

11.如权利要求1所述的方法,其中,所述第一内容元素包括微件、小容器、应用或其组合。

12.如权利要求1所述的方法,其中,所述第二内容元素包括微件、小容器、应用或其组合。

13.一种通过具有非例示内容的智能事件动态地聚合内容的系统,包括:处理器;

框架环境,可操作而在所述处理器上执行;

第一内容元素,可操作而在所述框架环境中执行;以及

注册部,包括一个或多个注册的事件,以及相关联的一个或多个第二内容元素,其动态地注册了所述一个或多个注册的事件;

响应于在运行时间从所述第一内容元素检测到发布的事件,所述框架还可操作来搜索与所述公布的事件匹配的注册的事件的注册部,并且如果找到匹配的注册的事件,则例示注册了所述匹配的注册的事件的第二内容元素,从而在所述框架中开始执行,其中,所述第二内容元素根据所述公布的事件而动态地被聚合到所述框架中,而所述第一内容元素不必预先知道所述第二内容元素,并且所述第二内容元素不必预先知道所述第一内容元素,并且其中,所述框架也不必被初始设计为部署所述第二内容元素。

14.如权利要求13所述的系统,其中一个或多个内容元素能够通过指明所述一个或多个内容元素响应的一个或多个事件而动态地注册到所述框架。

15.如权利要求13所述的系统,其中,所述一个或多个内容元素还指明用于响应所述一个或多个事件的过滤条件。

16.如权利要求13所述的系统,其中,所述框架将所述公布的事件与有效负荷一起传递给所述例示的第二内容元素,所述有效负荷包括关于所述第二内容元素应该如何安装到所述框架中的信息。

17.如权利要求16所述的系统,其中,所述公布的事件在传递给所述第二内容元素之前被转换。

18.一种计算机可读取的存储介质,存储指令的程序,该指令可由机器执行来执行通过具有非例示内容的智能事件动态地聚合内容的方法,包括:在处理器上,在第一框架内执行第一内容元素;以及

响应于从在所述框架内执行的所述第一内容元素检测到发布的事件,搜索与所述公布的事件匹配的一个或多个注册的事件的注册部,并且如果找到匹配的注册的事件,则例示注册了所述匹配的注册的事件的第二内容元素,从而开始在所述框架中的执行,其中,所述第二内容元素根据所述公布的事件而动态地被聚合到所述框架中,而所述第一内容元素不必预先知道所述第二内容元素,并且所述第二内容元素不必预先知道所述第一内容元素,并且其中,所述框架也不必被初始设计为部署所述第二内容元素,其中,在运行时期而非设计时期决定将哪个或哪些内容元素聚合到所述框架中。

19.如权利要求18所述的计算机可读取的存储介质,还包括使一个或多个内容元素能够通过指明所述一个或多个内容元素响应的一个或多个事件而动态地注册到所述框架。

20.如权利要求19所述的计算机可读取的存储介质,其中,所述一个或多个内容元素还指明用于响应所述一个或多个事件的过滤条件。

21.如权利要求18所述的计算机可读取的存储介质,其中,所述例示步骤还包括将所述公布的事件传递给所例示的第二内容元素。

22.如权利要求21所述的计算机可读取的存储介质,其中,所述例示步骤还包括将与所述公布的事件相关联的有效负荷传递给所例示的第二内容元素。

23.如权利要求22所述的计算机可读取的存储介质其中,所述有效负荷包括关于所述第二内容元素应该如何安装到所述框架中的信息。

24.如权利要求21所述的计算机可读取的存储介质,其中,所述公布的事件在传递给所述第二内容元素之前被转换。

25.如权利要求18所述的计算机可读取的存储介质,其中,响应于接收到第二公布的事件,所例示的第二内容元素自动将自己终止。

说明书 :

通过具有非例示内容的智能事件的动态用户界面聚合

技术领域

[0001] 本申请一般地涉及计算机系统和计算机应用,尤其涉及操作系统、网络应用、入口和事件框架。

背景技术

[0002] 网络应用可以由诸如入口(portal)和糅合(mashup)的独立的内容构成,该入口用于提供对于万维网(网络)和相似的全球性网络中的信息的接入点,该糅合是已经组合了诸如功能性的元素和来自多个来源的数据从而建立新的服务的网页或应用。这些网络应用传统上具有静态地定义的页面内容,或者可以对页面明确地添加动态内容。即,页面是预定义的,并且每个页面上的内容可以响应于各种动作而明确地添加特定的新小容器(portlet)或微件。简单地说,小容器是可插入的用户界面软件组件,其由网络入口管理和显示。微件是可以在网页中安装并执行的小应用。在由独立开发的内容构成的环境下,通过将事件框架标准化,从而能够在同一页面上的小容器和微件之间传递数据。操作系统本质上也同样运作;用户可以明确地加载应用,并且应用可以响应于各种动作而明确地加载其他应用。这与在入口页面上加载小容器并使那些小容器发起其他的小容器相似。操作系统基本上如同单页面入口一样运作。
[0003] 在网络应用或操作系统的技术领域中,尚不具备动态加载内容或应用并且传递基于事件的数据的能力,除非该新内容或应用以前就知道,并且明确地被编码在起源内容或应用中。
[0004] 例如,目前的网络应用要么通过对需要的新内容进行硬编码从而明确地发起特定内容,该新内容中的灵活性或糅合能力可能被降低,要么构筑其中所有内容是已有的页面,从而实现在分离内容之间的事件,并使布局和可用性问题复杂化。类似地,操作系统应用要么通过硬编码新的应用来明确地发起特定应用,要么具有所有已经加载的相关应用并且监听事件,或许就像发起整个应用的微件或插件,但仍然在后台持续运行。

发明内容

[0005] 可以提供一种通过具有非例示(non-instantiated)内容的智能事件(smart eventing)动态地聚合内容的方法和系统。该方法在一个方面可以包括在处理器上,在第一框架内执行第一内容元素。该方法还可以包括响应于检测到从在所述框架内执行的所述第一内容元素发布的事件,搜索与所述公布的事件匹配的一个或多个注册的事件的注册部,并且如果找到匹配的注册的事件,则例示注册了所述匹配的注册的事件的第二内容元素,从而开始在所述框架中执行。所述第二内容元素可以根据所述公布的事件而被动态地聚合到所述框架中,而所述第一内容元素不必预先知道所述第二内容元素,并且所述第二内容元素不必预先知道所述第一内容元素。所述框架也不必被初始设计为部署所述第二内容元素。
[0006] 一种通过具有非例示内容的智能事件动态地聚合内容的系统,在一个方面,可以包括框架环境,可被操作而在所述处理器上执行。第一内容元素可被操作而在所述框架环境中执行。注册部包括一个或多个注册的事件,以及相关联的一个或多个第二内容元素,其动态地注册了所述一个或多个注册的事件。响应于在运行时间从所述第一内容元素检测到发布的事件,所述框架还可操作来搜索与所述公布的事件匹配的注册的事件的注册部,并且如果找到匹配的注册的事件,则例示注册了所述匹配的注册的事件的第二内容元素,从而开始在所述框架中执行。所述第二内容元素根据所述公布的事件而被动态地聚合到所述框架中,而所述第一内容元素不必预先知道所述第二内容元素,并且所述第二内容元素不必预先知道所述第一内容元素。所述框架也不必被初始设计为部署所述第二内容元素。
[0007] 还可以提供一种计算机可读取的存储介质,存储有指令的程序,该指令可由机器执行从而执行在此描述的一个或多个方法。
[0008] 各种实施例的其他的特征以及结构和操作参照附图在下面详细描述。在附图中,相似参考标号表示相同或功能相近的元素。

附图说明

[0009] 图1示出一个实施例中的本公开的方法。
[0010] 图2示出执行一个实施例中的本公开的方法的场景的例子。
[0011] 图3示出执行一个实施例中的本公开的方法的场景的另一例子。
[0012] 图4是示出本公开的一个实施例中的动态聚合内容的方法的流程图。
[0013] 图5是示出可以执行一个实施例中的本公开的动态内容聚合的计算机或处理系统的例子的示意图。

具体实施方式

[0014] 本公开一般性地公开用于根据事件而在应用框架内动态添加应用组件的方法和系统。应用组件可以响应于事件,通过确定过滤条件而将应用组件注册到应用框架,从而动态地被添加。结果,当在应用框架中发生事件时,应用框架自动地调用或添加过滤条件与事件相匹配的应用组件,例如,关于该事件以逻辑方式。此外,事件相关的数据可以被转换为被调用或添加到应用框架的应用组件可接受的形式。
[0015] 尤其是,一个实施例中的本公开使得跨越框架的聚合和事件成为可能,框架例如有操作系统框架、网络或其他应用框架等等。在本公开中,在一个实施例中,动态应用框架可以基于来自独立提供商或资源等的积木式部件而构筑,其中根据事件而不是以前的知识动态地决定内容和层。在本公开的一个实施例中,可以提供一种注册机制,从而对链接到触发对框架添加内容的相关事件的可获得内容进行注册。进而,可以提供一种机制,在由事件触发时动态地调用或添加内容,而无需由产生事件的内容预先知道。可以提供一种机制,从而关于位置、大小和/或其他条件,根据事件上下文,以逻辑方式添加动态内容。此外,可以提供一种机制,用于将事件结构或转换能力进行标准化。
[0016] 在一个方面,本公开的应用框架可以根据事件而非预先决定的布局和动作来构筑动态用户界面(UI)。现有或已经运行的内容元素发送基于其自身内容的事件。运行该内容事件的框架然后构筑动态UI,该动态UI包括来自多个内容提供商的其他内容,其能够互相处理。该构筑是动态的,因为其他内容不一定在UI中运行或呈现;相反,它们是基于事件而配置的。此外,现有的内容不必之前已经知道或者了解产生事件的内容。框架和/或动态内容可以确保关于触发事件,例如位置、大小和/或其他条件,以逻辑方式添加新内容。通过这种方式,可以从参加的内容提供商自动构筑动态UI,包括产生层,这些层并非是以前在开发时期定义或计划的。由于动态添加的内容元素也可以在发起时进行自动化的动作,因此该框架也可以允许自动化的动作动态地聚合。
[0017] 本公开的方法例如可以作为诸如来自纽约阿蒙科的国际商用机器公司( )的 Integrated Portal(TIP)的portal或糅合的特征来执行,但是并不限于这一环境。其也可以应用到操作系统框架或具有独立来源的内容和事件的任何其他框架。
[0018] 图1示出一个实施例中的本公开的方法。在102,在一个实施例中的诸如操作系统的框架、应用或网络应用可以使得内容元素添加到框架中,例如通过注册到框架中,并确定内容元素以及内容元素能够响应的一个或多个事件的识别符,甚至在内容元素没有已经在运行时。例如,内容元素可以通过在框架所保存的记录(例如,数据表、文件等)中插入条目从而进行注册。条目可以包括内容或一个或多个事件的识别符(例如,名称)。对于网络应用,内容元素的例子包括但不限于小容器和iwidget。内容元素如果没有呈现在网络入口的网页上则被认为“没有运行”。作为另一个例子,对于操作系统,内容元素可以包括但不限于应用。如果应用没有加载到存储器或者没有在处理器上执行则认为该程序“没有运行”。记录可以在任何时间开放注册,例如,甚至在框架和框架中配置的任何内容元素的运行时间。
[0019] 在104,内容元素也可以确定用于控制其何时响应确定的事件的事件过滤器。例如,过滤器可以作为由框架或应用编程界面(API)或可执行命令解析的简单规则来执行。
[0020] 在106,在原始事件不是“标准”形式时,内容元素也可以被配置进行事件转换。转换的结构在事件已知时可以在“安装”或“配置”时完成,而非在公布或接收内容的开发时期。在本公开中,例如,在提到安装独立程序等,配置模块或插件等时,“安装”或“配置”的术语一般作为同义使用并且可互换。一个实施例中的本公开的转换方面允许这样的特征,即本公开的能力不比设计到内容元素的原始代码中。内容元素不比明确知道事件合适发生或源自何处。例如,当安装响应于“TrafficAlert”事件的小容器时,可以确定转换,从而将任何来自可框架的“CollisionEvent”或“WeatherEvent”事件转换为“TrafficAlert”事件。该porlet不必被编写或编码为知晓关于这些框架特有事件的类型的任何情况,因为一个实施例中的本公开的转换功能可用来处理。转换可以作为例如由框架或API或可执行命令解析的一个或多个规则来执行。
[0021] 在108,内容元素也可以确定其应如何配置在框架中。例如,对于网络应用,小容器或iWidget或其他内容元素可以绝对地或者相应于传递的事件中的坐标来确定其应该被添加到原始页面(例如,网络入口)的何处。例如,考虑在入口环境下的表示街道地图的微件。来自该微件的事件可以包括由提供地图微件的数据触发的“CollisionEvent”。事件作为属性可以包括x-y坐标,从而碰撞被链接到显示的地图上的实际位置。当该事件发生,框架可以例示注册的新内容元素,例如,添加提供“向该地点派遣紧急队员”能力的微件。为了最大的可用性,新微件以关联于“CollisionEvent”中包括的事件坐标的x-y位置被添加到页面上。另一个例子可以关于随时更新的股价表。当发生诸如股价急剧变化的事件时,可以在一个位置上添加“立即买/卖”微件,从而其明确指向将其触发的表中的部分。对于操作系统,例如,应用可以确定其应在后台中加载,或者带有来自事件的参数而发起。
[0022] 在110,当现有的内容元素公布了符合过滤条件的注册的事件时,框架自动建立匹配内容元素的新事例,并且适当地将其配置到框架中。在本公开的一个实施例中,如果存在多个匹配,则可以将其全部添加到框架中。例如,如果多于一个内容元素与公布的事件匹配,则所有的匹配内容元素可以在框架中例示并且执行。
[0023] 执行一个实施例中的本公开的方法的一个例子的场景将参照图2在下面说明。该例子示出普通的地图小容器的数据中心管理应用。纯粹普通的地图小容器通过A产品显示地图并且在其上放置来自可配置的数据库的指示符从而进行开发。数据源在每次数据改变时也可以提供“MapEvents”中将公布的事件数据。由产品B开发的数据中心小容器可用,其注册为只要与MapEvent相关联的事件发生则被发起,例如,与过滤器相关联,比如与指示“type=ABCDataCenter”以及“status=red”的数据相关联。
[0024] 框架202,例如,应用UI使用提供有关所有的ABC公司的数据中心的数据的数据源,被构筑为诸如在UI页面或屏幕208上带有单一的地图小容器204,UI页面或屏幕208有效地形成背景。框架202和地图小容器204在处理器上运行。提供地图小容器的数据触发具有“type=ABCDataCenter”以及“status=red”的MapEvent。作为响应,框架202可以检查例如存储在存储器中的内容元素210的注册部,并且确定被触发的事件与由内容元素注册的事件匹配,在本例中,内容元素为数据中心小容器。
[0025] 框架202,在本例中为应用UI,建立数据中心小容器206的事例并且将其添加到地图上方的页面208中,并被放置,从而其直接“指向”事件坐标,其对于普通地图小容器204是不知道的,并且表示数据中心。数据中心小容器206现在被动态地添加并且能够在处理器上执行(运转)。框架202将MpaEvent传递给新的事例或新发起的数据中心小容器206,通知问题的用户并且允许补救。新事例的数据中心小容器206可以接收地图事件的有效负荷,或者在加载到UI页面后的事件的转换的形式。具有多个数据中心(其中服务器提供服务)的公司可以使用普通的地图小容器或微件以及事件,从而对操作员展示其数据的状态。例如,如果散热系统在一个地点失效,则可以触发具有确定数据中心位置(x,y坐标)的有效负荷、问题的严重性以及其他信息的MapEvent。界面然后可以对界面添加合适(注册)的微件,从而操作员可以知道事件,或者根据事件而实际采取行动。在散热系统失效的例子中,框架可以例示“维护传唤”微件,从而允许操作员建立对工作的请求,对其分配优先级并且/或者执行其他动作。
[0026] 在通知后,用户或他人可以在数据中心选定识别的警报,并且进行修改。补救在数据源中进行改变,触发具有“type=IBMDataCenter”以及“status=green”的新的MapEvent。数据中心小容器206(当前存在于UI页面上)可以通过自动将本身关闭或者提供反馈或其他动作,从而对“green”状态事件进行反馈。
[0027] 在上述例子中,动态添加的内容响应于事件而被添加或调用,但是不必已经被加载并在监听事件。起源小容器(例如,地图小容器)完全是普通的,其不需要知道其正在被用于监视数据中心或者数据中心小容器可用来处理事件。相同的地图小容器可以监视对于街道交通拥挤数据、足球分数或者选举结果的提供,或者甚至同时的多个类型的提供,并且发送相同类型的普通的MapEvent。因此,地图微件完全可以是普通的,并且不必特别按照可能响应的内容元素的类型进行编码。地图微件可以发布事件中的任何类型的有效负荷;本公开的注册和过滤功能可以控制结果是何种类型界面。框架通过知晓对于不同的事件和有效负荷可以添加什么内容,从而构筑专用的应用UI。
[0028] 执行一个实施例中的本公开的方法的另一个例子的场景将参照图3在下面说明。该例子示出能够根据事件而动态地添加应用或组件的操作系统框架。由公司A开发的普通的虚拟专用网络(VPN)应用被卖到很多公司。该应用在VPN连接被建立、关闭以及意外终止时发布VpnEvent。发布事件可以包括呼叫框架的API去确定正在发布事件。框架可以执行事件API来接收或捕获这些事件并进行处理。B公司购买该普通的VPN应用给自己的员工使用。B公司也提供专用的桌面工具条应用,该应用只要用户一连接到VPN就应该运行,并且提供专用帮助台应用,该应用只要VPN连接被意外终止就应该自动运行。操作系统302在处理器上运行VPN应用304。桌面工具条应用306注册来接收带有“type=connected”的VpnEvent。帮助台应用308注册来接收带有“type=terminated”的VpnEvent。由于VPN应用304发布事件,因此操作系统302自动发起注册的应用,而不是例如要求这些应用一直运行在后台来获得事件。例如,操作系统302可以检查内容元素310的注册部,并且将产生的事件与注册部310中的事件匹配。当找到匹配后,作为响应,操作系统302发起与注册部310中的事件相关联的内容元素。
[0029] 虽然上述例子示出与操作系统、应用环境、网络应用以及小容器环境有关的本公开的方法,但应该理解注册、过滤、发起的系统也可以应用于不同的环境。
[0030] 图4是示出本公开的一个实施例中的动态聚合内容的方法的流程图。在402,一个或多个内容元素可以注册到框架中,例如,确定该一个或多个内容元素可以响应并处理的一个或多个事件。该一个或多个事件可以用过滤条件确定,过滤条件表示该一个或多个内容元素响应的事件的条件。注册可以动态地随时进行,例如,甚至在框架和其他一个或多个内容元素运行时。注册的内容元素可以是来自框架或可以在框架中运行的其他一个或多个内容元素的独立的组件。
[0031] 在404,内容元素(例如,作为第一内容元素提及)在框架内执行。该第一内容元素不必知道或者不必以前知道注册的一个或多个内容元素。第一内容元素在其执行过程中可以发布一个或多个事件。
[0032] 在406,响应于从框架中执行的第一内容元素检测到发布的事件,框架可以搜索与发布的事件匹配的一个或多个注册的事件的注册部。在408,如果发现匹配的注册的事件,则框架可以例示注册了该匹配的注册的事件的第二内容元素,以在框架中开始执行。发布的事件和有效负荷可以传递给第二内容元素,从而,例如该第二内容元素可以在框架中执行其给定的功能。该注册部也可以包括第二内容元素应该如何在框架中发起的信息,例如,框架是UI的情况下的UI的物理位置、呈现条件及其他。而且,在穿钉发布的事件和其他任何信息之前,发布的事件和其他任何信息可以从例如由第一内容元素发布的形式被转换成能够被第二内容元素理解的不同形式或格式。第二内容元素因此根据公布的事件而动态地被聚合到框架中,而不需要第一内容元素以前知道第二内容元素。此外,第二内容元素不必以前知道第一内容元素。该框架也不必初始被设计用来配置第二内容元素。第二内容元素也可以在检测到其他公布的事件时自动地终止自身。
[0033] 图5是示出可以执行一个实施例中的本公开的动态内容聚合的计算机或处理系统的例子的示意图。计算机系统仅仅是合适的处理系统的例子,并且不是用来暗示对于在此说明的方法的实施例的使用和功能的范围加以限制。所示的处理系统可以在其他一般目的或特别目的计算系统环境或结构下操作。已知的可以适于在图5所示的处理系统中使用的计算系统、环境和/或结构可以包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子、网络PC、迷你计算机系统、大型计算机系统以及分布云计算环境,包括上述系统和装置的任意及其他。
[0034] 计算机系统可以描述为计算机系统可执行指令的一般上下文,例如,由计算机系统执行的程序模块。一般来说,程序模块可以包括例行程序、程序、目标、组件、逻辑、数据结构等等,其执行特定任务或执行特定抽象数据类型。计算机系统可以在分布云计算环境中实现,其中,任务由通过通信网络链接的远程处理装置执行。在分布云计算系统中,程序模块可以位于本地或包括存储器存储装置的远程计算机系统存储介质中。
[0035] 计算机系统的组件可以包括但不限于:一个或多个处理器或处理单元12、系统存储器16以及将包括系统存储器16至处理器12的各种系统组件耦合的总线14。处理器12可以包括动态内容聚合模块10,用于执行在此说明的方法。模块10可以被编程到处理器12的集成电路中,或者从存储器16、存储装置18或网络24或者它们的组合进行加载。
[0036] 总线14可以呈现一个或多个任何的多个类型的总线结构,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用多个总线结构的处理器或局域总线。通过例示而非限制的方式,这样的结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局域总线以及外围组件互联(PCI)总线。
[0037] 计算机系统可以包括多种计算机系统可读取介质。该介质可以是任何可被计算机系统存取的可获取的介质,并且可以包括易失性和非易失性介质、可移动和不可移动介质。
[0038] 系统存储器16可以包括易失性形式的计算机可读取的介质,例如,随机存取存储器(RAM)和/或缓存存储器或其他。计算机系统还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。通过例示的方式,存储系统18可以被提供用于从不可移动、非易失性磁介质(例如,硬盘)中进行读取,或者对其写入。虽然没有图示,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)中读取或对其写入的磁盘驱动器,以及用于从可移动、非易失性光盘,诸如CD-ROM、DVD-ROM或其他光介质中读取或对其写入的光盘驱动器。在这些情况下,各驱动器都可以通过一个或多个数据介质接口而连接到总线14。
[0039] 计算机系统也可以与一个或多个外部装置26通信,例如:键盘、指示装置、显示器28等;使用户与计算机系统交互的一个或多个装置;和/或使计算机系统与一个或多个其他计算机装置交互的任何装置(例如,网卡、调制解调器等)。该通信通过输入/输出(I/O)接口20发生。
[0040] 此外,计算机系统可以通过网络适配器22与一个或多个网络24通信,例如:局域网(LAN)、一般广域网(WAN)、和/或公共网络(例如,因特网)。如上所述,网络适配器22通过总线14与计算机系统的其他组件通信。应该理解的是,虽然没有图示,但是其他硬件和/或软件组件可以与计算机系统联合使用。包括但不限于以下例子:微码、装置驱动器、冗余处理单元、外部盘驱动器阵列、RAID系统、磁带驱动器、以及数据档案存储系统等。
[0041] 本领域技术人员会注意到,本发明的方面可以包括系统、方法或计算机程序产品。从而,本发明的方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或组合软件和硬件方面的实施例的形式,其在此一般被称作“电路”、“模块”或“系统”。此外,本发明的方面可以采用其中具有计算机可读取程序代码的一个或多个计算机可读取介质中包括的计算机程序产品的形式。
[0042] 可以使用一个或多个计算机可读取介质的任意组合。计算机可读取介质可以是计算机可读取信号介质或计算机可读取存储介质。计算机可读取存储介质例如可以是但不限于电子、磁、光、电磁、红外线或半导体系统、设备或装置,或者上述的任意合适的组合。计算机可读取存储介质的更明确的例子(不彻底的列表)可以包括:具有一个或多个导线的电连接、便携计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光线、便携压缩盘只读存储器(CD-ROM)、光存储装置、磁存储装置或上述的任意合适的组合。在本文件的上下文中,计算机刻度存储介质可以是任何有形介质,其可以包含或存储由指令执行系统、设备或装置使用或与其联合使用的程序。
[0043] 计算机可读取信号介质可以包括其中具有计算机可读取程序代码的在几代或作为载波的一部分传播的数据信号。该传播的信号可以采取多种形式的任何一种,包括但不限于:电磁、光或其任何合适的组合。计算机可读取信号介质可以是任何计算机可读取介质,其并非计算机可读取存储介质,并且可以通信、传播或传送由指令执行系统、设备或装置使用或与其联合使用的程序。
[0044] 计算机可读取介质上包括的程序代码可以使用任何合适的介质传送,包括但不限于无线、有线、光线缆线、RF等,或上述任何合适的组合。
[0045] 用于执行本发明的各个方面的操作的计算机程序代码可以通过一个或多个编程语言的任意组合编写,包括诸如Java、Smalltalk、C++等目标导向编程语言,诸如“C”编程语言或相似编程语言的传统程序化编程语言,诸如Perl、VBS或相似语言的脚本语言,以及/或者诸如Lisp和ML以及Prolog等逻辑导向语言的功能语言。程序代码可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立软件包部分在用户计算机上执行,以及部分在远程计算机或全部在远程计算机或服务器上执行。在后者的场景下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。
[0046] 本发明的各方面参照本发明的实施例的方法、设备(系统)以及计算机程序产品的流程图说明和/或方框图进行了说明。应该理解的是,流程图说明和/或方框图的各个方框以及流程图说明和/或方框图的方框的组合可以通过计算机程序指令实施。这些计算机程序指令可以被提供给普通目的计算机、专用目的计算机或其他可编程数据处理设备的处理器以生产机器,从而通过计算机或其他可编程数据处理设备执行的指令产生用于执行由流程图和/或方框图的方框确定的功能/动作。
[0047] 这些计算机程序指令也可以存储在计算机可读取的介质中,从而能够指导计算机、其他可编程数据处理设备或其他设备以特殊方式运行,从而存储在计算机可读取的介质中的指令产生制造的物品,包括执行由流程图和/或方框图的方框确定的功能/动作的指令。
[0048] 计算机程序指令也可以被加载到计算机、其他可编程数据处理设备或其他装置上,从而使得一系列可操作的步骤在计算机、其他可编程数据处理设备或其他装置上执行,从而产生计算机执行的处理,使得在计算机或其他可编程设备上执行的指令提供用于执行由流程图和/或方框图的方框确定的功能/动作的指令。
[0049] 图中的流程图和方框图说明了本发明的各种实施例的系统、方法和计算机程序产品的可能的实施的结构、功能和操作。在这一点上,流程图或方框图中的每个方框可以代表代码的模块、片段或部分,其包括用于执行特定逻辑功能的一个或多个可执行的指令。也应该注意到,在一些其他的实施中,在方框中记载的功能可能不是按照图中记载的顺序发生。例如,根据所涉及的功能,连续表示的两个方框实际上可以实质上同时执行,或者这些方框有时可以按照相反顺序执行。也应注意到,方框图和/或流程图说明中的各个方框以及方框图和/或流程图说明中的方框的组合可以由专用目的基于硬件的系统执行,该系统执行确定的功能或动作,或者专用目的硬件和计算机指令的组合。
[0050] 计算机程序产品可以包括能够实施在此说明的方法的各个特征的全部,并且在加载到计算机系统时能够执行该方法。该上下文中的计算机程序、软件程序、程序或软件表示用来使具有信息处理能力的计算机系统要么直接执行特定功能,或者在下面的一个或两者之后执行的一组指令的以任何语言、代码或符号的表达:(a)转换为另一语言、代码或符号;和/或(b)以不同的实质性的形式再现。
[0051] 在此使用的术语仅仅用于描述特定实施例的目的,并不是用来限制本发明。如在此使用的单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文明确地做出其他表示。应进一步理解的是,“包括”和/或“包括着”的术语在用于本说明书时用于确定所述特征、整数、步骤、操作、元素和/或组件的存在,但是不排除对于一个或多个其他特征、整数、步骤、操作、元素和/或组件的存在或增加。
[0052] 在权利要求中的对应的结构、材料、动作以及所有装置或步骤加功能元素的等同(如果存在)意图包括用于与特别要求保护的其他要求保护的元素联合执行功能的任何结构、材料或动作。对于本发明的描述已经为了描述和说明的目的而被呈现,但是并不意图成为穷尽,或者将本发明限制在所公开的形式中。对于本领域技术人员来说,在不脱离本发明的范围和精神的前提下进行很多的修改和变化是很明显的。实施例是为了更好地届时本发明和实际应用的原理而被选择并描述的,并且为了是本领域其他技术人员理解本发明的适于所设想的特定用途的带有各种修改的各种实施例。
[0053] 本公开的各个方面可以具体化为包含于计算机或机器可使用或可读取介质中的程序、软件或计算机指令,其在被计算机、处理器和/或机器中执行时,使得计算机或机器执行方法的步骤。也提供一种机器可读取的程序存储装置有形地具体化为可由机器执行从而执行本公开中说明的各种功能和方法指令的程序。
[0054] 本公开的系统和方法可以在普通用途计算机或专门用途计算机系统中执行和运行。可能在本申请中使用的术语“计算机系统”和“计算机网络”可以包括固定和/或便携计算机硬件、软件、外设和存储装置的各种组合。计算机系统可以包括联网或被链接以协作执行的多个单独的组件,或者可以包括一个或多个独立组件。本申请的计算机系统的硬件和软件组件可以包括并且可以包括于固定和便携装置中,例如桌面、膝上和/或服务器。模块可以是执行某“功能”的装置、软件、程序或系统的组件,其可以具体是软件、硬件、固件、电子电路等。
[0055] 上面描述的实施例是例示的例子,并且不应解释为本发明被限制于这些特定实施例中。因此,本领域技术人员在不脱离如权利要求所限定的本发明的范围和精神的前提下可以实现各种改变和修改。