人人范文网 范文大全

英语论文翻译

发布时间:2020-03-04 09:10:07 来源:范文大全 收藏本文 下载本文 手机版

基于目标的自适应系统自动代码生成

Abstract System administrator deals with many problems, as computing environment becomes increasingly complex.Systems with an ability to recognize system states and adapt to resolve these problems offer a solution.Much experience and knowledge are required to build a self-adaptive system.Self-adaptive systems have inherent difficulties.This paper proposes a technique that automatically generates the code for the self-adaptive system.Thus the system is easier to build.Self-adaptive systems of previous research required high system resource usage.Incorrect operation could be invoked by external factors such as viruses.We propose an improved self-adaptive system approach and apply it to video conference system and robot system.We compared the lines of code, the number of claes created by the developers.We have confirmed this enhanced approach to be effective in reducing these development metrics.

Keywords self-adaptive, self-healing, goal graph, activation switch, error detection

摘要

随着计算环境变得日益复杂,系统管理者需要处理很多问题。能够识别系统状态和适应解决这些问题的系统提供了一个解决方法。为了建立一个自适应的系统,需要很多的经验和知识。自适应的系统具有内在的困难.这篇文章提供了一种技术,可自动生成自适应系统的代码。所以这个系统很容易建立。自适应系统的前期调查需要很多的系统资源应用。不正确的操作会被诸如病毒之类的外部因素涉及到。我们提供一种升级的自适应系统方式并且把它应用到视频会议系统和机器人系统中。我们比较代码行,由开发人员创建的类的数目。我们确定了这种增强的方法对减少发展指标是有效的。

关键字 自适应系统,自修复,目标图表,启动开关,错误检测

1引言

分布式计算机系统仍然在变的越来越复杂,并且解决和分析系统问题很难。解决这个问题的第一个方案就是人去管理系统。第二个方案就是系统去识别问题并且解决问题。直接管理系统的人应该是专家。由于可用的人力资源和制约的有效成本的管理,这就加强了限制。40%的电脑系统错误是管理者的失误。当前系统的管理过程应该被提高。这个自适应系统是一个基于人系统管理过程的升级版。自适应系统识别和诊断系统问题并且自行恢复系统。关键的系统为了实现可靠性、容错性和可用性,考虑额外的自适应模块的设计和开销。自适应模块应用到关键系统中提高系统性能。我们提供一个启动开关减少在自适应模块中额外资源的利用。这个开关区别了一个组件在当前是不是在用。在这个过程中存在两个问题:开关切换问题和代码修改问题。在非正常的外部条件下,自适应系统组件的状态和启动开关是不同的。包含这个组件的自适应模块不能正常工作。举个例子,当病毒在内存中常驻改变系统状态,它影响到自适应模块;这个启动开关和组件状态可能是不相同的。当一个组件需要被唤醒时,它可能不被触发。第二,自适应模块必须通过用启动开关生成。举个例子,这个建筑师或者开发商应该重新设计整个系统结构去应用启动开关。本文的地址代码的性能产生了这个改进了的自适应模块,即通过用启动开关诊断错误和应用启动开关提高系统性能。这个提供的方案被应用到一个简单视频会议系统的文件转换模块。这个模块减少了系统资源占用并且防止了由启动开关造成的异常状态。

本文的其余部分结构如下。在第二部分,我们提出了有关工作。第三部分描述了建议,第四部分,讨论了这篇文章的应用。第五部分,展示了一个案例研究。第六部分是评估。最后,在第七部分是总结。

2 相关工作

这部分描述了威乐的自适应体系结构,应用了启动开关的园区自适应模块,应用了目标表图和斯泰另心跳检测的公园发展方式。 2.1自适应体系结构

威乐用了四层侦测到可疑行为并且恢复它们。它们是探头层,仪表层,控制层和执行层。探头层监视目标系统和收集相关数据。仪表层分析收集的数据,然后产生控制层需要的信息。控制层在仪表层分析的信息的基础上评估尽可能的修改并确定恢复的策略。这些恢复的策略由系统、用户和系统管理员共同决定。执行层将这些变通或者恢复方法应用到目标系统。这需要很多的组件,使用额外资源。浪费系统资源。 2.2应用启动开关来改善性能

关键系统为了保证可靠性,容错性和目标系统可用性,考虑额外自适应模块的设计和开销。在关键系统中自适应模块的性能应该得到解决 。我们提出的评估行为(评估地址许可的行为,时间测量的行为,文件传输的行为和地址隔离行为,文件删除行为)的启动开关。自适应模块有很多的组件。这个级别的必要组件是启动的,然后另一些没有,减少了资源使用。自适应模块的性能取决于资源使用的减少,被启动开关所控制。

