针对离群动作检测云用户的行为异常的制作方法

文档序号:28118762发布日期:2021-12-22 14:58阅读:83来源:国知局
针对离群动作检测云用户的行为异常的制作方法
针对离群动作检测云用户的行为异常
1.对相关申请的交叉引用
2.本技术要求以下美国临时申请的权益,这些美国临时申请中的每一个通过引用并入本文:
3.·
2019年4月18日提交的题为“检测云用户的行为异常(detecting behavior anomalies of cloud users)”的第62/835,980号美国临时申请;
4.·
2019年4月18日提交的题为“基于熵的人类和数字实体分类(entropy

based classification of human and digital entities)”的第62/835,993号美国临时申请;以及
5.·
2019年4月18日提交的题为“针对离群动作检测云用户的行为异常(detecting behavior anomalies of cloud users for outlier actions)”的第62/835,983号美国临时申请。
6.本技术还要求以下共同受让的美国非临时申请的优先权,该美国非临时申请通过引用并入本文:
7.·
2020年1月23日提交的题为“针对离群动作检测云用户的行为异常(detecting behavior anomalies of cloud users for outlier actions)”的第16/750,874号美国非临时申请。
8.本技术还涉及以下共同受让的美国非临时申请,这些美国非临时申请中的每一个通过引用并入本文:
9.·
2020年1月23日提交的题为“检测云用户的行为异常(detecting behavior anomalies of cloud users)”第16/750,852号美国非临时申请;以及
10.·
2020年1月23日提交的题为“基于熵的人类和数字实体分类(entropy

based classification of human and digital entities)”的第16/750,863号美国非临时申请。


背景技术:

11.云安全涉及保护与云计算相关联的客户数据、应用程序和基础设施。云环境的安全的许多方面与本地硬件和软件的安全方面相似。这对于公共云、私有云和/或混合云都是如此。云环境中特别关注的安全考虑包括未经授权的数据暴露和泄漏、弱访问控制、易受攻击、可用性中断、拒绝服务攻击等。然而,作为管理物理服务器和存储设备的替代,云安全系统通常依赖基于软件的安全工具来监控和保护进入和离开云资源的信息流。因此,云计算安全ip可包括一组广泛的策略、技术、应用程序、服务、数据和其他相关联的云计算基础设施。
12.云计算的安全问题可以大致分为两大类:(1)在云上托管应用程序和存储数据的客户面临的安全问题,以及(2)云提供商自己面临的安全问题。云客户的安全问题可能旨在防止用户权限提升,这描述了一种情况,其中云用户被分配了一组有限的许可,但然后出于恶意目的,诸如使用不安全的api、利用系统和/或应用程序漏洞、使用弱身份、渗透凭证访问管理等将其活动提升到超出那些许可。


技术实现要素:

