异步数据存储操作

文档序号:1722477 发布日期:2019-12-17 浏览:32次 >En<

阅读说明:本技术 异步数据存储操作 (Asynchronous data storage operations ) 是由 A·K·伊恩格尔 于 2018-04-24 设计创作,主要内容包括:处理系统服务器以及使用该服务器提供数据值的方法。所述服务器维护对象的缓存。所述服务器执行异步计算以确定对象的所述值。响应于所述异步计算已经确定所述对象的所述值之前对所述对象的请求,从所述缓存返回所述对象的值。在所述异步计算确定所述对象的所述值之后,响应对所述对象的请求返回由所述异步计算确定的所述对象的值。(a processing system server and a method for providing data values using the same. The server maintains a cache of objects. The server performs an asynchronous calculation to determine the value of the object. Returning a value of the object from the cache in response to the asynchronous computation having determined a request for the object before the value of the object. After the asynchronous calculation determines the value of the object, returning the value of the object determined by the asynchronous calculation in response to a request for the object.)

异步数据存储操作

背景技术

本发明总体上涉及计算机系统中的数据缓存。数据存储可能会有很大的延迟。对于云存储来说尤其如此,由于存储服务器可以远离客户端,因此在云中获取和存储数据的延迟可能很高。需要一种减少数据存储操作的等待时间的方法。

发明内容

根据各种实施例,公开了包括服务器的一种处理系统,以及为该服务器提供数据值的方法,包括:所述服务器维护对象的缓存;所述服务器执行异步计算以确定所述对象的值;在所述异步计算确定所述对象的值之前响应于所述对象的请求,从所述缓存返回所述对象的值;以及在所述异步计算确定所述对象的值之后响应于所述对象的请求,返回由所述异步计算所确定的所述对象的值。

根据本发明的各个实施例,提供了一种处理系统,其包括:服务器;永久性存储器;用于与一个或多个网络通信的网络接口设备;和至少一个处理器,通信地耦合所述服务器、所述永久性存储器和所述网络接口装置,所述至少一个处理器,响应于执行计算机指令,用于执行包括以下的操作:所述服务器维持对象的缓存在所述永久性存储器;所述服务器执行异步计算以确定所述对象的值;在所述异步计算确定所述对象的值之前响应于所述对象的请求,从所述缓存返回所述对象的值;以及在所述异步计算确定所述对象的值之后响应于所述对象的请求,返回由所述异步计算所确定的所述对象的值。

附图说明

在附图中,在不同的视图中附图标记与下面的详细描述指的是相同或功能相似的元件,它们一起被并入并且形成本说明书的一部分,用于进一步说明各种实施例和解释各种原理以及所有依据本发明的优点,其中:

附图1示出根据本发明实施例的客户端-服务器系统的示例的框图;

附图2示出根据本发明的实施例的用于异步数据存储操作的方法的示例的框图;

附图3示出根据本发明实施例的示例处理系统服务器节点的框图;

附图4描绘了适用于本发明的实施例的云计算环境;和

附图5描绘了根据附图4的云计算实施例的抽象模型层。

具体实施方式

根据需要,在此公开了详细的实施例;然而,应当理解,所公开的实施例仅是示例,并且以下描述的系统和方法可以以各种形式来体现。因此,本文公开的特定结构和功能细节不应被解释为限制性的,而仅仅是作为权利要求的基础,并且作为教导本领域技术人员以实际上任何适当的详细结构来不同地采用本主题的代表性基础和功能。此外,本文中使用的术语和短语不旨在限制,而是提供所述概念的可理解的描述。

本发明的说明书已经为了说明和描述的目的而表述,但并非旨在是穷举的或将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并使本领域的其他普通技术人员能够理解本发明的各种实施例,这些实施例具有适合于所设想的特定用途的各种修改。本文所使用的术语仅出于描述特定实施例的目的,并不旨在限制本发明。

本发明的各种实施例适用于在包括云环境和非云环境的多种环境中进行缓存。附图1示出了根据本发明的服务器处理系统。