启动开关引起了两个问题。第一,它不提供一个抽象技术,因为这个范围是特定的系统。第二,它应该需要额外的开发工作,以生成启动开关。开发人员构建代码生成开关,这篇文章提供了一个基于目标图表的抽象技术。它生成了用启动开关改善性能和检测错误的代码。 2.3错误检测器

斯泰灵提出了一种监测方法,确定该组件使用周期的信号是正常的。当一个组件发送信号“我还活着”,监视器知道组件工作正常。如果监视器没有收到这个信号,那么就认为这个组件处于不正常的状态。这个方法减少了自适应模块的资源占用,因为监视器间接的检查了组件的状态。但是它不能提供自动的代码生成。这就靠开发者了。 2.4 代码生成技术

该代码生成技术扩展了作为外部因素评价技术的目标图形技术,以减少开发人员为建立自适应模块和管理它们而付出的精力。它使用抽象改善了自适应模块的性能。这个方法的优势就是生成了模板代码,开发人员修改模板,很轻松的完成代码。但是这没有任何错误检测过程。 2.5代码生成自我修复 Park 提出了基于UML的代码自动生成方法。这项研究从诸如状态机图表或者部署图的NML图中得到了系统信息。在此图中,有一些限制,比如最底网速或者CPU使用率。用这个信息,这个研究将生成自修复代码。这是一种建立自修复的好方法,但是不支持有错误或者故障的自修复部分。

3 提出的方法

本文延伸了目标图,并生成一个改进的可以检测启动开关引起的错误的自适应模块。它利用了在相关的工作中的固有优势,解决了其局限性。它侧重于生成被添加到启动开关的误差检测技术体系结构和自适应模块性能提供的代码。图1给出了自适应模块生成的过程,利用图形开发人员制定的目标的。在这个过程中,开发者修改生成的代码然后完成了自适应模块。

表1 提出的架构功能

图1 提出的过程

表1 描述了各组件的功能。这个结构有两个目的。第一,它收到信息,然后通过开发者画目标图表生成自适应模块,并且生成启动开关。第二,它用生成的启动开关生成每个自适应模块的模板代码,代码结构和自适应政策。

3.1设计目标图表

目标图表的设计者帮助开发者画一个展示自适应模块层次结构的目标图,表2 描述了目标图的结构。最上部是目标节点。这个目标图有几个层次节点作为子节点。这个结构代表了这个目标阶段。层次节点也一样有几个任务节点作为子节点。任务节点表示在这个级别进行的职能。

表2 扩展目标图的结构

表3 目标图属性

任务节点有几个组件节点,代表这个工作要求的组件。我们在层次节点添加这个结构表示组件在自适应层的哪个位置(探头层,仪表层,控制层,和效应层)。表3 代表了自适应结构层。它在任务节点和组件节点之间。这个结构代表了需要水平、任务、自适应和组件的层次结构,以实现一个目标。

为了给我们的方法建个目标图,开发者和设计者应该只是这个目标系统和自修复系统的总体。首先,开发者和设计者定义一个目标系统。第二,从功能方面划分层次。这个划分和时间顺序关联。左边的节点大部分比其他的早执行。第三,定义层次中的每个节点。这和层次的工作列表类似。第四,定义每个任务需要的组件名称。在这个阶段,组件可以是双选。最后确定每个组件的层次名字。组件必须是层次中的一个(探头层,仪表层,控制层,和效应层)。 图2显示了表2中描述的一个目标表例子。这是画文件转换自适应模块在以前的研究部分提供的目标图的部分原因。该模块的目标是检测这种文件传输过程中的可疑行为。第一级是指水平来看的,看发件人的地址是否有效。判断一个地址是否有效需要几个任务。第二级包含了需要的任务。第三级代表了要求携带任务的自适应系统层。应用在每层的组件在第四级中表示了。在这个例子中,每个节点可以有几个子节点。第三级的节点和第四级的节点在表2中有一个子节点,但是如果需要可以多有几个子节点。

图2 扩展结构图的例子

表 3 表示了每个节点的输入和目标图表的性能。每个节点一般有名字和内容。每个组件的层性能几点被添加。他们代表了组件在层中的位置。它是指与组件相连的总线。 3.2解析引擎

