初のJakartaOne LivestreamグローバルバーチャルカンファレンスがJakarta EE 8の公式リリースに合わせて開催され、皮切りとして19の1時間セッションが2019年9月10日7:00(EST)から行われた。Jakarta EEとMicroProfileに関連するトピックを取り上げたセッションでは、Java有名人のオールスターキャストによるデモやパネルディスカッションが配信されている。
MicrosoftでJava on Azureのプリンシパプログラムマネージャを務めるReza Rahman氏をチェアマンとするJavartaOneプログラムコミッティには、Java SE/EEフリーランサで著作者のAdam Bien氏、Amazon Web Servicesプリンシパル・オープンソーステクノロジストのArun Gupta氏、Eclipse FoundationのJakarta EEデベロッパアドボケートであるIvar Grimstad氏、Fermilabのアプリケーション開発者兼システムアナリストJosh Juneau氏、Eclipse FoundationのJakarta EEプログラムマネージャであるTanya Obradovic氏らが名を連ねた。
基調講演
5つのセッションに続いて行われた基調講演には、Eclipse FoundationのエグゼクティブディレクタであるMike Milinkovich氏が登壇し、続いてAmazon Web Serviceの著名なエンジニアでJavaの父でもあるJames Gosling氏による5分間のビデオメッセージが紹介された。
"Welcome to the Future of Cloud Native Java"と題されたMilinkovich氏の講演では、Jakarta EE 8のリリースが公式に発表されると同時に、クラウドネイティブJavaの未来がJakarta EEと共にあるという宣言が行われた。今回の新リリースで提供されるのは次のものだ。
- Java EE 8との完全な互換性
- 仕様の公開
- TCKライセンスとプロセスのオープンソース化
- 仕様に準拠した実装
- Java EE 8と同等のプラットフォーム統合要件
- 完全に公開されたブランディングプロセス
Milinkovich氏は 18のメンバ企業と約160人の新しいコミッタによって、44のオープンプロジェクト、53のビルドインスタンス、129のGitHubレポジトリ、約6,150万行のコードが新たにコントリビュートされたことを明らかにした。
さらにJakarta EE 9に関して、Java SE 11のサポート、javax.*
ネームスペースからjakarta.*
への移行、非推奨仕様の削除などが提案された。
Gosling氏は4分間のビデオメッセージで、Java EEをめぐる所有権とルールが変化したことを論じて、次のように語った。
Java EEのガバナンスモデルは長年にわたって非常に厳密なものでしたが、さまざまな点において、それには合理的な理由がありました。しかしながら、それはコミュニティにとっては極めて不合理的なものでした。市場における大手企業にとって都合のよいものだったからです。現在でも多数の大手企業が関わっていますが、以前に比べるとJava EE標準は、製造側と利用側の両方にとってはるかに平等なものになっています。
コミュニティの重要性について、Gosling氏は次のように述べた。
時代は常に変化しているのですから、コミュニティが標準の進化に関わり、進化を導く存在であることは極めて重要です。古いものは再び新しくなり、新しいものは古くなります。すべては移り変わり、進化を続けるのです。今回のリリースによって、進化を導こうとするテーブルには、より多くのパーティが集まっています。これから真の意味で、本当に素晴らしいことが起きると、私は確信しています。
業界基調講演
Tomitribue、IBM、Payara、Oracle、Fujitsuから参加しているJakarta EE運営委員会のメンバが、各社を代表して業界基調講演に登壇した。
最初にTomitribeのCEOであるDavid Blevins氏が、"Apache, JavaEE and Jakarta EE Rebirth"と題して講演した。ApacheがJava EEライセンス契約を所持していた10年(2004-2013)の間には、TomcatやTomEE、OpenWebBeans、Geronimo、OpenJPAといった、さまざまなプロジェクトがローンチされた。その他の成果としては、30の仕様実装、12のプロジェクトによる184のJAR仕様リリース、541のリリースがある。
Apacheのあらゆる場所で長く貢献を続けてきたBlevis氏によれば、Tomitribeは"かつてないほど真にオープンな"企業である。"Tomitribeの継続的インテグレーション、イシュートラッキング、ロードマップ、2004-2013のプライベートは、すべてJavaコミュニティに公開されています。" さらに氏は、TomitribeがTCKテストリソースをJakarta EEを実装するApacheプロジェクトに寄贈し、同社のAmazon EC2セットアップ上にホストする予定であることを発表した。
IBMの著名なエンジニアであるIan Robinson氏は、IBMにとってJava EEが歴史的に重要であったことを説明した。オペレーティング・システムを例外とすれば、21年間にわたって継続しているWebSphereは、他のどのIBMソリューションよりも数多くのインプリメンテーションが運用されているという。
Javaの初期の仕様リーダであったRobinson氏は、Java EEが過去10年間、業界に対して大きな貢献をしたと述べた。Java EEを実装したアプリケーションプラットフォームは、業界がクラウドベースのアプリケーションへの移行を始めた数年前まで、時代の中心として存在していた。Java EEはアプリケーションのクラウド移行について行けなかったのだ、と氏は言う。
さらにRobinson氏は、2年前から開発の続けられているOpen LibertyがJakarrta EE 8準拠の認証を受けたこと、それによってアプリケーションの開発者がJakarta EEとMicroProfile両方のメリットを受けられるようになったことを発表した。
PayaraのCEOであるSteve Millidge氏は、PayaraのJakarta EEとの連携について、同社がMicroProfileやJakarta EE、EE4Jのワーキンググループのメンバとして積極的に活動していることを説明した。Jakarte EEによってPayaraは、オープンソースのTCKにアクセスすることが可能になり、Jakarta EE 8準拠の認証を受けることができた。
プロセスフレンドリな新しいJakarta EEは、Jakarta EEエコシステムへの新たなベンダの参加に大きな役割を果たしている。2016年に創立されたPayaraは、Javaコミュニティでは新参者の部類に入る企業だ。
同社のビジョンはJava EEアプリケーションのコンセプトを変えることにある、とMillidge氏は説明する。
当社の目標は、人々の考えるアプリケーションのあり方を作り変えて、モニタリングやスケーラビリティ、スレッド管理など、マネージドランタイムが実行可能なすべてを提供するためにマネージドランタイムを活用できるようにすること、それをさまざまなアーキテクチャ上で実行可能にすることにあります。それにより、当社のプロダクトをさまざまなアーキテクチャにおいて最適なものとして、開発者がJakarta EE APIに集中できるようにするのです。
まもなく登場するPayara Server 5.193マイナリリースについて、氏は、Jakarta EE 8準拠になる予定であることを発表した。
OracleでWebLogic Server Product Managementを担当するシニアディレクタのWill Lyons氏は、Jakarta EE 8のリリースが実現した背景として、過去2年にわたるJavaコミュニティの努力、特にEclipse FoundationとJakarta EEの主要メンバによる貢献があったという認識を示した。OraclenのJakarta EEへのコミットについて、氏は次のように述べている。
Java EEテクノロジとコミュニティのスポンサーシップによる、柔軟性、公開性、互換性を備えた新たなブランドとプロセスの創造は、当社がかつてより意図したものであり、当社はそのすべてに参画してきました。今私たちの手には、オープンなプロセス、互換性を備えたアプリケーションセット、この活動をさらに進めるためのプロセスがあります。
OracleからEclipse Foundationへの技術移転には2年を要したが、今後のプロセスに2年を必要とすることはない、とLyons氏は主張した。
今後Oracleは、HelidonでJakarta EEを採用する他、次期バージョンのWebLogicでのJakarta EE対応、クラウドネイティブインフラストラクチャのサポートを予定している。
FujitsuでJava開発を担当するシニアプロフェッショナルエンジニアのKenji Kazumura氏は、1996年以来続いているFujitsuのJavaとの関連についての総括的な概要を説明した。同社のフラッグシッププロダクトであるInterstage Application Serverは、1999年に登場して以来、最新のバージョン12リリースまで継続している。
Fujitsuは2017年にMicroProfileのイニシアティブに参加し、同社のMicroProfile実装であるLauncherをリリースしている。
注目されたプレゼンテーション
IBMでWebSphereのMicroProfileおよびJavca EE(EE4J)アーキテクトを務めるKevin Sutter氏による、"Jakarta EE for DummEEs"
Sutter氏のプレゼンテーションでは、Jakarta EEの簡単な歴史、仕様の概要、API、TCK、互換実装、Jakarta EEの今後が紹介された。
新しいEclipse Foundatuon Specification Process(EFSP)とJava Community Process(JCP)の重要な点の比較として氏は、下記のような図を示し、EFSPがよりプロセスフレンドリであることを説明してみせた。
自己認証(self-certification)仕様プロセスでは、仕様の作成の他、対応するjavadoc、TCKを使用したテスト環境、仕様が実装可能であることの証明を目的とした仕様準拠実装を提供する必要がある。
Shutter氏は、Open LibertyがJakarta EE 8準拠の認証を受けたことを発表した。レビューを目的としたTCKの実施結果がJavaコミュニティに公開されている。
Fermilabのアプリケーション開発者/システムアナリストのJosh Juneau氏による、"Jakarta EE 8 — An Overview of Features"
氏のプレゼンテーションでは、Java EE/Jakarte EEの歴史、Jakarta EE仕様の概要、Jakarta EEの将来的な展望について紹介された。
現在はJakarta EEワーキンググループの管理下にあるJakarta EEには、現時点で27の仕様が存在する。Juneau氏は各仕様を紹介し、"Jakarta Contexts & Dependency Injection"、"Jakarta JSON Binding"、"Jakatrta JSON Processing"など、大幅に更新された仕様のいくつかを詳しく説明した。
各仕様には、Jakarta EEブランドを反映すると同時に、Oracleのブランディング要件を充足するような名称変更も行われている。例えば、"Java EE Context & Depemndency Injection"は"Jakartra Context & Depemndency Injection"に、"Java EE JSON Binding"は"Jakarta JSON Binding"になった。
Jakarta EEを始める方法として、Juneau氏はいくつかの方法を紹介した。具体的には、
- GlassFishのダウンロード
- Jakarta EE仕様の導入
- 実装例のレビュー「
Eclipse FoundationのJakarta EE開発者であるIvar Grimstad氏による、"Building Interoperable Microservices with Eclipse MicroProfile"
Grimstad氏のプレゼンテーションはMicroProfileの簡単な歴史から始まり、続いてMicroProfileアプリケーションの開発方法の紹介が行われた。特に、氏がデモをしたMicroProfile Starter projectでは、MicroProfileバージョン、Javaバージョン、Open LibertyやPayaraなどのランタイムといった入力に従って、アプリケーションを生成することが可能である。
3つのオリジナルMicroProfile API(CDI, JAX-RS, and JSON-P)は、それぞれのJSRをベースとしている。その他のMicroProfile API(JSON-Bの拡張子がある)はJavaコミュニティの開発によるもので、広く認知されたマイクロサービスデザインパターンに基づいている。Grimstad氏はMetricsやConfig、Health Check、JWT Propagarion、Open Tracking、Fault Toleranceといった、一連のAPIの実装をデモした。
Java SE/EEフリーランスで著作者のAdam Bien氏による、"Live Coding with Jakarta EE and MicroProfile: #slideless"
#slideless
というサブタイトルが示すように、Brian氏のプレゼンテーションは1時間すべてがライブコーディングだった。プレゼンテーションは、Mavenのarchetype:generate
プラグインを使って生成した単純なアプリケーションから始まり、その上に、さまざまなMicroProfileおよびJakarta EE APIを実装することでアプリケーションを構築した。
プロジェクトのソースコード変更の監視には、氏自身のWatch and Deployユーティリティが使用された。コードを変更すると、PayaraやWildFlyなど、事前に定義されたJavaランタイム用のビルドとデプロイが起動される、というものだ。.wadrc
ファイルに複数のランタイムを定義することもできる。例えば、
${LIBERTY_HOME}/usr/servers/defaultServer/dropins
${WILDFLY_HOME}/standalone/deployments
${PAYARA_HOME}/glassfish/domains/domain1/autodeploy
${TOMEE_HOME}/webapps
このユーティリティは今回のデモのためにローンチされたもので、氏は折に触れてファイルサイズや、生成されたWARファイルのデプロイされる様子を紹介してみせていた。
Nabenik創業者のVictor Orozco氏による、"Kotlin+Jakarta EE+MicroProfile: Teaching 20 Year Old Tricks to a New Language"
このプレゼンテーションでは、マイクロサービスアプリケーション開発におけるJavaの代替としてのKotlinの有用性が紹介された。JavaフレームワークとMicroProfileについて簡単に説明した後、Orozco氏は、 このプレゼンテーションで取り上げるクラウドネイティブの12の要素(The 12 Factor-App)を紹介し、KotlinとJakarta EE、MicroProfileを使用したデモアプリケーションのレビューとして、初期化セットアップ、ソースコード、テストについて、Kotlinのソースコードを中心に説明した。
その中でOrozco氏は、Kotlinへの移行によるメリットとデメリットを論じた。メリットとしては、簡潔なコード表記、Javaとの相互運用性、Android新参開発者へのバックエンドの開放、アプリケーション開発者に対する新たな"フルスタック"アプローチなどが挙げられた。デメリットとしては、学習曲線が急勾配であること、コンパイルの遅さ、スレッド管理vsコルーチン、KotlinをサポートするIntelliJ IDEAエディションが必要であること、などが指摘された。
編集後記
今後、何人かのInfoQ編集者がそれぞれの部分を担当して、19時間にわたるカンファレンスの全体について報告する予定である。