説明

ワークフロー処理装置及びワークフロー処理方法

【課題】 使用するプロトコルを意識することなく記述でき、ワークフロー処理時には、実行可能なプロトコルに変換して処理する。
【解決手段】 ワークフローを処理するワークフロー処理装置において、仮想的な仮想プロトコルを用いてワークフローを記述したワークフロー記述文書を作成する。仮想プロトコルを用いて記述されたワークフローを処理する場合に、その仮想プロトコルを実プロトコルに変換し、変換された実プロトコルを実行してワークフローを処理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークフローを処理するワークフロー処理装置及びワークフロー処理方法に関する。
【背景技術】
【0002】
従来、業務や作業における一連の流れであるワークフローを処理するワークフロー処理では、コンピュータ及びネットワークを用いて自動化し、情報や業務が円滑に流れるように業務支援を行っている。例えば、企業内の特定部門及びメンバーを巡回していた書類を電子化し、コンピュータネットワークを用いて情報を送受信することで、業務を効率化することが可能となる。また、近年、ワークフロー処理はコンピュータ及びコンピュータネットワークに加え、Webサービス技術も用いられるようになり、適用範囲を拡大している。
【0003】
ワークフロー処理では、情報がどのメンバーに送信され、処理されるのかを記述したワークフロー記述文書を事前に定義する必要がある。また、コンピュータ及びネットワークを用いて自動化されたワークフロー処理では、ワークフロー記述文書を解析可能なワークフロー処理装置に読み込ませることで、ワークフロー処理を実現している。
【0004】
上述のコンピュータ、ネットワーク及びWebサービスを用いたワークフロー処理では、ワークフロー記述文書を記述する言語として、WS−BEPLが広く用いられている。WS−BEPLは、Web Services Business Process Execution Languageの略である。
【0005】
特許文献1には、ワークフローを設計するための拡張可能フレームワークが開示されている。特許文献1において、各ステップは、ワークフローステップの設計時の態様、コンパイル時の態様、及び実行時の態様を記述する関連コンポーネントモデルを持つ。更に、開発者は、これらのコンポーネントモデルを編集することによりコアワークフローモデルを拡張することができる。具体的には、例えば実行中のワークフローに対するアクティベーション、実行、クエリ、及び制御機能を使用でき、実行中のワークフローにアドホックな動的変更を加えることができる。
【特許文献1】特開2006−107478号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、ワークフローを記述する段階でワークフローが確定している必要があり、実行時に動的に処理を変更するといったことが不可能であった。
【0007】
また、特許文献1では、実行時に、動的にワークフロー処理の変更をすることが可能となったが、対象としているプロトコルは1種類であり、様々なプロトコルで実装されている機器をワークフロー処理の対象とすることは依然として困難であった。
【0008】
本発明は、使用するプロトコルを意識することなく記述でき、ワークフロー処理時には、実行可能なプロトコルに変換して処理することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、ワークフローを処理するワークフロー処理装置であって、仮想プロトコルのコマンドを用いて記述されたワークフローを処理する場合に、当該仮想プロトコルのコマンドを実プロトコルのコマンドに変換する変換手段と、前記変換手段によって変換された実プロトコルのコマンドを実行して前記ワークフローを処理する処理手段と、を有することを特徴とする。
【0010】
また、本発明は、ワークフローを処理するワークフロー処理装置にて実行されるワークフロー処理方法であって、仮想プロトコルのコマンドを用いて記述されたワークフローを処理する場合に、当該仮想プロトコルのコマンドを実プロトコルのコマンドに変換する変換工程と、前記変換工程において変換された実プロトコルのコマンドを実行して前記ワークフローを処理する処理工程と、を有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、使用するプロトコルを意識することなく、ワークフローを記述でき、プロトコルの変更にも柔軟に対応することができる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【0013】
尚、ワークフロー処理装置は、PC(パーソナルコンピュータ)以外に、ワークステーション、ノートブックPC、パームトップPCなどのネットワーク機器でも良い。更に、コンピュータを内蔵したテレビ等の各種家電製品、ゲーム機、電話、FAX、携帯電話、PHS、電子手帳、等を含む端末でも良い。また、これらの組み合わせでも良い。
【0014】
図1は、本実施形態におけるワークフロー処理装置の構成の一例を示す図である。図1において、101はコンピュータシステムの制御を司る中央演算装置(CPU)である。102はCPU101の主メモリであるランダムアクセスメモリ(RAM)で、実行プログラムの領域や該プログラムの実行エリア並びにデータエリアとして機能する。103はCPU101の動作処理手順等を記録しているリードオンリーメモリ(ROM)である。このROM103には、コンピュータシステムの機器制御を行うシステムプログラムである基本ソフト(OS)を記録したプログラムROMと、システムを稼動するために必要な情報などが記録されたデータROMとがある。また、ROM103の代わりに、後述するHDD109を用いる場合もある。
【0015】
104はネットワークインターフェース(NETIF)であり、ネットワークを介してコンピュータシステム間のデータ転送を行うための制御や接続状況の診断を行う。また、文書処理装置では、NETIFは必須ではないが、レイアウトルールを他の装置から取得するような場合に、備えている必要がある。
【0016】
105はビデオRAM(VRAM)であり、コンピュータシステムの稼動状態を示す、後述するCRT106の画面に表示される画像を展開し、その表示の制御を行う。106は表示装置であり、例えばCRTディスプレイである。VRAMやCRTも文書処理装置としては必須ではないが、レイアウト処理後のページ情報を、例えばディスプレイに表示するような場合は、備えている必要がある。
【0017】
107は後述する外部入力装置108からの入力信号を制御するコントローラ(KBC)である。108はコンピュータシステムの利用者がコンピュータシステムに対して行う操作を受け付けるための外部入力装置であり、例えばキーボード(KB)などである。
【0018】
109は記憶装置を示し、例えばハードディスクドライブ(HDD)などである。このHDD109はアプリケーションプログラムや画像情報などのデータ保存用に用いられる。本実施形態におけるアプリケーションプログラムとは、本実施形態を構成する文書処理及びレイアウト処理を実行するソフトウェアプログラムなどである。
【0019】
110は外部入出力装置であり、記憶媒体を入出力し、上述のアプリケーションプログラムの記憶媒体からの読み出しなどを行う。
【0020】
尚、HDD109に格納するアプリケーションプログラムや各種データをFDD110に格納して使用することも可能である。
【0021】
111は上述した各ユニット間を接続するための入出力バス(アドレスバス、データバス、及び制御バス)である。
【0022】
次に、図1に示すワークフロー処理装置で実行されるアプリケーションモジュールを、図2を用いて説明する。尚、アプリケーションモジュールは、HDD109などの記録媒体に記録されたソフトウェアのプログラムがRAM102に読み出され、CPU101によって実行されることで、その機能が実現される。
【0023】
図2に示す200はワークフロー記述文書作成部であり、ユーザインタフェース201と構造化文書変換部202を含み、ワークフロー記述文書203を生成する。このユーザインタフェース201は、図3に示すようなユーザインタフェース画面をCRT106に表示し、簡単にワークフローを作成できるように構成されている。
【0024】
図3は、本実施形態におけるユーザインタフェース画面の一例を示す図である。図3に示すように、アクティビティをドラッグアンドドロップでパネル上に貼り付け、関係付けするだけでワークフローを作成できるように構成されている。アクティビティは、ワークフローにおける処理の単位である。図3に示す例は、アクティビティとして外部アクティビティ、内部アクティビティ、制御アクティビティが設定されている。そして、外部アクティビティの撮影、保存、印刷といった機能が画面の右側のパネル上に貼り付け、関係付けられた状態を示している。
【0025】
また、仮想プロトコルによるアクティビティであることを表明するには、アクティビティのプロトコル属性に“Virtual”を設定する。図3では、保存という機能を実行するときに用いる実プロトコルが決められていないことを示す。
【0026】
尚、仮想プロトコルとは、機器もしくはサービスを連携する際に、複数のプロトコルに共通する機能(の概念、操作方法)を抽象的に表現したもので、例えばプリンタでは印刷といったように機能を表現する仮想的なプロトコルである。
【0027】
図2に戻り、ワークフロー記述文書作成部200の構造化文書変換部202は、ワークフローを図4に示すような、構造化文書であるXMLで記述されたワークフロー記述文書203に変換する。ここで、XMLはeXtensible Markup Languageの略である。
【0028】
図4は、本実施形態における構造化文書変換部202によって変換されたワークフロー記述文書203の一例を示す図である。
【0029】
図3に示すプロトコル属性が“Virtual”と設定された仮想プロトコルは、図4に示すXML記述でも“save”要素の“protocol”属性が“Virtual”と設定される。即ち、このsaveは、仮想プロトコルにおいて、保存という機能を実行することを示すコマンドであり、保存という機能を実行するときに用いる実プロトコルが決められていないことが示されている。
【0030】
図2に戻り、204はワークフロー実行部であり、ワークフロー記述文書作成部200で作成されたワークフロー記述文書203を読み込み、実行する。このワークフロー実行部204には、仮想プロトコル毎に対応する実プロトコルを管理するプロトコルテーブル205が含まれる。
【0031】
図5は、本実施形態におけるワークフロー実行部204に含まれるプロトコルテーブル205の一例を示す図である。図5に示すプロトコルテーブル205は、仮想プロトコルにおけるアクティビティ(コマンド)500毎に複数の実プロトコルにマッピングされ、優先順位により管理される。ここで、使用プロトコルA501が最も優先順位が高く、次に使用プロトコルB502、…503と続いている。例えば、アクティビティ(コマンド)500がrelease(撮影)の場合は、最も優先順位の高いプロトコルがUPnPであり、SOAP、PTP/IPの順になっている。その他save(保存)などを実行するときに用いる実プロトコルが管理されている。
【0032】
ワークフロー実行部204は、実行すべきアクティビティが仮想プロトコルで定義されている場合、どのプロトコルを使用すべきかを図5に示すプロトコルテーブルに基づいて判定する。
【0033】
尚、図5に示すプロトコルテーブルの内容は一例であり、アクティビティ500、使用プロトコルA501、使用プロトコルB502、…503の組合せは、これに限定されるものではない。また、…503の記述は、優先順位の個数に限定がないことを示している。
【0034】
図2に戻り、206は仮想プロトコル変換部であり、仮想プロトコルと実プロトコルとの変換処理を行う。仮想プロトコル変換部206には、仮想プロトコルと実プロトコルのコマンドの対応関係を管理しているプロトコル変換テーブル207が含まれる。
【0035】
図6は、本実施形態における仮想プロトコル変換部206に含まれるプロトコル変換テーブル207の一例を示す図である。このプロトコル変換テーブル207は、プロトコル600毎にコマンド601、パラメータ602、リターン値603を管理している。
【0036】
図6に示す(A)の場合は、仮想プロトコルにおけるアクティビティ(コマンド)がrelease(撮影機能の実行指示)の例であり、同(B)の場合は、仮想プロトコルにおけるアクティビティがprint(印刷)の例である。図6に示す(A)で、プロトコル600がUPnPの場合は、コマンド601がreleaseでパラメータ602としてTv値とAv値が必要なことを示している。また、実行結果のリターン値603として撮影画像が返却されることを示している。
【0037】
仮想プロトコル変換部206は、仮想プロトコルから実プロトコルのコマンドへの変換をこのプロトコル変換テーブル207に基づいて実行する。具体的には、アクティビティのprintが仮想プロトコルで定義されている場合、printのプロトコル変換テーブル207(図6に示す(B))に基づいて実プロトコルのコマンドへの変換を行う。
【0038】
尚、プロトコル600、コマンド601、パラメータ602、リターン値603の値は一例であり、これに限定されるものではない。
【0039】
図2に戻り、208はプロトコル実行部出あり、実プロトコルでの処理を行う。図2に示すように、プロトコル実行部208は、実際のプロトコル実装であるプロトコルA実行部209、プロトコルB実行部210、プロトコルC実行部211を含む。尚、図2では、一例としてプロトコルA実行部209、プロトコルB実行部210、プロトコルC実行部211を含む構成としているが、包含する個別プロトコルの実行部の個数は3つに限定されるものではない。
【0040】
以上の構成において、ワークフロー処理装置で仮想プロトコルが含まれるワークフローを生成し、その仮想プロトコルを処理する方法を、図7〜図9を用いて説明する。
【0041】
図7は、本実施形態における仮想プロトコル処理を示すフローチャートである。まず、処理開始後、ステップS701において、ワークフロー生成かワークフロー実行の何れが選択されたかを判定する。ここで、ワークフロー実行が選択されている場合は、ステップS707へ処理を進める。ステップS707の処理については更に後述する。
【0042】
一方、ステップS701で判定した結果、ワークフロー生成が選択されている場合は、ステップS702へ処理を進め、ユーザインタフェース201が図3に示すようなユーザインタフェース画面(ワークフロー作成ツール)を表示する。
【0043】
次に、ステップS703において、このユーザインタフェース画面上でアクティビティを画面右側のパネルにドラッグアンドドロップし、関連付けるような方法でワークフローを生成する。このワークフローの生成が終了すると、ステップS704において、構造化文書変換部202がステップS703で生成したワークフローを図4に示すような構造化文書であるXMLで記述されたワークフロー記述文書に変換する。
【0044】
次に、ステップS705において、ステップS703及びS704で生成されたワークフロー記述文書をHDD109又はFDD110に保存する。そして、ステップS706では、ステップS705で保存したワークフロー記述文書を実行するか否かを判定する。判定した結果、ワークフロー記述文書の実行が指示されていない場合は、この処理を終了する。しかし、ワークフロー記述文書の実行が指示された場合には、ステップS707へ処理を進め、ワークフロー実行部204がワークフロー記述文書を読み込む。
【0045】
次に、ステップS708において、ワークフロー記述文書に実行すべきアクティビティが存在するか否かを判定する。ここで、実行すべきアクティビティが存在しない場合には、即ち、全てのアクティビティを実行した場合には、この処理を終了する。しかし、実行すべきアクティビティが存在する場合には、ステップS709へ処理を進め、実行対象のアクティビティを読み込む。
【0046】
次に、ステップS710において、実行対象のアクティビティが仮想プロトコルで定義されているか否かを判定する。この判定としては、そのアクティビティのプロトコル属性に“Virtual”が設定されているか否かにより行う。ここで、仮想プロトコルではなく、実プロトコルで定義されていると判定された場合は、ステップS717へ処理を進める。この場合、図8に示すように、ワークフロー実行部204が対象エンドノードA801、B802、C803にコマンドを実行するので、使用プロトコルが異なるエンドノードC803では失敗する。
【0047】
一方、ステップS710において、仮想プロトコルで定義されていると判定された場合は、ステップS711へ処理を進め、図5に示すプロトコルテーブル205から該当アクティビティに適用可能なプロトコル一覧を取得する。そして、ステップS712で、該当アクティビティに対して適用する実プロトコルが存在するか否かを判定する。判定の結果、適用する実プロトコルがない、或いは優先順位に従って全てのプロトコルを検証済みと判定された場合は、ステップS719へ処理を進め、アクティビティを実行できなかった旨のエラーを表示し、この処理を終了する。
【0048】
しかし、ステップS712で、適用する実プロトコルが存在すると判定された場合は、ステップS713へ処理を進める。ステップS713では、仮想プロトコル変換部206が図6に示すプロトコル変換テーブル207から該当アクティビティの該当プロトコルにおけるコマンド、パラメータ、リターン値、などの実プロトコルの情報を取得し、プロトコル変換を行う。ステップS709で読み込んだアクティビティが仮想プロトコルのreleaseというコマンドである場合、第1優先順位の実プロトコルであるUPnPのコマンド、パラメータ、リターン値などの情報を取得する。
【0049】
次に、ステップS714において、該当プロトコルにディスカバリ機能があるか否かを判定する。ステップS714で、該当プロトコルにディスカバリ機能がないと判定される場合は、ステップS720へ処理を進め、プロトコル実行部208がステップS713で変換されたコマンドを実行する。そして、ステップS721では、実行されたコマンドが成功したか否かを判定する。ここで、コマンドの実行結果が成功したと判定された場合は、ステップS708に処理を戻し、次のアクティビティを実行する。しかし、失敗したと判定された場合は、対象エンドノードが該当プロトコルを使用不能と判定し、ステップS711に処理を戻し、次の優先順位のプロトコル情報を取得してステップS729で実行する。
【0050】
一方、上述したステップS714で、該当プロトコルにディスカバリ機能があると判定した場合は、ステップS715へ処理を進め、該当プロトコルのディスカバリ機能を使用してディスカバリを実行する。そして、ステップS716では、ステップS715で実行したディスカバリの結果、対象エンドノードが発見されたか否かを判定する。判定の結果、対象エンドノードが発見されなかった場合は、対象エンドノードが該当プロトコルを使用不能と判定し、ステップS711に処理を戻し、次の優先順位のプロトコル情報を取得してステップS715で実行する。
【0051】
一方、ステップS716で、対象エンドノードが発見された場合は、ステップS717へ処理を進め、ステップS713で変換されたコマンドを実行する。つまり、図9に示すように、プロトコルA実行部209は対象エンドノードA901、B902が該当プロトコルを使用可能と判定し、プロトコルB実行部210は対象エンドノードC903が該当プロトコルを使用可能と判定する。
【0052】
次に、ステップS718において、ステップ717で実行されたコマンドが成功したか否かを判定する。ここで、成功したと判定された場合は、ステップS708に処理を戻し、次のアクティビティを実行する。しかし、失敗したと判定された場合には、ステップS719へ処理を進め、アクティビティの実行に失敗した旨のエラーを表示し、この処理を終了する。
【0053】
本実施形態によれば、ワークフローをプロトコルに依存することなく記述でき、ワークフロー実行時には使用可能なプロトコルに変換可能とすることにより、様々なプロトコルで実装されているネットワーク機器をワークフローに組み込むことができる。
【0054】
尚、本発明は複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
【0055】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【0056】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0057】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0058】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【0059】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0060】
【図1】本実施形態におけるワークフロー処理装置の構成の一例を示す図である。
【図2】図1に示すワークフロー処理装置で実行されるアプリケーションモジュールの一例を示す図である。
【図3】本実施形態におけるユーザインタフェース画面の一例を示す図である。
【図4】本実施形態における構造化文書変換部202によって変換されたワークフロー記述文書203の一例を示す図である。
【図5】本実施形態におけるワークフロー実行部204に含まれるプロトコルテーブル205の一例を示す図である。
【図6】本実施形態における仮想プロトコル変換部206に含まれるプロトコル変換テーブル207の一例を示す図である。
【図7】本実施形態における仮想プロトコル処理を示すフローチャートである。
【図8】ワークフロー実行部による実プロトコルの実行を説明するための図である。
【図9】仮想プロトコル変換部による実プロトコルの実行を説明するための図である。
【符号の説明】
【0061】
200 ワークフロー記述文書作成部
201 ユーザインタフェース
202 構造化文書変換部
203 ワークフロー記述文書
204 ワークフロー実行部
205 プロトコルテーブル
206 仮想プロトコル変換部
207 プロトコル変換テーブル
208 プロトコル実行部
209 プロトコルA実行部
210 プロトコルB実行部
211 プロトコルC実行部

