使ってみて気づいた
AGPL ライセンスの
メリット・デメリット
水野 史土
ounziw@gmail.com
オープンソースとは
● ソースコードが公開されている
● 改変や再配布が許可されている
=> 顧客向けにカスタマイズしやすい
詳細はOpen Source Initiative(OSI) の定義参照
http://opensource.org/definition
GPL とは
●
オープンソースライセンスの一つ
●
多くのソフトウェアで採用されている
http://thinkit.co.jp/story/2014/02/03/4804によると、
GPL2とGPL3をあわせて55%(2014年1月)
●
コピーレフト条項がある
=> コピーレフトとは?
コピーレフトとは
● オープンソースソフトウェアを再配布する場合、元
のソフトウェアと同一のライセンスにする義務
=> 派生物のライセンスが同じなので、元のソフト
ウェアへのマージが保証される
=> かなり厳しい制約
=> 配布しない場合は制限なし
ソフトA
GPL
ソフトB
GPL
GPL
で配布
コピーレフトと派生物のライセンス
ソフトA
GPL
ソフトB
自分のみ利用
独自ライセンス
で配布
NG
OK
コピーレフトと派生物のライセンス
ネットワーク経由での利用
● プログラムの利用形態
– 手元の端末で実行する
– ネットワーク越しに実行する(ウェブサービス)
昔はネットワークの速度などで実現しにくかった
が、現在はネットワーク越しの利用が増えている
=> 使う人の視点では、ほとんど違いが無い
ソフトA
GPL
GPLとネットワーク利用
ダウンロード&
インストール
手元の端末で
実行する
コピーレフトが適用される
ソフトA
GPL
GPLとネットワーク利用
ダウンロード&
インストール
ネット上の
サーバー
コピーレフトが適用されない
手元の端末
ネットワーク経由で利用
GPLとネットワーク
● 手元の端末で実行: コピーレフト適用
● ネットワーク越しに実行: コピーレフト不適用
=> 使い方がほとんど同じにも関わらず、
  コピーレフト適用/不適用の差が発生する
コピーレフト適用/不適用の統一
●
コピーレフトありに統一
– 手元の端末でも、ネットワーク越しでも、コピーレフトを適用する
– AGPLなど
●
コピーレフトなしに統一
– 手元の端末でも、ネットワーク越しでも、コピーレフトを適用しない
– MITなど
AGPLライセンス
● GPLがベース
● コピーレフト適用に統一
● 採用しているソフトウェア
– MongoDB
– Berkeley DB
– iText
– SugarCRM
– Novius OS
Novius OS について
● フランスのNovius社が中心に開発
●
世界各地からコミットされている
● 英語、フランス語、日本語、ロシア語、スペイン語
● FuelPHPベース
● 書籍「Fuelphp Application
Development Blueprints」で
Novius OS が紹介されている
なぜAGPLか
● 派生物のライセンスが同一
– サードパーティのコミットをコアに入れる際、ライセンス
の衝突が生じない
● ウェブサービスでの使用を視野に入れている
– 開発元によるクラウドサービス
AGPL を使って感じた
メリット・デメリット
※ Novius OS には当てはまっても、
他のプロダクトに当てはまるとは限りません
メリット1: 複数人による共同作業
● 例: フォームに条件分岐を追加
http://novius-os.jp/users/form-sample.html
●
私が提案&コードを書く
– Victor さんにより、JSの改善
– Foine さんにより、HTMLの改善
=> 複数人が得意分野で協力し合うと、より良いもの
が効率よく作成できる
ソフトA
AGPL
ソフトB
AGPL
フィードバック
ソフトA'
AGPL
派生物のライセンスが同一
↓
フィードバックして改善
ソフトC
AGPL
ソフトA
MIT
ソフトB
GPL
フィードバック
ソフトA'
MIT
派生物同士のライセンス衝
突で、フィードバックを受けら
れないケースが起こり得る
(派生物作者に委ねられる)
ソフトC
商用ライセンス
メリット2: ウェブサービスへのコミット
● Novius 社がクラウドサービスを行っている
– Novius OS へコミットすると
– クラウドサービスへ反映される
● AGPLであれば、ネットワーク経由で利用する場合
にもソースコードが受け取れる
=> ウェブサービス自体を改善できる
ソフトA
AGPL
ネットワーク経由で利用
ダウンロード&
インストール
ネット上の
サーバー
ソースコードが必ず入手可能
=> 改善を提案しやすい
手元の端末
ネットワーク経由で利用
ソフトA
GPL
(MIT)
ネットワーク経由で利用
ダウンロード&
インストール
ネット上の
サーバー
ソースコード入手可能とは限らない
手元の端末
ネットワーク経由で利用
デメリット1: サーバー負荷
● AGPLはウェブサービスで利用することを想定
=> サーバー負荷を想定して作る必要がある
● ABテストするアプリケーション
– キャッシュ機能を無効にして作った
– サーバー負荷がかかる
=> 本体への組み込みは見送り
(各自が動かすソフトだったら、「負荷の高い機能」と注釈を付
けた上で、各自に委ねることもできる)
デメリット2: コードを共有しない貢献
●
AGPL=商用利用許可
– 販売することができる
– コード共有必須・独自ライセンスは不可
NG: 独自ライセンスで販売
OK: AGPLライセンスで販売
=> 「コードは共有したくない」人・会社は参入しにくい
開発元
アドオンを販売するビジネスモデル
サードパーティ
開発者
手元の端末
1. パッケージ
販売委託
2. 販売
3. 支払い
4. 支払い
開発元は販売手数料で稼ぐ
サードパーティの収益にもなる
AGPL の場合、販売は可能だが、
独自ライセンスでの販売は不可

使ってみて気づいた AGPL ライセンスの メリット・デメリット