PostgreSQLエバンジェリストメモ:収用者の収用







こんにちは、Habr、長い間お互いに会っていません! の前の投稿以来

一連の「メモPostgreSQLエバンジェリスト」( 1、2、3 )、かなりの時間が経過し、多くが変更されました。 興味深い機能を備えたMySQLおよびPostgreSQLの新しいリリースがリリースされました(私の記事の内容はほとんど関連性がありますが、必要に応じてマイナーアップデートを行いました)。 MySQLに捧げられた会議でPostgreSQLに関する報告が聞かれ、その逆の場合、 共同マーケティングが流行しました(共同フランチャイズ、場合によっては共同リースもあります)。 さまざまな面でMySQLとPostgreSQLを客観的に比較する試みが行われた共同報告もありました。 Uber物語は 、長い議論の末に消滅しました。その中で、私も謙虚な貢献をしました







一般的に、2つのプロジェクト間の対話はより有意義になっています。 以前の記事で話したホラーストーリーや神話はどんどん聞こえなくなります。 ただし、PostgreSQLコミュニティによってまだ推進されている神話が1つあります。 正確には、それは私の愛するPostgres Professional会社によって宣伝されています-他の会社の代表者から聞いたことはありません。 これは「独自の」MySQLの神話です。 会話の中で、Postgres Professionalのリーダーシップは、材料のいくつかのワイルドな無知と用語の独特な解釈を示しています。 それでは、親愛なる編集スタッフが装甲車に再び登る時です!







どのようにすべてが始まりましたか?



それはすべて、DevConf 2017カンファレンスでのPostgres ProfessionalのCEO、Oleg zen Bartunovのレポートから始まりました。 当然、冗談を言わずに細い家を通り抜けることができないようにMySQLに言及せずにPostgreSQLについて話すことはできません 。 それがここにあったので、MySQLに関する素晴らしい話を聞きました。 それらのいくつかについては、少し後で別の話があることを願っています。 ここでは、オレグが1つの櫛でOracle RDBMS、MySQL、およびMicrosoft SQL Serverを駆動し、それらをすべて「独自」と呼ぶ有名なOlegの特定のステートメントについて説明します( ビデオ、16:48から17:11まで )。







私はオレグに連絡して、それが何であるかを調べました:単純なトローリング、ランダムな留保、または意識的な伝道 。 伝道-オレグは本当にそう考えており、彼の見解を議論する準備ができていることが判明しました。 しかし、彼の議論は私には緊張しているように見え、オレグも私の議論を拒否しました。 私はオレグが彼の見解を公に表明しているので、なぜ私自身のものを与えないのか、そしてこれはPostgreSQL 伝道に関する一連の記事の良い継続だと思いました。







実際、これはMySQL独自のソフトウェアを宣言するPostgres Professionalによる最初の試みではありません。 簡単に言えば、私は以前の記事でこのトピックに触れましたが、誤解の深さ全体を疑うことはありませんでした。 議論には、Postgres Professional開発ディレクターのAlexander smagen Korotkovが随時参加します。 議論は、正当性を正当化するために使用されます:MySQLとPostgreSQLコミュニティ間の開発モデル、ライセンス、ビジネスモデルの違い。 もちろん、違いがあります。すべての基準で、まったく同じプロジェクトが2つあることはほとんどありません。 ただし、オープンソースエコシステムに関する独自のアイデアに当てはまらない「独自の」すべてを宣言したいという要望は、Postgres Professionalによってのみ認められています。







純粋に人間である私は、最も人気のあるオープンDBMSのタイトルを没収したいというこの願望を理解できます。 しかし、動機を理解することは同意することを意味するものではないため、議論を詳細に分析します。







著作権とライセンス



基本的な用語から始めましょう。 リチャード・ストールマンが講義で行っているように、私は歴史を掘り下げません。 また、 ウィキペディアのように「科学、文学、芸術の著作物」の著作権について説明する法的ジャングルには入りません 。 ソフトウェアに焦点を当てて、ロシア語で物事を説明します。







