一种用于网构软件体系结构演化的分层情境感知方法

文档序号:6400252阅读:125来源:国知局
专利名称:一种用于网构软件体系结构演化的分层情境感知方法
技术领域
本发明属于计算机软件维护技术领域,具体涉及一种以黑板为数据中心的推动网构软件体系结构演化的分层情境感知方法。
背景技术
随着信息技术的飞速发展,具有丰富基础软件资源的互联网已成为一种主要的软件运行平台,网构软件就是运行在此平台上的,能根据特定应用需求,聚合分散于互联网上的多个自治软件实体并使其协同工作,从而共同完成特定应用目标的一种新型应用系统构造模式。由于互联网开放、动态、多变的特点以及用户使用方式的个性化需求,网构软件不可能采用类似于传统软件的“一次定型”式的开发方法,它应当在发布运行之后实时感知外部网络环境、软件运行平台、用户个性需求的动态变化,并随着这种变化按照功能指标、非功能指标进行静态的调整和动态的演化,从而提高最终应用的服务质量。经过对现有技术的检索发现,中国专利申请号200910236492.3,记载了一种基于本体的上下文感知应用平台及其工作方法,提供一种通用的获取上下文信息的处理模型,该平台包括采集器通信模块、上下文信息处理模块、管理模块、知识信息库、上下文应用处理模块和上下文应用通信模块;该发明还提出了两种相互独立而又相互协调的上下文信息处理流程,它们彼此透明,通过同步控制机制,共享知识信息,使用本体描述上下文信息,达到了普适计算领域内知识信息的共享。进一步检索发现,中国专利申请号201010250627.4,记载了一种网构软件上下文感知系统及方法,感知系统具体包括:上下文感知引擎服务器,用于从网络环境中获得上下文信息,并将上述上下文信息映射到已建成的网构软件上下文信息模型中;以及上下文信息管理服务器,用于存储已映射到网构软件上下文信息模型中的上下文信息,解决了网构软件上下文信息的感知和管理的难题。进一步检索发现,中国专利申请号201110020844.9,记载了一种基于情境感知的网构软件演化方法。在服务的初始聚合关系确定的情况下,解决了互联网环境中服务提供者运行时情境的获取与传播,以及根据情境变化确定备用服务实体并告知不服请求者的相关问题,以支持面向网构软件的应用系统动态演化。上述方法主要关注网构软件运行时情境信心的收集、传播、存储,并没有涉及情境信息的层次分类关系和情境发布者和订阅者之间的层次分类关系。在开放的互联网环境下,构件运行时的情境信息往往繁多而复杂,如何不加以层次化,很容易导致信息混乱问题,不利于大型软件的演化,所以应当对庞杂的情境信息进行层次化分类,并由一个中央控制者来管理层内及层间信息的发布/订阅关系,这样才有利于信息的管理维护、缓解信息的不一致问题、最终为软件体系结构演化提供高质量的情境信息
发明内容
本发明技术解决问题:针对现有技术存在的不足,提供一种用于网构软件体系结构演化的分层情境感知方法,该方法在互联网环境下对软件构件运行时情境信息的进行获取和分发,利用这种分层感知技术可以使软件体系结构对情境信息有清晰的分类,并通过给以不同层次情境信息不同的优先级别保证体系结构演化过程中的信息一致性,解决了信息不一致问题,为网构软件体系结构演化提供了很好的支持。本发明的技术解决方案:一种用于网构软件体系结构演化的分层情境感知方法,具体步骤如下:步骤一、构造网构软件分层体系结构。所述网构软件分层体系结构是指一种由多个层次组成的、区别于常规的由构件和连接件组成的扁平体系结构的软件体系结构,自下而上依次为基础层构件、业务层构件和应用层构件;所述构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统,结构上,它是语义描述、通讯接口和实现代码的复合体;所述基础层构件是指与业务无关的基础功能构件组成的集合;所述业务层构件是指加入了领域知识、与具体业务相关的构件组成的集合;所述应用层构件是指根据用户偏好选择业务层构件中合适的构件进行组转,形成一定的业务流程,为用户提供完整服务的层次;步骤二、确定基础层构件、业务层构件和应用层构件运行时需要感知的情境信息。所述基础层构件情境信息包括:基础功能构件运行状态的转变、基础功能构件版本升级事件、基础功能构件加入、退出等事件、运行平台环境信息的改变、来自于业务层构件的情境信息;所述业务层构件情境信息包括:业务相关构件运行状态的转变、业务相关构件版本升级事件、业务相关构件加入、退出等事件、运行平台系统环境的变化、来自于基础层构件和应用层构件的情境信息;所述应用层构件情境信息包括:用户需求的改变、来自于业务层构件的情境信息;步骤三、确定体系结构中不同构件对情境信息的发布/订阅关系,由黑板负责管理所有的发布/订阅关系,为各层的情境信息在整个网构软件分层体系结构中有序传播作准备。根据网构软件的分层体系结构的层内与层间构件之间的调用关系、业务流程关系确定情境信息的发布/订阅关系,并向黑板注册这种发布/订阅关系(哪种关系),黑板以此为依据为各信息发布者确定发布主题及该主题对应的订阅者列表,为情境信息在分层体系结构中进行有序传播以触发体系结构演化程序作准备;所述层内构件之间的调用关系是指某一构件调用同一层次内的一个或多个其他构件提供的功能来实现自身的完整功能;所述层间构件之间的调用关系是指某一构件调用其自身所处层次的下一相邻层次中的一个或多个构件提供的功能来实现自身的完整功能,一个构件可以同时调用同层和下一层的其他构件提供的功能以完成自身功能;所述业务流程关系是指由业务相关的构件按照某种严格的先后顺序和层次关系组合在一起从而完成特定的业务功能;所述的情境信息的发布/订阅关系是指:层内或层间有直接调用关系或业务流程关系的构件,能够互为情境信息的发布者和订阅者;步骤四、实时捕捉基础层构件、业务层构件、应用层构件运行时情境信息,提交给黑板,由黑板将不同的情境信息发布到对应的主题上,并由该主题的订阅者接收,这样便完成了情境信息在体系结构中的实时有序的传播,进而触发网构软件分层体系结构演化程序;步骤五、解决情境信息传播过程中引起的信息不一致问题。情境信息传播过程中,当订阅者接收到的情境信息满足特定规则时就会触发演化程序对网构软件分层体系结构进行演化,从而使网构软件系统保持稳定且优良的运行性能;但如果情境信息的订阅者同时接收到多则冲突信息,这时如果不作任何处理会导致演化程序在同一时刻会采取相悖的演化决策,即产生了不一致问题,此时应当根据情境信息的优先级别决定信息取舍,以保证触发演化程序的情境信息是一致的,从而防止产生相悖的演化决策;所述情境信息的优先级别是指:应用层构件情境信息的级别高于业务层构件,业务层构件的情境信息高于基础层构件,同层构件内情境信息由信息自身携带的时间戳决定优先级别,时间戳大的信息优先级高;所述时间戳由黑板以信息采集的最大频率进行广播,从而保证全局范围内有统一的时间戳;所述冲突信息是指:会使构件采取相悖的演化决策的情境信息,无冲突的情境信息就是一致性信息;步骤六、若网构软件分层体系结构演化过程中基础层构件、业务层构件、应用层构件之间的层内、层间调用关系或者业务流程关系发生改变,应将变化关系通知黑板(此处黑板,没有结构,与前的黑板是什么关系,如果含义相同,请采用相同的技术术语),使黑板能及时更新发布/订阅关系,使情境信息的传播路径始终保持正确;步骤七、由黑板存储历史情境信息。黑板不丢弃已经发布出去的情境信息,而将情境信息以发布者,消息内容,消息产生时间,订阅者列表的格式保存在黑板维护的中央数据库中,并对已经存储的情境信息每隔一段时间按指数衰减规律采样,距离当前时间越久的信息被采样的几率越小,未被采样的情境信息可以直接丢弃,以节省存储空间,同时提供相应的情境信息查询接口,方便系统管理员随时查询系统的历史情境信息,了解系统的整体运行状况。本发明与现有技术相比的优点在于:本发明提供的技术方案建立了互联网环境下网构软件运行时分层体系结构各层对应的运行时情境,建立了黑板全局管理情境信息,并维护信息的发布/订阅关系,解决了情境信息的获取和传播问题,缓解了大量信息的混乱和不一致问题,为软件体系结构的演化提供了高质量的有序情境信息。


