レベル: 中級 Peng Tang, Software Engineer, IBM Lei Zhang, Associate I/T Architect, IBM Jing Feng Zhang, Software Engineer, IBM Yan Jun Mo, Software Engineer, IBM Wei Wang, Software Engineer, IBM
2009年 5月 13日 このシリーズの前回までの 3 回の記事では、WebSphere Business Service Fabric V6.1 の概要と、ビジネスの目標を実現するために必要な WBSF の成果物をビジネス分析によって定義する方法を説明しました。そして、ファブリックを開発するための詳細を説明しました。このシリーズの最終回である今回の記事では、Performance Manager を利用してファブリック・アプリケーションを機能強化し、サービスのモニタリングに関する要件を満たす方法について説明します。
Business Service Performance Manager の紹介
Performance Manager とは何か
IBM Business Services Performance Manager を利用すると、ビジネスの状況を視覚化することができ、またサービス指向のプロセスやアプリケーションをモニターすることができます。Performance Manager には複数のパースペクティブによるビューが用意されているため、それらを利用してイベントや例外を詳細に分析することもできます。
Performance Manager は、ビジネス・アクティビティーをモニターするための主要なツールや、Web サービスを管理するための主要なツールとシームレスな連携ができるように設計されているため、サービス指向のビジネス・プロセスやビジネス機能全体を視覚化することができます。
主な機能
このセクションでは Performance Manager の主な機能について説明します。Performance Manager には次のような機能が含まれています。
- ドメインごと、サブスクライバーごと、あるいはサービスごとに、パフォーマンスと SLA (Service Level Agreement) をレポートする機能。SLA は特定のレベルのサービスを提供するためにサービス・プロバイダーと顧客との間で交わされる正式な合意事項です。
- what-if 分析や、サービスの品質 (QoS) と SLA の視覚化を含む、パフォーマンス管理と影響管理。QoS は、転送レートやエラー・レート、その他の特性を事前に測定、改善、そして一定レベルで保証する概念です。
- SLA に対するビジネス・サービスのパフォーマンスをモニターするための、最初から組み込まれている視覚化サービスと最適化サービス。
- サービス・レベルまたはプロセス・レベルでの視覚化のために、分散しているデータやイベントを収集する機能。
- カスタマー・サービス、セキュリティー、コンプライアンスなどの問題の監査や解決のために、個々のトランザクションを追跡する機能。
- 集約レベルまたは個々のレベルで、トラフィック (障害、処理されたデータ量、可用性など) をリアルタイムでモニターする機能。
Performance Manager の「レポート」ビュー
Performance Manager に用意されている主なビューは以下のとおりです。
- サービス呼び出しの要約 (Service Invocation Summary): サービス呼び出し要約レポートを利用すると、単一のビジネス・サービス・トランザクションのコンテキストで呼び出される Web サービスやエンドポイントの応答時間を表示することができます。サービス呼び出し要約レポートの表示対象となるビジネス・サービスには、すべてのアプリケーションに関連するものや、すべてのアプリケーション・スイートに関連するもの、あるタイプのビジネス・サービスに関連するものなどがあります。
- サービス・パフォーマンス (Service Performance): 「サービス・パフォーマンス (Service Performance)」ビジネス・サービスを利用すると、企業として提供している Web サービスやエンドポイントについてパフォーマンスを分析することができます。このパフォーマンス分析は、あるビジネス・サービスに対するトランザクションの総数、ある Web サービスまたはエンドポイントの平均応答時間、失敗したトランザクションの数といった主要パフォーマンス指標 (KPM) について行われます。
- サービス使用状況 (Service Utilization): 「サービス使用状況 (Service Utilization)」ビジネス・サービスを利用すると、企業として提供しているビジネス・サービスの使用状況を分析することができます。このサービスでは、特定期間内におけるビジネス・サービスの使用状況に関する重要な詳細項目 (ボリューム (Volume)、コスト (Cost)、コスト修飾子 (Cost Modifier)、合計 (Total) など) が表示されます。これらの項目は管理者にとって重要なメトリクスであり、さまざまなサービスの使用状況や負荷要因を認識する上で役立ちます。これらを認識することによって、ビジネスやインフラストラクチャーに必要なポリシーを設定することができます。
使用事例の復習: ビザの申請と Performance Manager
ここでまず、このシリーズの前回までの記事で分析してきた、ビザの申請の例を復習することにしましょう。情報検証サービス (Information Verification Services) を提供できるサービス・プロバイダーは 4 つあり、それぞれ応答時間とコストが異なります。Embassy ABC という大使館の要件では、特定のサービス・リクエストに対して最もコスト効率が高いサービスを動的に選択できることが必要なほか、呼び出しのパフォーマンスの状態も以下の点に関して記録できる必要があります。
- プロバイダーごとの、成功した呼び出しの割合
- 一定期間での総コスト
- 平均応答時間
- サービス・プロバイダーの呼び出しの割合
これらの大部分は WBSF の主な機能によって対応することができます。そこで、サービスを提供している Performance Manager の複数パースペクティブによるビューを有効にする必要があります。
Performance Manager を利用するための手順
Performance Manager は、レポートに必要なビジネス・サービスの登録状況やその他のトランザクション・データを、システムに提供される ID を使って追跡します。WBSF は、こうした情報のスーパーセット (サブスクリプションと呼ばれます) を使うことで、組織内で 1 つ以上の役割を果たす特定のユーザーが特定のチャネルに登録されたビジネス・サービスを利用していることを、サブスクリプションのコンポーネントに対して知らせます。Performance Manager はこのサブスクリプション ID を使うことによって、受信されたサブスクリプション情報からレポートに必要なデータを抽出し、そのデータをデータベースに保管します。サブスクリプション ID がないと呼び出しを追跡することができず、Performance Manager はその呼び出しに関するパフォーマンスの詳細を提供することができません。つまり Performance Manager を使うためにはサブスクリプション ID が必要です。以下はサブスクリプション ID を取得するための手順です。
1. そのプロジェクトのための Enrollment 名前空間を作成する
これまで学んだように、Governance Manager を利用することで、ユーザーは WBSF で名前空間を作成、管理することができます。作成できる名前空間のタイプは以下のとおりです。
- Instance: ビジネス・サービスのモデルのインスタンスを保存するために使われます。
- Schema: スキーマの情報を保存するために使われます。
- Enrollment: ビジネス・サービスを利用する資格に関する情報を保存するために使われます。システムはこの名前空間を、外部の LDAP (Lightweight Directory Access Protocol) プロジェクトを構成する際に作成します。
Performance Manager はこれらの名前空間を直接使用するわけではありませんが、Performance Manager による追跡情報、サービスの登録データ、その他のトランザクション・データには Enrollment 名前空間のデータが必要です。
ビザ申請ビジネスの分析結果に従い、以下の要素を使って Enrollment 名前空間を作成します。
- 表示名 (Display Name): Visa Application Enrollment NS
- 名前空間のタイプ (Namespace Type): http://www.abc.org/service/embassy/visa-application-enr#
- 名前空間の URI (Namespace URI): Enrollment
- オーナー・プロジェクト (Owner Project): VisaApplication
図 1. 名前空間を作成する
2. ターゲットとするビジネス・サービスを登録する
Enrollment 名前空間を作成したら、「登録の管理 (Manage Enrollments)」サービスにビジネス・サービスを登録します。このビジネス・サービスを利用すると、ユーザーはさまざまなビジネス・サービスの中にある複数の組織を同時に登録することができます。
登録のためのステップを以下に示します。
- 利用できる組織 (Available Organizations) のグループを検索し、Embassy ABC を選択します。
図 2. Embassy ABC を選択する
- 登録対象の visaApplicationApp ビジネス・サービスを選択します。
図 3. visaApplicationApp ビジネス・サービスを選択する
注: 1 件のみ登録する場合には、「サブスクライバーの管理 (Manage Subscribers)」ビジネス・サービスから行うこともできます。
3. サービスのサブスクリプションをユーザーに設定する
- 「サブスクライバーの管理 (Manage Subscribers)」ページで「ユーザーの作成 (Create User)」をクリックします (この記事のプロジェクトでは既存のユーザーを使います)。
- 「サブスクライバーの管理 (Manage Subscribers)」に進み、検索パラメーターの中で「ユーザー (Users)」チェックボックスを選択し、上で作成したユーザーの苗字を入力します。検索が行われると、適切なユーザーが返されます。そのユーザーの名前をクリックすると、そのユーザーについての詳細が表示されます。そのユーザーのロールが指定どおりであることを確認します (この記事のプロジェクトでは、ユーザー・ロールとして「管理者 (administrator)」を使用します)。
図 4. ユーザーを選択する
- 「サブスクリプション (Subscriptions)」タブを選択すると、すべてのビジネス・サービスが表示されているはずです。そのユーザーにとってサブスクリプションが必要なビジネス・サービスを選択し、「サブスクリプションを保存 (Save Subscriptions)」をクリックします。
図 5. ビジネス・サービスを選択する
- そのユーザーのサブスクリプション ID を取得するためには「サブスクリプション (Subscriptions)」タブに進み、「サブスクリプションを表示 (View Subscriptions)」をクリックします。
図 6. サブスクリプション ID を取得する
サブスクリプション ID を取得したら、その ID を SOAP ヘッダーにコピーする必要があります。そのためには、まずこのシリーズの第 3 回で作成した VisaApplicationExtractorImpl.java を開き、以下のようにソース・コードを変更する必要があります。
リスト 1. VisaApplicationExtractorImpl.java のソース・コード
public class VisaApplicationExtractorImpl implements ContextExtractor {
private static final String Type_URI =
"http://www.abc.org/service/embassy/visa-application-sch#VisaType";
private static final String SUB_URI =
"http://www.webifysolutions.com/context/subscription";
private static final String SUB_ID =
"fc://fabric/enrollment/subscription-inst#c02591c7-722f-4078-a66b-7bc61e8f10b7";
private static final String VISA_TYPE = "visaType";
………
public Context extractContext(PendingRequest arg0) throws
UnexpectedContentException {
// TODO Auto-generated method stub
DataObject body = arg0.getMessageBody();
DataObject request = (DataObject) body.getSequence(0).getValue(0);
BusinessObject request1 = (BusinessObject) request.getSequence(0).
getValue(0);
String type = (String) request1.getString(VISA_TYPE);
Context context = arg0.getContext();
context.setSelectionProperty(Type_URI, new TypedValue(type));
context.setSelectionProperty(SUB_URI, new TypedValue(SUB_ID));
return context;
}
|
Performance Manager の複数パースペクティブによるビュー
今度は WBSF の Performance Manager に用意されているすべてのビューを調べ、ビザ申請の要件を実現する方法を説明しましょう。
サービス呼び出し要約レポート
ファブリック・コンソールで、「マイ・サービス (My Services)」、「Performance Manager」、「サービス呼び出し要約 (Service Invocation Summary)」の順にクリックします。すると「サービス呼び出し要約 (Service Invocation Summary)」ページが表示されます。
ここでフィルターを設定します。このフィルターによって、ビジネス・サービス・トランザクションのレポートをすべてのアプリケーションに関して生成するのか、すべてのアプリケーション・スイートに関して生成するのか、あるいは、あるタイプのビジネス・サービスに関して生成するのかを設定します。「ブラウズ基準 (Browse By)」として、「アプリケーション・スイート (Application Suite)」、「アプリケーション (Application)」、「Type of Service」のいずれかを選択します。
図 7. 「サービス呼び出し要約 (Service Invocation Summary)」レポート
- 「トランザクション ID (Transaction ID)」は、IBM Business Services Dynamic Assembler に渡されるコンテキスト ID を表します。
- 「起動日 (Invoked On)」、は呼び出しの日付と時刻を表します。
- 「応答時間 (Response Time)」は、ビジネス・サービス・トランザクションに対する呼び出しを完了するために要した合計時間です。単位はミリ秒です。
- 「チャネル (Channel)」はサブスクライバーがビジネス・サービスを利用するために使用したメカニズムです。
「トランザクション ID (Transaction ID)」をクリックすると、そのビジネス・トランザクションに対する呼び出しレポートが生成されます。
図 8. 「トランザクション呼び出しの詳細 (Transaction Invocation Details)」レポート
この棒グラフは、ある Web サービスに関して選択された各エンドポイントへの呼び出しに対する応答時間を示しています。複合型の Web サービスを呼び出した場合には、各エンドポイントの応答時間を複数のバーによって表現します。最後に表示されるバーは、その複合型 Web サービスを完了するために要した合計時間を表します。
また、「呼び出し順序 (Invocation Order)」も表示されます。これは、そのビジネス・サービス・トランザクションのコンテキストで各 Web サービスが呼び出されたシーケンスを表します。さらに、Dynamic Assembler によって選択された Web サービスのインターフェースとエンドポイントも表示されます。
サービス・パフォーマンス・レポート
ファブリック・コンソールで、「マイ・サービス (My Services)」、「Performance Manager」、「サービス・パフォーマンス (Service Performance)」の順にクリックします。すると「サービス・パフォーマンス (Service Performance)」ページが表示されます。検索基準を指定して「検索 (Search)」をクリックします。
図 9. 「サービス・パフォーマンス (Service Performance)」レポート
「リソース選択 (Resource Selection)」リストで、Web サービス・インターフェースまたはエンドポイントの名前をクリックすると、その詳細が表示されます。
図 10. 「サービス・パフォーマンスの詳細 (Service Performance Details)」レポート
「トランザクション・ボリューム/応答時間 (Transaction Volume / Response Time)」チャートには、指定された期間でのトランザクション量に対する Web サービスの平均応答時間が表示されます。X 軸は、データの生成が行われたサービス・パフォーマンス期間を表します。Y 軸は、トランザクションの総数、失敗したトランザクション (つまり Web サービスの障害が発生したトランザクション) の数、そしてミリ秒で表現した平均応答時間を表します。
「アベイラビリティー (Availability)」チャートは、実行された Web サービス・リクエストの総数と実際にサービスされた Web サービス・リクエストとの比を表します。
サービス使用状況レポート
今度は「サービス使用状況 (Service Utilization)」をクリックします。すると、「サービス使用状況 (Service Utilization)」レポートが表示されます (図 11)。
図 11. 「サービス使用状況 (Service Utilization)」レポート
この円グラフは、指定期間内にそのビジネス・サービスを呼び出した組織の割合を表します。「使用状況の詳細 (Utilization Details )」表の各列の定義は以下のとおりです。
- 名前 (Name): そのビジネス・サービスを使用した組織の名前
- ボリューム (Volume): その組織によって指定期間内にそのビジネス・サービスが呼び出された (利用された) 回数。
- コスト (Cost): そのビジネス・サービスを利用したことに対して組織に課金される単位あたりの料金
- コスト修飾子 (Cost Modifier): ビジネス・サービスの利用コストを計算するための基本単位。基本単位の値として有効なものは、トランザクション、秒、分、時、日、月、そして年です。
- 合計 (Total): ビジネス・サービスの利用に対する合計料金。この金額は、トランザクションの量と、トランザクション当たりのコストの積です。
Performance Manager による分析の結果から、ビザ申請のための要件を満たせたことがわかります。その詳細を示したものが下記の表 1 です。
表 1. ビザ申請の要件
| 要件 | WBSF の Performance Manager のビュー |
|---|
| プロバイダーごとの、成功した呼び出しの割合 | サービス・パフォーマンス・レポートの「トランザクション・ボリューム/応答時間 (Transaction Volume / Response Time)」チャートと「アベイラビリティー (Availability)」チャート | | 一定期間内の総コスト | サービス使用状況レポートの「使用状況の詳細 (Utilization Details )」表 | | 平均応答時間 | サービス・パフォーマンス・レポートの「トランザクション・ボリューム/応答時間 (Transaction Volume / Response Time)」チャートと「アベイラビリティー (Availability)」チャート | | サービス・プロバイダーの呼び出しの割合 | サービス使用状況レポートの「サービス使用状況 (Service Utilization)」円グラフ |
このシリーズのまとめ
このシリーズでは WebSphere Business Services Fabric V6.1 を利用した複合ビジネス・サービスの構築を通してサービスのモデリングを説明してきましたが、このシリーズは今回で終わります。今回は最終回として、Performance Manager を利用してファブリック・アプリケーションの機能を強化し、サービスのモニタリングに関する要件を満足する方法について説明しました。
ダウンロード | 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|
| Sample code for this article | http://download.boulder.ibm.com/ibmdl/pub/software/dw/webservices/ws-WSBFoverviewpart1/VisaApplication-owl.zip | 9KB | HTTP |
|---|
| Sample code | http://download.boulder.ibm.com/ibmdl/pub/software/dw/webservices/ws-WSBFoverviewpart1/visa_app.zip | 10KB | HTTP |
|---|
参考文献
著者について  | 
|  | Peng Tang は IBM の Global Business Solution Center のソフトウェア・エンジニアです。彼は現在、さまざまな業界にわたってビジネス・サービスの使用方法を一般化するための、CBE (Common Business Enabler) の構築を行っています。 |
 | 
|  | Lei Zhang は政府機関 Global Business Solution Center による ITS (Intelligent Transportation System) の RUC (Road User Charging) ソリューションのアーキテクト・リーダーです。WBSF は SOA 基盤の一部としての GBSC ソリューション・スタックの重要な製品の 1 つです。彼は特に、2007年にチームのリーダーとして WBSF V6.1 BETA プログラムに加わり、WBSF 6.1 が政府のソリューション開発にとって非常に貴重であることを実証しました |
 | 
|  | Jing Feng は IBM GBSC のメンバーであり、J2EE、SOA ソリューション、EAI、BPM に関する問題を中心に業務を行っています。 |
 | 
|  | Yan Jun Mo は IBM の Global Business Solution Center のソフトウェア・エンジニアです。彼は現在、政府機関に対する SOA ベースのビジネス・ソリューションの構築を行っています。 |
 | 
|  | Wei Wang は IBM の Global Business Solution Center のソフトウェア・エンジニアです。彼は現在、政府機関に対する SOA ベースのビジネス・ソリューションの構築を行っています。 |
記事の評価
|