首页> 中国专利> 应用、外部依存关系、和关联的动态发现

应用、外部依存关系、和关联的动态发现

摘要

安排了监视系统用于自动且动态地发现运行在企业范围服务环境内的服务器上的本地应用,并且发现本地应用使用的外部资源(经划分的和未划分的资源两者)。所发现的对象和它们的依存关系被实例化为健康图,且该图随着应用和资源被添加到该企业范围环境或从该企业范围环境删除而被动态地更新。健康指示符,诸如所绘图的对象的事件、性能计数器、综合性事务、以及SysLog和SNMP(简单网络管理协议)服务事件被监视。所监视的健康指示符被归属到本地应用的健康或外部资源的健康。一旦检测到故障,健康图使得环境中的对象上的故障的影响的根本原因分析和确定能够执行,使得适当的警告可被提出。

著录项

  • 公开/公告号CN105723343A

    专利类型发明专利

  • 公开/公告日2016-06-29

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201480051883.7

  • 发明设计人 M·雷珀格;

    申请日2014-09-18

  • 分类号G06F11/07;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人杨洁

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 15:45:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-22

    授权

    授权

  • 2016-07-27

    实质审查的生效 IPC(主分类):G06F11/07 申请日:20140918

    实质审查的生效

  • 2016-06-29

    公开

    公开

说明书

背景

企业范围的服务通常具有大量处于特定角色的服务器。服务器的安排通常 随着机器被添加、移除、或拿出去维护而相当不固定。此外,许多企业范围的 服务利用它们的服务的多个副本。结果,设计可自动发现服务并向操作中心给 予相对健康状态的监视系统可能是挑战性的。

提供本背景来介绍以下概述和详细描述的简要上下文。本背景不旨在帮助 确定所要求保护的主题的范围,也不旨在被看作将所要求保护的主题限于解决 以上所提出的问题或缺点中的任一个或全部的实现。

概述

安排了监视系统用于自动且动态地发现运行在企业范围服务环境内的服 务器上的本地应用,并且发现本地应用使用的外部资源(经划分的和未划分的 资源两者)。所发现的对象和它们的依存关系被实例化为健康图,且该图随着 应用和资源被添加到该企业范围环境或从该企业范围环境删除而被动态地更 新。健康指示符,诸如所绘图的对象的事件、性能计数器、综合性事务、以及 SysLog和SNMP(简单网络管理协议)服务事件被监视。所监视的健康指示符 被归属到本地应用的健康或外部资源的健康。一旦检测到故障,健康图使环境 中各对象上的故障的影响的根本原因分析和确定能够执行,使得适当的警告可 被提出。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些 概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨 在用作辅助确定要求保护的主题的范围。而且,所要求保护的主题不限于解决 该公开的任一部分中所注的任何或全部缺点的实现方式。

附图简述

图1示出可在其中可实现本应用、外部依存关系、和关联的动态发现的说 明性计算环境;

图2示出了说明性企业范围服务中的服务器、数据库、和操作中心;

图3示出了可在企业范围服务中被使用的说明性产品和测试环境中安排的 复制服务器和外部资源;

图4是用于动态地发现应用、外部依存关系、和关联的说明性方法的流程 图;

图5-9示出了图4中所示方法的步骤的各种细节的说明性分类。

图10是可部分地被用于实现本应用、外部依存关系、和关联的动态发现 的说明性计算机系统(诸如个人计算机(“PC”))的简化框图;以及

图11示出可部分地被用于实现本应用、外部依存关系、和关联的动态发 现的说明性的计算平台的框图。

各附图中相同的附图标记指示相同的元素。除非另外指明否则各元素不是 按比例绘制的。

详细描述

图1示出可在其中可实现本应用、外部依存关系、和关联的动态发现的说 明性计算环境100。各种客户端设备110(包括多媒体控制台、移动电话、智 能手机、平板、个人计算机(“PCs”)、个人数字助理(“PDAs”)、手持式游戏平台、 个人媒体播放器、可穿戴计算机、导航设备等)的用户105,可通过诸如互联 网125的网络与一个或多个企业范围服务1151...N进行交互。例如,在任意 的不同应用的中,企业范围服务115可主存web应用、提供可消费媒体内容、 支持可浏览和/或可交互web页等。

