CN110168509A - 集成应用问题检测和改正控制 - Google Patents

集成应用问题检测和改正控制 Download PDF

Info

Publication number
CN110168509A
CN110168509A CN201880006021.0A CN201880006021A CN110168509A CN 110168509 A CN110168509 A CN 110168509A CN 201880006021 A CN201880006021 A CN 201880006021A CN 110168509 A CN110168509 A CN 110168509A
Authority
CN
China
Prior art keywords
application
logic unit
state
identified
computing system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880006021.0A
Other languages
English (en)
Other versions
CN110168509B (zh
Inventor
N·帕蒂尔
S·布萨姆
H·米斯拉
D·C·尼卡
R·布特普尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110168509A publication Critical patent/CN110168509A/zh
Application granted granted Critical
Publication of CN110168509B publication Critical patent/CN110168509B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Preliminary Treatment Of Fibers (AREA)
  • Paper (AREA)
  • Inking, Control Or Cleaning Of Printing Machines (AREA)

Abstract

在一组集成应用的操作中检测到问题。启动辅助逻辑单元并且识别引起问题的应用。控制应用运行逻辑单元以将应用回滚到最后已知良好状态。

Description

集成应用问题检测和改正控制
背景技术
计算系统目前广泛使用。一些这样的计算系统是集成了多个不同应用的系统。例如,一个这样的计算系统是生产力服务计算系统,其集成了多个不同的生产力应用(例如,文字处理应用、电子表格应用、幻灯片演示应用等),并且允许用户订阅所述集成的应用中的一个或多个。所述计算系统还可以托管集成服务,例如文档管理服务、社交网络服务、电子邮件(email)服务等。
在一个示例中,集成意味着可以通过门户来管理和配置应用或服务,从而用户可以通过该门户被添加。同样,在一个示例中,针对集成的应用,每个用户可以具有用于获得对所有应用的访问的单点登录。另外,还定期地发布对集成的应用的更新或升级。
当用户订阅所述应用中的一个或多个时,用户可以在生产力服务计算系统上安装与生产力服务相对应的客户端组件,该客户端组件向用户提供对该用户已订阅的一个或多个应用或服务的访问。
在这样的计算系统中,生产力服务计算系统滚动出另外的代码或者对现有代码的修改并不罕见。例如,生产力服务计算系统可以推出升级的版本、对现有版本的错误修复、或者对集成的生产力应用和服务的宽泛的多种其他修改或改变。
可能的情况是,正在使用他或她已订阅的一个或多个应用或服务的用户可能遇到问题,该问题是降级或阻止应用或服务中的一个或多个应用或服务的操作的问题。因为应用是集成的,所以用户可能难以识别出那个特定的应用或服务引起了该问题。例如,对一个应用或服务的升级或修正可能会引起另一个集成的应用或服务中的问题。
以上讨论仅仅是针对一般的背景信息提供的,并且不旨在用于帮助确定所要求保护的主题的范围。
发明内容
在对一组集成的应用的操作中检测到问题。启动辅助逻辑单元并且确定引起该问题的应用。控制应用运行逻辑单元以将应用回滚到最后已知良好状态。
提供了该发明内容以用简化的形式引入对在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决了在背景技术中所述的任何或全部缺点的实现。
附图说明
图1是计算系统架构的一个示例的框图。
图2是更加详细地示出了辅助逻辑单元的一个示例的框图。
图3A和3B(在本文中统称为图3)示出了在识别问题并且对客户端计算系统采取补救动作时在图1中所示的架构的操作的一个示例。
图4是示出了在识别问题并且对该架构的服务器侧采取补救动作时在图1中所示的架构的操作的一个示例的流程图。
图5是示出了部署在云计算架构中的在图1中所示出的架构的框图。
图6-8示出了能够在先前附图中所示的架构中使用的移动设备的示例。
图9是能够在先前附图中所示的架构中使用的计算环境的一个示例的框图。
具体实施方式
图1是示出了计算系统架构100的一个示例的框图。架构100说明性地包括生产力服务计算系统102、分析计算系统104、辅助服务计算系统106、以及一个或多个客户端计算系统108。系统102-108说明性地通过网络110彼此进行通信。网络110可以是宽泛的多种不同类型的网络,例如广域网、局域网、蜂窝网络、此外还有宽泛的多种其他网络。
在图1中所示的示例中,生产力服务计算系统102说明性地包括一个或多个处理器或服务器112、数据存储单元114(其存储日志数据116并且能够存储宽泛的多种其他数据118)、应用功能逻辑单元120(其可以运行多个不同的、集成的生产力应用122-124)、故障诊断逻辑单元126,并且其可以包括其他项目128。生产力服务计算系统102说明性地允许用户(例如,用户130)访问和运行一个或多个生产力应用122-124。在这样做时,客户端计算系统108说明性地生成具有用户输入机制134的一个或多个用户界面132,以由用户130进行交互。用户130可以与用户输入机制134交互以便控制和操纵客户端计算系统108,并且最终控制和操纵生产力服务计算系统102。因此,例如,用户130可以与用户输入机制134交互以订阅服务计算系统102上的一个或多个应用122-124。这给予用户102访问那些应用的功能的权限,以使得用户130能够访问那些应用。
在一个示例中,应用122-124是生产力应用,例如文字处理应用、电子表格应用、幻灯片演示应用等。然而,将注意到的是,生产力服务计算系统102还能够为用户130提供订阅和访问托管的服务的能力。这样的服务可以包括文件共享和管理服务、社交网络服务、电子邮件或其他通信服务等。
在图1中所示的示例中,客户端计算系统108包括一个或多个处理器或服务器136、数据存储单元138(可以存储具有日志条目的日志数据140,以及其他项目142)、应用运行逻辑单元144,其中,应用运行逻辑单元144可以运行用户已经订阅或者以其他方式在生产力服务计算系统102处获得了对其的访问权的一个或多个应用122-124,并且其可以包括故障诊断逻辑单元146。客户端计算系统108还可以包括辅助客户端系统148、用户活动检测逻辑单元150、用户界面逻辑单元152,并且其可以包括其他项目154。辅助客户端系统148本身可以包括应用监视逻辑单元156、运行应用检测逻辑单元158、应用状态逻辑单元160、事件标识符逻辑单元162、问题检测逻辑单元164、辅助逻辑单元166、和其他项目168。在更加详细地描述架构之前,将首先提供对架构100中的项目中的一些项目及其操作的简要描述。
应用运行逻辑单元144可以运行应用122-124的客户端组件,或者其可以与应用功能逻辑单元120交互以在生产力服务计算系统102上运行应用122-124。可以启动故障诊断逻辑单元146以对所有应用122-124统一地进行故障诊断,或者具体地对给定应用122-124进行故障诊断。
日志数据140说明性地具有在运行应用122-124时记录发生的事件的日志条目。所述事件可以采用宽泛的多种不同的形式,并且说明性地表示任务、动作、步骤、通知、以及在运行应用时由应用运行逻辑单元144所采取的其他活动。其还说明性地检测在运行这些应用时采取的用户动作。所述事件可以表示宽泛的多种其他事项。
当应用运行逻辑单元144正在运行应用122-124时,辅助客户端系统148说明性地在后台运行。应用监视逻辑单元156说明性地针对事件来监视正在运行的应用,并且将这些事件存储在日志数据140中。运行应用检测逻辑单元158在日志数据中保存关于哪些应用122-124当前正在运行的指示。应用状态逻辑单元160说明性地保存那些正在运行的应用的状态(在下文更加详细地描述),并且事件标识符逻辑单元162标识被记录在日志数据140中的特定事件。
问题检测逻辑单元164说明性地基于由事件标识符逻辑单元160所标识的特定事件来检测何时在应用122-124中的一个或多个中发生问题。当已经发生问题时,启动辅助逻辑单元166。参考图1在下文中更加详细地描述了逻辑单元166。然而,简要地,它聚合日志数据140并且将其发送至辅助服务计算系统106。它还执行故障诊断以识别在客户端计算系统108上运行的以及导致或引起问题的特定应用122-124。接着,它确定问题是否由于所识别的应用中的状态改变(例如,因为应用被升级、更新、或以其他方式被修改)而发生。如果是,则它将应用的状态回滚到其最后已知良好状态并报告该问题,并且回滚到分析计算系统104和辅助服务计算系统106两者。如果没有由于状态改变而发生错误,那么辅助逻辑单元166从故障诊断逻辑单元146或者从辅助服务计算系统106获得指令,所述指令指示可以采取以便解决该问题的步骤。
用户活动检测逻辑单元150说明性地检测用户活动以在问题发生时确定用户活跃于哪个特定应用122-124。用户界面逻辑单元152说明性地生成用户界面132并检测用户与那些界面的交互。
当辅助服务计算系统106接收到关于在客户端计算系统106上已经发生了问题的通知时,其可以对生产力服务计算系统102执行检查以确定问题是否源自服务等级。如果是,则其也可以将服务回滚到其最后已知良好状态。
因此,在图1中所示的示例中,辅助服务计算系统106说明性地包括一个或多个处理器或服务器170、数据存储单元172、故障诊断器控制逻辑单元174、服务问题识别逻辑单元176、最后已知良好状态标识符逻辑单元178、回滚控制逻辑单元180、许可确定逻辑单元182、补救动作控制逻辑单元184,并且其可以包括其他项目186。故障诊断器控制逻辑单元174可以响应于接收到对问题的通知而启动故障诊断逻辑单元126,以使得其可以对生产力服务计算系统102进行故障诊断。服务问题识别逻辑单元176可以访问日志数据116以及由故障诊断逻辑单元126生成的数据,以确定问题是否源自生产力服务计算系统102,而不是源自客户端计算系统108。如果是,则最后已知良好状态标识符逻辑单元178说明性地识别服务的最后已知良好状态,并且回滚控制逻辑单元180对应用功能逻辑单元120进行控制以将服务回滚到其最后已知良好状态(例如,到其最后已知良好的版本)。
如果问题不源于生产力服务计算系统102,则许可确定逻辑单元182确定是否需要来自用户130或客户端计算系统108的许可以便采取动作来修复客户端计算系统108上的问题。如果不需要,则补救动作控制逻辑单元104说明性地并且自动地对客户端计算系统108采取动作以便补救该问题。其还可以向客户端计算系统108提供关于所采取的特定步骤的通知。然而,如果确定需要来自客户端计算系统108或用户130的许可以便采取将补救该动作的步骤,则补救动作控制逻辑单元184说明性地生成对为了补救该问题所需的特定步骤或动作的指示,并且将它们提供至客户端计算系统108。辅助逻辑单元166可以使用用户界面逻辑单元152来为用户130、管理用户、或者为其他人显现那些步骤或动作。
分析计算系统104说明性地包括处理器或服务器188、数据存储单元190、分析和洞察生成逻辑单元192,并且其可以包括其他项目194。数据存储单元190可以存储宽泛的多种信息,例如指示在架构100中遇到的各种问题或难题的信息。分析和洞察生成逻辑单元192可以对该数据执行分析,并且将分析结果显现给用户或架构100、架构100中的工程或制造团队、管理用户、或者以宽泛的多种其他方式显现。
图2是更加详细地示出了辅助逻辑单元166的一个示例的框图。在图2中所示的示例中,辅助逻辑单元166说明性地包括日志数据访问和聚合逻辑单元200、服务交互逻辑单元202、故障诊断器启动逻辑单元204、应用识别器逻辑单元206、状态比较逻辑单元208、回滚确定逻辑单元210、补救动作控制逻辑单元212、回滚控制逻辑单元214,并且其可以包括其他项目216。作为概述,当问题检测逻辑单元164(在图1中所示)检测到客户端计算系统108上的问题时,日志数据访问和聚合逻辑单元200说明性地访问日志数据140并且对标识在相关时间段期间(例如,从检测到问题之前延伸到检测到问题之后的时间段)发生的事件的日志数据进行聚合。由服务交互逻辑单元202对该数据进行聚合并且说明性地将该数据发送至辅助服务计算系统106。该数据可以包括对辅助服务计算系统106的请求,该请求关于对生产力服务计算系统102执行检查以确定系统102上是否在发生任何问题。
故障诊断器启动逻辑单元204说明性地启动故障诊断逻辑单元146以对应用运行逻辑单元144或其正在运行的应用122-124进行故障诊断。应用识别器逻辑单元206基于日志数据并且基于由故障诊断器逻辑单元生成的信息来识别哪个特定应用122-124引起了该问题。状态比较逻辑单元208说明性地将应用的当前状态与最后已知良好状态进行比较,该最后已知良好状态是应用在检测到问题之前存在的状态。如果在状态的改变后不久检测到问题(例如,升级、更新等后不久),则这可以指示问题是由状态改变引起的。回滚确定逻辑单元210进行该确定,并且如果这确实是由状态改变引起的,则回滚控制逻辑单元214生成控制信号以通过将应用回滚到其最后已知良好状态来恢复应用。例如,其可能会将该应用回滚到最近更新、升级等之前的状态。
如果确定问题不是由状态改变引起的,则补救动作控制逻辑单元212说明性地识别可以采取以解决该问题的补救动作。这可以是基于由故障诊断逻辑单元146生成的信息或由辅助服务计算系统106提供的信息的。这将在下文中更加详细地描述。
图3A和3B(在本文中统称为图3)示出了流程图,该流程图图示了在图1和2中所示的架构100和辅助逻辑单元166的操作的一个示例。现在将结合彼此来描述图1-3。
首先假设辅助客户端系统148在客户端计算系统108上在后台运行。这是由图3的流程图中的框240指示的。应用监视逻辑单元156说明性地监视运行的应用并且将表示事件的条目记录在日志数据140中,所述事件是由应用、应用运行逻辑单元144、用户130的用户活动生成的,或者是其他事件。对应用进行监视是由框242指示的,并且对事件进行记录是由框244指示的。辅助客户端系统148可以以其他方式在后台运行并且也执行其他动作,并且这是由框246指示的。
运行应用检测逻辑单元258说明性地保持关于哪些特定应用122-124当前在客户端计算系统108上运行的记录。识别这些运行应用是由图3的流程图中的框248指示的。
应用状态逻辑单元160说明性为每个运行的应用保存状态指示符,以指示应用的状态。这是由框250指示的。所述状态可以包括各种不同的信息,例如应用的版本252、标识对应用做出的最后更新的最后更新标识符254、应用本身的状态(例如,生成的特定用户界面)、任何给定用户界面上的控件的状态、或宽泛的多种其他状态信息。保存运行的应用本身的状态是由框256指示的。指示每个运行的应用的状态的状态指示符也可以包括宽泛的多种其他项目,并且这是由框258指示的。
事件标识符逻辑单元162说明性地访问事件被记录的日志数据140,以识别所记录的任何特定事件。访问日志数据以识别所记录的事件是由框260指示的。可能的情况是,事件本身或事件的序列或事件的定时可以指示存在可能降级或阻止一个或多个应用122-124或服务的操作的问题。因此,问题检测逻辑单元164说明性地基于日志数据识别任何应用的任何问题。这是由框262指示的。
示例可能是有帮助的。例如,用户130可以在电子邮件服务中创作电子邮件消息,并且将文字处理文档作为附件附加至该电子邮件。接着,用户可以致动发送致动器,但是出于某种原因,具有附件的电子邮件消息没有被发送,而是停留在用户的发件箱中。已知该序列,可能是用户130知道存在问题,但不知道是什么引起了该问题。例如,有可能文字处理应用无法与电子邮件服务正常地通信。也有可能文字处理应用正常地操作,但问题在电子邮件服务中。还应当注意的是,在一个示例中,将记录与在上文中讨论的动作中的每个动作相对应的事件。因此,将记录附加文档的用户动作。将记录创作电子邮件消息的用户动作,并且将记录与电子邮件用户界面中的发送致动器交互的用户,以指示该用户希望发送带有附件的电子邮件消息。另外,还将记录将电子邮件消息置于用户的发件箱中的动作。然而,在一定量的时间之后,如果没有事件指示消息曾被发送,或者指示消息仍然在用户的发件箱中,则这可以被问题检测逻辑单元164检测为指示问题。
如果没有检测到问题,如在图3的流程图中的框264中所示,则处理返回至框248,在248处,保存运行的应用的状态的身份。辅助客户端系统148继续在后台运行,以记录事件等。
然而,如果在框264处检测到问题,则问题检测逻辑单元164启动辅助逻辑单元166。这是由框266指示的。接着,辅助逻辑单元166中的故障诊断器启动逻辑单元204在应用运行逻辑单元144中启动故障诊断逻辑单元146以对应用运行逻辑单元144进行故障诊断。日志数据访问和聚合逻辑单元200聚合与检测到的问题相关的日志数据140,并且将其与用于进行故障诊断并获得指示生产力服务计算系统102的健康状况的生产力服务健康信息的请求(针对辅助服务计算逻辑单元106)一起发送。在客户端上启动故障诊断器是由图3的流程图中的框268指示的,而聚合日志数据并与用于对生产力服务计算系统102进行故障诊断的请求一起发送日志数据是由框270指示的。
如果问题是在客户端计算系统108上而不是在服务计算系统102上产生的,则应用识别器逻辑单元206接着识别引起问题的特定应用。识别客户端应用由图3的流程图中的框272指示。这可以基于由故障诊断逻辑单元146生成的信息或者基于从日志数据140识别的事件信息来完成。其还可以基于由用户活动检测逻辑单元150生成的信息来完成,该信息标识哪个应用用户130在问题出现时处于是活跃的。其当然也可以通过其他方式被识别。
一旦识别出引起问题的应用,则状态比较逻辑单元208将指示该应用的当前状态的当前状态指示符与指示应用在上次没有问题地运行时的状态的最后已知良好状态指示符进行比较。访问应用状态信息以及将所识别的应用的当前状态与最后已知良好状态进行比较是由图3的流程图中的框274和276指示的。
接着,回滚确定逻辑单元210确定问题是否很可能是由状态的改变引起的。例如,如果最后已知良好状态与当前状态不同,则很可能状态的改变导致问题发生。因此,基于该确定,回滚确定逻辑单元210可以确定状态改变引起问题。然而,如果最后已知良好状态与当前状态相同,则将确定状态改变没有引起问题。确定问题是否是由所识别的应用的状态改变引起的是由框278指示的。
如框280所示的,如果确定状态改变确实引起了问题,则回滚控制逻辑单元214说明性地通过控制应用运行逻辑单元144回滚到应用的最后已知良好状态来恢复客户端状态。这是由框282指示的。例如,如果最后已知良好状态是应用的先前版本,则回滚控制逻辑单元214控制应用运行逻辑单元144以加载和运行应用的先前版本,而不是经更新或升级的版本。如果应用的先前状态是应用错误修复或更新之前的状态,则控制应用运行逻辑单元144以将该应用回滚到该应用在应用错误修复或升级之前的状态,并且在先前的状态下使用该应用。
如果在框280处确定状态改变没有引起问题,则故障诊断器启动逻辑单元204启动所识别的应用的具体的故障诊断逻辑单元146,以具体地对该应用进行故障诊断。这是由图3的流程图中的框284指示的。接着,补救动作控制逻辑单元212可以采取动作来解决问题。这是由框286表示的。该动作可以采用宽泛的多种不同形式。例如,补救动作控制逻辑单元212可以控制应用运行逻辑单元144自动地采取动作来补救该问题。这是由框288指示的。所谓自动地,意味着所述动作是在没有任何期望发起或授权所述动作的另外的用户参与的情况下采取的。其还可以生成指示应该采取的补救动作的通知,并且向用户180(或管理员)呈现该通知以使得用户130(或管理员)可以手动采取那些动作。这是由框290指示的。补救动作也可以以其他方式被采取,并且这是由框292指示的。
图4是流程图,其示出了一旦辅助客户端系统148检测到问题,在使用辅助服务计算系统106时架构100的操作的一个示例。故障诊断器控制逻辑单元174首先接收用于提供与生产力服务计算系统102相对应的生产力服务健康信息的请求。这是由图4的流程图中的框294指示的。接着,故障诊断器控制逻辑单元174对生产力服务计算系统102执行故障诊断,以识别是否存在源自服务计算系统102的任何问题。通过这样做,其可以远程地执行故障诊断,或者其可以启动生产力服务计算系统102上的故障诊断逻辑单元126。其接收由故障诊断逻辑单元126产生的故障诊断结果。对生产力服务执行故障诊断是由图4的流程图中的框296指示的。
服务问题识别逻辑单元176说明性地接收故障诊断信息以及其从客户端计算系统108接收的聚合的日志信息。服务问题识别逻辑单元176还可以访问日志数据116以确定生产力服务计算系统102上是否存在问题。识别服务上的问题是由图4的流程图中的框298指示的。
如果在服务102上检测到问题,则最后已知良好状态标识符逻辑单元178访问日志数据116以识别服务的最后已知良好状态,并且回滚控制逻辑单元180控制应用功能逻辑单元120回滚到最后已知良好状态。这是由图4的流程图中的框300、302、和304指示的。
如果在框300处,没有在服务计算系统102上检测到问题,则许可确定逻辑单元182确定在自动修复客户端计算系统108上的问题之前是否需要客户端许可。这是由框306指示的。这可以以宽泛的多种不同方式来确定。例如,有可能是在各种问题以及是否需要许可,或者是否可以手动补救这些问题之间保持映射。可能是某些配置设置被用来配置系统以指示补救某些问题需要许可而其他问题不需要。这些设置可以动态地或静态地进行的。它们可以是用户可修改的或者管理员可修改的,或者可以通过宽泛的多种其他方式来确定是否需要许可来补救问题。
如果确定不需要许可,则补救动作控制逻辑单元184识别需要采取以便补救客户端计算系统108上的问题的补救步骤或动作,并且生成控制信号以控制客户端计算系统108的各个部分以便采取补救动作。以该方式识别和应用修复以补救问题是由框308指示的。可以基于故障诊断信息来识别该修复,可以基于所识别的特定问题来识别该修复,或者也可以以其他方式来识别该修复。
如果在框306处确定需要客户端许可来修复客户端计算系统108上的问题,则补救动作控制逻辑单元184说明性地生成对要采取以便修复该问题的补救动作的表示,并且将该表示提供至客户端计算系统108,在客户端计算系统108处其可以被显现以供用户130、管理用户、或以其他方式实现。以该方式输出用于修复问题的步骤是由图4的流程图中的框310指示的。
因此可以看到,即使使用集成的应用,本说明书也使能够识别哪个集成的应用引起问题,以及问题是在客户端计算系统上本地地引起的还是在服务计算系统中的服务等级引起的。其还自动地检测问题是否可能是由应用或服务的状态改变引起的,如果是,则将应用或服务回滚到最后已知良好状态。这显著地增强了托管的服务和整个计算系统的集成的应用的准确性和操作。
应注意的是,上述讨论已描述了多种不同的系统、组件和/或逻辑单元。应当理解的是,这样的系统、组件和/或逻辑单元可以由执行与那些系统、组件和/或逻辑单元相关联的功能的硬件项(例如,处理器和相关联的存储器,或者其他处理组件,在下文中描述了其中一些)组成。另外,系统、组件和/或逻辑单元可以由加载到存储器中并随后由处理器或服务器或者如下所述的其他计算组件执行的软件组成。系统、组件和/或逻辑单元还可以由硬件、软件、固件等(下文描述了其一些示例)的不同组合组成。这些仅仅是能够用于形成上文所描述的系统、组件和/或逻辑单元的不同结构的一些示例。也可以使用其他结构。
本讨论已经提及了处理器和服务器。在一个实施例中,处理器和服务器包括具有没有单独示出的相关联的存储器和定时电路的计算机处理器。它们是其所属的系统或设备的功能部分并且由那些系统中的其他组件或项目的功能所激活并且促进上述功能。
而且,已经对多个用户界面显示进行了讨论。它们能够采用宽泛的多种不同的形式并且能够具有部署于其上的各种不同的用户可致动的输入机制。例如,用户可致动输入机制可以是文本框、勾选框、图标、链接、下拉菜单、搜索框等。它们还可以以宽泛的多种不同方式被致动。例如,它们能够使用指示和点击设备(例如,轨迹球或鼠标)被致动。它们能够使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指板等被致动。它们还能够使用虚拟键盘或其他虚拟制动器被致动。另外,在它们被显示于其上的屏幕是触摸感应屏幕时,它们能够使用触摸手势被致动。同样,在显示它们的设备具有话音识别组件的情况下,它们能够使用话音命令被致动。
还已经讨论了多个数据存储。应当注意的是,它们中的每个能够被划分成多个数据存储。所有都能够位于访问它们的系统本地,所有都能够是远程的,或者一些可以是本地的而其他是远程的。在本文中预期到所有这些配置。
而且,附图示出了具有归因于每个框的多个框。应当理解的是,可以使用更少的框因此功能由更少的组件来执行。同样,可以使用更多的框,其中功能在更多组件之间进行分布。
图5是在图1中所示的架构100的框图,区别在于其元件被布置在云计算架构500中。云计算提供了不要求终端用户了解提供服务的系统的物理位置或配置的计算、软件、数据访问、和存储服务。在各种实施例中,云计算使用合适的协议来通过诸如互联网之类的广域网来提供服务。例如,云计算提供方通过广域网提供应用并且它们能够通过web浏览器或任何其他计算组件而被访问。架构100的软件或组件以及对应的数据能够被存储在远程位置处的服务器上。云计算环境中的计算资源能够在远程数据中心位置被合并或者它们可以是分散的。云计算基础结构可以通过共享的数据中心来提供服务,即使它们对于用户表现为单个接入点。因此,在本文中所描述的组件和功能可以使用云计算架构从处于远程位置的服务提供方来提供。可替代地,它们可以从常规服务器来提供,或者它们可以直接被安装在客户端设备上,或者采用其他方式。
该描述旨在包括公共云计算和私有云计算两者。云计算(公共的和私有的两者)提供大体上无缝的资源池化,以及对管理和配置底层硬件基础结构的降低的需求。
公共云是由供应方管理的并且通常支持多个消费者使用同一基础结构。同样,与私有云不同,公共云能够使得终端用户免于管理硬件。私有云能够由组织自行管理并且该基础结构通常不与其他组织共享。该组织仍然要在一定程度上维护硬件,例如安装和维修等。
在图5中所示的示例中,一些项目类似于在图1中所示的项目,并且它们被类似地编号。图5具体地示出了系统102、104、和106可以位于云502中(其可以是公共的,私有的,或者是其中部分是公共的而其他是私有的组合)。因此,用户130使用用户设备504,其包括用于通过云502来访问那些系统的客户端计算系统108。
图5还描绘了云架构的另一示例。图5示出了还预期到架构100中的一些元件可以被布置在云502中而其他元件不被布置在云502中。作为示例,数据存储单元114、138、172、和/或192可以被布置在云502之外,并且通过云502来访问。在另一个示例中,系统106(或其他系统)也可以在云502之外。无论它们位于何处,它们可以通过网络(广域网或局域网)由设备504直接访问,它们可以通过服务被托管在远程地点,或者它们可以通过云被提供为服务或者由驻留在云中的连接服务来访问。在本文中构想到所有这些架构。
还应当注意的是,架构100或其部分能够被布置在宽泛的多种不同设备上。那些设备中的一些包括服务器、台式计算机、膝上型计算机、平板计算机、或其他移动设备,例如掌上计算机、蜂窝电话、智能电话、多媒体播放机、个人数字助理等。
图6是能够用作其中可以部署本系统(或其部分)用户或客户端的手持设备16的手持或移动计算设备的一个说明性示例的简化框图。图7-8是手持或移动设备的示例。
图6提供了可以运行架构100的组件或者与架构100进行交互、或两者的客户端设备16的组件的总体框图。在设备16中,提供允许手持设备与其他计算设备进行通信的通信链路13,并且在某些实施例中,提供用于自动地接收信息(例如,通过扫描)的信道。通信链路13的示例包括红外端口、串行/USB端口、诸如以太网端口之类的有线网络端口、以及允许通过一个或多个通信协议进行通信的无线网络端口,其中所述一个或多个通信协议包括通用分组无线电服务(GPRS)、LTE、HSPA、HSPA+和其他3G与4G无线协议、1Xrtt和短消息服务(其是用于提供至网络的蜂窝接入的无线服务)、以及提供至网络的本地无线连接的Wi-Fi协议和蓝牙协议。
在其他示例中,在连接至可移动安全数字(SD)卡接口15的SD卡上接收应用或系统。SD卡接口15和通信链路13沿着总线19与处理器17(其也可以实施在图1中所示的处理器中的任何一个)进行通信,其中,总线19也连接至存储器21和输入/输出(I/O)组件23、以及时钟25和定位系统27。
在一个实施例中,提供I/O组件23以促进输入和输出操作。设备16的各种实施例的I/O组件23可以包括诸如按键、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、接近度传感器、麦克风、倾斜传感器、和重力开关之类的输入组件,以及诸如显示设备、扬声器、和/或打印机端口之类的输出组件。也可以使用其他I/O组件23。
时钟25说明性地包括输出时间和日期的实时时钟组件。其还可以说明性地为处理器17提供定时功能。
定位系统27说明性地包括输出设备16的当前地理位置的组件。这可以包括例如全球定位系统(GPS)接收机、LORAN系统、航位推算系统、蜂窝三角测量系统、或其他定位系统。其还可以包括例如生成期望的地图、导航路线、和其他地理功能的地图软件或者导航软件。
存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存储单元37、通信驱动器39、以及通信配置设置41。存储器21可以包括所有类型的有形的易失性和非易失性计算机可读存储器设备。其还可以包括计算机存储介质(在下文中所描述的)。存储器21存储计算机可读指令,所述计算机可读指令当由处理器17执行时,使得该处理器根据这些指令来执行计算机实现的步骤或功能。类似地,设备16可以具有能够运行各种应用或实施客户端计算系统的部分或全部的客户端系统24。也可以由其他组件来激活处理器17以促进它们的功能。
网络设置31的示例包括诸如代理信息、互联网连接信息、以及映射之类的事情。应用配置设置35包括针对具体的企业或用户来定制应用的设置。通信配置设置41提供用于与其他计算机进行通信的参数,并包括诸如GPRS参数、SMS参数、连接用户名和密码之类的项目。
应用33可以是先前已经存储在设备16上的应用,或者在使用期间安装的应用,尽管这些应用也可以是操作系统29的一部分,或者托管在设备16外部。
图7示出了在其中设备16是平板计算机600的一个示例。在图7中,计算机600被示为具有用户界面显示屏602。屏幕602可以是触摸屏(因此可以使用来自用户的手指的触摸手势来与应用进行交互),或者是从笔或者触摸笔接收输入的支持笔的接口。其也可以使用屏上虚拟键盘。当然,也可以通过合适的附接机制(例如,无线链路或者USB端口)来附接至键盘或者其他用户输入设备。计算机600也可以说明性地接收语音输入。
图8示出了所述设备可以是智能电话71。智能电话71具有显示图标或图块(tile)或者其他用户输入机制75的触摸感应显示器73。用户可以使用机制75来运行应用、进行通话、执行数据传输操作等。通常而言,智能电话71构建在移动操作系统上,并且提供比特征电话更先进的计算能力和连通性。
应当注意的是,其他形式的设备16是可能的。
图9是其中可以部署架构100或其部分的计算环境的一个示例。参考图9,用于实现一些实施例的示例系统包括以计算机810为形式的通用计算设备。计算机810的组件可以包括但不限于:处理单元820(其可以包括来自先前附图的处理器)、系统存储器830、以及将包括系统存储器的各种系统组件耦合至处理单元820的系统总线821。系统总线821可以是几种类型的总线结构中的任何一种,包括使用多种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、以及本地总线。作为示例而非限制,这样的架构包括工业标准结构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准关联(VESA)本地总线、以及外围组件互连(PCI)总线(也被称为Mezzanine总线)。关于图1所描述的存储器和程序可以被部署在图9的对应的部分中。
计算机810通常包括宽泛的多种计算机可读介质。计算机可读介质可以是能够由计算机810来访问的任何可用的介质,并且包括易失性介质和非易失性介质两者、可移动介质和不可以移动介质两者。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于并且不包括经调制的数据信号或载波。计算机存储介质包括硬件存储介质,所述硬件存储介质包括以用于存储信息(例如,计算机可读指令、数据结构、程序模块、或其他数据)的任何方法或技术来实现的易失性和非易失性的、可以移动和不可移动的介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或者其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或者可以用于存储期望的信息并且能够由计算机810来访问的任何其他介质。通常而言,通信介质实施计算机可读指令、数据结构、程序模块、或传输机制中的其他数据,并且包括任何信息传递介质。术语“经调制的数据信号”是指具有以关于将信息编码在信号中的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外、和其他无线介质之类的无线介质。任何上述的组合也应当被包括在计算机可读介质的范围内。
系统存储器830包括以易失性存储器和/或非易失性存储器为形式的计算机存储介质,例如只读存储器(ROM)831和随机存取存储器(RAM)832。通常将基本输入/输出系统833(BIOS)(其包含有助于例如在启动期间,在计算机810中的元件之间传输信息的基本例程)存储在ROM 831中。RAM 832通常包含可以由处理单元820立即访问和/或目前由处理单元820操作的数据和/或程序模块。作为示例而非限制,图9示出了操作系统834、应用程序835、其他程序模块836、以及程序数据837。
计算机810还可以包括其他可移动/不可移动的易失性/非易失性计算机存储介质。仅仅作为示例,图9示出了从不可移动、非易失性磁介质中读取信息或者向其写入信息的硬盘驱动器841,以及用于从可移动、非易失性光盘856(例如,CD ROM或其他光学介质)中读取信息或者向其写入信息的光盘驱动器855。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:盒式磁带、闪速存储器卡、数字通用盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器841通常通过不可移动存储器接口(例如,接口840)而连接至系统总线821,而光盘驱动器855通常通过可移动存储器接口(例如,接口850)连接至系统总线821。
可替代地或另外地,在本文中所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
在上文中讨论并在图9中示出的驱动器及其相关联的计算机存储介质提供对计算机可读指令、数据结构、程序模块、和针对计算机810的其他数据的存储。例如,在图9中,硬盘驱动器841被示出为对操作系统844、应用程序845、其他程序模块846、以及程序数据847进行存储。应当注意的是,这些组件可以与操作系统834、应用程序835、其他程序模块836、以及程序数据837相同或不同。在这里,给操作系统844、应用程序845、其他程序模块846、以及程序数据847以不同的标号从而至少说明它们是不同的复本。
用户可以通过诸如键盘862、麦克风863、以及指点设备861(例如,鼠标、轨迹球、或触摸板)之类的输入设备来向计算机810中输入命令和信息。其他输入设备(未示出)可以包括:操纵杆、游戏垫、碟式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口860而连接至处理单元820,但也可以通过诸如并行端口、游戏端口、或通用串行总线(USB)之类的其他接口和总线结构而连接。视觉显示器891或者其他类型的显示设备也经由诸如视频接口890之类的接口而连接至系统总线821。除了监视器之外,计算机还可以包括其他外围输出设备,例如扬声器897和打印机896,它们可以通过输出外围接口895被连接。
使用至一个或多个远程计算机(例如,远程计算机880)的逻辑连接来在网络化环境下操作计算机810。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备、或其他公共网络节点,并且通常包括在上文中相对于计算机810所描述的元件中的许多个或全部元件。在图9中所描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但也可以包括其他网络。这样的网络环境在办公室、企业范围的计算机网络、内联网、以及互联网中是常见的。
当在LAN网络环境中使用时,将计算机810通过网络接口或者适配器870连接至LAN871。当在WAN网络环境中被使用时,计算机810通常包括调制解调器872、或者用于通过WAN873(例如,互联网)来建立通信的其他单元。可以将调制解调器872(其可以是内置的或者外置的)经由用户输入接口860或者其他合适的机制连接至系统总线821。在网络化环境中,可以将相对于计算机810或其一部分所描述的程序模块存储在远程存储器存储设备中。作为示例而非限制,图9将远程应用程序885示出为驻留在远程计算机880上。应当理解的是,所示出的网络连接是示例性的,并且也可以使用在计算机之间建立通信链路的其他方式。
还应当注意的是,可以以不同的方式对在本文中所描述的不同的实施例进行组合。即,可以将一个或多个实施例的部分与一个或多个其他实施例的部分进行组合。在本文中构想到所有这些组合。
示例1是一种计算系统,包括:
应用运行逻辑单元,其运行多个应用;
问题检测逻辑单元,其访问具有日志条目的日志数据,每个日志条目指示针对所述多个不同应用中的一个应用所记录的事件,所述问题检测逻辑单元基于所述日志数据来检测阻止所述多个不同应用中的给定应用的操作的问题;
应用识别器逻辑单元,其识别所述多个不同应用中引起所述问题的一个应用;
状态比较逻辑单元,其将所识别的应用的当前状态与所识别的应用的最后已知良好状态进行比较,并且生成指示所述比较的比较信号;以及
回滚控制逻辑单元,其在基于所述比较信号确定所述问题与所识别的应用的状态改变有关的情况下,自动地控制所述应用运行逻辑单元在所述最后已知良好状态下运行所识别的应用。
示例2是根据任何或所有先前示例的计算系统,并且还包括:
回滚确定逻辑单元,其被配置为通过识别出所识别的应用的所述最后已知良好状态与所识别的应用的当前状态不同,基于所述比较信号来确定所述问题是否与所识别的应用的状态改变有关。
示例3是根据任何或所有先前示例的计算系统,并且还包括:
应用状态逻辑单元,其被配置为生成指示所述多个不同应用中的每个应用的状态的状态指示符以及指示任何状态改变的状态改变信息。
示例4是根据任何或所有先前示例的计算系统,并且还包括:
运行应用检测逻辑单元,其被配置为检测哪些应用在由所述应用运行逻辑单元运行。
示例5是根据任何或所有先前示例的计算系统,并且还包括:
用户活动检测逻辑单元,其被配置为检测指示所述用户与所述多个应用中的哪个应用交互的用户活动。
示例6是根据任何或所有先前示例的计算系统,并且还包括:
日志数据聚合逻辑单元,其被配置为响应于所述问题识别逻辑单元识别出问题,聚合与所述问题相对应的日志条目;以及
服务交互逻辑单元,其被配置为将聚合的日志条目发送至辅助服务。
示例7是根据任何或所有先前示例的计算系统,其中,所述服务交互逻辑单元将所述聚合的日志条目连同针对与托管所述多个不同应用的托管服务相关的服务健康信息的请求一起发送至所述辅助服务。
示例8是根据任何或所有先前示例的计算系统,并且还包括:
故障诊断器启动逻辑单元,其被配置为响应于对所述问题的检测,启动对所述多个不同应用进行故障诊断的故障诊断逻辑单元。
示例9是根据任何或所有先前示例的计算系统,其中,所述应用识别器逻辑单元基于与所述问题发生的时间相对应的检测到的用户活动,将所述多个应用中的所述一个应用识别为引起所述问题。
示例10是一种计算机实现的方法,包括:
运行多个不同应用;
访问具有日志条目的日志数据,每个日志条目指示针对所述多个不同应用中的一个应用所记录的事件;
基于所述日志数据来检测阻止所述多个不同应用中的给定应用的操作的问题;
识别所述多个不同应用中引起所述问题的一个应用;
将所识别的应用的当前状态与所识别的应用的最后已知良好状态进行比较;
生成指示所述比较的比较信号;以及
如果基于所述比较信号确定所述问题与所识别的应用的状态改变有关,则自动地在所述最后已知良好状态下运行所识别的应用。
示例11是根据任何或所有先前示例的计算机实现的方法,并且还包括:
通过识别出所识别的应用的所述最后已知良好状态与所识别的应用的当前状态不同,基于所述比较信号来检测所述问题是否与所识别的应用的状态改变有关。
示例12是根据任何或所有先前示例的计算机实现的方法,并且还包括:
生成指示所述多个不同应用中的每个应用的状态的状态指示符以及指示任何状态改变的状态改变信息。
示例13是根据任何或所有先前示例的计算机实现的方法,并且还包括:
检测哪些应用在运行。
示例14是根据任何或所有先前示例的计算机实现的方法,并且还包括:
检测指示所述用户与所述多个不同应用中的哪个应用交互的用户活动。
示例15是根据任何或所有先前示例的计算机实现的方法,并且还包括:
响应于识别出问题,聚合与所述问题相对应的日志条目;以及
将聚合的日志条目发送至辅助服务。
示例16是根据任何或所有先前示例的计算机实现的方法,其中,发送所述聚合的日志条目包括:
将所述聚合的日志条目连同针对与托管所述多个不同应用的托管服务相关的服务健康信息的请求一起发送至所述辅助服务。
示例17是根据任何或所有先前示例的计算机实现的方法,并且还包括:
响应于检测到所述问题,启动对所述多个不同应用进行故障诊断的故障诊断逻辑单元。
示例18是根据任何或所有先前示例的计算机实现的方法,其中,识别所述应用包括:
基于与所述问题发生的时间相对应的检测到的用户活动,将所述多个应用中的所述一个应用识别为引起所述问题。
示例19是一种计算系统,包括:
应用运行逻辑单元,其运行多个不同应用;
问题检测逻辑单元,其访问具有日志条目的日志数据,每个日志条目指示针对所述多个不同应用中的一个应用所记录的事件,所述问题检测逻辑单元基于所述日志数据来检测阻止所述多个不同应用中的给定应用的操作的问题;
应用识别器逻辑单元,其识别所述多个不同应用中引起所述问题的一个应用;
状态比较逻辑单元,其将所识别的应用的当前状态与所识别的应用的最后已知良好状态进行比较,并且生成指示所述比较的比较信号;以及
回滚确定逻辑单元,其被配置为通过识别出所识别的应用的所述最后已知良好状态与所识别的应用的当前状态不同,基于所述比较信号来确定所述问题是否与所识别的应用的状态改变有关;以及
回滚控制逻辑单元,其在基于所述比较信号确定所述问题与所识别的应用的状态改变有关的情况下,自动地控制所述应用运行逻辑单元在所述最后已知良好状态下运行所识别的应用。
示例20是根据任何或所有先前示例的计算系统,并且还包括:
应用状态逻辑单元,其被配置为生成指示所述多个不同应用中的每个应用的状态的状态指示符以及指示任何状态改变的状态改变信息
尽管已经用特定于结构特征和/或方法行为的语言描述了本主题,但应当理解的是,在所附权利要求中所定义的主题不一定限于在上文中所描述的具体的特征或行为。相反,在上文中所描述的具体的特征或行为是作为实现所述权利要求的示例形式而公开的。

Claims (15)

1.一种计算系统,包括:
应用运行逻辑单元,其运行多个应用;
问题检测逻辑单元,其访问具有日志条目的日志数据,每个日志条目指示针对所述多个不同应用中的一个应用所记录的事件,所述问题检测逻辑单元基于所述日志数据来检测阻止所述多个不同应用中的给定应用的操作的问题;
应用识别器逻辑单元,其识别所述多个不同应用中引起所述问题的一个应用;
状态比较逻辑单元,其将所识别的应用的当前状态与所识别的应用的最后已知良好状态进行比较,并且生成指示所述比较的比较信号;以及
回滚控制逻辑单元,其在基于所述比较信号确定所述问题与所识别的应用的状态改变有关的情况下,自动地控制所述应用运行逻辑单元在所述最后已知良好状态下运行所识别的应用。
2.根据权利要求1所述的计算系统,并且还包括:
回滚确定逻辑单元,其被配置为通过识别出所识别的应用的所述最后已知良好状态与所识别的应用的当前状态不同,基于所述比较信号来确定所述问题是否与所识别的应用的状态改变有关。
3.根据权利要求2所述的计算系统,并且还包括:
应用状态逻辑单元,其被配置为生成指示所述多个不同应用中的每个应用的状态的状态指示符以及指示任何状态改变的状态改变信息。
4.根据权利要求3所述的计算系统,并且还包括:
运行应用检测逻辑单元,其被配置为检测哪些应用在由所述应用运行逻辑单元运行。
5.根据权利要求4所述的计算系统,并且还包括:
用户活动检测逻辑单元,其被配置为检测指示所述用户与所述多个应用中的哪个应用交互的用户活动。
6.根据权利要求2所述的计算系统,并且还包括:
日志数据聚合逻辑单元,其被配置为响应于所述问题识别逻辑单元识别出问题,聚合与所述问题相对应的日志条目;以及
服务交互逻辑单元,其被配置为将聚合的日志条目发送至辅助服务。
7.根据权利要求3所述的计算系统,其中,所述服务交互逻辑单元将所述聚合的日志条目连同针对与托管所述多个不同应用的托管服务相关的服务健康信息的请求一起发送至所述辅助服务。
8.根据权利要求3所述的计算系统,并且还包括:
故障诊断器启动逻辑单元,其被配置为响应于对所述问题的检测,启动对所述多个不同应用进行故障诊断的故障诊断逻辑单元。
9.根据权利要求5所述的计算系统,其中,所述应用识别器逻辑单元基于与所述问题发生的时间相对应的检测到的用户活动,将所述多个应用中的所述一个应用识别为引起所述问题。
10.一种计算机实现的方法,包括:
运行多个不同应用;
访问具有日志条目的日志数据,每个日志条目指示针对所述多个不同应用中的一个应用所记录的事件;
基于所述日志数据来检测阻止所述多个不同应用中的给定应用的操作的问题;
识别所述多个不同应用中引起所述问题的一个应用;
将所识别的应用的当前状态与所识别的应用的最后已知良好状态进行比较;
生成指示所述比较的比较信号;以及
如果基于所述比较信号确定所述问题与所识别的应用的状态改变有关,则自动地在所述最后已知良好状态下运行所识别的应用。
11.根据权利要求10所述的计算机实现的方法,并且还包括:
通过识别出所识别的应用的所述最后已知良好状态与所识别的应用的当前状态不同,基于所述比较信号来检测所述问题是否与所识别的应用的状态改变有关。
12.根据权利要求11所述的计算机实现的方法,并且还包括:
生成指示所述多个不同应用中的每个应用的状态的状态指示符以及指示任何状态改变的状态改变信息。
13.根据权利要求12所述的计算机实现的方法,并且还包括:
检测哪些应用在运行。
14.根据权利要求13所述的计算机实现的方法,并且还包括:
检测指示所述用户与所述多个不同应用中的哪个应用交互的用户活动。
15.一种计算系统,包括:
应用运行逻辑单元,其运行多个不同应用;
问题检测逻辑单元,其访问具有日志条目的日志数据,每个日志条目指示针对所述多个不同应用中的一个应用所记录的事件,所述问题检测逻辑单元基于所述日志数据来检测阻止所述多个不同应用中的给定应用的操作的问题;
应用识别器逻辑单元,其识别所述多个不同应用中引起所述问题的一个应用;
状态比较逻辑单元,其将所识别的应用的当前状态与所识别的应用的最后已知良好状态进行比较,并且生成指示所述比较的比较信号;以及
回滚确定逻辑单元,其被配置为通过识别出所识别的应用的所述最后已知良好状态与所识别的应用的当前状态不同,基于所述比较信号来确定所述问题是否与所识别的应用的状态改变有关;以及
回滚控制逻辑单元,其在基于所述比较信号确定所述问题与所识别的应用的状态改变有关的情况下,自动地控制所述应用运行逻辑单元在所述最后已知良好状态下运行所识别的应用。
CN201880006021.0A 2017-01-06 2018-01-03 集成应用问题检测和改正控制 Active CN110168509B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/400,071 US10445196B2 (en) 2017-01-06 2017-01-06 Integrated application issue detection and correction control
US15/400,071 2017-01-06
PCT/US2018/012123 WO2018129000A2 (en) 2017-01-06 2018-01-03 Integrated application issue detection and correction control

Publications (2)

Publication Number Publication Date
CN110168509A true CN110168509A (zh) 2019-08-23
CN110168509B CN110168509B (zh) 2023-04-04

Family

ID=61599560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880006021.0A Active CN110168509B (zh) 2017-01-06 2018-01-03 集成应用问题检测和改正控制

Country Status (4)

Country Link
US (1) US10445196B2 (zh)
EP (1) EP3566141B1 (zh)
CN (1) CN110168509B (zh)
WO (1) WO2018129000A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10505822B2 (en) * 2018-02-26 2019-12-10 Servicenow, Inc. Interactive software renormalization
US11263328B2 (en) * 2018-09-13 2022-03-01 Vmware, Inc. Encrypted log aggregation
US11281522B2 (en) * 2019-08-30 2022-03-22 Microsoft Technology Licensing, Llc Automated detection and classification of dynamic service outages
US11803310B2 (en) 2021-04-28 2023-10-31 Microsoft Technology Licensing, Llc Tagging a last known good upgrade event for automatic rollback based on detected regression
US11782701B2 (en) * 2021-06-01 2023-10-10 Stephen Davidson Software updater

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590277A (en) * 1994-06-22 1996-12-31 Lucent Technologies Inc. Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
US20040260678A1 (en) * 2003-06-18 2004-12-23 Microsoft Corporation State based configuration failure detection using checkpoint comparison
US20090300416A1 (en) * 2008-05-27 2009-12-03 Kentaro Watanabe Remedying method for troubles in virtual server system and system thereof
CN102567181A (zh) * 2010-12-27 2012-07-11 微软公司 基于资源访问模式预测、诊断应用故障并从其恢复
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
US8332688B1 (en) * 2009-07-21 2012-12-11 Adobe Systems Incorporated Failover and recovery of a computing application hosted by a virtual instance of a machine
CN104756082A (zh) * 2012-10-16 2015-07-01 微软公司 用于数据库应用的智能错误恢复

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721767B2 (en) * 2000-01-31 2004-04-13 Commvault Systems, Inc. Application specific rollback in a computer system
FR2881242B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede non intrusif de journalisation d'evements internes au sein d'un processus applicatif, et systeme mettant en oeuvre ce procede
US7640249B2 (en) * 2006-03-29 2009-12-29 Sap (Ag) System and method for transactional session management
US8909202B2 (en) * 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US9122841B2 (en) 2012-10-16 2015-09-01 Sap Se Providing remote application logs for cloud applications
US8997088B2 (en) * 2012-11-02 2015-03-31 Wipro Limited Methods and systems for automated deployment of software applications on heterogeneous cloud environments
US9081680B2 (en) * 2013-03-15 2015-07-14 Accenture Global Services Limited System-level issue detection and handling
US9049173B2 (en) 2013-06-05 2015-06-02 Fortinet, Inc. Cloud based logging service
US9727439B2 (en) 2014-05-28 2017-08-08 Vmware, Inc. Tracking application deployment errors via cloud logs
US9547547B2 (en) * 2014-11-28 2017-01-17 Software Ag Systems and/or methods for handling erroneous events in complex event processing (CEP) applications
CN104933114A (zh) 2015-06-08 2015-09-23 山东蚁巡网络科技有限公司 一种海量日志管理云平台
US9940340B2 (en) * 2015-10-30 2018-04-10 International Business Machines Corporation Ensuring data maintenance within a LDAP environment
US11500854B2 (en) * 2015-10-30 2022-11-15 International Business Machines Corporation Selective data synchronization to troubleshoot production environment failures
CN105589791A (zh) 2015-12-28 2016-05-18 江苏省电力公司信息通信分公司 一种云计算环境下应用系统日志监控管理的方法
JP2019507454A (ja) * 2016-02-18 2019-03-14 ニュー レリック インコーポレイテッド アプリケーションの実行中に観察される問題の根本原因を特定する方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590277A (en) * 1994-06-22 1996-12-31 Lucent Technologies Inc. Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
US20040260678A1 (en) * 2003-06-18 2004-12-23 Microsoft Corporation State based configuration failure detection using checkpoint comparison
US20090300416A1 (en) * 2008-05-27 2009-12-03 Kentaro Watanabe Remedying method for troubles in virtual server system and system thereof
US8332688B1 (en) * 2009-07-21 2012-12-11 Adobe Systems Incorporated Failover and recovery of a computing application hosted by a virtual instance of a machine
CN102567181A (zh) * 2010-12-27 2012-07-11 微软公司 基于资源访问模式预测、诊断应用故障并从其恢复
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
CN104756082A (zh) * 2012-10-16 2015-07-01 微软公司 用于数据库应用的智能错误恢复

Also Published As

Publication number Publication date
WO2018129000A2 (en) 2018-07-12
CN110168509B (zh) 2023-04-04
EP3566141B1 (en) 2021-03-03
US20180196723A1 (en) 2018-07-12
US10445196B2 (en) 2019-10-15
EP3566141A2 (en) 2019-11-13
WO2018129000A3 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
US11467879B2 (en) Techniques for implementing rollback of infrastructure changes in a cloud infrastructure orchestration service
US20220407815A1 (en) Instant notification of load balance and resource scheduling based on resource capacities and event recognition
CN110168509A (zh) 集成应用问题检测和改正控制
US9886675B2 (en) User support experience with automatically generated virtual environment
CN106233252B (zh) 用于定制软件的动态更新安装器
CN110073385A (zh) 电子邮件系统中的文档链接
CN112567709B (zh) 使用异常检测增强安全性
CN107810509A (zh) 工作流生成和编辑
CN114787771A (zh) 在分布式版本控制系统中更新代码
CN105229614A (zh) 多承租人数据中心内的诊断存储
US20160048383A1 (en) Isv update delivery
CN108369679A (zh) 用于路由按需服务的资源划分
CN105408922A (zh) 过程流基础结构和配置界面
CN104737124A (zh) 用于提交服务的业务元数据的门户
CN110462660A (zh) 控制计算系统以生成用于日历共享的预先接受的缓存
CN106062689A (zh) 知晓上下文的命令
CN109074357A (zh) 动态地管理服务的不同版本
CN105940419A (zh) 具有可选工作空间表示的控制板
WO2021150291A1 (en) User interface techniques for an infrastructure orchestration service
CN108369680A (zh) 用于路由按需服务的上下文生成
CN108369684B (zh) 用于路由协助请求的问题检测
CN103412740A (zh) 多顶层用户界面显示

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant