没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记133(2005)217-236www.elsevier.com/locate/entcs主动网络服务Mar'smart'ınezPedroMerino,GuilloRodr'soughtuezDpto. de Lenguajes y Ciencias de la ComputacionUniversity of Malaga,29071 Malaga,Spain摘要提高新电信业务软件的质量需要联合使用不同的测试技术。例如,自动验证和性能评估是必要的,以确保所需的吞吐量和可靠性。然而,这两种分析都是在传统上进行的,没有共享系统的公共描述,并且浪费了大量的工作和时间来构建面向特定工具的不同规范。近年来,已经进行了大量的研究来设计语言和工具来管理功能和性能分析,只有一个描述,特别是在社区致力于进程代数和Petri网。这些同构框架消除了为同一软件维护一组规范的不便。在本文中,我们探索了一种替代方法,以保持待分析的不同方面的规范一致。考虑到现有的建模和分析电信软件的工具的数量和质量,我们探索半自动的方法来整合这些工具的方式,是尽可能透明的用户。 理想情况下,新服务的设计者将只提供一种使用最熟悉的语言的软件描述,工具集将生成特定的规范来分析每个感兴趣的方面(目前,可靠性和性能)。我们的提议利用了模型驱动架构(MDA)的最新成果以及用于自动化工具构造的XML它的适用性是在发展的背景下显示的新的服务与积极的网络范例,整合功能的模型检查自旋以及网络模拟器NS 2。关键词:软件测试,规范,验证,性能分析,MDA,XML1电子邮件:{gallardo,jmcruz,pedro}@ lcc.uma.es,guille@iies.es1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.08.066218M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217-2361介绍形式化方法社区中的一个重要问题是避免给定系统的多个(可能不相关的)描述,每个描述都面向给定的任务(安全性或可靠性分析,性能分析,代码生成等)。对所有开发任务只使用一种形式化描述似乎是一个非常雄心勃勃的趋势;然而,有一些语言和工具成功地完全覆盖了其中的几个任务。这是像Times [1]和UPPAAL [11]这样的工具或像MoDeST [13]这样的形式化规范语言的情况,它们特别将时间,可达性或性能特征与传统的可达性分析集成在一起。这种单一语言(以及系统的单一描述)的方法显然使所有要分析的方面保持一致,但要分析的每种属性都需要特定的算法和工具。同样值得注意的是,由此产生的语言可能很难被形式方法领域的非专家使用。另一种保持形式化描述一致并避免实现新算法或增加语言复杂性的方法是工具集成方法。在这一大类中,我们确定了两条主要工作路线。第一个包括构建环境来封装工具功能,与源和相应目标工具之间的内部翻译器一起工作。这是著名的ETI协调平台所遵循的方法[39]。第二种集成方法基于定义中间表示语言(通常是新的形式化方法),这些语言将大多数工具和现有形式化方法所共有的特征进行分组。这些语言通常不面向用户,而是面向从最终面向用户的语言(包括规范和编程语言)产生这种内部表示的工具。该方法最初在SPECS [34]和SEDOS [14]项目中采用,最近又在CADP [16]、Bandera [22]、IF [5]和Veritech [36]等项目它们的中间语言允许在工具之间交换信息,以执行常见任务,如模型检查,自动代码和文档生成,静态分析,语法检查或简化技术。按照第二种方法,在这项工作中,我们考虑三个主要目标:• 整合现有的和有效的工具来分析电信服务的协议和• 仅保留待分析系统的一个描述,避免多个(潜在)不一致的规范。M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217219• 减少翻译人员的数量,并管理其复杂性和使用中间专有语言的可能演变。这些目标可以通过使用标准的表示语言和技术来实现,例如扩展标记语言(XML)[42]和模型驱动架构(MDA)[29]来集成工具。我们有使用XML技术实现形式化方法中的一个热门话题的经验:抽象模型检查[10]。第一个成功的故事[19]是使用XML作为内部表示来支持自旋的系统规范的转换。通过这种方式,我们扩展了模型检查器来实现数据抽象,集成了抽象和模型检查功能。第二步[20]是使用XML模型交换(XMI)来允许Statecharts工具之间的数据交换在这项工作中,我们提出了使用XMI来创建STATEMATE的抽象插件。在这两种情况下,一个主要的好处是可以完全重用模型检查工具,而无需修改其内部代码。继XML通过XMI的演变之后,第三个自然的步骤是探索新的基于OMGMDA的标准的特性,称为Meta Object Facility Specification(MOF)。该建议定义了一种抽象语言和一个框架,用于指定和管理模型和元模型。在MOF上下文中,模型是系统的表示(例如,软件设计),包含所谓的元数据。元模型是对模型遵循的结构,定义它们的抽象语法和静态语义。因此,MOF语言允许创建遵循精确的、定义良好的和通用的元元模型设施的元模型。在XML域中,DTD或XML模式也是元模型,两者都定义了包含标记数据(元数据)的有效文档(模型)的结构。关于XMI,这种语言是MOF标准的一部分,并提供了使用XML交换元数据和元模型的机制,作为集成工具的一种方式。此外,MOF定义了一种使用CORBA或Java中的编程API来操作XMIMeta数据这些库可能是自动生成的元模型作为参考。在本文中,我们建议使用MDA/MOF和XML作为一种方法来集成现有的工具,用于复杂系统的分析。我们提出了一种方法,以获得合适的输入工具进行集成,避免- ING需要几个手工制作的规格。因此,我们可以定义一个元模型(基于MOF或在XMLSchema中描述)来描述规范和编程语言的共同特征,包括并发的通信和同步。使用这种方法,我们将把这个元模型作为我们的中间表示语言,220M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217-236将受益于XML技术,以帮助开发解析器或代码生成器。为了测试我们的方法的可行性,我们选择了电信服务领域,特别是主动网络范例通过这种方式,我们重用并比较了我们小组以前的工作经验:a)在[35]中使用ns 2对主动网络进行性能/流量分析; b)在[18]中,我们使用自旋来分析可靠性[23,9,31]。这项工作可以被认为是朝着建立一个更灵活的内部-更改语言以执行不同类型的分析,使用具有互补功能的其他现有工具。本文的结构如下。下一节描述了我们以前分析主动网络的经验,使用不同的语言和工具来描述性能和可靠性模型。第3节介绍了我们对MDA和XML的研究,以支持前面分析的集成,以及一种方法,该方法将允许我们在对用户尽可能透明。 第4节给出了相关工作的概述,最后,第5节列举了我们的结论和未来的工作。2主动网络的建模与分析软件主动网络[38,6,15]将网络节点开放给用户定义的代码。这种方法使开发新的电信服务具有灵活性,而不需要标准化机构(ITU、IETF、IEEE、ANSI等)通常要求的缓慢的标准化过程。然而,开放节点意味着确保用户定义的代码不会破坏网络的可靠性[23,9,31]或降低其性能。因此,需要开发新的主动服务的测试面向特定类型属性或方面的多个工具的集成显然是开发人员的主要愿望这种集成允许设计人员只编写一次代码或规范,避免根据工具定义特定规范本节概述了最著名的主动网络编程方案,以及我们以前在使用模型检查分析功能行为和使用网络模拟器分析性能方面的两在下一节中,我们将使用这些作品来解释我们的整合建议M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217221Fig. 1. 主动网络体系结构图二. 蚂蚁使用的胶囊格式胶囊操作路由控制储存/环境getSrc()sendTo(dest)getAddr()getDst()sendCapsuleTo(dest,ref)cacheGet(key)setDst(dest)cachePut(key,val)getPrev()cacheRemove(key)newCapsule(ref,src)表1用于胶囊的2.1主动网络与胶囊方法主动网络节点的功能在负责提供网络抽象的Expertation Environment(EE)和管理对网络资源的访问的节点操作系统(NodeOS)之间划分。如图所示。1,该架构允许多个EE存在于主动节点上。每个环境可以提供特定的API来执行分组中的代码。NodeOS负责实现一组抽象,这些抽象将提供对节点资源的访问。此访问由安全强制引擎保护,该引擎在执行关键任务之前请求代码的凭据。操作系统还提供了对通信信道的访问,用于发送和接收数据包,以及一些存储设施,通常由某种软存储缓存组成。222M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217-236如果我们考虑使用它开发的应用程序,可能最成功的编程模型是蚂蚁(主动网络传输系统)[41]模型及其相应的工具包。使用蚂蚁,协议通过移动代码技术自动部署在中间节点和终端系统。被称为胶囊的数据包根据其特殊代码进行处理。 这段代码可以使用节点中的四种操作 基本元素:封装体操作(访问头部和有效载荷),控制操作(允许封装体创建新的封装体并转发,复制和丢弃自己),环境访问(读取节点中的状态信息,如其地址)和节点存储(操作应用程序定义对象的软存储)。所有这些原语汇总于表1中。在蚂蚁中,每个胶囊都用两个值来标识(见图2)。2)、胶囊的类型和协议(应用程序)。一个协议被认为是实现与不同种类的胶囊的实例数。胶囊处理如下。处理胶囊的代码由发送者定义,不能在网络内更改。胶囊的处理程序功能有限,因为它是由不信任的用户定义的。封装体由非活动节点(例如,标准互联网路由器)使用路由信息转发,但代码仅在特定节点上执行。在接收到胶囊时,活动节点执行其相关联的例程。胶囊本身决定它是否将继续被转发到目的地。这个决定通常包含在处理代码的末尾。的传输代码的机制取决于实际的实现。对蚂蚁的建议是按需加载代码,并将其缓存以提高性能。默认情况下,节点中的软存储仅由相同协议的胶囊共享。在实践中,使用蚂蚁开发的新服务是在Java中实现的,并且没有进行先前的分析。检查服务的正确性(功能和定时属性)通常在真实网络中完成。由于缺乏工具和方法的主动协议的先验分析,我们工作在以下两个方法。2.2用SPIN模型进行可靠性分析在[18]中,我们开发了一个使用spin描述和验证活动服务的框架,SPIN是一个非常有效和广为人知的工具(它获得了2001年的ACM系统软件奖,该奖项授予了著名的开发,如TCP/IP,World-WideWeb,UNIX或J av a)。我们在这项工作中的贡献包括a)描述PROMELA模型的固定部分,代表活动节点和b)构建胶囊,链接和拓扑的PROMELA模型这样一来,M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217223图三. SPIN(左)和ns2(右)的活动节点抽象设计者只需要附加胶囊的代码。每个PROMELA模型的架构如图所示。3(左)。固定部分由执行环境(每个节点)和网络抽象服务(可以用不同的拓扑实例化)组成。用户为胶囊和终端应用程序(在用户计算机上运行的应用程序)编写PROMELA主动网络中的一个典型应用是组播服务。当接收方想要加入到多播会话中时,它们必须向发送方发送订阅在此过程中,活动节点将其标识符添加到列表中,在通过网络传播胶囊时也充当假接收器。这个操作创建了一个树,其中根是发送方,叶子是真正的接收方主机。 PROMELA版本的该胶囊在图1中描述4(左),其中节点更新变量分发组在其高速缓冲存储器中,一旦收到此胶囊。 当主动节点接收到数据封装时,它只需将其重新发送到其通讯组中包含的每个接收器。在[18]中,我们提出了一个完整的规范为RMANP协议[8]。我们还使用时序逻辑在这个协议中非常关键的属性的整个代码可以从www.example.com下载http://www.lcc.uma.es/gisum/active。我们的经验表明,所提出的使用自旋的方案适合于分析主动网络的功能属性,但需要更多的自动化来帮助构建胶囊的代码。2.3使用ns2网络模拟器进行ns2网络模拟器[40]是一个多协议、面向对象、可编程的模拟器,它还包括许多用于大规模模拟的设施其结构设计的目的是促进用户的扩展这种能力允许我们扩展它来分析活动服务224M. del Mar Gallardo等/ Electronic Notes in Theoretical Computer Science 133(2005)217-236/* Promela SPIN胶囊= EE全局capsule.reverse=(未用于验证)MULTICAST(未用于验证)最初发送给mcast发送者*/public void run(){快捷键,/* 软存储索引 */值,/* 路由 */tmp;原子{keys = capsule.group;value = cacheGet(key);}如果::(value== FREE)-> value= 0;*elsefi;/*我们是否 处于中间节点?*/ atomic{tmp=1<
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- GO婚礼设计创业计划:技术驱动的婚庆服务
- 微信行业发展现状及未来发展趋势分析
- 信息技术在教育中的融合与应用策略
- 微信小程序设计规范:友好、清晰的用户体验指南
- 联鼎医疗:三级甲等医院全面容灾备份方案设计
- 构建数据指标体系:电商、社区、金融APP案例分析
- 信息技术:六年级学生制作多媒体配乐古诗教程
- 六年级学生PowerPoint音乐动画实战:制作配乐古诗演示
- 信息技术教学设计:特点与策略
- Word中制作课程表:信息技术教学设计
- Word教学:制作课程表,掌握表格基础知识
- 信息技术教研活动年度总结与成果
- 香格里拉旅游网设计解读:机遇与挑战并存
- 助理电子商务师模拟试题:设计与技术详解
- 计算机网络技术专业教学资源库建设与深圳IT产业结合
- 微信小程序开发:网络与媒体API详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功