解析引擎从目标图表中提取建立自适应模块所需要的信息。表3的属性被解析引擎提取并发送给下一个阶段。从目标图表中提取的信息以组建应用它的形式被保存。这些信息可以被标记替换。图表4.5.和6 描述了代码结构标记的一些部分。举个例子,组建名称标记被包含在组建节点属性的名字所替换。

表4 代码结构的组件标记

表5 代码结构自标记

表6代码结构的数目标记

3.3 完善错误诊断的体系结构

图3显示了自适应模块错误体系结构通过应用目标图表自动生成软件体系结构得到改善。左边描绘了自适应模块的体系结构。我们给启动开关增加了错误检测组建。这个组件有三个目的。第一个是用启动开关检测出自适应模块中一个不正常工作的状态。启动开关可以改善系统性能但是偶尔会因为内存病毒或系统性能开销等外部因素而导致不连续状态。对提出的架构图3右侧上可以使开关更安全。第二是应用修复模块异常状态的方案。如果引出的这个结构可以检测非正常状态,那就可以用诸如替代选择等自修复方法解决这个问题。这个最终目的是在维修阶段提供一个子组件保证函数的连续性。图表7 描述了每个组件的功能。具体如下。

表7每个组件的功能

图3 启动开关引起的检测错误的结构

3.3.1 状态检测

这个组件检测启动开关的状态。它需要启动开关的信息。它以前是从开发者画的目标图表中获取信息的(启动信息,层次信息和表1中的组件信息) 3.3.2 信号检测

任何时候但自适应模块的启动开关打开,信号检测都开始工作。当开关关掉的时候它被关掉。当启动开关开启,组件不工作,就会产生错误状态。没有直接检测组件功能的方法。 我们拟出的方法是组件开始伴随着活动总线工作,如图3所示。

3.3.3 交换管理 一旦启动开关检测到错误就会有一个自我修复的交换修复方案被涉及到。该方法用到了这个修复策略。 3.3.4 配置显示器 配置显示器的方法需要知道被用于交换修复方法的交换组件的信息。配置显示器监督处于自适应模块的几个总线。它们保存在配置库中。 3.4 模板生成器

模板生成器用从目标图、代码结构和自适应政策得打的信息生成改善自适应的模板代码。这个代码结构基于启动开关错误检测的结构。在本文中用到了交换组件和一个自适应政策。模板代码包括改善系统性能的启动开关和启动开关中检测自适应模块是否有错的组件。这个扩展目标图包括每个组件所在的层。该信息被用于生成启动开关检测错误的代码生成。 3.5 代码生成过程

图4 显示了自适应模块的代码生成过程。首先,开发者画一个目标图表。需要的信息从目标图中获取,接下来是自适应政策和代码结构定位。这种方法生成模块代码。最后,开发者修改代码,完成改进的自适应模块。

图4 模板代码的生成过程 3.5.1 画一个目标图表(第一步)

开发者画一个目标图表。这个图表展示了启动开关的结构。它可以在开发者知道模块结构后就画。这个图遵守了跟着图表2 中所示的结构,用了表格3的属性。 3.5.2检索信息的形式图(第二步)

这一步获取组件类型,自适应模块的层类型和在第一步里目标图表中存在的级别。 3.5.3 加载需要的信息(第三步)

这一步是用这种方法由启动开关检测错误。在这步中,自适应模块和政策需要一些额外信息。此步骤使用预先创建的政策和信息。有几个政策,但是本文用了交换组件的政策。 3.5.4 生成模块代码(第四步)

从第二步,第三步得到的信息被用在了开关模块生成中。欲创建的代码结构和此信息交织,并生成了拟议自适应模块的代码。该模板代码有TODO信息。而TODO信息包含在欲创建代码结构中。

3.5.5 修改模板代码(第五步)

开发者可以修改在第四步中生成的模板代码。TODO信息存在在代码中。开发者可以使代码在读的时候显得比较有可读性。

4 实现

我们提出了扩展的目标图和自适应模块的模块生成代码。用Eclipse的PDE(Plug-in Development Environment插件开发环境) 实现它们。目标图的设计师在GMF中起作用。我们用可以设计一个目标图来表示启动开关架构的GMF来实现插入。 4.1 目标自适应模块

