文摘
上下文感知系统能够监控和自动调整其操作相应的执行上下文。基于组件的软件工程(CBSE)侧重于独立的开发和重用软件资产以达到更好的效率和质量。为了存储和检索组件,CBSE雇佣了组件库系统为系统开发人员提供组件。提出了一个活跃的组件库,能够接收从上下文感知系统当前配置和计算组件和新架构,更好地适应给定的上下文。自库有一个广博的知识可用的组件,它可以更好地决定哪些配置是更适合于运行系统。存储库的模糊逻辑算法适用于评估组件和掌握算法的充足率水平安装新的系统架构。为了验证我们方法的可行性,我们使用一个数字电视中间件案例研究实现实验结果。
1。介绍
普适计算是变得越来越流行,因为引入了魏瑟(<一个href="#B1">1一个>),普遍是指计算机设备和软件的无缝集成到日常生活。环境敏感的适应是普适计算领域的一个重要领域。上下文感知系统能够监控和自动调整其操作相应的执行上下文。
基于组件的软件工程(CBSE) [<一个href="#B2">2一个>,<一个href="#B3">3一个>)关注独立的开发和重用软件资产以达到更好的效率(<一个href="#B4">4一个>)和质量由以前开发的软件系统是由组件(和测试)的其他项目使用。在这种方法中,软件系统是由独立的组件,显式地声明他们的功能(提供的接口),提供所需的功能(需要的接口),并执行上下文需求。
除了前面描述的优点,基于组件的软件(CBS)可能存在其他特性,比如组件更新,功能增强,和适应性。
如果CBS需要更新,只有特定的组件实现更新的功能需要更新。功能增强也是促进因为新组件可以添加新功能和动态加载到系统中。最后,适应性也可以通过配置和/或替换组件通过另一个更好的适应当前的执行环境。
方式面临的挑战之一是发现合适的可重用资产的任务,满足特定的软件系统开发的要求。为了解决这些问题,提出了几个组件库系统(<一个href="#B5">5一个>- - - - - -<一个href="#B9">9一个>]。因此(<一个href="#B10">10一个>),一个组件库是一个软件系统,它提供的功能定位、选择、和检索软件组件。
你们(<一个href="#B11">11一个>)提出了一个库,它提供了活动信息发布机制。你们的积极库能够为用户通过监测他们的开发活动提供信息而不需要得到明确的查询。这些系统在后台执行在一个集成开发环境(IDE)监测用户活动和建议可能的软件组件中使用当前开发环境。
传统和活跃存储库提供的功能只有在开发阶段的软件系统。一旦部署系统,存储库是毫无用处的。这样,为了促进环境敏感的运行时适应基于组件的系统,提出了一个活跃的存储库,积极提供新的软件组件,更适应的环境适应性系统。从存储库中有一个广博的知识可用的组件,它可以更好地决定哪些配置的组件更合适的运行系统。在拟议的方法中,上下文感知系统通知库当前配置及其上下文信息和存储库能够计算组件和新架构,更好的适应给定的上下文。这样,组件库通常采用基于组件的软件系统扩展提供组件,不仅在开发阶段,还上下文感知组件在操作阶段系统的生命周期。
本文组织如下。部分<一个href="#sec2">2一个>介绍了库体系结构和我们的方法所使用的机制,以评估组件的充足率水平给定的上下文。部分<一个href="#sec3">3一个>介绍了启发式算法用来计算给定系统的新架构。这些算法使用充足率水平部分中描述的组件<一个href="#sec2">2一个>。部分<一个href="#sec4">4一个>介绍我们的数字电视中间件的案例研究。部分<一个href="#sec5">5一个>提出了一些实验结果取得了与我们的数字电视中间件的实现。相关作品中讨论部分<一个href="#sec6">6一个>。最后,部分<一个href="#sec7">7一个>我们的结论和未来的发展方向。
2。系统架构
允许建设的自适应基于组件的系统,现在被称为客户机系统,我们已经创建了一个名为REATIVO的架构,将处理客户端系统环境变化和产生新的系统架构的时间通过组件重新配置。图<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig1/" target="_blank">1一个>显示REATIVO的总体架构。
这个架构并不是局限于一个特定的组件模型。然而,使用REATIVO的服务,客户端系统需要使用至少一个组件模型,允许开发简单的重新配置命令(添加、删除、替换、连接或断开系统中的一个组件)。
此外,客户端系统必须实现一些模块允许REATIVO检索系统当前配置的状态和上下文表示。
REATIVO模块可以分成两个不相交的集团客户端组件和服务器组件。数据<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig2/" target="_blank">2一个>和<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig3/" target="_blank">3一个>分别显示这些组件。如图<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig2/" target="_blank">2一个>如下,客户端组件。<年代pan class="list">(我)年代pan>监控经理:负责监控当前执行上下文的状态和组件体系结构(组件监控),执行环境(环境监测)和用户(用户监控)。年代pan>(2)年代pan>具体化经理:负责结合meta-representation监控经理,收集到的信息将被用来生成一个新的优化配置系统。年代pan>(3)年代pan>配置经理:负责实例化的初始系统体系结构(配置初始化)和实例化REATIVO服务器发送的新架构,将实例化新的架构添加、删除或替换组件(组件安装程序)或连接现有(组件配置器)。年代pan>(iv)年代pan>库接口:提供与REATIVO服务器通信。这个模块可以提供服务器的客户机系统抽象位置以使分布式服务的使用。年代pan>
REATIVO服务器接收客户端系统上下文提供了一组服务,并提供重新配置命令。下面列出了组件的服务器。<年代pan class="list">(我)年代pan>评估者:定量评估给定组件的充足率水平因此给定客户端上下文。年代pan>(2)年代pan>存储管理器:存储组件库。年代pan>(3)年代pan>在分布式组件定位:定位组件库中。年代pan>(iv)年代pan>优化器:实现了启发式算法来解决(见部分最好的配置问题<一个href="#sec3">3一个>。生成优化的组件体系结构)。年代pan>(v)年代pan>Reconfigurator:重新配置客户端系统通过发送重新配置命令:添加、删除、替换,连接或断开连接组件。年代pan>(vi)年代pan>客户端接口:实现REATIVO的客户端和服务器之间的通信。年代pan>
2.1。库的行为
当客户端系统,启动配置初始化器读取初始组件体系结构和初始化它把系统全部执行。
一旦执行,将监控系统变量REATIVO客户机组件。监控的变量选择根据本体开发聚焦特定的应用领域。当检测到上下文修改,客户端系统生成meta-representation通过具体化管理器,并使用存储库接口通过REATIVO的服务器,这将激活优化器来启动流程生成一个新的体系结构。
优化器将执行一个启发式算法计算最佳组件体系结构基于接收到的上下文。这种启发式算法将部分中描述<一个href="#sec3">3一个>。生成优化的组件体系结构和依赖于每个组件的适当水平。
当找到一个更好的架构,REATIVO服务器发送必要的重新配置命令来改变客户端系统通过客户端接口组件。
2.2。组件Evaluation-Calculating组件的适当水平
能够评估给定组件对于给定的执行上下文,REATIVO使用评估者组件(参见图<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig4/" target="_blank">4一个>)。评估者使用模糊逻辑的实现(<一个href="#B12">12一个>)进行定量评价的适当水平的组件来执行一个给定的上下文。在这种背景下,充足率水平由值从0%到100%不等的充分性。
当鉴定人查询组件请求存储管理器组件描述格式包含一组规则:如果“条件”,那么“组件来说是足够的。“通过使用这种模型可以认为最好使用一阶逻辑来决定当一个组件是否足够,然而一些测量执行上下文可能不会像规则:如果“收到信号噪声“然后”组件是足够的。“在这种情况下,信号可以有很多,中等或只是少量的噪声,所以使用一阶逻辑不是一个好的选择,因为它不能很好处理不准确的值。
通过使用模糊逻辑在上一个示例中,我们可以得出这样的结论:组件是“足够的,”“温和的”或“小的”通过使用广义演绎推理(<一个href="#B12">12一个>什么解释我们的选择的模糊方法。
评估者存储组件描述知识数据库和客户端系统发送的执行上下文的事实基础。这种方式,事实基本包含由领域本体的信息约束变量及其值范围,除了使用以下参数的模糊推理引擎。<年代pan class="list">(我)年代pan>针对性函数输入变量的模糊集可能属于;年代pan>(2)年代pan>数学运算符,实现模糊逻辑操作;年代pan>(3)年代pan>去模糊化函数利用;年代pan>(iv)年代pan>模糊规则知识库中插入;年代pan>(v)年代pan>模糊集的输出变量推理引擎可能属于。年代pan>
在这种背景下,本体是用于定义相关概念域(这些概念将由客户端监控系统)和值范围的每一个概念。另一方面,分量充足水平是由模糊推理引擎,它接收输入的值领域本体变量收集的客户端系统。
每个组件在存储库中提供了它自己的一组参数(上市之前)中定义的组件描述符和交付与组件存储管理器。这样的组件开发人员灵活地定义如何评估者模块将表现在评估组件。
这个概念可能会导致一个问题,一些组件以不同的方式评估同样的标准。例如公司可以指定它的组件有一个50评估确定上下文和另一家公司可以指定它的组件,那么适当的事实上,评价60相同的上下文。为了解决这些问题,必须指定组件描述根据定义良好的标准;然而,这个问题已经超出了本文的范围。为了简化问题,我们假设组件实现的工作由同一制造商或制造商的组件是由一个财团,使用相同的评估标准。
可以指出一个重要方面是,REATIVO域独立存储库的方法。如果存储库需要使用不同的客户机应用程序,在不同的应用领域,需要开发一种新的领域本体特定领域和组件库中注册需要定义它们的参数模糊推理引擎兼容新的本体,换句话说,需要考虑新的本体中定义的变量的值。需要做任何更改存储库服务器逻辑。
3所示。生成优化的组件体系结构
REATIVO存储一组需要的组件连接在一起,形成一个基于组件的系统。根据存储组件的数量,可以过高可能的组合的数量。
这种方式找到最适当的组件体系结构对于一个给定的执行上下文将是一个重要的工作。这个任务由优化器执行组件在我们的体系结构;给定一个客户端发送的执行上下文,该系统将试图找到一个更好的合适的架构通过求解面向组件的一个实例(COSOP)系统优化问题。
3.1。面向组件的系统优化问题(<一个href="#B13">13一个>]
任何基于组件的系统至少有一个提供接口,使用外部实体访问系统的服务和零个或多个系统需要的接口所使用的访问外部服务。
在我们的例子中两种类型的接口是由系统实现的内部互连组件。互联是通过使用组件的接口,也可以要求或提供。
在图<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig5/" target="_blank">5一个>绿色和黄色圆圈表示系统提供的和被要求的接口。深蓝色和白色圆圈表示组件提供的和需要的接口,分别。
每个所需接口代表了服务组件为了正常工作所需的所以它需要连接到一个接口提供的另一个组件来获得所需的服务。这生成一个兼容性属性时需要满足的两个接口之间的连接。
这样一个面向组件的系统包括连接一组组件的方式,满足以下规则。<年代pan class="list">(我)年代pan>所有相关的系统提供的接口提供一个相应的内部组件的接口。年代pan>(2)年代pan>所有内部组件所需的接口连接到一个兼容的组件或关联到相应的系统所需的接口。年代pan>(3)年代pan>所有提供的接口可以连接到0或<年代vgheight="14.2375" id="M1" style="vertical-align:-3.13504pt;width:20.9125px;" version="1.1" viewbox="0 0 20.9125 14.2375" width="20.9125" xmlns="http://www.w3.org/2000/svg">
作为REATIVO假设每个组件的库可以被评估者的评估模块,组件成本的定义如下:
成本评价函数:我>
因此,使用(<一个href="#EEq3.1">1一个>),系统的总成本,由每个系统的组件成本的总和,必须最小化以达到最好的系统。
3.2。数学模型
数学模型是为了减少开发的系统总成本满足一些约束为了维护的属性基于组件的系统。基于约束满足和极小化方程,我们有如下的优化问题:
方程是最小化:我>
在接下来的约束。年代pan>
约束的最小化问题:我>
表<一个href="//www.newsama.com/journals/jcnc/2012/963728/tab1/" target="_blank">1一个>解释变量的完整考虑的优化问题。<年代pan class="equation" id="EEq2">
在这个模型中,目标函数(<一个href="#EEq1">2一个>)必须最小化以达到最佳的组件设置为给定的执行上下文。
约束(<一个href="#EEq2">3一个>)意味着只有兼容的接口可以连接,这种方式如果所需的接口<年代vgheight="10.7375" id="M20" style="vertical-align:-0.13794pt;width:8.6000004px;" version="1.1" viewbox="0 0 8.6000004 10.7375" width="8.6000004" xmlns="http://www.w3.org/2000/svg">
限制(<一个href="#EEq3">3 b一个>)指出,如果一个组件中使用的解决方案,所有它需要的接口必须连接到提供一个兼容的接口。如果一个组件<年代vgheight="9.9250002" id="M25" style="vertical-align:-0.13794pt;width:4.9875002px;" version="1.1" viewbox="0 0 4.9875002 9.9250002" width="4.9875002" xmlns="http://www.w3.org/2000/svg">
然而,(<一个href="#EEq4">3 c一个>)表明,一个组件提供的接口<年代vgheight="12.675" id="M30" style="vertical-align:-2.34499pt;width:7.1374998px;" version="1.1" viewbox="0 0 7.1374998 12.675" width="7.1374998" xmlns="http://www.w3.org/2000/svg">
3.3。问题的复杂性
COSOP问题有一个简单的解决方案如果所有组件所需的接口是兼容所有其他组件提供的接口,但是,事实并非如此,即使是最简单的系统。
一种更好的方法可以把重量给定接口连接。兼容的最佳接口成本为0,而不兼容的接口有一个高成本,其他不合适的接口有中间成本,所以这个问题将沦为“互连一组节点(提供的和需要的接口)(软件组件),通过中间节点互连的成本最小化。“这个问题已经解决,作为色料树明星(<一个href="#B14">14一个>,<一个href="#B15">15一个>]。
作为色料树明星问题被证明是np完备性,可以减少我们的问题,我们的问题也可以被认为是减少非完全多项式的证据。
3.4。应用掌握启发式
作为一个np完全问题,找到一个最优解COSOP实例并不是一件容易的事情。我们决定使用贪婪随机自适应搜索过程(掌握)<一个href="#B16">16一个>)启发式更快地找到近似的解决方案使优化器组件和可靠的一个真正的系统。
掌握的方法包括在每个迭代的迭代算法由两个阶段组成:构建阶段和局部搜索阶段。算法的最终答案是最好的解决方案在这些发现在逐次迭代。
COSOP,掌握启发式将考虑C组的所有组件存储在存储库和M的组件组装在当前的解决方案。两个集定义,A和P,是系统和组件的集合M的需要的接口没有连接到提供的接口和P系统提供的接口和组件的集合”出现在M。
在构建阶段,它将建立一个图,节点代表组件和边缘代表它们的接口之间的联系。
评估成本和约束中定义的每个解决方案都是相同的(<一个href="#EEq1">2一个>)和(<一个href="#EEq2">3一个>)- (<一个href="#EEq6">3 e一个>),这种方式的算法将运行,直到找到一个解决方案,所有必需的组件的接口连接到提供的接口。换句话说,一组是空的。
3.5。掌握构建阶段
这个阶段开始空着解决方案图中。在每个迭代中,要求界面从设定一个“a”,从C所有组件提供的接口兼容选择“a”。组件放在一个候选人名单(CL),然后限制候选人名单(RCL)是随机生成的使用一些最好的候选人在CL。在RLC将组件满足(<一个href="#EEq3.3">4一个>),<年代vgheight="13.6125" id="M39" style="vertical-align:-2.34499pt;width:24.7125px;" version="1.1" viewbox="0 0 24.7125 13.6125" width="24.7125" xmlns="http://www.w3.org/2000/svg">
候选人的评估:我>
建筑RCL后,随机选择一个组件的设置和接口“a”,选择一开始连接到它。伪代码是在算法的构建阶段<一个href="//www.newsama.com/journals/jcnc/2012/963728/alg1/" target="_blank">1一个>。
|
||||||||||||||||||||||||||||||||||||||||||||||
3.6。本地搜索
在本地搜索阶段,发现之一的社区解决方案构建阶段使用两个扰动生成操作:交换操作,在于改变一个组件的解决方案,减少操作,在于消除组件的解决方案。
在这两种情况下,使用交换或删除操作意味着重建一个可靠的解决方案通过使用剩余的组件,然而,这些操作可以提高实际解决方案,取而代之的是一个在这种情况下越好。
4所示。FlexTV中间件的案例研究
在本节中,我们分析案例研究中,为了验证REATIVO的使用方法。目前数字电视(DTV)系统采用世界各地的定义中间件服务为了使电视接收器执行电视应用程序发送的广播公司除了简单的音频和视频展览。
数字电视中间件基本规范应用生命周期和交互的api提供了在其上运行的应用程序。一般来说,这些中间件必须处理多个上下文的变化,例如不同的硬件平台,支持广播应用中,不同的信号质量和QoS需求,等等。这种方式,数字电视中间件形式的相关案例研究提出了工作。
在这个案例研究中,我们使用一个参考实现的巴西数字电视中间件程序称为FlexTV。我们的实现是基于组件的体系结构定义一组太松耦合组件。图<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig6/" target="_blank">6一个>提出了一个高水平的FlexTV架构显示组件和执行环境。
低水平流的接待是由深蓝色的组件来处理。这些组件处理流的音频、视频和数据,发送的视频和音频<我>媒体处理器我>和数据流<我>数据处理器我>。
黄色的组件负责目前媒体和用户界面元素的用户和捕捉用户交互。例如,一个关键用户的远程控制。
将执行的应用程序中间件可以使用<我>应用程序通信我>组件相互通信和<我>交互通道我>组件提供网络访问。的<我>配置文件管理器我>和<我>持久性我>负责数据存储。他们存储用户首选项和其他不同的数据,分别。的<我>有条件的访问我>组件处理访问受限的数据和应用程序安全,认证需要特权访问一些系统资源的应用程序/功能。最后,<我>应用程序管理器我>处理负载,配置和执行应用程序中间件设计运行和使用服务。
的<我>中间件管理我>层由REATIVO的实现的客户端组件中所描述的部分<一个href="#sec2">2一个>。
节中描述<一个href="#sec2">2一个>上下文变量是基于领域本体的收集。我们开发了一个数字电视本体使用OWL语言和门徒(<一个href="#B17">17一个>)工具。该本体包含62类,400属性和33的关系。本体类分为三组:类与用户相关的概念,相关的平台,和与环境有关。
用户的概念是用来描述当前用户数字电视系统。平台概念是用来识别数字电视系统的当前状态的CPU使用率,内存使用,展览决议,返回通道类型,等等。最后,环境变量可以用来定义变量如目前使用的通信协议,网络QoS,等等。
收集在这个本体的概念被确定与30个数字电视研究人员在巴西数字电视系统。
基于这一本体,我们可以有一组重新配置决策。一个非常简单的例子可以MediaProcessing组件的情况下所示。Trojahn et al。<一个href="#B18">18一个>)提出了一种评价两种媒体处理实现。我们可以看到,其中一个需要较少的处理能力,而另一个需要更少的内存。基于这些信息和数字电视客户端系统收集的信息,我们可以决定哪一个更适合。当然,这个例子只考虑两个变量(处理器和内存使用),但在现实情况下,其他几个变量可能被视为输入模糊逻辑引擎。
5。实验结果
我们进行了一系列的实验与中间件案例研究为了得到一个清晰的认识我们的方法的可行性。
正如在前一节中提到的,客户端系统组件开发中间件管理层图<一个href="//www.newsama.com/journals/jcnc/2012/963728/fig6/" target="_blank">6一个>。执行的测试是在一个机顶盒接收数字电视信号通过一个6 MHz基于PSTN现代广播通道并返回通道。为了执行的概念,我们生成的组件描述符与模糊规则两个环境变量:<我>device.resolution我>和<我>video.resolution我>分别是显示设备的分辨率和接收到的视频分辨率。模糊评价后,变量可以分为三组:<我>LDTV我>(低定义)<我>,自行研制我>(标准定义)<我>高清电视我>(高清晰度)。输出结果可以假设一个值从0到100(0意味着没有充足,100意味着最好的充分性)。我们观察到的模糊引擎返回最大充足率水平当视频分辨率和设备分辨率是平等的。最低充足率收到时我们有视频和显示分辨率之间的巨大差异。
为了进一步验证我们的模糊逻辑引擎,5个开发人员被邀请来表达他们的组件充分性的模糊逻辑为了养活引擎。平均每个生成的组件描述符包含10个上下文变量。相应的开发人员,由引擎返回的值是符合他们的预期的结果。
一旦充足率水平计算,我们可以开始优化阶段。在这个阶段,新架构将计算。节中描述<一个href="#sec4">4一个>,活跃存储库使用掌握metaheuristic计算架构,并使用c++语言开发。
为了测试掌握算法,我们生成的几个实例COSOP节中提到的<一个href="#sec3.1">3.1一个>考虑组件作为数控的数量= {20、30、50、60、80、100、500、1000、2000、5000}。每个组件在每个实例生成随机数的要求和提供的接口。在这些测试中,充足率水平也是随机生成的时间间隔<年代vgheight="13.3125" id="M56" style="vertical-align:-1.95624pt;width:56.112499px;" version="1.1" viewbox="0 0 56.112499 13.3125" width="56.112499" xmlns="http://www.w3.org/2000/svg">
我们测试了三种算法的实例:掌握,掌握<我>f我>(抓住这只选择最好的解决方案的一个变体进入本地搜索之前步骤),和分枝定界算法。分支定界算法为了找到最优的解决方案,这样我们能够比较GRASP-based算法和最优的解决方案。
结果可以在表中找到<一个href="//www.newsama.com/journals/jcnc/2012/963728/tab2/" target="_blank">2一个>。
的<年代vgheight="11.75" id="M65" style="vertical-align:-0.17555pt;width:14.2625px;" version="1.1" viewbox="0 0 14.2625 11.75" width="14.2625" xmlns="http://www.w3.org/2000/svg">
平均的δ值:我>
根据表<一个href="//www.newsama.com/journals/jcnc/2012/963728/tab2/" target="_blank">2一个>,掌握<我>f我>算法找到最佳的解决方案,当数控= 20,30 - 50。实例中的4号(数控= 60)差距不到1%。另一方面,掌握算法的结果有差距的1%以上。
计算时间,我们可以看到时间来执行一个简单的实例与60组件1分钟以上的最优解决方案。此外,优化解决方案无法计算实例5(数控= 80)因为没有实例化问题的系统资源。使用术语的分支界限法结果优化建模软件(<一个href="#B19">19一个>]。
为了评估我们的方法与案例研究中,我们采用活动库接收上下文信息从一组FlexTV中间件实例。在本例中,上下文信息被从中间件库作为OWL实例文件。这个猫头鹰表示生成使用Jena框架(<一个href="#B20">20.一个>]。这个框架提供了等工具,一个API来读取和修改猫头鹰模型。通过这个API,我们能够验证本体中概念和实例化这些概念关联值的属性。上下文是送到活跃存储库之后,开始评估相应的组件。模糊发动机使用Matlab实现为一个模糊推理系统(<一个href="#B21">21一个>数学编程工具。优化器使用算法负责计算新组件体系结构部分中讨论<一个href="#sec3">3一个>。生成优化的组件架构生成适应架构和重新配置命令和发送给客户端系统通过使用一个XML文件。
在用户的角度来看,所花费的时间由系统执行必要的数据收集,发送到服务器的上下文信息和接收组件加载到内存中是无关紧要的,因为这些操作发生在后台,所以没有影响用户体验而著称。只在系统重新配置所花费的时间是相关的,因为在此期间系统将无法给用户。在执行测试,我们证实的最长时间,系统将变得不可用用户是2190毫秒,在这个特定的例子中,大部分的时间改变组件负责处理视频流(1800毫秒)。这些组件的启动过程是缓慢和类似于所需的时间来执行一个通道数字电视接收机的变化。
考虑到没有重新配置需要导致系统失败,最严重的不可用类似于信道变化时间(用户已经使用),测试结果被认为是令人满意的。此外,如果我们决定改变一些组件,不是连锁相关视频,视频不会中断和重新配置可能完全无缝的用户。
6。相关的工作
基于组件的软件是一个已经在过去几年,组件及其能力的概念,提高软件开发周期创造了大量的架构来支持基于组件的系统。
6.1。代码魔术师
代码魔术师(<一个href="#B22">22一个>)是一个组件仪,分析了在项目或开发人员代码编写阶段。做搜索它使用组件的组件库Merobase [<一个href="#B23">23一个>]。由于大量的组件在Merobase发现每次的搜索,很多组件是高放倒,在功能方面失败。克服这个问题的代码魔术师实现了测试驱动的搜索将测试组件发现通过使用用户定义的系统测试用例,然后建议只通过了所有的测试用例。这样开发人员将有一个更好的显示组件的质量。此外,开发人员还可以使用UML图和描述显示符合条件的组件。
有几个我们的工作之间的差异,提出了代码魔术师。首先使用的信息集中在程序员的背景下,我们的系统使用上下文信息,来自于执行上下文。第二,代码魔术师索引源代码,程序员可以适应他的系统开发时间,组件存储在我们的系统内已经编译一个定义良好的组件模型。
还有许多其他的软件,使用组件作为代码魔术师工具(<一个href="#B11">11一个>,<一个href="#B24">24一个>)和其他遵循类似的类别,但侧重于帮助开发人员在大量的api提供的当前使用的语言(<一个href="#B25">25一个>,<一个href="#B26">26一个>),但是,正如前面提到的他们不专注于加速代码开发聚焦于正在运行的系统。
6.2。分形
分形(<一个href="#B27">27一个>- - - - - -<一个href="#B29">29日一个>)是一个层次和反光的组件模型,它提供的功能等检查和改变组件的内部行为。为了改变组件的内部行为,分形定义了一个灵活的组件系统。主要概念是分形组件工作作为存在的膜组件,允许内省,组成、分享和重新配置功能。
分形组件由一个膜及其内容。的内容是一个有限集合组件。膜是一种封装层,外部接口,也可以调用外部组件;内部接口,可以访问只有内部组件;控制器,用于等功能,检查组件的内部内容,控制内部组件的行为和拦截行动。
为了测试该模型,作者实现了茱莉亚,一个java版本的组件模型,实现了分形的许多功能。作为评价给出的结果是茱莉亚的实现方面的开销,内存分配,和框架使用。主要区别分形的架构和架构考虑我们的方法是分形第一个关注软件组件以不同的方式和形式的处理它们。一个可能的未来的工作是评估分形作为中间件的实现使用的组件模型。这种方式,我们可以识别可能的积极和消极方面,分形扩展点。
6.3。OpenCOM
OpenCOM [<一个href="#B30">30.一个>)是一种基于组件技术的编程语言无关的。OpenCOM旨在支持通用系统的开发,同时允许运行时配置。
OpenCOM模型、组件加载在一个宏观的组件被称为胶囊通过一组组件运行时api调用内核(CRTK)包含所有配置操作(如负荷、连接、断开等)关联到一个回滚机制,在失败的情况下使用。组件封装的功能单元,有插座和接口,分别要求并提供。
OpenCOM支持其他服务组件实现为因此没有组件模型的变化,像下意识的元模型,提高了系统的动态重配置。下意识的元模型中那些接下来更多的与我们的工作相关。<年代pan class="list">(我)年代pan>架构元模型:公开的建筑组成的组件在一个胶囊作为一个连通图。年代pan>(2)年代pan>界面元模型:允许组件的接口类型信息的发现和使用的动态界面的发现。年代pan>(3)年代pan>之间的拦截器拦截元模型:允许创建接口和插座。年代pan>(iv)年代pan>资源元模型:提供了访问底层平台资源,比如线程,程序,内存等等。年代pan>
作为在分形的情况下,我们也确定未来的工作,可能评估OpenCOM REATIVO的上下文。
6.4。设计和实现一个安全、反射中间件框架
这项工作提出了一个模型组成安全中间件服务,应用程序可能变种非功能性需求的时间<一个href="#B31">31日一个>]。
为做到这一点,作者确定核心服务与其他服务的基础,使可能的需求的变化。研究者称,该模型处理复杂的推理在分布式系统的组件以提供更好的组件是可用的。
新的由服务必须弱耦合的应用程序需求所以这些组件可以被改变的时间没有任何主要的重构问题。在我们的工作中,我们进一步通过提供一个完整的基础设施环境评估和结构重组。
7所示。结论和未来的发展方向
本文提出了一种方法去适应环境敏感基于组件的软件系统。新的活跃存储库的方法是采用哪些组件可用不仅在软件开发阶段,而且在运营阶段的软件在一个上下文意识形式。在这种情况下,存储库能够接收客户端系统上下文和生成一个新的架构,更好地适应这个环境。
我们将执行上下文的概念定义为一个域依赖本体的一个实例。这个本体定义一组变量相关的系统的功能。
为了决定哪些组件更适合一个给定的上下文,我们采用模糊逻辑的方法来计算组件的适当水平。兼容REATIVO,组件库中注册必须提供一组定义参数的模糊推理引擎。
充足率REATIVO能够评估整个系统组装的组件在系统由“最适当”组件。面向组件的软件优化问题被证明是np完备性,因此需要一种优化方法。在这种情况下,我们采用抓住metaheuristic计算优化体系结构。
为了实现一个更具体的结果,我们应用FlexTV中间件解决方案案例研究,取得了一些令人信服的结果关于这个方法的可行性,因为客户端和服务器端都成功地实现和重构过程的时间是令人满意的。
节<一个href="#sec2.2">2。2一个>,我们说REATIVO存储库是域的独立。作为一个未来的工作,我们需要在新域名使用REATIVO除了数字电视提供实证证据这种说法,除了部分中给出的原因。此外,不同的算法来代替模糊逻辑的应用和把握也是期望。通过这种方式,一个更好的评估可以执行相关的效率选择算法。
引用
-
m·魏瑟“电脑在21世纪,”<我>科学美国人我>,卷265,不。3、94 - 104年,1991页。视图:
谷歌学术搜索一个>
-
c . Szyperski d Gruntz,墙,<我>组件Software-Beyond面向对象编程我>,ACM出版社,第二版,2002年版。
-
g·t·海涅和w·t·Councill<我>基于组件的软件工程:把片段组合在一起我>,addison - wesley, 2001。
-
c·w·克鲁格,“软件重用”,<我>ACM计算调查我>,24卷,不。2、131 - 183年,1992页。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
组件来源,2012年,<一个t一个rget="_blank" href="http://www.componentsource.com">http://www.componentsource.com一个>。
-
美国亨宁”,使用迭代细化发现可重用软件,”<我>IEEE软件我>,11卷,不。5,48-59,1994页。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
k .井上r . Yokomori h .藤原t . Tamamoto m .松下和s . Kusumoto”组件级别:软件组件的相对重要性等级搜索”<我>25日软件工程国际会议的程序(ICSE ' 03)我>美国俄勒冈州波特兰市,页14 - 24,,2003年5月。视图:
谷歌学术搜索一个>
-
c . j . m . Geisterfer和s . Ghosh”软件组件规格:组件选择的研究视角和重用,”<我>第五届国际会议上院刊商用现货(COTS)的软件系统我>p。9日,2006年2月。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
斯利瓦斯塔瓦,k . Ponnalagu n c•纳伦德拉和k . Kannan”加强资产搜索和检索服务存储库使用消费环境,”<我>学报IEEE国际会议服务计算(SCC ' 07)我>2007年7月,页316 - 323。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
d . Lucrecio A .普拉多和e·桑塔纳”软件组件的搜索和检索的一项调查,”<我>30 Euromicro研讨会论文集(Eromicro ' 04)我>,第159 - 152页,2004年。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
y你们,<我>支持基于组件的软件开发与活跃的组件库系统[博士。论文)我>计算机科学部门,科罗拉多大学,2001。
-
g . Klir和b .元<我>模糊集和模糊逻辑我>美国新泽西,Prentice Hall,恩格尔伍德悬崖,1995。
-
法瑞斯·g·l·雷特,g . Souza,梅拉,“乌玛Metaheuristica掌握对位Otimizacao de sistema Orientados组件de软件,”<我>阿奈做Simposio哒姐妹Basileira德尽管Operacional我>、西阿拉、巴西、2007年。视图:
谷歌学术搜索一个>
-
p .冬天和m . Zachariasen欧几里得Steiner最小树:一种改进的具体算法,”<我>网络我>,30卷,不。3、149 - 166年,1997页。视图:
谷歌学术搜索一个>
-
y李、赵郑胜耀和j·瑞安,”一个分支割算法一Steiner tree-star问题,“<我>通知杂志上计算我>,8卷,不。3、194 - 201年,1996页。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
m . Resende“贪婪随机自适应搜索程序(掌握)”<我>百科全书的优化我>,卷2,页373 - 382,Kluwer学术出版社,2001年。视图:
谷歌学术搜索一个>
-
斯坦福大学生物医学信息学研究中心”,门徒本体编辑器和知识获取系统”,2012年,<一个t一个rget="_blank" href="http://protege.stanford.edu/">http://protege.stanford.edu/一个>。视图:
谷歌学术搜索一个>
-
t·h·Trojahn j·l·Goncalves j . c . b . Mattos et al .,“测试和性能分析的媒体处理巴西数字电视中间件的实现系统使用不同的场景,”<我>《5 fth多媒体和无处不在的工程国际会议(MUE的11)我>2011年6月,页95 - 100。视图:
谷歌学术搜索一个>
-
Lindo系统,“Lingo-Optimization建模软件对线性、非线性和整数规划,“2012年,<一个t一个rget="_blank" href="http://www.lindo.com/index.php?option=com_content&view=article&">http://www.lindo.com/index.php?option=com_content&view=article&id=2&Itemid=10一个>。视图:
谷歌学术搜索一个>
-
Apache软件基金会“Apache耶拿”,2012年,<一个t一个rget="_blank" href="http://incubator.apache.org/jena/">http://incubator.apache.org/jena/一个>。视图:
谷歌学术搜索一个>
-
MathWorks,“Matlab-The技术计算的语言”,2011年,<一个t一个rget="_blank" href="http://www.mathworks.com/products/matlab/">http://www.mathworks.com/products/matlab/一个>。视图:
谷歌学术搜索一个>
-
o·胡默尔、w . Janjic和c·阿特金森”代码魔术师:可重用软件从稀薄的空气,“<我>IEEE软件我>,25卷,不。5,45-52,2008页。视图:
谷歌学术搜索一个>
-
“Merobase-Software组件仪”,2012年,<一个t一个rget="_blank" href="http://www.merobase.com">http://www.merobase.com一个>。视图:
谷歌学术搜索一个>
-
f . McCarey m . O。Cinneide, n . Kushmerick“流氓:推荐代理敏捷重用”,<我>人工智能审查我>,24卷,不。3 - 4、253 - 276年,2005页。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
d . Mandelin l .徐r . Bodik, d . Kimelman”Jungloid矿业:帮助导航API丛林,”<我>ACM SIGPLAN会议的程序编程语言设计和实现(PLDI ' 05)我>48 - 61页。,ACM出版社,芝加哥,生病,美国,2005年6月。视图:
谷歌学术搜索一个>
-
Thummalapenta和t .谢,“Parseweb:程序员助理重用web上的开源代码,”<我>学报》22日IEEE / ACM自动化软件工程国际会议(ASE ' 07)我>ACM出版社,页204 - 213年,纽约,纽约,美国,2007年11月。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
g·布莱尔,t . Coupaye, J.-B。蒂芬妮”,基于组件的架构:分形倡议”,<我>《电信我>,卷64,不。1 - 2、1 - 4,2009页。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
p .山鸟和J.-B。蒂芬妮”,正式规范的分形组件模型在合金中,“<我>INRIA的研究报告我>6721年,2008年。视图:
谷歌学术搜索一个>
-
e . Bruneton t . Coupaye m·勒克莱尔诉Quema, J.-B。蒂芬妮”,分形组件模型及其支持在Java中,“<我>软件实践和经验我>,36卷,不。11 - 12,1257 - 1284年,2006页。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
g·库尔森,g·布莱尔,p .优雅et al .,“通用组件模型构建系统软件”,<我>ACM交易计算机系统我>,26卷,不。1,第一条,2008。视图:
出版商的网站一个>
|年代pan>
谷歌学术搜索一个>
-
n .文卡塔萨布拉曼尼亚s Gutierrez-nolasco s Mohapatra et al .,”的设计和实现一个安全、反射中间件框架,“CiteSeerX-Scientific文学数字图书馆和搜索引擎,2008年。视图:
谷歌学术搜索一个>
m·魏瑟“电脑在21世纪,”<我>科学美国人我>,卷265,不。3、94 - 104年,1991页。视图:
c . Szyperski d Gruntz,墙,<我>组件Software-Beyond面向对象编程我>,ACM出版社,第二版,2002年版。
g·t·海涅和w·t·Councill<我>基于组件的软件工程:把片段组合在一起我>,addison - wesley, 2001。
c·w·克鲁格,“软件重用”,<我>ACM计算调查我>,24卷,不。2、131 - 183年,1992页。视图:
组件来源,2012年,<一个t一个rget="_blank" href="http://www.componentsource.com">http://www.componentsource.com一个>。
美国亨宁”,使用迭代细化发现可重用软件,”<我>IEEE软件我>,11卷,不。5,48-59,1994页。视图:
k .井上r . Yokomori h .藤原t . Tamamoto m .松下和s . Kusumoto”组件级别:软件组件的相对重要性等级搜索”<我>25日软件工程国际会议的程序(ICSE ' 03)我>美国俄勒冈州波特兰市,页14 - 24,,2003年5月。视图:
c . j . m . Geisterfer和s . Ghosh”软件组件规格:组件选择的研究视角和重用,”<我>第五届国际会议上院刊商用现货(COTS)的软件系统我>p。9日,2006年2月。视图:
斯利瓦斯塔瓦,k . Ponnalagu n c•纳伦德拉和k . Kannan”加强资产搜索和检索服务存储库使用消费环境,”<我>学报IEEE国际会议服务计算(SCC ' 07)我>2007年7月,页316 - 323。视图:
d . Lucrecio A .普拉多和e·桑塔纳”软件组件的搜索和检索的一项调查,”<我>30 Euromicro研讨会论文集(Eromicro ' 04)我>,第159 - 152页,2004年。视图:
y你们,<我>支持基于组件的软件开发与活跃的组件库系统[博士。论文)我>计算机科学部门,科罗拉多大学,2001。
g . Klir和b .元<我>模糊集和模糊逻辑我>美国新泽西,Prentice Hall,恩格尔伍德悬崖,1995。
法瑞斯·g·l·雷特,g . Souza,梅拉,“乌玛Metaheuristica掌握对位Otimizacao de sistema Orientados组件de软件,”<我>阿奈做Simposio哒姐妹Basileira德尽管Operacional我>、西阿拉、巴西、2007年。视图:
p .冬天和m . Zachariasen欧几里得Steiner最小树:一种改进的具体算法,”<我>网络我>,30卷,不。3、149 - 166年,1997页。视图:
y李、赵郑胜耀和j·瑞安,”一个分支割算法一Steiner tree-star问题,“<我>通知杂志上计算我>,8卷,不。3、194 - 201年,1996页。视图:
m . Resende“贪婪随机自适应搜索程序(掌握)”<我>百科全书的优化我>,卷2,页373 - 382,Kluwer学术出版社,2001年。视图:
斯坦福大学生物医学信息学研究中心”,门徒本体编辑器和知识获取系统”,2012年,<一个t一个rget="_blank" href="http://protege.stanford.edu/">http://protege.stanford.edu/一个>。视图:
t·h·Trojahn j·l·Goncalves j . c . b . Mattos et al .,“测试和性能分析的媒体处理巴西数字电视中间件的实现系统使用不同的场景,”<我>《5 fth多媒体和无处不在的工程国际会议(MUE的11)我>2011年6月,页95 - 100。视图:
Lindo系统,“Lingo-Optimization建模软件对线性、非线性和整数规划,“2012年,<一个t一个rget="_blank" href="http://www.lindo.com/index.php?option=com_content&view=article&">http://www.lindo.com/index.php?option=com_content&view=article&id=2&Itemid=10一个>。视图:
Apache软件基金会“Apache耶拿”,2012年,<一个t一个rget="_blank" href="http://incubator.apache.org/jena/">http://incubator.apache.org/jena/一个>。视图:
MathWorks,“Matlab-The技术计算的语言”,2011年,<一个t一个rget="_blank" href="http://www.mathworks.com/products/matlab/">http://www.mathworks.com/products/matlab/一个>。视图:
o·胡默尔、w . Janjic和c·阿特金森”代码魔术师:可重用软件从稀薄的空气,“<我>IEEE软件我>,25卷,不。5,45-52,2008页。视图:
“Merobase-Software组件仪”,2012年,<一个t一个rget="_blank" href="http://www.merobase.com">http://www.merobase.com一个>。视图:
f . McCarey m . O。Cinneide, n . Kushmerick“流氓:推荐代理敏捷重用”,<我>人工智能审查我>,24卷,不。3 - 4、253 - 276年,2005页。视图:
d . Mandelin l .徐r . Bodik, d . Kimelman”Jungloid矿业:帮助导航API丛林,”<我>ACM SIGPLAN会议的程序编程语言设计和实现(PLDI ' 05)我>48 - 61页。,ACM出版社,芝加哥,生病,美国,2005年6月。视图:
Thummalapenta和t .谢,“Parseweb:程序员助理重用web上的开源代码,”<我>学报》22日IEEE / ACM自动化软件工程国际会议(ASE ' 07)我>ACM出版社,页204 - 213年,纽约,纽约,美国,2007年11月。视图:
g·布莱尔,t . Coupaye, J.-B。蒂芬妮”,基于组件的架构:分形倡议”,<我>《电信我>,卷64,不。1 - 2、1 - 4,2009页。视图:
p .山鸟和J.-B。蒂芬妮”,正式规范的分形组件模型在合金中,“<我>INRIA的研究报告我>6721年,2008年。视图:
e . Bruneton t . Coupaye m·勒克莱尔诉Quema, J.-B。蒂芬妮”,分形组件模型及其支持在Java中,“<我>软件实践和经验我>,36卷,不。11 - 12,1257 - 1284年,2006页。视图:
g·库尔森,g·布莱尔,p .优雅et al .,“通用组件模型构建系统软件”,<我>ACM交易计算机系统我>,26卷,不。1,第一条,2008。视图:
n .文卡塔萨布拉曼尼亚s Gutierrez-nolasco s Mohapatra et al .,”的设计和实现一个安全、反射中间件框架,“CiteSeerX-Scientific文学数字图书馆和搜索引擎,2008年。视图: