首页> 中国专利> 用于在分布式数据存储系统中恢复数据对象的方法和系统

用于在分布式数据存储系统中恢复数据对象的方法和系统

摘要

本公开提供了用于在分布式数据存储系统中恢复数据对象的方法和系统。所述方法包括:在通过数据通信网络连接的一个或多个数据中心中的一个或多个集群上存储第一数据对象的一个或多个副本;记录关于所述一个或多个副本的健康信息,其中健康信息包括关于副本参与恢复过程的可用性的数据;计算第一数据对象的查询优先级;基于算得的查询优先级,查询一个或多个副本的健康信息以确定一个或多个副本中的哪个能够用于对象数据的恢复;基于一个或多个副本的健康信息,计算第一数据对象的恢复优先级;以及基于算得的恢复优先级,从可用副本中的一个或多个可用副本恢复第一数据对象。

著录项

  • 公开/公告号CN104699567A

    专利类型发明专利

  • 公开/公告日2015-06-10

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201410557711.9

  • 申请日2014-10-20

  • 分类号G06F11/14(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人于静;张亚非

  • 地址 美国纽约

  • 入库时间 2023-12-18 09:18:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-12

    授权

    授权

  • 2015-07-08

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20141020

    实质审查的生效

  • 2015-06-10

    公开

    公开

说明书

版权和商标公告

本专利文件的公开内容的一部分可以包含受到版权保护的材料。版权 所有者不反对任何人对此专利文件或专利公开按照它在专利商标局的专利 文件或记录中所呈现的式样进行的影印复制,但是在其他方面无论如何都 保留所有版权。

本文所引用的某些标志可以是申请人、受让人或者隶属或独立于申请 人或受让人的第三方的普遍法或注册商标。这些标志的使用被用于以示例 的方式提供授权公开,并且不应被解释为排他性地将本公开主题的范围限 制于与该类标志相关联的材料。

技术领域

所公开的主题一般涉及从远程存储的数据副本进行的数据恢复,并且 更特别地涉及出于数据恢复的目的,跨越多个数据中心分散和存储数据的 系统和方法。

背景技术

大规模数据存储系统由于其不受限制的尺寸以及处理和存储大量数据 的能力而是合乎期望的。通常,这些大规模系统被构建成包括彼此远程地 定位的多个数据中心。每个数据中心通常由多个独立的集群组成,其中每 个集群具有多个节点。这些节点通过数据网络基础设施耦合到彼此,并理 想地在数据被存储在分离地维护的存储媒介上的程度上彼此独立。

将数据中心保持在远程地点的目的是在灾难事件(例如,洪水、地震 或龙卷风)的情况下减轻对多个数据中心损坏的风险。在数据中心经历丢 失数据对象或副本的情况下,恢复过程要求定位存活副本,其中从该存活 副本复制或恢复丢失的数据。因此,数据中心通常构建为每个集群具有多 个本地副本。这种特征允许集群使用存活的本地副本从故障进行自我恢复。

如果所有的本地副本都被丢失,则可以从一个或多个远程存储的副本 恢复数据。这种远程恢复当前经由手动过程完成,通常要求管理协助。由 于大规模数据存储系统中资源的大小和分布,关于跨越多个数据中心和集 群的副本的位置和可用性的信息不容易可扩展,并且继而不可用于跨越多 个数据中心的所有节点。

发明内容

出于总结的目的,本文已经描述了某些方面、优点和新颖特征。应当 理解的是,不是根据任一特定实施例都可以实现所有这样的优点。因此, 所公开的主题可以以实现或优化一个优点或一组优点的方式体现或执行, 而不必实现在本文中教导或暗示的全部优点。

提供了用于在分布式数据存储系统中恢复数据对象的机器、系统和方 法。所述方法包括:在通过数据通信网络连接的一个或多个数据中心中的 一个或多个集群上存储第一数据对象的一个或多个副本;记录关于所述一 个或多个副本的健康信息,其中健康信息包括关于副本参与恢复过程的可 用性的数据;计算第一数据对象的查询优先级;基于算得的查询优先级查 询一个或多个副本的健康信息,以确定一个或多个副本中的哪个可用于对 象数据的恢复;基于一个或多个副本的健康信息来计算第一数据对象的恢 复优先级;以及基于算得的恢复优先级从可用副本中的一个或多个可用副 本恢复第一数据对象。

根据一个或多个实施例,提供了包括一个或多个逻辑单元的系统。一 个或多个逻辑单元配置成执行与上面公开的方法相关联的功能和操作。在 另一个实施例中,提供了包括具有计算机可读程序的计算机可读存储介质 的计算机程序产品。当在计算机上被执行时,该计算机可读程序使计算机 执行与上面公开的方法相关联的功能和操作。

下面参考附图进一步详细提供除了某些替代方案之外的一个或多个以 上公开的实施例。然而,所公开的主题不限于所公开的任何特定实施例。

附图说明

通过参考下面提供的附图中的各附图,可以更好地理解所公开的实施 例。

图1A和1B示出根据一个或多个实施例的用于在分布式数据通信网络 中存储和恢复数据的示例性系统基础设施的框图。

图2和3是示出根据一个实施例的从丢失数据对象的远程存储副本进 行自动数据恢复的示例性方法的流程图。

图4A和4B是根据一个或多个实施例的所公开的系统和方法可以在其 中操作的硬件和软件环境的框图。

根据一个或多个实施例,在不同的图中用相同的数字标记的特征、元 件和方面表示相同、等效或类似的特征、元件或方面。

具体实施方式

在下文中,阐述了许多具体细节以提供对各种实施例的彻底描述。可 以在没有这些具体细节或在细节发生一些变化的情况下实践某些实施例。 在一些实例中,为了不使其他方面变模糊,没有详细描述某些特征。与元 件或特征中的每个相关联的细节水平不应被解释为将一个特征的新颖性或 重要性限定为超过其他特征。

参考图1A,其示出实现数据存储系统中的数据恢复的计算环境,所述 数据存储系统跨越多个数据中心复制数据对象的拷贝(即,副本)。如图 所示,可以实现多个数据中心(例如,数据中心1、数据中心2等),其 中数据中心由一个或多个集群(例如,集群101、集群201等)组成。数 据中心还可以包括具有一个或多个节点(例如,节点2011、2012等)的一 个或多个网络(例如,网络110、网络210等)。除了电源和冷却系统(未 示出)之外,数据中心还可以包括远程或本地数据库(例如,数据库105、 数据库205等)。

参考图1B,其示出包括多个存储媒介(例如,盘1到N)的网络节点 1001,其中在所述多个存储媒介上可以存储多个数据对象1到X。根据一 个实施例,实现了鲁棒、可靠和高效的数据恢复系统,其中在可能的情况 下,通过在分布式数据存储系统中的远程节点或集群上分散和存储数据对 象,使存储在网络中单个节点上的数据对象副本的总数目限制为最小值。 以这种方式,如果故障导致本地集群处副本的丢失、损坏或其他不可用, 则如果数据的一个或多个副本存储在远程集群中,恢复数据的可能性更高, 因为远程集群已经被相同的本地故障影响的概率最小。

参考图2,根据一种实现,数据库可以配置成与本地集群通信,以便 为一个或多个数据对象存储和提供数据对象副本的放置(S210),其中数 据对象存储在本地集群中的一个或多个网络节点上。例如,数据库可以存 储关于数据对象的信息,以指示数据对象1存储在数据中心1的集群101 的节点1001的盘1上。此外,附加信息可以与数据对象相关联地存储在数 据库中,以指示本地数据中心内以及跨越分布式存储网络中的远程数据中 心的所述数据对象的一个或多个副本的位置。因此,数据库可以包括将本 地数据对象与集群1到N中其相应远程副本相关联的记录。

如果丢失或损坏了数据对象的至少一个副本,则可以认为数据对象有 故障。如果将要恢复故障数据对象(S220),则可以查询故障数据对象的 数据库记录以确定持有故障数据对象的副本的集群1到N的列表(S230)。 一旦确定副本的一个位置或多个位置,则可选地可以启动多个并行过程1 到N,以便与其上存储有远程副本1到N的相应集群通信。这种查询的目 的可以是例如出于恢复的目的确定关于副本的可用性的健康数据(S240)。 健康数据可以是与副本相关联的指示符的形式(例如,逻辑标志,诸如布 尔操作数),用于指示副本在相应盘、节点或集群上是否可用,无论是本 地的还是远程的。

因此,副本的健康数据可以用于确定是否可以成功地从该副本恢复故 障数据对象。如果健康的副本可用,那么可以从该副本恢复数据对象 (S250),否则可以采取补救措施(S260)。例如,如果其上存储有故障 数据对象的副本的远程节点正在为相同的故障数据对象进行副本恢复过 程,那么目标副本的健康数据将指示目标副本不可用于副本恢复的目的。 各种分布式数据中心中的副本的健康数据还可以可选地包括关于可用于某 一数据对象的副本的数目的信息。可以分析健康数据以基于恢复标准设计 恢复计划,所述恢复标准可以包括基于本地或远程集群上的可用副本的数 目或位置的丢失风险。

例如,为了定义恢复标准或计划,可以使用优先级函数以便基于与第 二故障数据对象相比,丢失第一故障数据对象的概率以及与丢失或恢复第 一故障数据对象相关联的成本,来确定优于第二故障数据对象而恢复第一 故障数据对象的优先级。取决于实现,例如,可能合乎期望的是,首先恢 复具有较少数目的本地副本的故障数据对象,而优先于具有更高数目的本 地副本的故障数据对象。作为另一个示例,可能合乎期望的是,首先恢复 被评级为存储在安全性较低或可靠性较低的数据存储媒介上的故障数据对 象。还可以根据暗示或分配关于某些数据对象的恢复的更高重要性或成本 的因素来实现具有备选优先级方案的其他恢复计划。

根据一个实施例,示例性优先级函数P(D)=Func(N(D),C(D),n)可以用 于从分布式网络中的一个或多个副本恢复故障数据对象,其中:

●D表示在多个集群中具有多个副本的数据对象;

●L(D)表示D的本地副本;

●R(D)i,i=1...n,其中“i”和“n”为自然数,表示D的“n”个远 程副本中的索引为i的远程副本;

●H(D)i表示在运行恢复查询时R(D)i的健康状态,其中由远程集群提 供的专用信息(ad-hoc information)可以指示例如副本是“可用的”或 “不可用的”;

●N(D)表示例如H(D)i=“可用的”的远程副本的数目;

●C(D)表示丢失D的N个副本的成本;

●P(D)表示由系统针对D的恢复操作所给予的优先级;以及

●S(D)表示D的远程副本的源,其例如具有H(D)i=“可用的”、并且 被系统选择以从其中进行拷贝。

参考图3,根据一个实施例,可以使用恢复优先级队列来实现恢复计 划,其中根据与数据对象相关联的健康信息以及以上提到的其他因素的分 析来确定数据对象的恢复的相对优先级(S310)。一旦例如基于诸如以上 提到的优先级函数确定了数据对象的恢复优先级(S320),则可以添加相 应的恢复任务到恢复优先级队列(S330)。可以根据任务在队列中的顺序 来为队列中的恢复任务提供服务(S340)。值得注意的是,取决于实现, 在以上提到的关于损坏的或以其他方式不可用的数据对象(即,故障数据 对象)及其相应的N个副本的信息被获得并分析时,可以实时地添加恢复 请求到恢复优先级队列。

在一个示例情景中,故障数据对象的恢复请求可以尽可能快地添加到 恢复优先级队列,并且可选地在已经确定该故障数据对象的恢复优先级之 前被添加到恢复优先级队列。例如,第一数据对象的第一恢复请求以及第 二数据对象的第二恢复请求可以添加到队列,其中第一恢复请求被安排在 第二恢复请求的前面。如果确定第二数据对象的恢复具有高于第一数据对 象的恢复的更高优先级(例如,基于优先级函数的结果),则第二恢复请 求可以移动到队列中位于第一恢复请求前面的位置。

在另一个示例中,可以在计算优先级之后将恢复请求添加到队列。在 该示例中,第一数据对象的第一恢复请求的第一优先级可以被首先计算并 添加到队列,并且在之后的某个时间,可以为第二数据对象的第二恢复请 求计算出高于第一优先级的第二优先级,使得第二请求被安排在第一请求 之前。在一个实现中,如果第一恢复请求的处理已经开始,则可以不中断 第一数据对象的恢复。如此,可以在不减慢已经开始处理的恢复请求的情 况下使恢复过程最优化,除非例如满足某一预定条件集。

根据一个实施例,出于引入效率到副本恢复过程中的目的,可以在设 计恢复计划中考虑一个或多个因素。作为简化的示例,考虑以下情景:可 以确定在10个故障数据对象当中,10个对象中的7个对象的健康副本可 以从相同的一组远程集群恢复。在该示例情景中,幼稚的方法是提交10 个分离的查询以便从10个分离的远程集群确定10个故障数据对象中的每 一个对象的副本的健康状态或可用性,接着是10个独立的取回请求以恢复 10个故障对象的本地副本,可能是从10个不同的远程集群恢复。应当理 解的是,这种幼稚的方法与大量的开销相关联并且是昂贵的。

在一个实施例中,可以分析存储在(合乎期望地,本地的)恢复数据 库中的关于副本的健康信息,以确定在本地或远程节点或集群上可用的副 本的位置。在以上示例中,10个副本中的7个可以存储在单个本地或远程 节点或集群上。值得指出的是,此时,尽管副本的位置是已知的,但是副 本的实际健康状态可能不是已知的。如此,可能需要为10个副本提交健康 调查,以确定10个副本中的哪个可以适用于恢复的目的。为了提高效率, 驻留在相同节点上的7个副本的健康调查可以以单个调查提交(例如,作 为提交7个分离的调查的替代方案)。

在该示例中,在健康验证阶段,可以接收到对所提交的健康调查的响 应。该响应将指示10个副本的健康状态。合乎期望地,在一个实现中,接 收到对7个副本的单个调查的单个响应,以指示7个副本中的一个或多个 (且合乎期望地,全部)的健康水平。可以向其他远程集群提交附加查询 以获得其他节点上的副本的健康信息。例如,如果10个副本中的剩余3 个在3个分离的节点上,则可能必需向3个分离的节点提交3个分离的健 康调查。还应注意的是,每个故障对象可以具有多个副本,并且该调查需 要被发送到这些副本应当存在于其中的一个或多个集群,以调查对象的健 康状态。

一旦收集了10个副本的健康数据,则可以计算故障对象的恢复优先级 并且可以确定对象恢复的可能选项的列表。在以上示例中,如果所恢复的 故障对象中的4个具有相同的优先级、并且可以从相同的远程集群取回4 个故障对象的副本,那么可以为这4个故障对象提交单个恢复请求。也就 是说,提交一个取回请求而不是发出4个独立的取回请求给相同的远程集 群。该实现将节省与处理恢复调查和请求相关联的网络和处理带宽以及开 销成本。

恢复10个故障对象的集群因此可以通过把共同具有相同或类似优先 级的取回请求归成一组而为10个故障对象设计高效恢复方案,并且可以使 用在健康验证阶段期间所搜集的信息从相同的源集群而被取回。一旦如上 所述确定了优先级,则可以将利用其优先级而归成一组的取回请求添加到 优先级队列。在一个实施例中,健康验证阶段和恢复阶段可以是交错的、 并且使用相同的优先级队列,使得健康验证阶段任务被分配通过从数据库 获得的先验性知识(例如,基于故障对象可能仍具有的潜在副本的数目以 及丢失这样的对象的成本)定义的优先级。可以基于在上面所提供的健康 验证阶段提供的响应来计算恢复任务优先级。

根据一个实施例,如果从一个或多个识别出的节点或集群进行的副本 恢复过程未成功,则可以通过返回到健康验证阶段(即,通过提交恢复调 查和请求到可能具有故障数据对象的副本的其他节点或集群来查询副本的 健康状态,即使在所述节点或集群无法提供所计算的最佳恢复过程的情况 下)来重复该副本恢复过程。可选地,在先前的健康验证阶段所计算的其 他源可以用于获得故障对象,同时可选地相应调整恢复请求优先级。

概括地说,可以实现以下过程用于恢复的目的:

1.通过确定数据对象的至少N个副本被丢失来识别故障数据对象。

2.队列任务1(查询健康数据和计算优先级):

2.1就故障对象的各个副本的健康状态查询多个节点,

2.2计算故障对象的恢复任务的优先级并决定从其中恢复副本 的位置,以及

2.3队列任务2基于故障对象的所计算的优先级来执行恢复任 务。

3.任务2(恢复):

3.1试图基于健康数据从副本进行恢复,

3.2如果未能恢复:队列任务1再次查询故障对象的副本的健康 状态。取决于实现,根据一个或多个因素(例如,优先级计算是否独 立于副本的健康状态),可以或者可以不再次计算故障对象的恢复优 先级。

如前面提到的,可以基于与丢失和故障数据对象相关的一个或多个数 据副本的风险相关联的概率来对恢复任务确定优先级。此外,可以实现并 行恢复配置,使得(a)集群的一些或可选地所有节点可以参与副本恢复过 程,(b)多个过程可以并行运行以帮助从多个可用副本进行的恢复,以及 (c)可以对副本归组以加速大量恢复过程。

有利地,在分布式数据存储环境中从聚焦的一组节点或集群进行的所 公开的并行副本恢复过程在较大的数据存储系统中可良好地扩展,并且可 以用于支持正在进行的副本恢复过程,以用于恢复跨越大规模数据存储系 统的相对大量的副本。根据一个实施例,可以对于每个副本在集群级别(例 如,与节点级别相对)的数据库中维护包括副本的健康信息或可用性状态 的元数据,使得即使丢失了副本数据,仍可以访问元数据。这样的元数据 可以包括:副本可从其中得到恢复的候选集群的列表,以及可选地,丢失 该复制的数据的成本或者从每个相应的候选集群复制的成本。

在一个实施例中,例如,副本元数据可以比数据对象副本自身被复制 更多次,从而允许副本元数据比副本能从更多故障存活。集群可以包含副 本的一个或多个不受保护的拷贝以及对象的元数据的一个或多个受保护的 拷贝(或者经由编码(以获得冗余度)或者经由复制)。取决于实现,数 据对象的恢复优先级或者在健康验证阶段获得故障对象的健康状态的优先 级可以基于例如下述中的至少一个或多个来确定:

●针对数据对象的被丢失的副本数目,

●针对数据对象的剩余副本数目(例如,无论是事实上的副本还是理 论上的副本),以及

●丢失数据对象的一个或多个副本的成本。

如果出于各个数据对象的恢复目的而被选择或定位的候选副本被认为 不可用,则可以将数据对象的恢复优先级确定为好像该候选集群所持有的 相应副本集被丢失一样。根据一个实施例,如果指定的集群作出该集群包 含健康副本的响应,则可以从候选的一组集群之一中选择该指定的集群。 候选集群可以报告其当前状态(例如,可用资源),其中可以基于其资源 的可用性来确定指定的集群。如果集群设有关于从一个或多个候选集群进 行恢复的成本的数据,则可以选择具有较低(或最低)相关联的恢复成本 的指定集群。

根据一个实施例,集群可以具有关于数据对象的本地副本的信息,使 得可以基于集群中是否存在数据对象副本的附加拷贝来确定用于恢复目的 的指定集群。可以从候选集群当中确定这样的指定集群,该指定集群的响 应在共同具有相同优先级的一组副本中具有最高数目的健康副本,其中:

●在选择故障数据对象从其中得到恢复的指定集群之前计算优先级, 以及

●当选择了指定集群时,对共同具有相同优先级的故障数据对象的最 大可能子集,选择相同的指定集群。

例如,在下面的表1中,集群2将被选择用于复制故障数据对象4、5、 6、7和8。并且,集群1将被选择用于复制丢失的副本1、2和3。

副本 优先级 集群1 集群2 1 5 ok ok 2 5 ok ok 3 5 ok 丢失 4 7 ok ok 5 7 ok ok 6 7 ok ok 7 7 ok ok 8 7 丢失 ok

根据一个实施例,在未能从指定的集群恢复故障数据对象之后,可以 基于先前从候选集群查询的信息或者通过向候选集群作出附加查询来确定 新优先级和新指定集群。可以基于存储在恢复数据库中的元数据来确定故 障数据对象或数据对象的丢失副本的列表。可以处理该列表以寻找故障数 据对象可从其中得到恢复的候选集群的共同列表。可以基于控制数据的管 理域首先划分丢失副本的列表,使得任何进一步的恢复处理基于属于所述 管理域的特权而被执行。

本说明书中对“实施例”、“一个实施例”、“一个或多个实施例”等的 提及意味着所描述的特定元件、特征、结构或特性被包括在所公开主题的 至少一个实施例中。该类短语在本说明书中的出现不应被特别地解释为指 相同的实施例,该类短语也不应被解释为是指关于所讨论的特征或元件是 相互排斥的实施例。

在不同的实施例中,所要求保护的主题可以被实现为硬件和软件元件 的组合,或者可选地完全以硬件的形式或者完全以软件的形式实现。此外, 本文所公开的计算系统和程序软件可以包括受控制的计算环境,其可以用 硬件组件或逻辑代码呈现,所述逻辑代码被执行以执行实现本文所设想的 结果的方法和过程。当由通用计算系统或机器执行时,所述方法和过程将 通用机器转换为专用机器。

参考图4A和4B,根据示例性实施例的计算系统环境可以由硬件环境 1110和软件环境1120组成。硬件环境1110可以包括逻辑单元、电路或其 他机器和设备,其提供软件环境1120的组件的执行环境。继而,软件环境 1120可以提供执行指令,其包括用于硬件环境1110的各种组件的底层操作 设置和配置。

参考图4A,本文所公开的应用软件和逻辑代码可以以机器可读代码的 形式实现,所述机器可读代码通过由示例性硬件环境1110表示的一个或多 个计算系统而被执行。如图所示,硬件环境1110可以包括通过系统总线 1100耦合到一个或多个存储元件的处理器1101。例如,存储元件可以包括 本地存储器1102、存储介质1106、高速缓冲存储器1104或者其他机器可 用或计算机可读介质。在本公开的上下文内,机器可用或计算机可读存储 介质可以包括任何可记录物品,其可以被用于包含、存储、传递、传播或 传输程序代码。

计算机可读存储介质可以是电子、磁、光学、电磁、红外或半导体介 质、系统、装置或器件。计算机可读存储介质还可以以传播介质实现,而 不限于这样的范围:所述实现被认为是法定的主题。在适当的情况下,计 算机可读存储介质的示例可以包括半导体或固态存储器、磁带、可移除计 算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘、 光盘或载波。光盘的当前示例包括紧凑盘、只读存储器(CD-ROM)、紧凑 盘读/写(CD-R/W)、数字视频盘(DVD)、高清晰度视频盘(HD-DVD) 或蓝光TM盘。

在一个实施例中,处理器1101从存储介质1106向本地存储器1102加 载可执行代码。高速缓冲存储器1104通过提供有助于降低代码被加载以用 于执行的次数的临时存储,来优化处理时间。一个或多个用户接口设备1105 (例如,键盘、指点设备等)和显示屏幕1107可以耦合到硬件环境1110 中的其他元件,例如直接耦合或通过居间I/O控制器1103耦合。通信接口 单元1108(诸如网络适配器)可以被提供用于使硬件环境1110能够经由居 间的专用或公用网络(例如,因特网)与本地或远程定位的计算系统、打 印机和存储设备通信。有线或无线调制解调器和以太网卡是网络适配器的 几种示例性类型。

值得注意的是,在特定实现中,硬件环境1110可以不包括一些或全部 上述组件,或者可以包括附加组件以提供补充功能或效用。取决于设想的 用途和配置,硬件环境1110可以是诸如台式计算机或膝上型计算机的机 器,或者可选地以嵌入式系统体现的其他计算设备,诸如机顶盒、个人数 字助理(PAD)、个人媒体播放器、移动通信单元(例如,无线电话)或者 具有信息处理或数据存储能力的其他类似硬件平台。

在一些实施例中,通信接口1108充当数据通信端口,用于通过发送和 接收承载表示各种类型的信息(包括程序代码)的模拟或数字数据流的数 字、电、电磁或光信号,来提供与一个或多个计算系统通信的方式。可以 通过本地或远程网络来建立通信,或者可选地,通过经由空气或其他介质 进行传输(包括但不限于经由载波传播)来建立通信。

如本文所提供的,在所示出的硬件元件上执行的所公开的软件元件是 根据本质上是示例性的逻辑或功能关系定义的。然而,应当注意的是,通 过所述示例性软件元件实现的各个方法还可以例如通过经配置和编程的处 理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和数字信号 处理器(DSP)而被编码在所述硬件元件中。

参考图4B,软件环境1120通常可以划分为两类,包括在一个或多个 硬件环境1110上执行的系统软件1121和应用软件1122。在一个实施例中, 本文所公开的方法和过程可以实现为系统软件1121、应用软件1122或其 组合。系统软件1121可以包括控制程序,诸如操作系统(OS)或信息管 理系统,其指示硬件环境1110中的一个或多个处理器1101(例如,微控制 器)如何运作和处理信息。应用软件1122可以包括但不限于程序代码、数 据结构、固件、驻留软件、微代码或可以由处理器1101读取、分析或执行 的任何其他形式的信息或例程。

换言之,应用软件1122可以实现为机器可用或计算机可读存储介质的 形式的计算机程序产品中嵌入的程序代码,所述机器可用或计算机可读存 储介质提供由机器、计算机或任何指令执行系统使用或与其结合使用的程 序代码。此外,应用软件1122可以包括一个或多个计算机程序,其在从存 储介质1106加载到本地存储器1102之后在系统软件1121之上执行。在客 户端-服务器架构中,应用软件1122可以包括客户端软件和服务器软件。 例如,在一个实施例中,客户端软件可以在客户端计算系统上执行,所述 客户端计算系统不同于在其上执行服务器软件的服务器计算系统并且与其 分离。

软件环境1120还可以包括浏览器软件1126,用于通过本地或远程计 算网络访问可用数据。此外,软件环境1120可以包括用户接口1124(例 如,图形用户接口(GUI)),用于接收用户命令和数据。值得重申的是, 上述硬件和软件架构及环境是出于示例的目的。如此,一个或多个实施例 可以通过任何类型的系统架构、功能或逻辑平台或处理环境实现。

还应当理解的是,逻辑代码、程序、模块、过程、方法以及各方法的 各个过程被执行的顺序是纯示例性的。取决于实现,除非在本公开中另外 指出,否则可以以任何顺序或并行地执行各过程或任何底层子过程和方法。 此外,除非另外特别声明,否则本公开的上下文内的逻辑代码的定义无关 于或不限于任何特定编程语言,并且可以包括一个或多个模块,该一个或 多个模块可以在分布式、非分布式、单处理或多处理环境中的一个或多个 处理器上执行。

本领域技术人员将理解的是,软件实施例可以包括固件、驻留软件、 微代码等。包括软件或硬件或者组合软件和硬件方面的特定组件在本文中 通常被称作“电路”、“模块”或“系统”。此外,所公开的主题可以实现为 以一个或多个计算机可读存储介质体现的计算机程序产品,所述计算机可 读存储介质具有在其上体现的计算机可读程序代码。可以使用一个或多个 计算机可读存储介质的任何组合。计算机可读存储介质可以是计算机可读 信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限 于电子、磁、光学、电磁、红外或半导体系统、装置或器件、或上述的任 何适当组合。

在本文件的上下文中,计算机可读存储介质可以是可包含或存储程序 的任何有形介质,所述程序由指令执行系统、装置或设备使用或与其结合 使用。计算机可读信号介质可以包括例如在基带中或者作为载波一部分传 播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采 用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。 计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读 介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、 装置或设备使用或者与其结合使用的程序。

计算机可读存储介质上包含的程序代码可以用任何适当的介质传输, 包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。 可以以一种或多种程序设计语言的任意组合来编写用于执行所公开的操作 的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸 如Java、Smalltalk、C++等),还包括常规的过程式程序设计语言(诸如 “C”程序设计语言或类似的程序设计语言)。

程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执 行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执 行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中, 远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网 (WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因 特网服务提供商来通过因特网连接)。

参照根据实施例的方法、装置(系统)和计算机程序产品的流程图或 框图公开某些实施例。应当理解的是,流程图或框图的每个方框以及流程 图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机 程序指令可以提供给通用计算机、专用机器或其它可编程数据处理装置的 处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或 其它可编程数据处理装置的处理器执行时,产生实现流程图或框图中的一 个或多个方框中规定的功能或动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可 以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作, 使得存储在计算机可读介质中的指令产生包括实现流程图或框图中的一个 或多个方框中规定的功能或动作的指令的制造品。

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

附图中的流程图和框图示出根据各种实施例的系统、方法和计算机程 序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每 个方框可以代表模块、程序段或代码的一部分,所述模块、程序段或代码 的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当 注意的是,在有些替代性实现中,方框中所标注的功能也可以以不同于附 图中所标注的顺序或以任意顺序发生。

例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以 按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程 图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的 功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算 机指令的组合来实现。

这里已经参考一个或多个特征或实施例提供了所要求保护的主题。本 领域技术人员应当认识并理解的是,尽管本文提供了示例性实施例的详细 特性,但在不限制或脱离一般期望的范围的情况下,可以对所述实施例进 行改变和修改。本文提供的实施例的这些和各种其他调整及组合在所公开 主题的范围内,其中该范围由权利要求及其等效形式的完整集限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号