We love eBooks
    Baixar Spring Framework: Introduction to Multithread Programming: Event Driven Messaging Application (Japanese Edition) pdf, epub, eBook

    Spring Framework: Introduction to Multithread Programming: Event Driven Messaging Application (Japanese Edition)

    Por Komatsu Masaki

    Sobre

    本書はJava、Spring Frameworkアプリケーション開発者をターゲットとした並行・並列処理の入門書です。

    目的


    Spring Framework/Javaエコシステムでのハイパフォーマンス基盤の設計に従事するアーキテクトやエンジニアの方に、並行・並列処理のアーキテクチャー設計の基礎となるJMSトランザクションやスレッドスコープにふれて頂く事を目的としています。

    背景:エンタープライズ並行・並列処理とは


    Spring Frameworkを使ったエンタープライズアプリケーションやハイパフォーマンス基盤の設計では、単にマルチコアによってパフォーマンスや負荷処理能力を向上させるだけではなく、システムキャパシティの限界を超える負荷が発生するピーク時や障害発生時に、一旦ロールバックしてリトライする等の機構も含める必要があります。そのため大規模なシステムではMQ等のミドルウェア導入が不可欠となります。

    必要な知識


    Spring Frameworkの環境設定にあたってはMavenを使ったビルドの知識(pom.xmlの編集)があることが必須となります。またJavaマルチスレッドとjava.util.concurrentパッケージの基本知識も前提としてあるものとします。(拙著「Javaマルチスレッド入門」を事前に読むことを推奨します。)本書のサンプルコードはSpring Framework 4.1.4を使いますが、原則としてSpring Framework 3でも動作するはずです(動作確認はしていませんので、ご自身のリスクで試してください)。

    構成


    第一章「マルチスレッドの復習」は本書を通じて前提とするスレッドプールを使ったスレッドプログラミングとAtomic変数の復習をする機会となります。java.util.concurrentパッケージに慣れていない読者層に配慮した章のため、経験者はスキップすることを推奨します。

    第二章「Spring Frameworkのまとめ」では、Spring FrameworkによるBeanの自動生成、依存性注入について解説します。Spring Framework初見の方はサンプルコードに目を通すだけでなく、実際にコンパイルして実行することを強く推奨します。この章が理解できない方は、次章以降の理解をするのは難しいでしょう。スプリングフレームワークを使ったアプリケーション開発経験者はスキップしても構いません。

    第三章「Spring Frameworkと並行性」では、Springが提供するTaskExecutor、TaskSchedulerについて解説します。

    第四章「ThreadScope」ではSpringアプリケーションにおけるカスタムスコープ、ThreadLocalの使用方法について考察します。singleton、prototype、request、sessionやカスタムスコープを定義する際の実装例を示します。ThreadScopeはThreadExecutorと同様にSpring Frameworkでのマルチスレッドアプリケーション開発の骨格となるものです。この章ではハローワールド的な実装にとどめますが、ThreadLocalの用例として複数の実装方式を紹介しています。

    第五章「イベント伝播」ではSpring Frameworkのローカルのアプリケーションイベントの非同期(マルチキャスト)での送受信について解説します。イベント駆動・メッセージ指向アプリケーションで使うことがあるApplicationEventMulticasterクラスはスレッドをプールする実装としてThreadExecutorを利用しており、次章以降の基礎を固める意味でご案内します。さらにApplicationEventはSpringの内部処理のシステム開発に適しており、マルチスレッド化によりパフォーマンス向上が望めます。第七章でイベント駆動アプリケーションをトランザクションに適用させるために本章は理解しておく必要があります。ApplicationEventについての知識がない方は目を通して、可能であればビルドして動作を確認するとよいでしょう。

    第六章「ミドルウェア」では、分散並列アーキテクチャーの実装例としてJMS規格(Java Message Service)を使った並行処理を考察します。ActiveMQの実装や基本アーキテクチャーについて解説します。

    第七章「トランザクション」では、Spring AOPを使ったイベント駆動アプリケーション(第五章)とJMSアプリケーション(第六章)の開発方式を考察します。特にエンタープライズアプリケーションで幅広く活用されている分散トランザクション機能については、ビジネスオブジェクトでの並行・並列処理を行う上で幅広く活用されているため、並行処理システムの設計をする方には有用な知識となります。エントリーレベルのエンタープライズアプリケーション技術者や基盤開発に従事するアーキテクトに役に立つ内容と考えます。

    目次


    第一章 Javaマルチスレッドの復習


    スレッドプールとExecutorインターフェース
    BlockingQueueとスレッドプール
    Executorインターフェース
    Atomic変数
    Producer Consumerアーキテクチャー

    第二章 Spring Frameworkのまとめ


    基本概念
    Beanの自動生成
    依存性注入
    Setter-Injection
    Javaアノテーションによる依存性注入
    @Configuration注釈
    コンポーネントスキャン
    AOP(Aspect Oriented Programming)
    AOPの用語
    環境設定
    AOPプロキシ
    ProxyFactoryBean
    AOPの有効化
    Aspectの宣言
    Pointcutの宣言
    Adviceの宣言

    第三章 Spring Frameworkと並行性


    Spring Frameworkの環境設定
    TaskExecutor
    ThreadPoolTaskExecutor
    ThreadPoolTaskExecutorの実装
    スケジューラーAPI
    TaskScheduler
    Trigger
    taskの設定
    スケジューラーの実装例
    @Async @Scheduled注釈の有効化
    @Async
    @Scheduled

    第四章 ThreadScope


    Bean Scope
    Request/Sessionスコープ
    Request/Sessionの実装例
    ThreadLocal
    PrototypeスコープとThreadLocalの比較検証
    ThreadLocalの代替案
    オブジェクトプール
    TargetSource
    Apache Commons Poolの環境設定
    CommonsPoolTargetSourceの実装例
    ThreadLocalTargetSourceの実装例
    カスタムスコープ
    カスタムスコープの実装例
    まとめ

    第五章 イベント伝播


    ApplicationEventMulticasterインターフェース
    ApplicationListenerインターフェース
    ApplicationEvent
    イベント駆動アプリケーション

    第六章 ミドルウェア


    JMS(Java Message Service)
    JMSアーキテクチャー
    JMSの基本構成
    JMS配信モデル
    Publisher Subscriber モデル(Pubsub)
    Point-to-Point モデル(P2P)
    JMS環境設定
    ActiveMQ
    JmsTemplate
    Listener
    JMSリスナーの並行処理実装

    第七章 Springトランザクション


    エンタープライズトランザクション
    ローカルトランザクション
    グローバルトランザクション
    XA
    Two Phase Commit(2PC)
    1相コミット(One Phase Commit - 1PC)
    Java Transaction API(JTA)
    Programmatic Transactionモデル
    Declarative Transaction(宣言的トランザクション)モデル
    Springトランザクションモデル
    AOPトランザクション
    DBトランザクションの設定
    JMSトランザクションの設定
    AOPトランザクションの実装例
    AOPトランザクションのテスト
    JMSとAOPトランザクションのテスト
    TransactionSynchronizationManagerを使ったトランザクション
    前編のまとめと後編について

    補足


    本書を読まれた方は拙著「Spring Integration入門」も合わせて読むことをおすすめします。並列分散処理とシステム自動化に特化したESB/EIPの実装であるSpring Integrationは、本書で学ばれた知識を強化してくれるはずです。
    Baixar eBook Link atualizado em 2017
    Talvez você seja redirecionado para outro site

    Relacionados com esse eBook

    Navegar por coleções