复杂分布式应用程序中的自动化恢复和升级的制作方法

文档序号:6360219阅读:218来源:国知局
专利名称:复杂分布式应用程序中的自动化恢复和升级的制作方法
复杂分布式应用程序中的自动化恢复和升级
背景技术
在今天的联网通信环境中,很多过去由本地执行的应用程序所提供的服务现在通过分布式服务来提供。例如,电子邮件服务、日历/日程安排服务和类似服务是通过复杂的联网系统提供的,其中联网系统涉及多个物理的和虚拟的服务器、存储设施和其它跨越地理边界的组件。即使诸如企业网络等组织系统也可能通过物理上分开的服务器场实现,等
坐寸O尽管分布式服务使得更易于管理应用程序的安装、更新和维护(例如,代替安装、更新和维护成百的一假如不是成千的话一本地应用程序,中央管理的服务可以照看这些任务),此类服务仍涉及在多个服务器上执行的多个应用程序。在连续地管理此类大规模 分布式应用程序时,可预期各种问题。硬件故障、软件问题和其他预料外的失灵可能会定期发生。试图管理并从此类问题中手动恢复可能需要成本过高的数量的专职的并有丰富领域知识的运营工程师。

发明内容
提供本发明内容以便以简化的形式介绍将在以下的具体实施例中进一步描述的一些概念。本发明内容并不旨在专门标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。各实施例涉及将检测到的警告映射到恢复动作,从而在联网通信环境中自动地解决问题。未被映射的警告可通过循环升级方法升级给指定个体,该方法包括来自指定个体的确认交接通知。根据一些实施例,在升级过程中为每个警告收集的信息以及方案可被记录以便扩展自动化解决知识库。通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。可以理解,前述一般描述和以下的详细描述都是说明性的,并且不限制所要求保护的各方面。


