Movatterモバイル変換


[0]ホーム

URL:


Yusuke Suzuki, profile picture
Uploaded byYusuke Suzuki
4,669 views

Javaとコミュニティの歩み 2020

2020/11/7に開催されたJJUG CCC 2020 Fallでの講演「Javaとコミュニティの歩み」の資料に追記したものです。Javaの歴史を紐解きながら、たくさんの企業や個人が開発に参加するようになった経緯や、話題のJava API訴訟がなぜ起きたのかについてまとめました。

Embed presentation

Download to read offline
Javaとコミュニティの歩み<追記版>2020/11/7鈴⽊雄介⽇本JavaユーザーグループCCC運営委員⻑#jjug_ccc #jjug_ccc_c
はじめにJavaの⾯⽩いところ• Java本体がOSS化されている=OpenJDK»クラスパス例外付きGPLv2• たくさんの企業やコミュニティが開発に参加している»JDK 15の参加企業▸Oracle、Red Hat、SAP、ARM、Tencent、NTT Data、Amazon、IBM、Intel、Alibaba、Loongson、Huawei、BellSoft、Ampere Computing、Google、JetBrains、Azul、DataDog、Microsoft...• 25周年を超えて進化中»6ヶ⽉ごとにバージョンしている1The Arrival of Java 15https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15
はじめになんで、こんな状況になれたのか︖• 歴史の流れを追うと、様々な事件を超えながらOSSとして成熟してきたことがわかる»OSSを通じたイノベーションが⾏われてきた»OSSのライセンスモデルが重要な役割を果たす• 企業も含めたコミュニティが、Javaとどう関わってきたかがわかる2
アジェンダ• 歴史• まとめ3
#jjug_ccc #jjug_ccc_c歴史4
歴史Javaの歴史• Sun Microsystemsが1995年に1.0を発表»Sunは2010年にOracleに買収される• 標準仕様を策定して実装する、というオープンなプロセス»Java SE 12は「仕様」、OpenJDK 12は「実装」»この時点では各実装はオープンソースではない• Java Community Process(1998年設⽴)を通じて策定»当初はSunを中⼼にベンダー各社が標準仕様を策定»正式製品になるためにはSunによる認定が必要▸Technology Compatibility Kit(TCK)5Java Community Processhttps://www.jcp.org/
歴史Apache Software Foundation• 1999年設⽴された⾮営利団体»NASAが開発していたHTTPDのサポートを維持するために開始»OSS開発のためのインフラ提供、寄付の受⼊れ、訴訟対応など»ASFに参加するためのプロセスも提供(Apache Incubator)• Apache License»商⽤利⽤可能で改変は⾮公開OK。現在はAL 2.0»GPLv3互換。GPLv1/v2とは⾮互換6Open source masterclass - Life in the Apache Incubatorhttp://archive.apachecon.com/eu2012/presentations/07-Wednesday/PR-Community/aceu-2012-open-source-masterclass_life-in-the-apache-incubator.pdfhttps://www.youtube.com/watch?v=KopPbWS87fw
歴史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
歴史IBMがOSS戦略で成功しはじめる• IBM WebSphereがASFの成果物を利⽤»SerlvetコンテナはTomcat、HTTPサーバはAapche»改変をおこなっているが、その部分の公開義務がない• オープンソースを戦略的に活⽤»もちろんLinuxの成功体験がベース▸LinuxはGPLv2(コード公開義務あり)• Eclipse IDEを2001年11⽉にOSS化8
歴史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▸本体の改変はコード公開義務があるが、プラグインには及ばない▸製品によってライセンスが異なることがあるので確認すること9Eclipse Foundationhttps://www.eclipse.org/
この頃の世情OSSがJavaの進化をリードする• コミュニティからのイノベーション»2005年︓IoC(後のDI)、Spring»2006年︓JBossによる仕様のリード▸JPA(JSP220)︓Hibernateベース、WebBeans(JSR299)︓Seamベース• ⼀⽅、Java SEの仕様と実装の肥⼤化…»J2SE 1.2 (December 8, 1998) : 1524»Java SE 6 (December 11, 2006) : 379310
#jjug_ccc #jjug_ccc_c歴史Harmony事件11
歴史 – Harmony事件1/3Java 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として開始12Apache Harmonyhttp://harmony.apache.org/
歴史 – Harmony事件2/3SunがJava SE本体をOSS化• 2006年11⽉︓SunがJ2SEをOSS化»Hotspot VM+標準クラスライブラリ+ツール▸のちにOpenJDKとなる»直後にJ2MEもOSS化• OSS化を求めるコミュニティに対する答え»ただし、クラスパス例外付きGPLv2▸改変部分のコード公開義務あり»このためHarmony推進派には受け⼊れがたい内容13http://openjdk.java.net/
歴史 – Harmony事件3/3SunがHarmonyを認定しない• 2006年、Apache HarmonyがSunに認定を要求»TCKが規定するJava SEの利⽤⽬的に組み込み系への利⽤制限があったことを理由に認定を拒否• 2007年8⽉︓SunがOSS向けの認定を開始»OpenJDK Community Technology Compatibility Kit License▸テストキット本体はOSSではないが、OSSでも認定を受けられる»ただし、テスト対象はGPLv2準拠に限定→ Harmonyは対象外• Apacheが抗議活動をするなど広く議論がされた14OPEN LETTER TO SUN MICROSYSTEMShttp://apache.org/jcp/sunopenletter.html
#jjug_ccc #jjug_ccc_c歴史Android事件15
歴史 – Android事件 1/2Androidのモチベーション(2005年ごろ)• 携帯OSをOSSを通じて共有化していきたい»キャリアや端末メーカーによる独⾃改変を許容する»Googleとしては多くの⼈がネットワークに接続することが重要なので、OSライセンスの対価は不要だった• 初期はMozillaライセンスを検討»GPLv3/LGPLに近い、改変の⾮公開が可能»当初はJ2ME/JVMのOSS実装という位置づけ16
歴史 – Android事件 2/22008年に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
歴史その後、OpenJDKに集約• 2010年10⽉、IBMがOpenJDKに参加»Harmonyは2011年11⽉に活動停⽌»コミュニティからは⼤きな反対はなかった»2016年にはAndroidもOpenJDKベースに移⾏• Java SEは同⼀のコードベースを共有資産としてメンテナンスしていくことに»Android初期の分断を考えると、これはこれでよかった18http://openjdk.java.net/
#jjug_ccc #jjug_ccc_c歴史Java API訴訟事件19
歴史 – Java API訴訟事件 1/3そして訴訟へ• 2010年8⽉、OracleがGoogleを提訴» 2010年4⽉にOracleによるSun買収が成⽴• 提訴の内容» 特許権侵害 →侵害していないで確定» Javaライブラリの実装コードの無断複製 →著作権侵害で確定▸rangeCheck()の9⾏だけなので賠償⾦額0円» Java APIの著作権侵害 →この部分が継続している▸損害賠償の請求額が約1兆円▸2015年、最⾼裁でAPIに著作権があることが確定済み▸フェアユースか︖が問題20Google対OracleのJava API訴訟。歴史的経緯とIT業界への影響を考える(その1)。JJUGナイトセミナーhttps://www.publickey1.jp/blog/16/googleoraclejava_apiitjjug.html
歴史 – Java API訴訟事件 2/3フェアユースとは• 著作権者の許諾なく著作物を利⽤しても、公正な利⽤と評価されれば、著作権の侵害にあたらない»利⽤の⽬的と性格▸そのものが⾮営利⽬的か︖»著作権のある著作物の性質▸そのものが論⽂や地図などの事実を伝えているだけか︖»著作物全体との関係における利⽤された部分の量及び重要性▸そのものの核⼼部分に触れるものか︖»著作物の潜在的利⽤⼜は価値に対する利⽤の及ぼす影響▸そのものが市場に悪影響を与えるか︖21https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%82%A2%E3%83%A6%E3%83%BC%E3%82%B9
歴史 – Java API訴訟事件 3/3現在までの経緯• JavaAPIに関する経緯»2016年、Oracleの勝利(著作権侵害)→Gが控訴»2018年、Googleの勝利(フェアユース)→Oが控訴»2020年10⽉、最⾼裁の審理がスタート▸数ヶ⽉以内に判決が出る▸Googleは改めて「APIに著作権はない」と主張。不利との⾒⽅が多い• フェアユースが認められないと︖»実装コードに⽐べ、似てしまう可能性が⾮常に⾼い»APIのコピーを禁⽌されると互換製品の提供が困難に22
#jjug_ccc #jjug_ccc_c歴史Java EE Guardians事件23
歴史 – 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との付き合い⽅があまりうまくない24Jakarta EE Ambassadors - Our Historyhttps://jakartaee-ambassadors.io/
歴史Jakarta EE• 2017年、 Eclipse Foundationへ移管してOSS化»IBM、Red hatと話し合って実施»RI、TCK、関連ドキュメントを提供(Oracleは認定も放棄)• 段階的に作業を実施中»javax.* → jakarta.*»Microprofileの取り込み(軽量化、MSA対応)»2020年6⽉、Jakarta EE 9 M1を提供25Jakarta EEhttps://jakarta.ee/
#jjug_ccc #jjug_ccc_c歴史Java有償化︕︖事件26
歴史 – Java有償化︕︖事件 1/2Java 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
歴史 – Java有償化︕︖事件 2/2結果、様々なディストリが提供されることに• 現在は様々なディストリビューションが提供されている»別製品の利⽤を前提にサポートが無償利⽤できるように▸RHEL上であれば無償︓Red Hat OpenJDK▸Azure上であれば無償︓Azul Zulu▸AWS上であれば無償︓Amazon Corretto»詳しくは「OpenJDKソムリエ」で検索▸https://qiita.com/yamadamn/items/2dd26a014791b9557199• なお現時点でも、最も開発に貢献しているのはOracle»OracleはいまだにJavaに投資し続けている28
#jjug_ccc #jjug_ccc_cまとめ29
Java本体 OSS化の流れをまとめると• 当初、Java本体はOSSではなかった»しかし、OSSによるエコシステムの形成に成功した• Java SE本体もOSS化されたがライセンスで意⾒が割れる»AL2.0(改変部分の公開不要) vs GPLv2 (改変部分の公開必要)»結果としてはGPLv2でまとまる»その間、AndroidがAL2.0で突っ⾛ったためJava API訴訟に▸Oracleもアレだけど、Googleの⾏為も相当ダメ• Java EE本体はコミュニティからの声で完全にOSS化30
歴史をまとめると• Javaは当初からオープン性を⼤事にしていた• いまでは当たり前の「OSSベースの製品開発」をリード»⾮競争部分は共有化し、その上で部分で勝負する• 現在のJava本体はGPLv2でOSS化されている»その上のJavaライブラリはAL2.0という使い分け»Java API訴訟の結論はOSSのエコシステムにとって重要• ⾊々あったがJavaは常にコミュニティとともにあった31