13.在一些实施例中,一种检测云环境中的异常用户行为的方法可以包括接收在云环境中在当前时间间隔期间所采取的动作的计数;确定该动作的计数是否比跨对等组采取该动作的先前时间的统计表征大超过阈值量;确定该动作是否表示离群点;以及基于确定该动作表示离群点来生成警告。
14.在一些实施例中,一种非暂时性计算机可读介质可包括指令,当指令由一个或多个处理器执行时,使一个或多个处理器执行操作,操作包括接收在云环境中在当前时间间隔期间所采取的动作的计数;确定该动作的计数是否比跨对等组采取动作的先前时间的统计表征大超过阈值量;确定该动作是否表示离群点;以及基于确定该动作表示离群点来生成警告。
15.在一些实施例中,一种系统可以包括一个或多个处理器和包括指令的一个或多个存储器设备,当这些指令由该一个或多个处理器执行时,使一个或多个处理器执行操作,操作包括接收在云环境中在当前时间间隔期间所采取的动作的计数;确定该动作的计数是否比跨对等组采取动作的先前时间的统计表征大超过阈值量;确定该动作是否表示离群点;以及基于确定该动作表示离群点来生成警告。
16.在任何实施例中,以下特征中的任何一个、没有一个或所有可以以任何组合并且无限制地被包括。在当前时间间隔期间采取的动作的计数可以包括单个用户执行的单个动作类型的计数。在当前时间间隔期间采取的动作的计数可以包括对单个资源执行的单个动作类型的计数。方法/操作还可以包括通过从在当前时间间隔期间记录的动作日志中聚合单个用户的或对单个资源的动作来生成在当前时间间隔期间采取的动作的计数。阈值量可以包括高于跨对等组采取动作的先前时间的统计表征的预定数量的标准偏差。确定动作的计数是否大超过阈值量可以包括将动作的计数和动作的类型提供给神经网络;以及从神经网络接收指示该动作是否表示离群点的输出。可以使用动作的计数、动作的类型和对警告的响应来训练神经网络。方法/操作还可以包括计算表示在云环境中在多个先前时间间隔期间采取的动作的第一向量;计算第一向量和第二向量之间的相似性,该第二向量包括在当前时间间隔期间采取的动作的计数,其中第二向量可以包括动作的计数;将相似性与基线阈值进行比较以确定一个或多个异常动作是否已经发生;以及至少部分地基于确定一个或多个异常动作已经在云环境中发生来生成警告。可以使用余弦相似性来计算相似性。第一向量中的每个条目可以包括多个先前时间间隔期间的平均事件分数。多个先前时间间隔中的每一个可以是一天。多个先前时间间隔可以包括天的滑动窗口,其中天的滑动窗口可以将当前时间间隔添加到天的滑动窗口,并且可以在每个时间间隔后从天的滑动窗口中移除最远的时间间隔。通过存储多个先前时间间隔中的每一个的事件计数的直方图,第一向量可以表示在多个先前时间间隔期间采取的动作。确定动作是否表示离群点可以包括执行动作计数是否大于动作计数的全局均值乘以动作的比例因子的第二确定。确定动作是否表示离群点可以包括将比例因子计算为动作计数的局部均值与动作计数的全局均值的比率。确定动作是否表示离群点可以包括当比例因子大于现有比例因子时替换动作的现有比例因子。动作可以包括由特定用户发送的多个电子邮件。动作可以包括由特定用户创建的多个文件夹。
附图说明
17.可以通过参考说明书的其余部分和附图来实现对各种实施例的性质和优点的进一步理解,其中贯穿若干附图使用类似的附图标记来指代相似的组件。在一些情况下,子标签与附图标记相关联以表示多个相似组件之一。当对附图标记的引用是在没有对现有子标签的说明的情况下做出时,旨在指代所有这样的多个相似组件。
18.图1a示出了根据一些实施例的可用于针对多个不同云客户来识别用户的行为异常的云访问安全代理(casb)。
19.图1b示出了根据一些实施例的用于在基础设施即服务(iaas)系统中实现casb的替代架构。
20.图1c示出了根据一些实施例的可以由casb监控的不同配置控制中的一些配置控制。
21.图2示出了根据一些实施例的描绘数据如何从特定云环境被传递到casb的图。
22.图3a示出了如由casb随时间存储和分析的特定用户所采取的动作。
23.图3b示出了根据一些实施例的可以通过事件递增的直方图存储器的示例。
24.图4示出了根据一些实施例的与当天相比的活动窗口的平均。
25.图5a示出了根据一些实施例的用于检测云环境中的异常用户行为的方法的流程图。
26.图5b示出了根据一些实施例的用于生成可疑事件分数的流程图。
27.图6a示出了根据一些实施例的描述用户动作的两个数据向量。
28.图6b示出了根据一些实施例的用于与单个对象的滑动活动窗口相比较来检测单独离群点的方法。
29.图7a示出了根据一些实施例的可以用于基于更大的对等组来调整阈值的等式。
30.图7b示出了根据一些实施例的用于检测离群点的方法的流程图。
31.图8示出了用于实现实施例中的一些实施例的分布式系统的简化框图。
32.图9示出了系统环境的组件的简化框图,通过该系统环境可以将实施例系统的组件提供的服务提供为云服务。
33.图10示出了其中可以实现各种实施例的示例性计算机系统。
具体实施方式
34.本文描述的是用于通过将余弦相似性分数与网络安全领域专业知识相结合来检测云用户的行为异常的实施例。如在生产云环境中测试的,此技术能够在没有任何标记数据集的情况下检测云用户的行为异常。此无监督的机器学习方法不需要正常和/或异常的行为或动作的先验知识。此方法也不需要用户信息,诸如权限级别、工作职能或动作许可。此方法被设计为成功检测(1)云用户的异常动作,包括用户权限提升行为,以及(2)跨各种云应用程序或服务中所有云租户的过度权限动作。如下文更详细描述的,可以采用对等组分析来识别行为异常。
35.图1a示出了根据一些实施例的可用于针对多个不同云客户来识别用户的行为异常的云访问安全代理(casb)100。casb 100是可以提供对整个云堆栈的可见性并用作安全自动化工具的云服务。casb 100可以同时提供对跨多个不同云环境的活动的实时连续监
控。这可能包括监控识别跨云应用程序的行为异常和欺诈或违规模式的配置和业务。一组安全策略可用于发现和防止对于云环境中的敏感内容的不期望的动作。这些安全策略允许管理员配置casb 100以响应于检测到的安全威胁来实时审核、警告、加密和/或隔离内容。除了检测威胁之外,casb 100还可以被配置为通过提供显示当前活动以及预测的活动趋势的控制面板,在安全威胁发生之前预测和可视化安全威胁。一旦casb 100检测到异常,系统就可以采取动作并进行取证以隔离、分析和遏制已知的安全威胁。
36.casb 100可以监控多个不同的云环境。例如,casb 100可以与oracle cloud(oci)102对接,oracle cloud(oci)102可以提供计算实例、联网、数据存储、数据库、云互连、边缘服务、负载均衡、治理策略、数据流、资源管理、和其他基于云的服务。附加地,casb 100还可以与其他云环境(诸如oracle的human capital(hci)104套件、amazon web services(aws)108、microsoft office 365(mso365)106等)交互。
37.为了监控这些不同的云环境,casb 100可以被配置为接收数千个单独用户的实时数据监控流。假设q个不同的云环境正在被casb 100监控,并且q个环境中的每一个环境包括n个租户,则这可以提供对q
×
n个租户的同时监控。此外,如果每个租户具有至少m个用户,则casb 100可以同时监控至少q
×
n
×
m个用户。
38.图1b示出了根据一些实施例的用于在基础设施即服务(iaas)系统中实现casb 100的替代架构。与图1a相反,此架构将casb 100置于特定云服务的基础设施内。在casb 100作为基础设施的一部分的情况下,casb 100可以更多地访问在基础设施内发生的具体类型的动作。
39.例如,在图1a的多云环境中,casb 100监控在不同云环境中的每个云环境中在应用程序级别发生的事件。在图1b的基于基础设施的架构中,casb 100可以替代地接收在资源级别发生的事件。例如,casb 100可以接收与基础设施内的具体计算对象130相关地发生的事件。casb 100还可以接收与基础设施内的具体网络对象132相关地发生的事件。附加地,casb 100可以接收与架构内的具体存储对象134相关的事件。此架构允许casb 100监控在具体用户供应、初始化、使用资源或以其他方式与资源交互时发生的事件。它附加地允许casb 100基于用户、资源、应用程序、对象和/或基础设施中的任何其他实体来监控事件。因此,在本公开中仅仅作为示例来使用基于每个用户监控的事件。下面描述的用于基于每个用户监控事件的任何技术还可以基于每个资源而被监控。例如,可以针对特定计算对象监控事件。当计算对象生成指示恶意异常的事件分数时,计算资源可以被关闭或可以采取其他补救措施来最小化感知到的对资源的威胁。下面示出的表1列出了可由casb 100监控的云基础设施控制中的一些云基础设施控制。
40.41.42.43.[0044][0045]
表1
[0046]
在一些实施例中,图1b中的架构还可以覆盖资源配置级别事件。例如,可以创建桶实例,其中某些对象或资源可以被存储在架构中。当相对于桶中的该对象或资源采取动作(例如,初始化、使用、删除等)时,可以生成可以与如下面更详细描述的该事件的已知基线(例如,行业基线、每用户基线、每租户基线等)进行比较的事件。这还允许casb 100监控单个资源的状态。例如,如果桶对象被创建并且在预定时间窗口(例如,90天)内保持在特定状态,则状态本身可以被监控并且与预定基线进行比较。附加地,状态更改可以被监控并与基线和阈值进行比较,如下所述。
[0047]
图1c示出了根据一些实施例的可以由casb 100监控的不同的配置控制160中的一些配置控制。当图1c所示的控制条件被满足时,配置控制160监控配置和状态或可以生成事件的具体资源。例如,当负载均衡器ssl证书在接下来的45天内到期时,警告可以被生成。在另一个示例中,当kms密钥在预定到期间隔内没有被轮换时,警告可以被生成。在另一个示例中,当一组管理员具有比预定阈值多的成员时,警告可以被生成。如图所示,如图1c所示的这些配置中的每一个都可以被监控并用于生成警告。
[0048]
图2示出了根据一些实施例的描绘数据如何从特定云环境被传递到casb的图。在此示例中,诸如oci环境102之类的特定环境可以周期性地将活动表202传递给casb 100以用于分析。oci环境102可以是由如图1a所示的casb 100同时监控的许多云环境之一。替代地或附加地,oci环境102可以是与如图1b所示的casb 100相同的iaas架构的一部分。活动表202可以包括描述特定用户采取的动作的多个活动向量或数据行。每一行或向量可以包括租户id、用户id、时间和/或采取的动作,以及与特定动作相关的其他数据。例如,活动表202包括用于“发送电子邮件”动作的第一行204。此动作发生在下午12:34:56,由用户#12442在租户#10002的云环境中执行。活动表202中的每一行可以表示单个动作,因此活动表202可以在时间窗口上包括数千个条目来描述每个用户的所有动作。
[0049]
可以以不同的间隔周期性地将数据表202从环境发送到casb 100。例如,一些实施例可以将在环境102处的动作列表存储预定时间间隔,诸如一小时。在预定时间间隔到期时,动作列表可以作为活动表202一起被发送到casb 100,使得casb 100每小时接收新的一批动作以进行分析。一些实施例可以随时间连续地流式传输活动表202中的行。在这些实施例中,casb 100可以在活动表202中的行在环境102处生成时实时连续地接收它们。诸如或之类的软件应用程序可以用来将这些数据流式传输到casb 100。一些实施例可以在正常操作条件期间周期性地向casb 100发送成批的行,并且基于casb 100处的数据的分析结果动态调整进行传输的频率。例如,可以每小时发送一次活动表202,直到对于用户之一已经检测到严重行为异常为止。在检测到异常后,活动表202的传输之间的时间间隔可以被缩短例如50%以便以每半小时发送。在另一示例中,在期间未检测到异常的预定时间间隔之后,可以延长一小时的默认时间间隔。当预定数量的行已经在环境102处累积时,一些实施例可以发送活动表202中的行。例如,可以在环境102处存储数据行直到已经累积了100个这样的行为止。此时,活动表202中的100个行可以被发送到casb 100。
[0050]
应当注意,活动表202中的数据不需要被标记。换句话说,没有单个行需要被标记为“正常”或“异常”。相反,casb 100只接收已采取动作的指示,而没有该动作是否应该被允许的任何表征。此外,casb 100不需要以关于哪些动作类型应该被允许、哪些权限级别在那些环境中可操作、或者异常应该如何被检测的标准或指导的形式从任何云环境接收任何信息。云环境仅向casb 100发送动作列表,然后依靠casb 100来识别异常,而无需任何附加信息。此过程可能通过跨世界的可被监控的大量租户和用户而被复杂化。
[0051]
本文描述的实施例通过检测所有云用户的行为异常并制定用户对等组以将行为分类为异常来克服这些挑战。此新方法可以将云用户行为的余弦相似性分数与用于某些活动的内部生成的评分系统相结合。可以将这些方法描述为无监督机器学习方法,因为不需要带标记的输入或训练数据集。这可以被描述为一种机器学习算法,该机器学习算法使用余弦相似性分数作为对表示不同基线和阈值的模型的输入,以便为每个用户、事件、事件向量等生成“异常”和/或“正常”输出。
[0052]
对等组分析包括通过用户的个人和/或数字特性对用户进行归类的过程。在此云安全环境中,这包括活动目录属性(即职位、工作职能、业务部门、经理等)、在给定云应用程序/服务中分配给用户的许可类型、他或她的(一个或多个)地理场所、他或她与公司的关系(承包商、员工等)、人类vs.机器人的关系,等等。用户和对等组之间的典型关系是1:n(即单个人可以与不确定数量的对等组相关联)。如下所述,可以指派不同的对等组用于生成阈值和基线。上面描述的这些对等组中的任何和所有对等组都可以用于计算这样的基线和阈值。
[0053]
权限提升的过程可以被定义为用户被合法地分配一组有限的许可,并且以一些形式被授予并利用权限的提升以用于恶意目的。内部和外部不良行为者可经由不安全的api、系统/应用程序漏洞、弱身份、凭证访问管理和/或恶意内部人员使用权限提升来完成一些预先计划的目标。内部不良行为者可能通过使用正常凭证但执行超出那些凭证允许的许可的动作来使用权限提升。
[0054]
对等组分析是由一些实施例执行的使用历史数据集关于特定用户做出智能假设
的过程。例如,系统可以确定特定用户的先验动作以作为用于将用户归类为管理用户或非管理用户的方式。如下所述,分数表可以在相应资源动作对按相对权限被排序并被存储为用于与权限提升相关的机器学习和数据科学模型的标记数据集之后被创建。通过使用云应用程序和/或服务默认iam标准/策略作为用来对完成具体云事件所需的权限级别进行归类的方式,动作可以被有效地排序。例如,在oci中存在标准,该标准为创建和/或编辑策略可能需要管理许可,因为它们动态地为个人和/或组两者指派管理许可。在另一个示例中,开箱即用许可可以排他地向aws中的唯一租户根管理员提供一些动作。
[0055]
如上所述,casb 100可以接收由特定用户执行的动作的列表。casb 100然后可以基于每个用户存储和分析这些动作中的每一个。图3a示出了如由casb 100随时间存储和分析的特定用户采取的动作。例如,图3中示出的动作可以与来自图2的用户#12442相关联。第一时间间隔可以用于生成在第一时间间隔期间采取的动作的一组直方图300。例如,第一时间间隔可以是单个天,使得对于每天每个动作的所有实例聚合在一起。直方图300中的仓(bin)可以表示独立的活动。因此,当接收到新的活动记录时,可以递增该活动的存储器仓。当新的一天开始时,可以为新一天的直方图分配或重置新的存储器位置数组,其中每个存储器位置表示具体用户动作的仓。当在新的一天期间接收到动作时,可以递增新的存储器位置,而先前的存储器位置可保持不变,作为前一天动作的历史记录。
[0056]
在图3a中,每个垂直列表示在特定天采取的用户动作的直方图。水平行中的每一个表示直方图300中用于每天的仓。例如,在第1天,用户#12442可能已经发送了22封电子邮件,而在第2天,用户#12442可能已经发送了25封电子邮件。注意,因为在直方图300的仓中存储这些值,所以不需要存储发送这些电子邮件的特定时间。相反,仅需要递增该天的动作仓以显示动作发生。在其他实施例中,可以使用不同的时间间隔,诸如每1小时、2小时、6小时、12小时等等。附加地,一些实施例可以针对白天的时间与夜间的时间以及工作日与周末使用不同的直方图。
[0057]
直方图300可以包括多个不同时间间隔的直方图。例如,一些直方图300可以包括90天、120天、30天、45天等的直方图。一些实施例可以使用分析窗口306,该分析窗口306选择多个前几天的直方图以用于与当天308的直方图进行比较。一些实施例不需要在分析窗口306中存储每个时间间隔的直方图。相反,这些实施例可以将分析窗口306中的时间间隔的直方图组合为表示所有时间间隔的单个直方图。例如,一些实施例可以对分析窗口306中的时间间隔的直方图的每个仓中的值进行平均以用于与当前日期308进行比较。
[0058]
例如,分析窗口306可以包括用于与当天308进行比较的90天的滑动窗口。在分析窗口306中在90天内采取的动作可以被一起取平均以生成表示前90天的单个平均直方图。在第二天,可以通过减去分析窗口306中最早一天的动作计数并加上当前日期308的动作来重新计算平均值。分析窗口306的长度可以包括任意天数,诸如:14天、21天、30天、45天、60天、75天、90天、120天、六个月、一年等等。长分析窗口还可包括天数范围,诸如至少14天、至少30天、至少45天、至少60天、至少75天、至少90天、14天和30天之间、30天到45天之间、45天到60天之间、六个月到一年之间、至少一年、一年到两年之间等等。
[0059]
图3b示出了根据一些实施例的可以通过事件递增的直方图存储器的示例。在此示例中,仅作为示例使用了90天的分析窗口。90天窗口354可以包括90天窗口354中每个时间间隔上的每个事件的存储器位置。例如,每一天可以包括对应于每个事件的存储器位置。
[0060]
为了记录当天的新事件,多种不同的方法可以用于接收和处理传入事件。在一些实施例中,系统可以周期性地接收包括已经由各种用户、资源、应用程序等触发的事件列表的日志360。日志360可以被解析以识别与每个事件相关联的具体用户/资源。然后可以识别相关联的用户/资源的直方图存储器并且针对记录在日志360中的每个事件,并且可以递增存储在该天的针对该事件的存储器位置中的事件计数器。简单的递增函数364可以用于在每个事件被处理时递增存储器位置的值。
[0061]
在一些实施例中,系统可以接收实时事件流362,该实时事件流在系统生成事件时被接收。这可以特别用于上述图1b的iaas架构中。存储器位置可以订阅资源、用户和/或事件类型的特定事件流。当新事件被接收时,它们可以被引导到具体的存储器位置以递增现有值。递增的值可以是表示当前日期358的一组寄存器。
[0062]
90天窗口354可以在每个间隔结束时(例如,在每天结束时)被处理以计算当前90天窗口354的平均。平均函数366可以针对每个事件类型在直方图存储器中聚合每一天的事件总数。平均函数366然后可以将此聚合除以90天窗口354的长度以生成每个事件类型的平均值356。然后可以将平均值356与当天358的事件计数进行比较以在事件被处理时生成实时警告。如上所述,一些实施例可以减去被移出窗口的最后一天352(例如,第91天)并将最近一天加到当前平均值356。这可以在90天窗口354中聚合很多天时最小化系统执行的数学运算。
[0063]
在移动到随后的时间间隔,诸如移动到下一个日历天时,系统可以将值从当前日期358移动到90天窗口354并且重置当前日期358的值。系统可以还通过减去第91天352并加上当前日期358再除以90天窗口354的长度来更新之前的90天窗口的平均值356。
[0064]
图4示出了根据一些实施例的与当天308相比的活动窗口408的平均。如上所述,活动窗口408的平均可以通过针对每个动作类型聚合每个每日直方图的每个时间仓中的值来计算。然后可以将此值除以分析窗口306的长度以生成图4中所示的平均值。然后可以通过将活动窗口408的平均与当前日期308的动作计数进行比较来部分地检测异常。如本文所用,术语“动作”和“事件”可互换使用。动作可以指由用户采取的或针对特定资源采取的具体动作,而事件可以表示生成的那些动作的指示。然而,本公开和权利要求可以互换地使用这两个术语。
[0065]
可以执行各种统计方法来将活动窗口408的平均与当前日期308的动作进行比较。一些实施例可以计算每个条目之间的欧几里德距离。其他实施例可以计算汉明距离。图4的实施例将活动窗口408的平均的直方图和当天308视为数据向量。此示例然后计算两个向量402、404之间的多维余弦值作为它们相似性的估计。该计算可以包括计算两个向量的点积并将结果除以两个向量的大小的乘积。第一向量可以表示在多个先前时间间隔期间采取的动作,诸如上述分析窗口的平均。第二向量可以包括在当前时间间隔期间,诸如在当天期间,由特定用户、对特定资源、使用特定应用程序等采取的动作的计数。图4中示出了样本方程406。用于计算两个向量相似性的伪代码如下所示。
[0066][0067][0068]
计算两个向量402、404之间的相似性的度量可以用于在每天的基础上来表征用户行为中的异常。换句话说,如果用户当天采取的活动与前一天采取的平均活动显著不同,则这可能表示异常行为。可以在不知道是否允许用户执行单独的动作的情况下进行此表征。用户通常被授予在本文中称为“权限级别”的一组许可或权限。用户的权限级别将允许他们采取某些动作而没有后果。然而,当用户采取超出其权限级别所允许的动作时,“权限提升”发生。然而,casb 100不知道每个用户的权限级别,也不知道哪些动作与每个权限级别相关联。因此,casb 100使用当前用户动作与先前用户动作的此比较来识别可能指示用户正在做其许可级别外的事情的动作。此操作基于假设用户不会随着时间的推移在其权限级别外过度操作,而不被客户的特定云环境抓到。casb 100可以在这样的行为变为一种模式或足够过度以触发大多数内部客户云控制之前识别并标记这样的行为。结果可以被表征为第一向量和第二向量之间的相似性。
[0069]
图5a示出了根据一些实施例的用于检测云环境中的异常用户行为的方法的流程图500。在步骤502处,可以为活动窗口计算平均动作直方图,诸如在先前分析窗口中发生的每种类型的动作的平均事件分数。这可以通过接收和处理特定于一个或多个云环境中的用户、资源、应用程序和/或其他对象/实体的事件来计算。系统可以同时监控如上面图1a所描绘的许多云环境,或者可以是如上面图1b所描绘的iaas云基础设施的一部分。平均事件分数可以通过聚合来自分析窗口内每个单独时间间隔的事件分数并将其除以窗口长度来计算。在其他实施例中,除了平均分数之外,可以使用不同的统计方法来生成事件分数。例如,一些实施例可以使用中值或众数值(mode value)。一些实施例可以在计算事件分数时去除超出平均值阈值的各种离群点。在一些实施例中,来自分析窗口中的一些天的事件分数可能比其他天的事件分数权重更大(例如,在周末发生的事件可能比在工作日发生的事件更可能是可疑的)。在一些实施例中,可以在分析窗口中的每个间隔结束时(例如在每天结束时)生成分析窗口的此事件分数,使得可以将其与如在第二天发生的事件连续地比较。分析
窗口可以是滑动窗口,其中直方图中的值随着新值添加到窗口的相对端而从窗口的后边缘离开,如上面图3b中所描绘的。
[0070]
在步骤504处,可以计算活动窗口的平均事件分数与当天的事件分数之间的相似性。此相似性可以包括上述余弦相似性函数。然而,余弦相似性仅用作示例,并不意味着是限制性的。其他实施例可以使用其他相似性度量或相似性函数来计算平均事件分数和当前事件分数之间的相似性。一些实施例可以使用欧几里得距离或曼哈顿距离。一些实施例可以使用闵可夫斯基距离。一些实施例可以使用杰卡德相似性。简而言之,在比较这两个值时可以使用任何相似性度量。
[0071]
在步骤506处,可以将相似性分数与基线阈值进行比较以将用户行为分类为异常。基线阈值可以表示用于评估当天的事件分数的最小阈值。例如,越过基线阈值可以表示对于此用户/资源/应用程序等的此类型的事件已经发生异常的初始指示。可以使用多种不同的方法来计算此基线阈值。在一些实施例中,基线阈值可以被计算为与活动窗口的事件分数的预定统计差异。例如,基线阈值可以是偏离基于平均值计算的活动窗口平均值的多个统计偏差。在一些实施例中,可以使用跨用户、跨特定租户、跨行业中的用户、跨系统在多个云环境中监控的用户和/或上述用于对等组分析的任何其他对等组来聚合的平均值来计算基线阈值。然而,在这些实施例中,“对等组”可以包括来自相同用户或针对在先前时间间隔中执行的相同资源的动作。因此,“对等组”可以包括相同用户在上述滑动活动窗口中采取的动作。
[0072]
在一些实施例中,可以使用机器学习算法动态地计算和调整基线阈值。例如,机器学习算法可以包括接收当天和活动窗口的事件分数的事件分数的神经网络。神经网络还可以接收在这两个事件分数之间计算的相似性分数。然后神经网络可以输出“正常”或“异常”的指示。当数据被不断提供给网络并用于训练网络时,由神经网络表示的基线阈值可以随时间调整。例如,当生成警告时,可以将对该警告的响应用作训练输入,以确定神经网络的对应输出是否正确(例如,警告是生成响应动作还是它被抑制?)。
[0073]
在这里一些实施例可以停止分析并且仅向客户云环境报告异常行为。然而,一些实施例可以执行进一步的分析步骤以将异常行为更好地分类为可接受的异常行为或不可接受的异常行为。具体地,一些异常行为可能不值得关注,而可能只是大多数用户不经常执行的行为。例如,第一权限级别,诸如用户权限级别,可以允许用户设置可接受的域。此动作可以在用户权限级别被允许,但只能很少地被执行,诸如每月一次。因此,此动作的每次执行都可能看起来异常,而对于客户云环境仍然是完全可接受的。
[0074]
方法还可包括确定异常是否超过上阈值(510)。可以以与如上所述计算基线阈值类似的方式来计算上阈值。上阈值可以将事件分数表征为绝对未授权。这两个阈值一起允许事件分数的稳健表征。当事件分数攀升至基线阈值以上时,事件从被表征为良性到至少是可疑的。当该事件分数继续朝着上阈值攀升时,关于该事件分数的怀疑可以增加。当该事件分数最终越过上阈值时,可以生成警告(512)以指示该事件分数表示与该用户、资源、应用程序和/或其他对象相关的已知异常。
[0075]
对于落在上阈值上的基线阈值的之间的事件分数,可以执行附加处理以确定可疑事件分数是否应该生成警告。图5b示出了根据一些实施例的用于生成可疑事件分数的流程图550。流程图550可以是上述流程图500的延续。为了进一步改进过程,一些实施例可以生
成和/或访问内部分数表,该内部分数表为动作直方图中的每个动作提供数字分数。例如,分数的范围可以在1到100之间。分数越高,可能需要越高的假定权限级别以用于允许动作。例如,发送电子邮件可具有分数2,而实例化新公司实体可具有分数95。一般而言,异常动作的分数可用于将异常动作分类为正常或异常。
[0076]
继续流程图500,在步骤520处,可以访问分数数据库。分数数据库可以包括活动分数的列表,该活动分数的列表指示动作相对于其他动作的感知严重性。使用上述相似性度量仅将事件发生的频率与基于历史使用情况的基线频率进行比较以训练模型。然而,此分数更主观,可能具体地涉及事件的类型而不仅仅是其发生的频率。需要更高级别授权或具有更严重的误用后果的事件通常可能分数更高。这些事件不太可能由常规用户执行。
[0077]
活动分数数据库可以至少部分地基于表征某些事件的管理员输入。例如,基于管理员知道这样的事件应该很少使用并且仅由被授权的用户执行,与启动新的虚拟云网络(vcn)相关的事件可以具有较高的分数。在一些实施例中,还可以使用机器学习算法自动生成和改进活动分数数据库。基于在生成警告后接收到的反馈,活动分数数据库可以被调整以更可能正确地表征事件分数。例如,如果基于事件分数生成错误警告,则活动分数数据库中的对应活动分数可以增加,而未被检测到的异常可以导致事件分数降低。神经网络可用于表示活动分数的值,其中神经网络的输出随着时间的推移被改进以动态地调整到该活动的当前表征。
[0078]
分数数据库可以被存储为分数表。分数可以由机器学习算法在内部生成,该机器学习算法基于跨多个用户的活动的相对频率对活动进行评分。一些实施例还可以接收由管理员指派的分数。在一些实施例中,分数的范围可以从表示上面描述的基线阈值的基线分数的值0到表示同样在上面描述的上阈值的值100。因此,活动分数数据库中的活动分数还将事件分数表征为这两个阈值之间的可行动异常(actionable anomaly)。分数数据库或分数表的示例如下面的表1所示。注意,这是可存在于分数表中的可能动作的一个小子集。实际上,分数表可以包括具有相关联的分数的更多动作。
[0079]
[0080][0081]
表1
[0082]
如果在步骤510处特定异常动作的分数在由活动分数数据库确定的预定阈值之上,则可以在步骤512处生成警告。可以以多种不同方式生成预定阈值。在一些实施例中,可以静态地设置阈值。例如,具有超过75的分数的任何异常动作可被标记以生成警告。在一些实施例中,可以将动作的分数与过去执行的其他动作的分数进行比较。例如,如果异常动作具有分数90,但用户在过去周期性地执行具有相似的高分数的动作,则可以假设用户具有允许执行这些高分数动作的较高权限级别。因此,即使很少被执行,这些高分数动作也不需要生成警告,因为它们先前已经针对该用户定期执行,即使不频繁。
[0083]
在步骤512处,可以生成警告,该警告将所采取的动作描述为异常并且可以向客户云环境提供附加信息。例如,可以使用云中的使用ubuntu 16或更高版本的linux节点上运行的python和各种代码库来执行方法。这些代码文件可以由shell脚本触发,以读入用户动作的字典文件和从各种客户云环境接收的每日输入文件。可以如上所述分析这些每日输入集以生成例如csv格式的解释文件和异常警告。附加地,用户界面可以为云环境管理员显示警告和/或解释。如果没有警告生成,则分析可以在步骤514处针对下一个时间间隔继续。
[0084]
应当理解,图5a和图5b中所示的具体步骤提供了根据本发明的各种实施例检测云环境中的异常用户行为的特定方法。也可以根据替代实施例执行其他步骤顺序。例如,本发明的替代实施例可以以不同的次序执行以上概述的步骤。此外,图5a和图5b中示出的单独步骤可以包括多个子步骤,这些子步骤可以按适合于单独步骤的各种顺序执行。此外,可以取决于特定应用程序添加或移除附加步骤。本领域的普通技术人员将认识到许多变化、修
改和替代。
[0085]
低分数级别中的离群点
[0086]
在一些实施例中,一种方法可以将基于知识的过滤器与跨整个云租户的所有云用户的所有对应动作计数的均值和标准偏差值的计算分数相结合。此方法促进了上述无监督学习技术,以将其自身区别于现有的聚类方法(k均值、最近邻等)。此技术被配置为识别否则使用上面的算法将不被视为异常的离群点。例如,用户完全在其假定权限级别内采取的动作不会被识别为异常。但是,即使是在其权限级别内采取的动作也可能值得客户关注。当用户采取远多于正常的特定类型的动作时,这可能会引起关注。例如,用户发送的电子邮件比正常情况多数千封可能指示企业间谍活动或拒绝服务攻击。
[0087]
图6a示出了根据一些实施例的描述用户动作的两个数据向量。第一向量402表示在之前的90天窗口408上采取的平均动作。第二向量604表示在当天602期间采取的动作。注意,除电子邮件动作604外,来自当天602的所有动作计数都在来自90天窗口408的平均动作计数的可接受范围内。在当天602,发送的电子邮件数量增加了10倍以上。尽管上面的算法可能不将电子邮件动作604识别为离群点,因为它们通常被批准用于此用户的权限级别,但是作为离群点的总数可能值得关注。
[0088]
回想在上面关于图5a