图2示出了说明性企业范围服务115中的服务器、数据库、和操作中心。 如所示,多个服务器2051,2...N位于服务115中,并被用于支持与用户105和客 户端设备110的交互(图1)。在某些情况中,给定服务器205可被操作性地 耦合到外部资源的一个或多个数据库,如附图标记210代表性地指示的。在企 业范围服务115的典型操作期间,服务器205可被添加到环境、从环境移除、 或取出供维护,如服务器205N的虚线呈现代表性地指示的。

操作中心215被配置来与服务器205和外部资源210进行通信,使得对服 务115的各种操作性方面的监视可被实现。如以下进一步详述的,这样的监视 可由监视服务220执行,并包括对象实例化为健康图225,并且随时间流逝当 服务器205和资源210被添加到服务115以及从服务115移除时动态更新图。 监视还被用来一旦检测到在服务115中发生故障就生成单个根本原因警告230。

图3示出了可在企业范围服务115中被使用的说明性产品和测试服务环境 (分别由附图标记300和305指示)中安排的复制服务器和外部资源的说明性 图225。以此方式的复制可通常被执行以确保对用户105的高质量和可靠服务 的提供。例如,如果检测到或由产品用户310报告服务中的故障或问题,则测 试用户315和/或其它服务个人可在测试环境315中执行测试、运行诊断、尝 试复制问题、或测试潜在解决方案及变通、以及其他活动,而无需非得拆除生 产环境300中的生产服务器和资源(这对于服务115和其用户而言可能通常是 高破坏性的)。

在生产和测试服务环境两者中,本地应用被安排在服务组中。如在此使用 的,本地应用是运行在单个服务器上的应用的单个实例,例如支持微软公司的 游戏相关的服务提供的www.xbox.comweb服务器。服务组是本地应用的组, 其向公共消费者提供通用功能,例如,生产环境中的全部www.xbox.com服务器 (注意到测试环境中的全部www.xbox.com服务器为不同服务组)。

生产服务环境300,如图3所示,包括本地应用A的两个实例,如服务组 A325中的附图标记3201和3202所表示的。本地应用B的两个实例,3301和 3302,在服务组B335中。本地应用A的复制实例,3401和3402,在测试服务 环境305中的复制服务组A345中被支持。本地应用B的复制实例,3501和3502, 在复制服务组B355中被支持。

外部资源在生产服务环境300和测试服务环境305两者中也被支持。这些 外部资源可包括未划分的外部资源和经划分的外部资源两者。如在此使用的, 未划分的外部资源是本地应用需要的服务,它在其自身以外,并可被看成是单 个实体或“黑盒”。经划分的外部资源是本地应用需要的服务,它在其自身以 外,并且本地应用对它具有子组件(诸如个体服务器)的粒度视图。

生产服务环境300包括如分别由附图标记360和365所指示的未划分的资 源Y和Z,以及分别由附图标记370和375所指示的经划分的资源Q/1和Q/2。 测试服务环境305包括如分别由附图标记380和385所指示的复制未划分的资 源Y和Z,以及分别由附图标记390和395所指示的复制经划分的资源Q/1和 Q/2。

本地应用和外部资源之间的依存关系使用图3中的箭头示出。注意到说明 性图225可通常被期望是动态的并随着本地应用、服务组、和资源在服务中被 移入和移出而改变。此外,经划分的资源的附加部分可被动态添加或移除。因 此,特定本地应用、服务组、资源,及其在特定图中的它们各种依存关系和关 联在给定时间可变。因此可以理解图3中示出的图225表示服务115如其在某 任意时间存在的快照。

图4是用于动态发现可移入和移出图2所示企业范围服务115的应用、外 部依存关系、和关联的说明性方法400的流程图。该方法的实践可促进诸如图 3所示的图的健康图的创建,并随后更新该图,以便随着变换的发生来反映变 化。图中的数据可接着被用来作出健康决策并在检测到故障时用根本原因标识 来提出警告。该方法可例如,使用在计算平台上执行的监视服务220(诸如图 2操作中心215处实现的服务器)来实现。除非明确说明,否则图4的流程图 和图5-9中的分类中所示并且在下面描述的方法或步骤不限于特定的次序或 序列。此外,一些方法或其步骤可同时发生或被执行,并且取决于给定实现的 要求,在这一实现中不是所有方法或步骤均需要被执行,并且一些方法或步骤 可以是可选地被使用。

