用于日志流内包含的数据的字段提取的系统和方法与流程

文档序号:12802174阅读:254来源:国知局
用于日志流内包含的数据的字段提取的系统和方法与流程

本发明通常涉及数据流分析的领域,更具体地,涉及从传入的日志流提取相关数据。



背景技术:

安全日志流以各种形式和大小出现。安全日志流以及每个流内包含的信息的结构从设备到设备大幅变化。由于日志流的性质,解析出所希望字段的方法可以使用正则表达式(regex)。尽管使用正则表达式(regex)比其他的字符串更加方法更有效,但它仍有缺点并且可能执行安全日志流的这种实时分析不够快。

在基于正则表达式的解析方法中,用户人工地制作正则表达式,以匹配不同种类的安全日志流中的不同的有用信息块。当日志格式发生变化或者新的日志类型被添加时,用户将不得不修改或更新现有的正则表达式,或者添加包含新的正则表达式的新代码以支持该变化或添加。此外,解析效率可能取决于制作该正则表达式的用户的技术技能。关联并理解安全日志流内包含的消息对于任何网络的安全来说都是至关重要的。

上述关联应该被实时完成,否则就违背了分析安全威胁和漏洞并降低由它们引起的对公司的潜在危害的目的。在尽量不向风险检测的准确性妥协的同时,这种实时快捷的方法需要能够迎合从网络中存在的大多数(如不是所有)设备生成的日志流。



技术实现要素:

另外的方面和/或优点将在下文中被部分地阐述并且将通过下文变得明显,或者可能通过本发明的实践被学习。

本发明的实施例公开了一种方法、计算机程序产品和系统,其用于通过执行训练阶段来分析训练安全日志流以填充数据库。训练安全日志流被服务器接收,以使得服务器提取该训练安全流内包含的词。符号被用来代替每个被提取的词以形成符号串,并且对该符号串进行n-gram扫描以生成与该符号串有关的统计数据。令牌从符号串中被提取,其中,令牌是由训练安全日志流内的符号表示的词、短语或字母数字序列。符号串被它们表示的词取代,以允许训练安全日志流内的实际令牌短语的识别。对所识别的令牌短语进行扫描以获取与那些短语有关的扫描数据。一旦令牌、位置信息和扫描数据被知晓,它们就被存储在数据库内以允许安全日志流被实时分析。。

附图说明

通过结合附图的随后描述,本发明的某些示例性实施例的上述及其他方面、特征和优点将变得更加明显,其中:

图1是根据本发明的实施例说明用于提取日志流内包含的信息的系统的功能框图。

图2是根据本发明的实施例描述用于图1的日志模式指纹数据库的训练阶段的操作步骤的流程图。

图3是根据本发明的实施例描述日志流的实时分析的操作步骤的流程图。

图4是根据本发明的实施例的用于提取图1的日志流内包含的信息的系统组件的框图。

图5描述了根据本发明的实施例的云计算环境。

图6描述了根据本发明的实施例的抽象模型层。

具体实施方式

提供下面参考附图的描述以帮助全面理解由权利要求及其等效物所定义的本发明的示例性实施例。它包括各种具体细节以帮助理解,但是这些细节将被视为仅仅是示例性的。因此,本领域普通技术人员将意识到,在不背离本发明的范围和精神的前提下,可以对本文所述的实施例做出各种变化和修改。另外,为了清楚和简明起见,可以省略熟知的功能和结构的描述。

下文和权利要求书中所采用的术语和词语不被限制于字面含义,而是仅仅被用来实现对本发明的清楚一致的理解。因此,对本领域技术人员应当显而易见的是,本发明的示例性实施例的随后描述仅为了说明目的而提供,而不是为了限制由所附权利要求及其等效物定义的本发明的目的。

除非上下文清楚地另有所指,应当理解,单数形式“一个”、“一种”和“该”包括复数形式。因此,例如,除非上下文清楚地另有所指,提及“一个组件表面”包括提及一个或多个这类表面。

现在将详细地参考本发明的若干实施例,其示例在附图中被说明,其中在各处类似的附图标记指示类似的元件。