Recommended

PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
PDF
JJUG初心者のためのJava/JJUG講座
PDF
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
PDF
アジャイル開発を支えるアーキテクチャ設計とは
PDF
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
PDF
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
PDF
ITトレンドに見る日本のエンタープライズITについて
PDF
エンタプライズ領域のアジャイル開発の課題 - FIT2020
PDF
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
PDF
Javaのカルチャーとグロース - MANABIYA 2018
PDF
要求の変化とマイクロサービスアーキテクチャ
PDF
クラウド鎖国からクラウド維新へ
PDF
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
PDF
SIerとクラウドの付き合い方
PDF
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
PDF
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
PDF
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
PDF
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
PDF
エンタープライズ、アーキテクチャ、アジャイルのこれから
PDF
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
PDF
Javaはコミュニティの力で再び偉大になれるのか
PDF
エナジャイル設立によせて
PDF
クラウドを超えた先の企業システム像 20091008 JJUG CCC
PDF
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
PDF
マイクロサービスとそれを支えるアーキテクチャー
PDF
デブサミ2010 これからのアーキテクチャを見通す
PDF
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
PDF
JDKの選択肢とサーバーサイドでの選び方
PDF
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)

More Related Content

PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
PDF
JJUG初心者のためのJava/JJUG講座
PDF
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
PDF
アジャイル開発を支えるアーキテクチャ設計とは
PDF
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
PDF
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
PDF
ITトレンドに見る日本のエンタープライズITについて
PDF
エンタプライズ領域のアジャイル開発の課題 - FIT2020
マイクロサービスに至る歴史とこれから - XP祭り2021
JJUG初心者のためのJava/JJUG講座
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
アジャイル開発を支えるアーキテクチャ設計とは
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
ITトレンドに見る日本のエンタープライズITについて
エンタプライズ領域のアジャイル開発の課題 - FIT2020

