自演化智能软件系统平台的架构设计和技术研究

2013-08-01 07:14
微型电脑应用 2013年4期
关键词:管理器顶点合约

刘 洋

0 引言

自演化智能系统平台(AISP,Adaptive Intelligence System Platform)是用于软件开发的语言项目的系统平台。包涵XML,人工智能,数据挖掘,自适应软件框架等热门领域和新技术。自演化智能系统平台可根据自适应的领域模型,来重新改写自身架构,更具外界的环境,不断调整自己的学习库。是系统平台能够根据外界环境,不断改进学习。

AISP 目前仍处于研发状态。目前在企业内部挖掘应用了模拟开发环境、自动化测试、代码质量鉴定、Log 日志分析。

1 自演化智能系统平台具体实现

1.1 自适应架构设计原理

传统上,软件架构,只提供在一个系统中的参与者和互动结构的静态描述。然而,动态软件体系结构,可以在运行时重新配置,因此,建设动态适应性的应用提供支持。软件架构可以指定使用的架构反射。我们通过数据结构图,及重新编写架构的配置图可作为反射方案实现改变架构,及所谓的自适应契约。传统的架构一直在面向对象的软件方法,但是不适应过于复杂和分布式对象系统。在运行时支持自我管理和动态系统的软件体系结构通过重新配置可用于建立动态系统[1]。

动态系统,在运行时基于背景信息能自适应自己的行为。动态系统有两种类型:封闭的动态系统和开放的动态系统。对于封闭的完整的系统的行为和动态系统描述的修改是在编译时刻指定。另一方面,开放动态系统,系统的行为演变在建造时和运行时对必要的自适应修改。实施开放的动态系统的技术,包括动态链接机制,动态对象技术(包括类加载器)和动态编程语言。

适应系统的逻辑通常是由两个主要部分即监测和重构代码组成。监管代码负责识别系统的运行区域转换。运行区域定义系统的不同操作模式和不同配置。运行区域可以触发一些在系统内部状态的改变,或改变系统中的依赖环境。工作区转换识别自适应事件,事件是系统重配置的信号量。例如,资源管理器在某些服务质量等级上的不再提供托管资源给客户,他们会产生自适应的事件都来处理内部和发送到资源的客户端系统。系统可以生成和接收适应事件,处理并发给感兴趣的客户。自适应系统包含监测和重构代码。因此,何时和如何重新配置系统可以由用户外部提供,要么在运行时修改(即适应性系统),或者是内部提供,并在设计时是已知(即自我自适应系统)。则系统就具有了适应性和自适应性[2]。

适应软件架构的逻辑是捕获在架构的限制和重新配置操作。架构约束包涵配置约束断言,组建或连接器的属性,呈现一个或更多的利益攸关者所不能接受的软件架构冲突。

架构反射定义为关注观察和操纵一种软件体系结构配置图和其组成的顶点和边。目前达成构成一种软件体系结构的配置图中的顶点和边缘的共识。配置图的顶点和边是组件和连接器,接口和连接器,代表一个类型的配置图。有关行为的反映,是与系统的计算物化的结果。在软件架构中,每个配置图代表一个特定系统的计算实例。我们定义为软件体系结构行为的反射,能够重写系统的组件和连接器在运行时的配置图[3],如图1所示:

图1 显式和隐式适应性和适应性管理器

1.2 架构元模型

架构元模型基于具体化系统的特性。在一个动态的软件体系结构设计一个架构元模型的主要问题包括:元级要定义架构特性(如体系结构的配置图,元件和连接器),如何表现适应代码,以何种机制提供纳入系统的适应代码,以及如何在动态重新配置管理系统的完整性和一致性。

1.2.1 架构元模型配置图

我们具体化软件架构配置,作为一个类型连接图,其中顶点以接口与组件实例标记,边缘以连接器属性标记。一个顶点作为一个接口和实现(组件)对,边被建模为I-> LJ,其中包含源和目标顶点i 和j,边标签l.边标签表示重配置连接器属性,如改变其通信协议或安装拦截设置。配置图的根顶点,是一个特殊类型的顶点,在程序的入口点。它通常是C++/ Java的主程序。环在图中用于建模连接器环。元级组件,被称为配置管理器,负责为存储和管理软件架构的配置图。

1.2.2 配置图转换的动态重配置

我们将有条件的图形转换的动态重新配置,在反射方案称为适应合约.一个图形变换是一个以规则为基础的操作配置图。表示我们图的顶点和边缘的接口、连接器,描述的是保存在一个图形变换系统的静态结构的一部分。改写的一部分,是分别表示在我们的图的顶点和边的标签组件实例和连接器属性描述的动态结构图的图形转换过程。

