Slide 1

Slide 1 text

Java on Azure Day 2023 OpenAI など最新技術でここまでできる!Java 開発/運用の今と未来 クラウドネイティブJava技術 Jakarta EE & MicroProfile ディープダイブ 数村憲治 1

Slide 2

Slide 2 text

自己紹介 © 2023 Fujitsu Limited Jakarta EE 仕様策定委員 MicroProfile ステコミ委員 JCP Executive Committee メンバー Eclipse Foundation ボードディレクター EclipseCon、JakartaOne、JJUGなどで登壇 @kkzr 2

Slide 3

Slide 3 text

アジェンダ © 2023 Fujitsu Limited クラウドネイティブJava (CN4J) Jakarta EE 11 MicroProfile 7 3

Slide 4

Slide 4 text

免責事項 © 2023 Fujitsu Limited 本セッションには、未確定の内容が含まれています。 Eclipse Foundation内のJakarta EE / MicroProfileワーキンググループや、 Jakarta EE / MicroProfile コミュニティ内で議論されている内容は、 今後、変更される可能性があります。 ー 4

Slide 5

Slide 5 text

アジェンダ © 2023 Fujitsu Limited クラウドネイティブJava (CN4J) Jakarta EE 11 MicroProfile 7 5

Slide 6

Slide 6 text

Java EEからJakarta EEへ © 2023 Fujitsu Limited リリース間隔 J2EE1.2 J2EE1.3 JavaEE5 JavaEE6 JavaEE7 JavaEE8 JCP設立 Jakarta EE 8 Jakarta EE ワーキンググループ設立 (Eclipse Foundation) Java EE技術の移管 Jakarta EE 9.1 Jakarta EE 9 Jakarta EE 10 J2EE1.4 1995 2000 2015 2005 2010 2020 2019 6

Slide 7

Slide 7 text

Javaトレンド © 2023 Fujitsu Limited https://www.infoq.com/articles/java-jvm-trends-2022/ 7

Slide 8

Slide 8 text

DEVIES アワード 2023 受賞 © 2023 Fujitsu Limited https://www.developerweek.com/awards/ プログラミング & フレームワーク部門 8

Slide 9

Slide 9 text

Java業界リーダーによるバックアップ © 2023 Fujitsu Limited Strategic Members Participating Members Enterprise Members Guest Members 9

Slide 10

Slide 10 text

Jakarta EE CI (互換実装) © 2023 Fujitsu Limited https://jakarta.ee/compatibility/ 10

Slide 11

Slide 11 text

JakartaEE 互換製品の増加 © 2023 Fujitsu Limited ■Jakarta EE 10 ■Jakarta EE 9.1 ■Jakarta EE 9 ■Jakarta EE 8 11

Slide 12

Slide 12 text

Jakarta CDI Lite, Jakarta EE Core Profile, セキュリティ強化 Java SE 11, 複数実装が リリース時のCIに jakarta 名前空間, Java SE 8 deprecate仕様 javax 名前空間, 新しいプロセス、 新しいライセンス、新しいロゴ Eclipse Foundation からEclipse GlassFishのリリース JCPからのリリース Jakarta EEのリリース © 2023 Fujitsu Limited 2022年9月リリース Sources, TCKs, Docs Java SE 21 2024年1Q? Jakarta EE 9.1 Jakarta EE 11 Jakarta EE 10 Java EE 8 Java EE 8 Jakarta EE 8 Jakarta EE 9 12

Slide 13

Slide 13 text