图5b的流程图描述的过程中,方法将来自当前时间间隔的动作向量与在滑动活动窗口上平均的动作向量进行比较。上面描述的相似性分数能够检测来自单个用户或针对单个资源/应用程序的可疑行为的整体模式。该过程将向量中的每个动作计数视为n度空间中的坐标,然后使用相似性度量(例如,余弦相似性度量)来确定两个向量的相似性。此向量相似性充当了用于将动作一起作为整体考虑的代理。因此,此过程能够通过将单独动作与平均值或阈值进行比较来检测动作的整体模式中可能遗漏的偏差。
[0089]
然而,上面关于图5a

图5b的流程图描述的过程可能遗漏在单个动作类别中表示可疑行为的单独离群点。由于相似性度量从整体上比较两个向量的相似性,因此表示动作集合中的单独动作的向量中的单独坐标可能被遗漏。例如,单个离群动作,诸如图6中的电子邮件动作604,当与动作向量中的其余动作的相似性混合时可以被“平滑”。因此,除了检测动作向量中的整体相似性之外,一些实施例还可以检测单独的离群动作。可以通过与滑动活动窗口比较、通过与跨单个租户的平均动作计数比较、通过与跨多个租户的平均动作计数比较、通过与跨多个云环境的平均动作计数比较和/或通过与任何其他对等组比较来检测单独的离群点。
[0090]
图6b示出了根据一些实施例的用于相对于单个对象的滑动活动窗口检测单独离群点的方法。如上面所描述的,此方法中的单个对象可以表示用户、资源、应用程序和/或在云环境中动作可以归因于的任何其他对象。流程图600中的方法示出了如何将当前时间间隔中的动作与来自用于该对象的滑动活动窗口的平均动作进行比较。
[0091]
方法可以包括在图5a

