CN103026337B - 配给组件的提取和重构 - Google Patents
配给组件的提取和重构 Download PDFInfo
- Publication number
- CN103026337B CN103026337B CN201180036646.XA CN201180036646A CN103026337B CN 103026337 B CN103026337 B CN 103026337B CN 201180036646 A CN201180036646 A CN 201180036646A CN 103026337 B CN103026337 B CN 103026337B
- Authority
- CN
- China
- Prior art keywords
- dispensing
- archives
- request
- assembly
- computing environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims description 62
- 238000000034 method Methods 0.000 claims abstract description 65
- 239000000284 extract Substances 0.000 claims abstract description 12
- 238000001914 filtration Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 32
- 230000009471 action Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 238000009434 installation Methods 0.000 description 13
- 230000000712 assembly Effects 0.000 description 12
- 238000000429 assembly Methods 0.000 description 12
- 239000012190 activator Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004606 Fillers/Extenders Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
- Vaporization, Distillation, Condensation, Sublimation, And Cold Traps (AREA)
Abstract
公开了一种用于将在具有可配置组件的计算环境的配给期间可能发生的配给错误归档的方法。所述方法可以包括提取配给请求,其中提取配给请求的步骤包括将配给请求组件记录在配给档案中并且过滤该配给请求组件。所述配给请求组件可以包括被请求来添加到所述计算环境、从所述计算环境移除和/或在所述计算环境中更新的组件。所述方法还可以包括提取配给目标,其中提取配给目标的步骤包括将目标环境记录在配给档案中并且过滤该目标环境的现存组件。另外,所述方法可以包括将配给请求应用于配给目标(包括对目标环境进行配给),结果得到更新的配给目标。此外,所述方法可以包括确定配给错误是否发生并且将配给错误(如果有的话)添加到配给档案。
Description
相关申请的交叉引用:本申请与2010年5月26日递交的、题目为“配给组件的提取和重构(Distillationandreconstructionofprovisioningcomponents)”的美国临时专利申请No.61/348,723相关,并且要求该专利申请的优先权,该专利申请通过引用被并入本文。
技术领域
本公开总地涉及解决配给(provisioning)和部署问题,更具体地涉及捕获并且重演(replaying)配给组件以解决配给和部署问题。
背景技术
用户配给软件是旨在帮助组织更快速地、更便宜地、更可靠地、更安全地管理关于用户在多个系统和应用程序上的信息的软件。在现今的计算机系统中,软件通常在计算机被出售之前被安装,购买者后来可能想添加、更新或者移除软件。越来越多的现今的软件系统被动态地配给,并且能够支持来自原始软件提供商、软件系统的客户和第三方的扩展。
用户配给是指当用户对象和用户属性存在于一个或者更多个系统、目录或者应用程序中时响应于自动化的或者交互式的业务流程对这些用户对象和用户属性的创建、维护和/或停用。用户软件可以在具有可单个地配置的和/或可单个地升级的组件的任何计算环境上被配给。用户对象可以表示服务的雇员、承包商、供应商、合作伙伴、客户或者其他接受者。服务可以包括电子邮件、发布用户目录中的包含、对数据库的访问、对网络或者主机的访问等等。用户配给是在组织内特别有用的一种类型的身份管理软件,在所述身份管理软件中,用户可以通过多个系统上的多个对象来表示。
现代软件系统的趋势是将软件“组件化”为更小片段(组件)以支持重复使用和针对性更新(targetedupdate)。这通常涉及对同一组件的多个版本的支持。此外,配给通常可能涉及在软件系统上运行预配给和后配给逻辑。例如,运行时(runtime)中的活动组件可以涉及移除之前的停用,添加的组件可以涉及安装之后的激活。
为大型动态系统配给大量组件、复杂的互相关性和运行时脚本撰写的代理可以以许多方式失败,并且这通常超出用户诊断这样的配给失败的能力。
发明内容
本公开教导:提取目标环境中的配给请求和预配给目标,并且以客户的专有(proprietary)数据被除去并且配给档案更小并可更易于被发送到支持组织的方式将配给请求应用于配给目标。如果配给错误被找到,则将该配给错误添加到配给档案。
如果配给错误已被找到,则本公开教导下述软件支持程序,所述软件支持程序从用户计算环境接收配给档案,打开配给档案,通过扩展提取的配给请求来重新创建配给请求,通过扩展提取的目标环境来重新创建配给目标,并且将配给请求应用于配给目标,结果得到重新创建的配给错误。扩展在支持计算环境上基本上恢复与呈现在用户计算环境上的公共元数据相同的公共元数据。扩展还产生可以充当从支持计算环境所接收的配给档案移除的专有信息的外壳代码(shellcode),以重新创建基本上相同的配给错误。这允许软件支持程序在不访问用户的专有信息的情况下重演并且分析在用户计算机环境上发生的配给错误。
附图说明
图1是根据本公开的配给组件的高层次概述的示意图;
图2是根据本公开的用于提取并且重新创建在用户计算环境的配给期间可能发生的配给错误的方法的系统层次示图;
图3是图示说明根据本公开的用于提取配给请求、配给目标、组件和配给错误的系统的示意图;
图4是图示说明根据本公开的原始的和提取的配给目标、配给请求和配给组件的示意图;
图5是图示说明根据本公开的在用户计算环境的配给的流程图;
图6是图示说明根据本公开的在用户计算环境的配给的示意图;
图7是图示说明根据本公开的用于重新创建配给请求、提取的配给目标、提取的组件和提取的配给错误的系统的示意图;
图8是图示说明根据本公开的提取的和扩展的配给目标、配给请求和配给组件的示意图;
图9是图示说明根据本公开的在支持计算环境重新创建配给请求和配给目标的流程图;以及
图10是图示说明根据本公开的在支持计算环境进行重新创建的示意图。
具体实施方式
为大型动态系统配给大量组件、复杂的互相关性和运行时脚本撰写的用户计算环境可以以许多方式失败。这通常超出用户诊断这样的配给错误的能力。本公开涉及一种用于在后来的某一时间并且可能在不同装置上捕获、发送并且重新创建配给错误,以允许软件支持人员分析并且修复配给错误以及改进软件功能性的方法和系统。所公开的方法和系统将不要求客户提供大量专有信息来重新创建配给失败,从而允许软件支持人员分析重建创建的配给错误,而不必访问客户的专有数据。
图1是配给100的高层次概述的示意图。配给100可以包括配给请求110和预配给目标120,配给请求110和预配给目标120可以产生更新的配给目标130以及可能的配给错误140。
配给请求110可以是通过添加、移除和/或更新用户计算环境中的软件组件来以某一种方式或者某几种方式改变配给目标120的请求。更新可以涉及移除无用的组件和添加期望的组件。组件可以包括代码或者类似于元数据的配置。为了添加新组件,更新操作使用要被安装的实际组件;然而,为了移除现存组件,更新操作可以使用关于什么组件要被移除的标识符。
在图1中,配给请求110可以包括配给操作元数据112。配给操作元数据112可以包括关于所期望的配给操作的信息。例如,用户可能想移除例如组件B和C,同时添加组件D和E。因为移除组件可以不使用实际组件,所以配给请求110可以仅包括要被添加的实际组件——组件D114和E116。
预配给目标120是具有“可插的”组件的系统——即,在其中用户可以添加、更新和/或移除组件的计算环境。配给目标的实施例将在图2中被更详细地讨论,但是可以包括,例如,具有应用程序附加软件的移动电话、部署有不同客户应用程序的云中的节点或者具有不同小服务程序的web服务器。在图1中,预配给目标120可以包括配给目标元数据122、环境描述符、组件描述符和现存组件124(例如,现存组件A、B和C)。
将配给请求110应用于预配给目标120可以得到更新的配给目标130。理想地,更新的配给目标130将包括来自预配给目标120的配给目标元数据132、环境描述符和组件描述符。在实施例中,更新的配给目标130理想地将包括原始组件A以及添加的组件D和E,而组件B和C将已被移除。然而,图1中的实施例中的更新的配给目标130实际上包括组件A、C和E,这意味着一些配给错误140发生。
配给错误140可以与配给请求110(例如,组件C的移除)和组件本身都相关(例如,在准备移除组件C的同时,它不能首先被停用)。因此,图1中的配给错误140可以包括用于移除组件C的请求和组件标识符两者以及用于添加组件D的请求和组件两者。
有利地,本公开教导了创建配给请求110、预配给目标120和配给错误140的配给档案,以使得用户的专有数据被除去、档案更小并且可更易于发送到支持组织并且支持组织可以重新创建配给错误140来解决软件问题。
图2是用于提取并且重新创建在用户计算环境的配给期间可能发生的配给错误200的系统的系统层次示图。图2包括用户计算环境202。非常普遍的是,用户计算环境202可以由具有可单个地配置的和/或可单个地升级的组件的任何计算机环境构成。示例可以包括,但不限于,台式计算机、膝上型计算机、网络或者云计算机、平板计算机、智能电话(比如,iPhone)、家用自动装置或者具有可配置软件组件的任何其他装置。
用户计算环境202可以与多个服务器206直接通信,或者可以通过网络连接204与服务器206通信。在实施方案中,用户计算环境202可以通过互联网204与服务器206通信。支持计算环境210可以与用户计算环境202分开地被定位,并且可以与多个服务器206直接通信,或者可以通过网络连接208与服务器206通信。在实施方案中,支持计算环境210可以通过互联网208与服务器206通信。像用户计算环境202那样,非常普遍的是,支持计算机器210可以由具有可单个地配置的和/或可单个地升级的组件的任何计算机环境构成。支持计算环境210可以是具有可配置软件组件的任何装置,所述可配置软件组件可以被配置来重新创建在用户计算环境202上发生的配给错误。
在高层次,用户计算环境202的用户可以启动配给处理,所述配给处理可以触发配给档案的创建。配给档案可以包括配给目标、配给请求和配给组件。如果配给错误在用户计算环境202于配给处理期间发生,则提取的配给档案可以被发送到支持计算环境210。提取操作从配给处理过滤专有内容。
在支持计算环境210,提取的配给档案可以被扩展,以便重新创建并且重演来自用户计算环境202的配给错误。扩展得到扩展的配给目标、扩展的配给请求和扩展的组件。支持计算环境210产生模仿先前从配给组件提取的专有数据的外壳代码来扩展提取的配给请求。配给档案可以被重演,并且支持人员可以分析并且调试配给错误。
捕获配给失败
配给失败可以被捕获和发送到支持计算环境,以用于分析配给失败是否在用户计算环境发生。在实施方案中,配给档案被用来记录配给失败。配给档案可以包括提取的配给请求、提取的配给目标、可以已被添加到用户计算环境、被从用户计算环境移除和/或在用户计算环境上被更新的一个或者更多个提取的组件以及一个或者更多个配给错误。一旦配给档案被创建,并且如果配给失败在配给期间被发现,则配给档案可以被发送到支持计算环境,在所述支持计算环境,配给失败可以通过扩展配给档案来重新创建。支持人员可以在支持计算环境上重演并且分析配给失败。
图3是图示说明用于提取配给档案的系统300的示意图。提取器310可以被配置来接收配给目标302、配给请求304、组件306和配给错误308作为输入。提取器310可以对所述输入执行提取处理。在实施方案中,提取处理从输入302、304、306、308移除用户的专有信息,但是仍允许输入302、304、306和308被充分地捕获以描述它们的内容。提取处理可以得到下述输出,所述输出由将变为提取的配给档案的一部分的提取的配给目标312、提取的配给请求314、提取的组件316和提取的配给错误318构成。
图4是分别图示说明原始版本的配给目标410、配给请求430和配给组件450以及提取版本的配给目标420、配给请求440和配给组件460的示意图400。如以上在图3中所描述的,提取操作移除用户的专有信息,但是允许组件被充分捕获,以便允许这些组件被重新创建。在这种背景下,捕获是指软件代码描述先前从配给请求、配给目标或者组件提取的用户专有信息的能力。提取处理在配给档案被传送到支持计算环境之前移除用户专有信息时有利地节省了空间。提取操作从配给处理过滤专有信息。过滤的描述可以被包括在配给档案中并且被发送到支持计算环境。
在提取处理400期间,原始配给目标410可以包括“公共”数据412(例如,通用元数据)和一个或者更多个组件414。除其他数据之外,通用元数据412可以包括关于处理环境、组件相关性和组件用法的信息。公共数据412的实际形式可以取决于特定的配给目标。例如,蜂窝电话上可用的公共元数据412可以不同于可供Java应用程序、OSGi运行时或者J2EE服务器使用的公共元数据。原始配给目标420的提取得到提取的配给目标420。提取的公共数据422可以与原始数据412相同,但是一个或者更多个提取的组件424可以已被过滤来从配给处理移除专有信息。
另外,在提取处理400期间,原始配给请求430可以包括“公共”数据432(例如,通用元数据)和一个或者更多个添加的组件434。通用元数据432可以包括用于添加和移除组件的组件标识符。像原始配给目标410那样,公共数据432的实际形式可以取决于特定的配给请求。例如,蜂窝电话上可用的公共元数据432可以不同于可供Java应用程序、OSGi运行时或者J2EE服务器使用的公共元数据。原始配给请求430的提取得到提取的配给请求440。提取的公共数据442可以与原始元数据432相同,但是一个或者更多个提取的添加组件444可以已被过滤来从配给处理移除专有信息。
另外,在提取处理400期间,原始组件450可以包括标识符451、“公共”数据452(例如,通用元数据)和专有数据455。通用元数据452可以包括头部和组件档案路径。像原始配给目标410和原始配给请求430那样,公共元数据452的实际形式可以取决于特定的组件。例如,原始组件450的专有数据可以包括包含用户专有信息的代码。原始组件450的提取得到提取的组件460。提取的标识符461可以与原始标识符451相同,提取的公共数据462可以与原始元数据452相同,但是专有数据455可以已被从原始组件450过滤,并且可以不再存在于提取的组件460中。在被封包为Java档案(JAR)的Java组件的情况下,公共数据可以包括JAR清单文件和资源结构中的头部。
图5是图示说明在用户计算环境的配给处理500的流程图。配给处理500从动作510开始。在动作520,创建档案。该档案由配给请求、预配给目标和任何配给错误组成。该档案可以被除去专有数据。在实施方案中,档案更小,并且可更易于发送到支持计算环境。档案可以被用来重新创建配给错误来解决问题。
在动作530,提取配给请求。提取配给请求的步骤可以包括将配给请求组件记录在配给档案中并且过滤该配给请求组件。配给请求组件可以包括被请求来添加到用户计算环境、从用户计算环境移除和/或在用户计算环境中更新的组件。在可替换实施方案中,动作530可以包括过滤多于一个的配给请求组件。
在动作540,提取配给目标。提取配给目标的步骤可以包括将目标环境记录在配给档案中并且过滤该目标环境的现存组件。在可替换实施方案中,动作540可以包括过滤目标环境的多于一个的现存组件。
在动作550,将配给请求应用于配给目标。应用配给请求的步骤可以得到更新的配给目标。配给处理可以确定配给错误在动作550期间是否发生。如果配给错误确实发生,则在动作550中所使用的相同软件代码稍后可以在图9中被用来在支持计算环境上重新创建相同的配给错误,允许支持人员分析配给错误。
如果一个或者更多个配给错误在配给处理期间被发现,则可以在动作560将配给错误添加到配给档案。另外,配给错误可以与将被用来在支持计算环境上重新创建配给错误的配给请求和配给请求组件相关。配给档案可以被压缩,但是压缩不是必需的。在动作570,关闭档案。配给处理在动作580结束,并且配给档案可以被发送到支持计算环境。
图6是图示说明在用户计算环境的提取处理600的示意图。提取处理600可以包括配给请求610、运行时620和配给档案630。配给请求610可以包括要被移除的组件612和要被添加的组件614两者。如以上关于图1所讨论的,要被移除的组件612使用该组件的标识符,而要被添加的组件614使用由用户计算环境上的元数据和用户特有的专有内容构成的实际组件。
运行时620可以包括运行时环境622,并且可以包括当前安装的组件624。当前安装的组件624可以包括用户计算环境上的元数据、运行时状态和用户特有的专有内容。
配给档案630可以包括提取的运行时环境632、提取的安装组件634,所述提取的安装组件634包括从运行时安装组件624记录的提取的元数据和提取的运行时状态。在实施方案中,配给档案630不包括来自运行时620中的安装组件624的专有内容。所述专有内容在被记录在配给档案630中之前可以被从配给请求和配给目标过滤。
如前面所讨论的,配给请求610包含要被移除的组件612的标识符。在配给期间,运行时620可以被配置来卸载要被移除的组件612,所述要被移除的组件612将被记录在配给档案中的提取的移除组件636中。配给请求610还可以包含要被添加的组件614的元数据和专有内容。在要被添加的组件614的情况下,在配给期间,运行时620可以被配置来安装要被添加的组件614。在实施方案中,仅公共元数据638被记录在配给档案630中,并且配给档案630不包括来自要被添加的组件614的专有内容。在一些实施方案中,专有数据的一部分从要被添加的组件614提取。任何数量的专有内容可以在被记录在配给档案630中之前被从配给请求和配给目标过滤。
配给档案630还可以包括在配给请求被应用于配给目标时在运行时620期间可能发生的配给错误640。可以导致配给错误640的配给失败可以包括,但不限于,停止失败、反初始化失败、初始化失败或者启动组件失败。
现在参照图3至图6,在配给期间,提取机制可以提取捕获的信息来产生配给档案。以下关于配给处理的信息可以被提取:
(1)配给中所涉及的组件的描述。所公开的实施方案可以捕获要被添加、移除和/更新的组件的提取。所述组件的描述可以足以描述它们的内容(尽管多半实际上不包括内容),这对于过滤用户的专有数据和节省配给档案中的空间是重要的。
(2)正被配给的运行时的描述。所公开的实施方案可以捕获正被配给的运行时的描述(该描述通常将包括运行时在其上执行的系统的描述)以及捕获运行时中的每个组件的状态。
(3)配给操作的描述。所公开的实施方案可以捕获对于配给操作所表示的运行时的期望改变。配给操作的描述通常是哪些组件添加到运行时以及哪些组件从运行时移除的描述。
(4)配给错误的描述。所公开的实施方案可以充分详细地捕获配给错误,以使得重演机制可以区分不同失败模式。具体地讲,如果给定组件引起后配给步骤中的失败,则重演机制可以将该失败与引起它的组件相关。
这些描述可以被一起编排在单个配给档案中,并且通常可以被压缩以达成方便的交换格式。在配给失败的情况下,配给档案可以被传送给支持计算环境。
重新创建配给失败
如果配给失败在用户计算环境发生,则配给失败可以被支持计算环境重新创建。在实施方案中,提取的配给档案被用来重新创建并且重演配给失败。提取的配给档案可以被发送到支持计算环境,在所述支持计算环境中,配给失败可以通过扩展提取的配给档案来重新创建。支持人员可以在支持计算环境上重演并且分析配给失败。
图7是图示说明用于扩展提取的配给档案的系统700的示意图。扩展器710可以被配置来接收提取的配置档案作为输入,所述提取的配置档案包括提取的配置目标702、提取的配置请求704、提取的组件706以及提取的配给错误708。扩展器710可以对所述输入执行扩展处理。在实施方案中,扩展处理从提取的配给请求和提取的配给目标恢复公共元数据,并且产生被设计为以与原始配给失败相同的方式失败的外壳代码。扩展处理可以得到可以被用来重演和分析重新创建的配给失败的输出,所述输出由扩展的配给目标712、扩展的配给请求714、扩展的组件706和扩展的配给错误718构成。
图8是分别图示说明提取版本的配给目标810、配给请求830和配给组件850以及扩展版本的配给目标820、配给请求840和配给组件860的示意图800。如以上在图7中所描述的,扩展操作将公共元数据恢复到提取的配置档案,并且产生代替专有数据的、被设计为以与原始配给失败相同的方式失败的外壳代码。所述外壳代码不包含从原始配给档案提取的专有信息,但是所述外壳代码可以允许支持计算环境重新创建配给失败。因此,当配给被支持人员重演时,相同类型的配给失败发生并且配给失败可以被调试。
在扩展处理800期间,提取的配给目标810可以包括“公共”数据812(例如,通用元数据)和一个或者更多个提取的组件814。除了其他数据之外,通用元数据812可以包括关于处理环境、组件相关性和组件用法的信息。公共数据812的实际形式可以取决于特定的配给目标。例如,蜂窝电话上可用的公共元数据812可以不同于可供Java应用程序、OSGi运行时或者J2EE服务器使用的公共元数据。提取的配给目标810的扩展得到扩展的配给目标820。扩展的公共数据822可以与原始元数据812相同,但是一个或者更多个扩展的组件814可以用外壳代码扩展,以便在支持计算环境上重新创建相同的配给失败。
另外,在扩展处理800期间,提取的配给请求830可以包括“公共”数据832(例如,通用元数据)和一个或者更多个提取的添加组件834。通用元数据832可以包括用于添加和移除组件的组件标识符。像提取的配给目标810那样,公共数据832的实际形式可以取决于特定的配给请求。配给请求830的扩展得到扩展的配给请求840。扩展的公共数据842可以与原始元数据832相同,但是一个或者更多个扩展的添加组件844可以用外壳代码扩展,以便在支持计算环境上重新创建相同的配给失败。
另外,在扩展处理800期间,提取的组件850可以包括标识符851和“公共”数据852(例如,通用元数据)。通用元数据852可以包括关于头部和组件档案路径的信息。像提取的配给目标810和提取的配给请求830那样,公共数据852的实际形式可以取决于特定的配给目标。在扩展组件860之后,扩展的标识符861可以与原始标识符相同,扩展的公共数据862可以与原始元数据852相同。扩展的组件860可以包括扩展数据865的外壳代码,所述外壳代码被设计为在支持计算环境上重新创建与最初在用户计算环境上发生的配给错误相同的配给失败。在被封包为Java档案(JAR)的Java组件的情况下,公共数据可以包括JAR清单文件和资源结构中的头部。
例如,在实施方案中,如果在配给期间,有必要启动刚被安装的组件并且该组件的启动失败,则可能已导致配给错误。当产生配给档案时,配给错误可以已被记录到配给档案并且与失败的组件相关。扩展的组件860可以包括与原始组件相同的通用数据862,但是扩展的组件860将产生扩展数据865的外壳代码,所述外壳代码的启动功能将产生相同的归档的配给错误。
通常,可以被重新创建的失败的类型和外壳代码可以被产生的方式取决于特定类型的配给目标和组件。例如,在实施方案中,OSGi组件(即,“捆绑包(bundle)”)可以具有“捆绑包激活器(bundleactivator)”,所述“捆绑包激活器”具有“启动”方法和“停止”方法。如果原始配给因为组件不能启动而失败,则外壳代码可以包括其启动方法将抛出相同的归档异常的捆绑包激活器。因此,当在支持计算环境上通过支持程序重新创建原始配给时,相同类型的配给失败可能发生。重新创建的配给失败可以用支持工具来调试。
图9是图示说明在支持计算环境的重新创建和重演处理900的流程图。重新创建处理900从动作910开始。在动作920,打开档案。该档案由提取的配给请求、提取的配给目标和任何配给错误组成。该档案可以在提取处理期间已经被除去专有数据。在实施方案中,档案更小,并且可更易于发送到支持计算环境。
在动作930,重新创建原始配给请求。重新创建配给请求的步骤可以包括扩展档案中的提取的配给请求组件来重新创建配给失败。扩展的配给请求组件可以包括被请求来添加、移除和/或更新的、与用户计算环境中的组件相同的组件。在可替换实施方案中,动作930可以包括扩展多于一个的配给请求组件。
在动作940,重新创建配给目标。重新创建配给目标的步骤可以包括扩展档案中的目标环境并且扩展提取的目标环境的现存组件来重新创建相同的配给失败。在可替换实施方案中,动作940可以包括过滤目标环境的多于一个的现存组件。
在动作950,将配给请求应用于配给目标,包括对目标环境进行配给。应用配给请求的步骤可以导致与以上在图5中在动作550创建的配给目标相同的配给目标的重演。在以上图5中的动作550被用来将配给请求应用于配给目标的相同软件代码这里可以被用来在支持计算环境重新创建相同的配给错误。
在动作960,可以重演并且分析在原始配给处理期间被发现的并且在动作950被重新创建的一个或者更多个配给错误。重新创建的新错误应该与原始配给错误匹配,从而允许在支持计算环境的支持人员分析重新创建的配给错误。有利地,重新创建的配给错误不包括专有数据。支持人员可以诊断重新创建的错误并且调试配给失败的最初原因。另外,所公开的实施方案允许支持人员使用另外的诊断工具来调试配给失败的最初原因。
在动作970,可以关闭配给档案。重新创建处理在动作980结束。
图10是图示说明在支持计算环境的重新创建处理1000的示意图。重新创建处理1000可以包括配给请求1010、模拟的运行时1020和配给档案1030。
配给请求1010可以包括要被移除的组件1012和要被添加的组件1014。如以上关于图1所讨论的,要被移除的组件1012使用该组件的标识符,而要被添加的组件1014使用由元数据和外壳代码内容构成的实际组件。所述外壳代码内容可以被配置来扩展提取的组件以代替从组件过滤的任何专有内容以便重新创建配给错误。
模拟的运行时1020可以在运行时环境1022中被模拟,并且可以包括当前安装的组件1024。当前安装的组件1024可以包括用户计算环境上的元数据、运行时状态和取代用户特有的专有内容的外壳内容。
配给档案1030可以包括扩展的运行时环境1032和扩展的安装组件1034,所述扩展的安装组件1034包括扩展自模拟的运行时安装组件1024的扩展的元数据和扩展的运行时状态。如前面所讨论的,在实施方案中,配给档案1030在被记录在原始配给档案中之前不包括将从配给请求和配给目标过滤的专有内容。要被添加的组件1014和当前安装的组件1024中的外壳内容可以与先前提取的专有数据相关,以便复制来自原始配给的运行时配给失败。
配给档案1030可以包含来自重新创建的配给请求1010的要被移除的组件1012的标识符1036。在重新创建期间,标识符1036可以通过从配给档案1030移除标识的组件来重新创建移除,所述配给档案1030可以重新创建当原始配给请求在原始运行时期间被应用于配给目标时可能已发生的任何配给错误1040。
配给请求1010还可以包含要被添加的组件1014的元数据和外壳内容。在要被添加的组件1014的情况下,在重新创建期间,模拟的运行时1020可以被配置来安装先前被添加的组件,但是仅公共元数据1038将在配给档案1030中被扩展。配给档案1030可以不包括专有内容。所述专有内容在被重新创建在配给档案1030中之前可以从配给请求1010和配给目标被扩展为外壳代码。
配给档案1030可以重新创建当原始配给请求在原始运行时期间被应用于配给目标时可能已发生的任何配给错误1040。可能导致配给错误1040的重新创建的配给失败可以包括,但不限于,停止失败、反初始化失败、初始化失败或者启动组件失败。
现在参照图7至图10,重新创建的扩展的配给档案可以被用来在支持计算机器上重演配给失败。配给档案可以在模拟运行时中被用来重新创建原始配给操作的配给失败。在实施方案中,重新创建的配给档案可以:
(1)重新创建记录组件,所述记录组件表示原始配给失败中所涉及的组件。所述组件可以在配给操作之前的模拟运行时中被重构,包括要通过配给操作移除的组件和要通过配给操作添加到模拟运行时的组件。与停用或者激活配给错误相关的组件应该在重演期间用以相同方式失败的外壳代码重构。外壳内容可以包括所产生的用于再现与失败的组件相关的原始配给中的失败的代码。
(2)重构状态基本上与原始运行时相同的模拟运行时。模拟运行时包括配给之前的运行时中的组件和所谈及的运行时本地的任何外设状态的恢复。调试器在配给被重演时可以被附连到模拟运行时,或者其他工具可以被用来探究重新创建的配给失败。
(3)重新将所描述的配给应用于重构的运行时。这通常将发生在具有可用的附加工具的环境中。例如,重演可以涉及在可以访问源代码本身并且具有在不包括客户的专有信息的情况下探查私有配给数据结构的能力的环境中附连Java调试器。
注意的是,描述源环境的附加元数据可以被用来转变到另一机器。例如,在Java系统上,系统环境将捕获可以被用来将文件路径从源环境转变到重演环境的目录和路径分隔符。
OSGi相关实施方案
在实施方案中,配给处理和重新创建配给处理可以被应用于OSGi(开放服务网关协议)运行时环境。OSGi框架可以是用于Java编程语言的、实现基本上完整的、动态的组件模型的模块化系统和服务平台。OSGi技术是定义用于Java的动态组件系统的一套规范。这些规范可以使得能够实现在其中应用程序动态地由许多不同的可重复利用的组件构成的开发模型。OSGi规范可以使得组件能够在通过服务进行通信的同时对其他组件隐藏它们的实现,所述服务是在组件之间特别共享的对象。
OSGi运行时本身(通常被称为框架)具有描述运行时的更多方面的相关联的一组“框架特性”。OSGi运行时可以被托管在Java运行时中。在实施方案中,Java运行时是其本身具有各种环境特性的操作系统处理。在实施方案中,这被捕获为如以上关于图6所讨论的元数据。
OSGi环境中的软件的基本单元是“捆绑包”。捆绑包包括比如可执行Java代码、本地库和其他数据的资源。OSGi定义了描述组件之间的关系的一组自定义头部。捆绑包在运行时中具有定义明确的生命周期状态。捆绑包可以具有当组件被启动或者停止(也就是说,进入或者离开它的活动状态)时将被调用的“捆绑包激活器”。本公开的OSGi实施方案捕获每个组件中的OSGi元数据和捆绑包的状态。Java类、嵌入式Java档案、本地库和每个组件中的资源被除去;仅它们的存在被捕获。这使得OSGi运行时能够在捆绑包类路径及其提取内容给定的情况下如预期那样操作。而且,其激活器引起配给失败的任何捆绑包将被给予激活器存根(activatorstub),该激活器存根将以与原始组件相同的方式失败。
对OSGi运行时进行配给可能是个复杂的问题,尤其是当目标运行时已经具有若干个组件时。每个组件(或者是OSGi捆绑包,或者是Eclipse特征)可以被视为配给约束和要求约束两者。配给涉及评估和满足这些约束,并且,有时,优化它们的解。配给和部署问题随着组件数量增加而变得越来越复杂,并且可以导致一种或者更多种失败。一些失败是相对明显的,而许多失败是难以阻止的,并且可能超出经验不足的用户的诊断能力。
在实施方案中,如以上关于图3至图10所讨论的,配给操作中所涉及的基本上所有的元数据被以可以易于被发送的快照格式捕获并且稍后被重演,以便复制客户问题。
尽管以上描述了各种实施方案,但是应理解它们仅作为示例被提出,而非限制性的。因此,优选实施方案的宽度和范围不应受上述示例性实施方案中的任何一个限制,而应仅根据要求本临时专利申请的优先权的任何专利的权利要求及其等同形式来限定。
例如,如本文所指的,机器或者引擎可以是虚拟机器、计算机、节点、实例、主机或者联网计算环境中的机器。此外,如本文所指的,联网计算环境是通过方便机器之间的通信并且允许机器共享资源的通信信道连接的机器的集合。网络还可以是指同一机器上的处理之间的通信介质。此外,如本文所指的,服务器是被部署来执行作为套接字监听器操作的程序的机器,并且可以包括软件实例。
资源可以包含用于运行实例的任何类型的资源,所述资源包括硬件(比如,服务器、客户端、主计算机、网络、网络储存器、数据源、存储器、中央处理单元时间、科学仪器和其他计算装置)以及软件、软件许可证、可用网络服务和其他非硬件资源或者它们的组合。
联网计算环境可以包括,但不限于,计算网格系统、分布式计算环境、云计算环境等。这样的联网计算环境包括被配置来形成由可以位于地理上分散的地点的多个资源构成的虚拟组织的硬件基础设施和软件基础设施。
本文所使用的各种术语具有本技术领域内的特殊意义。特定术语是否应被解读为这样的“技术术语”取决于使用该术语的上下文。“连接到”、“与…通信”或者其他类似的术语通常应被广义地解读为包括通信和连接在引用元件之间是直接的或者在引用元件之间是通过一个或者更多个中间介质(包括通过互联网或者一些其他通信网络)的这两种情形。“网络”、“系统”、“环境”和其他类似的术语通常是指实施本公开的一个或者更多个方面的联网计算系统。这些术语和其他术语要按照本公开中使用它们的上下文进行解读,并且如本领域的普通技术人员会理解的那样在所公开的上下文中理解这些术语。以上定义不排除可能基于所公开的上下文被授予这些术语的其他意义。
比较、测量和时序的单词,比如,“在那时”、“等同”、“在…期间”、“完成”等,应被理解为意指“基本上在那时”、“基本上等同”、“基本上在…期间”、“基本上完成”等,其中“基本上”意指这样的比较、测量和时序对于实现隐含地或者明确地陈述的期望结果是可实行的。
Claims (20)
1.一种用于将在具有可配置组件的计算环境的配给期间可能发生的配给错误归档的方法,所述方法包括:
提取配给请求,其中所述提取所述配给请求的步骤包括将配给请求组件记录在配给档案中并且过滤所述配给请求组件,所述配给请求组件包括被请求来添加到所述计算环境、从所述计算环境移除和/或在所述计算环境中更新的组件;
提取配给目标,其中所述提取所述配给目标的步骤包括将目标环境记录在所述配给档案中并且过滤所述目标环境的现存组件;
将所述配给请求应用于所述配给目标,结果得到更新的配给目标,所述将所述配给请求应用于所述配给目标的步骤包括对所述目标环境进行配给;
确定配给错误是否发生;以及
如果有配给错误的话,则将所述配给错误添加到所述配给档案。
2.如权利要求1所述的方法,还包括在提取所述配给请求之前创建所述计算环境的配给档案。
3.如权利要求1所述的方法,其中所述过滤所述配给请求组件的步骤包括从记录在所述配给档案中的配给请求组件移除专有信息。
4.如权利要求1所述的方法,其中所述过滤所述目标环境的步骤还包括从记录在所述配给档案中的目标环境移除专有信息。
5.如权利要求1所述的方法,其中所述配给错误与所述配给请求和所述配给请求组件相关。
6.如权利要求1所述的方法,还包括关闭所述配给档案。
7.如权利要求6所述的方法,还包括以下步骤之一:
在第一计算环境上重新创建所述配给档案以用于分析所述配给档案和所述配给错误;以及
将所述配给档案发送到第二计算环境以用于分析所述配给档案和所述配给错误,而不发送任何专有信息。
8.如权利要求1所述的方法,其中所述确定的步骤还包括确定多个配给错误是否发生,并且其中所述添加的步骤包括如果有多个配给错误的话,则将所述多个配给错误添加到所述配给档案。
9.如权利要求1所述的方法,其中所述提取所述配给请求的步骤包括记录多个配给请求组件。
10.如权利要求1所述的方法,其中所述提取所述配给请求的步骤和所述提取所述配给目标的步骤被应用于OSGi运行时环境。
11.一种用于在第一计算环境重新创建在具有可配置组件的第二计算环境上发生的配给错误以用于在第一计算机器进行分析的方法,所述方法包括:
从所述第二计算机器接收配给档案;
打开所述配给档案;
重新创建配给请求,其中所述重新创建所述配给请求的步骤包括扩展提取的配给请求组件,结果得到扩展的配给请求组件;
重新创建配给目标,其中所述重新创建所述配给目标的步骤包括扩展提取的目标环境;以及
将所述配给请求应用于所述配给目标,结果得到重新创建的配给错误,所述将所述配给请求应用于所述配给目标的步骤包括对所述目标环境进行配给。
12.如权利要求11所述的方法,其中所述扩展的配给请求组件在所述第二计算环境上基本上恢复与所述配给错误时在所述第一计算环境上所呈现的公共元数据相同的公共元数据。
13.如权利要求11所述的方法,其中所述扩展的配给请求组件产生可以充当先前从所述配给档案移除的专有信息的外壳代码,所述配给档案从所述第二计算环境接收。
14.如权利要求11所述的方法,其中所述扩展的配给请求组件将来自所述第二计算环境的配给错误重新创建到所述第一计算环境上。
15.如权利要求14所述的方法,其中所述扩展的配给请求组件将所述配给错误重新创建到所述第一计算环境上,而不包括专有信息。
16.如权利要求15所述的方法,其中所述扩展的配给请求组件重新创建多于一个的配给错误。
17.如权利要求11所述的方法,还包括分析所述重新创建的配给错误。
18.如权利要求17所述的方法,其中所述分析的步骤出于调试的目的而被进行。
19.如权利要求11所述的方法,其中所述重新创建所述配给错误的步骤被应用于OSGi运行时环境。
20.如权利要求11所述的方法,还包括在所述第二计算环境上关闭所述配给档案。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34872310P | 2010-05-26 | 2010-05-26 | |
US61/348,723 | 2010-05-26 | ||
PCT/US2011/038120 WO2011150195A2 (en) | 2010-05-26 | 2011-05-26 | Distillation and reconstruction of provisioning components |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103026337A CN103026337A (zh) | 2013-04-03 |
CN103026337B true CN103026337B (zh) | 2016-02-10 |
Family
ID=45004814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180036646.XA Active CN103026337B (zh) | 2010-05-26 | 2011-05-26 | 配给组件的提取和重构 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8560895B2 (zh) |
EP (1) | EP2577458B1 (zh) |
CN (1) | CN103026337B (zh) |
WO (1) | WO2011150195A2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722439B (zh) * | 2012-06-01 | 2015-07-08 | 北京奇虎科技有限公司 | 一种提高flash组件运行稳定性的方法、装置及系统 |
JP6102136B2 (ja) * | 2012-09-20 | 2017-03-29 | 日本電気株式会社 | モジュール管理装置、モジュール管理システム及びモジュール管理方法 |
US10127084B2 (en) * | 2012-11-15 | 2018-11-13 | Red Hat Israel, Ltd. | Pre-provisioning resources for composite applications |
US9338254B2 (en) * | 2013-01-09 | 2016-05-10 | Microsoft Corporation | Service migration across cluster boundaries |
US20160189182A1 (en) | 2014-12-31 | 2016-06-30 | The Nielsen Company (Us), Llc | Methods and apparatus to correct age misattribution in media impressions |
CN111538542B (zh) * | 2020-03-24 | 2023-10-24 | 中国平安人寿保险股份有限公司 | 一种系统配置方法及相关装置 |
WO2022046177A1 (en) * | 2020-08-28 | 2022-03-03 | Arris Enterprises Llc | Packaging system for deploying computer software |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363546B2 (en) * | 2002-07-31 | 2008-04-22 | Sun Microsystems, Inc. | Latent fault detector |
US7240325B2 (en) * | 2002-09-11 | 2007-07-03 | International Business Machines Corporation | Methods and apparatus for topology discovery and representation of distributed applications and services |
US20050044531A1 (en) | 2003-06-09 | 2005-02-24 | Erc-Ip, Llc | Methods and systems for deploying computer source code |
US20050210462A1 (en) | 2004-03-11 | 2005-09-22 | International Business Machines Corporation | Systems and method for the incremental deployment of Enterprise Java Beans |
US7299385B2 (en) * | 2004-07-28 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | Managing a fault tolerant system |
US7380171B2 (en) * | 2004-12-06 | 2008-05-27 | Microsoft Corporation | Controlling software failure data reporting and responses |
US8271973B2 (en) | 2005-09-09 | 2012-09-18 | Emulex Design & Manufacturing Corporation | Automated notification of software installation failures |
US20070073699A1 (en) | 2005-09-26 | 2007-03-29 | Aegis Business Group, Inc. | Identity management system for managing access to resources |
US20080005281A1 (en) * | 2006-06-29 | 2008-01-03 | Microsoft Corporation | Error capture and reporting in a distributed computing environment |
US8094797B2 (en) * | 2006-08-31 | 2012-01-10 | Accenture Global Services Limited | Service provisioning and activation engines for system |
US8296758B2 (en) | 2006-09-20 | 2012-10-23 | Sap Ag | Deployment and versioning of applications |
US8081635B2 (en) | 2008-10-08 | 2011-12-20 | Motorola Solutions, Inc. | Reconstruction of errored media streams in a communication system |
-
2011
- 2011-05-26 US US13/116,528 patent/US8560895B2/en active Active
- 2011-05-26 WO PCT/US2011/038120 patent/WO2011150195A2/en active Application Filing
- 2011-05-26 CN CN201180036646.XA patent/CN103026337B/zh active Active
- 2011-05-26 EP EP11787404.0A patent/EP2577458B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8560895B2 (en) | 2013-10-15 |
EP2577458A2 (en) | 2013-04-10 |
WO2011150195A3 (en) | 2012-04-05 |
US20110296254A1 (en) | 2011-12-01 |
CN103026337A (zh) | 2013-04-03 |
EP2577458B1 (en) | 2020-03-04 |
WO2011150195A2 (en) | 2011-12-01 |
EP2577458A4 (en) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103026337B (zh) | 配给组件的提取和重构 | |
US20210311858A1 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
TWI548987B (zh) | 用於藉由提供預先建立環境之即時有效性來部署用於測試之環境的方法、系統、及電腦可讀取儲存裝置 | |
US20130232245A1 (en) | Automation for virtualized it environments | |
CN111147322B (zh) | 5g核心网微服务架构的测试系统及方法 | |
CN117714527A (zh) | 利用微服务的边缘设备和关联的网络 | |
JP2009519544A (ja) | 自動ソフトウェアテストフレームワーク | |
US20130246838A1 (en) | Discovering boot order sequence of servers belonging to an application | |
Manner et al. | Troubleshooting serverless functions: a combined monitoring and debugging approach | |
CN105512044A (zh) | 用于关键字驱动测试的对象库的更新方法及系统 | |
CN115039084A (zh) | 数据流图的部件的单元测试 | |
WO2019061364A1 (zh) | 故障分析方法及相关设备 | |
CN111782233B (zh) | 微服务多场景部署适配设计模型 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN102340429B (zh) | 一种互联网协议还原自动化检测方法 | |
CN113127009A (zh) | 大数据管理平台的自动化部署方法和装置 | |
WO2017084388A1 (zh) | 一种网络巡检方法及装置 | |
Chen et al. | MORE: A model-driven operation service for cloud-based IT systems | |
Bhandari et al. | Extended fault taxonomy of SOA-based systems | |
KR20110025171A (ko) | 소프트웨어 문제점을 식별하기 위한 방법, 시스템 및 컴퓨터 프로그램 | |
CN111309625A (zh) | 基于真实交易数据的回归测试方法及装置 | |
KR20030056301A (ko) | 시스템 장애 통합관리방법 | |
CN108762745B (zh) | 业务的脚本生成方法及装置 | |
JP6382610B2 (ja) | シミュレータシステム、ゲートウェイシステムテスト装置及びゲートウェイシステムテスト方法 | |
EP4204964A1 (en) | Candidate program release evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |