Upload
yusuke-suzuki
View
2.500
Download
0
Embed Size (px)
Citation preview
Japan Java User Group
JJUGナイトセミナー
Java API訴訟問題を考える
2016/7/11修正版01
#jjug
Japan Java User Group
アジェンダ
• 前半(19:00-19:30)
– JavaとOSSとAndroid by 鈴木
• Oracle vs Googleの前に知っておいてほしいこと
• 後半(19:30-20:10)
– Oracle vs Google訴訟の概要 by 栗原潔さん
• パネル(20:15-21:00)
2
Japan Java User Group
JavaとOSSとAndroidOracle vs Googleの前に知っておいてほしいこと
JJUG会長 鈴木雄介
#jjug
Japan Java User Group
自己紹介
• 鈴木雄介
–日本Javaユーザーグループ
• 会長
• http://www.java-users.jp/
– SNS• http://arclamp.hatenablog.com/
• @yusuke_arclamp
4
Japan Java User Group
アジェンダ
• Javaのエコシステム
• OSSのエコシステム
• JavaとOSS
• AndroidとJava
• その後
• まとめ
5
Japan Java User Group
JAVAのエコシステム
6
Japan Java User Group
Javaのエコシステム
• 「標準仕様と各社別の実装」
• 標準仕様の策定はオープン
–仕様はJCPを通じて策定される
• Java Community Process(1998年設立)
–当時はSunを中心にベンダー各社が標準の仕様すり合わせをするための組織
• 2011年になってJUGの参加も認められるように
7
Japan Java User Group
Javaのエコシステム
• 各社別の実装
–ベンダーはJava標準APIを実装した製品を販売する
• Java SEも、たくさんの実装があった
• Java EEは、もっとたくさんの実装があった
–「標準だからロックインが回避できる」
• ベンダー独自実装への極端な拒否感があった時代
– その代表が当時のマイクロソフト
– 独自機能を作ることで実質ロックインはしてた
8
Japan Java User Group
Javaのエコシステム
• JCPの目的
–標準化の共有と追加独自実装の許容
–派生を避けるための仕組み
• ただし、標準認定にはSunによるテストが必要
– TCK(Test Compatibility Kit/互換試験キット)
9
Japan Java User Group
Javaのエコシステム
• ベンダーのためのエコシステム
10
標準APIJCP
A社 B社 C社
標準 標準 標準
策定検討
参加実装
差別化のための独自機能
Sun
認定
Japan Java User Group
Javaのエコシステム
• 一方、Javaは肥大化するばかり…
– J2SE 1.2 (December 8, 1998) : 1524
– J2SE 1.3 (May 8, 2000) : 1840
– J2SE 1.4 (February 6, 2002) : 2722
– J2SE 5.0 (September 30, 2004) : 3280
– Java SE 6 (December 11, 2006) : 3793
– Java SE 7 (July 28, 2011) : 4024
11
Japan Java User Group
OSSのエコシステム
12
Japan Java User Group
OSSのエコシステム
• Apache Software Foundation
–オープンソースを支援する任意団体
• Apache HTTP Serverのために1999年設立
• その後、様々なOSSを受け入れて成長する
– 2002年2月にStruts 1.0.2
– 2004年3月にはTomcat 3.3.2
• OSSをホストするためのプロセスがある
–基本的にAL 2.0
• Apache Software License(2004年1月)
• 商用製品やクローズ製品にも利用可能
• GPLv3互換。GPLv1,v2とは非互換
13
Japan Java User Group
OSSのエコシステム(とIBM)
• IBMとASF– WebSphereはASFの成果物を利用
• ServletコンテナはTomcatベース
• SerlvetコンテナにTomcatの一部を取込み
• HTTPサーバはAapcheベース
–オープンソースを戦略的に活用• もちろんLinuxの成功体験がベース
– ただし、LinuxはGPL(コード公開義務あり)
• Eclipseは2001年11月にOSS化– 2004年にEclipse Foundationを結成し、すべてを移管
– OSSを通じた「実質的な標準化」• 仕様じゃなくて実装の共有
14
Japan Java User Group
OSSのエコシステム(とJava)
• 2004年、TomcatがRIに
– Reference Implementation/参照実装
– 2004年頃にはオープンソースコミュニティベースの製品開発プロセスが広く知られる
• コミュニティからのイノベーション
– 2005年:IoC(後のDI)、Spring
– 2006年:JBoss旋風
• JPA(JSP220):Hibernateベース
• WebBeans(JSR299):Seamベース
15
Japan Java User Group
OSSのエコシステム(とJava)
• Java SEでもTomcatのようなことができないのか?
–当然、商用利用可能なライセンスで
16
Japan Java User Group
JAVAとOSS
17
Japan Java User Group
JavaとOSS
• 2005年5月、Project Harmonyが提案
– Apache License 2.0 で提供されるJ2SE 5の実装を提供すること
–モジューラーランタイム、つまり、Java VMやクラスライブラリの実装を自由に組み合わせることができる仕組みにすること
• 参加者多数
–ベンダー:BEA、IBM、IntelI
– OSS:KVM、Kaffe、GCJ
• 2006年10月、Apache Harmony誕生18
Japan Java User Group
JavaとOSS
• 2006年11月:SunがJ2SEをOSS化
–のちのOpenJDK
–ただし、GPLv2(コード公開義務あり)
• もちろん各ベンダーは納得しない
• 直後にJ2MEもOSS化
–もちろんGPLv2
19
Japan Java User Group
JavaとOSS
• 2006年、Apache Harmonyが認定を要求
– TCKが規定するJava SEの利用目的に組み込み系(キオスク端末やモバイル端末など)への利用制限があったため適用できず
– 2007年、公開書簡
• Harmony 「この制限を外せ」
• Sun「嫌だ」
20
Japan Java User Group
JavaとOSS
• 2007年8月:SunがTCKを公開
– OpenJDK Community Technology Compatibility Kit(TCK)License
–テストキット本体はOSSではない
–テスト対象をGPLv2準拠に限定
• どう見てもOpenJDK専用
– Apacheが抗議活動を展開し、JCPでのJSR承認に全て反対する
21
Japan Java User Group
ANDROIDとJAVA
22
Japan Java User Group
AndroidとJava
• 2005年ごろのGoogleによるAndroid戦略
–オープンソースによる共有資産を作ることでキャリアも端末メーカーも大きなメリット
• マイクロソフトとシンビアンというプロプライエタリな巨人を倒す
• キャリアや端末メーカーに互換性を提供する
• Androidコミュニティを構築する
–この時点ではMozillaライセンスを検討
• GPL/LGPLに近い
–当初はJ2ME JVMのOSS実装という位置づけ
23
Japan Java User Group
AndroidとJava
• Andy Rubin氏によるSunへの批判
– Androidはプラットフォームであり、その上で各社が自由に差別化できるようにすべき
– SunはOSSにしたといってもGPLv2。独自実装を含むなら、直接SUNから認定を受けるためにロイヤリティを払わないといけない
• Googleも当初は認定を取るつもりだった
–でも、Harmonyを使っているがゆえに話が進まない
24
Japan Java User Group
AndroidとJava
• しかたなく、独自JVMのDalvikを作る
– DalvikというJVMを開発し、その上にApache Harmonyのクラスライブラリから携帯電話に必要な分だけを抜いてきた
– 2007年発表、2008年にAL2.0でOSS化
• 2007年、Sunは「Javaの分断を招く」と声明を発表
25
Japan Java User Group
AndroidとJava
• Androidは普及
–ソフトウェアの呪縛から逃れたかったハードウェアメーカーやキャリア
• 無料で、好きなだけ手を入れられるOS
• もうSunにライセンス料を払わなくていい
–ソフトウェアの対価はいらないがユーザーベースが欲しいGoogle
• 結果としては分断は産まれた
– Googleの責任でもあり、メーカーのセンスのなさもある
26
Japan Java User Group
その後
27
Japan Java User Group
その後
• SunのOSS戦略は成功せず– 直近の2008年第4四半期決算を見ると、Solaris SPARCやx64サーバーなどのシステム事業の売上が13億3600万ドル、ストレージ事業は5億7000万ドルであるのに対し、JavaやMySQLなどのソフトウェア事業は1億8900万ドルにとどまっている。Sunは今でも、大型システムを販売するハードウェアベンダーなのである。• 「IBMのSun買収」報道-業界大再編の予感
• http://cloud.watch.impress.co.jp/epw/cda/infostand/2009/03/30/15238.html
• 2009年4月20日、ORACLE買収発表
28
Japan Java User Group
その後
• 2010年8月、OracleがGoogleを提訴
• 2010年10月、IBMがOpenJDKに
– Harmonyは2011年11月に活動停止
–コミュニティからは大きな異論無し
• 2016年、AndroidがOpenJDKベースに?
– AL2.0からGPLv2への移行は可能なのか?
– Oracleから認定を取得するのか?
29
Japan Java User Group
まとめ
30
Japan Java User Group
まとめ
• 歴史的経緯
– Javaは「ベンダーによる標準化と各社実装」というエコシステムを作った
–しかし、すぐにOSS(AL2.0)による「実装の共有と各社追加実装」という流れに
• Java SEのOSS:Apache Hermony(AL2.0)
• Sunは、この流れには乗れなかった
– Androidも同じことを考えた結果、奇跡的に成功した
• そのために独自JavaVMを作ってしまった
31
Japan Java User Group
まとめ
• 個人的な見解 1/2
–「GoogleがJavaを分断した」は正しい
• AndroidはSunが弱体化するときに盛り上がったため、議論がうやむやになった感がある
– SunがOSSを戦略的に利用したビジネスをできなかったことも問題
• 急激にサーバー、携帯の市場が広がる中でOSSを戦略的に利用することができなかった
• ただ、JavaをOSS化(GPLv2)しなければ、もっと大きな分断につながっていたと思われる
• とはいえ、AL2.0でOSS化していればSunはもっと早く潰れていたかも
32
Japan Java User Group
まとめ
• 個人的な見解 2/2
–なぜOracleは訴えた?
• JavaMEで得ていたライセンス費がなくなったのはAndroidのせい!という論理?
• それはそれで古い話?
– IBMすげー
• Harmonyを始めたのも終わらせたのもIBM
33