用于改变it系统的方法和计算机程序产品的制作方法

文档序号:6479629阅读:118来源:国知局
专利名称:用于改变it系统的方法和计算机程序产品的制作方法
技术领域
本发明涉及一种用于改变包括多个交互组件(interacting component)的信息技 术系统的方法。本发明还涉及一种用于提供改变调度(change schedule)的计算机程序产品,该 改变调度用于改变包括多个交互组件的信息技术系统。本发明又涉及一种包括包含这样的计算机程序的计算机的系统。
背景技术
诸如联网系统之类的信息技术(IT)系统已达到了高度的复杂性。这种复杂性例 如表现在这样的系统中,该系统包括各种各样的其间存在复杂依赖性(dependency)的硬 件和软件组件。众所周知,IT系统定期需要维护,例如因为软件和/或硬件组件需要重启、 更换、更新等等。在本申请的背景下,这样的维护任务一般被称为改变,并且通常在预先议 定的维护窗口期间被执行。经受维护的系统的复杂性反映在维护任务本身的复杂性中;由 于改变量的增加,系统管理员在可用的维护窗口期间手动调度所需的改变实际上已变得不 可能。出于这个原因,若干至少部分自动化的过程已变得可用来帮助生成IT系统的改 变调度。这样的过程的示例是IT信息库(ITIL)。IT信息库定义用于实现IT服务管理的若 干过程。改变管理是一个这样的过程。其目标是确保IT改变以受控的方式被记录、评估、 授权、优先化、规划、测试、实施、文档化和回顾;例如参见ITIL Service Transition book, 3rd version,该书籍可以从http://www, itil. org, uk在线购买。若干符合ITIL的改变管 理系统可从各个软件供应商获得。这些系统在跟踪、协调和可视化改变方面是有用的。另一个改变管理系统被公开在Proceedings of the 9th IEEE/IFIP Network Operations and Management Symposium(N0MS 2004), Seoul, Korea,2004, % 395-408 M 中、Keller ·入的'The CHAMPS System :Change Management with Planning and Scheduling'中。CHAMPS系统由任务图构建器和规划器与调度器组成。任务图构建器被设 计成通过根据现有组件依赖性描述创建可重复使用的工作流来确定为完成改变请求所需 的任务的时间和位置约束,而规划器与调度器使用构造的任务图来构造改变调度。CHAMPS 系统被特别地设计成通过并行化彼此独立的改变而在改变过程中引入很大程度的并行度。这两种现有技术方法都假设可以从所需的改变和相关联约束中导出可行的改变 调度。然而,在实际中约束集的复杂性可能使得已知的改变管理方法不能产生可行的改变 调度,这迫使IT管理员重新定义某些约束并重复调度演练。这不仅耗时而且引入IT管理 员在要产生的调度中引入冲突的增加风险。因而,存在对改进的改变管理方法的需要。


