论文部分内容阅读
本文设计并实现了基于Erlang OTP的虚拟计算平台中Erlang代码的在线演化模块,为该平台提供良好的代码管理功能。在调研了已有代码在线演化技术的基础上,本文重点考虑了代码版本管理、集群整体演化、错误恢复支持、节点信息反馈以及稳定版本导出等几个问题,设计并实现了一套较为适合Erlang OTP平台的代码演化机制。 在版本管理方面,本文提供的在线演化功能综合考虑了平台在大规模应用后可能出现的代码所属项目名、项目所有者、代码和节点的对应关系等信息,以及版本号、时间等基本信息,使用Erlang OTP中的Mnesia数据库,结合分布式文件系统,综合管理代码。 针对集群应用,在线演化功能结合开发中的作业容器功能,对作业的运行节点进行监控,由作业容器控制哪些节点更新或部署代码,相对于Erlang原生的单一节点更新和所有节点更新有了更细粒度的控制。 针对代码发生错误的情况,本文设计的在线演化系统不改变节点运行环境,不在节点存储代码,只有需要时才从代码服务器取到虚拟机,因此跟Erlang自身优秀的错误恢复机制能够很好的兼容。 本文设计的系统对所有节点中运行的代码信息有全面的探测机制,结合版本管理功能让作业的开发人员可以了解每一个节点的运行细节。 另外,本文根据实际需求开发了稳定版本导出功能,可以将作业开发者认为的稳定版本导出保存,并且可以在任何时候将节点上的代码回滚到导出版本,有效增强了平台的易用性和健壮性。 实验表明,使用本文实现的代码在线演化功能确实能方便虚拟计算平台的开发者,基本达到了预期目标。