我们实现了一个视频会议系统和自适应模块。该系统被应用在一个自适应系统的典型例子中。为了制造一些异常状态,添加了一个自适应文件传输模块。这个模块发送并接受一些文件。在会议中,文件很重要。可疑的文件发送或者接受应该被隔离。该模块检测了文件传输状态。如果检测到一个可疑状态,发送或者是接受就要被终止,该文件被删除。发送文件的用户也会受到怀疑。系统询问用户可疑的文件是不是要被阻止。原始的系统没有这个功能,但是我们添加了一个扩展的自适应模块并且应用到了我们的方案中。该模块有四个启动开关:判断;估计;转移;适应。判断这一步就是坚持传输是否合法。自适应模块有检查是否合法的合法用户列表。评估这一步估算了预期的文件传输时间和工作量等。传输这一步跟踪文件发送到目的地并显示进程。这一步也检测可疑行为,比如端点开放,文件大小改变和资源的改变。

图5 CD上的目标图

我们任意的强制让自适应模块处于异常状态。表5显示估计水平开关是开着的,但是相关的组件没有运行。信号检测器检测组件,因为信号没有到达信号检测器。检测之后,动态检测器检测组件是不是真的没有运行。如果是,动态执行者修复相关组件。 4.2 实现

我们在图5 中画了一个目标图表。这个图表表示了四个功能开关和每个开关的组件。设计的目标图保存在XML中。解析引擎打开XML文件并且获取信息:启动开关信息,组件信息和层次信息。这个开关模板生成器用代码结构和自适应政策生成模板代码。图6是代码结构的例子。

图6 代码结构的例子

该模板生成器生成模板代码。图7,8,9展示了模板代码的生成。像记下组件行为这样的TODO信息出现在了代码中。画目标图的开发者可以完成这部分。通过这些过程,自适应文件传输模块就被添加到了视频会议系统。图7 是地址检测组件。这个代码包括了启动开关控制部分和TODO信息。开发者写下追踪

TODO

信息的组件行为。

图10 异常诊断

图10 表示了异常诊断。动态检测器找出启动开关和相关组件之间的同步。提出的组件被操作并且进行自修复。 5 案例研究

自适应机器人系统帮助体弱的人并且提供像测试警告或者检测强盗入侵之类的有用的功能。这个系统有14个组件:服务组件,监视组件,自适应相关组件等等。

机器人系统的自适应系统提供了自适应功能。首先是避免障碍物。机器人没有任何的只能算法,因为它是一个便宜的机器人。自适应系统监控摄像头模块并检测障碍。如果检测到障碍,这个系统建立可用的方案并执行。由于它可以适应特定环境机器人可以避免障碍物。第二个功能是适应一些硬件上的失败。如果机器人左边的监控器有问题,这个机器人就会走直线。每个轮子的转数是不一样的, 因为左边步子监控器的失败,机器人走右边。在这种情况下,自适应系统检测每一步并异常的监测。这种机器人可以走的直一点。

图11显示了该系统的服务机器人。在这个机器人里,有一个硬组件和几个软组件,不如RFID阅读器,步进电机,网络相机等。在图12中,服务机器人可以执行用户指令。如果用户指示它直走,服务机器人得到指令并执行。在这种情况下,之前提到了几个问题:不直走,障碍物干扰运行等等。

图11 自适应机器人系统

图12 机器人系统结构

图13正常感应行为的目标图 图14 正常移动行为的目标图

基于自适应功能机器人系统,我们画目标图表。图13 和14 展示了目标图表:一个正常感应目标和机器人正常运动目标。这些图表就是与任务和组件相关的线性时序逻辑。

在图13,有四层:监测,诊断,规划和执行。第一是自适应检测机器人身上的传感器。如果发现一些异常,组件评估器部件检测传感器,机器人分析器将发现这个异常的原因。第二,规划组件决定自适应策略并生成与策略相关的代码。最后,该策略在服务机器人处于这种情况时被应用到目标系统中。目标图表代表相关的任务。层次和需要的组件。图14 和图13 类似。图表的目标就是服务机器人处于正常的环境。监测对象是电机和系统。如果检测到一些异常,自适应系统则诊断异常,建立自适应策略并执行。因为要显示的是总的目标图,这些数字用不同的方法表示。目标图通常由目标设计者来画的。

在这种情况下,有几个目标图。告知一个组件和哪些水平,任务,层次相关是非常重要的事。如果存在相似的组件,那就由同一个管理者管理,并应用在重使用程序中。

从机器人的正常传感目标,我们可以得知组件的类型,自适应模块的层次,这个目标图所在的水平。有四个水平,六个任务,四个层次和12个组件。这些组件被应用在另一个目标图表中。我们找出重复使用的组件和各组件之间的关系。

