BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 漸次的なSOAの価値とは何か

漸次的なSOAの価値とは何か

原文(投稿日:2009/11/01)へのリンク

最近の記事の中で、John Moe氏がSOAの実現方法の分類について議論している。特に言及されているのは、ゼロミドルウエアまたはゲリラSOAとも呼ばれる漸次的なSOAについてだ。John Moe氏が言うには、...

... SOAをよりシンプルで手頃に導入できる選択肢にする数人のグルがいます。私はこれらの選択肢のどれを導入するのか考えることはゲリラSOAについて考察することだと思います。また、このことを考えると各々の手法の違いがはっきりして、自分の状況にとって最適だと思える手法を見つけることもできるでしょう。

氏が取り上げた手法は下記の通りだ。

  • Webサービス: 次のように考えている開発者に向いている。 "WebdサービスはWeb上で進化し続けるWS標準を使って互いに呼んだり呼ばれたりすることができるのだから、SOAとは結局、Javaか.NETを使ってWS-*に正確に適合するコードを書くことだ。"
  • アジャイル: "アジャイルは工数を削減するためにSOAに適用されることがあります。しかし、アプリケーションの開発ではなくサービスの開発にアジャイルを適用するように気をつけなければなりません。そうしないとアプリケーションの型にはまったサービスが出来上がってしまうでしょう。"
  • サービスプロバイダ: "Software as a Service (SaaS)はどんどん主流になるに従って、Web上で何らかの機能を提供しているサービスプロバイダ(例えばベンダ)は、ブラウザとウィジェットを組み合わせてアプリケーションを開発する方法の一層の普及に励むでしょう。とりわけ、業務上の要求を処理するためには単純にSaaSが提供する機能を組み合わせればいいだけの場合は、この方法が推奨されます。そして、この手法でできたアプリケーションをクラウド環境であるPlatform as a Service (PaaS)上で実行することもできます。"
  • 製品ベンダ: "未だにSOA製品のベンダは多く、その数はさらに増えて市場をいっぱいにし、顧客のビジネスのために必死で戦っています。多くの製品は独創的で顧客の役に立ちます。また、次のようなふれこみの製品も一定数あります。すなわち、“我々のツールを購入すれば、SOAを実現するために他に買わなければならないものはありません”。製品ベンダは次のうちどちらか素早く導入できる方法を提案しようとします。つまり、その製品をサービス指向の基盤の必要な一部としてのみ利用するのか、または、立ち上げるSOA環境が大きい場合は[大企業SOAの環境を立ち上げるために必要な]2億5000万ドルの費用をもらおうとするのか。"

Jim Webber氏Dave Chappell氏、Steve Jones氏などがこの記事を取り上げた。まず、Dave Chappell氏がベンダ駆動のSOAソリューションに発生することが明確なコストについて コメントした。

大企業のすべてのSOAプロジェクトが我々のミドルウエアのために2億5000万ドルを使ってくれたら、私の雇い主(Oracle)はきっと大喜びでしょう。

そして、氏はJohn Moe氏の議論の核心について着目した。

SOAでもそうでなくても、プロジェクトのコストの大部分は人間の作業時間です。SOAの原則に基づいたプロジェクトをミドルウエアなしで実行することは時間を無駄にしながら車輪の再発明をしているだけだと思います。そうして開発した機能は、長い間メンテナンスされてきたプロプリエタリなフレームワークの中に組み込まれています。さらに悪い場合は、プロジェクト自体が"ゲリラ"コンサルタントに翻弄されてしまいます。

ベンダに属していないSteve Jones氏はChappell氏に賛成している。

+1

SOA製品に支払うコストがプロジェクトのコストの大部分を占めるというのはナンセンスです。ほとんどのプロジェクトは長く計画されますが、そのうち少なくとも2割強のプロジェクトは契約期間が短いです。SOAで実装よりもSOA製品のライセンスに費用を費やしている人はベンダに操られているじゃないかと思います。

Jim Webber氏もまたベンダではない会社に属している。氏は上の議論に対して反論するため実体験に基づく証拠を示している。氏が議論しているのは、氏と氏のチームが実際に契約を交わして関わったあるデータ伝送の案件についてだ。

