CN101288090B - 对主题系统的动作施加 - Google Patents

对主题系统的动作施加 Download PDF

Info

Publication number
CN101288090B
CN101288090B CN2005800376254A CN200580037625A CN101288090B CN 101288090 B CN101288090 B CN 101288090B CN 2005800376254 A CN2005800376254 A CN 2005800376254A CN 200580037625 A CN200580037625 A CN 200580037625A CN 101288090 B CN101288090 B CN 101288090B
Authority
CN
China
Prior art keywords
model
action
event
processor
definition
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
CN2005800376254A
Other languages
English (en)
Other versions
CN101288090A (zh
Inventor
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.)
Manthatron IP Ltd
Original Assignee
Manthatron IP Ltd
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 Manthatron IP Ltd filed Critical Manthatron IP Ltd
Publication of CN101288090A publication Critical patent/CN101288090A/zh
Application granted granted Critical
Publication of CN101288090B publication Critical patent/CN101288090B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Multimedia (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Processing Or Creating Images (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)

Abstract

在活动系统中,动作者(10-1)能够在主题系统(10-2)中实施动作(10-4)。动作者(10-1)和主题系统(10-2)存在于可以影响主题系统(10-2)的环境(10-3)中。动作者(10-1)和主题系统(10-2)都不能控制环境(10-3)。动作者(10-1)包括模型(11-1)和处理器(11-2)。处理器(11-2)由模型(11-1)引导(11-5)。处理器(11-2)被配置成在主题系统(10-2)中实施动作(11-4)。主题系统(10-2)由模型(11-1)了解(11-3)。这允许主题系统(10-2)的模型(11-1)在动作者(10-1)对主题系统(10-2)的动作(11-4)中引导动作者(10-1)。事件可以通过模型(11-1)所引导的动作者(10-1)的动作,或者通过其它动作者的动作,或者通过主题系统自身(例如,化学反应的进行)或其环境(10-3)(例如,时间的经过)的状态的改变,而在主题系统(10-2)中发生。动作者(10-1)采用其自身的动作而保持模型(11-1)得到更新。当处理器(11-2)正在根据模型(11-1)进行处理时,其采用中间动作和它在主题系统(10-2)中实施的动作来更新模型(11-1)。

Description

对主题系统的动作施加
技术领域
本发明一般涉及对使用模型的主题系统的动作施加。特别地,本发明在其各方面中涉及用于在主题系统中实施动作的动作者,包括用于在主题系统中实施动作的动作者的基于逻辑的计算设备,依从者,在主题系统中实施动作的方法,控制依从者的方法以及主题系统的建模方法。
背景技术
系统这个概念已经存在了几十年。例如,在Ackoff的1971年的论文“Towards a System of Systems Concepts”(Management Science,17(July)661-671)中,提供了若干个关键的系统概念的定义。系统被定义为“...a set of interrelated elements(一组相关的要素)”,系统的状态被定义为“...the set of relevant properties which that system has at[amoment of]time(该系统在时间(中的时刻)上具有的一组相关性质)”,并且系统的环境被定义为“...a set of elements and their relevantproperties,which elements are not part of the system but a change in any ofwhich can produce a change in the state of the system(一组要素及它们的相关性质,这些要素不是系统的一部分,但是它们当中任何一个的改变可以产生系统状态的改变)”。此外,事件被定义为“...a change inthe...state of the system(or enviroment)(系统的…的状态(或环境)的改变)”,并且该论文描述了系统的改变通过“reactions(反作用)”、“responses(响应)”和“autonomous acts(自发动作)”对于系统或其环境中的事件的相关性。
图1给出了可以图解现代系统的一种方式。位于其核心的是产品1-2,诸如通用计算机系统或嵌入式计算机系统。产品1-2也是图1所示的更广阔的系统内的一种系统,它在提供诸如在线技术支持的服务1-3的企业1-1(也可以看作是一种系统)中可以用作动作者。服务1-3构成另一系统。产品1-2和/或服务1-3可以由(未示出的)其它企业或消费者1-4(例如,个人1-5、群体1-6或家庭1-7)消费。消费者1-4也可以被建模为系统。
企业1-1和消费者1-4是社会技术系统,并且服务1-3通常是通过技术和人力资源的结合来递送的。这意味着在分析、设计、构建、测试、实现和操作现代的复杂的适应系统时,合乎需要的是不仅仅解决计算机和其它机器的技术要求。为了产生最大的效果,理解工业过程和其它过程怎样与应用相互作用以及怎样组织人们执行这些应用的过程是很重要的。
在过去的大约五十年中已经开发出的工具,在许多方面都不足以配备用来解决诸如上述系统的现代系统的挑战。本发明人认为这是因为:它们的底层体系结构在本质上是顺序的或串行的,而大部分现实世界的系统是高度并行或并发的;它们一般具有静态的定义,这使得它们难以在现实世界的系统随时间改变进行适应;它们加强了体系结构的不同层面与开发的不同阶段之间的语义间隙(semantic gap);并且由于不同的规程对非常相似的现象使用不同的语言和工具,所以阻碍了解决方案的共享,在复杂的社会技术系统中尤其如此。由此,特别是由于最后一点,与图1中所述类型的现代的复杂的适应的技术和社会技术系统的分析、设计、构建、测试、实现和操作有关的现有技术来自许多现存的领域。这些领域包括:包括同步和异步时序电路的顺序和并行的计算机硬件;包括事件驱动型软件的计算机软件;数据(包括“触发”)和元数据;计算机操作系统;包括专家系统的人工智能代理;系统开发方法学、工具和技术;分析模拟器和数字虚拟环境;以及商业过程再设计(business process re-engineering)和组织设计。
图2表示传统的冯·诺伊曼计算机。其包含中央处理单元(CPU)2-3,其中CPU 2-3包含控制单元2-4和算数&逻辑单元(ALU)2-5。该计算机还包含存储器2-6和输入/输出(I/O)控制器2-2。CPU 2-3、存储器2-6和I/O控制器2-2经由内部总线2-1通信。这种计算机的撷取、解码、执行循环是在CPU 2-4中所包括的程序计数器2-7的控制下操作的。默认情况下,程序计数器2-7在每个指令后递增,使得所获得的下一动作是顺次的下一指令。顺序流程中的异常(或跳转)可以通过采用要执行的下一指令的地址覆盖程序计数器2-7的指令来实施。(这种控制流程机制看起来像是具有与Alan Turing在1936年提出的图灵机一样的若干特征。尽管约翰·冯·诺伊曼很可能意识到Turing的想法,但是并不清楚他是否已将这些想法应用到了与A.P.Burks和H.H.Goldstine一起在1946年提交给美国陆军军械部的标题为“PreliminaryDiscussion of the Logical Design of an Electronic Computing Instrument”的报告中。)
所产生的“流程&跳转”机制使冯·诺伊曼式的计算机能够支持巨大范围的计算算法。然而,由当今和未来的计算机支持的大部分应用与几十年以前要求中断代码或预测导弹弹道的计算是非常不同的。相反,它们需要反映我们周围的世界中的系统,来帮助我们管理我们所经历的复杂性,或者使用该复杂性来增加我们的产品和服务的完善度。在这些现实世界的系统中,可能需要识别、存储并潜在地对许多同时或接近同时的事件施加动作。我们为这些系统建立的模型也会随着我们对这些系统的理解的发展而不断地变化。
类似地,计算设备当前的增长在冯·诺伊曼所在的时代是无法预知的。在那时,预期这种设备的潜在应用将被限制于科学和军事应用,并且预期可能最多将有几百台计算机。然而,现今却存在着数亿台冯·诺伊曼型计算机,既有通用的(例如,台式计算机)也有嵌入式的(例如,自动控制系统)。许多这些设备也通常通过有些严格定义的计算机网络而相互通信。在不久的将来,预计将有数十亿台通过网络相互协作的“计算机”,这些网络逐秒地动态配置和重新配置它们自己。本发明人认为冯·诺伊曼体系结构将变成这种整体的动态计算机网络的发展的主要抑制因素。
作为大多数现代计算机的基础的冯·诺伊曼体系结构从根本上是顺序的。“通信顺序进程”(CSP)、“数据流”和“动作者”模型已经被提出以试图提供并发性。然而,这些方法倾向于加强语义间隙,倾向于仅支持粗粒度的并行性,或者倾向于被局限于相对专门化的计算应用。
通信顺序进程由C.A.R.Hoare教授发明(“CommunicatingSequential Processes”,Communications of the ACM,vol.21,pages666-677,1978),其建立在Dijkstra(DIJKSTRA,E.W.(1975).“GuardedCommands,Nondeterminacy and Formal Derivation of Programs”,Communications of ACM,vol.18,pages 453-457)的工作上。通信顺序进程引入能够经由同步化的输入和输出命令进行通信的并行顺序进程。该领域中最初的工作以新的编程语言为目标,但是后来已经在硬件设计中,例如,在Inmos的晶片机(Transputer)中被采用。
冯·诺伊曼体系结构的另一替代物是“数据流”机,其可以与冯·诺伊曼“控制流”方法形成对比。在数据流机中,程序计数器已被消除,并且执行过程仅由操作数的可用性驱动。这使得能够实现粒度比冯·诺伊曼或通信顺序进程模型精细得多的并行性。
图3示出了由Dennis和Misunas于1975年在MIT设计的早期的数据流处理器。MIT数据流机包括通过通信网络3-2互连的一组处理元件3-1。在处理元件3-1内,活动存储器3-5保存活动模板。指令队列3-4保存激发的指令(fired instruction)的地址(即,对于活动模板而言,所有输入都是可用的)。指令队列3-4中的第一个条目由撷取单元3-9取走,该撷取单元3-9使用该条目来撷取构成活动存储器3-5所保存的活动模板的相应的操作码、数据和目的地列表。这然后被打包到操作令牌中,该操作令牌由撷取单元3-9转发给可用的操作单元3-3。然后模板中的操作数时隙被清除。操作单元3-3使用相应的操作数执行操作码所指定的操作,为每个目的地生成结果令牌,并将它们提供给发送单元3-8,该发送单元3-8决定令牌的目的地在本地处理元件3-1中还是在远程处理元件中。如果将目的地确定为是本地的,则将令牌发送给本地接收单元3-7,本地接收单元3-7继而将令牌传递给更新单元3-6。否则,通过通信网络3-2将令牌路由到目的地处理元件3-1。由于所有单元都并发地操作,所以指令以流水线方式(pipeline fashion)进行处理。
数据流方法已经被(AGHA,GUL“Actors:AModel of ConcurrentComputation in Distributed Systems”,MIT Press,1986)描述为具有静态的互连拓扑,因为功能被预先排队并基于预先确定的令牌匹配规则而被启动,这些预先确定的令牌匹配规则是数据流模型仅会识别的事件。令牌匹配对该方法加入了相当大的复杂性,这耗费了很多与数据流机相关的开发努力。这限制了数据流模型对那些所涉及的计算的解决范围,以及限制了其支持可被扩展或重新配置的模型的动态执行的能力。
数据流和控制流方法已经被结合(例如,在Intel Pentium Pro的设计中(COLWELL,R.P.,STECK,R.L.“A 0.6μm BiCMOS Processorwith Dynamic Execution”,In:Proceedings of the International Solid StateCircuits Conference,February 1995)),以试图解决两种方法的弱点。然而,这并没有从根本上解决任何一种方法中固有的局限。
冯·诺伊曼体系结构的另一替代物是并发计算的“动作者”模型,其最初由C.E.Hewitt和其他人在20世纪70年代末发明,并由Gul Agha记述在如下文献中:“Actors:A Model of Concurrent Computation inDistributed Systems”,MIT Press,1986。在该模型中,通过对“task(任务)”内所包含的“communication(通信)”的接收,来激励动作者以便进行已经与该动作者相关联的预先定义的“behaviour(行为)”。行为被定义为可能是有条件的“commands(命令)”的集合,这些命令将使动作者产生其它动作者和/或发送进一步的通信以及潜在地响应于它可能接收的下一通信而修改其自己的行为。动作者系统仅识别的那种类型的事件是新“任务”(即“通信”)的产生。因此,动作者系统内的所有活动是由动作者之间的通信传播来驱动的。这既是动作者系统的长处也是其弱点。这些相对简单的机制可以用于实现巨大范围的并发计算。据称动作者模型强大到足以实现可在上述的通信顺序进程或数据流模型内定义的任何系统。然而,它将并发性的粒度的程度限制到单个行为,每个单个行为可以包括多个有条件的命令。也可以说,动作者模型加宽了现代系统应用和底层计算环境之间的语义间隙,诸如需要用于处理非通信相关事件的复杂机制,从而限制了其在现实世界中的应用。
位于大部分冯·诺伊曼和其它现存计算机体系结构下面的是“同步时序”电子电路。在这样的电路中,状态之间的转换是由来自时钟的脉冲启动的。例如,上述的撷取-执行循环中的每个步骤是由单个时钟脉冲触发的。这种方法被认识到具有某些缺点,包括抑制了循环时间的减小,具有不必要的功率耗散,以及不利的噪声和辐射副作用。由于这些缺点,近年来,人们对开发异步时序电路有着相当大的兴趣,尽管这种电路有着更复杂的设计和测试要求。然而,在整个计算机体系结构的层面下面进行的这种研究,还没有解决冯·诺伊曼体系结构的底层的顺序本质。
编写大部分软件所用的传统的高级语言,是根据使控制冯·诺伊曼型计算机的机器语言更易理解的需要而开发的。如此,这些语言体现了时序机(sequential machines)的局限。这已经由Silc等人描述过(SILC,JURIJ;ROBIC,BORUT;UNGERER,THEO“ProcessorArchitecture:From Dataflow to Superscalar and Beyond”,Springer,1999),他们说“...the architectural characteristics of the Von Neumanndesign are still valid due to the sequential high-level programminglanguages that are used today and that originate in the Von Neumannarchitecture paradigm(由于当今正被使用的并且源于冯·诺伊曼体系结构范式的顺序的高级编程语言,冯·诺伊曼设计的体系结构特性仍然是有效的)”。
如图4所示,传统的软件以某种编程语言(例如,C、Java等)被编写为程序。然后需要将每个程序的每条指令翻译成在其上执行该程序的计算机的机器语言,或者翻译成在虚拟机(VM)上被执行的某种中间形式(例如“字节码”)。在该后一种情况下,各个操作接着变成向下的下一层面的微程序(其也是串行的)。
此处应注意的是,许多现代软件是使用“面向对象”(OO)方法设计和开发的。由于从上述的Hewitt的动作者方法中被开发出来,OO软件采用“对象”之间的消息发送来驱动程序的执行。这在常常被描述为“事件驱动”的图形用户界面(GUI)软件的开发中尤其明显。这种“粗粒度”的事件启动在OO现有技术中通常被称为“方法”的软件的小片段的执行。然而,这种软件片段仍然稳固地植根于冯·诺伊曼范式中-即它们在本质上是顺序的。(Hewitt等人采用的名称“动作者”比“对象”更恰当,因为这样的组件在软件内实施动作。然而,术语“对象”尽管令人困惑,但却在现有技术中得到了通用。)
类似地,“触发”近来已经被引入数据库管理系统(DBMS)领域内,在其中,软件的一小块与数据库内的特定字段相关联,并在无论何时该相关字段被更新时得到执行。同样,尽管这具有了粗粒度的事件驱动处理的一些要素,但是每一小块软件自身仍稳固地植根于冯·诺伊曼范式中。
若干事件驱动的面向对象的方法被记述在现有技术中,包括Pavilion(WO2001/77872)、Cook等人(US6178432)和Mukherjee等人(US6195685)、以及IBM Technical Disclosure Bulletin NN9511431“Event Data Management in an Object Oriented System”。这些中的每一个都是上述的粗粒度事件驱动方法的变种,并且因而依赖于顺序软件(通常的OO“方法”)来实现。
考虑计算机硬件与软件如何相互作用,图5示出了现代的分层的计算机操作系统可能如何被设计的方式,类似于如下文献中描述的设计方式:TANENBAUM,ANDREW S.“Modern Operating Systems”Prentice Hall,2001。计算机操作系统管理底层的计算机硬件资源(例如,存储器、磁盘、打印机等),并提供更适合于有关的计算机系统的用户和编程者的需要的“虚拟机”。它包括七个虚拟层,即在CPU 5-20上运行的5-11至5-17。第一层5-11隐藏底层硬件,从而提供低级虚拟机,在该低级虚拟机顶部,公共操作系统可被设计成支持若干不同的硬件配置。第二层5-12提供操作系统的基本构件块,包括中断处理、上下文转换(context switching)和存储器管理。第三层5-13包含对进程进行管理所不可缺少的组件,并且更具体而言,包含操作系统内的线程,该层对于在本质上是单个、顺序的CPU上提供多处理环境而言是不可缺少的。第四层5-14提供驱动器,这些驱动器处理涉及被连接到CPU或者可能被连接到CPU的特定外设或资源中的每一个的所有活动。在此之上是虚拟存储器管理层5-15,其使计算机能够向其用户提供存储器空间,存储空间明显显著地超出可用的物理存储器。第六层5-16提供支持对磁盘或其它长期存储介质上所保存的文件的管理所必需的特征。第七层即顶层5-17处理系统调用并由此提供接口,用户程序5-18通过该接口来对系统资源进行调用。
软件组件的所有这些层面驻留在计算机的CPU 5-20上面的层中,要求CPU 5-20被包含到计算机所执行的每个操作中。一些方法已经被发明以便通过(紧密耦合的)多处理器、多计算机和(松散耦合的)分布式计算机配置在多个CPU之间共享该工作负荷。然而,由于底层硬件模型的单片式的顺序本质,这些配置对支持操作系统,特别是在进程调度和同步化的区域中,加入了显著的与耦合的紧密度成比例的复杂性。
近年来,在对理解可被看作是“关于数据的数据”的元数据的重要性的认识方面已经有了相当大的提高。这种提高的认识看起来是来自两个主要来源,即:实现数据仓库的价值和商业智能解决方案的需要;以及减小与在网站之间发展、维持和交换信息相关联的努力的需要。因此,软件团体对诸如XML和元对象框架(MOF)的技术有着不断增长的兴趣。元数据在数据交换领域中的价值是很好理解的。然而,在大部分情况下,元数据对用户和用户的应用而言并不可用,或者隐含在应用中,或者被保留在并未转译给最终应用的分析和设计阶段模型中。这抑制了大部分这种应用随着在其中使用它们的上下文的改变而适应的灵活性。
类似地,在元级别编程(meta-level programming)领域中也已经有了发展,具体而言是借助于由公共LISP对象系统(CLOS)及其它编程语言和系统采用的元对象协议(MOP)。这些MOP涉及元级别程序的上下文中的基本级别的应用编程,其中元级别程序描述编程语言或系统自身中的对象。然而,这样的MOP仅在开发期间对专业编程者可用,并且对运行时的修改,(即,后编译或后解释)不可用。它们看起来还对执行加入了相当大的复杂性,使得它们尤其难以支持并发执行。
其它与元数据相关的现有技术包括Nye(US2003/0195867)。Nye声称提供了“a way to flexibly handle state transitions by using an eventmodel(一种通过使用事件模型的灵活处理状态转换的方式)”。其把事件定义为“a set of actions,possibly empty,which is optionally contingentupon a condition(一组可能为空的动作,其任选地随条件而定)”,并声称“during each tick of the internal clock,all computable events areprocessed in random order(在内部时钟的每个嘀哒期间,所有可计算的事件以随机顺序被处理)”。以这种方式,其使用元数据来引导传统的粗粒度事件驱动系统的操作。
Stafford Beer在他的书“Diagnosing the System for Organizations”(Chichester:John Wiley&Sons,1985)中,引入了“viable system(可生存系统)”的概念,他将其定义为这样的系统:“...able to maintain aseparate existence...[within]a particular sort of environment(能够在特定种类的环境[内]维持独立的存在…)”。在这本书中,Beer确定如果系统要保持可生存则需要变得更加适应,但是他并没有描述借以进行适应的详细机制并且并没有特别关注如何实现这样的可生存系统。
自从计算机产生以前,人工智能代理的概念就已经存在。在20世纪60年代和70年代期间,人们对使计算机“智能化”投入了相当多的关注。特别地,专家系统发现了一合适的环境,在该环境内,它们具有可辨认的技术效果,例如在诸如数字设备公司(Digital EquipmentCorporation)的“R1”系统的计算机硬件的配置中。然而,由于这种代理的复杂性和构建它们的成本,这种代理仅发现有限的受支持的商业价值。它们也一般具有较差的运行时间性能。它们借以能够变得(Beer所讨论的意义上的)可生存的机制还没有被描述。
图6示出了由如下文献定义的学习代理的一般模型:RUSSELL,STUART AND NORVIG,PETER“Artificial Intelligence:A ModernApproach”,Prentice-Hall,1995。代理6-0从环境中取得执行标准和输入,并对环境施加动作。在代理6-0中,执行元件6-1将感知作为来自感知器6-2的输入,并决定它接下来要输出给实施器(effector)6-3的动作。学习元件6-4取得关于执行元件6-1的某种知识以及来自鉴定器(critic)6-5的关于代理正在如何执行的输入,并确定为了改善将来的执行而要发送给执行元件6-1的改变。问题产生者6-6基于从学习元件6-4提供的学习目标,向执行元件6-1建议将导致新的和有教益的体验的动作。
在专家系统和其它基于知识的系统中,执行元件6-1常常包括被称为“产生式规则(production rule)”的“IF<condition>THEN<inference>”规则形式的知识。这样的系统使用这些规则以及“前向链(forward-chaining)”搜索算法来发现推论,从这些推论中,可以启动动作并且有时可以产生新的“知识”。尽管专家系统已经具有一些相当大的技术效果和商业成功,如上所述的R1系统那样,但是产生式规则被发现由于前向链搜索算法所消耗的资源以及有限的应用而具有较差的性能。因此,设计者常常不得不借助其它方法,诸如框架系统和神经网络,来捕获知识。结果,难以集成的若干不同的知识表示机制会存在于当代的基于知识的系统中。
包括Koninklijke KPN(WO2002/054296&EP1253533)和Ross(US6598033)的一些现有技术声称采用基于知识的方法来解决领域特定问题,分别是电信服务提供和告警关联性。然而,如前所述,这些更多地归功于传统的面向对象方法,而不是基于知识的系统。
若干建模技术已经被用于描述不同类型的规则系统。
已经通过使用从诸如图7所示的传统的流程图到诸如统一建模语言(UML)及诸如对象约束语言(OCL)的相关语言中描述的面向对象技术的若干图形技术,来描述和/或设计计算机软件。图8A和8B所分别示出的UML类图和UML活动图对UML进行了图解。数学集合理论也已经通过诸如“Z”语言的语言而被采用。
传统上,计算机硬件通过使用框图或电子电路图而被图形化地建模。最近,超高定义语言(Very High Definition Language)(VHDL)已经被用于建模并随后通过使用类似软件的规则来模拟硬件组件和系统的结构和行为。
工业和其它过程一般是通过使用类似于软件设计者所使用的传统的流程图来描述和/或设计的。这些流程图常常形成现代工作流程解决方案的基础。过程也通过专用的过程建模(process modeling)技术,诸如图8C和8D分别示出的IDEF0和IDEF3的过程建模技术来被描述和/或设计。
在设计过程、软件和硬件中所采用的技术是不同的,该事实是重要的问题,因为描述和/或设计跨越这些不同领域的系统是困难的。另一方面,它们确实具有许多共同的特征。它们也是不完整的,因为并不是与系统的行为有关的所有规则都可以被捕获。例如,可以注意到,OCL需要被附加到UML上来捕获充分描述商业系统所需的许多约束条件。此外,这些技术基本上是基于流程的或是顺序的。IDEF0和UML声称不是系统的基于流程的描述,而是变成了行为的完整描述,但是需要基于流程的或顺序的组件。具体而言,这些组件是用于IDEF0的IDEF3过程流程和用于UML的方法。尽管Z模型不是基于流程的,但是它们不具有用于描述事件驱动系统的机制。由于它们没有被构建成解决方案系统,所以这些技术一般与最终的系统是分离的。最后,这些技术不允许元对象很容易地在对象旁建模,这限制了它们支持适应行为的能力。
若干过程模板(process template)(或“方法学”)已被提出以用于开发图1中所示的技术和/或社会技术系统。这些过程模板一般属于“瀑布”式,诸如图9A中所示的信息工程方法学,或者属于可能在面向对象方法学中采用的“迭代”式,诸如图9B中所示。在两种情况下,这些方法学定义的是有时重复但始终是顺序的次序,其中如果这样的系统将被正确地定义,则应该以该次序执行开发过程。两种方法都不能识别或充分反映若干活动可以或必须并行进行的现实世界的状况以便使任何这样的开发能够成功完成。
在Peter Senge的书“The Fifth Discipline:The Art&Practice of TheLearning Organization”(1990,London,Century Business)中,他区分了与系统相关联的两种类型的复杂性,即“detail complexity(细节复杂性)”和“dynamic complexity(动态复杂性)”。细节复杂性是“manyvariables(许多变量)”的复杂性,并且对于软件开发者和试图捕获他们的模型内的精确规则的商业过程建模者而言是已知的。另一方面,动态复杂性是“non-obvious consequences(非显而易见的结果)”的复杂性,在这种情况下,系统要素之间的无法预料的相互作用尤其随着时间而产生意外的效果。测试细节复杂性是传统的软件测试环境的领域,在该软件测试环境中,产生可重复的测试情况来验证特定的程序或系统在特定的测试条件下会进行被预期的操作。模拟的任务就是要探索动态复杂性。
模拟器可被认为来自两种类别中的一种。这两种类别是:分析模拟器,其通常在系统被设计、构建或修改时被用于理解整个系统的动态特性;以及数字虚拟环境,其一般在游戏或训练状况下被用于使人类能够与复杂的虚拟系统交互。
现在将集中描述分析模拟器,Zeigler等人(ZIEGLER,BERNARDP.;PRAEHOFER,HERBERT;KIM,TAN GON“Theory of Modellingand Simulation:Integrating Discrete Event and Continuous ComplexDynamic Systems”,Academic Press,1999)已经显示出实质上有三种可为系统建模的方式:建模为由微分方程描述的连续系统(微分方程系统规范-DESS);建模为表示系统在每个离散的时段后的状态的方程的集合(离散时间系统规范-DTSS);或者建模为描述系统状态如何从一个离散事件改变成另一个离散事件的方程的集合(离散事件系统模拟-DEVS)。由于可以为量化的DESS模型和DTSS描述DEVS模拟器(参见Zeigler等人,1999),所以可以将DEVS看作是这三种系统建模方法的关键。
DEVS通过各组表示如下内容的方程来为系统的动态特性建模:一组输入值,每组输入值与外部事件相关联;一组状态;一组输出值;内部状态转换功能;外部状态转换功能;输出功能;以及静止时间(resting time)功能。这种模拟器仅识别的事件是构成内部事件的预先确定的时段(即静止时间)的经过,或者是构成外部事件的输入的到达。尽管这些内部和外部事件引起了这种模拟内的活动,但这是作为对状态转换功能的粗粒度的触发,其中状态转换功能一般被实现为面向对象编程语言内的顺序程序(sequential program)或方法。在这种模拟模型内,除了时间的经过外,不存在使活动通过内部的状态改变而得到触发的其它工具。
在并行&分布式系统模拟(PDES-参见FUJIMOTO,RICHARD M.“Parallel and Distributed Simulation Systems”,John Wiley&Sons,2000)中,并行和分布式模拟模型可以依据DEVS模拟器的集合而被描述。PDES一般提供粗粒度的并行性(通过将分离的时序逻辑进程(sequential logic process)分配给不同的处理器而实现并发性)。并行和分布式模拟之间的基本差别是模拟中的“逻辑进程”之间的通信等待时间。应注意的是,在模拟中会涉及不同种类的时间,即,物理时间、模拟时间和壁钟时间(wall-clock time),并且这些时间对PDES特别重要。物理时间是正被模拟的物理系统中的时间。模拟时间是模拟所采用的物理时间的抽象,其一般是加快(尽管也可能是减慢)物理时间以满足模拟的需要。壁钟时间是执行模拟期间的实际时间,并且对分布式模拟特别重要。
尽管已经为单处理器和多处理器(即并行和分布式)体系结构都定义了若干种类别的分析模拟器和数字虚拟环境,但是这样的模拟是依据必须根据新系统或变化系统的详细规则而单独定义的顺序状态转换功能来定义的,因而使任何模拟与主设计流相分离并将其限制于最好也不过是粗粒度的并行性;这可能是为什么模拟被相对很少使用的原因之一,尽管模拟计划常常声称有很大的回报。
现有技术包含这样的模拟器的应用,诸如采用粗粒度的事件驱动面向对象方法的Borschev等人的方案(“Distributed Simulation of HybridSystems with AnyLogic and HLA”,XP00434823PD),以及针对在别处记述的并行或分布式模拟的一些挑战的潜在解决方案(例如,Steinman-US6324495)。
上述现有技术的一些关键约束特性如下。
冯·诺伊曼体系结构已经将“流程&跳转”机制嵌入实际上所有当前的计算解决方案。这已经促进了顺序/串行世界观的加强。即使是试图定义并发计算模型(例如,CSP)的一些更流行的尝试,也被这种观点所约束,从而限制了它们所能够实现的并发性的粒度。
在硬件和软件设计者努力使计算机更有用时,两个关键的语义间隙已被引入。第一个语义间隙是在硬件设计者试图采用诸如流水线操作的技术来解决冯·诺伊曼体系结构的局限时,在高级语言和底层计算机硬件之间产生的间隙。第二个语义间隙是问题域和软件之间的间隙,在问题的本质从作为一种计算适应成作为一种系统表示时,该间隙变得更加明显。
现有技术中描述的若干方案采用了粗粒度的事件驱动的并且通常是面向对象的方法。然而,这些方案既受“事件”、“状态”、“动作”和“对象”的多种定义的约束,也受它们的实现对基于冯·诺伊曼的顺序软件片段(通常是OO“方法”)的依赖的约束。
在当今用来理解和设计系统的大部分工具,倾向于不令人满意,因为它们不允许把随着对主题系统的理解的变化而适应的能力设计进来。因此,变化被抵制,并且当它变得不可避免时,它会是创伤性的。例如,每年有许多钱被花费在失败的IT项目上。
系统的不同部分之间的相互作用常常被忽视,因为它们由来自不同学科的人来解决,这些不同的学科具有不同的用于观察他们的状况的组成的工具(诸如不同的建模技术)。许多IT项目的失败是由于未能识别特定技术解决方案的“人力变革管理(people changemanagement)”的问题而引起的,这主要是因为应用开发者和变革管理专家缺乏帮助他们理解其他人的观点的工具和语言。
发明内容
本发明提供了若干相关的概念,其中的许多概念独立地,并且结合起来产生公共的整体框架,潜在地使可适应的规则集合能够得到并行执行并消除问题域与软件和硬件解决方案之间的语义间隙。总之,这些概念为通常的复杂的技术和社会技术系统、适应的整体的微型并行计算系统、自适应的可生存智能代理(viable intelligent agent)以及特别是可生存的企业的分析、设计、构建、测试、实现和操作提供了一种新的方案。
根据本发明的第一方面,提供了一种用于在主题系统中实施动作的动作者,该动作者包括:
主题系统的模型,该模型包括:
表示主题系统内的对象的对象,模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;以及
处理器,其被配置成:通过在主题系统中启动由模型的规则定义的取决于事件的一个或多个动作,而响应于主题系统中的事件。
在模型中也可以存在能够仅具有一个状态的对象,只要存在可以具有两个或更多状态中的一个状态的对象。
可以将对象的状态的所有改变看作事件。然而,仅要求把涉及如下事件的规则包括在模型中:就这些事件要求一个或多个动作被启动而言,它们是重要的。
根据本发明构建的动作者的处理器可以不被约束成任意的顺序范式,诸如由冯·诺伊曼程序计数器产生的范式,所以能够被构建成避免其缺点。
如此构建的动作者的处理器能够支持精细粒度的并行操作。
由于处理器直接执行模型,所以在模型和处理器之间不存在语义间隙。此外,在开发的各阶段之间不存在由于将模型转译(translation)成处理器所理解的格式而引起的语义间隙。
依据模型所表示的主题系统来表达模型,可以导致在主题系统和模型之间不存在语义间隙。
根据本发明的动作者允许使用不依赖于程序组件,诸如OO“方法”的模型来描述详细的动作。该模型能够直接驱动精细粒度的并行动作者(例如,计算机、工业机器)。可以使该模型能够表达通常需要附加语言(例如,用于UML的OCL)的约束。
适合的动作者的构建可以允许广阔范围的主题系统得到支持,而不仅仅是使计算得到支持。这不同于并且优于数据流或动作者范式。
可以将所有事件和动作构建为对象。这有助于更易于使用的更简单的模型。
可以将处理器配置成直接在单个步骤中执行响应于单个事件而启动的动作。这样的动作可被称为‘基本动作’。在该模型中,响应于事件而启动的复合动作可以依据子动作来定义,其中子动作响应于由复合动作的执行而直接或间接引起的事件而被启动。每个子动作可以是基本动作或另一复合动作。这允许更准确地表示现实世界中的某些事件,并且可以允许更简单的建模,以及能够实现精细粒度的并行执行。应注意的是,在一个层中可以由处理器直接在单个步骤中执行的基本动作,可以要求对底层处理器的多个较低层的动作进行确立(elaboration),在该底层处理器之上,较高层的处理器被确立。然而,在这种情况下,这些较低层的动作中的每一个在相同的意义上将继而是事件驱动的。
该模型可以包含两个或更多子模型,每个子模型是主题系统的子系统的模型。通过使用该特征,一个处理器可以操作多个模型。
优选地,动作者包括元动作者,该元动作者包括元模型和元处理器。
元模型包括:
表示模型内的对象的对象,模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是模型中的对象的状态的改变;并且
元处理器被配置成:
通过在模型中启动由元模型定义的取决于事件的一个或多个动作,而响应于模型中的事件。
此处,由于元模型是明确的,所以模型在被执行时可以被修改,从而允许动作者在其处于操作中时使其行为适应,潜在地避免了元模型被例如编译器或工具集提供者预先固定的需要。
元模型可以形成模型的一部分,并且/或者元处理器可以形成处理器的一部分。这些特征可以允许动作者在处于操作中时采取新类型的模型。
元模型可以包含两个或更多子元模型,每个子元模型是模型的子系统的模型。这样,一个元处理器可以操作多个元模型。
优选地,处理器的动作由根元动作者实施,根元动作者包括根元模型和根元处理器。
根元模型是用于处理与模型的类型相同的模型的类属模型,并且包括:
表示类属模型执行系统内的对象的对象,模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变,并且
根元处理器被配置成在以下情况引导根元模型:
在事件被触发时,检查模型中的事件的定义以确定应该启动什么动作,如果有的话,并启动那些动作;
在动作被启动时,检查模型中的动作的定义以确定什么对象应该改变它们的状态,如果有的话,并相应地改变那些对象的状态;并且
在对象的状态被改变时,检查模型中的对象的定义以确定应该触发什么事件,如果有的话,并触发那些事件。
这可以被称为提供了上述的第一动作者的通用的实现。
优选地,动作者包括元动作者和根元动作者。在这种情况下,由于元模型是明确的,所以模型在被执行时可以被修改,从而允许动作者在其处于操作中时使其行为自适应。
元模型可以形成模型的一部分。这可以允许动作者在处于操作中时采取新类型的模型。可选地或附加地,根元模型可以形成元模型的一部分。在某些情况下,这允许根元模型在被执行时可以被修改。这潜在地还避免了元模型被例如编译器或工具集提供者预先固定的需要。
在上述的动作者、处理器或者多处理器中的一个或多个处理器中的任何一个中,可以包括:
一个或多个激活器,用于响应于事件的触发而检查模型中的事件的定义,以确定将启动哪些动作,如果有的话,并接着启动那些动作;
一个或多个执行器,其被配置成实施动作并用于响应于动作的启动来检查模型中的动作的定义,以确定要改变主题系统中的什么对象的状态,如果有的话,并接着相应地改变那些对象的状态;
一个或多个记录器,其被配置成记录动作的结果并用于响应于对对象的状态的改变的识别来检查模型中的对象的定义,以从其确定对象的状态的改变应该引起主题系统中的什么事件,如果有的话,并触发那些事件;
一个或多个对外部通道的接口,经由该外部通道,动作者被连接到其它动作者或外部世界;以及
一个或多个内部通道,激活器、执行器、记录器和接口经由该内部通道而被连接。
在上述的包括元动作者的动作者、元处理器或者多元处理器中的一个或多个元处理器中的任何一个中,可以包括:
一个或多个激活器,用于响应于事件的触发来检查元模型中的事件的定义,以确定将启动模型中的哪些动作,并接着启动那些动作;
一个或多个执行器,其被配置成实施动作并用于响应于动作的启动来检查元模型中的动作的定义,以确定要改变模型中的什么对象的状态,如果有的话,并接着相应地改变那些对象;
一个或多个记录器,其被配置成记录动作的结果,该动作的结果包括元模型内的对象的生成、修改或删除,并且该一个或多个记录器用于响应于对象的状态的改变来检查元模型中的对象的定义,以从其确定对象的状态的改变应该引起模型中的什么事件,如果有的话,并触发那些事件;
一个或多个对外部通道的接口,经由该外部通道,动作者被连接到其它动作者或外部世界;以及
一个或多个内部通道,激活器、执行器、记录器和接口经由该内部通道而被连接。
在上述的包括根元动作者的动作者、根元处理器或者多个多根元处理器中的一个或多个中的任何一个中,可以包括:
一个或多个激活器,用于响应于事件的触发来检查根元模型中的事件的定义,以确定将启动哪些动作;
一个或多个执行器,其被配置成实施动作并用于响应于动作的启动来检查根元模型中的动作的定义,以确定要改变处理器中的什么对象的状态,如果有的话,并接着相应地改变那些对象;
一个或多个记录器,其被配置成记录动作的结果,该动作的结果包括根元模型内的对象的生成、修改或删除,并且该一个或多个记录器用于响应于对象的状态的改变来检查根元模型中的对象的定义,并且从其确定对象的状态的改变应该引起处理器中的什么事件,如果有的话,并触发那些事件;
一个或多个对外部通道的接口,经由该外部通道,动作者被连接到其它动作者或外部世界;以及
一个或多个内部通道,激活器、执行器、记录器和接口经由该内部通道而被连接。
这些特征允许将处理器分解成反映可由上述动作者允许的基本事件驱动执行循环的组件。以这种方式实现事件驱动执行循环可以允许精细粒度的并行性。连接可以通过总线、环状通道系统或者任何其它通道拓扑来实现。
激活器、执行器、记录器、接口或通道中的一个或多个可以是如上所述的动作者。这允许根据相同的模型将处理器分解成组件。
在上述动作者中的任何一个中,模型可以确立处理器实体,其包括虚拟动作者的a)处理器、b)元处理器、或c)根元处理器中的一个,从而使处理器实体能够由第一动作者的处理器、元处理器或根元处理器中的任何一个直接执行。这在物理处理器的顶部提供了虚拟处理器的分层。
这样的动作者可以是在代理主题系统中启动动作的模拟器,并且在这种情况下,动作者可以包括模型,该模型还包括以下规则:
用于处理模拟、物理和壁钟时间之间的关系的规则;
用于处理在第一动作者的详细模型中定义的内部和外部事件的分布的规则;
用于处理被模拟的动作者的生成和删除,以及它们在正被模拟的模型内的角色的分配和重新分配的规则;以及
用于处理把被模拟的动作者分配和确立给物理动作者的规则。
这可以实现相似体系结构内的动作者的模拟,以用于动态分析或者用于游戏或训练。
在任何一种情况下,可以将虚拟动作者配置成确立另外的虚拟动作者的处理器实体。这提供了例如,用于在操作系统中使用的虚拟处理器的多个层。
在包括确立模型的这些动作者中的任何一个中,模型可以包含两个或更多子模型,每个子模型确立一个或多个其它虚拟动作者的处理器实体的行为。这允许多个虚拟处理器由单个物理处理器支持。
本发明还提供了包括两个或更多动作者的系统,每个动作者均如上所述并被配置成在共同的主题系统中实施动作,每个动作者经由相应的通道被连接到至少一个其它动作者中的每个。通道使得动作者能够相互通信。
每个动作者可以通过形成动作者的一部分的第一接口和形成通道的一部分的第二接口来被连接到其相应的通道。因此,通道被提供有与动作者的接口。
任何一个或所有通道或接口可以是如上所述的动作者。以这种方式提供一些或所有通道和/或接口,允许它们具有上面结合本发明的动作者所概述的优点。
上面概述的动作者可以包括如上面所概述的系统。这允许动作者包括动作者的系统。
根据本发明的第二方面,提供了一种包括用于在主题系统中实施动作的动作者的基于逻辑的计算设备,该设备包括:
用于实现主题系统的模型的装置,该模型包括:
表示主题系统内的对象的对象,模型中的每个对象与指示对象在给定时刻处于两个或更多状态中的哪一个状态的指示相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;以及
用于实现处理器的装置,其被配置成:
通过在主题系统中启动由模型的规则定义的取决于事件的一个或多个动作,来响应主题系统中的事件。
这提供了基于逻辑的计算设备,该计算设备可以在计算域中提供上面列出的来源于本发明的动作者的所有益处。
该基于逻辑的计算设备的处理器可以包括一个或多个激活器、一个或多个执行器、一个或多个记录器、一个或多个内部通道以及一个或多个接口。这提供了能够进行精细粒度的并行操作的设备。这不同于必定是顺序的冯·诺伊曼范式。这也不同于仅支持粗粒度并行性的CSP范式。它还适用于比数据流或动作者范式更一般的状况。
优选地,至少一个激活器包括:事件队列登记器,用于包含对事件队列中的条目的引用(reference);事件登记器,用于包含对当前事件的引用;以及事件类型登记器,用于包含当前事件的类型。可以认为这些特征代替了传统冯·诺伊曼计算机的程序计数器。
有利地,至少一个执行器包括:动作队列登记器,用于包含对动作队列中的条目的引用;动作登记器,用于包含对当前动作的引用;以及动作类型登记器,用于包含当前动作的类型。可以认为这些特征代替了传统冯·诺伊曼计算机的指令寄存器以及指令解码器和控制单元。
任何这样的设备可以包括一起提供在单个处理单元或集成电路上的单个激活器、单个执行器、单个记录器、一个或多个内部通道以及一个或多个接口。这允许设备使用单个处理器来实现,等效于具有单个CPU的传统计算机,但是其能够直接处理动作者的模型,该模型在此处是并行模型。
可选地,该设备可以包括单个激活器、单个执行器、单个记录器以及一个或多个接口,这些组件中的每个被提供在相应的处理单元或集成电路上,组件经由一个或多个通道而相互连接。这提供了多处理器实现方案,该多处理器实现方案能够没有修改地直接处理相同的并行模型,但是具有更大的吞吐量。这在传统的多CPU体系结构中没有真正的等效物,传统的多CPU体系结构倾向于加入相当大的复杂性以便转译以程序来体现的系统的顺序描述来允许其被并行地执行。
此处,多个激活器可以经由一个或多个通道而被连接,并且至少两个激活器可以共享共同的事件队列。这涉及精细粒度的并行激活的提供。
同样,多个执行器可以经由一个或多个通道而被连接,并且至少两个执行器可以共享共同的动作队列。这涉及精细粒度的并行执行的提供。
此外,多个记录器可以经由一个或多个通道而被连接,并且至少两个记录器可以共享共同的对象队列。这涉及精细粒度的并行记录的提供。
激活器或者一个或多个激活器中的每个可以包括上述的基于逻辑的设备中的任何一个。执行器或者一个或多个执行器中的每个可以包括上述的基于逻辑的设备中的任何一个。记录器或者一个或多个记录器中的每个可以包括上述的基于逻辑的设备中的任何一个。这些特征允许整体的并行处理器实现方案,并伴随有增加吞吐量的机会。
两个或更多组件可以分布在不同位置处。这是可能的,因为本发明允许计算设备由多个被连接的组件形成而不需要它们位于相同的物理位置。
在包括确立模型的上述动作者中的任何一个中,动作者的模型可以包含使得能够将处理器、元处理器或根元处理器确立到具有类似冯·诺伊曼体系结构的计算机或计算机系统上或者确立到管理具有冯·诺伊曼式体系结构的计算机或计算机系统的资源或向其提供简单接口的操作系统上的规则。这允许传统冯·诺伊曼硬件作为基于伪根元动作者的计算系统或设备而操作。
本发明的另一方面提供了一种具有多个资源的计算机系统,每个资源由如上所述的动作者或计算设备的主题系统管理或者构成如上所述的动作者或计算设备的主题系统。这允许提供紧密或松散耦合的集成计算系统,诸如个人计算系统的配置。将接口活动分布到专用的接口处理器,可以使主处理器免于涉及到这样的活动中,这不同于在传统冯·诺伊曼处理器中,从而潜在地显著提高了主处理器的吞吐量。
本发明的另一方面提供了上述某些动作者中的一个和编译器,该编译器被配置成使用冯·诺伊曼计算机或分层操作系统的模型来将动作者的模型静态地转译成冯·诺伊曼计算机或计算机系统或者管理冯·诺伊曼计算机或计算机系统的资源或向其提供更简单接口的操作系统的对象或代码。有利地,编译器包括配置成静态地转译动作者的模型的元转译器(meta-translator)和硬件元模型。这些特征允许基于动作者的模型、元模型或根元模型被静态地转译到传统冯·诺伊曼硬件上或在其上被操作,或者使用传统的例如分层的操作系统。
可以把包括如上所述的具有确立模型的多个动作者的系统配置在一起,以管理计算机系统的资源并使一个或多个模型、元模型或根元模型能够在该机算计系统上同时执行。该系统可以构成根据本说明书中描述的有利原理来进行操作的操作系统。计算机系统可以是冯·诺伊曼式计算机或计算机系统,或者它可以是基于根元动作者逻辑的计算设备或这样的设备的系统。
利用在代理主题系统中启动动作并包括确立模型的动作者,处理器可以包括如上所述的基于逻辑的计算设备。这能够实现整体的并行模拟。与在传统的即使是并行的冯·诺伊曼硬件上执行的模拟的情况相比,管理整体的并行模拟的复杂性可以得到相当大的降低。
根据本发明的第三方面,提供了一种编译器,该编译器被配置成使用冯·诺伊曼式计算机的模型或者管理冯·诺伊曼式计算机的资源或向其提供更简单接口的操作系统的模型,来静态地转译应用模型,包括:
表示应用中的对象的对象,应用模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;
转译成冯·诺伊曼式计算机或计算机系统或者管理冯·诺伊曼式计算机或计算机系统的资源或向其提供更简单接口的操作系统的对象或机器或汇编代码。
这提供了可以允许使用传统计算机或操作系统来实现基于事件的并行动作的编译器,如同上述的动作者那样。应用模型可以另外包括权利要求中的动作者的模型的其它特征中的任何一个。
本发明还提供了包括第一至第五动作者的系统,每个动作者是如上所述的动作者,其中第一至第五动作者是以下的相应的一个:
操作动作者,用于执行操作或变换处理;
指导动作者,用于确定系统的目的和执行目标,并向其它动作者提供那些目标;
管理动作者,用于为了实现由指导动作者提供的目的和执行目标来控制系统内的所有其它动作者;
学习动作者,用于发展和维持形成每个其它动作者的一部分的至少一个模型;以及
使能动作者,用于提供子动作者,该子动作者用于执行第一至第五动作者的职责。这提供了这样的组件,采用这样的组件可以形成可生存系统(即,能够维持独立存在的系统,诸如人工智能代理或商业企业)。
第一至第五动作者中的一个或多个中的每个包括如在上面紧邻的段落中描述的系统。这提供了递归式定义的可生存系统。这在设计(诸如可生存智能代理或可生存商业企业的)复杂的可生存系统时特别有用。
在如上所述的包括第一至第五动作者的系统中,操作动作者有利地被配置成对改变系统进行操作,该改变系统包括:
调查子系统,其被配置成通过对关于对象、动作和事件的规则,以及动作者在目标系统、问题系统和机会系统中的一个或多个中的角色的分配和确立进行建模,并通过模拟所产生的模型以测试详细的规则并分析所产生的系统的动态特性,来调查目标系统中的问题或机会,以确定需要改变什么;
发展子系统,其响应于调查子系统的完成而通过对目标系统和在调查系统中被建模的任何其它系统中的对象、规则和动作者进行建模,并通过模拟所产生的模型以测试详细的规则并分析所产生的系统的动态特性,来建模和模拟对目标系统的改变;
准备子系统,其响应于调查子系统的完成而通过对目标系统和在调查系统中被建模的任何其它系统中的对象、规则和动作者进行建模,并通过模拟所产生的模型以测试详细的规则并分析所产生的系统的动态特性,来建模和模拟临时系统,通过该临时系统,可以部署该改变;以及
部署子系统,其响应于发展子系统和准备子系统的完成而执行在准备子系统中被建模和模拟的系统,以部署在发展子系统中建模和模拟的改变。
这将基于根元动作者的方法应用到了系统开发中,使得有可能将系统项目建立为可生存学习系统,该可生存学习系统被指导、操作、管理、使能和适应于通过使用与任何其它可生存学习系统相同的机制来生成和改变目标系统。
根据本发明的第四方面,提供了一种在主题系统中实施动作的方法,该方法包括:
维持主题系统的模型,该模型包括:
表示主题系统内的对象的对象,模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;以及
对处理器进行控制,以通过在主题系统中启动由模型的规则定义的取决于事件的一个或多个动作,来响应主题系统中的事件。
连同上面在动作者发明的方面中概述的所有益处,该方法另外适用于许多类别的动作者,包括计算机、机器、人和组织,并且该方法因此能够支持复杂的社会技术系统的设计和开发。
根据本发明的第五方面,提供了一种在主题系统中实施动作的方法,该方法包括:
维持用于实现主题系统的模型的基于逻辑的计算设备装置,该模型包括:
表示主题系统内的对象的对象,模型中的每个对象与指示对象在给定时刻处于两个或更多状态中的哪一个状态的指示相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;以及
维持用于实现处理器的基于逻辑的计算设备装置,并控制处理器以通过在主题系统中启动由模型的规则定义的取决于事件的一个或多个动作来响应主题系统中的事件。
根据本发明的第六方面,提供了一种控制依从者使用冯·诺伊曼式计算机的模型或者管理冯·诺伊曼式计算机的资源或向其提供更简单接口的操作系统的模型,来静态地转译应用模型的方法,该应用模型包括:
表示应用中的对象的对象,应用模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;
转译到冯·诺伊曼式计算机或计算机系统或者管理冯·诺伊曼式计算机或计算机系统的资源或向其提供更简单接口的操作系统的对象或机器或汇编代码。
根据本发明的第七方面,提供了一种主题系统的建模方法,包括:
维持主题系统的模型,该模型包括:
表示主题系统内的对象的对象,模型中的每个对象与定义对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;
定义响应于事件而将被启动的动作的规则,事件是对象的状态的改变;以及
定义响应于关于子动作的事件而被启动的复合动作的规则,每个子动作响应于由复合动作的执行而直接或间接引起的事件来被启动。
根据本发明的第八方面,提供了一种对系统进行操作的方法,该方法包括:
在事件被触发时,检查事件的定义以确定应该启动什么动作,如果有的话,并启动那些动作;
在动作被启动时,检查动作的定义以确定应该根据状态改变什么对象,如果有的话,并相应地改变那些对象;并且
在对象的状态被改变时,检查对象状态改变的定义以确定改变的状态是否应该触发任何事件,并触发那些事件。
根据本发明的第九方面,提供了用于对系统进行操作的装置,该装置包括:
一个或多个激活器,其响应于事件的触发而检查事件的定义,并从其确定是否应该启动任何动作,并启动由此确定的每个动作;
一个或多个执行器,其响应于动作的启动来检查动作的定义,并从其确定是否应该根据状态改变任何对象,并相应地改变每个适当的对象的状态;
一个或多个记录器,其响应于对象的状态的改变来检查对象状态改变的定义,以从其确定是否应该触发任何事件,并触发因此确定的每个事件。
第八和第九方面可以允许真正的基于事件的系统操作,并且在一些实现方案中,可以允许完全避免流程-跳转计算。
在本说明书中,为某些术语给出含义如下:
处理器:在由模型引导的主题系统中实施动作的某物。
主题系统:具有状态的有形的或概念性的相互作用的对象的集合,该集合在由观察者或建模者定义的环境内具有独立的存在物,并且是一个或多个动作者所实施的动作的主题。
主题系统中的对象:有形的或概念性的事物。主题系统中的一些对象可以具有两个或更多状态。主题系统中的对象可以是物理的、三维的物品。在一些实施例中,主题系统中的对象可以是可生存商业系统的组成部分,诸如人力资源、技术资源、金融资源或其它资源。
模型中的对象:表示主题系统中的对象的事物,并且可以具有两个或更多不同的状态。
事件:对象的离散状态的瞬时改变。
激活器:响应于事件而从一个或多个模型中确定要启动哪些动作的物理或虚拟的动作者或设备。
执行器:实施动作以根据一个或多个模型来改变一个或多个对象的物理或虚拟的动作者或设备。
记录器:管理形成一个或多个模型的一部分的对象,并根据那些相同的模型识别这样的对象的离散状态的改变将在何时触发事件的物理或虚拟的动作者或设备。
确立器:采用使得能够在另一个一般处于较低级的处理器上直接执行行为的术语来解释处理器的该行为的物理或虚拟的动作者或设备。
附图说明
现在将参考附图仅以举例的方式来描述本发明的实施例,在附图中:
图1是现实世界的适应或自适应系统的图解;
图2显示出现有技术的冯·诺伊曼计算机的体系结构;
图3显示出现有技术的数据流机;
图4系统地示出了现有技术的将软件确立到计算机硬件上的过程;
图5示出了根据现有技术的现代的分层操作系统;
图6示出了现有技术的一般学习代理(generic learning agent);
图7显示出可能形成现有技术的制造过程的一部分的流程图;
图8A至8D显示出已知的IDEF和UML模型;
图9A显示出现有技术的信息工程方法学;
图9B示意性地示出了根据现有技术的一般面向对象方法学;
图10示出了包括根据本发明的一个方面的动作者的活动系统(active system);
图11A和11B示出了根据本发明的某些方面的基于模型的动作者的可选表示;
图12详述了形成图11的动作者的一部分的模型;
图13详述了形成图11的动作者的一部分的处理器;
图14示出了根据本发明的某些方面的简单事件驱动控制模型;
图15示出了根据本发明的某些方面的根元动作者;
图16示出了根据本发明的某些方面的并且可以使用图15的根元动作者实现的根元执行循环;
图17A和17B示出了在图15的根元动作者中使用的一种可能的结构根元模型;
图18A至18D示出了图17A和17B的根元模型的行为组成部分;
图19示出了根据本发明构建的简单事件驱动生产装配模型;
图20示出了根据本发明的某些方面的包括第一和第二子动作者的动作者,每个子动作者对主题系统施加动作;
图21示出了由本发明使用的部分复合根元处理器;
图22A和22B是一些其它图中的关键;
图23示出了根据本发明的某些方面的使用通道进行的根据本发明的动作者的连接;
图24示出了根据本发明的某些方面并由本发明的某些方面使用的根元处理器;
图25示出了根据本发明的某些方面的递归式根元处理器;
图26示出了根据本发明的包括多动作者确立的根元动作者的分层;
图27A和27B给出了可能形成图26的系统的一部分的确立模型的实例;
图28示出了根据本发明的使用单个微处理器的电子根元动作者的实现方案;
图29示出了根据本发明的使用多处理器的电子根元动作者的实现方案;
图30示出了根据本发明的某些方面的使用微型并行体系结构的电子根元动作者的实现方案;
图31A示出了采用图30中所示出的微型并行体系结构的集成个人计算系统的实现方案;
图31B示出了控制图31A中所示出的集成个人计算系统的操作系统的实现方案;
图32A示出了根据本发明的某些方面的将元动作者静态地转译到传统硬件上的过程;
图32B示出了根据本发明的某些方面的将虚拟确立机置于传统硬件上的过程;
图33示出了根据本发明的各方面的所设计的自适应系统的组成部分;
图34示出了具有进一步的递归的图33的系统;
图35示出了具有更进一步的递归的图34的系统;并且
图36示出了利用根元动作者的根据本发明的方法学。
具体实施方式
参考图10,其示出了体现本发明的活动系统。在该系统中,动作者10-1能够在主题系统10-2中实施动作10-4。动作者10-1和主题系统10-2存在于可以影响主题系统10-2的环境10-3中。动作者10-1和主题系统10-2都不能控制环境10-3。
图11A中详细描述了动作者10-1。此处,可以看出,动作者10-1包括模型11-1和处理器11-2。处理器11-2由模型11-1引导(11-5)。处理器11-2被配置成在主题系统10-2中实施动作(11-4)。由于处理器11-2形成动作者10-1的一部分,所以在主题系统10-2中的动作的实施(11-4)与图10中的动作实施(10-4)相同。主题系统10-2由形成动作者10-1的一部分的模型11-1了解(11-3),这完成了包括模型11-1、处理器11-2和主题系统10-2的环路。这允许主题系统10-2的模型11-1在动作者10-1对主题系统10-2的动作(11-4)中引导动作者10-1。因此,可以将动作者10-1描述为“基于模型的动作者”。
事件可以通过模型11-1所引导的动作者10-1的动作,或者通过也对主题系统10-2施加动作的(未示出的)其它动作者的动作,或者通过主题系统自身(例如,化学反应的进行)或其环境10-3(例如,时间的经过)的状态的改变,而在主题系统10-2中发生。动作者10-1采用其自身的动作而保持模型11-1得到更新。当处理器11-2正在根据模型11-1进行处理时,其采用中间动作和它在主题系统10-2中实施的动作来更新模型11-1。动作者10-1能够感知主题系统10-2中由其它动作者的动作或者主题系统自身或其环境10-3的状态的改变引起的事件,即对象的状态的改变。
如图11B所示,主题系统10-2经由三条不同的路线,以三种方式被模型11-1“了解”。第一条路线11-6是经由建模者11-7,该建模者11-7识别主题系统10-2并依据他或她认为重要的对象、事件、动作等来建立主题系统10-2的模型11-1。这是借以在模型11-1中建立将在处理器11-2的动作中引导该处理器11-2的规则的机制。建模者11-7在图11B中被显示为处于系统的环境10-3中并与动作者10-1分离。然而,在本发明的一些方面中,建模者11-7是动作者10-1的一部分。例如,在包括与处理器分离或者作为处理器一部分的元处理器或者根元处理器的动作者10-1中的任何一个建模者,建模者11-7的角色是由元处理器根据引导该元处理器的元模型内所包含的规则担任的。例如,在下面关于图15的动作者的描述之后,将能够理解这一点。第二条路线11-8是经由处理器的,该处理器使用感知器11-9来检测主题系统10-2中的事件或对象的状态的改变。处理器11-2采用主题系统10-2的当前状态和它已经在主题系统中识别的事件,经由路线11-10更新模型。第三条路线11-12是由处理器11-2直接更新模型11-1,特别是采用包括中间动作的动作的结果来更新模型11-1,中间动作是处理器11-2将经由其实施器11-11在主题系统10-2中实施的动作。路线11-8、11-10和11-12合在一起等效于图11A的路线11-3。
图12中详细描述了模型11-1。在如下意义上,模型11-1“了解”主题系统10-2:它包含表示主题系统10-2内的重要对象的对象12-3,并且具有定义每个对象12-3的状态12-1的哪些改变应该触发事件12-2的规则,事件12-2继而应该引起处理器11-2启动动作12-4。在图12中,反映对象12-3的生成或删除的状态12-1的改变的事件12-2,会启动动作12-4。每个动作12-4可以在一个或多个对象12-3中实施改变。没有动作12-4能够在不需要事件12-2的情况下被启动。模型11-1因此可以被描述为事件驱动模型。在该图中,箭头表示从每个对象(状态、事件或动作)对其它对象(状态、事件或动作)的引用。所以,例如,动作12-4和事件12-2之间的箭头12-5显示出,动作12-4由一个并且仅由一个事件12-2启动。另一方面,一个事件12-2可能会启动多于一个动作12-4。动作12-4和对象12-3之间的双头箭头12-8指示出,每个动作12-4可以在多于一个对象12-3中实施改变,并且每个对象12-3可以由多于一个动作12-4改变。箭头12-9显示出,状态12-1仅与一个对象12-3相关。事件12-2是对象12-3的状态12-1从箭头12-6所示的一个状态到箭头12-7所示的另一状态的瞬时改变。对象12-3的生成或删除被看作是存在和不存在之间的状态改变。
动作的结果可以包括模型内的对象的生成、修改或删除。这些结果中的每个可被看作是对象的状态的改变。对象可以被激活或去激活,来分别代替正被生成或毁灭的对象,这会导致更容易的对象处理。
图13中详细描述了处理器11-2。此处,通过启动取决于事件12-2的一个或多个动作12-4来响应事件12-2。取决于事件12-2的动作12-4,是由模型11-1定义的。每个动作12-4可以改变一个或多个对象12-3。对象12-3的改变可以触发一个或多个另外的事件12-2。这可以被称为事件执行循环。事件执行循环继续进行,直到动作12-4或对对象12-3的改变(例如,来自环境10-3的事件)不再产生新的事件12-2并且所有事件12-2已经被处理完成为止。
图14中显示出了一种诸如可能会用在例如发动机功率计的自动控制中的事件驱动控制模型,其图解了图11至13的系统的应用。图22A是图14的关键。在图14的模型中,执行开始于图的左手侧上显示的六个对象的生成。在下方,将‘accel’用作‘加速’的简写形式。标为accel_rate 14-1、accel_period 14-12、engine_speed 14-3和last_accel_time 14-4的每个对象的生成会触发事件,事件继而启动动作,在这种情况下设置这些对象的每个对象的初始值。进一步没有发生任何事,直到模型的开始事件14-5启动某些其它的剩余活动。第一动作14-6计算accel_multiplier 14-2的值。动作14-6的完成会启动另外的动作14-7,该动作14-7是将01:00的时间分配给current_time对象14-8。给current_time对象14-8分配值,触发了如下所述的改变事件14-20。该时间分配动作14-7的完成也是两个可能的事件中的一个,这两个可能的事件中的一个可以接着启动动作14-9,该动作14-9将current_time对象14-8所给出的值与作为动作14-9的输入而应用的模型的最终时间(在该实例中被设置为72:00(即72小时))进行比较。如果动作14-9以“True”的状态完成,则模型通过在动作14-10中将current_time 14-8增加一小时而继续。增加动作14-10的完成是可以启动current_time对象14-8的值的动作14-9与最终时间的值的比较的事件中的第二个。
研究图14的模型可以揭示出,主处理循环并不通过传统的控制“流”处理,而是通过将对象或动作的状态的改变识别为一个或多个另外的动作的启动者的事件来进行。动作和事件是专用类型的对象。例如,无论何时current_time对象14-8的值由动作14-7或动作14-10改变,事件14-20都启动复合动作14-11,该复合动作14-11继而在动作14-12中找出current_time对象14-8的值与last_accel_time对象14-4的值之间的差,并在动作14-13中将作为结果的值与accel_period对象14-21的值进行比较。此处accel_period对象14-21的值初始由动作14-14设置在06:00(即6小时)。如果动作14-13的结果大于accel_period对象14-21的值,则启动两个并行动作14-15、14-16。这些动作中的第一个动作14-15将last_accel_time对象14-4的值设置成current_time对象14-8的值,并且这些动作中的第二个动作14-16使用在模型的开始时计算的accel_multiplier 14-2的值来计算新的engine_speed。类似地,无论何时engine_speed 14-3的值被改变,都触发事件14-17,该事件14-17继而启动动作14-18,该动作14-18打印current_time和engine_speed对象14-8、14-3的值;这样的值也将对模型可能被连接到的任何自动控制系统可用。图14中示出了某些其它动作,这些动作的目的和效果对于专业技术人员而言将是显而易见的。在该实例中,事件有时由动作的完成引起,但是也可以由对象的改变引起。
图15示出了对环境10-3内的主题系统10-2施加动作的根元动作者15-0。根元动作者15-0是图11至13中所示的动作者10-1的扩展。如同图11至13中所示的系统那样,模型11-1对处理器11-2进行引导11-5。模型11-1自身被元模型(MM)15-1了解,元模型15-1可以包括在模型11-1中并形成模型11-1的一部分。因此,模型11-1可被看作包括了自身的模型(元模型15-1)。元模型15-1是模型(模型11-1)的模型;即,它是其主题系统是另一模型(模型11-1)的模型。元模型15-1引导元处理器(MP)15-2,元处理器15-2可以包括在处理器11-2中并形成处理器11-2的一部分。元处理器15-2在模型11-1中实施动作。可选地,元处理器15-2可以位于处理器11-2的外部。
元模型15-1通过定义它可以包含的对象的类型和可以使这些类型的对象发生联系的方式,来形成模型11-1的结构。元模型15-1也通过定义在模型11-1内实施动作的过程中可以采用的事件和动作的有效组合,来形成模型11-1内的行为。元模型15-1对模型11-1的控制是经由元处理器15-2施加的,其中通过该元处理器15-2,模型11-1中的所有动作被实施。因此,元处理器15-2也可以被称为“模型适应者”。
如果元模型15-1和元处理器15-2分别位于模型11-1和处理器11-2的外部,则没有动作或改变可以在元模型15-1自身内实施。然而,如果元模型15-1是模型11-1的一部分并且元处理器15-2是处理器11-2的一个组成部分或功能,如本文所示,处理器11-2可以使元模型15-1适应。换言之,模型11-1反射性地包含自身的模型(模型15-1),并且因此,模型11-1的结构和(由模型11-1引导的)处理器11-2的行为可以在根元动作者15-0进行操作时被改变。这与上面现有技术中描述的元对象框架和元对象协议方法形成了显著的对比。
可以看出,将元模型15-1和元处理器15-2组对的概念,遵循了与图11至13中所示的将动作者的模型11-1和处理器11-2组对的概念相类似的模式。
元动作者15-2、15-1的主题系统是一个或多个模型11-1的系统。在为主要的主题系统10-2建模的过程中,元处理器15-2也充当动作者11-1、11-2的建模者。如果元模型15-1不是模型11-1的一部分,则元动作者15-2、15-1的元建模者位于元动作者15-2、15-1(和动作者11-1、11-2)的外部。然而,如果元模型15-1是模型11-1的一部分,则元处理器15-2担任元建模者以及建模者的角色。
在如下意义上,处理器11-2由可以形成元模型15-1的一部分的根元模型(RM)15-3了解:根元模型15-3是由相同类别的处理器11-2共享的一般化的用于模型执行的模型。根元模型15-3也可以被看作是元模型15-1的一般化的模型,并因此也是模型11-1的一般化的模型;元模型15-1和模型11-1中的所有对象是根元模型15-3中的对象的实例或专门化。根据根元模型15-3的引导并在根元模型15-3的引导下,根元处理器15-4在处理器11-2中实施动作,并且如果它被包括在处理器11-2中,则在元处理器15-2中实施动作。
处理器11-2响应于事件而在主题系统10-2中启动由模型11-1给出的动作。类似地,元处理器15-2响应于事件而在模型11-1中启动由元模型15-1给出的动作。根元处理器15-4响应于事件而在处理器11-2中启动由根元模型15-3给出的动作。因此,根元处理器15-4可以担任任何处理器(或元处理器)的功能,其继而可以由来自一般化的根元模型15-3所表示的类别的任何模型(或元模型)来引导。因此,处理器11-2和元处理器15-2都不需要作为独立的处理器在物理上存在,因为它们的功能可被看作是由根元处理器15-4执行的。处理器11-2和处理器15-2因此是虚拟的。
根元模型15-3是特定类别的所有元模型15-1的一般化的版本。例如,它可以是下面关于图16描述的事件驱动模型的一般化的版本。如此,根元模型15-3定义可以以任何元模型15-1并因此可以以任何模型11-1体现的有效结构和行为。代表处理器11-2在根元处理器15-4中启动动作的事件,在主题系统10-2或环境10-3中被产生。代表元处理器15-2在根元处理器15-4中启动动作的事件,在模型11-1(其是元模型15-1的子系统)或环境10-3中被产生。
事件可以不引起任何动作,或者它可以引起一个、两个或更多动作。此外,每个启动的动作一般将引起一个或多个对象状态改变,每个对象状态改变可以继而引起一个或多个另外的事件。这些事件中的每个事件然后由处理器11-2、元处理器15-2和根元处理器15-4中的适当的一个处理,并且处理继续进行,直到没有另外的事件被产生为止。
如果根元模型15-3位于元模型15-1和模型11-1的外部,则不能使根元模型自身进行适应,从而有效地对根元处理器15-4的结构和行为进行“硬配线(hard wiring)”。然而,如果根元模型15-3被定义为模型11-1内的元模型15-1的一部分,则如本文中所示,根元处理器15-4可以通过元处理器15-2(其功能已由元处理器15-2担任)而使根元模型15-3进行适应,从而使其结构和行为能够自由地进行适应。
可以看出,将根元模型15-3和根元处理器15-4组对以形成根元动作者的概念,遵循了与图11至13中所示的将动作者的模型11-1和处理器11-2组对的概念相类似的模式。
根元动作者15-3、15-4的子系统是一般模型执行系统。
现在参考图16,其显示出根元执行循环。在一个层上,循环包括由事件12-2驱动(16-1)的动作12-4。动作12-4可以引起对象12-3的改变16-2,这继而可以引起(16-3)事件12-2。如上所述,图13中示出了循环的该级。
图16的根元执行循环如下所述。当事件12-2被触发时,根元处理器15-4检查(16-4)其事件的定义16-5,以确定(16-6)哪些动作定义16-7与事件12-2相关联以及哪些动作因此应该由事件12-2启动(16-1)。这些动作12-4然后被启动(16-8)。当动作12-4被启动时,根元处理器15-4使用(16-9)动作16-7的定义,以确定(16-15)哪些对象的定义16-10受到了影响,然后在所指定的相关联的对象12-3中启动(16-11)改变16-2。当对象12-3被改变时,根元处理器15-4检查(16-12)对象16-10的定义,以找出对象的改变是否应该触发(16-13)任何另外的事件定义16-5。如果肯定的确定被做出(16-14),则另外的事件12-2被触发(16-3),从而启动另外的根元执行循环以用于新触发的事件。在上文中,对象12-3的改变由对象12-3的状态的改变构成,并且确定什么事件将由对象的状态的改变所触发,包括检查对象的状态改变的定义16-10。动作还可以或者替代地引起对象12-3的生成或删除,其中对象12-3的生成或删除是特殊类型的状态改变。是否将生成或删除对象12-3,是通过动作定义16-7确定的。
图16表示“精细粒度的”事件驱动执行循环,与上面现有技术中描述的OO GUI和DBMS触发的“粗粒度的”事件驱动处理相对。每个单个的动作,下至等效于(如下面参考图17所述的)传统软件中的指令的基本动作(Elementary Action),是响应于被识别为包括表示另一动作的对象的对象的状态的改变的事件而被启动的。这使本发明的该方面相当地更加服从特别是下面参考图29和30所述的并行计算体系结构。
当基于该执行循环建立处理器或系统时,可能需要另外的规则来处理实际的实现考虑。例如,再次参考图14,诸如启动动作14-9的ANY事件的本身是与其它动作的完成(在这种情况下是动作14-7或14-10的完成)相关联的。然而,动作14-7和14-10都通过修改current_date对象14-8而触发对象改变事件14-20。因此,系统不能认为动作14-7或14-10中的任何一个已经完成,直到由事件14-20启动的复合动作14-11也完成为止。这要求执行系统或处理器包括这样的规则:仅当动作的所有结果都完成时,才认为动作已经完成。
图17A和17B显示出根元模型15-3的结构组成部分。这是描述模型或元模型所需的关键对象类型和它们之间的关键关系的简化模型(即,它省去了图18中所示的一些行为细节)。通过将它分解成由两个维度的重叠而产生的四个象限,可以最容易地理解它。在一个维度中,对象类型是原型或实例,并且在第二个维度中,对象类型可以是模型的结构组成部分或行为组成部分。这给出了四个象限,即图17A中所示的结构原型和行为原型,以及图17B中所示的结构实例和行为实例。图22A和22B提供了图17A和17B的关键。
首先应该注意的是,该模型上的所有方框表示对象类型。每个对象类型表示具有相同性质或属性和行为的一群对象。该模型中的所有对象类型也是模型内的对象的实例;即,所有对象类型是对象的对象类型的子类型。因此对象类型的“对象”覆盖了所有四个象限。每个对象是至少一个有限集合的成员。
应该理解的是,存在着需要特别注意的该模型的若干方面。一个方面是,对象类型的集合是对象集合的子集合,该对象集合的子集合继而是对象类型的集合的实例。这意味着,包含根元模型15-3的任何元模型15-1或模型11-1,在可以添加元模型或模型的特殊对象类型之前,首先应该在元处理器15-4的控制下,准备好来自根元模型的核心对象类型和对象。
图17B示出了结构实例。所有结构特征是简单的或者复杂的。这种模型中的简单对象仅具有一个要素,并且是值对象17-1或引用对象17-2。值对象17-1诸如是这样的整数或日期,其内容在任何时间点上都仅是通过典型是无限的集合而明确定义的单个具体值(occurrence)。另一方面,引用对象17-2指向某个其它对象。复杂对象具有多于一个要素17-4,并且是复合对象17-3或集合17-6。复合对象17-3由一个或多个典型是不同类型的其它对象组成;可以认为复合对象与来自传统高级编程语言的(可能是可变的)记录结构相类似。系统17-5是特殊种类的复合对象17-3,其包含至少两个其它对象,这两个其它对象中的至少一个是引用对象17-2或者包含引用对象17-2。类似地,本说明书中所定义的动作者,是能够在另一系统(即,主题系统)中实施动作的特殊类型的系统。集合17-6是其名称所暗示的类型是相似的对象群。集合可以是无限集合17-7、有限集合17-8或派生集合17-9。派生集合17-9是参考其它集合来定义的。无限集合17-7典型地描述无限的由值构成的群,诸如整数的集合。然而,模型内的大部分集合17-6通常将是有限的集合17-8,其典型地参考模型内的其它对象来定义,或者被直接地(即,明确地枚举)定义,或者通过可以借以派生出它的成员的某种公式来定义。有限集合17-8的所有成员17-10具有与该有限集合相关联的对象类型17-14所定义的结构和行为(参见下文)。派生集合17-9,诸如子集,既不像基本值集合那样必须被预先定义,也没有被完整地枚举,而是通过下面讨论的应用的动作类型(AppliedAction Type)17-24内所包含的公式来定义它们的成员资格。
图17A示出了结构原型。它们定义每个集合的所有成员所共有的结构(并通过与下面讨论的行为原型(Behavioural Archetype)的关联来定义每个集合的所有成员所共有的行为)。因此,值对象类型17-11标识值对象类型的所有值对象17-5的值必须取自其中的集合17-6(典型是诸如整数的无限集合)。值对象类型17-11也可以包括借以派生出值对象17-1的具体值的对(如下面讨论的)动作类型17-16的引用。引用对象类型17-12也包括对集合17-6的引用,从而指示允许引用该类型的哪些集合17-6成员。复合对象类型17-13标识将提供该类型的复合对象17-3的组成部分的对象类型17-14。对集合的原型集合成员进行定义的集合类型17-15,标识了该类型的集合成员17-10必须取自其中的对象类型17-14。
图17A也显示出行为原型。它们通过将事件类型17-32和动作类型17-16与对象相关联,来引入借以实施动作的机制。由于对象类型17-14也是对象,所以可以与对象类型17-14以及具体对象发生这样的关联,从而允许行为与对象类型17-14是原型的整个集合17-6发生关联。事件类型17-32是基本事件类型17-17或复合事件类型17-18。基本事件类型17-17定义对象的状态从一个状态到另一状态的改变或者由于对象的生成而引起的对象状态的改变,其中的每个状态都是参考状态对象17-19定义的。状态对象17-19是特殊形式的值对象17-20。复合事件类型17-18组合其它事件类型17-32(基本事件类型或复合事件类型)来定义新事件类型。借以组合这些事件类型17-32的方式是经由动作类型17-16(典型是逻辑或(OR)或者逻辑乘(AND)动作类型)定义的。类似地,动作类型17-16可以是基本动作类型或复合动作类型17-21。图中并未示出基本动作类型,因为没有应用到它的关系和应用到其它形式的动作类型的关系。动作类型17-16具有决定因素(determinant)17-22,其对于该动作类型的动作的执行而言必须是可获得的。动作类型17-16还具有接受该动作类型的动作的结果的后项(consequent)17-23。动作类型17-16的决定因素17-22和后项17-23可以是对象或对象类型17-14。应用的动作类型17-24是与具体的事件类型17-32相关联的动作类型17-16的具体实例。为了示出动作类型17-16和应用的动作类型17-24之间的差别,我们可以考虑动作“加”(即,二进制加法-数学运算符“+”)。动作类型“加”具有两个决定因素和单个后项,它们当中的每个都是数字。应用的动作类型可以在图14中看到。此处,跟随在每个动作14-9之后,在动作14-10中启动应用的动作类型“加”,其向“current_date”(决定因素)加1并将结果赋给“current_date”(后项)。
图17B也示出了行为实例。它们直接由根元处理器15-4采用以驱动模型11-1的执行,如上面参考图16所述的那样。关键行为实例的对象类型17-4是事件17-25和动作17-28,其中事件17-25可以是基本事件17-26或复合事件17-27,动作17-28也可以是复合动作17-29。动作17-28和复合动作17-29具有决定因素17-30和后项17-31。事件17-25是事件类型17-32的具体值。动作17-28是应用的动作类型17-24的具体值。
该根元模型15-3和与其它建模方法(特别是面向对象建模)相关联的元模型之间的主要差别如下所述。在根元模型15-3中,元对象(即对象类型17-14)是模型自身的要素,并因此对相关联的元处理器15-2的扩展或修改是开放的。同样,在根元模型15-3中,用于捕获行为的机制没有包含在基本上顺序的方法或操作中,而是包含在事件类型17-32和动作类型17-16中。这直接实现了模型的动态并行执行。
图18显示出诸如根元模型15-3的根元模型的行为组成部分。(图18A和18B中所示的)模型的左手侧是图17中所示的结构模型的局部的、但是更详细的版本。它明确地包括在先前的模型中表示为类型的集合(其在图中虚线的左边),以及每个集合的原型成员(其在图中虚线的右边)。它还包括指示成员资格、子集合和组成关系的特殊类型的参考箭头。图22A和22B也提供了图18的关键。将模型的关键行为要素显示到分别与对象18-1、事件18-2和动作18-3事件相关联的三个群中的(图18C和18D中的)模型的右手侧。
对象事件群18-1显示出可以与对象相关联的三个不同的事件类型:生成事件类型18-4,这种类型的事件在对象首先由动作生成(即,其状态从“不存在”改变到“存在”)时发生;修改事件类型18-5,这种类型的事件在对象由动作改变(但不是被生成或删除)时发生;以及删除事件类型18-6,这种类型的事件在动作删除对象时发生。当根元处理器15-4检测到这些改变时,该模型指示它应该分别通过生成生成事件18-7、修改事件18-8或删除事件18-9来进行响应,其中的事件与被改变的对象相关联。这足以启动上面参考图16所述的执行循环。(这些行为要素是除了必须在对象事件群内进行的并且已被现有技术完全覆盖的、将对象写入存储器或对象存储器(object store)或者从存储器或对象存储器读出对象的简单读取之外的行为要素。)
事件的事件群18-2显示出与事件相关联的行为规则。仅关注事件的生成。事件的生成会启动两个并行动作18-9、18-10。第一个并行动作是复合动作18-9,其为复合事件类型的每个具体值生成父事件,与该事件相关联的事件类型是该复合事件类型的组成部分。该父事件只有在与复合事件类型相关联的复合动作的“执行”指示出所有其它必要的事件也已经发生(即,以状态“True”完成)时,才被生成。第二动作18-10为与该事件相关联的事件类型所启动的每个动作类型生成动作具体值。形成生成动作复合动作18-10的一部分的生成动作18-11处理生成动作组成部分的生成,即,它对启动事件的引用,对它作为其应用的动作类型的引用,以及对它的决定因素和后项集合中的对象的引用。两个动作18-9、18-10都可以分别生成多个事件17-25或动作。是否生成多个事件17-25或动作17-28,取决于与所生成的事件类型17-32相关联的复合事件类型17-18和动作类型17-16的数目。
动作事件群18-3显示出与动作17-28相关联的行为规则。它是具有首要关注的动作的生成,并且动作的生成可以启动两个并行的活动。在每次动作被启动时发生的一个活动,是生成“启动”事件18-12的活动。这允许根元处理器15-4跟踪动作的执行,并且更重要地,这使得能够启动这样的动作,这些动作是复合动作的组成部分并且取决于复合动作的启动。执行动作活动18-13仅在所启动的动作是基本动作时才被启动。只有基本动作才实际引起对象的改变。该动作18-13使处理器通过使用由相关联的动作类型引用的动作类型、决定因素和后项来执行所生成的基本动作。通过将这样的基本动作的结果赋给后项而实施的任何改变,会启动另一执行循环,因为根元处理器15-4检测到改变并生成修改事件,如上所述。一旦执行动作18-13完成,根元处理器15-4就启动生成完成事件动作18-14,其生成动作完成事件并继而可以启动其它动作。这些其它动作典型地是相同复合动作的组成部分。
图19A和19B显示出应用于生产装配模型的操作的上述系统。图22A和22B也提供了图19A和19B的关键。在执行模型之前,分别生成与客户、产品规范和部件规范相关的标为“客户”19-1、“ProductSpecs”19-2和“PartSpecs”19-3的对象。模型的执行由“定制”对象19-4的生成来启动,该“定制”对象19-4为具体客户19-6定制具体ProductSpec19-5。定制对象19-4的生成是启动“建立产品”动作19-7的事件。实际上,存在着称作客户、ProductSpec和PartSpec的多个对象,尽管在图中仅示出了这些对象的每个对象中的一个。建立产品动作19-7的启动,会启动“获得部件”动作19-8。将由获得部件动作19-8获得的部件19-9,是与ProductSpec对象19-5相关联的PartSpecList(部件规范列表)对象19-10中所定义的那些部件。获得部件动作19-8自身的启动会为与ProductSpec对象19-5相关联的PartSpecList19-20中的每个部件启动获得部件动作19-11的一个具体值。每个获得部件动作19-11(图中仅示出了其中的一个)通过启动关于所请求的部件是否是已装配部件的检查(19-12)而开始。如果是,则动作19-12以True状态19-21完成,这会启动另外的获得部件动作19-13以用于装配所请求的部件,就像建立产品动作19-7启动获得部件动作19-8以得到完成的产品那样。一旦所有部件都可用,获得部件动作19-13的完成就会启动(19-22)装配部件动作19-14以装配部件本身,这会继续对象的生成或对象状态的改变。如果确定部件不是已装配的部件,则动作19-12以False状态19-23完成,从而启动动作19-15以确定它是否是制造的部件。如果是,则事件19-24启动制造部件动作19-16,该制造部件动作19-16制造部件。否则,事件19-25启动购买部件的购买部件动作19-17。
一旦已经为PartSpecList对象19-20获得了所有部件,获得部件动作19-11就接着完成。最后一个获得部件动作19-18(即,建立产品动作内启动的动作)的完成,会引起启动产品的装配的事件(未示出)。一旦装配完成,就完成了模型的执行。
图20示出了复杂的活动系统。此处,主题系统10-2以与图10中所示相同的方式,包含在环境10-3内。在这种情况下,动作者10-1包括第一和第二子动作者20-1、20-2。子动作者20-1、20-2被互连,并且每个子动作者均在主题系统10-2中实施动作20-3、20-4。子动作者20-1、20-2可以被看作是彼此合作地在主题系统10-2中实施动作20-3、20-4。
图21示出了诸如图15中所示的局部的复合根元处理器15-4。此处,根元处理器15-4由合作的子动作者21-1、21-2、21-3的系统形成。激活器动作者21-1与事件有关,执行器动作者21-2与动作有关,并且记录器动作者21-3与对象有关。动作者21-1、21-2、21-3中的每个均连接到其它动作者中的每个,以便使图16中所示的并且参考图16所述的循环能够得到执行。(应注意,完整的复合根元处理器需要下面参考图23所讨论的另外的组成部分。因此下面参考图24描述了完整的复合根元处理器。)
子动作者21-1、21-2、21-3之间的任务的分派如下所述。激活器21-1被配置成对事件作出响应并从事件中以及从模型或多个模型11-1、15-1、15-3中确定要启动哪些动作。执行器动作者21-2被配置成实施由激活器21-1确定的正被要求要启动的动作。执行器21-2根据模型或多个模型11-1、15-1、15-3在对象上实施由此确定的动作。记录器21-3管理形成模型的一部分的对象,并识别由记录器21-3管理的对象的状态的改变所触发的事件,或者识别继而会启动激活器21-1的另外的活动的对象的生成或删除。
图18显示出图21中所示的记录器21-3、激活器21-1和执行器21-2的关键责任,用于上面参考图18描述的行为规则。记录器21-3具有对象事件群18-1的责任,即,检测和生成对象生成18-7、修改18-8和删除18-9事件。激活器21-2具有事件的事件群18-2的责任,即,检测事件生成事件18-7和生成相关联的父(复合)事件和动作18-9、18-10。执行器21-2具有动作事件群18-3的责任,即,检测动作生成事件18-10和执行这样的动作,以及生成相关联的动作启动和动作完成事件18-12、18-14。
当两个动作者合作形成复合动作者,如同在图21中子动作者20-1、20-2合作形成动作者10-1时,有必要提供通信机制。取决于子动作者20-1、20-2的本质,通信可以采取连续或离散的形式。图23示出了第一和第二子动作者20-1、20-2的连接。此处,第一动作者20-1包括到通道23-1的连接,该通道23-1也被连接到第二子动作者20-2。子动作者20-1、20-2因此通过通道23-1彼此连接。为了使第一子动作者20-1能够连接到通道23-1,将第一接口组件23-2包括在第一子动作者20-1中,第一接口组件23-2被连接到形成通道23-2的一部分的第二接口组件23-3。类似地,形成通道23-1的一部分的第三接口组件23-4被连接到形成第二子动作者20-2的一部分的第四接口组件23-5。接口组件23-2、23-3、23-4和23-5中的每个接口组件构成优选地被构成为图15的动作者10-1的动作者。动作者23-2、23-3、23-4和23-5中的每个动作者将构成组件之间的通信的物品作为其主题系统10-2。如果通信是连续的,则通信物品(communication article)可以采取物质流(materialflow)(例如,管道流体或粉末)的形式,或采取信号(例如,电磁波形或电子波形)的形式。离散的通信物品可以构成包裹(例如,制造组件等的装运)或消息(例如,诸如命令的信息分组)。每个动作者因此包括用于通信的物品的模型,并在该物品上实施动作。
图24示出了复合根元处理器的完整的一般模型。此处,激活器21-1、执行器21-2和记录器21-3被显示为通过通道23-1彼此连接。通道23-1也被连接到接口24-2,该接口24-2允许根元处理器15-4通过例如通道24-3连接到外部系统。
如图所示,通道23-1可以使激活器21-1、执行器21-2、记录器21-3和接口24-2直接彼此连接。可选地,可以存在环状通道系统,在该环状通道系统中,记录器21-3被连接到激活器21-1,激活器21-1被连接到执行器21-2,并且执行器21-2被连接到记录器21-3。通道系统可以采取这两种极端方案之间的任何形式作为替代。
子动作者21-1、21-2、21-3、23-1或24-2中的每个子动作者可以自身由合作的激活器、执行器、记录器、通道和接口的系统构成。图25示出了这一点。参考该图,激活器21-1被显示为包括执行器25-1、记录器25-2和激活器25-3,它们全部通过通道25-4连接在一起。激活器接口25-5将激活器21-1连接到通道23-1。通道23-1自身包括由记录器25-6、执行器25-7、激活器25-8和通道25-9构成的根元处理器。形成通道23-1的一部分的通道25-9通过(在图中仅显示为“I”的)另外的相应的接口连接到执行器21-2、记录器21-3、激活器21-1和接口24-2中的每个。执行器21-2、记录器21-3、接口24-2和外部通道24-3也由包括相关组件的根元处理器构成。
可以如上面参考图24描述的那样,使用环状通道系统或混合通道系统。
尽管在图25中,将根元处理器15-4的每个组件图示为根元处理器,但是不必要每个组件都这样构成。在一些情况下,可能仅需要将组件中的一个、两个或三个实现为根元处理器。
激活器21-1的主题系统是在主题系统中启动动作的事件的系统。执行器21-2的主题系统是改变主题系统内的对象的动作的系统。记录器21-3的主题系统是对象、这些对象的相关数据和状态以及在这些对象的状态改变时触发的事件的系统。通道23-1、24-3的主题系统是两个或更多动作者之间的通信的系统。接口24-2的主题系统是动作者和通道或外部世界之间的通信的系统。
图26显示出分层的根元动作者的模型。此处,物理动作者26-1被示出包括根元处理器15-4和模型11-1。模型11-1包括元模型15-1和根元模型15-3。根元处理器15-4以类似图24的根元处理器的方式被构建,即包括激活器21-1、执行器21-2、记录器21-3、通道23-1和接口24-2。
模型11-1包含子模型26-20、26-21、26-22,它们分别将虚拟根元处理器26-3、26-4和26-5的虚拟激活器、执行器、记录器、通道和接口的行为,特别是其虚拟激活器、执行器、记录器、通道和接口,确立成可直接由物理根元处理器15-4执行的术语。由于根元处理器15-4及其组件的行为是通过其相关的根元模型15-3定义的,这意味着每个模型有效地将相关的虚拟动作者的根元模型的基本对象、事件和状态译成了底层物理动作者的根元模型的基本对象、事件和动作。将在下面参考图27A和27B来描述如何可以实现这种确立。
应注意,任何根元动作者的模型并且因此其元模型和根元模型,实际上被存储在根元动作者的根元处理器的记录器内。
这种确立可以扩展到一个或多个另外的层。例如,在图26中,第二虚拟动作者26-7在模型26-10内包含子模型26-23,该子模型26-23继而在使得第四虚拟动作者26-12的根元模型可由第二虚拟动作者26-7的虚拟根元处理器26-4执行的术语中确立第四虚拟动作者26-12的根元模型。
物理动作者26-1是纯硬件元件;所有其它元件是虚拟的。可以将根元处理器26-3、26-4和26-5认为是虚拟的模型执行引擎。
如果单个动作者的确立模型识别虚拟动作者的角色中的每个角色,则单个动作者可以支持多个虚拟动作者,每个虚拟动作者具有相应的角色。当动作者具有多个角色时,其确立模型需要额外的规则来处理各角色之间的竞争。这样的规则可能是每个角色的相对优先级的定义。
将具有多个角色的动作者应用于生产控制计算机系统被用于制造的情形,动作者可以具有监视生产的角色和在发生任何生产问题(例如,落后于进度)时发出用于生产管理的警报的角色。动作者也可以具有对生产过程提出的改变进行模拟,以便能够将现有的过程的性能与所提出的过程的性能进行比较的角色。显然,保持生产的运行比快速完成模拟更加重要和迫切。
此处,计算机系统(未示出)是具有两个所赋予的角色(即,生产监视器和模拟器)的单个复合动作者。该计算机系统的硬件设置有确立模型,其需要了解两个角色并需要包括用于处理角色之间的任何潜在冲突的规则。如果模拟器和生产监视器二者同时想要做某事,则动作者的生产监视器角色具有更高的优先级并因此优先于模拟角色。多动作者确立模型因此需要包含在单个共同的模型内的两个单独的模型,每个角色对应一个模型。该单个模型也具有处理角色间的相互作用的规则。
该计算机系统的角色十分类似于传统计算机操作系统所实现的角色。然而,响应于该需要的多动作者分层虚拟元动作者得到了改善,因为每个模型是事件驱动的,并因此是并行的而不是顺序的。这实现了角色的并行实现。结果,多动作者确立模型在角色(其可以是传统操作系统中的处理器)之间进行切换时不需要很多的开销,因为底层物理处理器具有来自任何角色的事件可在任何时刻从中触发的单个模型(规则组)。
该方法与类似的现有分层方法(例如,现代的分层操作系统的设计中的分层方法)的不同之处在于,不是将虚拟动作者的模型确立到物理动作者上,而是将虚拟根元模型确立到物理动作者上。这提供了执行能够由物理动作者上的虚拟根元处理器执行的虚拟动作者的任何模型,而无需修改物理动作者自身,从而显著地提高了确立模型的可重复使用性。
确立器11-1的主题系统是确立处理器设备26-3、26-4、26-5、26-13的行为的系统,其中处理器设备26-3、26-4、26-5、26-13包括使得能够直接由另一处理器、元处理器或根元处理器15-4执行的动作者26-6、26-7、26-8的处理器、元处理器或根元处理器。
现在将参考图27A和27B来描述确立模型27-0。此处,应用模型27-1的一部分包括事件27-2,其启动将两个数字m和n相乘以产生输出数字r的乘法处理。从确立器映射表27-10中可以看出,在乘法处理开始之前,数字m和n分别被放置在八位地址2对象27-9和八位地址4对象27-8中。该确立模型具有事件e′27-4,无论何时在应用模型27-1中启动事件e 27-2时都会启动事件e′27-4。事件e′27-4会启动复合动作27-3。这继而会启动将零值赋给八位结果对象地址627-7的动作27-5。ADD动作27-5的完成会启动八个并行的动作序列,地址4对象27-8的每一位对应一个序列。以27-10标注的每个并行序列测试地址4对象27-8的相应位是否被置位,并且如果被置位,则使用ROR动作27-12将另外的地址2对象27-9(其是数字m)的值旋转以相应的ROR旋转输入指定的多数,并将结果加到地址6对象27-7的值上。ADD动作27-13简单地通过先前的ROR动作27-12的完成来启动。ROR动作27-12通过已经以“True”状态完成的相关联的BIT动作27-10启动。确立处理的结果是存储在地址6对象27-7中的值,该值等于第三地址对象的二进制数乘以第二地址4对象27-8的二进制数。利用充分并行的处理器,该模型可在利用传统冯·诺伊曼型计算机的等效乘法算法的一小部分时间中执行。
图27的确立器仅是实例,确立器的精确形式将特别取决于它需要执行的功能。
上述的复合根元动作者模型可以用于生成单处理器、多处理器、(可能是整体的)微型并行和分布式处理器计算机体系结构。该方法打破了对传统冯·诺伊曼型计算机所固有的程序计数器的依赖性,并实现了精细粒度的并行实现方案,而这种精细粒度的并行实现方案更接近地反映了实现方案所倾向于表示的系统的语义。
图28示出了利用单个处理器的基于根元动作者的计算设备。此处,计算设备包括激活器21-1、执行器21-2、记录器21-3和接口24-2,它们全部通过通道23-1彼此连接。计算设备因此根据用于图24的根元处理器的方案而被构建。激活器21-1包括事件队列登记器(EQR)28-1,其包含对事件队列中的下一条目的引用。引用可以被认为是类似于传统计算设备中使用的地址。这允许多个事件同时等待处理。激活器21-1还包括事件登记器(ER)28-2,其包含对当前事件的引用,其中当前事件是当前正被处理的事件。激活器21-1还包括事件类型登记器(ETR)28-3,其包含对当前事件类型的物理引用。
执行器21-2类似地包括动作队列登记器(ARQ)28-4、动作登记器(AR)28-5和动作类型登记器(ATR)28-6。动作队列登记器28-4包含动作队列中的下一条目的地址,并且动作登记器28-5包含正被处理的当前动作的地址。动作类型登记器28-6包含当前动作类型的操作码,其被认为是类似于传统的指令寄存器。执行器21-2还包括第一至第n通用登记器(GPR)28-7至28-8。这些登记器28-7、28-8包含在处理中使用的参数。执行器21-2任选地还包括微处理器体系结构中传统的指令解码器(ID)28-9以及算数和逻辑单元(ALU)28-10。
记录器21-3包括对象队列登记器(OQR)21-11,其包含对对象队列中的下一条目的引用。记录器21-3还包括包含对正被处理的当前对象的引用的对象登记器(OR)21-12以及包含当前对象的类型的的对象类型登记器(OTR)21-13。对象的类型主要用于区分对象、动作和事件。记录器21-3还包括用于存储正被记录到存储器或从存储器中撷取的数据的存储器数据登记器(MDR)21-14,以及包含如下引用的存储器存取登记器(MAR)21-15:在该引用处,保存着将被动作的存储或撷取指令。对象存储或存储器(OS)21-16形成记录器21-3的一部分。
在基于根元动作者的计算设备中,对OS 21-16中的所有对象的存取是由记录器21-3管理的。无论何时需要存取对象,对象的引用都被放置在对象队列中。记录器的OQR 21-11指向对象队列中将被处理的下一条目。当对象队列不为空并且记录器21-3准备就绪时,记录器21-3从对象队列中获得引用并将其放置在对象登记器(OR)21-12中。记录器21-3然后将OR放置到MAR 21-15中并向OS 21-16发布读取或写入指令;在读取的情况下,记录器21-3从MAR 21-15中指定的OS位置获得对象并将其放置到MDR 21-14中;在写入的情况下,记录器21-3将MDR 21-14中的对象放置到MAR 21-15所指定的位置处的OS21-16中。当从OS 21-16中读取对象时,与对象一起的是放置在OTR21-13中的关于对象的类型的信息。对象的类型然后对于由记录器21-3或激活器21-1或执行器21-2请求的另外的处理可用。
在单处理器的基于根元动作者的计算设备中,激活器21-1的事件队列被保存在记录器21-3内的OS 21-16中。当事件被触发时,其由触发动作者(例如,记录器21-3或接口24-3)放置在激活器21-1的事件队列中。事件在它们被生成时继续被添加到该队列中。EQR 28-1指向事件队列中将被处理的下一条目。无论何时事件队列不为空并且激活器21-1准备就绪时,激活器21-1按照EQR 28-1中的引用来获得事件队列中的下一条目。这包括对放置在ER 28-2中的记录器21-3内所保存的事件对象的引用。然后ER 28-2中的引用被使用,继而从关于记录器中的事件对象而保存的信息中获得事件的类型并将其返回到ETR28-3。事件的类型然后被使用,以获得如图18中所述的相关联的动作类型和父事件类型。
类似地,单处理器的基于根元动作者的计算设备的执行器的动作队列,被保存在记录器21-3内的OS 21-16中。当动作被启动时,其由激活器21-1放置到执行器的动作队列中。动作在它们被识别时继续被添加到该队列中。ARQ 28-4指向动作队列中将被处理的下一条目。无论何时动作队列不为空并且执行器21-2准备就绪时,执行器21-2按照ARQ 28-4中的引用来获得动作队列中的下一条目。这将包括对放置在AR 28-5中的记录器内所保存的动作对象的引用。AR 28-5中的引用然后被使用,继而从关于记录器21-3中的动作对象而保存的信息中获得动作的类型并将其返回到ATR 28-6。AR 28-5和ATR 28-6的内容然后被用于执行如图18所述的动作。更具体而言,如果动作是基本动作(即,不由另外的更详细的动作构成,而是可以由执行器21-2在一个步骤中直接执行),则ATR 28-6中的动作类型在ALU 28-10内具有实现该动作类型的具体的电路或微代码;以这种方式,本发明中的类型的动作类型等效于传统计算机中的指令并且ATR 28-6等效于指令寄存器。执行动作所需的具体信息,诸如OS 21-16中的决定因素和后项的位置,是经由AR 28-5中引用的动作对象(如图17和18中所述)提供的。
应该理解的是,激活器、执行器和记录器处理循环本身是图16中所述的根元执行循环的应用。这些必须通过如下方式实现在处理器配置内:(使用多个队列或队列内的优先级)进一步地操纵事件、动作和对象队列来确保正由激活、执行和记录循环本身使用的事件、动作和对象优先于来自正被执行的模型的“用户”事件、动作和对象而得到处理;实现设计成具体执行激活、执行和记录循环的附加的逻辑电路;或者将激活器21-1、执行器21-2和/或记录器21-3确立到一个或多个低级机器上,如图26和27所示,这可以被认为是在效果上类似于使用传统计算机体系结构内的微编码,尽管具体的机制从根本上是不同的(参见下面参考图29的描述)。在任何一种情况下,底层逻辑电路都是采用异步电路设计进行设计的,其中异步电路设计这种方法可以参考上文。通过使用异步电路设计方法,同步时序电路设计中的时钟的选通信号取决于所使用的方法,由附加的逻辑电路或低级激活器、执行器和记录器机器中的事件信号替代。类似的事件信号的应用,在异步电路设计领域中是很好理解的。
还应理解的是,进一步地优化这些激活、执行和记录循环,诸如包括事件、动作和对象的细节,在事件、动作和对象队列条目中包括例如它们的类型,可能是有益的。
可以看出,图28的计算设备以某种方式类似于传统的冯·诺伊曼型计算机。然而,其操作是事件驱动的,而不是流程和跳转。以另一种方式来说,图28的计算设备不需要程序计数器来处理事件、动作和对象。此外,激活器21-1确定要发生什么动作和在什么时间发生,并由上述的行为模型引导。
基于根元动作者的计算设备也可以使用多个处理器来构建。图29显示出了这一点。此处的结构与图28的计算设备的结构相同,但是激活器21-1、执行器21-2和记录器21-3中的每个均由图28中示出的计算设备的另一副本替代(即,由图28中示出的计算设备的另一副本构成)。激活器21-1、执行器21-2和记录器21-3中的每个均通过相应的接口29-1、29-2和29-3连接到通道23-1。可以做出对该描述的体系结构的一些修改,即,将包括在激活器21-1内的记录器29-4限制成事件队列29-5,并将包含在执行器21-2内的记录器29-6限制成动作队列29-7。此外,可以任选地将包含在激活器21-1内的执行器29-8和记录器21-3内的执行器29-9限制成那些动作者所需要的专家动作(specialist action)。
图29中所示的多处理器的基于根元动作者的计算设备的激活、执行和记录循环,类似于上述的单处理器实现方案。然而,在这种情况下,激活器21-1、执行器21-2和记录器21-3中的每个均明确地具有专用的处理器,该专用的处理器具有其自己的激活器、执行器和记录器,以及内部通道和与连接多处理器设备的所有组件的更高级通道23-1的接口。这允许激活、执行和记录循环的设计专门化。例如,可以将激活器的记录器29-4内的记录循环专门化为处理对事件队列中的事件的管理,并且可以将激活器的执行器29-8内的执行循环专门化成为识别和启动动作以及触发父事件所需的那些动作,如图18中的模型中所述。
图30显示出多个元件如何可以一起操作以形成更复杂的动作者。此处,使用微型并行处理的基于根元动作者的计算设备30-0包括双向连接到通道23-1的多个激活器21-1、30-1和30-2。每个激活器21-1、30-1和30-2包括记录器(激活器21-1被显示为具有记录器30-3)。记录器30-3包括事件队列30-4。其它激活器30-1和30-2以相同的方式被构建。尽管未示出,但是每个激活器21-1、30-1和30-2可以包括多于一个记录器。多个执行器21-2、30-4和30-5被双向连接到通道23-1。每个执行器包括记录器30-6,并且每个记录器包括动作事件30-7。两个记录器21-3、30-8被双向连接到通道23-1。每个均包括记录器30-9,并且每个记录器包括对象队列30-10。每个队列30-3、30-7和30-10分别在被请求时基于先进先出的原则来提供事件、动作和对象。通道23-1被双向连接到接口24-2。将各种组件连接到通道23-1,避免了使它们位于相同位置的需要,从而允许它们在物理上分布。
包含在激活器21-1内的记录器30-3包括事件队列30-15。其它激活器30-1、30-2中的记录器(未示出)不包含事件队列。类似地,包含在执行器21-2内的记录器30-6包括动作队列30-7。其它执行器30-4、30-5中的记录器(未示出)都不包括动作队列。激活器21-1、30-1、30-2中的记录器不包含对象或动作队列。执行器21-2、30-4、30-5中的记录器不包含对象或事件队列。此外,可以将激活器21-1、30-1、30-2内的执行器或多个执行器30-11、30-12、30-13(在每个激活器中存在着多个执行器)和记录器21-3、30-8内的执行器30-14限制成那些动作者所需要的专家动作。因此,通过多个每一个均分别共享共同的事件、动作和对象队列的激活器、执行器和记录器,实现了并行处理,从而使得活动能够同时源于多个处理器并由多个处理器处理。
在多个执行器21-2、激活器21-1和记录器21-3分别没有合作的情况下,需要多个动作队列30-7、事件队列30-15和对象队列30-10。任选地,每个执行器、激活器和记录器可以具有相关联的队列,并且在队列被请求时禁用队列,使得在给定时刻,在一组合作的执行器、激活器或记录器中仅有一个队列被使用。
可以使基于图30中描述的体系结构的设备的所有组件都组合到单个物理外壳中。可选地,组件的集合可以在物理上彼此远离,如在分布式计算机系统中那样。
参考图30描述的基于根元动作者的方法使得并行体系结构能够得到采用,并使得能够利用并行体系结构得到改善的性能而无需根据原始问题域使系统进行任何的适应。即使不再需要传统冯·诺伊曼型体系结构的程序计数器,也能够实现这一点,并因此将硬件从支配现有技术计算机体系结构的顺序/串行范式中解放出来。该方法中的根元动作者也具有优于不使用冯·诺伊曼方法的其它现有技术计算机体系结构的优势。特别地,基于根元动作者的模型中的并发性,是从它所实现的系统模型的根本上为事件驱动的本质中派生出来的。这与保持嵌入在顺序范式中的并发顺序处理模型(即,每个处理器在本质上是顺序的机器上操作,这限制了它可以支持的并行性的粒度)形成了对比。此外,基于根元动作者的模型中的动作之间的依赖性是通过明确定义和动态生成的事件来体现的。这提供了比现有技术数据流模型更大的灵活性和更广阔的应用。尽管数据流模型也消除了程序计数器,从而实现了更小粒度的并行性,但是驱动动作的事件是隐含的并由依从者预先确定,其中的依从者在接收到匹配令牌后将要启动的功能列队。基于根元动作者的模型也提供了优于动作者模型的改进,其中动作者模型仅响应于消息的接收而启动动作。由于消息接收是动作者模型中可以启动动作的唯一类型的事件,所以其对于现实世界的事件驱动系统的适用性受到了限制。
另外,使自己的元模型和根元模型嵌入驱动其主要处理的事件驱动模型中的根元动作者,能够支持明确定义的和高度可适应的系统,因为任何的模型都可以得到适应而无需求助于跨越语义间隙静态地转译的离线的专家编程。这与面向对象方法形成了对比,例如在面向对象方法中,元模型最多也只不过是不完整的,并且在系统操作期间仅对专家开发者可用而对于进行适应不可用。
图31A显示出如何可将图30中描述的整体的并行体系结构配置成提供紧密耦合或松散耦合的集成个人计算系统31-0。在该配置中,一个或多个激活器31-1、31-2、31-3、执行器31-4、31-5、31-6和记录器31-7、31-8、31-9提供如下系统的主要处理能力:该系统能够同时支持若干并发的并且可能是整体并行的事件驱动模型。此处,系统的主接口(即,人类技术接口31-10、长期存储系统31-11、打印系统31-12和通信系统)被提供有另外的基于根元处理器的机器。这些基于根元处理器的机器中的每个均包含经由所示的通道连接的至少一个激活器、执行器和记录器,以及用于连接到核心处理器的主内部通道的和用于连接到专用外围接口(诸如人类技术接口31-10的键盘控制器31-14或长期存储系统31-11的磁盘控制器31-15)的另外的接口。将该接口活动分配给专用接口处理器,使核心处理器免于涉及到这样的活动中(与传统冯·诺伊曼处理器不同),显著地提高了主处理器的吞吐量。在这种情况下,一起进行动作的激活器31-1、31-2、31-3、执行器31-4、31-5、31-6和记录器31-7、31-8、31-9构成了主处理器。可以通过例如将诸如扬声器和麦克风的相关设备组合到具有其自身的根元处理器的手持机(handset)31-16中,来进一步分配该配置31-0的处理功率。这将允许手持机31-16担任听/说接口的一些方面(诸如语音识别或语音合成),而甚至无需涉及更广的人类技术接口31-10。通过适当地进行配置,这样的集成个人计算系统31-0可以提供传统个人计算机(PC)、移动电话、个人数字助理(PDA)和数字式手表的特征,而没有设备和数据的冗余,而设备和数据的冗余会破坏现代的较差地集成的设备的集合。
图31B显示出可能会为这样的基于根元处理器的集成的个人计算系统31-0设计操作系统31-20的方式。图的底层显示出通过通道连接的图31A中所示的集成个人计算机硬件配置的被选择的元件。它们的上面是所有处理器类型所共有的或者对每种处理器类型均是不同的操作系统的层。用户应用程序31-21、系统调用处理机31-22和隐藏低级硬件31-23这些层对于所有处理器类型而言是相似的或共同的,并且类似于传统的分层操作系统中的等效层(参见图5)。与传统的分层操作系统的关键不同之处在于中间层。虚拟激活、虚拟执行和虚拟对象管理层31-24、31-25、31-26基于图18中描述的一般模型,各自分别提供了激活器31-1、执行器31-4和记录器31-7的行为模型的实现。在核心处理器中,位于它们上面的是虚拟模型执行管理层31-27,其提供将要同时进行处理的多个模型,而无需不利地彼此影响。所有其它处理器类型还需要虚拟激活、执行和对象管理的共同平台,以及虚拟模型执行管理的一些元件,因为每个均在其核心处具有根元处理器配置。分别为人类技术接口31-10、长期存储系统31-11、打印系统31-12和通信系统31-13,以31-28、31-29、31-30和31-31标出了这些。然而,位于这些基础层31-28、31-29、31-30、31-31上面的是什么,将取决于处理器的本质。例如,长期存储系统31-11取决于被存储的对象的本质,来建立磁盘驱动器31-32层、对象存储管理系统31-33层,并且可能建立文件管理系统层。每个层31-34、31-33、31-32取决于下面的层来确立它,如图26中所述。该方法从每个处理器类型中去除了不必要的组件,从而允许它们适当地专门化。其还允许操作系统31-20充实有在传统分层操作系统中常常归入用户应用层的组件。例如,允许手持机操作系统31-16专门化,可能会包含语音识别元件(未示出),该语音识别元件可以被调谐到单个个体(手持机佩带者)的语音并通过接口连接到集成个人计算系统31-0内的潜在的多个用户应用程序。
图31B中描述的操作系统与图5中所示的传统的现代分层操作系统设计形成对比,其中操作系统的所有层都混合在单个处理器(CPU)上。它也与用于多个处理器的先前的设计(诸如已知的多处理器、多计算机和分布式计算机配置)形成对比。特别地,由于根元处理器的体系结构,活动调度(传统的“进程”或“线程”调度)和活动同步(它们是传统的多处理器操作系统的两个关键挑战),都得到了相当大的简化,从而实现了广阔范围的多处理器的紧密或松散耦合配置,而多处理器的紧密或松散耦合配置会迫使配置传统冯·诺伊曼型处理器的多处理器的复杂性产生相当大的增加。活动调度更加简单,因为在调度器选择新进程来运行时,不必要将顺序进程上下文切换进并切换出CPU。活动同步更加简单,因为与通过时钟周期和自动增加的程序计数器来驱动的传统的顺序进程形成对比,事件驱动模型的固有状态是等待直到事件(诸如来自另一活动的输入)被触发。
操作系统的主题系统是计算机资源和/或虚拟机的系统。
图32A显示出一种通过采用诸如编译或解译的静态转译来将虚拟根元动作者确立到传统(即,冯·诺伊曼型)计算机硬件上的方法。在该方法中,元转译器32-1(即,依从者或解译器)通过使用应用元模型32-2以及用于底层硬件的元模型32-3而被生成。元转译器32-1包含类似于虚拟分层元动作者的确立器组件的规则,以及关于底层硬件的顺序本质而需要的附加的规则和约束。一个或多个应用模型32-4然后可以被静态地转译成可以在底层计算机32-6上直接执行的对象代码32-5,就好像任何其它编译的程序那样。在该图中,从元转译器32-1到对象代码32-5的转译32-7是静态的,并且从那里,它被动态地确立(32-8)到硬件32-6上。对元转译器32-1的输入是来自应用模型32-4的模型输入。
此处,术语“传统计算机”将被理解为包括具有连接到总线的处理器和存储器的计算机,并且也包括具有并行连接的处理器的计算机(诸如超级计算机)。
图32B显示出一种通过采用虚拟确立机将虚拟根元动作者确立到传统(即,冯·诺伊曼型)计算机硬件上的可选方法。在该方法中,同样需要元转译器32-1,但是在这种情况下,它被用于生成用于在底层计算机32-6的顶部运行的虚拟机(VM)的对象代码。VM经由VM特定的应用确立器32-10,生成可以将应用模型确立到其上的伪根元动作者机器。存在着从元转译器32-1到VM对象代码32-9上的静态转译,以及从动态确立器32-10到VM对象代码上的动态确立,和从VM对象代码到底层计算机32-6上的动态确立。应用确立器32-10和VM 32-9一起处理动态并行的模型、元模型和根元模型与底层机器32-6的静态顺序本质之间的语义间隙。
虽然参考图30描述的整体的微型并行处理器可以采用传统的软件,但是这会限制通过使用该体系结构可能获得的益处。传统软件从根本上是顺序的,并加大了问题域和计算机域之间的语义间隙。其还需要预先或在运行时进行转译。这限制了软件性能的灵活性。
相反,采用上面特别是关于图26描述的分层虚拟动作者模型的软件,从根本上具有精细粒度和并行性。这消除了语义间隙,并且仅需要部分转译(如下所述)。这种部分转译不需要预先执行,而是可以仅在运行时执行。基于根元动作者的软件因此更加灵活并且更加能够支持提高的性能。
基于根元动作者的软件与传统软件的不同之处在于,仅需要将基本动作转译到底层机器上(该转译由确立器执行),并且在一层中的模型内的基本动作均被转译为微事件驱动模型,而不是低级的程序。如果适当的基于根元动作者的硬件可用,则微事件驱动模型自身可以与其它模型并行地执行。
基于根元动作者的模拟器是特殊类型的确立器,其使得能够对照代理主题系统来执行模型,从而能够探索模型的细节和动态特性而不会影响预期的主题系统。除了上面参考图26和27描述的确立器的特征外,模拟器还包括以下规则:用于处理模拟、物理和壁钟时间之间的关系的规则;用于处理内部和外部事件的分布(例如,客户定制的频率或为不同产品规范预期的定制的比例)的规则;用于处理被模拟的动作者的生成和删除以及它们在正被模拟的模型内的角色的分配和重新分配的规则;以及用于处理把被模拟的动作者分配和确立给模拟系统内的实际物理动作者的的规则。后者在模拟中特别重要,其位于诸如图30中所示的分布式微型并行体系结构硬件的顶部。分布式系统可能会用在例如不同单元位于不同位置的战争游戏情形中。此处,可以存在多组微型并行硬件,每一组微型并行硬件位于不同的物理位置。一个或多个被模拟的动作者由物理模拟系统的每个节点处理,并且模拟管理器将具有用于在被模拟的动作者相互通信时在不同节点之间路由消息的规则。
基于根元动作者的模拟器方法使得能够直接从系统的模型中模拟系统动态特性。这使得模拟对于商业和技术变化程序而言更加可接受,从而提高了使用模拟的可能性,因此可能会改善所实现的改变的质量和性能。
分析模拟器和数字虚拟环境都可以在基于根元动作者的平台上得到模拟。这在商业变化项目中特别有用,其中在商业变化项目中,一旦为特定过程建模,就可以模拟特定过程来分析其可能的实现,然后就可以通过采用相同模型的数字虚拟环境将其教授给工人。
基于根元动作者的模拟器还以两种方式提供比现有技术更复杂的模拟的可能。首先,通过在模拟期间使被模拟的动作者能够被生成和删除,可以直接从个体动作者模型的细节中探索复杂系统的动态特性。这对于动作者群内存在动态特性的模拟特别有用,诸如在市场营销和军事应用中发现其特别有用。例如,在市场模拟中,可以为客户的个体行为(包括他们可能会通过口头传递信息的方式)建模。然后模拟可以在正面新闻被传递时生成新动作者,或者相反,在负面新闻被传播或竞争者增加市场份额时删除动作者。其次,包括元模型的模型的模拟可以很容易包括系统的规则在模拟运行期间的适应,这在某些游戏、训练或设计工作室应用中可能会特别有用。
基于根元动作者的模拟器和基于根元动作者的计算平台的联合,通过利用上面参考图30描述的整体的微型并行体系结构的精细粒度的并行性,消除了在并行实现中与逻辑处理之间的同步相关联的复杂性。分布式系统也可能用在例如不同单元位于不同位置的战争游戏情形中。此处,可以存在多组微型并行硬件,每一组微型并行硬件位于不同的物理位置。一个或多个被模拟的动作者由物理模拟系统的每个节点处理,并且模拟器必须在被模拟的动作者相互通信时管理不同节点之间的消息的路由。尽管物理和时间上保持远离的模拟节点之间的同步问题仍然存在,但是基于根元动作者的模拟器的使用去除了其它复杂性,从而简化了并行和分布式模拟的实现方案。
模拟器的主题系统是预期的或现实世界的主题系统的人工复制物(artificial replica),或者用于收集或分析关于动作者的动态性能的数据,或者用于生成数字虚拟环境的至少一个组成部分。人工复制物将通常涉及对模拟时间的某种管理,以允许模拟时间显著地快于或慢于预期的或现实世界的主题系统中的情况。
现在将描述本发明对自适应的系统的应用。图33示出了高级自适应系统。此处,指导动作者33-1、操作动作者33-2、管理动作者33-3、学习动作者33-4和使能动作者33-5中的每个均被连接到通信通道33-6。五个所示出的动作者中的每个均可以是如上所述的根元动作者。操作动作者33-2执行核心操作,该核心操作有时被称为“变换处理”。指导动作者33-1依据目的、执行目标和约束条件来提供整体方向。管理动作者33-3根据指导动作者33-1所提供的方向,计划、监视和控制系统的操作。学习动作者334允许自适应系统学习,以便整个系统可以改进或最大化其性能。使能动作者33-5具有获取或开发使系统能够实施其所有其它活动的动作者的功能。在本上下文中,由使能动作者33-5获取的或开发的动作者可能是人、机器、软件等。
自适应系统可以是如下面更详细讨论的“可生存智能代理”。
自适应动作者的主题系统类似于简单或复合动作者的主题系统。
图34显示出指导动作者33-1、使能动作者33-5、操作动作者33-2、学习动作者33-4和管理动作者33-3中的每个如何可以包括它们自己相应的自适应系统。这可以被看作是递归式自适应系统。
操作动作者33-2的主题系统是与复合自适应动作者的主题系统相同的主题系统,即,它是实际在自适应动作者的主题系统上操作的自适应动作者的操作动作者组成部分。指导动作者33-1的主题系统是自适应动作者的目的和执行目标的系统。管理动作者33-3的主题系统是基于指导动作者33-1所定义的目的和执行目标的、自适应动作者的计划和监视量度的系统。学习动作者33-4的主题系统是由复合自适应动作者内的所有动作者采用的模型和元模型的(元)系统。使能动作者33-5的主题系统是能够执行复合自适应动作者内的所有动作者的职责的动作者的系统。
图35示出了多层递归(multiply recursive)的自适应系统。此处,学习动作者33-4包括自适应系统,该自适应系统包括自身包括另外的自适应系统的学习动作者35-1。类似地,操作动作者33-2包括自适应系统,该自适应系统的操作者35-2包括具有操作动作者35-3(其是另外的自适应系统)的另外的自适应系统。将能够理解如何可以将这种概念应用于使能动作者33-5、指导动作者33-1和管理动作者33-3内的多层递归。尽管在图35的实例中,是顶级动作者内的相同的动作者经历递归,但并非一定要如此。作为替代,在形成最高级动作者中的一个的自适应系统内,可以存在多个动作者的递归。
基于根元动作者的人工智能代理可以以一组合作的虚拟动作者来体现,每组动作者表示图33中所示的动作者中的一个。该智能代理具有许多与传统专家系统推理引擎的关键不同之处。具体地,模型组件可被认为是完全事件驱动的,而不是使用传统的IF、THEN产生规则。此外,一般根元处理器基于先前循环中产生的事件对模型的规则采取部分扫描,与传统专家系统推理引擎中出现的在每个循环中都执行规则库的完全扫描的方案相比,这提供了效率的改善。此外,对新规则的搜索是由学习动作者33-4执行的。新规则的结果然后通过其它动作者33-1、33-5、33-2、33-3的元模型中的改变而被传递。与传统专家系统推理引擎形成对比,基于元动作者的智能代理包括使能动作者33-5,其能够在学习动作者33-4识别新角色时补充或开发实现新角色的动作者,并且在被给予充分权限的情况下会使整个人工智能代理变得可生存。
向基于根元动作者的智能代理提供感知器和激励器(例如,在机器人环境内),允许代理将现实世界作为其主题系统。
将基于根元动作者的方法应用于系统开发,有可能将系统项目建立为可生存学习系统,其被指导、操作、管理、使能和适应,以通过使用与任何其它可生存学习系统相同的机制来生成或改变目标系统。(应注意,词语“系统”在此处是在前面参考图1描述的全部意义中使用的。)也有可能将系统开发项目操作建立为四个从属的活动系统,即调查、开发、准备和部署系统。调查系统是通过对作为整个系统开发项目的目标的系统进行分裂来触发的。其目的是理解某些问题或可能,并得出应该如何解决它的模型。发展系统是通过来自调查系统的所定义的改变目标系统的要求来触发的。发展系统设计、构建和模拟该改变。准备系统也是通过来自调查的所定义的改变要求触发的。准备系统设计、构建和模拟将借以配置改变的临时系统。部署系统是通过发展系统和准备系统二者的完成来触发的。部署系统执行准备系统中定义的临时系统来实现发展系统中定义的对目标系统的改变。
发展系统和准备系统是采用相似模式的对调查系统进行的活动(即,建模和模拟)来建立的。建模模式定义规则,通过这些规则,主题系统操作并将动作者分配和确立给角色,每个动作者处理这些规则内的个体职责。模拟系统既测试所建模的规则和角色的细节,也分析所产生的相互作用的动态特性。
图36示出了这一点。参考图36,其显示出一种自适应系统,其中的操作动作者37-1包括调查系统37-2、发展系统37-3、准备系统37-4和部署系统37-5。调查系统内包括有建模系统37-6和模拟系统37-7。在建模系统中,规则被定义,并且角色被分配和确立。在模拟系统37-7中,细节被测试并且动态特性被分析。发展系统和准备系统37-3、37-4也包括模型和模拟系统37-6、37-7,尽管为了清楚起见从图中省去了这些。发展系统和准备系统37-3、37-4被并行连接到调查系统37-2的输出。发展系统和准备系统37-3、37-4也彼此连接以便它们可以彼此相互作用。这些系统中的每个都具有连接到部署系统37-5的输出。
调查、发展和准备活动系统之间的关键不同之处在于正被建模和模拟的是什么。对于调查系统而言,它是正被建模和模拟的目标系统内的问题或可能性。调查的目的是获得对需要改变什么以便启动发展和准备的充分理解。对于发展系统而言,对目标系统的改变本身正在被建模和模拟。对于准备系统而言,它是将借以部署正被建模和模拟的改变的系统。准备系统是仅在当前状态和目标系统的未来状态之间的转换期间存在的临时系统。然而,在改变是例如对大型企业的显著改变(其可能会涉及训练以及新角色和职责,硬件和软件来源(softwaresourcing)以及建立,等等)的情况下,准备系统可以存在若干个月或更长时间。
尽管在不同的系统中实施动作,但发展和准备活动系统仍需要彼此相互作用。准备系统需要了解什么将要被部署,发展系统需要考虑不同设计选项的部署暗示,并且在适当的情况下改变其方法来使部署的工作或风险最小化。
该系统开发方法学是事件驱动的,而不是在现有技术系统开发方法学(参见图9A和9B)中发现的流程驱动的。它也是基于元模型的,这可以用于定义可重复使用的项目的类别。系统开发方法学也是学习系统,并且因此可以学习施加动作以便改善其性能。该方法学也包含从硬件体系结构到高级设计的分层的虚拟动作者。
与传统方法相比,上述的系统开发方法学包含集成模型,不包括问题域和实现域之间的语义间隙,不需要将一个阶段的模型转译成后面阶段的模型;相反,仅需要它提供体系结构的低层中的一个或多个虚拟动作者的确立器。此外,相同的活动和技术在不同的阶段和不同的领域内(例如,在软件、硬件和处理领域中)做相同的事。这允许比传统方法学更靠后地在循环中作出关于将角色分配给不同类型的动作者(例如,软件或硬件)的决定,从而实现了更大的灵活性。它也提供了实现可重复使用性和获得其益处的潜在可能,因为驱动所涉及的所有系统的分层事件驱动式元模型可以更适合作为用于生成一般可重复使用组件的基础。
系统开发方法学的主题系统是包括复杂的技术和社会技术系统改变的系统改变的系统。
下面是一般注释,其适用于所有上述实施例,并且是参考充当一些其它图的关键的图22A和22B来做出的。
在根元模型中,所有类型的活动系统是依据主题系统的对象、事件和动作来建模的。活动然后在动作者中间被共享。为了获得最大的益处,在元级进行建模最大化了每个模型的灵活性和可重复使用性。在为活动系统建模的过程中,对理解对象可以是人、地点(位置)、事件、动作或事物(例如,物理对象)的表示,可能会有所帮助。在图22A和22B中,标为O1至O10和OA至OC的具有方角的所有方框表示对象。对象可以是基本的,例如值O1(例如,整数或字符),或者是引用O2(例如,指向某物的指针)。对象可以是复合的,例如复合对象O3或对象的集合(诸如集合O6或O7)。作为替代,对象可以是序列或阵列等(未示出)。
事件可以被认为是反映另一对象的状态的瞬时改变的对象。在图22A和22B中,标为α、Δ、E1、T、F、ANY和Ω的所有箭头方框表示事件。事件可以是基本的,在这种情况下它可能是对象事件或动作事件。对象事件包括生成(α)、删除(未示出)和改变或修改(Δ)。动作事件包括启动(未明确地显示出)、完成(Ω)和以(T和F)状态完成。启动事件在动作开始被执行时发生。在图22B中,事件E1启动动作A1,动作A1继而启动动作A1.1(这由从A1的左上角到A1.1的左上角的链接示出)。完成(Ω)事件在动作的执行被结束时发生。对于一些动作,它是重要的动作的结果。这特别适用于可以导致真T或假F结果的二元测试,但也可以适用于n元测试(例如,高级语言中的“CASE”语句),在这种情况下可以有多于两个结果状态(未示出)。所引起的事件可以被称为“以状态完成的”事件。复合事件可以是在其组成部分中的一个发生时发生的ANY事件。可选地,复合事件可以是在它的所有组成部分都已经发生时发生的ALL事件(未示出)。这些可以分别被认为是OR和AND事件。
动作是响应于事件而被启动的并且引起其它对象的改变的对象。在图22B中,标为A1和A1.1至A1.4的具有圆角的所有方框表示动作。动作可以是基本动作A1.1至A1.4,或者是复合动作A1。复合动作A1由子动作A1.1至A1.4组成,每个子动作继而由复合动作的启动所直接或间接触发的事件启动。取决于事件和复合动作内的子动作的配置,它可以形成序列(一个子动作在另一个之后,在动作A1.4由动作A1.2或A1.3的完成启动时),并发(并行的两个或更多子动作,未示出),递归(在这种情况下子动作直接或间接地引用复合动作,未示出),诸如IFTHEN(跳转)动作或IF THEN ELSE(双向)动作(被显示为在测试动作A1.1后跟随有,在A1.1以True状态终止的情况下启动的可选动作A1.2或者在A1.1以False状态终止的情况下启动的A1.3)或CASE(n方式选择,未示出)动作的选择,将子动作重复零或多次(WHILE,未示出)或者一次或多次(REPEAT,未示出)的重复。使用该方法的可用的特殊类型的重复动作是复制(未示出),在这种情况下为一组对象的每个成员启动相同的子动作,子动作的每个具体值与其它具体值并行地进行。
基于根元动作者的模型的优势包括,它们采用根元一般执行模型,并且它们是事件驱动和并行的(与在现有技术中发现的流程驱动和顺序性相对)。此外,异常被仅作为另一种事件来对待,而它们的处理在采用现有技术建模的情况下是更加复杂的。它还允许以与用于机器的程序相同的语言来编写用于人类的程序。此外,约束条件可以在主建模语言内被处理,而无需求助于“添加”。这与例如UML(在这种情况下,约束条件由OCL处理)形成对比。基于根元动作者的模型还提供为硬件和软件建模所需的精确度以及在与人类进行通信处理时所需的虚拟呈现。重要的是,使模型可以直接实现,允许它们被直接测试、模拟和采用,而无需将其转译成另一种语言或范式。
在上述实施例中,每个模型可以采取任何适合的形式。例如,它可以是主题系统的图形表示,或者可选地,它可以是一组计算机可读指令。在后一种情况下,至少一些指令是非顺序的,并且可以例如采用集合理论或数学符号。
上面特别是关于图28、29和30描述的计算设备,优选地是电子计算设备。可选地,它们可以是生物机械学、量子或任何其它类型的计算设备而作为替代。相关技术领域的专业技术人员将会理解如何可以构建这些其它形式的计算机设备。
所描述的计算设备中的任何一个可以被提供为下述设备的一部分,或者被封装以用于下述设备中或作为下述设备:例如,通用计算机、制造或处理控制设备系统、网络基础设施设备、移动计算设备、移动通信设备、家用电器、车辆、计算机外设或机器人。

