# WfMC標準準拠の
ワークフローシステム運用基盤の開発

## − Nautica Workflow −

背景 目的 開発内容 違い 導入効果 見通し 開発者 参考情報

### １．背景

戻る

インターネットの普及に伴い、得意分野を生かした企業間の連携や、企業内でも部門間の業務システムの連動により、経営の意志決定速度を向上させたいというニーズが高まっている。その際、既存システムに対する変更をいかに少なくするかが、システム構築に当たっての課題の一つである。その解決策として、データを中心として既存システムを緩やかに統合することが注目されている。そして、ワークフローエンジンを中心としたワークフローシステム運用基盤は、その実現のための重要な構成要素と認識されている。

企業における「既存システムを連携させIT資産の高度活用を図りたい」という要求に対する、現状のワークフローシステム運用基盤の問題点は、以下の４点と考えている。

- 業務間連携を意識した商用製品は価格が高い。
- 比較的大規模なシステムを前提とする等、稼働環境が限定されている。
- 他企業とのシステム間あるいは将来導入するシステムとの相互運用性に不安がある。
- OSSによるものは、企業によるサポートがコミットされていない。

### ２．目的

戻る

本プロジェクトは、以下の特徴を持つワークフローシステム運用基盤を開発することにより、これらの問題を解決する。その結果、日本におけるワークフローシステム運用基盤の普及、ひいては中堅・中小企業における経営へのIT活用促進に寄与するものである。

- OSSによるアプローチ

  OSSのワークフローシステム運用基盤を提供することで、システム構築コストの引き下げと、中堅・中小企業に対するシステム開発需要の拡大を目指す。

- システムの稼働環境・規模を選ばない

  JavaVM の上に構築するため、既存システムのOS等の稼働環境に依存しない（制御対象は、WindowsシステムあるいはLinuxシステム。EJB の有無は、いずれも可能）。また、小規模なシステムから複数の商用APサーバ上で多数のEJBコンポーネント を利用するような大規模システムまで、既存の様々な規模の業務システムを連携させることや、本運用基盤上に様々な適用業務システムを開発することができる。

- WfMC標準への対応

  WfMC標準仕様に準拠し、ワークフローシステム運用基盤に最低限必要とされる機能を保証する。なお、ワークフロー定義仕様であるWfMCのインタフェース1については、昨今の趨勢にあわせ、WPDL ではなくXML形式であるXPDL を採用することとする。また、標準仕様に対する対応表を作成し、対応機能を明確化する。

- 企業によるサポート

  アルゴ２１は、ワークフローシステム運用基盤を適用した受託のシステム構築では、ワークフローシステム運用基盤を含むシステム全体を一括サポートする。また、他社より製品への組み込み等のためにサポート依頼があった場合に備え、別途サポート付き商用ライセンスも用意する。

### ３．開発の内容

戻る

本プロジェクトでは今回、以下の６つの機能について開発を行った。

図１　Nauticaの開発範囲

（１）ミドルウェアとしてのワークフローエンジン

ワークフロー定義ファイルおよび、各種APIを通じて得た情報に基づき、アクティビティ及びプロセスの完了状態を管理して、プロセス変数と遷移条件によりフローの進行を制御する。また、外部システムとの連携のためのAPIを提供し、アプリケーションの実行を管理する。

（２）WfMC標準に準拠したワークフローAPI

ワークフローエンジンが提供するAPI。 APIの分類として、ワークフローシステム運用基盤の機能を利用するクライアントアプリケーション用、外部システムとのアプリケーション連携用、運用管理用、ワークフローエンジン間の連携用など50以上のAPIを実装した。WfMC標準の各インタフェースはC言語を想定した構成となっているため、Java言語による実装では標準インタフェース仕様に沿った機能レベルの対応を行うこととし、APIとWfMC標準インタフェースとの対応表を用意した。

（３）ワークフロー定義ツール

GUIによりワークフローを定義するツール。定義を構成する要素には、アプリケーション、プロセス変数、ワークフロー参加者 、プロセス、アクティビティ、遷移があり、これらの定義作業はマウスを使用して視覚的に行うことができる。ワークフローの定義は検証を行った後、結果をXPDL形式で保存することが可能である。

図２　定義ツール画面
（４）ワークフロー運用管理ツール

GUIによりワークフローの実行状況を管理するツール。運用中の任意のワークフローエンジンに接続し、アクティビティの進行状況のモニタリングや、プロセス変数の編集と遷移条件の再評価を行うことができる。