图5b的流程图中的任何点开始(620)。例如,可以在计算相似性(504)之前、与基线阈值的比较(506)之前或之后、与上阈值的比较(510)之前或之后、在生成警告(512)之前或之后、在访问活动分数数据库(520)和/或将活动分数与来自数据库的分数进行比较(522)之前或之后,和/或在这些流程图中的任何其他点执行流程图600中的此方法。还可以在图5a

图5b的流程图之前或之后执行流程图600。
[0092]
方法还可以包括将来自当前时间间隔的动作与来自滑动活动窗口的对应动作进
行比较(622)。在一些实施例中,来自滑动活动窗口的动作可以表示滑动活动窗口中的动作计数的均值、众数、中数和/或任何其他统计特性。为简单起见,本公开可将此表征称为“平均”。然而,在本公开中使用“平均”作为示例的任何地方,其他实施例可以用平均代替滑动活动窗口中的动作计数的任何其他统计度量或表征。当动作被加到当前时间间隔的动作计数时,可以实时做出此比较。附加地,可以在当前时间间隔结束时(例如,在一天结束时)或在接收到动作日志中的一批动作时做出比较。
[0093]
方法可以附加地包括确定当前时间间隔中的动作计数是否超过来自滑动活动窗口的动作计数的统计表征多于阈值量(624)。例如,与平均动作计数的小偏差可以在正常活动范围内。如果用户在滑动活动窗口期间平均每天发送25封电子邮件,那么在当天期间发送45封电子邮件不需要上升到可行动警告项的级别。但是,如果用户在当天期间发送了245封电子邮件,这可能超过滑动活动窗口的平均动作计数足够多以至于触发警告。
[0094]
可以针对每个动作类型单独设置当天的动作计数可能超过来自滑动活动窗口的平均动作计数的阈值,并且可以在运行时动态更新该阈值。例如,一些实施例可以向不同的动作类型指派不同的阈值。可以基于误用动作的后果的严重性来确定不同的阈值。例如,通过使用来自图5b的活动分数数据库(520)的分数,系统可以基于来自此分数数据库的分数成反比地(inversely scale)缩放用于每个活动的阈值。表示较高后果的动作的较高分数可降低阈值,使得与平均动作计数的较小偏差可触发警告。
[0095]
在一些实施例中,阈值可以由针对每个动作类型的单独神经网络表示。神经网络可以接收当前时间间隔的动作类型和动作计数作为输入。神经网络的输出可以包括指示来自当天的动作计数是否应该触发警告的至少两个输出。附加地,可以使用这些动作计数作为训练数据集来训练神经网络。稍后可以基于对生成的警告的响应来标记这些数据集。例如,如果生成警告并且警告被管理员抑制,则此数据集可以被自动标记为“无警告”数据集以训练神经网络。附加地,如果在未被神经网络检测到时警告生成,则此数据集可以被标记为“警告”数据集以训练神经网络。正确确定的警告也可用于训练神经网络。
[0096]
方法还可以包括确定附加动作是否保留在动作向量中(626)。如果附加动作保留,则系统可以转向下一个动作并遍历每个动作,直到针对离群点分析了动作向量中每个动作类型的动作计数。例如,可以将来自当前时间间隔的每个单独动作计数与活动窗口中的动作计数进行比较(622)。
[0097]
在一些实施例中,当来自当前时间间隔的单个动作计数超过其对应阈值时,系统可以生成警告(628)。在警告生成之后,系统然后可以确定附加动作是否保留在动作向量中(626),然后继续单独处理每个动作。在其他实施例中,处理可以在警告生成之后结束。例如,如果用户/资源/应用程序被识别为安全威胁,则与该用户/资源/应用程序相关联的动作可以被关闭,这可以消除继续分析离群点异常的动作向量的需要。在其他实施例中,可为超过其对应阈值的对象的每个动作计数生成警告。因为每个动作都可能与警告的特定类型或不同警告的规模相关联,所以可以生成具有最小后果的一些警告,而其他警告可能关闭系统或执行其他极端的补救措施。因此,处理可以继续(630),直到生成警告并且采取补救措施为止,使得进一步处理变得不必要。
[0098]
应当理解,图6b中所示的具体步骤提供了根据各种实施例检测云环境中的离群行为的特定方法。也可以根据替代实施例执行其他步骤顺序。例如,本发明的替代实施例可以
以不同的次序执行以上概述的步骤。此外,图6b中示出的单独步骤可以包括多个子步骤,这些子步骤可以按适合于单独步骤的各种顺序执行。此外,可以取决于特定应用程序添加或移除附加步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
[0099]
上面在流程图600中描述的方法通过将来自对象(例如,用户、资源、应用程序)的动作与来自相同对象的先前动作进行比较来识别离群点。然而,一些实施例还可以将基于知识的过滤器与来自不同对等组的对应动作计数的值的均值和标准偏差的计算分数相结合。如上面所描述的,这些对等组可以跨用户类型、跨单个租户、跨云环境、跨多个云环境,和/或可以使用其他行业标准作为比较基准。与本公开中讨论的先前方法一样,此方法可以被表征为无监督学习方法,并且可以区别于现有的聚类方法。如上面所描述的,可以为每个动作和/或为每个用户/资源/应用程序单独确定阈值。这些实施例还将这些阈值建立在这些不同对等组的统计表征的基础上。
[0100]
图7a示出了根据一些实施例的可以用于基于较大的对等组来调整阈值的等式。这些等式可以使用用于跨对等组的特定动作的动作计数的向量。可以使用等式702动态计算每个阈值t。例如,action(i)可以表示单个动作类型的动作计数的向量,其中向量中的每个条目表示来自对等组内的特定用户的动作计数。可以使用mean函数计算动作的均值,该函数使用标准数学运算来根据值的向量计算均值。此函数可以计算跨对等组中的所有用户i=1,2,...,m的相同动作的全局均值。
[0101]
除了计算均值之外,还可以针对特定动作跨对等组计算标准偏差。等式704示出了计算标准偏差的方法,其中n表示对等组中的用户数量,其中z可以表示action(i)的所有动作计数的均值。这可以针对在之前的d(d=60~120,默认值为90)天中执行相同动作的所有用户的动作计数来计算。
[0102]
用于计算阈值的等式702包括可基于数据分布特征、数据偏差和协方差动态调整的可调整值n。在某些维生素中,此可调因子n的值可能在3到6之间变化。
[0103]
接下来,基于知识的过滤器值可以通过被如下定义的动作比例值来量化:
[0104]
s(i,action(i))=globalmean(action(i))
·
scalevalue(action(i))其中i=1,2,

