[논문 리뷰] Modularization of Research Software for Collaborative Open Source Development
이 논문은 학부생들의 협업 기여를 특히 향상시키기 위해 오픈소스 연구 소프트웨어 ExplorViz의 모듈화 및 마이크로서비스 이행을 제안한다. 기존의 단일 모듈형 레거시 시스템을 백엔드 및 프론트엔드의 플러그인 메커니즘을 통해 느슨하게 결합된, 개별적으로 배포 가능한 마이크로서비스로 분해함으로써, 저자들은 도커 및 CI/CD 파이프라인을 통한 통합을 통해 확장성, 유지보수성 향상을 달성하였다. 이는 여러 확장 기능을 포함한 개념증명을 통해 입증되었다.
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.
연구 동기 및 목표
- 기술적 빚과 낮은 모듈화 수준로 인한 단일 모듈형 연구 소프트웨어의 유지보수 및 확장 어려움을 해결하기 위해.
- 플러그인 메커니즘을 통해 핵심 코드베이스를 수정하지 않고도 안전하고 모듈화된 기여를 가능하게 하여, 특히 학부생 기여자들을 위한 협업 개발을 향상시키기 위해.
- 마이크로서비스, 도커, CI/CD 파이프라인을 활용한 소프트웨어 아키텍처 현대화를 통해 확장성 및 유지보수성 향상시키기 위해.
- 다양한 확장 기능을 포함한 개념증명을 통해 신규 아키텍처의 평가를 수행하기 위해.
- ExplorViz의 지속적 배포 및 향후 아키텍처 복구를 위한 기반 마련하기 위해.
제안 방법
- 명확한 인터페이스를 가진 독립적인 마이크로서비스로 단일 모듈형 ExplorViz 레거시를 분해하였다.
- 확장성 지원을 위해 백엔드 및 프론트엔드 구성 요소 모두에 플러그인 기반 확장 메커니즘을 도입하였다.
- 구식 GWT 프레임워크를 현대적이고 모듈화된 기술로 대체하고, 도커를 통한 컨테이너 기반 배포를 구현하였다.
- 각 서비스의 도커 이미지 생성을 가능하게 하기 위해 CI/CD 파이프라인을 통한 자동화된 빌드 및 배포를 통합하였다.
- 간편한 배포 및 커스터마이제이션을 지원하기 위해 사전 빌드된 프론트엔드 설정을 위한 빌드 서비스를 개발하였다.
- 최소한의 설정으로도 사용자 정의 가능한 구성이 가능한 유연한 설정을 위해 docker-compose 파일을 사용하였다.
실험 결과
연구 질문
- RQ1단일 모듈형 연구 소프트웨어 시스템은 어떻게 효과적으로 모듈화되어 협업 개발을 지원할 수 있는가?
- RQ2학생 및 외부 기여자들이 안전하고 확장 가능한 기여를 할 수 있도록 하기 위해 필요한 아키텍처적 및 프로세스적 변화는 무엇인가?
- RQ3마이크로서비스로의 이행 과정에서 기술적 빚과 오래된 프레임워크는 어떻게 해결할 수 있는가?
- RQ4마이크로서비스 아키텍처는 유지보수성 및 확장성 측면에서 오픈소스 연구 소프트웨어에 어떤 이점을 제공하는가?
- RQ5모듈화된 연구 소프트웨어 시스템에서 지속적 통합 및 지속적 배포는 어떻게 확립할 수 있는가?
주요 결과
- GWT 기반의 단일 모듈형 아키텍처에서 마이크로서비스 아키텍처로의 이행이 코드의 모듈화 및 유지보수성 향상에 상당한 기여를 하였다.
- 플러그인 메커니즘의 도입으로 핵심 코드베이스를 수정하지 않고도 백엔드 및 프론트엔드 모두에 대해 안전하고 격리된 확장 기능을 구현할 수 있었다.
- 도커 및 docker-compose를 통한 컨테이너화가 배포 및 구성 설정을 단순화하였으며, 사용자가 단일 명령어로 사용자 맞춤 ExplorViz 설정을 구성할 수 있도록 하였다.
- CI/CD 파이프라인이 각 마이크로서비스의 도커 이미지 빌드 및 패키징을 성공적으로 자동화하여 배포 신뢰도를 향상시켰다.
- 개념증명 구현을 통해 다수의 확장 기능이 성공적으로 통합되었으며, 신규 아키텍처의 확장성 및 유연성은 검증되었다.
- 지속적 배포를 향한 긍정적인 진행 상황을 보이며, 향후 릴리스 주기 개선 및 문서화 및 리팩터링을 위한 아키텍처 복구 지원을 위한 계획이 수립되어 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.