本发明的实施例通常旨在提取包含在安全日志流内的信息。日志模式指纹数据库是一个数据存储,其存储令牌和与令牌相关的对应的位置信息。通过确定并存储具有一个训练阶段以允许日志流内包含的令牌和位置信息,来建立日志模式指纹数据库。日志模式指纹数据库一旦被建立,它就允许安全日志流被实时分析。通过拷贝或复制传入的安全日志流,安全日志流被捕获,以使得它们能被扫描并且安全日志流内包含的令牌被提取,并且与日志模式指纹数据库内包含的信息进行比较。

日志模式指纹数据库允许在识别和定义用于计算设备的新模式中减少冗余度,因为这些计算设备可能正使用类似的日志来定义如验证、服务状态等的公共事件。根据本发明的实施例对安全日志流进行处理使得许多种计算设备日志能够被处理,而与设备类型、日志格式和源无关。现在,单个模式指纹能够被多个设备共享,并且因此支持越来越多的设备能够变得更容易并且更快。

图1是根据本发明的实施例说明了用于提取安全日志流100内包含的信息的系统的功能框图。用于提取安全日志流100内包含的信息的系统允许从连接到网络的计算设备捕获安全日志流,并识别其中包含的信息。用于提取安全流100内包含的信息的系统包括通过网络120连接的计算设备110和服务器130。

网络120例如可以是局域网(lan)、如互联网之类的广域网(wan),或其二者的结合,并且可以包括有线、无线或光纤连接。通常,网络120可以是将支持服务器130和计算设备110之间通信的连接和协议的任意组合。

图1示出了多个计算设备110,但是本发明不限于多个计算设备110。本发明的实施例可以用单个计算设备110来实践,该计算设备110经由网络120连接到服务器130以允许服务器130捕获计算设备110的日志流。

计算设备110可以是能够连接到网络120的任意类型的计算设备,例如膝上型计算机、平板计算机、上网本计算机、个人计算机(pc)、桌面计算机、智能电话,或支持本发明的一个或多个实施例所需的功能的任何可编程电子设备。计算设备110可以是任何类型的计算设备——只要当计算设备110正被连接到网络120或者进行致使安全日志流被生成的其他操作时安全日志流在网络120内被生成即可。如关于图4在下文中被进一步详细图示并描述的,计算设备110可以包括内部或外部硬件组件。在其他实施例中,如图5和图6中所示,计算设备110可以在云计算环境中操作。

服务器130包括日志模式指纹数据库132,并且捕获来自计算设备110的安全日志流,例如,安全日志可以经由通过必要的分析模块对安全流进行拷贝、复制或重定向而被捕获,并且分析安全日志流以提取其中包含的信息,这基于安全日志流内被检测到的令牌的位置而被认为是相关的。服务器130包括日志模式指纹数据库132、词提取模块134、符号代替模块136、扫描模块138、统计模块140、令牌提取模块142、日志模式指纹创建模块144、日志流捕获模块146、令牌比较模块148和数据提取模块150。

为了生成将被存储在日志模式指纹数据库132中的必要数据,服务器130实施训练阶段,其中训练安全日志流被提供给服务器,以允许训练的日志流的每一行内包含的数据被识别。训练安全日志流是当已知计算设备110被连接到120时从已知计算设备110生成的安全日志流。训练安全日志流基于它们内包含的已知数据而被选择,其允许识别其中包含的不同令牌,这将在下面被进一步详细描述。下面将更详细地描述用于日志模式指纹数据库132的训练阶段。

词提取模块134提取在训练安全日志流内包含的词。在一个实施例中,词提取模块134将一个边界字符定义为这样的字符,其在连续词之间作为非字母数字字符而出现,即除a-z和0-9之外的任意字符。当边界字符在行中被检测到时,确定到达词位置的末尾并且记录所检测到的词的位置。例如,如果训练安全日志流的一行包含“anoutboundremoteaccesssa(spi=0xf868d359)between209.221.240.16and70.20.24.110(user=ptb2egb)hasbeendeleted”,则词提取模块134将从训练的安全日志流提取词如下:“[an][outbound][remote][access][sa][(][spi][=][0xf868d359][)][between][209][.][221][.][240][.][16][and][70][.][20][.][34][.][110][(][user][=][ptb2egb][)][has][been][deleted].”,其中,“[]”标注出所提取的词被词提取模块134分开。

