まずインフラとサービス開発に分けて考えたいと思う。
インフラ
インフラとしては通常のH/W、ネットワーク以外にミドルウェアがある。
ミドルウェアは、今各ベンダーがしのぎを削っている。
- BEA,IBM,SUNなどのアプリサーバ系
- Sonic、IBMのMessageSystem系
- IonaのCORBA系
で特徴が異なる。
いずれにしてもサービスの位置透過性やミドルウェアが持つべきシステムサービス(コンテンツルーティングなど)を提供している。
厳密にはサービスとは言わないかもしれないが、データベースへのアクセスサービスなども提供している場合もある。
データトランスフォームはEIPに出てくる要素で、重要なのかもしれない。
サービス開発
実際のサービスを開発する際には粒度が重要。
大きなIFでESBに登録する。そのIFの実装としてBPMサービスが管理しているフローにマッピングすることもできる。
また、外部サービスに変更することもできる。
EAのBAに基づく粒度
EAのBAにあたるサービス粒度
EAのAAに基づく粒度
EAのAAにあたるサービス粒度
テクニカルあるいはコンポーネントサービス粒度
再利用を意図するライブラリ的な粒度