参考附图更详细地且通过非限制性示例的方式描述本发明的实施例,其中图1示意性地描绘本发明实施例的改变调度系统的实施例;
图2示意性地描绘依据本发明实施例的算法的流程图;以及。图3示意性地描绘本发明的方法的实施例的流程图。
具体实施例方式应当理解,这些图仅仅是示意性的而不是按比例绘制的。也应当理解,相同的附图 标记在全部图中用来指示相同或相似的部分。在本描述中,以下词汇用来描述改变管理域,例如依据图1所示的本发明实施例 的系统架构100。改变由活动(activity)组成并且可以被分配给若干维护窗口之一。这样 的维护窗口可以例如由IT系统的管理员进行用户定义。按照ITIL术语,为了递送IT服务而需要被管理的任何IT组件被称作配置项目 (Cl,configuration item)。CI可以是硬件组件或软件组件。活动改变IT系统的Cl。组 件或CI在其直接被活动改变的情况下被说成是改变的CI (CCI)。CI在其依赖于CCI的情 况下被说成是受影响的CI (ACI)(例如,如果基础的服务器被重启则web服务器是ACI)。在实施例中,每个活动可以要求熟练的人力资源,诸如技术员。在活动中可以明确 地指定技术员。可选地,活动可以规定所需的技能,例如UNIX工程师。现在更详细地解释图1的改变管理架构。该架构包括构成改变管理系统(CMS)的第一数据库110。CMSllO包括所需组件改 变,其有时被称为改变请求(RFC)。这样的RFC典型地包括组件改变的描述以及组件改变 属性。这样的属性可以包括以下中的一个或多个指示改变生命周期中的步骤的改变状态 (例如“创建”、“批准”、“实施”、“关闭”),改变截止时间,以及可接受维护窗口。RFC还包括 每个改变的详细工作流,所述工作流包括经受活动之间的优先约束(例如活动A必须在活 动B之前被执行)和时间约束(例如活动A必须在上午10点后开始)的改变活动列表以 及每个改变活动的细节。这样的细节可以包括用于执行活动的持续时间、所需的技能或者 所需的技术员。CMS 110还可以包括可用维护窗口的日程(calendar),并且在改变活动细节包括 所需的技能或者所需的技术员的情况下,CMS 110还可以包括可用技术员的日程。要明白, 存储在CMS 110中的数据需要RFC必须被应用到的实际IT系统的很少知识。换言之,CMS 110存储除了 RFC工作流中活动的次序以外的很少依赖性信息。这使得系统管理员或者任 何其它合适的人员把RFC添加到CMS 110相对简单。新RFC到CMS 110的添加可以以任何 合适的方式被实现,并且将仅出于简明的原因而不对此进一步讨论。系统架构100还包括第二数据库,即配置管理数据库(CMDB) 120。CMDB 120列出 要改变的IT系统中的所有硬件和软件组件的细节。这样的组件在ITIL中一般被称为配置 项目(Cl)。CMDB 120还列出IT系统的组件之间的依赖性。这样的依赖性的示例是“如果 服务器A崩馈,则应用1将不可用”或者“如果应用2脱机,则商业服务B不可用”。换言之,CMDB 120包含IT系统特定信息,其使得能定义对存储在CMS 110中的 RFC的执行的约束。换言之,CMDB 120典型地包括组件之间的依赖性,而CMS 110典型地包 括对改变的执行的约束。要明白,数据库110和120的相应数据格式对本发明的各个实施 例没有重大影响,并且可以被选择为具有任何合适的数据格式。架构100被设计成把存储在CMS 110和CMDB 120中的信息转换成用于改变请求的约束集。这样的转换步骤典型地涉及从CMS 110中的相关请求和CMDB 120中的相关联组 件约束中提取相关约束信息。这些约束可以被保存在约束数据库诸如约束存储器140中。 可以生成以下类型的约束-所有改变必须在预先议定的维护窗口之一中进行,如在对应的改变属性中规定 的;-改变的所有活动必须在相同的维护窗口中被执行;-所有改变或活动之间的优先约束必须被遵守;_用于改变或活动的时间约束;例如截止时间约束,诸如必须开始于,必须结束 于,开始不晚于,结束不早于;-所有活动必须由指定的技术员执行(如果被规定的话);-所有活动必须由具有所需技能的技术员执行;-所有技术员每次只能够从事于一个活动;-在所有改变的所有活动之中,两个活动不能同时改变相同的CI(这是为了避免 CCI-CCI 冲突);-CI不能同时被活动改变并且受另一个活动影响(这是为了避免CCI-ACI冲突); 以及-CI不能同时受两个活动影响(这是为了避免ACI-ACI冲突)。要明白,也可以使用其它合适的可以从CMS 110和CMDB 120中的信息中导出的约 束。CMS 110或CMDB 120的内容中的任何改变触发约束存储器140的更新。如先前所解释的,大多数基于约束的改变调度问题诸如基于上面约束集的约束调 度问题结果是不可解决的,即不可能找出满足所有约束的调度,因而导致需要放宽某些约 束ο依据本发明的实施例,为了得到解决方案,即产生可以在可用维护窗口期间执行 的改变调度,改变管理员即负责管理改变过程的IT管理员可以以产生规则的形式规定其 关于约束放宽的偏好以及对CMS 100中的改变的偏好分数的定义,所述产生规则可以以偏 好规则集130的形式被提供。这样的偏好规则可以采取条件表达式的形式,例如IF条件THEN动作。规则的条 件可以是关于约束的类型和/或关于改变属性,例如紧急度、截止时间、顾客类型等等。规 则的动作可以用来调整约束的偏好分数。这样的调整的示例包括提高偏好分数、降低偏好 分数以及给偏好分数分配固定值。例如,这样的规则可以写成“如果约束是截止时间约束 并且受影响系统是SAP,则把偏好分数提高5”。偏好规则集130是由改变调度器150对约 束储存器中的所有约束评估的,现在将对此更详细地描述。在实施例中,改变调度器150包括偏好评估器(evaluator) 160和约束解算器 (solver) 170。偏好评估器160被配置成评估偏好规则集130中的偏好规则并且基于这些 偏好规则给来自约束存储器140的每个约束分配偏好分数。在实施例中,来自约束存储器 140的所有约束具有相同的初始分数,例如0的偏好分数。偏好评估器160可以借助于任何 合适的规则引擎例如Drools系统(http://labS. jboss. com/drools)来实施并且可以根据 偏好规则集130把优先级规则应用于偏好分数的分配;例如固定分数的分配优先于提高或 降低分数。偏好评估器160为每个约束产生偏好分数。
具有其各个偏好分数的约束集被从偏好评估器160转发到约束解算器170。约束 解算器170可以由任何合适的约束解算器(例如基于JAVA的Choco约束编程系统,也称为 Choco解算器)来实施。约束解算器170尝试基于约束和其从偏好评估器160接收的约束 偏好分数来生成改变调度。在图2中给出由约束解算器应用的方法或算法的实施例。该方 法始于步骤210,此后由偏好评估器160提供的来自约束存储器140的所有约束的偏好分数 在步骤220中被评估。在步骤230中,选择满足预定义阈值例如至少具有预定义最小值的 所有约束以用于调度。在步骤240中约束调度器尝试基于所选择的约束来提供可接受改变 调度。如果如在步骤250中检查那样这一尝试成功,则该方法在步骤280中终止。如果步骤240中的调度尝试不成功,则算法将在步骤260中检查是否已达到预定 义阈值例如最大迭代次数或时限。如果情况就是这样,则算法将同样在步骤280中终止,其 中把最近产生的调度提供为找出可接受改变调度的最佳尝试。在实施例中,在达到预定义 阈值后产生的调度可能是不完整的,即一些改变可能已被调度,而可以不被调度的其它改 变可能已被省略。否则,即在没有可行的调度可以被提供的情况下,算法将进行到步骤270,在步骤 270中修改所选择的约束的偏好分数。这样的修改可以包括删除具有低偏好分数的约束, 即被视为具有有限重要性的约束;或者基于IT管理员提供的偏好规则来调整约束的偏好 分数。在实施例中,高偏好分数将降低要放宽的约束的几率。算法随后回复到步骤230。这 个过程被重复直到达到可接受调度或最大迭代次数为止。在实施例中,在不能达到可行或可接受调度的情况下,约束解算器可以使用例如 "Finding Irreducible Infeasible Systems (找出不可约不可行系统)”算法的技术执 行不可行性分析。这样的技术的示例由0. Guieu等人公开在〃 Analyzing Infeasible Mixed-Integer and Integer Linear Programs " , INFORMS Journal on Computing. Vol. 11(1),1999,第63-77页中。这样的分析将向IT改变管理员揭示造成调度不可行性的 潜在约束。这将帮助IT改变管理员采取正确的动作过程以确保可以达到可行的调度,例如 改变约束偏好、删除约束或甚至排除某些改变。任何约束解算器的关键要素是用于遍历搜索树的机智分支策略。为了在合理的时 帧内产生可接受解决方案,这样的分支策略应当考虑到要解决的问题的特殊性。分支策略 必须能够在任何给定的迭代时从其域中选择哪个决策变量(decision variable)以分配哪 个值。在本发明实施例的背景下,这样的决策变量可以从两个决策变量集中进行选择,所述 两个决策变量集即将被分配来自可能维护窗口的值的改变决策变量Ca集和将被分配特定 维护窗口中的起始时间的活动决策变量Auk集。在先前的标记中,索引i在改变的所有活 动上蔓延,索引j在所有改变上蔓延,而索引k在所有维护窗口上蔓延。已意识到,把改变分配给改变窗口是无意义的,除非该改变的所有活动可以全部 被分配相同改变窗口中的起始时间。因此,任何分支策略应当在改变的分配和所有其活动 的分配之间交替。换言之,如果当前的分支对象是改变决策变量CA,则另一个改变决策变 量Clk不能被选择直到与改变Ca相关联的活动的所有决策变量都已经被探究。在本发明的实施例中,使用在改变决策变量和活动决策变量之间交替的分支策 略。一旦选择了决策变量,下一步骤就是从其域中进行值分配。要明白,任何分配策略应当 注意分配最大化产生可接受改变调度的几率的值。
已发现,对于生成改变调度的问题,用于分配改变决策变量的“尽可能晚的”方法 和用于分配活动决策变量的“尽可能快的”方法在产生可接受改变调度方面是最成功的。在实施例中,改变调度器150被配置成接收现有的改变调度。现有的调度的使用 最小化对现有的改变调度的扰动,原因在于用于探究已经调度的改变的决策变量的起始值 的选择是对应于先前调度的所分配值。本发明的调度方法的长处之一在于其基于优化策略。这不仅允许生成可接受调 度而且允许生成优化给定目标函数的调度。几乎任何目标函数可以被插入改变调度器150 中。目标函数的示例包括在改变窗口中最大化改变数量、最小化IT服务的停机时间以及最 小化改变过程的总成本。目标函数的其它合适示例对技术人员将是显而易见的。可以由系统架构100实施的、本发明的方法的实施例被描绘在图3的流程图中。该 方法在步骤310中开始,此后方法进行到步骤320,在步骤320中例如由IT管理员以日程的 形式定义可用的维护窗口。接着,在步骤330中提供所需组件改变的数据库例如CMS 110 并且在步骤340中提供组件及其依赖性的数据库例如CMDB 120。步骤320、330和340可以 以任何合适的次序被执行。在步骤350中,根据所需组件改变以及组件及其依赖性,例如根 据CMS 110和CMDB 120,生成改变约束集例如约束存储器140。接着,在步骤360中,修改 每个改变约束的偏好分数。在步骤360的背景下,修改包括设定偏好分数。步骤360可以 基于用户定义的偏好规则,例如偏好规则集130。接着,在步骤370中进行生成改变调度的尝试,并且在步骤380中检查这个尝试是 否已成功。如果是,这方法在步骤390中终止。否则,方法回复到步骤360以例如通过更改 偏好分数或通过完全删除约束来修改改变约束的偏好分数,此后基于更改的偏好分数重新 尝试改变调度的生成,也如在改变调度器150的背景下所解释的。如图1所示的架构100可以被实施为包括存储计算机程序产品的计算机(未示 出)的系统,该计算机程序产品可以实施本发明的方法的任一前述实施例。在实施例中,计 算机程序产品被布置成接收多个维护窗口、访问改变管理系统数据库110和配置管理系统 数据库120。这两个数据库都是系统的一部分。计算机程序产品还被布置成生成约束存储 器140中的改变约束、为所生成的改变约束生成各个偏好分数集并且使用各个偏好分数来 在可用的维护窗口中调度改变。在进一步实施例中,计算机程序产品可以被布置成基于偏好规则集130来生成各 个偏好分数集,并且可以被布置成在不能使用初始偏好分数来生成可接受调度的情况下使 用这个规则集来修改偏好分数,如先前所解释的。在另一个实施例中,计算机程序产品可以被布置成在调度过程中包括熟练的人力 资源的可用性,如先前解释的。由于本发明的方法的各个实施例在这样的计算机程序产品中的实施可以由本领 域的技术人员通过采用其常规技能来实现,所以仅仅为了简明起见省略了这样的实施细 节。可以例如在计算机可读数据载体上使计算机程序产品用作单独产品以与前述系 统一起使用,所述计算机可读数据载体诸如CD-R0M、DVD、存储棒、用于下载计算机程序产品 的互联网可访问的服务器等等。应当注意,上面提及的实施例说明而不是限制发明,并且本领域的技术人员将能
8够设计许多可选的实施例而不偏离所附权利要求的范围。在权利要求书中,放置在括号之 间的任何附图标记不应解释为限制权利要求。字词“包括”不排除除了权利要求中列出的 那些元件或步骤之外的元件或步骤的存在。在元件之前的字词“一”或“一个”不排除多个 这样的元件的存在。本发明可以借助于包括若干不同元件的硬件来实施。在列举若干装置 的设备权利要求中,这些装置中的若干装置可以由同一项硬件来实现。
在相互不同从属权利要求中叙述某些措施的纯粹事实不指示这些措施的组合不 能被有利地使用。
权利要求
一种改变包括多个交互组件的信息技术系统的方法,所述方法包括定义(320)多个维护窗口;提供(330)所需组件改变的数据库(110),每个改变包括具有预定义持续时间的至少一个活动的工作流,每个改变标记有包括可接受维护窗口列表的属性集;提供(340)列出所述组件和所述组件之间的依赖性的数据库(120);基于所述依赖性和所需组件改变,为所需组件改变生成(350)改变约束;为所生成的改变约束来生成(360)各个偏好分数集;以及使用各个偏好分数来在可用的维护窗口中调度(370)改变。
2.根据权利要求1所述的方法,其中每个属性还包括偏好分数产生规则,且其中生成 (360)各个偏好分数集的步骤包括基于所述偏好分数产生规则来生成所述分数。
3.根据权利要求1或2所述的方法,还包括以下步骤在所述调度步骤未能产生可接 受调度的情况下调整(360)偏好分数集以及随后重复所述调度步骤(370)。
4.根据权利要求1-3中任一项所述的方法,其中每个活动还需要人力资源来执行该活 动,所述方法还包括提供可用人力资源的日程,且其中生成(350)改变约束的步骤包括基 于可接受维护窗口中的所需人力资源的可用性来生成所述约束。
5.根据权利要求1-4中任一项所述的方法,还包括提供现有的改变调度,且其中所述 调度步骤(370)包括修改现有的调度。
6.一种用于提供改变调度的计算机程序产品,该改变调度用于改变包括多个交互组件 的信息技术系统,所述计算机程序产品包括软件程序代码装置,该软件程序代码装置适于 在由计算机执行时执行以下步骤接收多个维护窗口;访问所需组件改变的数据库(110),每个改变包括具有预定义持续时间的至少一个活 动的工作流,每个改变标记有包括可接受维护窗口列表的属性集; 访问列出所述组件和所述组件之间的依赖性的数据库(120); 基于所述依赖性和所需组件改变,为所需组件改变生成(350)改变约束; 为所生成的改变约束生成(360)各个偏好分数集;以及 使用各个偏好分数来在可用的维护窗口中调度(370)改变。
7.根据权利要求6所述的计算机程序产品,其中每个属性还包括偏好分数产生规则, 且其中生成(360)各个偏好分数集的步骤包括基于所述偏好分数产生规则来生成所述分数。
8.根据权利要求6或7所述的计算机程序产品,还适于执行以下步骤在所述调度步 骤(370)未能产生可接受调度的情况下调整(360)偏好分数集以及随后重复所述调度步骤 (370)。
9.根据权利要求6-8中任一项所述的计算机程序产品,其中每个活动还需要人力资源 来执行该活动,所述计算机程序产品还适于访问可用人力资源的日程,且其中生成改变约 束的步骤(350)包括基于可接受维护窗口中的所需人力资源的可用性来生成所述约束。
10.根据权利要求6-9中任一项所述的计算机程序产品,还适于访问现有的改变调度, 且其中所述调度步骤(370)包括修改现有的调度
11.一种计算机可读数据载体,包括权利要求6-10中任一项的计算机程序产品。
12. 一种包括计算机的系统,该计算机存储根据权利要求6-10中任一项所述的计算机 程序产品,所述系统还包括所需组件改变的数据库(110),每个改变包括具有预定义持续时间的至少一个活动的 工作流,每个改变标记有包括可接受维护窗口列表的属性集;以及 列出所述组件和所述组件之间的依赖性的数据库(120)。
全文摘要
提供了一种改变包括多个交互组件的信息技术系统的方法。在一个实施例中,该方法包括定义(320)多个维护窗口;提供(330)所需组件改变的数据库(110),每个改变包括具有预定义持续时间的至少一个活动的工作流,每个改变标记有包括可接受维护窗口列表的属性集;提供(340)列出所述组件和所述组件之间的依赖性的数据库;基于所述依赖性和所需组件改变,为所需组件改变生成(350)改变约束;为所生成的改变约束生成(360)各个偏好分数集;以及使用各个偏好分数来在可用的维护窗口中调度(370)改变。另外,提供了一种计算机程序产品,其在计算机上执行时适于执行本发明的方法的实施例的至少一些步骤以为IT系统提供改变调度。
文档编号G06Q10/00GK101946255SQ200880126794
公开日2011年1月12日 申请日期2008年2月15日 优先权日2008年2月15日
发明者A·格弗茨曼, D·特拉斯图尔, M·拉莫尼 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1