「企業で使うOSSの選び方は違う?」「OSSコミュニティーはずっと今のままじゃない?」解決!OSSコンプライアンス(8)

OSSコンプライアンスに関するお悩みポイントと解決策を具体的に紹介する連載「解決! OSSコンプライアンス」。8回目は、利用するOSSの選択とコンプライアンスについて解説する。

» 2022年09月16日 05時00分 公開
[小保田規生OpenChain Japan Work Group]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 本連載では、オープンソースソフトウェア(OSS)の利活用に伴う「ライセンスリスク」と、それをマネジメントするための活動である「OSSコンプライアンス」について取り上げ、エンジニアの方がOSSをスムーズに利用するための実務上の勘所や、これから戦略的にOSSを活用していきたいと考えている企業の方へのヒントとなる情報を紹介しています。

 今回も前回に引き続き、ソフトウェア開発企業X社の開発者である新城くんが経験した、OSSコンプライアンス問題とその解決策を解説していきます。思わぬ落とし穴や難しい問題に直面しながらOSSコンプライアンスに対応していく新城くんのエピソードを通して、皆さんも理解を深めていってください。

 なお、本連載では、特に記載がない限り日本国内でOSSを活用する場合を前提としており、本連載の執筆チームの経験に基づいて説明を記載しています。厳密な法解釈や海外での利用など、判断に迷う場合は専門家にご相談ください。

今回の登場人物

新城くん 日本のソフトウェア開発企業X社で働く入社2年目の開発者。OSSは、指示を受けながらソフトウェア製品やクラウドサービスで利用した経験あり。

佳美先輩 X社の先輩エンジニアで、新城くんの指導担当。OSSを活用した開発の経験が豊富。

エピソード11 OSSの選び方とコンプライアンス

 開発チームからの依頼で、彼らが自社のソフトウェアに組み込もうとしているOSSのライセンスを確認していた新城くん。どうやら開発チームは、LGPL v2.1でライセンスされているOSSを利用しているようです。このOSSを利用して開発を行い、成果物にOSSを組み込んで配布する場合には、寛容なライセンスのOSSで求められる以上の対応が必要です。調べてみると、世の中には同じような機能を持つOSSが、さまざまなライセンスで提供されていることも分かりました。 では、開発チームはなぜこのOSSを利用しようと思ったのか、不思議に思った新城くんは、先輩に問いかけます。


先輩! 開発チームが今回利用しようとしている、このOSSなんですが、ライセンスはLGPL v2.1ですよね。でも、同じような機能が実装されているOSSが他にたくさんあります。しかも、より寛容なライセンスが付いているものもあるんです。なぜ、似たようなOSSがこんなにたくさん、いろいろなライセンスで公開されてるんでしょうか?


そうね、当たり前のことなんだけど、OSSを開発しているソフトウェアエンジニアにとって、彼ら自身が必要としていたり、重要だと考えていたりする機能や性能はさまざまなの。もちろん、ライセンスに対する考え方も開発者ごとに異なっていることが多いわ。だから、さまざまな開発者が、自分自身が望む形で同じような機能を持つOSSを公開していることは割と多いわね。


でも、今回相談してきた開発チームはいつも時間が足りないと言っていますよね。それなのに、どうしてコンプライアンス対応により時間のかかる、LGPLv2.1のOSSを利用しようと思ったんでしょうか? 同じような機能と性能だったら、より寛容なライセンスで提供されているOSSの方が、手間がかからないですよね?


新城くん、「自社のビジネスに大きな影響を及ぼす可能性があるようなライセンスのOSSを利用しない」というポリシーを設定している会社もあるわ。そして、利用している他のOSSとの組み合わせ、例えば、両立できないライセンスの影響も考える必要があるわね。OSSライセンスに関するコンプライアンス対応には時間と手間がかかる場合も多いから、寛容なライセンスを積極的に採用する開発チームが多いのも確かよ。でも、使おうとするOSSを選定するチームは、それ以外の視点でOSSを調査して利用することも多いの。


えっ? どんな観点で利用するOSSを選んでるんですか?


例えば、最近よく利用されているのはGitHubのStarとかForkの数ね。こういうソーシャルな指標で判断して、多くの人が良いと思って使っているOSSを利用する開発チームは多いはずよ。


解説:製品に利用するOSSを選定する際に考慮すべきポイント

 同じような機能を提供するOSSは多数存在しています。

 例えば、JSONをparseするための機能を実装したC++ライブラリには、picojson、rapidjson、cjsonなどがあります。ヘッダーだけの実装であったり、APIが違ったりしており、提供されるOSSライセンスも違っています。

 実際の開発の現場ではどのOSSを使うのがいいか判断しづらく、ニュースやブログを検索してみたり(注1)、その技術領域に詳しい知人や同僚に尋ねたりするようなことは多いのではないでしょうか?

 今回は、OSSを選定する際に役立つ評価ポイントを紹介します。

 よくあるOSS選定の仕方には、次のようなものがあります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。