,m。比例值可基于下面描述的表。然后动作离群点可以通过这些条件检测:
[0105]
if count(action(i))>threshold(i,action(i))and
[0106]
count(action(i))>s(i,action(i))
[0107]
then action(i)可以被标记为离群点
[0108]
其中t(i,action(i))和s(i,action(i))可以基于来自各种对等组、云应用程序、资源等的原始数据输入来动态计算。
[0109]
基于知识的过滤器可以使用比例或数字权重来测量所有已知动作的风险等级。这些数字权重可以通过云实时数据和/或管理员专业知识自动修改。分数和权重的示例下面在表2中示出。
[0110][0111]
表2
[0112]
通过使用权重,当满足以下两个条件时,可以检测离群点:(1)当检测到的值大于(表示动作风险级别的)数值与跨所有云租户和用户的相同动作的全局均值的乘积时;以及(2)当满足来自表2的离群点过滤器值时。此方法可以检测给定时间段和任何单个天中的用户动作离群点。
[0113]
图7b示出了根据一些实施例的用于检测离群点的方法的流程图700。方法可以包括从跨云环境和/或由系统监控的其他环境接收动作(710)。如上面所描述的,可以选择不同的对等组,使得针对单个租户内的用户、单个云环境内的用户、具有单个应用程序的用户、针对具体资源执行的动作、针对跨云环境中的具体资源执行的动作和/或任何其他可用的行业标准或组接收这些动作。
[0114]
方法还可以包括确定是否满足第一层过滤器(712)。例如,第一层过滤器可以通过确定动作计数是否大于或等于全局均值超过该动作计数的全局均值至少x标准偏差来实现。在不同的实施例中,x的值可以设置为任何值。这可以充当用于检测离群动作的第一级粗过滤器。如果不满足此过滤器(例如,如果动作计数不大于全局均值至少x个标准偏差),则可以初步确定动作计数不表示需要警告的离群点(722)。
[0115]
然而,如果阈值被超过并且动作计数超过全局均值指定量,则可以发生进一步处理。在此情况下,方法还可以包括使用动作局部均值与全局均值的比率来计算新的比例表(714)。可以通过使用来自局部对等组的局部均值来重新计算上面描述的比例值。还可以使用针对此特定用户/资源的动作的局部均值来计算局部均值。全局均值可以跨更大的对等组,诸如跨租户、跨应用程序、跨云环境、跨行业等。
[0116]
方法还可以包括如果重新计算的比例高于阈值,则通过组合新的动作比例来构建新的比例表(716)。如果重新计算增加了比例,则这提高各种动作的比例级别。但是,如果原始动作比例低于阈值,则可以使用原始动作比例。
[0117]
在重新计算并构建新的比例表之后,方法可以包括确定是否满足第二层过滤器(718)。第二层过滤器可以将用户/资源的动作计数与乘以新动作比例的全局均值进行比较。如果动作计数超过此阈值,则方法可以输出离群点用户和/或动作的列表(720),并且适当的警告可以根据需要生成。
[0118]
应当理解,图7b中所示的具体步骤提供了根据各种实施例检测云环境中的离群行为的特定方法。也可以根据替代实施例执行其他步骤顺序。例如,本发明的替代实施例可以以不同的次序执行以上概述的步骤。此外,图7b中示出的单独步骤可以包括多个子步骤,这些子步骤可以按适合于单独步骤的各种顺序执行。此外,可以取决于特定应用程序添加或移除附加步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
[0119]
除了图7所示的流程图700之外,以下伪代码提供了可以如何实现此算法的示例。此伪代码是用python编程语言编写的,并示出了可以如何执行该多层过滤器方法以识别离群动作的一个示例。
[0120]
伪代码示例
[0121][0122][0123]
通过使用上面列出的伪代码,以下两个示例示出了来自o365云应
forms)等。服务器812可以经由网络810与远程客户端计算设备802、804、806和808通信地耦合。
[0140]
在各种实施例中,服务器812可以适于运行由系统的组件中的一个或多个组件提供的一个或多个服务或软件应用程序。在一些实施例中,这些服务可以作为基于网络的服务或云服务或在软件即服务(saas)模型下被提供给客户端计算设备802、804、806和/或808的用户。操作客户端计算设备802、804、806和/或808的用户继而可以利用一个或多个客户端应用程序与服务器812交互以利用由这些组件提供的服务。
[0141]
在图中描绘的配置中,系统800的软件组件818、820和822被示为在服务器812上实现。在其他实施例中,系统800的组件中的一个或多个组件和/或由这些组件提供的服务也可以由客户端计算设备802、804、806和/或808中的一个或多个来实现。操作客户端计算设备的用户然后可以利用一个或多个客户端应用程序来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当理解,可以不同于分布式系统800的各种不同的系统配置是可能的。因此,图中所示的实施例是用于实现实施例系统的分布式系统的一个示例并且不旨在进行限制。
[0142]
客户端计算设备802、804、806和/或808可以是运行诸如microsoft windows之类的软件,和/或各种各样的移动操作系统(诸如ios、windows phone、android、blackberry 10、palm os等),并启用了互联网、电子邮件、短消息服务(sms)、或其他通信协议的便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(pda))或可穿戴设备(例如,google头戴式显示器)。客户端计算设备可以是通用个人计算机,包括例如运行各种版本的microsoftapple和/或linux操作系统的个人计算机和/或笔记本计算机。客户端计算设备可以是运行包括但不限于各种各样的gnu/linux操作系统(诸如例如google chrome os)的各种各样的商用或类unix操作系统中的任何一种的工作站计算机。替代地或附加地,客户端计算设备802、804、806和808可以是任何其他电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有姿势输入设备的microsoft xbox游戏机)和/或能够通过(一个或多个)网络810进行通信的个人消息设备。
[0143]
尽管示例性分布式系统800被示出为具有四个客户端计算设备,但是任何数量的客户端计算设备可以被支持。其他设备(诸如具有传感器的设备等)可以与服务器812交互。
[0144]
分布式系统800中的(一个或多个)网络810可以是本领域技术人员熟悉的可以支持使用各种各样商用协议中的任一种的数据通信的任何类型的网络,这些商用协议包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络架构)、ipx(互联网数据包交换)、appletalk等。仅举例来说,(一个或多个)网络810可以是局域网(lan),诸如基于以太网、令牌环和/或类似物的局域网。(一个或多个)网络810可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(vpn)、内联网、外联网、公共交换电话网络(pstn)、红外网络、无线网络(例如,在电气和电子学会(ieee)802.11协议套件中的任何协议、和/或任何其他无线协议下操作的网络);和/或这些和/或其他网络的任何
组合。
[0145]
服务器812可由一个或多个通用计算机、专用服务器计算机(举例来说,包括pc(个人计算机)服务器、服务器、中型服务器、大型计算机、机架式服务器等)、服务器群、服务器集群或任何其他适当的布置和/或组合组成。在各种实施例中,服务器812可以适于运行在前述公开中描述的一个或多个服务或软件应用程序。例如,服务器812可以对应于根据本公开的实施例的用于执行上述处理的服务器。
[0146]
服务器812可以运行操作系统,包括上面讨论的操作系统中的任一个,以及任何商业上可获得的服务器操作系统。服务器812还可以运行各种各样附加服务器应用程序和/或中间层应用程序中的任一个,包括http(超文本传输协议)服务器、ftp(文件传输协议)服务器、cgi(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从oracle、microsoft、sybase、ibm(国际商业机器)等商业上可获得的数据库服务器。
[0147]
在一些实现中,服务器812可以包括一个或多个应用程序以分析和整合从客户端计算设备802、804、806和808的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可包括但不限于馈送、更新或从一个或多个第三方信息源和连续数据流接收的实时更新,其可包括与传感器数据应用程序、金融报价机、网络性能测量工具(例如,网络监控和流量管理应用程序)、点击流分析工具、汽车交通监控等相关的实时事件。服务器812还可以包括一个或多个应用程序以经由客户端计算设备802、804、806和808的一个或多个显示设备来显示数据馈送和/或实时事件。
[0148]
分布式系统800还可以包括一个或多个数据库814和816。数据库814和816可以驻留在各种各样的位置。举例来说,数据库814和816中的一个或多个可以驻留在服务器812本地(和/或驻留在服务器812中)的非暂时性存储介质上。替代地,数据库814和816可以远离服务器812并且经由基于网络的或专用的连接来与服务器812通信。在一组实施例中,数据库814和816可以驻留在存储区域网络(san)中。类似地,用于执行归属于服务器812的功能的任何必要文件可以根据需要被本地存储在服务器812上和/或远程存储。在一组实施例中,数据库814和816可以包括关系数据库,诸如由oracle提供的数据库,其适于响应于sql格式的命令来存储、更新和检索数据。
[0149]
图9是根据本公开的实施例的系统环境900的一个或多个组件的简化框图,通过该系统环境900由实施例系统的一个或多个组件提供的服务可以被提供为云服务。在所示实施例中,系统环境900包括一个或多个客户端计算设备904、906和908,用户可以使用它们与提供云服务的云基础设施系统902交互。客户端计算设备可以被配置为操作客户端应用程序,诸如网络浏览器、专有客户端应用程序(例如,oracle forms)或某个其他应用程序,客户端计算设备的用户可以使用客户端应用程序与云基础设施系统902交互以使用云基础设施系统902提供的服务。
[0150]
应当理解,图中所描绘的云基础设施系统902可以具有所描绘的那些组件以外的其他组件。此外,图中所示的实施例仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其他实施例中,云基础设施系统902可以具有比图中所示的更多或更少的组件,可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。
[0151]
客户端计算设备904、906和908可以是与上面针对802、804、806和808描述的设备类似的设备。
[0152]
尽管示例性系统环境900被示为具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。其他设备(诸如具有传感器的设备等)可以与云基础设施系统902交互。
[0153]
(一个或多个)网络910可以促进客户端904、906和908与云基础设施系统902之间的数据通信和交换。每个网络可以是本领域技术人员熟悉的可支持使用各种各样的商用协议中的任何一种的数据通信的任何类型的网络,这些商用协议包括上面针对(一个或多个)网络810描述的协议。
[0154]
云基础设施系统902可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以包括上面针对服务器812描述的计算机和/或服务器。
[0155]
在某些实施例中,云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的大量服务,诸如在线数据存储和备份解决方案、基于网络的电子邮件服务、托管办公室套件和文档协作服务、数据库处理、受管理的技术支持服务(managed technical support services)等。云基础设施系统提供的服务可以动态缩放以满足其用户的需求。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。通常,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务都被称为“云服务”。通常,在公共云环境中,组成云服务提供商的系统的服务器和系统不同于客户自己的现场(on

premises)服务器和系统。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由诸如互联网之类的通信网络按需订购和使用应用程序。
[0156]
在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、托管的数据库、托管的网络服务器、软件应用程序的受保护的计算机网络访问,或由云供应商提供给用户的其他服务,或如本领域以其他方式所已知的服务。例如,服务可以包括通过互联网对云上的远程存储装置进行受密码保护的访问。作为另一示例,服务可以包括基于网络服务的托管的关系数据库和供联网开发者私人使用的脚本语言中间件引擎。作为另一示例,服务可以包括对托管在云供应商的网站上的电子邮件软件应用程序的访问。
[0157]
在某些实施例中,云基础设施系统902可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给客户的一套应用程序、中间件和数据库服务产品。这样的云基础设施系统的示例是本受让人提供的oracle公共云。
[0158]
在各种实施例中,云基础设施系统902可以适于自动供应、管理和跟踪客户对云基础设施系统902提供的服务的订阅。云基础设施系统902可以经由不同的部署模型提供云服务。例如,可以在公共云模型下提供服务,在该公共云模型中云基础设施系统902由销售云服务的组织拥有(例如,由oracle拥有)并且服务对一般公众或不同行业企业可用。作为另一示例,可以在私有云模型下提供服务,在该私有云模型中云基础设施系统902仅为单个组织操作并且可以为组织内的一个或多个实体提供服务。还可以在社区云模型下提供云服务,在该社区云模型中云基础设施系统902和由云基础设施系统902提供的服务由相关社区中的若干组织共享。还可以在混合云模型下提供云服务,该混合云模型是两个或更多个不同模型的组合。
[0159]
在一些实施例中,云基础设施系统902提供的服务可以包括在软件即服务(saas)
类别、平台即服务(paas)类别、基础设施即服务(iaas)类别或包括混合服务的其他服务类别下提供的一个或多个服务。客户可以经由订阅订单订购由云基础设施系统902提供的一个或多个服务。云基础设施系统902然后执行处理以提供客户的订阅订单中的服务。
[0160]
在一些实施例中,云基础设施系统902提供的服务可以包括但不限于应用程序服务、平台服务和基础设施服务。在一些示例中,应用程序服务可以由云基础设施系统经由saas平台提供。saas平台可以被配置为提供属于saas类别的云服务。例如,saas平台可以提供在集成开发和部署平台上构建和交付一套按需的应用程序的能力。saas平台可以管理和控制用于提供saas服务的底层软件和基础设施。通过利用saas平台提供的服务,客户可以利用在云基础设施系统上执行的应用程序。客户可以获得应用程序服务,而不需要客户购买独立的许可和支持。可以提供各种不同的saas服务。示例包括但不限于为大型组织提供销售业绩管理、企业集成和业务灵活性的解决方案的服务。
[0161]
在一些实施例中,平台服务可以由云基础设施系统经由paas平台提供。paas平台可以被配置为提供属于paas类别的云服务。平台服务的示例可以包括但不限于使组织(诸如oracle)能够在共享的通用架构上整合现有应用程序的服务,以及构建利用平台提供的共享服务的新应用程序的能力。paas平台可以管理和控制用于提供paas服务的底层软件和基础设施。客户可以获得云基础设施系统提供的paas服务,而不需要客户购买独立的许可和支持。平台服务的示例包括但不限于oracle java云服务(jcs)、oracle数据库云服务(dbcs)及其他。
[0162]
通过利用paas平台提供的服务,客户可以采用云基础设施系统支持的编程语言和工具,并且还可以控制部署的服务。在一些实施例中,云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,oracle fusion middleware服务)和java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,该模型使组织能够汇集数据库资源并以数据库云的形式向客户提供数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供平台以开发和部署各种业务应用程序,并且java云服务可以为客户提供平台以部署java应用程序。
[0163]
各种不同的基础设施服务可以由云基础设施系统中的iaas平台提供。基础设施服务为利用saas平台和paas平台提供的服务的客户促进对底层计算资源(诸如存储、网络和其他基础计算资源)的管理和控制。
[0164]
在某些实施例中,云基础设施系统902还可以包括基础设施资源930,用于提供用于向云基础设施系统的客户提供各种服务的资源。在一个实施例中,基础设施资源930可以包括硬件(诸如服务器、存储和联网资源)的预集成和优化的组合,以执行由paas平台和saas平台提供的服务。
[0165]
在一些实施例中,云基础设施系统902中的资源可以由多个用户共享并且按需求动态地重新分配。附加地,资源可能被分配给不同时区中的用户。例如,云基础设施系统930可以使第一时区中的第一组用户能够利用云基础设施系统的资源指定的小时数,然后使得相同的资源能够重新分配给位于不同时区中的另一组用户,从而最大化对资源的利用。
[0166]
在某些实施例中,可以提供由云基础设施系统902的不同组件或模块以及由云基础设施系统902提供的服务共享的多个内部共享服务932。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业存储库服务、企业管理器服务、病毒扫描和白名单服
务、高可用性、备份和恢复服务、启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
[0167]
在某些实施例中,云基础设施系统902可以提供云基础设施系统中的云服务(例如,saas、paas和iaas服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统902接收的客户的订阅的能力等。
[0168]
在一个实施例中,如图中所描绘的,云管理功能可以由一个或多个模块(诸如订单管理模块920、订单编排模块922、订单供应模块924、订单管理和监控模块926、和身份管理模块928)提供。这些模块可以包括一个或多个计算机和/或服务器或使用一个或多个计算机和/或服务器来提供这些模块,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
[0169]
在示例性操作934中,使用诸如客户端设备904、906或908之类的客户端设备的客户可以通过请求由云基础设施系统902提供的一个或多个服务并下订单订阅由云基础设施系统902提供的一个或多个服务来与云基础设施系统902交互。在某些实施例中,客户可以访问云用户接口(ui)、云ui 912、云ui 914和/或云ui 916,并经由这些ui下订阅订单。响应于客户下订单而由云基础设施系统902接收的订单信息可以包括识别客户和客户打算订阅的由云基础设施系统902提供的一个或多个服务的信息。
[0170]
在客户已经下订单之后,订单信息经由云ui 912、914和/或916被接收。
[0171]
在操作936处,订单被存储在订单数据库918中。订单数据库918可以是由云基础设施系统918操作并结合其他系统元件操作的若干数据库之一。
[0172]
在操作938处,订单信息被转发到订单管理模块920。在一些情况下,订单管理模块920可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,并且在验证后,预订订单。
[0173]
在操作940处,关于订单的信息被传送到订单编排模块922。订单编排模块922可以利用订单信息来编排针对客户下的订单的服务和资源的供应。在一些情况下,订单编排模块922可以编排资源的供应以使用订单供应模块924的服务来支持订阅的服务。
[0174]
在某些实施例中,订单编排模块922使得能够管理与每个订单相关联的业务过程并应用业务逻辑来确定订单是否应该进行供应。在操作942处,在接收到新订阅的订单时,订单编排模块922向订单供应模块924发送请求以分配资源并配置满足订阅订单所需的那些资源。订单供应模块924使得能够为客户订购的服务分配资源。订单供应模块924在由云基础设施系统900提供的云服务与用于供应资源以提供所请求的服务的物理实现层之间提供抽象级别。订单编排模块922因此可以与诸如服务和资源实际是被即时(on the fly)供应还是预先供应并且仅在请求时分配/指派之类的实现细节隔离。
[0175]
在操作944处,一旦服务和资源被供应,所提供的服务的通知就可以由云基础设施系统902的订单供应模块924发送到客户端设备904、906和/或908上的客户。
[0176]
在操作946处,客户的订阅订单可以由订单管理和监控模块926管理和跟踪。在一些情况下,订单管理和监控模块926可以被配置为收集订阅订单中的服务的使用统计信息,诸如使用的存储量、传输的数据量、用户数量以及系统运行时间和系统停机时间的量。
[0177]
在某些实施例中,云基础设施系统900可以包括身份管理模块928。身份管理模块928可以被配置为提供身份服务,诸如云基础设施系统900中的访问管理和授权服务。在一
些实施例中,身份管理模块928可以控制关于希望利用云基础设施系统902提供的服务的客户的信息。这样的信息可以包括验证这样的客户的身份的信息和描述那些客户被授权相对于各种系统资源(例如,文件、目录、应用程序、通信端口、存储器段等)执行哪些动作的信息。身份管理模块928还可以包括对关于每个客户的描述性信息以及关于可以如何以及由谁访问和修改该描述性信息的管理。
[0178]
图10示出了其中可以实现本发明的各种实施例的示例性计算机系统1000。系统1000可用于实现上面描述的任何计算机系统。如图所示,计算机系统1000包括处理单元1004,其经由总线子系统1002与多个外围子系统通信。这些外围子系统可以包括处理加速单元1006、i/o子系统1008、存储子系统1018和通信子系统1024。存储子系统1018包括有形计算机可读存储介质1022和系统存储器1010。
[0179]
总线子系统1002提供了用于让计算机系统1000的各种组件和子系统按预期彼此通信的机制。尽管总线子系统1002被示意性地示为单个总线,但是总线子系统的替代实施例可以利用多个总线。总线子系统1002可以是使用各种各样的总线架构中的任何一种的若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线和局部总线。例如,这样的架构可包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和可以被实现为按照ieee p1386.1标准制造的夹层总线的外围组件互连(pci)总线。
[0180]
可以被实现为一个或多个集成电路(例如,传统微处理器或微控制器)的处理单元1004控制计算机系统1000的操作。一个或多个处理器可以被包括在处理单元1004中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元1004可以被实现为一个或多个独立处理单元1032和/或1034,其中每个处理单元中包括单核或多核处理器。在其他实施例中,处理单元1004还可以被实现为通过将两个双核处理器集成到单个芯片中而形成的四核处理单元。
[0181]
在各种实施例中,处理单元1004可以响应于程序代码执行各种各样的程序并且可以维护多个并发执行的程序或进程。在任何给定时间,要被执行的一些或全部程序代码可以驻留在(一个或多个)处理器1004和/或存储子系统1018中。通过合适的编程,(一个或多个)处理器1004可以提供上面描述的各种功能。计算机系统1000可附加地包括处理加速单元1006,其可包括数字信号处理器(dsp)、专用处理器等。
[0182]
i/o子系统1008可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可包括键盘、诸如鼠标或轨迹球之类的指点设备、并入显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风和其他类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或姿势识别设备,诸如使用户能够使用姿势和口头命令通过自然用户接口来控制输入设备(诸如microsoft360游戏控制器)并与输入设备交互的microsoft运动传感器。用户接口输入设备还可以包括眼睛姿势识别设备,诸如google眨眼检测器,其检测来自用户的眼睛活动(例如,在拍照和/或进行菜单选择时的“眨眼”),并将眼睛姿势转换为到输入设备(例如,google)的输入。附加地,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)进行交互的语音识别感测设备。
[0183]
用户接口输入设备还可以包括但不限于三维(3d)鼠标、操纵杆或指点杆、游戏手柄和图形输入板,以及音频/视觉设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条码阅读器3d扫描仪、3d打印机、激光测距仪和眼睛注视跟踪设备。附加地,用户接口输入设备可以包括例如医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层扫描、医学超声设备。用户接口输入设备还可以包括例如音频输入设备,诸如midi键盘、数字乐器等。
[0184]
用户接口输出设备可包括显示子系统、指示灯或诸如音频输出设备之类的非视觉显示器等。显示子系统可以是阴极射线管(crt)、诸如使用液晶显示器(lcd)或等离子显示器的平板设备之类的平板设备、投影设备、触摸屏等。通常,术语“输出设备”的使用旨在包括用于将信息从计算机系统1000输出到用户或其他计算机的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于可视地传送文本、图形和音频/视频信息的各种各样的显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
[0185]
计算机系统1000可以包括存储子系统1018,该存储子系统1018包括被示为当前位于系统存储器1010内的软件元素。系统存储器1010可以存储在处理单元1004上可加载和可执行的程序指令,以及在这些程序的执行期间生成的数据。
[0186]
取决于计算机系统1000的配置和类型,系统存储器1010可以是易失性的(诸如随机存取存储器(ram))和/或非易失性的(诸如只读存储器(rom)、闪存等)。ram通常包含可由处理单元1004立即访问和/或当前由处理单元1004操作和执行的数据和/或程序模块。在一些实现中,系统存储器1010可以包括多种不同类型的存储器,诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)。在一些实现中,包含有助于在计算机系统1000内的元件之间(诸如在启动期间)传输信息的基本例程的基本输入/输出系统(bios)通常可以被存储在rom中。举例来说,而非限制,系统存储器1010还示出了可以包括客户端应用程序、网络浏览器、中间层应用程序、关系数据库管理系统(rdbms)等的应用程序1012、程序数据1014和操作系统1016。举例来说,操作系统1016可以包括各种版本的microsoftapple和/或linux操作系统、各种各样的商用或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或移动操作系统,诸如ios、phone、os、10os和os操作系统。
[0187]
存储子系统1018还可以提供用于存储提供一些实施例的功能的基本编程和数据构造的有形计算机可读存储介质。当由处理器执行时提供上面描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统1018中。这些软件模块或指令可以由处理单元1004执行。存储子系统1018还可以提供用于存储根据本发明使用的数据的存储库。
[0188]
存储子系统1000还可以包括可以进一步被连接到计算机可读存储介质1022的计算机可读存储介质读取器1020。计算机可读存储介质1022与系统存储器1010一起,并且可选地与系统存储器1010组合,可以综合地表示远程、本地、固定和/或可移动存储设备以及用于临时和/或更永久地包含、存储、发送和检索计算机可读信息的存储介质。
[0189]
包含代码或代码的部分的计算机可读存储介质1022还可以包括本领域已知或使
用的任何适当介质,包括存储介质和通信介质,诸如但不限于以任何方法或技术实现的用于存储和/或发送信息的易失性和非易失性、可移动和不可移动介质。这可以包括诸如ram、rom、电子可擦除可编程rom(eeprom)、闪存或其他存储技术、cd

