没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记180(2007)41-54www.elsevier.com/locate/entcs服务整合的行为类型:成就与挑战安东尼奥·布罗吉1DipartimentodiInformatica,Universita`diPisa,Italy卡洛斯运河2埃内斯托·皮门特尔3D pto o。deLenguajesyCien ciasdelaComputacio′n,Uivrsit yofMa′laga,Spain摘要越来越多的注意力被支付给所谓的行为类型的发展,作为一种手段,正式解决的问题,确保正确的互操作的软件组件以及Web服务。本文的目的是提供一个有见地的综合国家的最先进的在这一领域,既要总结取得的主要成果,并指出一些重要的挑战,这些想法在软件世界的真正影响所面临的。保留字:服务集成、行为类型、Web服务。1介绍服务集成被广泛认为是基于组件的软件工程中的关键问题之一[8]。可用的面向组件的平台通过接口描述语言(IDL)在签名级别上解决软件互操作性,接口描述语言(IDL)被设计用于指定由异构组件提供的功能。不幸的是,虽然IDL允许克服签名不匹配,但它们不能保证组件将正确地互操作,因为由于所涉及的组件的交互行为中的不匹配,可能会发生不希望的死锁[12]。正如[14]中所提倡的那样,为了克服行为不匹配,组件接口需要包含一些协议信息。大幅1电子邮件地址:brogi@di.unipi.it2电子邮件地址:canal@lcc.uma.es3电子邮件地址:ernesto@lcc.uma.es1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.10.04542A. Brogi等人理论计算机科学电子笔记180(2007)41因此,大量的研究致力于提倡应用形式化方法来描述软件系统的交互行为,以支持一般的系统分析和验证,特别是行为不匹配检测。已经提出了不同的形式主义来扩展具有行为信息的IDL,特别是有限状态机(例如,[14])和处理演算(例如,[1])。虽然有限状态机支持简单而有效的协议兼容性验证,但它们的简单性构成了对复杂开放系统建模的严格表现力限制。双重地,过程演算具有更有表现力的协议描述,并支持更复杂的分析,但验证过程的固有复杂性抑制了它们在实践中的可用性。因此,需要在表达性和对有效验证的顺从性之间进行适当的权衡服务集成的问题在Web服务的新兴领域也是至关重要的[10]。Web服务提供(和要求)的功能目前可以通过Web服务描述语言(WSDL),通过声明一组消息格式及其方向(传入/传出)来表示WSDL声明可以用来验证连接不同服务的可能性,但它们不能确保服务的正确互操作(例如,安全性或活性属性)为了克服这一局限性,人们提出了不同的程序,如BPEL4WS 或WSCI,来描述所谓的Web服务编排和编排。这些基于XML的语言可用于扩展WSDL服务接口,其中包含服务与其他服务交换消息所遵循的真实交互协议的描述。然而,对可用的Web服务编排语言的一个严厉批评是,它们声明了“太多”的信息(即,这是一个很大的问题,因为它限制了有效验证的可能性[7]。从这个角度来看,[7]提出了行为类型的发展,严格的类型学科旨在综合服务的交互行为的基本方面,同时保留对组合系统的关键属性(如锁自由)的有效自动验证与契约语言不同,例如BPEL4WS和WSCI是计算上完全的,这些类型系统的表达能力低于图灵完备性。行为类型的发展受到越来越多的关注,最近提出的会话类型[3],动作类型[16],使用类型[5]和过程类型[4]证明了这一点。本文的目的是提供一个有见地的综合服务集成的行为类型的发展,目前国家的最先进的。为了帮助读者对行为类型有一个直观的理解,我们首先介绍一个简单的激励性服务集成示例(第二节)。2)并说明如何分别通过有限状态机,进程代数和行为类型对其进行建模。然后,我们分析了不同的建议的行为类型已提出的文献(节。3)。然后我们挑出A. Brogi等人理论计算机科学电子笔记180(2007)4143(第4节)我们用于分析和评估上述考虑的提案的相关属性列表。最后,我们将得出一些结论(第5节),并试图强调在行为类型能够在软件世界中产生有效影响之前所面临的一些重要挑战。2激励的例子在本节中,我们将通过一个例子来说明几种模拟系统行为的方法。 这些方法在使用的形式主义和规范的抽象层次上都不同。假设一个客户端/服务器系统,其中客户端打开与服务器的连接,发出登录命令,然后重复请求服务器执行查询-从私有回复通道获得相应的结果客户端通过发送注销命令来结束连接。在π演算中,这种行为的具体化如下:客户端(登录、请求、注销)为登录!(). ClientConnected(请求、注销)ClientConnected(请求、注销)为(回复)请求!(询问,回复)。回复?(结果)。ClientConnected(请求、注销)+注销!().0另一方面,假设当服务器收到一个请求时,它将请求委托给一个守护程序,该守护程序负责服务它。当与客户端的连接关闭时,服务器杀死守护程序:服务器(登录,请求,注销)=登录?(用户)。(daemon,kill)(ServerConnected(登录、请求、注销、守护程序、终止)|Daemon(daemon,kill))ServerConnected(login,request,logout,daemon,kill)=请求?(询问,回复)。daemon!(询问,回复)。ServerConnected(登录、请求、注销、守护程序、终止)+ 注销?(). 杀了他!(). 服务器(登录、请求、注销)Daemon(daemon,kill)=精灵?(询问,回复)。(结果)回复!(结果)。守护进程(daemon,kill)+ 杀?().0如图所示,客户端/服务器系统可以使用π演算来完全描述然而,这种描述也有一些缺点:• 不可能区分数据值(如用户名、请求的查询或结果)和通道(如为获取对查询的私人回复而传递的链接回复)-所有这些在π演算中都被认为是相同的名称。但是,在接口描述中包含某种类型的信息似乎是合理的。• 在π演算中把名字当作变量来处理,特别是在消息中发送和接收链接名的可能性,使得对属性的形式化验证变得不可行,即使对于如图所示的简单协议。• 由于π演算在计算上是完整的,因此总是存在过度指定接口的诱惑,包括实现细节(例如,44A. Brogi等人理论计算机科学电子笔记180(2007)41在上述系统中,如果通过匹配操作符使客户端决定执行新请求或注销连接的条件明确,则会发生这种情况对系统行为建模的另一种方法是使用基于有限状态自动机的符号。在这里,我们使用Nierstrasz客户端=登录。客户端连接ClientConnected =请求。客户端连接+ 注销。无服务器=登录。服务器连接ServerConnected =请求。 精灵服务器连接+ 注销。杀人服务器守护进程=守护进程。 守护+杀戮。无Nierstrasz的建议假设了一个面向对象的场景,其中方法调用是交互机制。因此,只有方法调用(尽管没有返回值)被显式表示,并且操作符号被遗漏。 参数和返回值的类型分别使用IDL语言的缩写表示:login(TString)->Okrequest(TString)->TService daemon(TString)-> TService quit()->Ok其中TService是查询结果的(数据)类型从上面的正则类型规范中,我们可以看到π演算接口的一些问题在这里得到了解决。使用类型(而不是数据)来描述参数和返回值,既可以使规范更清晰,又可以确保图像的有限性,以及属性分析的合理复杂性。然而,使用有限状态自动机,我们从完整的π演算规范中抽象了太多:• 合成机制尚不清楚。由于缺少并行操作符,因此无法描述例如由三个客户端、一个服务器和两个守护程序组成的客户端/服务器。• 预定义的交互机制限制性太强,应该允许一般的消息传递交互。• 移动性、进程创建或引用传递都无法表达。服务器和守护进程之间的关系(即服务器在客户端连接时创建守护进程• 国家没有参数。虽然这有助于确保图像的有限性,但对于指定某些系统来说可能过于限制。• 常规类型是完全不确定的,没有任何可能明确动作和反应的责任。总而言之,使用像π演算这样的进程代数将导致指定A. Brogi等人理论计算机科学电子笔记180(2007)4145太详细,太复杂,无法分析(注意,其他计算上完整的接口语言,如BPEL4WS或WSCI,也可以这么说)。另一方面,基于有限自动机的形式主义没有足够的表达能力,并且倾向于简化太多的协议描述,这在最近的作品中也可以找到一种介于进程代数和有限自动机之间的方法是行为类型,它被提议用于并发系统的类型化(类似于签名IDL用于对象或组件的类型化)。关于类型化过程代数的工作开始于十多年前[11],并且仍然有新的建议被提出,克服了以前的缺陷或限制。 这一领域的最新建议之一是过程类型[4]。使用进程类型的客户端/服务器示例的具体说明如下:TServer =登录?[TString]。(daemon)(TServerConnected|TDaemon)TServerConnected =请求?[T1]。 TServerConnected+注销?[]. 杀了他![]. 0TDaemon =精灵?[T2]。 TDaemon + kill?[].0TClient =登录![TString]。TClientConnectedTClientConnected =请求![T1]。(回答?[TService]. TClientConnected| daemon![T2]。回复![TService]. 0个)+注销![].0其中TService、TString表示与之前相同的类型,类型T1、T2表示在键入系统时构造的匿名内部类型。请注意,在上面的规范中,进程代数的表达性与消息参数的类型(而不是数据)的使用相结合,使分析变得可行。此外,对迁移率的特殊处理允许使用CCS(没有迁移率)对π演算进行分类,因此更容易分析。实际上,在进程类型中没有名称传递,当一个进程向另一个进程发送链接时(如上面示例中的回复通道),这种传递是通过将接收进程如何使用链接的输出操作的延续来近似的。这就是为什么类型TClient-Connected包含与服务器和守护程序(daemon!回复!分别地)。然而,请注意,首先显示的系统的π-演算过程规范和上面相应的CCS类型规范执行相同的归约步骤。在下一节中,我们将更详细地描述几个有关行为类型的建议。3行为类型:现有建议为了描述与行为类型相关的现有提案的主要特征,我们选择了我们认为与我们的讨论相关的提案,这些提案在组件/Web服务互操作性领域中进行了上下文化继第二次-46A. Brogi等人理论计算机科学电子笔记180(2007)41它们只是试图给出我们正在考虑的模型的最相关和最显著的特征的概念,并且由于缺乏空间,它们不能是独立的为了充分理解这些类型系统,我们参考了每种情况下引用的原始3.1动作类型Yoshida、Honda和Berger提出了一个异步版本的π演算的类型系统[15],其中强规范化的属性由可类型性保证。这个属性,主要在类型化λ演算中提到,确保计算必然终止,而不管求值策略如何。从逻辑的角度来看,这是特别有趣的,因为某些λ-演算的强规范化然而,这个属性在通信过程的上下文中也有相关的后果此外,它允许弱双相似性的有限公理化,这可能使过程等价性的自动分析成为可能这项工作的一部分[15]结合了来自λ-演算和线性逻辑领域的方法,以及过程理论推理,作者认为它适用于涉及状态,非确定性,多态性和其他扩展的其他系统。这个建议的源语言是一阶线性π演算,具有自由名称传递,其中输入动作的分支被限制为同一通道上的输入之和,用x [&iyi.Pi]表示(其中x和yi是通道名称,Pi是进程,i在有限的索引集上变化),并且选择是一个不带yntax′i ni(y)Q的输出。这两个构造的结构由以下转换规则给出:x[&iyi.Pi]|x<$i ni(y)Q−→(νy)(Pi{y/yi}|Q)这个提议背后的主要思想是动作模式、通道类型和动作类型的概念。操作模式附加到类型以确保通道的线性,表示它们在类型化进程中的使用方式有两种与输入操作相关的输入模式,具体取决于它们是单个(↓)还是复制(!)。然后,考虑与每个输入对应的另外两个输出模式actionnmodes(↑and?,respectively)。 因此,一个类似于F w(ab)=!a(x)。b(x),它重复地将a接收到的输入转发给b,而不是输入为► Fw(ab)Da:(t),b:(t)(其中t是通过a和b传递的数据的类型),将模式附加到每个动作:Fw(ab)Da:(t)!,b:(t)?.如果进程没有被复制,那么关联的类型将是:a:(t)↓,b:(t)↑。一个模块定义为一个self-inversem apping(<$↑=↓,<$!你说呢?),并提供了类型可组合性的概念。通道类型被定义为输入和输出模态在类型上的替代组合,引入了一个特殊的通道类型(Channel Type,简写为CHN),它表示A. Brogi等人理论计算机科学电子笔记180(2007)4147线性通道的不可组合性(当一个进程包括一个由C/N类型化的通道时,则它不能与任何其他包含该通道的自由出现的进程组合,例如,fixed().0|x<$()Dx:)。新的输入通道类型(tI)可以通过对(&)个输出通道类型([&itOi] k,k∈ {↓,!}),并且可以通过组合(线性加法运算符)来获得新的输出通道类型(t0)输入通道类型([itIi],∈{↑,?})。最后,动作类型被定义为有限的无环有向图,其节点具有x:t的形式,使得没有名字在图中出现两次,并且其边呈现以下语法:x:t→xJ:tJ,其中t的最外层模式总是输入模式,并且tJ的最外层模式是输出模式。 直觉,节点表示通道类型,边表示顺序算子的因果关系。为了我的天啊!u(c)。x′(e)e(). c<$Du:(()↑)! →x:(()↓)?. 一个ctiontypes可以被这样组合,两个直观的属性被保留:(1)一旦输入-输出线性通道被组合,通道变得不可组合,以及(2)服务器应该是唯一的,但是任意数量的客户端可以请求在其上的交互。考虑到前面的成分,[ 15 ]中定义的线性类型系统通过可类型性确保了强的可规范性,并且可以证明线性过程中基于交互的基本活性属性:“如果一个类型化代理调用另一个复制类型化代理并在线性通道x处等待其答案,则答案 保证最终到达x,然而复杂的中间相互作用序列将是”。这个类型系统也被相同的作者用来定义一个新的过程等价概念:线性双相似性[16]。为了做到这一点,定义了一个检查类型和启用类型,以检测可类型化的操作是否会对环境进行非平凡的检查,以及这些操作是否保证会发生。双相似性的新概念严格地大于标准概念,但保留了语义上的可靠性,它可以应用于π演算中的保密行为理论,改进以前在安全信息和过程演算领域的工作3.2会话类型会话类型由Honda,Vasconcelos和Kubo在[3]中定义,并提出了一些重要的特征,将它们与一般进程代数(如π-演算)中编写的进程区分开来:• 会话类型从数据值中抽象出来,而是引用相应的数据类型;• 会话仅限于两个组件之间的二元通信• 移动性通过显式的抛出/捕获动作来表示,并且由于会话是二元的,一旦进程抛出会话,它就不能再使用它• 不允许混合的选择:输入和输出动作不能在非确定性选择中组合。48A. Brogi等人理论计算机科学电子笔记180(2007)41在这种方法下,程序被认为是一个会话的集合,每个会话都是一个二元交互链。每个会话都由一个专用通道指定,通过该通道执行属于该会话的交互。使用二元会话来指定软件交互允许对复杂系统进行模块化指定。其目标是提供一种基本的方法来描述复杂的交互行为,在高抽象级别上具有清晰度和纪律性,以及分析和验证的正式基础在这个框架中,类似于[15]中定义的(会话)类型之间的二元性概念在[13]中基于子类型化的思想引入。直观地说,如果α可以在任何使用β的上下文中使用,并且会话中不会发生错误,则会话类型α是β的子类型基本上,这意味着α应该有更多或相等的分支(输入选项)和更少或相等的选择(输出选项)。基于这种子类型关系,可以定义兼容性的概念,确保在可以正确类型化的情况下成功组合相应的进程在[2]中,会话的概念也被用来确保软件组件的安全适配,假设以下场景:会话以组件行为在空间和时间上的模块化投影为特征,并且每个会话提供组件行为的部分视图(w.r.t.另一个将被连接到它的组件),从而将组件行为划分为几个方面或角色;另一方面,每个会话描述一个(可能是有限的)连接,从而将组件的整个生命周期划分为一系列会话。 在这种情况下,引入了一个名为session-safety的属性来放松死锁自由的标准概念,以这种方式,会话安全仅保证进程不会在会话计算过程中死锁;换句话说,一旦会话打开,它将在没有死锁的情况下结束(即死锁仅限于会话)。文[2]证明了在一定条件下进程的并行合成是会话安全的。3.3使用(和过程)类型小林及其合作者的作品是行为类型文献中最相关的作品之一,他们的出版物至少可以追溯到在这里,我们将参考他们的两个建议:使用类型[5]和过程类型[4])。使用类型的动机不仅是处理安全属性(例如作为死锁),但也具有活动属性。 死锁是一种情况,由一组进程的并行组合形成的系统S不能进行,因为S中的任何一对进程都没有机会参与通信动作(例如,它们都试图参与不同的通信动作)。文献中的大多数类型系统确保如果进程是可类型化的(即,通过应用类型化规则可以从进程中导出格式良好的类型),则死锁自由被保留,并且进程将不会在其部分之间的交互中“卡住”。 然而,如果无死锁进程发散(例如,如果它正在执行死锁处理),则它无论如何都可能被锁定,或者无法前进。A. Brogi等人理论计算机科学电子笔记180(2007)4149内部计算或无用通信的无限循环(例如,一个进程将接收到的请求委托给另一个进程,该进程又将其委托给另一个进程,等等)。例如,过程(νx)(x? | (νy)( y! |(y?. y! ))是无死锁的。虽然在链路x上的输入操作永远不会发生,但整个过程永远不会被阻塞,通过通道y执行通信。因此,无死锁的进程可以是活锁的。我们可以认为一个进程系统是无锁的,如果它既无死锁又无活锁(假设调度机制是公平的,对于这个机制,一个可以被无限选择参与通信的进程最终将参与通信)。因此,锁自由在[5]中被定义为死锁和活锁自由的组合,并给出了确保锁自由的类型系统。用于定义进程的源语言是π演算的一个子集,没有(内部的)τ-动作、匹配和选择运算符(尽管存在一个专门的if- then-else结构),并且具有有限的复制(仅适用于原子进程)。提交人辩称,这些限制可以通过进一步的工作予以取消。使用类型的名称来自于这样一个事实,即在这个建议中,通道类型被添加了标签,这些标签包含关于每个通道用于输入或输出的顺序的信息。这个信息可以用来保证一个进程将在给定数量的缩减步骤中执行一个特定的操作,一旦该操作变得可用。因此,可以确定给定的通信动作需要多长时间才能成功。文[5]中的建议在文[4]中得到了扩展,在文[4]中给出了π演算这项工作的动机是为行为类型提供一个通用的该框架通过定义子类型关系和一致性条件来实例化。这项工作的主要思想是将类型和类型环境表示为抽象进程,并为其提供了一个归约关系(因此,命名为进程类型)。一个类型判断ΓDP,通常被读作Γ是使用类型规则从P导出的,当然,检查Γ上的属性比直接检查P上的属性更容易。所使用的过程源语言是π演算的子集,再次从τ动作中被剥夺。然而,有两个可选的运算符(+和),分别代表外部和内部选择这两个选项可以混合(组合输入和输出操作),尽管外部和内部选择不能在同一个选项中混合。因此,设置非常类似于本田50A. Brogi等人理论计算机科学电子笔记180(2007)41除非π演算处理在源语言中表示,否则在类型语言中不会创建新的通道,通道也不能通过其他通道传递。原因是为了使类型语言的推理比π演算更容易。然而,移动性可以被类型化。例如,考虑该过程:其类型为:x?t1 [z]。z!t2|x的!t3[y]x?t1 [τ] |x的!t3[τ].y!t2(其中τ=(z)z!t2)。因此,该类型从在信道x上传递同步动作的链路中抽象,但是明确表示将在链路y(通过移动性发送的链路)上执行动作,并且该动作将仅在x上的同步之后执行。类型语言中的操作是有标签的,标签用于检查属性。例如,T。Γ是在执行标记为t的动作(输入或输出)一些有趣的属性(如主题约简,类型派生的规范化和类型可靠性)可以被证明的框架,这些属性在任何类型系统的实例派生它。在属性中,可以确保良好的形成过程,是没有arity不匹配的消息,没有竞争条件,安全释放通道,锁自由。最后,类型系统是由语法指导的,并提供了一些关于如何构造类型检查和重构算法的指示。4评估和总结在介绍了现有行为类型建议的主要特征之后,我们现在尝试根据三个主要标准来评估它们• 类型推断机制。服务的行为类型旨在适当地合成和抽象服务的交互协议,以便于验证其与其他方的正确互操作性。在为了避免要求系统开发者手写其服务的行为类型,提供适当的类型推断机制,以便允许自动生成给定交互协议的行为类型。很容易预见,类型推理机制(对于不同的协议语言)的可用性将是该技术在软件开发世界中的未来渗透的关键。这里一个重要的(经常被低估的)问题事实上,如果行为类型被用作系统接口中暴露的服务契约的一部分,类型推理将不得不单独应用于部分协议(而不是一次性应用于整个系统A. Brogi等人理论计算机科学电子笔记180(2007)4151• 源协议语言的表达能力。重要的是要注意到不同的类型系统也可能在它们引用的源语言方面有所不同。在行为类型的情况下,不同的系统可能在不同的方面不同源协议语言,他们的目的是建模。这样的区别显然会影响类型系统的适用性,从而排除了不能用所考虑的源协议语言表达的协议。• 可证明的协议属性。显然,可以通过类型系统证明的协议属性集对于评估类型系统本身的有用性至关重要。这些性质的范围可以从简单的连接性问题(由可用的IDL确保)到互操作性问题,如安全性或活性属性。直观地说,类型推理机制的抽象程度越低,可以在与协议相关的类型上证明的属性就越强。这里的一个关键方面是协议属性的验证是否可以自动化,以及这种验证的复杂性类型系统的另一个有趣的方面是它是否(以及如何容易)允许声明和验证新的用户定义的属性。下表旨在综合如何根据上述标准对经审查的建议书进行分类。为了简化阅读,这些标准已经扩展到七个细粒度的方面,以便更好地突出不同方法之间的相似性和差异性。第一个方面涉及可以应用该方法的源协议语言的表达性(例如,完整的π演算或它的不同限制第二行和第三行明确了这些方法是否支持源协议的自动化和模块化类型推断。模块化在这里意味着可以单独输入交互协议的各个部分(例如服务器和客户端)。第四行和第五行总结了所使用的类型语言的表达能力,以及可以在这些类型上证明的属性类型。最后,最后一行指示可以通过协议(例如,活跃性、安全性、用户定义)。5总结发言在前面的部分中,我们已经尝试提供了一个有见地的综合的当前国家的最先进的发展中的行为类型的服务集成。在第3节中讨论的各种新出现的建议,除了见证越来越多的关注致力于行为类型,说明了在该领域已经取得的技术成果的应用兴趣。然而,为了在软件开发领域广泛采用这项技术,仍有许多工作要做。• 类型推断工具。类型推断工具的可用性将是必要的,以便使系统开发人员能够轻松地生成其服务的行为类型,并在服务合同中公开。需要强调的是,(用户友好的)类型推理工具的不可用性将要求系统开发人员标准自动机过程动作类型会话类型使用类型源协议-充分传递自由名的线性π演算无求和异步π演算π演算自动类型推断--语法制导语法制导语法制导模类型推理--部分-部分类型语言低-无圈有向图子集π-演算:受限迁移,二进制通信,没有混合选择CCS类型属性无死锁-组合性可组合性,子类型化用户定义的验证协议属性-不可行强规格化,活力,安全,双相似性会话安全锁52A. Brogi等人理论计算机科学电子笔记180(2007)41A. Brogi等人理论计算机科学电子笔记180(2007)4153熟悉行为类型的技术细节,这实际上只会阻碍这项技术的发展。• 类型检查工具。正如[7]中所指出的,将行为信息纳入服务合同为发展强大的服务匹配机制铺平了道路。也就是说,服务查找可以超越简单的连接性问题,并且还考虑服务的有效一旦服务行为通过行为类型表示,互操作性就可以通过类型检查机制进行检查。至于类型推断的情况下,自动类型检查工具的可用性将是一个必须的行为感知服务查找工具的开发。• 行为一致性和安全问题。 一个正交但至关重要的问题是所谓的行为一致性问题。也就是说,如何保证服务或客户端将有效地按照其公开接口中声明的行为进行操作?虽然已经在不同的环境中提出了解决这个问题的不同解决方案,例如包装或携带证明的代码,但在工业应用中大规模使用这项技术需要可靠和经过认证的保证。• 其他方面。虽然行为信息对于确保服务的正确互操作性是必要的,但其他方面也同样重要,例如服务级别协议(SLA)信息。将行为信息与非功能信息相结合将是实现高质量服务聚合的进一步必要步骤引用[1] R. Allen和D.加兰架构连接的正式基础。ACM软件工程与方法学报,6(3):213[2] A.布罗吉角Canal和E.皮门特尔行为类型和组件适应。第十届国际代数方法学与软件技术会议。LNCS。史普林格出版社2004年8[3] K. 本 田 , V.T. Vasconcelos 和 M. 久 保 基 于 结 构 化 通 信 编 程 的 语 言 原 语 和 类 型 规 则 。 在 EuropeanSymposium on Programming(ESOPSpringer-Verlag,1998.[4] A. Igarashi,N.小林Pi演算的泛型类型系统。Theoretical Computer Science,311(1-2):121-163,2004.[5] N.A. 小林无锁进程的类型系统信息与计算,177(2):122[6] A.凯勒,H。路德维希WSLA框架:Web服务的监控和服务水平协议。Journal of Network and SystemManagement,11(1):57[7] L.G. Meredith,S.比约格合同和类型。CACM 46(10),2003年。[8] B. 莫 雷 尔 和 亚 历 山 大 。 自 动 化 组 件 适 配 以 供 重 用 。 IEEEInternational Conference on AutomatedSoftware Engineering(ASE 2003),第142IEEE Computer Society Press,2003.[9] O. 尼尔斯特拉斯常规类型在面向对象的软件组合中,O. Nierstrasz和D. Tsichritzis(Eds.), 第99-121页[10] M.P. Papazoglou和D. Georgakopoulos:第54段。Brogi等人理论计算机科学电子笔记180(2007)41[11] B. Pierce,D.桑吉奥吉移动进程的类型化和子类型化,第八届IEEE计算机科学逻辑年会,第376-385页[12] A. 我会的,J. 他和J. M。 好的。 新的使用在objecti nter ab i li ty。在面向对象技术中,LNCS1964,第256斯普林格,2000年。[13] A. Vallecillo,V.T. Vasconcelos和A.拉瓦拉使用会话类型键入对象和组件的行为。ENTCS,68(3),2003.[14] D.M. Yellin和R.E. Strom.协议规范和组件适配器。ACM Transactions on Programming Languagesand Systems,19(2):292[15] N.吉 田 角 本 田 , M. 伯 杰 π - 演 算 中 的 强 正 规 化 。 技 术 报 告 见http://www.doc.ic.ac.uk/yoshida/paper-ic.html#TYPES。2001. 发表在JournalofInformation and Computation上。[16] N.吉田角本田,M.伯杰线性和互模拟。在FoSSaCS02,LNCS,2303,pp. 417-434,2002.
下载后可阅读完整内容,剩余1页未读,立即下载
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)