Debugging Support 2.0 Enterprise Beans Lite 4.0 Managed Beans 2.0 Transactions 2.0 Bean Validation 3.0 Concurrency 3.0 CDI 4.0 Expression Language 5.0 Faces 4.0 Security 3.0 Servlet 6.0 Standard Tag Libraries 3.0 Server Pages 3.1 WebSocket 2.1 Authentication 3.0 Persistence 3.1 Jakarta EE 10 Web Profile JSON Binding 3.0 Annotations 2.1 Interceptors 2.1 Dependency Injection 2.0 CDI Lite 4.0 Authorization 3.0 Activation 2.1 Batch 2.1 Connectors 2.1 Messaging 3.1 Enterprise Beans 4.0 Mail 2.1 Restful Web Services 3.1 JSON Processing 2.1 改版 非更新 新規 Jakarta EE 10 Core Profile Jakarta EE 10 Platform © 2023 Fujitsu Limited 13

Slide 14

Slide 14 text

20以上のコンポーネント 仕様の更新によりクラウド ネイティブアプリケーショ ンの作成が容易に Java SE 11対応(実装に よっては、Java SE 17も 利用可能)し、JPMS利用に よる恩恵も たくさんのアノテーション が追加され、各APIを合わ せたアプリケーション開発 が容易に JPMSにより、モジュール 化したアプリケーションの 作成が容易に セキュリティ要件を満たし、 高い互換性を提供 簡単な開発 「Core Profile」の新設 マイクロサービス開発に 適した軽量ランタイムを ターゲット 新仕様「CDI-Lite」 軽量化 軽量化 Jakarta EE 10 特徴 © 2023 Fujitsu Limited 軽量化 モダナイゼーション 14

Slide 15

Slide 15 text

Jakarta EE 10 テーマ © 2023 Fujitsu Limited ⚫ Jakarta Concurrencyにおける @Asynchronous の利用 ⚫ Jakarta BatchでのCDIサポートを改善 Java SE技術への対応 ⚫ Jakarta ConcurrencyにおけるCompletionStage、 ForkJoinPoolなど並列ストリームの利用 ⚫ Jakarta RESTfull Web Services におけるBootstrap API 標準技術とのギャップ解消 ⚫ Jakarta SecurityにおけるOpenID Connect ⚫ Jakarta PersistenceにおけるUUIDサポート ⚫ Core Profile 互換技術の整理 ⚫ EJB Entity Beans、embeddable EJB Containerなど CDIへの対応 15

Slide 16

Slide 16 text

Jakarta EE 10 の Java SE レベル © 2023 Fujitsu Limited Java SE 8では動かない API ソースレベル Java SE 11 API バイナリレベル Java SE 11 TCK 走行 Java SE 11+ 16

Slide 17

Slide 17 text

パッケージ名変更 (Jakarta EE 9) © 2023 Fujitsu Limited APIパッケージ名のトップレベルをjavaxからjakartaに変更 javax.servlet.Servlet jakarta.servlet.Servlet Jakarta EEが進化していくためのステップ 例 17

Slide 18

Slide 18 text

影響あるパッケージ(抜粋) © 2023 Fujitsu Limited https://gist.github.com/dblevins/9a6d4b1c90986a4116dd738c9e5ef212 完全リストはこちら javax.activation JavaBeansTM Activation Framework javax.annotation Common Annotations for the Java Platform javax.batch Batch Applications for the Java Platform javax.decorator Contexts and Dependency Injection for Java javax.ejb Enterprise JavaBeans javax.el Expression Language javax.enterprise Contexts and Dependency Injection for Java javax.enterprise.co ncurrent Concurrency Utilities for Java EE javax.faces JavaServer Faces javax.inject Dependency Injection for Java javax.interceptor Interceptors javax.jms Java Message Service javax.json Java API for JSON Processing javax.json.bind Java API for JSON Binding javax.jws Implementing Enterprise Web Services javax.mail JavaMail javax.persistence Java Persistence API javax.resource Java EE Connector Architecture javax.security.auth. message Java Authentication Service Provider Interface for Containers (JASPIC) javax.security.enter prise Java EE Security API javax.security.jacc Java Authorization Contract for Containers (JACC) javax.servlet Java Servlet javax.servlet.jsp JavaServer Pages javax.servlet.jsp.jstl Standard Tag Library for JavaServer Pages (JSTL) javax.transaction Java Transaction API (JTA) javax.validation Bean Validation javax.websocket Java API for WebSocket javax.ws.rs Java API for RESTful Web Services (JAX-RS) javax.xml.bind Java Architecture for XML Binding (JAXB) javax.xml.soap SOAP with Attachments API for Java (SAAJ) javax.xml.ws Java API for XML-Based Web Services (JAX- WS) 18