rom、数字通用盘(dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备或其他有形计算机可读介质之类的有形计算机可读存储介质。这还可以包括诸如数据信号、数据发送或可以用于发送所需信息并且可以由计算系统1000访问的任何其他介质之类的无形计算机可读介质。
[0190]
举例来说,计算机可读存储介质1022可以包括从不可移动非易失性磁介质读取或向其写入的硬盘驱动器、从可移动非易失性磁盘读取或向其写入的磁盘驱动器、以及从可移动非易失性光盘(诸如cd rom、dvd和光盘)或其他光学介质读取或向其写入的光盘驱动器。计算机可读存储介质1022可以包括但不限于驱动、闪存卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字视频带等。计算机可读存储介质1022还可以包括基于非易失性存储器的固态驱动器(ssd)(诸如基于闪存的ssd、企业闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如基于固态ram、动态ram、静态ram、dram的ssd、磁阻ram(mram)ssd)以及使用dram和基于闪存的ssd的组合的混合ssd。盘驱动器及其相关联的计算机可读介质可以为计算机系统1000提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
[0191]
通信子系统1024提供到其他计算机系统和网络的接口。通信子系统1024用作用于从计算机系统1000接收来自其他系统的数据以及向其他系统发送数据的接口。例如,通信子系统1024可以使计算机系统1000能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统1024可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术、诸如3g、4g或edge(用于全球演进的增强数据速率)、wifi(ieee 802.11系列标准),或其他移动通信技术,或其任何组合)访问无线语音和/或数据网络的射频(rf)收发器组件、全球定位系统(gps)接收器组件和/或其他组件。在一些实施例中,除了或替代无线接口,通信子系统1024可以提供有线网络连接(例如,以太网)。
[0192]
在一些实施例中,通信子系统1024还可以代表可以使用计算机系统1000的一个或多个用户接收结构化和/或非结构化的数据馈送1026、事件流1028、事件更新1030等形式的输入通信。
[0193]
举例来说,通信子系统1024可以被配置为从社交网络和/或其他通信服务的用户实时接收数据馈送1026,诸如馈送、更新、诸如丰富站点摘要(rss)馈送之类的网络馈送和/或来自一个或多个第三方信息源的实时更新。
[0194]
附加地,通信子系统1024还可以被配置为接收连续数据流形式的数据,该数据可以包括实时事件的事件流1028和/或事件更新1030,其本质上可以是连续的或无界的,没有明确的结束。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、金融报价机、网络性能测量工具(例如网络监控和流量管理应用程序)、点击流分析工具、汽车交通监控等。
[0195]
通信子系统1024还可以被配置为将结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等输出到一个或多个数据库,该一个或多个数据库可以与耦合到计算机系统1000的一个或多个流数据源计算机通信.
[0196]
计算机系统1000可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板、pda)、可穿戴设备(例如,google头戴式显示器)、pc、工作站、大型机、信息亭、服务器机架或任何其他数据处理系统。
[0197]
由于计算机和网络的不断变化的性质,图中描绘的计算机系统1000的描述仅旨在作为具体示例。具有比图中描绘的系统更多或更少组件的许多其他配置是可能的。例如,还可以使用定制硬件和/或可以在硬件、固件、软件(包括小程序)或组合中实现特定元件。此外,可以采用到诸如网络输入/输出设备之类的其他计算设备的连接。基于本文提供的公开和教导,本领域的普通技术人员将理解实现各种实施例的其他方式和/或方法。
[0198]
在前述描述中,为了解释的目的,阐述了许多具体细节以提供对本发明的各种实施例的透彻理解。然而,对于本领域技术人员将明显的是,本发明的实施例可以在没有这些具体细节中的一些的情况下被实践。在其他情况下,众所周知的结构和设备以框图形式被示出。
[0199]
前述描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,示例性实施例的前述描述将为本领域技术人员提供用于实现示例性实施例的使能描述。应当理解,在不脱离如所附权利要求中阐述的本发明的精神和范围的情况下,可以对元件的功能和布置做出各种更改。
[0200]
在前述描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将理解,实施例可以在没有这些具体细节的情况下被实践。例如,电路、系统、网络、过程和其他组件可能已被示为框图形式的组件,以免在不必要的细节中模糊实施例。在其他情况下,众所周知的电路、过程、算法、结构和技术可能已经在没有不必要的细节的情况下被示出以避免模糊实施例。
[0201]
此外,应注意,单独实施例可能已被描述为被描绘为流程图(flowchart)、流程图表(flow diagram)、数据流程图、结构图或框图的过程。尽管流程图可能已将操作描述为顺序过程,但许多操作可以被并行或并发执行。此外,可以重新布置操作的次序。流程在其操作完成时终止,但可能具有图中未包括的附加步骤。过程可以对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
[0202]
术语“计算机可读介质”包括但不限于便携式或固定存储设备、光存储设备、无线信道和能够存储、包含或携带(一个或多个)指令和/或数据的各种其他介质。代码段或机器可执行指令可以表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而被耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的方式(包括存储器共享、消息传递、令牌传递、网络传输等)被传递、转发或发送。
[0203]
此外,实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码实现时,执行必要的任务的程序代码或代码段可以被存储在机器可读介质中。(一个或多个)处理器可以执行必要的任务。
[0204]
在前述说明书中,参照本发明的具体实施例描述了本发明的方面,但是本领域技术人员将认识到本发明不限于此。上述发明的各种特征和方面可以单独或联合使用。此外,可以在超出本文描述的那些环境和应用的任何数量的环境和应用中利用实施例,而不脱离本说明书的更广泛的精神和范围。因此,说明书和附图被认为是说明性的而不是限制性的。
[0205]
附加地,为了说明的目的,以特定次序描述了方法。应当理解,在替代实施例中,可以以与所描述的次序不同的次序来执行这些方法。还应当理解,上述方法可以通过硬件组件来执行,或者可以体现在机器可执行指令的序列中,这些机器可执行指令可以用于使机器(诸如通用或专用处理器或用指令编程的逻辑电路)来执行这些方法。这些机器可执行指令可以被存储在一种或多种机器可读介质上,诸如cd

rom或其他类型的光盘、软盘、rom、ram、eprom、eeprom、磁卡或光卡、闪存或适合于存储电子指令的其他类型的机器可读介质。替代地,方法可以通过硬件和软件的组合来执行。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1