Más contenido relacionado La actualidad más candente (20) Similar a Javaとコミュニティの歩み 2020 (20) Más de Yusuke Suzuki (11) Javaとコミュニティの歩み 20207. 歴史
Apache Software Foundation
• 1999年設⽴された⾮営利団体
»NASAが開発していたHTTPDのサポートを維持するために開始
»OSS開発のためのインフラ提供、寄付の受⼊れ、訴訟対応など
»ASFに参加するためのプロセスも提供(Apache Incubator)
• Apache License
»商⽤利⽤可能で改変は⾮公開OK。現在はAL 2.0
»GPLv3互換。GPLv1/v2とは⾮互換
6
Open source masterclass - Life in the Apache Incubator
http://archive.apachecon.com/eu2012/presentations/07-Wednesday/PR-Community/aceu-2012-open-source-masterclass_life-in-the-apache-incubator.pdf
https://www.youtube.com/watch?v=KopPbWS87fw
8. 歴史
Apache Jakarta Project
• 1999年、SunがServlet/JSP部分のRIを寄贈
»Tomcatとして継承し、同年12⽉にTomcat 3.0リリース
»J2EEの⼀部機能のみをOSS化した
• 同時にJava関連OSSの受け⽫としてJakarta Project開始
»Ant、Log4j、Lucene、Maven、POI、Struts、Velocity…
»Javaのエコシステムを作り上げた取り組み
• 2011年に役割を終える
»全てのプロジェクトがトップレベルに移⾏
7
10. 歴史
Eclipse Foundation
• 2004年に設⽴された⾮営利団体
»Eclipse IDEの管理が⽬的
▸Eclipse IDE、Eclipse Platformの関連線製品
▸開発ツール関連が多かったが、近年では限らない。
ü Jakarta *: Java EEがOSS化(各仕様, GlassFish, MicroProfile...)
ü OpenJ9, Eclipse Link, Eclipse Collections...
»Eclipse Public License 1.0 =クラスパス例外付きGPLv2
▸本体の改変はコード公開義務があるが、プラグインには及ばない
▸製品によってライセンスが異なることがあるので確認すること
9
Eclipse Foundation
https://www.eclipse.org/
13. 歴史 – Harmony事件1/3
Java SEのOSS実装が開始
• 2005年5⽉、Project Harmonyが提案される
»Apache License 2.0 で提供されるJ2SE 5の実装を提供すること
»モジューラーランタイム、つまり、Java VMやクラスライブラリ
の実装を⾃由に組み合わせることができる仕組みにすること
»参加者多数&コミュニティも賛同
▸ベンダー︓BEA、IBM、IntelI
▸OSS︓KVM、Kaffe、GCJ
• 2006年10⽉、Apache Harmonyとして開始
12
Apache Harmony
http://harmony.apache.org/
14. 歴史 – Harmony事件2/3
SunがJava SE本体をOSS化
• 2006年11⽉︓SunがJ2SEをOSS化
»Hotspot VM+標準クラスライブラリ+ツール
▸のちにOpenJDKとなる
»直後にJ2MEもOSS化
• OSS化を求めるコミュニティに対する答え
»ただし、クラスパス例外付きGPLv2
▸改変部分のコード公開義務あり
»このためHarmony推進派には受け⼊れがたい内容
13
http://openjdk.java.net/
15. 歴史 – Harmony事件3/3
SunがHarmonyを認定しない
• 2006年、Apache HarmonyがSunに認定を要求
»TCKが規定するJava SEの利⽤⽬的に組み込み系への利⽤制限が
あったことを理由に認定を拒否
• 2007年8⽉︓SunがOSS向けの認定を開始
»OpenJDK Community Technology Compatibility Kit License
▸テストキット本体はOSSではないが、OSSでも認定を受けられる
»ただし、テスト対象はGPLv2準拠に限定→ Harmonyは対象外
• Apacheが抗議活動をするなど広く議論がされた
14
OPEN LETTER TO SUN MICROSYSTEMS
http://apache.org/jcp/sunopenletter.html
17. 歴史 – Android事件 1/2
Androidのモチベーション(2005年ごろ)
• 携帯OSをOSSを通じて共有化していきたい
»キャリアや端末メーカーによる独⾃改変を許容する
»Googleとしては多くの⼈がネットワークに接続することが重要な
ので、OSライセンスの対価は不要だった
• 初期はMozillaライセンスを検討
»GPLv3/LGPLに近い、改変の⾮公開が可能
»当初はJ2ME/JVMのOSS実装という位置づけ
16
18. 歴史 – Android事件 2/2
2008年にAndroidをAL2.0でOSS化
• Androidは2008年にAL2.0でOSS化
»改変部分の⾮公開を可能にしたいため、Harmonyのクラスライブ
ラリから⼀部を利⽤しながらJVMを独⾃開発(Dalvik VM)
»もちろん、Sunの認定は受けていないし、独⾃性がかなり強い
▸裁判の過程でGoogle社内でも「認定を受けるべき」という声があったこと
が公開されているが、結果的には似⾮JavaVMになっていた
»2007年、Sunは「Javaの分断を招く」と声明を発表
• そして、Androidは急激に普及
»Java MEが利⽤されなくなる(例︓DoCoMoのDoJa)
17
21. 歴史 – Java API訴訟事件 1/3
そして訴訟へ
• 2010年8⽉、OracleがGoogleを提訴
» 2010年4⽉にOracleによるSun買収が成⽴
• 提訴の内容
» 特許権侵害 →侵害していないで確定
» Javaライブラリの実装コードの無断複製 →著作権侵害で確定
▸rangeCheck()の9⾏だけなので賠償⾦額0円
» Java APIの著作権侵害 →この部分が継続している
▸損害賠償の請求額が約1兆円
▸2015年、最⾼裁でAPIに著作権があることが確定済み
▸フェアユースか︖が問題
20
Google対OracleのJava API訴訟。歴史的経緯とIT業界への影響を考える(その1)。JJUGナイトセミナー
https://www.publickey1.jp/blog/16/googleoraclejava_apiitjjug.html
22. 歴史 – Java API訴訟事件 2/3
フェアユースとは
• 著作権者の許諾なく著作物を利⽤しても、公正な利⽤と評
価されれば、著作権の侵害にあたらない
»利⽤の⽬的と性格
▸そのものが⾮営利⽬的か︖
»著作権のある著作物の性質
▸そのものが論⽂や地図などの事実を伝えているだけか︖
»著作物全体との関係における利⽤された部分の量及び重要性
▸そのものの核⼼部分に触れるものか︖
»著作物の潜在的利⽤⼜は価値に対する利⽤の及ぼす影響
▸そのものが市場に悪影響を与えるか︖
21
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%82%A2%E3%83%A6%E3%83%BC%E3%82%B9
23. 歴史 – Java API訴訟事件 3/3
現在までの経緯
• JavaAPIに関する経緯
»2016年、Oracleの勝利(著作権侵害)→Gが控訴
»2018年、Googleの勝利(フェアユース)→Oが控訴
»2020年10⽉、最⾼裁の審理がスタート
▸数ヶ⽉以内に判決が出る
▸Googleは改めて「APIに著作権はない」と主張。不利との⾒⽅が多い
• フェアユースが認められないと︖
»実装コードに⽐べ、似てしまう可能性が⾮常に⾼い
»APIのコピーを禁⽌されると互換製品の提供が困難に
22
25. 歴史 – Oracleやらかし事件
OracleとOSSの微妙な話
• 様々なOSS製品と問題を起こす
»MySQL事件(2010年、MariaDBに分裂)
»OpenSolaris事件(2010年、提供を停⽌)
»Hudson事件(2011年、Jenkinsに分裂)
»Java EE Guardians事件(2016年、Jakarta EEのきっかけ)
▸2016年、Java EE 8の仕様策定の遅れを懸念して有志が声かけ
▸OracleがJava EEから開発リソースを引き上げている
• OracleはOSSとの付き合い⽅があまりうまくない
24
Jakarta EE Ambassadors - Our History
https://jakartaee-ambassadors.io/
26. 歴史
Jakarta EE
• 2017年、 Eclipse Foundationへ移管してOSS化
»IBM、Red hatと話し合って実施
»RI、TCK、関連ドキュメントを提供(Oracleは認定も放棄)
• 段階的に作業を実施中
»javax.* → jakarta.*
»Microprofileの取り込み(軽量化、MSA対応)
»2020年6⽉、Jakarta EE 9 M1を提供
25
Jakarta EE
https://jakarta.ee/
28. 歴史 – Java有償化︕︖事件 1/2
Java SEのリリースモデル変更
• バージョンアップが6か⽉ごとに
»2018/9:Java 11、2019/3:Java 12…、2020/9:Java 15
»サポートは次のバージョンが出るまで
▸つまり半年でサポートがきれる
»3年おきに⻑期間サポートバージョン(LTS)が提供される
▸Java 11でOracle JDKとOpenJDKが同⼀になり、Oracle JDK無償配布廃⽌
• Oracle OpenJDKが代替するため実際には有償化ではない
27
29. 歴史 – Java有償化︕︖事件 2/2
結果、様々なディストリが提供されることに
• 現在は様々なディストリビューションが提供されている
»別製品の利⽤を前提にサポートが無償利⽤できるように
▸RHEL上であれば無償︓Red Hat OpenJDK
▸Azure上であれば無償︓Azul Zulu
▸AWS上であれば無償︓Amazon Corretto
»詳しくは「OpenJDKソムリエ」で検索
▸https://qiita.com/yamadamn/items/2dd26a014791b9557199
• なお現時点でも、最も開発に貢献しているのはOracle
»OracleはいまだにJavaに投資し続けている
28