Slide 19

Slide 19 text

パッケージ名変換ツール © 2023 Fujitsu Limited https://github.com/eclipse/transformer Eclipse Transformer Apache Tomcat migration tool for Jakarta EE https://github.com/apache/tomcat-jakartaee-migration 19

Slide 20

Slide 20 text

デモ-Eclipse Transformer © 2023 Fujitsu Limited Jakarta EE 8アプリケーションをJakarta EE 10コンテナで動かす •maven-pluginによるクラスファイル変換 •CLIによるソースファイル変換 Java EE 7 Jakarta EE 8 (Jakarta EE 9) Jakarta EE 10 20

Slide 21

Slide 21 text

MicroProfileとは © 2023 Fujitsu Limited 企業向けマイクロサービスに最適なJavaの仕様 Java EE/Jakarta EE技術者のスキルを活かした マイクロサービスアプリケーションの開発が可能 マイクロサービス機能重視 タイムボックスリリース 21

Slide 22

Slide 22 text

コーポレートメンバー © 2023 Fujitsu Limited 22

Slide 23

Slide 23 text

MicroProfileリリース © 2023 Fujitsu Limited 2017 2018 2019 2020 2021 MicroProfile 1.0 (2016/2) Jax-RS 2.0//Java EE 7 CDI 1.2//Java EE 7 JSON-P 1.0//Java EE 7 MicroProfile 1.1 (2017/8) microProfile-1.0 Config 1.0 MicroProfile 1.2 (2017/9) MicroProfile-1.1 Config 1.1 Fault Tolerance 1.0 Health 1.0 Metrics 1.0 JWT 1.0 MicroProfile 1.3 (2017/12) MicroProfile 1.2 Config 1.2 Metrics 1.1 OpenApi 1.0 OpenTracing 1.0 RestClient 1.0 MicroProfile 1.4 (2018/6) MicroProfile 1.3 Config 1.3 Fault Tolerance 1.1 JWT 1.1 OpenTracing-1.1 Rest Client-1.1 MicroProfile 2.0.1 (2018/7) Jax-RS 2.1//Java EE 8 CDI 2.0//Java EE 8 JSON-P 1.1//Java EE 8 JSON-B 1.0//Java EE 8 MicroProfile 2.1 (2018/10) MicroProfile 2.0 OpenTracing 1.2 MicroProfile 3.0 (2019/6) MicroProfile 2.2 (2019/2) Fault Tolerance 2.0 OpenAPI 1.1 OpenTracing 1.3 Rest Client 1.2 MicroProfile 2.0 Metrics 2.0 Health Check 2.0 Rest Client 1.3 MicroProfile 3.2 (2019/11) MicroProfile 3.0 Metrics 2.2 Health Check 2.1 MicroProfile 3.3 (2020/2) MicroProfile 3.2 Config 1.4 Metrics 2.3 Fault Tolerance 2.1 Health 2.2 Rest Client 1.4 MicroProfile 4.0 (2020/12) Config 3.0 Metrics 3.0 Fault Tolerance 3.0 Health 3.0 Rest Client 2.0 OpenAPI 2.0 OpenTracing 2.0 JWT Auth 1.2 CDI 2.0.2 //Jakarta EE8 JAX-RS 2.1.6//Jakarta EE8 JSON-P 1.1.6//Jakarta EE8 JSON-B 1.0.2//Jakarta EE8 MicroProfile 5.0 (2021/12) MicroProfile 6.0 (2022) Config 3.0 Metrics 4.0 Fault Tolerance 4.0 Health 4.0 Rest Client 3.0 OpenAPI 3.0 OpenTracing 3.0 JWT Auth 2.0 Jakarta CDI 3.0 //Jakarta EE 9.1 Jakarta RESTfull Web Services //Jakarta EE 9.1 Jakarta JSON-P //Jakarta EE 9.1 Jakarta JSON-B 2.0//Jakarta EE 9.1 Jakarta Annotations 2.0 // Jakarta EE 9.1 Config 3.0 Metrics 5.0 Fault Tolerance 4.0 Health 4.0 Rest Client 3.0 OpenAPI 3.1 Telmetry 1.0 JWT Auth 2.1 Jakarta EE 10 Core Profile MicroProfile 4.1 (2021/7) MicroProfile 4.0 Health 3.1 Jakarta Annotations 1.3 2022 MicroProfile ワーキンググループ設立 (2020/10) 2023 23