在框405,作出本地应用是否存在于环境中的服务器上的判定。参见图5 中的分类500,该判定可使用一个或多个替换方法来作出。例如,监视服务220 可询问所监视的服务器的是/否问题,包括指定注册表项是否存在(如附图标 记505所示)、指定文件是否存在于本地文件系统上(510)、或指定环境变 量是否被设置(515)。

返回图4,在框410,作出所发现的本地应用属于哪个服务环境的判定。 参见图6中的分类600,该判定可使用一个或多个替换方法来作出。例如,监 视服务220可查询操作系统的域(605)、读取注册表中的串(610)、读取配 置文件中的行(615)、或读取配置数据库(620)。

再次返回图4,在框415,所发现的对象被实例化成健康图225(图2)。 参见图7中的分类600,该判定可使用所示步骤来执行。这包括,例如,向健 康图添加新本地应用(710),如果与该应用相关联的服务组当前不在健康图 中,则将其添加到健康图(715),并且如果与该本地应用和服务组相关联的 服务环境当前不在健康图中,则将其添加到健康图(720)。

再次返回图4,在框420,执行本地应用使用的外部资源的发现。参见图8 中的分类800,该发现可使用一个或多个替换方法来作出。例如,监视服务220 可枚举性能计数器的实例(805)、读取配置文件(810)、读取配置数据库(815)、 或评估网络流量(820)。

再次返回图4,在框425,如果外部资源不是已知的就将它们实例化为健 康图。在框430,监视本地应用的健康指示符。如图9中的分类900中所示的, 健康指示符可包括以下的一个或多个:事件905,性能计数器910、综合性事 务915(例如,那些使用Lync服务器实现的事务)、SysLog服务事件920、和 SNMP服务事件925。

再次返回图4,在框435,健康指示符900被归属到本地应用的健康或外 部资源的健康。在框440,在故障的事件中,那么单个根本原因警告230(图2) 可由监视服务提出。在框445,受故障影响的服务组和服务环境被指示。

例如,如果未划分外部资源Y(图3中的元素360)在生产环境300中发 生故障,那么支持服务组A的服务器(图3中的元素325)将检测故障,因为 它们在那个资源上具有依存关系。警告可报告服务组A受影响,但是服务组服 务器不是故障的根本原因。在另一个示例中,如果经划分的资源Q的部分1(图 3中元素390)在测试环境305中发生故障,全部四个本地应用(即,本地应 用A的两个实例和本地应用B的两个实例)将受影响,但是应当由监视服务向 操作中心提出单个警告,资源Q的部分1是故障的根本原因。该警告可报告测 试环境305中的服务组A和B、345和355两者都受影响,但不是故障的根本 原因。

图10是可用来实现应用、外部依存关系、和关联的当前动态发现的诸如 PC、客户端设备或服务器之类的说明性计算机系统1000的简化框图。计算机 系统1000包括处理单元1005、系统存储器1011以及将包括系统存储器1011 的各种系统组件耦合至处理单元1005的系统总线1014。系统总线1014可以是 若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线 和使用各种总线架构中的任一种的局部总线。系统存储器1011包括只读存储 器(“ROM”)1017和随机存取存储器(“RAM”)1021。基本输入/输出系统 (“BIOS”)1025被存储在ROM1017中,该基本输入/输出系统1025包含了诸 如在启动期间帮助在计算机系统1000内的元件之间传输信息的基本例程。计 算机系统1000还可包括对内置硬盘(未示出)读写的硬盘驱动器1028、对可 移动磁盘1033(例如,软盘)读写的磁盘驱动器1030、以及对诸如CD(压缩 盘)、DVD(数字多功能盘)或其它光学介质等可移动光盘1043读写的光盘 驱动器1038。硬盘驱动器1028、磁盘驱动器1030,以及光盘驱动器1038分别 通过硬盘驱动器接口1046、磁盘驱动器接口1049,以及光盘驱动器接口1052 连接到系统总线1014。驱动器及其相关联的计算机可读存储介质为计算机系统 1000提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性 存储。虽然这个说明性的示例显示硬盘、可移动磁盘1033以及可移动光盘1043, 但是其它类型的可存储可被诸如磁带盒、闪存卡、数字视频卡、数据磁带、随 机存取存储器(“RAM”)、只读存储器(“ROM”)等访问的数据的计算机可读 存储介质也可在本应用的动态发现、外部依存关系、和关联的一些应用中使用。 此外,如在此使用的,术语计算机可读介质包括媒体类型的一个或多个实例(例 如,一个或多个磁盘、一个或多个CD等)。出于本说明书和权利要求书的目 的,短语“计算机可读存储介质”及其变型不包括波、信号和/或其他瞬态和/ 或无形通信介质。

