基于云的应用与大规模并行系统之间的并行数据流转让专利

申请号 : CN201680004860.X

文献号 : CN107113340A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·多雷斯瓦米F·奥兹卡恩M·H·皮拉赫什M·赫斯肯

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

摘要 :

一种用于第一计算机系统与第二计算机系统之间的并行数据流的方法,包括:发送用于在所述第一计算机系统上的处理作业与所述第二计算机系统上的过程之间建立已认证连接的请求;在所述已认证连接上将查询发送到所述第二计算机系统上的所述过程;在所述第一计算机系统上创建被配置为从所述第二计算机系统并行地接收数据的一个或多个任务;以及由所述第一计算机系统上的所述处理作业读取由所述一个或多个任务接收的数据。

权利要求 :

1.一种用于从第二计算机系统到第一计算机系统的并行数据流的方法,所述方法包括:发送用于在所述第一计算机系统上的处理作业与所述第二计算机系统上的过程之间建立已认证连接的请求;

在所述已认证连接上将查询发送到所述第二计算机系统上的所述过程;

在所述第一计算机系统上创建被配置为从所述第二计算机系统并行地接收数据的一个或多个任务;以及由所述第一计算机系统上的所述处理作业读取由所述一个或多个任务接收的数据。

2.根据权利要求1所述的方法,其中建立所述已认证连接包括在所述第一计算机系统与所述第二计算机系统之间交换凭证信息、用户数据、授权规则以及证书数据。

3.根据权利要求1所述的方法,其中所述查询包括查询信息和通信信息。

4.根据权利要求3所述的方法,其中所述通信信息包括多个端口号,所述多个端口号均与所述第一计算机系统上的所述一个或多个任务中的一者相关联。

5.根据权利要求3所述的方法,其中所述多个端口包括多个读取端口和多个写入端口,其中所述写入端口由所述第一计算机系统用于将数据写入所述第二计算机系统,并且所述读取端口由所述第一计算机系统用于从所述第二计算机系统读取数据。

6.根据权利要求1所述的方法,其中所述第一计算机系统和所述第二计算机系统都是无共享系统。

7.根据权利要求1所述的方法,其中所述第一计算机系统和所述第二计算机系统中的至少一者是云计算系统。

8.根据权利要求1所述的方法,其中所述第一计算机系统和所述第二计算机系统中的至少一者是大规模并行计算系统。

9.一种从第二计算机系统到第一计算机系统的并行数据流的方法,所述方法包括:接收用于在所述第一计算机系统上的处理作业与所述第二计算机系统上的过程之间建立已认证连接的请求;

由所述第二计算机系统上的所述过程在所述已认证连接上接收查询;

创建所述第二计算机系统上的所述过程的一个或多个实例以并行地执行所述查询;

在所述过程的所述一个或多个实例中的每一者上并行地执行所述查询以便生成一个或多个结果集;以及将所述查询的所述一个或多个结果集并行地发送到所述第一计算机系统。

10.根据权利要求9所述的方法,其中建立所述已认证连接包括在所述第一计算机系统与所述第二计算机系统之间交换凭证信息、用户数据、授权规则以及证书数据。

11.根据权利要求9所述的方法,其中所述查询包括查询信息和通信信息。

12.根据权利要求11所述的方法,其中所述通信信息包括多个端口号,所述多个端口号均与所述第一计算机系统上的一个或多个任务相关联。

13.根据权利要求12所述的方法,其中所述多个端口包括多个读取端口和多个写入端口,其中所述写入端口由所述第一计算机系统用于将数据写入所述第二计算机系统,并且所述读取端口由所述第一计算机系统用于从所述第二计算机系统读取数据。

14.根据权利要求9所述的方法,其中所述第一计算机系统和所述第二计算机系统都是无共享系统。

15.根据权利要求9所述的方法,其中所述第一计算机系统和所述第二计算机系统中的至少一者是云计算系统。

16.根据权利要求9所述的方法,其中所述第一计算机系统和所述第二计算机系统中的至少一者是大规模并行计算系统。

17.一种用于从第二计算机系统到第一计算机系统的并行流的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其包含的程序代码,所述程序代码能够由处理器执行以执行根据任一上述权利要求所述的方法。

18.一种用于从第二计算机系统到第一计算机系统的并行数据流的装置,其包括用于执行根据权利要求1至16中任一项所述的方法的所有步骤的各种部件。

