Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

SOAって万能なんですか?

  2010/09/01 00:00

変更に強くて、既存資産も再利用できるSOA。これぞ、企業システムのあるべき姿だ!と思えてくるのですが、世の中そんなに上手い話ってあるのでしょうか? 今日は、SOAの欠点を探ってみます。

イベントドリブンな世界は苦手 

生徒

これまでのお話を伺っていると、SOAはとても素晴らしいもののように思えてきました。こりゃあ、もうこれから作るシステムは全部SOAにせにゃいかんと思ったくらいです。ところで、SOAには何か欠点はあるんでしょうか?

先生

残念ながらいっぱいあるよ。大きなものだけでも二つある。まず、イベントドリブンな世界には適用できない。イベントドリブンという言葉には色々と定義があるんだけど、ここでは「ひとつの処理が次から次へとバトンリレーのように連鎖していく」イメージだね。

イベントドリブンな世界には適さない
イベントドリブンな世界には適さない
 

コンシューマがサービスにリクエストを投げて、そこからリプライをもらうのがSOAの基本形だったよね。ところが、リクエストを受け取ったサービスが別のシステムに処理を投げて終わってしまうようだと、いつまでもコンシューマのもとにリプライが返ってこない。そういったシステムにはそもそもSOAは使えません。

生徒

リプライが戻ってこないと、なぜSOAが使えないのでしょうか?

先生

SOAっていうのは、一定のプロセスを終始ひとつのコンシューマが管理するわけだよね。最初は、在庫確認サービスを呼んで、次に納期確認サービスを呼んで、という具合に、コンシューマが色々なサービスと対話しながら仕事を進めていくわけです。

 

ところが、イベントドリブンの世界では、処理の主体は次々と変わっていきます。ひとつのイベントが発生すると、ある処理が呼び出され、それがさらに別の処理を呼び出して、、、ドミノ倒しのように次々と勝手に処理がキックされていく。コンシューマは処理を呼び出したら最後、何の応答ももらえず、処理がどうなったかも分かりません。

ドミノ倒しで処理が進むとサービス・コンシューマの出る幕がない
ドミノ倒しで処理が進むとサービス・コンシューマの出る幕がない
生徒

なるほど。コンシューマが出る幕はなくなっちゃいますね。

先生

そういうことだね。サービスとコンシューマがそれぞれ独立している関係のことを「疎結合」といいます。サービスとコンシューマはメッセージだけでコミュニケーションをとっていて、互いの内部構造に首を突っ込んだりしない。一方、イベントドリブンの世界では、モジュールたちはお互いの動作について一切関知しない。これを非結合といいます。非結合な世界にはSOAは向きません。これが欠点の一つ目。

生徒

なるほど。他にもあるのですか?(ページへ続く)

 

 

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 南波 幸雄(ナンバ ユキオ)

    産業技術大学院大学 産業技術研究科 教授、博士(学術)。専門は情報システムアーキテクチャ、概念データモデリングの教育、CIOの養成など。 学生時代は化学工学を専攻。1972年にソニーに入社。磁気テープの研究・開発・製造技術などを担当。その後、生産管理システムプロジェクトへの参画を機に、情報システム...

バックナンバー

連載:南波先生のSOAってそういうことだったのね講座

もっと読む

All contents copyright © 2007-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5