图1是本发明的情境感知流程图;图2是本发明实施例的框架结构示意图。
具体实施例方式下面结合附图对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出另外详细的实施方式和具体的操作过程,但本发明的保护局范围不限于下述的实施例。如图1所示,本发明的用于网构软件体系结构演化的分层情境感知方法主要分为7个步骤,图中各个步骤按时间先后为顺序结构,这对于单则情境信息而言是完全符合的,但对于整个网构软件体系结构而言,由于情境信息繁多复杂、信息传输与处理延时不定等因素,针对不同情境信息的各个处理步骤是相互交错执行的,每个步骤的意义已在发明内容中详细阐述,此处不再赘述。如图2所示,本发明以网上购物系统为例说明本发明的工作原理。图2中包括用于网构软件系统情境感知的三大模块:网上购物系统的分层软件体系结构、黑板、历史信息数据库。软件体系结构共分为三层:基础层构件、业务层构件、应用层构件;基础层构件包括诸如数据库操作构件、短信服务构件、文字聊天构件等与业务无关的基本功能构件;业务层构件包括诸如商品浏览构件、订单生成构件、物流跟踪构件、买卖方交流构件等购物领域独有的业务相关构件;应用层构件是根据用户的需求和偏好,从业务层构件中选择一系列合适的业务相关构件构造业务流程,为用户提供完整的网上购物服务,图2中为用户选取了商品浏览构件、订单生成构件、付款构件、送货构件、确认付款构件按照时间先后顺序组成完整的网络购物业务流程;当分层软件体系结构构建完成后,可按照说明书步骤二所述构造各层的情境信息,确定信息封装格式,比如本体格式、XML格式等,然后按时间推移不断收集各类情境信息;从图2中可以看到,分层体系结构层内和层间的构件之间都会产生调用关系,比如基础功能构件“数据库查询构件”、“数据库增加构件”和“数据库删除构件”都会调用同层“数据库连接构件”提供的数据库连接功能,此为层内构件之间的调用关系;业务相关构件“买卖方交流构件”会调用基本功能构件“文字聊天构件”提供的功能,业务相关构件“物流跟踪构件”会调用“数据库查询构件”和“短信服务构件”提供的功能,将查询所得的物流结果以短信方式通知买方,此为层间构件之间的调用关系,当然只有上层构件可以调用下层构件提供的功能,反之不行;应用层所选取的各个业务相关的构件按一定次序所组成的就是网络购物的业务流程;根据图中的层内和层构件之间的调用关系和业务流程就可以确定构件之间的直接关联关系,有直接关联关系的构件之间可以形成相互的发布/订阅关系,发布/订阅关系在黑板中体现为一个发布者对应一个发布主题,每个发布主题下都有一个订阅者列表,比如与“数据库删除构件”有直接关联关系的构件有“订单生成构件”和“数据库连接构件”,那么“数据库删除构件”所产生的主题下就有由“订单生成构件”和“数据库连接构件”所组成的订阅者列表,一旦“数据库删除构件”有情境信息分发时,就是自动发送给“订单生成构件”和“数据库连接构件”,当然,发布/订阅关系是相互的,“数据库删除构件”也可以成为“订单生成构件”和“数据库连接构件”情境信息的订阅者;如果“数据库删除构件”发出“负载过大”的情境信息,那么“订单生成构件”就会接受到该情境信息,如果该“订单生成构件”对可靠性的要求比较高,不希望“数据库删除构件”因负载过大对自己提供服务的可靠性产生影响,则此时“订单生成构件”会引发某种特定演化操作,比如调用负载较小且同样提供数据库删除功能的其他构件等等,此时演化过程引起了构件调用关系的改变,进一步导致原有的情境信息发布/订阅关系发生改变,所以“订单生成构件”要将情境信息发布/订阅关系的变化通知黑板,黑板及时更新相关主题下的订阅者列表;由于网构软件系统中的情境信息繁多而复杂,所以难免会有相互冲突的情境信息,导致演化程序同一时刻会产生相悖的演化决策,比如基本功能构件“数据库查询构件”监测到了“负载过大”的情境信息,但是后一时刻由于一大批用户因某种原因不在使用该“数据库查询构件”,则又会监测到该构件“负载正常”的情境信息,正常情况下“物流跟踪构件”将相继接收到“数据库查询构件”发布的“负载过大”和“负载正常”两则情境信息,最后演化程序会决定仍继续时候该“数据库查询构件”,但如果因网络延时等原因,造成“负载过大”比“负载正常”更晚到达订阅者“物流查询构件”端,或两者同时到达,那么如果不消除不一致性,演化程序将产生两种相悖的演化决策:继续调用该“数据库查询构件”或者调用其他相似功能的构件,所以如果发布者在发布情境信息的时候已经给不同的信息打上时间戳,“负载正常”的时间戳比“负载过大”的时间戳大,订阅者就很容易判断“负载正常”才是应该接收的情境信息,而“负载过大”这则信息应当被丢弃,演化程序还是会作出正确的演化决策:继续调用该“数据库查询构件”提供的服务,这便是由时间戳来解决同层情境信息冲突的情况;当然也有来自不同层的情境信息产生不一致的情况,这时应当选取具有高优先级别的上层情境信息,而将会产生冲突的下层情境信息丢弃,比如一开始构件业务流程的时候用户要求送货时配送员以短信方式联系自己,但在配送过程中用户又改变主意想让配送员以电话的方式通知自己,而与此同时基本功能构件“短信服务构件”又向“送货构件”发布了 “退出”的情境信息,那么如果不考虑用户的需求,“送货构件”会默认在网络上另外选择一个运行正常且同样提供短信服务的新构件,但是这样就无法满足用户想被电话通知的个性化需求,所以当“送货构件”同时接收到来自应用层构件的“用户想使用电话通知”情境信息和来自基本功能构件“短信服务构件”的“退出”情境信息时,应当首先考虑来自应用层的情境信息,而将低层的短信服务退出的情境信息丢弃,这便是高层情境信息的优先级别高于底层情境信息优先级别的体现;黑板在接收到发布者发送过来的情境信息时,一方面将其发送给其对应的订阅者,另一方面将其存储在数据库中,对比较陈旧的信息可以进行指数衰减式的遗忘,而近期的信息最好全部保存,同时给出相应的查询接口供系统管理员随时查询,比如系统管理员通过分析历史情境信息数据,发现某个构件发生故障的次数太多,但仍然运行于软件系统中,这时系统管理员可能会通知整个系统暂停使用该构件,等待该构件升级完毕再使用;系统管理员也有可能发现某种功能的构件只有一家软件开发商处于主导地位,其他开发商提供的类型功能的构件基本未被使用过,那么为了平衡市场利益,系统管理员可能会推荐网构软件系统多使用其他开发者的相似功能的构件;本发明未详细阐述部分属于本领域技术人员的公知技术。以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种用于网构软件体系结构演化的分层情境感知方法,其特征在于包括以下步骤: 步骤一、构造网构软件分层体系结构 所述网构软件分层体系结构是指一种由多个层次组成的、区别于常规的由构件和连接件组成的扁平体系结构的软件体系结构,自下而上依次为基础层构件、业务层构件和应用层构件;所述基础层构件是指与业务无关的基础功能构件组成的集合;所述业务层构件是指加入了领域知识、与具体业务相关的构件组成的集合;所述应用层构件是指根据用户偏好选择业务层构件中合适的构件进行组转,形成一定的业务流程,为用户提供完整服务的层次; 步骤二、确定基础层构件、业务层构件和应用层构件运行时需要感知的情境信息所述基础层构件情境信息包括:基础功能构件运行状态的转变、基础功能构件版本升级事件、基础功能构件加入、退出事件、运行平台环境信息的改变、来自于业务层构件的情境信息;所述业务层构件情境信息包括:业务相关构件运行状态的转变、业务相关构件版本升级事件、业务相关构件加入、退出事件、运行平台系统环境的变化、来自于基础层构件和应用层构件的情境信息;所述应用层构件情境信息包括:用户需求的改变、来自于业务层构件的情境信息; 步骤三、确定体系结构中不同层构件,即基础层构件、业务层构件和应用层构件对情境信息的发布/订阅关系,由黑板负责管理所有的发布/订阅关系,为各层,即基础层构件、业务层构件和应用层构件的情境信息在整个网构软件分层体系结构中有序传播作准备; 根据网构软件的分层体系结构的层内与层间构件之间的调用关系、业务流程关系确定情境信息的发布和订阅关系,并向黑板注册这种发布/订阅关系,黑板以此为依据为各信息发布者确定发布主题及该主题对应的订阅者列表,为情情境信息在分层体系结构中进行有序传播以触发体系结构演化程序作准备;所述层内构件之间的调用关系是指某一构件调用同一层次内的一个或多个其他构件提供的功能来实现自身的完整功能;所述层间构件之间的调用关系是指某一构件调用其自身所处层次的下一相邻层次中的一个或多个构件提供的功能来实现自身的 完整功能,一个构件能够同时调用同层和下一层的其他构件提供的功能以完成自身功能;所述业务流程关系是指由业务相关的构件按照某种严格的先后顺序和层次关系组合在一起从而完成特定的业务功能; 步骤四、实时捕捉基础层构件、业务层构件、应用层构件运行时情境信息,提交给黑板,由黑板将不同的情境信息发布到对应的主题上,并由该主题的订阅者接收,这样便完成了情境信息在体系结构中的实时有序的传播,进而触发网构软件分层体系结构演化程序;步骤五、解决情境信息传播过程中引起的信息不一致问题 情境信息传播过程中,当订阅者接收到的情境信息相互冲突,会触发演化程序采取相悖的演化决策时,根据情境信息的不同优先级别,将冲突信息中低优先级别的信息丢弃,而保留高优先级别的信息;所述情境信息的优先级别是指:应用层构件情境信息的级别高于业务层构件,业务层构件的情境信息高于基础层构件,同层构件内情境信息由信息自身携带的时间戳决定优先级别,时间戳大的信息优先级高;所述冲突信息是指:会使构件采取完全不同的演化决策的情境信息,无冲突的情境信息就是一致性信息; 步骤六、若网构软件分层体系结构演化过程中基础层构件、业务层构件、应用层构件之间的层内、层间调用关系或者业务流程关系发生改变,应将变化关系通知黑板,使黑板能及时更新发布/订阅关系,使情境信息的传播路径始终保持正确; 步骤七、由黑板存储历史情境信息 黑板不丢弃已经发布出去的情境信息,而将情境信息以发布者,消息内容,消息产生时间,订阅者列表的格式保存在黑板维护的中央数据库中,并对已经存储的情境信息每隔一段时间按指数衰减规律采样,距离当前时间越久的信息被采样的几率越小,未被采样的情境信息可以直接丢弃,以节省存储空间,同时提供相应的情境信息查询接口,方便系统管理员随时查询系统的历史情境信息,了解系统的整体运行状况。
2.根据权利要求1所述的用于网构软件体系结构演化的分层情境感知方法,其特征在于:所述步骤三中的情境信息的发布/订阅关系是指:构件调用和被调用者,即同层或者相邻层间有直接关联关系的构件,能够互为情境信息的发布者和订阅者。
3.根据权利要求1所述的用于网构软件体系结构演化的分层情境感知方法,其特征在于:所述步骤五中的时间戳由黑板以信息采集的最大频率进行广播,从而保证全局范围内有统一的 时间戳。
全文摘要
本发明属于计算机软件维护技术领域,具体涉及用于网构软件体系结构演化的分层情境感知方法,构造网构软件分层体系结构并确定各层的运行时情境;通过体系结构层内或层间构件的调用关系或业务流程关系确定情境信息的发布/订阅关系,并向中央黑板注册这种关系;感知到构件运行时的情境信息后将其提交到黑板中对应的主题上,由该主题订阅者接收;若一个构件同时接收到相互冲突的信息,根据信息的层次优先级别或者信息携带的时间戳信息决定信息取舍;黑板可以对历史信息进行统一存储,对过时的历史信息进行遗忘,并提供历史信息查询接口,本发明缓解了信息不一致问题,为网构软件体系结构演化提供了很好的支持。
文档编号G06F9/44GK103164224SQ20131007857
公开日2013年6月19日 申请日期2013年3月12日 优先权日2013年3月12日
发明者彭启民, 胡堰, 胡晓惠 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1