JP2004046895A - ワークフロー変換方法 - Google Patents
ワークフロー変換方法 Download PDFInfo
- Publication number
- JP2004046895A JP2004046895A JP2003315837A JP2003315837A JP2004046895A JP 2004046895 A JP2004046895 A JP 2004046895A JP 2003315837 A JP2003315837 A JP 2003315837A JP 2003315837 A JP2003315837 A JP 2003315837A JP 2004046895 A JP2004046895 A JP 2004046895A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- xml
- wpdl
- text string
- definition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
【課題】異種ワークフローシステム間の連携を容易に行えるようにする。
【解決手段】ワークフロー連携システムは、あるワークフローシステムのワークフローをXMLで表記したテキスト文字列を解析し、解析したテキスト文字列を基に、JAVAで編集可能なようにデータオブジェクトクラスのインスタンスを生成し、生成したデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成し、生成したワークフローモデルを該当ワークフローシステムに登録する。
【選択図】図1
【解決手段】ワークフロー連携システムは、あるワークフローシステムのワークフローをXMLで表記したテキスト文字列を解析し、解析したテキスト文字列を基に、JAVAで編集可能なようにデータオブジェクトクラスのインスタンスを生成し、生成したデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成し、生成したワークフローモデルを該当ワークフローシステムに登録する。
【選択図】図1
Description
本発明は、例えば複数の異なるワークフローシステムを連携させるためのワークフロー変換方法に関する。
従来から、ワークフロー管理システムとして、例えばInconcert(アメリカのTIBCO社商品名)等が良く知られている。
このようなワークフロー管理システムは、人から人への仕事の受け渡しのルールをコンピュータ上に定義し、仕事の受け渡しを自動化するためのソフトウェアである。
近年、上記以外にも様々なワークフロー製品が市場に存在しているが、ワークフロー定義(仕事の受け渡しのルール定義)の方法は、個々のワークフロー製品によって異なる。
また、インターネットなどのネットワークを利用した業務処理が急速に普及している現在では、ワークフローの利用範囲も拡大される傾向にある。
このようにワークフローの利用範囲が大きくなるに連れて、異なるワークフロー製品を統合する汎用的なワークフロー定義言語の必要が生じてきた。
そこで、ワークフロー標準化団体WfMC(Workflow Management Coalition)が発足し、汎用的なワークフロー定義言語として、Workflow Process Definition Language:WPDLが定義された。
しかしながら、WPDLが定義されたものの、このWPDLの言語処理プログラムを開発する負担などから、WPDLの実装を済ませているワークフロー製品は多くないのが現状である。
したがって、WPDLが実装されたワークフロー製品と既存のワークフロー製品とのシステム間連携は今後とも必要であり、このような連携技術を構築することが急務になっている。
本発明はこのような課題を解決するためになされたもので、異なるワークフローシステム間で容易にワークフローを連携させることのできるワークフロー変換方法を提供することを目的としている。
上記目的を達成するために、請求項1記載の発明のワークフロー変換方法は、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列を解析する段階と、解析されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成する段階と、生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成する段階と、生成されたワークフローモデルを該当ワークフローシステムに登録する段階とを有することを特徴としている。
請求項2記載の発明のワークフロー変換方法は、ワークフロー定義に関る操作用のアイコン部品を画面に表示する段階と、前記アイコン部品が前記画面上に配置されることでワークフローを定義する段階と、ワークフローの定義をExtensible Markup Language で表記するために規定した文書型定義に基づき、ワークフローの定義内容をExtensible Markup Language で表記したテキスト文字列に変換する段階と、変換されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成する段階と、生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成する段階と、生成されたワークフローモデルを該当ワークフローシステムに登録する段階とを有することを特徴としている。
請求項3記載の発明のワークフロー変換方法は、クライアントコンピュータとサーバコンピュータとをネットワークを介して接続してなるクライアント・サーバシステムにおけるワークフロー変換方法において、前記クライアントコンピュータにおいて、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換する段階と、変換されたテキスト文字列をネットワークを通じて前記サーバコンピュータへ伝送する段階とを有し、前記サーバコンピュータにおいて、前記ネットワークからテキスト文字列が受信された場合、変換対象ワークフローシステム用のワークフロー変換手段を起動する段階と、起動されたワークフロー変換手段が、受信された文字列を、それぞれのワークフローシステム用のワークフローモデルに変換する段階と、変換されたワークフローモデルを、それぞれのワークフローシステムに登録する段階とを有することを特徴としている。
請求項4記載の発明のワークフロー変換方法は、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換する段階と、変換されたテキスト文字列を他のワークフローシステムへ伝送する段階と、伝送されてきたテキスト文字列を、自身のワークフローに変換する段階とを有することを特徴としている。
請求項5記載の発明のワークフロー変換方法は、ワークフロー処理が実行されているシステムより、ワークフローの進捗状況の情報をExtensible Markup Language で表記したテキスト文字列で取得する段階と、取得されたテキスト文字列を、ワークフローの定義をExtensible Markup Language で表記するために規定した文書型定義に基づき、ワークフローの形態で表示する段階とを有することを特徴としている。
請求項1記載の発明では、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列を解析し、解析されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成し、この生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成し、生成されたワークフローモデルを該当ワークフローシステムに登録するので、異種ワークフロー間のワークフロー連携が可能になる。
請求項2記載の発明では、画面上に表示されたアイコン部品が画面上に配置されることでワークフローを定義し、このワークフローの定義をExtensible Markup Language で表記するために規定した文書型定義に基づき、ワークフローの定義内容をExtensible Markup Language で表記したテキスト文字列に変換するので、テキストエディタ等を使わずとも、ワークフローの定義をExtensible Markup Language で表記できる。
また、変換されたテキスト文字列を解析し、解析されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成し、この生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成し、生成されたワークフローモデルを該当ワークフローシステムに登録するので、異種ワークフロー間のワークフロー連携が可能になる。
請求項3記載の発明では、クライアントコンピュータにおいて、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換し、この変換されたテキスト文字列をネットワークを通じてサーバコンピュータへ伝送し、サーバコンピュータにおいてネットワークからテキスト文字列が受信された場合、変換対象ワークフローシステム用のワークフロー変換手段を起動し、起動されたワークフロー変換手段が、受信された文字列を、それぞれのワークフローシステム用のワークフローモデルに変換し、変換したワークフローモデルをそれぞれのワークフローシステムに登録するので、異なるワークフローシステム間のワークフロー同期をとることができる。
請求項4記載の発明では、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換し、この変換されたテキスト文字列を他のワークフローシステムへ伝送し、他のワークフローシステムでは、伝送されてきたテキスト文字列を、自身のワークフローに変換するので、一度、作成したワークフローモデルを他のワークフローシステムで再利用できるようになる。
請求項5記載の発明では、ワークフロー処理が実行されているシステムより、ワークフローの進捗状況の情報をExtensible Markup Language で表記したテキスト文字列で取得し、取得されたテキスト文字列を、予め規定された文書型定義に基づき、ワークフローの形態で表示するので、ユーザは、現在のワークフローの進捗状況をビジュアル的に確認することができる。
この結果、異なるワークフローシステム間で容易にワークフローを連携させることができる。
以上説明したように、請求項1記載の発明によれば、ワークフローをExtensible Markup Language で表記したテキスト文字列を解析し、ワークフロー連携ライブラリを参照することで、他のワークフローモデルを生成し、生成されたワークフローモデルを該当ワークフローシステムに登録するので、異種ワークフロー間のワークフロー連携が可能になる。
請求項2記載の発明によれば、画面上に表示されたアイコン部品が画面上に配置されることでワークフローを定義し、このワークフローの定義をExtensible Markup Language で表記するために規定した文書型定義に基づき、ワークフローの定義内容をExtensible Markup Language で表記したテキスト文字列に変換するので、テキストエディタ等を使わずとも、ワークフローの定義をExtensible Markup Language で表記できる。
また、変換されたテキスト文字列を解析し、解析されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成し、この生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成し、生成されたワークフローモデルを該当ワークフローシステムに登録するので、異種ワークフロー間のワークフロー連携が可能になる。
請求項3記載の発明によれば、クライアントコンピュータにおいて、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換し、この変換されたテキスト文字列をネットワークを通じてサーバコンピュータへ伝送し、サーバコンピュータにおいてネットワークからテキスト文字列が受信された場合、変換対象ワークフローシステム用のワークフロー変換手段を起動し、起動されたワークフロー変換手段が、受信された文字列を、それぞれのワークフローシステム用のワークフローモデルに変換し、変換したワークフローモデルをそれぞれのワークフローシステムに登録するので、異なるワークフローシステム間のワークフロー同期をとることができる。
請求項4記載の発明によれば、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換し、この変換されたテキスト文字列を他のワークフローシステムへ伝送し、他のワークフローシステムでは、伝送されてきたテキスト文字列を、自身のワークフローに変換するので、一度、作成したワークフローモデルを他のワークフローシステムで再利用できるようになる。
請求項5記載の発明によれば、ワークフロー処理が実行されているシステムより、ワークフローの進捗状況の情報をExtensible Markup Language で表記したテキスト文字列で取得し、取得されたテキスト文字列を、予め規定された文書型定義に基づき、ワークフローの形態で表示するので、ユーザは、現在のワークフローの進捗状況をビジュアル的に確認することができる。
この結果、異なるワークフローシステム間で容易にワークフローを連携させることができる。
この結果、異なるワークフローシステム間で容易にワークフローを連携させることができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は本発明に係る一つの実施の形態のワークフロー連携論理モデル、図2は図1の論理モデルを具現化したワークフロー連携システムの一例を示す構成図である。
図1は本発明に係る一つの実施の形態のワークフロー連携論理モデル、図2は図1の論理モデルを具現化したワークフロー連携システムの一例を示す構成図である。
図1において、符号1は異なるワークフロー間でやりとりされるWPDL-XMLである。このWPDL-XML1は、WPDL-XMLの文書構造や意味を表現するために使用するタグ情報が記述されたWPDL-DTDファイル1aと、このWPDL-DTDファイル1aに従って記述されたWPDL-XMLファイル1bとからなる。DTDファイルは、個々のXMLファイルがどのようなタグや属性を持つべきかという規定として定義するファイルであり、上記WPDL-DTDファイル1aは、それをWPDLの定義に適合させたものである。 XMLとは、Extensible Markup Languageの略である。DTDとは、Document Type Definitionの略である。WPDL-XMLファイル1bはデータによってその内容が異なるが、WPDL-DTDファイルの内容は固定である。
符号2〜6はアプリケーションソフトウェアである。2はテキストエディタ(Windows(登録商標)付属のメモ帳など)である。テキストエディタ2は、テキストファイルであるWPDL-XMLファイル1bをWPDL-XMLの表記法に従って編集するためのツールである。3はWPDL-XMLワークフロー定義プログラムであり、ユーザがWPDL-XMLの表記法を知らなくてもGUI操作によりワークフローモデルの定義(ワークフローの流れの設定)を行え、この際、操作内容に応じてWPDL-XMLファイル1bを生成するプログラムである。4はWPDL-XMLワークフロー表示プログラムであり、読み込んだWPDL-XMLファイルを基にワークフロー情報をグラフィカルに表示するプログラムである。5はXMLパーサ/レンダラであり、XMLファイルの読み込み及び書き出しを行うプログラム(ソフトウェア)である。このプログラム(ソフトウェア)については市販のXMLパーサ/レンダラ製品を使用できる。6はXMLパーサであり、XMLファイルの読み込み、所定の形態、例えばワークフロー情報などに変換するプログラム(ソフトウェア)である。このプログラム(ソフトウェア)も市販のXMLパーサ製品を使用できる。
符号10は業務システムであり、独立してワークフローを実行するワークフローシステム11とWPDL-XMLアダプタ12とを備えたシステムであり、ワークフローシステム11を中心とし、この業務システム10特有の業務データベース(以下業務DBと称す)と業務アプリケーションとの連携を行う。WPDL-XMLアダプタ12は、WPDL-XMLファイル1bを読み込み、ワークフローシステム11への定義として登録し、また、ワークフローシステム11のワークフロー進捗情報を、WPDL-XMLファイル1bに書き出す、このシステム対応用のアダプタである。WPDL-XMLアダプタ12には、上記XMLパーサ/レンダラ5と同様のXMLパーサ/レンダラ13が備えられている。
符号20は業務システムであり、独立してワークフローを実行するワークフローシステム21とWPDL-XMLアダプタ22とを備えたシステムであり、ワークフローシステム21を中心とし、この業務システム20特有の業務DBと業務アプリケーションとの連携を行う。WPDL-XMLアダプタ22は、WPDL-XMLファイル1bを読み込み、ワークフローシステム21への定義として登録し、また、ワークフローシステム21のワークフロー進捗情報を、WPDL-XMLファイル1bに書き出す、このシステム対応用のアダプタである。WPDL-XMLアダプタ22には、上記XMLパーサ/レンダラ5と同様のXMLパーサ/レンダラ23が備えられている。
この図1の論理モデルを、クライアント・サーバシステムとして具体化した例が図2である。
図2に示すように、この例のクライアント・サーバシステムは、インターネットに接続されたクライアントコンピュータ31(以下クライアントPC31と称す)及びサーバ用コンピュータ32と、このサーバ用コンピュータ32とLAN等のイントラネット介して接続された個々にワークフロー処理を実行するワークフローサーバ用のコンピュータ34、37とからなり、クライアントPC31上のインターネットブラウザ42からサーバ用コンピュータ32にアクセスし、WPDL-XMLファイル1bを送受することで、各ワークフロー処理用のコンピュータ34、37とワークフローの連携を行うよう構成されている。
コンピュータ34には、ワークフローサーバ35とワークフロー定義データを格納するデータベース36とが設けられている。コンピュータ37には、ワークフローサーバ38とワークフロー定義データを格納するデータベース39とが設けられている。
クライアントPC31は、CPU、ROM、RAM等のメモリ、ハードディスクドライブ装置等の補助記憶装置、モニタ、キーボード等の入出力装置を有するコンピュータであり、例えばWindowsやMacintosh等のオペレーテイングシステム(以下OSと称す)の環境下で動作するものである。ハードディスクドライブ装置には、WPDL-XML作成プログラム41、インターネットブラウザ42等のソフトウェアがインストールされている。WPDL-XML作成プログラム41は、ワークフロー定義情報ファイルであるWPDL-XMLファイル43を作成する。このWPDL-XMLファイル43は、WPDL-XML定義プログラム41の他、一般のテキストエディタで作成できる。インターネットブラウザ42は、ブラウジング操作によりサーバ用コンピュータ32のWWWサーバ51に接続し、WWWサーバ51に保持されているHTMLで作成されたファイル(HTMLファイル59)をダウンロードしインターネットブラウザ42の画面にワークフロー定義受付ページを表示する。このワークフロー定義受付ページから、ユーザが所定操作を行うことで、作成済みのWPDL-XMLファイル43を電子メールに添付し、WWWサーバ51に転送する。
サーバ用コンピュータ32は、例えばUNIX(登録商標),WindowsNT等のOSをインストールしたコンピュータであり、WWWサーバ51、WWWサーバ側プログラム52、WPDL-XMLアダプタ53、56、ワークフローサーバ35用のクライアントライブラリ55、ワークフローサーバ38用のクライアントライブラリ58等を有している。
WWWサーバ51は、HTTPリクエストを処理するサーバである。WWWサーバ側プログラム52は、WWWサーバ51へのリクエストに連動するように設定されたサーバ側プログラムである。サーバ側プログラムとしては、WWWサーバ51のCGI(Common Gateway Interface)機能を使用しても良く、また、WWWサーバ51に対応した市販のアプリケーションサーバ製品を使用して組み込んでも良い。いずれかの方法を用いることが一般的である。市販のアプリケーションサーバ製品としては、Java(登録商標) Servlet API対応、Enterprise Java BeansAPI対応、CORBA対応などの様々な製品があり、必要とする機能によって製品を選定する。例えばWebsphere Application Server(IBM社製)、JRun Server(Allaire社製)、 WebLogic Application Server(BEA社製)等、様々な製品が使用可能である。
WWWサーバ側プログラム52は、クライアントPC31から転送されてきたWPDL-XMLファイル43を、サーバ用コンピュータ32上の所定のディレクトリに格納し、サーバ用コンピュータ32上に存在する該当WPDL-XMLアダプタ53,56の登録処理を起動する。WPDL-XMLファイル43は、クライアントPC31から転送されたワークフロー定義情報である。
WPDL-DTDファイル60は、サーバ用コンピュータ32に格納される文書型定義情報である。このWPDL-DTDファイル60は、このようにインターネット/イントラネット上の所定のサーバに格納しておき、URL(Uniform Resouce Locator)形式でクライアントPC31から参照するようにしても良く、また、個々のクライアントPC31に格納しても良い。
WPDL-XMLアダプタ53は、ワークフローシステム11用のWPDL-XMLアダプタであり、XMLパーサ54を有している。XMLパーサ54は、WPDL-XMLアダプタ53の内部で、WPDL-XMLファイル43の解析を行うプログラムであり、市販の製品を利用できる。
ワークフローシステム11用のクライアントライブラリ55は、ワークフローサーバ35が提供しているクライアント用ライブラリである。WPDL-XMLアダプタ53は、このワークフローシステム11用のクライアントライブラリ55の機能を使用することにより、WPDL-XMLデータをワークフローサーバ35に適合させる。
ワークフローサーバ35は、ワークフロー処理を実行するサーバプログラムであり、ワークフローシステム11用のクライアントライブラリ55からのリクエストを受け付けてこのワークフローサーバ35独自の方式でデータを登録する。
WPDL-XMLアダプタ56は、ワークフローシステム21用のWPDL-XMLアダプタであり、XMLパーサ57を有している。XMLパーサ57は、WPDL-XMLアダプタ56の内部で、WPDL-XMLファイル43の解析を行うプログラムであり、市販の製品を利用できる。
ワークフローシステム21用のクライアントライブラリ58は、ワークフローサーバ38が提供しているクライアント用ライブラリである。WPDL-XMLアダプタ56は、このワークフローシステム21用のクライアントライブラリ58の機能を使用することにより、WPDL-XMLデータをワークフローサーバ38に適合させる。
ワークフローサーバ38は、ワークフロー処理を実行するサーバプログラムであり、ワークフローシステム21用のクライアントライブラリ58からのリクエストを受け付けて、このワークフローサーバ38独自の方式でデータを登録する。
図3は、図1の論理モデルに従い、サーバあるいはクライアントのコンピュータに実装したプログラムの一例を示す図である。
ワークフローシステムのプログラムとしては、WPDL-XML InConcertアダプタ71、InConcert Java連携ライブラリ72、InConcertサーバ73などである。
WPDL-XML InConcertアダプタ71は、WPDL-XMLのワークフロー定義データを、InConcertのワークフローデータとして登録し、また、InConcertのワークフローデータを、WPDL-XML形式で出力する、双方向変換アダプタである。このWPDL-XML InConcertアダプタ71には、IBM XML Parser for Java74が使用されている。IBM XML Parser for Java74は、XMLパーサ/レンダラである。
InConcert Java連携ライブラリ72は、Java言語から利用できるInConcertクライアントライブラリである。InConcertサーバ73は、ワークフロー管理システムInConcertのサーバプログラムである。
クライアント側のアプリケーションとしては、WPDL-XMLワークフロー定義プログラム75、WPDL-XMLワークフロー表示プログラム76等である。各プログラムには、IBM XML Parser for Java74が使用されている。
プログラム言語にはJavaが使用されている。WPDL-DTDファイル75は、WPDLの文法を基にXMLでの表記法を決め、タグを定義したものである。WPDL-XMLワークフロー定義プログラム75は、ユーザがWPDL-XMLの表記法を知らなくても、GUI操作(アイコン部品のドラッグアンドドロップ操作)によりワークフロー定義が行え、GUI操作に応じてWPDL-XMLファイルを自動生成する定義プログラムである。
WPDL-XMLワークフロー表示プログラム76は、WPDL-XMLのワークフロー情報をグラフィカルに表示するプログラムである。これらのプログラムは、Javaのアプレットで開発されているので、インターネットブラウザを利用してWWWサーバ上にあるWPDL-XMLファイルを表示することができる。
ここで、図4を参照し上記図3の実装プログラムをインターネットのシステムモデルとして実現した例について説明する。
図4に示すように、サーバ用コンピュータ80には、Java Servlet対応アプリケーションサーバ81、WWWサーバ51、WPDL-XML InConcertアダプタ71、InConcert Java連携ライブラリ72等を実装する。Java Servlet対応アプリケーションサーバ81は、Java Servlet82を有している。
図4に示すように、サーバ用コンピュータ80には、Java Servlet対応アプリケーションサーバ81、WWWサーバ51、WPDL-XML InConcertアダプタ71、InConcert Java連携ライブラリ72等を実装する。Java Servlet対応アプリケーションサーバ81は、Java Servlet82を有している。
クライアントPC90には、HTMLファイルやWPDL-XMLファイルをダウンロードするインターネットブラウザ42、WPDL-XMLワークフロー定義プログラム75、WPDL-XMLワークフロー表示プログラム76等を実装する。
また、各コンピュータ80,90には、WPDL-DTDファイル75を格納しておく。
ワークフロー処理を実行するワークフロー処理用コンピュータ100には、InConcertサーバ73とワークフロー定義データを格納したデータベース101を実装する。
以下、個別の実装例について説明する。
まず、WPDLの表記法をXMLで記述するための表記法について説明する。
WPDLでは、ワークフローの用語及び構造をWPDLワークフローモデルとして定義している。このワークフローモデルを記述するための文法を、WPDL表記法と呼ぶ。本発明では、ワークフローモデルをそのままに、XMLでワークフローモデルを記述できるように表記法を変更した。この表記方をWPDL-XML表記法と呼ぶことにする。
まず、WPDLの表記法をXMLで記述するための表記法について説明する。
WPDLでは、ワークフローの用語及び構造をWPDLワークフローモデルとして定義している。このワークフローモデルを記述するための文法を、WPDL表記法と呼ぶ。本発明では、ワークフローモデルをそのままに、XMLでワークフローモデルを記述できるように表記法を変更した。この表記方をWPDL-XML表記法と呼ぶことにする。
WPDL表記法では、ワークフロー情報を以下のように表記する。
キーワード ‘識別子’
サブキーワード “値の文字列”または値の予約語または‘識別子の参照’
...
END_キーワード
具体的には、下記(例1)のように表記される。
キーワード ‘識別子’
サブキーワード “値の文字列”または値の予約語または‘識別子の参照’
...
END_キーワード
具体的には、下記(例1)のように表記される。
この(例1)の表記を、以下のルールで、XMLで表記する。
・キーワードは、同名のXMLエレメント(タグ)とする。
・キーワードの識別子は、ID属性とする。
・サブキーワードは、同名のXMLエレメントとする。
・予約語は、同名のXMLエレメントとする。
・サブキーワードの値が、文字列の場合、サブキーワードと同名のXMLエレメントの内容とする(ダブルクォーテーションでは囲まない)。
・サブキーワードの値が、予約語の場合、予約語と同名のXMLエレメントを指定する。
・サブキーワードの値が、識別子の参照であり、かつ一つだけの場合、サブキーワードのIDREF属性の値とする。
・サブキーワードの値が、識別子の参照であり、かつ複数ある場合、サブキーワードのIDREFS属性の値とする。
この場合、上記(例1)のWPDLの表記は、下記(例2)のようにXMLで表記できる。
・キーワードは、同名のXMLエレメント(タグ)とする。
・キーワードの識別子は、ID属性とする。
・サブキーワードは、同名のXMLエレメントとする。
・予約語は、同名のXMLエレメントとする。
・サブキーワードの値が、文字列の場合、サブキーワードと同名のXMLエレメントの内容とする(ダブルクォーテーションでは囲まない)。
・サブキーワードの値が、予約語の場合、予約語と同名のXMLエレメントを指定する。
・サブキーワードの値が、識別子の参照であり、かつ一つだけの場合、サブキーワードのIDREF属性の値とする。
・サブキーワードの値が、識別子の参照であり、かつ複数ある場合、サブキーワードのIDREFS属性の値とする。
この場合、上記(例1)のWPDLの表記は、下記(例2)のようにXMLで表記できる。
例外ルールとして、下記のものを設定する。
・キーワードACTIVITYのサブキーワードIMPLEMENTATIONの値となる予約語、NONE、APPLICATIONS、WORKFLOW、LOOPは、XMLエレメントとせず、IMPLEMENTATIONエレメントのTYPE属性として表記する。
・キーワードACTIVITYのサブキーワードSPLITの値となる予約語、AND、OR、XORは、XMLエレメントとせず、SPLITエレメントのTYPE属性として表記する。
以下に、これらの例外を含んだ元のWPDL表記例(例3)と、WPDL-XMLの表記例(例4)を示す。
・キーワードACTIVITYのサブキーワードIMPLEMENTATIONの値となる予約語、NONE、APPLICATIONS、WORKFLOW、LOOPは、XMLエレメントとせず、IMPLEMENTATIONエレメントのTYPE属性として表記する。
・キーワードACTIVITYのサブキーワードSPLITの値となる予約語、AND、OR、XORは、XMLエレメントとせず、SPLITエレメントのTYPE属性として表記する。
以下に、これらの例外を含んだ元のWPDL表記例(例3)と、WPDL-XMLの表記例(例4)を示す。
続いて、WPDL-XMLワークフロー定義プログラム75(ワークフロー定義プログラム)とWPDL-XMLワークフロー表示プログラム76(ワークフロー表示プログラム)について説明する。
WPDL-XMLは、前述のWPDL-XML表記法を理解することにより、Windowsのメモ帳のようなテキストエディタ(テキスト編集ソフト)で作成することができるが、これでは、WPDL-XML表記法を理解したものでなければ、WPDL-XMLを記述することができない。
WPDL-XMLは、前述のWPDL-XML表記法を理解することにより、Windowsのメモ帳のようなテキストエディタ(テキスト編集ソフト)で作成することができるが、これでは、WPDL-XML表記法を理解したものでなければ、WPDL-XMLを記述することができない。
そこで、本発明では、ワークフロー定義プログラムとしてWPDL-XMLワークフロー定義プログラム75を設けた。
WPDL-XMLワークフロー定義プログラム75は、図5に示すように、XMLパーサ/レンダラ110、データオブジェクト生成部112、ワークフロー定義画面表示部114、XML表示画面表示部116、変換処理部118等からなる。
XMLパーサ/レンダラ110は、WPDL-XMLファイルを読み込み解析する。また、XMLパーサ/レンダラ110は、データオブジェクト生成部112で生成されたの内容(データオブジェクトクラスのインスタンス)に応じてXMLエレメントオブジェクトを作成する。さらに、XMLパーサ/レンダラ110は、ワークフロー定義画面で定義された内容を、WPDL-DTDファイルに基づきWPDL-XMLファイルとして書き出す。データオブジェクト生成部112は、解析されたデータから、Javaで利用するためのデータオブジェクトクラスのインスタンスを生成する。ワークフロー定義画面表示部114は、ワークフロー定義画面を表示する。
WPDL-XMLワークフロー定義プログラム75及びWPDL-XMLワークフロー表示プログラム76では、データオブジェクトクラスのインスタンスのデータ構造がアイコンや矢印等で表示される。XML表示画面表示部116は、XMLパーサ/レンダラ110により変換(作成)されたXML文字列を表示する。変換処理部118は、XMLパーサ/レンダラ110により変換(作成)されたXML文字列をWPDLのファイルに変換する。
クライアントPC31にインストールしたWPDL-XMLワークフロー定義プログラム75を起動することで、図6に示すようなワークフロー定義画面が表示される。このワークフロー定義画面は、オブジェクトを個々に定義する定義画面121と、Flowタブの画面122とXMLタブの画面123等の2つを切替え表示する編集用画面とから構成されている。
起動時は、ワークフロー定義画面には、Flowタブの画面122が表示されており、ツールバー部分に表示されたアイコンの中から例えばコンピュータのアイコン125等をユーザが選択し編集用画面122上に移動及び配置する操作(ドラッグアンドドロップ等の操作)を行い、この操作を繰り返し、さらに、ツールバー部分の矢印アイコン126で編集画面上のコンピュータのアイコン125を接続することによって、WPDLワークフローモデルに従ったワークフローが定義される。また、個々のコンピュータのアイコン125に対して定義画面121にて値(業務種別、名称、役職、役柄等)を設定することで、WPDL-XMLが自動作成される。
ここで、ユーザがワークフロー定義画面のXMLタブを選択操作すると、図7に示すように、WPDLワークフローモデルに従ったワークフロー定義をXMLで記述したテキストデータ(XML文字列)がXMLタブの画面123に表示される。このようなXML文字列は、ワークフロー定義の途中でも確認することができる。
続いて、図8を参照してWPDL-XMLワークフロー定義プログラム75によるWPDL-XMLファイル編集処理動作について説明する。
ワークフロー定義画面にて、解析対象のWPDL-XMLファイルが指定されると、WPDL-XMLワークフロー定義プログラム75では、指定されたWPDL-XMLファイルがXMLパーサ/レンダラ110によって読み込まれ、読み込まれたWPDL-XMLデータが解析される。
ワークフロー定義画面にて、解析対象のWPDL-XMLファイルが指定されると、WPDL-XMLワークフロー定義プログラム75では、指定されたWPDL-XMLファイルがXMLパーサ/レンダラ110によって読み込まれ、読み込まれたWPDL-XMLデータが解析される。
解析後、WPDL-XMLワークフロー定義プログラム75では、その解析したWPDL-XMLデータは、修正、追加等の変更が可能なように、データオブジェクトクラスのインスタンスとして作成されて(図8のS1001)、データオブジェクト生成部112に保持される(S1002)。データオブジェクトクラスは、XMLエレメント(タグ)の名前に対応して予め作成されている。
データオブジェクト生成部112に保持されたデータオブジェクトクラスのインスタンスは、ワークフロー定義画面表示部114に出力されてワークフロー定義画面上に、処理の流れを示すデータオブジェクトとして表示される(S1003)。
ここで、ユーザにより画面操作が行われると(S1004)、その操作内容に沿ってワークフロー定義が編集されて、データオブジェクトクラスのインスタンスとしてデータオブジェクト生成部112に保持される(S1002)。
データオブジェクト部112のデータオブジェクトクラスのインスタンスは、W3Cの定義するXMLのエレメントオブジェクトクラスのインスタンスを生成し、XMLパーサ/レンダラ110に渡す。
XMLパーサ/レンダラ110では、XMLレンダラ機能を使って、XMLのエレメントオブジェクトクラスのインスタンスを、WPDL-XMLファイルとして書き出す(S1006)。
この書き出し時に、WPDL-XMLファイルを変換処理部118に出力し、変換処理部118でフォーマットをWPDLの形式に変換することにより、WPDLの表示形式で書き出すようにもできる。
なお、本実施形態では、XMLの解析及び生成のために、IBM XML Parser for Javaを使用したが、この製品は、W3C(World Wide Web Consortium)が標準化した、XML Java APIに準拠した製品である。したがって、XML Java APIに準拠した製品であれば、これ以外の製品を使用することもできる。
すなわち、WPDL-XMLワークフロー定義プログラム75をユーザが使用することで、ユーザは、WPDLワークフローモデルについての知識さえあれば、WPDLの表記法もWPDL-XMLの表記法も知らなくても、WPDL-XMLを作成することができる。
次に、WPDL-XMLワークフロー表示プログラム76について説明する。
このWPDL-XMLワークフロー表示プログラム76は、図9に示すように、XMLパーサ130、データオブジェクト生成部132、ワークフロー表示画面表示部134等からなる。XMLパーサ130は、最新のWPDL-XMLファイルを読み込み解析する。データオブジェクト部132は、画面表示のためのデータオブジェクトを保持する。ワークフロー表示画面表示部134は、実行中のワークフローの進捗状況を表示する。
このWPDL-XMLワークフロー表示プログラム76は、図9に示すように、XMLパーサ130、データオブジェクト生成部132、ワークフロー表示画面表示部134等からなる。XMLパーサ130は、最新のWPDL-XMLファイルを読み込み解析する。データオブジェクト部132は、画面表示のためのデータオブジェクトを保持する。ワークフロー表示画面表示部134は、実行中のワークフローの進捗状況を表示する。
続いて、このWPDL-XMLワークフロー表示プログラム76のワークフロー進捗状況表示動作について説明する。なお、処理動作そのものは図8のS1001〜S1003までと同じである。
クライアントPC90のインターネットブラウザの画面にて、ユーザによって、ワークフロー処理が実行されているシステムのワークフロー進捗状況情報を示すWPDL-XMLファイルが指定されると、WPDL-XMLワークフロー表示プログラム76が起動し、指定されたWPDL-XMLファイルがXMLパーサ130によって、ワークフローサーバ側からインターネットを通じて読み込まれてそのWPDL-XMLデータが解析される。この解析にはWPDL-DTDファイルが利用される。
解析後、そのWPDL-XMLデータは、データオブジェクトクラスのインスタンスとされて(図8のS1001)、データオブジェクト生成部132に保持される(S1002)。データオブジェクトクラス自体は、XMLエレメント(タグ)の名前に対応して予め作成されている。
データオブジェクト生成部132に保持されたデータオブジェクトクラスのインスタンスは、ワークフロー定義画面表示部134に出力されて、図10に示すようなワークフロー表示画面(Flow Viewer)上に、現在のワークフローの進捗状況を示すデータオブジェクトとして表示される(S1003)。
この例では、パソコンの購入申請のワークフローにおいて、ある書面は上長承認を却下されて再申請指示のボックスに入れられ、再申請指示待ちの状態になっていることが解る。また、他の書面は、上長承認、購入決裁、購買処理を通過し、登録のボックスと通知のボックスにそれぞれ入れられていることが解る。
続いて、WPDL-XML InConcertアダプタ71について説明する。
WPDL-XML InConcertアダプタ71は、XMLパーサ/レンダラ141、データオブジェクト生成部143、データ登録部145、データ取得部147等からなる。データオブジェクト生成部143は、Javaプログラムで生成されている。XMLパーサ/レンダラ141としては、WPDL-XMLの解析及び生成のために、ワークフロー定義プログラム75と同様に、IBM XML Parser for Javaが使用されている。データオブジェクト生成部143は、XMLパーサ/レンダラ141により解析された情報を、データ登録部145で使うためのデータオブジェクトクラスのインスタンスに変換する。データ登録部145は、WPDLのワークフローモデルに従ったデータを、InConcertのワークフローモデルに変換してInConcertに登録する。データ取得部147は、InConcertから取得したデータを、WPDLのワークフローモデルに従ったデータ形式に変換する。
WPDL-XML InConcertアダプタ71は、XMLパーサ/レンダラ141、データオブジェクト生成部143、データ登録部145、データ取得部147等からなる。データオブジェクト生成部143は、Javaプログラムで生成されている。XMLパーサ/レンダラ141としては、WPDL-XMLの解析及び生成のために、ワークフロー定義プログラム75と同様に、IBM XML Parser for Javaが使用されている。データオブジェクト生成部143は、XMLパーサ/レンダラ141により解析された情報を、データ登録部145で使うためのデータオブジェクトクラスのインスタンスに変換する。データ登録部145は、WPDLのワークフローモデルに従ったデータを、InConcertのワークフローモデルに変換してInConcertに登録する。データ取得部147は、InConcertから取得したデータを、WPDLのワークフローモデルに従ったデータ形式に変換する。
なお、InConcert Java連携ライブラリ72は、InConcertのクライアント機能をJavaプログラムから利用するためのクラスライブラリである。
続いて、このWPDL-XML InConcertアダプタ71の動作を説明する。
この場合、変換対象のWPDL-XMLファイルが指定されると、XML解析手段としてのXMLパーサ/レンダラ141は、指定された変換対象のWPDL-XMLファイルを読み込み、解析する。そして、解析した情報をデータオブジェクト生成部143に渡す。
この場合、変換対象のWPDL-XMLファイルが指定されると、XML解析手段としてのXMLパーサ/レンダラ141は、指定された変換対象のWPDL-XMLファイルを読み込み、解析する。そして、解析した情報をデータオブジェクト生成部143に渡す。
データオブジェクト生成部143は、XMLパーサ/レンダラ141によって解析された情報が渡されると、その情報をデータ登録部145で使うためのデータオブジェクトクラスのインスタンスに変換しデータ登録部145に渡す。
データ登録部145は、データオブジェクト生成部143よりデータオブジェクトクラスのインスタンスを受け取ると、InConcert Java連携ライブラリ72を参照し、WPDLのワークフローモデルに従ったデータを、InConcertのワークフローモデルに変換してInConcertに登録する。
一方、図4に示したシステム構成において、InConcertサーバ73におけるワークフローの進捗状況をクライアントPC90のユーザが確認するために、インターネットブラウザ42からWWWサーバ51のワークフロー定義XML受付ページにアクセスし、表示されたワークフロー定義XML受付ページにて所定の操作を行うと、Java Servlet対応アプリケーションサーバ81によってWPDL-XML InConcertアダプタ71が起動される。
すると、WPDL-XML InConcertアダプタ71では、図11に示したデータ取得部147がInConcertサーバ73からデータを取得し、取得したデータをデータオブジェクト生成部143に渡す。
データオブジェクト生成部143では、渡されたInConcertのデータをWPDLのワークフローモデルに従ったデータ形式に変換し、XMLパーサ/レンダラ141に渡す。
XMLパーサ/レンダラ141は、データオブジェクト生成部143より渡されたWPDLのデータをXMLに変換してWPDL-XMLファイルとして出力する。
すなわち、WPDL-XML InConcertアダプタ71は、ワークフローシステムInConcertを対象に、WPDL-XMLのワークフロー定義情報を、InConcertのワークフロー定義情報として登録し、InConcertのワークフロー定義情報を、WPDL-XML形式で出力するものである。
なお、WPDLのワークフローモデルは、既存のワークフローシステムが個別に使用しているワークフローモデルと同一とは限らない。用語や構造になんらかの差異があり得る。したがって、上記以外は、WPDL-XML InConcertアダプタ71ではなく変換アダプタとなり、WPDLのワークフローモデルを、個別のワークフローシステムのモデルに変換し、また、その逆を行うプログラムとする。
InConcertとWPDLとは、構造的に共通点が多く、主な変換は用語の違いと言える。したがって、変換プログラムは、比較的容易に開発できる。しかし、実行者の指定法、条件の指定法、サブフローの指定法など、構造が異なる部分もある。
WPDLのワークフローモデルとInConcertのワークフローモデルとの間の差異と、その変換方法について説明する。
双方向変換するにあたり、図12に示すような事項を考慮する必要がある。
この中でも、特に、考慮を要した4つの点について説明する。
1.実行者の指定
WPDLとInConcertの実行者指定の方法には、図13のような違いがある。
1.実行者の指定
WPDLとInConcertの実行者指定の方法には、図13のような違いがある。
例えばWPDLでは、作業単位であるACTIVITYのPEFORMER属性に対し、HUMAN(人)、ORGANIZATIONAL UNIT(部門)、ROLE(役割)、SYSTEM(アプリケーション)のいずれかのPARTICIPANTオブジェクトを割り当てるが、InConcertの場合には、作業単位Taskに対し、Role(役割)オブジェクトを割り当て、Roleの実行者として、Poolオブジェクトを割り当てる。PoolオブジェクトはUser(利用者)の集合である。
この2つの異なるモデルを、以下のように変換する。
(WPDL→InConcert)
・HUMAN: HUMANエレメントは人を表すので、Userに相当する。しかしInConcertではUserを含むPoolを作成しなければならないので、UserとUserを含むPoolの両方を作成する。
・ORGANIZATIONAL_UNIT: ORGANIZATIONAL_UNITエレメントは部門を表す。InConcertではPoolがこれに相当する。ORGANIZATIONAL_UNITに所属する利用者のリストが定義時に得られれば、その数だけUserを作成し、Poolに割り当てる。
・ROLE: ROLEエレメントは役割を表す。Roleオブジェクトを作成して、Taskに割り当てる。
・SYSTEM: SYSTEMエレメントはアプリケーションの実行を表す。InConcertでは、Taskに直接アプリケーションを指定することはできないが、Taskの開始時のイベントをキャッチして特定のアプリケーションに起動をかける設定をすることができる。これを利用し、SYSTEMエレメントで指定されたアプリケーションを起動するActionSpecオブジェクトを作成。次に、タスク開始イベントから、これを実行するTriggerオブジェクトを作成する。
・HUMAN: HUMANエレメントは人を表すので、Userに相当する。しかしInConcertではUserを含むPoolを作成しなければならないので、UserとUserを含むPoolの両方を作成する。
・ORGANIZATIONAL_UNIT: ORGANIZATIONAL_UNITエレメントは部門を表す。InConcertではPoolがこれに相当する。ORGANIZATIONAL_UNITに所属する利用者のリストが定義時に得られれば、その数だけUserを作成し、Poolに割り当てる。
・ROLE: ROLEエレメントは役割を表す。Roleオブジェクトを作成して、Taskに割り当てる。
・SYSTEM: SYSTEMエレメントはアプリケーションの実行を表す。InConcertでは、Taskに直接アプリケーションを指定することはできないが、Taskの開始時のイベントをキャッチして特定のアプリケーションに起動をかける設定をすることができる。これを利用し、SYSTEMエレメントで指定されたアプリケーションを起動するActionSpecオブジェクトを作成。次に、タスク開始イベントから、これを実行するTriggerオブジェクトを作成する。
(InConcert→WPDL)
・Pool: InConcertのPoolオブジェクトは、HUMANエレメントに相当する場合と、ORGANIZASIONAL_UNITエレメントに相当する場合が考えられる。この判別方法として、Poolに所属するUserが単一のときはHUMANエレメント、複数のときはORGANIZATIONAL_UNITエレメントを作成する。
・Role: ROLEエレメントを作成する。
・Trigger: InConcertのTaskにTriggerが設定されている場合は、起動されるActionSpecオブジェクトから、アプリケーション名を取得し、SYSTEMエレメントを作成する。
・Pool: InConcertのPoolオブジェクトは、HUMANエレメントに相当する場合と、ORGANIZASIONAL_UNITエレメントに相当する場合が考えられる。この判別方法として、Poolに所属するUserが単一のときはHUMANエレメント、複数のときはORGANIZATIONAL_UNITエレメントを作成する。
・Role: ROLEエレメントを作成する。
・Trigger: InConcertのTaskにTriggerが設定されている場合は、起動されるActionSpecオブジェクトから、アプリケーション名を取得し、SYSTEMエレメントを作成する。
2.条件の指定
図17に示すように、ワークフローでの条件は、ある作業単位から別の作業単位に遷移するときに設定される。WPDLでの条件は、分岐条件であり、ある作業単位の次のルートが複数ある場合、条件判断を行って、通過するルートを決める。条件に合致しなかったルートは、通らない。InConcertでの条件は、ルートを選択する条件ではなく、作業の実行条件である。存在するルートは、無条件に通過し、作業単位に到達してから、条件判断を行い、作業単位を実行するかどうかを決める。
図17に示すように、ワークフローでの条件は、ある作業単位から別の作業単位に遷移するときに設定される。WPDLでの条件は、分岐条件であり、ある作業単位の次のルートが複数ある場合、条件判断を行って、通過するルートを決める。条件に合致しなかったルートは、通らない。InConcertでの条件は、ルートを選択する条件ではなく、作業の実行条件である。存在するルートは、無条件に通過し、作業単位に到達してから、条件判断を行い、作業単位を実行するかどうかを決める。
変換時には、それぞれの実行条件を、拡張属性として保持する。
・WPDL→InConcert WPDL_CONDITION属性の値として保持する。
・InConcert→WPDL EXTENDED_ATTRIBUTEエレメントのPERFORM_CONDITIONの値として保持する。
・InConcert→WPDL EXTENDED_ATTRIBUTEエレメントのPERFORM_CONDITIONの値として保持する。
3.サブフローの指定
WPDLもInConcertも、ワークフローの作業の一部として、別のワークフローを指定することができる。
WPDLもInConcertも、ワークフローの作業の一部として、別のワークフローを指定することができる。
例えば図15に示すように、WPDLでは、並列した複数のワークフローを記述して、一方のワークフローの作業単位(ACTIVITY)で、もう一方のサブフローとして指定する。InConcertでは、作業単位(Task)を階層構造にすることにより、サブフローの指定が可能である。
4.拡張属性の扱い
WPDLでは、ワークフロープロセスに任意の拡張属性を追加できる。これをInConcertに登録するときに以下の処理を行う。
WPDLでは、ワークフロープロセスに任意の拡張属性を追加できる。これをInConcertに登録するときに以下の処理を行う。
WPDL情報を登録するWPDLクラスに、属性名を格納する属性と、属性値を格納する属性を予め用意する。この組を、整数型、文字列型、日付型の3種類用意する。つまり、以下の6通りである。
・整数属性名を格納する属性(文字列型)
・整数属性値を格納する属性(整数型)
・文字列属性名を格納する属性(文字列型)
・文字列属性値を格納する属性(文字列型)
・日付型属性名を格納する属性(文字列型)
・日付型属性値を格納する属性(日付型)
複数の属性を登録できるように、この6通りをそれぞれ複数個用意しておく。WPDL-XMLにより与えられた属性がその数を上回ったときはその都度属性の組を追加する。
・整数属性値を格納する属性(整数型)
・文字列属性名を格納する属性(文字列型)
・文字列属性値を格納する属性(文字列型)
・日付型属性名を格納する属性(文字列型)
・日付型属性値を格納する属性(日付型)
複数の属性を登録できるように、この6通りをそれぞれ複数個用意しておく。WPDL-XMLにより与えられた属性がその数を上回ったときはその都度属性の組を追加する。
ここで、図16を参照してWPDL-XMLの拡張属性をInConcertに登録する場合の一例について説明する。
WPDL-XMLでは、ワークフロープロセスに任意の拡張子を追加できるが、これをそのままInConcertに登録すると、InConcert側では、変換のたびにデータベース上に新しい属性を追加する処理を実行することになりこの際の負荷が重くなる。
そこで、本実施形態の場合、図16に示すように、InConcert側に予め属性名と属性値を格納するための属性(テンプレート)151を用意しておく。
例えば登録対象のWPDL-XML150が、図のような名前(STR_A,STR_B,INT_A)、値(“AA”,“BB”,5)、型(STRING,STRING,INTEGER)を持っていた場合、この属性(テンプレート)151を使用することによって、行を1行づつ追加しながら、それぞれの名前、値、型を当てはめるだけで良くなり、InConcert側で変換のたびにデータベース上に新しい属性を追加する処理の負荷を軽減することができる。
続いて、独立したワークフローシステム間の連携モデルについて説明する。
図2で示した、インターネットにおけるシステムモデルは、一つのWWWサーバの管理下に、複数の異なるワークフローシステムが存在するような場合、例えば、企業のメインのホームページのバックエンドに、部門ごとに異なるワークフローサーバが動作している場合や、グループ企業のメインのホームページのバックエンドに、企業ごとに異なるワークフローサーバが動作している場合などに有効である。
図2で示した、インターネットにおけるシステムモデルは、一つのWWWサーバの管理下に、複数の異なるワークフローシステムが存在するような場合、例えば、企業のメインのホームページのバックエンドに、部門ごとに異なるワークフローサーバが動作している場合や、グループ企業のメインのホームページのバックエンドに、企業ごとに異なるワークフローサーバが動作している場合などに有効である。
これに対し、システムを共有しない企業間の異なるワークフローシステムを連携させたい場合がある。この場合、システム間をつなぐ通信方式(メール、メッセージング、分散オブジェクトなど)が必要になる。
複数のワークフローサーバのいずれか、またはすべてが、WWWサーバの管理下にない場合は、図2の構成を一部拡張し、図17に示すような構成をとる必要がある。この例では、ワークフローシステムが、WWWサーバ51の管理下にはない独立したシステムであるような場合を想定している。
すなわち、この例の場合、サーバ用コンピュータ32に、通信プログラム83を新たに設ける一方、WWWサーバ51の管理下にはない独立したワークフローシステム160に通信プログラム161、WPDL-XMLアダプタ57及びワークフローサーバ38用のクライアントライブラリ58を設ける。
通信プログラム83は、ワークフローシステム160に対し、WPDL-XMLデータの転送を行う通信プログラムである。通信プログラム83の実装形態としては、分散オブジェクト、メッセージングシステム、メール等、いくつかの方法が考えられる。
例えば分散オブジェクトの場合は、CORBAなどの分散オブジェクト製品を使用してWPDL-XMLデータを転送する。メッセージングシステムの場合は、非同期の通信が可能なメッセージング製品を使用してWPDL-XMLデータを転送する。メールの場合は、メールの添付ファイルを使用してWPDL-XMLデータを転送する。
通信プログラム(受信側)161は、転送されてきたWPDL-XMLデータを所定のディレクトリにファイルとして書き出す。WPDL-XMLファイル43は、転送されてきたワークフロー定義情報ファイルである。WPDL-DTDファイル60は、ワークフローシステム160とそのコンピュータ37に配置されている。なお、DTDファイルは各コンピュータ37に配置せず、インターネット上の特定に位置に配置し、URL形式で参照するようにしても良い。WPDL-XMLアダプタ57は、ワークフローシステム160のためのWPDL-XMLアダプタである。XMLパーサ54は、WPDL-XMLアダプタ57の内部で、WPDL-XMLファイルの解析に使用されるプログラムである。これは、市販のXMLパーサ製品を利用できる。
ワークフローシステム160用のクライアントライブラリ58は、ワークフローシステム160が提供しているクライアント用ライブラリである。WPDL-XMLアダプタ57は、このライブラリの機能を使用することにより、WPDL-XMLデータをワークフローシステム160に適合させる。
ワークフローシステム160用のサーバ38は、ワークフローシステム160のサーバプログラムである。リクエストを受け付けて、製品独自の方式でデータを登録する。
このワークフロー連携システムの場合、サーバ用コンピュータ32の通信プログラム83と、独立したワークフローシステム160の通信プログラム161間でWPDL-XMLファイルのやりとり(転送)を行うことで、独立したワークフローシステム160であってもワークフロー→XML、XML→ワークフロー等の双方向変換が可能になり、ワークフロー連携を行うことができる。
ここで、WPDLの表記法を、XMLで記述するための表記法の別の表記ルールについて説明する。
今回の実施形態は、WPDLの表記法から、極力少ないルールで、XMLの表記法に変換することを目的としている。したがって、ごくわずかの例外をのぞいて、すべてのWPDLキーワードやサブキーワードはXMLエレメント(タグ)として定義した。このことにより、変換作業を単純な作業にすることができる。
しかし、WPDLのワークフローモデルの意味を詳細に調査すると、サブキーワードのいくつかはXMLエレメントではなく、むしろエレメントの属性として定義した方が適当な場合があることも事実である。
例えば個々の仕事(Activity)の名前は、現在<NAME>タグによって記述される。
<ACTIVITY>
<NAME>申請書提出</NAME>
</ACTIVITY>
しかし、一個のエレメントに必ず一つ現れるようなデータは、属性で定義した方が自然である。
<ACTIVITY>
<NAME>申請書提出</NAME>
</ACTIVITY>
しかし、一個のエレメントに必ず一つ現れるようなデータは、属性で定義した方が自然である。
<ACTIVITY NAME=” 申請書提出” />
このようにWPDLワークフローモデルの意味を重視して、エレメントと属性を使い分ける表記法も考えられる。
このようにWPDLワークフローモデルの意味を重視して、エレメントと属性を使い分ける表記法も考えられる。
WPDL-XMLワークフロー定義プログラム、WPDL-XMLワークフロー表示プログラム、WPDL-XML InConcert変換アダプタ等の各プログラムは、本実施形態において、Java言語によって作成されているが、この他、例えばWindows上のVisualC++、VisualBasic等でも作成できる。
このようにこの実施形態のワークフロー連携システムによれば、汎用的なワークフロー定義であるWPDLをXMLで記述したWPDL-XMLファイルを、インターネットあるいはイントラネットを介して接続された異なるワークフローシステム間でやりとりすることでワークフロー連携を容易に行うことができる。
また、WPDLの文法をXMLの表記法で忠実に再定義し、文書型定義を記述したDTDファイルを作成したので、WPDLをXMLで表記することが可能になった。これにより、市場に広く出回っている任意のXMLパーサ(XML文書構造を解析するプログラム)を使用して言語処理を行えるようになり、XMLを使わない場合と比較して開発の工数を削減することができる。
また、ユーザは、ワークフロー定義画面に表示されたアイコンをドラッグアンドドロップするというGUI操作でワークフローモデルを作成(表記)できる。しかも、そのとき作成したワークフローモデルがXMLの表記に自動的に変換されるので、ユーザは、WPDLのワークフローモデルについての知識さえあれば、WPDLの表記法もXMLの表記法も知らなくても、テキストエディタ等でキー入力あるいは編集操作することなくXMLで表記したワークフローモデルを容易に作成することができる。
さらに、XMLによるWPDL対応をそれぞれのワークフローシステムが行えば、異なるワークフローシステムが共通の定義データとアプリケーションプログラムを利用できるようになる。
なお、本発明は上記実施形態のみに限定されるものではない。
上記実施形態に記載の各プログラム(ソフトウェア)は、フロッピー(登録商標)ディスクなどのコンピュータが読み出し可能な記憶媒体に記憶されていても良く、この場合、記憶媒体に記憶されたプログラム(ソフトウェア)をコンピュータが読み出すことにより、各実施形態における処理が可能になる。
上記実施形態に記載の各プログラム(ソフトウェア)は、フロッピー(登録商標)ディスクなどのコンピュータが読み出し可能な記憶媒体に記憶されていても良く、この場合、記憶媒体に記憶されたプログラム(ソフトウェア)をコンピュータが読み出すことにより、各実施形態における処理が可能になる。
なお、本発明における記憶媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク(CD−ROM、CD−R、DVDなど)、光磁気ディスク(MOなど)、半導体メモリなど、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式はいずれの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフトなどのMW(ミドルウェア)などが本実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は一つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記録媒体に含まれ、媒体構成はいずれの構成であっても良い。
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコンなどの一つからなる装置、複数の装置がネットワーク接続されたシステムなどのいずれの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコンなども含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
1…WPDL-XML、1a…WPDL-DTDファイル、1b…WPDL-XMLファイル、2…テキストエディタ、3…WPDL-XMLワークフロー定義プログラム、4…WPDL-XMLワークフロー表示プログラム、5,13,23… XMLパーサ/レンダラ、6…XMLパーサ、10,20…業務システム、11,21…ワークフローシステム、12,22…WPDL-XMLアダプタ、51…WWWサーバ、71…WPDL-XML InConcertアダプタ、72…InConcert Java連携ライブラリ、75…WPDL-XMLワークフロー定義プログラム、76…WPDL-XMLワークフロー表示プログラム、141…XMLパーサ/レンダラ、143…データオブジェクト生成部、145…データ登録部、147…データ取得部、160…ワークフローシステム、83,161…通信プログラム。
Claims (5)
- あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列を解析する段階と、
解析されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成する段階と、
生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成する段階と、
生成されたワークフローモデルを該当ワークフローシステムに登録する段階と
を有することを特徴とするワークフロー変換方法。 - ワークフロー定義に関る操作用のアイコン部品を画面に表示する段階と、
前記アイコン部品が前記画面上に配置されることでワークフローを定義する段階と、ワークフローの定義をExtensible Markup Language で表記するために規定した文書型定義に基づき、ワークフローの定義内容をExtensible Markup Language で表記したテキスト文字列に変換する段階と、
変換されたテキスト文字列を基に、所定言語のプログラムで編集可能なようにデータオブジェクトクラスのインスタンスを生成する段階と、
生成されたデータオブジェクトクラスのインスタンスとワークフロー連携用ライブラリとに基づき、他のワークフローシステムのワークフローモデルを生成する段階と、
生成されたワークフローモデルを該当ワークフローシステムに登録する段階と
を具備したことを特徴とするワークフロー変換方法。 - クライアントコンピュータとサーバコンピュータとをネットワークを介して接続してなるクライアント・サーバシステムにおけるワークフローの変換方法において、
前記クライアントコンピュータにおいて、あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換する段階と、
変換されたテキスト文字列をネットワークを通じて前記サーバコンピュータへ伝送する段階とを有し、
前記サーバコンピュータにおいて、前記ネットワークからテキスト文字列が受信された場合、変換対象ワークフローシステム用のワークフロー変換手段くを起動する段階と、
起動されたワークフロー変換手段が、受信された文字列を、それぞれのワークフローシステム用のワークフローモデルに変換する段階と、
変換されたワークフローモデルを、それぞれのワークフローシステムに登録する段階と
を有することを特徴とするワークフロー変換方法。 - あるワークフローシステムのワークフローをExtensible Markup Language で表記したテキスト文字列に変換する段階と、
変換されたテキスト文字列を他のワークフローシステムへ伝送する段階と、
伝送されてきたテキスト文字列を、自身のワークフローに変換する段階と
を有することを特徴とするワークフロー変換方法。 - ワークフロー処理が実行されているシステムより、ワークフローの進捗状況の情報をExtensible Markup Language で表記したテキスト文字列で取得する段階と、
取得されたテキスト文字列を、ワークフローの定義をExtensible Markup Language で表記するために規定した文書型定義に基づき、ワークフローの形態で表示する段階と
を有することを特徴とするワークフロー変換方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003315837A JP2004046895A (ja) | 2003-09-08 | 2003-09-08 | ワークフロー変換方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003315837A JP2004046895A (ja) | 2003-09-08 | 2003-09-08 | ワークフロー変換方法 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000267676A Division JP2002074253A (ja) | 2000-09-04 | 2000-09-04 | ワークフロー定義方法、ワークフロー表示方法、ワークフロー再利用方法、ワークフロー変換方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004046895A true JP2004046895A (ja) | 2004-02-12 |
Family
ID=31712693
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003315837A Pending JP2004046895A (ja) | 2003-09-08 | 2003-09-08 | ワークフロー変換方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004046895A (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008511935A (ja) * | 2004-08-31 | 2008-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ統合システムのためのユーザ・インターフェース |
| JP2008532154A (ja) * | 2005-03-01 | 2008-08-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ワークフローを処理するための方法、コンピュータ・プログラム、およびシステム(ワークフロー・システムへのデータ管理動作の統合) |
| CN100451954C (zh) * | 2005-12-29 | 2009-01-14 | 吉林大学 | 框架定制的模型驱动软件生成方法 |
| JP2009523272A (ja) * | 2005-12-20 | 2009-06-18 | サバント システムズ エルエルシー | プログラム可能なサービスを有するプログラム可能なマルチメディアコントローラ |
| JP2009534773A (ja) * | 2006-04-24 | 2009-09-24 | マイクロソフト コーポレーション | プロセス符号化 |
| US9354904B2 (en) | 2006-04-24 | 2016-05-31 | Microsoft Technology Licensing, Llc | Applying packages to configure software stacks |
| US10838714B2 (en) | 2006-04-24 | 2020-11-17 | Servicenow, Inc. | Applying packages to configure software stacks |
| CN112825031A (zh) * | 2019-11-21 | 2021-05-21 | 中盈优创资讯科技有限公司 | 基于json格式的流程描述方法及装置 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000222305A (ja) * | 1999-02-03 | 2000-08-11 | Nippon Telegr & Teleph Corp <Ntt> | インターワークフロー管理方法とそのシステム及びインターワークフロー管理プログラムを記録した記録媒体 |
-
2003
- 2003-09-08 JP JP2003315837A patent/JP2004046895A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000222305A (ja) * | 1999-02-03 | 2000-08-11 | Nippon Telegr & Teleph Corp <Ntt> | インターワークフロー管理方法とそのシステム及びインターワークフロー管理プログラムを記録した記録媒体 |
Non-Patent Citations (2)
| Title |
|---|
| CSND199800133009, 速水治夫(外2名), "企業間BPRの実現を目指すインターワークフロー支援技術 基本概念とプロトタイプによる評価", 日経コンピュータ, 19980216, No.437, p.191−p.201, JP, 日経BP社 * |
| CSNG199900391011, 速水治夫(外2名), "ここまで来たワークフロー管理システム (2)ワークフロー製品の標準化", 情報処理, 19981215, 第39巻,第12号, p.1258−p.1263, JP, 社団法人情報処理学会 * |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008511935A (ja) * | 2004-08-31 | 2008-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ統合システムのためのユーザ・インターフェース |
| JP2008532154A (ja) * | 2005-03-01 | 2008-08-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ワークフローを処理するための方法、コンピュータ・プログラム、およびシステム(ワークフロー・システムへのデータ管理動作の統合) |
| JP2009523272A (ja) * | 2005-12-20 | 2009-06-18 | サバント システムズ エルエルシー | プログラム可能なサービスを有するプログラム可能なマルチメディアコントローラ |
| CN100451954C (zh) * | 2005-12-29 | 2009-01-14 | 吉林大学 | 框架定制的模型驱动软件生成方法 |
| JP2009534773A (ja) * | 2006-04-24 | 2009-09-24 | マイクロソフト コーポレーション | プロセス符号化 |
| US9354904B2 (en) | 2006-04-24 | 2016-05-31 | Microsoft Technology Licensing, Llc | Applying packages to configure software stacks |
| US10838714B2 (en) | 2006-04-24 | 2020-11-17 | Servicenow, Inc. | Applying packages to configure software stacks |
| CN112825031A (zh) * | 2019-11-21 | 2021-05-21 | 中盈优创资讯科技有限公司 | 基于json格式的流程描述方法及装置 |
| CN112825031B (zh) * | 2019-11-21 | 2024-03-12 | 中盈优创资讯科技有限公司 | 基于json格式的流程描述方法及装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11789706B2 (en) | Development system with improved methodology for creation and reuse of software assets | |
| EP1703381B1 (en) | Rich data-bound applications | |
| US8209672B2 (en) | Systems and methods for transforming modeled business processes into executable processes | |
| US6845507B2 (en) | Method and system for straight through processing | |
| US7222291B2 (en) | Method and system for importing HTML forms | |
| US8429527B1 (en) | Complex data merging, such as in a workflow application | |
| US8327322B2 (en) | System and method for allowing the creation of composite applications through the wiring of loosely coupled existing or custom components of disparate technologies | |
| US20090006997A1 (en) | Workflow ui generating method and generator | |
| CN101180598B (zh) | 用于提供过程指南的方法 | |
| US20050066304A1 (en) | Custom and customizable components, such as for workflow applications | |
| US20110137702A1 (en) | Workflow applications | |
| US20080147453A1 (en) | System and method for end users to create a workflow from unstructured work | |
| JP2012079332A (ja) | コンピュータプラットフォームのプログラミングインターフェース | |
| US20060294048A1 (en) | Data centric workflows | |
| Verbeek et al. | XRL/Flower: Supporting inter-organizational workflows using XML/Petri-net technology | |
| US6671855B1 (en) | Outline information generating apparatus and computer-readable recording medium recording thereon outline information generating program | |
| JPH10254689A (ja) | クライアント・サーバシステムのアプリケーション構成設計支援方式 | |
| US20070271107A1 (en) | Context-dependent value help | |
| US20040189703A1 (en) | Publishing interface for publishing content from a content-authoring application to a content server | |
| JP2004046895A (ja) | ワークフロー変換方法 | |
| US20110289515A1 (en) | Generating service-access activities for workflow applications | |
| JP2002074253A (ja) | ワークフロー定義方法、ワークフロー表示方法、ワークフロー再利用方法、ワークフロー変換方法 | |
| US8812964B2 (en) | Managing evelopment of an enterprise application | |
| Liu et al. | Engineering information service infrastructure for ubiquitous computing | |
| Ellmer et al. | Consistency management of distributed documents using XML and related technologies |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070608 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100629 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101026 |
