Upgrade to Pro — share decks privately, control downloads, hide ads and more …

金融系のエンタープライズ企業におけるJakarta EEへの期待、活用方法について / How to use Jakarta EE in financial enterprise system

金融系のエンタープライズ企業におけるJakarta EEへの期待、活用方法について / How to use Jakarta EE in financial enterprise system

2022/9/16開催の外部カンファレンス「JakartaOne Livestream Japan」に登壇した際の資料です。
https://jakartaone.org/jp/2022/japan/

More Decks by 三菱UFJインフォメーションテクノロジー株式会社

Other Decks in Technology

Transcript

  1. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    金融系のエンタープライズ企業に おけるJakarta EEへの期待、 活用方法について 三菱UFJインフォメーションテクノロジー株式会社 デジタルイノベーション本部 髙橋 博実 1
  2. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    髙橋 博実 たかはし ひろみ 新技術活用推進,アジャイル推進,内製化推進を担当 これまでの経験 市場リスク計算に 関するアプリ開発 社内アプリケーション フレームワーク開発 スマートフォン アプリ開発(Scrum開発) 2 新技術調査、社内推進 海外Javaカンファレンス参加歴 JavaOne 2010頃から複数回, Oracle Code One 2019 SpringOne 2018 等 自己紹介 MUIT Youtube
  3. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    3 JJUG CCC 2018 Fall Eclipse Cheについて JJUG CCC 2019 Spring Eclipse MicroProfileについて AgileTechExpo Episode0 MUITのアジャイル開発の 取り組みについて 外部登壇 雑誌寄稿 日経SYSTEMS 2017年6月号 「レガシーJava」をモダナイズしよう 自己紹介 JJUG CCC 2020 Fall Eclipse MicroProfile 進化状況について JJUG CCC 2021 Spring Jakarta EE 9.1と パッケージ名変更のための Eclipse Transformerについて
  4. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    三菱UFJ銀行、並びにMUFGグループ各社の IT・デジタル戦略を先導する、「金融×IT」のプロフェッショナル集団 三菱UFJインフォメーションテクノロジー(MUIT) 4 会社紹介
  5. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    会社紹介 181百万円 (三菱UFJ銀行 85.5%、三菱UFJフィナンシャル・グループ 14.5%) 資本金 従業員 2,015名(2022年4月現在) 事業内容 主として三菱UFJ銀行、並びに三菱UFJフィナンシャル・グループ 各社の業務等に関する、システムの企画・設計・開発・保守・運用 設立 1988年6月 本社 東京都中野区中野4-10-2 中野セントラルパークサウス 5
  6. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ 金融系システムの特徴とエンタープライズJavaについて ◼ Jakarta EEへの期待と活用方法について ◼ 技術的なキャッチアップと今後の展望について ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 6
  7. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ 金融系システムの特徴とエンタープライズJavaについて ◼ Jakarta EEへの期待と活用方法について ◼ 技術的なキャッチアップと今後の展望について ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 7
  8. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    金融システムに関する特性、特徴 ◼ 金融サービスは社会インフラのため、高い品質やセキュリティ、安定した保守性は必須 ◼ 金融サービス、商品については長期ライフサイクルのものが多い ⚫ 定期預金の預入期間は1ヵ月から10年まで ⚫ 住宅ローンの借入期間は最長35年 ⚫ 50年の社債 ◼ 社員だけでは開発・保守要員不足のため、他社へ開発・保守を委託していることが多い その委託先会社が得意とする商用フレームワークや、開発ツールなどを使うこともあった (社内標準は定めているものの、案件事情を鑑み採択されることもある) ⚫ 特定委託先にロックインしないよう、社内標準としては複数の選択肢を構えておく - オープンな技術の活用はロックイン回避のために非常に重要 8
  9. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ◼ 2005年のJavaOneに参加した社員がJava EE5の開発生産性、テスト容易性に感銘を受 けた ◼ 当時社内標準化がされておらず、各委託先会社固有の開発手法だったため、標準化 の一環でJava EE標準のインハウスフレームワーク整備を企画、開発 ◼ 金融システムという特性上、ベンダーロックインはNGでありJava EE標準に則り 複数アプリケーションサーバー上で動作するというメリットはマッチした ◼ 上記社員が当時日本語書籍が無かったため書籍を出し、Java EE普及に一部貢献 ⚫ 第1版ではGlassfishベースのサンプルコードだったが、第2版で当時のJBossAS対応 Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 当社とエンタープライズJavaとの関係性 9
  10. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EEとは ◼ Jakarta EEとは、クラウドネィティブかつエンタープライズ向けの Javaアプリケーションのための標準仕様群 ◼ 2017年,Oracle社は標準仕様群であるJava EEについてEclipse Foundationに寄贈 その後は各アプリケーションサーバーベンダーとコミュニティベースで仕様を策定 ◼ Jakarta EEの開発や普及を推進するワーキンググループ「Jakarta EE Working Group」には以下企業、コミュニティグループが参加 Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 10 Payara 富士通 Tomitribe IBM Red Hat Microsoft Oracle https://jakarta.ee/membership/members/ より抜粋 London Java Community iJUG 等々
  11. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    金融システムの特性を踏まえたJakarta EEのメリット ◼ 安定した品質と、長期ライフサイクルというメリット ⚫ 全てがJava EE、Jakarta EEではなく、Spring Bootを使っているシステムも あるが、短期EOL、ライフサイクルに追従することにはコストがかかるため、 Spring Bootの採用数は限られている状況 ⚫ 一つのシステムが大きくなりすぎないように意識、設計はしているものの、金融システムは規 模が大きく、多くの人数で並行開発することが多いため、安定性は重要 ⚫ 新しい技術についても無理に追従することなく、長期目線で見て使えるものを技術選定して いっている状況 - 正しく技術選定するための工夫、打ち手については、後述 ◼ セキュリティパッチ、バグフィックスについてアプリケーションサーバーベンダーより 提供されること、その仕様について詳細確認できることも大きなメリット 11
  12. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    分業のしやすさとスキル流用のしやすさ ◼ Java EE / Jakarta EEでは、アプリケーションサーバーを準備し、EarまたはWar形式で ビルドしたアプリケーションをデプロイする形となる ◼ パフォーマンスを含めた非機能面の設計、設定を施したプラットフォームを用意する基盤 チームと、業務アプリケーション開発に専念するアプリチームに分担して並行開発を実現 Jakarta EEの 標準仕様 Jakarta EEの仕様に 則った製品 アプリケーション実装部分 アプリエンジニア インフラエンジニア 実装する 仕様を 理解する アプリケー ションサーバー 製品含めた インフラを構築 アプリ開発者は標準仕様を理解する ことで、どのアプリケーションサーバー^ 製品であっても一定のスキルノウハウや 設計、ソースの流用が可能 例1:AプロジェクトではWebLogicを 使っているがBではLibertyを使う場合 開発者がキャッチアップがしやすい 例2:Aプロジェクトは製品EOLの タイミングでLibertyに乗り換えた その際の影響が限定的になる 12
  13. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ 金融系システムの特徴とエンタープライズJavaについて ◼ Jakarta EEへの期待と活用方法について ◼ 技術的なキャッチアップと今後の展望について ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 13
  14. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    エンタープライズJavaの仕様との付き合い方 ◼ Java EE の際の活用方法としては、秘伝のタレのようにベースとなるアーキテクチャを 設計、インハウスのフレームワークライブラリとして用意、各アプリ開発者に使って もらうスタイルを取っていた。 ◼ 最近のJava EE、Jakarta EEについては既に機能充足度として一般的に必要な機能は具備 されているので基本的に社内共通ライブラリとして用意する必要性は薄くなってきた。 よって、フレームワークチームとしては、Jakarta EEを使ってどのように設計、開発をし ていくのかの指針と設計、サンプルプロジェクトの開発を行い、社内活用していく方針へ 転換。技術適応へのスピード向上及びアプリケーション設計のアジリティの向上を実現。 Java EE仕様 インハウス フレームワーク 開発 インハウス フレームワークを 使ってアプリ開発 Jakarta EE仕様 アプリ標準設計、 サンプルコード、 テストコード、 CIジョブサンプル 参考、活用し アプリ開発 14
  15. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    全体感のイメージとJakarta EE仕様の活用箇所 ◼ Jakarta EEを活用したシステム全体構成と活用する主な標準仕様のマッピングイメージ なお、全てをフレームワークチームが設計、実装サンプルを整備しているものではない アプリケーションサーバー上のアプリケーション ブラウザ スマホアプリ 他システム、 サービス プレゼンテー ション層 ビジネス ロジック層 永続化層、 他システム連携層 API連携 メール送受信 DBへの読み書き Jakarta Server Faces Jakarta RESTful Web Services Jakarta Contexts and Dependency Injection Jakarta Transactions Jakarta Bean Validation Jakarta Interceptors Jakarta Persistence ※OSSのMyBatis を使うことも Jakarta RESTful Web Services Jakarta Mail Jakarta XML Web Services 15
  16. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    (ご参考) Eclipse MicroProfile ◼ Jakarta EE 技術をベースし、マイクロサービス構築のための エンタープライズJavaを最適化するためのコミュニティベースの標準仕様群 ◼ 仕様策定メンバーとしては、アプリケーションサーバーベンダー および各地のJavaユーザーグループで構成されている Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. Payara 富士通 Tomitribe IBM Red Hat Microsoft Hazelcast Oracle SouJava KamuluzEE Hammock Lightbend London Java Community 等々 https://microprofile.io/workinggroup/ より抜粋 16
  17. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    (ご参考) Eclipse MicroProfileの活用 ◼ 一部アプリケーションサーバーベンダーからはアプリケーションサーバーと 合わせて機能提供、サポートされていることは確認済 ◼ 一方、 Eclipse MicroProfileのみサポート期間が短くなるなどの制約もあるため現状採 用には至っていない ◼ 機能としては、クラウド利用、コンテナ環境、API活用観点で利用していきたい機能は 豊富にある。例:Open API,Health,Config,,, ◼ 今後一部Jakarta EEに取り込まれる との情報もあるため、継続Watchしていく https://microprofile.io/ より抜粋 17
  18. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    UberJar(実行可能形式のライブラリ) ◼ MicroProfile自体の仕様に入っているわけではないが、 MicroProfile実装はUberJar機能 を保有していることが多い ◼ UberJarとは、一つのJarファイルの中に依存ライブラリを含む全てのライブラリを含んで アーカイブする形式を示す ◼ Java EE 、Jakarta EEでのアプリケーションの場合、①アプリケーションサーバーの起動、 ②業務アプリケーションのデプロイという2段階であったが、UberJar形式の場合はアプ リケーションサーバー関連ライブラリも含めて一つのJarファイルとなるため、動作確認 までのスピードが早く、開発が容易となる アプリケーションWar or Ear アプリケーションサーバー Java EE 、Jakarta EE サーバーのアプリ実行 ②アプリのデプロイ ①アプリケーション サーバーの起動 UberJar アプリケーション実装部分 アプリケーションサーバー 関連も含む依存ライブラリ UberJar形式でのアプリ実行 ①アプリの 実行のみ 18
  19. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ 金融系システムの特徴とエンタープライズJavaについて ◼ Jakarta EEへの期待と活用方法について ◼ 技術的なキャッチアップと今後の展望について ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 19
  20. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE関連の情報源 ◼ スペックリードやコミュニティの方が積極的に情報を公開しているため、それらを確認、 フォローしていくことが望ましい ⚫ 国内では本イベントに登壇されている皆さん個人及び各社の発信内容をフォロー、JJUG(日本 Javaユーザーグループ)のイベントへの参加 ⚫ 海外エンジニアも含めたところでは以下 - Jakarta EE関連のメーリングリスト https://accounts.eclipse.org/mailing-list/jakartaee-platform-dev - Jakarta EE関連のGithub Issue https://github.com/eclipse-ee4j/jakartaee-platform/issues - Jakarta EEのYoutubeチャンネル https://youtube.com/c/JakartaEE - Ivar Grimstad 氏のブログ、Twitter、各種講演内容 - Emily Jiang 氏のブログ、Twitter 、各種講演内容 - Reza Rahman 氏のブログ、Twitter 、各種講演内容 ◼ なお、Spring 関連の情報もJakarta EEの先を歩んでいるフレームワークとして動向を キャッチしておくことが望ましい(詳細後述) 20
  21. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE の始め方 ◼ のようにダウンロードしてビルド、即実行可能 Payara MicroのUberJarの機能を活用したもの。最小手順でHello-Worldまで確認できる。 ◼ Dockerイメージの作成、実行手順もある ◼ これを活用することにより Jakarta EEの各仕様の 実装例、動作確認を用意に 行うことが出来る ◼ 詳細な実装例としては 以下Githubプロジェクトでも 公開されているため注目したい https://github.com/eclipse-ee4j/jakartaee-examples https://start.jakarta.ee/ 21
  22. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ◼ MicroProfile Starterが便利(MicroProfile 3.3リリース時にGAされたもの) ⚫ 見た目どおり、 に提供機能も似ている ⚫ 実際に動くテンプレートソースプロジェクトのダウンロードが可能 (ご参考) Eclipse MicroProfileを簡単に試すには MicroProfileの バージョンを 選定 実装サーバーを選定 (Payara Micro、 Open Liberty、 WildFlyなど) MicroProfile 各機能の利用 有無を選定 Java SEの バージョンを選定 Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. プロジェクトの ソース一式の ダウンロード 22 https://start.microprofile.io/
  23. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Spring等のOSSやクラウド活用検証で技術動向を捉える ◼ 過去のJava EEに対しての経緯から見ても、Springなど良い技術、機能については 広く使えるものとしてJakarta EEというエンタープライズJava標準に取り込まれてきた ⚫ 例:EJB3以降、JPA、インターセプター 等 ◼ よって本番システムではJakarta EEという選択肢を中心に置きつつ、技術キャッチアップ 世の中の動向を抑える上で、R&D観点も含めて情報を収集し、日々触れていくことが重要 - Spring Boot 3系がもうすぐリリースされるが、進化度合いはどうか? - Quarkus、Micronaut、Helidon 等の軽量フレームワークの機能具備範囲、利用状況はどうか? » コミュニティのMeetupに参加することや、ブログ等での発信状況を確認 - クラウドサービス(AWS、Azure、GCP)との連携や、コンテナ、サーバーレスへの活用は見込めるか? » 技術検証としてAWS Lambda関連で実機検証、事例発表済 • 脱Kubernetesに向けたステートフルなLambda+Auroraアプリの実現可能性検証結果 ◼ 上記はJavaに限った話ではなく、広く構えておくことが重要 https://speakerdeck.com/muit/the-feasibility-verification-of-the-stateful-application-lambda-plus-aurora-for-de-kubernetes 23
  24. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EEとSpring Bootの利用開始目線での比較 ◼ Web APIのアプリの場合、機能置き換えのイメージでキャッチアップは容易 ⚫ 一部抜粋 ◼ ただし、画面構成部分はJakarta EEのJakarta Server Facesと、SpringのSpring MVCと Thymeleafは差分が大きい、Spring Securityは代替が無いといった差分があるため注意が必要 24 RESTサービス 提供機能 DBアクセス 提供機能 Jakarta EE jakarta.ws.rs.core.Applicationの拡張クラスを作 ることでRESTアプリとして設定 jakarta.ws.rs.GETアノテーションでGETメソッド 時に動くクラスであることを指定 jakarta.ws.rs.ApplicationPathアノテーションで パス指定 jakarta.ws.rs.PathアノテーションでAPI毎のパス を指定 Jakarta Persistenceを活用(詳細省略) Spring Boot org.springframework.boot.SpringApplication アノテーションでSpringBootアプリとして指定 org.springframework.web.bind.annotation.RestContr ollerアノテーションでREST実装クラスを指定 org.springframework.web.bind.annotation.GetMappi ngアノテーションでGETメソッド時に動くクラスである ことを指定 org.springframework.web.bind.annotation.RequestM appingアノテーションでAPI毎のパスを指定 Spring Data JPA を活用(詳細省略)
  25. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    今後の期待と展望について ◼ Jakarta EEの機能追従、更なる進化に期待したい ⚫ 特に、Micro Profile機能の取り込みを急ぎ期待したい - アプリケーションサーバーによって長期サポートがされることでも代替可能 ⚫ 金融システムに必要なものは、安定性、長期サポート、迅速な セキュリティパッチとバグフィックス提供がポイントとなる ⚫ 他のOSS、コミュニティとのクロスオーバーした情報連携、 協働によりさらに全体を底上げ、発展していけるものと期待している ◼ Jakarta EE関連の利用者は、Spring Boot等のOSSを使っているユーザーに比べて エンタープライズの特徴が強く情報発信が少ないため活性化させていくことが望ましい ⚫ 国内見ても利用者は多いと推測されるため、継続的な発信とイベントが必要 ⚫ そこでは、機能的な魅力というよりは、実例としてどう使っているか、 安定的に使うための工夫等に着目していきたい 25
  26. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ 金融系システムの特徴とエンタープライズJavaについて ◼ Jakarta EEへの期待と活用方法について ◼ 技術的なキャッチアップと今後の展望について ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 26
  27. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    まとめ ⚫ 金融システムのように簡単に止められない長期安定的なシステムの開発、運用にはJakarta EE は非常に有効 ⚫ Jakarta EEは一般的なWebアプリケーションシステムで必要な機能について網羅性がある ⚫ 技術キャッチアップ及び技術選定の観点で、Spring BootなどのOSS系も予め触れておくことが 実開発案件でスムーズに進めていく準備が有効な手段となる - なお、クラウドサービス含めて技術が多様になってきているため、Java言語やJakarta EE以外も 適宜中長期目線での技術選定を継続していく必要はある ⚫ 他の技術要素、OSSと比べてJakarta EE関連の発信、共有は少ない状況。過去資産を多く持つ エンタープライズ企業への活用など、積極的に今後も発信、業界を盛り上げていきたい 27
  28. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    共に歩んで頂ける仲間を募集します 変革の時期に共に進めていく、Java Developer、DevOpsエンジニア、 アーキテクトなど、新しい仲間を迎え、進めていきたく宜しくお願いします。 気軽にお声かけください。 採用ページ 28 https://hrmos.co/pages/muit/jobs
  29. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ◼ 本プレゼンテーションにより、貴社と三菱UFJインフォメーションテクノロジー株式会社の間には何ら委任そ の他の契約関係が発生するものではなく、当社が一切法的な義務・責任を負うものではありません。 ◼ 本資料は信頼できると考えられる各種データに基づいて作成されていますが、当社はその正確性、完全性を 保証するものではありません。ここに示したすべての内容は、当社の現時点での判断を示しているに過ぎま せん。 ◼ また、本資料に関連して生じた一切の損害については、当社は責任を負いません。その他専門的知識に係る 問題については、必ず貴社の弁護士、税理士、公認会計士等の専門家にご相談の上ご確認下さい。 29