What's hot

PDF
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
PDF
Javaのカルチャーとグロース - MANABIYA 2018
PDF
要求の変化とマイクロサービスアーキテクチャ
PDF
クラウド鎖国からクラウド維新へ
PDF
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
PDF
SIerとクラウドの付き合い方
PDF
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
PDF
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
PDF
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
PDF
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
PDF
エンタープライズ、アーキテクチャ、アジャイルのこれから
PDF
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
PDF
Javaはコミュニティの力で再び偉大になれるのか
PDF
エナジャイル設立によせて
PDF
クラウドを超えた先の企業システム像 20091008 JJUG CCC
PDF
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
PDF
マイクロサービスとそれを支えるアーキテクチャー
PDF
デブサミ2010 これからのアーキテクチャを見通す
PDF
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaのカルチャーとグロース - MANABIYA 2018
要求の変化とマイクロサービスアーキテクチャ
クラウド鎖国からクラウド維新へ
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
SIerとクラウドの付き合い方
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
エンタープライズ、アーキテクチャ、アジャイルのこれから
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
Javaはコミュニティの力で再び偉大になれるのか
エナジャイル設立によせて
クラウドを超えた先の企業システム像 20091008 JJUG CCC
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
マイクロサービスとそれを支えるアーキテクチャー
デブサミ2010 これからのアーキテクチャを見通す
アーキテクチャの発掘に見る要求変化の発見 - 要求開発アライアンス2014年2月定例会

