用于应用和服务的安全意识弹性的方法和设备转让专利

申请号 : CN201380013700.8

文献号 : CN104169900B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·康杜A·莫海因德拉S·萨胡

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

摘要 :

在用于按比例扩展/缩减应用的安全(非功能)组件的方法中,确定(a)每个非安全(功能)组件针对多个请求而具有的与安全组件的交互的类型、以及每个交互类型的数量。基于(a)和到来的对应用的请求的预期数量确定:(b)涉及非安全组件的对安全组件的请求以及与安全组件的交互的类型;以及(c)对于涉及非安全组件的对安全组件的每个类型的请求,涉及非安全组件的对安全组件的请求以及与安全组件的交互的数量。对于每个安全组件,确定涉及非安全组件的每个类型的请求所需的容量、以及涉及非安全组件的每个类型的交互所需的容量。将安全组件的容量改变为新容量,其中新容量基于(a)、(c)和所确定的容量。

权利要求 :

1.一种调节容量的方法,包括:

对于应用的每个非安全组件,确定(a)所述非安全组件针对多个请求而具有的与所述应用的安全组件的交互的类型、以及每个交互类型的总数;

基于(a)和到来的对所述应用的请求的预期数量确定:(b)从所述非安全组件对所述安全组件的请求的类型、以及涉及所述非安全组件的与所述安全组件的交互的类型;以及(c)对于从所述非安全组件对所述安全组件的每个类型的请求,涉及所述非安全组件的对所述安全组件的请求的总数、以及涉及所述非安全组件的与所述安全组件的交互的总数;

对于每个安全组件,确定处理涉及所述非安全组件的每个类型的请求所需的容量、以及执行涉及所述非安全组件的每个类型的交互所需的容量;以及将所述安全组件的容量改变为新容量,其中所述新容量基于(a)、(c)和所确定的处理涉及所述非安全组件的每个类型的请求所需的容量、以及执行涉及所述非安全组件的每个类型的交互所需的容量而确定,其中通过分析下述来确定(a):所述安全和非安全组件、与安全组件交互或者影响所述安全组件中的至少一个以上的负荷的与所述应用相关联的非功能或功能子系统的代码,所述安全和非安全组件的配置信息,所述应用的工作流程和所述应用的部署参数。

2.如权利要求1所述的方法,其中通过分析下述来确定执行涉及所述非安全组件和安全组件的每个类型的交互所需的容量:处理涉及所述非安全组件和安全组件的每个类型的请求所需的容量,所述应用上的当前负荷,由于到来的请求而施加于所述应用上的预期负荷,以及所述应用的服务水平协议(SLA)和服务质量(QoS)参数。

3.如权利要求1所述的方法,其中使用所述应用的SLA和QoS参数来计算特定安全组件上的负荷。

4.如权利要求1所述的方法,其中将所述安全组件的容量改变为所述 新容量包括:增加或减少安全组件的总数。

5.如权利要求1所述的方法,其中将所述安全组件的容量改变为所述新容量包括:增加或减少所述安全组件的内部容量或者所述安全组件所依赖于的基础设施和组件的容量。

6.一种调节容量的系统,包括:

用于存储程序的存储器件;以及

与所述存储器件通信的处理器,所述处理器与所述程序一起可操作地:

对于应用的每个非安全组件,确定(a)所述非安全组件针对多个请求而具有的与所述应用的安全组件的交互的类型、以及每个交互类型的总数;

基于(a)和到来的对所述应用的请求的预期数量确定:(b)从所述非安全组件对所述安全组件的请求的类型、以及涉及所述非安全组件的与所述安全组件的交互的类型;以及(c)对于从所述非安全组件对所述安全组件的每个类型的请求,涉及所述非安全组件的对所述安全组件的请求的总数、以及涉及所述非安全组件的与所述安全组件的交互的总数;