Slide 24

Slide 24 text

MicroProfile 5.0 (2021年12月リリース) © 2023 Fujitsu Limited MicroProfile 5.0 Config 3.0 Fault Tolerance 4.0 JWT Authentication 2.0 Health 4.0 Metrics 4.0 Open Tracing 3.0 Open API 3.0 Rest Client 3.0 スタンドアロン Context Propagation 1.3 Reactive Streams Operators 2.0 アンブレラ外 Reactive Messaging 2.0 GraphQL 1.1 LRA 1.0 Jakarta Annotations 2.0 Jakarta JAX-RS 3.0 Jakarta JSON-P 2.0 Jakarta CDI 3.0 Jakarta JSON-B 2.0 Jakarta EE 24

Slide 25

Slide 25 text

MicroProfile 6.0 リリース © 2023 Fujitsu Limited 2022年12月22日にリリース このリリースで提供されるもの 4つのMicroProfileコンポーネント仕様 (Telemetry、 Metrics、JWT、OpenAPI)の更新と、 Jakarta EE 10 Core Profileへの対応 https://github.com/eclipse/microprofile/releases/tag/6.0 25

Slide 26

Slide 26 text

MicroProfile 6.0 Jakarta EE スタンドアロン MicroProfile 6.0 (2022年12月リリース) © 2023 Fujitsu Limited Jakarta EE 10 Core Profile Config 3.0 Fault Tolerance 4.0 JWT Authentication 2.1 Health 4.0 Metrics 5.0 Open Tracing 3.0 Open API 3.1 :更新 :最新リリースからの更新なし :新規 Rest Client 3.0 Context Propagation 1.3 Reactive Streams Operators 3.0 Reactive Messaging 3.0 GraphQL 2.0 LRA 2.0 Telemetry 1.0 アンブレラ外 26

Slide 27

Slide 27 text

MicroProfile Config 3.0 © 2023 Fujitsu Limited アプリケーションの設定のための、簡単に使えて柔軟なシステムを提供 Jakarta EE 10 Core ProfileまたはJakarta EE 9.1 で動作するためのTCKの更新のみ 27

Slide 28

Slide 28 text

MicroProfile Fault Tolerance 4.0 © 2023 Fujitsu Limited 回復力のあるアプリケーションをビルドするための、簡単に使えて柔軟 なAPIを定義 Jakarta EE 10 Core ProfileまたはJakarta EE 9.1 で動作するためのTCKの更新のみ 28

Slide 29

Slide 29 text

MicroProfile Health 4.0 © 2023 Fujitsu Limited MicroProfileランタイムの稼働状態を動作しているプラットフォームに 公開 Jakarta EE 10 Core ProfileまたはJakarta EE 9.1 で動作するためのTCKの更新のみ 29

Slide 30

Slide 30 text

