(57)【要約】【課題】  サービス連携処理全体の実行効率を向上することができるサービス処理装置を提供することを目的とする。【解決手段】  自装置のジョブリストを取得して（１００）、他のジョブ実行装置と同期して処理する同期ジョブがあるか否かを判定し（１０４）、同期ジョブがある場合には、同期ジョブを行う他のジョブ実行装置からジョブリストを取得する（１０６）。同期ジョブの順番が自装置の方が早く且つ優先度が低い場合には、自装置の同期ジョブの実行順序を１つ繰り下げる（１００〜１１４）。また、同期ジョブの順番が自装置の方が遅くかつ優先度が高い場合には、自装置の同期ジョブの実行順序を１つ繰上げる（１１８〜１２０）。【選択図】        図３
2005173893.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を行うサービスを１つ以上組み合わせたサービス連携処理が記述された指示書に基づいて、前記サービス連携処理のうち少なくとも１つの前記サービスを行うサービス処理装置であって、
前記指示書に記述された前記サービス連携処理に含まれる前記サービスを行う他の装置から他の装置における前記サービス連携処理に含まれる前記サービスを行う処理タイミングを表すタイミング情報を取得する取得手段と、
前記取得手段によって取得した前記タイミング情報と、自装置内で行う前記サービス連携処理に含まれる前記サービスの処理タイミングに基づいて、自装置における前記サービス連携処理に含まれる前記サービスを行う処理順番を変更する変更手段と、
を備えることを特徴とするサービス処理装置。
【請求項２】
前記取得手段は、前記サービス連携処理に他の装置と同期して行う同期処理が含まれる時に、前記同期処理に対応する処理を行う装置から前記タイミング情報を取得することを特徴とする請求項１に記載のサービス処理装置。
【請求項３】
前記指示書は、当該サービス連携処理の優先度が記述可能とされ、前記変更手段が、前記優先度に応じて、自装置におけるサービス連携処理に含まれる前記サービスを行う処理順番を変更することを特徴とする請求項２に記載のサービス処理装置。
【請求項４】
前記取得手段は、前記サービス連携処理における自装置で行う前記サービスの前段及び後段の処理を行う装置から前記タイミング情報を取得することを特徴とする請求項１に記載のサービス処理装置。
【請求項５】
前記取得手段は、前記タイミング情報として、前記サービス連携処理に含まれる前記サービスを行う処理順番を取得することを特徴とする請求項１乃至請求項４の何れか１項に記載のサービス処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス処理装置にかかり、特に、紙文書を電子化してワークフローを構築するサービス連携処理システムに好適なサービス処理装置に関する。
【背景技術】
【０００２】
スキャナ、ファクシミリ装置、複写機、又はこれらを複合した複合機、パーソナルコンピュータ、メールサーバ等をネットワークで相互に接続して、紙文書と電子情報の共有化を図ったワークフローシステムが提案されている。
【０００３】
そして、インターネット技術の発達に伴い、それぞれ独立に開発されたアプリケーションを連携させて、より高度な業務処理を容易に構築するＷｅｂサービスが提案されている。Ｗｅｂサービスによってネットワーク上のアプリケーションをサービスコンポーネントとして利用し、より高度な業務システムを容易に構築することが可能になる。そして、これらのサービスを有機的に連携・組み合わせることで、新たなサービスを作ることも行われている。
【０００４】
例えば、特許文献１に記載の技術では、ネットワークに接続された各機器からの連携サービス情報を収集するネットワーク管理部と、連携サービス情報を記憶すると共に、ネットワークを介して連携させる各機器の入出力機能及びプログラムの個々に対応して設けられた連携サービスプログラムを記憶する記憶手段と、それぞれの機器の連携サービス情報に基づいて、それぞれの機器上で動作する入出力機構及びプログラムをそれぞれの機器に対して予約する連携利用予約部と、予約されたそれぞれの機器の入出力機能及びプログラムを、記憶手段に記憶されている連携サービスプログラムを実行することによってネットワーク上で連携させる連携実行部と、を備えて、各機器のサービスを連携・組み合わせた処理を容易に行っている。
【特許文献１】特開２００１−３０６５３４号公報（第１頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１に記載の技術や従来のサービス連携処理を行うシステムでは、各サービスを行うそれぞれのサービス処理装置が、他のサービス処理装置の実行状況等を考慮せずに、各サービスの処理を実行しているので、サービス連携処理全体の実行効率が低下する場合がある、という問題がある。
【０００６】
本発明は、上記問題を解決すべく成されたもので、サービス連携処理全体の実行効率を向上することができるサービス処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために請求項１に記載の発明は、所定の処理を行うサービスを１つ以上組み合わせたサービス連携処理が記述された指示書に基づいて、前記サービス連携処理のうち少なくとも１つの前記サービスを行うサービス処理装置であって、前記指示書に記述された前記サービス連携処理に含まれる前記サービスを行う他の装置から他の装置における前記サービス連携処理に含まれる前記サービスを行う処理タイミングを表すタイミング情報を取得する取得手段と、前記取得手段によって取得した前記タイミング情報と、自装置内で行う前記サービス連携処理に含まれる前記サービスの処理タイミングに基づいて、自装置における前記サービス連携処理に含まれる前記サービスを行う処理順番を変更する変更手段と、を備えることを特徴としている。
【０００８】
請求項１に記載の発明によれば、取得手段では、指示書に記述されたサービス連携処理に含まれるサービスを行う他の装置から他の装置におけるサービス連携処理に含まれるサービスを行う処理タイミングを表すタイミング情報が取得される。例えば、取得手段は、タイミング情報として、請求項５に記載に発明のように、サービス連携処理に含まれるサービスを行う他の装置における処理順番等を取得する。なお、取得手段が取得するタイミング情報としては、この他に、サービス連携処理に含まれるサービスの処理開始までに要する時間情報を含む処理順番等を表す情報を取得するようにしてもよい。
【０００９】
そして、変更手段では、取得手段によって取得したタイミング情報と、自装置内で行うサービス連携処理に含まれるサービスの処理タイミングとに基づいて、自装置におけるサービス連携処理に含まれるサービスを行う処理順番が変更される。
【００１０】
すなわち、他の装置におけるサービス連携処理に含まれるサービスの実行タイミングと、自装置におけるサービス連携処理に含まれるサービスの実行タイミングを適正に合わせることが可能となり、サービス連携処理全体の実行効率を向上することができる。
【００１１】
なお、取得手段は、請求項２に記載の発明のように、サービス連携処理に他の装置と同期して行う同期処理が含まれる時に、同期処理に対応する処理を行う装置からタイミング情報を取得するようにしてもよい。このように、同期処理を行う装置からタイミング情報を取得することによって、同期処理を行う他の装置と、自装置の処理タイミングを合わせるように変更することが可能となり、サービス連携処理全体の実行効率を向上することが可能となる。
【００１２】
この時、請求項３に記載の発明のように、指示書に、当該サービス連携処理の優先度が記述可能とされる場合には、変更手段が、指示書に記述された優先度に応じて、自装置におけるサービス連携処理に含まれるサービスの処理順番を変更するようにしてもよい。
【００１３】
さらに、取得手段は、請求項４に記載の発明のように、サービス連携処理における自装置で行うサービスの前段及び後段の処理を行う装置からタイミング情報を取得するようにしてもよい。このように、サービス連携処理における前段や後段のサービスを行う装置からタイミング情報を取得することによって、自装置において前段の処理終了を待機したり、後段の処理を行う装置において自装置の処理終了を待機するといったような待機時間を減少させることが可能となり、サービス連携処理全体の実行効率を向上することができる。
【発明の効果】
【００１４】
以上説明したように本発明によれば、サービス連携処理に含まれるサービスを行う他の装置から当該サービス連携処理中のサービスを行う処理タイミングを取得して、取得した他の装置の処理タイミングと、自装置におけるサービス連携処理に含まれるサービスを行う処理タイミングとに基づいて、自装置におけるサービス連携処理に含まれるサービスを行う処理順番を変更することによって、他の装置におけるサービス連携処理に含まれるサービスの実行タイミングと、自装置におけるサービス連携処理に含まれるサービスの実行タイミングを合わせることが可能となり、サービス連携処理全体の実行効率を向上することができる、という効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
［第１実施形態］
図１は、本発明の第１実施形態に係わるサービス連携処理システムの構成を示すブロック図である。
【００１６】
サービス連携処理システム１０は、様々なサービスやアプリケーションを行う本発明のサービス処理装置としてのジョブ実行装置１８がネットワーク１２を介して接続されたものである。ここで、サービスとは、外部からの要求に応じて文書に関する利用可能な機能をいう。サービスは、例えば、コピー、プリント、スキャン、ファクシミリ送受信、メール配信、レポジトリへの格納やレポジトリからの読み込み、ＯＣＲ（Optical Character Recognition）処理、ノイズ除去処理等が該当し、特に限定されるものではない。また、サービス連携処理とは、複数のサービスを連携して行うものであり、例えば、画像をスキャンするサービスと、メール配信するサービスとを組み合わせて、スキャンした画像をメール配信する、というように複数のサービスを組み合わせたものに該当する。
【００１７】
サービス連携処理システム１０は、具体的には、複数のサービスを連携させたサービス連携処理の実行を指示するためのユーザインタフェースを備えた指示書実行指示装置１４と、サービス連携処理を構成するサービス及びその内容が記述された指示書が格納された指示書格納サーバ装置１６と、様々なサービスを実行するジョブ実行装置Ａ１８ａ、ジョブ実行装置Ｂ１８ｂと、を備えている。なお、図１では、ジョブ実行装置Ａ１８ａとジョブ実行装置Ｂ１８ｂの２つのジョブ実行装置を示すが２つに限るものではなく、複数のジョブ実行装置を備えてもよい。また、ジョブ実行装置Ａ１８ａ及びジョブ実行装置Ｂ１８ｂは、特に区別しない場合には、ジョブ実行装置１８と記す。
【００１８】
指示書実行指示装置１４は、指示書格納サーバ１６に格納された指示書を選択したり、選択した指示書の実行時の優先度等を設定するためのインタフェースを備えた一般的なコンピュータ等で構成されており、図１では、１台の指示書実行指示装置１４を示すが複数台備えてもよい。
【００１９】
指示書格納サーバ装置１６は、予め作成されたサービス連携処理を行うための指示書が複数記憶されており、指示書実行指示装置１４によって指示書が選択されることにより、該選択のサービス連携処理を開始するようになっている。また、指示書格納サーバ装置１６は、指示書実行指示装置１４によって選択された指示書に基づいて、各ジョブ実行装置１８に指示書を出力し、各ジョブ実行装置１８によるサービス連携処理を制御するようになっている。
【００２０】
指示書格納サーバ装置１６に予め格納する指示書は、サービス連携処理の内容や、サービス連携処理を構成する各サービスにおける処理内容等が記述されており、例えば、ＸＭＬ（Extensible Markup Language）で記述されたものを適用することができるが、これに限るものではなく、例えば、ＨＴＭＬ（HyperText Markup Language）等のマークアップ言語を用いてもよいし、その他の言語を用いるようにしてもよい。
【００２１】
例えば、図２では、「作成した書類をスキャンして特定のフォルダに格納してからメール通知する」というサービス連携処理を行う際のＸＭＬで記述された指示書の一例を示す。
【００２２】
各ジョブ実行装置１８は、指示書格納サーバ装置１６の指示書に記述されたサービスを実行する。例えば、ジョブ実行装置１８としては、画像のノイズ除去処理や画像回転処理やＯＣＲ処理や画像をバインドする等の画像処理を行う画像処理装置、文書を管理する文書管理サーバ、文書をメール配信する文書配信サーバ、画像等を用紙に記録するプリンタ等を適用することが可能である。
【００２３】
また、各ジョブ実行装置１８は、サービス連携処理に関わるサービスを行う処理の他に、各ジョブ実行装置１８だけで行う処理も実行するようになっている。従って、サービス連携処理を行う際に他のジョブ実行装置１８における処理と同期して処理する場合などでは、サービス連携処理以外の処理実行による実行待ち等の実行効率低下が発生する可能性がある。
【００２４】
そこで、本実施形態に係わる各ジョブ実行装置１８は、各ジョブ実行装置１８内で行われる処理（以下、ジョブという）のスケジューリング（ジョブ実行順序変更）機能を有している。
【００２５】
各ジョブ実行装置１８のスケジューリング機能は、サービス連携処理中の同期対象となるジョブが実行されている別のジョブ実行装置１８でのジョブ実行状況を取得して、指示書に記述された優先度等に応じて、同期ジョブの実行優先度を調整（指示書の優先度が高いときには同期ジョブの実行優先度を上げ、指示書の優先度が低いときは同期ジョブの実行優先度を下げる）するようになっている。
【００２６】
例えば、ジョブ実行装置１８Ａとジョブ実行装置１８Ｂの２つのジョブ実行装置を用いて、ジョブ実行装置１８Ａにて、ジョブＡを行った後に、ジョブＢを行うと共に、ジョブ実行装置１８ＢでジョブＣを行い、ジョブＢとジョブＣの結果を用いてジョブ実行装置１８ＢでジョブＤを行う、というようなサービス連携処理を行う際に、ジョブ実行装置１８Ａでは、ジョブ→ジョブ→ジョブＢのジョブ実行順序とされ、ジョブ実行装置１８Ｂでは、ジョブＣ→ジョブ→ジョブのジョブ実行順序とされている場合には、ジョブ実行装置１８ＡにおいてジョブＢが実行されるまで、ジョブ実行装置１８Ｂでは後段のジョブを実行できなくなってしまう。そこで、本実施の形態では、ジョブ実行装置１８ＢにおけるジョブＣの実行順序を後回しにして他のジョブの実行効率を上げる。または、ジョブ実行装置１８ＡにおけるジョブＢの実行順序を前に持ってきて、サービス連携処理のジョブ実行効率を向上するようになっている。なお、同期ジョブの実行順序を上げるか下げるかは、固定値（例えば、常に実行順序を上げる等）でもよいし、指示書に優先度の概念を導入して、指示書に記述された優先度に応じて行うようにしてもよい。
【００２７】
続いて、上述のように構成されたサービス連携処理システム１０におけるサービス連携処理時の動作について説明する。
【００２８】
まず、指示書実行指示装置１４では、サービス連携処理を行うための指示書の作成又は選択が行われる。指示書を作成する場合には、予め用意したアプリケーション等を用いて上述したような指示書を作成し、指示書格納サーバ装置へ作成した指示書を出力すると共に作成した指示書の実行を指示する。また、指示書を選択する場合には、指示書格納サーバ装置１６から指示書一覧を取得して、実行すべきサービス連携処理を表す指示書を選択し、指示書格納サーバ装置１６へ選択した指示書の実行を指示する。
【００２９】
これによって、指示書格納サーバ装置１６は、指示書を解析し、指示書に記述されたサービス連携処理に関わるジョブ実行装置１８に対して、サービス連携処理に含まれる各サービスを実行する指示を行い、指示書に記述されたサービス連携処理に応じて、順次各ジョブ実行装置にサービス実行を指示することによって、指示書に記述されたサービス連携処理が行われる。なお、指示書格納サーバ装置１６は、各ジョブ実行装置１８へサービス実行を指示する際に指示書を各ジョブ実行装置１８に出力するようにしてもよいし、指示書に記述された内容を行うために必要な情報のみを各ジョブ実行装置１８へ出力するようにしてもよい。このとき、指示書に記述された内容を実行するために必要な情報としては、本実施形態では、各ジョブ実行装置１８にスケジューリング機能を有するので、スケジューリング機能を実行するために、少なくとも同期ジョブに関連する情報や前後のジョブに関連する情報を各ジョブ実行装置１８へ出力する必要がある。
【００３０】
各ジョブ実行装置１８では、指示書格納サーバ装置１６から指示されたサービスを実行するべく処理が行われ、これによって、指示書に記述されたサービス連携処理を行うことができる。
【００３１】
すなわち、本実施形態では、指示書格納サーバ装置１６によって各ジョブ実行装置１８が制御されることによって、指示書実行指示装置１４が指示するサービス連携処理を行うことができる。
【００３２】
次に、上述した各ジョブ実行装置１８のスケジューリング機能について図３を参照して説明する。図３は、スケジューリング機能によるスケジューリング処理の流れを示すフローチャートである。なお、図３のフローチャートは、所定時間毎に実行するようにしてもよいし、各ジョブ実行装置１８においてジョブ実行指示が行われる毎に実行するようにしてもよいし、サービス連携処理に関わるジョブ実行指示が行われる毎に実行するようにしてもよい。
【００３３】
各ジョブ実行装置１８でスケジューリング処理が実行されると、ステップ１００では、自装置のジョブリストが取得される。すなわち、ジョブ実行装置１８に対して実行指示されているジョブの一覧を表すジョブリストが取得される。
【００３４】
次に、ステップ１０２では、指示書で起動された未処理のジョブがあるか否か判定される。該判定は、後述するステップ１１６で付与されたスケジューリング処理済みを表すマークがないジョブがあるか否かを判定することによってなされ、該判定が否定された場合には、一連のスケジューリング処理を終了する。
【００３５】
また、ステップ１０２の判定が肯定された場合には、ステップ１０４へ移行して、同期ジョブがあるか否か判定される。該判定は、指示書格納サーバ装置１６から出力された指示書や同期ジョブに関連する情報を解析することによってなされ、該判定が肯定された場合には、ステップ１０６へ移行する。
【００３６】
ステップ１０６では、同期ジョブを行うジョブ実行装置１８のジョブリストが取得される。なお、他のジョブ実行装置１８のジョブリストの取得は、指示書格納サーバ装置１６を介して行うようにしてもよいし、直接、ジョブリストを取得するジョブ実行装置１８から取得するようにしてもよい。
【００３７】
続いて、ステップ１０８では、同期ジョブの順番が自装置の同期対象のジョブ実行装置におけるジョブ実行順序と同じか否か判定され、該判定が否定された場合には、ステップ１１０へ移行する。
【００３８】
ステップ１１０では、同期ジョブを行うジョブ実行装置１８から取得されたジョブリストと、自装置のジョブリストを比較して、同期ジョブの順番が他のジョブ実行装置１８より自装置の方が早いか否か判定される。該判定が肯定された場合には、ステップ１１２へ移行する。
【００３９】
ステップ１１２では、指示書内の優先度が低いか否か判定される。すなわち、指示書内で予め設定可能な優先度が低いか否かが判定され、該判定が肯定された場合には、ステップ１１４へ移行して、自装置の同期ジョブの順番が１つ繰り下げられる。すなわち、サービス連携処理の優先度が低い場合には、遅い方の同期ジョブのタイミングに合わせるように同期ジョブのジョブ実行順序が変更されるので、サービス連携処理の実行効率を落とすことなく、自装置における他のジョブの実行効率を上げることができる。
【００４０】
続いて、ステップ１１６では、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。
【００４１】
一方、ステップ１０２の判定が否定、すなわち、指示書で起動された未処理なジョブ（スケジューリングを行っていないもの）がない場合には、そのままスケジューリング処理を終了する。
【００４２】
また、同期ジョブがなくてステップ１０４の判定が否定された場合、同期ジョブの順番が他のジョブ実行装置１８と自装置で同一の順番でステップ１０８の判定が肯定された場合、及び指示書内の優先度が低くなくてステップ１１２の判定が否定された場合には、ステップ１１６へ移行して、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。
【００４３】
また、ステップ１１０の判定が否定、すなわち、同期ジョブの順番が他のジョブ実行装置１８よりも自装置の方が遅い場合には、ステップ１１８へ移行する。
【００４４】
ステップ１１８では、指示書内の優先度が高いか否か判定される。すなわち、指示書内で予め設定可能な優先度が高いか否かが判定され、該判定が否定された場合には、そのままステップ１１６へ移行して、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。また、ステップ１１８の判定が肯定された場合には、ステップ１２０へ移行する。
【００４５】
ステップ１２０では、自装置の同期ジョブの順番が１つ繰上げられて、ステップ１１６へ移行して、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。すなわち、サービス連携処理の優先度が高い場合には、早い方の同期ジョブの実行タイミングに合わせるようにジョブ実行順序が変更されるので、サービス連携処理の実行効率を上げることができる。
【００４６】
なお、ステップ１０６の処理は本発明の取得手段に相当し、ステップ１０８〜１２０の処理は本発明の変更手段に相当する。
【００４７】
ここで、上述のスケジューリング処理について具体的な例を挙げて説明する。
【００４８】
例えば、ジョブ実行装置１８Ａとジョブ実行装置１８Ｂの２つのジョブ実行装置で同期ジョブが含まれるサービス連携処理を行う場合を考える。この時、ジョブ実行装置１８Ａでは、（ジョブＡ−１）→（ジョブＢ）→（ジョブＣ−１）の順序でジョブ処理待ち状態となっており、ジョブ実行装置１８Ｂでは、（ジョブＣ−２）→（ジョブＤ）→（ジョブＡ−２）の順序でジョブ処理待ち状態となっているものとする。ここで、ジョブＡ−１とジョブＡ−２、並びにジョブＣ−１とジョブＣ−２はそれぞれ両方の処理結果が揃って初めて後段のジョブが実行できる同期ジョブとする。なお、ジョブＢ及びジョブＤはサービス連携処理の一部ではない単独のジョブである。また、ジョブＡ−１とジョブＡ−２を起動するサービス連携処理Ａが記述された指示書Ａでは、優先度「低」が予め記述され、ジョブＣ−１とジョブＣ―２を起動するサービス連携処理Ｂが記述された指示書Ｂでは、優先度「高」が予め記述されているものとする。
【００４９】
ジョブ実行装置１８Ａでは、上述のフローチャートに従って以下のように処理が行われる。
【００５０】
ステップ１００で自装置（ジョブ実行装置Ａ）のジョブリストが取得され、ステップ１０２で取得されたジョブリストの中に指示書によって起動されたジョブでスケジューリング処理をまだ行っていないもの、すなわち、ステップ１１６でマークが付与されていないものがあるか否か判定される。該当するジョブがない場合はスケジューリング処理を終了する。
【００５１】
最初はどのジョブもマークがないので、先頭の（ジョブＡ−１）が対象となる。次に、ステップ１０４では、他のジョブと同期する必要があるジョブか否か判定される。該判定は、ジョブを起動した指示書内に同期ジョブの記述があるか否かを検索することによって判定される。
【００５２】
ここで、（ジョブＡ−１）と（ジョブＡ−２）と同期する必要があるため、ステップ１０６において、同期ジョブを行うジョブ実行装置１８Ｂのジョブリストが取得され、ステップ１０８において、同期ジョブの順番が自装置（ジョブ実行装置１８Ａ）と同じが否か判定される。上記の例では、同期ジョブの順番が異なるので、ステップ１１０へ移行して、同期ジョブの順番が自装置（ジョブ実行装置１８Ａ）の方が早いか否か判定され、（ジョブＡ−１）は１番目、（ジョブＡ−２）は３番目なので、ステップ１１２へ移行して、指示書の優先度が低いか否か判定される。指示書Ａの優先度は「低」であるので、ステップ１１４へ移行して、（ジョブＡ−１）の順番を１つ繰り下げる。そして、ステップ１１６において、スケジューリング処理済みのマークを付与して、スケジューリング処理を終了する。
【００５３】
このような処理をスケジューリング処理済みのマークが全て付与されるまで、ジョブ実行装置１８Ａ及びジョブ実行装置１８Ｂそれぞれで行うと、ジョブ実行装置１８Ａのジョブ実行順序は、（ジョブＢ）→（ジョブＣ−１）→（ジョブＡ−１）となり、ジョブ実行装置１８Ｂのジョブ実行順序は、（ジョブＣ−２）→（ジョブＤ）→（ジョブＡ−２）となる。
【００５４】
すなわち、スケジューリング処理を行う前は、指示書Ａ及び指示書Ｂによって記述されたそれぞれのサービス連携処理では、それぞれの装置で３つのジョブを終了するまで後段のジョブを実行することができなかったが、上述のようなスケジューリング処理を行うことで、優先度の高いサービス連携処理Ｂは２つ目のジョブが終了した時点で後段のジョブを実行することができるようになる。また、優先度が低いサービス連携処理Ａの処理順序を後に下げることで、他のジョブの処理を先行できると共に、同期ジョブの順序を各装置で同じにすることができ同期に必要な時間を短くすることができる。
【００５５】
なお、上記の各実施形態では、１つのジョブに対して１回しかスケジューリング処理を行っていないが、両者の順番が等しくなるまで（同期ジョブが存在する上述した例の場合には（ジョブＣ−１）が１番最初に来るまで）ステップ１０８〜１１４の処理を繰り返すようにしてもよい。
【００５６】
続いて、スケジューリング処理のその他の例について説明する。上述のスケジューリング処理では、同期ジョブを対象としてスケジューリング処理を行う例を説明したが、以下では、サービス連携処理における前段や後段のジョブが存在する場合のスケジューリング処理について説明する。図４は、サービス連携処理における前段と後段のジョブが存在する場合のスケジューリング処理の流れを表すフローチャートである。なお、図４のフローチャートは、上記の実施形態と同様に、所定時間毎に実行するようにしてもよいし、各ジョブ実行装置１８においてジョブ実行指示が行われる毎に実行するようにしてもよいし、サービス連携処理に関わるジョブ実行指示が行われる毎に実行するようにしてもよい。
【００５７】
各ジョブ実行装置１８で図４のスケジューリング処理が開始されると、ステップ２００では、自装置のジョブリストが取得される。すなわち、ジョブ実行装置１８に対して実行指示されているジョブの一覧を表すジョブリストが取得される。
【００５８】
次に、ステップ２０２では、指示書で起動された未処理のジョブがあるか否か判定される。該判定は、後述するステップ２２０で付与されたスケジューリング処理済みを表すマークがないジョブがあるか否かを判定することによってなされ、該判定否定された場合には、一連のスケジューリング処理を終了する。
【００５９】
また、ステップ２０２の判定が肯定された場合には、ステップ２０４へ移行して、前段ジョブが存在するか否か判定される。該判定は、指示書格納サーバ装置１６から出力された指示書等を解析することによってなされ、該判定が肯定された場合には、ステップ２０６へ移行する。
【００６０】
ステップ２０６では、前段ジョブを行うジョブ実行装置１８のジョブリストが取得される。なお、他のジョブ実行装置１８のジョブリストの取得は、指示書格納サーバ装置１６を介して行うようにしてもよいし、直接、ジョブリストを取得するジョブ実行装置１８から取得するようにしてもよい。
【００６１】
続いて、ステップ２０８では、自装置ジョブの方が前段ジョブよりも早い順序か否か判定され、該判定が肯定された場合には、ステップ２１０へ移行して、自装置のジョブ実行順序が１つ繰り下げられて、ステップ２１２へ移行する。
【００６２】
一方、ステップ２０４の判定が否定された場合、及びステップ２０８の判定が否定された場合には、そのままステップ２１２へ移行する。
【００６３】
ステップ２１２では、後段ジョブが存在するか否か判定される。該判定は、上記と同様に指示書格納サーバ装置１６から出力された指示書等を解析することによってなされ、該判定が肯定された場合には、ステップ２１４へ移行する。
【００６４】
ステップ２１４では、後段ジョブを行うジョブ実行装置１８のジョブリストが取得される。なお、他のジョブ実行装置１８のジョブリストの取得は、指示書格納サーバ装置１６を介して行うようにしてもよいし、直接、ジョブリストを取得するジョブ実行装置１８から取得するようにしてもよい。
【００６５】
続いて、ステップ２１６では、自装置ジョブの方が後段ジョブよりも遅い順序か否か判定され、該判定が肯定された場合には、ステップ２１８へ移行して、自装置のジョブ実行順序が１つ繰り上げられて、ステップ２２０へ移行する。
【００６６】
一方、ステップ２１２の判定が否定された場合、及びステップ２１６の判定が否定された場合には、そのままステップ２２０へ移行する。
【００６７】
ステップ２２０では、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。
【００６８】
なお、ステップ２０４及びステップ２１４の処理は本発明の取得手段に相当し、ステップ２０８〜２１０及びステップ２１６〜２１８の処理は本発明の変更手段に相当する。
【００６９】
このようなスケジューリング処理を行うことによって、前段及び後段のジョブが存在する際に、前段ジョブが自装置のジョブよりも遅い実行順序の場合や、後段ジョブが自装置のジョブよりも早い実行順序の場合に、ジョブの実行順序を適正な実行順序に近づけることができる。例えば、前段ジョブが自装置のジョブよりも遅い場合には、前段ジョブが終わるまで自装置の他のジョブも実行することができないので、自装置のジョブ実行効率が低下してしまうが、この場合には自装置のジョブの実行順序を繰り下げるようにジョブ実行順序を入れ替えるので、自装置のジョブ実行効率を向上することができる。
【００７０】
また、後段ジョブが自装置のジョブよりも早い場合には、後段ジョブを行うジョブ実行装置１８において他のジョブを実行することができないので、後段ジョブを行うジョブ実行装置１８のジョブ実行効率が低下してしまうが、この場合には自装置のジョブの実行順序を繰上げるようにジョブ実行順序を入れ替えるので、後段ジョブを行うジョブ実行装置１８のジョブ実行効率を向上することができる。
【００７１】
すなわち、一つのジョブの実行状況だけでなく、サービス連携処理を構成する他のジョブの実行状況を考慮して実行順序を決定するため、サービス連携処理全体としての無駄な待ち時間を削減することができる。
【００７２】
また、各ジョブ実行装置１８がお互いにジョブの実行状況を取得するので、サービス連携処理全体の実行順序を制御する特別なサーバなどを設けることなく、安価かつ簡単にサービス連携処理全体の実行効率を向上することができる。
【００７３】
さらには、サービス連携処理全体のジョブの実行状況を取得するのではなく、サービス連携処理を構成する一部のジョブ（例えば、同期対象となるジョブや、前段及び後段のジョブ等）の実行状況のみを取得すればよいため、実行状況の取得にかかる負荷を軽減しつつサービス連携処理全体の実行効率を向上することができる。
［第２実施形態］
次に、本発明の第２実施形態に係わるサービス連携処理システムについて説明する。図５は、本発明の第２実施形態に係わるサービス連携処理システム１１の構成を示すブロック図である。なお、第１実施形態と同一の構成要素については同一符号を付して説明する。
【００７４】
第１実施形態では、指示書格納サーバ装置１６を備え、指示書格納サーバ装置１６に予め複数の指示書を記憶しておき、指示書実行指示装置１４の指示に応じて、指示書格納サーバ装置１６が複数のジョブ実行装置１８を制御してサービス連携処理を行う例を説明したが、第２実施形態では、指示書格納サーバ装置１６を設けない構成とされている。
【００７５】
第２実施形態のサービス連携処理システム１１は、具体的には、複数のサービスを連携させたサービス連携処理を指示するためのユーザインタフェースを備えた指示書実行指示装置１５と、様々なサービスを実行するジョブ実行装置１８Ａ、ジョブ実行装置１８Ｂと、を備えている。なお、ジョブ実行装置１８Ａ及びジョブ実行装置１８Ｂは、特に区別しない場合は、ジョブ実行装置１８と記す。
【００７６】
第２実施形態の指示書実行指示装置１５は、サービス連携処理を指示するための指示書を作成する。または、指示書実行指示装置１５に予め作成した複数の指示書を記憶するようにしてもよい。また、指示書実行指示装置１５は、指示書を作成したり、予め記憶された指示書を選択したりするためのユーザインタフェースを備えた一般的なコンピュータで構成されており、図５では、１台の指示書実行指示装置１５を示すが複数台備えてもよい。
【００７７】
なお、指示書実行指示装置１５が作成または記憶する指示書は、第１実施形態の指示書と同一であり、サービス連携処理の内容や、サービス連携処理を構成する各サービスにおける処理内容等が記述されている。例えば、ＸＭＬ（Extensible Markup Language）で記述されたものを適用することができるが、これに限るものではなく、例えば、ＨＴＭＬ（HyperText Markup Language）等のマークアップ言語を用いてもよいし、その他の言語を用いるようにしてもよい。
【００７８】
各ジョブ実行装置１８は、指示書実行指示装置１５から出力される指示書に記述されたサービスを実行可能とされている。例えば、ジョブ実行装置１８としては、画像のノイズ除去処理や画像回転処理やＯＣＲ処理や画像をバインドする等の画像処理を行う画像処理装置、文書を管理する文書管理サーバ、文書を配信する文書配信サーバ等を適用することが可能である。
【００７９】
また、各ジョブ実行装置１８は、第１実施形態と同様に、スケジューリング機能を有しており、第１実施形態で説明したスケジューリング処理を行うようになっている。
【００８０】
続いて、上述のように構成された第２実施形態のサービス連携処理システム１１におけるサービス連携処理時の動作について説明する。
【００８１】
まず、指示書実行指示装置１５では、サービス連携を行うための指示書の作成又は選択が行われる。指示書を作成する場合には、予め用意したアプリケーション等を用いて第１実施形態で説明したような指示書を作成する。または、他の機器や記録媒体等から予め作成した指示書を取得したり、指示書実行指示装置１５に予め記憶した指示書を選択したりする。そして、上述のようにして得られる指示書をサービス連携処理を行う始めのジョブ実行指示装置１８に出力することによって、サービス連携処理の実行指示が行われる。
【００８２】
これによって、各ジョブ実行装置１８では、指示書を受け取って、指示書の内容を解析し、自装置で行うべきサービス（自装置のジョブ）を実行し、後段ジョブがある場合には、後段ジョブを行うジョブ実行装置１８に指示書を出力し、指示書に記述されたサービス連携処理を行うジョブ実行装置１８に順次指示書を出力することによってサービス連携処理が行われる。
【００８３】
すなわち、本実施形態では、サービス連携処理全体を制御する指示書格納サーバ装置等を設けることなく、指示書に記述されたサービス連携処理を行うジョブ実行装置１８に順次出力することによって、サービス連携処理を行うことができる。
【００８４】
次に、上述した各ジョブ実行装置１８で行われるスケジューリング機能について説明する。基本的には、第１実施形態と同一であるため、図３を参照して説明する。なお、図３のフローチャートは、第１実施形態と同様に、所定時間毎に実行するようにしてもよいし、各ジョブ実行装置１８においてジョブ実行指示が行われる毎に実行するようにしてもよいし、サービス連携処理に関わるジョブ実行指示が行われる毎に実行するようにしてもよい。
【００８５】
各ジョブ実行装置１８でスケジューリング処理が実行されると、ステップ１０２では、自装置のジョブリストが取得される。すなわち、ジョブ実行装置１８に対して実行指示されているジョブの一覧を表すジョブリストが取得される。
【００８６】
次に、ステップ１０２では、指示書で起動された未処理のジョブがあるか否か判定される。該判定は、後述するステップ１１６で付与されたスケジューリング処理済みを表すマークがないジョブがあるか否かを判定することによってなされ、該判定が否定された場合には、一連のスケジューリング処理を終了する。
【００８７】
また、ステップ１０２の判定が肯定された場合には、ステップ１０４へ移行して、同期ジョブがあるか否か判定される。該判定は、指示書実行指示装置１５から出力される指示書を解析することによってなされ、該判定が肯定された場合には、ステップ１０６へ移行する。
【００８８】
ステップ１０６では、同期ジョブを行うジョブ実行装置１８のジョブリストが取得される。なお、他のジョブ実行装置１８のジョブリストの取得は、第２実施形態では同期ジョブに対応するジョブ実行装置１８から直接ジョブリストを取得する。
【００８９】
続いて、ステップ１０８では、同期ジョブの順番が自装置の同期対象のジョブ実行装置におけるジョブ実行順序と同じか否か判定され、該判定が否定された場合には、ステップ１１０へ移行する。
【００９０】
ステップ１１０では、同期ジョブを行うジョブ実行装置１８から取得されたジョブリストと、自装置のジョブリストを比較して、同期ジョブの順番が他のジョブ実行装置１８より自装置の方が早いか否か判定される。該判定が肯定された場合には、ステップ１１２へ移行する。
【００９１】
ステップ１１２では、指示書内の優先度が低いか否か判定される。すなわち、指示書内で予め設定可能な優先度が低いか否かが判定され、該判定が肯定された場合には、ステップ１１４へ移行して、自装置の同期ジョブの順番が１つ繰り下げられる。すなわち、サービス連携処理の優先度が低い場合には、遅い方の同期ジョブのタイミングに合わせるように同期ジョブのジョブ実行順序が変更されるので、サービス連携処理の実行効率を落とすことなく、自装置における他のジョブの実行効率を上げることができる。
【００９２】
続いて、ステップ１１６では、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。
【００９３】
一方、ステップ１０２の判定が否定、すなわち、指示書で起動された未処理なジョブ（スケジューリングを行っていないもの）がない場合には、そのままスケジューリング処理を終了する。
【００９４】
また、同期ジョブがなくてステップ１０４の判定が否定された場合、同期ジョブの順番が他のジョブ実行装置１８と自装置で同一の順番でステップ１０８の判定が肯定された場合、及び指示書内の優先度が低くなくてステップ１１２の判定が否定された場合には、ステップ１１６へ移行して、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。
【００９５】
また、ステップ１１０の判定が否定、すなわち、同期ジョブの順番が他のジョブ実行装置１８よりも自装置の方が遅い場合には、ステップ１１８へ移行する。
【００９６】
ステップ１１８では、指示書内の優先度が高いか否か判定される。すなわち、指示書内で予め設定可能な優先度が高いか否かが判定され、該判定が否定された場合には、そのままステップ１１６へ移行して、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。また、ステップ１１８の判定が肯定された場合には、ステップ１２０へ移行する。
【００９７】
ステップ１２０では、自装置の同期ジョブの順番が１つ繰上げられて、ステップ１１６へ移行して、スケジューリング処理済みのジョブにマークが付与されて、一連のスケジューリング処理を終了する。すなわち、サービス連携処理の優先度が高い場合には、早い方の同期ジョブの実行タイミングに合わせるようにジョブ実行順序が変更されるので、サービス連携処理の実行効率を上げることができる。
【００９８】
このように、第２実施形態は、他のジョブ実行装置１８のジョブリストを取得する際に他のジョブ実行装置１８から直接取得するしかない点が第１実施形態と異なるが、他は基本的に第１実施形態と同一の動作でスケジューリング処理が行われるので、第１実施形態と同一の効果を得ることができる。
【００９９】
また、第１実施形態で説明した前段ジョブや後段ジョブが存在する場合のスケジューリング処理についても上記と同様に、他のジョブ実行装置１８からジョブリストを直接取得するしかない点が第１実施形態と異なるが、基本的には第１実施形態と同様の処理を行うことができるので詳細な説明を省略する。
【０１００】
このように、指示書格納サーバ装置１６がないサービス連携処理システム１１でも第１実施形態と同様のスケジューリング処理を行うことができ、これによって、第１実施形態と同様に、サービス連携処理全体の実行効率を向上することができる。
【０１０１】
なお、上記の各実施形態におけるスケジューリング処理は、定期的（例えば、５分毎等）に行うようにしてもよく、定期的にスケジューリング処理を行うことによって、同期ジョブが存在する場合のスケジューリング処理では、時間の経過と共に段階的に同期ジョブの実行順序が揃うようになる。例えば、ジョブ実行装置１８の能力があまり高くなく、繰り返し処理の負荷が無視できない場合などでは定期的にスケジューリング処理を行う方が有効である。
【０１０２】
また、上記の実施形態では、ステップ１０８やステップ１１０のように、ジョブリスト中の順番をジョブの順番を変更するための判定条件としたが、これに限るものではなく、例えば、より正確な判定を行うために、ジョブリスト中の各ジョブの予測実行時間を算出して、予測実行時間から各ジョブの予測終了時刻を求めて、同期ジョブの終了時刻が揃うように、ジョブのスケジューリングを行うようにしてもよい。
【０１０３】
さらに、頻繁にスケジューリング処理を行うことによる処理負荷が無視できない場合があるので、ステップ１０８やステップ１１０等の判定において、同期ジョブのジョブリスト上の順番を比較する際に、比較対象の同期ジョブの順番の差が所定値以上（例えば、２以上等）か否かのように、ある程度範囲を持たせた判定条件とするようにしてもよい。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１実施形態に係わるサービス連携処理システムの構成を示すブロック図である。
【図２】ＸＭＬで記述された指示書の一例を示す図である。
【図３】スケジューリング処理の一例の流れを示すフローチャートである。
【図４】その他のスケジューリング処理の流れを示すフローチャートである。
【図５】本発明の第２実施形態に係わるサービス連携処理システムの構成を示す図である。
【符号の説明】
【０１０５】
１０、１１    サービス連携処理システム
１２    ネットワーク
１４、１５    指示書実行指示装置
１６    指示書格納サーバ装置
１８    ジョブ実行装置
【図１】
2005173893.tif 000003
【図２】
2005173893.tif 000004
【図３】
2005173893.tif 000005
【図４】
2005173893.tif 000006
【図５】
2005173893.tif 000007