论文部分内容阅读
随着云计算的发展,越来越多的程序将被部署到云端。实际上,程序不仅仅在开发完成后可以部署到云端,它的开发过程也可以在云端完成。在这种情况下,基于云计算的在线集成开发环境成为了值得关注的研究内容。 在线集成开发环境的优势在于:(1)基于浏览器,用户能够随时随地编程;(2)用户编程不依赖于本地编译运行环境;(3)服务提供者能够积累用户行为数据。它的劣势在于,与历史悠久的本地集成开发环境相比,开发工具的功能和质量有待增强,并且对网络的依赖较大。 本文描述了一个C++版在线编程系统POP(PKU Online Programming)的设计与实现。POP是基于云计算的在线集成开发环境,可以随着业务的需要扩展或者缩减硬件资源。POP实现了项目管理、代码编辑、编译、运行、调试、系统监测等基本功能;能够实时获取用户行为和代码,为进一步数据分析研究提供支持。 在技术上,POP使用SELinux对用户进程做访问权限控制,恶意代码在服务端的运行难以对系统安全造成影响;使用服务组合集成新功能,具有一定的可扩展性;基于GDB实现了在线调试功能。 POP目前已应用于北京大学的计算概论课程,学生能够在线完成编程作业和期末考试。同时,支持了在线教育网站Coursera、TopU中的部分课程。