为了建立模板代码,开发者制作了代码结构。整合各结构就是第三部分中的图3。在图3中,有六个组件和两个库。我们做一些代码结构。用目标图所获得的信息,建立用应该由开发者生成的框架加载信息。这种做法必须有这些代码结构和自我修复的政策。

用代码结构和获得的信息,模板生成器为自适应系统中的自修复生成模板代码。不像视频会议系统一样,这个系统是以结构工程为基础的。代码结构是否良好取决于开发者。但是,我们的方法提供了图3和图5中的代码结构建设。在此基础上,做代码结构比修复功能要容易多。

图15显示了该系统的系统日志。在自适应工程中,信号监控器检测出是否每个组件都正常执行。如果没有信号,动态检测器开始检查组件并应用自修复策略,比如用池中的其他组件。

图15 系统日志 6 评估

表8 对在视频会议系统中应用这个方法的前后开发者的努力进行明显的比较。如果没有拟议努力可以被认为是100%的,它表明努力减少了。首先,我们并比较代码的行。代码行以51%的速率减少。第二,开发者生成的类数目也要比较。很多的应生成的类应该是这个方法创建的。类的数目以85%的速率下降。因为专家级的开发者花的时间要比新手少,所以开发时间指标是动态的。总的来说,开发的时间在减少,总的开发时间在减少。我们的研究人员测出的这三个指标没有绝对价值。AspectJ是面向面编程的。检测相关方法依赖于开发人员的能力。这比一般的编程更有效但是要比AspectJ要好些。

图9对开发者的努力进行了比较。AspectJ和GCD没有比较,因为这个系统不是基于JAVA的。

图16 表示了每个类中视频会议系统自动生成代码的一部分。这个数字表示了多少行的代码可以自动生成。在这种情况下,有几个类。一些类扮演展示系统状态或模块的角色,比如视图模型类。一些类扮演提供系统功能的角色,比如评估传输时间类。另一些扮演的是在自适应系统中提供自适应功能的角色,比如动态检测类。该文件传输模块包括了这些类。

我们也执行很多任务以评估再利用的过程。本文中,传输100呵呵1000份文件。每个文件传输时间间隔不定的为0和1之间或介于0和10毫秒。这个环境意味着很多用户应用这个目标模块。图表10描述了实验因素。T代表着任务的数目。在这种情况下,这表示文件传输的数目。我们使用5mb的文件。Imax代表各文件直接的传输时间间隔。一个文件开始传输,然后另一个开始。两个的间隔时间是0毫秒到1毫秒之间。

图17,18.,19和20 表示了实验的结果。在这个过程中,用这个方法时组件的数量要比不用它时少。即系统资源占用在减少。在图17的开头,应用的活动组件的数量比没有用的多很多。这意味着文件传输不是很有效,并且发生再利用的过程比其他的要少。图18 也展示了类似的数目。但是在图17 和18中表示提出的这个方法比之前的要好。在这些实验中我们确定该方法在任务越来越多的时候是更好的。

我们也确信这个方法在当前任务较多时是非常有效的。图19 展示了实验3 。在数字的开头,“应用”行比“没应用”行要高。这种情况下,每次传输的时间间隔是之前实验1的10倍。交换管理器更活跃,因为间隔长了没有用到的组件比实验1多了。这个结果意味着当间隔越长再利用的资源越多。图20 对实验4和实验3进行比较,实验4的开始没有实验3好。这种情况下,任务数量比实验1 ,2 的10倍还多。这意味着实验3有更多再利用的组件资源。这个交换管理器在任务多、间隔时间短的时候好。

图表11是功能和功能因素的比较。“基本目标”指的是本文中的这个拟议。“基本UML”是自修复的自动代码生成。两种方法,代码生成都支持。但是我们的方法可以支持自适应系统的错误控制。这是个可信赖的功能。还支持性能的提高。

图20.实验4的结果(T=1000,Imax=10.)

7 总结

关键系统要求自适应模块的设计和实现提高可靠性,容错性和可用性。设计和应用取决于开发人员的知识。自适应系统的自动代码生成是个优势。自适应系统中的性能恶化也解决了。自适应系统利用额外资源,部分地决定了系统性能。自适应系统的设计和实现中有些地方下降了。启动开关减少了资源占用。启动开关中的一些错误可以检测到。

英语论文翻译

英语论文翻译

英语论文翻译

英语论文翻译

英语论文翻译

英语论文翻译

英语论文翻译

英语论文翻译

汽车英语论文翻译

专业英语论文翻译

英语论文翻译
《英语论文翻译.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档