MicroProfile JWT Authentication 2.1 © 2023 Fujitsu Limited マイクロサービスエンドポイントのロールベースアクセス制御(RBAC)に OpenID Connect(OIDC) ベースの JSON Web Tokens (JWT)を使用 Jakarta EE 9 の依存関係を使用するように更新 仕様のリリース 変更点 https://github.com/eclipse/microprofile-jwt-auth/releases/tag/2.1 https://download.eclipse.org/microprofile/microprofile-jwt-auth- 2.1/microprofile-jwt-auth-spec-2.1.html#release_notes_21 30

Slide 31

Slide 31 text

MicroProfile Metrics 5.0 © 2023 Fujitsu Limited カスタムのアプリケーションメトリクスを定義、標準フォーマットを使用した 標準エンドポイント上でプラットフォームメトリクスを公開 多次元のメトリクスをサポート アプリケーションメトリクスのカスタムスコープへのグループ化が 可能となり、これらのスコープによるメトリクスの問い合わせが 可能に 後方互換性のない変更 仕様の リリース 変更点 https://download.eclipse.org/microprofile/microprofile-metrics-5.0.0/microprofile- metrics-spec-5.0.0.html#_breaking_changes https://github.com/eclipse/microprofile-metrics/releases/tag/5.0.0 https://download.eclipse.org/microprofile/microprofile-metrics-5.0.0/microprofile-metrics-spec- 5.0.0.html#release_notes_5_0 31

Slide 32

Slide 32 text

MicroProfile Telemetry 1.0 © 2023 Fujitsu Limited サービス境界間のリクエストの流れをトレース 自動トレーシング、手動トレーシング、エージェントによる 計測をサポート CDI との統合が提供されており、Tracer、Span、 Baggage の注入が可能 新しい仕様のリリース https://github.com/eclipse/microprofile-telemetry/releases/tag/1.0 32

Slide 33

Slide 33 text

MicroProfile OpenAPI 3.1 © 2023 Fujitsu Limited アプリケーションから OpenAPI v3 ドキュメントを直接生成する Java インターフェイスとプログラミングモデルを提供 仕様の リリース (変更点) https://github.com/eclipse/microprofile-open-api/releases/tag/3.1 https://download.eclipse.org/microprofile/microprofile-open-api-3.1/microprofile- openapi-spec-3.1.html#release_notes_31 33

Slide 34

Slide 34 text

MicroProfile Rest Client 3.0 © 2023 Fujitsu Limited Java インターフェイスで定義される型安全なRESTクライアント 潜在のCVEを修正する更新 仕様の リリース https://github.com/eclipse/microprofile-rest-client/releases/tag/3.0.1 34

Slide 35

Slide 35 text

MicroProfile リアクティブ仕様 © 2023 Fujitsu Limited MicroProfile Reactive Streams Operators 3.0 https://github.com/eclipse/microprofile-reactive-streams-operators/releases/tag/3.0 リアクティブストリームの生成、遷移するデータの処理、消費が簡単にできる オペレーターのセット MicroProfile Reactive Messaging 3.0 メッセージを生成・消費・処理するCDI Bean を宣言するための開発モデルを定義 Reactive Streams と CDI に依存 https://github.com/eclipse/microprofile-reactive-messaging/releases/tag/3.0 MicroProfile Context Propagation 1.3 スレッドに依存しない作業単位間でコンテキストを伝播するための API https://github.com/eclipse/microprofile-context-propagation/releases/tag/1.3 35

Slide 36

Slide 36 text

アジェンダ © 2023 Fujitsu Limited クラウドネイティブJava (CN4J) Jakarta EE 11 MicroProfile 7 36

Slide 37

Slide 37 text

Jakarta EE リリース ケーデンス (ステコミ案) © 2023 Fujitsu Limited 2023/9 2025/9 2018/9 2024/3 2026/3 Jakarta EE 10 Java 11 2022/9 フィーチャーリリースからタイムボックスリリースへ Java SE リリースとのアライメント Java SE 主要リリース(※)から6か月後のリリース (*)Java SEは半年毎にメジャーアップするが、Oracle社は2年毎のバージョンをLTSと定義している。 Java 25 Jakarta EE 12 Java 21 Jakarta EE 11 37

