控制应用和服务器之间的事务请求的制作方法

文档序号:30709693发布日期:2022-07-10 05:14阅读:117来源:国知局
控制应用和服务器之间的事务请求的制作方法
控制应用和服务器之间的事务请求


背景技术:

1.本发明总体上涉及应用和服务器之间的通信领域,并且更具体地涉及用于控制应用和服务器之间的事务请求的中间件系统。
2.本发明还涉及用于控制应用和服务器之间的事务请求的计算机实现的方法。
3.本发明还涉及一种计算机程序产品,该计算机程序产品包括计算机可读程序代码,该计算机可读程序代码使得系统的处理器或网络的多个处理器能够实现这样的方法。
4.企业架构通常围绕集成中间件建立,该集成中间件被配置为向不同源和目标路由数据和从不同源和目标路由数据。例如,数据库管理系统、消息系统和分布式账本技术。
5.这种架构实现可以采用允许数据的同时读取和写入的多版本并发性控制(mvcc),其中要求写入数据片段的请求必须伴随有表示正被重写的数据的当前值的哈希或版本代码。如果哈希或版本代码与当前值不匹配,那么重写数据的请求将被拒绝(即,导致mvcc失败),因为这指示另一连接的客户端同时更新该值。如果客户端的写入请求被拒绝,那么客户端必须重试(例如,重复请求),这通常涉及读取当前值并再次发送写入请求。在重负载下,mvcc故障的比率可以迅速增加,从而导致较差的系统性能。


技术实现要素:

6.本发明试图提供一种用于控制应用和服务器之间的事务请求的中间件系统。
7.本发明还试图提供一种用于控制应用和服务器之间的事务请求的方法。这种方法可以是计算机实现的。
8.本发明进一步寻求提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当由处理单元执行时,该计算机程序代码用于实现所提出的方法。本发明还试图提供一种适于执行该计算机程序代码的处理系统。
9.根据本发明的方面,提供了一种用于控制应用和服务器之间的事务请求的中间件系统。中间件系统包括代理组件。代理组件被配置为在运行时:基于先前或当前观察到的事务冲突来定义事务请求的一个或多个冲突组;以及基于一个或多个冲突组,控制事务请求的并行递送。
10.所提出的是用于控制事务请求以便降低mvcc冲突的风险的概念。在这样的概念中,可以在应用和服务器之间(例如,在客户端应用和区块链网络(或其他mvcc约束的后端系统)之间)采用中间件系统,并且中间件系统可以控制(例如,节流或排队)事务请求的流,使得仅允许并行提交某些请求。例如,中间件系统在运行时可以对其在并行递送时观察到创建事务冲突的组事务请求。基于这样的组,中间件系统可以确定是否应当并行递送事务。
11.实施例提出潜在冲突的事务请求可以被布置成组,并且这可以基于观察到的冲突在运行时动态地完成。每个组内的事务请求然后可以按照顺序被临时排队,直到先前的请求已经被成功地处理,并且在区块链的情况下,被提交到账本。一些实施例因此可以提供用于集成流节点的建议,该集成流节点可以动态地控制请求节流行为,以便使成功的事务提交的吞吐量最大化。
12.所提出的实施例可以采用基于事务冲突的运行时历史(例如,事务冲突)动态地创建冲突组的概念。而且,这种动态分组信息可以被发布给其他组件、节点或组织,从而允许它们更新它们的组配置。
13.根据所提出的概念,中间件组件或系统可以被提供为集成流并且被放置在客户端应用和服务器之间。这种集成流可以形成新的

提交者’或

