BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース APIに著作権は、無い

APIに著作権は、無い

原文(投稿日:2012/06/01)へのリンク

Oracle対Googleの裁判における、昨日の決定的な法的裁定 で、判事はAPIには著作権がないこと、そしてOracleがSSO(構造、シーケンス、それらのメソッドの体系)、クラス、パッケージについて何も主張できないことを言い渡した。

もちろん、全体的な名前のツリーは創造的な要素ではあるが、それはまた、正確なコマンドシステムである。記号の功利主義と機能セットであり、それぞれ事前に割り当てられた機能を遂行する。 このコマンド構造は、著作権法のセクション102(b)に基づく 操作のシステムあるいは、方法であるので、著作権で保護されるものではない。コマンド構造の複製は、相互運用性にために必要である。

Oracleに反して、著作権法は、機能あるいは仕様を実装する、いかなる方法に対しても所有権を与えない。著作権保護された実装や仕様がたとえどんなに創造的であってもだ。著作権法は、著者のバージョンを書いた、特定の方法に対してのみ所有権を与える。他の人達が同じ機能を達成するのに彼独自の実装を書くのは、自由であり、なので重要なのは、アイデア、概念、機能を著作権で独占することはできないことだ。

これは常識の大きな勝利であるばかりでなく、InfoQにより以前報告されたように、最近EUがヨーロッパではAPIは著作権保護されない、と判決が出ている。この判決が逆だったら、著作権が与えられるもとそうでないものとの2つの領域間で、非常に大きな亀裂を生むことになっただろう。以前はSunが、その後はOracleが当初他のランタイム、例えば今では亡くなってしまったApache Harmonyプロジェクトを推奨したようなことをまさに妨げることになっただろう。当時、JSPAから要求されたように、Oracleが彼らをTCKに合格させるようなことをしなかったろう。

OracleのGoogleに対する特許侵害訴訟の完全な否決と、今回のAPIが著作権保護されない裁定によって、裁判は完全にGoogleの勝利となった。この件でわずかに残っている点は、9行のrangeCheck関数のみで、これは無意識に、同様な関数の以前のバージョンからコピーしたものであると、認められた。コピーは意図的なものではなく、物理的にコピーされたのではなく、メモリーから再生されたものらしかった。判事は、Oracle による控訴プロセスに備えて、特にこの情報を記録した。

Oracleは、AndroidとJavaに忍び込んだ9行のコードを大げさに言った。 この証拠は全く大したことではなく、Oracleにより誇張されている。判事が見つけた事実は、控訴審の便宜のために、以下のように説明されている。

Joshua Bloch 博士は、1996年の8月から2004年の7月までSunで働き、最後は傑出したエンジニアのタイトルを持っていた。Sunで働いている間に、“rangeCheck”と呼ばれる関数のために9行のコードを書いた。これは、より大きなファイル、“Arrays.java,”に入っており、係争中の37APIパッケージのための、クラスライブラリの一部である。rangeCheckの機能は、リストをソートする前に、値のリストの範囲を確認することだった。これは非常に単純な機能だ。 2004年に、博士はSunを辞め、Googleに移った。そこで彼は "最高のJavaアーキテクト"と "Javaの第一人者”となった。2007年頃、博士は~と~を書いたが、それらにはSunで書いた 同じ rangeCheck関数が含まれていた。彼がこれらのファイルを書いたのは彼の余暇の時間で、Googleのいかなるプロジェクトで働いている時ではなかった。彼はTimsort と ComparableTimsort をSunがコントロールしているJavaプラットフォームのオープン実装である、OpenJDKに寄贈することでJavaコミュニティにコントリビュートするつもりでいた。実際、博士はTimsortファイルをOpenJDKに寄贈し、SunはJava J2SE 5.0 リリースの1部にそれを入れた。

2009年に、博士は Googleの Androidプロジェクトで約1年間働いた。Androidチームで働いている間に、博士はまたAndroidプラットフォームにTimsort と ComparableTimsort をコントリビュートした。こうして、9行のrangeCheck関数は Googleの Androidにコピーされた。これがいかに特許侵害が起きたかだ。

見つかった時、1年以上前に rangeCheckの部分は、当時の最新バージョンのAndroidから取られた。これは、大量のコードの文脈で起きた、無実で取るに足らない事実だ。

同じことが8つの逆コンパイルされたファイルでも見つかっている。これはコピーの1つの事象として扱われ、Android OSには入り込まなかった、すなわちどのデバイスでも走っていないものだ。

Googleはまた、8つのJavaファイルからバイトコードを逆コンパイルして、8ファイルをソースコードへコピーし、それからそのソースコードを使った。これらのファイルは、単にテストファイルとして使われ、Androidすなわちいかなる携帯にも入っていない。これらの8ファイルは、裁判で1まとめに扱われてきた。

1行1行、OracleはAndroidの中の全1500万行(そして最終的なアンドロイドに至るまでの方法に沿ってテストするために使用されたすべてのファイル )をテストし、これら取るに足らないコードが唯一コピーされた。宣言部以外が保存された。既に述べられたように、それを呼ぶ出す部分は、特定の機能を達成する1つの方法で、書くことができるだけである。

Oracleの乗っ取りアプローチは、APIを守る方法ではない、と命令の要約は、はっきり述べている。

最後に、Oracleの訴訟の範囲を振り返り、理解することは重要だ。166ヶのJavaパッケージの内、129ヶはいかなる点でも侵害していない。訴えられた37ヶのうち、Androidのコードの97%は、Googleによる新規のコードで、残りの3%は、マージや名前の原則の元で、自由にコピーできるものだった。なのでOracleは、著作権によって、166のpackageとその部分の分類学のようなコマンド体系のあらゆる全ての可能な実装に対して、独占的な権利を有している、と訴えなければならなかった。実際は1つの実装に対して著作権が与えられるだけであるにもかかわらず。Oracleの申し立てを認めれば、誰でもがコマンド体系を実行する1つのバージョンに著作権を与えれば、他の人が同じコマンドの全部あるいは部分を実行するのに、独自の別バージョンを書くのを禁止できることになる。そのような完全支配が許されたことはない。

結論

この判決は、JavaAPIパッケージがライセンス無しで、誰でも自由に使える、といっているのではない。全てのコンピュータプログラムの構造、シーケンス、体系は盗むことができる、と言っているのではない。そうではなく、この件の特定の事実、Googleによってコピーされた特定の部分は、著作権法のもとで、誰でも自由に使える、と言っているのだ。よって、構造、シーケンス、体系を含んで、Googleがコピーした37のAPIパッケージを基にしたOracleの訴えは、却下された。

裁判の最後は、損害(もしあれば)を計算し、訴訟をクローズすることになる。もしOracleが控訴しても、この判決はその決定の理由付けをはっきりさせた。曰く「API、まして構造、シーケンス、体系に著作権を与えるような控訴審は、これまでなかった。いかなる地方裁判所も与えない。」 彼らが今、そうするようになることは、まず無い。裁判は続く。

この記事に星をつける

おすすめ度
スタイル

BT