再利用性や敏捷性などのSOAシステムの主要な利点を実現するには、設計時に十分な注意を払う必要があります。 SOAは設計フェーズから始まります。このフェーズではSOAの理論的な枠組を考慮して慎重に計画する必要があります。 これを実現するための設計手法は次のとおりです。
サービス・ポートフォリオ計画の作成。この計画では、エンタープライズ内で使用するすべてのサービスをトラッキングします(可能な場合に再利用するため)。
目的および要件に、再利用や疎結合などのSOAの利点が確実に反映されていることを確認します。
コンポーネント内の依存性をハードコーディングするのではなく、ビジネス・プロセスを使用してサービスを組み込み、依存性を制限します。
設計パターンを使用してベスト・プラクティスおよび標準を規定します。
Oracle SOA Success Methodologyでは、次の3つのスコープが定義され、各スコープ内でSOAソリューションの設計が行われます。
エンタープライズ・スコープ: このスコープには、エンタープライズ用のアプリケーションが存在する比較的大規模なSOAフレームワークが含まれます。 たとえば、Global Company(SOA Order Bookingアプリケーションに関連付けられている架空の会社)には、受注記帳アプリケーション以外にも、会計アプリケーション、売上追跡アプリケーションなどのシステムがある可能性があります。 受注記帳アプリケーションも含めてすべてのアプリケーションは、エンタープライズ・スコープ内に存在します。
SOAの理論的な枠組をビジネスに適用する意味があるかどうかの判断は、このエンタープライズ・スコープ内で行われます。 投資利益率(ROI)モデルやSOAロード・マップなどの作成と更新は、このレベルで行われます。 また、ビジネスで、既存のすべてのアプリケーションと機能を調査したり、ポートフォリオを開発するのもこのスコープ内です。 これによって、SOAの理論的な枠組の基盤である既存機能の再利用や変更が促進されます。 ポートフォリオ計画の作成方法の詳細は、第3.2.1項「サービス・ポートフォリオ計画の作成」を参照してください。
プロジェクト・スコープ: このスコープはエンタープライズ・スコープ内にネストされており、協調してビジネス・ニーズに対するソリューションを提供するアプリケーションのグループに対するスコープが含まれます。 SOA Order Bookingアプリケーションを構成するアプリケーションは、その受注記帳のプロジェクト・スコープに含まれます。
一部のアプリケーションは、複数のプロジェクト・スコープに属する場合があります。 たとえば、SOA Order Bookingアプリケーションは、顧客の基本情報を格納する顧客サービス・アプリケーションとの間で相互に作用します。 実際の小売業では、この受注記帳アプリケーションは、売上追跡アプリケーションからもアクセスされる比較的大規模なアプリケーションの可能性があります。 売上追跡アプリケーションと受注記帳アプリケーションとの間に相互作用はないため、これらのアプリケーションは同じプロジェクト・スコープには属していません。 ただし、顧客サービス・アプリケーションは、それぞれのプロジェクト・スコープに属しています。 このような再利用は、SOAの理論的な枠組の基盤となっています。
ソリューションの定義はプロジェクト・スコープ内で行われます。 スコープ内では、プロジェクトに対する具体的な目標の設定、およびビジネス要件や技術要件の収集を行います。さらに、既存アプリケーション内にある現在必要な機能、変更が必要な既存アプリケーション、開発が必要なアプリケーションを判断するための調査が行われます。 プロジェクト・スコープ内で実行する作業の詳細は、第3.2項「プロジェクト・スコープでのプロジェクトの定義」を参照してください。
アプリケーション・スコープ: このスコープはプロジェクト・スコープ内にネストされ、単一のアプリケーションまたはサービスが含まれます。 このスコープには、SOAプロジェクトを構成する各種のアプリケーション、サービス、プロセスなどの論理設計とその後の物理設計が含まれます。 プロジェクト・スコープ内で実行する作業の詳細は、第3.3項「アプリケーション・スコープでのプロジェクトの定義」を参照してください。
最も外側のスコープでは主に計画を、最も内側のスコープでは主に実行を行います。 たとえば、エンタープライズ・スコープでは計画のみを行い、アプリケーション・スコープでは実装を行います。
この章では、比較的大規模なエンタープライズ・スコープで、SOAがすでに受け入れられていることを前提にして、プロジェクト・スコープおよびアプリケーション・スコープ内で使用する手法について説明します。 この章では、次のことを理解できます。
サービス・ポートフォリオ計画の作成方法
プロジェクト・スコープで実行する作業
アプリケーション・スコープで実行する作業