Claims (30)

1.一种用于在主题系统中实施动作的装置,所述装置包括:
被配置成存储所述主题系统的模型的存储器,所述模型包括:
表示所述主题系统内的对象的对象,所述模型中的每个对象与定义所述对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
事件定义规则,每个事件定义规则定义响应于事件而被要求启动的多个动作,事件是对象的状态的改变;以及
动作定义规则,每个动作定义规则定义多个对象,对象的状态改变被要求响应于相应的对象而启动,以及
对象定义规则,每个对象定义规则定义多个事件,该多个事件被要求响应于相应对象的状态改变来被触发,
其中所有事件和动作被构成对象,
根元处理器,其被配置成由根元模型引导,从而:
响应于事件的触发来检查相应的事件定义规则以确定需要启动的动作,并启动这些动作,
响应于动作的启动来检查模型中相应的动作定义规则,以确定需要改变状态的对象,并由此改变这些对象的状态,和
响应于对象的状态改变来检查模型中相应的对象定义规则以确定被要求触发的事件,并触发这些事件,
处理器,其被配置为:
直接在单个步骤中执行响应于单个事件而启动的动作,和
执行响应于关于子动作定义的事件启动的复合动作,所述子动作是响应于由所述复合动作的执行而(a)直接或(b)间接引起的事件来被启动的。
2.如权利要求1所述的装置,其中,所述模型包含两个或更多子模型,每个所述子模型是所述主题系统的子系统的模型。
3.如前述权利要求中的任一项所述的装置,其中,所述装置包括元动作者,所述元动作者包括元模型和元处理器,
所述元模型包括:
表示所述模型内的对象的对象,所述模型中的每个对象与定义所述对象在给定时刻处于两个或更多状态中的哪一个状态的数据相关联;以及
定义响应于事件而将被启动的动作的规则,事件是所述模型中的对象的状态的改变;并且
所述元处理器被配置成:
通过在所述模型中启动由所述元模型定义的取决于事件的一个或多个动作,来响应所述模型中的所述事件。
4.如权利要求3所述的装置,其中,所述元模型形成所述模型的一部分。
5.如权利要求3或权利要求4所述的装置,其中,所述元处理器形成所述处理器的一部分。
6.如权利要求3至5中的任一项所述的装置,其中,所述元模型包含两个或更多子元模型,每个所述子元模型是所述模型的子系统的模型。
7.如权利要求1或2所述的装置,其中,所述处理器包括:
一个或多个激活器,用于响应于事件的触发来检查所述模型中的所述事件的定义,以确定启动哪些动作,如果有的话,并接着启动那些动作;
一个或多个执行器,其被配置成实施所述动作并用于响应于动作的启动来检查所述模型中的所述动作的定义,以确定要改变所述主题系统中的什么对象的状态,如果有的话,并接着相应地改变那些对象的状态;
一个或多个记录器,其被配置成记录动作的结果并用于响应于对对象的状态的改变的识别来检查所述模型中的所述对象的定义,以从其确定所述对象的状态的改变应该引起所述主题系统中的什么事件,如果有的话,并触发那些事件;
一个或多个对外部通道的接口,经由所述外部通道,所述装置被连接到其它装置或外部世界;以及
一个或多个内部通道,所述激活器、执行器、记录器和接口经由所述内部通道而被连接。
8.如权利要求3所述的装置,其中,所述元处理器包括:
一个或多个激活器,用于响应于事件的触发来检查所述元模型中的所述事件的定义,以确定启动所述模型中的哪些动作,并接着启动那些动作;
一个或多个执行器,其被配置成实施所述动作并用于响应于动作的启动来检查所述元模型中的所述动作的定义,以确定要改变所述模型中的什么对象的状态,如果有的话,并接着相应地改变那些对象;
一个或多个记录器,其被配置成记录动作的结果,所述动作的结果包括所述元模型内的对象的生成、修改或删除,并且所述一个或多个记录器用于响应于对象的状态的改变来检查所述元模型中的所述对象的定义,以从其确定所述对象的状态的改变应该引起所述模型中的什么事件,如果有的话,并触发那些事件;
一个或多个对外部通道的接口,经由所述外部通道,所述装置被连接到其它装置或外部世界;以及
一个或多个内部通道,所述激活器、执行器、记录器和接口经由所述内部通道而被连接。
9.如权利要求1或2所述的装置,其中,所述根元处理器包括:
一个或多个激活器,用于响应于事件的触发来检查所述根元模型中的所述事件的定义,以确定启动哪些动作;
一个或多个执行器,其被配置成实施所述动作并用于响应于动作的启动来检查所述根元模型中的所述动作的定义,以确定要改变所述处理器中的什么对象的状态,如果有的话,并接着相应地改变那些对象;
一个或多个记录器,其被配置成记录动作的结果,所述动作的结果包括所述根元模型内的对象的生成、修改或删除,并且所述一个或多个记录器用于响应于对象的状态的改变来检查所述根元模型中的所述对象的定义,以从其确定所述对象的状态的改变应该引起所述处理器中的什么事件,如果有的话,并触发那些事件;
一个或多个对外部通道的接口,经由所述外部通道,所述装置被连接到其它装置或外部世界;以及
一个或多个内部通道,所述激活器、执行器、记录器和接口经由所述内部通道而被连接。
10.如权利要求1所述的装置,其中,所述模型确立处理器实体,所述处理器实体包括a)处理器、b)元处理器、或c)根元处理器中的一个,从而使所述处理器实体能够由所述装置的处理器、元处理器或根元处理器中的任何一个直接执行。
11.如权利要求10所述的装置,其中,所述装置被配置成启动代理主题系统中的动作,并且其中所述模型还包括以下规则:
用于处理模拟、物理和壁钟时间之间的关系的规则;
用于处理在所述第一装置的详细模型中定义的内部和外部事件的分布的规则;
用于处理被模拟的装置的生成和删除以及它们在正被模拟的模型内的角色的分配和重新分配的规则;以及
用于处理把被模拟的装置分配和确立给物理装置的规则。
12.如权利要求10至11中任一项所述的装置,多个所述装置与计算机系统结合,所述多个装置被配置成一起管理计算机系统的资源并使一个或多个模型、元模型或根元模型能够在所述计算机系统上同时执行。
13.如权利要求10至11中任一项的所述的装置,所述装置的模型包含使得能够将处理器、元处理器或根元处理器确立到具有冯·诺伊曼式体系结构的计算机或计算机系统上或者确立到管理具有冯·诺伊曼式体系结构的计算机或计算机系统的资源或向其提供简单接口的操作系统上的规则。
14.如权利要求1所述的装置,被配置来管理计算机系统的多个资源的每个,每个资源由如权利要求1所述装置的主题系统来管理,或者每个资源构成如权利要求1所述的装置的主题系统。
15.如权利要求1所述的装置,还包括编译器,所述编译器被配置成使用冯·诺伊曼计算机或分层操作系统的模型来将所述装置的所述模型静态地转译成冯·诺伊曼计算机或计算机系统或者管理冯·诺伊曼计算机或计算机系统的资源或向其提供更简单接口的操作系统的对象或代码。
16.如权利要求15所述的装置,其中,所述编译器包括被配置成静态地转译所述装置的所述模型的元转译器和硬件元模型。
17.一种用于在主题系统中实施动作的基于逻辑的计算设备,所述设备包括:
用于实现所述主题系统的模型的装置,所述模型包括:
表示所述主题系统内的对象的对象,所述模型中的每个对象与指示所述对象在给定时刻处于一个或更多状态中的哪一个状态的指示相关联;以及
事件定义规则,每个事件定义规则定义响应于事件而被要求启动的多个动作,事件是对象的状态的改变;
动作定义规则,每个动作定义规则定义多个对象,对象的状态改变被要求响应于相应的对象而启动,以及
对象定义规则,每个对象定义规则定义多个事件,该多个事件被要求响应于相应对象的状态改变来被触发,
其中所有事件和动作被构成对象,以及
用于实现根元处理器的装置,其被配置成由根元模型引导,从而:
响应于事件的触发来检查相应的事件定义规则以确定需要启动的动作,并启动这些动作,
响应于动作的启动来检查模型中相应的动作定义规则,以确定需要改变状态的对象,并由此改变这些对象的状态,
响应于对象的状态改变来检查模型中相应的对象定义规则以确定被要求触发的事件,并触发这些事件,以及
用于实现处理器的装置,被配置为:
直接在单个步骤中执行响应于单个事件而启动的动作,和
执行响应于关于子动作定义的事件启动的复合动作,所述子动作是响应于由所述复合动作的执行而(a)直接或(b)间接引起的事件来被启动的。
18.如权利要求17所述的设备,其中,用于实现根元处理器的装置包括一个或多个激活器、一个或多个执行器、一个或多个记录器、一个或多个内部通道以及一个或多个接口。
19.如权利要求18所述的设备,其中,至少一个记录器包括:
事件队列,用于包含多个被触发的事件;
动作队列,用于包含多个被启动的动作;和
对象队列,用于包含对将被引用或改变的多个对象的引用。
20.如权利要求19所述的设备,其中,所述事件队列用于以所述被触发的事件得到触发的顺序来包含所述被触发的事件,并且/或者所述动作队列用于以所述被启动的动作得到启动的顺序来包含所述被启动的动作,并且/或者所述对象队列用于以所述引用被产生的顺序来包含所述引用。
21.如权利要求19至20中的任一项所述的设备,其中,至少一个记录器还包括:
对象队列登记器,用于包含对所述对象队列中的条目的引用;
对象登记器,用于包含对当前对象的引用;和
对象类型登记器,用于包含所述当前对象的类型。
22.如权利要求20所述的设备,其中,至少一个激活器包括:
事件队列登记器,用于包含对所述事件队列中的条目的引用;
事件登记器,用于包含对当前事件的引用;以及
事件类型登记器,用于包含所述当前事件的类型。
23.如权利要求20所述的设备,其中,至少一个执行器包括:
动作队列登记器,用于包含对所述动作队列中的条目的引用;
动作登记器,用于包含对当前动作的引用;以及
动作类型登记器,用于包含所述当前动作的类型。
24.如权利要求17所述的设备,其包括一起设置在单个处理单元或集成电路上的单个激活器、单个执行器、单个记录器、一个或多个内部通道以及一个或多个接口。
25.如权利要求17所述的设备,其包括单个激活器、单个执行器、单个记录器以及一个或多个接口,这些组件中的每个被设置在相应的处理单元或集成电路上,所述组件经由一个或多个内部通道而相互连接。
26.如权利要求25所述的设备,其包括经由所述一个或多个内部通道而被连接的多个激活器,其中,至少两个所述激活器共享共同的事件队列。
27.如权利要求25或26所述的设备,其包括经由所述一个或多个内部通道而被连接的多个执行器,其中,至少两个所述执行器共享共同的动作队列。
28.如权利要求25或26所述的设备,其包括经由所述一个或多个内部通道而被连接的多个记录器,其中,至少两个所述记录器共享共同的对象队列。
29.如权利要求25或26所述的设备,其中,所有所述组件位于共同的外壳内。
30.如权利要求25或26所述的设备,其中,两个或更多所述组件被分布在不同位置处。
CN2005800376254A 2004-10-18 2005-10-17 对主题系统的动作施加 Expired - Fee Related CN101288090B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0423110.6A GB0423110D0 (en) 2004-10-18 2004-10-18 Acting on a subject system
GB0423110.6 2004-10-18
PCT/EP2005/055310 WO2006042841A2 (en) 2004-10-18 2005-10-17 Acting on a subject system