代理’节点,该节点被配置为以最小化或潜在地消除事务冲突(例如,失败)的方式控制事务请求的提交。
14.通过示例的方式,节点可以保持组集合(以下称为“冲突组”),其中,如果组内的每个事务请求与相同组内的任何其他事务请求同时提交,则该组内的每个事务请求可以导致失败的冲突。然后,如果组中的一个以上事务请求在任何时间到达,那么节点可以通过以先进先出(fifo)顺序排队请求来节流请求,直到它们可以被提交。每个组可以彼此独立地操作,从而实现来自不同组的事务请求的并行处理。
15.由此,根据所提出的实施例,可以提供集成中间件,其被配置为以降低事务冲突风险的方式动态地分组和节流事务请求。通过基于先前或当前观察到的事务冲突动态地分组事务请求,可以提供被利用来控制事务请求的并行提交的信息。
16.具体地,通过在客户端应用与mvcc约束的后端系统之间提供中间件(例如,集成流或者代理组件),所提出的概念可以试图降低mvcc冲突的风险。中间件节流事务请求,使得仅允许并行提交不会引起mvcc冲突的请求。实施例可以利用该想法来对潜在冲突的事务进行分组(例如,基于mvcc冲突的运行时历史等),并且然后使用这样的组来确定是否可以并行提交传入事务。例如,如果组中的多于一个事务请求在任何时间到达,则它们可以被排队直到它们可以被安全地提交。
17.在一些实施例中,代理组件可以包括发布器组件,其被配置为向一个或多个远程组件传送关于一个或多个冲突组的信息。以此方式,各实施例可以被配置成与其他组件、节点或组织(诸如其他代理组件)共享信息,从而允许它们更新其配置。
18.代理组件可以包括接收器组件,该接收器组件被配置为接收关于以下各项中的至少一项的信息:所观察的事务冲突;以及来自远程组件的事务请求的进一步的冲突组。代理组件然后可以被配置为在运行时还基于接收到的信息来定义事务请求的一个或多个冲突组。实施例因此可以利用来自其他组件、节点或组织(诸如其他代理组件)的信息,以便更新和改进冲突组。以这种方式,实施例可以动态地适配和重配置以反映网络或系统中的变化的条件和/或参数。
19.在一些实施例中,代理组件可以被配置为响应于标识是一个或多个冲突组中的相同冲突组的成员的多个事务请求,将多个事务请求排队,以便防止并行递送多个事务请求。例如,代理组件可以被配置为以先进先出顺序排队多个事务请求。这可以使得能够控制事务请求的递送,例如经由推迟或延迟,直到将避免/防止事务冲突的稍后时间。
20.代理组件可以被配置为响应于标识由递送事务请求引起的事务冲突,基于标识的事务冲突来重新定义事务请求的一个或多个冲突组,以及基于重新定义的一个或多个冲突组来控制事务请求的重新递送。因此,实施例可以适于动态地重新配置事务请求的递送。例如,在重新定义冲突组之后,可以自动重新递送/重新提交事务请求,从而避免响应于引起冲突的事务请求而简单地中止递送。
21.中间件系统可以被配置为拦截并控制客户端应用和多版本并发控制mvcc受限服
务器之间的事务请求的递送。因此,对于采用mvcc的架构实现,实施例可以具有特定值。
22.根据本发明的另一方面,提供了一种用于控制应用和服务器之间的事务请求的计算机实现的方法。所述方法包括:在运行时:基于先前或当前观察到的事务冲突来定义事务请求的一个或多个冲突组;以及基于一个或多个冲突组,控制事务请求的并行递送。
23.根据本发明的另一方面,提供了一种计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,这些程序指令由处理单元可执行以使处理单元执行根据所提出的实施例的方法。
24.根据本发明的另一方面,根据实施例,提供了一种包括至少一个处理器的计算机系统和计算机程序产品。至少一个处理器适于执行所述计算机程序产品的计算机程序代码。
附图说明
25.从以下将结合附图阅读的对本发明的示范性实施例的详细描述中,本发明的这些和其他目的、特征和优点将变得明显。附图的各种特征不是按比例的,因为图示是为了便于本领域技术人员结合具体实施方式理解本发明而清楚起见。在附图中:
26.图1示出了其中可以实现说明性实施例的方面的示例分布式系统的图形表示;
27.图2是其中可以实现说明性实施例的方面的示例系统的框图;
28.图3是根据实施例的所提出的分布式通信系统的示意图;以及
29.图4示出了根据另一实施例的系统。
具体实施方式
30.应当理解,附图仅是示意性的并且不是按比例绘制的。还应当理解的是,在整个附图中使用相同的附图标记来表示相同或相似的部件。
31.在本技术的上下文中,当本发明的实施例构成方法时,应当理解的是,这样的方法可以是用于由计算机执行的过程,即可以是计算机可实现的方法。因此,该方法的各个步骤可反映计算机程序的各个部分,例如。一个或多个算法的各个部分。
32.而且,在本技术的上下文中,系统可以是被适配成执行本发明的方法的一个或多个实施例的单个设备或分布式设备的集合。例如,系统可以是个人计算机(pc)、服务器或经由诸如局域网、互联网等的网络连接的pc和/或服务器的集合,以协作地执行本发明的方法的至少一个实施例。进一步地,组件可以是由一个或多个处理单元执行的集成流。
33.所提出的是用于控制经由分散式架构(即,互连的分布式网络)在应用与服务器之间递送的事务请求的概念。在这样的概念中,考虑关于如果并行处理则可能导致事务冲突的事务请求组的信息,控制事务请求的递送。基于先前或当前观察到的事务冲突,在运行时,事务请求的这种分组可以被定义、修改和更新。
34.例如,提出潜在冲突的事务请求可以被放置到组中,并且这可以基于观察到的事务冲突在运行时动态地完成。因此,所定义的组可以被用以确定是否应当防止并行处理多个接收(或拦截)的事务请求。例如,相同组内的多个事务请求可以按照顺序临时排队,直到先前的请求已被成功处理。以这种方式,实施例可以动态地节流事务请求行为,以便减少或避免冲突(并且由此寻求使成功的事务提交的吞吐量最大化)。
35.具体地,实施例可以结合采用集成中间件(例如,数据库管理系统、消息传送系统和分布式账本技术)的现有分布式通信架构来实现。
36.图1描绘了其中可以实现说明性实施例的方面的示例性分布式系统的图形表示。分布式系统100可以包括其中可以实现说明性实施例的方面的计算机网络。分布式系统100包含至少一个网络102,网络102是用于在分布式数据处理系统100内连接在一起的不同设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
37.在所描绘的示例中,第一服务器104和第二服务器106与存储单元108连接到网络102。此外,客户端110、112和114也连接到网络102。客户端110、112和114可以是边缘设备,例如,个人计算机、网络计算机、iot设备等。在所描绘的示例中,第一服务器104向客户端110、112和114提供诸如引导文件、操作系统映像和应用的数据。在所描绘的示例中,客户端110、112和114是第一服务器104的客户端。分布式处理系统100可以包括附加的服务器、客户端和未示出的其他设备。
38.在所描绘的示例中,分布式系统100是互联网,其中网络102表示使用传输控制协议/互联网协议(tcp/ip)协议组来彼此通信的网络和网关的全球集合。互联网的核心是主节点或主计算机之间的高速数据通信线路的主干,由数千个路由数据和消息的商业、政府、教育和其他计算机系统组成。当然,分布式系统100还可以被实现为包括多个不同类型的网络,诸如例如内联网、局域网(lan)、广域网(wan)等。如上所述,图1旨在作为示例,而不是作为对本发明的不同实施例的架构限制,并且因此,图1中所示的特定元件不应当被认为是关于其中可以实现本发明的说明性实施例的环境的限制。
39.图2是其中可以实现说明性实施例的方面的示例系统200的框图。系统200是计算机(诸如图1中的客户端110)的示例,其中可以定位实现本发明的说明性实施例的处理的计算机可用代码或指令。例如,所提出的实施例可以部分地在系统200的处理单元206中实现。
40.在所描绘的示例中,系统200采用包括北桥和存储器控制器中心(nb/mch)202以及南桥和输入/输出(i/o)控制器中心(sb/ich)204的中心架构。因此,另一提出的实施例可以在系统200的存储器控制器中心202中实现。处理单元206、主存储器208和图形处理器210连接到nb/mch 202。图形处理器210可以通过加速图形端口(agp)连接到nb/mc h202。
41.在所描绘的示例中,局域网(lan)适配器212连接到sb/ich 204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(rom)224、硬盘驱动器(hdd)226、cd-rom驱动器230、通用串行总线(usb)端口和其他通信端口232、以及pci/pcie设备234通过第一总线238和第二总线240连接到sb/ich 204。pci/pcie设备可以包括例如以太网适配器、插入卡和用于笔记本计算机的pc卡。pci使用卡总线控制器,而pcie不使用。rom 224可以是例如闪存基本输入/输出系统(bios)。
42.hdd 226和cd-rom驱动器230通过第二总线240连接到sb/ich 204。hdd 226和cd-rom驱动器230可以使用例如集成驱动电子设备(ide)或串行高级技术附件(sata)接口。超级i/o(sio)设备236可以连接到sb/ich 204。
43.操作系统运行在处理单元206上。操作系统协调并提供对图2中的系统200内的各个组件的控制。作为客户端,操作系统可以是可以商业获得的操作系统。面向对象的编程系统,诸如javatm编程系统,可以结合操作系统运行,并且提供从在系统200上执行的javatm
程序或应用程序对操作系统的调用。
44.作为服务器,系统200可以是例如运行高级交互执行操作系统或操作系统的eserver
tm system计算机系统。系统200可以是对称多处理器(smp)系统,其包括处理单元206中的多个处理器。备选地,可以采用单个处理器系统。
45.操作系统、编程系统和应用或程序的指令位于诸如hdd 226的存储设备上,并且可以被加载到主存储器208中以用于由处理单元206执行。类似地,根据实施例的一个或多个程序可以被适配成由存储设备和/或主存储器208存储。
46.本发明的说明性实施例的过程可以由处理单元206使用计算机可用程序代码来执行,计算机可用程序代码可以位于存储器中,例如主存储器208、rom 224或一个或多个外围设备226和230中。
47.总线系统(诸如图2所示的第一总线238或第二总线240)可以包括一个或多个总线。当然,总线系统可以使用在附接到结构或架构的不同组件或设备之间提供数据传送的任何类型的通信结构或架构来实现。通信单元(诸如图2的调制解调器222或网络适配器212)可以包括用于发送和接收数据的一个或多个设备。存储器可以是例如主存储器208、rom 224或诸如在图2中的nb/mch 202中找到的高速缓存。
48.本领域普通技术人员将理解,图1和图2中的硬件可以取决于实现而变化。除了或代替图1和图2中描绘的硬件,可以使用其他内部硬件或外围设备,例如快闪存储器、等效非易失性存储器或光盘驱动器等。此外,举例实施例的过程可以应用于除了前面提到的系统之外的多处理器数据处理系统,而不脱离本发明的范围。
49.此外,系统200可以采取多个不同数据处理系统中的任何数据处理系统的形式,包括客户端计算装置、服务器计算装置、平板计算机、膝上型计算机、电话或其他通信装置、个人数字助理(pda)等。在一些说明性示例中,系统200可以是配置有闪存的便携式计算设备,以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。因此,系统200可以本质上是任何已知的或以后开发的数据处理系统,而没有架构限制。
50.如上所述,所提出的实施例提供了一种用于经由分散式架构控制在应用与服务器之间递送的事务请求的方法和系统。通过进一步解释,现在将关于包括应用310和服务器320的分布式通信系统来描述提出的实施例。
51.参见图3,描绘了根据实施例的所提出的分布式通信系统的示意图。通信系统包括根据实施例的用于控制应用310和服务器320之间的事务请求的中间件系统300。更具体地,在图3的描述的实例中,中间件系统300被配置为拦截并且经由通信网络330(例如,互联网)控制在客户端应用310和mvcc受限服务器320之间递送事务请求。
52.中间件系统300包括中间件组件340。代理组件340被配置为在运行时基于分布式通信系统中的先前或当前观察到的事务冲突来定义事务请求的一个或多个冲突组。换言之,代理组件基于事务冲突的运行时历史来定义冲突组。
53.这里,代理组件340定义组,使得每个冲突组定义多个事务请求,如果并行递送,其将导致事务冲突。
54.在该示例中,代理组件340包括接收器组件350,其被配置为从远程组件(诸如另一
代理组件360)接收关于在通信系统中观察到的事务冲突和/或事务请求的进一步冲突组的信息。代理组件340还采用该接收的信息来定义冲突组。由此,在图3的所示示例中,代理组件被配置为在运行时还基于接收到的信息来定义事务请求的冲突组。
55.代理组件340还包括发布器组件355,发布器组件355被配置为(经由网络330)向一个或多个远程组件(诸如另一代理器360和/或远程定位的数据库370)传送关于所定义的冲突组的信息。以这种方式,代理组件340被配置为共享关于冲突组的信息,从而潜在地使多个代理组件能够协作(例如,组合或汇聚信息)以更新和/或改善冲突组定义。
56.基于冲突组,代理组件340被配置为控制被拦截的事务请求的递送。更具体地,响应于标识多个被拦截的事务请求是相同冲突组的成员,代理组件340对多个事务请求排队,以便防止多个事务请求的并行递送。例如,代理组件340可以按先进先出顺序排列多个事务请求。以这种方式,在第一事务请求和第二事务请求是相同冲突组的成员的情况下,代理组件340可以延迟第一事务请求并防止其与第二事务请求并行提交。
57.此外,在该示例中,响应于标识由递送事务请求导致的事务冲突,代理组件340被配置为基于标识的事务冲突来重新定义冲突组。进一步,代理组件340基于新重新定义的冲突组来控制事务请求的重新递送,而不是中止事务请求。
58.通过对所提议的概念的进一步解释和说明,我们现在将考虑所提议的实施例可以如何改变常规事务请求递送机制。用于向区块链网络提交事务请求的常规机制通常需要调用以下多步骤过程:
59.(i)创建事务请求——这是数据结构,其包括要在块链网络中调用的函数和要提供给所述函数的参量/参数。
60.(ii)向“批注”的区块链网络中的每个节点发送事务请求——每个节点的智能合同将模拟该功能的处理,并且生成读/写集合(rwset)。该rw集合包含针对区块链网络中的每个节点的账本数据存储库的相关部分的当前状态和所提出的未来状态。rw集它实际上不在这个阶段应用,而是返回到请求客户。
61.(iii)客户端将从每个节点接收的rw集组合在一起,并且发送到区块链的

