掌桥专利:专业的专利平台
掌桥专利
首页

从参与文档协作会话的各用户收集重复诊断数据

文献发布时间:2023-06-19 11:55:48


从参与文档协作会话的各用户收集重复诊断数据

技术领域

本文所描述的实施例涉及在多用户协作环境中检测错误。

发明内容

协作计算系统允许多个计算设备上的多个用户同时访问共享内容。例如,协作服务器可以在协作会话中向多个远程用户呈现文字处理文档。每个用户都用客户端文字处理器应用会话访问文档。协作会话中的所有用户都可以查看文档并编辑其内容。协作服务器从客户端应用会话接收文档更改,协调更改,并将协调的更改推送到客户端应用会话。

在一些情况下,客户端应用会话经历错误。例如,协作服务器可能不接受由客户端应用提交的更改。为了诊断错误并帮助防止将来的错误,将错误记录在客户端设备处。诊断日志从客户端设备发送给协作环境的提供者,在协作环境的提供者处可以对其进行检查以确定错误原因。但是,在一些情况下,协作会话中的另一个用户导致该错误,但不会经历此错误。例如,会话中的一个用户可能具有较旧版本的客户端应用,可能已将损坏的数据引入协作会话中,等等。在这些情况下,对单个诊断日志的分析无法确定错误原因。当分析失败时,可以请求来自其他客户端会话的诊断日志。但是,该情况之后协作者可能无法访问,日志可能不可用,或者日志可能不包括相关的时间段。此外,可能难以在没有参考点的情况下跨多个客户端应用会话同步日志数据。

因此,要提供围绕错误的环境的更完整信息,本文所述的实施例在发生错误时接近实时地从协作会话中的所有用户收集诊断日志。在从一个客户端应用会话接收到错误消息时,本文描述的一些示例在参与协作会话的其他客户端应用会话中生成综合错误。因此,不是接收单个诊断日志,而是本文中描述的示例系统和方法针对会话中的每个用户接收诊断日志。另外,因为每个客户端应用几乎同时记录了相同的错误,因此可以同步诊断日志以进行更准确的分析。一些实施例会自动将错误通知受影响的用户并提供补救步骤。使用本文呈现的实施例,错误被更快地检测,并且因此更少地重复,从而带来更好的用户体验。因此,本文所描述的实施例引起更高效地使用协作系统资源以及对于用户的改善的协作系统操作。

特别地,一个实施例提供了一种用于在多会话协作环境内进行错误检测的系统。该系统包括通信接口和耦合到该通信接口的电子处理器。电子处理器被配置为:从与第一用户相关联的第一客户端应用会话接收第一诊断日志,该第一诊断日志包括错误消息。电子处理器被配置为:在与第一客户端会话的协作会话中确定与第二用户相关联的第二客户端应用会话。电子处理器被配置为:在第二客户端应用会话中基于错误消息触发人为错误条件。电子处理器被配置为:响应于触发人为错误条件,从第二客户端应用会话接收第二诊断日志。电子处理器被配置为:用指示协作会话的会话标识符来标记第一诊断日志和第二诊断日志。电子处理器被配置为:经由通信接口将第一诊断日志和第二诊断日志发送给协作环境管理员。电子处理器被配置为:经由通信接口将基于错误的通知发送给从由第一客户端应用会话和第二客户端应用会话组成的组中选择的至少一项。

另一个实施例提供了一种用于在多会话协作环境内进行错误检测的方法。该方法包括:从与第一用户相关联的第一客户端应用会话接收第一诊断日志,该第一诊断日志包括错误消息。该方法包括:在与第一客户端会话的协作会话中,用电子处理器确定与第二用户相关联的第二客户端应用会话。该方法包括:在第二客户端应用会话中基于错误消息触发人为错误条件。该方法包括:响应于触发人为错误条件,从第二客户端应用会话接收第二诊断日志。该方法包括:用指示协作会话的会话标识符来标记第一诊断日志和第二诊断日志。该方法包括:经由通信接口将第一诊断日志和第二诊断日志发送给协作环境管理员。该方法包括:将基于错误的通知发送给从由第一客户端应用会话和第二客户端应用会话组成的组中选择的至少一项。