Publications (2)

Publication Number Publication Date
CN101288090A CN101288090A (zh) 2008-10-15
CN101288090B true CN101288090B (zh) 2013-09-04

Family

ID=33462924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800376254A Expired - Fee Related CN101288090B (zh) 2004-10-18 2005-10-17 对主题系统的动作施加

Country Status (7)

Country Link
EP (1) EP1805704A2 (zh)
JP (1) JP5128949B2 (zh)
CN (1) CN101288090B (zh)
AU (1) AU2005296859B2 (zh)
CA (1) CA2583921C (zh)
GB (3) GB0423110D0 (zh)
WO (1) WO2006042841A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078552B2 (en) * 2008-03-08 2011-12-13 Tokyo Electron Limited Autonomous adaptive system and method for improving semiconductor manufacturing quality
US8725667B2 (en) 2008-03-08 2014-05-13 Tokyo Electron Limited Method and system for detection of tool performance degradation and mismatch
US8190543B2 (en) 2008-03-08 2012-05-29 Tokyo Electron Limited Autonomous biologically based learning tool
US8396582B2 (en) 2008-03-08 2013-03-12 Tokyo Electron Limited Method and apparatus for self-learning and self-improving a semiconductor manufacturing tool
CA2692018A1 (en) 2009-02-06 2010-08-06 It Actual Sdn. Bhd. Computing platform based on a hierarchy of nested data structures
CA2679786A1 (en) * 2009-09-16 2009-12-16 Ibm Canada Limited - Ibm Canada Limitee Conceptual representation of business processes for cross-domain mapping
AU2011380289B2 (en) * 2011-10-31 2015-03-26 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for synchronizing events
KR102011094B1 (ko) * 2017-06-28 2019-08-14 백옥기 인공지능의 신경가소성 및 자가적응 유연성을 구현하기 위하여 자가적응형 동적 다차원 배열을 관리하는 방법과 이를 이용한 컴퓨터 소프트웨어
CN109460214B (zh) * 2018-11-06 2021-07-27 上海航天测控通信研究所 基于idef建模的航天器软件结构化方法
CN110164082B (zh) * 2019-06-21 2021-01-15 山东大学 家庭安防报警系统的静态控制器设计方法及系统
CN117099057A (zh) * 2021-04-02 2023-11-21 三菱电机株式会社 程序生成装置和程序生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875330A (en) * 1994-02-28 1999-02-23 International Business Machines Corporation Tool for defining complex systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IE873207L (en) * 1987-11-26 1989-05-26 Schering Ag An energy management system
US5596331A (en) * 1988-05-13 1997-01-21 Lockheed Martin Corporation Real-time control sequencer with state matrix logic
JPH02109127A (ja) * 1988-10-19 1990-04-20 Hitachi Ltd 仕様処理方法
US5887143A (en) * 1995-10-26 1999-03-23 Hitachi, Ltd. Apparatus and method for synchronizing execution of programs in a distributed real-time computing system
JP3598732B2 (ja) * 1997-05-20 2004-12-08 三菱電機株式会社 分散制御システムの構成管理方法およびこれに用いるデータ
JPH113108A (ja) * 1997-06-13 1999-01-06 Sony Corp 加工制御方法及び加工制御装置
WO1999030230A1 (en) * 1997-12-12 1999-06-17 Cacheon, L.L.C. Naturally parallel computing system and method
JP3863069B2 (ja) * 2002-06-06 2006-12-27 本田技研工業株式会社 プラントの制御装置
JP2004164328A (ja) * 2002-11-13 2004-06-10 Fujitsu Ltd 一人camシステムおよび一人camプログラム
US7006900B2 (en) * 2002-11-14 2006-02-28 Asm International N.V. Hybrid cascade model-based predictive control system
AU2003290932A1 (en) * 2002-11-15 2004-06-15 Applied Materials, Inc. Method, system and medium for controlling manufacture process having multivariate input parameters
JP3940665B2 (ja) * 2002-11-27 2007-07-04 株式会社東芝 ハイブリッドシミュレーション装置およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875330A (en) * 1994-02-28 1999-02-23 International Business Machines Corporation Tool for defining complex systems

Also Published As

Publication number Publication date
GB0423110D0 (en) 2004-11-17
GB2428322A9 (en) 2007-02-12
GB0613704D0 (en) 2006-08-23
WO2006042841A2 (en) 2006-04-27
GB2425868B (en) 2007-07-04
GB2425868A (en) 2006-11-08
GB0618546D0 (en) 2006-11-01
GB2428322A (en) 2007-01-24
JP2008517362A (ja) 2008-05-22
CN101288090A (zh) 2008-10-15
WO2006042841A8 (en) 2008-01-17
EP1805704A2 (en) 2007-07-11
CA2583921A1 (en) 2006-04-27
JP5128949B2 (ja) 2013-01-23
CA2583921C (en) 2017-01-24
AU2005296859B2 (en) 2011-03-10
AU2005296859A1 (en) 2006-04-27

Similar Documents

Publication Publication Date Title
CN101288090B (zh) 对主题系统的动作施加
US7822592B2 (en) Acting on a subject system
Ambriola et al. Assessing process-centered software engineering environments
Manolescu Workflow enactment with continuation and future objects
Griss Product-line architectures
Chrszon et al. Modeling role-based systems with exogenous coordination
Brown et al. Enterprise-scale CBD: Building complex computer systems from components
Martinez Mining software artefact variants for product line migration and analysis
Omicini et al. MAS as complex systems: A view on the role of declarative approaches
Arronategui et al. Towards an architecture proposal for federation of distributed DES simulators
KR20020022070A (ko) 소프트웨어의 결정방법, 처리장치
Thiry et al. Self-adaptive Systems Driven by Runtime Models.
Steffen et al. Generating hard benchmark problems for weak bisimulation
Duranton et al. Computing Systems: Research Challenges Ahead: The HiPEAC Vision 2011/2012
Wisniewski Agent-based blackboard architecture for a higher-order theorem prover
Hevner et al. Eras of business computing
Caselli et al. Engineering semantic self-composition of services through tuple-based coordination
Qin et al. Architecture and System of E-Commerce
Kyaruzi et al. Concerns on architecture-centered software development: A survey
Cavalcanti et al. Refinement Techniques in Software Engineering: First Pernambuco Summer School on Software Engineering, PSSE 2004, Recife, Brazil, November 23-December 5, 2004, Revised Lectures
Beebe A Bibliography of Publications in IEEE Computer: 1990–1999
Wirsing et al. Process Calculi for Modelling Mobile, Service-Oriented, and Collective Autonomic Systems
Houstis et al. Future problem solving environments for computational science
Fong An Operational Approach to Object-oriented Software
Hahn et al. A platform-independent model for agents

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

Granted publication date: 20130904

Termination date: 20181017