说明书 :

基于云的应用与大规模并行系统之间的并行数据流

背景技术

[0001] 本发明的实施例一般地涉及在不同计算机系统之间共享数据,并且更具体地说,涉及基于云的应用与大规模并行系统之间的并行数据流。
[0002] 通常,位于不同计算机系统的私有网络上的云计算环境需要协作,并且需要在实施严格数据可见性标准的情况下的数据共享。同样,在云计算环境中运行的应用也可能需要在数据位于大规模并行计算系统中的情况下的类似数据共享能力。一般而言,如果这些系统是无共享系统(sharing nothing system),则由于安全风险,它们不能通过将包含要共享的数据的文件存储在可公开访问的位置中而与不同计算机系统共享数据。

发明内容

[0003] 各实施例包括一种用于第一计算机系统与第二计算机系统之间的并行数据流的方法、系统以及计算机程序产品。所述方法包括发送用于在所述第一计算机系统上的处理作业与所述第二计算机系统上的过程之间建立已认证连接的请求;以及在所述已认证连接上将查询发送到所述第二计算机系统上的所述过程。所述方法还包括在所述第一计算机系统上创建被配置为从所述第二计算机系统并行地接收数据的一个或多个任务;以及由所述第一计算机系统上的所述处理作业读取由所述一个或多个任务接收的数据。
[0004] 通过本公开的技术实现其它特性和优点。在此详细描述了本公开的其它实施例和方面。为了更好地理解本公开以及优点和特性,参考说明书和附图。

附图说明

[0005] 在说明书结尾处的权利要求中具体指出并明确要求保护了被视为本发明的主题。从下面结合附图的详细描述,本公开的上述和其它特性和优点将显而易见,这些附图是:
[0006] 图1示出根据一个实施例的用于计算机系统之间的并行数据流的系统的框图;
[0007] 图2示出根据一个实施例的用于基于云的应用与大规模并行系统之间的单向并行数据流的过程流程;
[0008] 图3示出根据一个实施例的用于基于云的应用与大规模并行系统之间的双向并行数据流的过程流程;
[0009] 图4是示出根据一个实施例的第一计算机系统与第二计算机系统之间的并行流的方法的流程图;
[0010] 图5是示出根据一个实施例的第一计算机系统与第二计算机系统之间的并行流的方法的流程图;以及
[0011] 图6示出根据一个实施例的用于实现此处的教导的处理系统。

具体实施方式