对于每个安全组件,确定处理涉及所述非安全组件的每个类型的请求所需的容量、以及执行涉及所述非安全组件的每个类型的交互所需的容量;以及将所述安全组件的容量改变为新容量,其中所述新容量基于(a)、(c)和所确定的处理涉及所述非安全组件的每个类型的请求所需的容量、以及执行涉及所述非安全组件的每个类型的交互所需的容量而确定,其中通过分析下述来确定(a):所述安全和非安全组件、与安全组件交互或者影响所述安全组件中的至少一个以上的负荷的与所述应用相关联的非功能或功能子系统的代码,所述安全和非安全组件的配置信息,所述应用的工作流程和所述应用的部署参数。

7.如权利要求6所述的系统,其中通过分析下述来确定执行涉及所述非安全组件和安全组件的每个类型的交互所需的容量:处理涉及所述非安全组件和安全组件的每个类型的请求所需的容量,所述应用上的当前负荷,由于到来的请求而施加于所述应用上的预期负荷,以及所述应用的服务水 平协议(SLA)和服务质量(QoS)参数。

8.如权利要求6所述的系统,其中使用所述应用的SLA和QoS参数来计算特定安全组件上的负荷。

9.如权利要求6所述的系统,其中通过增加或减少安全组件的总数,将所述安全组件的容量改变为所述新容量。

10.如权利要求6所述的系统,其中将所述安全组件的容量改变为所述新容量包括:增加或减少所述安全组件的内部容量或者所述安全组件所依赖于的基础设施和组件的容量。

说明书 :

用于应用和服务的安全意识弹性的方法和设备

[0001] 相关申请的交叉引用
[0002] 本申请要求2012年3月13日提交的美国专利申请号13/419,037的优先权,通过引用将其全部公开内容结合在本文中。

技术领域

[0003] 本发明涉及一种有弹性的云应用。

背景技术

[0004] 例如,考虑托管在云上(在一个或多个虚拟机上)的应用具有用于用户认证和身份管理的安全组件的情况。因为该应用是有弹性的,所以如果针对该应用的工作负荷增加,则该应用的非安全组件可以被分配更多的容量,使得该应用可以处理更多到来的请求。然而,当安全组件的容量不按成比例的方式增加时,这可能会导致瓶颈。例如,用户认证请求可能无法被及时处理,从而影响响应时间、服务等待时间和吞吐量。类似的瓶颈也可能出现在其他组件中,例如与监测、起源数据(provenance data)收集等相关联的那些组件。
[0005] 云(或者更具体地,云计算)可以指作为服务而非产品的计算的递送,由此共享的资源、软件和信息通过网络(通常是因特网)被提供给计算机和其他装置作为计量的服务。

发明内容

[0006] 本发明公开了一种与到来的负荷成比例地扩展和/或缩减云安全和/或非功能组件的容量的方法和设备。
[0007] 本发明的示例性实施例提供了一种用于按比例扩展和/或缩减云安全和/或非功能组件的方法、系统和计算机程序产品。
[0008] 在该方法中,对于应用的每个非安全组件,确定(a)该非安全组件针对多个请求而具有的与应用的安全组件的交互的类型、以及每个交互类型的总数。基于(a)和到来的对应用的请求的预期数量确定:(b)从非安全组件对安全组件的请求的类型、以及涉及非安全组件的与安全组件的交互的类型;以及(c)对于从非安全组件对安全组件的每个类型的请求,涉及非安全组件的对安全组件的请求的总数、以及涉及非安全组件的与安全组件的交互的总数。对于每个安全组件,确定处理涉及非安全组件的每个类型的请求所需的容量、以及执行涉及非安全组件的每个类型的交互所需的容量。将安全组件的容量改变为新容量,其中新容量基于(a)、(c)和所确定的容量。

附图说明

[0009] 图1示出云服务的实例;
[0010] 图2示出按比例扩展的云服务的实例;
[0011] 图3示出根据本发明的示例性实施例按比例扩展的云服务;
[0012] 图4A和4B示出根据本发明的示例性实施例的按比例扩展/缩减云服务的方法的流程图;并且
[0013] 图5示出用于实现本发明的示例性实施例的设备。

具体实施方式