Slide 38

Slide 38 text

Jakarta EE 11 方向性 (ステコミ提唱) © 2023 Fujitsu Limited ターゲット Java SE バージョン : Java SE 21 ターゲット リリース日:GA 2024/Q1 優先事項 ⚫ 統合APIによる開発者エクスペリエンス向上 ⚫ 新しい仕様 ⚫ 最新のJavaでビルド ⚫ コミュニティからのコントリビューション 38

Slide 39

Slide 39 text

API統合によるユーザエクスペリエンス向上 © 2023 Fujitsu Limited CDIをベースに仕様の統合 APIの集結 似たようなannotationの整理 高レベルの仕様提供 (低レベルの仕様を抽象化) ⚫ Jakarta Authentication と Jakarta Authorization 例 39

Slide 40

Slide 40 text

新しい仕様 © 2023 Fujitsu Limited 新し仕様をPlatformに組み込み 既存の仕様が、新しい仕様を活用していく 既存の仕様エンハンス ベンダー固有で提供しているあるいは、Jakarta EE外機能の標準化 Jakarta Config、RPC、Data 、MVC、NoSQL 例 40

Slide 41

Slide 41 text

最新Java SE/JDKを利用 © 2023 Fujitsu Limited これまでの既存機能(リアクティブFlow API)も RecordやVirtual Threadなどの新機能の活用 Jakarta EE APIにおける、Java拡張機能 (jlinkやGraalVMイメージ)の位置づけ明確化 Jakarta EE Platform以外でのスタンドアロン (Java SEランタイム単独)利用 41

Slide 42

Slide 42 text

Streamlet API © 2023 Fujitsu Limited Jakarta RESTfull Web Services Jakarta Servlet Coreプロファイル 現状 ServletとJAX-RSの、それぞれがHTTPスタックを保持 Coreプロファイルには、JAX-RSのみ JAX-RSの実装がServletベースになっている場合あり Streamlet API (HTTPスタック) 42

Slide 43

Slide 43 text

MicroProfileとの協調 © 2023 Fujitsu Limited 候補 JWT Authentication Context Propagation Jakarta Security Jakarta Concurrency MicroProfileとの協調方法については協議中 コピーするのか、参照なのか 互換性の考え方、リリース間隔など、非技術的課題も検討中 MicroProfileの仕様から、Jakarta EEへ取り込み または、参照を検討中 43

Slide 44

Slide 44 text

Virtual Thread 対応 © 2023 Fujitsu Limited Project Loom スレッドプールは使うな 同時処理数を制限したいなら、セマフォを使え スレッドローカルは使うな 既存のJakarta EE実装は、スレッドプールをベースに実装 対応検討はこれから 44

Slide 45

Slide 45 text

コミュニティからのコントリビューション © 2023 Fujitsu Limited コミッター、コントリビューターの増加 プロセス(仕様・TCK・互換申請)の簡素化 ⚫ コミュニティからのフィードバックループ ⚫ サービスリリース(仕様・TCKのアップデート)作成を加速 学習の容易化 ⚫ チュートリルの充実 ⚫ コンテンツのローカリゼーション(日本語・中国語) 45

Slide 46

Slide 46 text

Jakarta EE 11 スケジュール (案) © 2023 Fujitsu Limited コンポーネント 仕様プランレビュー TCK SecurityManager対応 TCK Java SE 21対応 プラットフォームリリース 2023/Q1 2023/Q2 2023/Q3 2023/Q4 2024/Q1 プラットフォーム 仕様プランレビュー マイルストーンリリース 議論 白熱中 46

Slide 47

Slide 47 text

Jakarta EE 11 の Java SE レベル (案) © 2023 Fujitsu Limited Java SE 11では動かない API ソースレベル Java SE 21 API バイナリレベル Java SE 21 TCK 走行 Java SE 21+ 47

