レベル: 中級 Rishi S. Balaji (ribalaji@in.ibm.com), Associate IT Architect, IBM
2007年 11月 29日
この 2 回連載の記事では、サービス指向アーキテクチャー (SOA) のサービスを対象としたアセット・ベース開発に焦点を当てます。アセット・ベース開発と SOA 開発それぞれの世界を代表する IBM® 製品が連携して SOA 実装で効果的にアセットを再利用できるようにする仕組みを学んでください。今回の記事で説明するのは、SOA を実装する際に SOA ライフサイクルとアセット・ライフサイクル、そして IBM Rational® Method Composer プラグイン製品に記述されたガバナンス・プロセスを並行して利用する方法です。第 2 回では、SOA ライフサイクルとアセット・ライフサイクルにおけるサービスのさまざまなフェーズに応じて、IBM ツールを使ってサービス・アセットとメタデータの効果的な管理そしてガバナンスを行う方法を説明します。
はじめに
SOA の重要な原則の 1 つは、SOA のライフサイクル全体でサービスを再利用可能なアセットとして捉えることです。したがって、SOA のサービスには正式なアセット開発プロセスとガイドラインを適用することが重要になります。この記事では、主要な IBM 製品の連携により、サービスを SOA の再利用可能なアセットとして効果的に作成、利用、管理できるようになる全体的な仕組みを、IT アーキテクト、プロジェクト・マネージャー、そして SOA 管理者が理解する手助けをします。
IBM では SOA とアセット・ベース開発を対象とした広範なツールを提供しています。それぞれの製品や技術に関する資料は豊富に揃っていますが、アセット・ベース開発分野の製品と SOA 実装分野の製品が連携して SOA 実装におけるサービスの再利用という難題に対処する方法を要約した記事は 1 つもありません。そこで、この連載記事では 2 回にわたってこの難題に取り組もうと思います。
SOA とは、ビジネスを一連のサービスをリンクした形として統合し、ビジネスとそれをサポートする情報システムとの間により密接な関係を実現するエンタープライズ IT アーキテクチャーを作り出すためのアーキテクチャー・スタイルです。SOA では、サービスは再利用可能なアセットとして扱われます。組織は再利用可能なサービスのリポジトリーを維持することにより、既存のサービスを連携させて新規プロセスを短時間で構築したり、あるいは既存のコレオグラフィーを変更したりすることもできます。
アセット・ベース開発とは、統合的に文書化されたソフトウェア成果物を (再) 利用してソフトウェア・ソリューションを開発することです。そして、これまでの投資が今後の投資の本質に生かされるようにソフトウェア開発を編成することでもあります。アセット・ベース開発をすることで、アセットと成果物を再利用して問題の再発を防ぎ、開発時間の短縮および、経費とリスクの削減に貢献することができます。
サービスは SOA における重要な再利用可能アセットの 1 つであることから、アセット・ベース開発の原則を SOA の実装に適用すれば、サービスの効率的な作成、利用、管理が可能になります。この記事では、アセット・ベース開発と SOA 実装を対象とした IBM ツールを使ってこれを実現する方法を詳しく検討します。SOA の再利用可能なアセットにはサービスの他にも、例えばビジネス・プロセス・モデル、リファレンス・アーキテクチャー、デザイン・パターンなどがありますが、この記事ではサービス・アセットに焦点を絞ります。
アセット・ベース開発および SOA を対象とした IBM ツール
IBM ではアセット・ベース開発と SOA 実装を対象とした広範なツールを提供しています。その中で重要なツールを、通常そのツールを使用する人のさまざまな役割と併せて図 1 に示します (図 1 の拡大イメージを参照)。
図 1. アセット・ベース開発と SOA を対象とした IBM ツール
とりわけ有用なアセット開発用製品としては、Rational Method Composer 用 Asset-Based Development V3.0 and Asset Governance Plug-in V1.0、IBM Rational Asset Manager、そしてその他多くの IBM Rational Software Delivery Platform の開発/テスト・ツールが挙げられます (以上の製品についての詳細は、この記事の終わりにある「参考文献」セクションを参照)。
Rational Method Composer 用 Asset-Based Development V3.0 and Asset Governance Plug-in V1.0 は、アセット・ベース開発に伴う全体的な活動や、タスク、役割、成果物を決めてくれます。このプラグインは、正しいビジネス決定が行われること、投資の重点が適切なプロジェクトに置かれること、そしてアセット・ベース開発に関する適切な測定基準が定義され、使われることを確実にするためのガイダンスとなるように設計されています。この記事では以降、このプラグインのアセット・ベース開発の部分とアセット・ガバナンスの部分をそれぞれ Asset-Based Development Plug-in、Asset Governance Plug-in と呼びます。
Rational Asset Manager は、SOA イニシアチブおよびシステム開発アセットに含まれるサービスをはじめ、あらゆる種類の開発アセットを組織が作成、変更、管理、検索、そして再利用できるようにするコラボレーション・ソフトウェア開発アセット管理ソリューションです。テストされたアセットは、開発チームが再利用できるように Rational Asset Manager に保管されます。
その他、IBM の SOA ツール群には以下の製品があります。
- IBM Rational Software Delivery Platform
- Rational Method Composer 用 IBM Rational Unified Process for Service-Oriented Modeling and Architecture Plug-in V2.4
- IBM WebSphere® Integration Developer
- IBM WebSphere Process Server
- IBM WebSphere Business Modeler
- IBM WebSphere Business Monitor
- IBM WebSphere Business Services Fabric
- IBM WebSphere Service Registry and Repository
上記のリストは、アセット・ベース開発および SOA 実装で一般的に使用される主要な製品を抜粋したものです。これらのツールの一部は、従来の J2EE (Java™ 2 Platform, Enterprise Edition) アプリケーションの開発やビジネス・プロセス・モデリングなど、他の目的で使用される場合もあります (「参考文献」に、これらの製品の関連資料へのリンクを記載しています)。
ツールを調べるときには、ツールの適用範囲や機能、それにツールを使用する人の役割など、さまざまな視点から検討することでしょう。しかし、どの視点から検討するにしても念頭に置いておかならければならないのは、ツールが多数の役割をサポートする場合でも、ツールが単独で使われ、動作することはないということです。
SOA 実装では、上記にリストした SOA 製品を使ってサービスを設計 (Model)、開発 (Assemble)、展開 (Deploy)、監視 (Manage) することができます。それと同時に、Rational Method Composer 用 Asset-Based Development and Asset Governance Plug-in のプロセスとガイダンスを使って、SOA でのサービスがアセットとして再利用可能であることを確実にすることができます。
SOA およびアセットのライフサイクル
図 2 に、IBM SOA Foundation ホワイト・ペーパーと Asset-Based Development Plug-in にそれぞれ記述された SOA のライフサイクル、アセットのライフサイクルを記載します (各項目へのリンクは「参考文献」を参照)。この図が意味するのは、SOA 実装が設計フェーズから開発、展開、そして監視フェーズへと進むにつれ、それぞれのフェーズで再利用可能なアセットを作成、利用、管理できるということです。
図 2. SOA ライフサイクルと SOA ガバナンスから、アセット・ライフサイクルとアセット・ガバナンスへのマッピング
設計 (Model) フェーズでは、WebSphere Business Modeler のビジネス・プロセス・モデルを再利用して新しいプロセスをモデル化したり、あるいは既存のプロセス・モデルを分析したりすることができます。Rational Method Composer 用 RUP® for Service-Oriented Modeling and Architecture Plug-in (以降、RUP for SOMA Plug-in と略称) が、SOA をモデル化する際のガイドラインを提供します。Asset-Based Development Plug-in と RUP for SOMA Plug-in を SOA 実装で併用することで、SOA をモデル化する際にアセット・ベース開発のメリットをもたらすことも可能です。この点については、セクション「アセット・ベース開発用 Rational Method Composer プラグインと RUP for SOMA」で詳しく説明します。
開発 (Assemble) および展開 (Deploy) フェーズでは、既存のサービスを利用して、WebSphere Integration Developer で新しいビジネス・プロセスを連携させることができます。複合ビジネス・サービスの場合は、既存のビジネス・サービスから組み立てることも、IBM WebSphere Business Services Fabric Industry Content Packs 付属の再利用可能アセットとして配送される業界固有のビジネス・サービスを使用して組み立てるすることも可能です。このような複合ビジネス・サービスは WebSphere Business Services Fabric プラットフォームの機能を利用してビジネス・レベルのメタデータを外部化するため、さまざまなビジネス・エコシステムで再利用しやすくなります。また WebSphere Service Registry and Repository でデプロイ済みのサービスを検索すると、サービスのランタイムを再利用できることがあります (上述の製品を使用したサービス・アセットの開発 (Assemble) および展開 (Deploy)についての詳細はこの記事の範囲外なので、「参考文献」セクションに記載した関連記事へのリンクを参照してください)。
SOA の監視 (Manage) フェーズでは、アセットの視点からサービスを監視してサービス・アセットの再利用状況を査定します。この査定は、SOA 実装によってもたらされたビジネス価値を再利用という側面から判断するのに役立ちます。管理しやすいように、サービスをアセットおよびサービス・リポジトリーに公開することもできます。さらに、管理アクティビティーを左右する SOA ガバナンスはアセット・ガバナンスにも密接に関連しています。この記事ではこれ以降、さまざまな IBM ツールが連携して SOA 実装のアセットとしてサービスの管理とガバナンスを支援する仕組みを説明します。
アセット・ベース開発用 Rational Method Composer プラグインと RUP for SOMA
IBM の SOMA (Service-Oriented Modeling and Architecture) は、SOA をモデル化する方法およびプロセスを提供します。モデル化した SOA を使用するためのガイダンスは、RUP for SOMA Plug-in に用意されています。Asset-Based Development と RUP for SOMA のプラグイン同士の関係の全体像については、図 3 を参照してください。この図には、Asset-Based Development Plug-in に記述されているアセット・ライフサイクルの機能パターンが示されています。
図 3. アセット・ベース開発にマッピングした RUP for SOMA プロセス
アセットとしての SOA のサービスは、アセット・ライフサイクルに従います。サービスをモデル化するには、RUP for SOMA Plug-in が提供するガイダンスを使用します。サービスのモデル化はサービス作成の初期フェーズで行われるため、RUP for SOMA Plug-in は Asset-Based Development Plug-in に指定されたアセット・ライフサイクルの作成フェーズに適合します。図 3 を見るとわかるように、サービス・アセットの作成フェーズでは、RUP for SOMA の支援ガイダンスを使ってサービスをモデル化することができます。
図 3 には、RUP for SOMA プロセスがアセット・ベース開発のライフサイクルにどのように適合するかを示していますが、図 4 ではこれとは反対に、アセット・ベース開発を RUP for SOMA が指定するサービスのモデル化フェーズに適合させています。RUP for SOMA の各フェーズでは、RUP for Asset-Based Development Plug-in の原則を使用することができます。例えば SOMA のアセット識別 (Identification) フェーズでは、アセット・ベース開発でのアセット利用 (Consume) フェーズを使って、再利用するアセットを既存のアセットのリポジトリーで検索し、識別することが可能です。RUP for SOMA プロセス中に生成されるプロセス・モデルは、アセット・ベース開発ライフサイクルにおける作成 (Produce) フェーズのガイダンスを使用してアセット・リポジトリーに公開することができます。ただし、これはあくまでも概要であることを忘れないでください。カスタマイズしたプロセスを作成する上での詳細については、この記事では説明しません。
図 4. RUP for SOMA にマッピングしたアセット・ベース開発のライフサイクル
アセット・ガバナンスと SOA ガバナンス
ガバナンスは概して、コンテキスト内での管理タスクを確立するための一連の応答性、ポリシー、メカニズム、測定の定義を取り扱います。IT ガバナンスは IT に付随する意思決定権を扱うだけでなく、IT の決定およびその実践方法を管理し、測定するためのポリシーとメカニズムにも関与します。
アセット・ガバナンスは、アセットのライフサイクルに重点を置いて IT ガバナンスを拡張し、アセット・ベース開発のビジネス価値を確実にします。つまり、IT ガバナンスの改善を促進します。
同様に、SOA ガバナンスは組織の SOA におけるサービス、メタデータ、複合アプリケーションのライフサイクルに特に重点を置く IT ガバナンスの拡張です。
IBM では、組織がガバナンス活動を定義および実施するのをサポートする、アセット・ガバナンスおよび SOA ガバナンスのための Rational Method Composer プラグインを用意しています。アセットと SOA をそれぞれ対象とするこの 2 つのプラグインは、ガバナンスの計画 (Plan)、定義 (Define)、実施 (Enable)、評価 (Measure) という 4 つのフェーズからなるプロセスを定義しています。
サービスを再利用可能なアセットとして扱う SOA 実装には、SOA ガバナンスとアセット・ガバナンス両方のガイダンスが必要な場合があります。例えば、SOA ガバナンスの定義フェーズでは、サービス・アセットのアセット・リポジトリーを定義することもできます。また、リポジトリーにサービスを公開するためのワークフローを定義することも、サービス再利用のポリシーを定義することも可能です。このような活動のガイダンスは、Asset Governance Plug-in に用意されています。また、SOA ガバナンスの実装に伴う役割、プロセス、責任についての包括的ガイダンスが必要な場合は、Rational Method Composer 用 IBM Rational Method for SOA Governance Plug-in V 1.0 (以降、SOA Governance Plug-in と呼びます) を使用することができます。
図 5 に、IT ガバナンスおよびビジネス・ガバナンスの一般的分野におけるアセット・ガバナンスと SOA ガバナンスの関係を示します。
図 5. ビジネス・ガバナンスと IT ガバナンスにおける SOA ガバナンスとアセット・ガバナンス
SOA ガバナンスとアセット・ガバナンスの一部が重なっている理由は、SOA でのサービスはアセット・ガバナンスで定義されたガバナンス・メカニズムを必要とする再利用可能なアセットであるためです。SOA ガバナンスの楕円で重なっていない部分には、SOA ガバナンスに伴う複合サービスのデプロイやサービスのセキュリティーなどといった多数の活動が含まれます。一方、アセット・ガバナンスには、サービス・アセットの範囲を超えた広範なアセット (ユーザー・インターフェース・コンポーネントやプロセス・モデルなど) に関連する活動が含まれる場合があります。SOA 実装だけではなくアセット・ベース開発にも関与する組織は、Asset Governance Plug-in のガイダンスを使用して SOA 以外のアセットを管理することができます。これはつまり、図 5 のアセット・ガバナンスの楕円で重なっていない部分に該当します。
組織の IT ガバナンス・ポリティーに基づき、SOA ガバナンス委員とアセット・ガバナンス委員を兼任するメンバーが両方のガバナンス委員会の活動を調整する場合もあります。
まとめ
2 回連載の第 1 回目となるこの記事では、SOA およびアセット・ベース開発を支援する主要な IBM ツールを取り上げ、SOA およびアセット・ベース開発とガバナンスのための Rational Method Composer Plug-in 製品を参照しながら、アセットのライフサイクルとガバナンス・プロセスがSOA のライフサイクルと SOA のガバナンス・プロセスとどのように対応するかを説明しました。SOA でのサービスにアセット・ベース開発と SOA ライフサイクルを適用できるという今回の説明を踏まえ、第 2 回の記事ではサービスおよびアセットのライフサイクル全体をとおして効果的にサービス・アセットとメタデータを管理、規定する方法を紹介します。
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | 
|  | Rishi S Balaji は、IBM India の Global Business Solutions Center にアソシエイト IT アーキテクトとして勤務しています。現在は、サービス指向アーキテクチャーの再利用可能アセットの開発を専門としています。 |
記事の評価
|