订购服务’。该服务将执行以下步骤:
62.a)检查所有rw集(或足以满足批注策略的rw集)具有相同的rw集。在这个阶段,如果它们不同,那么可以拒绝事务请求,这是因为一个节点可以具有与其他节点不同的读取状态,显示该特定状态处于在网络中改变的过程中(mvcc故障);
63.b)如果步骤a)通过,订购服务创建

区块’,其包含一批一个或多个事务。对该区块进行密码签名并发送至网络中的每个对等端;
64.c)在接收到区块时,每个对等体尝试将每个事务应用到其账本。对于区块中的每个事务,其检查rw集的“读取”部分与其账本的当前读取状态匹配。如果它们不匹配,那么作为mvcc失败,拒绝事务。应注意,订购服务的动作确保网络中的所有节点将以相同的方式接受或拒绝事务;以及
65.d)假设没有发生mvcc故障,那么事务目前已经提交给区块链网络。
66.以上详述的步骤(iii)是异步的。如果当事务最终提交到账本时客户端想要被通知,则客户端将监听器注册到(多个)对等端,以便接收事件的通知。
67.当考虑如何根据所提出的实施例修改上述传统方法时,应注意,中间件组件(例
如,集成流)被放置在客户端应用与区块链网络之间。这被配置为作为新的代理组件(其可被认为是

提交者’节点)操作,该组件以最小化或潜在地消除mvcc失败的方式控制将事务请求提交至区块链。
68.代理组件维护关于不同的冲突组集的信息,其中,如果组内的每个事务请求与相同组内的任何其他事务请求同时提交,则该组内的每个事务请求可能导致mvcc失败。基于这些冲突组,如果相同组的多于一个事务请求立即到达(例如,同时或在预定时间窗口内),则代理组件延迟这些事务请求(例如,通过对事务请求排队),直到它们可以被提交而不引起mvcc冲突。冲突组可以独立于彼此操作,从而允许并行处理来自不同组的事务请求。
69.作为进一步的示例,根据实施例的代理组件可以被配置为如下操作:
70.‑“
冲突组定义”属性被配置有在运行时确定每个事务请求应作为其成员的组的表达式。这可以是使用事务请求的内容来得到匹配冲突组名称的字符串值的表达式。
[0071]-如果在运行时确定来自不同组的提议正在引起mvcc故障,则可以设置标志以允许代理组件动态地组合组。
[0072]
在运行时,代理组件可以实现以下过程:
[0073]-对于到达代理组件的每个事务请求,评估冲突组定义表达式,以确定应当将其放置在哪个命名的冲突组中。如果该名称的冲突组不存在,则创建它。
[0074]-将事务请求放置到与该冲突组相关联的fifo队列内。
[0075]-然后,每个冲突组可以实现以下过程(并行并且独立于每个其他冲突组)。
[0076]-如果队列不为空,则从队列的头部移除事务请求。
[0077]-如以上详述的,执行常规区块链提交处理中的步骤1和步骤2。
[0078]-向区块链对等端注册提交监听器。
[0079]-进行区块链提交过程中的步骤3。
[0080]-等待提交事件。
[0081]-一旦已经接收到成功的提交事件,该过程就可从开头开始(处理组队列上的下一建议)。
[0082]-如果提交事件发信号通知mvcc失败,则确定失败的原因,并且如果是mvcc失败,则确定哪个其他事务请求引起冲突,以及该其他事务请求属于哪个组。可以从区块元数据中提取该信息。
[0083]-如果它是不同的组,将这两个组合并成一个组,并且将这个事务请求移动到新合并的组以用于处理。还发布包含该组合并的信息的消息,使得其他代理组件实例可以选择作用于该信息。
[0084]-否则,通过重复该处理直到其被成功处理,来重复提交失败的事务请求(这是因为如果存在其他客户端应用直接提交事务,而不是经由该集成流,mvcc失败仍可能发生)。
[0085]
实施例可以包括计算机系统70,计算机系统70可以形成图4所示的联网系统7的一部分。例如,根据实施例的被配置为控制应用与服务器之间的事务请求的代理组件可以在计算机系统70中实现(例如,作为处理单元71)。计算机系统/服务器70的组件可以包括但不限于一个或多个处理装置,例如包括处理器或处理单元71、系统存储器74和将不同系统组件(包括系统存储器74)耦合到处理单元71的总线90。
[0086]
系统存储器74可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取
存储器(ram)75和/或高速缓存存储器76。计算机系统/服务器70还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。在这样的情况下,每个可以通过一个或多个数据介质接口连接到总线90。存储器74可以包括至少一个程序产品,该程序产品具有被配置为执行所提出的实施例的功能的一组(例如,至少一个)程序模块。例如,存储器74可以包括计算机程序产品,该计算机程序产品具有可以由处理单元71可执行的程序,以使输入/输出(i/o)接口72执行根据提出的实施例的用于控制应用和服务器之间的事务请求的方法。具有一组(至少)程序模块79的程序/实用程序78可以存储在存储器74中。程序模块79通常执行所提出的实施例的功能和/或方法以用于对存储器的部分写入操作。
[0087]
计算机系统/服务器70还可以与一个或多个外部设备80(例如键盘、定点设备、显示器85等)通信;和/或使计算机系统/服务器70能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(i/o)接口72发生。此外,计算机系统/服务器70可以经由网络适配器73与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)的一个或多个网络通信(例如,以向分布式网络的边缘设备传送dfwf的确定的最佳值)。
[0088]
在本技术的上下文中,当本发明的实施例构成方法时,应当理解的是,这样的方法是用于由计算机执行的过程,即,是一种计算机可实现的方法。因此,该方法的步骤反映计算机程序的各个部分,例如。一个或多个算法的部分。
[0089]
提前理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
[0090]
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与服务的提供商的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0091]
特性如下:
[0092]
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
[0093]
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和pda)的使用。
[0094]
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
[0095]
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数目购买。
[0096]
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
[0097]
服务模型如下:
[0098]
软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
[0099]
平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
[0100]
基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
[0101]
部署模型如下:
[0102]
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
[0103]
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
[0104]
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
[0105]
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
[0106]
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
[0107]
本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
[0108]
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为瞬态信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
[0109]
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域
网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0110]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c++等)和过程程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
[0111]
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各个框的组合,都可以由计算机可读程序指令实现。
[0112]
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个框中规定的功能/动作的方面的指令的制造品。
[0113]
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个框中规定的功能/动作。
[0114]
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
[0115]
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的
或者限于所公开的实施方式。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1