Slide 48

Slide 48 text

プロジェクトリードへのアンケート © 2023 Fujitsu Limited 仕様 Jakarta EE 11 でのリリース予定 24/Q1に 間に合うか? ベースとする Java SEバージョン Jakarta RESTful Web Services Yes Yes Java SE 17 Jakarta MVC Yes Yes Java SE 17 Jakarta Contexts and Dependency Injection Yes Yes Java SE 17 Jakarta Servlet Yes Yes Java SE 11 Jakarta Server Pages Yes Yes Java SE 11 Jakarta WebSocket Yes Yes Java SE 11 Jakarta JSON Binding No Jakarta JSON Processing No Jakarta Activation No Jakarta Mail No Jakarta XML Binding No Jakarta XML Web Services No Jakarta Web Services Metadata No Jakarta SOAP with Attachments No Jakarta NoSQL Yes Yes Java SE 17 Jakarta Data Yes Yes Java SE 17 Jakarta Faces Yes Yes Java SE 17 Jakarta Security Yes Yes Java SE 17 Jakarta Interceptors Yes Yes Java SE 17 Jakarta Concurrency Yes No Java SE 17 48

Slide 49

Slide 49 text

Jakarta Security © 2023 Fujitsu Limited JWT/OAuthサポート、マルチ認証・認可メカニズム CDIフレンドリーな @RolesAllowed、@RunAs EL可能なアノテーション ⚫ @Authorized(“callerPrincipal.name==`Taro`”) 例 テスト用の簡単な組込みアイデンティストア 49

Slide 50

Slide 50 text