第一服务器101正在访问来自至少一个其他服务器103的数据。所述至少一个其他服务器103可以包括一个服务器或多个服务器。所述第一服务器101查询所述至少一个其他服务器103可能需要相当长的时间。因此,所述第一服务器101包含用于存储从所述至少一个其他服务器103获取的数据的本地缓存102。与从远程的至少一个其他服务器103相比,从所述本地缓存102中检索信息的速度可以相当快。因此所述本地缓存器102可以改善性能。

一个问题是从本地缓存102提取的数据可能不是当前的。在本发明提供了一种用于减轻该问题的方法和系统。

附图2示出根据本发明的一个实施例,用于从至少一个其他服务器103获取数据的方法。根据该示例,在步骤201中连续维护本地缓存102。本地缓存102包含来自至少一个其他服务器103的数据。第一服务器101需要的假定对象o1是存储在至少一个其他服务器103上的重要对象。在步骤202中,所述第一服务器101创建异步计算f1以从所述至少一个其他服务器103获取对象o1。异步计算可以是能够与现有计算并行运行的线程或进程而且不会阻止现有计算。异步计算的一个例子是预期。预期用于表示可能尚未完成执行的异步计算的结果。多种编程语言可以实现它们,例如Java。

对于此示例,Listenable Future提供了更多功能。

有几种类型的事件可以触发所述方法步骤202以创建异步计算f1来获取对象o1。例如,对于对象o1的请求可能触发方法步骤202以创建异步计算f1以获取对象o1。所述方法步骤202可能会被定期调用。例如,所述方法步骤202可以在一段时间(即,时间间隔)过去之后被调用。如果关于对象o1的改变频率的数据可用,则这可以用于确定何时调用所述方法步骤202以创建异步计算f1以获取对象o1。如果对象o1频繁变化,则可能期望频繁地调用所述方法步骤202。如果对象o1不太频繁地更改,则建议不那么频繁地调用所述方法步骤202以减少开销。

具有对象o1的当前值的重要性也可以用于决定调用步骤202的频率。如果具有对象o1的当前值很重要,则所述方法步骤202可能会更频繁地被调用。如果具有对象o1的当前值不太重要,则可以较少频繁地调用所述方法步骤202。

根据本实施例,现在假设在异步计算f1已经从至少一个其他服务器103获取了对象o1(步骤203)之前,接收到对对象o1的请求。在这种情况下,如果存在,则在步骤205中返回来自缓存102的所述对象o1的值。

在步骤204,根据实施例,在异步计算f1已经从至少一个其他服务器103获取了对象o1之后,接收到对对象o1的请求。在这种情况下,在步骤206中,返回通过异步计算f1从所述至少另一个服务器103获取的对象o1的值。

一旦所述异步计算f1已从所述至少一个其他服务器103提取对象O1,所述第一服务器101可以可选地利用通过所述异步计算f1从所述至少一个其他服务器103获取的对象o1的更新值来更新所述缓存102。

异步计算,例如线程、进程、预期等,也可用于将数据存储在所述至少一个其他服务器103。通过这种方式,计算不会被阻塞以等待远程存储操作完成。例如,所述第一服务器101可以调用预期f2以将对象o2存储在所述至少一个其他服务器103上。在所述预期f2完成存储操作之前,可以继续执行现有的计算。

一旦预期f2已将对象o2存储在所述至少一个其他服务器103上,则所述第一服务器101可以可选地通过所述预期f2用存储在所述至少一个其他服务器103上的所述对象o2的值更新所述缓存102。

用于确定所述对象的值的异步计算可能必须进行复杂的计算。例如,计算对象的值在计算上可能会很昂贵。确定对象的值可能涉及访问可能消耗大量等待时间的几个数据库。

在某些情况下,所述至少一个其他服务器103可以包括两个或更多服务器。如果所述第一服务器101向所述至少一个其他服务器103请求对象o3,则包括所述至少一个其他服务器103的多个服务器可以返回对象o3的不同值。在这种情况下,根据实施例,异步计算f3确定对象o3的值以确定要为对象o3返回哪个值。有多种方法可以完成此操作:

所述的异步计算f3可以看到哪些对象o3的值出现最频繁。例如,假设该异步计算f3接收3个对象o3的值:300、200和200。由于值200出现最频繁,200是所述返回的值。