符号代替模块136用不同的单个符号代替每个被提取的词。符号代替模块136在被提取词在训练安全日志流中被重复的情况下重复相同的单个符号。因此,上述示例中被提取的词[.]、[(]、[)]和[=]在被提取的词的每个位置处均由相同的单个符号代替,但是每个被提取的词具有重复的不同的单个符号。符号代替模块136创建表示训练安全日志流的每个被提取的词的符号串,并且每个符号与出现相关联词的数据流行中的位置相关联。

扫描模块138对由符号代替模块136创建的符号串执行n-gram扫描,其中,n是整数。n-gram扫描可以例如是4-gram扫描,这意味着扫描模块138一次扫描符号串四个符号。扫描模块138从符号串的第一符号开始并且4个一组地扫描符号,同时一次一个符号地将其方向向符号串的另一端推进。扫描模块138总是按组——即整数n的值——进行扫描,并且当其添加串中的下一个符号时,它从被扫描组中移除落在外面的符号,然后在新的符号被视为被扫描组的一部分时基于该整数值进行归组。扫描模块138针对n使用范围在2到9的整数值。扫描模块138以n-gram扫描来对符号串进行扫描,直到整个符号串都被扫描为止。扫描模块138生成统计数据,其包括诸如字符或符号在针对每个日志行使用n-gram扫描所识别的一些实体的位置处的出现频率之类的信息。如在下面更详细地描述的,扫描模块138对被恢复的训练的安全日志执行n-gram扫描,以获取该训练安全日志流内的被识别令牌的n-gram扫描。

统计模块140收集通过字符串的n-gram扫描所生成的统计数据。该统计数据包括信息,比如字符或符号在针对每个日志行使用n-gram扫描所识别的一些n个字母长度的实体的位置处的出现频率。基于针对每个日志行所收集的统计数据,针对每个日志行来计算估计哪个符号应该跟在给定安全日志流的特定n-gram序列后面的条件概率。对于每个日志行,每个字符的出现分布被收集并被用来产生频率分布数据,比如可以被用来产生直方图。统计模块140针对日志流中的每个日志行生成直方图数据。

每个日志流包括令牌流。令牌是形成无法进一步细分的日志的一部分的词、短语或字母数字序列。例如,用户名可以被视作令牌。日志流中常见的如“source”、“dst”之类的关键词是令牌。存在可变令牌,也存在不变令牌。

可变令牌包含跨日志流中若干日志项的变化内容,并且指出相同类型的信息但内容不同,并且可以在表示上有所变化。例如,可变令牌可以包括日期、时间戳、ip地址、url(统一资源定位符)和数字。不变令牌包含跨若干日志项的静态值,并且具有相同的含义而且在来自相同设备的日志流的不同实例上不会改变。例如,不变令牌可以包括“ipsec”、“outbound”、“remote”、“access”、“between”、“and”、“(spi=)”、“deleted”、“user=”、“connectionrefused”、“loginsucceededfor”等等。

令牌提取模块142接收针对训练安全日志流的每一行的直方图数据。令牌提取模块142实施前向n-gram扫描,其将从记录在直方图数据中的最高计数的符号串中的符号的位置开始被执行。日志行中包含的每个令牌由一个或多个符号组成。令牌提取模块142把令牌存储在哈希表中以确定用于每个令牌的令牌类型。如上所述,令牌的类型是可变令牌或不变令牌。

例如,如果第一日志行包括“userklogin”,那么令牌提取模块142一次一个地用短语“[var]”取代令牌,并且对产生的串、以及原始的未修改的串进行哈希处理。哈希表的结果内容如下:“userklogin”、“[var]klogin”、“user[var]login”、“userk[var]”。例如,当令牌提取模块142接收实时输入时——即非训练阶段——“userxlogin”。令牌提取模块142执行相同的取代并且在每次取代时检查哈希表:“[var]xlogin”不匹配,因此它也被添加到哈希表;“user[var]login”匹配,因此令牌提取模块142确定x实际上是变化部分,并且也确定它是之前消息中的k。因此,令牌提取模块142检测可变令牌位置以及它们的值。

