流程编码的制作方法

文档序号:6454626阅读:587来源:国知局
专利名称:流程编码的制作方法
流程编码
站旦 冃尔
多种不同的实体已经编译了关于信息技术(IT)管理流程的指南。例如, IBM发布了红皮书(Redbook)系列。英国的IT信息库(ITIL)描述了用于管 理IT服务的厂家无关优选制度。微软提供了将ITIL方针应用于特定软件产品 的微软操作框架(MOF)。某些组织可能具有其自己的自定义IT制度和流程, 这通常包括人类活动和自动化。 一般而言,存在用于管理IT系统和服务的许 多不同的优选制度。这些制度中的某一些例如与管理IT系统中的变更、报告 并响应于IT事故等相关。
结果是许多IT部门将正式IT管理付诸实行发生了问题。某些IT部门可 能花费数年来实现ITIL流程。可能存在技术问题,诸如缺少支持流程自动化 的基础结构。可能需要配置管理数据库(CMDB)或者可能需要将新的应用程 序部署在用户的计算机上。也可能有诸如了解新流程、重新训练人员、分发信 息、决定实现细节等人工问题。 一般而言,这几种问题可能会部分地解释为何 IT行业适应或自动化优选或正式IT管理制度是缓慢的。
当然,许多不同公司或组织的IT部门也可能会面临这些相同的问题。可
能有大量的重复工作。考虑其中两个不同的IT部门希望在其各自的IT系统上
实现同一业务流程或IT管理流程,例如资产获取流程的情形。这两个部门必
须大致经历相同的了解并理解获取流程(例如,审计细节、批准链、通信等)、
配置其技术以适应新流程、向IT用户和IT管理员提供关于如何实现该流程的
知识等的歩骤。当前,没有方法供IT部门高效或自动地实现优选IT管理流程。
此外,没有方法供人们以与用于自动化IT或业务流程的底层技术分开的方式 来共享这些流程的编码。
概述
以下概述仅是为了介绍在以下详细描述中讨论的某些概念而包括的。本概述并不是全面的,并且不旨在描绘可保护的主题的范围,该范围由所附的权利 要求书来阐明。
所描述的是包含流程编码的可移植包。这些包是可移植的,并且与技术栈 不同。这些包可以采用用于配置技术栈的声明性代码的形式,并且可被插入到 技术栈中以允许技术栈播放这些包,由此自动化由这些包编码的流程。还描述 了用于创作包的方法、用于播放包的技术栈、以及用于加载("插入")包并 且也可能控制包的播放的应用程序。
许多附带特征将通过参考下面的详细描述并结合附图考虑而得到更好的 认识。