最初のプロジェクトを始める前に、顧客が既にこれから導入するアーキテクチャ(1ヶ月に10億トランザクションをさばける必要がある)についての分析に着手していました。分析したのは一流のコンサルタント会社です。そのコンサルタント会社の結論は、既存のシステムを手早く連携させるためにバスを配置し、その他の機器もこのバスに集約するという方法でした。ミドルウエアに必要な先行投資は1000万ポンドぐらいになりました。全体の計画の中で考えれば決して巨額の投資というわけではありませんでしたが、この1000万ポンドの投資だけで有効なソリューションがすぐに生まれる訳ではありません。この投資はいつの日かきっと回収できるであろうビジネス価値を生み出す過程の最初の一歩にすぎません。もっとも、このビジネス価値が生まれたかどうかを検証するためのデータはほとんど手に入りません。

ベンダに払う必要があるコストは大きすぎる。それゆえ、代替手段も検討して、アジャイルやゲリラSOAと呼ばれる方法を採用したところ、氏のチームは ...

...数週間で問題の分析が終えることができました。分析結果には、問題のドメインでどのくらいの時間にどれだけの負荷がかかっているか、そしてその負荷を分散させるにはどうしなければならないかについての簡単な数理的モデルも含まれています。そして、どのようにして漸次的にアーキテクチャを変更していけば価値を早く生み出すことができるのかについて理解するのに時間をかけました。その結果、一般的なHTTPサーバを使ってミドルウエアにはコストをかけない方法を提案することにしました。そして、さらに重要なことに数値を算出することでこの手法の効果を検証しました。つまり、高度な設計を行ったシステム上でスループットとレイテンシの代表的な増減の特徴を計測しました。そして、わかったのは、HTTPを使ったことも選んだサーバもシステムがサポートしなければならない量のトラフィックを扱うにはちょうど良いということでした。

氏によると、このプロジェクトはさらに成果を挙げ、最終的には顧客の支出は比較的少なく済んだ。最初のプロジェクトが成功したことで次の契約も生まれ、そのプロジェクトも成功裏に終わった。氏は結論として、Dave Chappell氏の人件費についての発言に直接答えている。

しかし特に興味深いのは、人件費とミドルウエアのコストとの問題に立ち戻ると、次のように言えそうだ、ということです。つまり、ミドルウエアにお金をつかう必要はありません。その代わりに100万ポンドを人に使いましょう。1000万ポンドの先行投資が必要な元のギャンブルみたいな提案と比べても有利です。はっきり書くと:

動作するソフトウエアを開発する手法の総コスト: £0 (ミドルウエア) + £1,000,000 (スタッフ) = £1,000,000

ミドルウエアを導入する方法の総コスト: £10,000,000 (ミドルウエア) + £? (スタッフ) = > £10,000,000

Steve Jones氏は Jim Webber氏に答えて次のように書いている。

5年先までのサポートのコストも考慮しているのかどうか疑問です....

そしてJim氏の例の中に出てくる金額について、特にミドルウエアの費用1000万ドルについて注目する。

[...]ミドルウエアの先行投資に1000万ドルも費やす人が本当にいるなら、その人は完全に疑問の余地なく馬鹿です。ミドルウエアの先行投資にそんな金額を費やす人なんて想像するのも難しいです。IT関係だけで年間の費用が総額5億ドルを超えてしまう組織がそれだけの金額を投資できるなんて想像もつきません。

ミドルウエアを導入するにしろ、自前で開発するにしろ、実体験に基づく証拠はすべての意思決定の参考にしにくい(また悪いことに、事例は何らかの結論を導きだすための統計的なサンプルとしては良質ではない)。すべてのSOAの実践者はベンダに属しているにしろそうでないにしろ、自分たちのプロジェクトの成功や失敗の理由について深く分析しているが、その内容を開示しないもっともな理由も持っている。本当に客観的なデータがなければ、ある方法にはその他とを比べてどんな利点があるのか正確に判断することは難しいだろう。しかし、Steve氏は最後に面白い指摘をしている。

Jimの記事で彼が考慮していないのは1000万ドルの意思決定に関われる愚か者もいるということ....いまのところ私の給料はそこからやってきています。

そして議論はさらに白熱する。

この記事に星をつける

おすすめ度
スタイル

BT