可以有若干个程序模块存储在硬盘、磁盘1033、光盘1043、ROM1017, 或RAM1021上,包括操作系统1055、一个或多个应用程序1057、其他程序 模块1060、以及程序数据1063。用户可通过诸如键盘1066和如鼠标等定点设 备1068等的输入设备向计算机系统1000中输入命令和信息。其它输入设备(未 显示)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、跟踪球、触 摸垫、触摸屏、触敏模块或设备、手势识别模块或设备、语音识别模块或设备、 语音命令模块或设备等。这些和其它输入设备通常由耦合至系统总线1014的 串行端口接口1071连接至处理单元1005,但也可以由其它接口,诸如并行端 口、游戏端口或通用串行总线(“USB”)连接。监视器1073或其他类型的显 示设备也可以通过诸如视频适配器1075之类的接口,连接到系统总线1014。 除监视器1073以外,个人计算机通常包括如扬声器和打印机等其它外围输出 设备(未示出)。图10中显示的说明性示例还包括主机适配器1078、小型计 算机系统接口(“SCSI”)总线1083以及连接到SCSI总线1083的外置存储设 备1076。

计算机系统1000可使用到诸如远程计算机1088等一个或多个远程计算机 的逻辑连接在联网环境中操作。远程计算机1088可以被选为另一台个人计算 机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常包括以 上对计算机系统1000描述的许多或所有元件,虽然在图10中只示出单个代表 性远程存储器/存储设备1090。图10中所描绘的逻辑连接包括局域网(“LAN”) 1093和广域网(“WAN”)1095。此类联网环境通常被部署在例如办公室、企 业范围的计算机网络、内联网和因特网中。

当在LAN联网环境中使用时,计算机系统1000通过网络接口或适配器 1096连接到局域网1093。当在WAN联网环境中使用时,计算机系统1000通 常包括宽带调制解调器1098、网络网关或用于通过诸如因特网等广域网1095 建立通信的其它装置。或为内置或为外置的宽带调制解调器1098经由串行端 口接口1071连接到系统总线1014。在联网环境中,与计算机系统1000有关的 程序模块或其部分可被储存在远程存储器存储设备1090中。注意,图10中显 示的网络连接是说明性的,并且取决于动态发现应用、外部依存关系、和关联 的应用的具体要求,用于建立计算机之间的通信链路的其它手段可被使用。

图11示出能够执行此处描述的各种组件来动态发现应用、外部依存关系、 和关联的计算平台或设备的说明性架构1100。因此,由图11例示出的架构1100 示出如下架构:该架构可被适配成用于服务器计算机、移动电话、PDA(个人 数字助理)、智能手机、台式计算机、上网本计算机、平板计算机、GPS(全 球定位系统)设备、游戏控制台和/或膝上型计算机。架构1100可用于执行本 文所呈现的组件的任何方面。

图11中例示的架构1100包括CPU1102、系统存储器1104(包括RAM1106 和ROM1108)以及将存储器1104耦合至CPU1102的系统总线1110。基本输 入/输出系统被存储在ROM1108中,该系统包含帮助诸如在启动期间在架构 1100中的元件之间传递信息的基本例程。架构1100还包括用于存储被用于实 现应用、文件系统和操作系统的软件代码或其它被计算机执行的代码的大容量 存储设备1112。

