IBM Global Servicesが最近出した白書(リンク)ではIBMの技術アカデミーがそのSOA導入を成功に導くのに用いた方法が述べられている。SOA導入の際に技術アカデミーは5つのことを重要視していた。
- 将来を見据えたビジョンに合ったアーキテクチャをつくる - 単純な結合性だけでなく、より多くのことを考慮してアーキテクチャをつくることはSOAの導入において幾度も立ち返ることになる一番の原点だ
- ITをビジネスプロセスへつなぐことを予め設定する - ITをビジネスに使えるサービスプロバイダとなるようなアーキテクチャを導入すること
- 文化、スキル、トレーニング、組織構造、意志決定、報奨制度、コラボレーション、ガバナンスなどSOAをサポートする組織体制をつくる
- スケーラブルなインフラを整備する - 適切な構成と評価をおこないサービスのパフォーマンスとスケーラビリティを確保する
- 運用状況がはっきり分かるようにする - ガバナンスとサービス管理を重点的におこなう
IBMによると、
(SOAの)デプロイを成功させるには、中心となるアーキテクチャリーダーチームが最初に一貫した方向性を確立してアーキテクチャのビジョンを与えないといけません。ベストプラクティスはアーキテクチャを決め・・・再利用、データ管理などに分けられたテーマ・・・にグループ分けができます・・・
SOAの再利用は従来のコード再利用の域をはるかに超えるものだ。それはアーキテクチャの再利用を目的とし、綿密で周到な計画・作成・管理をもって、企業にSOAの浸透を促進させることができる再利用可能なアーキテクチャの枠組みをつくりだすことだ。
既存のウェブサービスが標準に従っている、あるいは簡単に構成を変えたり統合したりできるものだと考えてはいけません。サービスはトランザクション、処理の単位や範囲、エラーハンドリング、セキュリティ、認証情報の伝達、ビジネスロジックの集約など複雑な構成をもっています。最初からサービスが再利用できるよう設計をおこない、ビジネス利用が進展するのにあわせて再利用性を上げていくことがベストプラクティスのひとつとなります。
このように白書では述べられている。
多くのSOA導入ではサービスの実現に目が向けられ、データ管理というSOAの一面には十分な関心が払われていない。このことはデータの誤った管理、信頼性のないデータ、データ完全性を脅かす要因へとつながる。SOAを実践する人でも多くの人が、データのやり取りは旧来のポイントツーポイントでしかないとまだ思い込んでいるのだ。
IBMによると、
データ利用をサービスへと展開するにつれて、情報メタデータの効率的な管理とCIM(Common Information Model:共通情報モデル)が成功の重要な鍵となります。CIMを使うと、標準を決めることができ、全てのインターフェースやメッセージ、データ構造、データ変換といった情報をメタデータで記述して再利用性を高めることもできるので、素早い開発の助けとなります。ベストプラクティスを標準化するモデルドリブンの手法もまた開発を加速し、インターフェースや情報構造により一層の一貫性をもたらします。このモデルドリブン手法を使うことで変換の必要な場面を減らすことができ、また変換が必要となったときにそれを設計するのが非常に簡単になります。
ITとビジネスとのつながりについては、
・・・今後のビジネスプロセス像を見据えた、ITとビジネスプロセスをつなぐ目的ある取り組みが求められます。つまり、ビジネスプロセスがどうなっているかでなく、どうあるべきかを考えてSOAソリューションの将来を描く必要があるのです。ビジネスプロセスのモデリングは鍵となるビジネスのライフサイクルをトレースする効果的な方法で、それによりシンプルで柔軟なビジネスプロセスモデルを得ることができます。同時に異なるステークホルダー間でより簡単にコンセンサスを得ることができるビジネスとITの両面で筋の通った適度な大きさのタスクを手にすることもできます。
このようなモデリングはモデルが正しいことを裏付ける確固とした方法論に基づいている時にのみ有効となるものだ。もし高いレベルでのビジネスプロセスモデルが間違っているなら、実行動レベルのビジネスプロセスへ落とし込むことは困難かつ高コストのものになってしまう。IBMによると、
コンポーネントビジネスモデリング(CBM)とサービス指向のモデリングとアーキテクチャ(SOMA)は両方ともモデリングのためのベストプラクティスをサポートするものです。CBMは企業全体を相対的に独立した重複のないコンポーネントへと分割し、イノベーションや改善のポイントを探る分析を手助けします。サービス指向モデリングはSOAを作り出すのに必要で、またビジネスのコンポーネント化分析の結果をビジネスゴールや鍵となるパフォーマンス指標として生かすためにも必要なものです。その結果、特定のテクノロジに依存しないSOAと、どのようなテクノロジを使えばもっとも有効になるかが明確なモデルが生まれるのです。
IBMの調査で報告されている教訓およびベストプラクティスの中で最も数が多いのは、組織に起因するインパクトについてで、次のような文も含まれている。
・・・サイロ化(外部とやり取りを行わない状態)した組織構造を手放しましょう。そのような組織構造は思考を各プロジェクトの範囲内に限定しがちです。それぞれが意図を持つ多くのプロジェクトをどこかでコントロールしないで統合しようとしても、ほぼそれは不可能ですし、ほぼ必ず非効果的なものになります。ベストプラクティスの一つは、技術面での関係者を束ねる設計責任者を置いて、早い段階でアーキテクチャが決定されるよう促すことです。
IBMが報告するSOAから継続的な恩恵を得るためのキーとなる別の要素はSOAガバナンスだ。これによりビジネスゴールを達成するのに最もよいプロジェクトに対してビジネスチームとITチームが協力して取り組んで意識を共有することができる。
最初のSOAプロジェクトよりも先に、SOAのためのパイロットプロジェクトをおこなっている段階でSOAガバナンスを導入することが必要です。これにより重要プロジェクトでのSOA導入をトレーニングで終わらせるだけでなく、その複雑性をうまく扱えるようにするのです。またSOAガバナンスは組織のエンタープライズアーキテクチャ(企業のプロセスや組織を記述する手法)プログラムにも合わせるべきです。
オーバーラップしたり一貫性のないガバナンスモデルが個々のプロジェクト内にあると混乱と作業効率の低下につながる可能性があります。それを避けるためには企業全体あるいはプロジェクトを横断する視点が必要です。
通常SOAを導入すると多くのサービス間でやり取りが発生する。そのためSOA導入ではスケーラビリティ、信頼性、高可用性が最も重要な要件に含まれる。これに関してIBMは次のように推奨している。
できるかぎり、信頼性とパフォーマンスの要求レベルを満たす既知のソリューションを用いましょう。そしてパフォーマンス、スケーラビリティ、相互運用性の要求が満たされるように設計、テスト、再テストをおこないましょう。これら非機能要求に対する適切な対処とテストなしにシステムを稼働させてはいけません。
SOAの成功のキーとなる別の要素は運用状況の明確化とSOA実装のコントロールだ。
自分たちのアーキテクチャの全てのレベルにおいて情報の構造化を十分におこなえるところまで、問題やハプニングの管理システムと問題特定やトラブルシューティグのツールを連携させないといけません。同時に、SOAインフラ管理を簡素化する技術的なシステムを選択することも複雑さを抑えるのに役立つでしょう。
IBMの白書で述べられている5つの要素は、SOAを実践する企業や個人がSOA導入における最も重要なポイントをもらさず知るのに(以前の私の記事より(参考記事・英語))役立つ。そしてそのことでSOAシステムを計画し実行する上での投資目標をより効果的に達成することができる。また現在SOAから得られている恩恵があれば、それを企業システム全体へと拡大する助けともなるだろう。