レベル: 中級 Bo Li, IBM 中国ソフトウェア開発研究所(CSDL)所属 IBM FileNet BPF開発担当, IBM Wei Wang, IBM 中国ソフトウェア開発研究所(CSDL)所属 IBM Filenet BPF開発担当, IBM LaiFeng Zhang, IBM 中国ソフトウェア開発研究所(CSDL)所属 FileNet BPF開発担当, IBM
2007年 01月 28日 本記事は、全3回連載の第2回目になります。本連載では、IBM FileNet® P8プラットフォームとビジネス・プロセス・フレームワーク(BPF)によるビジネス・プロセス管理(BPM)アプリケーションの構築手順をご紹介します。架空の貿易会社XYZ社を例にあげて説明してい行きます。第2回目の記事では、BPFの紹介とBPF Explorerの利用方法について説明していきます。契約書管理Webアプリケーションとコンテンツ・エンジン、プロセス・エンジン、BPF Explorerに関連する構成ファイルについては、文末に添付します。
はじめに
FileNet P8プラットフォームは企業レベルでの拡張性と柔軟性を持ちつつ、コンテンツ管理や複雑なビジネス・プロセスといった課題を解決することができます。また、既存システムとの連携も可能です。第1回目では、FileNet P8とBPFアーキテクチャについて説明しました。第2回目では、フレームワークの一例、架空の貿易会社XYZ社の業務シナリオを検証し、業務要件を分析した結果から、ソリューション設計を行い、FileNet P8でその実装をしてみたいと思います。
第2回目では、BPF ExplorerによるBPF Webアプリケーションの構成について紹介します。最初にBPFについて簡単に触れ、ソリューションを実装する手順について見ていきます。
IBM FileNet Business Process Framework
IBM FileNet Business Process Framework(BPF)は、FileNet P8プラットフォームの基で動作し、最新のWebテクノロジーを使って設計されています。BPFを利用することにより短期間で、プロセスに従って、ユーザーが操作するWebアプリケーションの開発が可能になります。
BPFの優位性および機能
BPFは一貫したアプリケーション開発フレームワークであり、品質および構成の自由度が高く、新プロジェクトにおける総コストを劇的に削減させることが可能です。BPFには、次のような特長があります。
- プロセスとコンテンツを統合したケースのフレームワークを提供
- eFormsとの融合
- Ajaxを基にした設計
- It uses role-based work distribution and management.
- ロールを基にした配布および管理が可能
- 複雑な優先度や並び替え基準の指定が可能
- 検索およびフィルター機能のカスタマイズ
- ユーザー毎のアクセス権設定
- 一括処理機能
BPFのこれらの機能を利用することで、追加費用なしにアプリケーションのカスタマイズが可能になります。
- 短時間での展開
設計、開発、ユーザーによる受入テストを経て、サービスインまでは、わずか2ヶ月ほどです。 BPFを使うことにより、主に開発フェーズを短縮させることが可能ですが、一貫したフレームワークを使うことで、他のフェーズ期間も短縮させることができます。
- 高品質
BPFを利用することにより、アプリケーション開発プロジェクトにおいて、新たに作成した未検証プログラムの総数を減らし、全体のコストを劇的に削減させることが可能です。フレームワークには、過去のプロジェクトにおける業界の経験知を取り込んでいます。生成されるコードは一貫しており、保守性にも優れています。
- 高機能
多くの共通管理機能が基本機能に組み込まれます。(例えば、先行入力付リスト選択やプッシュ型やプル型の作業割り当て、完全監査証跡機能) これらの機能は、プロジェクト内でゼロからの開発を行うと、巨大なコストがかかります。
- 追加費用なしでアプリケーションのカスタマイズ
簡単な設定変更が可能なフレームワークを使うことで、多くのアプリケーション要件を大きなコーディング作業なしで満たすことができます。 これらの機能は、プロジェクト内でゼロからの開発を行うと、巨大なコストがかかります。
- お客様自身により操作可能
適度なトレーニングを受けたユーザーは、設定変更だけで、お客様の要件にあわせて、簡単にアプリケーション修正や調整をすることができます。
BPFのアーキテクチャ
図1に、BPFの全体アーキテクチャとFileNet P8プラットフォームとどのように連携するかを示します。
図 1. BPF アーキテクチャ