时间戳,根据各种实施例,可以与来自服务器的返回值相关联。在这种情况下,该异步计算f3返回具有最近时间戳的值。

下面将通过实施例讨论如何将预期用于以Java编程语言实现本发明的各种实施例的更多细节。也可以使用其他带有预期的编程语言。以Java为例,Future表示异步计算的结果。提供了一些方法来检查计算是否完成,等待其完成以及检索计算结果。

假设键引用了对象。发出了通过方法调用获取与“key1”相对应的对象的值的请求:

MultiValue mv1=lookup(“key1”);

类MultiValue包括以下字段:

cachedVal:从缓存102获取的值(如果存在)。在进行缓存查找之前,查找方法不会返回。在某些情况下,“key1”可能不对应于缓存中的任何值,在这种情况下,将cachedVal设置为找不到值。

storeValueFuture:预期用于从所述至少一个其他服务器103请求“KEY1”的值。单独线程用于该预期。返回之前该查找方法不会等待该线程完成,使主计算继续无阻塞执行。

mv1具有用于快速返回值的getFast()方法,并且通过使用以下方法实现:

if(!storeValueFuture.isDone()==&&(cachedVal.exist())then

return cachedVal.value();

else

return storeValueFuture.get();

如果storeValueFuture尚未完成执行,并且存在缓存的值(存储在cachedVal中),则getFast()将立即返回该缓存的值而不会阻塞。在所述预期完成后,getFast()将返回从所述至少一个其他服务器103获取的值。

使用这种方法,程序可以在storeValueFuture完成执行之前,将mv1.cachedVal用于与key1相对应的值。在storeValueFuture完成执行之后,程序可以使用storeValueFuture返回的值作为与“key1”相对应的值。另外,可以提供一种错误处理方法,如果在所述至少一个其他服务器103中的查找操作失败,则调用该错误处理方法。如果使用ListenableFutures,则可以在应用程序中提供一个回调函数(callback function),该函数将在storeValueFuture完成执行后立即执行。

在一些情况下,期望的是从所述至少一个其他服务器103得到一个值,即使这意味着等待操作完成。这可以通过调用mv1.getFromServer()来实现,该实现为:

return storeValueFuture.get();

Java也具有ListenableFutures.ListenableFuture扩展了Java Future接口,允许在预期完成执行后执行回调计算。使用ListenableFutures,可以实现查找的方法,使得在所述异步计算从所述至少一个其他服务器103获取所述“KEY1”的值已完成执行之后,所述缓存被自动更新。

现在,考虑在所述至少一个其他服务器103中的一个请求来存储具有键“KEY1”的对象7(object7):

future1=dataStore.putAsync(“key1”,object7);

该计算不会阻止以等待putAsync操作完成。因此,该计算可以继续进行而不会阻塞。我们可以决定对所述至少一个其他服务器103的写入操作已完成:

future1.isDone();

其中如果对所述至少一个其他服务器103的所述写入操作已完成,则返回true。如果future1是ListenableFuture,对所述至少一个其他服务器103的所述写入操作已完成后,回调可以用于更新缓存102。

可替代地,putAsync可以立即缓存对象7无需等待对所述至少一个其他服务器103的所述写入操作完成。这是同步完成的,因此直到对对象7进行缓存后,执行才会继续。putAsync还创建了一个预期在所述至少一个其他服务器103上来存储对象7。该预期然后通过返回putAsync作为预期1(future1),并且所述应用程序继续执行,而无需等待所述预期结束在所述至少一个其他服务器103存储对象7。如果在将对象7存储在所述至少一个其他服务器103中之前请求了与“key1”相对应的所述对象,则可以从所述缓存102获得对象7。

可以提供一种错误处理方法,如果在至少一个其他服务器103中存储对象7失败,则调用该错误处理方法。如果对象7未成功地存储在所述至少一个其他服务器103上,所述错误处理方法可用于重试所述存储操作。

在网络中运行的处理系统服务器节点的示例

附图3示出了适合附图1中所例举性描述的客户端-服务器系统使用的处理系统服务器节点300(也称为计算机系统/服务器或称为服务器节点)的示例。根据该实施例,服务器节点300通信地耦合可以包括一个或多个通信网络的云基础设施332。所述云基础设施332与存储云334(可以包括一个或多个存储服务器)和计算云336(可以包括一个或多个计算服务器)通信地耦合。该简化的实施例并不旨在暗示对本文所述的本发明的各种示例性实施例的使用范围或功能的任何限制。

可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述计算机系统/服务器300。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机系统存储介质中。

更具体地附图3,以下讨论将描述体现附图1的客户端-服务器系统的至少一部分的示例性云基础设施服务器节点的更详细的视图。根据本实施例,至少一个处理器302以通信方式与系统主存储器304和永久性存储器306。

总线架构308促进了所述至少一个处理器302与所述服务器节点300的各种组成元件之间的通信耦合。该总线308表示几种类型的总线结构中的任何一种或多种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、***总线、加速图形端口以及处理器或本地总线。作为示例而非限制,此类体系结构包括行业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和***组件互连(PCI)总线。

在一个实施例中,系统主存储器304,可以包括计算机系统中的易失性存储器形式的可读介质,诸如随机存取存储器(RAM)和/或高速缓冲存储器。仅作为示例,可以提供永久性存储器存储系统306,用于从不可移动的非易失性磁性介质(未示出,通常称为“硬盘驱动器”)读取和写入。尽管未示出,但是用于读取和写入可移动非易失性磁盘(例如“软盘”)的磁盘驱动器,以及用于读取或写入可移动非易失性光盘的光盘驱动器可以提供CD-ROM、DVD-ROM或其他光学介质之类的磁盘。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线308。如将在下面进一步描绘和描述的,永久性存储器306可以包括至少一个程序产品,该程序产品具有被配置为执行本发明的各种实施例的功能的一组程序模块(例如,至少一个)。

具有一组(至少一个)程序模块的程序/实用程序可以示例性而非限制性地存储在永久性存储器306中以及操作系统324、一个或多个应用程序326、其他程序模块和程序数据。每个操作系统324、一个或多个应用程序326、其他程序模块和程序数据或者它们的某些组合,可以包括网络环境的实现。程序模块通常可以执行本文所述的本发明的各种实施例的功能和/或方法。

至少一个处理器302经由总线架构308与一个或多个网络接口设备316通信耦合。根据各种实施例,网络接口设备316与和一个或多个云基础设施332可操作地耦合网络通信耦合。所述云基础设施332包括:存储云334,其包括一个或多个存储服务器(或也称为存储服务器节点);以及计算云336,其包括一个或多个计算服务器(或也称为“存储服务器”)。所述网络接口设备316可以与一个或多个网络通信,例如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)。所述网络接口设备316促进所述服务器节点300与所述云基础架构332中的其他服务器节点之间的通信。