日志模式指纹创建模块144用它们表示的被提取词取代单个符号,并且词、短语、数字之类基于位置信息被识别,该位置信息对应于在字符串中找到由令牌提取模块142所导出的令牌。扫描模块138对被恢复的训练日志实施n-gram扫描,以获取被恢复的训练安全日志的被识别令牌的n-gram扫描数据。日志模式指纹创建模块144输出包含令牌的被恢复日志,从日志流提取数据所需的位置信息,以及针对被识别令牌的n-gram扫描数据。

用户确定被提取的令牌是什么以及特定令牌应该被映射到哪个字段,以及与每个令牌相关联的n-gram扫描数据。日志模式指纹创建模块144创建必要的映射,并且将它们存储在日志模式指纹数据库132中。这些映射被存储在日志模式指纹数据库132中。

当服务器130不在训练阶段中时,日志流捕获模块146捕获传入的安全日志流,该安全日志流由计算设备110生成以用于分析。日志流捕获模块146实时地捕获这些安全日志流。扫描模块138对被捕获的安全日志流的每一行执行与在训练阶段中执行的扫描类似的n-gram扫描。扫描模块138扫描被捕获的安全日志流的第一字符,然后扫描整数值n的组中的字符,同时将其方向向被捕获的安全日志流的另一端推进。扫描模块138以小于或等于整数n值的扫描值来推进对字符的扫描。不同之处在于:词提取模块134和符号代替模块136在扫描模块138执行n-gram扫描之前不执行它们的功能,即单个字符符号不被应用到被捕获的安全日志行。扫描模块138执行n-gram扫描,即一次扫描一组n个字符,直到到达安全日志行的末端。

令牌提取模块142从扫描模块138接收针对被捕获的安全日志行的扫描数据。令牌提取模块142比较捕获安全日志的n-gram扫描数据与存储在日志模式指纹数据库中的n-gram扫描数据,以识别捕获的安全日志内的令牌。令牌提取模块142识别被捕获的安全日志行内包含的令牌和位置信息。

令牌比较模块148从令牌提取模块142接收被提取的令牌和位置信息,并且将它们与日志模式指纹数据库132内包含的被存储的令牌和位置信息进行比较。数据提取模块150基于被识别令牌的位置信息来从位于被识别令牌之间的安全日志流提取数据以用于之后的分析。

图2是一个流程图,其根据本发明的实施例描述了图1的日志模式指纹数据库的训练阶段的操作步骤。

服务器130上的词提取模块134接收训练安全日志流(s200),并且从训练安全日志流提取词(s210)。符号代替模块136用不同的单个字符符号代替每个被提取的词,以创建针对训练安全日志流的每一行的符号串(s220)。扫描模块138针对训练安全日志流的每一行的符号串执行n-gram扫描(其中n是整数)(s230)。统计模块140执行被扫描数据的统计分析(s240),然后令牌提取模块142从由统计模块140所生成的直方图提取令牌并且确定被提取令牌的位置信息(s250)。日志模式指纹创建模块144用它们表示的被提取词取代单个字符符号(s260)。扫描模块138对被恢复的训练的安全日志执行n-gram扫描,以获取有关被恢复的被提取令牌的n-gram扫描数据(s265)。日志模式指纹创建模块144确定提取令牌和位置信息应当被存储还是被忽略(s270)。当确定被提取令牌不相关时,日志模式指纹创建模块144忽略被提取的令牌和位置信息(s280)。日志模式指纹创建模块144将相关的被提取令牌、位置信息和与被提取令牌相关联的n-gram扫描数据存入日志模式指纹数据库132中(s290)。

图4是一个框图,其示出根据本发明的实施例的图1的日志流内包含的提取信息的系统的组件。

