質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

AGPLライセンスのライブラリを組み込んだメインプログラムと、API通信でメインプログラムと通信するフロントプログラムを作り、エンドユーザがフロントプログラムにのみアクセスできる場合のライセンスの範囲

解決済

回答 2

投稿

  • 評価
  • クリップ 3
  • VIEW 9,837

anonymouskawa

score 824

AGPLライセンスのライブラリを組み込んだメインプログラムがAPサーバー上で動作している場合、
メインプログラムはAGPLライセンスですのでエンドユーザから開示要請があればソースコードを開示する必要があります。
![AGPL公開対象
しかし、メインプログラムが直接エンドユーザと通信をせず、仲介であるフロントプログラムを作り、
フロントプログラムがAPI通信等でメインプログラムと通信する場合(そして、メインプログラムがエンドユーザから直接アクセスできない場合)、
メインプログラムを利用するユーザーは「フロントプログラム」であり、フロントプログラムはメインプログラムを組み込んでいない為、AGPLライセンスでなくても良いことになり、エンドユーザはフロントプログラム、メインプログラムのソースを開示要請することはできないのではないかと考えています。

どこまでがAGPL
API通信でのシステム連携はよくあるものだと思いますが、API通信先がどういうライセンスであるかは通信元が把握できるものではないと考えています。
エンドユーザから問い合わせがある度、その通信先に確認をしなければならないのは現実的ではありません。
もし、エンドユーザがフロントプログラムに対し、メインプログラムのソースを開示してほしいと要請しても、フロントプログラムは開示する義務がないという考えであっていますでしょうか。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

まず、はじめに、私は法律の専門家ではありません。
何ら法律的な保証はありませんので、一意見として参考程度にしていただくようお願いします。

AGPL13条には"all users interacting with it remotely through a computer network"とあります。
つまり、ネットワークを介して何かしら利用している全てのユーザーに対して、
AGPLに基づき、ソースを公開しなければなりません。
文言に直接や間接といった言葉は無いため、AGPL部分を間接的に利用していようが、
ネットワークを介している限り、ライセンスは適用されると考えられます。

よって、少なくとも"AGPL LIB"についてはソースを公開する必要があります。
(まったく改変していなければ、オリジナルへのリンクでもいいでしょうけど)

では、メインプログラムとフロントプログラムはどうなるかというと、
この問題は普通のGPLと似た問題になります。
つまり、ネット上にだけ公開ではなく、普通にプログラムをバイナリで配付したときと
同じ考えをする必要があります。
GPLなライブラリをリンクして使用する場合、静的動的を問わず、グレーです。
一般的には、代替のライブラリが存在するか、APIが一般に公開されている物で、
そのAPIのみを使用しているのであれば、GPLに汚染されないと考えられています。
(ただ、これも確実では無い事に注意して下さい。
Wikipediaにあるように、見解は分かれています。)
ただ、AGPLは、実際に動作している環境でライセンス適用となるため、
代替が存在するとは言いにくく、メインプログラムにもAGPLが
適用される可能性が高いと思います。

次にフロントプログラムですが、これも考え方は一緒でいいと思います。
その通信が一般的で、代替が存在するかどうかです。
たとえば、フロンプログラムが一般的なリバースプロキシのような物であった場合は、
AGPLの適用が求められることはないでしょう。
もし、そんな物まで求められたら、AGPLで動作するアプリを
商用の負荷分散装置の下に置くことができなくなってしまいます。
しかし、一般的なHTTP等を使用していても、そのAPIが専用の物で、
メインプログラムとセットとして作られていた物であったら、この解釈は無理かと思います。
なぜなら、フロントプログラムとメインプログラムをセットに
一つのプログラム(著作物)と見なされる可能性が高いからです。
少なくとも、APIについての詳細を一般に公開し、第三者が代替を作れる環境にしなければ、
別のプログラムであるという主張は難しいでしょう。

実際に商用で利用される場合は、専門の法律家に相談することをお勧めします。
ただ、日本では判例がないため、難しい判断になるかも知れません。
(そもそも、日本でGPLが有効かどうかの判例もなかったかと思います)
また、AGPLの精神に基づくならば、すべてのソースを公開することをお勧めします。
たとえ訴訟で勝利したとしても、OSSコミュニティーを敵に回すことになりますので、
会社にとってはマイナスイメージの方が大きくなるでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/20 10:40

    ありがとうございます。
    現段階で私自信がAGPLライセンスのライブラリを使用する計画はありませんが、
    他社のAPIサービスを利用して、図で言う「フロントプログラム」を作成した場合、
    万が一そのAPIがAGPLライブラリを利用していたらと思うとぞっとする話になるのではと疑問に思ったことと、
    もしAPIであれば可という状態であるならば、自分たちのプログラムの構成をAPI通信にすればAGPL汚染は防げるのか?とさらなる疑問が生まれたのが発端です。

    業務で開発するのであれば、GPL、AGPLライセンスのライブラリには触らない方が良さそうですね。

    キャンセル

+1

通常のインターネットアクセスでも大抵の場合はブラウザ等のクライアントアプリケーションを利用していませんか?そういう意味でAPIアクセスの場合と差はありません。AGPLはネットワークを経由してプログラムの利用があるユーザーに対してソースコードを開示するライセンスです。そのため、どちらの場合でも正規のユーザーであればコードを開示しなければなりません。

ソースコードを開示するのは「正規のユーザー」であり、無作為に開示するわけではありません。詳しくは参考リンクを見てください。

参考: 漢(オトコ)のコンピューター道 - 受託開発とGPL

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/20 11:33

    ありがとうございます。参考サイトはすでに確認済みでした。
    クライアントアプリケーションに開示の義務はないことも理解しています。そうでなければ、IEを含む全てのインターネットブラウザはソース開示しなければなりません。
    しかし、図に記載した通り、「フロントプログラム」がサーバー上のクライアントとなっている場合、フロントプログラムはメインプログラムに対して開示要求ができますが、
    エンドユーザがメインプログラム、フロントプログラムに対し開示要求ができるのかという問題になります。
    もし、単なる「HTTP通信」でメインとフロントが連携していた場合、ライブラリの読込がない、GPLでは「グレー」とされるものになります。

    何が正解かわからない以上、GPL、AGPLの使用は避けたほうが良さそうですね。

    キャンセル

  • 2015/08/20 12:32

    > フロントプログラムはメインプログラムに対して開示要求ができます
    エンドユーザーがメインプログラムに対して開示請求ができるだけで、フロントプログラムは関係ありません。フロントプログラムが許諾するライセンスは、フロントプログラムの開発元がエンドユーザーに利用を許諾する時に決める話です。もし「フロントプログラム」のソースコード開示が必要だとしたら、それこそAGPLv3のサービスを使うとIEのコードを開示しなければならない、みたいな変な話になってしまいませんか?

    ところで参考になるかはわかりませんが、任天堂の製品でGPL等のライセンスに関わる部分のソースコードが公開されています。
    http://www.nintendo.co.jp/support/oss/

    ここでWiiの全てのコードが公開されているか、と言えばそんなことはありません。また、Wii Sport等のゲームソフトのコード全体が公開されているか、というとそれもありません。どんなものが公開されているか、というと、WiiのブラウザにはWebKitが使われているので、WebKitに手を入れた部分が公開されていたり、マリオカート8だとGCCに手を入れたのか、GCCのコードが公開されていたりします。

    任天堂製品の場合、利用者からの開示請求に答えるコストを考えるとWebに一般公開した方がコストがかからないので、このような選択をしているのでしょう。が、一般的には「正規の利用許諾を受けたエンドユーザー」のみにソースコードの開示請求に応えれば十分です。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる
  • トップ
  • APIに関する質問
  • AGPLライセンスのライブラリを組み込んだメインプログラムと、API通信でメインプログラムと通信するフロントプログラムを作り、エンドユーザがフロントプログラムにのみアクセスできる場合のライセンスの範囲