BPF自身は、2つのコンポーネントで構成されます。ひとつは、J2EEサーバー上にデプロイされるWebアプリケーションで、もうひとつはBPF Explorerです。BPF Webアプリケーションは、ブラックボックス化されており、BPMアプリケーションのカスタマイズや構成が可能なポータル、および、BPFアプリケーションと関連するコンポーネントを持つUIコンテナです。BPF Explorerは、Microsoft管理コンソール(MMC)を基本にしたツールで、BPFアプリケーションの定義や構成をすることができます。
データ層(data tier)(永続層とも言われますが)では、BPFは業務オブジェクトの格納、管理をするために、コンテンツ・エンジンを利用します。BPF Webアプリケーションの設定やドメイン・オブジェクト・モデルおよびデータ定義などは、BPF Explorerが管理する専用のBPFメタデータ・データベース内に格納されます。
業務層(business tier)は、さらに次のように分けられます。
- BPF業務サービス : データ層の上位に位置するモジュールで、ケース管理のビジネス・ロジックを隠蔽します。
- BPF Webアプリケーション : BPF Web application - 受信キューや作業するユーザー・インターフェースを提供するアプリケーションで、JEEアプリケーション・サーバー環境で提供され、BPF業務サービスを利用します。
クライアント層(client tier)もビジネス層に対して、次のふたつのクライアントを提供します。
- Webクライアント : BPF Webクライアントは、Thickクライアントのように豊富な機能を持ちますが、単純なHTML, JSP, JavaScriptページのみ構成されいて、BPF Webアプリケーションと連携します。
- BPF操作 : BPF operations - BPF操作(BPF operations)は、コンポーネント・インテグレータを基にしたJavaクラスで構成される機能群です。BPF操作(BPF operations)は、ワークフロー・マップのステップにおいて、BPF業務サービスを活用し、ケース・オブジェクトの作成や操作を行います。
BPF Explorerを利用したBPFソリューションの実装
図 2. は、連載第1回で設計したサンプルのコンテンツ管理アプリケーション全体プロセス・フローを示しています。このプロセス・フローに則り、関連ロール、プロセス・ステップ、ステップ間で処理されるケース・オブジェクト、各ステップでの応答、が定義されます。次に、BPF Explorerからの観点で構成されたプロセスを実装していきます。
図 2. 契約管理アプリケーションのプロセス・フロー

実装を始める前に、BPFの基本構成ファイルをBPF Explorerにインポートする必要があります。文書末のダウンロード項に添付されるファイルがありますので、必要に応じて契約管理BPFアプリケーション用の構成ファイル(同じダウンロード項に添付)もあわせてインポートします。そうすることで、構成プロセスが迅速に行え、基礎知識を容易に取得することができます。次に、BPF基本構成ファイルを再インポートし、以下の手順に従って構成作業をひとつずつ実行します。
ユーザーおよびロールの定義
BPFはWorkplaceへのアクセスと同様に、LDAPディレクトリ(ここではActive Directoryを利用)上のユーザーとグループを利用します。ここでは、図 3. のように“Enable Access Roles”を“False”にしておきます。このオプションを”False”に設定した場合、Workplaceでロールの追加をする必要がありません。
図 3. access rolesの無効化

次に、以下のようなユーザーとグループをActive Directory上に作成します。
表 1. Active Directoryでのユーザーとグループ
| グループ | 所属ユーザー |
|---|
| Indexer | joe |
|---|
| Reviewer | mark |
|---|
| Approver | ana |
|---|
| Supervisor | sue |
|---|
最後に、BPF Explorer上で、次のユーザー、ロールを作成します。BPFでは、ロールと同じ名前のユーザーを作成します。これらのユーザーはテンプレート・ユーザーです。ユーザーが最初にログオンすると、BPFはActive Directoryに対して認証を取り、自動的にBPFメタストア・データベースにそのユーザーを追加します。
表 2. BPF Explorer上でのユーザーとグループ
| グループ | 所属ユーザー |
|---|
| Indexer | indexer |
|---|
| Reviewer | reviewer |
|---|
| Approver | approver |
|---|
| Supervisor | supervisor |
|---|
注: BPF Explorerでロールを定義するとき、”Enable Access Roles”を”False”に設定したため、アクセス名はActive Directory上のグループ名と同じものでなければなりません。さもなければ、Wokrplaceでのアクセス・ロールと同じ名前である必要があります。
契約管理におけるケース属性およびケース・オブジェクトの作成
BPF Explorerでのケース辞書(Case Dictionary)定義画面で、各アプリケーション・フィールドにどのような値が格納されるかを指定することができます。この作業の前に、ケース・タイプとそこに含まれる全フィールドを定義する必要があります。
コンテンツ・エンジンに定義されるデータ・モデルに基づき、図 4. に示されるアプリケーション・フィールドを手動で定義します。
図 4. アプリケーション・フィールド