图I是检测到警告可能导致修复动作或者警告升级的示例环境的概念图;图2是示出警告升级期间的动作的动作图;图3是示出多区域环境中的警告管理的另一概念图。图4是联网环境,其中可实现根据实施例的系统;图5是可实现各实施例的示例计算操作环境的框图;以及图6是示出根据各实施例的联网通信环境中的警告的自动化管理的逻辑流程图。
具体实施例如以上简要描述的,联网系统中的警告可通过自动化动作/升级过程管理,其中自动化动作/升级过程使用映射到警告的动作和/或用于手动解决的升级,同时扩展知识库中自动化动作的部分并将收集的信息提供给有解决所述问题的任务的指定个体。在以下详细描述中,参考了构成详细描述的一部分并作为说明示出各个具体实施例或示例的附图。可组合这些方面,可利用其他方面,并且可以做出结构上的改变而不背离本发明的精神或范围。因此,以下详细描述并不旨在限制,并且本发明的范围由所附权利要求及其等效方案来限定。尽管在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施例,但是本领域的技术人员会认识到各方面也可以结合其它程序模块实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域的技术人员可以明白,各实施例可以用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机以及类似计算设备。各实施例还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
各实施例可被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码包括用于使计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。例如,计算机可读存储介质可经由易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或紧致盘和类似介质中的一个或多个来实现。计算机程序产品也可以是计算系统可读并且对用于执行计算机过程的指令的计算机程序编码的载体(例如,频率或相位调制信号)上的传播信号。对服务的引用贯穿本说明书。此处使用的服务描述任何可接收警告作为其常规操作的一部分并处理/存储/转发此信息的联网/在线应用程序。此类应用程序可在单个计算设备、交互式的多个计算设备以及诸如此类上执行。各实施例还可在在多个服务器或类似系统上执行的托管服务中实现。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为在被视作网络上的服务器的一个或多个计算设备上执行的虚拟服务器(软件程序)。在下面将提供关于这些技术和示例操作的详细细节。参考图1,概念图100示出了检测到警告可导致修复动作或警告升级的示例环境。如之前简要提到的,各实施例通过自动化修复动作和警告升级来解决技术支持服务的复杂性。例如,在分布式技术支持服务系统中,监视引擎103可在检测到分布式系统中的硬件、软件或硬件/软件组合的问题时向自动化引擎102发送警告113。自动化引擎102可试尝试将警告113映射到修复动作112。如果自动化引擎102成功地将警告113映射到修复动作112,那么自动化引擎102可执行修复动作112,修复动作可包括用于解决检测到的问题的一组指令。问题可与地理上为分布式的服务地点105中的一个或多个设备104相关联。设备可包括任何计算设备,诸如台式计算机、服务器、智能电话、膝上型计算机以及类似计算设备。设备104还可包括附加的远程可访问设备,诸如监视器、音频设备、电视机、视频捕捉设备及其他类似设备。
警告113可包括与检测到的问题相关联的设备或程序的状态信息,诸如设备存储器的内容、传感器读数、最后执行的指令,以及其他信息。警告113还可包括问题描述,诸如哪一指令执行失败、哪些执行指示了超出预定限制的结果,以及类似描述。自动化引擎102可尝试通过搜索故障诊断数据库114将警告113映射到修复动作112。故障诊断数据库114可存储匹配到由设备或软件程序进一步分类的修复动作的警告的档案。一示例实现可以是匹配到重启通信设备网络接口的修复动作的通信设备的“无连接”警告。一个或多个修复动作可被映射到每个警告。此外,一个或多个警告可被映射到单个修复动作。如果自动化引擎102为警告确定了多个修复动作,执行优先级可取决于各修复动作的预定优先级。例如,以上讨论的场景中主要的修复动作可能是重启网络接口,随后是重新引导通信设备的次级修复动作。修复动作的预定优先级可被手动输入到故障诊断数据库 114中,或者基于修复动作成功评估方案在问题得到成功修正时自动地确定。根据一些实施例,修复动作112可包括收集来自与所述问题相关联的设备和/或软件程序的附加诊断信息。根据其他实施例,附加诊断信息可作为重启自动化循环的警告发送到监视引擎。作为对警告的响应,附加诊断信息还可被收集并存储在系统中。存储的信息可用来捕捉问题状态和提供当警告被升级给指定个人或团队(例如,101)时的上下文。如果自动化引擎102未在故障诊断数据库114中找到映射的修复动作,警告113可被升级给指定的个人或团队101。即使映射的动作被找到并为了信息的目的而执行了,也可通知指定的个人或团队101。发送警告113给指定的个人或团队101可根据警告113的命名约定来确定。警告的命名约定可指示警告应升级给哪个支持人员,诸如硬件支持团队、软件支持团队以及类似人员等。命名约定方案还可用来将警告映射到恢复动作。例如,警告可以分层的方式(例如,系统/组件/警告名)命名,而且恢复动作可在从系统的所有警告(系统/*)到用于具体警告的特殊恢复动作的任何地方被映射到。根据一些实施例,每个具体警告可有指定的团队与之相关联,尽管该团队可能被默认为整个组件的特定值。将警告发送给哪个团队成员的判断可依赖于为了知晓支持团队的日程安排而驻留在自动化引擎中的预定的映射算法。预定的映射算法可手动更新或者通过集成调度系统或外部调度系统自动地更新。自动化引擎102可通过电子邮件、即时消息、文本消息、寻呼、语音邮件或类似手段将警告113升级给第一个指定个人或团队。警告可被映射到团队名,而且团队名可被映射到按预定间隔(例如,一天、一周等等)应呼的一组个体。映射的一部分可用来标识哪些人在该间隔中应呼。这样,警告映射可以从可能流动的个体团队成员中抽象出来。然后自动化引擎102可等待来自第一个指定个人或团队的交接通知。交接通知可由自动化引擎102以警告之前如何发送的方式接收或者它可通过其他手段接收。如果自动化引擎102未在预定量的时间以内接收到,其可将警告113升级给通过预定的映射算法确定的轮班的下一指定个人或团队。自动化算法可一直将警告升级给轮班的下一指定个人或团队,直到收到交接通知。在修复动作112的执行将反馈响应传递给自动化引擎102以后,监视引擎103可从设备或软件程序处接收该响应(例如,以动作的形式)。然后自动化引擎102可更新故障诊断数据库114。诸如修复动作的成功率等的统计信息可用来改变修复动作的执行优先级。而且,与指定个人或团队执行的动作相关联的反馈响应也可记录在故障诊断数据库114中,使得机器学习算法或类似机制可用来扩展动作列表、将新警告映射到已有的动作、将已有的警告映射到新动作,诸如此类。根据某些实施例,自动化引擎的动作和指定个人的动作可由系统审核。系统可维护关于谁、什么时候及针对什么设备或服务器执行了特定动作的日志。然后记录可用来故障诊断、跟踪系统内的变化、及/或开发新的自动化警告响应。根据其他实施例,自动化引擎102可对故障诊断数据库114执行通配符搜索并响应于接收到的警告而确定多个修复动作。单个或成组修复动作的执行可依赖于各修复动作的预定优先级。成组的修复动作也可映射到成组的警告。当警告可匹配几个通配符映射时,实际应用最特定的映射。例如,警告“交换/传输/排队”可匹配映射“交换/*”、“交换/传输/*”和“交换/传输/排队”。然而,最后一个可能实际上是真实的映射,因为其为最特定的一个。图2在图200中示出警告升级期间的动作。监视引擎202可提供检测到的问题作为给自动化引擎204的警告(211)。自动化引擎204可从动作存储206(图I的故障诊断数据库114)检查可用的动作(212),如果有可用的动作则执行动作(213)。如果没有可用的动作,自动化引擎204可将警告升级(214)给过程拥有者208。警告可进一步升级(215)给其他指定者209。如前所述,升级也可与所确定的动作的执行并行执行。当从过程拥有者208或者其他指定者209处接收到要执行的新动作(216、217)时,自动化引擎204可执行新动作(218)并用新动作更新记录(219)以备将来使用。图200中的示例交互示出有限制的场景。根据各实施例,诸如与指定人员的交接、来自报告问题的设备/软件的反馈和类似交互等其他交互也可包括在自动化恢复和升级系统的操中。图3在图300中示出多区域环境中的警告管理的概念图。在分布式系统中,警告的升级可依赖于地理区域的预定优先级。例如,当两个区域的升级同时由单个支持团队管理时,预定优先级可能升级来自处于白天的区域的警告并扣住来自处于夜间的区域的警告。类似地,当来自不同区域的修复动作竞争相同的硬件、软件、通信资源以解决检测到的问题时,来自不同区域的修复动作可基于预定的优先级而被区分优先级。图300示出根据各实施例来自不同区域的警告可怎样被系统解决。根据示例场景,监视引擎303、313和323可分别负责监视来自区域1、2和3 (304、314和324)的硬件和/或软件问题。当检测到问题时,监视引擎的每一个都可发送警告到相应的自动化引擎302、312和322,这些自动化引擎可负责相应的区域。自动化引擎的逻辑以与监视逻辑同样的方式分布到每个区域。根据一些实施例,自动化可跨区域发生,诸如全站故障和恢复等。根据其他实施例,自动化引擎可负责多个区域。类似地,升级目标也可为集中式或分布式。例如,系统可基于一天内的时间升级给不同的团队。监视引擎303、313和323可拥有自己的单独的区域数据库以管理监视过程。自动化引擎302、312和322可对故障诊断数据库(集中的或分布式)进行查询以将警告映射到修复动作。如果找到相应的修复动作,自动化引擎302、312和322可在区域304、314和324中的设备和/或程序上执行修复动作。还可对所有区域实现全局监视数据库310。如果自动化引擎302、312和322不能找到匹配的修复动作,它们可基于诸如组织结构等预定义的区域优先级将警告升级给指定的支持团队301。例如,区域304可能是商业组织的公司企业网而324是文档支持网络。在这一场景中,在区域304中检测到的问题的优先级可高于区域324中检测到的问题。类似地,在确定区域优先级时,一天中的不同时间或者不同区域间的工作日/假日区别,以及类似因素等可被考虑进去。根据一些实施例,多个自动化引擎可分配给不同的区域,且如上所述通过自动化引擎间的一致性算法确定升级和/或修复动作优先级。可替换地,管理区域自动化引擎的进程可作出优先级决定。而且,自动化引擎302、312和322可与区域故障诊断数据库交互,区域故障诊断数据库包括定制的修复动作一用于不同区域的警告映射。以上结合图1、2和3使用示例场景、特定修复动作的执行和警告的升级讨论了分布式系统中的自动化恢复和升级过程,但各实施例不限于此。警告到修复动作的映射、修复动作的优先次序、警告的升级和其他过程可使用此处讨论的各原则,采用其他操作、优先级、评估等来实现。图4是可实现各实施例的示例联网环境。警告到修复动作的映射可通过诸如托管服务的在一个或多个服务器422上执行的软件而实现。服务器422可通过网络410与各个计算设备上的客户端应用程序通信,计算设备诸如手机411、移动计算设备412、智能电话 413、膝上型计算机414和台式计算机415等(客户端设备)。客户端设备411-415上的客户端应用程序可促进用户与在服务器422上执行的服务交互,这些服务允许对与服务相关联的软件和/或硬件问题的自动化管理。自动化和监视引擎可在各服务器422中的任一个上执行。与诸如将警告映射到修复动作的操作相关联的数据可存储在一个或多个数据存储(例如,数据存储425或426)中,数据存储可由服务器422中的任何一个或数据库服务器424管理。根据各实施例的对检测到的问题的自动化恢复和升级可在如以上示例所述的警告被监视引擎检测到时被触发。网络410可包括服务器、客户机、因特网服务供应商以及通信介质的任何拓扑结构。根据各实施例的系统可以具有静态或动态拓扑结构。网络410可以包括诸如企业网络等安全网络、诸如无线开放网络或因特网等非安全网络。网络410提供此处描述的节点之间的通信。作为示例而非限制,网络410可以包括无线介质,诸如声学、RF、红外和其他无线介质。计算设备、应用程序、数据源和数据分布系统的很多其他配置可被采用来实现根据各实施例的对分布式系统问题的自动化管理的系统。此外,图4中所讨论的联网环境仅用于说明目的。各实施例不限于示例应用程序、模块、或过程。图5及相关联讨论旨在提供对其中可实现各实施例的合适计算环境的简要概括描述。参考图5示出诸如计算设备500等根据各实施例的服务应用程序的的示例计算操作环境的框图。在基本配置中计算设备500可以是托管服务系统中的服务器并包括至少一个处理单元502和系统存储器504。计算设备500还可包括协作执行程序的多个处理单元。取决于计算设备的确切配置和类型,系统存储器504可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。系统存储器504通常包括适于控制平台操作的操作系统505,诸如来自华盛顿州雷德蒙市的微软公司的WINDOWS 操作系统。系统存储器504还可包括一个或多个程序模块506、自动化引擎522和监视引擎524。自动化和监视引擎522和524可以是单独的应用程序或如上所述处理系统警告的托管服务的集成模块。该基本配置在图5中由虚线508内的那些组件示出。
计算设备500可具有附加特征或功能。例如,计算设备500还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。在图5中通过可移动存储509和不可移动存储510示出这样的附加存储。计算机可读存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器504、可移动存储509和不可移动存储510都是计算机可读存储介质的示例。计算机可读存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光学存储,磁带盒、磁带、磁盘存储或其它磁存储设备,或能用于存储所需信息且能够由计算设备500访问的任何其它介质。任何这样的计算机可读存储介质都可以是计算设备500的一部分。计算设备500还可以具有输入设备512,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备和类似输入设备。还可以包括输出设备514,诸如显示器、扬声器、打印机和其它类型的输出设备。这些设备在本领域中公知且无需在此处详细讨论。 计算设备500还可以包含允许该设备与其他设备516通信的通信连接518,诸如通过分布式计算环境中的无线网络、卫星链路、蜂窝链路和类似机制。其他设备518可包括执 行分布式应用程序及执行类似操作的计算机设备。一个或多个通信连接516是通信介质的一个示例。通信介质可以包括计算机可读指令、数据结构、程序模块、或者诸如载波或其它传输机制等的已调制数据信号中的其它数据,并且包括任何信息传递介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。各示例实施例还包括各种方法。这些方法可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。另一可任选方式是结合一个或多个人类操作者执行该方法的各个操作中的某一些来执行该方法的一个或多个操作。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。图6示出根据各实施例分布式系统中的问题恢复和升级的自动化管理的逻辑流程图600。过程600可在服务器上作为托管服务的一部分实现或在客户端应用程序上实现,从而与诸如之前所述的服务交互。过程600从操作602开始,在该处自动化引擎检测到由监视引擎响应于系统中的设备和/或软件应用程序问题而发出的警告。在操作604处,自动化引擎已经从监视引擎接收到警告,可开始收集与该警告相关联的信息。这之后在操作606处可尝试将警告映射到一个或多个修复动作。如果映射到所述警告的显式动作在判定操作608处被找到,该动作(或多个动作)可在后续操作610处执行。如果在映射过程中没有显式动作被确定,该警告可在操作614处升级给指定个人或团队。操作614之后可以是任选操作616和618,在那里新动作可从指定个人或团队处被接收并被执行。在操作612处,记录可根据执行过的动作(映射的或新的)更新,使得映射数据库可以被扩展或者与成功率相关联的统计信息可以为将来的监视和自动化响应任务所用。包括在过程600内的各操作是用于说明目的。复杂分布式应用程序中的问题的自动化恢复和升级可以使用此处所述的各原理通过具有更少或更多步骤的相似过程、以及不同的操作次序来实现。以上说明书、示例和数据提供了对各实施例的组成的制造和使用的全面描述。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中 定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求和各实施例的示例形式而公开的。
权利要求
1.一种至少部分地在计算设备中执行的用于分布式系统中的自动化 恢复和警告升级的方法,所述方法包括 从监视引擎处接收与检测到的问题相关联的警告; 尝试将所述警告映射到恢复动作; 如果所述警告被映射到恢复动作,则执行所述恢复动作;否则 将所述警告升级给指定人;以及 更新与警告-恢复动作的映射相关联的记录。
2.如权利要求I所述的方法,其特征在于,还包括 收集与所述检测到的问题相关联的诊断信息; 如果所述警告被升级,向所述指定人提供所收集的诊断信息;以及 在更新所述记录时采用所收集的诊断信息。
3.如权利要求2所述的方法,其特征在干,所收集的诊断信息包括下列ー组中的至少ー项设备的存储器内容、传感器读数、最后执行的指令、失败的指令、以及与所述检测到的问题相关联的故障結果。
4.如权利要求I所述的方法,其特征在于,还包括 在升级所述警告后等待来自所述指定人的交接响应;以及 如果在预定义时间段内未接收到所述交接响应,则将所述警告升级给另一指定人。
5.如权利要求I所述的方法,其特征在于,所述指定人是根据指定人的预定义列表和所述警告的命名约定之一确定的,且所述指定人包括个人或团队之一。
6.如权利要求I所述的方法,其特征在干,将所述警告升级包括 通过下列一组中的至少ー项将所述警告发送给所述指定人电子邮件、即时消息、文本消
7.如权利要求I所述的方法,其特征在于,还包括 在所述恢复动作执行以后从与所述检测到的问题相关联的设备或程序之一处接收反馈动作;以及 更新与所述恢复动作相关联的成功率记录。
8.一种用于分布式系统中的警告自动化恢复和升级的系统,所述系统包括 执行监视引擎和自动化引擎的服务器,其特征在于,所述监视引擎被配置成 检测与分布式系统中的设备和软件应用程序中至少ー个相关联的问题;以及 基于所述检测到的问题发送警告;且 所述自动化引擎被配置成 接收所述警告; 收集与所检测到的问题相关联的诊断信息; 试图采用恢复动作数据库将所述警告映射到恢复动作; 如果所述警告被映射到恢复动作,则执行所述恢复动作;否则 将所述警告与所收集的诊断信息一起升级给指定人;以及 更新所述恢复动作数据库中的记录。
9.如权利要求8所述的系统,其特征在于,还包括多个监视引擎,每个监视引擎被配置成基于用于所述分布式系统内每个地理区域的系统规模监视不同的地理区域并基于其相应区域中检测到的问题发送警告,其中所述自动化引擎还被配置成 执行映射的恢复动作和基于区域优先级将来自不同区域的警告升级给所述指定人ニ者之一。
10.如权利要求8所述的系统,其特征在于,所述区域优先级还基于下列ー组中的至少ー项的可用性而确定指定的支持团队、硬件资源、软件资源、以及通信资源。
11.如权利要求8所述的系统,其特征在于,所述警告被映射到多个恢复动作,以及所述各恢复动作根据预定义的执行优先级而执行。
12.如权利要求8所述的系统,其特征在于,所述设备包括台式计算机、膝上型计算机、手持式计算机、服务器、智能电话、监视器、音频设备、电视机和视频捕捉设备之一。
13.一种计算机可读存储介质,其上存储有用于分布式系统中的自动化恢复和警告升级的指令,所述指令包括 在监视引擎处检测与分布式系统内的设备和软件应用程序中的至少ー个相关联的问题; 基于检测到的问题从所述监视引擎处发送警告;以及 在自动化引擎处接收所述警告; 收集与所述检测到的问题相关联的诊断信息; 尝试将所述警告映射到来自恢复动作数据库的恢复动作,所述恢复动作包括一组用于解决所述检测到的问题的指令; 如果所述警告被映射到单个恢复动作,则执行所述恢复动作; 如果所述警告被映射到多个恢复动作,则根据预定义的执行优先级执行所述多个恢复动作; 如果所述警告未被映射到恢复动作,则将所述警告与所收集的诊断信息一起升级给指定人; 从所述指定人处接收交接响应;以及 采用所收集的诊断信息和与所执行的恢复动作相关联的反馈响应来更新所述恢复动作数据库中的记录。
14.如权利要求13所述的计算机可读存储介质,其特征在于,所述恢复动作被映射到单个警告和ー组警告之一。
15.如权利要求13所述的计算机可读存储介质,其特征在于,所述指定人是根据所述警告的命名约定和基于支持人员的可用性的轮班算法之一而确定的。
全文摘要
复杂分布式应用程序环境中基于检测到的硬件和/或软件问题的警告被映射到恢复动作以自动地解决问题。未被映射的警告通过循环升级方法被升级给指定个体或团队,该方法包括来自指定个体或团队的确认交接通知。升级过程中为每个警告收集的信息和方案可被记录以扩展自动化解决知识库。
文档编号G06F9/44GK102859510SQ201180019685
公开日2013年1月2日 申请日期2011年3月30日 优先权日2010年4月21日
发明者J·阿夫纳, S·布拉迪, 严永文, 志田治哉, S·亚济乔鲁, A·卢基扬诺夫, B·阿林尔, C·纳什 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1