以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
(システム構成)
図1は、本発明に係る文書処理システム1の構成を示すブロック図である。
文書処理システム1は、様々なサービスを行う装置やアプリケーションがネットワーク5を介して接続されたものである。ここで、サービスとは、外部からの要求に応じて文書に関する利用可能な機能をいう。サービスは、例えば、コピー、プリント、スキャン、ファクシミリ送受信、メール配信、レポジトリへの格納やレポジトリからの読込、OCR(Optical Character Recognition)処理、ノイズ除去処理等が該当するが、特に限定されるものではない。
文書処理システム1は、具体的には、複数のサービスを連携させてユーザーの所望の処理を指示するためのユーザーインタフェースを備えたクライアント端末10と、ユーザーの所望のサービスを検索するサービス検索サーバ20と、クライアント端末10で指示されたサービス連携に関する情報から指示書を作成する指示書生成サーバ30と、指示書を管理する指示書管理サーバ40と、指示書に従って各サービスの連携処理を実行する連携処理サーバ50と、を備えている。
さらに、文書処理システム1は、画像文書のノイズ除去処理や画像回転処理やOCR処理や画像をバインドする等の画像処理を行う画像処理装置61と、文書を管理する文書管理サーバ62と、文書を配信する文書配信サーバ63と、第1のサービス処理を行う第1のサービス処理装置64と、第2のサービス処理を行う第2のサービス処理装置65と、を備えている。
なお、文書処理システム1は、本実施形態では所定のサービス処理を行う複数のサーバがネットワーク5を介して接続された構成となっているが、複数のサービスがネットワーク5を介して接続されていれば特に限定されるものではない。
ここで、指示書とは、一連の処理を複数の機能的な処理に分解した場合において、各機能の関係を表す情報と、各機能を呼び出すためのインタフェース(I/F)情報と、一連の処理に関するグラフィカルユーザーインタフェース(GUI)を構成するための情報と、を含んだデータをいう。
図2は、文書処理システム1を構成する各サービス処理装置の相互関係を説明するためのブロック図である。各サービス処理装置は、自身が提供するサービスの内容を表すI/F情報を記憶している。
図3は、I/F情報の構成を示す図である。I/F情報は、<サービス種類(Service Class)>、<サービス名(Service Name)>、<サービス・アイコン(Service Icon)>、<サービス情報ロケーション(Service Information Location)>、<入力(Input)>、<出力(Output)>、<パラメータ制限ルール(Parameter Restriction Rules)>、<サービス・ロケーション(Service Location)>、<メソッド名(Method Name)>、<起動方法(Invocation Scheme)>、<黙示要素(Implicit Elements)>で構成されている。
<サービス種類>は、サービス処理装置が提供するサービスの種類(処理内容)である。なお、<サービス種類>は、予め定義されているものが使用され、例えば、スキャン、プリント、レポジトリ、フロー等が該当する。<サービス名>は、サービス処理装置が提供するサービスの名前である。<サービス・アイコン>は、クライアント端末10のGUIに表示するアイコンの位置情報である。
<サービス情報ロケーション>は、指示書生成サーバ30がI/F情報を取得するために用いるURLである。<入力>は、サービスへの入力である。<出力>は、サービスからの出力である。<パラメータ制限ルール>は、<入力>に適用される制限ルールである。<サービス・ロケーション>は、サービスを実際に使用するときの位置情報である。<メソッド名>は、サービス処理の提供手法や、サービスを指し示す名称が記述されている。
<起動方法>は、サービス処理を呼び出し起動する方法である。なお、<起動方法>としては、例えばメッセージ交換のプロトコルであるSOAP(Simple Object Access Protocol)、SMTP(Simple Mail Transfer Protocol)等を用いることができる。<黙示要素>は、出力として明示的に後段の処理に渡されるデータでないが、後段の処理で参照可能なデータである。
クライアント端末10は、指示書の作成を指示したり、起動すべき指示書を選択するために、画面表示したり所定の操作を行うためのグラフィカルユーザーインタフェース(GUI)の機能を備えている。
サービス検索サーバ20は、ネットワーク5に接続された複数のサービスの中から、検索条件に対応するサービスを検索する。サービス検索サーバ20は、画像処理装置61、文書管理サーバ62、文書配信サーバ63、第1のサービス処理装置64、サービス処理装置65等の様々なサービス処理装置のI/F情報の一部(以下「部分I/F情報」という。)を予め記憶している。ここで、部分I/F情報は、I/F情報の要素中の<サービス種類>、<サービス名>、<サービス情報ロケーション>、<入力>、<出力>の情報をいう。
サービス検索サーバ20は、指示書生成サーバ30や連携処理サーバ50から検索条件が送信されたときは、各サービス処理装置の部分I/F情報を用いてサービスを検索する。例えば、サービス検索サーバ20は、所定のサービスと同様のサービスを検索するときは、<サービス種類>が一致するサービスを検索したり、<入力>及び<出力>が一致するサービスを検索したり、これらすべてが一致するサービスを検索すればよい。
指示書生成サーバ30は、指示書作成時には各サービス処理装置からI/F情報を取得して、各サービス処理装置が提供するサービスを連携させるための指示書を生成する。指示書生成サーバ30は、指示書を作成すべく、具体的には次の処理を実行する。
指示書生成サーバ30は、<サービス情報ロケーション>に基づいて、ネットワーク5上に分散した所定のサービス処理装置から、各サービスに関するI/F情報を送信するように要求する。なお、指示書生成サーバ30は、所定のサービス処理装置がない場合は、サービス検索サーバ20に対して、所定のサービス処理装置と同一のサービスを行う他のサービス処理装置を検索するように指示を出す。そして、指示書生成サーバ30は、サービス検索サーバ20から、他のサービス処理装置の<サービス情報ロケーション>を取得すればよい。
指示書生成サーバ30は、サービス検索サーバ20からの検索結果や各サービス処理装置から受信したI/F情報を管理する。指示書生成サーバ30は、各サービス処理装置から取得したI/F情報に基づいて、ジョブフロー(連携処理)を定義するためのGUI画面となるHTMLファイルを生成する。そして、指示書生成サーバ30は、クライアント端末10からのサービスの閲覧要求があると、GUI画面となるHTMLファイルを前記クライアント端末10へ送信する。
図4は、ジョブフローを定義するためのGUI画面である指示書作成画面100を示す図である。指示書作成画面100は、サービスウインドウ101、フローウインドウ102、ロジックウインドウ103、プロパティウィンドウ104で構成されている。
サービスウインドウ101は、使用可能な様々なサービス処理装置を表示する。ロジックウインドウ103は、サービス間の連携のパターンを示すジョブフローを表示する。プロパティウィンドウ104は、サービスウインドウ101とロジックウインドウ103に表示された各アイコンの詳細な設定パラメータを表示する。
ユーザーは、サービスウインドウ101のアイコンとロジックウインドウ103のアイコンをフローウインドウ102にドラッグ・アンド・ドロップすることで、フローウインドウ102にジョブフローを定義することができる。ユーザーは、さらに、プロパティウィンドウ104に表示された内容を編集することによって、サービスやロジックなどのサービス間の関係を詳細に設定することができる。
このように、ユーザーは、サービスウインドウ101のアイコンとロジックウインドウ103のアイコンをフローウインドウ102にドラッグ・アンド・ドロップしてジョブフローを定義し、プロパティウィンドウ104に表示された内容を編集することにより、多様かつ複雑な処理を連携させるための指示書を容易に作成することができる。
クライアント端末10は、ユーザーの操作によって定義されたジョブフロー情報を、CGI(Common Gateway Interface)形式に従って指示書生成サーバ30に送信する。
指示書生成サーバ30は、ユーザーからのサービス連携の指示に関するジョブフロー情報と、各サービスのI/F情報とに基づいて、各サービスへ依頼する処理の内容、入力パラメータ、各サービスの連携の仕方(ジョブフロー)、文書名や格納ロケーション情報等の処理対象の文書を特定するための情報を定義した指示書を作成する。指示書は、XML形式のファイルで構成されている。
図5は、XML形式で構成された指示書を示す概念図である。複数のサービスの連携処理自体も1つのサービスとみなされるので、指示書は、図3に示したI/F情報に加えて<フロー(Flow)>を追加した構成になっている。
<フロー>は、サービス間の連携を記述する要素であり、<起動(Invoke)>、制御構造や論理演算、条件判断をするための<if>等の要素、サービス間の連携を調整するためのXML構造の操作指示、さらに処理対象の文書を特定するための情報を含んでいる。
<起動>は、サービス処理装置の特定のメソッドを表し、サービスの呼び出しを実行する。<起動>の要素として、パラメータの位置情報を示す<マップ>と、呼び出すメソッド名<メソッド>を有している。制御構造や論理演算等を示す<if>、<and>、<eq>、<gt>は、連携処理時に条件分岐を行ったり、サービス間で受け渡されるパラメータの調整を実施する。
指示書は、サービスの連携処理の制御に関するすべての情報を<フロー>の要素に記述している。これにより、指示書によって表される連携処理自体も1つのサービスとみなされる。なお、指示書は、図5に示す構成に限定されるものではなく、各サービスを連携させることができればよい。
指示書生成サーバ30は、以上のようなXML形式の指示書を指示書管理サーバ40に送信する。また、指示書生成サーバ30は、ユーザーによりサービス連携処理の実行が指示されている場合は、指示書を直接連携処理サーバ50に送信してもよい。
指示書管理サーバ40は、指示書生成サーバ30から送信された指示書を保持し、クライアント端末10からの要求に応じて指示書を連携処理サーバ50へ送信する。このように、作成された指示書を格納し保持しておくことにより、必要に応じて指示書を呼び出して実行することができるため、その都度指示書を作成する必要がなく、効率よく文書を処理することができる。
連携処理サーバ50は、指定された指示書を解釈・実行するサーバである。連携処理サーバ50は、指示書が送信されると、その指示書を解釈し、指示書に記述されている順番と利用方法に従い、画像処理装置61、文書管理サーバ62、文書配信サーバ63などの各サービス処理装置を順に呼び出し、連携処理を実行する。また、連携処理サーバ50は、実行中の連携処理の状況や終了した連携処理の結果の情報を保存し、外部からの要求に応じて、連携処理の状況や結果を通知する。
連携処理サーバ50は、指示書を解釈して各サービス処理装置へ依頼する際には、処理依頼内容や入力パラメータ、処理対象の文書を特定するための情報等を有する個別指示情報を生成する。なお、連携処理サーバ50は、各サービス処理装置で行う処理の前後の処理との関連を指示書に記述してもよいし、指示書の形式ではなく各サービス処理装置毎の固有の情報交換形式で処理依頼を行うようにしてもよい。
画像処理装置61は、画像処理機能を行うソフトウェアプログラムがインストールされたコンピュータである。画像処理装置61は、連携処理サーバ50からの処理要求依頼に含まれるサービス処理依頼内容、入力パラメータ、処理対象文書の情報に基づいて、文書の処理を行う。また、画像処理装置61は、起動時にサービス検索サーバ20に対して、部分I/F情報を通知する。さらに、画像処理装置61は、指示書生成サーバ30からの要求により、画像処理サービスの利用方法を示すI/F情報を送信する。このI/F情報は、指示書作成時に利用される。
文書管理サーバ62は、文書格納機能を有している。文書管理サーバ62は、連携処理サーバ50からの要求に含まれる情報に基づき、文書の格納や検索や読み出し、文書に関する属性の変更や各種処理を実行する。また、文書管理サーバ62は、起動時にサービス検索サーバ20に対して、部分I/F情報を通知する。さらに、文書管理サーバ62は、指示書生成サーバ30からの要求により文書管理サービスの利用方法を示すI/F情報を送信する。
文書配信サーバ63は、取得した文書を、指示された文書管理サーバへ格納したり、指示された送信先へメール送信やFAX送信を行ったり、指示されたプリンタへプリント出力処理を行う機能を備えている。文書配信サーバ63は、連携処理サーバ50からの要求により、クライアント端末10で指示された文書とその配信先の情報に基づき、文書の配信処理を行う。また、文書配信サーバ63は、起動時に、サービス検索サーバ20に対して、部分I/F情報を通知する。さらに、文書配信サーバ63は、指示書生成サーバ30からの要求により文書配信処理サービスの利用方法を示すI/F情報を送信する。
第1のサービス処理装置64は、外部からの指示に従って文書に関する所定のサービス処理を行う装置である。ここで、第1のサービス処理装置64は、連携処理サーバ50からの処理依頼内容や入力パラメータ、処理対象の文書を特定するための情報等の情報に基づき、自身で実行すべきサービス処理を実行する。また、第1のサービス処理装置64は、起動時に、サービス検索サーバ20に対して、部分I/F情報を通知する。さらに、第1のサービス処理装置64は、指示書生成サーバ30からの要求によりサービス処理の利用方法を示すI/F情報を送信する。なお、第2のサービス処理装置65は、サービス処理の内容を除いて、第1のサービス処理装置64と同様に動作する。
以上のように構成された文書処理システム1において、画像処理装置61、文書管理サーバ62、文書配信サーバ63等の各サービス処理装置は、それぞれ所定のサービスを実行するためのアプリケーションプログラムがインストールされると、以下のように動作する。
画像処理装置61、文書管理サーバ62、文書配信サーバ63等のサービス処理装置は、起動処理において、それぞれのサービス概要とアドレスを示す情報を含んだ部分I/F情報をサービス検索サーバ20に通知する。
サービス検索サーバ20は、画像処理装置61、文書管理サーバ62、文書配信サーバ63等の各サービス処理装置から送信された部分I/F情報を保存する。これにより、サービス検索サーバ20は、例えば指示書生成サーバ30や連携処理サーバ50から所定のサービス検索要求があったときに、部分I/F情報を用いて検索を実行することができる。
(指示書の作成)
図6は、指示書作成時のクライアント端末10及び指示書生成サーバ30の処理手順を示すフローチャートである。
クライアント端末10は、ユーザーの操作に従って、インストールされたブラウザを通して、指示書生成サーバ30が提供するユーザーインタフェース画面用に生成されたHTMLファイルのURL(Uniform Resource Locator)にアクセスする(ステップST1)。
指示書生成サーバ30は、クライアント端末10からの閲覧要求に応じて、ユーザーインタフェース画面のHTMLファイルをクライアント端末10に送信する(ステップST2)。
クライアント端末10は、指示書生成サーバ30から送信されたHTMLファイルに含まれる画面を構成する情報に基づいて、ユーザーインタフェース画面を表示する(ステップST3)。このとき、ユーザーは、クライアント端末10に表示されたユーザーインタフェース画面を用いて、所望のサービス連携のジョブフローを定義することができる。
クライアント端末10は、ユーザーインタフェース画面を介してジョブフローが定義されたか否かを判定し、ジョブフローが定義されるまで待機する(ステップST4)。クライアント端末10は、ジョブフローが作成されたと判定すると、ユーザーによって定義されたサービス連携に関するジョブフロー情報を指示書生成サーバ30に送信する。
指示書生成サーバ30は、クライアント端末10より送信されたサービス連携のジョブフローに関する情報と、各サービス処理装置から取得したI/F情報とに基づいて、各サービスへ依頼する処理の内容、入力パラメータ、各サービスの連携の仕方、文書名や格納ロケーション情報等の処理対象の文書を特定するための情報を定義した指示書を作成する(ステップST5)。そして、指示書生成サーバ30は、XML形式の指示書を指示書管理サーバ40に送信する。
指示書管理サーバ40は、指示書生成サーバ30で生成された指示書を保存する。指示書管理サーバ40は、指示書生成サーバ30で作成された複数の指示書を保存しており、クライアント端末10から指示書の選択指示があった時は選択された指示書を読み出す。
(連携処理の起動・実行)
ユーザーは、指示書管理サーバ40に保存されている複数の指示書の中から所望の指示書を選択して、連携処理を起動させることができる。具体的には、以下の通りである。
図7は、クライアント端末10、指示書管理サーバ40及び連携処理サーバ50の処理を示すフローチャートである。ここでは、所定の文書に対してノイズ除去、OCR処理といった画像処理を行い、抽出されたテキスト文書と画像文書とをバインドする処理を行い、バインドされた文書を所定の格納先へ格納し、バインドされた文書のうちテキスト文書のみを配信先として指定されたメールアドレスへメール送信し、画像文書のみを指定されたFAX番号へFAX送信する場合について説明する。
クライアント端末10は、指示書管理サーバ40へアクセスし、指示書管理サーバ40で管理される指示書リストを取得する(ステップST11)。
図8は、指示書リストを表すサービス連携処理選択画面110の一例を示す図である。サービス連携処理選択画面110は、指示書毎に指示書を選択するためのボタン111〜116を有している。ユーザーは、サービス連携処理選択画面110から所望のボタンをクリックすることで、指示書を選択することができる。
クライアント端末10は、サービス連携処理選択画面110から、ユーザーの操作指示に基づいて、所定のサービス連携処理を表す指示書を選択し、その指示書の起動を指示する。このとき、必要に応じて、ユーザーに対してパラメータ入力画面を表示し、ジョブの実行に必要なパラメータを入力させる。
指示書管理サーバ40は、クライアント端末10によって指示された指示書を連携処理サーバ50へ送信する(ステップST12)。この結果、連携処理サーバ50は、連携処理の実行を開始する。
連携処理サーバ50は、指示書管理サーバ40より送信された指示書を解釈し、指示書に記述された第1番目の処理である画像処理装置61に対して、第1のサービス処理を実行することを依頼する(ステップST13)。連携処理サーバ50は、具体的には、指示書に記載された情報をもとに、処理依頼するサービス処理装置のロケーションや処理依頼に必要な入力パラメータと出力パラメータ形式、処理依頼のためのメソッド名、起動方法、処理対象文書を特定する情報を抽出し、個別指示情報を作成する。連携処理サーバ50は、個別指示情報を第1の処理依頼先である画像処理装置61へ送信する。
画像処理装置61は、送信された指示書に記述された処理対象文書の格納先ロケーション情報をもとに、処理対象文書をコピーし文書を取得する。画像処理装置61は、取得した文書画像に対し、サービス処理依頼内容を解釈し、ノイズ除去、OCR処理といった画像処理を行い、抽出されたテキスト文書とバインドする処理を行う。画像処理装置61は、画像処理によって得られた画像文書とテキスト文書がバインドされた文書を元の格納先へ再格納する。画像処理装置61は、このような処理が完了すると、処理のステータス情報(完了)、出力パラメータ、処理後の文書格納先情報など、処理結果を連携処理サーバ50へ送信する。
連携処理サーバ50は、画像処理装置61からの処理結果を受信すると、第1の処理依頼結果をログとして管理する。そして、連携処理サーバ50は、指示書に基づき第2の処理依頼先を特定し、第2のサービス処理を実行することを文書管理サーバ62に依頼する(ステップST14)。連携処理サーバ50は、第1のサービス処理依頼と同様に、個別指示情報(処理依頼に関する情報である文書を格納する旨の情報、文書の格納先の情報、処理対象文書を特定する情報)を文書管理サーバ62へ送信する。
文書管理サーバ62は、連携処理サーバ50の依頼内容に基づき、前の処理(第1のサービス処理)で処理され格納された文書を、依頼内容に記述された格納先情報に基づき格納処理を行う。文書管理サーバ62は、このような処理が完了すると、処理のステータス情報(完了)、出力パラメータ、処理後の文書格納先情報など、処理結果を連携処理サーバ50へ送信する。
連携処理サーバ50は、第2のサービス処理(文書格納処理)からの処理結果を受信すると、第2の処理依頼結果をログとして管理する。連携処理サーバ50は、指示書に基づき第3の処理依頼先を特定し、第3のサービス処理を実行することを文書配信サーバ63に依頼する(ステップST15)。連携処理サーバ50は、第2のサービス処理依頼と同様に、個別指示情報(処理依頼に関する情報である文書を格納する旨の情報、文書の格納先の情報、処理対象文書を特定する情報)を文書配信サーバ63へ送信する。
文書配信サーバ63は、連携処理サーバ50の依頼内容に基づき、前の処理(第2のサービス処理)で処理され格納された文書を、文書を特定する情報(格納先情報)に基づき文書ファイルを読み出し、依頼内容に記述された処理を行う。ここでは、文書配信サーバ63は、テキスト文書と画像文書がバインドされた文書のうち、テキスト文書のみを配信先として指定されたメールアドレスへメール送信し、画像文書のみを指定されたFAX番号へFAX送信を行う。文書配信サーバ63は、処理が完了すると、処理のステータス情報(完了)、出力パラメータ、処理後の文書格納先情報など、処理結果を連携処理サーバ50へ送信する。
この処理において、文書配信サーバ63は、例えばFAX送信処理において相手先が話し中でありかつ所定回数リトライを行っても相手先と接続できなかった場合、ステータス情報として「メール送信:完了、FAX送信:未送信」を連携処理サーバ50に送信する。
連携処理サーバ50は、第3のサービス処理からの処理結果を受信し、指示書には次の処理が記述されていないと判断すると、クライアント端末10に対してすべての処理が完了した旨の通知を行い、連携処理を終了する(ステップST16)。
このように、文書に対して施すべき複数のサービス処理の連携の指示に関する情報や、文書の格納位置に関する情報等が記載された指示書に従って、ネットワークに各々接続された処理部で実行されるサービス処理を連携させるので、多様かつ複雑な処理を効率よく行うことができる。
なお、上記で説明したネットワーク5に接続されたサーバ等の各部は、各々独立した装置として構成されていてもよく、いくつかの各部がまとまって1つの装置内に設けられていてもよく、各部全てが1つの装置内に設けられていてもよい。また、処理対象の文書データや指示書は、ネットワーク5に接続された他の外部装置に格納されていてもよい。さらに、本実施形態において、サービス検索サーバ20は、各サービス処理装置からI/F情報の一部(部分I/F情報)を取得していたが、I/F情報の全部を取得するようにしてもよい。
また、図1及び図2に示した連携処理サーバ50を使用することなく、複数のサービスの連携処理を実行することもできる。
図9は、複数のサービスの連携処理を実行する文書処理システム80を構成する各サービス処理装置の相互関係を説明するためのブロック図を示した。なお、文書処理システム1と同一部分には同一の符号を付し、詳細な説明は省略する。
なお、文書処理システム80は図1に示した各サービス処理装置(連携処理サーバ50を除く。)を備えているが、図9には連携処理に関連するサービス処理装置のみを図示した。
ユーザは、指示書管理サーバ40に保存されている複数の指示書の中から所望の指示書を選択して、連携処理を起動させることができる。具体的には、以下の通りである。
クライアント端末10は、ユーザの操作に応じて、サービス連携処理選択画面から所望のサービス連携処理を表す指示書を選択し、その指示書の起動を指示する。指示書管理サーバ40は、クライアント端末10によって指示された指示書を画像処理装置61へ送信する。
画像処理装置61は、送信された指示書に記述された処理対象文書の格納先ロケーション情報をもとに、処理対象の文書を取得する。画像処理装置61は、取得した文書画像に対し、サービス処理依頼内容を解釈し、ノイズ除去、OCR処理といった画像処理を行い、抽出されたテキスト文書とバインドする処理を行う。画像処理装置61は、所定の画像処理終了後、指示書に記述されたサービス処理依頼を削除する。そして、画像処理装置61は、画像処理によって得られた画像文書とテキスト文書とがバインドされた文書と、処理のステータス情報(完了)、出力パラメータ、処理後の文書格納先情報など処理結果を有する指示書とを、次のサービス処理を提供する文書管理サーバ62に送信する。
また、画像処理装置61は、所定の画像処理終了後、指示書中に記載された自身のサービス依頼に関する部分を修正又は削除して文書管理サーバ62に送信してもよい。さらに、画像処理装置61は、所定の画像処理終了後、指示書を次のサービス処理装置へ送信するように構成してもよい。
文書管理サーバ62は、画像処理装置61から送信された文書を、指示書に記述された格納先に一時格納する。そして、文書管理サーバ62は、指示書に記述されたサービス処理依頼を削除して、文書及び指示書を次のサービス処理を行う文書配信サーバ63に送信する。
文書配信サーバ63は、指示書に基づいて、テキスト文書と画像文書がバインドされた文書のうち、テキスト文書のみを配信先として指定されたメールアドレスへメール送信し、画像文書のみを指定されたFAX番号へFAX送信を行う。そして、文書配信サーバ63は、指示書に次の処理が記述されていないと判断すると、クライアント端末10に対してすべての処理が完了した旨の通知を行い、連携処理を終了する。
なお、文書処理システム80においても、文書処理システム1と同様に、ネットワーク5に接続されたサーバ等の各部は、各々独立した装置として構成されていてもよく、いくつかの各部がまとまって1つの装置内に設けられていてもよく、各部全てが1つの装置内に設けられていてもよい。
次に、上記の文書処理システム1又は文書処理システム80が適用されたシステムにおいて、ある装置に所定の文書データに関する指示書の実行を依頼したが、その指示書に記述されたある処理の実行が何らかの障害により実行できなかった場合に、代替処理を実行する形態について説明する。
具体的には、図10に示すように、デバイスAからデバイスBに所定の文書データの検索処理及び送信処理が指示された指示書の実行を依頼した場合について説明する。ここで、デバイスAは、指示書を作成する機能や作成した指示書を送信する操作等の各種操作機能等を有する装置である。すなわち、デバイスAは、前述したクライアント端末10、指示書生成サーバ30等が有する機能と同等の機能を備えている。また、デバイスBは、指示書を解釈して実行する機能や文書を格納する機能を有する装置である。すなわち、デバイスBは、前述した連携処理サーバ50、文書管理サーバ62等が有する機能と同等の機能を備えている。なお、デバイスBは本発明の解釈手段及び連携処理手段に相当する。
デバイスAは、図10に示すように、文書データの検索処理や送信処理について定義された指示書90をデバイスBへ送信する。
図11には、指示書90の<フロー>の一部の記載例の概略を示した。なお、図11に示した記載例はあくまでも一例であり、これに限定されるものではない。
図11に示す例は、指定したファイル名の文書データを検索して指定したアドレスの装置に送信する連携処理を実行させるための指示書の記載例であり、検索処理及び送信処理について定義されている。
図11に示すように、検索処理の内容は、検索処理を指示するためのスタートタグ<検索処理>とエンドタグ</検索処理>との間に記載されたコマンドやパラメータ等によって定義され、検索対象の文書データのファイル名等が記述される。
また、送信処理の内容は、送信処理を指示するためのスタートタグ<送信処理>とエンドタグ</送信処理>との間に記載されたコマンドやパラメータ等によって定義され、送信先の装置の位置を示す、例えばURLやIP(Internet Protocol)アドレス等のアドレス情報、文書データの送信方法、送信方法の優先度等が記述される。
文書データの送信方法は、送信に失敗したときのために複数定義され、図12に示すように、優先度の異なる複数の送信方法が定義される。ここでは、優先度の値が低いほど実行の優先度が高いことを示す。すなわち、まずFAX送信によって指定された文書データを指定された送信先に送信するが、何らかの原因により失敗した場合には、次に優先度が高いIFAX送信により文書データを送信する。このように、複数の通信方法を定義しておくことにより、指示書の処理の実行が失敗したまま終了するのを極力防ぐことができると共に、再度最初から処理を実行する必要がなく、効率的にジョブを実行することができる。
デバイスBは、指示書90をデバイスAから受信すると、指示書を解釈し、指定された文書データを検索し、検索できた場合には、その文書データを指定された送信先のアドレスへ優先度の高い送信方法で送信し、失敗した場合には、次に優先度が高い送信方法で送信する。
ここで、文書データの送信先のアドレス情報をデバイスAのアドレスとすることにより、図10に示すように、指定された文書データ92がデバイスAに送信される。従って、例えば、デバイスBが印刷機能を有する場合において、デバイスBに格納された文書データの印刷をデバイスBに依頼したが、他のユーザーがデバイスBを使用している等の理由により印刷処理を実行できない場合には、上記のような指示書をデバイスAで作成してデバイスBへ送信することにより、文書データをデバイスAで取得することができる。このため、デバイスA自身が印刷機能を有する場合にはデバイスAで印刷することができ、印刷機能を有する他のデバイスに転送して他のデバイスに印刷させることもできる。なお、送信先のアドレスをデバイスAではなく、他のデバイスのアドレスを指定することにより、デバイスBから他のデバイスに文書データを転送させ、直接他のデバイスに印刷処理させるようにすることもできる。
次に、デバイスAで実行される処理ルーチンについて、図13に示すフローチャートを参照して説明する。
図13に示す処理ルーチンは、デバイスAにおいて図11に示すような指示書90が作成され、その指示書90の送信が指示された場合に実行される。
まず、ステップ200では、作成された指示書90をデバイスBに送信する。ステップ202では、指示書90に記述した文書データのファイルを受信したか否かを判断し、受信した場合には、ステップ204へ移行し、受信していない場合には、ステップ206へ移行する。
ステップ204では、受信した文書データの印刷処理を実行する。これは、デバイスA自身が印刷機能を有する場合にはデバイスAで印刷処理する。デバイスA自身が印刷機能を有しない場合には、印刷機能を有する他のデバイスに取得した文書データを送信して他のデバイスに印刷処理させる。
デバイスBから文書データのファイルを受信していない場合には、ステップ206で、エラーが発生したか否かを判断する。エラーの発生とは、例えばデバイスBからファイルが見つからなかった旨を通知された場合や、デバイスAから指示書を送信してからタイムアウトとして予め定めた所定時間を経過した場合等である。そして、エラーが発生していない場合には、ステップ202へ戻り、文書データのファイルを受信するまで待機する。一方、エラーが発生した場合、すなわちデバイスBからファイルが見つからなかった旨が通知された場合や、指示書90を送信しても所定時間以上文書データのファイルがデバイスBから送信されてこない場合には、ステップ208でエラー処理を行う。このエラー処理では、例えば指示書90の実行が失敗したことを示すメッセージを表示したりすることによりユーザーへ通知する処理を行う。
次に、デバイスBで実行される処理ルーチンについて、図14に示すフローチャートを参照して説明する。図14に示す処理ルーチンは、デバイスAから指示書90を受信すると実行される。
まず、ステップ300では、受信した指示書90を解釈し、指定された文書データのファイルが存在するか検索する。なお、この処理は、本発明におけるサービス処理としての検索処理を行うサービス処理手段に相当する。
ステップ302では、指定された文書データのファイルが存在するか否かを判断し、存在していた場合には、ステップ304において、優先度が最も高い通信方法でデバイスAに送信する。例えば指示書90において図12に示すように各送信方法の優先度が定義されていた場合、まずFAX送信により文書データのファイルを送信する。なお、この処理は、本発明におけるサービス処理として送信処理を行うサービス処理手段に相当する。一方、ファイルが存在しない場合には、ステップ308でエラー処理を行う。このエラー処理は、例えばファイルが検索できなかったことをデバイスAに通知する等の処理である。
ステップ306では、ファイルの送信が正常に終了したか否かを判断し、正常終了した場合には本ルーチンを終了する。一方、正常終了しなかった場合には、ステップ310で未実施の他の通信方法がないか否かを判断する。そして、未実施の通信方法がない場合、すなわち、全ての通信方法でファイルを送信しても正常終了しなかった場合には、ステップ312でエラー処理を行う。このエラー処理は、例えば指示書90の実行が失敗したことを示すメッセージを表示したり、ログとして記録したりする等の処理である。
一方、未実施の通信方法がある場合には、ステップ314で、次に優先度が高い通信方法でファイルを送信してステップ306へ移行する。例えば図12に示す例の場合には、FAX通信の次に優先度が高いIFAX通信により文書データのファイルを送信する。
このように、指示書90に複数の送信方法を優先度を付けて定義しておき、ファイルの送信が正常終了しなかった場合には、次に優先度が高い送信方法でファイルを送信する。これにより、ファイルの送信が失敗するのを極力防ぐことができ、再度同じジョブを実行し直したりする必要がなく、利便性を向上させることができる。
なお、上記では、ファイルの複数種類の送信方法について優先度を付けて指示書に定義した場合について説明したが、これに限らず、他の処理についても複数種類の実行方法(装置)に優先度を付けて指示書に定義し、優先度順に実行するようにしてもよい。例えば、上記の例において、指示書90に文書データを印刷する印刷装置を指定する場合、複数の印刷装置に優先度を付けて指示書90に定義しておき、優先度の高い印刷装置から印刷処理させるようにすることもできる。これにより、印刷処理に失敗する確率を低くすることができ、利便性を大幅に向上させることができる。
また、上記では、デバイスBにおいて検索処理及び送信処理を行う場合について説明したが、他のデバイスに検索処理及び送信処理を行わせても良い。