又一个实施例提供了一种非暂时性计算机可读介质,其包括可由电子处理器执行以执行一组功能的指令。该组功能包括:从与第一用户相关联的第一客户端应用会话接收第一诊断日志,该第一诊断日志包括错误消息。该组功能包括:在与第一客户端会话的协作会话中,用电子处理器确定与第二用户相关联的第二客户端应用会话。该组功能包括:在第二客户端应用会话中基于错误消息触发人为错误条件。该组功能包括:响应于触发人为错误条件,从第二客户端应用会话接收第二诊断日志。该组功能包括:用指示协作会话的会话标识符来标记第一诊断日志和第二诊断日志。该组功能包括:经由通信接口将第一诊断日志和第二诊断日志发送给协作环境管理员。该组功能包括:确定补救步骤。该组功能包括:将基于该错误并且包括补救步骤的通知发送给从由第一客户端应用会话和第二客户端应用会话组成的组中选择的至少一项。

附图说明

图1示意性地示出了根据一些实施例的协作计算系统。

图2是示出根据一些实施例的由图1的系统执行的用于在多会话协作环境内进行错误检测的方法的流程图。

具体实施方式

在以下描述和附图中描述和示出了一个或多个实施例。这些实施例不限于本文提供的特定细节,并且可以以各种方式进行修改。此外,可以存在本文未描述的其他实施例。同样,在本文中被描述为由一个组件执行的功能可以由多个组件以分布式方式执行。同样,由多个组件执行的功能可以合并并由单个组件执行。类似地,被描述为执行特定功能的组件也可以执行未在本文中描述的附加功能。例如,以某种方式“配置”的设备或结构至少以这种方式配置,但是也可以以未列出的方式配置。此外,本文所描述的一些处理器可以包括一个或多个电子处理器,其被配置为通过执行存储在非暂时性计算机可读介质中的指令来执行所描述的功能。类似地,本文所描述的可以被实现为存储可由一个或多个电子处理器执行以执行所描述的功能的指令的非暂时性计算机可读介质。如本申请中所使用的,“非暂时性计算机可读介质”包括所有计算机可读介质,但是不包括暂时性的传播信号。因此,非暂时性计算机可读介质可以包括例如硬盘、CD-ROM、光存储设备、磁存储设备、ROM(只读存储器)、RAM(随机存取存储器)、寄存器存储器、处理器高速缓存、或其任何组合。

另外,本文所使用的措词和术语是出于描述的目的,并且不应被视为限制。例如,本文中“包括”、“含有”、“包含”、“具有”及其变体的使用意味着涵盖其后列出的项目及其等同物以及附加项目。术语“连接”和“耦合”被广泛地使用,并且包括直接和间接的连接和耦合。此外,“连接”和“耦合”不限于物理或机械连接或耦合,并且可以包括直接或间接的电连接或耦合。另外,可以使用有线连接、无线连接或其组合来执行电子通信和通知,并且可以直接地或在各种类型的网络、通信信道和连接上通过一个或多个中间设备来发送电子通信和通知。而且,诸如第一和第二、顶部和底部等的关系术语在本文中可以仅用于将一个实体或动作与另一实体或动作区分开,而不必要求或暗示在这些实体或动作之间的任何实际的这种关系或顺序。

