[论文解读] Modularization of Research Software for Collaborative Open Source Development
本文提出将开源研究软件ExplorViz进行模块化与微服务化改造,以增强协作开发,尤其针对学生开发者。通过将单体遗留系统分解为松散耦合、可独立部署的微服务,并为后端和前端引入插件机制,作者实现了更高的可扩展性、可维护性,并通过Docker和CI/CD流水线实现更好的集成,实验通过多个扩展的Proof-of-Concept验证了其有效性。
Software systems evolve over their lifetime. Changing conditions, such as requirements or customer requests make it inevitable for developers to perform adjustments to the underlying code base. Especially in the context of open source software where everybody can contribute, requirements can change over time and new user groups may be addressed. In particular, research software is often not structured with a maintainable and extensible architecture. In combination with obsolescent technologies, this is a challenging task for new developers, especially, when students are involved. In this paper, we report on the modularization process and architecture of our open source research project ExplorViz towards a microservice architecture. The new architecture facilitates a collaborative development process for both researchers and students. We describe the modularization measures and present how we solved occurring issues and enhanced our development process. Afterwards, we illustrate our modularization approach with our modernized, extensible software system architecture and highlight the improved collaborative development process. Finally, we present a proof-of-concept implementation featuring several developed extensions in terms of architecture and extensibility.
研究动机与目标
- 解决因技术债务和模块化不足而带来的单体研究软件维护与扩展挑战。
- 通过插件机制支持安全、模块化的贡献,提升协作开发能力,尤其针对学生贡献者。
- 利用微服务、Docker和CI/CD流水线现代化软件架构,提升可扩展性与可维护性。
- 通过包含多个扩展的Proof-of-Concept实现,评估新架构的可行性。
- 为ExplorViz的持续交付以及未来架构恢复奠定基础。
提出的方法
- 将单体的ExplorViz Legacy系统分解为具有明确定义接口的独立微服务。
- 为后端和前端组件引入基于插件的扩展机制,以支持可扩展性。
- 用现代、模块化的技术替代过时的GWT框架,并通过Docker实现容器化部署。
- 通过CI/CD流水线实现自动化构建与部署,为每个服务生成Docker镜像。
- 开发构建服务,用于预构建前端配置,以支持便捷部署与自定义。
- 使用docker-compose文件实现灵活、用户自定义的配置,且设置步骤极少。
实验结果
研究问题
- RQ1如何有效对单体研究软件系统进行模块化改造,以支持协作开发?
- RQ2为实现学生和外部开发者安全、可扩展的贡献,需要哪些架构与流程上的变更?
- RQ3在迁移到微服务的过程中,如何解决技术债务与过时框架的问题?
- RQ4微服务架构在可维护性与可扩展性方面,为开源研究软件带来了哪些优势?
- RQ5如何在模块化研究软件系统中建立持续集成与持续交付?
主要发现
- 从基于GWT的单体架构迁移到微服务架构,显著提升了代码的模块化程度与可维护性。
- 引入插件机制后,可在不修改核心代码库的前提下,实现后端与前端的安全、隔离式扩展。
- 通过Docker和docker-compose实现的容器化,简化了部署与配置,用户仅需一条命令即可搭建自定义的ExplorViz环境。
- CI/CD流水线成功自动化了每个微服务的Docker镜像构建与打包,提升了发布可靠性。
- Proof-of-Concept实现成功集成多个扩展,验证了新架构的可扩展性与灵活性。
- 项目已具备持续交付能力,未来计划进一步优化发布周期,并支持架构恢复以用于文档更新与重构。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。