
使用上下文特定关注生成错误事件描述
背景技术:1.本公开一般涉及基于机器学习的错误事件描述的生成。本公开尤其涉及支持集成开发环境(ide)的基于机器学习的错误事件描述的生成。
2.当前的技术聊天机器人支持可以帮助配置用于普通it任务的服务,诸如账户供应/取消供应、密码帮助、连接到问题解决系统、创建支持票据以将问题推迟到人工代理等。
技术实现要素:3.以下呈现发明内容以提供对本公开的一个或多个实施例的基本理解。本发明内容并不旨在标识关键或重要元素或者划定特定实施例的任何范围或权利要求的任何范围。其唯一的目的是以简化的形式呈现概念,作为稍后呈现的更详细描述的序言。在本文所描述的一个或多个实施例中,设备、系统、计算机实现的方法、装置和/或计算机程序产品使得能够生成错误事件描述。
4.本发明的各方面公开了与通过以下操作来生成错误事件描述相关联的方法、系统和计算机可读介质:接收与错误事件相关联的一组错误消息;生成该组错误消息的至少一行的令牌化;根据该令牌化的上下文将该令牌化提供给关注(attention)头;将该关注头的输出作为输入提供给生成模型;根据该输出来生成该错误事件的描述;以及将该描述提供给用户。
附图说明
5.通过在附图中对本公开的一些实施例进行更详细的描述,本公开的上述和其他目的、特征和优点将变得更加明显,其中,在本公开的实施例中相同的参考标号通常指代相同的部件。
6.图1提供了根据本发明的实施例的计算环境的示意图。
7.图2提供了描绘根据本发明的实施例的到对应关注头的数据令牌化和分派的流程图。
8.图3提供了根据本发明的实施例的基于行的关注的功能框图。
9.图4提供了根据本发明的实施例的基于错误的关注的功能框图。
10.图5提供了根据本发明的实施例的基于变量的关注的功能框图。
11.图6提供了根据本发明的实施例的组合的关注头和生成语言模型的框图。
12.图7提供了示出根据本发明实施例的操作序列的流程图。
13.图8示出了根据本发明的实施例的云计算环境。
14.图9示出了根据本发明的实施例的抽象模型层。
具体实施方式
15.将参照附图更详细地描述一些实施例,在附图中已经示出了本公开的实施例。然而,本公开可以以各种方式实现,并且因此不应被解释为限于本文公开的实施例。
16.对于需要深度技术技能的复杂任务,当前的聊天机器人应用程序的能力与用户需求之间存在差距。所公开的实施例提供使用会话ai来理解问题、执行智能搜索以寻找解决方案、以及在会话线程中建议适当的解决方案的聊天机器人。当不能找到解决方案时,聊天机器人将问题记录为技能差距,以备日后训练,并将该问题推迟到人工代理以关闭循环。
17.在解决编程错误时,技术专家花费其大部分时间来理解错误消息的栈跟踪。所公开的实施例聚焦于通过帮助技术专业人员理解错误消息的症结来加速该过程。所公开的方法提供集成到开发环境中的聊天机器人,该聊天机器人主动地扫描错误事件。当发生错误事件时,聊天机器人使用上下文特定的关注机制解析错误消息的栈跟踪,以收集细节,诸如负责错误发生的程序代码的行号、所涉及的变量和错误描述。预先训练的、生成的、基于语言模型的全局关注头将来自上下文特定的关注头的这些细节组合以生成对错误消息的用户友好的会话描述,以及来自其知识库的帮助加快解决编程错误的其他信息。
18.编程错误是应用程序开发过程的组成部分。所公开的实施例通过使错误事件的解释自动化并概述利用会话对话解决错误所需的步骤来加快错误解决过程。这有助于加速应用开发时间线。
19.本发明的各方面一般涉及聊天机器人系统,尤其涉及在集成开发环境中具有编码错误的会话辅助。在实施例中,聊天机器人系统从用户设备接收错误指示和错误堆栈跟踪消息,从堆栈跟踪确定错误上下文,并返回生成的会话输出,包括错误上下文以及与从上下文识别的错误相关的附加信息。根据本发明的方面,聊天机器人系统自动消除堆栈跟踪的无关部分,从堆栈跟踪的行中提取相关数据,检索与识别的错误关联的存储数据并为用户生成会话响应。聊天机器人系统从用户接收关于输出的跟进问题,并持续建立其关于潜在错误和对那些错误的有用响应的知识存储器。以这种方式,本发明的实现方式学习并连续地调整其相关知识存储器,使得聊天机器人系统返回帮助用户快速解决和消除编码错误的回答。
20.根据本发明的方面,提供了一种自动生成与当前编码错误相关的会话输出的方法,该方法包括:接收包括错误的多行堆栈跟踪的错误消息,解析多行消息并消除消息的无关行,令牌化剩余行以确定每个剩余行的上下文,例如,行号、变量、错误描述,将针对每个剩余行的令牌化传递到特定于上下文的关注头以供评估,将多个关注头的组合输出传递到全局语言生成器,以及将所生成的全局语言生成器的会话输出传递到系统的用户。
21.本发明的各方面提供聊天机器人系统技术领域的改进。传统的聊天机器人系统在决定将什么回答提供给用户提出的问题时利用静态模型。在许多情况下,用户事先没有数据告诉他们什么是相关的基于错误的问题。本发明的实现方式解析系统错误消息,确定用于消息的相关部分的上下文,并且生成与所识别的错误上下文相关的响应,包括与所识别的错误相关的并且从系统的知识储存器检索的建议的下一步骤。这提供了对于用户识别编码错误的位置和性质以及提供关于如何解决错误的有用信息的改进。
22.本发明的各方面还提供对计算机功能的改进。特别地,本发明的实现方式涉及对聊天机器人系统操作方式的具体改进,具体改进体现在解析堆栈跟踪消息以及使用上下文特定关注头评估消息的行,以提取与生成会话输出有关的数据,以帮助用户识别和解决当前编码错误。在实施例中,系统确定堆栈跟踪的每个相关行的上下文,并且根据该行的所识别的上下文将每个行传递到特定关注头。单独的关注头从堆栈跟踪行中提取特定数据,并
将组合的数据部分传递到生成模型,在生成模型中发生与当前错误相关并基于所提取的数据的会话消息的生成。该方法将所生成的消息传递给用户,并且使用户参与与解决错误相关的进一步的对话。
23.作为概述,聊天机器人系统是在数据处理硬件上执行的人工智能应用,其生成与给定主题输入数据有关的自然语言回答。聊天机器人系统从不同源接收输入,包括通过网络的输入、电子文档库或其他数据、来自内容创建者的数据、来自一个或多个内容用户的信息以及来自其他可能的输入源的其他这样的输入。数据存储设备存储数据语料库。响应生成器根据经训练的模型和接收到的输入数据创建响应。例如,聊天机器人系统访问关于域或主题领域的知识主体(例如,用于特定编程语言的错误消息等),其中知识主体(知识库)可以多种配置来组织,诸如但不限于编程语言特定信息的结构化储存库,诸如已知的错误消息描述和对这种错误消息的典型解决方案。
24.在一个实施例中,系统的一个或多个组件可采用硬件和/或软件来解决本质上高度技术的问题(例如,接收与错误事件相关联的一组错误消息、生成该组错误消息的至少一行的令牌化、根据该令牌化的上下文将该令牌化提供给关注头、将该关注头的输出作为输入提供给生成模型、根据该输出生成该错误事件的描述、将该描述提供给用户等)。这些解决方案不是抽象的并且由于例如促进错误事件解决所需的处理能力而不能作为人类的一组精神行为来执行。进一步,所执行的处理中的一些可以由专用计算机执行,以用于执行与错误事件解决有关的定义的任务。例如,可以采用专用计算机来执行与解决错误事件等相关的任务。
25.图1提供了与实践所公开的发明相关联的示例性网络资源的示意图。本发明可以在处理指令流的任何公开的元件的处理器中实践。如图所示,联网的客户端设备110无线地连接到服务器子系统102。客户端设备104经由网络114无线地连接到服务器子系统102。客户端设备104和110包括错误事件评估程序(未示出)以及用于执行该程序的足够的计算资源(处理器、存储器、网络通信硬件)。客户端设备104和110表示ide的用户在ide中输入代码以及参与所公开的实施例的关于代码错误事件的聊天机器人的用户界面设备。如图1所示,服务器子系统102包括服务器计算机150。图1示出了根据本发明实施例的联网计算机系统1000内的服务器计算机150的部件的框图。应当理解,图1仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
26.服务器计算机150可以包括处理器154、存储器158、持久性存储器170、通信单元152、输入/输出(i/o)接口156和通信结构140。通信结构140提供高速缓存162、存储器158、持久性存储器170、通信单元152和输入/输出(i/o)接口156之间的通信。通信结构140可用设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构140可用一个或多个总线实现。
27.存储器158和永久性存储器170是计算机可读存储介质。在该实施例中,存储器158包括随机存取存储器(ram)160。通常,存储器158可包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存162是快速存储器,其通过保存来自存储器158的最近访问的数据和最近访问的数据附近的数据来增强处理器154的性能。
28.将用于实施本发明的各实施例的程序指令和数据(例如,错误事件描述生成程序175)存储在持久性存储器170中以供服务器计算机150的相应处理器154中的一个或多个经由高速缓存162执行和/或访问。在该实施例中,持久性存储器170包括磁性硬盘驱动器。作为磁硬盘驱动器的替代或补充,持久性存储器170可包括固态硬盘驱动器、半导体存储设备、只读存储器(rom)、可擦可编程只读存储器(eprom)、闪存、或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
29.持久性存储器170所使用的介质也可以是可移除的。例如,可移动硬盘驱动器可以用于持久性存储器170。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便转移到另一计算机可读存储介质(其也是持久性存储器170的一部分)上。
30.在这些示例中,通信单元152提供与其他数据处理系统或设备的通信,包括客户端计算设备104和110的资源。在这些示例中,通信单元152包括一个或多个网络接口卡。通信单元152可通过使用物理和无线通信链路中的任一者或两者提供通信。软件分发程序以及用于实现本发明的其他程序和数据可以通过通信单元152下载到服务器计算机150的永久性存储器170中。
31.i/o接口156允许与可连接到服务器计算机150的其他设备进行数据的输入和输出。例如,(多个)i/o接口156可以提供到(多个)外部设备190的连接,所述外部设备190诸如键盘、小键盘、触摸屏、麦克风、数码相机和/或一些其他合适的输入设备。(一个或多个)外部设备190还可包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据(例如,服务器计算机150上的错误事件描述生成程序175)可存储在这种便携式计算机可读存储介质上并且可经由i/o接口156加载到持久性存储器170上。i/o接口156还连接到显示器180。
32.显示器180提供向用户显示数据的机制,并且可以是例如计算机监视器。显示器180还可用作触摸屏,诸如平板计算机的显示器,以向用户提供输入的代码的显示和与所公开的发明的聊天机器人的进行中的代码错误对话。
33.参见图2,在实施例中,用户在框210启动聊天机器人系统和方法的使用。在启动之后,该系统和方法开始扫描用户的ide并检测具有相关联的堆栈跟踪错误消息的错误事件。该方法和系统接收错误事件的堆栈跟踪。在该实施例中,在框220,该方法解析堆栈跟踪并单独地考虑消息的每一行。对于每一行,所述方法在框230处令牌化所述行,例如通过将所述行拆分成用于例如英语、法语或德语的语言的单独词语或单独字符。
34.在此实施例中,在框240处,所述方法从进一步考虑和处理中过滤堆栈跟踪行并丢弃不引用行号、变量或错误事件描述的行。类似地,在框250,该方法进一步从进一步考虑中过滤堆栈跟踪行并丢弃引用错误事件评估器的范围之外的行号的行,诸如与来自导入库的代码有关的行。在框260,该方法对剩余行的令牌应用令牌频率计数以确定相关上下文,例如,剩余行的行、变量或错误描述(错误)。
35.然后将这些剩余行中的每一个的令牌化传递至该系统的适当的关注头用于进一步处理——包含在该堆栈跟踪行的令牌化中的特定行、变量、以及错误描述的标识。在框270,具有指示相关行号的存在的频率计数的那些堆栈跟踪行被传递到行关注头。在框280,具有指示变量的频率计数的那些被传递至变量关注头,以及在框290,具有指示错误代码或其他错误描述的频率计数的那些被传递至错误关注头。
36.在一个实施例中,该方法进一步使用一个或多个加权线性变换函数处理堆栈跟踪行以将原始行令牌化变换成具有共同维度的向量。然后将从线性变换函数输出的向量传递给下文描述的上下文特定关注。在一个实施例中,由于线性变换函数,向量具有一致的维度。
37.图3示出了行关注头的功能。在实施例中,关注头的特定架构的使用受益于在输入中包括关于堆栈跟踪行的相应令牌的相对定位的信息。为此,该方法根据不同维度的位置函数(诸如使用正弦和余弦函数来定义输入令牌化的每个元素的位置数据)定义位置信息,诸如用于堆栈跟踪行的令牌嵌入的维度的位置信息。在实施例中,每个上下文特定的关注头包括编码器-解码器架构。如图所示,该方法将该堆栈跟踪行令牌化lt与所确定的位置信息pe一起用于该令牌化,传递至编码器310和解码器320、行关注头300的模块中的每一者。编码器310使用多头关注312和前馈逻辑314,作为堆叠6次的一个框,以从堆栈跟踪经历行令牌化。在解码器320侧,设置类似于编码器310,添加行特定关注框322,其寻找提取行编号信息作为解码器输出。该方法然后将基于行的关注输出和编码器310输出作为输入组合到具有多头关注324和前馈逻辑326的类似六框结构,如编码器310所使用的那样。
38.在实施方式中,编码器由相同层(诸如,六个相同的层)的堆栈构成。每层具有多头自关注头312(子层)和位置完全连接的前馈网络314(子层)。编码器还包括围绕多头关注和前馈网络中的每一个的连接。每一个子层的输出被归一化。
39.在本实施例中,解码器也由六个相同层的堆栈构成。除了上述两个子层之外,每个解码器层还包括上下文特定关注头。解码器输出也被归一化。编码器和解码器中的每一个接收上下文相关令牌化的相同嵌入。
40.在实施例中,关注头包括句子的单词之间的缩放的点积关注函数,以量化它们之间的关系。此外,关注头并行地使用多个关注函数并且因此是多头关注。这允许模型在不同的位置联合地参加不同的表示子空间。
41.在实施例中,所述前馈网络包括神经网络,所述神经网络应用两个线性变换并且在其间具有整流线性单元(relu)激活以注入非线性。
42.在实施例中,来自解码器的输出传递到线性变换函数linear,其生成用于softmax函数sm的输入。softmax函数sm的输出传递到全局关注头和生成语言模型。
43.在实施例中,该线性变换函数包括相同的函数和函数权重,这些函数和函数权重用于将来自该输入令牌化的上下文嵌入变换成具有所希望的维度的向量。在此,线性变换将解码器输出变换成具有相同维度的向量。
44.在实施例中,softmax函数根据系统和方法的基础语料库,将线性变换函数的向量输出转到下一令牌预测的归一化概率分布。
45.图4示出可变关注头的功能。在实施例中,关注头的特定架构的使用受益于在输入中包括关于堆栈跟踪行的相应令牌的相对定位的信息。为此,该方法根据不同维度的位置函数(诸如使用正弦和余弦函数来定义输入令牌化的每个元素的位置数据)定义位置信息,诸如用于堆栈跟踪行的令牌嵌入的维度的位置信息。如图所示,该方法将该堆栈跟踪行令牌化lt与用于令牌化的所确定的位置信息pe一起传送至编码器410和解码器420、可变关注头400的模块中的每一者。编码器410使用多头关注412和前馈逻辑414,作为一个框重复并堆叠6次,以从堆栈跟踪经历变量令牌化。在解码器420侧,该设置与编码器410相似,增加了
变量特定的关注框422,关注框422看起来提取变量信息作为解码器输出。该方法然后将基于变量的关注输出和编码器410输出作为输入组合到与编码器410所使用的多头关注424和前馈逻辑426类似的六框结构。
46.在实施方式中,编码器由相同层(诸如,六个相同的层)的堆栈构成。每层具有多头自关注头412(子层)和位置完全连接的前馈网络414(子层)。编码器还包括围绕多头关注和前馈网络中的每一个的连接。每一子层的输出由归一化函数n归一化。
47.在该实施例中,作为非限制性实例,解码器还由六个相同层的堆栈构成。除了上述两个子层之外,每个解码器层还包括上下文特定关注头。解码器输出也被归一化。解码器还包括围绕上下文特定关注、多头关注和前馈网络至归一化函数中的每一个的连接。编码器和解码器中的每一个接收上下文相关令牌化的相同嵌入。
48.在实施例中,来自解码器的输出传递到线性变换函数linear,其生成用于softmax函数sm的输入。softmax函数sm的输出传递到全局关注头和生成语言模型。
49.图5示出了错误关注头的功能。在实施例中,关注头的特定架构的使用受益于在输入中包括关于堆栈跟踪行的相应令牌的相对定位的信息。为此,该方法根据不同维度的位置函数(诸如使用正弦和余弦函数来定义输入令牌化的每个元素的位置数据)定义位置信息,诸如用于堆栈跟踪行的令牌嵌入的维度的位置信息。如图所示,该方法将该堆栈跟踪错误令牌化et与用于令牌化的所确定的位置信息pe一起传送给编码器510和解码器520、错误关注头500的模块中的每一个。编码器510使用多头关注512和前馈逻辑514,作为一个框重复并堆叠6次,以从堆栈跟踪经历错误令牌化。在解码器320侧,该设置与编码器510相似,增加了错误特定关注框522,用于提取错误描述信息作为解码器输出。该方法然后将基于错误的关注输出和编码器510输出作为输入组合到与编码器510所使用的多头关注524和前馈逻辑526类似的六框结构。
50.在实施方式中,编码器由相同层(诸如,六个相同的层)的堆栈构成。每层具有多头自关注头512(子层)和位置完全连接的前馈网络514(子层)。编码器还包括围绕多头关注和前馈网络中的每一个的连接。通过归一化函数n对每一个子层的输出进行归一化。
51.在该实施例中,作为非限制性示例,解码器还由六个相同层的堆栈构成。除了上述两个子层之外,每个解码器层还包括上下文特定关注头。解码器输出也被归一化。解码器还包括围绕上下文特定关注、多头关注和前馈网络至归一化函数中的每一个的连接。编码器和解码器中的每一个接收上下文相关令牌化的相同嵌入。
52.在实施例中,来自解码器的输出传递到线性变换函数linear,其生成用于softmax函数sm的输入。softmax函数sm的输出传递到全局关注头和生成语言模型。
53.图6示出了全局关注头600,全局关注头600接收并组合行、变量和错误关注头的输出。全局关注头利用训练的生成模型(诸如gpt-3模型)基于接收的行、变量和错误输出来生成会话输出。如图所示,每个上下文特定的关注610、620、630提供特定的输出615、625和635。这三个相应的输出被组合在输入向量嵌入640中,该方法将该输入向量嵌入640作为输入提供给生成模型650。生成模型650基于上下文相关输入输出许多潜在会话响应。该方法将输出集合和每个输出的对应生成模型置信水平传递到softmax函数660,softmax函数660输出来自模型的知识语料库的词语的概率,该模型的知识语料库用于为系统用户形成会话语言消息。在一实施例中,该方法随后响应于该错误事件向用户提供具有最高置信度得分
的输出。在一实施例中,该方法将生成的输出传递给训练的问答系统(未示出),用于生成与所识别的错误问题相关的特定答案。在该实施例中,训练问答系统包括提供关于不同编程语言的已知错误的系统训练,使得经训练的模型可以检索与所生成的响应中的所识别的错误相关的数据。
54.在实施例中,用户响应于所生成的错误描述和所建议的前进路径而参与聊天机器人程序。在该实施例中,该方法处理用户对所生成的错误描述的响应并且使用从用户响应的处理中嵌入的输出来更新生成模型。
55.图7提供了示出与本公开的实践相关联的示例性活动的流程图700。在编程开始之后,在框710,错误事件描述生成器程序175接收错误事件数据,诸如用于ide错误事件的堆栈跟踪数据。该程序将错误数据解析成单独的行,并且过滤这些行,从而丢弃与行号、变量或错误描述无关的那些行,以及丢弃与在程序的范围之外的行相关的那些行,例如,与所导入的代码库相关联的行。
56.在框720,该方法针对每个剩余行生成令牌化嵌入向量。该方法对令牌化执行频率计数以确定每一行的上下文,例如行、变量或错误。
57.在框730,该方法将嵌入的令牌化传递至上下文相关的关注头-行到行等,以供进一步处理。关注头从输入嵌入中提取特定上下文细节作为其输出。例如,行5、变量a[5]、或错误描述list_index_out_of_range。
[0058]
在框740,该方法将关注头的输出提供给生成模型,诸如gpt-3模型。生成语言模型基于来自特定关注头的上下文输出来生成会话输出响应。在实施例中,该方法向生成语言模型提供与单个堆栈跟踪输入关联的多个关注头输出,生成语言模型基于所提供的输入的集合产生会话输出。
[0059]
在框750,该方法将所生成的响应与当前错误事件相关联地提供给用户。在实施例中,该方法将生成的响应传递到问答系统,问答系统生成特定于所生成的输出的所识别的错误的会话响应。在该实施例中,所生成的问答输出向用户提供解决当前错误所要采取的步骤的指示。
[0060]
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
[0061]
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0062]
特性如下:
[0063]
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与者的人类交互。
[0064]
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和pda)的使用。
[0065]
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消
费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
[0066]
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
[0067]
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
[0068]
服务模型如下:
[0069]
软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
[0070]
平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
[0071]
基础架构即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述任意软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
[0072]
部署模型如下:
[0073]
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
[0074]
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
[0075]
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
[0076]
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
[0077]
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
[0078]
现在参见图8,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件的服务,作为云消费者不需要为其维护本地计算设备上的资源。应
当理解,图8中所示的计算设备54a-n的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
[0079]
现在参见图9,示出了由云计算环境50(图8)提供的一组功能抽象层。应当事先理解,图9中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
[0080]
硬件和软件层60包括硬件和软件组件。硬件组件的实例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
[0081]
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
[0082]
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(sla)规划和履行85提供根据sla预期未来需求的云计算资源的预安排和采购。
[0083]
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及错误事件描述生成程序175。
[0084]
本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。本发明可以在处理指令流的任何系统(单个或并行)中有益地实践。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
[0085]
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质或计算机可读存储装置本身不应被解释为暂时性信号,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线传输的电信号。
[0086]
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火
墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0087]
用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,所述程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c++等)和过程程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
[0088]
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0089]
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指引计算机、可编程数据处理装置、和/或其他设备以特定方式工作,使得具有共同存储在其中的指令的计算机可读存储介质包括包含实现流程图和/或框图的或多个框中所指定的功能/动作的各方面的指令的制品。
[0090]
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
[0091]
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要关注的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
[0092]
说明书中对“一个实施方式”、“实施方式”、“示例性实施方式”等的引用表示所描述的实施方式可包括特定的特征、结构或特性,但是每个实施方式可能不一定包括特定的
特征、结构或特性。此外,这样的短语不一定指相同的实施方式。进一步,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例(无论是否明确描述)影响这样的特征、结构或特性在本领域技术人员的知识范围内。
[0093]
本文中使用的术语仅用于描述具体实施方式的目的,而并非旨在限制本发明。如本文所使用的,除非上下文另有明确指示,否则单数形式“一个”、“一种”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括”和/或“包含”时,其指定所述特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。
[0094]
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。在此所使用的术语被选择来最好地解释实施例的原理、实际应用、或优于市场中所发现的技术的技术改进、或使得本领域普通技术人员能够理解在此所披露的实施例。