ソフトウェアの著作権は、ほとんどの国で採用されている一連の法律であり、プログラムの作成 (より一般的な意味では著作権者 )にプログラムの使用と配布の条件を独自に決定する権利を与えます。 このような条件はライセンスと呼ばれます。 著作権は、プログラムコードの作成時に発生します。 著者は、著作権を他の人や組織に譲渡したり、拒否することさえできます。 著作権の放棄または有効期限が切れた場合、プログラムは「パブリックドメイン」(パブリックドメイン)に入ります。







無料の専用ソフトウェア



「フリー」、「オープン」、「プロプライエタリ」ソフトウェアという用語は、使用と配布の「自由」のレベル、つまりライセンス条件に応じてソフトウェアの全範囲を条件付きで分割するために非常に広く使用されます。







「フリーソフトウェア」という用語 、1985年にフリーソフトウェア財団によってストールマンによって使用されています。 最近、「libre software」という用語は、英語の「free」という用語の曖昧さを避けるためにも使用されています。これは、プログラムに関して「free」と「free」の両方を意味します。







ストールマンとFSFは、次の4つのフリーソフトウェアの基準を定義しています。









1998年に設立されたOpen Source Initiativeによって、非常に近い用語 オープンソースソフトウェア 」が提案されました。 OSI 正式な基準のより長いリストを定義しますが、見掛け倒しを破棄すると、FSFが使用する定義と同じ定義になります。オープンソースソフトウェアは「元の形式または修正された形式で自由に入手、使用、変更、配布できるソフトウェア」です。 新しい用語は、主に英語のfreeという単語のあいまいさを避けるために作成されました。 そして、新しい組織は、FSFとの「哲学的」問題に関する意見の相違と、あまり伝道せずに実際的な問題に集中したいという願望のために作成されました。







「独自のソフトウェア」という用語は、フリーソフトウェアまたはオープンソースソフトウェアの基準を満たさないプログラムを指すために使用されます。 また、一般的な定義に基づいて、「無料」、「オープン」、「独自の」ソフトウェアはライセンスのみに依存していることにも注意してください。







OracleがFSFによって作成されたGPLであるGPLv2の下で配布しているMySQLは、明らかにこれらの基準を満たしています。 たとえば、MariaDB、Percona Server / XtraBackup、Galera、Amazon RDS / Auroraなど、これらの自由がなければ決して現れなかった多くのプロジェクトや企業さえあります。 MySQLを使用する大企業の多くは、独自のMySQLフォークを作成して使用します。これは、MySQLが所有権がある場合は不可能です(Facebook、Twitter、LinkedIn、Uber、Alibaba)。







この記事は、Postgres Professionalがファンに投げかけたさまざまな議論についてではなかったとしても、終わったかもしれません。







Postgres Professionalの議論:「すべての権利を片手で」



したがって、MySQLを「専有」と呼ぶOleg Bartunovは、明らかに、オープン/フリーおよびプロプライエタリソフトウェアの定義のいくつかを使用しています。 もちろん彼には権利がありますが、これらの定義を見つけることができませんでした。 Olegは、策定された基準の代わりに、WikipediaとOracle Contributor Agreementからいくつかの引用を提供しますが、これは明らかにあまりよく理解していません。







まず、ソースコードのオープン性はまだ何の意味も持たず、証拠としてのプロプライエタリソフトウェアに関するウィキペディアの記事から引用しています。「プロプライエタリソフトウェア、プロプライエタリソフトウェア、プロプライエタリ-プライベート[1]、特許取得済み[1]、所有権[1]およびソフトウェア-ソフトウェア)-著者または著作権者の私有財産であり、フリーソフトウェアの基準を満たさないソフトウェア( オープンソースソフトウェアの可用性) 確かに )。」







実際、オープンソースを持っているだけでは、FSFまたはOSIの基準を満たすのに十分ではありません。 独自の製品コードは、非常に限られた条件下で(または盗むことさえできる)メーカーから入手でき、そのような「発見」の例が見つかります。 通常、このコードを読むことができますが、他のことはできません。 ソースコードを読み取る機能は、FSF / OSIで定義された自由のほんの一部です。







