サーバの勉強をし始め、データを管理するにはMongoDBやMySQLのような組み込みの機能を使うのが一般的だと最近知ったのですが、これらを商用で利用する場合のライセンスはどうなっているのでしょうか
いくつかサイトを見てみたのですが、これって黙って商用に使っていいのでしょうか・・・
http://anond.hatelabo.jp/20140722001658
http://www.mongodb.jp/mongo/licence
補足:
function(){
//MongoDB内を検索する処理
}
とゆうMongoDBのファイルに関与する関数が有るとします。
例えばアプリケーション(クライアント所有アプリ)から、サーバ内のMongoDBを呼び出す際に
サーバ側に上の関数を配置するのはOKだけど、
クライアントアプリ内に直接上記関数を入れるのはNG
とゆう解釈でしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
まず、GPLもAGPLも、料金を取ってのプログラムの再配布を明示的に認めています。たとえば、RHELは「オープンソースのソフトウェアを、対価を取って提供している」例です(もちろん、同じソースコードからCentOSのように無償配布版を作ることもできます)。
MySQL(GPL)の場合、少なくとも「自社でWebサービスを作って、プログラム自体は再配布しない」という場合には、特にソースの公開が必要になることはありません。
GPLは「複製や頒布、改変以外の活動はこの契約書ではカバーされない」ものであって、サーバサイドで動かしているだけでソフトウェアを第三者に頒布しない分には、特段の制約はかかりません(逆を返せば、AGPLにはそのような場合にもユーザーへのソースコード提供が必要となります)。
投稿2017/04/10 07:58
総合スコア145930
0
maisumakunさんが書かれている通りAGPLではインターネット経由で利用される場合もソースコードの公開が義務付けられますが、MongoDBはそれを回避するための接続ドライバを公式にApacheライセンスで提供しているので、これを使用すれば問題ありません。
GPL/AGPLの扱いに関しては、こちらに詳しく解説されています。
--追記--
GPL v2のFAQで参考になりそうなもの
A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?
-> The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.
If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
-> Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL.
You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?
->Yes.
GPL v3の解説ですが、詳しくはこちらのIPAの資料も参考になるかと
GNU GPL v3 解説書
投稿2017/04/10 08:49
編集2017/04/11 03:29総合スコア1149
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
MySQLはGPLと商用のデュアルライセンスです。
GPLも商用で利用すること自体は全く問題が無くて、問題はソースコードの公開義務があるかどうかという点ですよね。
GPL v3の解説を読むと、プロパゲート(GPLのライセンス伝搬)について書かれていますが、改変したソフトウェアを内部的に使用する(ソフトウェア本体を頒布しない)場合には、GPLライセンスによるソースコードの公開義務を負う必要はありません。
ソースコードやオブジェクトコードを配布する場合には公開の義務が出てくるので、javascriptについては注意が必用ですが、もともとjsは公開状態なので問題ないのかな?
投稿2017/04/10 08:46
編集2017/04/10 09:01総合スコア910
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
組み込み型データベースとサーバークライアント型データーベースでは大きく考え方が違います。MongoDBやMySQLはサーバークライアント型であり、組み込まれていない場合が多く、通常、一緒に配付すると言うこともありません。
まず、ライセンスの制約がきつくなる組み込み型です。SQLite、Oracle Berkeley DB、dbm等です。SQLiteは何の制約もなくなるようにパブリックドメインとなっていますが、Oracle Berkeley DBはAGPLまたは商用ライセンスというデュアルライセンスになっており、商用ライセンスを購入せずに組み込んで配付する場合はAGPL汚染を受けます。
しかし、サーバークライアント型だと様相が異なります。これはHTTPサーバーとブラウザの関係に似ています。サーバーとクライアントが公開されたプロトコルやAPIに基づいてデータをやり取りする場合、サービスを提供する側(サーバー)のライセンスにそのサービスを利用する物に対する規程※が存在しない限り、サービスを利用する側(クライアント)がライセンスの影響を受けることはありません。AGPLであるWebアプリケーションは数多く存在します(例えば、最近流行りのMastodonとか)が、それらを見るためのブラウザもAGPLでないといけないというのは聞いたことが無いと思います。なぜなら、ネットワーク上でのサービスの提供を持ってサーバー側のソフトウェアの役目は完了しており、公開されたAPIに従ってそれを利用するクライアント側のソフトウェアは関係が無いとされるからです。
※ 例として、Microsoft SQL Serverはネットワークで利用するクライアントのソフトウェア側にも使用ライセンスが伝搬します。そのため、直接利用するソフトウェアが一つであっても、間接的な物を含めた最終的な利用者数またはデバイス数でクライアントライセンスを購入する必要があります。
MySQLもMongoDBも同じで、ネットワーク上のどこかにあるMySQLサーバーやMongoDBサーバーを利用するだけのアプリケーションであれば、ブラウザと同じでその制限を受けることはありません。そのアプリケーションが利用しているのは公開されているAPIのみであり、実際に接続するサーバーがMySQLなのかMongoDBなのか、または互換性のある全く別の物(たとえばMySQLの代わりにMairaDBを用いる)なのかは関係無いため、特定のサーバー製品に引っ張られる必要が無いのです。
しかし、ここで安心してはいけません。MySQLやMongoDBを一体化して配付し、一体化して利用するような場合はライセンスの影響を受けます。上の話は、あくまでどこかのそういうサービスをアプリケーションが勝手に利用するという話です。しかし、インストーラーで専用のMySQLまたはMongoDBをインストールして、セットアップして、そのアプリケーション専用にしてしまうと、アプリケーションに組み込まれていると判断されます。
重要なのは、リンクしているとかそういう話ではなく、独立しているかどうかです。ネットワークを通じてサービスを利用するという場合は独立して作成し、独立して配付することが容易です。ですが、あくまで容易という話であって、一体化して配付し、専用の物として利用してしまう場合は製品全体に組み込まれていると判断され、それぞれが独立しているとは見なされません。
なお、データベース本体ではなく、公開されたAPIを用いて接続するためのドライバーは制限が緩いライセンスの場合が多いですので、そちらは組み込まれても問題にならないことがほとんどです。
投稿2017/05/21 22:30
総合スコア21737
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
MySQLについて分かった範囲で修正します。
OSSのソースの改変・流用時にGPL、AGPLなど、OSSのライセンスへの遵守が生じる
点がぼやけている様に思われましたので、以下に、小生の、見解を記しみます。
「MongoDBやMySQLの利用に際し」MongoDBやMySQLの
ソースコードの改変無し:->
自由に利用可能。ソースコードの改変有り:->
GPL、AGPLなど、OSSのライセンスに従う必要が有る。ソースコードの流用有り:->
GPL、AGPLなど、OSSのライセンスに従う必要が有る。ライブラリを動的に利用:->
自由に利用可能。ライブラリを静的にリンク:->
GPL、AGPLなど、OSSのライセンスに従う必要が有る。
例えばアプリケーション(クライアント所有アプリ)から、サーバ内のMongoDBを呼び出す際に
サーバ側に上の関数を配置するのはOKだけど、
クライアントアプリ内に直接上記関数を入れるのはNG
上の関数
がMongoDBやMySQL
のソースコードでないのなら、サーバ側もクライアントアプリ内もOKです。
上の関数
がMongoDBやMySQL
のソースコードの流用なら、「配置も入れるのも」OKです。が、GPL、AGPLなど、OSSのライセンスに従う必要が有ります。
ただし、MySQLはデュアルライセンス故、
MySQL - ライセンス早分かり
- アプリケーションプログラムのソースを公開して良いとするならば、無償版を使用。
MySQL Community Server
2. アプリケーションプログラムのソースを公開を否とするならば、有償版を購入。
MySQL Editions
追記:
上記関数
が
- ODBCやJDBCなどに、動的にアクセスする場合は上記「4.」が適用される。(通常はこれ)
- ODBCやJDBCなどに頼らず、MongoDBと通信するプログラムを自作する場合は上記「5.」が適用される。(普通(絶対?)、やらない。)
補足:
例えば、maisumakunさんの示された
GNUアフェロGPLの理由
の冒頭に、
GNUアフェロ一般公衆ライセンスは通常のGNU GPLバージョン3を改変したバージョンです。これには一つ要求が加わっています。サーバで改変したプログラムを動かし、そこでそのプログラムとほかのユーザに通信させる場合、サーバはユーザにそこで動いている
改変バージョンに対応するソースコード
のダウンロードも許可しなければいけない、というものです。
とあります。
-
通常はGPL、AGPLで、当然ソースコードが公開されているバイナリーコードを『実行して・させて』利用していると思います。この場合、個人・組織内・公開・商用(販売)のいかなる利用形態に於いても、自由に利用出来ます。
-
GPL、AGPLのソースを「1文字」でも『改変』し、「公開・商用(販売)」した場合に、改変履歴が分かる様に、ソースコードを公開しなければなりません。
- 本件の様な「MongoDBのような組み込みの機能を使う」つまりは「改変なし」の場合には、上記「1.」に該当します。
では上記「2.」に該当する例としては、たとえば、
- WordPressの素の機能では、希望する機能が足らないので、WordPressのphpソースコードを「改変」して機能追加・変更して公開サーバで運用する場合には「WordPressの公開ソースコードとは異なる」事になるので、上記「2.」に該当します。
投稿2017/04/11 00:13
編集2017/04/11 04:12退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/11 02:36 編集
退会済みユーザー
2017/04/11 02:04
2017/04/11 02:44 編集
2017/05/21 13:24
0
基本的に商用での使用はライセンスが必要でしょう。ただ、MySQLなんかはオープンソースなので、自分の作ったソフトをソースごと公開なら商用で使ってもいいよ、とあったような気がします。各メーカーそれぞれのDBライセンス形態を検索すると出てきます。
投稿2017/04/10 07:05
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/10 07:45
退会済みユーザー
2017/04/10 07:56
2017/05/21 17:22
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/21 23:02