【特許請求の範囲】
【請求項1】
ワークフローを処理するワークフロー処理装置であって、
仮想プロトコルのコマンドを用いて記述されたワークフローを処理する場合に、当該仮想プロトコルのコマンドを実プロトコルのコマンドに変換する変換手段と、
前記変換手段によって変換された実プロトコルのコマンドを実行して前記ワークフローを処理する処理手段と、
を有することを特徴とするワークフロー処理装置。
【請求項2】
前記仮想プロトコルは、複数の実プロトコルに共通する機能を表現した仮想的なプロトコルであることを特徴とする請求項1に記載のワークフロー処理装置。
【請求項3】
前記変換手段は、処理すべきワークフローを構成するコマンドに対して複数の実プロトコルを優先順位を付けて管理し、優先順位が高い順に、変換すべき実プロトコルを判定していくことを特徴とする請求項1に記載のワークフロー処理装置。
【請求項4】
前記処理手段は、前記コマンドの実行が失敗であれば、次の優先順位の実プロトコルのコマンドを実行することを特徴とする請求項3に記載のワークフロー処理装置。
【請求項5】
前記処理手段は、ディスカバリ機能を有する場合、当該ディスカバリ機能で発見された対象エンドノードに前記変換手段によって変換された実プロトコルのコマンドを実行することを特徴とする請求項1に記載のワークフロー処理装置。
【請求項6】
ワークフローを処理するワークフロー処理装置にて実行されるワークフロー処理方法であって、
仮想プロトコルのコマンドを用いて記述されたワークフローを処理する場合に、当該仮想プロトコルのコマンドを実プロトコルのコマンドに変換する変換工程と、
前記変換工程において変換された実プロトコルのコマンドを実行して前記ワークフローを処理する処理工程と、
を有することを特徴とするワークフロー処理方法。
【請求項7】
コンピュータを請求項1乃至5の何れか1項に記載のワークフロー処理装置として機能させるためのプログラム。
【請求項8】
請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2009−294856(P2009−294856A)
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願番号】特願2008−147070(P2008−147070)
【出願日】平成20年6月4日(2008.6.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】