CN1645856A - 确定性的、对象到代码的基于规则的分派 - Google Patents

确定性的、对象到代码的基于规则的分派 Download PDF

Info

Publication number
CN1645856A
CN1645856A CNA2005100062070A CN200510006207A CN1645856A CN 1645856 A CN1645856 A CN 1645856A CN A2005100062070 A CNA2005100062070 A CN A2005100062070A CN 200510006207 A CN200510006207 A CN 200510006207A CN 1645856 A CN1645856 A CN 1645856A
Authority
CN
China
Prior art keywords
data structure
rule
rules
action
methods
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.)
Granted
Application number
CNA2005100062070A
Other languages
English (en)
Other versions
CN1645856B (zh
Inventor
G·P·科普兰德
L·P·卡布莱拉
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1645856A publication Critical patent/CN1645856A/zh
Application granted granted Critical
Publication of CN1645856B publication Critical patent/CN1645856B/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
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Image Analysis (AREA)
  • Devices For Executing Special Programs (AREA)
  • Electron Beam Exposure (AREA)

Abstract

确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组。在访问了要处理的数据结构之后,评估一规则列表以标识应用到数据结构的分派的多个规则。这多个规则的每一个指定了应当向其分派数据结构的不同的一个或多个方法的组。将多个规则解析成应用到数据结构的分派的单个主导规则。然后,计算系统向由主导规则指定的一个或多个方法的组分派该数据结构。规则评估和优先化是确定性的,以便于调试,因为万一在处理过程中产生性能问题,可确定哪一个或多个方法的组处理了数据结构。此外,可动态地添加、修改或删除规则。

Description

确定性的、对象到代码的基于规则的分派
技术领域
本发明涉及计算技术,尤其涉及确定性地执行对象到具体代码的基于规则的分派。
背景技术
计算技术已经改变了我们工作和游戏的方式。计算系统现在采用了各种各样的形式,包括台式机、膝上计算机、图形输入板PC、个人数字助理(PDA)、家用设备等等。在其最基本的形式中,计算系统包括系统存储器和一个或多个处理器。系统存储器中的软件可由处理器执行,以指示计算系统的其它硬件执行期望的功能。
软件可以相当复杂,通常从上千甚至上百万行源代码中编译或解释。为提供软件开发过程的某一组织,可将任务分类成执行更具体行动的可管理的子例程或方法。方法然后相互关联,以作为一个整体执行软件的更复杂功能。这些方法通常接收一个或多个数据结构用于处理。
由于软件的复杂性,确定哪一方法应当接收数据结构用于进一步处理通常是不平凡的任务。例如,当网络服务接收消息时,网络服务通常必须在可能的多个方法中选择以向其分派消息。
常规的系统通常在这一情况下采用基于规则的分派。具体地,保存一规则列表,它提供了条件和向其分发数据结构的方法之间的映射。通常,有多个应用的条件和多个已经在这些情况下应用的规则。因此,很难以确定性的方式预测哪一方法最终将处理(或已经处理了)数据结构。如果系统在处理数据结构的过程中有性能偏差,则很难调试系统,因为导致性能偏差的代码可能无法容易地识别。
此外,在常规系统中,规则列表被集成在可执行分派代码中。因此,修订该规则列表涉及修订源代码、重编译并重新分发分派代码。这可耗费可观的时间和资源。
因此,有利的是执行基于规则的分派的机制,其中,在应用多个分派规则的情况下,哪些代码将处理数据结构将更可预测,并且其中,规则可以更动态地来调整。
发明内容
本领域现有技术的上述问题由本发明的原理克服,本发明可以在能够分派数据结构(如,包含消息中存在的信息的那些数据结构)以供一个或多个方法的组处理。计算系统执行确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组,以用于进一步的处理。尽管存在关于应当将数据结构分派到何处的冲突的多个规则,该分派仍是确定性的。
在访问了要处理的数据结构之后,计算系统评估规则列表,以标识可应用于该数据结构的分派的多个规则。这多个规则的每一个指定了应当向其分派数据结构的不同的一个或多个方法的组。计算系统将这些规则解析成可应用于数据结构的分派的单个主导规则。然后,计算系统将数据结构分派到由主导规则指定的一个或多个方法的组。
规则评估和优先化是确定性的,使得可以推想哪一个或多个方法的组处理了数据结构。由于在那时方法是已知的,万一在处理数据结构时产生了性能偏差,也可很大程度地简化调试。此外,规则列表可独立于实际的分派代码来维护。例如,规则列表可使用XPATH语句来表示,或以任一其它构造的方式来表示。改变规则仅涉及从列表添加或删除规则,或修改列表中的规则。这准许在给定不断变化的实时情况下,能够在适当时更动态地更新规则。
本发明的另外的特征和优点将在以下描述中陈述,并且通过阅读描述可以部分地变得清楚,或可以通过对本发明的实践学到。本发明的特征和优点可通过在所附权利要求书中特别指出的仪器和组合来实现并获得。阅读以下描述和所附权利要求书,可以完全清楚本发明的这些和其它特征,或可以通过如下文所描述的对本发明的实践学到。
附图说明
为了以可获得本发明的上述和其它优点和特征的方式来描述,将参考附图中示出的具体实施例来呈现由上文简要描述的本发明的更具体描述。应当理解,这些附图仅描述了本发明的典型实施例,因此并不应当被认为是局限其范围,通过使用附图并用附加的特殊性和细节来描述和解释本发明,附图中:
图1示出了可实现本发明的特征的合适的计算系统;
图2示出了依照本发明的原理可协作地交互以执行确定性的基于规则的分派的各种组件;
图3示出了依照本发明的原理计算系统用于执行确定性的基于规则的数据结构分派的方法的流程图;以及
图4示出了将多个规则解析成单个主导规则的方法的流程图。
具体实施方式
本发明的原理涉及执行确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组并用于进一步处理的机制。在访问要处理的数据结构之后,计算系统评估规则列表,以标识可应用于数据结构的分派的多个规则。这多个规则的每一个指定了应当向其分派数据结构的不同的一个或多个方法的组。计算系统将这些规则解析成可应用于数据结构的分派的单个主导规则。然后,计算系统将数据结构分派到由主导规则指定的一个或多个方法的组。规则评估和优先化是确定性的,使得可推想哪一个或多个方法的组处理了数据结构。由于此时方法是已知的,因此万一在处理数据结构时产生了性能偏差,也可很大程度地简化调试,从而准许在给定不断变化的实时情况下,可在适当时更动态地更新规则。
转向附图,其中,相同的标号指相同的元件,示出本发明在一个合适的计算环境中实现。以下描述基于所示的本发明的实施例,并不应当作为对于在此未明确描述的替换实施例的本发明的限制。
在以下描述中,将参考由一个或多个计算机执行的行动和操作的符号表示来描述本发明,除非有另外指明。由此,可以理解,这类行动和操作,有时称为计算机执行的,包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,从而以本领域的技术人员都理解的方式重新配置或改变了计算机的操作。数据被维护处的数据结构是存储器的物理位置,具有由数据的格式所定义的具体特性。然而,尽管在上述的上下文环境中描述本发明,它并不意味着限制,如本领域的技术人员所理解的,后文所描述的行动和操作的各方面也可以由硬件实现。图1示出了可用于这些装置的一个示例性计算机体系结构的示意图。
为了描述的目的,所描绘的体系结构仅为合适的环境的一个示例,并非暗示对本发明的使用范围或功能的局限。也不应将计算系统解释为对图1所示的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算或通信环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和配置包括但不限于,移动电话、袖珍计算机、个人计算机、服务器、多处理器系统、基于微处理器的系统、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
在其最基本的配置中,计算系统100通常包括至少一个处理单元102和系统存储器104。系统存储器104可以是易失(如RAM)、非易失(如ROM、闪存等)或两者的某一组合。这一最基本配置在图1中由虚线106示出。
存储媒质设备可具有另外的特征或功能。例如,它们可包括另外的存储(可移动和/或不可移动),包括但不限于,PCMCIA卡、磁盘和光盘、以及磁带。这类另外的存储在图1中由可移动存储108和不可移动存储110示出。计算机存储媒质包括以用于储存如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法和技术实现的易失和非易失、可移动和不可移动媒质。系统存储器104、可移动存储109和不可移动存储110都是计算机存储媒质的示例。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存、其它存储器技术、CD-ROM、数字多功能盘、其它光存储、磁盒、磁带、磁盘存储、其它磁存储设备、以及可以用来储存期望的信息并可由计算装置100访问的任一其它媒质。
如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同的组件、模块、引擎、和服务可以被实现为在计算系统上执行的对象或进程(如,作为单独的线程)。尽管此处所描述的系统和方法较佳地以软件来实现,然而软件和硬件或硬件的实现也是可能的,并也可考虑它们。
计算系统100也可包含允许主机通过网络120与其它系统和装置进行通信的通信信道112。通信信道112是通信媒质的一个示例。通信媒质通常在诸如载波或其它传输机制等已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。本发明使用的术语计算机可读媒质包括存储媒质和通信媒质。
计算系统100也可具有输入组件114,如键盘、鼠标、笔、语音输入组件、触摸输入设备等等。输出设备116包括屏幕显示、扬声器、打印机等等,以及用于驱动它们的呈现模块(通常称为“适配器”)。计算机100具有电源118。所有这些组件在本领域中是众所周知的,并且不需要在此详细描述。
图2示出了依照本发明的原理可协作交互以执行确定性的基于规则的分派的各种组件200。当在图1的计算系统100的环境中实现时,各种组件可在存储器104中实例化,和/或在诸如可移动存储108和/或不可移动存储110等持久存储器中持久保存。
各种组件200包括分派规则列表203。列表203可包括任意数量的分派规则。然而,在所示的实施例中,列表203包括规则203A、203B和203C,以及由垂直的省略号203D标识的其它可能的规则。每一规则指定了一个条件,以及如果满足该条件,应当向其分派数据结构的一个或多个方法的组。例如,规则203A指定了条件203AA和方法203AB,规则203B指定了条件203BA和方法203BB,规则203C指定了条件203CA和方法203CB。指定的方法可以是单个方法,或可以是以特定的顺序执行的方法组。
比较模块202访问数据结构201,并评估规则列表203,以标识应用到数据结构的分派的多个规则204。可应用的规则204然后对解析模块205标识。数据结构201可以是,例如,接收的消息(如,SOAP消息),或者可以是可由比较模块202访问的任何其它数据结构。如果满足一个规则的对应条件,则比较模块202将该规则标识为可应用。条件可基于数据结构201的结构特征、数据结构201的内容、环境情况(如,时间或计算机工作负荷)、或任何其它因素。
解析模块205包含任意数量的优先化机制206,它们被配置成标识在有冲突的大量规则的情况下取得优先级的减少了数量的规则。在所示的实施例中,示出优先化机制206包括优先化机制206A、206B和206C,以及由垂直省略号206D表示的其它可能的机制。这些优先化机制中的至少一个被配置成确保在存在多个冲突规则的情况下只有一个规则取得优先级。确保这一情况的优先级机制在图2中由优先化模块206C示出,在其右侧有一星号。
解析模块205使用优先化机制206来标识将应用于数据结构201的分派的主导规则207。分派机制208然后使用主导规则207来确定性地将数据结构201’的至少一个修改的版本分派到要执行的多个方法209中对应的一个。在本示例中,数据结构未被分派到单个方法,而是被分派以供方法209A到209D处理。
也可指定这些方法中的部分以供其它规则处理,尽管在本情况中并非所需。例如,假定规则203A是主导规则207A,并指定应当将数据结构分派到方法209。方法209A可以是作为对其它规则203B、203C以及203D所执行的分派方法组的一部分来执行的方法。因此,即使这些规则的一个或多个分派方法的组是不同的,分派方法也可以在多个规则之间共享。所分派的数据结构201’可以与由比较模块202访问的数据结构201相同,尽管如有需要,可以执行某些修改。
规则评估和优先化是确定性的,使得可推想一个或多个方法的哪一组处理了数据结构。由于在那时方法是已知的,万一在处理数据结构中出现了性能偏差,也可以很大程度地简化调试。
图3示出了计算系统执行确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组以用于进一步处理的方法300的流程图。在访问要处理的数据结构(如,接收消息)之后(动作301),执行使用规则列表来确定性地将数据结构分派到一个或多个方法的组的功能性的、面向结果的步骤(步骤310)。这可包括实现该结果的任何对应的动作。然而,在所示的实施例中,步骤310包括对应的动作311、312、313。
具体地,评估分派规则列表来标识应用到数据结构的分派的若干规则(动作311)。如上所述,多个规则的每一个指定了如果满足条件,要向其分派数据结构的不同的一个或多个方法的组。在一个实施例中,条件可使用XPATH语句来表达。如果数据结构是SOAP包封的,这尤其有用。
然后解析多个规则,以标识将应用到数据结构的分派的主导规则(动作312)。然后可如由主导规则指定的来分派数据结构(动作313)。在一个实施例中,处理数据结构的方法可以在与分派机制相同的计算系统上,尽管在此情况中并非所需。例如,分派机制208可以位于计算系统100上,而方法209在网络120上的另一计算系统中执行。如果方法209位于另一计算系统上,则分派数据结构201’可涉及通过网络120将数据结构201’发送到其它计算系统。可对每一访问的数据结构重复图3的方法。
图4示出了将多个规则解析成单个主导规则的方法400的流程图,并更详细地示出了图3的动作312的一个示例。首先,将优先化机制应用到多个可应用的规则(动作401)。然后确定该优先化机制的应用是否能获得单个主导规则(判别块402)。如果能获得(判别块402中为“是”),则方法400结束。否则(判别块402中的“否”),则通过继续应用不同的优先化机制来重复该过程,直到最后仅有一个主导规则。为确保这一情况,最后的优先化机制可应用一种确保单个主导规则的算法。
优先化机制的示例包括明确支配机制,其中,在两个条件之间存在明确的关系,使得在两个规则都可应用的情况下该关系指定了哪一规则可支配另一个。
另一示例是优先化级别机制,它向规则分配优先级别,使得该规则将优于具有较低优先级的任何其它规则。
又一示例是对条件使用唯一标识符的唯一标识符比较机制。该唯一标识符可被排序成一列表,该列表表示列表上具有较高唯一标识符的条件优于列表上具有较低唯一标识符的条件的优先级顺序。唯一标识符比较机制的示例可包括规则的按字母排序的表达式。在另一示例中,向每一规则分配一唯一标识符作为附加字段。该唯一标识符比较机制表示确保主导规则的优先化机制的一个示例。
因此,本发明的原理允许确定性的基于规则的分派。此外,可独立于实际的分派代码(如,比较模块203、转化模块205、优先化机制207和分派机制208)来维护分派规则列表203。例如,该规则列表可使用XPATH语句,或以任一其它的结构化方式来表示。改变规则仅涉及从列表中添加或删除规则,或修改列表中的规则。
本发明可以其它具体形式实施,而不脱离其精神或本质特征。所描述的实施例在所有的方面都被认为是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非上文的描述来指示。落入权利要求书的等效意义和范围之内的所有改变都包含在其范围之内。

Claims (40)

1.在能够分派数据结构以供一个或多个方法的组进行处理的计算系统中,一种由该计算机系统执行确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组以供进一步处理的方法,尽管存在关于应当将所述数据结构分派到何处的冲突的多个规则,所述分派仍是确定性的,其特征在于,所述方法包括:
访问一要处理的数据结构的动作;
评估一规则列表以标识应用到所述数据结构的分派的多个规则的动作,所述多个规则的每一个指定应当向其分派所述数据结构的不同的一个或多个方法的组;
解析所述多个规则以标识一应用到所述数据结构的分派的主导规则的动作;以及
将所述数据结构分派到由所述主导规则指定的所述一个或多个方法的组的动作。
2.如权利要求1所述的方法,其特征在于,所述数据结构是消息,并且其中,访问数据结构的所述动作包括通过网络接收所述消息的动作。
3.如权利要求1所述的方法,其特征在于,解析所述多个规则以标识一主导规则的所述动作包括:
应用第一优先化机制的动作。
4.如权利要求3所述的方法,其特征在于,所述第一优先化机制选自:明确支配机制、优先化级别机制或唯一标识符比较机制。
5.如权利要求3所述的方法,其特征在于,所述第一优先化机制的应用将所述多个规则收缩至所述主导规则。
6.如权利要求5所述的方法,其特征在于,所述第一优先化机制的应用确保在任何情况下只有一个规则从所述多个规则中胜出。
7.如权利要求3所述的方法,其特征在于,解析所述多个规则以标识一主导规则的所述动作包括:
确定所述第一优先化机制的应用仍导致一个以上规则的动作;以及
作为响应,应用第二优先化机制的动作。
8.如权利要求7所述的方法,其特征在于,所述第二优先化机制选自:明确支配机制、优先化级别机制或唯一标识符比较机制。
9.如权利要求7所述的方法,其特征在于,所述第二优先化机制的应用将所述多个规则收缩至所述主导规则。
10.如权利要求9所述的方法,其特征在于,所述第二优先化机制的应用确保在任何情况下只有一个规则从所述多个规则中胜出。
11.如权利要求7所述的方法,其特征在于,解析所述多个规则以标识一主导规则的所述动作还包括:
确定所述第二优先化机制的应用仍产生一个以上规则的动作;以及
作为响应,应用第三优先化机制的动作。
12.如权利要求11所述的方法,其特征在于,所述第三优先化机制选自:明确支配机制、优先化级别机制或唯一标识符比较机制。
13.如权利要求11所述的方法,其特征在于,所述第三优先化机制的应用将所述多个规则收缩至所述主导规则。
14.如权利要求13所述的方法,其特征在于,所述第三优先化机制的应用确保在任何情况下只有一个规则从所述多个规则中胜出。
15.如权利要求11所述的方法,其特征在于,所述第三优先化机制的应用不将所述多个规则收缩至所述主导规则,所述方法还包括:
继续优先化规则的应用,直到所述多个规则被收缩到仅为所述主导规则的动作。
16.如权利要求1所述的方法,其特征在于,所述一个或多个方法的组包括单个方法。
17.如权利要求1所述的方法,其特征在于,所述一个或多个方法的组包括多个方法的时序链。
18.如权利要求1所述的方法,其特征在于,所述数据结构是第一数据结构,所述多个规则是第一多个规则,所述主导规则是第一主导规则,所述一个或多个方法的组是一个或多个方法的第一组,所述方法还包括:
访问要处理的第二数据结构的动作;
评估所述规则列表以标识应用到所述第二数据结构的分派的第二多个规则的动作,所述第二多个规则的每一个指定应当向其分派所述数据结构的不同的一个或多个方法的组的动作;
解析所述第二多个规则以标识应用到所述数据结构的分派的第二主导规则的动作;以及
向由所述第二主导规则指定的一个或多个方法的第二组分派所述第二数据结构的动作。
19.如权利要求18所述的方法,其特征在于,所述第一主导规则与所述第二主导规则相同,使得所述一个或多个方法的第一组与所述一个或多个方法的第二组相同。
20.如权利要求18所述的方法,其特征在于,所述第一主导规则不同于所述第二主导规则,并且所述一个或多个方法的第一组不同于所述一个或多个方法的第二组。
21.如权利要求20所述的方法,其特征在于,所述一个或多个方法的第一组中的一个或多个方法也在所述一个或多个方法的第二组中。
22.如权利要求21所述的方法,其特征在于,所述一个或多个方法的组由所述计算系统执行。
23.如权利要求21所述的方法,其特征在于,所述计算系统是第一计算系统,所述一个或多个方法的组由所述第一计算系统能够通过网络与其通信的第二计算系统执行,向所述一个或多个方法的组分派所述数据结构的动作包括:
通过网络向所述第二计算系统发送所述数据结构的动作。
24.如权利要求1所述的方法,其特征在于,所述数据结构是简单对象访问协议(SOAP)包封。
25.如权利要求24所述的方法,其特征在于,所述规则列表使用XPATH语句来表达。
26.如权利要求1所述的方法,其特征在于,所述规则列表使用XPATH语句来表达。
27.如权利要求1所述的方法,其特征在于,它还包括:
访问一修改所述规则列表的指令的动作;以及
响应于所述指令自动修改所述规则列表的动作。
28.一种在能够分派数据结构以供一个或多个方法的组处理的计算系统中使用的计算机程序产品,所述计算机程序产品用于实现由计算机系统用于执行确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组以供进一步处理的方法,尽管存在关于应当将所述数据结构分派到何处的冲突的多个规则,所述分派仍是确定性的,所述计算机程序产品包括在其上储存了计算机可执行指令的一个或多个计算机存储媒质,当由所述计算系统的一个或多个处理器执行所述指令时,促使所述计算系统执行:
访问一要处理的数据结构的动作;
评估所述规则列表以标识应用到所述数据结构的分派的多个规则的动作,所述多个规则的每一个指定了应当向其分派所述数据结构的不同的一个或多个方法的组;
解析所述多个规则以标识一应用到所述数据结构的分派的主导规则的动作;
向由所述主导规则指定的所述一个或多个方法的组分派所述数据结构的动作。
29.如权利要求28所述的计算机程序产品,其特征在于,所述一个或多个计算机可读媒质包括物理存储器媒质。
30.如权利要求29所述的计算机程序产品,其特征在于,所述物理存储器媒质包括持久存储器。
31.如权利要求29所述的计算机程序产品,其特征在于,所述物理存储器媒质包括系统存储器。
32.如权利要求28所述的计算机程序产品,其特征在于,所述数据结构是消息,并且其中,访问数据结构的所述动作包括通过网络接收所述消息的动作。
33.如权利要求28所述的计算机程序产品,其特征在于,解析所述多个规则以标识一主导规则的动作包括:
应用第一优先化机制的动作。
34.如权利要求33所述的计算机程序产品,其特征在于,所述第一优先化机制的应用将所述多个规则收缩至所述主导规则。
35.如权利要求33所述的计算机程序产品,其特征在于,所述第一优先化机制的应用没有将所述多个规则收缩至所述主导规则,所述方法还包括:
继续优先化规则的应用直到所述多个规则被收缩至仅为所述主导规则的动作。
36.如权利要求28所述的计算机程序产品,其特征在于,所述方法还包括:
访问修改所述规则列表的指令的动作;以及
响应于所述指令自动修改所述规则列表的动作。
37.在能够分派数据结构以供一个或多个方法的组处理的计算系统中,一种由计算机系统用于执行确定性的、基于规则的数据结构分派,即把数据结构分派到一个或多个方法的组以供进一步处理的方法,尽管存在关于应当将所述数据结构分派到何处的冲突的规则,所述分派仍是确定性的,其特征在于,所述方法包括:
访问一要处理的数据结构的动作;以及
使用一规则列表确定性地将所述数据结构分派到一个或多个方法的组的步骤。
38.如权利要求37所述的方法,其特征在于,使用规则列表确定性地将所述数据结构分派到一个或多个方法的组的所述步骤包括:
评估所述规则列表以标识应用到所述数据结构的分派的多个规则的动作,所述多个规则的每一个指定应当向其分派所述数据结构的不同的一个或多个方法的组;
解析所述多个规则以标识一应用于所述数据结构的分派的主导规则的动作;
向由所述主导规则指定的所述一个或多个方法的组分派所述数据结构。
39.如权利要求37所述的方法,其特征在于,所述数据结构是消息,并且其中,访问数据结构的所述动作包括通过网络接收所述消息的动作。
40.一种计算系统,其特征在于,它包括:
一个或多个处理器;
系统存储器;
在其上储存了规则列表的一个或多个计算机可读媒质,每一规则指定了一条件,以及如果满足所述条件则应当向其分派一数据结构的一个或多个方法的组,所述一个或多个计算机可读媒质还在其上储存了计算机可执行指令,当由一个或多个处理器执行所述指令时,促使所述计算系统在所述系统存储器内实例化:
一比较模块,它被配置成访问一数据结构,并评估所述规则列表以标识应用到所述数据结构的分派的多个规则;
多个优先化机制,它们被配置成标识哪一冲突规则获得优先级,所述优先化机制中的至少一个确保仅一个主导规则;
一解析模块,它被配置成使用所述多个优先化机制来标识应用到所述数据结构的分派的所述主导规则;
一分派机制,它被配置成向由所述主导规则指定的所述一个或多个方法的组分派所述数据结构。
CN2005100062070A 2004-01-23 2005-01-21 确定性的、对象到代码的基于规则的分派 Expired - Fee Related CN1645856B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/763,530 US7624141B2 (en) 2004-01-23 2004-01-23 Deterministic rule-based dispatch of objects to code
US10/763,530 2004-01-23

Publications (2)

Publication Number Publication Date
CN1645856A true CN1645856A (zh) 2005-07-27
CN1645856B CN1645856B (zh) 2010-06-09

Family

ID=34634611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100062070A Expired - Fee Related CN1645856B (zh) 2004-01-23 2005-01-21 确定性的、对象到代码的基于规则的分派

Country Status (7)

Country Link
US (1) US7624141B2 (zh)
EP (1) EP1557756B1 (zh)
JP (1) JP4820553B2 (zh)
KR (1) KR20050076762A (zh)
CN (1) CN1645856B (zh)
AT (1) ATE493705T1 (zh)
DE (1) DE602005025553D1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945817B1 (en) * 2004-04-30 2011-05-17 Sprint Communications Company L.P. Method and system for automatically recognizing alarm patterns in a communications network
JP5273884B1 (ja) * 2012-04-09 2013-08-28 伸一 石田 構造解析装置及びプログラム
US8732207B2 (en) 2012-07-02 2014-05-20 International Business Machines Corporation Attribute-based linked tries for rule evaluation
US9262451B1 (en) * 2013-07-01 2016-02-16 Amazon Technologies, Inc. Data quality checking and automatic correction

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JPH0362224A (ja) * 1989-07-31 1991-03-18 Meidensha Corp プロダクションシステムの競合解消方式
JPH04127328A (ja) * 1990-09-19 1992-04-28 Nippon Telegr & Teleph Corp <Ntt> 複数のモジュールからなるシステムの実行制御方法
JPH06222932A (ja) * 1993-01-25 1994-08-12 Omron Corp コンピュータ装置
US5889953A (en) * 1995-05-25 1999-03-30 Cabletron Systems, Inc. Policy management and conflict resolution in computer networks
JP2001117774A (ja) * 1999-10-21 2001-04-27 Japan Science & Technology Corp 適応化機構を備えたプロダクションシステム
WO2001065417A1 (en) 2000-03-02 2001-09-07 Idini Corporation Improved device independent remote data management
JP4145477B2 (ja) * 2000-11-07 2008-09-03 富士通株式会社 オブジェクト連携装置
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US20060155529A1 (en) * 2002-08-16 2006-07-13 Teamware Group Oy System and method for a context-independent framework for management and execution of xml processing tasks
US20040039803A1 (en) * 2002-08-21 2004-02-26 Eddie Law Unified policy-based management system
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US20040177139A1 (en) * 2003-03-03 2004-09-09 Schuba Christoph L. Method and apparatus for computing priorities between conflicting rules for network services

Also Published As

Publication number Publication date
JP4820553B2 (ja) 2011-11-24
ATE493705T1 (de) 2011-01-15
DE602005025553D1 (de) 2011-02-10
CN1645856B (zh) 2010-06-09
US20050198108A1 (en) 2005-09-08
US7624141B2 (en) 2009-11-24
EP1557756B1 (en) 2010-12-29
KR20050076762A (ko) 2005-07-27
EP1557756A3 (en) 2006-01-18
EP1557756A2 (en) 2005-07-27
JP2005228309A (ja) 2005-08-25

Similar Documents

Publication Publication Date Title
KR101143222B1 (ko) 인터-포지션된 메시지 변경을 사용하는, 코드에 대한 수신메시지의 적응성 디스패치
CN107885762B (zh) 智能大数据系统、提供智能大数据服务的方法和设备
US7552433B2 (en) Non-platform-specific unique indentifier generation
US8429192B2 (en) System and method for supporting a plurality of access control list types for a file system in an operating system
US9600305B2 (en) Code partitioning for enhanced performance
US10963267B2 (en) Bootstrapping profile-guided compilation and verification
CN1734417A (zh) 具有多个嵌入驱动程序的应用程序
CN1918547A (zh) 促进异构计算环境中的资源分配
CN1728127A (zh) 通过远程函数调用提供对工作簿模型的访问的方法、系统和装置
CN109196476B (zh) 共享垃圾收集器的不同类型图之间的无缝高性能互操作性
CN1922572A (zh) 为组件应用程序建立混合模式执行环境的系统和方法
CN101288070A (zh) 可扩展元数据
CN1157964A (zh) 为系统目标模型建立动态角色的方法和装置
US9501285B2 (en) Register allocation to threads
WO2007090817A1 (en) Collaborative classloader system and method
CN111143446A (zh) 数据对象的数据结构转换处理方法、装置及电子设备
JP2006048645A (ja) ドキュメントにコンテキスト情報を埋め込むための方法およびシステム
CN1645856B (zh) 确定性的、对象到代码的基于规则的分派
US20150339139A1 (en) Enhanced java array
CN100561426C (zh) 运行时间多态性的方法和计算设备
CN112860404A (zh) 一种移动Agent互操作迁移方法
US8560544B2 (en) Clustering of analytic functions
US20230281058A1 (en) Managing best known configurations for workspaces
US20220300406A1 (en) Alerting a community of users to problematic commits
US7984418B2 (en) Method and apparatus for situationally aware delivery of object instances to a client

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

Granted publication date: 20100609

Termination date: 20140121