次に、ケース・タイプ、契約書管理そして、すべての図5にあるケース辞書内に作成された全アプリケーション・フィールドが網羅されています。
図 5. ケース辞書内の契約書管理

最後に、新たに契約書ケースを作成する時のインターフェースを、図6で示すようにcreate_caseツールとして定義します。これにより、表示/非表示の指定、省略時値や必須項目等の指定が可能になります。
図 6. create_caseツールの設定

ワークフロー定義のインポート
BPF Explorerを利用した、手動でワークフローを定義するのではなく、自動的にワークフロー構成ファイルをインポートするユーティリティ・ツールをかつようすることができます。WFImport.exというツールで、C:\Program Files\FileNet Business Process Framework\Utils\ 以下に導入されています。このツールを実行し、契約書管理ワークフローのpepファイルを指定し、全ステップと応答を選択してインポートします。そうすることにより、BPF Explorerでワークフロー定義が見られるようになります。
受信箱(Inbaskets)の作成と定義
このステップでは、各ロールに受信箱(inbasket)を定義します。プロセスフローによると、以下のような受信箱(inbasket)が必要です。
- インデクサ用受信箱:
- 新たに作られたケースで、アサイン待ち状態のインデクス受信箱
- 作業中のケースで、個人に割り当てられるマイワーク受信箱
- レビューアー要受信箱:
- レビュー待ちケースが蓄積される、レビュー用受信箱
- 作業中のケースで、個人に割り当てられるマイワーク受信箱
- 承認者用受信箱:
- 管理者用受信箱:
- 新たに作られたケースで、アサイン待ち状態のインデクス受信箱
- レビュー待ちケースが蓄積される、レビュー用受信箱
- 作業中のケースで、個人に割り当てられるマイワーク受信箱
例として、インデクサ用受信箱を取り上げます。次の順で作成します。
- 受信箱定義メニューで、“New(新規作成)”→“Inbasket(受信箱)”を選択します。
- “一般”タブから、“Inbasket name”(受信箱名)に“Index”、“マスターロール”は“Indexer”、“Step name”(ステップ名)は“Indexing Queue”、“Queue name”(キュー名)に“ContractManagement”(契約書管理)、そして、“Filtername”(フィルター名)は“Public filter”(一般フィルター)を指定します。
- Mode(モード)は、“Browse”ではなく、“Go Next”(次へ)を使うため、“Sequential”(連続)にチェックをし、“Browse”は選択しません。受信箱に何か来ると、ケースのリストが表示される代わりに、自動的にそのケースを開きます。
- “Eable Save button”と“Enable Close button”にチェックを入れることでツールバーに”Save and Close”(保存して閉じる)ボタンを追加することができます。そのほかのオプションは、デフォルトのままにしておきます。
図 7. インデクス受信箱の一般設定

- “Roles”タブでは、図8のように、インデクサーを選択し、マスターロールを指定します。
図 8. インデクス受信箱のロール定義

-
“Responses”タブでは、図9のように”IndexComplete”応答用に必要なフィールドを指定します。この操作を行う場合、各”required fields”に値を入力する必要があります。
図 9. インデクス受信箱のインデクス応答定義

-
“IndexPend”応答の場合、図10のように、いくつかのreasons(理由)を追加し、”Case Field”(ケース・フィールド)に”PERSONAL Group”、“Builtin Propery”に、”Active UserName”を指定した操作を追加します。ケースを中断させる場合は、自分たち(インデクサ)のインボックスに送られます。
図 10. インデクス受信箱のIndexComplete 応答の定義