しかし、MySQLはどこにあり、そのライセンスはGPLv2であり、それが定義する完全な自由を持っていますか?







第二に、オレグは、「すべての権利が片手に集中している」という事実によってMySQLの正当性が確保されていることを主張し、OCA( Oracle Contributor Agreement )とそこからの次の引用の存在によってこれを確認します :「このOracle Contributor Agreement(「OCA」)は当社が管理する製品またはプロジェクト(以下「プロジェクト」)に対するお客様の貢献、および提供された資料でお客様が弊社に付与する知的財産権を明記します。」







私が理解しているように、オレグはこの引用をおおよそあなたの基地がすべて私たちのものであると解釈し、「警備員、フーリガンは著作権を奪っている!」と言います。







Oracleが外部からのパッチを受け入れることができず、MySQLがFSFとOSIの定義でフリーでオープンソースであることをやめないという医学的事実から始めましょう。 しかし、オレグには独自の定義があり、私がさらに進んで、少なくとも彼を理解しようとすることは興味深いものになりました。







Olegが契約全体(短い)または少なくともよく寄せられる質問のリストを読むことに煩わされていた場合、OCAは著作権の排他的譲渡を必要とせず、権利は「片手で集中する」ことはないことを知りました。 この契約により、オラクルとコードの作成者との間で共同著作権が確立され、その後、契約の各当事者は、コードで望むことを何でも行うことができます。 OCA FAQからの引用:「あなたは貢献に対するすべての権利、権原、利益を保持し、あなたが望むあらゆる目的にそれらを使用することができます。 Oracleに付与された権利を取り消す以外に、コードで何でもやりたいことができます。







さらに、フリーソフトウェアの世界では、オラクルよりもさらに急進的な立場にある組織が少なくとも1つあります。 Free Software Foundationと呼ばれます。 FSFに著作権が属するプロジェクトに貢献する場合は、FSFの著作権の完全な譲渡(Oracleのような共同ではない)に同意する必要があります。 プロジェクトのリストには、 glibcGCCBashAutoconfAutomakecoreutilsGnuPGなど、フリーソフトウェアの最新のエコシステムを想像するのが難しい他の多くのプロジェクトが含まれています。







これらのプロジェクトはすべて、OlegとMySQLの観点から同じ所有者であることがわかりました(「すべての権利は片手に集中している」同じ)。 オレグは、この問題を解決する方法についての回答を提供していません。 しかし、その後、アレクサンダー・コロトコフは彼の助けに来ます。彼は、「FSFとOracleは完全に異なる組織です」と言っています。 はい、誰が反論するでしょうか、Oracleには嫌いなものがあります(ところで、FSFも)。 しかし、ここで私たちは非常に滑りやすい斜面に再び乗り出します。誰もが自分の宗教的信念に応じて何でも「所有権」と呼ぶことができます。 しかし、私は共通言語を話したいです。 オープンサワープロジェクトを「専有的」または「無料」とみなすべきかどうかを理解するために、開発会社の適性を誰がどのように判断しますか?







アレクサンダーはこの議論に部分的に同意しますが、会話をライセンスの変更と二重ライセンスの可能性に変換しました。 これについては後ほど説明します。







フリー/オープンソースソフトウェアの全範囲を見ると、一部のプロジェクト(PostgreSQLを含む)はまったく署名契約を必要とせず、いくつかはライセンス契約(例:openssl、Qt、Apache Software Foundationプロジェクト)を必要とし、開発者はプロジェクトを提供する必要があります原則として、かなり広い権利で使用するための取消不能なライセンスですが、 著作権の共同または完全な譲渡が必要なものもあります(例:FSFおよびOracle)。







なぜこのような混乱と動揺があるのでしょうか? これが合法的なハードコアの始まりです。 それはすべて、プロジェクトの詳細、著作権所有者の法的懸念、および彼に助言した特定の弁護士である著作権所有者の意見に依存します。 フリーソフトウェアは、多くの点で、依然として従来の著作権法の「灰色の領域」です。 単一の「正しい」方法はなく、弁護士同士の合意すらありません。 たとえば、FOSDEMカンファレンスでは、フリーソフトウェアの開発と使用の法的問題に特化した別のトラックがありますが、これらの問題はまだたくさんあります。