用户接口310例如经由总线体系结构308与至少一个处理器302通信地耦合。根据本实施例,该用户接口310包括用户输出接口312和用户输入接口314。该用户输出接口312的元件的示例可以包括显示器、扬声器、一个或多个指示灯、产生可听指示器的一个或多个换能器以及触觉信号发生器。所述用户输入接口314的元素的示例可以包括键盘、小键盘、鼠标、触控板、触摸板以及接收音频信号的麦克风。所接收的音频信号例如可以被转换成电子数字表示并存储在存储器中,并且可选地可以与由处理器302执行的语音识别软件一起使用以接收用户输入数据和命令。

计算机可读介质读取器/写入器装置318以通信方式与所述至少一个处理器302耦合。所述读取器/写入器装置318以通信方式与计算机可读介质320耦合。根据各种实施例,服务器节点300可以通常包括计算机可读介质320的任何类型。这样的介质可以是所述计算机系统/服务器300可以访问的任何可用介质,并且它可以包括任何一个或多个易失性介质、非易失性介质、可移动介质和不可移动的媒体。

计算机指令307可以至少部分地存储在各种位置服务器节点300。例如,至少一些指令307可以存储在以下任何一个或多个中:在一个或多个处理器302的内部高速缓冲存储器中、在主存储器304中、在永久性存储器306中以及在计算机可读介质320中。

