CN1976353B - 恢复和调试失败的网络可访问服务构建的方法和系统 - Google Patents

恢复和调试失败的网络可访问服务构建的方法和系统 Download PDF

Info

Publication number
CN1976353B
CN1976353B CN2006101470724A CN200610147072A CN1976353B CN 1976353 B CN1976353 B CN 1976353B CN 2006101470724 A CN2006101470724 A CN 2006101470724A CN 200610147072 A CN200610147072 A CN 200610147072A CN 1976353 B CN1976353 B CN 1976353B
Authority
CN
China
Prior art keywords
plan
failure
computer
rules
applying
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.)
Expired - Fee Related
Application number
CN2006101470724A
Other languages
English (en)
Other versions
CN1976353A (zh
Inventor
B·斯里瓦斯塔瓦
A·库马尔
K·达斯古普塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1976353A publication Critical patent/CN1976353A/zh
Application granted granted Critical
Publication of CN1976353B publication Critical patent/CN1976353B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种响应于判定计算机生成网络可访问服务的抽象工作流规划失败,尝试自动从所述失败恢复的方法。当尝试自动从此失败恢复不成功时,所述方法应用修复规划以协助调试所述失败。响应于判定计算机分配所述抽象工作流规划的实际规划失败,所述方法尝试自动从所述失败中恢复。当尝试自动从此失败中恢复不成功时,所述方法应用修复规则以协助调试所述失败。响应于判定计算机评估所述实际规划的运行时配置失败,所述方法尝试自动从所述失败中恢复。当尝试自动从此失败中恢复不成功时,所述方法应用修复规则以协助调试所述失败。

Description

恢复和调试失败的网络可访问服务构建的方法和系统
技术领域
本发明一般地涉及构建网络可访问服务,更具体地说,涉及恢复和调试网络可访问服务此类失败的构建。
背景技术
复合网络可访问服务,例如万维网(下文称为“Web”)服务,可以使用可重用软件组件来构建。此类组件可以由分布式应用来发现和调用以指派其子功能。Web服务的规范被发布到目录,并通过将所述服务部署到应用服务器来提供联机访问。应用从Web服务目录中搜索感兴趣的Web服务并使用发布的访问信息来调用适当的候选服务。
标题为“Constructing Network-Accessible Services”(构建网络可访问服务,2003年12月4日,序列号10/727,672[代理案号JP920030196US1],其在此引入作为参考)的先前申请的专利申请中说明了一种构建网络可访问服务的方法。此专利申请说明了作为两个阶段的过程来构建复合服务。在第一阶段,规划选择器生成抽象规划或工作流以便组装复合服务定义。可以根据公共能力将Web服务实例分组成Web服务类型并进行正式说明。所述规划选择器实现人工智能(AI)规划算法,并通过智能地搜索Web服务能力的可能组合来构建规划。第一阶段的输出是抽象工作流规划,它在结构上完整并标识了要调用的Web服务类型,但是未指定组件实例。在此过程的第二阶段,将所述规划实例化为可执行物理规划,然后评估其运行时配置。
这种网络可访问服务构建的两阶段过程的缺点是所述过程的任何失败都会导致不能构建所述网络可访问服务,且没有任何过程为何失败的反馈。即,不会为希望创建给定网络可访问服务的个人提供任何关于如何修复失败的信息,并且所述个人最多只能猜测过程为何失败。因此,出于这样和那样的原因,存在对本发明的需要。
发明内容
本发明涉及从失败的网络可访问服务构建中恢复。它提供了一组可以通过随时间进一步学习来归纳和扩充的基本恢复规则。如果规则的解决操作明确并且无需人工干预,则规则将自动执行。以下在详细说明中将引用此类可自动化的规则的实例,如规则P-4、P-7和P-9。不自动执行的规则需要人工交互(即,开发人员参与)来恢复,并可以协助调试。本文将前一种规则称为自动恢复规则,而后一种规则称为失败修补或修复规则。
本发明的方法响应于判定计算机生成网络可访问服务的抽象工作流规划失败,尝试在没有人工干预的情况下自动从所述失败中恢复。当尝试自动从此失败中恢复不成功时,所述方法在人工干预的情况下应用规划选择失败修复规则以协助调试所述失败。例如,在恢复规则不可用的情况下,可能会出现自动恢复失败。
此外,响应于判定计算机分配抽象工作流规划的实际规划失败,所述方法尝试在没有人工干预的情况下自动从所述失败中恢复。当尝试自动从此失败中恢复不成功时,所述方法在人工干预的情况下应用规划分配失败修复规则以协助调试所述失败。
最后,响应于判定计算机评估所述实际规划的运行时配置失败,所述方法尝试在没有人工干预的情况下自动从所述失败中恢复。当尝试自动从此失败中恢复不成功时,所述方法在人工干预的情况下应用运行时评估失败修复规则以协助调试所述失败。
注意,在实施例中,无需必须尝试自动恢复。例如,通过执行所述方法来尝试实现希望的网络可访问规划的开发人员或其他个人可能希望不尝试自动恢复。在此类实施例中,将在检测到生成抽象工作流规划,分配实际规划或评估所述实际规划的运行时配置失败时手动(即,借助人工干预)来应用所述失败修复规则。
本发明的系统包括网络可访问服务生成装置以及失败恢复和修复装置。前一种装置(复合)旨在生成网络可访问服务的抽象工作流规划,为所述抽象工作流规划分配实际规划,并评估所述实际规划的运行时配置,它们都无需人工干预。后一种装置(恢复和修复)旨在尝试从生成所述抽象工作流规划,分配所述实际规划以及评估所述实际规划的运行时配置的失败中恢复。开发人员指定的将自动采用的规则有助于在没有人工干预的情况下恢复。其余的规则将帮助开发人员手动调试失败。
本发明的制品包括计算机可读介质及所述介质中的装置。所述计算机可读介质可以是可记录的数据存储介质、调制的载波信号,或其他类型的计算机可读介质。所述装置用于没有人工干预的情况下尝试自动从生成网络可访问服务的抽象工作流规划的失败、从分配所述抽象工作流规划的实际规划的失败,以及从评估所述实际规划的运行时配置的失败中恢复。所述装置还用于在自动恢复失败时应用规则以借助人工干预协助调试。
因此,较之现有技术,本发明的实施例存在优势。当网络可访问服务构建失败时,本发明首先尝试自动从所述失败中恢复,以便可以继续构建所需的服务。本发明应用规则以提供有关为何不能创建网络可访问服务的信息。这些规则可以是预先指定的,和/或它们可以是计算机随时间学习的。通过阅读以下详细说明和参考附图,本发明的其他优点、方面和实施例将变得显而易见。
附图说明
在此引用的附图形成了说明书的一部分。附图中示出的功能只是说明本发明的某些实施例,而非本发明的所用实施例,除非另外明确指出,并且不必另行做出相反的暗示,这些附图是:
图1是根据本发明的实施例的用于构建网络可访问服务的系统的示意图;
图2是根据本发明的实施例的用于从构建网络可访问服务失败中恢复和用于提供调试信息以响应此类失败的过程的流程图;
图3是根据本发明的实施例的网络可访问服务的抽象工作流规划的代表和实例构建的示意图;
图4是根据本发明的实施例的示意性地表示图3的网络可访问服务的抽象工作流规划的实际规划的可能选择的示意图;
图5是根据本发明的实施例的代表性系统的示意图;
图6是根据本发明的实施例的代表性计算设备的示意图。
具体实施方式
在本发明的示例性实施例的以下详细说明中,参考了形成本说明一部分的附图,并且其中通过示例的方式示出了其中可以实现本发明的特定示例性实施例。这些实施例被充分详细地描述,以便使得本领域的技术人员能够实现本发明。可以使用其他实施例并且可以在不偏离本发明的精神或范围的情况下做出逻辑的、机械的更改和其他更改。因此,不应以限制的意义来理解以下的详细说明,并且本发明的范围仅由所附的权利要求来限定。
图1示出了根据本发明的实施例的用于构建网络可访问复合服务的系统100的示意表示。系统100是在先前引入作为参考的名为“ConstructingNetwork-Accessible Services”的专利申请中更具体地说明的系统。系统100包括规划选择器120、规划分配器140和运行时评估器160。规划选择器120与规划分配器140交互,后者则与运行时评估器160交互。这些组件中的每个组件都可以以硬件、软件或硬件和软件的组合来实现。
规划选择器120生成要实现的希望网络可访问服务的抽象工作流规划。该抽象工作流规划标识生成希望网络可访问服务所需使用的Web服务的类型及其顺序。规划分配器140则接收该抽象工作流规划并为其分配实际规划。具体地说,规划分配器140向抽象工作流规划分配Web服务的特定实例。运行时评估器160则接收该实际的或实例化的规划,并对其进行评估以判定该实际规划是否违背任何运行时限制,例如,响应时间、吞吐量、成本、可用性、利益冲突等,这些通常在服务水平协议(SLA)文档中定义。即,可以说运行时评估器160评估实际规划的运行时配置。
因此,规划选择器120可以使用现有的人工智能(AI)规划技术来搜索满足组合的Web服务的逻辑目标的规划。这种规划技术特别将目标和状态转变说明(例如,服务类型说明)作为输入并合成规划以实现这些目标。输出是标识要使用的服务类型及顺序的抽象工作流规划。但是,该抽象工作流规划并未做出任何关于这些服务的确切实例的承诺。
因此,规划分配器140从抽象工作流规划实例化实际规划,该规划确实承诺这些服务的确切实例。在一个实施例中,规划分配器140可以提供许多不同的可选实际规划,所有这些规则都被提供给运行时评估器160。运行时评估器160然后评估这些实际规划,这被称为运行时评估所述实际规划的运行时配置,以判定它们是否满足运行时限制。运行时评估器160在此方面可以向规划分配器140提供反馈,后者则可以向规划选择器120提供抽象工作流规划的反馈,如先前引入作为参考的名为“ConstructingNetwork-Accessible Services”的专利申请中更具体地说明的。
规划选择器120生成抽象工作流规划被称为没有人工干预的计算机生成,因为一旦开发人员或其他个人定义了要实现的初始Web服务,规划选择器120便不需要人工干预来继续抽象工作流规划的生成,以便它是完全由计算机生成的。同样,规划分配器140分配实际规划被称为没有人工干预的计算机分配,因为开发人员或其他个人不参与此分配,它完全由计算机来分配。运行时评估器160评估实际规划的运行时配置也是没有人工干预的计算机评估,因为开发人员或其他个人没有参与此评估,并且它完全由计算机来评估。
图2示出了根据本发明的实施例,可以遵循以鉴于在由图1的系统100执行的网络可访问服务生成过程的任何部分期间的失败来提供恢复和/或调试信息的过程200。首先通过概括的方式说明过程200的各个部分来在此提供对过程200的说明。此后,提供了关于如何可以实际地实现过程200的实现细节。
规划选择器120尝试提供网络可访问服务的抽象工作流规划。如果规划选择器120不能提供抽象工作流规划(202)—即,如果抽象工作流规划的计算机生成不成功—则应用规划选择自动恢复规则(204)以尝试自动从此失败中恢复。在一个实施例中,此类自动恢复可以包括选择要实现的网络可访问服务的备选抽象工作流规划,或提供其他可以帮助抽象工作流规划生成的信息。因此,在一个实施例中,过程200通过判定规划选择器120是否成功生成抽象工作流规划来隐含地判定抽象工作流规划的计算机生成是否成功。
如果自动恢复成功(206),则向规划选择器120提供自动恢复的结果(例如,备选抽象工作流规划),以便规划选择器120可以再次尝试使用由应用规划选择自动恢复规则提供的新信息来生成抽象工作流规划。因此,所述恢复是自动的并且在没有人工干预的情况下执行。但是,如果自动恢复不成功(208),则过程200在人工干预的情况下应用规划选择失败修复规则(208)。应用这些规则提供了调试信息228,它可以协助开发人员或其他个人评估为何出现失败。
当规划选择器120最终能够提供抽象工作流规划时(202),规划分配器140便会尝试分配抽象工作流规划的实际规划。如果规划分配器140不能分配此类实际规划(222)—即,如果实际规划的计算机分配不成功—则应用规划分配自动恢复规则(210)以尝试自动从该失败中恢复。在一个实施例中,这种自动恢复可以包括选择抽象工作流规划的备选实际规划,或提供其他可以帮助实际规划分配的信息。因此,在一个实施例中,过程200通过判定规划分配器140是否成功分配该实际规划来隐含地判定规划的计算机分配是否成功。
如果自动恢复成功(212),则向规划分配器140提供自动恢复的结果(例如,备选实际规划),以便规划分配器140可以使用由应用规划分配自动恢复规则所提供的新信息来再次尝试分配抽象工作流规划的实际规划。因此,所述恢复是自动的并且在没有人工干预的情况下执行。但是,如果自动恢复不成功(212),则过程200在人工干预的情况下应用规划分配失败修复规则(214)。应用这些规则提供了调试信息228,它可以帮助开发人员或其他个人评估为何出现失败。
当规划分配器140最终可以分配抽象工作流规划的实际规划时(222),运行时评估器160便会尝试评估该实际规划,这在此称为尝试评估实际规划的运行时配置。如果运行时评估器160不能成功评估该规划(224)—即,如果该规划的运行时配置的计算机评估不可接受—则应用运行时评估器自动恢复规则(216)以尝试自动从该失败中恢复。在一个实施例中,这种自动恢复可以包括提供实际规划的不同或备选运行时配置,或提供其他可以协助可接受的运行时评估的信息。因此,在一个实施例中,过程200通过判定由运行时评估器160执行的运行时评估是否可以接受来隐含地判定计算机评估实际规划的运行时配置是否成功。
如果自动恢复成功(218),则向运行时评估器160提供自动恢复的结果(例如,不同的运行时配置),以便运行时评估器160可以使用由应用运行时评估器自动恢复规则所提供的新信息来再次尝试评估实际规划的运行时配置。因此,所述恢复是自动的并且在没有人工干预的情况下执行。但是,如果自动恢复不成功(218),则过程200在人工干预的情况下应用运行时评估失败修复规则(220)。应用这些规则提供了调试信息228,它可以帮助开发人员或其他个人评估为何出现失败。注意,当运行时评估最终可接受(即,成功)时,过程200结束(226)。
可以通过解释失败原因及由此应用预定规则或计算机随时间学习的规则来在图2的过程200的204、210和216中实现自动恢复。预定的规则可以在设置时编码。也可以通过现有的规则集内的已知失败情况的各种解决方案来获知自动恢复规则。此外,某些向用户建议的修复可以在其提供自动恢复并且系统获知用户可以接受此类恢复时迁移到自动恢复集。
在一个实施例中,如参考文献“P-Queries:Enabling Querying forSemantic Association on the Semantic Web”(Kemafor Anyanwu和AmitSheth,先前发表于在匈牙利布达佩斯举行的关于万维网的第十二界国际会议的论文集,690-699(2003),其在此引入作为参考)中说明的,可以定义此类自动恢复规则。例如,关于由规划选择器120自动恢复失败以生成抽象工作流规划,由于各种原因(如在域模型中丢失项、丢失关系、丢失功能),会出现这种失败。如果失败被报告为丢失关系,则其可能是规划选择器120从域模型获得所需关系失败而造成的漏报。通过使用Anyanwu参考文献中描述的方法来尝试发现之前未知的可能存在于域模型中的关系,从此类漏报自动恢复是可能的。在Anyanwu的参考文献中,根据关系图的结构说明了概念与其他概念的一系列关系。如果两个概念之间没有直接的联系/关系,则根据连接到这两个概念的其他概念的连通性来定义所述概念之间的弱关系。因此,可以通过新发现的关系来再次调用规划选择器120。
注意,图2的过程200的204、210和216的自动恢复不必在本发明的所有实施例中执行。例如,用户(如尝试实现希望的网络可访问服务的开发人员或其他个人)可能不希望自动恢复。在这种情况下,如本领域的技术人员可以理解的,在人工干预的情况下检测到失败时,将在208、214和220中立即应用失败修复规则,而不是仅在自动恢复自身已失败后才应用所述规则。现在提供了此类失败修复规则的实例,以及有关如何使用学习来使系统随时间进化的说明。
可以将各种失败修复规则实现为用于组合过程的每个阶段的一组决策表,并因此可以实现为规则系统。可以将每个规则解释为以下规则模板的实例:如果组合是规则的<Composition Stage><Information Needed>阶段且<Failure Condition>为真,则返回feedback=<Feedback>和remedy=<Resolution>。因此,该规则模板判定给定的规则是否可以应用,如果是,则返回某些信息,具体地说,反馈和修复信息。对于给定的失败,可以执行以下伪代码过程或算法来判定所有与该失败有关的信息,所述信息作为图2的过程200中的调试信息228被提供给用户:
结果={}
对于表中的每个规则
      如果规则匹配
            将该规则的反馈和修复信息添加到结果
      结束如果
结束对于
返回结果
根据所述结果,将首先应用自动规则,然后将使用需要人工干预的手动规则来指导开发人员。
以下规则表可以在实现网络可访问服务的逻辑组合阶段期间应用。该逻辑组合阶段由规划选择器120执行,因此该表中的规则是在图2的过程200的208中应用的规划选择失败修复规则或在204中应用的规划选择自动恢复规则,其中每个行代表一个规则。如果在人工干预下应用了给定规则,则它是在208中应用的修复规则,而如果在没有人工干预的情况下应用了给定规则,则它是在204中应用的自动恢复规则。
Figure G061E7072420061121D000101
因此,当生成抽象工作流规划中存在失败时,将为这些行中的每个行应用以上提供的规则模板。例如,如果在具有本体的概念查找阶段内出现失败,其中所需的信息是各种项和这些项之间的关系,并且值为真的失败条件是未找到所需的关系,则提供的反馈是“丢失关系”,提供的修复为“添加关系”。上表还为每个规则—即,每个唯一的行—分配标识符或ID。
接下来,下面的规则表可以在实现网络可访问服务的实际组合阶段期间应用。实际组合阶段由规划分配器140执行,因此,该表中的规则是在图2的过程200的214中应用的规划分配失败修复规则或在210中应用的规划分配自动恢复规则,其中每个行代表一个规则。如果在人工干预下应用了给定规则,则它是在214中应用的修复规则,而如果在没有人工干预的情况下应用了给定规则,则它是在210中应用的自动恢复规则。
                                      实际组合阶段                                       所需信息                                       失败条件                                       反馈                                       解决方案                                       规则ID
Figure G061E7072420061121D000111
Figure G061E7072420061121D002111
因此,当分配实际规划失败时,为这些行中的每一行应用以上提供的规则模板。例如,如果在实例选择阶段出现失败,其中所需的信息为数据类型映射,并且值为真的失败条件是不存在已知的映射,则两个不同的规则相关。第一个规则提供数据类型能力与所提供的要求之间存在不匹配的反馈,并提供应定义数据类型映射和应部署具有所需的数据类型的其他服务实例的修复。第二个规则提供选择限制可能失败的反馈,并提供应放松限制的修复。上表为每个规则—即,每个唯一的行—分配标识符或ID。
最后,下面的规则表可以在实现网络可访问服务的运行时评估阶段应用。运行时评估阶段由运行时评估器160执行,因此,该表中的规则是在图2的过程200的220中应用的运行时评估失败修复规则或在216中应用的运行时评估器自动恢复规则,其中,每一行代表一个规则。如果在人工干预下应用了给定规则,则它是在220中应用的修复规则,而如果在没有人工干预的情况下应用了给定规则,则它是在216中应用的自动恢复规则。
Figure G061E7072420061121D000131
因此,在运行时评估实际规划的运行时配置失败时,为这些行中的每一行应用上面提供的规则模板。例如,如果在执行阶段出现失败,其中所需的信息是端口和绑定信息,并且值为真的失败条件是调用实例失败,则所提供的反馈是出现运行时中断,所提供的修复是应预保存或动态重新安排运行时。上表为每个规则—即,每个唯一的行—分配标识符或ID。
其他规则可以由计算机随时间而学习—即,由执行过程200的计算机本身学习。因此,可以对上面三个表中提供的初始规则集使用学习方法。在失败反馈和解决方案的现有知识库的范围内,这些学习方法对根据用户反馈正确性来按优先顺序排列规则和生成新规则很有用。例如,考虑下面的表段。
Figure G061E7072420061121D000132
                                      未找到关系                                       丢失关系                                       添加关系                                      L-3
当由于未找到项而出现失败时,可以根据两个失败条件(标识为L-1的规则和标识为L-2的规则)中的一个来建议反馈和解决方案。根据所提供的响应(即,所提供的反馈和解决方案)最终是否正确(如用户所判定的),可以对这两个规则分级。
因此,可以通过许多不同的方式来学习新的规则。例如,对于相同的所需信息,可以从中随机选择现有的规则的反馈,并根据基于用户反馈按照新的条件来确定反馈的适当性或正确性。例如,在具有本体的概念查找阶段的组合期间所需的信息包括在短语“项和关系”中。有时,可以建议标识为L-1的规则的反馈和解决方案,即使失败条件是未找到关系。根据用户反馈,即使当关系丢失时,系统也可以获知未正确地为项建模。因此,所述过程便是通过结合机器学习方法(例如关联规则和用户反馈)来构建现有失败条件的新反馈。可以实现规则生成器,它可以诱导地建议新规则,并且用户可以判断其是否相关,以便如果给定的规则有帮助,则将其包括在最终的规则集中。
第二,因为在上面三个表中提供的规则遵循组合的不同阶段,所以它们之间具有隐含的顺序,这可以用于学习新的修复规则。例如,对于给定的失败条件,可以构建从对之前的组合阶段出现的失败条件的反馈得出的修复规则。因此,可以实现以这种方式建议新规则的规则生成器。
第三,可以使用有关组合的抽象工作流规划的运行时失败和导出反馈的性质的分析技术,以便生成更多规则,如果给定的抽象工作流规划在同一点重复失败,则它可以是抽象工作流规划的结构内的关键活动,可能需要替换其Web服务类型,或可以推断此类工作流结构在给定的执行环境中不合适。因此,可以实现以这种方式建议新规则的规则生成器。
现在提供了构建网络可访问服务以及如何使用本发明的实施例来提供调试信息以响应构建此服务失败的实例。图3示出了根据本发明的实施例的构建网络可访问服务300的代表性实例。具体地说,构建服务300的逻辑组合阶段在图3中示出,因此在图3中示出的是网络可访问服务300的抽象工作流规划。图3取自先前引入作为参考的名为“ConstructingNetwork-Accessible Services”的专利申请,并且该专利申请中提供了有关此实例的其他信息。
在此,充分地说明网络可访问服务300使用三种类型的Web服务:可以返回给定人名的地址的地址簿服务310;可以返回两个输入地址间的驾驶方向的定向服务320;以及可以返回两个给定姓名的个人的位置间的驾驶方向的GPS定向服务330。因此,此服务300的项的本体域可以是:{地址,姓名,姓名1,姓名2,地址1,地址2,方向}。关系可以表达为:{{姓名←→姓名1,姓名2},{地址←→地址1,地址2}}。
接下来,下表将这些服务排列成表格形式,并具有可用的服务实例,因此可以用于表示在构建网络可访问服务300的实际组合阶段中构建的抽象工作流规划的实际规划。
                                      服务类型                                       服务实例
                                      地址簿服务                                       AD1、AD2、AD3、AD4
                                      定向服务                                       DD1、DD2
                                      GPS定向服务                                       GPS1、GPS2
现在,图4示意地表示根据本发明的实施例的网络可访问服务300的规划选择器120的可能选择,如规划P1 400和规划P2 400′。如同图3,图4取自先前引入作为参考的名为“Constructing Network-AccessibleServices”的专利申请,并且该专利申请中提供了有关此实例的其他信息。根据图4,对于规划P1 400,规划分配器140的选择为L={GPS1,GPS2},而对于规划P2 400′,规划选择器140的选择为A1,A2={AD1,AD2,AD3,AD4}和D={DD1,DD2},其中A1和A2为代表地址的变量,而D为代表驾驶方向的变量。成本的运行时变量可以具有可能的值C={25,50,100,200}。即,成本(以美元或其他单位)为25、50、100和200中的一个。每个服务的成本估计C在下表中表示。
                                      AD1↔25
                                      AD2↔25
                                      AD3↔25
                                      AD4↔50
                                      GPS1↔200
                                      GPS2↔200
                                      DD1↔25
                                      DD2↔50
限制可以是成本C应小于100个单位。映射是在实例化的规划中可以对成本C做出贡献的任何服务。因此,运行时评估器160评估每个服务实例的成本并更新服务实例及所需的关联成本。
现在,所述网络可访问服务300的组合目标可以是生成其姓名作为输入提供的个人的相应地址间导航的驾驶方向,并且组合服务的成本应小于100个单位。此实例是在先前引入作为参考的名为“ConstructingNetwork-Accessible Services”的专利申请中所描述的同一实例。在第一次重复中,规划选择器120可以输出规划P1。规划分配器140则输出L=GPS1,其中存在映射L→C,而变量L对C做出贡献。运行时评估器160输出C大于100的分析,这是不可接受的,因为C应小于100,因此运行时评估器160提供C应小于100的反馈。规划分配器140因此可以提供L没有可行的更低的分配的反馈,以便应将L设置为等于零。
在第二次重复中,规划选择器120于是可以输出P2。规划分配器140于是可以输出A1=AD1、A2=AD4和D=DD1,其中存在映射A1、A2、D→C,并且变量A1、A2和D对C做出贡献。运行时评估器160输出C等于100的分析,这是不可接受的,因为C应小于100,因此运行时评估器提供C应小于100的反馈。规划分配器140因此可以提供A1、A2和D都没有更低的分配的反馈,因此A1或D不可能出现改变,尽管A2具有可行的备选对象。
在第三次重复中,规划选择器120因此可以再次输出规划P2。规划分配140则可以输出A1=AD1、A2=AD2和D=DD1,其中存在映射A1、A2、D→C,并且变量A1、A2和D对C做出贡献。运行时评估器输出C等于75的分析,这是可以接受的。因此,在第三次重复中,生成了网络可访问服务300的成功实施方式。
根据有关图3和4说明的实例网络可访问服务300,本发明的实施例可以提供如下的失败反馈和修复(即,调试信息)。例如,组合规范可以是获取为输入“姓名”的人提供“城市”的服务。但是,项城市在项的本体域中不存在,因此组合应在逻辑组合阶段失败。输出因此将是该组合已失败,因此通过规则L-1,反馈为“丢失项”,这可以通过将“城市”添加到项的本体域来解决。
现在,假定项“城市”已被添加到本体域。但是,没有到“地址”的关系。因此,组合应该在逻辑组合阶段再次失败。输出因此将是该组合已失败,因此通过规则L-3,反馈为“丢失关系”,这可以通过将“城市”和“地址”之间的关系“部分”添加到项的本体域来解决。此外,通过规则L-4,输出也可以说明未找到“城市”的服务,因此需要创建和填充新的服务。系统可以向用户显示规则L-3和L-4的应用。
但是,用户可能已接受关于规则L-3的反馈,而不是关于规则L-4的反馈。所述系统因此可以记录对于L-3存在一个肯定的实例,而对于L-4存在一个否定的实例。对于未来的类似失败,所述系统可以使用此信息对规则分级,以判定要应用哪个规则并将其显示给用户。
接下来,组合规范可以是获取给出输入“姓名”的个人的相应地址间导航的“驾驶方向”的服务。假定提供了如上所述的规划P2。该规划包括两个地址簿服务和一个驾驶方向服务,因此必须找到它们的实例。假定规划分配器140选择用于两个地址簿服务的AD1和AD2。因此,组合已进行到实际组合阶段的部署阶段。
现在,假定存在失败条件“未找到实例”。但是,会在当前失败条件下备选地生成具有规则P-3的反馈的新规则,而非规则P-7。如果用户接受提供的反馈,便可以向系统添加新的已验证的规则。
图5更为详细地示出了根据本发明的实施例的代表系统100,其还可以用于实现已说明的网络可访问服务构建的恢复和修复方面。因此,系统100包括网络可访问服务生成装置602和失败恢复和修复装置604。每个装置602和604都可以以硬件、软件或硬件和软件的组合来实现。
生成装置602如上所述在没有人工干预的情况下生成网络可访问服务的抽象工作流规划,为所述抽象工作流规划分配实际规划,并评估所述实际规划的运行时配置。装置602因此包括规划选择器120、规划分配器140和运行时评估器160。相比之下,恢复和修复装置604可以在没有人工干预的情况下尝试从构建过程内的失败自动恢复,和/或如上所述的在人工干预的情况下将规则应用到此类失败以提供调试信息。
最后,图6是根据本发明的实施例的如上所述的适于构建网络可访问服务的该类计算设备500的示意表示。计算机软件在计算设备500上安装的合适操作系统下执行以协助执行所述技术。可以使用任何适合的计算机编程语言来编程此计算机软件。
计算设备500的组件包括计算机520、键盘510和鼠标515以及视频显示器590。计算机520包括处理器540、存储器550、输入/输出(I/O)接口560、565、视频接口545和存储设备555。处理器540是执行操作系统及在该操作系统下执行的计算机软件的中央处理单元(CPU)。存储器550包括随机存取存储器(RAM)和只读存储器(ROM),并在处理器540的控制下使用。
视频接口545连接到视频显示器590并提供用于在视频显示器590上显示的视频信号。从键盘510和鼠标515提供操作计算机520的用户输入。存储设备555可以包括盘驱动器或任何其他适合的存储介质。计算机520的每个组件都连接到包括数据、地址和控制总线的内部总线530,以允许计算机520的组件通过总线530相互通信。计算设备500可以通过使用到网络(表示为互联网580)的通信通道585的输入/输出(I/O)接口565来连接到一个或多个其他类似的计算机。
计算机软件可以记录到便携式存储介质上,在这种情况下,计算机软件程序可由计算设备520从存储设备555来访问。可选地,计算机软件可以由计算机520直接从互联网580来访问。在任一情况下,用户都可以使用键盘510和鼠标515与计算设备520交互以操作在计算机520上执行的编程的计算机软件。可以同等地使用其他配置或类型的计算机系统来执行组合网络服务的计算方面。上述计算设备500仅被描述为适合于实现所描述技术的特定类型系统的一个实例。
注意,尽管在此示出和描述了特定的实施例,但是本领域的技术人员将理解,任何适于实现相同目的的安排都可以替代示出的特定实施例。因此,本申请旨在覆盖本发明的实施例的任何修改或变体。因此明显地,本发明旨在仅由权利要求及其等同物来限制。

Claims (17)

1.一种恢复和调试失败的网络可访问服务构建的方法,所述方法包括:
响应于判定计算机生成网络可访问服务的抽象工作流规划失败,尝试在没有人工干预的情况下自动从所述失败恢复;
当尝试自动从所述计算机生成所述抽象工作流规划的失败中恢复不成功时,在人工干预的情况下应用多个规划选择失败修复规则,以协助调试所述计算机生成所述抽象工作流规划失败;
响应于判定计算机分配所述抽象工作流规划的实际规划失败,尝试在没有人工干预的情况下自动从所述失败中恢复;
当尝试自动从所述计算机分配所述抽象工作流规划的所述实际规划的失败中恢复不成功时,在人工干预的情况下应用多个规划分配失败修复规则,以协助调试所述计算机分配所述实际规划失败;
响应于判定计算机评估所述实际规划的运行时配置失败,尝试在没有人工干预的情况下自动从所述失败中恢复;以及
当尝试自动从所述计算机评估所述实际规划的所述运行时配置的失败中恢复不成功时,在人工干预的情况下应用多个运行时评估失败修复规则,以协助调试所述计算机评估所述运行时配置失败。
2.根据权利要求1的方法,其中尝试自动从所述计算机生成所述网络可访问服务的所述抽象工作流规划的失败中恢复包括应用多个规则。
3.根据权利要求2的方法,其中所述多个规则包括预定的规则。
4.根据权利要求2的方法,其中所述多个规则包括计算机随时间而学习的规则。
5.根据权利要求1的方法,其中在人工干预的情况下应用所述多个规划选择失败修复规则以协助调试所述计算机生成所述抽象工作流规划的失败包括:应用与所述计算机生成所述抽象工作流规划的具有本体的概念查找阶段有关的规则。
6.根据权利要求1的方法,其中在人工干预的情况下应用所述多个规划选择失败修复规则以协助调试所述计算机生成所述抽象工作流规划的失败包括:应用与所述计算机生成所述抽象工作流规划的过滤和选择服务以便组合的阶段有关的规则。
7.根据权利要求1的方法,其中在人工干预的情况下应用所述多个规划选择失败修复规则以协助调试所述计算机生成所述抽象工作流规划的失败包括:应用与所述计算机生成所述抽象工作流规划的组合所述抽象工作流规划阶段有关的规则。
8.根据权利要求1的方法,其中尝试自动从所述计算机分配所述抽象工作流规划的所述实际规划的失败中恢复包括应用多个规则。
9.根据权利要求8的方法,其中所述多个规则包括预定的规则。
10.根据权利要求8的方法,其中所述多个规则包括计算机随时间而学习的规则。
11.根据权利要求1的方法,其中在人工干预的情况下应用所述多个规划分配失败修复规则以协助调试所述计算机分配所述实际规划的失败包括:应用与所述计算机分配所述实际规划的实例选择阶段有关的规则。
12.根据权利要求1的方法,其中在人工干预的情况下应用所述多个规划分配失败修复规则以协助调试所述计算机分配所述实际规划的失败包括:应用与所述计算机分配所述实际规划的部署阶段有关的规则。
13.根据权利要求1的方法,其中尝试自动从所述计算机评估所述实际规划的所述运行时配置的失败中恢复包括应用多个规则。
14.根据权利要求13的方法,其中所述多个规则包括预定的规则。
15.根据权利要求13的方法,其中所述多个规则包括计算机随时间而学习的规则。
16.根据权利要求1的方法,其中在人工干预的情况下应用所述多个运行时评估失败修复规则以协助调试所述计算机评估所述运行时配置的失败包括:应用与所述计算机评估所述运行时配置的评估阶段有关的规则。
17.一种恢复和调试失败的网络可访问服务构建的系统,所述系统包括:
网络可访问服务生成装置,用于在没有人工干预的情况下生成网络可访问服务的抽象工作流规划、分配所述抽象工作流规划的实际规划,以及评估所述实际规划的运行时配置;以及
失败恢复和修复装置,用于:
响应于判定计算机生成网络可访问服务的抽象工作流规划失败,尝试在没有人工干预的情况下自动从所述失败恢复;
当尝试自动从所述计算机生成所述抽象工作流规划的失败中恢复不成功时,在人工干预的情况下应用多个规划选择失败修复规则,以协助调试所述计算机生成所述抽象工作流规划失败;
响应于判定计算机分配所述抽象工作流规划的实际规划失败,尝试在没有人工干预的情况下自动从所述失败中恢复;
当尝试自动从所述计算机分配所述抽象工作流规划的所述实际规划的失败中恢复不成功时,在人工干预的情况下应用多个规划分配失败修复规则,以协助调试所述计算机分配所述实际规划失败;
响应于判定计算机评估所述实际规划的运行时配置失败,尝试在没有人工干预的情况下自动从所述失败中恢复;以及
当尝试自动从所述计算机评估所述实际规划的所述运行时配置的失败中恢复不成功时,在人工干预的情况下应用多个运行时评估失败修复规则,以协助调试所述计算机评估所述运行时配置失败。
CN2006101470724A 2005-11-29 2006-11-14 恢复和调试失败的网络可访问服务构建的方法和系统 Expired - Fee Related CN1976353B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/289,152 US7509519B2 (en) 2005-11-29 2005-11-29 Recovery and debugging of failed network-accessible service construction
US11/289,152 2005-11-29

Publications (2)

Publication Number Publication Date
CN1976353A CN1976353A (zh) 2007-06-06
CN1976353B true CN1976353B (zh) 2010-12-08

Family

ID=38126139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101470724A Expired - Fee Related CN1976353B (zh) 2005-11-29 2006-11-14 恢复和调试失败的网络可访问服务构建的方法和系统

Country Status (2)

Country Link
US (1) US7509519B2 (zh)
CN (1) CN1976353B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055935B2 (en) * 2006-09-14 2011-11-08 International Business Machines Corporation Dynamic adaptation in web service composition and execution
US7757126B2 (en) * 2007-04-20 2010-07-13 Sap Ag System and method for supporting software
US8265980B2 (en) * 2009-04-21 2012-09-11 International Business Machines Corporation Workflow model for coordinating the recovery of IT outages based on integrated recovery plans
US8171348B2 (en) * 2009-05-22 2012-05-01 International Business Machines Corporation Data consistency in long-running processes
KR20120066116A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 웹 서비스 정보 처리 방법과 이를 이용한 웹 서비스 조합 방법 및 장치
US9391989B2 (en) 2013-10-17 2016-07-12 Microsoft Technology Licensing, Llc Automatic identification of returned merchandise in a data center
KR102400384B1 (ko) 2015-06-26 2022-05-23 삼성전자 주식회사 외장 메모리를 구비하는 전자장치 및 그 동작 방법
CN115225917B (zh) * 2021-04-15 2024-08-27 北京字节跳动网络技术有限公司 一种录音推流方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1171679A (zh) * 1996-04-23 1998-01-28 株式会社日立制作所 自修复网络及其传输线路交换方法和传输设备
US6615166B1 (en) * 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226273B1 (en) * 1993-11-30 2001-05-01 British Telecommunicatioins Public Limited Company Communications network management
US7155720B2 (en) * 2001-10-26 2006-12-26 Hewlett-Packard Development Company, L.P. Dynamic task assignment in workflows
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US7363628B2 (en) * 2005-06-27 2008-04-22 Microsoft Corporation Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1171679A (zh) * 1996-04-23 1998-01-28 株式会社日立制作所 自修复网络及其传输线路交换方法和传输设备
US6615166B1 (en) * 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology

Also Published As

Publication number Publication date
CN1976353A (zh) 2007-06-06
US7509519B2 (en) 2009-03-24
US20070168691A1 (en) 2007-07-19

Similar Documents

Publication Publication Date Title
CN1976353B (zh) 恢复和调试失败的网络可访问服务构建的方法和系统
US7500149B2 (en) Generating finite state machines for software systems with asynchronous callbacks
Davis et al. The impact of component architectures on interoperability
KR100672894B1 (ko) 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법
Bashari et al. Self-adaptation of service compositions through product line reconfiguration
CN113299382A (zh) 基于人工智能的智慧医疗信息决策方法及云计算系统
Tsai et al. Swiss cheese test case generation for web services testing
Friedrich et al. Knowledge engineering for configuration systems
Al-Subaie et al. Evaluating the effectiveness of a goal-oriented requirements engineering method
CN117234488A (zh) 基于epc模型的智能法律合约生成方法及装置
Tatale et al. A Survey on Test Case Generation using UML Diagrams and Feasibility Study to Generate Combinatorial Logic Oriented Test Cases.
Oukharijane et al. Self-adaptive business processes: a hybrid approach for the resolution of adaptation needs
Barber et al. Enabling iterative software architecture derivation using early non-functional property evaluation
Souri Formal specification and verification of a data replication approach in distributed systems
Diaz-Pace et al. Supporting the Exploration of Quality Attribute Tradeoffs in Large Design Spaces
Sanati et al. Life-event modelling framework for e-government integration
Hoffmann SysML-based systems engineering using a model-driven development approach
Leal et al. Exploiting mde for platform-independent testing of service orchestrations
Javanbakht et al. Enterprise Architecture and EA Modelling from Systems Theory Perspective
Gerede et al. Online and minimum-cost ad hoc delegation in e-service composition
Mehmood et al. Knowledge Graph Embedding in Intent-Based Networking
Selfridge et al. Managing design knowledge to provide assistance to large-scale software development
Ponnalagu Ontology-driven root-cause analytics for user-reported symptoms in managed IT systems
CN106775629A (zh) 搜索文件生成方法及装置
Affonso et al. DmS-Modeler: A Tool for Modeling Decision-making Systems for Self-adaptive Software Domain.

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101208

Termination date: 20151114

EXPY Termination of patent right or utility model