没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记175(2007)97-117www.elsevier.com/locate/entcsA A视角下的形式ReSpecT安德烈·奥米奇尼1ALMAMATERSTUDIORUM-Universita`diBologna,viaVenezia 52,47023切塞纳,意大利摘要协调模型和协调语言在多智能体系统(MAS)中有了新的发展方向通过重新解释面向代理的抽象方面的结果,发现新的概念空间,这扩展了协调技术的范围远远超出其原来的范围。这是例如协调媒体的情况,当在MAS上下文中根据协调工件重新铸造时。在本文中,我们采取成熟的ReSpecT语言编程元组中心的行为,并采用A A(代理和工件)元模型作为一个角度来重新解释,修改,扩展和完善它。一个正式的模型,所谓的A AReSpecT语言,以及一个例子说明其用于MAS协调。保留字:基于元组的协调,MAS的工件,A A元模型,元组中心,ReSpecT。1介绍在过去的十年中,协调模型和语言领域在复杂系统中管理交互的一般问题上产生了广泛的结果:这些结果今天在计算系统研究的热点领域中找到了自然的开发,如Web服务演示,WfMS(工作流人工系统)和MAS(多智能体系统)。然后,从协调领域中获得成熟的结果似乎是合适的,并且超越它们仅仅是跨学科的应用,而不是走向完全的跨学科方法。这基本上意味着,协调研究者的发现应该首先被用来解决复杂系统中的交互管理问题,因为它们来自其他研究领域(跨学科性);然后,它们应该根据新的概念框架重新塑造,适当地修改和扩展到新的解释路线,并以这样一种新的形式回到它们来自的地方(跨学科性)[20]。今天,协调被认为是复杂系统建模和工程中的关键问题之一:因此,它一直是许多研究的主题。1电子邮件:andrea. unibo.it1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2007.03.00698A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97社会学、经济学和组织理论等领域的研究[16]。在那里,协调通常被认为是一种手段,以整合多种多样的活动或进程,使所产生的整体表现出一些期望/要求的特征。协调机制的设计在MAS领域具有特别的挑战性,因为它们通常嵌入在高度动态的环境中,并且在设计时不可能知道代理的数量和行为。然而,MAS领域的概念基础仍然处于快速发展之中,受到来自分布式计算、编程语言、软件工程、仿真、人工智能和其他相关领域的深入和异构输入的推动,这些领域今天正朝着面向代理的方向发展[32]。在最有前途的方法中,A A元模型[19]根据两个基本抽象重新解释MAS:代理和工件。Agent是封装控制的主动实体,它们负责共同构建整个MAS行为的目标/任务人工制品是被动的,反应性的实体,负责服务和功能,使各个代理在MAS中一起工作,并根据MAS的需要塑造代理环境。总而言之,A A元模型对MAS的工程设计[10],编程[28]和模拟[11]的方式产生了深刻的影响。沿着这条线,协调工件可以被认为是协调媒体的概括,作为封装MAS协调服务的专门工件[19]。将AA元模型带回到协调领域提出了一些有趣的考虑。例如,工件的特征(如可检查性、可伪造性、可链接性等)可以用来建立一个框架,对协调媒体进行分类,并根据协调文献[18]对其进行理解和比较更一般地说,建立良好的协调模型和语言可以适当地重新解释内的A-A的概念框架,并相应地修改和扩展,从而为MAS工程师提供了众所周知的和测试技术的MAS开发的基础上的A-A元模型。在本文中,我们遵循后一种思路。特别地,我们采用ReSpecT语言来编程元组中心的行为[15,25]及其形式模型[14],并讨论其在AA框架中的重新表述第2节简短地讨论了AA元模型,以及工件的主要特征。第3节简要回顾了TuCSoN模型和ReSpecT语言的要点第4节介绍了新的、修订的ReSpecT语法,以及代理的AAReSpecT第5节介绍了A AReSpecT的语义,它是通过沿着A A主线对原始语义[14]进行大量修改和扩展而获得的。在第6节讨论了与以前的工作和相关文献的关系之后,第7节提供了最后的评论和未来的工作路线。A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97992多Agent系统的A/A元模型我们的MAS协调方法基于AA(代理和工件)元模型,该模型采用工件-以及代理-作为基本的MAS构建块来编程,更一般地说,设计复杂的软件系统[19]。在A-A元模型中,代理是表示主动的、面向任务/目标的组件的基本抽象,被设计为主动地进行一个或多个活动以实现某种目标,需要不同水平的技能和推理能力。另一方面,人工制品是表示被动的、面向功能的构建块的基本抽象,这些构建块由代理在其工作活动期间单独或合作地构造和使用。活动。以人类社会为隐喻,智能体扮演着人类的角色,而人工制品(artifacts)则与人类所使用的物品和工具(在人类社会中也称为人工制品)相一致,它们要么是支持人类工作和实现人类目标的手段,要么是人类活动的目标。人工制品在人类活动(特别是社会活动)中的作用是活动理论(AT)[9]和分布式认知[8]等理论中最重要和最受关注的问题之一,这些理论在CSCW和HCI [29,12]等领域中广为人知并得到了应用根据AT,如果不考虑调解组件的动作和交互的工具或工件,就不能设想或理解由系统的一个或多个协作组件进行的任何活动。一方面,人工制品调解各个组件与其环境(包括其他组件)之间的交互;另一方面,它们体现了环境中可以被设计和控制以支持组件活动的部分。此外,作为环境的可观察部分,工件可以与活动的开发一起被监视,以评估整体系统性能并跟踪系统历史。换句话说,中介人工事实成为分析和综合复杂系统中的个体以及合作工作活动的第一类实体分布式认知[8]也促进了这样的愿景,这是认知科学的一个分支,声称人类的认知和知识表示,而不是局限于个人的边界内,而是分布在环境中的个人,工具社会系统中活动的复杂性与AT和分布式认知的复杂性相同,这就是为什么我们认为这些概念框架的跨学科研究是MAS内部社会活动分析和综合的基础,特别是调解这些活动的人工制品[26]。示例范围从协调抽象,如元组中心[15],到stigmergy协调背景下的信息素基础设施[23],到电子机构方法中的机构抽象[5],引用一些。与代理不同,人工制品并不意味着是自主的或表现出积极的行为,也不具有社会能力。在主要的属性中,100A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97根据工件的目的和性质[18],可以列出:(i)可检查性和可控制性,即在运行时观察和控制工件结构、状态和行为的能力,以及在诊断、调试、测试方面支持其在线管理的能力;(ii)可延展性(或可伪造性),即根据开放环境中发生的新需求或不可预测事件在运行时(在线)改变/调整工件功能的能力;(iii)可链接性,即在运行时将不同的工件链接在一起,作为动态组合的形式,作为一种手段,以提供功能的复杂性,并支持动态重用,(iv)情况,即沉浸在MAS环境中的属性,并对环境事件和变化做出反应。值得注意的是,大多数这些工件特征不是代理特征:通常,代理是不可检查的,不提供延展性的手段,不提供更改的操作,并且不通过操作链接相互组合。另一方面,代理人通常被告知位于:然而,如何实现这一点,特别是如何协调主动性和反应性特征,并不是一件容易的事情。相反,一旦工件被定位,代理situatedness可以根据他们与工件的相互作用来重铸。协调工件[19]是MAS工件的主要示例,作为旨在为代理和MAS提供特定协调功能和服务的工件[31]。在人类社会中,协调工件就像交通灯、路标、白板上的便利贴一样常见在MAS的上下文中,协调工件用于启用和管理中介交互的形式-即,其中代理不直接通信,而是通过介质通信,这对于支持沿时间和空间维度解耦的通信形式是必不可少的。因此,采用AA视角的MAS的总体视图由分布在网络上的代理给出,这些代理通过经由某种ACL(代理通信语言)(例如FIPA ACL [6])进行通信以及通过共享和(共同)利用不同种类的工件来进行互操作和协调。一般来说,该模型重塑了MAS内部的交互空间,使得MAS的组件可以以三种不同的方式进行交互:Agent与Agent对话; Agent使用工件;工件与工件链接处理交互、协调模型和基础结构(如TuCSoN[22])的管理代表了可以测试AA方法的最自然的技术。因此,用A-A观点来修正TuCSoN模型和语言似乎是恰当的.特别是,在本文中,我们重铸ReSpecT语言编程TuCSoN元组中心:我们重新解释,修改,扩展和完成它,使其适合MAS的A A元模型。这次行动的目的有两个。一方面,我们的目标是显示建模能力的AA时,适用于(MAS)协调。另一方面,我们的目标是为MAS工程师提供可靠和经过测试的技术,如ReSpecT和TuCSoN,以根据AA元模型构建MAS工件A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)971013TuCSoNReSpecTTuCSoN(TupleC entresS spreadover theN etwork2)是用于MAS协调的通用面向代理的模型和基础设施[22]。TuCSoN基于一个协调模型,提供元组中心作为设计和开发通用协调工件的第一类抽象[15]。TuCSoN元组中心通过基于ReSpecT逻辑的规范语言进行编程。在本节的其余部分,我们首先回顾TuCSoN中元组中心协调的要点(第3.1小节);然后,我们恢复原始ReSpecT语言的主要功能,用于对TuCSoN元组中心的行为进行编程(第3.2小节)。3.1TuCSoN元组中心协调模型元组中心是一个元组空间,其增强了响应于交互对其进行编程的可能性。因此,首先,智能体可以以与Linda元组空间相同的方式在TuCSoN元组中心上操作[7]:通过一组简单的协调原语交换元组(知识块的有序集合)。代理可以用out原语在元组中心写一个元组;或者用in,rd,inp,rdp等原语从元组中心读取一个元组,这些原语指定一个元组模板,也就是说,根据某种元组匹配机制,一组元组的读取元组可以是破坏性的(in,inp删除匹配的元组)或非破坏性的(rd,rdp简单地读取匹配的元组),暂停的(in,rd等待直到找到匹配的元组)或非暂停的(inp,rdp立即返回匹配的元组或失败结果)-但无论如何都是不确定的:当在元组中心找到一个以上的元组匹配元组模板时,其中一个是不确定的。因此,元组中心享有元组空间的所有许多特征,可以沿着三个不同的维度进行分类:生成通信,as-associative access和suspensive semantic。生成通信(其中生成的信息相对于生成器具有独立的生命)的主要特征是基于中介交互的解耦形式(空间,时间,名称):发送者和接收者不需要彼此认识,在同一空间或同一时间共存以进行通信(交换元组,特别是)。基于元组匹配的关联访问(基于交换的信息的结构和内容而不是基于位置或名称的访问)促进基于元组结构和内容的同步:因此,协调是数据驱动的,并且允许基于知识的协调模式。最后,推理语义促进了基于知识可用性的协调模式,并与不完整或部分知识很好地耦合。更重要的是,虽然基本的元组中心模型与元组的类型无关[15],但TuCSoN元组中心采用逻辑元组-元组和元组模板本质上都是Prolog事实-并且统一被用作元组匹配机制-2TuCSoN技术在TuCSoN网站上作为开源项目提供[30]102A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97nism。例如,ag1执行操作we?在元组中心的(activity(ag1,CaseID))中,包含元组activity(ag1,c16)和activity(ag2,c22)的we将被从we中移除的返回元组activity(ag1,c16)(与模板统一的那个)。由于元组中心的整体内容是逻辑事实的多集合,因此它具有双重解释,要么是消息的集合,要么是代理人之间的通信(逻辑)理论,从而促进了关于通信的推理形式。TuCSoN基础设施使得利用元组中心作为分布在网络上的协调服务成为可能[22]。特别地,TuCSoN整体协调空间由TuCSoN节点的开放集合构成,其对应于通过网络连接的互联网主机或服务器。每个节点可以包含任意数量的元组中心,每个元组中心由唯一的(在节点内)逻辑名称(例如留言板)。代理可以引用元组中心,或者指定它们的全名,即,它们的逻辑名称加上托管元组中心的节点的地址(例如,消息board@acme.org),或者它们的本地名称,用于位于代理所在的同一主机上的元组中心。因此,代理可以通过采用本地或全名来利用本地或全局协调空间。最后,元组中心是一个可编程的元组空间,从而增加了协调媒介的可编程性,作为协调的一个新维度。虽然元组空间响应于通信事件的行为是固定的(因此,协调原语的效果是固定的),但元组中心的行为可以通过定义一组指定元组或反应来适应应用需求,这决定了元组中心应该如何对传入/传出事件做出反应。虽然基本元组中心模型不受任何特定语言的约束来定义反应[15],但TuCSoN采用基于逻辑的语言ReSpecT(反应规范元组)来编程元组中心。3.2ReSpecT作为核心协调语言最初的ReSpecT[14]是一种基于逻辑的语言,用于TuCSoN采用的元组中心的规范。作为一种行为规范语言,ReSpecT:• 能够定义元组中心内的计算,称为反应,• 使得可以将反应与发生在元组中心的事件相关联。因此,ReSpecT既有声明性部分,也有过程性部分。作为一种规范语言,它允许通过spe将事件声明性地关联到反应,Cif iclogictic 因 此,给定Ev,如果θ = mgu(E,Ev),则一个特殊的向上反 应(E,R)将Rθ与Ev相关联。3作为一种反应语言,ReSpecT使反应能够在程序上,它是按照逻辑反应目标的顺序来定义的,每一个目标要么成功要么失败。一个反应作为一个整体是成功的,如果它的所有反应目标都满足-3MGU是逻辑编程中定义的最通用的unifierA. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97103失败,否则失败。每个反应都是用事务语义顺序执行的:因此,失败的反应对逻辑元组中心的状态没有影响由通信事件触发的所有反应都在服务任何其他事件之前执行:因此,代理将服务通信事件和执行所有相关联的反应的结果一起感知为元组中心状态的单个转换。因此,可以根据MAS的协调要求,使逻辑元组中心上的通信原语的执行尽可能复杂一般来说,由于ReSpecT已被证明是图灵等价的[3],因此任何可计算的协调律原则上都可以封装到ReSpecT元组中心中。这就是为什么ReSpecT可以被认为是一种通用的协调核心语言:一种可以用于表示和制定任何类型的协作支持系统的策略和规则的语言采用ReSpecT元组的声明性解释,TuCSoN元组中心具有双重性质[14]:通信理论(普通元组的集合)和协调理论(指定元组的集合原则上,这此外,ReSpecT规范元组的双重解释(声明性或过程性)允许知识和控制被统一表示(作为Prolog类事实)并封装在同一协调工件中。3.3A A视角下的TuCSoN ReSpecT&在AA视角中,TuCSoN为代理提供了多种分布式工件(元组中心),其包含共享知识和以逻辑元组表示ReSpecT元组中心是可检查的伪影-但是它们是不可控制的。此外,它们是可延展的,因为它们的行为可以在运行时通过改变它们的行为规范来改变虽然最初的ReSpecT规范既不包含链接性也不包含情境性[15],但已经引入了两个沿着这些方向移动的扩展首先,在[ 27 ]中提出了第一个扩展,它为元组中心组合引入了第一个可链接性原语,即out tc。然后,定时ReSpecT在[17]中定义,它首先提出了定时伪影的概念,Timed ReSpecT tuple centres,并允许指定封装在TimedReSpecT tuple centres中的时间相关4A AReSpecT简介4.1采用A A视角采用A A的观点促进了MAS交互空间的更清晰的视图。首先,需要一个更一般的事件概念。由于工件是被动的实体,MAS中事件的唯一真实来源是代理和环境。因此,在MAS中发生的任何事情都有其然而,文物是反应性的,104A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97互相联系,这样,他们就可以互相交流作为第一个结果,任何工件事件的直接原因也可能是来自另一个工件的链接调用-无论如何,不是主要原因因此,一个通用的事件描述符应该包括事件的原始原因和最直接的原因,这样就可以完全观察到事件链,并正确定义工件协调行为。作为分布式计算的元模型,&AA也促进了控制的解耦:因此,(i)链接的工件应该完全解耦,(ii)代理应该自由地自主选择同步或异步原语,而目标工件的行为保持不变,不受约束。因此,工件上的每个操作(或链接)都应该有一个请求/响应结构:任何调用(请求),一旦被服务,总是意味着一个完成(响应)的消息-以及结果,如果需要的话-由“操作者”根据其性质进行处理。如果一个链接被另一个工件调用,完成应该以完全异步的方式处理,以确保工件控制的完全解耦;如果一个操作被代理调用,完成应该根据代理的自主选择以同步或异步的方式处理。通常,代理使用工件的操作和工件之间的组合链接不一定相关--当然,如果不是由工件结构和行为相关的话。然而,工件和MAS工程中的概念完整性将明显受益于工件操作和链接之间的一致性。因此,可能希望工件操作的原语可用于代理和工件的开发-没有对原语调用者的性质和行为的先验假设,而是具有工件通过观察调用的性质来辨别调用者的性质的能力,只要有用或需要。4.2A AReSpect:新闻沿着上面的思路,原始的ReSpecT语言已经被修改和扩展,以遵循AA的观点。表1中报告了新定义的AAReSpecT的所得核心语法。4第一个明显的扩展涉及A AReSpecT的指定部分:反应指定元组已经扩展到包括保护指定。然后,AAReSpecT元组中心的行为根据前反应(E,G,R)的规范来定义:如果θ= mgu(E,Ev)并且保护G为真,则Suatie a将反应Rθ与Ev相守卫是守卫序列4A AReSpecT语言显然是丰富的别名和快捷方式的原因表现力。特别是,就事件信息标识符而言,谓词的别名是pred 、 call 和 ( 已 弃 用 ) operation 和 op; 元组的 别 名 是 arg; 源的 别 名 是 from; 目标的 别 名 是 to 。 就P2PGuardPredicate标识符而言,invocation、inv、req和pre是请求的别名;completion、compl、resp和dpos是响应的别名;between(Time,Time')是(before(Time),after(Time'))的别名; operation是(from agent,to tc)的别名; link out是(from tc,to tc,endo,inter)的别名; link in是(from tc,to tc,exo,intra)的别名; internal是(from tc,to tc,endo,intra)的别名。5反应(E,R)的初始反应时间通常是指在给定的条件下进行反应。A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97105表1A AReSpecTTCSpecificationTuple::={TCSpecificationTuple}。}SpecictionTuplenSimpleTCEvent |time(时间)Guard|(GuardPredicate {,GuardPredicate})Reaction|(<$ReactionGoal <${,<$ReactionGoal <$})ReactionGoal |ObservationPredicate|计算|(ReactionGoal; ReactionGoal)TC Predicate |TCLink同品种器械TCLinkPredicate?::= TCIDentifier?SimpleTC同品种器械SimpleTCPredicate |TCForgePredicateTCStatePredicate中的字符串::=|InP|路|RDP|出来|没有|得到|设置TCForgePredicateObservationPredicateEventView|事件|开始EventInformation|元组| 源|目标|时间GuardPredicate|响应|成功|失败|Endo|EXO|帧内|除其他|从代理|代理人|从TC|至tc|之前(时间)|之后(时间)时间 是非负整数Tuple是Prolog项计算是一个类似Prolog的目标,执行算术/逻辑计算TCIDenti文件名::=TCName地址网络位置联系我们 是一个Prolog基项NetworkLocation是一个Prolog字符串,表示IP名称或DNS条目谓词如表1中的“GuardPredicate”所定义,其语义在表5中定义。在元组中心触发反应之前,现在可以检查事件的大量条件:事件状态,其源,其目标,其时间。沿着同 样的路线 ,观察谓词 已经根据 新的事件模 型进行了 推广。由于 AAReSpecT事件是根据表4中的结构定义的,因此“观察谓词”谓词现在具有表1中定义的形式:特别地,事件和开始谓词分别指事件的直接和另一个 基本扩展 涉及元组中 心上的操 作、链接和 内部操作 的一致性。 AAReSpecT元组中心上的可允许原语-表1中的ACTCStatePredicate-可以由代理调用,但也可以在元组中心的反应中使用,以作用于其状态,或者通过链接调用作用于另一个元组中心状态。语义也基本相同唯一的例外是in和rd原语,它们的暂停语义在反应中不保留,如果不是在链接调用中66这主要是由于反应执行不能挂起,因为它具有事务性。因此,in和rd的语义本质上106A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97更 重 要 的 是 , 用 于 普 通 元 组 的 同 一 类 谓 词 也 可 以 用 于 指 定 元 组 - 表 1 中 的TCForgePredicate-通过简单地添加spost fix-从而为一致性增加了另一个维度。最后,A AReSpecT 包括对协调工件的位置性的第一次扩展。事实上,在TimedReSpecT [17]之后,它包括时间事件(表4),定时反应以及处理时间的谓词(表1)。更一般地,可以设想进一步的4.3A AReSpecT在经典的用餐哲学家问题中,N个哲学家代理人共享N根筷子和一个意大利面碗[4]。每个哲学家都需要两只筷子来吃饭,但是每一只筷子都是由两个相邻的哲学家共享的:所以,这两只筷子必须原子地获得以避免死锁,并原子地释放以确保公平。在[14]中,提出了基于ReSpecT的哲学家用餐问题的实现,其中• 每个哲学家代理获取/释放其作为元组chops(i,j)的对:愿意吃饭的哲学家通过单入(chops(i,j))操作从表元组中心获取他需要的对,并通过单出(chops(i,j))操作释放它。• 各个筷子被表示为CHOP/1类型的元组:哲学家操作的结果是CHOP(i)和CHOP(j)元组从/在表元组中心的• 表元组中心通过适当的ReSpecT行为规范既作为表状态的知识库(作为逻辑元组空间),又作为两个不一致表示之间的中介(作为可编程协调工件)。在这里,我们利用一些新的功能的A AReSpecT,以实现分布式版本的问题。的基本思想是移动的经典问题,模型多个并发访问共享资源,分布式的上下文中,利用内在的分布促进的AA元模型的代理和文物。在分布式用餐哲学家问题中,假设N个哲学家代理分布在网络中:每个哲学家被分配一个座位,该座位由位于网络中的协调工件(座位(i,j)元组中心-意味着chops(i,j)是分配给哲学家的元组对)表示。代理所在的相同TuCSoN节点。 当一个哲学家打算吃饭/思考时,他只是通过发出一个元组wannaeat/wannathink来表达他的意图。seat(i,j)tuple centre.反过来,每个座位(i,j)元组中心负责处理A AReSpecT reactions-其中包含in和rd主要是为了保持语言的一致性。A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97107表2分布式用餐哲学家:座位(i,j)元组中心的ReSpecT代码reaction(out(wanna_eat),(operation,invocation),(%(1)in(philosopher(thinking)),out(philosopher(waiting_to_eat)),current_target(seat(C1,C2)),table@node?in(chops(C1,C2)).反应(out(wanna_eat),(operation,completion),%(2)in(wanna_eat)).reaction(in(chops(C1,C2)),(link_out,completion),(%(3)in(philosopher(waiting_to_eat)),out(philosopher(eating)),out(chops(C1,C2)).reaction(out(wanna_think),(operation,invocation),(%(4)in(philosopher(eating)),out(philosopher(waiting_to_think)),current_target(seat(C1,C2)),in(chops(C1,C2)),table@node?out(chops(C1,C2)).反应(out(wanna_think),(operation,completion),%(5)in(wanna_think)).reaction(out(chops(C1,C2)),(link_out,completion),(%(6)in(philosopher(waiting_to_think)),out(philosopher(thinking)).它自己的代理意图(吃和想),记录哲学家的状态(想,等着吃,吃,等着想 ) 和 筷 子 的 可 用 性 ( chops ( i , j ) tuple ) , 以 及 与singletabletuplecentre(locatedin)的关联性。node节点),它保存并管理表示单个筷子在桌子上。总的来说,分布式用餐哲学家问题需要N+1个工件:特别是一个社会工件,在所有哲学家之间共享,并表示桌子以及调节哲学家交互的协调规则,以及N个单独的工件,每个工件与一个哲学家代理相关联,并处理其关联的哲学家和桌子之间的整个虚拟架构导致了一个星形网络,其中表元组中心位于中间,而N座(i,j)元组以周围为中心,在哲学家还有桌子分布式元组中心之间的连接-需要保持全局系统行为的一致性-是基于表1中的A AReSpecT-TCLinkPredicate中介绍的可链接性谓词。特别地,表2中的AAReSpecT代码对于所有座位(i,j)元组中心是相同的-- 特 定 的 对 被 记 录 在 元 组 中 心 名 称 中 , 并 且 经 由 在 表 1 中 的 AAReSpecT--ObservationPredicate中扩展的事件观察的谓词之一被检索(表2中的反应1)。表2中的反应1和3处理哲学家意图的表达在节点节点。可链接性谓词的语义(它们都有自己的完成,但它们是异步的)允许哲学家代理的4状态表示:思考,等待吃,吃,等待思考-其中过渡状态(等待吃/等待思考)可以通过对table@node的完成做出反应来轻松处理?in(chops(i,j))和table@node?out(chops(i,j))links(reactions108A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97表3Distributed Dining Philosophers:A AReSpecT code for thetable tuple centre.反应(out(chops(C1,C2)),(link_in,completion),(%(1)in(chops(C1,C2)),out(chop(C1)),out(chop(C2)))).reaction(in(chops(C1,C2)),(link_in,invocation),(%(2)out(required(C1,C2)).反应(in(chops(C1,C2)),(link_in,completion),(%(3)in(required(C1,C2)).反应(输出(要求(C1,C2)),内部,(%(4)输入(chop(C1)),输入(chop(C2)),out(chops(C1,C2)).反应(输出(chop(C)),内部,(%(5)rd(要求(C,C2)in(chop(C)),in(chop(C2)),out(chops(C,C2)).反应(输出(chop(C)),内部,(%(in(chop(C1)),in(chop(C)),out(chops(C1,C)).表2中的3和6)。即使这里没有讨论,情况谓词(如AAReSpecT中的时间谓词)的可用性将允许更复杂的协调模式,包括例如容错方案。例如,很容易将超时与代理哲学家的不同状态相关联, 在分布式、不可靠的环境中,简单的out调用很容易失败,使筷子消失在真空中。将时间反应与哲学家的过渡状态联系起来允许从错误情况中恢复,以及引入定时协调策略-如[17]中所讨论的。表3中的代码是表元组中心的行为规范,并且或多或少是[14]中讨论的代码在AAReSpecT中的翻译值得那么,需要注意的是,所有元组中心操作、链接和内部操作的统一语法,以及使AAReSpecT反应更通用和更有表现力的保护(以及保护谓词)5AReSpecT:语义学5.1AReSpecT:Informal Semantics在介绍A AReSpecT的正式规范之前,对内部架构和行为的非正式描述可能有助于理解A AReSpecT元组中心的实际工作方式。元组中心的主循环工作如下。每当召唤当执行由代理(操作)或工件(链接)对元组中心原语的初始化时,生成(可接受的)A AReSpecT事件,并到达其目标元组中心,在那里它被自动地且有序地插入其InQ队列中。当A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97109表4A AReSpecT中的事件GeneralTCEvent启动原因启动,启动原因启动::=启动简单TCEvent启动,启动源启动,启动目标启动,启动时间启动源代理,目标代理::=代理标识符 |联系我们代理标识符::=代理名称@代理网络位置代理名称 是一个Prolog基项TC循环结果|联 系 我们元组中心空闲(即,当前没有执行任何反应),InQ中的第一个事件队列(根据FIFO策略)被记录(表9),并移动到 要服务的请求的多集Op:这个阶段被称为事件Op的请求阶段。因此,通过将它们添加到等待被执行的触发反应的多集合Re中,触发对请求阶段的反应(Z(n)<$Z(n),根据定义5.2,5.3所有在Re中触发的反应都以非确定性的顺序执行。每个反应以事务语义(根据表6、7)顺序地执行,并且可以触发进一步的反应,再次被添加到Re作为表示链接调用的新输出事件:这些事件被添加到传出事件的多集合Out,然后在反应执行结束时移动到元组中心传出队列OutQ-如果成功的话。只有当Re最终为空时,等待在Op中服务的请求才可能由元组中心执行(根据表8),并且操作/链接完成被发送回调用程序。这可能会引起与原始调用的响应阶段相关联的进一步反应,并使用上面为请求阶段指定的相同语义再次执行。因此,最终得出了AAReSpecT5.2AReSpecT:形式语义学根据[13]中定义的框架,协调媒介适合于交互式转换系统方面的操作表征,其中通信状态是系统状态,一些转换由交互事件触发,并且一些转换生成输出事件。因此,为了形式化地表示协调工件(如AAReSpecT元组中心)的行为,我们应该首先定义它的容许元组中心事件的概念,然后根据转换系统定义它的行为定义5.1[A AReSpecT事件] A AReSpecT的容许元组中心事件(简称A AReSpecT事件)根据表4中的结构定义。这种结构也隐含地定义了&AA ReSpecT事件的表示方式:如果A是&AA ReSpecT事件,则A是。事业Source表示其活动直接导致事件的实体,TCCycleResult表示由事件触发的元组中心计算的结果,等等。110A. Omicini/Electronic Notes in Theoretical Computer Science 175(2007)97є5.2.1A AReSpecT反应的语义A AReSpecT元组中心基本上是一个逻辑元组空间,它通过定义元组中心如何对事件做出反应的行为规范来增强。然后,一旦定义了AAReSpecT事件,就可以根据AAReSpecT事件触发的反应给出反应模型。定义5.2[A AReSpecT触发反应多集]给定元组中心c及其行为规范,如果事件是A AReSpecT事件,则事件触发的反应的多集定义为好了,Z()::=反应(e, G,R)∈(θ,Rθ)|θ = Unify(,e)/=,Guard(,G)Unify(E,E)::= mgu(E,E)事业SimpleTCEvent),而Guard(G,G)的真值根据表5定义。定义5.3[A AReSpecT时间触发反应多集]给定元组中心c及其行为规范nc,如果nc是局部元组中心时间,则nc个时间触发反应的多集定义为:好了,Z轴(nc)::=reaction( time(t), G, R)∈timed(nc,n)(R)|防护(防护,G)timed(nc,n)::={reaction(time(t),G,R)∈ n |t ≤nc}其中,根据表4中所定义的事件结构,因此,给定一个在时间nc的元组中心c,行为规范为,以及一个事件,Z()表示由引起的触发反应的多集,而Z(nc)表示在时间nc的时间触发反应的多集。一旦定义了触发哪些反应以及何时触发,就应该考虑反应执行的影响。这被封装在反应执行函数中。定义5.4【反应执行函数】设R、RJ为反应目标序列,T u、Tuj为(普通)逻辑元组的多个集合,T u、TuJ为特定化元组的多个集合,Re、ReJ为触发反应的多个集合,并设A AReSpecT事件的N个A ReSpecT事件序列,Out、OutJ为A A ReSpecT事件序列然后,将反应执行状态定义为(标记的)五元组R、Tu、Re、Out,而将反应执行状态定义为步骤是过渡R,Tu,RJ,TuJ,J,ReJ,OutJ按照表6和表7的规则。如果反应执行序列是反应执行步骤的序列,则
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功