Google対OracleのJava API訴訟。歴史的経緯とIT業界への影響を考える(その1)。JJUGナイトセミナー

2016年10月5日

2016年5月、GoogleとOracleがJava APIを巡って争っていた裁判に最初の陪審員による評決がくだりました。結果は、GoogleがJava APIをAndroidに流用したことはフェアユースにあたる、というものです。

この評決にはどのような背景があり、IT業界にどんな影響を与えるものなのか。このことをテーマに2016年7月に行われた日本Javaユーザーグループ主催の「JJUGセミナー」の内容を紹介しましょう。

記事は全部で4本(その1その2その3その4)。いまお読みの記事は「その1」です。

日本マイクロソフトで開催したJJUGナイトセミナー

日本Javaユーザーグループ会長 鈴木雄介氏。

fig

今日の前半では私から、JavaとAndroidとOSS(Open Source Software)の話をしたいと思います。

Javaがどういう考え方で仕様策定などが行われ、やがてオープンソースなどが戦略的に活用されるようになった流れや、JavaとOSSとの関係、そしてAndroidとの関係といったものを説明したいと思います。そして後半は栗原さんから、今回の評決の背景や意味などを解説していただきます。

JavaとOSSとAndroid

登場当初のJavaが魅力的だったのは、Javaの標準仕様を策定し、実装は各社ごとにそれぞれ行うというように、仕様と実装が分かれていたことです。

fig

標準仕様をオープンに策定するための団体Java Commpnity Process(JCP)は1998年に設立され、JCPを通じて各社が意見を言ってJava標準APIを作ります。

当時のJCPはサン・マイクロシステムズを中心にベンダーが集まっていました。企業しかJCPに入れず、ベンダのための標準化団体だったのです。2011年にはJava Users Group(JUG)を介して個人も参加できるようになりました。

この標準のうえで、各社がそれぞれJavaを実装した製品を販売できる、ということでした。

fig

こうすることでベンダ独自のロックインが回避できるという考え方が支持されていました。当時はベンダ独自の実装にロックインされることに極端な拒否感があった時代で、そのベンダ独自実装でロックインする代表的なベンダがマイクロソフトだったのです。

それが今日は、この場所(日本マイクロソフトのセミナールーム)でこの話をしているというのは感慨深いものがあります。

とはいえJavaのベンダも独自実装をしないと差別化にならないので、WebLogicやWebSphereなどそれぞれ独自実装の機能がありましたが、それを使わなければ標準仕様に沿ったものでした。

ただし、Javaの標準仕様に従っていると認定されるかどうかはサン・マイクロシステムズによるテスト(Test Compativility Kit)が用意されていて、そのテストをパスするとJavaのコーヒーマークの認定ロゴを表示することができました。この認定ロゴを取得するにはお金がかかります。

これはよくできたエコシステムでしたと。

当時、Javaは肥大化していく時代でした。J2SE 1.2では1500くらいのクラスでしたが、5.0のころにはそれが2倍以上になっていました。

fig

当時のJavaは部分的な実装を認めていなかったため、実装されたJavaVMも大きくなっていました。各社がコストをかけて大きなJavaVMを作り、しかもサン・マイクロシステムズにお金を払って認定ロゴをもらうのは、本当にペイするものなのか、各社の課題になっていました。

一方その頃、オープンソースソフトウェア(OSS)が大きな流れを生み出します。

高まるオープンソースの存在感

OSS普及の大きなきっかけとなったのは、Apache Software Foundationが1999年に設立されたことです。もともとApache HTTP Serverの開発支援のために設立されましたが、そのあといろんなOSSを受け入れていくことになります。

2002年にはStrutsが、2004年にはTomcatが生まれて急成長する中で、オープンソースを使って商用コードを書くことが世の中で急激に進んでいく時代になっていきます。

それを支えたのがApache License 2.0でした。このライセンスのコードは商用製品やクローズド製品にも利用可能で、コードを書き換えたとしてもそれを公開しなくていいという考え方でした。これが魅力となってOSSが商用製品にもばんばん使われていきます。

そうしたOSSのエコシステムの中で、IBMはWebSphereのServletコンテナにTomcatの一部を取り込み、HTTPサーバはApacheベースにするなど、Apache Software Foundationの成果物をとてもうまく利用していきます。

fig

当時の雰囲気からすると、Tomcatは最先端の実装を試していて、それをコミュニティで揉んで、うまくいったらWebSphereに取り込んでいったのではないかなあ、と見える節がありました。

こうしたことはIBMにとってLinuxの成功体験があったからだと思います。IBM自身はLinuxのディストリビューションは出していませんが、24時間サポートなどLinuxの周辺ビジネスはしていました。

もう1つIBMが大成功させたのがEclipseです。IBMがEclipseをOSS化し、2004年にはEclipse Foundationを結成しました。

これは戦略的な話で、OSSを用いて「実質的な標準化」を行うということです。APIの標準ではなく、実装そのものをオープンソースとして共有することでスピード感をもって進めていきましょう、ということです。

これが大成功して、2004年にはTomcatがJ2EEのReference Implementation(RI:参照実装)になります。TomcatがJavaの標準的なものとして認められ、各社がそれぞれ実装するのではなくTomcatをみんなで実装すればRIになるので、そのうえに必要なら機能を追加していけばいいと。

fig

こうしてOSSベースの開発がすごく進んで、コミュニティ発のイノベーションがどんどん起きていきました。Java EEの世界では、OSSをベースに実装をみんなで共有しながらどんどんやっていくことが盛り上がっていくわけです。

ところがJava SEではこうなっていませんでした。

仕様が肥大化していったJava SEでもTomcatのようにRIを作ってみんなで実装を共有できなのかと、当然に考えられるわけです。OSSのJavaVMの実装を各社で共有し、そこに独自に追加機能や改変などをしていけばいいよねと。

≫その2に続く:Javaのオープンソース化をめぐってベンダが揉め始めるなか、GoogleからAndroidが登場します。

あわせて読みたい

Java プログラミング言語 Google Oracle Oracle-Google裁判




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本