附图中使用相同的附图标记来指示相同的部分。
图1示出一示例IT系统。
图2示出一个包。
图3示出包如何可用于共享流程。
图4示出一个示例包。
图5示出应用程序可执行来将包加载到技术栈中的过程。
图6示出用于插入包的另一过程。
图7示出技术栈在播放示例包时的示例处理流程。
图8示出了配置管理数据库(CMDB)。
图9示出一个示例工作流引擎。
图IO示出用于处理事故的示例工作流。
图11示出了用于声明性地定义工作流的标记。
图12示出了可由链接服务器或链接框架链接的工作项、人为产物、警告 和其它东西的示例。
详细描述 概观
以下描述以对典型IT系统的讨论以及该IT系统上可用的软件服务或组件的栈的简要讨论开始。之后将是对流程包以及流程包可以如何在技术栈上"播 放",即用于自动化IT基础结构上的业务或IT流程的描述。然后将更详细讨 论软件服务栈的组件及其特性。然后将讨论包的其它方面。
IT系统或基础结构
术语信息技术(IT)广泛地涉及技术,具体地涉及尤其是在大组织中管理 和处理信息的各方面。IT涉及使用计算机和计算机软件来储存、处理、传送和 检索信息。组织的IT基础结构或系统指的是主要是IT服务提供给组织的资产 以及用于向组织提供IT服务的硬件和软件(人为产物)。通常,大IT基础结 构将由专门的工作人员或部门来管理。
图1示出示例IT系统100。IT系统IOO具有多个硬件和软件人为产物102。 硬件人为产物的示例是服务器;诸如路由器、网桥、主干线、电缆、工作站、 移动设备、PC等网络设备;诸如打印机以及可能的电话设备等外围设备;以 及太多以致于无法列出的其它硬件。软件人为产物的示例是数据库服务器、桌 面应用程序、web服务器、web门户、文件服务器、电子邮件服务器、IT管理 软件、生产性套件、会计包、以及通常由IT部门来部署和管理的几乎无限种 类的其它软件服务。
图1还示出了示例技术栈104。技术栈可以被人为是IT基础结构中的软 件服务或产品,它们被松散地链接并且能够彼此协作或通信以提供整体IT服 务并管理和维护整体IT服务。g卩,技术栈提供IT基础结构中的实用程序和功 能。在图1所示的示例技术栈104中,技术栈104具有多个组件106-116,它 们分布在IT基础结构100上。并不是为了重要性起见,这些组件在以下一般 地讨论,并且在后文中更详细地讨论(见题为"技术栈" 一节)。
示例技术栈104具有自服务门户106,它通常用作组织的雇员访问企业信 息和应用程序的起始点或网关。尽管通常被具体化为门户网站,但是自服务门 户106也可以采用其它形式。自服务门户106可以使用来自各种软件厂商的任 一个的产品来实现。例如,微软的SharePoint Portal Server的现有或将来版本 可用于核心门户功能。诸如SQL Server等其它产品可用于提供报告服务等。 IBM的WebSphere Portal是可用于自服务门户106的产品的另一示例。技术栈104还包括表单框架108。表单框架108是在IT系统100中广泛 可用的某一框架。如其名称所指的,表单框架108用于以类似于表单的方式填 写关于诸如人为产物、任务等某一工作项的信息。 一种非常基本的表单通常具 有可能被调整大小并类型化的字段,并且可耦合到某一后端数据源以储存或回 填表单字段。表单框架108中的表单还可以是交互式的,S卩,它可以不止涉及 简单地填写字段表单。关于数据完整性的轻量逻辑或规则也可存在于表单中。 可使用各种各样的现用产品来实现表单框架108。例如,可使用来自微软公司 的Office 12或IBM的Workplace Forms或其它产品。较佳地,表单框架108 将允许表单以各种方式来显示,例如, 一表单可能是直接用户界面(例如, SharePoint或InfoPath表单),或一表单可能是诸如Microsoft Outlook、文字 处理程序等应用程序中的弹出窗。由用户经由表单框架108输入的数据通常将 被持久保存,可能被保存在一个或多个数据库或在专用人为产物存储110 (以 下讨论)中。表单框架108中的表单可以由技术栈104中的其它组件来驱动, 并且通过表单框架108输入的数据可以影响技术栈104中的其它组件。
技术栈104也可具有知识源、存储库或框架112。知识框架112是用于管 理知识的服务或应用程序集。知识框架112可以提供诸如储存和索引人为产物 和文档、搜索知识、交叉引用或链接相关文档、元数据标记、编目等功能。知 识框架112可被认为是允许在进行中捕捉并访问组织的知识的系统。较佳地, 用户可以査询并浏览所储存的知识,该知识可以是结构化或非结构化信息。知 识的可寻址部分可能是合乎需要的(例如,到文档的URI)。故障诊断指南、 文章、白皮书、用户手册、过程文档等是可能在知识框架112中找到的某些类 型的知识的示例。可用于知识框架112的产品的示例包括微软的Office 12、 Factiva、 Interwoven的Worksite套件等。
工作流引擎或框架114也是IT系统100的技术栈104的一部分。工作流 框架114允许创建、执行并监视自动化的工作流。对于大多数工作流产品,工 作流由各离散活动之间的流、可能的条件构成。活动的过程可以取决于条件事 件。工作流的范围可以从简单的事故处理自动化,到用户定义的长期运行且复 杂的工作流。工作流通常是关于什么触发了工作流的特定实例、工作如何流过、 以及执行该工作流的活动的某一描述。如稍后将更详细讨论的,工作流可以由另一连接的系统或技术栈组件中的状态变更事件触发。此外,由于人为产物可 以通过由链接框架116 (以下讨论)提供的链接来链接,因此工作流活动(工
作流中的"节点")可以通过例如web服务等接口来操纵这些人为产物或访问 这些人为产物。这可允许诸如IT管理系统警告创建处理IT事故的生存期的事 故工作流的情形。
存在许多可用于工作流框架114的商用产品。例如,Windows Workflow Foundation (Windows工作流基础,WWF)提供了用于执行工作流的基于 Windows的工作流引擎,而Microsoft Office (Visio)允许工作流的图形构建。 Skelta销售一种基于.NET的工作流框架。也可使用基于Java的开放源工作流 引擎;参见JBossjBPM。
示例技术栈104中的另一组件是链接服务或链接框架116。链接框架116 帮助将技术栈104中的各种组件连系在一起。链接框架116允许链接、交换或 同步和映射人为产物。例如,链接框架116可以将开发平台与诸如Microsoft Operations Management (微软操f^管理,MOM)或Systems Management Server (系统管理服务器,SMS)等IT管理平台链接。链接框架116中的链接允许 自动化工作流由链接的系统中的相关人为产物来触发并操纵这些人为产物。可 使用的链接产品的一个示例是微软的Team Foundation Server (团队基础服务 器,TFS),它允许栈组件向链接服务器注册其人为产物和关系。如果使用TFS, 则例如,经由web服务获得的人为产物可由链接框架116使用,后者可以维护 这些人为产物的关系和位置。
技术栈104较佳地包括任务产物源110,它通常是配置管理数据库 (CMDB) 。 CMDB主要提供保持IT项的记录并跟踪其彼此的关系的功能。 大多数IT管理活动从人为产物存储110中进行推断以做出决策并共享关于IT 系统100中的事物的信息。较佳地,人为产物存储110基于系统定义模型(SDM) 语言,该语言便于对人为产物的类型及其之间的关系建模,且便于与诸如MOM 和SMS等其它基于SDM的组件交互。 一种CMDB类型的人为产物存储110 在下文中更详细讨论。
技术栈104仅是IT系统可能具有的一种可能的技术栈的示例。其它IT系 统可能具有一组不同的组件。此外,组件可以用来自任何厂商的任何种类的市场上可购买到的软件产品来实现。组件可以分布在IT系统中的许多不同的计 算机上(例如,表单框架108、自服务门户106等)。某些组件可被安装并运 行于一个计算机或服务器(例如,知识框架112、人为产物存储110等)上。 某些可被主存在同一服务器上。安装配置并不重要。相反,相关的是各种技术 组件的可用性及其彼此通信的能力。此外,组件能够进行关于其各自功能的自 治操作。即,例如,工作流框架114能够向用户提供工作流功能而无需技术栈 104中的其它组件。或者,表单框架108可能具有存在且与其它组件分开操作 的表单,而同时它可能具有如下所述与其它技术栈104组件互操作的表单。技 术栈104是能够进行松散联盟或互操作(可能是间接的,或通过链接框架116 来方便)但还提供独立功能的自治组件的集合。

