2年目を迎えたJakartaOne Livestream仮想カンファレンスが、Jakarta EE 9とMicroProfile 4.0のリリースに合わせて2020年12月8日に開催され、午前6:00(東部標準時刻)から始まる12の1時間セッションによって幕を開けた。Jakarta EEとMircoProfile関連の話題に注目したセッションでは、基調講演、45分間のテクニカルセッション、15分間のJakarta EEテーマセッション、Java関連の著名人によるパネルディスカッションなどが行われた。
今年のカンファレンスには、長期に渡るガンとの闘いの末、昨年に亡くなったBill Shannon氏に対する感謝の意も含まれており、Oracleのシニアソフトウェア開発マネージャであるEd Bratt氏が、Shannon氏の個人的な生活と、OracleのアーキテクトおよびSun Microsystemsの技術理事(distinguished engineer)としての38年にわたる開発者生活について紹介していた。
Jakarta One Livestream 2020プログラム委員会には、OracleのEnterprise Cloud Native Java Product ManagementのシニアディレクタであるWill Lyons氏、MEKOSのソフトウェアエンジニアのRabea Gransberger氏、VIDA Softwareの共同創業者兼シニアプログラマのIvan Ivanov氏、石油化学研究機関のシニアリサーチテクニシャンでInfoQのJava QueueニュースのシニアエディタでもあるMichael Redlich氏、EclipseのJakarta EEデベロッパアドボケートIvar Grimstad氏、Eclipse FoundationでJakarta EEプログラムマネージャを務めるTanja Obradovic氏らが名を連ねている。
開会基調講演
開会基調講演には、Eclipse FoundationのエグゼクティブディレクタであるMike Milinkovich氏が登壇した。
Millinkovich氏は"Enabling Future Innovation in Cloud-Native Java"と題して講演し、Jakarta EE 9のリリースを正式に発表した。その中で氏は、Jakarta EEのリリースに必要な3つの要素を紹介した。すなわち、Jakarta EE Specification Processで定義されたオープンな仕様、プロダクトのJakarta EE準拠を認証するオープンソースのTCKプロセス、そして、少なくとも1件の互換実装(compatible implementation)である。現時点では、GlassFishがJakarta EE 9の唯一の互換実装となっている。
Millonkovich氏の言うように、"ビッグニュースは'ビッグバン'"、すなわち、javax
からjakarta
ネームスペースへの移行が完了したことだ。これはクラウドネイティブJavaにおいて、今後のイノベーションの基礎となる重要なマイルストンである。Jakarta 9のその他の機能やメリットとしては、新規ベンダや実装がJakarta EEとの互換性達成するための参入バリアが低下したこと、jakarta
ネームスペースへのマイグレーションが容易になったこと、などが挙げられる。
Jakarta EE 9.1ではJDK 11がサポートされる他、CDIのアドバンテージのさらなる活用、Java SEイノベーションの活用、さらに移植性とベンダ中立性への取り組みの成果も含まれる予定である。
業界基調講演
Oracle、Payara、Tomitribe、IBM、Fujitsu、IBMからなるJakarta EE運営委員会(steering committee)のメンバが業界基調講演に登壇した。
OracleでWebLogicサーバのプロダクトマネージャを務める、シニアディレクタのWill Lyons氏は、Jakarta EEを活用するベンダやエンドユーザ、カスタマに対してOracleが提供することのできる、クラウドネイティブなサービスについて論じた。氏が紹介したOracle Enterprise Cloud Native Javaは、Java EE 8コンパチブルなWebLogicサーバ、Coherence、Helidon、そして新製品のVerrazzanoからなるプロダクトラインである。
PayaraのCEOであるSteve Millidge氏は、クラウド、コンテナ、DevOps、IoT、Jakarta EE、MicroProfileのサポートによるJakarta EEの現代化について論じ、アプリケーションのクラウドへのデプロイメントを容易にする新プロダクトのPayara Cloudを紹介した。Payaraは、2021年前半でJakarta EE 9をサポートして、MicroProfile Working Groupに参加する予定である。
TomtribeのCEOであるDavid Blevins氏はApache TomEE、Collaborations、Call-to-Actionについてのプレゼンテーションを行い、Javarta EE 8およびJakarta EE 9それぞれと互換性を持つ実装であるTomEE 8とTomEE 9の最新情報を紹介した。両バージョンのTomEEでただひとつのコードベースを使用して、現時点で約98パーセントのTCKをパスしている。Eclipse Transformerと自社開発のTomEE Patch Pluginを使用することで、Tomtribeでは、jakarta
ネームスペースへの移行を支援するだけでなく、後方互換性を持ったjavax
ネームスペースをTomEE 10で提供する計画である。
TomtribeはSonatypeとのコラボレーションを通じて、Maven Centralからjavax
ネームスペースを含むすべてのアーティファクトを検索するとともに、jakarta
ネームスペースをサポートする初のクラウドプロダクトであるjelasticともコラボレーションを形成している。先日Jakarta EE Working Groupに参加したjelasticは、MicroProfile Working Groupの創設メンバのひとつでもある。
Blevins氏のJavaコミュニティへの call-to-action(行動喚起)の中では、Maven Centralにあるアーティファクトの50パーセントがjavax
からjakarta
へのネームスペース変更の影響を受けることから、このネームスペース変更はEEプラットフォームのユーザだけでなく、すべての開発者に影響するものであるという理解が重要だ、と強調されている。
FujitsuのYuichi Kusano氏は、Fujitsu Cloud Native Java Strategyについて発表し、JCP Executive Committeeでの活動、2017年のMicroProfile参加、2018年に運営、仕様、マーケティングの各委員会の戦略メンバとしてJakarta EEへの参加など、Fujitsuの25年にわたるJavaの歴史について説明した。
FujitsuのプロダクトラインにはJava EE 7互換のInterstage Application Serverがあるが、Kusano氏はさらに、Jakarta EE 8、OpenJDK、MicroProfile 3.0をサポートする、Jakarta EE 8互換のFujitsu Software Enterprise Application Server 1.0を紹介した。
IBMでOpen LibertyのリードアーキテクトとWebSphereのチーフアーキテクトを務めるAlasdair Nottingham氏は、クラウドネイティブなJavaマイクロサービス開発のためのライトウェイトなオープンソースフレームワークであるOpen Libertyを中心とした、IBMのJakarta EE 9開発について説明した。Open Libertyはモジュラアーキテクチャを採用しており、Java EE 7、Java EE 8、Jakarta EE 8、MicroProfile 3.3をサポートする。現在はJakarta EE 8互換であり、Jakarta EE 9には約98パーセント準拠している。
注目されたプレゼンテーション
Jakarta EE and MicroProfile: #slideless、Adam Bien (Java SE/EEフリーランサ、著作者)
タイトルの#slideless
が示唆するように、Bien氏のプレゼンテーションは、Jakarta EE 9の仕様とMicroProfile 4.0のAPIを説明する数枚のスライド以外は、すべてライブコーディングで占められていた。カスタムスクリプトでラップしたMavenのarchetype:generate
プラグインで生成した単純なアプリケーションをスタートとして、Bien氏は、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
Testing Jakarta Microservices with Efficiency & Joy、Sebastian Daschner (IBM、リードJava開発者アドボケート)
Daschner氏は、自身のコーヒーショップアプリケーションを使って、マイクロサービスを効率的にテストする方法のデモを行った。このアプリにはユーザとコーヒーショップ、データベース、バリスタとの非同期通信が関連する。
アプリケーションが期待通り動作することを手作業でテストするのは、テスト方法としては効率的ではない。変更が発生する度に手作業のテストを繰り返さなければならないからだ。
マニュアルテストのプロセスを自動化する一般的な手段であるユニットテストは有用だが、開発者はテスト対象を本当に理解しているのだろうか、とDaschner氏は疑問を呈する。ユニットテストにおける大きな課題は、現実的なテストシナリオ、コミュニケーション、オーダの表現方法に対して、テストメソッドが過大に、関心事が過多になる傾向のあることだ。同時抽象化レイヤがあまりにも多く存在することの結果として、一見しただけではテスト対象が何であるのか理解できなかったり、別のシナリオのテストで同じようなユニットテストが作られる可能性が生じたりする。
重要なのは関心事を分離することと、漏れのある抽象化を排除することだ。効率よく楽しくテストするためには、Daschner氏が説明しているように、システムのライフサイクルとは切り離されたライフサイクルを持ったシステムテスト環境を作る必要がある。
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile、Ed Burns (Microsoft、Java on Azureプリンシパルアーキテクト)、Emily Jiang (IBM、Libertyマイクロサービスアーキテクト兼アドボケート)
Burns氏とJiang氏は2人の開発者 — Spring開発者とMicroProfile開発者 — を演じて、PiggyMetrics Spring BootアプリケーションをMicroProfileに移行する方法をデモしてみせた。PiggyMetrisアプリケーションを紹介し、その動作を見せた後、Burns氏はこのアプリケーションの不満な点を説明した — インターフェースと実装が分離していないことと、ベンダへのロックインだ。
Jiang氏は最初にMicroProfileとSpring APIの包括的な並置状態を実現し、その上でOpen Liberty上にデプロイするMicroProfileへとアプリケーションを移行させた。
このセッションで重要なのは、次のようなことだ。まず、開発者が自分に合ったものを選ぶべきであること。次に、企業や実運用に対応した、イノベーションとフレキシビリティを備えたプラットフォームを企業が提供すべきであるということ。MicroProfileとSpringが開発者による次世代クラウドアプリケーションに必要な機能を提供するということ。さらには、MicroProfileとSpringには共通点も差異もあるということだ。Open LibertyはMicroProfileとSpringの両方をサポートする。
Studio Jakarta EEセッション
45分間の各セッションの後にはGrimstad氏とObradovic氏が登壇し、短いデモとインタビューで構成された15分間のStudio-Jakartaミニセッションを行った。
ショートデモでは、Jakarta MVC 2.0の技術概要、javaxからjakarta
へのネームスペース変更、Jakarta EEへのコントリビューションの方法などが紹介された。
インタビューでは、JakartaOne Livestream 2020プログラム委員会による、プログラム委員会への個人参加に関する議論、独立系コンサルタントのArjan Tijms氏による、Jakarta EE 9およびjavax
ネームスペース変更への"ビッグバン"アプローチに関する議論とクラウド対応コンテナとアドオン/インテグレーションモジュールを提供する新プロジェクトPiranha、Oracleのシニアソフトウェア開発マネージャEd Bratt氏からBill Shannon氏への謝辞、VMwarでSpring Frameworkプロジェクトのリーダを務めるJuergen Hoeller氏による、javax
ネームスペースがSpring APIに与える影響に関する議論、Creative Arts & Technologiesの創業者兼ディレクタであるWerner Keil氏による、Jakarta EE 9仕様とJakarta EE Working Groupへの参加に関する議論、Pathwayz Groupの創業者であるAmber Vanderburg氏による、"The Power of Performance Feedback"と題されたライトニングトーク、などが行われた。
Grimstad、Obradovic両氏はさらに、最もアクティブなJakarta EEコントリビュータとコミッタとして、新規Jakarta EE仕様コントリビュータ、Jakarta EE仕様コントリビュータ、Eclipse GlassFishコントリビュータ、Jakarta EE TCKコントリビュータの各カテゴリにおけるトップ10を表彰した。
JakartaOne Livestream 2020カンファレンスのすべてのセッションは、こちらのWebサイトで再視聴することができる。
編集者注記
Michael Redlich氏は、JakartaOne Livestream2020運営委員会の委員を務めていた。