根据该实施例,所述指令307包括可由所述至少一个处理器302用于执行所述服务器节点300的特征和功能的计算机指令、数据、配置参数、以及其他信息。根据该在本示例中,指令307包括操作系统324、一个或多个应用程序326、一组ListenableFuture方法328和一组MutiValue方法330,如上面附图1至2所讨论的。另外,所述指令307包括服务器节点配置数据。

根据该实施例,至少一个处理器302与服务器缓存存储器322(也称为本地缓存)通信地耦合,服务器缓存存储器322可以存储服务器节点数据、网络系统和云的至少一部分与服务器节点300通信的基础设施消息和数据、以及其他数据,用于与服务器节点300耦合的服务和应用程序的操作。如上所述,本发明的各种功能和特征可以通过使用服务器节点300来提供。

示例云计算环境

首先正确理解,尽管本公开包括关于云计算的详细描述,但其中所述的技术方案的实现却不依赖云计算环境,甚至能够结合现在已知或以后开发的任何其他类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便,按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互才能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征,至少三个服务模型和至少四个部署模型。

按需自助式服务:云的消费者在没有与服务提供者进行人为互动的情况下能够单方面自动地按需部署服务器时间和网络存储等的计算能力。

广泛的网络接收:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的细长平台或厚替代平台(例如移动电话、替代电脑、个人数字助理(PDA))对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(多租户)模式服务于多个消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或什至不知道所提供的资源的位置,但可以在较大的微观指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适当的服务类型(例如存储、处理、带宽和活动用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供双重。

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如此类的网络浏览器的瘦接口(例如基于网络的电子邮件)从各种方式设备访问应用。除了有限的特定于特定用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储乃至单独应用能力等的替代云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创造或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的连续云基础架构,但要部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署和运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理和可以存在于该组织内部或外部。

共同体云:云基础架构被多个组织共享并支持有共同利害关系(例如任务使、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够植入的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点是集中在无状态性、低交换性、模块性和语意的互操作性。云计算的核心是包含互连子系统网络的基础架构。

现在参考图4,其中显示了示例性的云计算环境450。如图所示,云计算环境450包括云计算消费者使用的本地计算设备可以伴随相通信的一个或多个云计算串行410,本地计算设备例如可以是个人数字助理(PDA)或移动电话454A、台式电脑454B、笔记本电脑454C和/或汽车计算机系统454N。云计算路由器410之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或它们的组合的一个或多个网络中将云计算例程410进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源能够请求云计算环境450提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图4显示的各类计算设备454A-N仅仅是示意性的,云计算节点410以及云计算环境450可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图5,其中显示了云计算环境450提供的一组功能抽象层。首先应当理解,图5所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供下列层和对应功能:

硬件和软件层560包括硬件和软件组件。硬件组件的例子包括:主机561;基于RISC(精简指令集计算机)体系结构的服务器562;服务器563;刀片服务器564;存储设备565;网络和网络组件566。软件组件的例子包括:网络应用服务器软件567以及数据库软件568。

虚拟层570提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器571、虚拟存储572、虚拟网络573(包括虚拟私有网络)、虚拟应用和操作系统574,以及虚拟客户端575。

在一个示例中,管理层580可以提供下述功能:资源供应功能581:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能582:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和***。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能583:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能584:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能585:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负载层590提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航591;软件开发及生命周期管理592;虚拟教室的教学提供593;数据分析处理594;交易处理595;以及其他数据通信和传递服务596。如上所述,本发明的各种功能和特征可以通过使用与云基础架构332通信耦合的服务器节点300来提供,该服务器基础架构可以包括存储云334和/或计算云336。

非限制性示例

在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

尽管本说明书可以参考特定的标准和协议描述在实施例中实现的组件和功能,但是本发明不限于这样的标准和协议。每个标准都代表了现有技术的示例。此类标准有时会被功能基本相同的更快或更有效的等价物所取代。

这里描述的实施例的图示旨在提供对各种实施例的结构的一般理解,并且它们并非旨在用作对可以利用本发明所述的结构装置和系统的所有元件和特征的完整描述。在回顾以上描述之后,许多其他实施例对于本领域技术人员将是显而易见的。可以利用其他实施例并从中得出其他实施例,从而可以在不脱离本发明范围的情况下进行结构和逻辑上的替换和改变。附图也仅是代表性的,并且可能未按比例绘制。某些比例可能被夸大,而其他比例可能被最小化。因此,说明书和附图应被认为是说明性的而不是限制性的。

尽管在此已经图示和描述了特定的实施例,但是应当理解,被计算为实现相同目的的任何布置都可以代替所示的特定实施例。本文的示例旨在覆盖各种实施例的任何和所有改编或变化。本文考虑了以上实施例和本文未具体描述的其他实施例的组合。

提供摘要并应理解该摘要并非旨在用于解释或限制权利要求的范围或含义。另外,在前面的详细描述中,出于简化本公开的目的,在单个示例性实施例中将各种特征组合在一起。本公开的方法不应被解释为反映了以下意图:所要求保护的实施例需要比每个权利要求中明确叙述的特征更多的特征。相反,如所附权利要求所反映的,发明主题在于少于单个公开实施例的所有特征。因此,以下权利要求据此结合到详细描述中,其中每个权利要求独立地作为单独要求保护的主题。

尽管仅示出了用于信息处理系统的一个处理器,但是具有多个CPU或处理器的信息处理系统可以被同等有效地使用。本发明的各种实施例可以进一步包含接口,每个接口包括用于从处理器卸载处理的单独的、完全编程的微处理器。处理系统的主存储器中包括的操作系统可以是合适的多任务和/或多处理操作系统,例如但不限于基于Linux、UNIX、Windows和Windows Server的任何操作系统。本发明的各种实施例能够使用任何其他合适的操作系统。本发明的各种实施例利用诸如面向对象的框架机制之类的体系结构,该体系结构允许操作系统的组件的指令在位于信息处理系统内的任何处理器上执行。本发明的各种实施例能够适于与任何数据通信连接一起工作,包括当今的模拟和/或数字技术或者通过未来的联网机制。

本文所使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明。如本文所使用的,单数形式“一个”、“一种”和“该”也旨在包括复数形式,除非上下文另外明确指出。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定存在所述特征、整数、步骤、操作、元件和/或组件,但不排除存在或一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组的添加。如本文所使用的,术语“另一”被定义为至少第二或更多。本文所使用的术语“包括”和“具有”被定义为包括(即,开放式语言)。如本文中使用的,术语“耦合”被定义为“连接”,尽管不一定直接地并且不一定机械地。“通信地耦合”是指组件的耦合,使得这些组件能够通过例如有线、无线或其他通信介质彼此通信。术语“通信地耦合到”或“通信地耦合”包括但不限于通信电子控制信号,通过该电子控制信号可以引导或控制另一元件。术语“配置为”描述了适于、设置、布置、构建、组成、构造、设计或具有这些特征的任意组合以执行给定功能的硬件、软件或硬件和软件的组合。术语“适用于”描述了能够、能够容纳、制造或适于执行给定功能的硬件、软件或硬件和软件的组合。

该术语“控制器”、“计算机”、“处理器”、“服务器”、“客户端”、“计算机系统”、“计算系统”、“个人计算机系统”、“处理系统”或“信息处理“系统”一词,描述了适于实现本文一个或多个实施例的适当配置的处理系统的示例。类似地,任何适当配置的处理系统都能够被本文的实施例使用,例如但不限于个人计算机、膝上型个人计算机(膝上型PC)、平板计算机、智能电话、移动电话、无线通信设备、个人数字助理、工作站等。一种处理系统可以包括一个或多个处理系统或处理器。可以以集中的方式在一个处理系统中或以分布式的方式来实现处理系统,其中不同的元素分布在多个互连的处理系统上。

所附权利要求中的所有装置或步骤加上功能元件的相应结构、材料、作用和等同物旨在包括用于与具体要求保护的其他要求保护的元件组合地执行功能的任何结构、材料或作用。

已经出于说明和描述的目的给出了本申请的描述,但并不意图穷举或将本发明限制为所公开的形式。在不脱离本发明范围的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并使本领域的其他普通技术人员能够理解本发明的各种实施例,这些实施例具有适合于预期的特定用途的各种修改。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:云平台系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类