[0014] 根据本发明的示例性实施例,提供了一种与到来的负荷成比例地扩展和/或缩减云安全和/或非功能组件的容量的方法和设备。该按比例调节可以被认为是主动的。
[0015] 简言之,该方法如下。对于特定的应用,对于针对该应用的每个类型的客户端请求,确定每个组件与该应用的安全组件将要进行的交互的数量和类型。确定在该组件处理每个这样的请求所需的容量、以及该组件与安全组件的每个交互所需的容量。此外,根据该组件上的工作负荷的增加/减少,确定安全组件上的负荷如何增加/减少。然后,当针对该组件的容量增加/减少请求到来时,对于安全组件,在某种程度上按比例增加/减少其容量。
[0016] 现在将描述典型的基于云的应用。为简洁起见,以下聚焦于安全性作为非功能组件的实例,除非另有说明。
[0017] 参考图1。考虑托管在云(105)(诸如IBM的计算云)上的电子商务网站。该电子商务网站可以属于buy.com或ebay.com等类型。在这种基于网络的系统中,存在三个层:前端(例如,网络前端110),负责客户(例如,客户端125、130和135)的浏览、选择和购买活动的中间层应用层115(例如,应用服务器、A1(例如,部署在应用服务器之上的产品浏览应用)和A2(例如,部署在应用服务器之上的在线购物车应用)),以及作为数据库层的第三层(例如,数据库(DB)120)。
[0018] 例如,如果对于客户端125尚不存在用于电子商务应用的会话,则来自客户(诸如客户端125)的请求在客户端125的认证之后可能会导致创建会话。一旦会话得到建立,前端(诸如网络前端110)经由超文本标记语言(HTML)/Java服务器页面(JSP)/动态服务器页面(ASP)/JavaScript等将目录和/或搜索用户接口(UI)提供给客户端125。客户端125选定要购买的产品并将其添加到她的购物车中。客户端125进行到结帐。在结账期间,客户端125:(a)检查最终价格;(b)指定支付方式—或者(i)通过使用所存储的信用卡信息,或者(ii)通过输入信用卡信息;以及(3)为该产品付款并退出。电子商务应用然后将采购订单存储在数据库(诸如数据库120)上,并将部分采购订单转送到发货部门,并且将电子邮件转送到客户端125。
[0019] 上述步骤没有提到在此过程期间进行的安全相关步骤。以下是可以执行的典型安全相关步骤的实例。
[0020] 在创建与客户端125的会话的过程中,可能会涉及几个安全步骤。首先,存在到身份管理和认证子系统的认证请求。在这里,存在两个子请求—一个用于身份验证,而另一个用于对于该特定时间且对于所请求的活动和角色对客户端125进行认证。这也可能会涉及到有证书的客户的证书验证。第二,存在用于建立安全会话和加载所需的安全模块(诸如RSA/椭圆曲线)的随机数和会话密钥的产生。第三,存在对安全会话管理系统(诸如实现Kerberos的系统)的请求。
[0021] 在结账过程中,可能会存在对存储信用卡信息的安全数据库的访问请求。安全会话管理系统要求客户端125使用密码再次认证,以确保客户端125确实是经授权的客户端。信用卡信息的解密被执行。
[0022] 还可能会存在对于将接收到的信用卡信息存储在安全数据库中的访问请求,如果客户端125选择这样的话。在这里,安全会话管理系统要求客户端125使用密码再次认证,以确保该客户确实是经授权的客户端。这通常是不需要的。信用卡信息的加密被执行。
[0023] 在两个访问请求中,信用卡验证请求被发送到诸如verifiedvisa.com之类的网站或其他数据库。
[0024] 最后的安全相关步骤可能会涉及采购订单信息的加密、从安全数据库取回加密后的客户端125电子邮件、以及客户端125电子邮件信息的解密。
[0025] 现在,假设在感恩节期间,电子商务网站经历了较高的到来的负荷。例如,如图2中所示,客户端的数量增加。结果,基于云的应用的管理策略增加所有层的容量。例如,第一层的容量增至三倍(具有网络前端110a-c),中间层应用的容量增至两倍(具有115a和115b),并且第三层的容量增至两倍(具有数据库120a和120b)。然而,安全组件(例如,用户认证/身份管理)210、安全会话管理220和数据库访问控制230)的容量没有增加。结果,由于增加的负荷而没有更多的可用容量,安全组件用户认证/身份管理210可能会成为瓶颈。这种瓶颈可能会导致对电子商务网站上的服务攻击的拒绝。如图3所示,本发明提供了一种方式来增加安全组件的容量,以满足到来的工作负荷。本发明还提供了一种方式以在工作负荷下降时减少安全组件的容量。
[0026] 本发明适用于下文中称之为功能和非功能组件、或者功能和非功能需求/服务的组件。安全组件可以被认为是一种类型的非功能组件、需求或服务。非安全组件可以被认为是一种类型的功能组件、需求或服务。
[0027] 作为一个实例,与功能需求相关联的非功能需求是对于提供/满足预期/约定的以下参数而言必不可少的东西:服务质量(例如,响应时间、吞吐量等),服务状态的监测,使用核算和计量,服务的安全/隐私保护(例如,访问控制、身份管理、加密、密钥管理、完整性、信任管理),起源(例如,元数据集合),以及依从性(例如,确保数据以法律内允许的位置和方式被存储)。
[0028] 与非功能需求的服务质量相对应的功能需求的实例是提供电子商务服务或计算服务。与非功能需求的服务状态的监测相对应的功能需求的实例是提供电子商务服务或计算服务。与非功能需求的使用核算和计量相对应的功能需求的实例是通过云提供电子商务服务或计算服务。与非功能需求的服务安全/隐私保护相对应的功能需求的实例是通过云提供电子商务服务或计算服务。与非功能需求的起源相对应的功能需求的实例是通过云提供电子商务服务或计算服务。与非功能需求的依从性相对应的功能需求的实例是通过云提供电子商务服务或计算服务。
[0029] 现在提供用于按比例扩展/缩减非功能(例如,安全)服务的容量的方法的更详细的描述。应当理解,在典型的分布式应用中,功能组件FC和安全或非功能需求(NFR)组件NFRC之间的交互可以指从FC到NFRC或从NFRC到FC的请求、或者从代表FC/NFRC的另一组件到NFRC/FC的请求。通常,在本发明中考虑导致NFRC消耗不可忽略的量的资源的FC和NFRC之间的任何交互。
[0030] 参考图4A,输入功能服务S,其中FC是支持S和非功能组件/策略NFRC的解决方案的组件。响应于所述输入,在401分析功能组件FC的源/二进制代码、配置和策略。在这里,确定T1。T1=FC和NFRC之间的安全交互类型的集合。然后,对N1计数。N1=对于针对FC的每个外部请求、对于T1中的每个类型,FC发起的FC和NFRC之间的交互的下限、上限和概率数量。
[0031] 在402,分析功能组件FC的运行时间和它的配置和策略。这里,确定T2。T2=FC和NFRC之间的安全交互类型的集合。然后对N2计数。N2=对于针对FC的每个外部请求、对于T2中的每个类型,运行时间发起的FC和NFRC之间的交互的下限、上限和概率数量。
[0032] 在403,分析代表FC发起与NFRC的交互的任何系统的源/二进制代码、运行时间和相关联的配置和策略。在这里,确定T3。T3=FC和NFRC之间的安全交互类型的集合。然后对N3计数。N3=对于针对FC的每个外部请求,以这种方式发起的FC和NFRC之间的交互的下限、上限和概率数量。
[0033] 在404,确定T和N。T=T1∪T2∪T3。N=N1+N2+N3。N:对于针对FC的每个外部请求、对于T中的每个请求类型,FC和NFRC之间的交互的总数的下限、上限和概率度量的数值。
[0034] 现在转向图4B,输入功能服务S和非功能组件/策略NFRC。响应于所述输入,在410,通过遵循图4A中的步骤来确定针对每个对(例如FC,NFRC)的T和N。T(i)是指T中的第i个类型,并且N(FC,NFRC,i)是指每个类型T(i)和每个对(FC,NFRC)的数量。换句话说,对于应用的每个非安全组件,该方法确定(a)该非安全组件针对多个请求而具有的与应用的安全组件的交互的类型、以及每个交互类型的总数。(a)可以通过分析下述来确定:安全和非安全组件、与该应用相关联的与安全组件交互或者影响安全组件中的至少一个上的负荷的非功能或功能子系统的代码,安全和非安全组件的配置信息,该应用的工作流程和该应用的部署参数。
[0035] 在420,使TS=针对S的外部请求类型的集合、并且使NS(i,FC)=对于TS中的每个类型TS(i),在S中对FC的请求的预期数量。因此,N(TS(i),FC,NFRC,T(j))=N(FC,NFRC,j)*NS(i,FC)。用于从NS和组件N中计算N的方法使用可以被实例化为乘法的函数g,如图所示。换句话说,该方法基于(a)和到来的对应用的请求的预期数量确定:(b)从非安全组件对安全组件的请求的类型、以及涉及非安全组件的与安全组件的交互的类型;以及(c)对于从非安全组件对安全组件的每个类型的请求,涉及非安全组件的对安全组件的请求的总数、以及涉及非安全组件的与安全组件的交互的总数。
[0036] 在430,确定C。C:处理每个类型T(I)的安全交互的容量需求。通过相对于各种请求和请求的分布确定出安全组件的曲线图和/或通过使用容量规划工具来确定C。换句话说,对于每个安全组件,该方法确定处理涉及非安全组件的每个类型的请求所需的容量、以及执行涉及非安全组件的每个类型的交互所需的容量。
[0037] 处理涉及非安全组件的每个类型的请求所需的容量可以通过部署安全组件/系统、向该组件发送不同类型的请求、并测量用于服务于不同类型的请求的容量来确定。另一种方法是对每个这样的安全组件所执行的计算、以及所需的网络资源和计算资源进行建模,然后用此来确定处理每个类型的请求所需的容量。另一种方法可以涉及使用上述两种方法的组合。
[0038] 执行涉及非安全组件和安全组件的每个类型的交互所需的容量可以通过分析下述来确定:处理涉及非安全组件和安全组件的每个类型的请求所需的容量,应用上的当前负荷,由于到来的请求而施加于应用上的预期负荷,以及应用的服务水平协议(SLA)和服务质量(QoS)参数。
[0039] 在440,确定SC。SC:用来服务于请求N和使用曲线图或容量规划工具确定的C的每个类型的功能请求的安全容量需求。通过NS(i,FC)和SLA/QoS来确定SC。换句话说,对于每个安全组件,该方法确定处理涉及非安全组件的每个类型的请求所需的容量、以及执行涉及非安全组件的每个类型的交互所需的容量。
[0040] 在450,将安全组件的容量改变为SC。换句话说,将安全组件的容量改变为新容量,其中新容量基于(a)、(c)和所确定的容量。在这里,安全组件的总数可以增加或减少,或者安全组件所依赖于的基础设施和组件的容量中的安全组件的内部容量可以增加或减少。
[0041] 在下面的实施例中,我们描述按比例调节如何执行作为示例性方法。
[0042] 在下文中描述用来估计针对NFR服务的比例因子的变量N、C和SC。
[0043] N:对于每个功能请求、对于每个安全交互类型,安全交互的数量。这可以通过分析功能组件、配置/策略和运行时间系统来确定。例如,使功能请求类型-1为“添加物品到购物车”。N11=2,用于从密钥管理器请求密钥以对物品的数量进行加密、并且然后解密该请求,N12=1用于验证安全会话信息。使功能请求类型-2为“检查过去的订单”。N21=1,用于请求过去的订单的解密。
[0044] C:用于处理每个类型的安全交互的容量需求。这可以通过对协议的分析和动态地确定曲线图(profiling)来确定。例如,C11=(5 CPU,10 RAM,25网络带宽,10存储)用于请求密钥。
[0045] SC:每个类型的功能请求的安全容量需求。这可以通过使用N和C以及服务水平协议(SLA)/服务质量(QoS)、到来的负荷、当前负荷和安全服务的容量之间的关系来确定。例如,SC1=w(N11*C11+N12*C12);w=由SLA定义/从SLA导出的权重:金=1,银=0.5,青铜=0.2。N11*C11=(N11*5CPU,N11*10RAM,N11*25,N11*10)。对于另一个解决方案/SLA,SC1也可以计算如下:SC1=w11*N11*C11+w12*N12*C12,其中w11、w12是从SLA或其他非功能特性导出的权重。
[0046] 对于给定的功能服务,该方法如下进行:(1)对于每个功能请求类型、对于每个安全交互类型T,确定N和C;(2)使来自客户端的到来的功能请求的预期数量对于特定时间窗口为IL或直到特定事件发生为止都为IL,以及(3)对于支持特定安全服务的每个安全组件,将安全容量改变为由IL和SLA/QoS确定的SC。
[0047] 例如,假定以下安全交互类型={S1.认证,S2.产生随机数/密钥,S3.安全会话,S4.对数据库的安全访问}。还假定以下功能请求类型={F1.客户登录,F2.产品浏览,F3.添加到购物车}。使用这些安全交互类型和功能请求类型执行1至3会导致以下结果。
[0048] 1.Nij、Cj:第i个功能请求和对于该功能请求而言必要的第j个安全交互:N11=2,N12=1,...,C12=(5 CPU,10 RAM,25网络带宽,10存储)。
[0049] 2.来自客户端的预期的到来功能请求是IL=(F1=100,F2=150,F3=75)。
[0050] 3.SC1=w(F1*N11*C11,F1*N12*C12);w=由SLA定义的权重:金=1,银=0.5,青铜=0.2。N11*C11=(N11*5CPU,N11*10RAM,N11*25,N11*10)。
[0051] 4.从SC1、SC2、...算得的总SC=(服务于S1的组件的容量:C1,服务于S2的所有组件的容量,...)。
[0052] 所属领域的技术人员将理解的是,本发明的各个方面可以实施为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以采取用一个或多个计算机可读介质实施的计算机程序产品的形式,该计算机可读介质上包含有计算机可读程序代码。
[0053] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0054] 计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0055] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0056] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、Smalltalk、C++等),还包括常规的过程式程序设计语言(诸如“C”程序设计语言或类似的程序设计语言)。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0057] 参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0058] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。
[0059] 计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
[0060] 现在参考图5,根据本发明的示例性实施例,计算机系统501可以尤其包括中央处理单元(CPU)502、存储器503和输入/输出(I/O)接口504。计算机系统501一般通过I/O接口504耦合到显示器505和各种输入设备506,例如鼠标和键盘。支持电路可以包括例如高速缓存、电源、时钟电路以及通信总线的电路。存储器503可以包括RAM、ROM、磁盘驱动器、磁带驱动器等、或它们的组合。本发明的示例性实施例可以实现为存储在存储器503(例如,非暂时性计算机可读存储介质)中的例程507并且由CPU 502执行以处理来自信号源508的信号。因此,计算机系统501是当执行本发明的例程507时变为专用计算机系统的通用计算机系统。
[0061] 计算机平台501还包括操作系统和微指令代码。本文描述的各种处理和功能可以是经由操作系统执行的微指令代码的一部分或应用的一部分(或它们的组合)。此外,各种其他外围设备可以连接至计算机平台,诸如附加的数据存储装置和打印装置。
[0062] 附图中的流程图和框图示出根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些替代性实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0063] 本文中使用的术语仅用于描述特定实施例的目的并且并非旨在对本发明进行限制。本文中使用的单数形式“一”和“一个”旨在也包括复数形式,除非上下文有清楚的相反指示。还应理解的是,术语“包括”在本说明书中被使用时,指的是所陈述的特征、整数、步骤、操作、元件和/或组件的存在,而并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或附加。
[0064] 下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等效体意在包括任何用于结合其他明确宣称的宣称元件来执行功能的结构、材料或动作。本发明的描述已为说明和描述之目的呈现,而非意在穷尽或将本发明限制于所公开的形式。在不脱离本发明的范围和精神的前提下,许多修改和变化对于本领域普通技术人员来说将是显而易见的。实施例被选择并描述以便最佳解释本发明的原理和实际应用,并且使得本领域普通技术人员能够针对具有适合于所预期的特定用途的各种修改的不同实施例来理解本发明。