论文部分内容阅读
应用程序中变量和数据源之间的结合方式、对应关系以及变量取值和数据项之间的相互转换过程是持久化过程需要考虑的重要问题,它直接体现了数据在应用特定的语境中的语义,即所谓的数据语用。数据语用反映了应用特定的数据使用需求,而持久化最重要的任务就是有效地支持应用的数据语用。
开放、动态、难控的Internet环境使得数据变化的广度、深度、频率及影响均达到前所未有的程度,网构软件的目标数据源与数据需求在运行前可能无法明确,在运行中也可能持续变化,即,软件数据语用的存在方式变得更加动态。具有不确定性的动态数据语用的存在,导致了持久化对数据语用的实现难以一蹴而就。在应变方面,针对静态、封闭、稳定的传统软件设计的持久化技术目前还缺乏足够的数据语用动态适应能力,其离线调整数据语用的方式已不适用。此外,软件系统共享核心数据导致了数据语用之间存在着交互。如果交互方式不得当,就会引发数据语用的冲突,使其无法按期望正确运行,严重时甚至崩溃。网构软件非确定性的动态数据语用更为加剧了语用冲突出现的频率和机率。
综上所述,针对现有持久化研究和实践中存在的问题,本文提出了一种基于数据语用的持久化方法(Pragmatics-bAsedPERsistence,PAPER)的原理框架,包括数据语用概念定义、支撑数据语用的持久化操作功能的语义描述、动态数据语用适应机制的原理、数据语用冲突的判定规则及其自动化的检测和解决方法;同时,本文完成了一个遵循PAPER原理框架的中间件参考实现,并评测了其实现效率以及其对应用系统整体性能的影响。
在原理框架方面,本文首先以形式化的方式给出了数据语用的及其相关基本概念的定义;其次,本文给出了支撑数据语用所需持久化操作功能语义的形式化描述;第三,本文给出了数据语用动态适应机制基本原理的形式化描述;第四,本文给出了数据语用冲突的形式化判定规则,以及限制性和协调性两类解决方案的策略。由于本文是在抽象层次上对基于语用的持久化行为与功能进行定义和描述,方法的原理框架与具体的实现技术以及机制相分离,确保了原理的通用性和理解的一致性,提高了其对具体实现的指导意义。
在系统实现方面,本文完成了一个遵循PAPER原理框架的中间件参考实现:
首先,通过一种隐式持久化技术,在开发阶段构造软件系统时消除其对中间件持久层服务接口的显式调用,彻底分离应用系统的业务逻辑和数据语用,而将与数据语用相关的对实际持久化机制的调用从业务代码中完全抽取出来,在部署阶段将其编织进系统的实现体之中。
其次,数据语用实现方面,中间件提供一个数据语用控制器作为数据语用和其所涉及持久化操作之间的调用代理,数据语用通过控制器间接地进行持久化操作的调用,这样,完成了数据语用和具体的持久化机制之间的松耦合关系,以便于中间件对数据语用的实现机制进行动态调整;
第三,在运行时刻,数据语用控制器对用户数据使用的需求进行持续不断地监控;如有变动,控制器立刻对相关的持久化操作进行协调,更换实际的持久化机制、在线调整软件系统运行实体与目标数据源之间的关联和映射关系及其相互之间的同步以及转换过程,从而在不改变软件系统实现体以及不停止系统运行的前提下,完成对应用系统数据语用的动态适应过程。
最后,在数据语用冲突的解决方面,本文还利用中间件对应用系统数据语用的支撑能力,使用集中式信息采集工具收集系统的数据语用信息,依据判定规则检测和发现冲突;在冲突自动化检测的基础上,中间件对应用系统数据语用所涉及到的持久化操作进行自动干预和调整,实现了限制性、协调性自动化冲突解决方案,之后对方案的实施效果给出了具体的性能评测。