javaとossとandroid - javaapi訴訟問題を考える

33
Japan Java User Group JJUGナイトセミナー Java API訴訟問題を考える 2016/7/11 修正版01 #jjug

Upload: yusuke-suzuki

Post on 15-Apr-2017

2.500 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JJUGナイトセミナー

Java API訴訟問題を考える

2016/7/11修正版01

#jjug

Page 2: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 3: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JavaとOSSとAndroidOracle vs Googleの前に知っておいてほしいこと

JJUG会長 鈴木雄介

#jjug

Page 4: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

自己紹介

• 鈴木雄介

–日本Javaユーザーグループ

• 会長

• http://www.java-users.jp/

– SNS• http://arclamp.hatenablog.com/

• @yusuke_arclamp

4

Page 5: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

アジェンダ

• Javaのエコシステム

• OSSのエコシステム

• JavaとOSS

• AndroidとJava

• その後

• まとめ

5

Page 6: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JAVAのエコシステム

6

Page 7: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

Javaのエコシステム

• 「標準仕様と各社別の実装」

• 標準仕様の策定はオープン

–仕様はJCPを通じて策定される

• Java Community Process(1998年設立)

–当時はSunを中心にベンダー各社が標準の仕様すり合わせをするための組織

• 2011年になってJUGの参加も認められるように

7

Page 8: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

Javaのエコシステム

• 各社別の実装

–ベンダーはJava標準APIを実装した製品を販売する

• Java SEも、たくさんの実装があった

• Java EEは、もっとたくさんの実装があった

–「標準だからロックインが回避できる」

• ベンダー独自実装への極端な拒否感があった時代

– その代表が当時のマイクロソフト

– 独自機能を作ることで実質ロックインはしてた

8

Page 9: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

Javaのエコシステム

• JCPの目的

–標準化の共有と追加独自実装の許容

–派生を避けるための仕組み

• ただし、標準認定にはSunによるテストが必要

– TCK(Test Compatibility Kit/互換試験キット)

9

Page 10: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

Javaのエコシステム

• ベンダーのためのエコシステム

10

標準APIJCP

A社 B社 C社

標準 標準 標準

策定検討

参加実装

差別化のための独自機能

Sun

認定

Page 11: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 12: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

OSSのエコシステム

12

Page 13: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 14: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 15: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 16: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

OSSのエコシステム(とJava)

• Java SEでもTomcatのようなことができないのか?

–当然、商用利用可能なライセンスで

16

Page 17: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JAVAとOSS

17

Page 18: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 19: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JavaとOSS

• 2006年11月:SunがJ2SEをOSS化

–のちのOpenJDK

–ただし、GPLv2(コード公開義務あり)

• もちろん各ベンダーは納得しない

• 直後にJ2MEもOSS化

–もちろんGPLv2

19

Page 20: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JavaとOSS

• 2006年、Apache Harmonyが認定を要求

– TCKが規定するJava SEの利用目的に組み込み系(キオスク端末やモバイル端末など)への利用制限があったため適用できず

– 2007年、公開書簡

• Harmony 「この制限を外せ」

• Sun「嫌だ」

20

Page 21: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

JavaとOSS

• 2007年8月:SunがTCKを公開

– OpenJDK Community Technology Compatibility Kit(TCK)License

–テストキット本体はOSSではない

–テスト対象をGPLv2準拠に限定

• どう見てもOpenJDK専用

– Apacheが抗議活動を展開し、JCPでのJSR承認に全て反対する

21

Page 22: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

ANDROIDとJAVA

22

Page 23: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

AndroidとJava

• 2005年ごろのGoogleによるAndroid戦略

–オープンソースによる共有資産を作ることでキャリアも端末メーカーも大きなメリット

• マイクロソフトとシンビアンというプロプライエタリな巨人を倒す

• キャリアや端末メーカーに互換性を提供する

• Androidコミュニティを構築する

–この時点ではMozillaライセンスを検討

• GPL/LGPLに近い

–当初はJ2ME JVMのOSS実装という位置づけ

23

Page 24: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

AndroidとJava

• Andy Rubin氏によるSunへの批判

– Androidはプラットフォームであり、その上で各社が自由に差別化できるようにすべき

– SunはOSSにしたといってもGPLv2。独自実装を含むなら、直接SUNから認定を受けるためにロイヤリティを払わないといけない

• Googleも当初は認定を取るつもりだった

–でも、Harmonyを使っているがゆえに話が進まない

24

Page 25: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

AndroidとJava

• しかたなく、独自JVMのDalvikを作る

– DalvikというJVMを開発し、その上にApache Harmonyのクラスライブラリから携帯電話に必要な分だけを抜いてきた

– 2007年発表、2008年にAL2.0でOSS化

• 2007年、Sunは「Javaの分断を招く」と声明を発表

25

Page 26: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

AndroidとJava

• Androidは普及

–ソフトウェアの呪縛から逃れたかったハードウェアメーカーやキャリア

• 無料で、好きなだけ手を入れられるOS

• もうSunにライセンス料を払わなくていい

–ソフトウェアの対価はいらないがユーザーベースが欲しいGoogle

• 結果としては分断は産まれた

– Googleの責任でもあり、メーカーのセンスのなさもある

26

Page 27: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

その後

27

Page 28: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

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

Page 29: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

その後

• 2010年8月、OracleがGoogleを提訴

• 2010年10月、IBMがOpenJDKに

– Harmonyは2011年11月に活動停止

–コミュニティからは大きな異論無し

• 2016年、AndroidがOpenJDKベースに?

– AL2.0からGPLv2への移行は可能なのか?

– Oracleから認定を取得するのか?

29

Page 30: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

まとめ

30

Page 31: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

まとめ

• 歴史的経緯

– Javaは「ベンダーによる標準化と各社実装」というエコシステムを作った

–しかし、すぐにOSS(AL2.0)による「実装の共有と各社追加実装」という流れに

• Java SEのOSS:Apache Hermony(AL2.0)

• Sunは、この流れには乗れなかった

– Androidも同じことを考えた結果、奇跡的に成功した

• そのために独自JavaVMを作ってしまった

31

Page 32: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

まとめ

• 個人的な見解 1/2

–「GoogleがJavaを分断した」は正しい

• AndroidはSunが弱体化するときに盛り上がったため、議論がうやむやになった感がある

– SunがOSSを戦略的に利用したビジネスをできなかったことも問題

• 急激にサーバー、携帯の市場が広がる中でOSSを戦略的に利用することができなかった

• ただ、JavaをOSS化(GPLv2)しなければ、もっと大きな分断につながっていたと思われる

• とはいえ、AL2.0でOSS化していればSunはもっと早く潰れていたかも

32

Page 33: JavaとOSSとAndroid - JavaAPI訴訟問題を考える

Japan Java User Group

まとめ

• 個人的な見解 2/2

–なぜOracleは訴えた?

• JavaMEで得ていたライセンス費がなくなったのはAndroidのせい!という論理?

• それはそれで古い話?

– IBMすげー

• Harmonyを始めたのも終わらせたのもIBM

33