Similar to Javaとコミュニティの歩み 2020

PDF
JDKの選択肢とサーバーサイドでの選び方
PDF
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
PDF
OpenJDK コミュニティに参加してみよう #jjug
PPTX
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
PDF
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
PPTX
Java 20年史 (JJUG CCC 2015 春 基調講演)
PDF
Hello Java
PDF
Spring 18年の歴史
PPTX
福井イベント
PDF
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
PDF
Javaの登場と発展
PDF
Java Community Process(JCP)ミーティング
JDKの選択肢とサーバーサイドでの選び方
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDK コミュニティに参加してみよう #jjug
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
Java 20年史 (JJUG CCC 2015 春 基調講演)
Hello Java
Spring 18年の歴史
福井イベント
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
Javaの登場と発展
Java Community Process(JCP)ミーティング

More from Yusuke Suzuki

PDF
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
PDF
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
PDF
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
PDF
ウォーターフォールとアジャイルを考える #ita_ws
PDF
なぜ「マイクロサービス“化”」が必要なのか
PDF
アーキテクチャのレビューについて - JaSST Review '18
PDF
アジャイルと言わないエンタープライズアジャイル導入 - Agile Japan 2016
PDF
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
PDF
クラウド時代のエンジニアについて #sesfukui
PDF
Javaエンジニアのための"クラウド時代の過ごし方" Java Day Tokyo 2016
PDF
JavaOne 2016総括 #jjug
PDF
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
ウォーターフォールとアジャイルを考える #ita_ws
なぜ「マイクロサービス“化”」が必要なのか
アーキテクチャのレビューについて - JaSST Review '18
アジャイルと言わないエンタープライズアジャイル導入 - Agile Japan 2016
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
クラウド時代のエンジニアについて #sesfukui
Javaエンジニアのための"クラウド時代の過ごし方" Java Day Tokyo 2016
JavaOne 2016総括 #jjug
ユーザー企業へのアジャイル導入四苦八苦 - エンタープライズアジャイル勉強会2016年11月セミナー

Javaとコミュニティの歩み 2020


[8]ページ先頭

©2009-2025 Movatter.jp