契約が存在しないため、サードパーティのパッチを簡単に含めることができます。 しかし、法的リスクにはマイナス面があります。 このすべてについて、別の記事を書くことができます。 今のところ、私は自分の観点から最も有益な記事へのリンクを残すだけです。









これらの質問はすべて、サードパーティのパッチをプロジェクトに含めるための条件に関連していることを繰り返します。 これは、ユーザーがプロジェクトコードを受け取る条件に完全に直交し、少なくともFSFとOSIの観点から、プロジェクトの「自由」または「専有」を決定します。 オレグ・バルトゥノフとアレクサンダー・コロトコフは、自分の好きなように独自の定義を与える権利を持っていますが、彼ら自身の認めることで、彼らは法的問題にあまり精通していません。 私たちは皆間違っている可能性がありますが、少なくとも基本的なことを理解したいという願望が見たいです。







Postgres Professionalの議論:デュアルライセンス



「独自の」MySQLについて議論するとき、この議論は必然的に生じます。 GPLv2ライセンスで配布されるMySQL Community Edition(通常はMySQLと呼ばれる)と、独自のライセンスで配布される異なるバージョンのMySQL Enterpriseの 2つの個別のソフトウェア製品があることを思い出させてください。







ここでは、オープンソースのビジネスモデルについて説明します。 FSFとOSIの両方が自ら設定した主なタスクの1つは、営利企業をオープンソースソフトウェアの開発に引き付けることでした。 このためには、無料で、さらには無料のライセンスの下でさえも、誰でも利用できるものの開発に投資する商業企業を引き付ける持続可能なビジネスモデルが必要です。 FacebookまたはGoogleでない場合、 多くのオプションはありません 。 その1つはデュアルライセンスと呼ばれます。







デュアルライセンスモデルはさまざまな方法で適用できます。 同じ製品を異なるライセンスで配布できます。 たとえば、このライセンスが適切な人にはGPLの下で、GPLの制限により製品のアプリケーションへの使用または統合が許可されていない人には独自のライセンスの下で。 つまり、ビジネスモデルは基本的に、無料ライセンスの免除を販売することで構成されます。







2番目のオプションは、 高度な機能を備えた製品の専有ライセンスの販売を提供するもので、 オープンコアとも呼ばれます







最初のオプションは、たとえば、MySQL Enterpriseの一部のバージョンのOracle自体、 Asterisk VoIPシステムのDigium、 Sphinx全文検索システム、およびよく知られているQtライブラリで使用されます。 ところで、かつてこのモデルをQtの元開発者であるTrolltechに最初に提案したのはストールマンでした。







2番目のオプションは、同じMySQLとVirtualBoxの両方でOracleを使用します。 Nginxは、商用NGINX Plus製品でもこのモデルを使用しています。







オープンコアバージョンのデュアルライセンスでは、独自のPostgres Pro Enterprise製品にPostgres Professionalも使用されます。 ちなみに、Postgres Professionalの従業員は、デュアルライセンスでプロプライエタリバージョンを利用できるため、Nginx、Sphinx、Qt、VirtualBox、およびPostgreSQL自体を「プロプライエタリ」と呼ぶことを聞いたことがありません。 しかし、何らかの理由で、MySQLの二重ライセンスと「つまずき」について推測するのが非常に好きです。 なんて奇妙な選択性







私見では、MySQL、Nginx、PostgreSQL、Qt、Sphinxのいずれであっても、プロプライエタリバージョンの可用性が、対応するオープンソースプロジェクトを「専有」するものではないことは明らかです。 このスコアに関するPostgres Professionalによる曖昧な議論はすべて、 象を地球に引き寄せようとする試みです。







Postgres Professionalの議論:「Oracleは悪です!」



さまざまな形式でのこの議論は、MySQLの場合だけでなく、Postgres Professionalの人々の議論にも現れています。 「会社に対する信頼の問題」、「営利会社の独占的権利」、「OracleはMySQLを閉鎖できる」。 これは一方では真実であり、他方では次にフェンスに影を落とそうとします。







