> [!abstract] 概要(MSR 2024 abstract の日本語訳)
> マイクロサービスコミュニティの研究者は、提案する手法の有効性を独自に作成したマイクロサービスプロジェクトで示すことが多い。これはバイアスの原因となり、結果の信頼性を下げる可能性がある。さらに、時間不足のために小規模プロジェクトを開発することで、進展の比較も困難になる。バイアスを軽減し進展の影響を統一する目的で、領域横断的にベンチマークを認識することは一般的である。利用可能な open-source マイクロサービスプロジェクト(OSS-MS)の同定を支援するため、我々は OSS-MS を同定・整理・カタログ化する包括的研究を実施した。389,559 件のプロジェクトを起点に、3,804 件まで絞り込み手動ラベルを付与した。手動ラベリング後、データセットは 3 つ以上のマイクロサービスと 100 を超える commit を持つ 378 件のプロジェクトを含む。我々はプロジェクトのサイズ、プラットフォーム、貢献者数、目的、財団支援等の多面でドキュメント化する。本データセットはベンチマーク同定のロードマップとして研究者を支援でき、たとえば「サービス数が issue 数に影響するか」のような研究問いに答えるのに使える。
## 論文情報
- タイトル: A Dataset of Microservices-based Open-Source Projects
- 著者: 19 名(主著: [[Dario Amoroso d'Aragona]] [[Tampere University]]、[[Alexander Bakhtin]] [[Xiaozhou Li]] [[University of Oulu]]、終著: [[Davide Taibi]] [[University of Oulu]];共著: [[Mika Mäntylä]] [[University of Helsinki]]、[[Tomas Cerny]] [[University of Arizona]] 他)
- 媒体: [[MSR]] 2024(21st International Conference on Mining Software Repositories)、Lisbon, Portugal, 2024-04-15/16
- DOI: 10.1145/3643991.3644890
- replication: https://github.com/darioamorosodaragona-tuni/Microservices-Dataset.git
- データセット公開: figshare(完全版: 24722163、フィルタ版: 24722232)
- ライセンス: CC BY-NC-SA 4.0
- 助成: Research Council of Finland(349487/349488 - MuFAno)、NSF Grant 2245287
## 概要
マイクロサービス研究のバイアス源である「独自プロジェクトでの実証」を緩和するため、[[World of Code]](WoC)を起点に 173M projects から 378 件の真の Dockerized OSS-MS を抽出した dataset を提案する。各プロジェクトには project identification(名前・URL)、量的指標(commit 数・committer 数・star 数)、定性的ラベル(application type/purpose/developer category/archived/WIP/is_microservice)、Docker descriptive(service 数・bus 数・monitor 数・DB 数)、Docker qualitative(dependency graph・microservice 数)が付与される。
## 問題設定
従来 OSS-MS dataset は規模が小さい(Brogi+ 2017、Rahman+ 2019、Schneider+ 2023、Márquez & Astudillo 2018-2019 など、いずれも 5-30 件規模)か、ad hoc に手動選定したもので、自動的な microservice 判定 + 大規模カタログ化が欠けていた。本稿は「(1) 大規模 WoC を起点に、(2) Docker-Compose による services 構成を機械的に抽出し、(3) 残った候補を二重手動でラベリングする」3 段アプローチで dataset 構築を試みる。
## 提案手法
### Step 1: WoC から候補抽出(389,559 projects)
inclusion criteria:
- **I1**: 2021-2022 に少なくとも 1 commit
- **I2**: 総 commit 数 ≥ 100(low-activity を除外)
- **I3**: contributors ≥ 3(個人プロジェクトを除外)
### Step 2: Docker 情報抽出
- repository を clone、`docker-compose` ファイルの有無で絞り込み
- 各 service を node、container/volume/network を edge とする dependency graph を生成
- database・message bus・API gateway・monitoring tool を非 microservice として除外
### Step 3: 追加 inclusion criteria(3,804 projects)
- **I4**: docker-based microservices が 3 以上(DB・bus・gateway 等は除外)
- **I5**: active months ≥ 12(連続でなくてよい)
- **I6**: project age ≥ 1 year
- **I7**: README 存在 + 英語
### Step 4: 手動分類(378 projects)
著者 2 名が独立にラベル付け、不一致は第 3 著者が解決。以下を分類:
- **Application Type**: library / monitoring / software system / part of a system / unknown
- **Application Purpose**: demo / student project / production ready / unknown
- **Developed by**: research institute / industry / community / independent developers / government / others
- **Archived**: yes / no
- **WIP/Incomplete**: yes / no
- **Is a Microservice**: yes / no / unknown
exclusion criteria:
- **E1**: README 情報不十分
- **E2**: tools/sw/books コレクション
分類による除外内訳:
- 474 件: E1/E2
- 280 件: archived
- 1,536 件: microservices 判定不能
- 1,373 件: 非 microservice
- **最終: 378 件**
## 実験設定
- 評価実験というよりはデータセット構築の手続きそのものが研究内容
- 著者 19 名で 3,804 件を二重ラベリング、ラベリング criteria に関する合意会議を実施
## 実験結果(分布)
- Application Type 最頻: **software system 67%**(library 6%、monitoring 7.25%、part of a system 14.5%)
- Application Purpose 最頻: **production ready 56.8%**(demo 21.75%、student project 1%)
- Developed by 最頻: **independent developers 39.75%**(industry 28.25%、community 19.25%、research institute 6%)
- archived は 5.5%、WIP は 1.75%
- microservice 数の分布は 3-6 件が大多数。Appendix Top 50 では:
- `taskcluster/taskcluster`(library、50)
- `jatinbajaj1/xpresso`(monitoring、50)
- `FudanSELab/train-ticket`(software system、42)←本論文の評価で実証研究の代表として残る
- `dojot/docker-compose`(software system、36)
- `nocproject/noc`(software system、33)
- `lightstep/opentelemetry-examples`(software system、23)など
## 新規性
- WoC を起点とした 173M → 378 件への系統的絞り込みは、既存 5-30 件規模の OSS-MS dataset を大幅に拡張
- application type/purpose/developer 等の多面ラベルが、研究目的に応じた sub-dataset 抽出を可能にする(例: student projects だけを抽出して教育研究に利用、industry 開発のみで品質研究を実施)
- 完全版と active 限定版の 2 CSV、replication script、license(CC BY-NC-SA 4.0)を公開し再現性を担保
## 考察
- 「Is a Microservice = Unknown」が 1,536 件と多く、Docker-Compose だけで microservice 判定が困難な実態を示す
- production ready が 56.8% を占め、demo/student 寄りの数を上回るのは、I5(active months ≥ 12)・I6(project age ≥ 1 year)のフィルタリングが効いている
## 強み / 弱点・課題
### 強み
- 既存 OSS-MS dataset と比べて 1 桁以上大規模(378 件)、かつ複数次元のラベル付与
- WoC 利用により GitHub/GitLab/Bitbucket 横断
- replication package と license が明確で、後続研究で再利用しやすい
### 弱点・課題
- **Internal validity**: 19 著者の手動ラベリングに interpersonal bias、合意会議で緩和したが完全除去は不可
- **Construct validity**: golden dataset が無いため OSS-MS 判定の正確さを定量検証できない。Docker-Compose 解析では DB 等の false positive 混入リスクがあり、依存グラフと node 分類で緩和したが完全ではない
- **External validity**: WoC は Git VCS に限定、Mercurial 等は欠落。プライベートリポジトリは含まない
- **時間的妥当性**: dataset 構築時点の commit hash を公開しているが、project は時間で変化するため定期更新が課題(著者も将来計画に明記)
## 関連リンク
- [[World of Code]](WoC)— infrastructure
- [[Train-Ticket]]、[[eShopOnContainers]]、[[DeathStarBench]] は dataset 内に確認できる代表的 OSS-MS
- 関連 source: [[@2023__arXiv__Benchmarks for End-to-End Microservices Testing]](同じく Cerny+Taibi)・[[@2026__SANER-C__TrainTicketTrace - A Multi-Fault Distributed Dataset for Microservice Fault Detection and Localization]]