大容量存储设备1112通过连接至总线1110的大容量存储控制器(未示 出)连接至CPU1102。大容量存储设备1112及其相关联的计算机可读存储介 质为架构1100提供非易失性的存储。虽然对此处包含的计算机可读存储介质 的描述引用了诸如硬盘或CD-ROM驱动等大容量存储设备,但本领域的技术人 员应当理解,计算机可读介质可以是可由架构1100访问的任何可用的计算机 存储介质。

作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可 读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失 性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括, 但不限于,RAM、ROM、EPROM(可擦除可编程只读存储器)、EEPROM(电 可擦除可编程只读存储器)、闪存或其他固态存储器技术,CD-ROM、DVD、 HD-DVD(高清晰度DVD)、蓝光或其他光学存储,磁带盒、磁带、磁盘存储 或其他磁存储设备,或可以用来存储所需信息并可由架构1100访问的任何其 他介质。

根据各实施例,架构1100可以使用通过网络至远程计算机的逻辑连接在 联网环境中操作。架构1100可以通过连接至总线1110的网络接口单元1116 来连接到网络。应当理解,网络接口单元1116还可以被用来连接到其他类型 的网络和远程计算机系统。架构1100还可以包括用于接收和处理来自数个其 他设备的输入的输入/输出控制器1118,这些设备包括键盘、鼠标或者电子指 示笔(未在图11中示出)。类似地,输入/输出控制器1118可向显示屏、打印 机、或者其他类型的输出设备(在图11中也未示出)提供输出。

应当理解,本文所描述的软件组件在被加载到CPU1102中并被执行时可 以将CPU1102和总体架构1100从通用计算系统变换成为方便本文所提出的功 能而定制的专用计算系统。CPU1102可以用任意数量的晶体管或其他分立的电 路元件(它们可以分别地或共同地呈现任意数量的状态)构建。更具体而言, CPU1102可以响应于包含在本文所公开的软件模块中的可执行指令而作为有 限状态机来操作。这些计算机可执行指令可以通过指定CPU1102如何在各状 态之间转换来变换CPU1102,由此变换了构成CPU1102的晶体管或其它分立 硬件元件。

对本文所提出的软件模块的编码也可变换本文所提出的计算机可读存储 介质的物理结构。在本说明书的不同实现中,物理结构的具体变换可取决于各 种因素。这样的因素的示例可以包括,但不仅限于:用于实现计算机可读存储 介质的技术、计算机可读存储介质被表征为主存储器还是辅存储器等等。例如, 如果计算机可读存储介质被实现为基于半导体的存储器,则本文所公开的软件 可以通过变换半导体存储器的物理状态而在计算机可读存储介质上编码。例 如,软件可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的 状态。软件还可变换这些组件的物理状态以在其上存储数据。

作为另一示例,本文所公开的计算机可读存储介质可以使用磁或光技术来 实现。在这些实现中,本文所提出的软件可以在磁或光介质中编码了软件时变 换所述磁或光介质的物理状态。这些变换可以包括改变给定磁性介质内的特定 位置的磁性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征 或特性来改变这些位置的光学特性。在没有偏离本说明书的范围和精神的情况 下,物理介质的其他变换也是可以的,前面提供的示例只是为了便于此讨论。

鉴于以上内容,应当理解,在架构1100中发生许多类型的物理变换以便 存储并执行本文所提出的软件组件。还应当理解,架构1100可以包括其它类 型的计算设备,包括:手持式计算机、嵌入式计算机系统、智能手机、PDA、 以及本领域技术人员已知的其它类型的计算设备。还可构想架构1100可以不 包括图11所示的全部组件,可以包括未在图11中明确示出的其它组件,或者 可利用完全不同于图11所示的架构。

基于上述内容,应当意识到,本文已经公开了动态发现应用、外部依存关 系、和关联的技术。虽然用计算机结构特征、方法和变换动作、特定计算机器、 以及计算机可读存储介质专用的语言描述了本文中所描述的主题,但是应当理 解,所附权利要求书中所定义的本发明不必限于本文中所描述的具体特征、动 作、或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形 式来公开的。

以上所述的主题仅作为说明提供,并且不应被解释为限制。可对本文中所 描述的主题作出各种修改和改变,而不必遵循示出和描述的示例实施例和应用 且不背离所附权利要求书中所阐述的本发明的真正精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号