identiy store 例 © 2023 Fujitsu Limited @EmbeddedIdentityStoreDefinition({ @Credentials( callerName = "caller1", password = "secret1", groups = { "VIEW_USER_PAGES", "VIEW_ADMIN_PAGES" }), @Credentials( callerName = "caller2", password = "secret2", groups = { "VIEW_USER_PAGES" }) ) 50

Slide 51

Slide 51 text

Jakarta Concurrency © 2023 Fujitsu Limited CDIフレンドリーな @Schedule、@Lock @MaxConcurrency の追加 さらなるCDIセントリック化 (現仕様の主は、2002-2004年に作成) @Resource ManagedExecutorService executor; @Inject ManagedExecutorService executor; デフォルトリソース (java:comp/DefaultManagedExecutorService)取得 51

Slide 52

Slide 52 text

Jakarta Messaging © 2023 Fujitsu Limited CDIフレンドリーな MDB (EJB Message Drive Beans) Java SEブートストラップAPI クラウドネイティブ向けJMS Lite JMS-AMQP相互接続 52

Slide 53

Slide 53 text

Jakarta Persistence © 2023 Fujitsu Limited persistence.xmlのオプショナル化 JPQLとCriteria APIにSQL機能の追加 Record (Java SE) への対応 ⚫ sub-select 例 セカンドレベルキャッシュプロバイダとして JCacheのサポート 53

Slide 54

Slide 54 text

Jakarta RESTful Web Services © 2023 Fujitsu Limited @Contextの替わりに、@Injectを使う 54

Slide 55

Slide 55 text

Jakarta Config © 2023 Fujitsu Limited コンフィグレーションの外出し 他の仕様から使われることを想定 Persistence、Mail、、、 55

Slide 56

Slide 56 text

Jakarta RPC © 2023 Fujitsu Limited gRPCの対応 Platformへの組み込み、あるいは、 スタンドアロンの仕様 56

Slide 57

Slide 57 text

Jakarta Data © 2023 Fujitsu Limited 高レベルの抽象化したデータアクセス仕様 現在、すでにベータ段階。 Jakarta EE 11の目玉になる可能性。 57

Slide 58

Slide 58 text

Jakarta EE 12以降 © 2023 Fujitsu Limited Jakarta MailのCDIベース化 JSON-P、JSON-Bにおける、JSONスキーマのサポート ⚫ LRCO (Last Resource Commit Optimization) ⚫ 1フェーズ コミット ⚫ ローカルトランザクション Jakarta Transactionにおける ベンダー固有機能の標準化 58

Slide 59

Slide 59 text

アジェンダ © 2023 Fujitsu Limited クラウドネイティブJava (CN4J) Jakarta EE 11 MicroProfile 7 59

Slide 60

Slide 60 text

2023年 テクニカルゴール (1/2) © 2023 Fujitsu Limited 新しい仕様の評価 ⚫ クラウド(BLOB)ストレージ ⚫ コンバーター ⚫ 分散キャッシュ ⚫ サーバーレスプログラミングモデル MicroProfile OpenTelemetryのエンハンス (Metrics/Logging) 新しい仕様の評価 Move、Fork、LTS、、、 60

Slide 61

Slide 61 text

2023年 テクニカルゴール (2/2) © 2023 Fujitsu Limited Springとのギャップ評価 ⚫ Javaランタイム (Java SE 11/17/21) ⚫ Virtual Threadの評価 ⚫ コンテナ・オーケストレーション インフラ技術の利用 61

Slide 62

Slide 62 text

MicroProfile 6.1 (案) © 2023 Fujitsu Limited Jakrta EE 9.1対応 Jakarta EE 9.1 または Jakarta EE 10のどちらでも動作 Open Telemetry 最新版の取り込み MP Metricsマイナーアップデート 2023年6月リリース予定 62

Slide 63

Slide 63 text

MicroProfile 7.0 (案) © 2023 Fujitsu Limited Open Telemetry Metrics JWT 3 Open Telemetry Logging ⚫ MicroProfile独自のAPIを作るか議論 ⚫ MP Metricsをオプショナル化 Jakarta Securityとの関連性 2023年6月リリース予定 63

Slide 64

Slide 64 text

MicroProfile 7 MicroProfile 6 MicroProfile リリース シナリオ (今後) © 2023 Fujitsu Limited ユースケース 実装XYZは、 MicroProfile 7準拠と言えるか? Jakarta EE 10 Jakarta EE 11 2022/9 2022/12 2023/6 2024/3 実装XYZは、 ・ Jakarta EE 11 Core Profile のTCKをパスしたCI ・ MicroProfile 7のTCKをパス ・ Jakarta EE 10 Core Profile のTCKは未実施 Core Profile Core Profile 64

Slide 65

Slide 65 text

MicroProfile 7 MicroProfile 6 Jakarta EE 10 Jakarta EE 11 Core Profile Core Profile 案1:Jakarta EE複数バージョンサポート © 2023 Fujitsu Limited ユースケース メリット 2022/12 2023/6 Core Profile : MicroProfileのリリース数は少ない デメリット : ポータビリティが低い 2024/3 2022/9 実装 XYZ 65

Slide 66

Slide 66 text

MicroProfile 7 MicroProfile 6 Jakarta EE 10 Jakarta EE 11 Core Profile Core Profile 案3:Jakarta EE/Java SE Vup毎にリリース © 2023 Fujitsu Limited ユースケース 2022/12 Core Profile 2022/9 MicroProfile 8 2023/6 2024/3 2024/xx メリット : ポータビリティの確保が容易 デメリット ・各コミュニティ間での監視が必要 ・MicroProfileのリリースが多くなる 実装 XYZ 66

Slide 67

Slide 67 text

© 2023 Fujitsu Limited Jakarta EE 開発者アンケート 今年は日本語でのアンケートを用意!! 今後のJakarta EE開発の議論への 重要なインプットとなりますので、 ご協力よろしくお願いします。 5月25日まで https://www.surveymonkey.com/r/63QKBQG?lang=ja 67

Slide 68

Slide 68 text

© 2023 Fujitsu Limited 68

Slide 69

Slide 69 text

Thank you © 2023 Fujitsu Limited