论文部分内容阅读
随着计算机与互联网技术的发展,应用程序逐渐从桌面向Web端迁移。Web端不仅提供了通用的用户操作界面、用户协作及与其他在线服务集成等功能,同时也可以避免应用程序在本地计算机上进行复杂的安装和配置。因此,基于云服务器的集成开发环境(WebIDE)越来越受到开发者的关注,并逐步得到应用。本文研究并实现了一个基于Openstack的WebIDE系统,对在线集成开发环境的研究与应用进行了有益的探索。论文的主要工作包括:
(1)通过分析WebIDE的运行环境与用户需求,设计了一个分层WebIDE系统结构,包括可视化交互、服务与控制、Git代码管理和云服务器等四个模块。该结构中,可视化交互模块提供可视化的文件操作、代码编辑、代码高亮及智能提示;服务与控制模块提供权限控制和资源管理,分级解析及处理可视化交互模块发送的业务请求;Git代码管理模块提供代码版本管理,存储托管;云服务器模块提供资源分配、编译环境镜像管理和代码运行。
(2)针对大量并发用户在WebIDE系统使用中可能遇到的云服务器资源分配不均衡、任务响应时间延迟等问题,本文提出了一种基于任务预调度的云服务器资源分配方法。该方法首先根据用户对系统的操作类型进行任务分类;其次分析任务之间的转换关系,并使用马尔科夫状态转移概率矩阵构建操作任务预测模型;然后根据预测模型设计任务预调度器,进行任务预调度;最后采用任务预调度和蚁群算法结合的方法进行云资源分配。实验表明,该方法相比蚁群算法具有更小的任务响应时间延迟和更高的资源利用率。
(3)针对WebIDE系统使用中用户与文件调用权限的问题,本文提出了一种基于文件安全等级和访问控制列表(Access Control Lists,ACL)结合的权限控制方法。该方法依据文件属性构建安全等级模型,并将文件划分为不同的安全等级;然后构建文件和安全等级之间的映射关系,根据安全等级和失效时间生成授权码并授权给编程设备;最后使用ACL策略将用户与编程设备绑定,实现用户、编程设备和文件之间调用权限的相互约束和控制。实验表明,该方法具有安全性高、性能良好的特点。
(4)基于上述研究,本文设计并实现了一个基于OpenStack的WebIDE系统。该系统的分层模块分别采用React+Redux+Webpack组合、Spring boot框架、GitAPI和OpenStack API等技术进行实现。
(1)通过分析WebIDE的运行环境与用户需求,设计了一个分层WebIDE系统结构,包括可视化交互、服务与控制、Git代码管理和云服务器等四个模块。该结构中,可视化交互模块提供可视化的文件操作、代码编辑、代码高亮及智能提示;服务与控制模块提供权限控制和资源管理,分级解析及处理可视化交互模块发送的业务请求;Git代码管理模块提供代码版本管理,存储托管;云服务器模块提供资源分配、编译环境镜像管理和代码运行。
(2)针对大量并发用户在WebIDE系统使用中可能遇到的云服务器资源分配不均衡、任务响应时间延迟等问题,本文提出了一种基于任务预调度的云服务器资源分配方法。该方法首先根据用户对系统的操作类型进行任务分类;其次分析任务之间的转换关系,并使用马尔科夫状态转移概率矩阵构建操作任务预测模型;然后根据预测模型设计任务预调度器,进行任务预调度;最后采用任务预调度和蚁群算法结合的方法进行云资源分配。实验表明,该方法相比蚁群算法具有更小的任务响应时间延迟和更高的资源利用率。
(3)针对WebIDE系统使用中用户与文件调用权限的问题,本文提出了一种基于文件安全等级和访问控制列表(Access Control Lists,ACL)结合的权限控制方法。该方法依据文件属性构建安全等级模型,并将文件划分为不同的安全等级;然后构建文件和安全等级之间的映射关系,根据安全等级和失效时间生成授权码并授权给编程设备;最后使用ACL策略将用户与编程设备绑定,实现用户、编程设备和文件之间调用权限的相互约束和控制。实验表明,该方法具有安全性高、性能良好的特点。
(4)基于上述研究,本文设计并实现了一个基于OpenStack的WebIDE系统。该系统的分层模块分别采用React+Redux+Webpack组合、Spring boot框架、GitAPI和OpenStack API等技术进行实现。