* 2015年8月18日以前に購入された方は、pom.xmlを最新版に入れ替える必要があります。本書の「著者」紹介欄に掲載されたメールアドレスにご連絡ください。
本書はシステムの自動化や「並列分散」処理に興味のあるJava開発者をターゲットにしたSpring Integration入門書となります。
システムの自動化や、並列分散システムのためのアーキテクチャーを設計をされているアーキテクト・エンジニアにSpring Frameworkおよび、Spring Integrationにふれて頂くことを目的としています。ESB/EIPの経験が無い方にとっては、比較的入りやすい入門書となりますし、すでにSpring Integrationや、Mule ESB、Camelなどの経験者であっても、Spring Integration 4.1xから導入された新機能を盛り込んでいるため、(2015年の時点では)最新機能に関する入門となると考えます。
Spring Integrationの最大の強みは、システム設計の柔軟性であり、豊富なAPIによる業務の自動化です。言語やプラットフォームに関係のない統合インターフェースとして、古典的に手動でエンジニアが作業していたワークフロー等もSpring Integrationにより全自動化も可能となる事例が多くあります。
例えばビッグデータの基盤を設計する際には、FTP、シスログ、メールなどの外部からデータをリアルタイムで引っ張るなどのシステムを自動化をするのも最低限の手間で実装が可能です。また、AMQPやSOAP等を使ったミドルウェアとの連結も広くサポートされており、既にSOA環境があるシステムを強化したり、自動化することもできます。
Spring Frameworkは海外(または外資系)の大企業で広く使われているJavaフレームワークです。現在ある外資系企業のインストールベースの大半は2005~2008年のリーマンショック以前のものですが、この時期には評判の芳しくないEJB/J2EEからSpring Frameworkへ移行する企業が多くありました。2008年9月のリーマンショック後は企業に追加投資する余力が無く、テスト済みのシステムからJava EE(EJB/J2EEの後継)に回帰するほどのインセンティブも欠けていたため、その後のJava EEのリニューアルにたいしても無関心な傾向が外資系・海外の大企業では現在まで続いている状況です。
基本アーキテクチャー
基本構成
Namespace
Message
MessageChannel
PollableChannel
Endpoint
ServiceActivator
実装例:Hello, World
Spring Integration環境設定
Maven Repository(Gemfire)
Message Header
GenericMessageとMessageBuilder
Messageの実装例
Message Channel
PollableChannel (バッファー有り)
SubscribableChannel(バッファー無し)
PublishSubscribeChannel
QueueChannel
PriorityChannel
RendezvousChannel
DirectChannel
ExecutorChannel
datatypeの設定
ChannelInterceptor
Wire Tap
実装例❶(datatypeとDirectChannel)
型変換(Converterインターフェース)
ChannelInterceptor
実装例❷(JMSメッセージチャンネル)
JMS Channel Adapterの実装例
実装例❸(AMQPメッセージチャンネル)
第五章 Message Endpoints
メッセージConsumerの実装のための環境設定
EventDrivenConsumer
PollingConsumerの実装例
Gateway
Gatewayの実装例
Inbound ・ Outbound Gateway
JMS Gateway
Gatewayの実装例
Canonical Data Model
環境設定
ジェネリックTransformer
object-to-string-transformer
シリアル化
object-to-json-transformer
object-to-xml-transformer
Header Enricherの基本機能
Header Enricherの機能についての補足
Payload Enricher
Message Router
Routerの種類と設定
Payload Type Router
Header Value Router
Header Value Routerの実装例
Header Value Router(XML宣言による設定)
Recipient List Router
Recipient List Routerの実装
Routing Slip
Splitter
Aggregator
Aggregatorの実装例
Resequencer
Scatter-Gatherer
Channel Adapter
Poller
Channel Adapter
Channel Adapterの実装例
File
FileReadingMessageSource
Tailオプション
File Adapterの実装例
JDBCアダプター
JDBCの設定(HSQL)
Jdbc Outbound Gateway
Jdbc Outbound Gatewayの実装
JDBC インバウンドチャンネル・アダプター
Jdbc Inbound Channel Adapterの実装
JDBC アウトバウンドチャンネル・アダプター
Jdbc Outbound Channel Adapterの実装例
Stream
Streamの実装例
Syslog
Syslogアダプターの実装例
Mail
POP3
POP3 インバウンドチャンネルアダプターの実装
SMTP
FTP
FTPセッションファクトリーの設定
FTPアウトバウンドチャンネルアダプター
FTPインバウンドチャンネルアダプター
HTTPアダプター
実装例(プロジェクトディレクトリーとソースコード)
基本用法
Claim Check
Retry Advice
Idempotent Receiver
JPAの設定
JPAインバウンド・チャンネル・アダプター
JPAアウトバウンド・チャンネル・アダプター
FsShell
FsShell(HDFS)アウトバウンドチャンネルアダプター実装
Spring Batchとの関係
XMLスキーマの生成
GetQuoteRequestタグとXSDへの変換
GetQuoteResponseタグとXSDへの変換
quotes.xsdの生成
SOAPゲートウェイ・WSDLの実装
SOAPゲートウェイサーバーの実行
本書はシステムの自動化や「並列分散」処理に興味のあるJava開発者をターゲットにしたSpring Integration入門書となります。
目的
システムの自動化や、並列分散システムのためのアーキテクチャーを設計をされているアーキテクト・エンジニアにSpring Frameworkおよび、Spring Integrationにふれて頂くことを目的としています。ESB/EIPの経験が無い方にとっては、比較的入りやすい入門書となりますし、すでにSpring Integrationや、Mule ESB、Camelなどの経験者であっても、Spring Integration 4.1xから導入された新機能を盛り込んでいるため、(2015年の時点では)最新機能に関する入門となると考えます。
システム間連携の自動化
Spring Integrationの最大の強みは、システム設計の柔軟性であり、豊富なAPIによる業務の自動化です。言語やプラットフォームに関係のない統合インターフェースとして、古典的に手動でエンジニアが作業していたワークフロー等もSpring Integrationにより全自動化も可能となる事例が多くあります。
例えばビッグデータの基盤を設計する際には、FTP、シスログ、メールなどの外部からデータをリアルタイムで引っ張るなどのシステムを自動化をするのも最低限の手間で実装が可能です。また、AMQPやSOAP等を使ったミドルウェアとの連結も広くサポートされており、既にSOA環境があるシステムを強化したり、自動化することもできます。
Spring Frameworkとは
Spring Frameworkは海外(または外資系)の大企業で広く使われているJavaフレームワークです。現在ある外資系企業のインストールベースの大半は2005~2008年のリーマンショック以前のものですが、この時期には評判の芳しくないEJB/J2EEからSpring Frameworkへ移行する企業が多くありました。2008年9月のリーマンショック後は企業に追加投資する余力が無く、テスト済みのシステムからJava EE(EJB/J2EEの後継)に回帰するほどのインセンティブも欠けていたため、その後のJava EEのリニューアルにたいしても無関心な傾向が外資系・海外の大企業では現在まで続いている状況です。
目次
第一章 Spring Frameworkのまとめ
第二章 基本機能
基本アーキテクチャー
基本構成
Namespace
Message
MessageChannel
PollableChannel
Endpoint
ServiceActivator
実装例:Hello, World
Spring Integration環境設定
Maven Repository(Gemfire)
第三章 Message
Message Header
GenericMessageとMessageBuilder
Messageの実装例
第四章 Channel
Message Channel
PollableChannel (バッファー有り)
SubscribableChannel(バッファー無し)
PublishSubscribeChannel
QueueChannel
PriorityChannel
RendezvousChannel
DirectChannel
ExecutorChannel
datatypeの設定
ChannelInterceptor
Wire Tap
実装例❶(datatypeとDirectChannel)
型変換(Converterインターフェース)
ChannelInterceptor
実装例❷(JMSメッセージチャンネル)
JMS Channel Adapterの実装例
実装例❸(AMQPメッセージチャンネル)
第五章 Message Endpoints
メッセージConsumerの実装のための環境設定
EventDrivenConsumer
PollingConsumerの実装例
Gateway
Gatewayの実装例
Inbound ・ Outbound Gateway
JMS Gateway
Gatewayの実装例
第六章 Transformer
Canonical Data Model
環境設定
ジェネリックTransformer
object-to-string-transformer
シリアル化
object-to-json-transformer
object-to-xml-transformer
第七章 Enricher
Header Enricherの基本機能
Header Enricherの機能についての補足
Payload Enricher
第八章 Flow Components
Message Router
Routerの種類と設定
Payload Type Router
Header Value Router
Header Value Routerの実装例
Header Value Router(XML宣言による設定)
Recipient List Router
Recipient List Routerの実装
Routing Slip
Splitter
Aggregator
Aggregatorの実装例
Resequencer
Scatter-Gatherer
第九章 Adapter
Channel Adapter
Poller
Channel Adapter
Channel Adapterの実装例
第十章 外部連携アダプター
File
FileReadingMessageSource
Tailオプション
File Adapterの実装例
JDBCアダプター
JDBCの設定(HSQL)
Jdbc Outbound Gateway
Jdbc Outbound Gatewayの実装
JDBC インバウンドチャンネル・アダプター
Jdbc Inbound Channel Adapterの実装
JDBC アウトバウンドチャンネル・アダプター
Jdbc Outbound Channel Adapterの実装例
Stream
Streamの実装例
Syslog
Syslogアダプターの実装例
POP3
POP3 インバウンドチャンネルアダプターの実装
SMTP
FTP
FTPセッションファクトリーの設定
FTPアウトバウンドチャンネルアダプター
FTPインバウンドチャンネルアダプター
HTTPアダプター
実装例(プロジェクトディレクトリーとソースコード)
第十一章 MessageStore
基本用法
Claim Check
第十二章 AOP機能の適用
Retry Advice
Idempotent Receiver
第十三章 JPAサポート
JPAの設定
JPAインバウンド・チャンネル・アダプター
JPAアウトバウンド・チャンネル・アダプター
第十四章 HDFS(Hadoop)連携
FsShell
FsShell(HDFS)アウトバウンドチャンネルアダプター実装
Spring Batchとの関係
第十五章 SOAP連携
XMLスキーマの生成
GetQuoteRequestタグとXSDへの変換
GetQuoteResponseタグとXSDへの変換
quotes.xsdの生成
SOAPゲートウェイ・WSDLの実装
SOAPゲートウェイサーバーの実行