您当前的位置:科技中国网要闻正文

应用系统分析工具帮助实现软件自愈

放大字体  缩小字体 2017-10-12 16:26:40  阅读:140

  越来越多的企业意识到软件质量的重要性,软件的安全性与效率成为一个公司成功运转的关键因素。对企业而言资金不仅要投资到技术创新,大笔资金还应流向对原有系统和原有软件产品的更术创新,还需在重构旧软件上消耗精力与时间,如果软件的自愈能力提高,这将将使开发团队效率提高至少30%。

  十年前的软件技术水平已达到可以使用先进逻辑识别自己的故障,进行自我修复;如今将自我修复应用于当今世界,依赖技术来简化软件,已不是难点。软件自愈/自我修复概念已经在基础设施领域取得了实质性的进展,它能够防止网络攻击或者大面积系统中断导致的客户服务中断等问题。数据中心配备故障切换指令,能够自动保持系统正常运行;一般企业网络安装足够敏感的防火墙以检测不遵常规协议的恶意攻击。容器和云服务的应用将更进一步防止应用程序和服务失败,以及应对峰值交易数量的突然增加。将自我修复技术直接应用于源代码,将有助于软件的开发与改进。

  以2010年IBM在以色列实施SHADOW项目为例,该项目提出了建立消除现代化和修复旧软件的故障模型。过去,工程师需要花费大量时间与精力手动筛选旧代码,只有检测到代码质量问题才予以修复,SHADOW项目提出模仿工程师的行为,将人工智能原理应用于软件,但该项目“从外部”工作,没有修改源代码,只有将工程师修改填写代码内容的行为导入到SHADOW项目,才能研发出自愈软件系统。

  SHADOW相当有潜力,但由于市场成本过高,该项目在当时的情况下,实施落地为时过早。主要原因是当时离岸外包处于高峰,维护旧软件的工作多转向低劳动力成本地区。如今,离岸外包的成本优势不像过去那样明显,商业世界变得更加敏捷,企业更习惯于在IT系统的各个层级上自主快速地处理变化,而非依赖维护外包服务。现今再谈软件自愈,时机已成熟。

  识别源代码层的BUG

  自我修复过程中的第一步是识别不安全程序或存在潜在风险的程序,但这些问题缺陷难以在前端识别,只有当应用程序处于运行中并发生问题的情况下才会被识别。MITRE的CWE和CISQ(IT软件质量联盟)已发布通用的软件质量标准,帮助企业对软件质量进行测试评估。系统效率、弹性、可维护性和安全性是构建自愈软件的基础。采用软件质量标准对应用程序进行检测,使研发人员可以从系统的视角进行趋势分析,找出应用程序故障及服务中断的常见原因,建立一个精确的、增长的缺陷代码数据库,也为机器学习进一步自动化分析和预测系统故障建立了基础。

  应用结构离散、分拆的同时需要有系统架构蓝图

  已经开始实施微服务(Microservices)的团队(包括将应用程序分解成更小、更容易变化的组件)将更容易实现非侵入式的自修复过程。但是,在某些时候,这些组件必须重新组合起来才能形成一个功能齐全的应用程序。将系统级分析作为一个质量检验关,然后将一个自修复的系统重新投入到生产中,将有效防止新的软件缺陷或问题代码重新回到系统中。另外,应用系统级分析工具在应用程序重新投入生产之前创建一个架构蓝图将更加有利于应用的系统化管理。CAST AIP(应用智能平台)的自动化检测、分析以及生成架构蓝图的能力,使得这些步骤的实现变得轻而易举。

  软件自愈—科技创新的跳板

  结合自修复的自动化特性为企业创新打下良好的基础。例如,编写软件以自我检测报告不规律行为和不遵循规则的活动可以简化应用向云迁移的工作。目前,将软件应用程序迁移到云环境中,同时应用程序能够正确地在云中运行,需要对代码进行单独的分析和返工。如果这些云应用程序可以自行分析并主动报告在迁移之前需要修复哪些内容,能省时省力的同时也能及时预防在云转换过程中出现的业务中断。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!