图2示出一个包130。给定诸如示例技术栈104等任何技术栈,包130可 用于控制该技术栈。包130包括较佳地声明了该技术栈的配置的编码;该包由 技术栈来解释并控制该技术栈。更具体而言,包130是流程的编码,并包括诸 如栈用于实现该流程的元数据等相关信息。包130实际上可被"插入"到技术 栈中并由技术栈"播放"。包130松散地类似于DVD;它可被插入到播放器 (技术栈)中,并且其流程可由技术栈来播放。
如在背景中所讨论的,从纸张或人类知识解释IT或业务流程可能是易于 出错的,而自动化流程使得其与现有管理工具一起工作可能太复杂以致于可能 花费数年来实现并且维护成本可能过高。包130允许将技术中立IT或业务流 程编码成可移植的、机器可使用的可扩展形式。由此,如果不同IT系统(以 及不同的相应技术栈)具有相同的包,则在该包中编码的流程可以在不同的IT 系统处实现(自动化)。包方法允许将技术栈(实现流程)与包中配置技术栈 来执行包的流程的信息分开。如下文所讨论的,包较佳地包含配置并控制栈组 件以协作地执行流程的声明性信息。例如,包可能包含定义包的流程中各种 人类或自动化步骤的工作流信息;用于插入到人为产物存储110中的人为产物 模式和关系类型;旨在供流程中涉及的人使用的知识人为产物或指令,其可被
储存在知识框架112中;角色定义;示图、表单和报告;表示诸如服务、资产、用户、位置、组织等对象的配置项。
包130的内容较佳地是声明性配置信息和元数据,其一部分可被定向到技
术栈104中的各种对应组件并由其解释(见图5)。不论包130的内容的形式 如何,程序或应用程序132都读取包130并将其插入到技术栈104中。 一旦被 插入(图2的较低部分),技术栈可以开始自动化包130中编码的业务或IT 例程,g口,"播放"该包。
图3示出包如何可用于共享流程。多个不同的组织、人或实体150a、 150b、 150c可以将流程152a、 152b、 152c编码到包154a、 154b、 154c中。实体150a、 150b、 150c可能是专攻自动化业务或IT流程的公司。实体可能是其IT部门或 人员,其可能编码用于该部门的IT管理流程。诸如流程152a等流程可能是非 正式地理解或部分地编制文档的流程,其中流程中的大部分是一个或多个人的 个人知识,或者流程的另一部分可能是松散地编制文档的。诸如流程152b等 另一流程可能是通常在ITIL、 MOF、 IBM红皮书系列、IT部门文档编制等中 找到的类型的编制文档的流程。诸如流程152c等另一流程可能是临时开发或 设计的并将其编码在包152c中。在任一情况下,包154a、 154b、 154c是较佳 地声明了可在不同组织之间共享的流程或过程的可移植编码。
图3还示出两个分开且自治的IT系统156a、 156b,其可能对应于不同的 组织、企业、公司等。每一IT系统156a、 156b具有对应的技术栈158a、 158b。 技术栈158a、 158b类似于如上所述的技术栈104,但是可能具有不同的组件集 以及可能不同的执行类似功能或代替各种栈组件的不同产品。例如,技术栈 158a可能对工作流管理使用微软的WWF,而技术栈158b可能使用开放源工 作流引擎。
如图3所示,包154a、 154b、 154c可以在不同的IT系统156a、 156b处 分发、共享和播放,以使技术栈158a、 158b能够实现流程152a、 152b、 152c。 包154a、 154b、 154c可以通过网络传输来电子地分发、通过物理存储介质的 分发来物理地分发、或作为IT管理系统的一部分预安装等等。不论采取哪种 方式, 一旦接收到包,该包可被插入到接收者的技术栈中并在其上播放,由此 自动化了对应的流程。在图3的示例中,技术栈158a正在播放包154a、 154b 和154c。技术栈158b正在播放包154b、 154c。可以看到,不同流程可由一个实体编码,并且仍可由许多不同的实体高效地共享和自动化("播放")。此 外,如以下参考图4所讨论的,如有需要,包154a、 154b、 154c中的任一个 可以参考其它包154a、 154b、 154c中的任一个且因此可使用从交叉引用的包 中导出的工作项、或类、或数据文件(例如,知识人为产物)、或任何信息。
注意,每一 IT系统156a、 156b应具有将任何包插入到其相应的技术栈 158a、 158b中的能力。尽管可使用诸如应用程序132等独立程序,但是可提供 类似的功能作为技术栈158a、 158b的组件的一部分。合并服务台(CSD)是 用于提供这一功能的理想位置。事实上,应用程序132可以是CSD应用程序。
图4示出一个示例包170。在一个实施例中,包170具有对应于技术栈中 的相应组件的代码部分172a-172f。例如,代码部分172a-172f可对应于技术栈 104中的组件106-116 (图2)。然而,应当注意,包可以具有仅对应于由该包 编码的流程所使用的栈组件的一个子集;包不需要使用技术栈中的每一组件。 更复杂且结构化的流程具有往往会接触更大量栈组件的编码包。假定示例包 170是针对技术栈104的,则每一代码部分172a-172f具有可被插入到其对应 的技术栈组件中的代码。如果包170中编码的流程是例如IT资产获取流程, 则代码部分172a可能声明用于询问请求的状态或用于发起请求的自服务门户 对象的类型/类和实例。代码部分172b可能声明性地描述供用户输入与请求相 关的数据的表单,例如用于批准请求的批准表单。代码部分172c可能对人为 存储IIO定义与对其实例可能被储存在人为产物存储110中的请求相关的对象 的类。例如,工作项或工作次序、正被请求的人为产物(例如,软件包、计算 机等)、或诸如"请求者"、"批准者"、"会计部门"等角色等等。代码部 分172d可能指示包括附加到包170的某些知识174。知识174可能包括电子文 档、诸如指导视频等媒体、或甚至对知识框架112中的现有文档的修改或更新, 诸如到知识174的新的超链接、新文本或其它类似的信息。
在示例包170中,代码部分172e可为流程定义整体工作流,例如资产获 取工作流。代码部分172e可声明活动和事件和/或活动之间的流的条件。代码 部分172f可声明要添加到链接框架116的链接。例如,它可能声明来自IT管 理系统(例如,MOM)的警告被链接到储存在人为产物存储110中的问题或 人为产物。任何栈组件中的任何数据都可能被链接到另一栈组件中的另一数据
14项。
如由图4中的虚线176所示的,代码部分172a-172f中的任一个可能具有 对在另一部分172a-172f中声明的类或对象或其它信息的引用。同样如上所述, 代码部分也可能具有到附加到诸如知识174等包170或随其一起包括的某些比 特或硬数据的链接或引用177。这一硬数据也可包括向代码部分172a-172f之 一添加补充逻辑的软件库、源代码或"代码分离(code-beside)",或甚至用 于升级技术栈组件以与包170或一个或多个代码部分172a-172f兼容的升级压 縮包。
诸如包170等包较佳地包括适用于整个包170的某些信息,这将被称为全 局数据或包数据178。包数据178可指示定义诸如包154a、 154b、 154c和包 170等包的格式的主或容器模式。包数据178可通过提供名称或全局唯一标识 符或其它身份信息来标识包170。包数据178可定义包170的命名空间、标识 包170的版本、标识包170的发布者或作者、包含真实性和完整性信息(例如, 加密的校验和、公钥或真实性证书等)、或全局特性的其它信息。包数据178 还可包括诸如对另一包180的依赖性179等依赖性信息、需要的平台、需要的 栈组件及其版本等等。包数据178还可用作诸如分发数据181或安装数据182 等包的清单列表部分。在一个实施例中,包170可任选地构造为箱文件(即, CAB文件)、微软Windows安装程序(MSI)包或某一其它分发包格式。
在一个实施例中,包170是根据包模式184来格式化的结构化文档,该模 式可以是XML模式定义文件(XSD文件)或某一其它类型的模式文件。如上 所述,包模式184可以附加到或环绕包170,尽管这并不是必需的。在基于XML 的实施例中,代码部分172a-172f和包数据178由根据包模式184格式化并排 列的XML标记或标签185构成。在该实施例中,代码部分172a-172f可以由 加载应用程序132转换成组件专用代码。
在另一实施例中,包170也可以是根据包模式182格式化的结构化文档。 然而,代码部分172a-172f是专用于相应的技术栈组件的代码的摘录,并且不 需要被转换,尽管宏扩展(即,类似编译器的预处理)可能有助于确保参数、 宏、命名对象等对包170或将在其上播放该包的技术栈是专用的。
在任何实施例中,包可以使用诸如可扩展标记语言(XML)、其派生语言或其它语言等语言来实现。某些部分可使用系统定义建模语言(SDM),例 如储存在人为产物存储中的人为产物的定义来实现。在技术栈组件具有可经由 声明性代码来访问的API和/或对象模型的情况下,则包的代码部分可以直接
插入到对应的栈组件中。在技术栈具有未提供标准化声明性访问(例如,组件
专用XML模式)的组件的情况下,则用于该组件的包代码可以是专门为该组 件编写的,或者可以用建模语言(例如,SDM)或可能由包模式184定义的另 一语言来编写。这一代码可由应用程序132转换成对相应组件专用的代码。
关于在包中捕捉的信息的特性,应当注意,可以在包中编码许多类型的流 程。可编码非结构化流程(例如,具有单个或未排序活动的流程),例如通 信和协作流程;知识和训练的使用、分级和更新;诊断和调试应用程序的浏览; 在解决IT问题时与最终用户聊天;基于web的自服务;报告;査找IT事故和 IT事故的服务状态;IT系统变更的通知;填写调査表、关于使用、可用性和 与服务级协定(SLA)的兼容性的连续报告;等等。也可编码具有延长的状态
持久性(例如,天、周、月甚至年)的结构化流程,其在活动之间可能有很长
的间隔,并且在活动之间有高度结构化的流。结构化流程的示例包括诸如路 由和逐步升级等工作项生存期;包括可能的会计活动的授权和批准;诸如接收、 测试、部署和引退等资产生存期流程;变更管理生存期流程;知识生存期;等 等。尽管IT管理流程较好地适用于打包,因为其通常是以各种IT资源可用的 假设来设计的,但其它非IT流程也可被打包。会计流程、保险索赔处理流程 和其它业务流程也可被打包。
加载器/控制器应用程序
如上参考图2所讨论的,应用程序132可用于将包加载到然后播放该包的 技术栈中。图5示出应用程序132可执行来将包202加载到技术栈204中的过 程200。最初,应用程序132读取206包202并检查全局或包数据(例如,包 数据178)。基于包数据,应用程序132可确定是否满足包202的依赖性。例 如,应用程序132可验证技术栈组件存在和/或是足够的版本级别。应用程序 132还可检查以验证任何交叉引用的包或者被安装在技术栈204中,或者可用 于安装。在最初的读取206时,应用程序也可加载任何必要的模式、检查命名空间、或以其它方式准备插入包202。
在读取206并处理了全局包数据之后,应用程序132然后标识208包202 中针对技术栈组件的一部分。例如,应用程序132在解析包202时可读取标识 或区分一代码部分,例如代码部分172a-172f之一的标签。如有必要,如此标 识208的节点、元素或代码部分可被转换210成由该代码部分所针对的栈组件 所规定的格式或语言。如上所述,对于可使用标准声明性语言(例如,SDM、 XAML等)直接编程/配置的技术栈,包中用于这些栈的代码部分可被直接插 入到对应的栈组件中。在任一情况下,所标识208且可能转换210的代码部分 然后用于配置212适当的技术栈组件。即,包202的该部分被插入到其技术栈 组件中。例如,如果所标识208的部分是工作流定义,则用该工作流定义来配 置212工作流框架114。如果所标识208的部分是用于人为产物存储110的且 定义了对象的类和/或实例,则当用该部分配置212时人为产物存储可以变得能 够储存所定义的类或类型的对象。如果所标识208的部分是定义包202的门户 的门户信息214,则可配置212门户组件216以提供所定义的门户。此外,代 码部分的各部分可被插入到一个以上组件中,例如,用于用必需类型的对象类、 工作项、链接或其它数据来配置它们。
重复218标识208、可能的转换210、以及配置212的过程,直到解析了 整个包202。假定包202是在没有任何致命错误的情况下加载或插入的,则应 用程序132然后可以通过激活220技术栈204上的包202来开始包132的"播 放"。这可涉及验证包202或代码部分都己被成功加载、允许工作流框架开始 处理由包202定义的工作流的实例、以及可能发信号通知栈组件的重启、重新 设置或重新引导。
尽管未用流程图示出,但应用程序132可具有其它主要功能。例如,它还 可或者通过禁用其工作流或者通过从栈组件中卸载启用代码来"停止"包的"播 放"。应用程序132还可通过分析各种栈组件的错误消息或错误日志来监视包 的状态。再一次,示例应用程序132的功能可驻留在任何地方并且不需要被委 托给专用程序。应用程序B2还可用作通用合并服务台应用程序。
图6示出用于插入包的另一过程。接收230来自任何任意源的任何任意包。 搜索232该包中对其它包的引用,这些其它包或者被单独安装或插入234、合并到所接收232的包中、或者被验证为当前正在技术栈上"播放"。然后激活 236该包,之后栈组件播放238来自包的其相应的内容部分并按需互操作。
技术栈
一旦用包来配置,技术栈就开始自动化由包编码的流程,即播放或执行该 包。技术栈的自治组件执行其普通功能,但是这些组件现在被配置为使得这些 功能一起自动化了由包编码的流程。组件不需要知晓其它组件。例如,工作流 引擎不需要知道一特定工作流受到例如表单框架中的表单的影响。
对于简单或非结构化流程,在技术栈组件上可发生最少量的活动。例如, 向用户通知对IT系统的变更的简单的包编码流程可不仅涉及用户在自服务门 户处启动变更通知,这可涉及作为该门户的数据源的后端数据库服务器处的触 发。该触发可以转到链接框架,后者可确定门户事件被链接到人为产物存储中 的工作项。链接服务器因此可发消息通知人为产物存储储存关于变更通知的工 作项,并且可发消息通知表单框架开始新的变更通知工作流。工作流引擎然后 可通过向用户发送用于填写工作项的细节(变更通知的细节)的表单来执行该 工作流的初始活动。用户可接收该表单、填写它、并填写变更通知。对变更通 知的填写可使得人为产物存储通知链接框架变更通知己被更新。链接服务器然
后发消息通知工作流引擎,依此类推,直到变更通知流程完成。如可以见到的, 栈组件将包作为粘合单元来播放或执行,即使它们可能是各自能够独立于其它 组件安装和使用的独立或自治的组件。
图7示出技术栈在播放示例包时的示例处理流程。 一旦播放或激活250 了包,用户活动或系统事件就可例如生成252工作项或其它人为产物表示。用 户活动的某些示例是向由包配置的电子邮件地址发送电子邮件、访问门户页面 或提交输入到表单(可能由包定义)中的数据,等等。系统活动的示例是来自 诸如MOM或SMS等管理系统的警告、或由工作流活动生成的消息、或IT系 统上由IT系统的技术栈接收到或识别出的其它自动化事故。工作项的生成252 导致工作项被储存254在CMDB或其它人为产物存储中。技术栈中的组件生 成工作流激活。工作流引擎然后根据触发工作项执行链接的工作流实例中的活 动。这些仅是技术栈中的不同组件一旦用包配置如何可协作以执行由包编码的流程的几个示例。
图8示出了配置管理数据库(CMDB) 280。如上所述,CMDB是用作人 为产物存储110的优选(但不是必需)类型的数据库。CMDB储存配置项,即 CI的表示(为方便起见,CI的表示和CI本身将互换地使用)。CI通常是服从 IT配置管理控制的某一IT组件。在ITIL下,仅举几个例子,CI表示如服务、 资产、用户、位置和组织等对象。CI的生存期通常由变更单(change order)
(在下一节中讨论)来驱动。箱外(out-of-the-box)人为产物模板可被提供给 作者以使作者能容易地编写对诸如计算机和应用程序等常见人为产物使用CI 的包。作者可以添加新类型或扩展现有类型。
关系也通常能在CMDB中找到。工作项和CI可以通过诸如包含、所有者、 服务依赖性、因果等各种类型的关系而彼此或在它们之中相关联。在CMDB 中,CI可以由其它CI组成。CI的复杂性和类型可以广泛变化,并且范围可以 从整个系统(包括硬件、软件和文档编制)到单个软件模块或次要硬件组件。 CI可具有属性,诸如CI名称、描述、位置、详细技术配置设置、选项等等。 总之,CMDB是包含每一 CI的相关细节以及CI之间的关系的细节的数据库。 该数据库可包括关于CI的信息,诸如其副本和序列号、类另"状态、版本、 模型、位置、责任或关于项的历史信息等等。
CMDB可能是优选的是因为许多IT流程处理被方便地储存在CMDB中的 IT人为产物和关系。如图8中见到的,诸如事故管理、变更管理、发行管理等 IT管理功能282可以使用CMDB 280作为在管理IT基础结构284时的信息交 换和持续点。此外,IT管理功能282中的大多数决策制定是在这些人为产物和 关系上推导的,并且流程的自动化通常操纵这些人为产物和关系的表示。 CMDB还可提供既是可移植的又是可扩展的良好定义的基线系统模型。此外, 随着时间的推移,更多管理产品将开始使用CMDB,尤其是基于SDM的 CMDB,这可方便与其它产品或栈组件的互连接性。
不论是否使用CMDB,人为产物存储110都优选地具有某些特征。较佳 地,它应是对象关系型的。S卩,类、关系、组成、分组和约束的概念将是有益 的。此外,假定包实际上扩展了现有的技术栈,则如果人为产物存储110允许 可扩展性和继承则将是有帮助的。因此,新的包的作者可以继续定义新的类和关系类型,它们可能构建在其它包或模板中定义的那些类和类型上。并且,从 如配置项(CI)、受管实体、服务、资产和网络设备等预定义抽象类,或如客 户机-服务器等关系类型分出子类可以减少创作包所需的工作。
图9示出一个示例工作流引擎300。如上所述,工作流框架114可以使用 各种现有工作流引擎中的任一种来实现。图9中的工作流引擎300仅旨在给出 某些工作流引擎如何安排和运作的示例。工作流引擎300具有解析新工作流定 义304的解析器302。控制器306是执行工作流304的实例的单元。控制器306 管理工作流的主题、执行工作流的活动、调用监听器、监听事件、处理超时、 执行日志记录等等。监听器308可被实现为一同步活动,并且在满足前提时由 控制器306调用。监听器308监听工作流的传入事件。加载器310按照id从诸 如CMDB 280等持久存储中加载工作流的主题。
图10示出用于处理事故的示例工作流330。工作流330是可使用包来实 现的结构化流程的类型中的典型。活动332 (在包的工作流部分中定义)是工 作流330的节点。工作流330的主题包括工作项、用户、电子邮件等。活动332 中的任一个可由技术栈的某一其它组件来触发。其它类型的活动可包括发送任 务、调用服务、向人们发送通知、操纵人为产物、或通过经过链接服务器(可 以具有对该人为产物的引用)来操纵另一栈组件的人为产物。包的工作流代码 部分还可包括定义或描述什么触发了工作流的特定实例的信息。包的工作流代 码部分还应描述流逻辑,即活动之间的流的路径和条件。考虑工作流可如何与 其它栈组件交互的一些示例。工作流可检索、创建、更新或删除CMDB中的 工作项和人为产物。工作流可以经由链接框架与外部系统交互,并且例如执行 由管理组件(例如,MOM)监视的服务上的任务。工作流还可用电子邮件或 其它手段来发出通知。工作流甚至可以用特定信息来注释知识文章。
如上所述,包应当能够配置工作流引擎,使得在包中描述的工作流可被自 动创建、执行和监视。工作流可以涉及从简单的事故处理自动化,到用户定义 的长期运行且复杂的工作流的任何事物。如在下一节中所讨论的,包作者可以 为诸如变更授权、逐渐升级、通知、事故处理、资产生存期管理等IT流程定 义工作流。基线或标准包(由大多数创作的包使用)可以提供基于在例如MOF 中找到的标准操作的模板。同样如上所述,可使用WWF作为工作流框架。然而,为了避免必须编写 代码,创作可以在Visual Studio工作流设计器中执行。工作流类型可被绑定到 工作项或人为产物的状态变更事件。特定的状态变更,例如将问题状态设为"已 解决",可以启动工作流的新实例来处理问题解决。工作流的上下文可包括工 作项,并且因此工作流中的逻辑可访问其相关联的人为产物的一个或多个特 性,例如受到该问题影响的服务的所有者的电子邮件地址。可提供箱外标准工 作流活动的库来操纵人为产物,包括如解决事故、逐步升级事故、更新事故、 更新CMDB等活动。可在WWF设计器中提供标准工作流活动的选项板。这 些可包括如发送电子邮件、逐渐升级隐错、或通过调用如MOM、 SMS、 Exchange、 SharePoint或TFS等链接的产品来部署软件等活动。采用该方法, 包作者可以逋过拖放活动来创建预定义流程,而无需编写代码。
图11示出了用于声明性地定义工作流的标记350。本示例中的标记350 是以可扩展应用标记语言(XAML)来编写的。标记350是可以是从包中提取 并插入到工作流框架中的代码部分的类型的代码的示例。
如上所述,技术栈可包括包可用于用相关知识来补充流程的知识框架。知 识框架理想地不仅仅是文档的集合;相反,知识框架应具有诸如创建索引、允 许搜索、关联相关文章等知识管理功能。应有遵循文章之间的关系并知道在诸 如特定包的上下文等给定上下文中什么文章与给定文章相关的能力。如隐错报 告、事故或问题的工作项可具有将指示目的或上下文的分类法。例如,工作项 可具有指示该工作项是对口令重置的请求的字段。工作项的包中可以有指示存 在某些相关知识片段的某些信息。该信息可以是将工作项链接到分类法的链 接。如果用户需要了解如何请求口令变更,则用户可获取指示例如何时请求口 令、需要发送给用户的经理的电子邮件或根据编码的流程需要采取的任何步骤 的知识。在知识密集型使用情形中,可以有定义知识的生存期的工作流或包, 例如,某人或角色决定对于关于一话题的文章的需求,某人或角色写草稿,其 他人审阅该草稿,某人将其付诸生产等等知识框架可使用诸如微软SharePoint、 具有web前端的数据库、Factiva、 AskMe、 SiteScape等市场上可购买到的产品 来实现。
图12示出了可由链接服务器或链接框架链接的工作项、人为产物、警告和其它东西的示例370。链接框架可用于创建新数据类型或类之间的新连接器。 取决于解空间,可连接或链接到其它外部存储。链接也可在存在坐落在栈组件
之上的web服务时是可能的。在这一情况下,有可能容易地声明性地表达链接 的项之间的某一链接和转换。换言之,链接框架可提供将对应于一个组件的人 为产物与对应于另一组件(或诸如MOM或SMS等IT管理平台)的人为产物 进行链接、交换/同步和映射的能力。TFS链接和路由服务器(先前提到的)可 用于连接系统。人为产物及其关系在链接服务器处注册。在一个实施例中,当 这些人为产物可经由web服务获得时,链接服务器能够维护这些人为产物的关 系和位置。用于MOM、 SMS和TFS连通性的连接器可如标准模板库中所提供 的那样来创作或使用。在一简单实施例中,链接可以是第一对象/人为产物的第 一唯一标识符和第二对象/人为产物的第二唯一标识符之间的关联。在此实施例 中,示例370之间的链接将是对应于示例370的唯一标识符对之间的一组关联。 如上所述,在一个实施例中,技术栈是可扩展的。由此,如果新的包定义 了新类、新人为产物、新活动类型、人为产物之间的链接、新工作流等等,则 栈组件可以获知并适应该新信息。栈组件根据来自包的新信息来重新配置或扩 展。栈组件较佳地具有可用于扩展其功能的可扩展API或抽象层。技术栈的这 些特征可以使得包能更容易地用作流程和相关元数据的自包含编码,这允许流 程的定义与自动化该流程的技术栈清楚地分开。
包特征和流程示例
应当注意,包可用作可被插入到操作环境或技术栈的流程的外部表示或模 型;存在技术栈和创作环境与包本身之间的区分。同一个包可被插入到不同IT 系统的不同技术栈中。包可以引入新链接、具有发生在栈中的不同地方的工作 的新工作流、新文档以及到其的链接、以及新表单。此外,该信息可用声明性 的方式来编码。换言之,作者可以在包中声明表单,例如定义博客中的下拉菜 单的放置,定义另一地方的文本字段,定义另一地方的框,声明下拉菜单将附 加到选自一声明性选择列表的数据源,声明界面元素将根据选择选项来限制其 显示什么等等。这一类型的信息可以在将执行它的栈或操作环境中表达。类似 地,可以在抽象中声明报告而非硬编码。在某些实施例中,包是元数据驱动的解决方案。给定其中要开发解决方案 的技术栈,有可能向栈组件添加新数据类型。然而,该步骤单独可能是不切实 际的,因为例如现在工作流可能无法工作,因为它没有正确的数据类型;作者 有可能必须探究现有工作流来修改该工作流的数据类型以便能够处理新数据 类型,例如了解添加的新属性。类似地,现有表单可能无法立即"播放"该数 据类型,因为表单作者甚至不了解该属性。由此,通过将这些事物在包中连系 在一起,包可以是流程的自包含编码;它可被放入技术栈中,并且其所描述的 功能和数据变得在整个技术栈中活动。这对于技术栈的片段理解包中的元数据 语言且因此能够一起将该包作为一个粘合单元来"播放"的情况特别可行。作 为进一步的解释,包可以通知栈,有具有新属性的新事物等等,并且包可以将 这些新事物链接到系统的各部分中的其它事物。然后,在栈级,可以在这些可 链接的新事物可以跨技术栈来操纵的假设下创作包。例如,具有活动的新工作 流可以操纵新事物,或者组件中的触发器可以在新事物以特定方式改变时被调 用。
作为进一步的解释,考虑存在诸如人为产物存储(例如,面向对象的数据 库、CMDB等)、表单框架(例如,Office 12)、工作流引擎(例如,WWF)、 信息工作者生产性套件以及上述其它产品等各种可用软件产品。这些种类的产 品(栈组件)以某种方式汇聚。例如,许多都具有或将具有可使用诸如SDM 或其它基于XML的建模语言等声明性代码来扩展的对象模型和功能。换言之, 它们可由可对不同组件采用同一语言的声明性代码来配置。然而,组织的技术 栈的这些不同组件先前未作为粘合单元来编程(配置)或扩展。根据此处描述 的某些实施例,可移植包现在可用于通过利用其使用诸如XML、 SDM或其它 语言(不论是标准还是非标准的)等建模语言来声明性地扩展其对象模型的共 同能力来将这些组件"连线在一起"。
正如编程语言可具有一组标准库一样,技术栈可具有一组其它包可引用和 使用或扩展的标准包。这些标准包可以集中于特定情形,并且可以定义与这些 情形相关的基本人为产物、活动、链接等,这将在下文中讨论。
在IT管理领域,服务管理情形可以使用打包的可移植解决方案来自动化。 用于可能接触许多栈组件的呼叫管理的流程可被编码;经由电话、聊天、电子邮件或甚至web传入的"呼叫"可以与呼叫队列管理、计算机电话集成(CTI)、 智能语音响应(IVR)、审计、自动形式填充以及在场相集成。事故管理情形 也可被编码,例如,涉及管理状态转换和通过其生存期对事故的所有权的事故 跟踪。事故管理流程可以包括分类法的自动填充、服务和资产与问题和知识可 见性的关联、资产数据的预先发现、以及变更历史。请求管理流程也可在包中 编码。这些流程可涉及处理信息请求和硬件或软件升级。服务管理流程包可以 例如通过自动从事件或诸如MOM或外部服务台等性能管理系统生成事故来与 服务监视流程相集成。问题管理解决方案也可被自动化。这些包可以涉及将事 故识别为基础问题的症兆,提供配置、拓扑、知识和事故之间的共同性的可见 性以帮助其解决问题。另一种类型的服务管理流程是根本原因分析。这些类型 的流程使用CMDB中的相互依赖性图和服务及资产的当前状态来自动识别底 层的真正问题。服务级管理流程可以在包中编码。这些可自动化事故优先化、 逐步升级、可能绑定到服务级协定(SLA)的通知、或按照服务和问题类型对 细粒度的SLA的设置。通知和簿记解决方案可被储存在包中。例如,这一包 可自动化在处理事故时保持记录和在适当时刻向资金持有者发送所需通知的 流程。另一示例是隐错逐步升级,在这一情况下被认为是隐错的问题通过诸如 TFS等隐错跟踪系统逐歩升级。解决方案包的另一种类型的服务管理类型与知 识使用和维护相关,其中基于事故分类和预先收集的配置数据,向分析者呈现 可能基于知识库中的分级的适当的相应知识。较高级的分析者可以定期更新知 识以阻止大量问题。
变更管理是具有可被编码到包中的流程的另一领域。不当管理的IT变更 是IT系统中事故和停机时间的主要原因。变更管理流程是用于以受控方式引 入变更以最小化停机时间的流程。基本变更项通常被称为变更单,而通过变更 跟踪的基本项单元被称为配置项或CI (上文中讨论)。CI可以或者是受管实 体或者是关系,它们是基于模型的管理方法的一部分。然而,CI也可以是策略、 用户组或合同及相关关系。某些特定可编码变更管理情形或流程包括以下。变 更授权和批准可被结构化为驱动从变更单的创建到完成的工作流、保护来自资 金持有者(例如,风险经理、预算经理、调度员、服务所有者和最终用户)的 必要授权和批准。用于变更管理的流程可被创作或定制。可创作变更通知流程,这可保持受影响的各方经由电子邮件、门户等被通知到即将到来的变更。影响 分析流程可被编码以帮助风险经理分析在一个或多个服务上做出所请求的变 更的影响(或风险)。这一流程可通过利用CMDB中的关系来自动化。可创
作变更调度流程,它可包括帮助调度员基于可能打开的变更窗、服务时间表和 所需人员的可用性来找出以最小不利影响实现变更的适当机会。配置审计流程
也可被打包,这一流程可以例如包括将配置信息与使用SMS的所需配置管理 (DCM)和物理库存工具扫描的真实信息进行比较。
用于性能管理和安全管理的流程也可在流程包中捕捉。安全管理流程的示 例包括结合调査和通知活动的警告、导致推荐的知识被提供给管理员的自动化 分析等等。
与资产管理相关的流程也可在可移植的可插入栈的包中捕捉。资本设备决 策通常基于考虑了服务信息的所有者总成本(TCO)报告。这些决策可通过变 更管理来驱动变更。更具体而言,资产和配置跟踪流程可用于随时间跟踪诸如 服务、资产、用户、配置、策略及其彼此之间的关联等CI。这可允许诸如查询 资产的所有者、资产安装在何处、资产参与哪一服务、或如果资产破坏应该呼 叫谁等附属流程。变更单的自动化执行保持该数据最新,较佳地保持在企业人 为产物存储中。另一可编码资产管理流程是软件许可证遵循管理,包括对环境 中的软件的存在和使用的自动化检査、以及采取行动来降低成本和许可风险。 TCO跟踪流程可以报告对特定服务或资产的随时间的服务和变更成本。该信息 可用于围绕出帐、外包、资本货物和厂商选择做出决策。
结论
总之,在一个或多个实施例中,单个即插即用包(可以指,且因此逻辑上 包括,其它即插即用包)可具有驱动组件栈以一致的方式传递涉及其它连接的 产品(在栈之外)上的人和自动化的完整IT/业务流程的配合。给定组件的特 性,栈的组件可以直接彼此通信或不通信。但是,所有相关组件可以协作。值 得注意的是,由于例如模式和工作流活动等底层声明性配置的知识,栈组件(例 如,表单、工作流、一类人为产物)的声明性配置可以用底层组件(例如,CMDB 或工作流引擎)的行为的知识来表达,因为它们碰巧在同一即插即用包中。本领域的技术人员将认识到用于存储程序指令的存储设备可分布在网络 上。例如,远程计算机可存储描述为软件的过程的示例。本地或终端计算机可 访问远程计算机并下载该软件的一部分或全部以运行该程序。可替换地,本地 计算机可按需下载软件的片断,或者通过在本地终端上执行一些软件指令而在 远程计算机(或计算机网络)上执行一些软件指令来分布式地处理。本领域的 技术人员将认识到,通过使用本领域技术人员已知的常规技术,软件指令的全 部或部分可由专用电路,如DSP、可编程逻辑阵列等来执行。
以上讨论的所有实施例和特征都可用储存在易失性和/或非易失性计算机 或设备可读介质中的信息的形式来实现。这被认为至少包括诸如CD-ROM、磁 介质、闪存ROM等储存机器可执行指令(或者在执行之前、在执行期间、或 者在这两个时间)或源代码、或可用于允许或配置计算设备来执行以上讨论的 各实施例的任何其它信息的介质。这也被认为至少包括诸如在实现一实施例的 程序的执行期间储存如CPU指令等信息的RAM等易失性存储器。
权利要求
1. 一种或多种储存包的易失性和/或非易失性计算机可读介质,所述包包括用于配置企业技术栈的不同组件协作地自动化由所述包定义的业务流程的配置信息,其中所述企业技术栈组件包括可扩展人为产物存储、可扩展工作流引擎、以及可扩展表单框架,所述配置信息包括定义作为所述包的业务流程的一部分的一种或多种类型的企业人为产物的人为产物定义信息,所述类型至少包括所述包的业务流程中涉及的人类角色的类型以及所述包的业务流程中涉及的计算设备和/或软件服务的类型;定义用于输入和/或查看与所述包的业务流程相关的信息的一个或多个交互式表单的表单定义信息;以及定义所述包的业务流程的一个或多个工作流的工作流定义信息,所述工作流定义信息包括对由所述人为产物定义信息定义的所述各类型的企业人为产物的引用或链接,以及对由所述表单定义信息定义的一个或多个表单的链接或引用。
2. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述 人为产物定义信息能够用于配置所述人为产物存储来实例化并储存由所述人 为产物信息定义的所述一种或多种类型的企业人为产物的表示。
3. 如权利要求2所述的一种或多种计算机可读介质,其特征在于,所述 工作流定义信息能够用于允许所述工作流引擎实例化由所述工作流信息定义 的工作流的工作流实例。
4. 如权利要求3所述的一种或多种计算机可读介质,其特征在于,所述 表单定义信息能够用于允许整个企业的显示器显示用于输入和查看信息的交互式表单。
5. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述 配置信息的至少一部分采用系统定义建模(SDM)语言的形式或是从该语言编译的。
6. 如权利要求5所述的一种或多种计算机可读介质,其特征在于,所述 SDM语言基于标准标记语言。
7. 如权利要求6所述的一种或多种计算机可读介质,其特征在于,所述 标准标记语言包括XML。
8. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述 包是可移植的,使得不同的应用程序可使用所述包来配置企业技术栈的不同实 例以执行由所述包定义的业务流程。
9. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述 包还包括对一个或多个其它包的一个或多个引用。
10. 如权利要求l所述的一种或多种计算机可读介质,其特征在于,所述 配置信息包括声明性代码。
11. 如权利要求10所述的一种或多种计算机可读介质,其特征在于,所 述声明性代码包括基于XML的语言。
12. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,由所 述包定义的业务流程包括信息技术(IT)管理流程。
13. 如权利要求12所述的一种或多种计算机可读介质,其特征在于,所 述IT管理流程包括变更管理流程。
14. 如权利要求12所述的一种或多种计算机可读介质,其特征在于,所 述IT管理流程包括事故管理流程。
15. 如权利要求12所述的一种或多种计算机可读介质,其特征在于,所 述IT管理流程包括发行管理流程。
16. 如权利要求10所述的一种或多种计算机可读介质,其特征在于,所 述流程对应于在信息技术基础结构库(ITIL)中定义的流程。
17. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述 包还包括可用于认证所述包的提供者的所述包的数字签名。
18. 如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述 包还包括指示所述包的版本的版本信息。
19. 一种生成描述流程的包的方法,所述方法包括将流程定义信息储存在可移植包内,其中所述流程定义信息包括定义对应于所述流程的工作流的工作流定义信息,其中所述工作流定义在被插入到工作流引擎时将使得所述工作流引擎能够实例化并执行所述工作流的实例;定义表单以及将所述表单链接到由所述工作流定义信息定义的工作流的信息的表单定义信息,其中所述表单定义信息在被插入到表单框架时 将使得所述表单框架能够向用户显示所述表单;以及定义一类或多类人为产物以及将所述人为产物链接到所述工作流定 义的信息的人为产物定义信息,其中所述人为产物定义信息在被插入到人 为产物存储时将使得所述人为产物存储能够储存由所述人为产物定义信 息定义的类型的人为产物。
20. 如权利要求19所述的方法,其特征在于,所述储存还包括在所述包 中储存包信息,所述包信息包括标识所述包的作者、所述包对另一包的依赖性、 以及所述包所遵循的打包模式的信息。
21. 如权利要求19所述的方法,其特征在于,还包括在所述包中储存链 接信息,所述链接信息在被插入到链接框架时将使得所述链接框架能够将所述 工作流引擎、所述表单框架或所述人为产物存储的任一个中的项与所述工作流引擎、所述表单框架或所述人为产物存储的另一个中的项相链接。
22. 如权利要求19所述的方法,其特征在于,所述储存所述流程定义信 息包括将所述流程定义信息构造为声明性代码,其中所述工作流定义信息、所 述表单定义信息和所述人为产物定义信息包括由所述工作流引擎、所述表单框架和所述人为产物存储分别实现的语言中的代码的相应部分。
23. 如权利要求22所述的方法,其特征在于,还包括在所述包中储存对 包括其它流程定义信息的另 一包的引用。
24. 如权利要求19所述的方法,其特征在于,所述流程定义信息还包括 链接信息,所述链接信息在被插入到链接框架时将使得所述链接框架能够链接 由储存在所述工作流引擎、所述表单框架和所述人为产物存储的不同者上的流 程定义信息的不同部分定义的不同项。
25. 如权利要求19所述的方法,其特征在于,所述流程定义信息还包括门户信息,所述门户信息在被插入到门户框架时将使得所述门户框架能够显示 作为由所述流程定义信息定义的流程的一部分的门户。
26. 如权利要求25所述的方法,其特征在于,所述流程定义信息还包括 知识信息,所述知识信息在被插入到知识框架时将使得所述知识框架能够向用 户提供与由所述流程定义信息定义的流程相关的知识。
27. —种或多种储存包的易失性或非易失性计算机可读介质,所述包包括 定义业务或IT管理流程的声明性代码,所述流程包括所述流程的工作流、所述流程的各类型的人为产物、以及所述流程的表单,其中所述声明性代码能 够被插入到信息技术(IT)栈中并使得所述IT栈能够播放由所述声明性代码 定义的流程;标识所述包的包标识信息;以及包括根据其来格式化所述包的模式或对模式的引用的模式信息。
28. 如权利要求27所述的一种或多种计算机可读介质,其特征在于,所述包标识信息包括以下的两个或更多个所述包的制造商或作者、所述包的版本号、所述包所依赖的另一包、或用于认证所述包的安全证书。
29. 如权利要求27所述的一种或多种计算机可读介质,其特征在于,所 述声明性代码符合系统定义建模语言。
30. 如权利要求27所述的一种或多种计算机可读介质,其特征在于,定 义所述业务或IT管理流程的声明性代码包括可由所述IT栈中的工作流框架使 用的部分、可由所述IT栈中的表单框架使用的部分、以及可由所述IT栈中的 人为产物存储使用的部分。
31. 如权利要求30所述的一种或多种计算机可读介质,其特征在于,所 述工作流框架、所述表单框架和所述人为产物存储是所述IT栈中可独立于其 它组件来安装和使用的分开且自治的组件。
32. 如权利要求31所述的一种或多种计算机可读介质,其特征在于,所 述人为产物存储储存配置项及其之间的关系。
33. 如权利要求32所述的一种或多种计算机可读介质,其特征在于,所 述人为产物存储包括配置管理数据库(CMDB)。
34. 如权利要求27所述的一种或多种计算机可读介质,其特征在于,定义所述业务或IT流程的声明性代码指定了所述流程中所涉及的人或角色,以 及经由所述IT栈去往和/或来自所述人或角色的活动流。
全文摘要
所描述的是包含流程编码的可移植包。这些包是可移植的,并且与技术栈不同。这些包可以采用用于配置技术栈的声明性代码的形式,并且可被插入到技术栈中以允许技术栈播放这些包,由此自动化由这些包编码的流程。还描述了用于创作包的方法、用于播放包的技术栈、以及用于加载(“插入”)包并且还可能控制包的播放的应用程序。
文档编号G06F15/16GK101432715SQ200780014904
公开日2009年5月13日 申请日期2007年3月8日 优先权日2006年4月24日
发明者A·J·杉格维, G·齐齐斯, V·拉贾拉贾 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1