(57)【要約】【課題】実行手段側の負担を軽減する【解決手段】ジョブエージェントＪＥは生成され、サブミッタ１０Ｓで実行され、最初のサービス１０Ａに移動する。ジョブエージェントＪＥにより各サービス１４Ａ〜１０Ｃは、該ジョブエージェントＪＥを、各サービス１４Ａ〜１０Ｃを順に、移動させ、各サービス１４Ａ〜１０Ｃに文書処理を依頼（ジョブエージェントＪＥの実行）する。各サービス１４Ａ〜１０Ｃは、ジョブエージェントＪＥから文書を受け取り、指示された処理を行い、加工された文書をジョブエージェントＪＥに返す。ジョブエージェントが最後のサービス１０Ｃに到達し、処理が終了すると、ジョブエージェントＪＥは、サブミッタ１０Ｓへ帰還する。【選択図】  図３
2004288057.tif 000002
【特許請求の範囲】
【請求項１】
文書に対する処理を実行する実行手段に転送される処理実行プログラムであって、
文書に対する少なくとも１つの処理を定める処理情報、及び該処理の実行を規定する処理規定情報を含む情報群と、
前記処理情報により定められる処理を実行する実行手段において実行されることにより、該実行手段に前記処理規定情報に基づいて該処理を実行させる処理実行命令プログラムと、
を備えた処理実行プログラム。
【請求項２】
前記情報群は、前記実行手段の位置を参照する位置参照情報を含み、
実行されることにより、前記位置参照情報により定められる位置の実行手段への前記処理実行プログラム自身の移動を指示する移動指示プログラムを更に備えた請求項１記載の処理実行プログラム。
【請求項３】
前記処理実行プログラムを作成する作成手段において前記処理実行プログラムが作成さえた場合、該作成手段により該移動指示プログラムが実行されることを特徴とする請求項２記載の処理実行プログラム。
【請求項４】
前記処理情報は、文書に対する複数の処理を定め、前記処理規定情報は、各処理の実行を規定し、前記処理群は、各処理の順番を定める順番情報及び複数の実行手段各々の位置を参照する位置参照情報を更に含み、
前記移動指示プログラムは、前記処理実行命令プログラムを実行した実行手段において実行されることにより、前記順番情報に基づいて定められる次の順番の処理を実行する実行手段への前記処理実行プログラム自身の前記位置参照情報に基づく移動を指示するプログラム部分を含む、
ことを特徴とする請求項２又は請求項３記載の処理実行プログラム。
【請求項５】
前記情報群は、前記処理実行プログラムが最後に移動する最終位置を定める最終位置参照情報を含み、
前記移動指示プログラムには、前記処理情報により定められる処理が完了した場合に、該処理を実行した実行手段に、前記最終位置参照情報により定められる最終位置への前記処理実行プログラム自身の移動を指示するプログラム部分が含まれることを特徴とする請求項２乃至４の何れか１項に記載の処理実行プログラム。
【請求項６】
実行手段において実行されることにより、処理の実行状態を示す実行状態情報を該実行手段が出力するように命令する実行状態情報出力命令プログラムを更に備えた請求項１乃至請求項５の何れか１項に記載の処理実行プログラム。
【請求項７】
文書に対する少なくとも１つの処理を定める処理情報、及び該処理の実行を規定する処理規定情報を含む情報群を受け取る受取手段と、
前記受取手段により前記情報群が受け取られた場合、該情報群に基づいて、請求項１記載の処理実行プログラムを作成する作成手段と、
を備えた処理実行プログラム作成装置。
【請求項８】
転送された請求項１乃至請求項６の何れか１項に記載の処理実行プログラムを実行するプログラム実行手段を備えた処理実行装置。
【請求項９】
文書に対する少なくとも１つの処理を定める処理情報、該処理の実行を規定する処理規定情報、及び実行手段の位置を参照する位置参照情報を含む情報群を受け取るステップと、
前記受け取られた情報群に基づいて、請求項３記載の処理実行プログラムを作成するステップと、
前記作成された処理実行プログラム中の移動指示プログラムを実行することにより、前記位置参照情報により定められる位置の実行手段に、前記処理実行プログラム自身の移動を指示するステップと、
前記実行手段において処理実行プログラム中の処理実行命令プログラムを実行することにより、前記処理を実行するステップと、
を備えた処理実行方法。
【請求項１０】
前記処理情報は、文書に対する複数の処理を定め、前記処理規定情報は、各処理の実行を規定する処理規定情報を含み、前記処理群は、各処理の順番を定める順番情報及び複数の実行手段各々の位置を参照する位置参照情報を含み、
前記処理実行命令プログラムを実行した実行手段において前記移動指示プログラムを実行することにより、前記順番情報に基づいて定められる次の順番の処理を実行する実行手段に、前記処理実行プログラム自身を前記位置参照情報に基づいて移動させるステップ
を更に備える請求項９記載の処理実行方法。
【請求項１１】
前記情報群は、前記処理実行プログラムが最後に移動する最終位置を定める最終位置参照情報を含み、
前記処理情報により定められる処理が完了した場合に、該処理を実行した実行手段から前記最終位置参照情報により定められる最終位置に前記処理実行プログラム自身の移動を指示するステップ
を更に備える請求項９又は請求項１０記載の処理実行方法。
【請求項１２】
処理の実行状態を示す実行状態情報を出力するステップを更に備えた請求項９乃至請求項１１の何れか１項に記載の処理実行方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、処理実行プログラム、作成装置、処理実行装置、及び処理実行方法に係り、より詳細には、文書に対する処理を実行する実行手段に転送される処理実行プログラム、該処理実行プログラムを作成する作成装置、該処理実行プログラムを実行する処理実行装置、及び文書に対する処理を実行する処理実行方法に関する。
【０００２】
【従来の技術】
従来の指示書実行システムでは、図１４に示すように、文書に対する複数の処理を定める情報等を有する指示書を、フローエンジンが解釈し、各処理を実行するサービスＡ〜Ｃに、指示書を送り、各サービスＡ〜Ｃは、指示書の内容を解釈し、各処理を実行している。
【０００３】
このように従来の指示書実行システムでは、処理結果情報の記録のため、指示書を各サービスが解釈しているので、各サービスは、指示書を解釈する重複したプログラムを必要としている。従って、各サービスは、指示書で指示される処理を実行する環境以外にこのように、指示書を解釈するためのプログラムを実行する環境も必要となり、負担が大きい。また、指示書のフォーマットの変更等により、全てのサービスに対し、サービスが搭載する「指示書を解釈するプログラム」を変更する必要があるため、コストが大きい。更に、各サービスでの処理が終わる毎に、フローエンジンを経由するため、ネットワーク通信の負荷が大きい（特許文献１参照。）。
【０００４】
【特許文献１】
特開平１１−３１６７８号公報
【０００５】
【発明が解決しようとする課題】
本発明は、上記事実に鑑み成されたもので、実行手段側の負担を軽減することの可能な処理実行プログラム、作成装置、処理実行装置、及び処理実行方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的達成のため請求項１記載の文書に対する処理を実行する実行手段に転送される処理実行プログラムであって、文書に対する少なくとも１つの処理を定める処理情報、及び該処理の実行を規定する処理規定情報を含む情報群と、前記処理情報により定められる処理を実行する実行手段において実行されることにより、該実行手段に前記処理規定情報に基づいて該処理を実行させる処理実行命令プログラムと、を備えている。
【０００７】
本発明に係る処理実行プログラムは、文書に対する処理を実行する実行手段に転送される。この転送は、外部装置が、処理実行プログラムとは無関係に転送するようにしてもよいが、次のようにしてもよい。
【０００８】
即ち、請求項２記載の発明では、前記情報群は、前記実行手段の位置を参照する位置参照情報を含み、実行されることにより、前記位置参照情報により参照される位置の実行手段への前記処理実行プログラム自身の移動を指示する移動指示プログラムを更に備える。即ち、処理実行プログラムは、処理実行プログラム自身の移動を指示する移動指示プログラムを備え、該移動指示プログラムが実行されることにより、位置参照情報により定められる位置の実行手段に、前記処理実行プログラム自身が移動される。
【０００９】
この場合、請求項３のように、前記処理実行プログラムを作成する作成手段において前記処理実行プログラムが作成された場合、該作成手段により該移動指示プログラムが実行されるようにしてもよい。即ち、作成手段が処理実行プログラムを作成した場合、該作成手段が、処理実行プログラムとは無関係に、処理実行プログラムを実行手段に移動するようにしてもよいが、作成手段が、請求項３のように、移動指示プログラムを実行することにより、処理実行プログラムを実行手段に移動するようにしてもよい。
【００１０】
本発明の処理実行プログラムは、上記のように、文書に対する少なくとも１つの処理を定める処理情報、及び該処理の実行を規定する処理規定情報を含む情報群と、前記処理情報により定められる処理を実行する実行手段において実行されることにより、該実行手段に前記処理規定情報に基づいて該処理を実行させる処理実行命令プログラムと、を有する。
【００１１】
即ち、本処理実行プログラムが実行手段に転送されると、実行手段は、自身が有するプログラムではなく、該転送された本処理実行プログラム中の処理実行命令プログラムを実行する。即ち、実行手段は処理規定情報に基づいて処理を実行する。
【００１２】
ところで、処理情報は、１つの処理を定める場合ばかりではなく、請求項４のように、文書に対する複数の処理を定めるようにしてもよい。この場合、処理規定情報は、各処理の実行を規定する。処理群は、各処理の順番を定める順番情報及び複数の実行手段各々の位置を参照する位置参照情報を更に含む。
【００１３】
そして、上記移動指示プログラムは、前記処理実行命令プログラムを実行した実行手段において実行されることにより、前記順番情報に基づいて定められる次の順番の処理を実行する実行手段への前記処理実行プログラム自身の前記位置参照情報に基づく移動を指示するプログラム部分を含む。
【００１４】
即ち、処理実行命令プログラムを実行した実行手段は、上記プログラム部分を実行する。従って、該実行手段は、順番情報に基づいて定められる次の順番の処理を実行する実行手段に、処理実行プログラム自身を位置参照情報に基づいて移動させる。
【００１５】
以上説明したように、請求項１記載の発明は、処理情報により定められる処理を実行する実行手段において実行されることにより、該実行手段に処理規定情報に基づいて理を実行させる処理実行命令プログラムを備えているので、実行手段側に、文書に対する処理を定める処理情報及び該処理の実行を規定する処理規定情報を解釈するためのプログラムを備える必要をなくすことができ、実行手段側の負担を軽減することができる。
【００１６】
また、請求項２乃至請求項４記載の発明では、実行されることにより、位置参照情報により定められる位置の実行手段への処理実行プログラム自身の移動を指示する移動指示プログラムを更に備えるようにしているので、実行手段側に、該処理実行プログラムの移動先を判断させるプログラムを備える必要をなくすことができ、実行手段側の負担を更に軽減することができる。
【００１７】
請求項２乃至４の何れか１項に記載の処理実行プログラムでは、請求項５記載のように、前記情報群は、前記処理実行プログラムが最後に移動する最終位置を定める最終位置参照情報を含みるようにしてもよい。この場合、移動指示プログラムには、処理情報により定められる処理が完了した場合に、該処理を実行した実行手段に、最終位置参照情報により定められる最終位置への処理実行プログラム自身の移動を指示するプログラム部分が含まれるようにしてもよい。
【００１８】
即ち、処理情報により定められる処理が完了した場合に、該処理を実行した実行手段が上記プログラム部分を実行すると、該実行手段は、最終位置参照情報により定められる最終位置への処理実行プログラム自身の移動を指示する。
【００１９】
このように請求項５記載の発明は、移動指示プログラムに、処理情報により定められる処理が完了した場合に、該処理を実行した実行手段に、最終位置参照情報により定められる最終位置への処理実行プログラム自身の移動を指示するプログラム部分を含ませているので、最終位置に処理実行プログラムが移動すると、処理が実行されたことを認識することができる。
【００２０】
この場合、最終位置に処理実行プログラム自身の移動を指示するプログラム部分が処理実行プログラムに含まれるので、実行手段側に、最終位置を判断させるプログラムを備える必要をなくすことができ、実行手段側の負担を更に軽減することができる。
【００２１】
また、請求項６記載の発明では、実行手段において実行されることにより、処理の実行状態を示す実行状態情報を該実行手段が出力するように命令する実行状態情報出力命令プログラムを更に備えるようにしている。
【００２２】
ここで、実行状態情報は所定条件を満たすときに出力されるようにしてもよい。所定条件とは、前回出力してから所定時間経過した第１の場合、処理が完了した第２の場合、処理の実行が所定時間を超えた第３の場合、第１の場合乃至第３の場合が組み合わされた第４の場合等である。なお、第４の場合とは、具体的には、第１の場合と第２の場合の組み合わせ、第２の場合と第３の場合の組み合わせ、
第３の場合と第１の場合の組み合わせ、第１の場合、第２の場合、及び第３の場合の組み合わせである。なお、第２の場合としては、上記処理が複数存在する場合には、各処理が終了した場合が含まれる。
【００２３】
このように、処理実行プログラムは、処理の実行状態を示す実行状態情報を該実行手段が出力するように命令する実行状態情報出力命令プログラムを更に備えるようにしているで、実行手段側に、該実行状態情報出力命令プログラムを備える必要をなくすことができ、実行手段側の負担を更に軽減することができる。
【００２４】
ところで、処理実行プログラムは、請求項７記載の発明にかかる処理実行プログラム作成装置によって作成する。即ち、請求項７記載の発明にかかる処理実行プログラム作成装置は、文書に対する少なくとも１つの処理を定める処理情報、及び該処理の実行を規定する処理規定情報を含む情報群を受け取る受取手段と、前記受取手段により前記情報群が受け取られた場合、該情報群に基づいて、請求項１記載の処理実行プログラムを作成する作成手段と、を備えている。
【００２５】
この場合、以下の態様がある。
【００２６】
第１の態様として、前記情報群は、前記実行手段の位置を参照する位置参照情報を含み、前記処理実行プログラムは、実行されることにより、前記位置参照情報により定められる位置の実行手段への前記処理実行プログラム自身の移動を指示する移動指示プログラムを更に備える。
【００２７】
第２の態様として、前記処理実行プログラムを作成する作成手段において前記処理実行プログラムが作成された場合、該作成手段により該移動指示プログラムは実行される。
【００２８】
第３の態様として、前記処理情報は、文書に対する複数の処理を定め、前記処理規定情報は、各処理の実行を規定し、前記処理群は、各処理の順番を定める順番情報及び複数の実行手段各々の位置を参照する位置参照情報を更に含み、前記移動指示プログラムは、前記処理実行命令プログラムを実行した実行手段において実行されることにより、前記順番情報に基づいて定められる次の順番の処理を実行する実行手段への前記処理実行プログラム自身の前記位置参照情報に基づく移動を指示するプログラム部分を含む。
【００２９】
第４の態様として、前記情報群は、前記処理実行プログラムが最後に移動する最終位置を定める最終位置参照情報を含み、前記移動指示プログラムには、前記処理情報により定められる処理が完了した場合に、該処理を実行した実行手段に、前記最終位置参照情報により定められる最終位置への前記処理実行プログラム自身の移動を指示するプログラム部分が含まれる。
【００３０】
第５の態様として、前記処理実行プログラムは、実行手段において実行されることにより、処理の実行状態を示す実行状態情報を該実行手段が出力するように命令する実行状態情報出力命令プログラムを更に備える。
【００３１】
ところで、処理実行プログラムを実行するプログラム実行手段は、請求項８のように、処理実行装置に備えるようにしてもよい。
【００３２】
請求項９の発明にかかる処理実行方法は、文書に対する少なくとも１つの処理を定める処理情報、該処理の実行を規定する処理規定情報、及び実行手段の位置を参照する位置参照情報を含む情報群を受け取るステップと、前記受け取られた情報群に基づいて、請求項３記載の処理実行プログラムを作成するステップと、前記作成された処理実行プログラム中の移動指示プログラムを実行することにより、前記位置参照情報により定められる位置の実行手段に、前記処理実行プログラム自身の移動を指示するステップと、前記実行手段において処理実行プログラム中の処理実行命令プログラムを実行することにより、前記処理を実行するステップと、を備える。
【００３３】
この場合、請求項１０のように、前記処理情報は、文書に対する複数の処理を定め、前記処理規定情報は、各処理の実行を規定する処理規定情報を含み、前記処理群は、各処理の順番を定める順番情報及び複数の実行手段各々の位置を参照する位置参照情報を含み、前記処理実行命令プログラムを実行した実行手段において前記移動指示プログラムを実行することにより、前記順番情報に基づいて定められる次の順番の処理を実行する実行手段に、前記処理実行プログラム自身を前記位置参照情報に基づいて移動させるステップを更に備えるようにしてもよい。
【００３４】
更に、請求項１１のように、前記情報群は、前記処理実行プログラムが最後に移動する最終位置を定める最終位置参照情報を含み、前記処理情報により定められる処理が完了した場合に、該処理を実行した実行手段から前記最終位置参照情報により定められる最終位置に前記処理実行プログラム自身の移動を指示するステップを更に備えるようにしてもよい。
【００３５】
また、請求項１２のように、処理の実行状態を示す実行状態情報を出力するステップを更に備えるようにしてもよい。
【００３６】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
【００３７】
図１に示すように、処理実行システムは、指示書及び所定の情報からジョブエージェントＪＥを作成する作成手段としての後述するサブミッタ１０Ｓ（図４も参照）を備えるユーザ用のクライアント１０、管理者用のクライアント１６、モニタサーバ１２、及び、各々固有の処理を実行する、複数（本実施の形態では３つ）の実行手段、処理実行装置としてのサービス１４Ａ〜１４Ｃを備えている。
【００３８】
各サービス１４Ａ〜１４Ｃは、各々同一の構成であるので、図２（Ａ）に示すように、サービス１４として説明する。サービス１４は、主として、文書処理を行うモジュール（プログラム）である。このモジュールは、プリンタ、コピー機、スキャナ、ファクシミリ装置、複合機（プリンタ、コピー機、スキャナ、ファクシミリ装置の機能を有する）、パーソナルコンピュータＰＣサーバ等の媒体に搭載される。ここで、「サービス」は論理的な処理単位である。上記複合機のように、１つの媒体に複数のサービスが搭載されていても良い。
【００３９】
図２（Ａ）に示すように、サービス１４は、ジョブエージェントＪＥを実行する実行環境２０、固有の処理を実行する実行手段としてのサービスモジュール２２、及び、実行環境２０及びサービスモジュール２２を用いて、ジョブエージェントＪＥを実行するプログラム実行手段としての制御部２４（コントローラ等）を備えている。なお、サービスモジュール２２は、プリント、コピー、スキャン、ファクシミリ送受信等の処理を実行する部分である。
【００４０】
図２（Ｂ）に示すように、実行環境２０は、ジョブエージェントをネットワーク上で転送可能なフォーマットへ変換するための処理（シリアライズ）、及びシリアライズされたデータからジョブエージェントを復元する処理（デシリアライズ）を行うシリアライザ２６、シリアライズされたジョブエージェントを送受信する送受信処理部２８、及び、ジョブエージェントの実行を行う実行環境管理部３０を有する。
【００４１】
次に、本実施の形態の作用を説明する。
【００４２】
最初に、本実施の形態の作用の概略を説明する。
【００４３】
即ち、図３（Ａ）に示すように、クライアント１０からのサブミッタ１０Ｓに、処理対象となる文書、処理の指示及びフローが定義された指示書、処理の詳細を指示するパラメータ（処理の実行を規定する処理規定情報）を有するジョブ情報が与えられることにより、ジョブエージェントＪＥの生成が依頼される。なお、クライアント１０とサブミッタ１０Ｓとは、媒体として同じ場合でもよく、異なる場合でもよい。
【００４４】
ジョブエージェントＪＥが生成され、サブミッタ１０Ｓにおいて実行されると、ジョブエージェントＪＥによりサブミッタ１０Ｓは、図３（Ｂ）に示すように、該ジョブエージェントＪＥを最初のサービス１０Ａに移動させる。ジョブエージェントＪＥにより各サービス１４Ａ〜１０Ｃは、図３（Ｃ）に示すように、該ジョブエージェントＪＥを、各サービス１４Ａ〜１０Ｃを順に、移動させ、各サービス１４Ａ〜１０Ｃに文書処理を依頼（ジョブエージェントＪＥの実行）する。各サービス１４Ａ〜１０Ｃは、ジョブエージェントＪＥから文書を受け取り、指示された処理を行い、加工された文書をジョブエージェントＪＥに返す。
【００４５】
ジョブエージェントが最後のサービス１０Ｃに到達し、該サービス１０Ｃにおける処理が終了すると、ジョブエージェントＪＥは、サブミッタ１０Ｓへ帰還する。サブミッタ１０Ｓは、結果の文書、及び、詳細は後述するログ情報（正常終了、エラーなどの実行状態情報）をジョブエージェントＪＥから得て、クライアント１０へ転送する。
【００４６】
また、本実施の形態では、文書フローのモニタリングのために、ジョブエージェントＪＥは、自身の持つログ情報を以下に説明する任意のポリシーに従い、図１に示すように、モニタサーバ１２に転送する。なお、ジョブエージェントＪＥは、このようにログ情報をモニタサーバ１２に出力するプログラム（実行状態情報出力命令プログラム）を有する。ポリシーとしては、例として以下が考えられる。例えば、
フローの完了時のみ
一定時間毎
各サービスの処理の完了毎
各サービスの処理が一定時間を超える毎
上記の組み合わせ
これらのポリシーは指示書に記述される。ジョブエージェントの発行者、管理者等、フローモニタの閲覧者は複数存在することを考慮し、フローの状態を収集するモニタサーバ１２を用意し、各ジョブエージェントはモニタサーバ１２に各自のログを送信する。モニタサーバ１２は、各クライアントのフローモニタへ配送する。なお、サブミッタをモニターサーバが兼任させても良い。
【００４７】
次に、上述した各処理を詳細に説明する。
【００４８】
最初に、ジョブエージェントＪＥの作成処理手順を図４〜図６を参照して説明する。
【００４９】
ステップ５２で、クライアント１０は、クライアント１０又は専用のサーバ（例えば、指示書プールサーバ２００（図１３参照））中の指示書リポジトリから、任意の指示書を指定し、処理文書と適切なパラメータを添えてサブミッタ１０Ｓにジョブ発行を依頼する。即ち、クライアント１０は、文書、指示書、パラメータをサブミッタ１０Ｓに渡し、フローの実行を依頼する。
【００５０】
ここで、指示書について説明する。指示書とは、文書の一連の処理（文書フロー）の手順を記述したものをいう。また、指示書では、各処理の手続き順序（処理情報）、処理を実現するサービスの指定などの記述（処理情報）も含まれる。
【００５１】
本実施の形態では、指示書はＸＭＬで記述され、任意個のサービス間の処理のフロー（流れ）と、各サービスのアクセス手順を記述した文書フローを定義する。個々のサービスは固有のインターフェースを持ち、指示書には利用するサービスの固有インターフェースの呼び出し手順が記述される。
【００５２】
また、指示書には起動時に設定されるべきパラメータ（処理規定情報）を定義することが可能である。パラメータの種類としては、スキャン（ドキュメント）関連パラメータ（用紙サイズ、カラー、解像度など）、デバイスによる配信関連パラメータ（配信先宛先、配信条件など）、入力指定パラメータ（文字列［長さ制限］、パスワード形式文字列［長さ制限］、整数［最大／最小値］、選択、チェックボックス）等がある。たとえばデバイス内にフローリポジトリが存在し、デバイスからのスキャン時に指示書を選択する場合に、処理前に指示書で指定されたパラメータをユーザに入力させることができる。
【００５３】
次のステップ５４で、サブミッタ１０Ｓは、受け取った情報を元にジョブエージェントＪＥ（処理実行プログラム）を作成する。
【００５４】
ここで、ジョブエージェントＪＥを詳細に説明する。ジョブエージェントＪＥは、文書に対する複数の処理を定める処理情報、該処理の実行を規定する処理規定情報、サービスの位置を参照する位置参照情報（宛先情報）を含む情報群と、処理情報により定められる処理を実行するサービスにおいて実行されることにより、該サービスに処理規定情報に基づいて該処理を実行させる処理実行命令プログラムと、サブミッタ１０Ｓにおいて実行されることにより、位置参照情報により定められる位置のサービス１４へのジョブエージェントＪＥ自身の移動を指示する移動指示プログラムと、を有する。なお、移動指示プログラムは、処理実行命令プログラムを実行したサービスにおいて実行されることにより、順番情報に基づいて定められる次の順番の処理を実行するサービスに、ジョブエージェントＪＥ自身を位置参照情報に基づいて移動させるプログラム部分を有する。
【００５５】
また、転送命令プログラムは、ジョブエージェントＪＥを、位置情報により定められる位置のサービス１４に移動させる命令を実行環境２０に対して発行し、実行環境２０が前記位置情報に基づきジョブエージェントＪＥを転送する処理を行うように構成しても良い。
【００５６】
なお、位置参照情報は、必ずしもサービスの物理的な位置（を示す宛先）でなくても構わない。この場合、位置参照情報として、サービスの特性（サービス名又はサービスの満たす能力等）が位置参照情報となり、ディレクトリサーバ（物理的な位置（宛先）を解決するサーバ）に問い合わせることで、動的に宛先を獲得するようにしてもよい。
【００５７】
また、ジョブエージェントＪＥは、ジョブエージェントＪＥが最後に移動する最終位置を定める最終位置参照情報を含み、移動指示プログラムには、処理情報により定められる処理が完了した場合に、該処理を実行したサービスに、最終位置参照情報により定められる最終位置（本実施の形態ではサブミッタ１０Ｓ）にジョブエージェントＪＥの移動を指示するプログラム部分を有する。
【００５８】
更に、ジョブエージェントＪＥは、サービスにおいて実行されることにより、処理の実行状態を示す実行状態情報を該サービスが出力するように命令する実行状態情報出力命令プログラムを更に備えている。
【００５９】
なお、上記移動指示プログラムや上記ポログラム部分は、ジョブエージェントＪＥが実行されることにより、実行される。即ち、サービス側では、上記移動指示プログラムや上記ポログラム部分を個別に選択して実行するのではなく、ジョブエージェントＪＥが実行されることにより、上記移動指示プログラムや上記ポログラム部分を実行する。なお、ジョブエージェントＪＥ全体ではなく、上記移動指示プログラムや上記ポログラム部分を個別に選択して実行するようにしてもよい。
【００６０】
ジョブエージェントＪＥを別の表現で説明すると、ジョブエージェントＪＥは、  ジョブのインスタンス情報と文書フローの実行可能コードのセットを保有したモバイルエージェントとして表現される。
【００６１】
上記ステップ５４は、詳細には、図５に示すように、ステップ６０で、指示書とパラメータをコンパイルし、各オブジェクトを生成する。即ち、フロー制御部４０、サービス通信処理部４２Ａ〜４２Ｃ、及びログ管理部４３を有するフロー処理部３２、実行管理部４４及び移動処理部４６を有するエージェント制御部３４を生成する。
【００６２】
即ち、図７に示すように、ジョブエージェントＪＥは、主としてフロー処理部３２と、エージェント制御部３４（移動指示プログラム）と、を有する。
【００６３】
フロー処理部３２は、フローを処理する部分であり、フロー制御部４０、各サービス１４Ａ〜１４Ｃに対応するサービス通信処理部４２Ａ〜４２Ｃ、及びログ管理部４３を有する。
【００６４】
フロー制御部４０は、各サービスへのアクセス順序や、エラー時の処理等のフローの制御を行う。フロー制御部４０は、各サービスへのアクセスを、対応するサービス通信処理部４２Ａ〜４２Ｃに依頼する。また、フロー処理の実行結果（個々のサービス処理の結果も含む）はログ管理部４３に記録される。
【００６５】
また、次に移動する移動先の宛先情報はフロー制御部４０が管理し、移動の際には、エージェント制御部３４に宛先情報を提供する。フロー制御そのものは、プログラムとして、フロー制御部４０に埋め込まれている。
【００６６】
サービス通信処理部４２Ａ〜４２Ｃ（処理実行プログラム）は、ジョブエージェントＪＥが実行されるサービス毎に対応して存在し、サービスのインターフェイスを使用し、適切な処理を行う。
【００６７】
ログ管理部４３は、フローや各サービスの実行結果、及び実行状態を管理する。
【００６８】
エージェント制御部３４には、実行開始と全体の制御を行う実行管理部４４と、実行環境と通信し移動処理を行う移動処理部４６と、を有する。
【００６９】
実行管理部４４（プログラム部分）は、ジョブエージェントＪＥの起動時に最初に実行されるモジュールであり、ジョブエージェントＪＥの移動処理や、移動先のサービス１４でのプログラム再開の指示を移動処理部に行う。移動処理部４６（プログラム部分）は、フロー制御部の次の再開ポイントの記録と移動のために、実行環境と通信を行う。また、移動先では、フロー制御の開始処理を行う。なお、ジョブエージェントＪＥの生成時には、再開ポイントとして、フロー制御部の開始ポイントが記録されている。
【００７０】
再開ポイント、及びフロー制御部の中断、再開方法の実現手段として、以下の第１の方法と、第２の方法と、がある。
【００７１】
第１の方法
再開ポイントは、フローの再開個所を示す内部データとして表現される。再開手段としては、実行管理部４４は、フロー制御部４０に対し、通常の関数コール時にその再開ポイントを渡す。フロー制御部４０は渡されたデータに基づき、処理の分岐を行う。中断手段としては、フロー制御部４０のプログラムコードの中で、移動におけるフロー処理の一時的な中断を、関数コールのリターンとして実現する。
【００７２】
第２の方法
再開ポイントは、スタック、レジスタ、プログラムカウンタからなる実行コンテキストとして定義される。実行管理部４４は、実行コンテキストを用い、タスク切り替えにより、フロー制御部４０に制御を切り替える。中断手段としては、フロー制御部４０は、中断用のＡＰＩをコールすることで、制御が実行管理部３４へ遷移する。
【００７３】
ステップ６２で、ステップ６０において生成した各オブジェクトと、再開ポイント３６や宛先情報３８等の必要なライブラリと、を結合し、ジョブエージェントＪＥを生成する。そして、ステップ６４で、処理対象の上記文書をアッタチ、即ち、関連付け、言いかえると、ジョブエージェントに所有させる。
【００７４】
ステップ５６（図４参照）では、サブミッタ１０Ｓは、作成したジョブエージェントを起動し、ステップ５８では、起動したジョブエージェントは、自身にプログラムされた情報に従って、各サービスを移動する。
【００７５】
次に、ジョブエージェントが各サービスを移動しながら各処理を実行させる処理を図８〜図１１を参照して説明する。
【００７６】
上記のように起動したジョブエージェントＪＥが、自身にプログラムされた情報に従って、サービス１４に移動すると、図８のステップ７０で、サービスの１４の制御部２４は、実行環境２４を制御して、ジョブエージェントＪＥを実行する。ステップ７２で、実行管理部４４は、移動処理部４６にフロー実行を依頼し、ステップ７４で、移動処理部４６は、記録された再開ポイントに制御を移し、フロー制御部４０を実行する。
【００７７】
ステップ７６で、フロー制御部４０は、当該サービス１４（例えば、サービス１４Ａ）における文書処理を行うために、該当サービス１４へのアクセスを担当するサービス通信処理部４２（例えば、サービス通信処理部４２Ａ）を呼び出す。
【００７８】
ステップ７８で、サービス通信処理部４２は、サービス１４と通信し、文書を渡し、文書処理を依頼する。ステップ８０で、サービス１４は文書処理を実行し、処理結果（加工文書）を、サービス通信処理部４２に返す。ステップ８２で、サービス通信処理部４２は、制御をフロー処理部４０へ返す。
【００７９】
ステップ８４で、フロー処理部４０は、ログ管理部４３に、処理結果情報を記録する。
【００８０】
ステップ８６で、サービス１４による文書処理は成功したか否かを判断する。該文書処理が成功しなかったと判断された場合には、ステップ８８で、適切なエラー回復処理又はエラー終了処理を行う。サービス１４による文書処理が成功したと判断された場合には、ステップ９０で、次のサービスへの移動処理を行う。
【００８１】
次に、次のサービスへの移動処理を、図９を参照して説明する。ステップ９４で、フロー制御部４０は、実行管理部４４に制御を戻す。
【００８２】
ステップ９６で、実行管理部４４は、現在の実行個所を記録し、実行環境に転送先の宛先を渡し、自身の移動を依頼する。ステップ９８で、実行環境２０中のシリアライザ２６は、ジョブエージェントＪＥをシリアライズし、ネットワークに転送可能なデータに変換する。ステップ１００で、送受信処理部２８は、シリアライズされたデータを次のサービスに転送する。
【００８３】
ステップ１０２で、転送処理が成功したか否かを判断する。転送処理が成功しなかったと判断した場合には、ステップ１０４で、ジョブエージェントＪＥを復元し、エラー情報を渡して起動する。転送処理が成功した場合には、ステップ１０６で、転送先のサービスがシリアライズされたデータを受け取り、転送先のサービス１４のシリアライザ２６は、受け取ったデータ（ジョブエージェントＪＥがシリアライズされたデータ）を復元する（ジョブエージェントＪＥの復元）。
【００８４】
次に、ジョブエージェントＪＥがシリアライズされたデータを復元（ジョブエージェントＪＥの復元）する処理を図１０を参照して説明する。
【００８５】
ステップ１１０で、転送先のサービス上の実行環境は、受け取ったデータをデシリアライズし、ジョブエージェントを復元する。ステップ１１２で、実行環境２０は、復元したジョブエージェントを起動する。ステップ１１４で、起動されたジョブエージェントの実行管理部４４は、移動処理部４６にフロー制御再開を依頼する。ステップ１１６で、移動処理部４６は、記録された再開ポイントに制御を移し、フロー制御を再開する。
【００８６】
ステップ１１８で、エラー情報が渡されて起動されたか否かを判断する。エラー情報が渡されて起動された場合には、ステップ１２０で、適切なリカバリー処理又はエラー終了処理を行う。エラー情報をわたされずに起動された場合は、ステップ１２２で、フロー処理を続行する。
【００８７】
以上説明したように本実施の形態では、ジョブエージェントは、自身がサービスにおいて実行されることにより、サービスに処理を実行させるプログラムを備えているので、サービス側に、指示書を解釈するためのプログラムを備える必要をなくすことができ、サービス側の負担を軽減することができる。
【００８８】
加えて、本実施の形態では、ジョブエージェントに、処理の実行状態を示す実行状態情報を出力するプログラムを備えるようにしているで、サービス側に、実行状態情報を出力するプログラムを備える必要をなくすことができ、サービス側の負担を更に軽減することができる。
【００８９】
以上説明したように、ジョブエージェントが各サービスを移動し処理を実行させているので、指示書を解釈すると共にサービスを管理するサーバを不要にし、サーバ構築のコストを回避できる。各サービスは実行環境を用意するだけでよく、ジョブの解釈を必要としない。これは、ジョブ定義の変更等の影響を受けないことを意味し、拡張性が向上する。
【００９０】
また、指示書が、指示書を解釈する共にサービスを管理するサーバとサービスとの間を行き来することがなく、ジョブエージェントがサービス間を直接移動するので、通信コストの省力化を実現する。また、ジョブエージェントがサービスに移動し、サービス上で文書処理を行うため、文書処理のアクセスが通信回線を伴うことなく行われ、通信コストの省力化を実現する。
【００９１】
以上説明した実施の形態では、全てのサービスが、本実施の形態にかかるジョブエージェントを実行させるための実行環境を有する場合を例にとり説明したが、本発明はこれに限定されるものではなく、一部のサービスがこのような実行環境を持たないようにしてもよい。以下、一部のサービスが本実施の形態にかかるジョブエージェントを実行させるための実行環境を持たない場合を図１２を参照して説明する。即ち、従来のインターフェースで通信可能なサービス（サービスＸ）への処理が必要な場合を考える。
【００９２】
このサービスＸは実行環境を持たないため、ジョブエージェントＪＥはサービスＸに移動することができない。サービスＸへの移動ができないでいるジョブエージェントＪＥが止まっているサービスＡが、ジョブエージェントＪＥをサービスＸに移動できないことを検知すると、本実施の形態にかかるジョブエージェントを実行させるための実行環境を有する代替実行サーバＳへジョブエージェントＪＥを転送する。
【００９３】
代替実行サーバＳに転送されたジョブエージェントは、該代替サーバＳ上で起動する。ジョブエージェントＪＥは、通常どおりに、サービスへの依頼を行うが、代替サーバＳ上では、仮想的な代替サービスが起動しており、このサービスがジョブエージェントからの依頼を受け取り、サービスＸへ通信する。
【００９４】
このためには、代替サービスＳは、サービスＸとの通信の手順を知る必要がある。即ち、代替サービスＳは、ジョブエージェントから、フロー制御部の該当するサービス通信処理部を取得し、代替サービスがサービス通信処理部を実行する。なお、ジョブエージェントがサービス通信処理部を実行する時は、通信相手のサービスは同じホスト上に存在するためＬＰＣ通信になるが、代替サービスがサービス通信処理部を実行する場合は、通信相手となるサービスはリモートに存在するため、ＲＰＣ通信になる。
【００９５】
【実施例】
次に、実施例を説明する。本実施例では、文書をスキャンし、スキャンした文書を、正立補正、ノイズ除去、ＯＣＲを行い、フォルダへ格納するという文書フローを例にとり説明する。
【００９６】
上記文書フローを記述する指示書は、指示書プールサーバ２００に保管される。このサーバは論理的な単位であり、サーバが起動する物理的な媒体として、デバイス内、あるいはネットワーク上の別のＰＣに搭載されることも考えられる。
【００９７】
本実施例で使用する指示書には、説明を簡単にするために、各サービスの処理順序と、サービスの所在を示す物理的な位置（サービスが起動しているＰＣのアドレス）が記述されているものとする。
【００９８】
なお、別の手段としては、サービスの所在は、指示書には記述されず、ジョブエージェントの生成時（指示書のコンパイル時）にサブミッタが、サービス検索サーバに問い合わせを行っても良いし、物理的な所在を特定しないでジョブエージェントを生成し、ジョブエージェントが実行時に、各サービスの所在をサービス検索サーバに問い合わせても良い。
【００９９】
また、スキャン、正立補正及びノイズ除去、ＯＣＲ、及び指定されたフォルダへの格納の各処理は、それぞれ個別のサーバ２０２〜２０８で実現される。同様にこれらのサーバも論理的な単位であり、物理的な媒体として、個別のＰＣでも良いし、同一のＰＣでも良い。
【０１００】
また、フォルダへ格納する処理は、直接ファイルサーバ２０６へ文書がアタッチされたジョブエージェントを渡すことで実現しても良いし、文書の内容により各ファイルサーバへの振り分けを行う振り分けサーバへ渡すことで実現しても良い。以下の例では、指示書にファイルサーバ、及び格納ディレクトリが指示書に直接記述されているものとし、前者の実現で示す。
【０１０１】
図１３で、サブミッタ２１０は、ジョブ発行依頼を受け付け、ジョブエージェントを生成するサーバである。指示書プールサーバ２００は、登録された指示書を管理するサーバである。その他のサーバ２０２〜２０８は文書処理のための固有のサービスを搭載するサーバである。各サービスを搭載するサーバ２０２〜２０８、及びサブミッタ２１０は、ジョブエージェントの実行環境を持っている。
【０１０２】
次の本実施例の作用を説明する。
【０１０３】
ユーザは、図示しないデバイス（クライアント１０（図１参照））のパネル上で、指示書のリスト表示画面を選択する。デバイスは指示書プールサーバ２００から指示書のリストを取得し、パネル上にリストを表示する。ユーザは、指示書を選択し、スキャンを実行する。デバイスは、サブミッタ２１０にスキャンした文書データと選択された指示書を、サブミッタに転送する。
【０１０４】
サブミッタ２１０は、指示書をコンパイルし、ジョブエージェントを生成し、文書データをアッタチする（ジョブエージェントを表現するバイナリデータの一部として、文書データを内包させる）。
【０１０５】
サブミッタ２１０は、サブミッタ２１０上の実行環境上で生成したジョブエージェントを起動する。起動したジョブエージェントは、自身のフロー制御に従い、正立補正サービスへの自身の転送処理を行う（実際には、実行環境へ転送処理を依頼し、実行環境が転送を行う）。正立補正サービスはサーバ２０２にあるため、サーバ２０２への転送を行う。
【０１０６】
ジョブエージェントはサーバ２０２上で起動し、正立補正のための依頼を行う。正立補正理が完了すると、次のノイズ除去サービスへ移動する。ただし、この例では、ノイズ除去サービスは同じサーバ上で起動しているので、実際にはネットワーク上の移動ではなく、サーバ内での論理的な移動になる。
【０１０７】
ジョブエージェントは同じくサーバ２０２上で起動し、ノイズ除去の依頼を行う。処理が完了すると、ジョブエージェントは次のＯＣＲサービスへ移動する。そのため、サーバ２０４への移動となる。
【０１０８】
ジョブエージェントはサーバ２０４上で起動し、ＯＣＲ処理の依頼を行う。処理が完了すると、ファイルサーバ２０６へ移動する。
【０１０９】
ジョブエージェントはファイルサーバ２０６上で起動し、格納の依頼を行う。処理が完了すると、ジョブエージェントはサブミッタ２１０へ帰還する。この時点で、文書データはファイルサーバ上に格納されており、ジョブエージェントは文書を所有していない（デタッチされている。）
ジョブエージェントはサブミッタ２１０上で起動し、サブミッタ２１０と通信し、自身の完了を通知し、終了する。
【０１１０】
【発明の効果】
以上説明したように本発明は、処理情報により定められる処理を実行する実行手段において実行されることにより、該実行手段に処理規定情報に基づいて理を実行させる処理実行命令プログラムを備えているので、実行手段側に、文書に対する処理を定める処理情報及び該処理の実行を規定する処理規定情報を解釈するためのプログラムを備える必要をなくすことができ、実行手段側の負担を軽減することができる、という効果を有する。
【図面の簡単な説明】
【図１】本実施の形態に係る処理実行システムを示したブロック図である。
【図２】各サービスのブロック図である。
【図３】（Ａ）〜（Ｄ）は、本実施の形態に係る処理実行システムの作用を説明する説明図である。
【図４】ジョブエージェント作成処理プログラムを示すフローチャートである。
【図５】図４のジョブエージェント作成処理プログラムのステップ５４のプログラム部分を示すフローチャートである。
【図６】ジョブエージェントの作成処理を説明する説明図である。
【図７】ジョブエージェントのプログラム構成図である。
【図８】処理実行命令プログラムを示すフローチャートである。
【図９】移動指示プログラムを示すフローチャートである。
【図１０】転送されたジョブエージェントの復元プログラムを示すフローチャートである。
【図１１】処理実行命令プログラムによる処理内容を説明する説明図である。
【図１２】処理を代替実行サーバを経由して実行する処理内容を説明する説明図である。
【図１３】本実施例に係る処理実行システムのブロック図である。
【図１４】従来技術に係る指示書実行システムのブロック図である。
【符号の説明】
ＪＥ    ジョブエージェント
１０    クライアント（作成手段、作成装置）
１０Ｓ  サブミッタ（作成手段）
１２    モニターサーバ
１４Ａ〜１４Ｃ    サービス（実行手段、処理実行装置）
【図１】
2004288057.tif 000003
【図２】
2004288057.tif 000004
【図３】
2004288057.tif 000005
【図４】
2004288057.tif 000006
【図５】
2004288057.tif 000007
【図６】
2004288057.tif 000008
【図７】
2004288057.tif 000009
【図８】
2004288057.tif 000010
【図９】
2004288057.tif 000011
【図１０】
2004288057.tif 000012
【図１１】
2004288057.tif 000013
【図１２】
2004288057.tif 000014
【図１３】
2004288057.tif 000015
【図１４】
2004288057.tif 000016