Larry Pizette氏、Salim Semy氏、Geoffrey Raines氏、そしてSteve Foote氏が作成したMITREのホワイトペーパーによると、下記が成功するSOAの実装だ。
- SOAが最良のアプローチなのかどうか吟味すること。ホワイトペーパーによれば、
SOAが提供するのは再利用性や開発の素早さ、低結合度等の利点ですが、これらの利点は必ずしもソフトウエアアーキテクトについて最優先に取り込まなければならないことではありません。
例えばリアルタイムシステムや一定の制約があるネットワークを使った分散システムではSOAは適切な設計パラダイムではない可能性が高い。 - SOAを実装するにあたって、ビジネスや経営上の問題に焦点を当てることから始めること。SOA導入によって企業の時間と費用の削減を完全に達成するには、技術的なことだけを考えるよりもビジネス上の問題に焦点をしぼるべきだ。
組織のSOAの導入目的がビジネス上の問題と関連しその問題を解決するためであれば、サービスの共有化やビジネス上の素早さ、シンプルなシステム統合はその組織にとって利益になります。
このホワートペーパーの著者たちはビジネス上の目的をしっかり定義したSOAの実装事例を列挙している。 - 鍵となるビジネス上の作業を支援するためにサービスを導入すること。SOAの主要な価値は、さまざまなビジネス上の作業で共通に利用できる重要な機能をサービスとして提供することでITポートフォリオ上の余剰を低減することだ。
企業のビジネス上の作業に焦点を当てることで、サービスを再利用することは自然な設計になります。... また、ビジネスプロセス上の正しいレベル(例えばサービスが提供する機能の大きさ)でサービスを定義しなければなりません。実際のビジネスプロセスとサービスを簡単に結びつけられるようにするためです。
このホワートペーパーがサービスの重要な特性として挙げているのは低結合とサービスの実装の柔軟性だ。このホワイトペーパーでは最後にサービスの契約の形式化とサービスの可視化についても論じている。これらは一般的にはサービスの登録によって実現される。 - データを検証すること。これはSOAがデータの問題を解決しないので、それらの問題をあぶり出すためだ。SOAが柔軟性を提供するひとつの方法はアプリケーションとデータの依存関係を低くすることだ。この方法を実現するには、データサービスを提供してアプリケーション側がこのサービスを通じてデータにアクセスするようにするのが典型的だ。しかし、ホワイトペーパーでは下記のように注意を促している。
SOAを実装すること自体がデータの問題を解決するわけではありません。SOAはデータへのアクセスしやすさを改善するかもしれませんが、データの品質や可用性、コミュニティ間の語彙の差異などが原因で使いにくくなることもあります。... データへの着目をおろそかにするとSOAが提供する価値が損なわれる可能性があります。
ホワイトペーパーの著者たちよれば、SOAの実装に上手くデータを統合するにはデータの意味を定義し、データの生産者と消費者の間でのデータ交換方法の一貫性を担保する必要がある。つまり、データから余剰を取り除き、矛盾をなくし、データの鮮度と可用性を保つことでデータの品質を維持し、... さまざまな利用者、場合によっては予期していない利用者もサポートするネットワークを通して分散データサービスを提供しなければならない。 - 始めは小さく、そして学びながら育てていくこと。著者たちによれば、SOAプロジェクトの失敗の原因の中で最も多いのが、SOAの適用範囲が適切でないことだ。
...アーキテクトがやりがちなのは、実際のビジネスケースを考慮すれば不適切なのにもかかわらず、最初から企業全体へSOAを適用しようとすることです。... SOAを適用する一番良い方法は、小さく始めて学びながら育てていくことです。インクリメンタルな開発をすることで、大規模にSOAを適用する前に知識を収集できます。こうすることでビジネス上のリスクを最小にし、徐々にSOA導入の効果を得ることができます。SOAの適用範囲を決めるとき大切なのは、ビジネス上の意味のある問題にSOAを適用し、その設計に焦点を合わせ、期待する結果を明確にして、成功したかどうかを測定することです。また、学習することも重要です。学んだことは今後の開発に利用できます。
産業研究に基づくこのホワイトペーパーの著者たちが示すのは、特定のビジネス上の問題を対象にして試験的にSOAを導入し、導入結果のビジネス上の成功条件、設計上の成功条件を明確に定義することだ。そして、次のSOAプロジェクトを始める前に獲得した教訓を生かすことも推奨している。 - 長期的な視点を持つこと。たとえ始めは小さく始めたとしても、長期的な視点に立脚してSOAの開発や運用に励むことが重要だ。
現時点でのことだけ考えてSOAを構築しても、特定の利用者を想定した小さな依存性の高いサービスになってしまい、その結果はふたつのシステムの間を≠ョ細長いパイプができるだけです。SOAの将来の適用形態や予想できない使われ方に対して何か計画を練っておかなければ、将来の要求に対応できなくなる可能性があります。故に、SOAは要求が進化していくことを前提として設計するべきです。SOAの構築はその適用範囲についてだけでなく、要求についての拡張性と発展性も考慮しなければなりません。
著者たちが長期的な視点を持つために必要だと考えているのは、サービス管理(モニタリングによる)と管理上の目標がどのくらい達成できているかがわかる情報を提供し、ピンポイントで支援して問題を解決することだ。また、インフラを含むサービスの実装の拡張性、サービスの相互作用、拡張可能な開発とテスト方法、適切なセキュリティ基盤等も必要だとしている。 - SOAにとってガバナンスが鍵となるということを確認すること。
企業規模のSOAの適用に必要な実装の変更を成功させるには、適切なポリシーとプロセスを定義する必要があります。このポリシーとプロセスはビジネス上の要請に従います。SOAの構想を成功させるにはガバナンスに対する組織のコミットメントが不可欠です。
ホワイトペーパーに記述されているガバナンスについての記述には次の項目が含まれている。まず設計については、サービスの実装の一貫性を保証するための最小限の制約を設定すること。そしてインフラストラクチャについては、メッセージングやセキュリティ、その他の有用なサービスを含むインフラストラクチャプラットフォームがすべてのSOAプロジェクトで標準化されていることを保証するポリシーを設定すること。情報については、データのオーナシップを定義し、データが企業として選択したデータ標準に従うようにポリシーとガイドラインを確立すること。また、データの品質の計測基準に従うポリシーを定義すること。そして、ポートフォリオについては、サービスのライフサイクルとビジネス計画や共通のサービスの一貫性を保証するポリシーを確立すること。そして、サービスを開発したとき、既存のアプリケーションがそのサービスを適切に利用できることを保証すること。 - 期待する投資利益率を見積もること。著者たちの産業研究に基づく見解は、
...SOA導入の最大の目的はコスト削減にあるのですが、... SOAの導入で根本的に難しいのはいくら投資するのか決めることです。SOA自体にいくら投資するのか。SOA導入で学習できる多くのことにいくら投資するのか。SOA導入のための技術不足やSOAの馴致、十分に成熟した業界標準の不在、統合的なSOAを実装するためのユーザの企業管理能力(例えばガバナンス)の不足にいくら投資するのか。SOAを導入する企業はどのくらい投資が必要でどのくらいのROIが見込めるのか、現実的に見積もっておく必要があります。
著者たちが強調するのは、初期のSOAの実装は従来のアプリケーションに基づいた実装に比べて、ほぼ間違いなく高くつき、実際のコスト削減は企業のすべての部門で実現できない可能性が高いということだ。彼らの考えでは、コスト削減は長期的に考えた場合、SOAが組織にもたらした素早さや情報共有能力によってもたらされる。加えて、サービスの再利用も維持費の削減をもたらすだろう。
このホワイトペーパーはかなり高度な内容だが、SOAの主要部分をほとんどについて着目し、論じようとしている。したがって、このホワイトペーパーはSOAの実装を考えている人には優れたイントロダクションとなるだろう。また、すでにSOAを実装したことがある人にとっても啓発的だ。単にかっこいい技術のことだけではなく、設計やビジネス、ROIについても書かれているからだ。