SOA

まずインフラとサービス開発に分けて考えたいと思う。

インフラ

インフラとしては通常のH/W、ネットワーク以外にミドルウェアがある。
ミドルウェアは、今各ベンダーがしのぎを削っている。

  1. BEA,IBM,SUNなどのアプリサーバ系
  2. Sonic、IBMのMessageSystem系
  3. IonaのCORBA系

で特徴が異なる。
いずれにしてもサービスの位置透過性やミドルウェアが持つべきシステムサービス(コンテンツルーティングなど)を提供している。
厳密にはサービスとは言わないかもしれないが、データベースへのアクセスサービスなども提供している場合もある。

データトランスフォームはEIPに出てくる要素で、重要なのかもしれない。

サービス開発

実際のサービスを開発する際には粒度が重要。
大きなIFでESBに登録する。そのIFの実装としてBPMサービスが管理しているフローにマッピングすることもできる。
また、外部サービスに変更することもできる。

EAのBAに基づく粒度

EAのBAにあたるサービス粒度

EAのAAに基づく粒度

EAのAAにあたるサービス粒度

テクニカルあるいはコンポーネントサービス粒度

再利用を意図するライブラリ的な粒度