[0012] 在此描述的实施例涉及用于不同计算机系统(例如基于云的应用和大规模并行系统)之间的并行数据流的方法、系统以及计算机程序产品。在示例性实施例中,作为私有云计算系统的一部分的第一计算机系统上的应用或处理作业能够与作为远程云计算系统的一部分的第二计算机系统协作。在示例性实施例中,第二计算机系统需要具有严格数据访问控制的数据共享能力,并且管理它愿意通过使用凭证信息、证书、授权规则来共享的数据以及从第一计算机系统传入的数据,以便确定可以与第一计算机系统上的发出请求的用户共享的被请求数据。
[0013] 在示例性实施例中,不同计算机系统(它们可以包括基于云的应用和大规模并行系统)利用数据共享协议以便促进安全并行数据交换。在示例性实施例中,数据共享协议采用基于套接字的方案和并行线程以便允许不同计算机系统直接和安全地交换用户被授权和有权查看的数据。在示例性实施例中,数据通信可以通过TCP/IP套接字或任何其它合适的网络协议,例如RDMA。一般而言,套接字通信默认情况下不安全;相反,它们需要通过其它方法(例如认证、证书等)支持以便实现安全性。
[0014] 现在参考图1,示出根据一个实施例的用于计算机系统之间的并行数据流的系统100的框图。如图所示,系统100包括第一计算机系统110和第二计算机系统120,它们通过网络102通信。在示例性实施例中,第一计算机系统110和第二计算机系统120可以是云系统或企业系统,例如大规模并行处理系统。基于套接字的通信机制在第一计算机系统110和第二计算机系统120上都可用,以便通过网络102在两个计算机系统之间实现并行数据流。在示例性实施例中,第一计算机系统110和第二计算机系统120分别包括处理器116和处理器
126,它们可以用于支持通过网络102交换的数据的加密和解密。
[0015] 第二计算机系统120与第一计算机系统分离,并且两个计算机系统都是无共享系统,即它们不共享对任何公共数据存储设施的访问。此外,两个计算机系统中的至少一者不允许将中间结果存储在磁盘上,因为这些中间结果构成安全风险,并且还可能针对数据共享、认证和授权具有严格策略。在示例性实施例中,第一计算机系统110和第二计算机系统120之一或两者可以是分布式处理系统,例如基于Hadoop的系统。
[0016] 在一个实施例中,在第一计算机系统110上执行应用114(例如数据库查询),其需要访问来自多个源(包括第一计算机系统110和第二计算机系统120两者)上的“视图”的数据(即,中间结果的计算与仅来自每个源的原始数据)以便用于分析目的。因此,第一计算机系统110上的应用114需要针对存储在第二计算机系统120上的数据执行计算。
[0017] 在一个实施例中,第一计算机系统110是多节点Hadoop,并且第二计算机系统120包括并行数据库管理系统(DBMS)122,例如具有数据分区特性(DPF)的DB2。在一个实施例中,应用114需要的操作数据可以包含在第一计算机系统110的存储装置112中,并且应用114需要的事务数据可以包含在第二计算机系统120的DBMS 122中。例如,第一计算机系统
110上的应用114可以执行零售商的订单履行过程。在这种情况下,应用114需要访问存储在第一计算机系统110的存储装置112中的订单数据和存储在驻留在第二计算机系统120上的DBMS 122中的客户数据两者。当前系统通过将计算所需的所有数据(即,订单和客户数据)从第二计算机系统120拉到第一计算机系统110来解决该问题。换言之,当前系统使用离线方法将整个数据集加载到Hadoop系统上,而不是在查询执行期间仅检索每个查询所需的数据。但是,对于大型数据集而言,该方法可以极其昂贵。
[0018] 现在参考图2,其是示出第一计算机系统210与第二计算机系统220之间的单向并行流接口的框图。如图所示,在第二计算机系统220上的并行DBMS 222中执行查询的“m”个DBMS实例228将结果并行地返回到在第一计算机系统210上执行的“n”个任务218(n≥m)。在示例性实施例中,利用基于TCP/IP套接字的通信机制所支持的底层多路复用和连接共享功能。在其它实施例中,还可以使用任何其它合适的基于套接字的通信机制来促进第一计算机系统210与第二计算机系统220之间的通信。
[0019] 在示例性实施例中,在第一计算机系统210上运行的处理作业214将请求230异步地发送到在第二计算机系统220上运行的DBMS 222。由第一计算机系统210发送的请求230可以包括认证和授权信息,以使得第二计算机系统220能够确认第一计算机系统210具有足以在DBMS 222上执行请求230的访问权限。在示例性实施例中,请求230包含要在DBMS 222上执行的查询和要在将查询结果从第二计算机系统220发送到第一计算机系统210中使用的一组(“m”个)端口号。
[0020] 在第二计算机系统220执行认证并且确定处理作业214有权查看被请求数据之后,第二计算机系统220上的DBMS 222在多个DBMS实例228的每一个上并行地执行DBMS实例228的多个实例,并且第一计算机系统210上的处理作业214启动数量为“n”的多个任务218,这建立到“m”个端口的“n”个客户机侧套接字连接。每个并行DBMS实例228执行第二计算机系统220上的DBMS 222中的查询的一部分,然后选择“m”个端口之一并且初始化套接字连接的服务器端。在第一计算机系统210上,启动“n”个任务218,每个任务选择“m”个端口之一并且创建到该端口(其将从该端口读取结果)的套接字连接的客户端。一旦已建立客户机-服务器套接字连接,每个并行DBMS实例228就能够开始将结果写入套接字,并且该连接的另一端上的对应任务218能够开始从其读取。因为多个任务218能够连接到DBMS实例228上的服务器套接字,所以DBMS实例228可能需要写入多个套接字。这可以通过DBMS 222中的多核并行性实现,或者通过以循环方式写入多个套接字的单个DBMS功能或DBMS实例228实现。第一计算机系统210上的适当任务218然后能够读取结果。
[0021] 在一个实施例中,使用n=m的映射,即,针对每个DBMS实例228传入不同端口号。例如,如果第一计算机系统210具备十六个节点,则从第一计算机系统210向第二计算机系统220传递十六个端口。处理作业214启动十六个任务218或线程,并且在第二计算机系统220上执行的每个DBMS实例228通过在与任务218之一对应的传入端口上所建立的套接字连接进行通信。
[0022] 现在参考图3,其是示出第一计算机系统310与第二计算机系统320之间的双向并行流接口的框图。如图所示,在第二计算机系统320上的并行DBMS 322上执行查询328的“m”个DBMS实例将结果并行地返回到在第一计算机系统310上执行的“n”个任务318(n≥m)。在示例性实施例中,第二计算机系统320需要来自第一计算机系统310的用于其计算的输入数据。在某些情况下,需要的数据量很小,例如像在订单履行情景中几个客户ID和订单号的情况。在这些情况下,需要的数据可以作为函数/查询名称旁边的函数/查询参数被传递以便执行,如参考图2所述。在这些情况下,并行流接口是单向的,即,仅来自并行DBMS查询328的结果需要并行地流回。但是,在更复杂的结合(join)场景中,可能需要将大量数据发送到第二计算机系统320以便处理。针对这种复杂的结合场景使用单向流接口将导致通过串行接口作为函数/查询参数发送所有数据,并且将对整体查询性能产生负面影响。对于这些场景,当第二计算机系统320需要来自第一计算机系统310的用于其计算的大量输入数据时,使用双向并行流接口。
[0023] 在示例性实施例中,第一计算机系统310上的处理作业314需要第一计算机系统310中的数据和驻留在第二计算机系统320上的并行DBMS 322中的数据的结合(join)结果。
在第一计算机系统310上运行的处理作业314将请求330发送到在第二计算机系统320上运行的DBMS 322。在示例性实施例中,请求330包含要在DBMS 322上执行的查询以及传递的“n”个端口和“m”个端口,所述“n”个端口被专门指定为读取端口,第二计算机系统320可以通过这些端口从第一计算机系统310读取数据,通过所述“m”个端口写入函数/查询请求的结果。这些读取端口的“n”个任务与“m”个并行DBMS实例328之间的套接字连接的建立方式与单向流情况下的写入端口相同。“n”个任务318然后在这些套接字连接上将结合需要的数据从第一计算机系统310发送到第二计算机系统320上的“m”个并行DBMS实例328。在每个DBMS实例328内,针对要单独处理的通过套接字的读取和写入采用函数/查询内的多线程。
[0024] 现在参考图4,其是示出第一计算机系统与第二计算机系统之间的并行流的方法400的流程图。如在方框402处所示,方法400包括在第一计算机系统上的处理作业与第二计算机系统上的过程之间创建已认证连接。在示例性实施例中,创建已认证连接可以包括在两个计算机系统之间发送凭证信息、用户数据、授权规则以及证书数据。接下来,如在方框
404处所示,方法400包括在所述已认证连接上将查询发送到所述第二计算机系统。在示例性实施例中,所述查询可以包括查询信息和通信信息。在示例性实施例中,所述通信信息可以包括多个读取和写入端口,这些端口用于第一计算机系统与第二计算机系统之间的通信。接下来,如在方框406处所示,方法400包括创建被配置为从所述第二计算机系统并行地接收和发送数据的一个或多个任务。如在方框408处所示,所述第一计算机系统上的所述处理作业读取由所述一个或多个任务接收的数据。
[0025] 现在参考图5,其是示出第一计算机系统与第二计算机系统之间的并行流的方法500的流程图。如在方框502处所示,方法500包括在第一计算机系统上的处理作业与第二计算机系统上的过程之间建立已认证连接。在示例性实施例中,建立所述已认证连接可以包括从所述第一计算机系统接收和验证凭证信息、用户数据、授权规则以及证书数据。接下来,如在方框504处所示,方法500包括在所述已认证连接上接收来自所述第一计算机系统的查询。在示例性实施例中,查询请求包括查询信息和通信信息,所述第二计算机系统将使用该信息将数据流式传输到所述第一计算机系统。在示例性实施例中,所述通信信息可以包括所述第一计算机系统上的多个读取和写入端口,所述第二计算机系统可以访问这些端口以便传输和接收数据。接下来,如在方框506处所示,方法500包括创建所述第二计算机系统上的过程的一个或多个实例以便并行地执行所述查询。如在方框508处所示,所述第二计算机系统上的所述过程的一个或多个实例将查询结果并行地发送到所述第一计算机系统。
[0026] 在示例性实施例中,使用该通信信息在所述第一计算机系统与所述第二计算机系统之间建立基于套接字的通信。所述第二计算机系统可以使用该通信信息建立套接字连接的n到m映射,这包括第一计算机系统上的“n”个处理任务从在第二计算机系统上并行地执行的函数/查询的“m”个实例并行地读取/写入数据,其中n≥m。基于套接字的通信用于将在第二计算机系统上执行的函数/查询的加密后的结果流式传输到第一计算机系统。
[0027] 参考图6,示出用于实现此处的教导的处理系统600的一个实施例。在该实施例中,系统600具有一个或多个中央处理单元(处理器)601a、601b、601c等(统称或通称为处理器(多个)601)。在一个实施例中,每个处理器601可以包括精简指令集计算机(RISC)微处理器。处理器601经由系统总线613耦合到系统存储器614和各种其它组件。只读存储器(ROM)602耦合到系统总线613并且可以包括基本输入/输出系统(BIOS),BIOS控制系统600的某些基本功能。
[0028] 图6进一步示出耦合到系统总线613的输入/输出(I/O)适配器607和网络适配器606。I/O适配器607可以是小型计算机系统接口(SCSI)适配器,其与硬盘603和/或磁带存储驱动器605或任何其它类似组件通信。I/O适配器607、硬盘603和磁带存储设备605在此统称为大容量存储装置604。用于在处理系统600上执行的软件620可以存储在大容量存储装置
604中。网络适配器606将总线613与外部网络616互连,从而使数据处理系统600能够与其它此类系统通信。屏幕(例如,显示器)615通过显示适配器612连接到系统总线613,显示适配器612可以包括用于改进图形密集型应用的性能的图形适配器和视频控制器。在一个实施例中,适配器607、606和612可以连接到一条或多条I/O总线,这些I/O总线经由中间总线桥(未示出)连接到系统总线613。用于连接外围设备(例如硬盘控制器、网络适配器和图形适配器)的合适的I/O总线通常包括公共协议,例如外围组件互连(PCI)。其它输入/输出设备被示为经由用户接口适配器608和显示适配器612连接到系统总线613。键盘609、鼠标610和扬声器611全部经由用户接口适配器608与总线613互连,用户接口适配器608例如可以包括将多个设备适配器集成到单个集成电路中的超级I/O芯片。
[0029] 因此,如图6中配置的,系统600包括处理器601形式的处理能力、包含系统存储器614和大容量存储装置604的存储能力、诸如键盘609和鼠标610之类的输入部件、以及包含扬声器611和显示器615的输出能力。在一个实施例中,系统存储器614和大容量存储装置
604的一部分共同存储操作系统(例如来自IBM公司的 操作系统)以便协调图6中所示的各种组件的功能。
[0030] 在此使用的术语只是为了描述特定的实施例并且并非旨在作为本公开的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
[0031] 以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本公开的描述其目的在于示意和描述,并非是穷尽性的,也并非是要将本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本公开范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本公开的原理和实际应用,使所属技术领域的普通技术人员能够明了,本公开可以有适合所要的特定用途的具有各种改变的各种实施方式。
[0032] 此外,如所属技术领域的技术人员将认识到的,本公开的各个方面可以体现为系统、方法或计算机程序产品。因此,本公开的各个方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了软件和硬件方面的实施例的形式,所有这些实施例在此通常可以被称为“电路”、“模块”或“系统”。此外,本公开的各个方面可以采取体现在一个或多个计算机可读介质(在介质中包含计算机可读程序代码)中的计算机程序产品的形式。
[0033] 可以使用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何能够包含或存储程序的有形介质,该程序可以被指令执行系统、装置或器件使用或者与其结合使用。
[0034] 计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或器件使用或者与其结合使用的程序。
[0035] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0036] 用于执行本公开各个方面的操作的计算机程序代码可以是以一种或多种编程语言的任意组合编写的,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0037] 以上参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0038] 也可以把这些计算机程序指令存储在能使得计算机、其它可编程数据处理装置或其它设备以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。
[0039] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的流程。
[0040] 附图中的流程图和框图显示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。值得注意的是,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统或者专用硬件与计算机指令的组合来实现。