これは、Oracleが実際にかなり「積極的な」評判を持つ商業企業であるためです。 また、OracleがMySQLをシャットダウンしたり、開発を停止したりしないことを保証することはできません。







しかし、これはフェンスに影を落とそうとする試みでもあります。2017年はヤードでは1997ではなく、デバイスドライバーからディストリビューションやDBMSまで、重要な(ほとんどではないにしても)オープンソースソフトウェアが開発されている世界に住んでいるからです営利企業。 これは良いことでも悪いことでもありません。感覚で私たちに与えられた客観的な現実です。 FacebookGoogleIBMIntelRedhatCanonicalYandexMail.Ruなど、他の大企業のオープンソースプロジェクトのリストを以下に示します。







これらすべての企業がオラクルよりも「キンダー」であり、プロジェクトを放棄または閉鎖しないことを保証できるのは誰なのかを言うのは難しいです。 オープンソースソフトウェアの概念そのものは、コミュニティがバナーを落とす可能性がある場合、そのような状況からの損害を最小限にするために開発されました。 コミュニティには、プロジェクトの開発に参加する会社の従業員が含まれていますが、プロジェクトを終了または停止した後、「悪」企業の外でプロジェクトを続行できます。また、オープンソースエコシステムには多くの例があります。







最後に、Olegの最後の主張は、Oracleに信頼がないため、彼らに権利を与えることはできないということです。 すでに書いたように、オラクルは排他的ではなく共同の権利であることが判明しました-それらは「片手に集中」しておらず、コードの作成者は著作権保有者のままであり、それで何でもできます。 しかし、それはポイントでもありません。







私はあらゆる宗教的信仰を持つ人々を容認します。 実際、宗教がOracle、Microsoft、IBM、Facebook、Googleなどに何かを譲渡することを禁じている人々がいます。 合理的に説明するのは難しいですが、問題は見当たりません。 問題は、本質的に独自の宗教的信念に基づいてMySQLを「所有者」と呼んでいることで、オレグは学生から役員まで、さまざまな人々との報告や会話に彼の宗教を課していることです。 私は、このような立場と幅広いコンタクトのある人に、より多くの責任を期待します。







結果は何ですか?



「はい、それはすべて明白です!」-時代遅れの読者は叫び、絶対に正しいでしょう。 私自身はすべてを書くことに少し退屈していました。MySQLとPostgreSQLについて議論するための、もっと興味深く有益なトピックがあります。 しかし、親愛なる読者の皆さん、事実は、 真実後の驚くべき世界に住んでいるということですので、心理療法の目的のためだけに、明白なことについて話すことは時々役に立ちます。







私は幻想を抱いておらず、世界には永遠のものがあります。PostgresProfessionalは、イデオロギー的および商業的な理由から、MySQLについてFUDを配布します。 この記事は、反対側の話を聞くことに興味がある人にとっては、自分で理解するのに適しています。







しかし、良いニュースがあります! 常識は依然として優勢であり、Postgres Professionalは、MySQLが「専有的」であるという意見では依然として少数です。 OracleまたはMicrosoft SQL Serverコード(単に存在しない)を調査、変更、配布する自由は、MySQLユーザーが得る同じ自由と根本的に異なることを理解するために、すべてのニュアンスを理解する必要さえありません。 「所有権」は少なくとも非論理的です-これは純粋なFUDです。 MySQLは、GPLライセンスに完全に準拠して、このライセンスに基づく他の何千ものプロジェクトと同じ条件下で、元の形式または変更された形式で取得、使用、変更、および配布できます。 FSFはオープンソースカタログにMySQLを含んでおり、 ウィキペディアはMySQLを「無料DBMS」と見なし、Github分岐数も少し示唆し、MariaDB、Percona、Amazon、Facebook、Twitter、LinkedIn、Uber、Alibabaなどの企業の従業員は明らかにオレグに伝えるべきこと。







ファッションに続いて、私は記事の調査の形で戦いを組織することを提案します!








All Articles