图形转换确保规则的结果仍是一个图,如果图中的事务性操作遵循规则,因此我们可以保证系统的完整性和一致性。然而,在实践中,图形转换可能会影响只是配置图和重新配置协议的一部分,可以用来确保只有那些转型影响的顶点必须处于安全状态。我们按照这种方法,并使用重新配置,它有助于减少重新配置阶段的长度,并允许重新配置阶段的客户端并发调用没有“冻结”的组件。计算和适应代码是通过重新配置协议相关,因为它冻结在参与重新配置的组件计算。组件的状态只能通过计算,而不是通过重新配置操作。我们重新配置协议等方面的优势之一是从旧的组件状态的转移到新的组件的状态,维护系统的完整性。组件状态的成功转让需要组件开发者为他们的组件中实现一个拷贝构造函数接口。元级的配置管理器是负责执行的重新配置操作和正确操作的重新配置协议[4]。

2 管理动态配置

配置管理是元级的适应管理器,存储的具体化配置图,并实现了重新配置(图重写)操作和重新配置协议。配置管理器是为适应合约的部署,调度和执行的运行时容器,如图2所示:

图2 配置管理器作为元级适应性管理器

配置管理提供了一种在运行时装载/卸载适应合约的程序接口。为了保证引入系统代码的安全性,新的适应性合约必须在原有的值得信赖的环境下进行开发和测试。 程序接口验证新的适应合约得到了XML 描述器的信任。

适应合约是用来指定架构元模型的配置图的有意义转换。可以使用他们提供的自适应系统的适应逻辑。适应化修改合约反射是调用重新配置操作修改软件架构本身的结果的架构元模型。他们代表元级对象在运行时部署和配置管理器。适应性合约中包含了一系列的元级别的配置图转化的条件规则。适应性合约是用来指定一个系统的体系结构约束。因此架构约束代表配置断言的属性,组件或连接器,适应性合约要求访问这些属性和断言的机制。我们提供一个允许合约轮询元级配置和基本组件和连接器的结构约束信息的机制作为适应性事件。 架构的约束,可以指定使用条件语句的适应事件。适应的事件具有从基础组件和连接器的元级适应性合约去耦的优势。实际上,他们提供适应代码和计算代码相关的运行时的分离。允许动态加载和卸载适应合约,因此没有直接依赖于他们的客户端。在软件体系结构的重新配置,传入和传出的管理系统及其依赖系统的安全性和完整性的关键。由于两个不同类型的依赖关系,适应合约有两种形式:管理内部资源的配置合约,从客户端和传入的依赖关系,管理组件传出依赖关系的组件系统。支持管理引入的重配置合约依赖关系。 在我们的模型中,配置合约只能被定义为一个单一的地址空间。连接合约代表系统和组件之间的单个连接的体系结构约束。类似配置合约,他们由一系列条件语句和重新配置操作组成。配置工具通过软件架构的组件和连接器或者具体的语言的过程执行适应合同,如项目中的C++。 允许的组件框架中的专业化和具体化的抽象元级别的组件执行细化的转换[5]。

3 组件框架

通过提供使用接口,IDL 是用来定义显式的依赖管理组件。IDL的发射和消费的事件用于指定基础级适应事件。组件的框架是由专业和模板中的组件框架抽象组件的IDL 编译器生成。组件可以是原语或复合组件。组件也有重新配置协议使用的接口:一个遍历接口遍历配置图和更换组件过程中迁移连接器和状态的的拷贝构造函数。他们表示元级配置管理器类型的引用,用于重新配置操作和适应事件处理。组件元信息,使用在适应合约描述语言,存储在一个XML 组件描述符,由组件IDL 定义生成。连接器由专业和模板组件框架抽象连接器的IDL 组件定义。有两种类型的连接器:客户端和提供者连接器。客户端连接器可以直接连接到一个组件,除非它是外部系统,在这种情况下,它连接到一个目标组件提供者端。连接器提供了重新配置接口,如link_component 和unlink_component 操作,并配置管理器,使用这个接口来实现其图形重写操作。在我们C 原型实现中,一些抽象和编程术语是用来代表通常在ADL 发现的概念,如接口,连接器和绑定操作。与其要求程序员显式地指定一个软件架构ADL 配置图,不如我们build C++源代码依赖关系图自动生成静态部分的元级配置图。类似C 语言编译器如何生成一个C 头文件的依赖关系图,配置工具解析的C 源代码,从入口函数的连接器(边)到目标接口(顶点)。每个接口的头文件,然后被解析为更多的连接器和接口直到达到叶接口,并建立了系统分析树。配置工具生产的类型,直接作为系统接口配置图的顶点和链接器,如同边的XML 配置描述器。开发者可以通过编辑配置描述器接口标签绑定接口和组件的。一旦组件实现已指定的所有配置图和适应合约已连接的所有接口,软件架构可以被配置工具实例化。

