アプリケーションアーキテクチャ設計パターン
アプリケーション アーキテクチャ セッケイ パターン
- 著者:
- 斉藤賢哉 / 三菱 UFJ インフォメーションテクノロジー(サイトウ, ケンヤ / ミツビシ ユーエフジェイ インフォメーション テクノロシ)
- 出版社:
- 技術評論社
- 出版日:
- 2017年10月
- ISBN:
- 9784774193038
- 在庫:
- 在庫あり
なぜ注目されているか
技書の森解説
業務システムの基本設計で「何を作るか」が決まったあと、「どう作るか」を組み立てるための設計パターンを、サーバサイドからクライアントサイド、バッチ処理、システム間連携まで分野をまたいで整理した本です。『アプリケーションアーキテクチャ設計パターン』は三菱 UFJ インフォメーションテクノロジー株式会社の斉藤賢哉の著作で、技術評論社から 2017 年 10 月 12 日に B5 変形判で発売されました。版元は、アーキテクチャのパターンを俯瞰したいアーキテクトやエンジニアを読者に挙げています。
全 5 部 21 章の構成、概要からシステム間連携まで
目次は Part 1 から Part 5 までの全 5 部 21 章と、Appendix 1「クラス一覧」、Appendix 2「参考文献一覧」です。Part 1「アプリケーションアーキテクチャ概要」は第 1 章「アプリケーションアーキテクチャとは」から第 3 章までで、同期と非同期、オンライン処理とバッチ処理、レイヤー化と機能配置といった共通の概念を押さえます。Part 2「サーバサイドの設計パターン」は第 4 章「プレゼンテーション層の設計パターン」から第 11 章「その他のアーキテクチャパターン」までで、ビジネス層、トランザクション管理とデータ整合性確保、データアクセス層、検証と例外、非同期呼び出しと並列処理を扱います。Part 3 はクライアントサイドで、第 14 章「シングルページアプリケーションの設計パターン」まで、Part 4 はバッチ処理で、第 18 章「ビッグデータ技術による分散並列バッチ処理」まで、Part 5 はシステム間連携で、第 21 章「メッセージングの設計パターン」で終わります。
Java EE の仕様を前提にした設計とコード
著者のはじめにによれば、本書は既存の設計パターンをもとに、著者がプロジェクトで積み上げた設計ノウハウを加え、Java EE のプラットフォームやフレームワークの仕様を前提にパターン体系として再整理したものです。目次に並ぶ技術名も JSF、CDI、JPA と MyBatis、Java Batch、JAX-RS と JAX-WS、JMS と、Java EE の仕様とその周辺のものが中心で、Part 4 では Hadoop と Spark も扱います。各設計パターンを形にするソースコードを多めに掲載している点も、はじめにで述べられています。Java EE の技術はその後 Oracle から Eclipse Foundation へ拠出されて Jakarta EE になり、Jakarta EE 9 からは仕様のパッケージの名前空間が javax.* から jakarta.* に置き換わっています。
パターン同士のトレードオフを比べる考え方
業務アプリケーションの設計では、1 つの機能要件を満たす方法がたいてい複数あり、コストや技術的な難しさ、性能の面で一長一短があります。オブジェクトの組み立て方 1 つを取っても、呼び出し側が自分で生成する形と、依存性注入 でコンテナに任せる形とでは、テストのしやすさや設定の手間が変わります。データベースとの対応づけでも、SQL を明示的に書く方式と ORM に任せる方式とで、細かな制御のしやすさと記述量の釣り合いが逆になります。はじめにでは、本書がこの設計パターンのトレードオフを特に取り上げていると説明しています。個々の デザインパターン を部品として覚えるだけでなく、どの条件でどれを選ぶかを比べる材料を並べる構成です。はじめにには、第 10 章と第 18 章で同じ売上取引データの集約の例を使い、マルチスレッドによる並列処理とビッグデータ技術という異なる方式に共通する課題を見えやすくした工夫も書かれています。
版元が挙げる読者と、Part 5 のシステム間連携
Part 5 のシステム間連携では、REST サービスと SOAP Web サービスの使い分けや、JMS による基本的なメッセージングが目次に並びます。送り手と受け手の間に メッセージキュー を置く方式では、送り手は相手の処理の完了を待たずに先へ進めますが、届いた順序や重複の扱いを設計で決める必要が生じます。はじめにによれば、本書はすべての分野で語彙と記述の水準をそろえ、使うサンプルも合わせています。はじめにと目次のとおり、本書の記述とコードは Java EE の仕様に沿っており、Spring の語は目次にありません。本書は、エンタープライズアプリケーションの設計パターンとそのトレードオフを、概要、サーバサイド、クライアントサイド、バッチ処理、システム間連携の全 5 部 21 章に収めています。