InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

SOAに関する未解決のミステリー

作者 Boris Lublinsky , 翻訳者 能仁 信亮 投稿日 2010年7月25日

セクション
運用/インフラ,
エンタープライズ・アーキテクチャ,
設計/アーキテクチャ
トピック
SOA ,
クラウドコンピューティング ,
ガバナンス

原文(投稿日:2010/06/02)へのリンク

数多くの書籍が出版され、ベンダーやアナリストが誇大な発言を行い、SOAは死んだと宣言され、後にSOAマニフェストで生き返ったという事実があるにもかかわらず、この話題にまつわるミステリーは依然として残っている。これらのミステリーの一部は、Joe McKendrick氏の最新の投稿のなかで述べられている。

SOAとクラウドコンピューティングの違いはなんだろう?この2つの関係は、David Linthicum氏によって、とてもうまく定義されている

SOAは、ITソリューションやアーキテクチャを定義するプロセスに関するものだ。一方、クラウドコンピューティングはアーキテクチャの選択肢のひとつだ。したがってSOAをクラウドコンピューティングで置き換えることはできない。実際のところ、大部分のクラウドコンピューティングのソリューションはSOAを通じて定義されていくのだ。これら2つは競合するものではなく、補完する関係にある概念だ。

McKendrick氏は、この話題に関してさらに詳しく次のように述べた。

突き詰めて考えると、クラウドとは企業の垣根を越えて、再利用可能なサービスを獲得したり、プロビジョニングしたりするものだ。同様にEnterprise 2.0は、よりよいコラボレーションや、エンドユーザによる情報のマッシュアップを実現するためにサービスにアクセスすることである。これらはサービス指向アーキテクチャであり、機能させる上では、SOAベースの原則に頼っている。

まだ誰もSOAを完全に実装していないのに、どうしてSOAが失敗しているといえるのか?SOAのもっとも単純な定義は次のようなものだ。

... サービス指向アーキテクチャ(SOA)は、システム開発とシステム連携のフェーズで利用される柔軟性のある設計の原則である。

これは、SOAがシステムを設計する手段だという意味である。言葉を換えれば、「What(何を)」ではなく「How(どうやって)」に焦点をあてたものだ。McKendrick氏の考えは次のようなものだ。

SOAは漸進的なプロセスであり、SOAを完全に実装した人はまだいない。たいていの企業は、まだ最初のSOAプロジェクトを企画したり思案したりしている段階だ。実際のところ、最近のSOAの主要な課題として私が繰り返し聞くのは、SOAが成功しすぎて、SOA道半ばの企業で、あまりにも多くのサービスが行き当たりばったりで追加されようとしたり、立ち上げられたり、求められたりするといったことだ。

どのようにして、SOAプロジェクトが成功したのか失敗したのかを知ることをできるのだろうか? このとき問題となるのは、エンタープライズ・アーキテクチャ全般や、SOAに限っても、何をもって成功したのかという基準がきちんと定義されていない点だ。Todd Biske氏は次のように述べている。

...企業が成功したと主張するのか失敗したと主張するかは、主に期待と目的に帰着される。期待値と目的が明確であれば、成功したか失敗したかも明確となる。... ここにリトマス試験紙がある。もしSOAを適用しているとすると、「成功しているとどのように知ることができるのだろうか?」という問いに答えることができるだろうか。もし質問に答えられないのであれば、何が基準になるか考えてみよう。あなたは、おそらく予想される失敗へと向かっているのだから。

Ugo Corda氏は、このことに加えて次のように付け加えた。

...SOAの利点のなかには、SOAが成功したと確かに確認するためには、十分な時間(たとえば数年)が必要になるものもあり、それらの成功談は、その時間軸を通して確認されたものではない。

McKendrick氏は次のように述べている。

これはSOAを始めるにあたっての、痛切なチャレンジとなる。成功を得るまでには長い時間がかかる。複数のビジネス・ユニットによってサービスが共用された結果として、サービスの開発時間が著しく短縮されたり、下支えするインフラストラクチャの柔軟性が増すことにより、ビジネスを再構成できるようになったり、製品やサービスをより早く市場に投入できるようになったりする。 市場における唯一の長期的な成功の尺度は、売り上げの増加か株価の増加であり、SOA以外のいくつもの要素が、これに貢献するのだ。

完全に機能している真のSOAの実装がどれぐらい存在するだろうか? 再び、疑問はどうやってこの数字を計測するのかというところに戻ってくる。サービスの数や粒度によって?それともサービス・コンシューマーの数によって?McKendrick氏は次のように語っている。

単なるWebサービスの一群が、いつSOAにかわるのだろう?Webサービスが、ガバナンスやレジストリ、管理、その他有益なものを用いて、より手間をかけて面倒をみなくてはならなくなるタイミングとはどういうものだろう。これらによって、よりSOAらしくなるのだろうか?

Herbjörn Wilhelmsen氏は、完全に機能するSOAには次の要素が必要だと述べることで、この問題を掘り下げている。

  • 明確で戦略的なリーダーシップ
  • ビジネス上の価値の優先度付け
  • 企業文化
  • 適切なインセンティブ
  • サービスを発見する能力
  • 相互運用性
  • 再利用の機会
  • サービスを進化させることを可能にすること
  • サービス・レベル・アグリーメント
  • サービス指向アーキテクチャをテストすること
  • サービスを監視すること

もしSOAが「テクノロジーに関することでない」のであれば、なぜ技術者がSOAを推進するのだろうか? McKendrick氏は次のように述べている。

これは、どんなカンファレンスでも、どんなアナリストノートでも、どんな論文でも、常に耳にすることだ。SOAは、完全に、確実に、確信をもってテクノロジーに関することではない。しかし、テクノロジーベンダーによってSOAが推進されているため、IT部門の庇護のもとにおかれることになるのだ。

As McKendrick氏は、次のように指摘している。SOAは、今まさに進化しているアーキテクチャ上のアプローチであり、いろいろと語られているにかかわらず、多くのSOAに対する発言は、事実よりも感情によって行われている。

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。