-
“IndexReject”(インデクス拒否応答)の場合、図11にあるようにReasons(理由)を追加します。
図 11. インデクス受信箱のIndexComplete応答の定義

-
“Browse Fields”タブでは、図12にあるようにフィールドを選択します。Browse(閲覧)モード時のケース・リストに、ここで指定したフィールドが表示されるようになります。
図 12. インデクス受信箱のBrowse Fields 定義

-
“Case Fields”タブでは、図13のようなフィールドを選択します。ケースを開いたときには、ここで指定したフィールドが表示されます。ケースを表示する際のユーザー・インターフェースは、”ケース・タブ・デザイナー”を利用して変更することができます。
図 13. インデクサ受信箱のCase Fields 定義

図 14. Case Tab Designer

-
“Inbasket Filters”タブでは、ReceiveDate(受信日)とCase ID(ケースID)フィルターを追加します。
図 15. Inbasket Filters Configuration

-
“Toolbar”タブでは、図16のようにツールの構成を行います。
図 16. Toolbar 定義

-
“Tabs”タブでは、図17のように、Case(ケース)とAttachment(添付)、Audit(監査)を選択します。ケースを開いたときに、これらの3つのタブが表示されることになります。
図 17. Tabs 定義

これまでの定義により、ユーザー・インターフェースは次の図のように構成されます。
図 18. Web ユーザー・インターフェース

アプリケーションの実行
BPF Webアプリケーションを提供するJ2EEサーバーを再起動させ、インターネット・エクスプローラー(IE)でBPF WebアプリケーションのURLを指定します。
ログイン・ページが表示され、インデクサのjoeでログインすると、次のようなインターフェースのページが表示されます。アプリケーションの詳細については、第3回で説明します。
図 19. アプリケーション・インターフェース

まとめ
第2回目では、第1回目でも扱ったコンテンツおよびプロセス・モデルに基づいて、XYZ社の業務シナリオの実装とBPF Webアプリケーションの構築について取り上げました。BPF Explorer内のアプリケーション設定、ユーザーおよびロール、ケース・モデル、ワークフローやインバスケット(受信箱)を含めて説明してきました。最後に定義ファイル等をXMLファイルで添付しますので、BPF Explorerにインポートし、学習用にご活用ください。
第3回目では、構築したBPF Webアプリケーションをどのように利用するかを高度な視点で説明していきます。
謝辞
本記事作成にあたり、多くの助言やレビューをしていただいた、中国ソフトウェア開発研究所(CSDL) シニア・ソフトウェア・エンジニアのThanh Phamさんには、特に感謝いたします。
また、本記事作成にあたり、激励とサポートをいただいた、中国ソフトウェア開発研究所(CSDL) シニア・マネージャーのJean Chenさんにも、感謝いたします。
ダウンロード | 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|
| BPF Explorer構成ファイル | sample_xml_files.zip | 22KB | HTTP |
|---|
参考文献 学ぶために
製品や技術を入手するために
- IBM製品の評価版のダウンロードを行い、アプリケーション開発ツール、DB2/Lotus/Rational/Tivoli/WebSphereのミドルウェア製品のご使用に慣れていただくことが可能です。
議論するために
著者について  | 
|  | Bo Li IBM 中国ソフトウェア開発研究所(CSDL)所属 IBM FileNet BPF開発担当 IBM FileNet WATプログラミング 認定者
|
 | 
|  | Wei Wang
IBM 中国ソフトウェア開発研究所(CSDL)所属 IBM Filenet BPF開発担当
DB2 Content Mnagemrソリューション・デザイナー認定者
IBM DB2 for LUW(Linux, Unix, and Windows) Fundamentals認定者
IBM FileNet WATプログラミング 認定者 |
 | 
|  | Lai Feng Zhang
IBM 中国ソフトウェア開発研究所(CSDL)所属 FileNet BPF開発担当
DB2 for LUW (Linux, UNIX, Windows)管理 認定者
IBM FileNet WATプログラミング 認定者 |
記事の評価
|