図３　運用管理ツール画面
（５）外部との通信インタフェース

各種API をRMI 、Webサービス、Servlet から使用可能とするプロトコル変換インタフェース。

（６）サンプルアプリケーション

ワークフローシステム運用基盤の機能を評価、検証するためのサンプルアプリケーション。申請・承認アプリケーションを模した小規模なプログラムである。

図４　サンプルアプリケーション画面

表１　Nauticaサーバ動作環境
ハードウェア | CPU：Pentium4 2.4GHz以上 MEM：512MB以上 HDD：40GB以上
対応OS | Redhat Enterprise Linux ES V.3
Java VM | Sun JRE 1.4.x相当
Servletエンジン | Jakarta Tomcat 5.0
SOAPエンジン | Apache Axis 1.2
データベースエンジン | MySQL 4.1

表２　Nauticaクライアント動作環境
ハードウェア | CPU：Pentium4 推奨 MEM：256MB以上 HDD：10GB以上
対応OS | Redhat Professional Workstation V.3 Windows XP Professional SP2
Java VM | Sun JRE 1.4.x相当

表３　ライセンス形態
ワークフローエンジン本体 | LGPL
定義ツール・運用管理ツール | GPL
サポート等 | 別途、サポートライセンスを用意

### ４．従来の技術（または機能）との相違

戻る

従来の製品では、ひとつひとつが高額なオプションとされてきた機能を、オープンソースとして提供するアプローチを行った。また、商用製品でもWfMCインタフェース準拠という製品は数少なく、これも特徴のひとつである。

- WfMCワークフロー参照モデルに適応したエンジン
- WfMCインタフェースに準拠した50以上のAPI
- 複数のエンジン間連携機能を提供
- 他のシステムを統合するためのツールエージェント機能
- 複数のプロトコルに対応した通信インタフェース

- RMI over IIOP、SOAP Webサービス、HTTP Servlet

- GUIベースのXPDL定義ツール
- GUIベースの運用管理ツール

### ５．期待される効果

戻る

ワークフローシステム運用基盤は、ビジネスの流れを管理するための仕組みを備えている。また、エンジン間連携や他システムとの連携機能など、これまで高額なオプションとして提供されてきた機能を、オープンソースで提供している。これらの特徴からさまざまな形態のシステムに応用が可能であり、一般的な稟議書承認システムのような比較的小規模なものをはじめとして、既存の業務システム間の統合による新たな企業システムの構築、企業間の取引とバックエンド業務システムとの結合等、さまざまな規模のシステムを比較的少ない開発コストで実現することが期待できる。

活用例１．文書承認のワークフローエンジンとして

一般的な稟議書承認システムや文書回覧システム、経費精算システムのようなシステムの構築に、ワークフローシステム運用基盤を活用する。

図５　活用イメージ１
活用例２．EAI ツールの連携エンジンとして

EAIシステムのコア機能を実現するためのミドルウェアとしてワークフローシステム運用基盤を活用する。

図６　活用イメージ２
活用例３．EDI ツールとバックエンドシステムの連携エンジンとして

他企業のシステムから既存の業務システムにデータを引渡す等のシステム統合に際し、EDIシステムと業務システムの連携に、ワークフローシステム運用基盤を活用する。

図７　活用イメージ３
活用例４．総合的な企業間システム連携のエンジンとして

総合的なBtoB(Business to Business)システム構築に当たって、ワークフローシステム運用基盤を活用する。

図８　活用イメージ４

### ６．普及（または活用）の見通し

戻る

- オープンソース開発コミュニティを利用した普及活動

- SourceForge.JPを拠点としたOSSプロジェクト運営
- メンテナンス、機能拡張の継続
- ドキュメントの英訳化などで国際市場にもアピール
- 雑誌等への積極的な紹介

- 自社ビジネスへの活用

- 自社製品への組み込み（EDIパッケージ等）
- 受託開発案件への適用を通じて提案力の強化
- サポートビジネスの立ち上げ

### ７．開発者名（所属）

戻る

> 服部充昭、伊藤宣博、中瀬裕子、伊興田恭介、沼尻　務、佐原義明、内田玲奈
> （（株）アルゴ２１ 研究開発センター ソフトウェア工学技術研究部）

### （参考）開発者ＵＲＬ

戻る

> プロジェクト：http://sourceforge.jp/projects/nautica/
> 問い合わせ先：workflow@argo21.co.jp