可扩展标记语言(XML)是基于Web的应用程序和软件系统的新兴标准。 XML 是一种标记定义的语言,它允许定义与所谓的文档类型定义(DTD)的分层标记语言。有了适当的DTD,标准的XML 工具,非常方便地用来编辑,类型检查,分析和改造的任何XML 文件。

XML 解析对配置文件的内容有强制格式约束,同时构建相应的内存结构,并以此自动执行一致性检查来替代手工编码。一个友好的XML 编辑器拥有图形用户界面的,允许最终用户而无需掌握语法的设计配置。

使用可扩展样式语言(XSL),可以通过文本和图形,自动创建一个配置文件,实际项目中会开发系统的XSL 脚本文件集合来执行自动配置过程。标记语言通常用来注释结构信息的文本文件。因此,通用的XML 文档,包括文本分组和结构的标签。标记语言定义XML的元素,本质上作为标记表示,结构模型(内容模型)的可行方法是元素可以嵌套。此外,元素属性名称表示为注释对。AISP 图元素对象和这些对象的成员属性。我们不使用任何文本内容,只是凭借DTD所提供的内容模型。项目中开发的XML 解析器建立一个代表给定的配置文件中的元素的树。根据对象类,解析并设置相应的成员属性的字符串的值。属性通常描述为一个转换参数等数据。DAG 结构元素被创建是使用唯一的ID,并在占位符元素引用这些ID。同样,XML 强制保证元素拥有的ID的唯一性,从而简化了搜索引用的元素的解析器库。DTD 中必须限制子树和类型数量。源对象通常不会有子女的对象,因为它们依赖从外部数据源的数据来计算自己的数据。一组过滤器对象会取得单一子树的数据,并将其转换、传递。

不同的的子树的数据将进入到同样的方式计算。而在另一个用例中,对象的不同子树会影响以计算方式从而导致其差异。例如动态转换通过另一个对象的数据值进行参数化,从而使用不同的参数化对象的数据转化对象的数据值。使用包装元素,将需要标记为子元素的对象映射为只需某个确定标记的子元素。这种标记元素可以嵌套的拥有其他元素作为子元素。

标记元素被映射为软件中的标记对象,可以表示任何特殊功能而只返回其子元素。我们可以通过设计对象过滤器用于区分这种元素[6]。

通过XML 形式来保存配置图的顶点和边相。通过设计的特定解析器,将其解析到架构运行时中。

4 结束语

自演化智能软件系统平台作为企业内部研发平台,用于大规模商用,医用软件的开发,系统开发预研项目。已经取得了一定的成就和成果。并在自动测试吗,模拟开发,专家系统辅助开发,智能计算,人工智能领域发挥了不可替代的作用。但是仍有许多关键技术无法突破,如结论确定性,进化熵扩散等问题。仍需要继续进行更多的研究。

[1]Walter Cazzola,Andrea Savigni,Andrea Sosio,and Francesco Tisato,“Explicit Architecture and Architec-tural Reflection”.[C]In Proceedings of the 2nd International Workshop on Engineering Distributed Objects(EDO 2000),LNCS.Springer-Verlag.

[2]Robert J.Allen,Remi Douence,and David Garlan,“Spe-cifying and Analyzing Dynamic Software Architectures”,[C]Conference on Fundamental Approaches to Software En-gineering,March 1998.

[3]Peyman Oreizy et Al.,“An Architecture-Based Approach to Self-Adaptive Software”,[J]IEEE Intelligent Systems,May/June 1999.

[4]Nenad Medvidovic and Richard N.Taylor,“A Classifica-tion and Comparison Framework for Software Architec-ture Description Languages”,[J]IEEE Transactions on Software Engineering,January 2000.

[5]Jim Dowling,Tilman Schaefer,Vinny Cahill,“Using Reflection to Support Dynamic Adaptation of System Software:A Case Study Driven Evaluation”,[C]In Proceed-ings of Software Engineering and Reflection 2000,LNCS 1826.

[6]reitmayr dieter,"OpenTracker -An Open Software Ar-chitecture for Reconfigurable Tracking based on XML Gerhard Reitmayr and Dieter Schmalstieg",[C]Vienna Uni-versity of Technology

猜你喜欢
管理器顶点合约
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
启动Windows11任务管理器的几种方法
应急状态启动磁盘管理器
Windows文件缓冲处理技术概述
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望
数学问答
在Win 7下利用凭据管理器提高访问速度等
一个人在顶点