日志流捕获模块146从计算设备110实时地捕获安全日志流(s300)。扫描模块138在被捕获的安全日志流的每一行上执行n-gram扫描(其中个,n是整数)(s310)。通过比较被捕获日志流的n-gram扫描数据与日志模式指纹数据库132中存储的n-gram数据,令牌提取模块142从被n-gram扫描的安全日志流的每一行提取令牌(s320)。令牌比较模块148比较被提取的令牌与那些存储在日志模式指纹数据库132中的令牌(s330),并且确定该令牌是否存在于日志模式指纹数据库132中(s340)。如果该令牌存在于日志模式指纹数据库132中,则令牌比较模块148存储该令牌的位置信息(s350)。令牌比较模块确定在日志流行中是否有任何更多的被提取令牌需要被比较(s360)。当比较完成时,数据提取模块150用令牌和位置信息从安全日志流的行内提取数据以执行数据提取(s370)。

图4示出根据本发明实施例的用于提取图1的日志流100内包含的信息的系统的计算设备110和服务器130的组件的框图。应该理解,图4仅提供一种实现的例示,并非旨在对其中可以实现不同实施例的环境的任何限制。可以对所描述的环境做出许多修改。

计算设备110和/或服务器130可以包括一个或多个处理器902、一个或多个计算机可读ram904、一个或多个计算机可读rom906、一个或多个计算机可读存储介质908、设备驱动器912、读/写驱动器或接口914,网络适配器或接口916,它们全部通过通信结构918互连。通信结构918可以使用任何体系架构实现,该体系架构被设计为在处理器(例如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统中的任何其它硬件组件之间传递数据和/或控制信息。

一个或多个操作系统910、以及一个或多个应用程序911,例如用于从日志流100内提取包含的信息的系统,被存储在一个或多个计算机可读存储介质上,以便经由一个或多个相应的ram904(其通常包括高速缓冲存储器)由一个或多个处理器902执行。在所述实施例中,每个计算机可读存储介质908可以是内部硬盘驱动器的磁盘存储器件、cd-rom、dvd、记忆棒、磁带、磁盘、光盘、半导体存储器件,例如ram、rom、eprom、闪存,或者可以存储计算机程序和数字信息的任何其它计算机可读有形存储设备。

计算设备110和/或服务器130还可以包括读/写驱动器或接口914,以对一个或多个便携式计算机可读存储介质926进行读与写。在计算设备110和/或服务器130上的应用程序911可以被存储在一个或多个便携式计算机可读存储介质926上,通过相应的读/写驱动器或接口914而被读取以及被加载到相应的计算机可读存储介质908中。

计算设备110和/或服务器130还可以包括网络适配器或接口916,比如tcp/ip适配器卡或无线通信适配器(比如使用ofdma技术的4g无线通信适配器)。计算设备110和/或服务器130上的应用程序911可以经由网络(例如,互联网、局域网或其他广域网或无线网)和网络适配器或接口916,从外部计算机或外部存储设备下载到计算设备。程序可以从网络适配器或接口916被加载到计算机可读存储介质908上。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。

计算设备110和/或服务器130还可以包括显示屏920、键盘或小键盘922,以及计算机鼠标或触摸板924。设备驱动器912与显示屏920对接以便成像,对接到键盘或小键盘922、计算机鼠标或触摸板924,和/或显示屏920,从而对字母数字字符输入和用户选择进行压力传感。设备驱动器912、读/写驱动器或接口914,以及网络适配器或接口916可以包括硬件和软件(存储在计算机可读存储介质908和/或rom906上)。

此处所述的程序基于其在本发明具体实施例中被实施的程序被识别。然而,应当理解,此处的任何特殊程序的命名仅出于方便而使用,并且因此本发明不应被限制于仅仅用于任何所识别的具体应用中和/或不应该限制于由这类命名暗示。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或媒介),其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

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

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

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

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

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

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

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

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

特征包括:

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

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

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

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

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

服务模型如下:

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

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

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

部署模型如下:

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

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

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

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

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

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

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

硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64、存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。

虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的示例:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用74和操作系统,以及虚拟客户端75。

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

工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及用于提取包含在日志流中的信息的系统96。

基于上述内容公开了一种计算机系统、方法和计算机程序产品。然而,在不背离本发明范围的前提下可以做出大量的修改和代替。因此,本发明已经通过示例而非限制的方式被公开。

虽然本发明已经参照其某些示例性的实施例被示出并描述,但是本领域技术人员应当理解——可以在不背离由所附权利要求书及其等效物定义的本发明的精神和范围的前提下作出形式和细节上的各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1