例如,图1示出了用于执行协作计算环境的示例系统100。如图1所示,系统100包括第一用户设备102、第二用户设备104和协作服务器106。应当理解,系统100作为一个示例而被提供,并且在一些实施例中,系统100可以包括附加组件。特别地,系统100可以包括两个以上的用户设备,并且本文描述为由协作服务器106执行的功能可以以各种配置被组合和分布。例如,在一些实施例中,协作服务器106的功能可以由云计算平台(例如,

第一用户设备102、第二用户设备104和协作服务器106通过至少一个通信网络108通信地耦合。通信网络108可以使用广域网(例如,因特网)、局域网(例如,以太网或Wi-Fi

第一用户设备102是计算设备,例如,膝上型计算机、台式计算机、平板计算机、计算机终端、智能电话、智能手表、智能电视等。在图1所示的示例中,第一用户设备102包括电子处理器110(例如,微处理器、专用集成电路(ASIC)或配置为执行指令的其他合适的电子设备)、存储器112、人机接口114和通信接口116。电子处理器110、存储器112、人机接口114和通信接口116通信地耦合(通过一个或多个通信线路或总线、无线地或其组合)。应当理解,在其他构造中,第一用户设备102包括比图1所示的组件更多、更少或不同的组件。

通信接口116可以包括用于通过通信网络108进行无线通信的无线发送器或收发器。替代或附加于无线发送器或收发器,通信接口116可以包括用于接收电缆(例如,以太网电缆)的端口,以用于通过通信网络108或专用有线连接进行通信。应当理解,在一些实施例中,第一用户设备102通过一个或多个中间设备(例如,路由器、网关、中继器等)与协作服务器106通信。

存储器112包括存储程序指令和数据的非暂时性计算机可读存储介质。电子处理器110被配置为从存储器112取回并执行软件(可执行指令)等以执行一组功能,包括本文所述的方法。如图1所示,在一些实施例中,存储器112存储操作系统(OS)118、软件应用120和诊断日志122。如本文中所使用的,术语诊断日志是指通过操作系统118、软件应用120或两者创建或更新的一个或多个电子日志。诊断日志包括日志条目,这些日志条目详述OS和应用事件、错误、警告、输入、输出以及有关操作系统118、软件应用120或两者的性能的内容。

存储器112还存储文档124(例如,如由软件应用120创建或修改的文档)。应当理解,存储器112可以存储附加的应用、数据或其组合。而且,在一些实施例中,操作系统118、软件应用120、诊断日志122和文档124可以存储在分开的存储器中。

操作系统118可以是例如由

当由电子处理器110执行时,软件应用120允许用户(例如,第一用户126)例如访问、创建、编辑、存储、发送和接收数据,例如,文档124。例如,软件应用120可以包括文字处理应用、电子表格应用、通信应用(例如,电子邮件客户端应用、视频聊天应用等)、绘图应用、浏览器应用、组合了前述各项的功能的应用等。在一些实施例中,软件应用120是Microsoft

人机接口(HMI)114从第一用户设备102的用户(例如,第一用户126)接收输入并向其提供输出。HMI 114可以包括键盘、小键盘、麦克风、相机、光标控制设备(例如,鼠标、操纵杆、轨迹球、触摸板等)、显示器(例如,液晶显示器(LCD)、发光二极管(LED)显示器、触摸屏)、扬声器等。HMI 114与操作系统118通信,以向操作系统118和软件应用120发送数据以及从操作系统118和软件应用120接收数据。特别地,来自软件应用120的用户的输入从HMI114传送到操作系统118,操作系统118将输入(或其一部分或一个版本)传递到软件应用120。应当理解,HMI 114的一些组件(例如,触摸屏)既充当输入设备又充当输出设备。

第二用户设备104是类似于第一用户设备102的计算设备。第二用户设备104可以是例如膝上型计算机、台式计算机、平板计算机、计算机终端、智能电话、智能手表、智能电视等等。在图1所示的示例中,第二用户设备104包括电子处理器130(例如,微处理器、专用集成电路(ASIC)或配置为执行指令的其他合适的电子设备)、存储器132、人机接口134和通信接口136。电子处理器130、存储器132、人机接口134(用于从第二用户146接收输入并向第二用户146提供输出)、通信接口136通信地耦合(通过一个或多个通信线路或总线、无线地或其组合)。应当理解,在其他构造中,第二用户设备104包括比图1所示的组件更多、更少或不同的组件。类似于第一用户设备102配置和操作第二用户设备104。第二用户设备104中类似命名的组件执行与以上关于第一用户设备102所描述的功能相类似的功能。在一些实施例中,第二用户设备104与第一用户设备102几乎相同(例如,两者是相同型号的膝上型计算机)。

在图1中提供的示例中,协作服务器106也是计算设备,其包括电子处理器150、存储器152、HMI 154和通信接口156,它们可以类似于上文针对第一用户设备102描述的电子处理器110、存储器112、HMI 114和通信接口116。协作服务器106的组件通信地耦合(通过一个或多个通信线路或总线、无线地或其组合)。应当理解,在其他构造中,协作服务器106包括比图1所示的组件更多、更少或不同的组件。

如本文中详细描述的,协作服务器106提供多会话协作环境以允许用户组(例如,第一用户126和第二用户146)彼此交互并与共享内容。如图1所示,存储器152除其他应用、数据或两者外,还包括协作会话158和诊断日志160。协作会话158将共享内容(例如,文档124)呈现给多个远程用户(例如,第一用户126和第二用户146),所述多个远程用户经由一个或多个用户设备(例如,第一用户设备102和第二用户设备104)访问协作环境。协作会话158中的所有用户都可以查看文档124,并且用户可以被选择性地允许控制或编辑文档124的内容。如下面更详细地描述的,协作服务器106经由通信网络108向用户设备发送协作会话数据和命令并接收来自用户设备的协作会话数据和命令。会话数据和命令包括例如用户对文档124所做的更改。如下面更详细描述的,用户可以在协作会话期间经历错误,这些错误被本地记录在其用户设备的诊断日志中。在一些实施例中,记录错误触发用户设备的应用或操作系统将诊断日志发送给协作服务器106,例如,以帮助调试。协作服务器106例如经由通信网络108从第一用户设备102和第二用户设备104接收诊断日志160。

如上所述,当仅从经历错误的用户收集诊断日志时,或者当经过一段时间后尝试收集诊断日志时,难以诊断错误。因此,为了提供更准确和及时的错误报告和分析,期望在单个用户经历错误时从协作会话内的所有用户收集诊断日志。图2示出了用于在多会话协作环境内进行错误检测的示例方法200。方法200被描述为由协作服务器106尤其是电子处理器150执行。然而,应当理解,在一些实施例中,方法200的部分可以由其他设备(包括例如,第一用户设备102和第二用户设备104)执行。尽管图1示出了两个用户设备(第一用户设备102和第二用户设备104),但是应当理解,与所示出的相比,方法200的实施例可以在更多用户设备的情况下使用。实施例还可以包括一个以上的协作服务器106。

作为示例,根据参与协作会话158第一用户设备102和第二用户设备104以编辑文档124来描述方法200。第一用户设备102和第二用户设备104从第一用户126和第二用户146接收输入,该输入对文档124进行更改。对文档124的更改作为协作会话数据的一部分例如经由通信网络108被发送给协作服务器106。

协作服务器106从第一用户设备102和第二用户设备104接收对文档124的更改,并协调对文档124的更改。例如,第一用户设备102发送要添加到文档124中的句子,而第二用户设备104发送现有句子内的单词的替换。协作服务器106接收对文档的两个更改,将其放置在文档内,并用它们相应的用户标识它们。协作服务器106将经协调的更改发送给第一用户设备102和第二用户设备104。例如,添加的句子被发送给第二用户设备104,该第二用户设备104没有发起该更改,从而文档124的其本地副本包括新句子。同样,单词替换被发送给第一用户设备102。结果,当文档正被设备的相应的两个用户编辑时,第一用户设备102和第二用户设备104中的每一个都具有文档124的更新副本。

如所指出的,用户可能在协作会话期间经历错误。在一个示例中,在第一用户设备102上运行的应用120正在与协作会话158一起参与客户端应用会话。当试图提交对文档124的更改时,应用120可以从协作服务器106接收错误消息。应用120将错误消息本地记录在诊断日志122中。记录错误消息使第一用户设备102的应用120(或操作系统118)将诊断日志122发送给协作服务器106。

在框202处,电子处理器150从与第一用户126相关联的第一客户端应用会话接收第一诊断日志(诊断日志)。如所述,第一诊断日志包括在更改提交失败时接收到的错误消息。

在框204处,电子处理器150确定与第一客户端会话的协作会话158中与第二用户相关联的第二客户端应用会话。例如,在一些实施例中,电子处理器150直接查询协作会话158(例如,通过进行子例程调用),以请求参与协作会话的其他客户端应用会话。在一些实施例中,应用120电子处理器150检查诊断日志122或错误消息以确定指示协作会话158的会话标识符。电子处理器150使用会话标识符确定哪些其他客户端应用会话正在参与由会话标识符标识的协作会话。在一些实施例中,电子处理器150通过查询例如存储在存储器152中的数据库来确定第二客户端应用会话。在该示例中,协作会话158内的第二客户端应用会话是与第二用户设备104上的第二用户146相关联的应用140。

在框206处,已经确定了第二客户端应用会话,电子处理器150在第二客户端应用会话中基于错误消息触发人为错误条件。在一个示例中,协作服务器106将错误消息的副本发送给第二用户设备104。应用140接收到人为生成的错误,并将其记录在诊断日志142中。如同第一用户设备102,在该错误由第二用户设备104记录时,它使第二用户设备104的应用140(或操作系统138)将包括人为生成的错误的诊断日志142发送给协作服务器106。在一些实施例中,错误的记录引起第二用户设备104的应用140(或操作系统138)发送多个日志。在一些实施例中,应用140或操作系统138用协作会话标识符来标记诊断日志142,并将日志发送给外部存储服务。

因此,在框208处,响应于触发人为错误条件,电子处理器150从(应用140的)第二客户端应用会话接收第二诊断日志(诊断日志142)。在一些实施例中,协作服务器106发送不同于由客户端应用会话的操作引起的错误的特殊错误消息。例如,错误消息可以包括标识从第一客户端应用会话接收到的错误消息的错误类型的数据、关于该错误是人为的指示,等等。特殊错误消息仍将使得接收到它的客户端应用会话发送其诊断日志,并可以用于将人工触发的诊断日志与原始发送的日志区分开。

在框210处,电子处理器150用指示协作会话158的会话标识符标记第一诊断日志和第二诊断日志。例如,电子处理器150可以将包括会话标识符的元数据附加于日志文件。在另一个示例中,电子处理器150可以使用预定格式将会话标识符直接插入到诊断日志中。在一些实施例中,第一和第二诊断日志被合并为单个文件,该单个文件用会话标识符进行标记。

在一些实施例中,在将诊断日志发送给协作服务器之前,在用户设备处用会话标识符来标记诊断日志。

如所指出的,分析协作会话的所有成员的诊断日志可以允许系统管理员确定原始错误的原因。因此,在框212处,电子处理器150将第一诊断日志和第二诊断日志(例如,经由通信接口156)发送给协作环境管理员。在一些实施例中,使用协作服务器106的人机接口154将日志呈现给协作环境管理员。在一些实施例中,日志被发送给另一系统或设备,以供协作环境管理员进一步分析。

在框214处,电子处理器150经由通信接口156将基于错误的通知发送给第一用户126、第二用户146或两者。例如,协作服务器106可以向第二用户146发送关于已经发生错误的通知,否则该第二用户将不知道由第一用户126接收到的错误消息。在另一个示例中,可以向第一用户126、第二用户146或两者通知已接收到错误报告。该通知可以包括:关于错误的性质的信息,首先接收到该错误消息的用户的身份,关于他们的文档副本124可能不是最新的警告,用于在协作会话158之外保存文档124的备份副本的指令,用于手动将更改合并到文档124的指令,等等。

在一些实施例中,电子处理器150从协作环境管理员接收基于该错误的补救步骤。例如,协作环境管理员确定错误不是由第一应用会话引起的,而是由从第二个应用会话接收到的损坏数据引起的。在该示例中,电子处理器150接收补救步骤,以使第二用户146执行以纠正损坏数据。例如,补救步骤可以包括运行磁盘实用程序以修复本地存储的数据,丢弃文档124的本地副本以从协作服务器106获得新副本,检查网络连接性,更新应用140,等等。

在一些实施例中,电子处理器150自动确定该错误的潜在来源和补救步骤。在一些实施例中,电子处理器150确定一个或多个用户的应用需要更新。例如,应用140可以是应用120的较早版本。因为版本不匹配可能导致协作会话中的错误,因此发送给第二用户146的通知包括用于升级用于访问协作环境的应用的指令。在另一个示例中,错误消息可以与已知已经由软件补丁解决的错误类型相关联。在这样的情况下,通知可以包括用于安装软件补丁的指令。

上面根据两个用户设备在单个文档上协作描述了方法200。然而,应当理解,方法200可应用于其他协作计算场景,包括具有两个以上用户设备和一个以上协作会话的场景。

在所附权利要求中阐述了一些实施例的各种特征和优点。

相关技术
  • 从参与文档协作会话的各用户收集重复诊断数据
  • 在多方通信系统中获得会话参与用户会话能力的方法
技术分类

06120113106622