InfoQ

News

SOAガバナンスの再検討

作者 Boris Lublinsky, 翻訳者 編集部 投稿日 2008年6月15日 午前6時7分

コミュニティ
SOA,
Architecture
トピック
ガバナンス,
エンタープライズアーキテクチャ
タグ
IBM,
IBM Rational,
サービスデザイン,
SOA Adoption

SOAは導入が増えているにもかかわらず、多数のSOAプロジェクトがいまだ失敗している(参考記事・英語)。あまりにも深刻な状況に陥ることが多いので、最近では「SOAかDOAか」(SOAか失敗か)(source)という受けを狙ったような題名の記事があった。DOAは「Dead on Arrival」、つまり「最初から機能しない」を意味する。この状態を改善する方法の1つが、適切なSOAガバナンス(参考記事リンク)である。

Muhammed Yaseen Muriankara氏は最近の論文「SOA governance framework and solution architecture」(SOAガバナンスのフレームワークとソリューション・アーキテクチャ)(source)で、ガバナンスの基本レベル3つを定義している。エンタープライズ・ガバナンスとは、

責任の連鎖、権限、コミュニケーションを確立して人々に権限を与え、測定、ポリシー、制御の各メカニズムを確立して、人々が個々の役割と責務を果たせるようにすることです。

エンタープライズ・ガバナンスの一部を構成するITガバナンスは、

組織の情報技術(IT)プロセスに関係したガバナンスの側面であり、そうしたITプロセスがビジネスの目標を支援する方法のことです。

最後に、SOAガバナンスは次のように定義されている。

サービス構成要素やサービス、ビジネスプロセスのライフサイクルの中に、重要なITガバナンスの解決を委ねるITガバナンスの専門分野。このライフサイクルの効果的な管理がSOAガバナンスの重要目標なのです。

論文は、SOA Governance and Management Method(SGMM=SOAガバナンスと管理手法)(source)という、SOAガバナンスを導入するためのIBMによる方法論とモデルを紹介している。この方法論は、IBM Rational® Method Composer(source)を使って文書化されており、ダウンロードできる。

SGMMはサービスライフサイクル(source)を中心に組み立てられており、以下を網羅している。

サービス定義

SOAガバナンスの最重要側面は、サービスの作成を監督することです。サービスを識別し、その機能を記述し、動作を詳しく調べ、インタフェースを設計しなければなりません。

サービステスト

SOAにより、機能を分離状態でテストする機会が増え、その機能が意図したように働くという期待が高まります。しかし、SOAにより、新しい消費者が現れるごとに同一機能を繰り返し再テストすることにもなるのです。サービスの新しい消費者は、利用するサービスが常に正しく働いていると確信しているとは限らないのです。一方、複合アプリケーションはサービスを共有しますから、バグのあるサービスが一つあれば、表面上無関係に見える複数のアプリケーションに悪影響を与え、こうしたプログラミングミスがもたらす結果が増幅されてしまいます。

サービスデプロイメントのライフサイクル

サービスは即座に生まれて、その後永久に存在するわけではありせん。あらゆるソフトウェアがそうであるように、サービスには計画、設計、実装、デプロイ、維持、そして最終的な廃棄が必要です。アプリケーションのライフサイクルは公開可能で、組織の様々な部分に影響を与える可能性がありますが、サービスのライフサイクルはさらに大きな影響を与える可能性があります。なぜなら、複数のアプリケーションがひとつのサービスに依存する可能性があるからです。

サービスのバージョニング

サービスのバージョニングにより、既存サービスに満足しているユーザーはそのバージョンを変更せずに使い続け、新しい必要条件のあるユーザーに対しては、要件を満たすようにサービスを進化させることが可能になります。現在のサービスインタフェースと動作を1つのバージョンとして維持すると同時に、別バージョンとして新しいサービスを導入します。

サービス所有権

SOAはビジネスを反映すべきです。これが意味することは通常、SOAを変えてビジネスに適合させることですが、ビジネスを変えてSOAにマッチさせることが必要な場合もあるかもしれません。それが不可能な場合、部門間の協力を強めて、共通のサービスを開発する負担を複数の部門でシェアする必要性が出てきます。全組織にまたがる常任委員会が事実上サービスを所有し、管理するのですが、部門間のこうした協力は、常任委員会によって実現することができます。

サービスのセキュリティ

SOAによって、容易に再利用できるサービスが誕生しますが、再利用すべきではない消費者でも容易に再利用できてしまいます。認可ユーザーであっても、サービスがアクセスする全データへ、すべてのユーザーがアクセスしてよいわけではありません。サービス消費者の中には、同一サービスの他の消費者よりも、より高度のデータ機密性、完全性、否認防止を必要とする消費者もいるのです。

