本公开总体上涉及企业测试系统。
背景技术
企业软件系统(企业系统)可用于执行企业级操作。示例企业系统可包括企业资源规划(erp)系统、客户关系管理(crm)系统、产品生命周期管理(plm)系统、供应链管理(scm)系统和供应商关系管理(srm)系统。在生产环境中,众多用户每天与企业系统交互,从而导致成百甚至上千的事务以及相对大量的数据。在一些情况下,企业系统可被更新和/或定制。例如,企业系统的较新版本可为可用的,从而导致对企业系统的更新(例如,从版本1.0更新到版本2.0)。作为另一示例,企业可定制企业系统以包括与特定企业相关的功能/特征。
在更新和/或定制(修改)企业系统的情况下,修改的企业系统在供生产使用之前被测试。在一些示例中,使用生产数据(例如,从更新/定制之前的企业系统的生产使用提供的数据)执行测试。传统上,通过将生产系统(或者承租者,如果软件允许承租的话)拷贝到空系统(或承租者)并利用半生产数据开始测试来实现修改的企业系统的阴影测试。然而,这有若干缺点。
例如,这种测试系统的设置需要拷贝整个生产系统,这可能消耗大量的存储器(例如,高达几太字节(tb))。此外,拷贝过程可能需要大量的时间(例如,几小时到几天)。在此期间,源系统的生产使用将在拷贝内创建不一致的数据。因此,系统的生产使用或者停止从而导致大量的停工时间,或者使用不一致的数据执行测试。另外的缺点在于,在新系统完全像旧系统一样执行之前,数据将出现分歧并产生错误,这使得难以识别问题的根本原因。另外,传统的阴影测试需要在原系统中运行的所有事务也在测试系统中运行,使得针对性的测试变得困难。
因此,行业内存在迄今尚未解决的需求以解决上述缺陷和不足。
技术实现要素:
根据本公开的示例,提供了一种用于并行进行企业系统的生产使用和修改的企业系统的测试的方法。该方法包括以下步骤:从生产企业系统的一个或更多个用户获得输入;将来自所述一个或更多个用户的所述输入提供给生产企业系统;至少通过硬件处理器确定来自所述一个或更多个用户的所述输入的子集以用于测试修改的企业系统;至少通过所述硬件处理器在修改的企业系统和生产企业系统的副本(copy)上对所述输入的所述子集执行一个或更多个事务;以及至少通过所述硬件处理器分析所述一个或更多个事务以确定修改的企业系统被正确地配置。
根据本公开的示例,提供了一种用于并行进行企业系统的生产使用和修改的企业系统的测试的系统。该系统包括一个或更多个处理器以及包括一个或更多个计算机可读介质的存储器系统,其中,所述一个或更多个计算机可读介质包含指令,所述指令在由所述一个或更多个处理器执行时使得所述一个或更多个处理器执行操作,所述操作包括:从生产企业系统的一个或更多个用户获得输入;将来自所述一个或更多个用户的所述输入提供给生产企业系统;确定来自所述一个或更多个用户的所述输入的子集以用于测试修改的企业系统;在修改的企业系统和生产企业系统的副本上对所述输入的所述子集执行一个或更多个事务;以及分析所述一个或更多个事务以确定修改的企业系统被正确地配置。
根据本公开的示例,提供了一种用于并行进行企业系统的生产使用和修改的企业系统的测试的非暂时性计算机可读存储介质。该非暂时性计算机可读存储介质包括使得一个或更多个处理器执行一种方法的指令,该方法包括以下步骤:从生产企业系统的一个或更多个用户获得输入;将来自所述一个或更多个用户的所述输入提供给生产企业系统;至少通过硬件处理器确定来自所述一个或更多个用户的所述输入的子集以用于测试修改的企业系统;至少通过所述硬件处理器在修改的企业系统和生产企业系统的副本上对所述输入的所述子集执行一个或更多个事务;以及至少通过所述硬件处理器分析所述一个或更多个事务以确定修改的企业系统被正确地配置。
在一些示例中,确定的步骤基于白名单,其中,该白名单包括下列项中的一个或更多个:要用于测试的用户列表、要用于测试的命令列表、要用于测试的事务列表。
在一些示例中,在获得的步骤之后,该方法还包括:拷贝所述输入以提供给生产企业系统、修改的企业系统和生产企业系统的副本。
在一些示例中,该方法还包括:使修改的企业系统和生产企业系统的副本与生产企业系统同步。
在一些示例中,同步的步骤在预定时间间隔期间发生或者按需发生。
在一些示例中,分析的步骤还包括:比较生产企业系统的副本和修改的企业系统的事务的记录。
将理解,以上一般描述和以下详细描述二者均仅为示例性和说明性的,而非限制要求保护的实现方式。
附图说明
图1描绘了根据本公开的示例的测试架构。
图2描绘了根据本公开的示例的测试数据序列软件图。
图3描绘了根据本公开的示例的测试目标系统的处理。
图4示出根据本公开的示例的用于并行进行企业系统的生产使用和修改的企业系统的测试的方法。
图5是与本公开一致的用于执行所公开的实现方式的示例计算机系统。
具体实施方式
现在将详细参照附图中所示的示例实现方式。在适当的情况下,贯穿附图使用相同的标号来表示相同或相似的部分。
为了简单和例示的目的,本公开的原理通过主要参考其示例性实现方式来描述。然而,本领域普通技术人员将容易地认识到,相同的原理同样适用于所有类型的信息和系统并且可在其中实现,并且任何这样的变化均不脱离本发明的真实精神和范围。此外,在以下详细描述中,参照了示出特定示例性实现方式的附图。在不脱离本公开的精神和范围的情况下,可对示例性实现方式进行电气、机械、逻辑和结构改变。因此,以下详细描述不应从限制意义上考虑,本公开的范围由所附权利要求书及其等同物限定。
本公开的实现方式通常涉及在不干扰对应生产企业系统的情况下测试修改的企业系统。更具体地,本公开的实现方式涉及使用与生产数据库模式并行的测试数据库模式来以生产数据测试企业系统的更新和/或定制。在一些示例中,本公开的实现方式使得企业系统的测试和生产使用能够在被复制到附加数据库(可使用或者可不使用与原始数据库相同的模式)的相同数据上执行。通过实时捕获当前生产系统的实际使用情况并使用该捕获使用情况针对传统测试系统测试新开发的系统,可通过在传统测试系统和更新的测试系统二者上以相同的方式重用那些确切生产用户的确切生产事务来提供新系统与传统系统的准确比较(数据完整性和性能二者),而无需运行所有事务。另外,通过使用最终用户的实际生产交互,该系统能够消除大部分专用于最终用户测试的时间,同时在测试系统上提供生产使用情况的最佳表示。这包括交互类型以及系统负荷和缩放。这还允许更好地测试错误条件、自动生成单元测试以及自动分析测试数据。
图1描绘了根据本公开的示例的测试架构100。测试架构100可用于测试生产企业系统122(或生产系统)(例如,生产企业服务器),其中架构100拦截(intercept)生产服务器使用情况并选择性地重用交互以在修改的企业系统130(或测试系统)(例如,更新的服务器系统)上进行测试,并将结果与生产企业系统(例如,测试传统服务器)的副本125进行比较,这提供用于减少测试用户错误,消除绝大部分最终用户测试,并且消除重复数据条目及其带来的错误。测试架构100包括:客户端装置105a和105b,其通过网络110a在通信上连接到复制代理服务器115a;以及客户端装置105c,其通过网络110b在通信上连接到复制代理服务器115b。客户端装置105a、105b分别由用户120a、120b操作,并且客户端装置105c由用户120c操作。在一些示例中,网络110a和网络110b是不同的网络,例如网络110a是外部广域网(即,互联网),并且网络110b是内部局域网。在一些示例中,客户端装置105a、105b、105c可各自为诸如膝上型计算机、台式计算机、智能电话、个人数字助理、便携式媒体播放器、平板计算机的计算装置或者可用于与复制代理服务器115a、115b通信的任何其它适当的计算装置。复制代理服务器115a、115b在通信上连接到生产企业系统122、生产企业系统的副本125和修改的企业系统130。复制代理服务器115a、115b从客户端装置105a、105b和105c获得数据并将该数据提供给生产企业系统122以便于用户120a、120b、120c在正常工作过程中使用,以及提供用于使用生产企业系统的副本125和修改的企业系统130进行测试的数据。
在一些示例中,复制代理服务器115a、115b可以是单独的服务器,或者可以是由生产企业系统122、生产企业系统的副本125或修改的企业系统130托管的服务。在一些示例中,复制代理服务器115a、115b、生产企业系统122、生产企业系统的副本125和修改的企业系统130可包括诸如服务器的一个或更多个计算装置以及一个或更多个数据库系统。在一些示例中,复制代理服务器115a、115b可表示一起工作以执行服务器的动作(例如,云计算)的一个以上的计算装置。在一些实现方式中,数据库系统可作为内存数据库系统来提供。在一些示例中,内存数据库是使用主存储器进行数据存储的数据库管理系统。在一些示例中,主存储器包括经由存储器总线与一个或更多个处理器(例如,中央处理单元(cpu))通信的随机存取存储器(ram)。内存数据库可与采用磁盘存储机制的数据库管理系统形成对比。在一些示例中,由于内部优化算法可更简单并且执行更少的cpu指令(例如,需要的cpu消耗降低),所以内存数据库比磁盘存储数据库更快。在一些示例中,访问内存数据库中的数据消除了查询数据时的查找时间,这提供了比磁盘存储数据库系统更快且更可预测的性能。
图2描绘了根据本公开的示例的测试数据序列软件图200。复制代理服务器115a、115b经由各个客户端装置105a、105b、105c从用户120a、120b和120c获得输入205。复制代理服务器115a、115b包含通过白名单210过滤的用户输入的队列210以用于通过将结果与生产企业系统的副本125比较来测试修改的企业系统130。如图2所示,白名单210是作为来自以下项的、用于测试的用户211、命令212和事务213的完整列表的事务队列:生产用户、跟踪会话组(每个会话组包括生产会话和两个测试会话)的状态的状态机、以及确定针对测试会话处理哪些事务(这就是为什么测试会话状态可与生产会话状态不同)的白名单。用户输入包括用于执行一个或更多个动作的命令212,包括(但不限于)检索、编辑、更新、加入、重新指派图纸、报告以及针对生产企业系统122存储和操纵的任何信息的其它动作。事务213可以是从各个客户端装置105a、105b、105c到生产企业系统122以发起命令的指令。例如,用于管理用户的web服务可包括应用程序接口(api)命令,包括(但不限于)getbyname(name)→employeeid/fail(在白名单210上)、getbyid(id)→employeenamefail(在白名单210上)、set(name)→generatedid/fail(id自动生成)(不在白名单210上)。事务列表可作为具有两列(id、名称(name))的单个表布置在数据库中,符号“*”可表示由于未列入白名单而没有处理的事务。白名单210通常可产生用户120a、120b、120c在正常工作环境期间将使用的输入的子集以用于针对包括生产企业系统的副本125和修改的企业系统130的测试系统执行。另外,白名单210可包括测试架构中包括哪些用户(例如,用户120a、120b、120c)的列表。例如,如果用户120a和120b而非用户120c用于测试,则从复制代理服务器115a将提供给客户端装置105a和105b但非客户端装置105c的输入引导到生产企业系统的副本125和修改的企业系统130。另外,白名单210可包括将由生产企业系统的副本125和修改的企业系统130基于输入的子集以及选择要测试的用户执行的一个或更多个事务。
复制代理服务器115a、115b将输入205提供给与生产数据库240通信的生产企业系统122以用于正常工作流程。从白名单210获得的输入的子集被提供给进程队列(processqueue)220以用于针对生产系统的克隆225(即,生产企业系统的副本125)和生产克隆数据库245测试目标系统235(即,修改的企业系统130)和目标数据库255。在测试期间,在生产系统的克隆225与目标系统235之间进行基于事务的比较230,并且在生产克隆数据库245与目标数据库255之间针对输入的子集进行基于数据库的比较250并作为测试结果的协调270提供。生产克隆数据库245和目标数据库255使用环境同步260来与生产数据库240同步。这确保了生产数据库240中的记录的任何改变均被传播到生产克隆数据库245和目标数据库255。另外,周期性地(即,在指定的时间框架期间每晚),生产克隆数据库245可使用环境同步260和周期性测试同步265来与生产数据库240同步。周期性测试同步265比环境同步260频繁,是为了确保生产克隆数据库245和目标数据库255保持紧密同步以保证测试质量。环境同步260不太频繁,是为了使生产克隆数据库245和目标数据库255与生产数据同步,因为仅针对测试系统运行生产事务的子集。
图3描绘了根据本公开的示例的测试目标系统300的处理。在305,从客户端装置,即,得自用户(即,用户120a、120b和120c)的客户端装置105a、105b、105c)接收输入。所述输入是在用户的正常的日常工作期间从用户获得的。在310,复制代理(即,复制代理服务器115a、115b)复制输入。复制代理复制所有输入,然后由白名单210进行过滤。所有输入的复制通过保持复制代理尽可能重量轻在使对用户体验的潜在影响最小化的同时改进了测试文档化。即使用户不是经批准的测试系统用户,其事务也被复制并存储,然后通过白名单210被过滤掉。在315,生产系统(即,生产企业系统122)从复制代理接收输入以用于正常工作。在315,生产企业系统122以正常方式处理输入,直到在320生产作业完成为止。在325,由复制代理复制的输入与针对测试系统批准的事务列表进行比较。例如,白名单(即,白名单210)可包括从克隆的所有生产事务选择的要在生产系统的克隆225和目标系统235上基于来自一个或更多个用户的输入的子集执行的一个或更多个事务。如果不存在当前测试实例(case),则事务被添加到事务表并基于测试系统配置被标记为白名单或黑名单。如果存在当前测试实例并且事务被列入白名单,则在335在生产系统的克隆225上并且在340在目标系统235上并行执行事务。在355和360使用例如被定制以评估特定输出并针对所产生的任何差异生成二进制级比较标志的比较工具来比较一个或更多个事务的各个结果345和350。在365,生成比较报告,并且在370测试实例完成。
图4示出根据本公开的示例的用于并行进行企业系统122的生产使用和修改的企业系统130的测试的方法400。该方法开始于在405从生产企业系统122的一个或更多个用户120a、120b、120c获得输入。该方法继续在410将来自一个或更多个用户的输入提供给生产企业系统122。该方法继续在415至少通过硬件处理器确定来自一个或更多个用户的输入的子集以用于测试修改的企业系统。该确定步骤基于白名单210,其中,该白名单包括下列项中的一个或更多个:用于测试的用户列表(120a、120b、120c)、用于测试的命令列表212、用于测试的事务列表213。该方法继续在420至少通过硬件处理器在修改的企业系统130和生产企业系统的副本125上对输入的子集执行一个或更多个事务。该方法继续在425至少通过硬件处理器分析所述一个或更多个事务以确定修改的企业系统130被正确地配置。
在一些示例中,可选地,该方法可在405的获得步骤之后,执行包括在430拷贝所述输入以提供给生产企业系统122、修改的企业系统130和生产企业系统的副本125的操作。
在一些示例中,可选地,该方法可执行包括在430使修改的企业系统130和生产企业系统的副本125与生产企业系统122同步的操作,其中,该同步在预定时间间隔期间或者按需发生。
在一些示例中,425的分析步骤还可包括在435比较生产企业系统的副本125和修改的企业系统130的事务的记录。
图5示出可用作移动装置或服务器的计算机装置500的硬件配置的示例,其可用于执行上述处理中的一个或更多个。尽管图5示出包含在计算机装置500中的各种组件,图5示出计算机装置的一个示例,可添加附加组件并且可移除现有组件。
计算机装置500可以是诸如台式机、膝上型计算机、服务器等的任何类型的计算机装置、或者诸如智能电话、平板计算机、蜂窝电话、个人数字助理等的移动装置。如图5所示,计算机装置500可包括不同核配置和时钟频率的一个或更多个处理器502。计算机装置500还可包括在计算机装置500的操作期间用作主存储器的一个或更多个存储器装置504。例如,在操作期间,支持所述操作的软件的副本可被存储在一个或更多个存储器装置504中。计算机装置500还可包括一个或更多个外围接口506(例如,键盘、鼠标、触摸板、计算机屏幕、触摸屏等)以用于允许与计算机装置500的人交互以及计算机装置500的操纵。
计算机装置500还可包括用于经由一个或更多个网络通信的一个或更多个网络接口508(例如,以太网适配器、无线收发器或串行网络组件),以用于利用协议经由有线或无线介质来通信。计算机装置500还可包括不同物理尺寸和存储容量的一个或更多个存储装置510(例如,闪存驱动器、硬盘驱动器、随机存取存储器等),以用于存储数据(例如,图像、文件以及由一个或更多个处理器502执行的程序指令)。
另外,计算机装置500可包括允许上述功能的一个或更多个软件程序512。一个或更多个软件程序512可包括使得一个或更多个处理器502执行本文所描述的处理的指令。一个或更多个软件程序512的副本可被存储在一个或更多个存储器装置504中和/或一个或更多个存储装置510上。同样,由一个或更多个软件程序512使用的数据可被存储在一个或更多个存储器装置504中和/或在一个或更多个存储装置510上。
在实现方式中,计算机装置500可经由网络516与其它装置通信。其它装置可以是如上所述的任何类型的装置。网络516可以是任何类型的电子网络,例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络及其任何组合。网络516可使用诸如tcp/ip、udp、osi、ftp、upnp、nfs、cifs、appletalk等的各种市售协议中的任一种来支持通信。网络516可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络及其任何组合。
计算机装置500可包括如上所述的各种数据存储装置以及其它存储器和存储介质。这些可驻留在各种位置,例如在一个或更多个计算机本地(和/或驻留在一个或更多个计算机中)的存储介质上、或者横跨网络远离任何或所有计算机。在一些实现方式中,信息可驻留在本领域技术人员熟悉的存储区域网络(“san”)中。类似地,执行归因于计算机、服务器或其它网络装置的功能的任何必要文件可酌情本地存储和/或远程存储。
在实现方式中,如上所述的计算机装置500的组件无需封装在单个外壳内,或者甚至无需彼此靠近。本领域技术人员将理解,上述组件仅仅是示例,因为计算机装置500可包括用于执行所公开的实现方式的任何类型的硬件组件,包括任何必要的随附固件或软件。计算机装置500还可部分地或全部地通过电子电路组件或处理器(例如,专用集成电路(asic)或现场可编程门阵列(fpga))来实现。
此外,本公开包括根据以下条款的示例:
条款1.一种用于并行进行生产企业系统的生产使用和修改的企业系统的测试的方法,该方法包括以下步骤:从生产企业系统的一个或更多个用户获得输入;将来自所述一个或更多个用户的所述输入提供给所述生产企业系统;至少通过硬件处理器确定来自所述一个或更多个用户的所述输入的子集以用于测试修改的企业系统;至少通过所述硬件处理器在所述修改的企业系统和所述生产企业系统的副本上对所述输入的所述子集执行一个或更多个事务;以及至少通过所述硬件处理器分析所述一个或更多个事务以确定所述修改的企业系统被正确地配置。
条款2.根据条款1所述的方法,其中,确定的步骤基于白名单,其中,该白名单包括下列项中的一个或更多个:要用于测试的用户列表、要用于测试的命令列表、要用于测试的事务列表。
条款3.根据条款1所述的方法,该方法还包括:在获得步骤之后,拷贝所述输入以提供给所述生产企业系统、所述修改的企业系统和所述生产企业系统的所述副本。
条款4.根据条款1所述的方法,该方法还包括:使所述修改的企业系统和所述生产企业系统的所述副本与所述生产企业系统同步。
条款5.根据条款4所述的方法,其中,同步的步骤在预定时间间隔期间发生或者按需发生。
条款6.根据条款1所述的方法,其中,分析的步骤还包括:比较所述生产企业系统的所述副本和所述修改的企业系统的事务的记录。
条款7.一种用于并行进行生产企业系统的生产使用和修改的企业系统的测试的系统,该系统包括一个或更多个处理器和一个或更多个计算机可读介质,其中,所述一个或更多个计算机可读介质包含指令,所述指令在由所述一个或更多个处理器执行时使得所述一个或更多个处理器执行操作,所述操作包括:从生产企业系统的一个或更多个用户获得输入;将来自所述一个或更多个用户的所述输入提供给所述生产企业系统;确定来自所述一个或更多个用户的所述输入的子集以用于测试修改的企业系统;在所述修改的企业系统和所述生产企业系统的副本上对所述输入的所述子集执行一个或更多个事务;以及分析所述一个或更多个事务以确定所述修改的企业系统被正确地配置。
条款8.根据条款7所述的系统,其中,所述确定的操作基于白名单,其中,该白名单包括下列项中的一个或更多个:要用于测试的用户列表、要用于测试的命令列表、要用于测试的事务列表。
条款9.根据条款7所述的系统,其中,所述一个或更多个处理器还可操作以执行包括以下的操作:在获得操作之后,拷贝所述输入以提供给所述生产企业系统、所述修改的企业系统和所述生产企业系统的所述副本。
条款10.根据条款7所述的系统,其中,所述一个或更多个处理器还可操作以执行包括以下的操作:使所述修改的企业系统和所述生产企业系统的所述副本与所述生产企业系统同步。
条款11.根据条款10所述的系统,其中,所述同步的操作在预定时间间隔期间发生或者按需发生。
条款12.根据条款7所述的系统,其中,所述分析的操作还包括:比较所述生产企业系统的所述副本和所述修改的企业系统的事务的记录。
条款13.一种用于并行进行生产企业系统的生产使用和修改的企业系统的测试的非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质包括指令,所述执行用于使得一个或更多个处理器执行一种方法,该方法包括以下步骤:从生产企业系统的一个或更多个用户获得输入;将来自所述一个或更多个用户的所述输入提供给所述生产企业系统;至少通过硬件处理器确定来自所述一个或更多个用户的所述输入的子集以用于测试修改的企业系统;至少通过所述硬件处理器在所述修改的企业系统和所述生产企业系统的副本上对所述输入的所述子集执行一个或更多个事务;以及至少通过所述硬件处理器分析所述一个或更多个事务以确定所述修改的企业系统被正确地配置。
条款14.根据条款13所述的非暂时性计算机可读存储介质,其中,所述确定的步骤基于白名单,其中,该白名单包括下列项中的一个或更多个:要用于测试的用户列表、要用于测试的命令列表、要用于测试的事务列表。
条款15.根据条款13所述的非暂时性计算机可读存储介质,还包括:在所述获得的步骤之后,拷贝所述输入以提供给所述生产企业系统、所述修改的企业系统和所述生产企业系统的所述副本。
条款16.根据条款13所述的非暂时性计算机可读存储介质,还包括:使所述修改的企业系统和所述生产企业系统的所述副本与所述生产企业系统同步。
条款17.根据条款16所述的非暂时性计算机可读存储介质,其中,所述同步的步骤在预定时间间隔期间发生或者按需发生。
条款18.根据条款13所述的非暂时性计算机可读存储介质,其中,所述分析的步骤还包括:比较所述生产企业系统的所述副本和所述修改的企业系统的事务的记录。
如果以软件实现,则功能可作为一个或更多个指令或代码存储在计算机可读介质上或经由计算机可读介质发送。计算机可读介质包括有形非暂时性计算机存储介质和通信介质二者,包括方便计算机程序从一处传送到另一处的任何介质。存储介质可以是可由计算机访问的任何可用的有形非暂时性介质。作为示例而非限制,这种有形非暂时性计算机可读介质可包括ram、rom、闪存、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁存储装置、或者可用于以指令或数据结构的形式承载或存储期望的程序代码并且可由计算机访问的任何其它介质。如本文所用,磁盘和光盘包括cd、激光盘、光盘、dvd、软盘和蓝光盘,其中磁盘通常以磁方式再现数据,而光盘利用激光以光学方式再现数据。另外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字订户线(dsl)或者诸如红外、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,则介质的定义中包括同轴线缆、光纤线缆、双绞线、dsl或者诸如红外、无线电和微波的无线技术。上述的组合也应该包括在计算机可读介质的范围内。
以上描述是例示性的,对于本领域技术人员而言可以想到配置和实现方式的变化。例如,结合本文所公开的实施方式描述的各种例示性逻辑、逻辑块、模块和电路可利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可被实现为计算装置的组合(例如,dsp和微处理器的组合)、多个微处理器、一个或更多个微处理器与dsp内核的结合、或者任何其它此类配置。
在一个或更多个示例性实施方式中,所描述的功能可按照硬件、软件、固件或其任何组合来实现。对于软件实现方式,本文所描述的技术可利用执行本文所描述的功能的模块(例如,过程、函数、子程序、程序、例程、子例程、模块、软件包、类等)来实现。通过传递和/或接收信息、数据、自变量、参数或存储器内容,模块可耦合到另一模块或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段来传递、转发或发送信息、自变量、参数、数据等。软件代码可存储在存储器单元中并由处理器执行。存储器单元可在处理器内实现或在处理器外部实现,在这种情况下,其可经由本领域已知的各种手段通信上耦合到处理器。
尽管已参照其实现方式的示例描述了教导,但是在不脱离真实精神和范围的情况下,本领域技术人员将能够对所描述的实现方式进行各种修改。本文所使用的术语和描述仅以例示方式阐述,而非意在限制。具体地,尽管通过示例描述了处理,但是处理的阶段可按照与所示不同的顺序执行或同时执行。此外,就详细描述中使用术语“包含”、“具有”或其变体而言,这些术语旨在以类似于术语“包括”的方式为包含性的。如本文所用,关于项目列表(例如,a和b)的术语“……中的一个或更多个”和“……中的至少一个”意指仅a、仅b或者a和b。此外,除非另外指定,否则术语“集合”应该被解释为“一个或更多个”。另外,术语“耦合”旨在表示间接或直接连接。因此,如果第一装置耦合到第二装置,则该连接可通过直接连接,或者通过经由其它装置、组件和连接的间接连接。
在不脱离真实精神和范围的情况下,本领域技术人员将能够对所描述的实施方式进行各种修改。本文所使用的术语和描述仅以例示方式阐述,而非意在限制。具体地,尽管通过示例描述了方法,但是方法的步骤可按照与所示不同的顺序执行或同时执行。本领域技术人员将认识到,在所附权利要求书及其等同物中限定的精神和范围内,这些和其它变型是可能的。
仅出于例示目的呈现了本公开的以上描述及其相关实施方式。其并非穷尽的,并且不将本公开限于所公开的精确形式。本领域技术人员从以上描述将认识到,根据上述教导,修改和变化是可能的,或者可从实践本公开而获取。例如,所描述的步骤无需以所讨论的相同顺序或者以相同的分离程度执行。同样,各种步骤可根据需要被省略、重复或组合以实现相同或相似的目标。类似地,所描述的系统未必需要包括实施方式中所描述的所有部分,并且还可包括实施方式中未描述的其它部分。
因此,本公开不限于上述实施方式,而是由所附权利要求书根据其完整等同范围限定。