サービスの監視

複数のサービスを結合した複合アプリケーションの信頼性は、そのアプリケーション自体が依存しているサービスの信頼性を上回ることはありません。複数の複合アプリケーションはサービスの共有が可能になっているので、ひとつのサービスに障害が出ると、多数のアプリケーションが影響を受けます。消費者の拠り所となり得る信頼性とパフォーマンスを記述したSLA(サービス内容合意書)を定義する必要があります。定義済みのSLAを必ず満たしているように、サービスプロバイダを監視しなくてはなりません。

論文は、SOAガバナンスの方法論だけでなく、ツール一式(ガバナンス・プラットフォーム)も説明しており、多数のガバナンスプロセスを少なくとも部分的に支援し、自動化可能にしている。

スタートアップ・プロジェクト向けに最低限必要な自動化機能には、以下が含まれます。
     
  • サービス関連のアーチファクトやメタデータを検索するための、中央集中されたレジストリおよびリポジトリ。この機能は以下を可能にするために必要です。
    • 適切な認可サービスを検出する
    • 取り組みの重複を回避する
    • 再利用を促進する
    • SOAライフサイクル内でのサービスの現状を識別する
    • サービスのサブスクライバーに可視性を提供する
    • 関連サービスとサービス変更の影響を探し出す
    • サービスに施した変更を伝える 
  • サービスに適用するポリシーを関係づけ、実施するメカニズム。ポリシーはガバナンスフレームワークを利用することにより定義します。
  • カスタマイズ可能なライフサイクル認識システム。ライフサイクル内の段階変更に伴って妥当性確認を発動するライフサイクル認識システムにより、段階ごとのガバナンスの妥当性確認を自動化できるようにします。
  • レジストリはSOAランタイムで最適化されていれば理想的であり、そうすればレジストリに格納されたメタデータを使い、ランタイム時に動的ルーティングを介してエンリッチメントを提供可能です。
  • この論文とリストに挙げられた参考資料は、SOA実装に関わるすべての人々、特にSOAガバナンスの関係者に最適の読み物である。

    原文はこちらです:     http://www.infoq.com/news/2008/06/SOAGovernanceRevisited

    ブックマーク
    digg+,
    reddit+,
    del.icio.us+,
    dzone+,
    Hatena

    No comments

    返信

    ジャンル別一覧

    "YUKATA"から始まるコミュニケーション(Agile2008 ライトニングトークより)

    私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。

    ソフトウェアのリーン思考入門

    これは、InfoQ Chinaのアジャイル編集者、Jacky Li氏によるリーン思考とリーン思考をどのようにソフトウェア開発に適用するかについての入門です。

    Java 6のスレッド最適化は実際に動作しているのか?

    2つのパートからなるこの記事では、シングルスレッドベンチマークの助けを借りて、Java 6のスレッドのパフォーマンスに関する疑問に答える試みをしようと思います。

    平鍋氏のGordon Pask Award受賞スピーチ

    Agile2008において、Gordon Pask Awardの授与式が行われ、その一人として、チェンジビジョンの平鍋氏が受賞しました。本賞は、毎年、アジャイルコミュニティで定評のあるリーダーだけではなく、新たなリーダーになる可能性のある者に贈られるものです。InfoQでは、授与式のスピーチを動画にてお送りします。

    Linda Rising氏による「誰を信頼しますか?」

    Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。

    Jean Tabaka氏による「Collaboration Explained--真のアジャイルチームのためのファシリテーションツール」

    Jean Tabaka氏の書いた書籍では、会議などのチーム活動において、ファシリテーションの手法とツールについて具体的かつ実践的に説明しています。8/8(金)、Agile2008の最終日の朝のセッションでは、Jean Tabaka氏自身が本の内容をベースとしたセッションを行いました。

    Hubert Smits氏による「ゲーム・デザイン・ワークショップ」

    Agile2008の4日目となる8/6(木)の8:30から、Hubert Smits氏による「ゲーム・デザイン・ワークショップ」がおこなわれました。ゲームと言っても単なる遊びではなく、「フレームゲーム」と呼ばれる、グループでの情報収集や意志決定、また教育やトレーニングの教材として使えるいろいろなゲームです。

    スケーラビリティに関するベストプラクティス:eBayからの教訓

    eBayが日々挑んでいる主要なアーキテクチャの勢力は、スケーラビリティです。これはアーキテクチャや設計に関するあらゆる意思決定を特徴づけたり、駆り立てたりします。