(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】情報処理システム、処理要求送信装置、及び、処理要求送信プログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20240521BHJP
H04N 1/00 20060101ALI20240521BHJP
【FI】
G06F3/12 330
G06F3/12 320
G06F3/12 339
H04N1/00 127B
(21)【出願番号】P 2020118766
(22)【出願日】2020-07-09
【審査請求日】2023-06-21
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】望月 守
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開平11-175284(JP,A)
【文献】特開2003-241929(JP,A)
【文献】特開2004-295400(JP,A)
【文献】特開2001-222395(JP,A)
【文献】特開2004-206682(JP,A)
【文献】特開平11-327824(JP,A)
【文献】特開2011-034554(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
送信側プロセッサを備える処理要求送信装置と、処理側プロセッサを備える情報処理装置とを含み、
前記送信側プロセッサは、
処理を要求する利用者を特定し、
特定された前記利用者に基づいて、前記処理の対象となる対象データを処理するために必要となる処理制御プログラムである対応処理制御プログラムを特定し、
前記対象データを含む処理要求と、
特定した前
記対応処理制御プログラムを示す対応プログラム情報とを関連付けて前記情報処理装置に送信し、
前記処理側プロセッサは、
前記対応処理制御プログラムを実行することで、前記対象データに対する処理を実行する、
ことを特徴とする情報処理システム。
【請求項2】
前記対応処理制御プログラムは、処理制御プログラムの複数のバージョンのうちの、特定された前記利用者に対応したバージョンである、
ことを特徴とする請求項
1に記載の情報処理システム。
【請求項3】
前記送信側プロセッサは、
前記対応プログラム情報として、前記対応処理制御プログラム自体を前記情報処理装置に送信する、
ことを特徴とする請求項
1又は2に記載の情報処理システム。
【請求項4】
前記送信側プロセッサは、
前記処理要求と前記対応処理制御プログラムを連結した処理要求ファイルを前記情報処理装置に送信し、
前記処理側プロセッサは、
前記対象データに対する処理に先立って、前記処理要求ファイルから前記対象データと前記対応処理制御プログラムとを分離する分離処理を実行する、
ことを特徴とする請求項
3に記載の情報処理システム。
【請求項5】
前記処理側プロセッサは、
前記対象データに対する処理の完了後に前記対応処理制御プログラムを前記情報処理装置のメモリに保持させ、
前記メモリに保持されている処理制御プログラムを示す保持プログラム情報を前記処理要求送信装置に送信し、
前記送信側プロセッサは、
前記保持プログラム情報に基づいて、他の処理要求に対応する対応処理制御プログラムが前記メモリに保持されている場合には、当該他の処理要求に対応する対応処理制御プログラムを前記情報処理装置に送信しない、
ことを特徴とする請求項
3又は4に記載の情報処理システム。
【請求項6】
前記送信側プロセッサは、
前記対応プログラム情報として、前記対応処理制御プログラムを識別するプログラムIDを前記情報処理装置に送信し、
前記処理側プロセッサは、
前記プログラムIDに基づいて、前記対応処理制御プログラムを取得する、
ことを特徴とする請求項
1又は2に記載の情報処理システム。
【請求項7】
前記処理側プロセッサは、
前記対象データに対する処理の完了後に前記対応処理制御プログラムを前記情報処理装置のメモリに保持させ、
前記処理要求送信装置から、他の処理要求及び前記他の処理要求に対応する対応処理制御プログラムを示すプログラムIDを受信した場合に、当該プログラムIDが示す対応処理制御プログラムが前記メモリに保持されている場合には、前記メモリに保持された当該対応処理制御プログラムを実行することで前記他の処理要求に含まれる対象データに対する処理を実行する、
ことを特徴とする請求項
6に記載の情報処理システム。
【請求項8】
前記処理側プロセッサは、
前記対象データに対する処理の完了後に前記対応処理制御プログラムを前記情報処理装置のメモリから削除する、
ことを特徴とする請求項1から
4、及び
6のいずれか1項に記載の情報処理システム。
【請求項9】
前記処理制御プログラムは複数のモジュールを含んで構成されており、
前記送信側プロセッサは、
前記処理要求に対応する少なくとも1つのモジュールを示す前記対応プログラム情報を前記情報処理装置に送信し、
前記処理側プロセッサは、
前記少なくとも1つのモジュールを実行することで、前記対象データに対する処理を実行する、
ことを特徴とする請求項1から
8のいずれか1項に記載の情報処理システム。
【請求項10】
前記送信側プロセッサは、
同一の前記対応処理制御プログラムに対応する複数の処理要求をまとめて1つの前記情報処理装置に送信する、
ことを特徴とする請求項1から
9のいずれか1項に記載の情報処理システム。
【請求項11】
前記処理要求は、前記対象データを印刷媒体に印刷する印刷処理を印刷装置に実行させる印刷処理要求であり、
前記処理制御プログラムは、前記対象データを前記印刷装置が認識可能なデータ形式に変換する印刷制御プログラムである、
ことを特徴とする請求項1から
10のいずれか1項に記載の情報処理システム。
【請求項12】
送信側プロセッサを備え、
前記送信側プロセッサは、
処理を要求する利用者を特定し、
特定された前記利用者に基づいて、前記処理の対象となる対象データを処理するために必要となる処理制御プログラムである対応処理制御プログラムを特定し、
前記対象データを含む処理要求と、
特定した前
記対応処理制御プログラムを示す対応プログラム情報とを関連付けて、前記対応処理制御プログラムを実行することで前記対象データに対する処理を実行する情報処理装置に送信する、
ことを特徴とする処理要求送信装置。
【請求項13】
コンピュータに、
処理を要求する利用者を特定させ、
特定された前記利用者に基づいて、前記処理の対象となる対象データを処理するために必要となる処理制御プログラムである対応処理制御プログラムを特定させ、
前記対象データを含む処理要求と、
特定した前記対応処理制御プログラムを示す対応プログラム情報とを関連付けて、前記対応処理制御プログラムを実行することで前記対象データに対する処理を実行する情報処理装置に送信させる、
ことを特徴とする処理要求送信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、処理要求送信装置、情報処理装置、処理要求送信プログラム、及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、プリンタと、処理要求をプリンタに送信するホストコンピュータとを含む印刷システムであって、プリンタの制御プログラムと、ホストコンピュータのプリンタドライバとの適合性を示す適合性情報に基づいて、制御プログラムとプリンタドライバとの適合性を保ちながら、制御プログラム及びプリンタドライバをバージョンアップさせる印刷システムが開示されている。
【0003】
特許文献2には、プリンタコントローラを備えた印刷装置であって、プリンタコントローラのROM(Read Only Memory)には画像処理メインプログラムを記憶させずにブートプログラム及びダウンロードプログラムを記憶させておき、ダウンロードプログラムによってホストからダウンロードしてきた画像処理メインプログラムを、ブートプログラムによってブートすることによって印刷処理を実行する印刷装置が開示されている。
【0004】
特許文献3には、画像処理を行うためのソフトウェアがインストールされる画像処理装置であって、当該ソフトウェアを新たなバージョンに入れ替えた後、所定回数以上連続して不具合が生じた場合に、当該ソフトウェアを元のバージョンに戻す処理を行う画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2001-027940号公報
【文献】特開2002-211086号公報
【文献】特開2007-052666号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、処理要求送信装置と情報処理装置とを含む情報処理システムであって、処理要求送信装置から情報処理装置へ処理要求を送信し、情報処理装置が当該処理要求に係る処理を実行する情報処理システムが従来知られている。
【0007】
このような情報処理システムに含まれる情報処理装置においては、処理制御プログラムを実行することで、処理要求に係る対象データに対する処理を実行するのが一般的である。処理制御プログラムの一例としては、情報処理装置がプリンタコントローラである場合における、処理要求としての印刷ジョブに係る対象データ(例えば電子文書)に対してラスタライズ処理などを行うための印刷制御プログラムが挙げられる。
【0008】
情報処理装置は、対象データに対する処理に関して複数の機能を実行し得る。例えば、情報処理装置がプリンタコントローラである場合、ラスタライズ処理に関する複数の機能(例えば色変換機能、アライメント調整処理、背景処理機能、特色処理機能など)を実行し得る。情報処理装置が各機能を実行するには、処理制御プログラムも各機能を発揮可能なように構成されている必要がある。
【0009】
ここで、情報処理装置が実行し得る複数の機能の中に、使用頻度が少ない機能があることも考えられる。しかしながら、使用頻度が少なくとも、当該機能がいつ使われるか分からないために、当該機能を発揮可能なように処理制御プログラムを構成しておく必要があった。したがって、従来、情報処理装置が実行し得る全ての機能を発揮可能な処理制御プログラムが情報処理装置のメモリに記憶されていた。
【0010】
情報処理装置が実行し得る全ての機能を発揮可能な処理制御プログラムはデータサイズが大きくなるため、そのような処理制御プログラムを記憶しておくために、情報処理装置のメモリに大きな記憶領域が必要となるという問題があった。
【0011】
本発明の目的は、処理要求に基づいて、対象データに対する処理を実行する情報処理装置のメモリに、当該情報処理装置が実行し得る全ての機能を発揮可能な処理制御プログラムを予め記憶しておく場合に比して、処理を実行するために使われる処理制御プログラムを記憶させるためのメモリの記憶領域を低減することにある。
【課題を解決するための手段】
【0012】
請求項1に係る発明は、送信側プロセッサを備える処理要求送信装置と、処理側プロセッサを備える情報処理装置とを含み、前記送信側プロセッサは、処理を要求する利用者を特定し、特定された前記利用者に基づいて、前記処理の対象となる対象データを処理するために必要となる処理制御プログラムである対応処理制御プログラムを特定し、前記対象データを含む処理要求と、特定した前記対応処理制御プログラムを示す対応プログラム情報とを関連付けて前記情報処理装置に送信し、前記処理側プロセッサは、前記対応処理制御プログラムを実行することで、前記対象データに対する処理を実行する、ことを特徴とする情報処理システムである。
請求項2に係る発明は、前記対応処理制御プログラムは、処理制御プログラムの複数のバージョンのうちの、特定された前記利用者に対応したバージョンである、ことを特徴とする請求項1に記載の情報処理システムである。
請求項3に係る発明は、前記送信側プロセッサは、前記対応プログラム情報として、前記対応処理制御プログラム自体を前記情報処理装置に送信する、ことを特徴とする請求項1又は2に記載の情報処理システムである。
請求項4に係る発明は、前記送信側プロセッサは、前記処理要求と前記対応処理制御プログラムを連結した処理要求ファイルを前記情報処理装置に送信し、前記処理側プロセッサは、前記対象データに対する処理に先立って、前記処理要求ファイルから前記対象データと前記対応処理制御プログラムとを分離する分離処理を実行する、ことを特徴とする請求項3に記載の情報処理システムである。
請求項5に係る発明は、前記処理側プロセッサは、前記対象データに対する処理の完了後に前記対応処理制御プログラムを前記情報処理装置のメモリに保持させ、前記メモリに保持されている処理制御プログラムを示す保持プログラム情報を前記処理要求送信装置に送信し、前記送信側プロセッサは、前記保持プログラム情報に基づいて、他の処理要求に対応する対応処理制御プログラムが前記メモリに保持されている場合には、当該他の処理要求に対応する対応処理制御プログラムを前記情報処理装置に送信しない、ことを特徴とする請求項3又は4に記載の情報処理システムである。
請求項6に係る発明は、前記送信側プロセッサは、前記対応プログラム情報として、前記対応処理制御プログラムを識別するプログラムIDを前記情報処理装置に送信し、前記処理側プロセッサは、前記プログラムIDに基づいて、前記対応処理制御プログラムを取得する、ことを特徴とする請求項1又は2に記載の情報処理システムである。
請求項7に係る発明は、前記処理側プロセッサは、前記対象データに対する処理の完了後に前記対応処理制御プログラムを前記情報処理装置のメモリに保持させ、前記処理要求送信装置から、他の処理要求及び前記他の処理要求に対応する対応処理制御プログラムを示すプログラムIDを受信した場合に、当該プログラムIDが示す対応処理制御プログラムが前記メモリに保持されている場合には、前記メモリに保持された当該対応処理制御プログラムを実行することで前記他の処理要求に含まれる対象データに対する処理を実行する、ことを特徴とする請求項6に記載の情報処理システムである。
請求項8に係る発明は、前記処理側プロセッサは、前記対象データに対する処理の完了後に前記対応処理制御プログラムを前記情報処理装置のメモリから削除する、ことを特徴とする請求項1から4、及び6のいずれか1項に記載の情報処理システムである。
請求項9に係る発明は、前記処理制御プログラムは複数のモジュールを含んで構成されており、前記送信側プロセッサは、前記処理要求に対応する少なくとも1つのモジュールを示す前記対応プログラム情報を前記情報処理装置に送信し、前記処理側プロセッサは、前記少なくとも1つのモジュールを実行することで、前記対象データに対する処理を実行する、ことを特徴とする請求項1から8のいずれか1項に記載の情報処理システムである。
請求項10に係る発明は、前記送信側プロセッサは、同一の前記対応処理制御プログラムに対応する複数の処理要求をまとめて1つの前記情報処理装置に送信する、ことを特徴とする請求項1から9のいずれか1項に記載の情報処理システムである。
請求項11に係る発明は、前記処理要求は、前記対象データを印刷媒体に印刷する印刷処理を印刷装置に実行させる印刷処理要求であり、前記処理制御プログラムは、前記対象データを前記印刷装置が認識可能なデータ形式に変換する印刷制御プログラムである、ことを特徴とする請求項1から10のいずれか1項に記載の情報処理システムである。
請求項12に係る発明は、送信側プロセッサを備え、前記送信側プロセッサは、処理を要求する利用者を特定し、特定された前記利用者に基づいて、前記処理の対象となる対象データを処理するために必要となる処理制御プログラムである対応処理制御プログラムを特定し、前記対象データを含む処理要求と、特定した前記対応処理制御プログラムを示す対応プログラム情報とを関連付けて、前記対応処理制御プログラムを実行することで前記対象データに対する処理を実行する情報処理装置に送信する、ことを特徴とする処理要求送信装置である。
請求項13に係る発明は、コンピュータに、処理を要求する利用者を特定させ、特定された前記利用者に基づいて、前記処理の対象となる対象データを処理するために必要となる処理制御プログラムである対応処理制御プログラムを特定させ、前記対象データを含む処理要求と、特定した前記対応処理制御プログラムを示す対応プログラム情報とを関連付けて、前記対応処理制御プログラムを実行することで前記対象データに対する処理を実行する情報処理装置に送信させる、ことを特徴とする処理要求送信プログラムである。
【発明の効果】
【0013】
請求項1、又は11~13に係る発明によれば、処理要求に基づいて、対象データに対する処理を実行する情報処理装置のメモリに、当該情報処理装置が実行し得る全ての機能を発揮可能な処理制御プログラムを予め記憶しておく場合に比して、処理を実行するために使われる処理制御プログラムを記憶させるためのメモリの記憶領域を低減することができる。
請求項2に係る発明によれば、複数のバージョンの処理制御プログラムのうちの、利用者に対応したバージョンである対応処理制御プログラムによって、処理要求に係る処理を実行することができる。
請求項3に係る発明によれば、処理要求送信装置から送信された対応処理制御プログラムによって、処理要求に係る処理を実行することができる。
請求項4に係る発明によれば、処理要求と対応処理制御プログラムとを一体として情報処理装置に送信することができる。
請求項5に係る発明によれば、対応処理制御プログラムを情報処理装置が保持している場合に、処理要求送信装置が対応処理制御プログラムを情報処理装置に送信する処理を省略することができる。
請求項6に係る発明によれば、処理要求送信装置は対応処理制御プログラムを情報処理装置に送信する必要がなく、情報処理装置に対応処理制御プログラムを取得させることができる。
請求項7に係る発明によれば、対応処理制御プログラムを情報処理装置が保持している場合に、情報処理装置が対応処理制御プログラムを取得する処理を省略することができる。
請求項8に係る発明によれば、処理要求に係る処理の実行後に、情報処理装置のメモリの記憶領域を確保することができる。
請求項9に係る発明によれば、情報処理装置は、処理要求に係る処理に必要なモジュールのみを実行することで、当該処理要求に係る処理を実行することができる。
請求項10に係る発明によれば、処理要求送信装置から情報処理装置への処理要求の送信処理を簡略化することができる。
【図面の簡単な説明】
【0014】
【
図1】本実施形態に係る情報処理システムの構成概略図である。
【
図2】本実施形態に係るジョブ送信装置の構成概略図である。
【
図3】プログラムDBの内容の例を示す概念図である。
【
図5】ジョブスプールの内容の例を示す概念図である。
【
図8】ジョブファイルのデータ構造を示す概念図である。
【
図9】本実施形態に係る情報処理装置の構成概略図である。
【
図10】本実施形態に係る情報処理システムの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0015】
図1は、本実施形態に係る情報処理システム10の構成概略図である。情報処理システム10は、1又は複数のユーザ端末12、処理要求送信装置としてのジョブ送信装置14、及び、1又は複数の情報処理装置16を含んで構成される。ユーザ端末12、ジョブ送信装置14、及び情報処理装置16は、LAN(Local Area Network)あるいはインターネットなどの通信回線18を介して互いに通信可能に接続されている。
【0016】
情報処理システム10の処理の大まかな流れとしては以下の通りである。まず、ジョブ送信装置14が処理要求としてのジョブを受け付ける。例えば、ジョブ送信装置14は、ユーザ端末12からジョブを受信する。また、利用者(ユーザ)がジョブ送信装置14を直接操作してジョブを入力するようにしてもよい。ジョブ送信装置14は、受け付けたジョブを情報処理装置16に送信し、ジョブを受信した情報処理装置16は、当該ジョブに含まれる対象データに対する処理を実行する。
【0017】
ユーザ端末12は、ユーザが使用する端末である。ユーザ端末12は、例えば、据置型のパーソナルコンピュータ、あるいは、スマートフォンやタブレット端末などの携帯端末などである。ユーザ端末12は、他の装置と通信するための通信インターフェースと、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ROM(Read Only Memory)、あるいはRAM(Random Access Memory)などから構成されるメモリと、液晶表示器などから構成されるディスプレイと、マウスやキーボードあるいはタッチパネルなどから構成される入力インターフェースと、CPU(Central Processing Unit)やマイクロコンピュータなどから構成されるプロセッサと、を含んで構成される。
【0018】
図2は、ジョブ送信装置14の構成概略図である。本実施形態では、ジョブ送信装置14はサーバコンピュータであるが、以下に説明する機能を発揮する限りにおいて、ジョブ送信装置14はどのような装置であってもよい。
【0019】
通信インターフェース30は、例えばネットワークアダプタなどを含んで構成される。通信インターフェース30は、通信回線18を介して他の装置と通信する機能を発揮する。通信インターフェース30は、ユーザ端末12からジョブを受信する。また、通信インターフェース30は、情報処理装置16に対して、受け付けたジョブ、及び、当該ジョブに対応する処理制御プログラムを示す対応プログラム情報(詳細後述)を送信する。
【0020】
本実施形態では、ジョブ送信装置14がサーバコンピュータであるがゆえに、通信インターフェース30がジョブを受信しているが、ジョブ送信装置14が、例えばタッチパネルなどを含んで構成される入力インターフェースを備えていてもよく、ユーザが当該入力インターフェースを操作することによってジョブがジョブ送信装置14に入力されてもよい。
【0021】
ジョブは、処理の対象となる対象データ、及び、処理の実行命令を含んで構成される。ジョブの一例としては、情報処理装置16としてのプリンタコントローラに、対象データに対するラスタライズ処理、すなわち、対象データを印刷装置が認識可能なデータ形式に変換する処理を実行させた上で、対象データを印刷媒体に印刷する印刷処理を印刷装置に実行させる印刷ジョブである。ジョブが印刷ジョブである場合、対象データは、例えば電子文書や画像データなどである。この場合、対象データは、例えばPS(Post Script)やPDFなどのPDL(Page Description Language;ページ記述言語)で記述される。
【0022】
もちろん、ジョブとしては、情報処理装置16に対象データに対する処理を実行させるものである限りにおいてどのようなものであってもよいし、情報処理装置16はプリンタコントローラに限られるものではない。
【0023】
メモリ32は、例えばHDD、SSD、ROM、あるいはRAMなどを含んで構成されている。メモリ32は、後述のプロセッサ40とは別に設けられてもよいし、少なくとも一部がプロセッサ40の内部に設けられていてもよい。メモリ32には、ジョブ送信装置14の各部を動作させるための処理要求送信プログラムが記憶される。また、
図2に示す通り、メモリ32には、プログラムリポジトリ34、プログラムDB(データベース)35、ユーザDB36、及びジョブスプール38が定義される。
【0024】
プログラムリポジトリ34には、処理制御プログラムが格納されている。処理制御プログラムは、情報処理装置16で実行されるプログラムであり、処理制御プログラムが実行されることで、情報処理装置16において、ジョブに含まれる対象データに対する処理が実行される。処理制御プログラムは、インストーラ形式(例えばexeファイル)でプログラムリポジトリ34に格納されていてもよいし、アーカイブ形式(例えばzipファイルやtarファイル)でプログラムリポジトリ34に格納されていてもよい。
【0025】
処理制御プログラムの一例としては、対象データに対して上述のラスタライズ処理を実行する印刷制御プログラムである。しかしながら、処理制御プログラムとしては印刷制御プログラムに限られない。例えば、ジョブが、DVD(Digital Versatile Disc)などの記録媒体に対象データ(例えば映像データや音楽データなど)を書き込む書き込み処理を要求する書き込みジョブである場合、処理制御プログラムとしては、当該書き込み処理を実行する書き込み制御プログラムであってもよい。そのような書き込み制御プログラムでは、例えば、片面2層構造のDVD用であって8.5ギガバイト程度の容量を有する対象データを片面1層構造(書き込み可能データ容量は4.7ギガバイト程度)のDVDに書き込む際に、当該対象データを4.7ギガバイト以下の容量に圧縮する処理などが実行される。
【0026】
同様な処理を実行する処理制御プログラムでも、互いに異なる処理制御プログラムを用いて対象データに対する処理を実行した場合に、その処理結果が互いに異なる場合がある。例えば、処理制御プログラムが上述の印刷制御プログラムである場合、互いに異なる印刷制御プログラムを用いてラスタライズ処理を実行した上で印刷処理を実行した場合、例えば、印刷結果物における色味が多少異なったり、各オブジェクトの配置関係(すなわちレイアウト)が多少異なったりする場合がある。あるいは、ある印刷制御プログラムを用いた場合、ユーザの意図とは全く異なる印刷結果物が出力されてしまう場合もある。また、処理制御プログラムが上述の書き込み制御プログラムである場合には、互いに異なる書き込み制御プログラムを用いて書き込み処理を実行した場合、例えば、対象データの圧縮方法が異なることで、処理結果としてのDVDの画質や音質が多少異なる場合がある。他にも、処理制御プログラムが、画像データや動画データなどを表示するための表示処理制御プログラムである場合には、異なる表示処理制御プログラムを用いて処理を実行した場合に表示される画像や動画の解像度や色の再現性、階調性などの表示特性や表示装置への対応性に影響があることも考えられる。
【0027】
上述のように、処理制御プログラムに応じて処理結果が変わる場合があるが、どの処理制御プログラムを用いるべきかは、ユーザの好み、あるいは、ジョブや対象データの種類によって変わり得る。例えば、ユーザAは、処理制御プログラムBを用いた場合よりも処理制御プログラムAを用いて処理された処理結果を好むが、ユーザBは、処理制御プログラムAを用いた場合よりも処理制御プログラムBを用いて処理された処理結果を好むという場合が考えられる。また、対象データAに対して処理制御プログラムAを用いて処理した場合に、処理制御プログラムBを用いて処理した場合よりも好適な処理結果が得られるが、対象データBに対しては、処理制御プログラムBを用いて処理した場合に、処理制御プログラムAを用いて処理した場合よりも好適な処理結果が得られる場合も考えられる。さらに、処理結果の良し悪しには多くの観点があり、きれいであること等の他、「過去互換」なども重要な観点となる。すなわち、あるユーザが過去に対象データAに対して処理制御プログラムAを用いて処理を実行したとする。時間をおいて、再度同様の処理を実行する場合に、以前の処理結果と同様の結果を期待して処理を再実行する場合があり得る。例えば、印刷処理の場合であれば、過去の印刷物となるべく同じような見栄えの印刷を再実行したいというケースが考えられる。以前に処理を実行した後で、処理制御プログラムのバージョンが更新された場合、同じ処理制御プログラムAを使って処理を実行したにもかかわらず、処理結果が異なることがある。一般的には、何かしらの不具合や、より高度な処理結果を得るためにプログラムが更新されているものの、そのような処理結果の高度さ以上に、過去の出力結果と同様の結果を再現することを重視する使い方をするユーザにとっては、以前のバージョンの処理制御プログラムAの方が、最新バージョンの処理制御プログラムAよりも好適と言える。
【0028】
プログラムリポジトリ34には、複数の処理制御プログラム、特に、同様な処理を実行する複数の処理制御プログラムが格納される。例えば、プログラムリポジトリ34には、複数の印刷制御プログラムが格納される。あるいは、プログラムリポジトリ34には、複数の書き込み制御プログラムが格納される。
【0029】
また、プログラムリポジトリ34には、ある処理制御プログラムの複数のバージョンが格納されてもよい。例えば、処理制御プログラムAのバージョン1.0、バージョン1.1、バージョン2.0の3つのバージョンが格納される、などの如くである。
【0030】
また、プログラムリポジトリ34に格納される処理制御プログラムは複数のモジュールから構成されていてもよい。例えば、処理制御プログラムAは、モジュールα、モジュールβ、及びモジュールγから構成される、などの如くである。処理制御プログラムに含まれる各モジュールは、単体あるいは任意の組み合わせで実行可能である。例えば、上述の処理制御プログラムAの各モジュールは単体で実行可能であり、また、例えば、モジュールαとモジュールβの組み合わせ、モジュールαとモジュールγの組み合わせなどでも実行可能となっている。また、複数の処理制御プログラムがそれぞれ複数のモジュールから構成されている場合には、異なる処理制御プログラムから選択した複数のモジュールを組み合わせて実行することも可能であってよい。例えば、処理制御プログラムAは、モジュールα、モジュールβ、及びモジュールγから構成され、処理制御プログラムBは、モジュールδ及びモジュールεから構成されている場合、処理制御プログラムAのモジュールαと、処理制御プログラムBのモジュールεとを組み合わせて実行することも可能であってよい。処理制御プログラムに含まれる各モジュールは、例えば、処理制御プログラムが発揮する各機能に対応するものである。あるモジュールにも複数のバージョンがある場合には、プログラムリポジトリ34には、当該モジュールの複数のバージョンが格納されてもよい。
【0031】
具体的な処理の一例として印刷処理を例に説明すると、処理制御プログラムは画像処理のためのプログラムが該当し、当該プログラムを構成するモジュールとして、例えば、画像円滑化フィルタモジュール、エッジ強調モジュール、解像度変換モジュール、色変換モジュール、階調調整モジュール、ハーフトーンモジュール、フォント描画モジュール、回転モジュールなどが挙げられる。ユーザは印刷対象のデータと印刷の条件を含む印刷ジョブとして印刷処理を要求する。その印刷ジョブに含まれる印刷処理条件、印刷対象文書の内容から、当該印刷ジョブを処理するために必要となるプログラムが特定される。例えば、その印刷ジョブに基づく印刷処理を実行するにあたり、上記モジュールのうち、エッジ強調モジュールとハーフトーンモジュールと、色変換モジュールをだけをつかって処理が可能なのであれば、対象処理制御プログラムとして、これらのモジュールが特定される。別な印刷ジョブを処理するために、そのすべてのモジュールの機能を実行する必要があるケースでは、それらすべてのモジュールを含む画像処理プログラム全体を対象処理制御プログラムとして特定することになる。
【0032】
プログラムリポジトリ34に格納された各処理制御プログラムには、処理制御プログラムを一意に識別するプログラムIDが付与されている。本実施形態において、互いにバージョンが異なる処理制御プログラムには、互いに異なるプログラムIDが付与されている。また、処理制御プログラムが複数のモジュールから構成される場合は、各処理制御プログラムが有する各モジュール、あるいは、複数の処理制御プログラムの各モジュールの組み合わせ毎にそれぞれ異なるプログラムIDが付与されている。
【0033】
本実施形態では、プログラムリポジトリ34はジョブ送信装置14のメモリ32に記憶されているが、プログラムリポジトリ34は、ジョブ送信装置14及び情報処理装置16と通信可能な他の装置(例えばサーバなど)に記憶されていてもよい。つまり、処理制御プログラムは、ジョブ送信装置14及び情報処理装置16以外の装置に記憶されていてもよい。
【0034】
プログラムDB35には、プログラムリポジトリ34に格納される処理制御プログラム又はそのモジュールに関する情報が格納される。
図3に、プログラムDB35の一例を示す。プログラムDB35は、例えば、ジョブ送信装置14で管理している処理制御プログラムに関する情報を管理するテーブルである。
【0035】
本実施形態のプログラムDB35では、処理制御プログラムを一意に識別することが可能な識別情報(プログラムID)を、その処理制御プログラムIDが示す処理制御プログラムの名称情報、その処理制御プログラムのバージョン情報、その処理制御プログラムを構成するモジュール、格納場所と処理制御プログラムのファイル名、最終利用日、情報処理装置16での当該処理制御プログラムの保持の状態などの情報と対応付けて管理している。
【0036】
例えば、
図3の例においては、処理制御プログラムAは、プログラムID「P001-2」が示すモジュールα、プログラムID「P001-3」が示すモジュールβ、プログラムID「P001-4」が示すモジュールγの3つのモジュールから構成されており、それら全てのモジュールを含む全体プログラムがプログラムID「P001-1」で管理されていることを示している。プログラムID「P001-1」で表される処理制御プログラムAのプログラムバージョンはバージョン2.1である。
【0037】
また、保持の有無の項目では、一旦当該処理制御プログラム又はモジュールを使ってジョブに係る処理を実行した情報処理装置16が、当該処理制御プログラム又はモジュールを保持しているかどうかを示している(詳細後述)。
図3の例におけるプログラムID「P001-1」が示す処理制御プログラムAの場合、2018年5月15日に情報処理装置Xが、処理制御プログラムAを利用してジョブに係る処理を実行した後、当該処理制御プログラムAを保持していることを示している。処理制御プログラム又はモジュールを情報処理装置16で保持しているか保持していないかの情報は、当該処理制御プログラム又はモジュールを利用した処理を実行する新たなジョブが要求された場合に、対応する処理制御プログラム又はモジュールを、情報処理装置16に対して送信する必要があるかどうかを判断するために使われる(詳細は後述する)。
【0038】
また、
図3の例では、上述のように、処理制御プログラムAを構成するモジュールα、β、γは、それぞれ個別のモジュールとしてもプログラムDB35に管理されている。
【0039】
さらに、本実施形態では、処理制御プログラムA以外の処理制御プログラムとして、処理制御プログラムB、処理制御プログラムC、処理制御プログラムA&Bが登録されている。このうち、処理制御プログラムBは、プログラムのバージョンとしてバージョン1.0とバージョン1.1の2つのバージョンが管理されている。さらに、処理制御プログラムA&Bは2つの処理制御プログラムのモジュールを組み合わせた機能を実行するために使われるプログラムであり、以下、このようなプログラムを複合処理プログラムと呼ぶ。例えば、プログラムID「P101-1」で示される複合処理プログラムは、処理制御プログラムAのバージョン2.1のモジュールαと、処理制御プログラムBのバージョン1.1のモジュールεを組み合わせた処理を実行可能となっていることを示している。
【0040】
このように、要求されたジョブを実行するために使われる処理制御プログラム又はモジュールをプログラムDB35で管理しておくことで、ジョブで定義された処理を実行するための処理制御プログラム又はモジュールを特定することが可能となる。
【0041】
ユーザDB36には、ジョブ送信装置14に対してジョブを入力するユーザに関する情報が格納される。情報処理装置16に対して、情報処理装置16の管理者あるいはユーザ自身などによってユーザ登録が行われ、ユーザ登録時に入力された種々の情報がユーザDB36に格納される。
【0042】
図4は、ユーザDB36の内容の例を示す図である。本実施形態においては、ユーザDB36においては、ユーザIDと、デフォルト使用プログラムと、デフォルト指定装置とが互いに関連付けられて記憶されている。
【0043】
ユーザIDは、ユーザを一意に識別する識別子であり、ユーザ登録時に情報処理装置16によって付与される。
【0044】
デフォルト使用プログラムは、当該ユーザが使用する処理制御プログラムの初期設定を示す情報である。あるいは、デフォルト使用プログラムには、当該ユーザが使用する処理制御プログラムのバージョンの初期設定、あるいは、当該ユーザが使用する処理制御プログラムのモジュールの初期設定が示されていてもよい。
【0045】
例えば、
図4の例では、ユーザID「U0001」が示すユーザが使用する処理制御プログラムの初期設定が、処理制御プログラムAのバージョン2.1の全モジュールであることが示されている。また、ユーザID「U0002」が示すユーザが使用する処理制御プログラムの初期設定が、処理制御プログラムCのバージョン1.4の全モジュールであることが示されている。このように、ユーザによってデフォルト使用プログラムが異なる設定となっていてもよい。また、ユーザID「U0003」が示すユーザが使用する処理制御プログラムの初期設定が、処理制御プログラムAのバージョン2.1のモジュールαのみであることが示されている。このように、ある処理制御プログラムのあるモジュールのみをデフォルト使用プログラムとして設定できるようになっていてもよい。さらに、ユーザID「U0004」が示すユーザが使用する処理制御プログラムの初期設定が、処理制御プログラムAのバージョン2.1のモジュールαと、処理制御プログラムBのバージョン1.0のモジュールεとの組み合わせであることが示されている。このように、異なる処理制御プログラムに含まれる複数のモジュールの組み合わせをデフォルト使用プログラムとして設定できるようになっていてもよい。
【0046】
情報処理システム10が複数の情報処理装置16を備えている場合、ユーザは、ジョブを処理させる情報処理装置16を指定し、指定された情報処理装置16において当該ジョブが実行されるところ、デフォルト指定装置は、当該ユーザが指定する情報処理装置16の初期設定を示す情報である。例えば、
図4の例では、ユーザID「U0001」が示すユーザが指定する情報処理装置16の初期設定が、情報処理装置Xであることが示されている。また、ユーザID「U0003」が示すユーザが指定する情報処理装置16の初期設定が、情報処理装置Yであることが示されている。このように、ユーザによってデフォルト指定装置が異なる設定となっていてもよい。
【0047】
図2に戻り、ジョブスプール38には、ジョブ送信装置14が受け付けたジョブが一時的に格納される。これにより、ジョブ送信装置14は、一時的にジョブを保持することができる。
図5は、ジョブスプール38の内容の例を示す図である。
図5に示すように、ジョブスプール38においては、ジョブと、当該ジョブに関連付けられた管理情報が格納される。
図5には1つのジョブと1つの管理情報との組み合わせが示されており、ジョブスプール38は、このような組み合わせを複数格納することができる。
【0048】
管理情報には、後述するプログラム特定部44により特定された、当該ジョブに対応する処理制御プログラムを示すプログラムIDと、当該ジョブの送信先である情報処理装置16を示す指定装置情報を含む。なお、情報処理システム10が1つの情報処理装置16しか有していない場合には、管理情報において指定装置情報を省略することができる。
【0049】
図2に戻り、送信側プロセッサとしてのプロセッサ40は、広義的な処理装置を指し、汎用的な処理装置(例えばCPUなど)、及び、専用の処理装置(例えばGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、あるいは、プログラマブル論理デバイスなど)の少なくとも1つを含んで構成される。プロセッサ40としては、1つの処理装置によるものではなく、物理的に離れた位置に存在する複数の処理装置の協働により構成されるものであってもよい。
図2に示す通り、プロセッサ40は、メモリ32に記憶された処理要求送信プログラムにより、ユーザ特定部42、プログラム特定部44、及び送信制御部46としての機能を発揮する。
【0050】
ユーザ特定部42は、ジョブをジョブ送信装置14に入力したユーザを特定する。通信インターフェース30がユーザ端末12からジョブを受信する場合、ユーザ端末12は、ジョブと共に、当該ジョブに係るユーザを示すユーザIDをジョブ送信装置14に送信する。ユーザ特定部42は、受信したユーザIDに基づいてジョブを入力したユーザを特定する。また、ユーザがジョブ送信装置14の入力インターフェースを操作してジョブを入力する場合は、ジョブ送信装置14はユーザ認証処理を行い、ユーザ特定部42は、ユーザ認証処理により得たユーザIDに基づいてジョブを入力したユーザを特定する。
【0051】
プログラム特定部44は、ジョブ送信装置14が受け付けたジョブに対応する処理制御プログラムを特定する。本明細書では、ジョブ送信装置14が受け付けたジョブに対応する処理制御プログラムを当該ジョブの「対応処理制御プログラム」と呼ぶ。特に、プログラム特定部44は、プログラムリポジトリ34に格納された処理制御プログラムあるいはモジュールの中から、対応処理制御プログラムを特定する。ジョブの対応処理制御プログラムとは、当該ジョブに含まれる対象データを処理するために必要となる処理制御プログラムであり、換言すれば、当該ジョブに含まれる対象データを処理する際に情報処理装置16によって用いられる処理制御プログラムである。
【0052】
プログラム特定部44は、処理制御プログラムの複数のバージョンのうちの1つのバージョンを対応処理制御プログラムとして特定することができる。特に、プログラム特定部44は、当該処理制御プログラムの複数のバージョンのうちの、ユーザ特定部42が特定したユーザに対応したバージョンを対応処理制御プログラムとして特定するようにしてもよい。このような場合、例えば上述したようにユーザから受け付けたジョブや処理対象データに基づいて特定された実行するべき機能と、機能を実行可能な処理制御プログラムを特定したうえで、特定された処理制御プログラムの複数バージョンのうちの、ユーザに対応したバージョンを特定するようにすることができる。このような実施形態を採用することによって、受け付けたジョブや処理対象データの機能ごとに、ユーザにとって好ましいバージョンを特定して処理を実行することができるようになる。
【0053】
また、プログラム特定部44は、処理制御プログラムに含まれる少なくとも1つのモジュールを対応処理制御プログラムとして特定することができる。つまり、この場合、処理制御プログラムの全体ではなく一部分が対応処理制御プログラムになり得る。また、処理制御プログラムに含まれるモジュールの複数のバージョンのうちの1つのバージョンを対応処理制御プログラムとして特定することもできる。特に、プログラム特定部44は、処理制御プログラムに含まれるモジュール群のうちの、ユーザ特定部42が特定したユーザに対応したモジュールあるいはモジュールのバージョンを対応処理制御プログラムとして特定するようにしてもよい。さらに、プログラム特定部44は、異なる処理制御プログラムに含まれる複数のモジュールの組み合わせを対応処理制御プログラムとして特定することができる。
【0054】
プログラム特定部44は、受け付けたジョブや処理対象のデータの内容から、実行するべき機能を特定することで、対応処理制御プログラムを特定することができる。例えば、受け付けたジョブが、機能Xを実行し、その結果に対して機能Yを実行するという内容であった場合に、機能Xを実行可能な処理制御プログラムと、機能Yを実行可能な処理制御プログラムとを、当該ジョブに対応する対応処理制御プログラムとして特定する。処理制御プログラムが複数のモジュールに分かれていて、特定した機能を実行可能なモジュールが存在する場合には、対応処理制御プログラムとして、例えば機能X、機能Yを実行可能なモジュールを特定すればよい。
【0055】
また、別のケースとしては、受け付けたジョブが、対象データを複数の対象データに分割して、分割された第1のデータに対しては、機能Xを実行後機能Yを実行し、第2のデータに対しては機能Zのみを実行し、第1のデータに対する処理結果と第2のデータに対する処理結果を統合したデータを生成するような機能の場合、データを分割する処理を実行可能な処理制御プログラム、機能Xを実行可能な処理制御プログラム、機能Yを実行可能な処理制御プログラム、データを統合する処理を実行可能な処理制御プログラムからなるプログラム群を対応処理制御プログラムとして特定する。このような場合には、例えば、どのデータ群に対してどの処理制御プログラムによる処理を実行するのか、ということをデータ群ごとに対応づけた形にして、情報処理装置16に送信することもできる。
【0056】
プログラム特定部44が対応処理制御プログラムを特定する方法はいくつかの方法がある。第1の方法として、プログラム特定部44は、ユーザ特定部42により特定されたユーザ、及び、ユーザDB36に基づいて、対応処理制御プログラムを特定することができる。この場合、プログラム特定部44は、ユーザDB36において、ユーザ特定部42が特定したユーザ(つまりジョブ送信装置14にジョブを入力したユーザ)のユーザIDに関連付けられているデフォルト使用プログラムを、当該ジョブの対応処理制御プログラムとして特定する。つまり、この場合、プログラム特定部44は、ユーザに応じて当該ユーザが入力したジョブの対応処理制御プログラムを特定するから、ユーザに対応した対応処理制御プログラムを特定すると言える。
【0057】
なお、本実施形態では、ユーザ特定部42が、特定のユーザそのものを特定する実施形態として説明をしているが、もちろんユーザそのものを特定するものに限定されない。例えば想定される利用状態に応じて、複数のユーザを含んだ組織で、使用する処理制御プログラム、あるいはモジュール、それらのバージョンを管理している場合があり得る。すなわち、例えばある会社で、特定の処理制御プログラム又はモジュールや、特定バージョンの処理制御プログラム又はモジュールを使うことが推奨されているような場合である。また別のケースとしては、同じ会社であっても、部門やグループや拠点に応じて、使用する処理制御プログラム、モジュール、それらのバージョンが管理されていることも考えられる。そのような場合に、ユーザ特定部42は、ジョブを入力したユーザの所属する組織や拠点、ジョブ送信装置を管理している組織やジョブ送信装置14が設置されている組織や拠点を特定した上で、それらの組織、拠点で利用可能な処理制御プログラム又はモジュールを、対応処理制御プログラムとして特定する。このような実施形態によれば、ユーザごとに利用可能なプログラムを設定しておかなくても、組織に所属するユーザであれば一定の出力結果を得ることが可能となる。
【0058】
例えば、ジョブ送信装置14がユーザID「U0001」が示すユーザからジョブを受け付け、ユーザ特定部42が当該ユーザを特定した場合、プログラム特定部44は、ユーザDB36(
図4参照)を参照し、当該ジョブの対応処理制御プログラムとして、処理制御プログラムAのバージョン2.1の全モジュールを特定する。このように、ユーザDB36のデフォルト使用プログラムに、処理制御プログラムのバージョンが指定されている場合には、プログラム特定部44は、対応処理制御プログラムとして、当該ユーザに対応したバージョンの処理制御プログラムを特定することができる。
【0059】
また、例えば、ジョブ送信装置14がユーザID「U0003」が示すユーザからジョブを受け付け、ユーザ特定部42が当該ユーザを特定した場合、プログラム特定部44は、ユーザDB36を参照し、当該ジョブに対応する対応処理制御プログラムとして、処理制御プログラムAのバージョン2.1のモジュールαを特定する。このように、ユーザDB36のデフォルト使用プログラムに、モジュールが指定されている場合には、プログラム特定部44は、対応処理制御プログラムとして、当該ユーザに対応したモジュールを特定することができる。
【0060】
また、例えば、ジョブ送信装置14がユーザID「U0004」が示すユーザからジョブを受け付け、ユーザ特定部42が当該ユーザを特定した場合、プログラム特定部44は、ユーザDB36を参照し、当該ジョブに対応する対応処理制御プログラムとして、処理制御プログラムAのバージョン2.1のモジュールαと、処理制御プログラムBのバージョン1.0のモジュールβとの組み合わせを特定する。このように、プログラム特定部44は、対応処理制御プログラムとして、異なる処理制御プログラムに含まれる複数のモジュールの組み合わせを特定することができる。
【0061】
なお、同様の方法で、プログラム特定部44は、ジョブの送信先の情報処理装置16を特定することができる。すなわち、プログラム特定部44は、ユーザDB36において、ユーザ特定部42が特定したユーザのユーザIDに関連付けられているデフォルト指定装置を、当該ジョブの送信先の情報処理装置16として特定する。なお、情報処理システム10が1つの情報処理装置16しか有していない場合には、ジョブの送信先の情報処理装置16の特定処理を省略することができる。
【0062】
第2の方法として、プログラム特定部44は、ユーザの指示に応じて対応処理制御プログラムを特定することができる。ユーザは、ジョブ送信装置14に対してジョブを入力する際に、当該ジョブの対応処理制御プログラムを選択する。例えば、ユーザがジョブ送信装置14にジョブを入力する際に、
図6に示されるようなジョブ入力画面がユーザ端末12のディスプレイあるいはジョブ送信装置14のディスプレイに表示される。ジョブ入力画面には、対応処理制御プログラムを入力する入力欄I1が設けられており、ユーザは、入力欄I1に対応処理制御プログラムを入力することで、当該ジョブの対応処理制御プログラムを指定する。また、ユーザは、入力欄I1に処理制御プログラムのバージョン、処理制御プログラムのモジュール、あるいは、異なる処理制御プログラムに含まれる複数のモジュールの組み合わせを対応処理制御プログラムとして入力することもできる。なお、入力欄I1に設けられたボタンB1を操作することで、プログラムリポジトリ34に格納された処理制御プログラムあるいはモジュールの一覧が表示され、ユーザはその一覧から当該ジョブの対応処理制御プログラムを選択できるようになっていてもよい。OKボタンを操作すると、ジョブと共に、指定した対応処理制御プログラムを示す情報がジョブ送信装置14に入力される。プログラム特定部44は、当該情報に基づいて、当該ジョブの対応処理制御プログラムを特定する。この方法によれば、プログラム特定部44は、同一のユーザからの各ジョブに対して、異なる対応処理制御プログラムを特定することも可能となる。
【0063】
また、ジョブ入力画面を表示する際に、既にユーザ特定部42がユーザを特定している場合には、
図7に示すように、プログラム特定部44は、ユーザDB36を参照して特定された当該ユーザのデフォルト使用プログラムを予め入力欄I1に入力しておいてもよい。このようにすることで、ユーザは、当該ジョブに対応する対応処理制御プログラムがデフォルト使用プログラムでよければ、対応処理制御プログラムの選択操作を省略してOKボタンを操作することができる。もちろん、この場合あっても、ユーザは、入力欄I1に他の処理制御プログラムあるいはモジュールを入力することができる。
【0064】
なお、同様の方法で、プログラム特定部44は、ジョブの送信先の情報処理装置16を特定することができる。すなわち、ジョブ入力画面には、ジョブの送信先の情報処理装置16を入力する入力欄I2が設けられており、ユーザは、入力欄I2に情報処理装置16を入力することで、当該ジョブの送信先である情報処理装置16を指定する。入力欄I2に設けられたボタンB2を操作することで、ジョブ送信装置14がジョブを送信可能な情報処理装置16の一覧が表示され、ユーザはその一覧から当該ジョブの送信先である情報処理装置16を選択できるようになっていてもよい。また、ジョブ入力画面を表示する際に、既にユーザ特定部42がユーザを特定している場合には、
図7に示すように、プログラム特定部44は、ユーザDB36を参照して特定された当該ユーザのデフォルト指定装置を予め入力欄I2に入力しておいてもよい。OKボタンを操作すると、ジョブと共に、選択した情報処理装置16を示す情報がジョブ送信装置14に入力される。プログラム特定部44は、当該情報に基づいて、当該ジョブの送信先の情報処理装置16を特定する。
【0065】
プログラム特定部44は、特定した対応処理制御プログラムを示すプログラムID、及び、特定した情報処理装置16を示す指定装置情報を当該ジョブの管理情報としてジョブスプール38に格納する。
【0066】
図2に戻り、送信制御部46は、ユーザから受け付けたジョブと、当該ジョブの対応処理制御プログラムを示す情報とを関連付けて情報処理装置16に送信する。情報処理システム10が複数の情報処理装置16を有している場合には、送信制御部46は、ジョブ及び対応処理制御プログラムを示す情報を、プログラム特定部44により特定された情報処理装置16に送信する。具体的には、送信制御部46は、ジョブスプール38からジョブを取り出し、当該ジョブに関連付けられている指定装置情報に基づいて、送信先の情報処理装置16を特定する。その上で、送信制御部46は、特定した情報処理装置16に、当該ジョブと、当該ジョブに関連付けられているプログラムIDに基づく、対応処理制御プログラムを示す対応プログラム情報を送信する。対応処理制御プログラムが、ある処理制御プログラムのあるバージョン、あるいは、少なくとも1つのモジュールである場合、対応プログラム情報は、ある処理制御プログラムの有るバージョン、あるいは、少なくとも1つのモジュールを示すものとなる。
【0067】
対応プログラム情報とは、処理要求としてのジョブに基づく処理を実行するために使われるプログラムを示す情報であり、一例として、当該対応処理制御プログラム自体であったり、処理を実行するためのプログラムを一意に特定可能な情報(例えばプログラムID)などが該当する。
【0068】
対応プログラム情報が当該対応処理制御プログラム自体である場合、送信制御部46は、対応処理制御プログラムをプログラムリポジトリ34から取り出して情報処理装置16に送信する。また、プログラムリポジトリ34が他の装置に記憶されている場合には、送信制御部46は、当該対応処理制御プログラムを当該他の装置から情報処理装置16に送信させる。
【0069】
ジョブ送信装置14から、ジョブ、及び、当該ジョブの対応処理制御プログラムを情報処理装置16に送信する場合、送信制御部46は、ジョブと対応処理制御プログラムを連結することで生成された処理要求ファイルとしてのジョブファイルを情報処理装置16に送信するようにしてもよい。
図8には、ジョブファイルのデータ構造の一例が示されている。
図8の例では、ジョブファイルは、連結された2つのデータブロックB(B1及びB2)を含んで構成される。各データブロックBは、情報種別部T、データレングス部L、及びデータ部Dを含んで構成される。情報種別部Tはデータ部Dの情報の種別を表し、データレングス部Lはデータ部Dのデータ長を示すものである。本実施形態では、データブロックB1のデータ部D1は対応処理制御プログラムであり、データブロックB1の情報種別部T1はデータ部D1が対応処理制御プログラムであることを示し、データブロックB1のデータレングス部L1は対応処理制御プログラムのデータ長を示すものとなる。また、本実施形態では、データブロックB2のデータ部D2はジョブであり、データブロックB2の情報種別部T2はデータ部D2がジョブであることを示し、データブロックB2のデータレングス部L2はジョブのデータ長を示すものとなる。
【0070】
また、対応プログラム情報が、当該対応処理制御プログラムを識別するプログラムIDである場合、送信制御部46は、ジョブスプール38において当該ジョブに関連付けられているプログラムIDを取得し、当該プログラムIDを情報処理装置16に送信する。後述するように、情報処理装置16は、当該プログラムIDに基づいて、プログラムリポジトリ34から対応処理制御プログラムを取得する。
【0071】
送信制御部46は、ジョブをジョブ送信装置14に入力したユーザからの指示に応じて、ジョブ及び対応プログラム情報を情報処理装置16に送信することができる。あるいは、ジョブ送信装置14が、ジョブを送信するタイミングを規定するジョブスケジューラを備えている場合には、送信制御部46は、当該ジョブスケジューラの指示に従ったタイミングでジョブ及び対応プログラム情報を情報処理装置16に送信することができる。
【0072】
送信制御部46は、ジョブスプール38に、同一の対応処理情報プログラムに対応する複数のジョブが格納されている場合には、当該複数のジョブをまとめて、当該対応処理情報プログラムを示す情報と共に情報処理装置16に送信するようにしてもよい。特に、送信制御部46は、ジョブスプール38に、同一の対応処理情報プログラムに対応し、且つ、指定装置情報が示す情報処理装置16が同一である複数のジョブが格納されている場合には、当該複数のジョブをまとめて、当該対応処理情報プログラムを示す情報と共に当該情報処理装置16に送信するようにしてもよい。
【0073】
図9は、情報処理装置16の構成概略図である。情報処理装置16の代表的な例は、上述のラスタライズ処理を実行するプリンタコントローラ、あるいは、上述の書き込み処理を実行する書き込み装置などであるが、以下に説明する機能を発揮する限りにおいて、情報処理装置16はどのような装置であってもよい。
【0074】
通信インターフェース50は、例えばネットワークアダプタなどを含んで構成される。通信インターフェース50は、通信回線18を介して他の装置と通信する機能を発揮する。通信インターフェース50は、ジョブ送信装置14から、ジョブ及び対応プログラム情報を受信する。
【0075】
メモリ52は、例えばHDD、SSD、ROM、あるいはRAMなどを含んで構成されている。メモリ52は、後述のプロセッサ60とは別に設けられてもよいし、少なくとも一部がプロセッサ60の内部に設けられていてもよい。メモリ52には、情報処理装置16の各部を動作させるための情報処理プログラムが記憶される。また、
図9に示す通り、メモリ52には、ブートプログラム54、ジョブスプール56、及びプログラムスプール58が定義される。
【0076】
ブートプログラム54は、メモリ52に対応処理制御プログラムを展開するためのプログラムである。ブートプログラム54が実行されると、メモリ52上に対応処理制御プログラムを展開するための土台が形成される。当該土台は、対応処理制御プログラムの枠のようなものであり、実機能を有さないものである。対応処理制御プログラムが当該土台の上に展開されることで、実機能を有する対応処理制御プログラムが実行可能となる。
【0077】
ジョブスプール56には、情報処理装置16がジョブ送信装置14から受け取ったジョブが一時的に格納される。ジョブに係る処理が完了すると、後述のプロセッサ60によって当該ジョブはジョブスプール56から削除される。
【0078】
プログラムスプール58には、ジョブに含まれる対象データに対する処理が完了した後において、当該ジョブの対応処理制御プログラムが格納される。プログラムスプール58への対応処理制御プログラムの格納処理の詳細については、プロセッサ60のプログラム処理部68の処理と共に後述する。
【0079】
処理側プロセッサとしてのプロセッサ60は、広義的な処理装置を指し、汎用的な処理装置(例えばCPUなど)、及び、専用の処理装置(例えばGPU、ASIC、FPGA、あるいは、プログラマブル論理デバイスなど)の少なくとも1つを含んで構成される。プロセッサ60としては、1つの処理装置によるものではなく、物理的に離れた位置に存在する複数の処理装置の協働により構成されるものであってもよい。
図9に示す通り、プロセッサ60は、メモリ52に記憶された情報処理プログラムにより、ファイル分離部62、プログラム取得部64、実行制御部66、プログラム処理部68、及び保持プログラム通知部70としての機能を発揮する。
【0080】
ファイル分離部62は、情報処理装置16がジョブ送信装置14から、ジョブと対応処理制御プログラムとが連結されたジョブファイルを受信した場合、当該ジョブに含まれる対象データに対する処理に先立って、ジョブファイルからジョブと対応処理制御プログラムとを分離する分離処理を実行する。例えば、ジョブファイルが
図8に示すデータ構造を有している場合、ファイル分離部62は、データレングス部Lが示すデータ長に基づいて、ジョブファイルを各データブロックBに分離する。そして、各データブロックBの情報種別部Tが示す情報に基づいて、各データブロックBのデータ部Dが、対応処理制御プログラムであるかジョブであるかを特定する。ファイル分離部62によりジョブファイルの分離処理が行われることで、情報処理装置16は、ジョブ及び対応処理制御プログラムを取得する。
【0081】
なお、情報処理装置16が、ジョブと対応処理制御プログラムとを別個に受信した場合、あるいは、情報処理装置16が、ジョブと、対応処理制御プログラムのプログラムIDとを受信した場合には、ファイル分離部62による分離処理を実行する必要はない。
【0082】
プログラム取得部64は、情報処理装置16がジョブ送信装置14から、ジョブ、及び、対応処理制御プログラムを示すプログラムIDを受信した場合、当該プログラムIDに基づいて、当該対応処理制御プログラムを取得する。具体的には、プログラム取得部64は、プログラムリポジトリ34を有する装置(本実施形態ではジョブ送信装置14)に対して、当該プログラムIDと共に対応処理制御プログラムの送信要求を送信する。プログラムリポジトリ34を有する装置は、受信したプログラムIDに基づいて、プログラムリポジトリ34から対応処理制御プログラムを取得して情報処理装置16に送信する。これにより、プログラム取得部64は、対応処理制御プログラムを取得する。
【0083】
実行制御部66は、まず、取得した対応処理制御プログラムをメモリ52上に展開する。具体的には、実行制御部66は、まず、ブートプログラム54を実行し、メモリ52上に対応処理制御プログラムのための土台を形成する。その上で、実行制御部66は、形成された土台の上に対応処理制御プログラムを展開する。詳しくは、対応処理制御プログラムがインストーラ形式で取得された場合には、インストーラを実行して対応処理制御プログラムを展開する。換言すれば、メモリ52に対応処理制御プログラムをインストールする。また、対応処理制御プログラムがアーカイブ形式で取得された場合には、アーカイブ形式のファイルを解凍などすることで対応処理制御プログラムを展開する。
【0084】
実行制御部66は、メモリ52上に展開した対応処理制御プログラムを実行することで、当該対応処理制御プログラムに対応するジョブに含まれる対象データに対する処理を実行する。ここで、対応処理制御プログラムが、1又は複数のモジュールである場合には、実行制御部66は、少なくとも1つのモジュールを実行することで、当該ジョブに含まれる対象データに対する処理を実行することとなる。
【0085】
例えば、ジョブが印刷ジョブであり、当該対応処理制御プログラムが印刷制御プログラムである場合、実行制御部66は、印刷制御プログラムを実行することで、対象データに対してラスタライズ処理を実行する。これにより、PDLで記述された対象データが、印刷装置が認識可能なデータ形式(例えばビットマップ形式)に変換される。次いで、実行制御部66は、ラスタライズ処理済みの対象データを通信インターフェース50から印刷装置へ送信し、印刷装置において、対象データを印刷媒体に印刷する印刷処理を実行させる。これにより、当該印刷ジョブが完了する。
【0086】
また、例えば、ジョブが、記録媒体への対象データの書き込みを要求する書き込みジョブであり、当該対応処理制御プログラムが書き込み制御プログラムである場合、実行制御部66は、書き込み制御プログラムを実行することで、対象データの容量を圧縮する圧縮処理などを実行する。次いで、実行制御部66は、圧縮済みの対象データを通信インターフェース50から書き込み装置へ送信し、書き込み装置において、対象データをDVDなどの記録媒体へ書き込む書き込み処理を実行させる。これにより、当該書き込みジョブが完了する。
【0087】
なお、ジョブに係る処理を実際に行う機能(上述の印刷装置や書き込み装置が有する機能)は、情報処理装置16に内蔵されていてもよく、情報処理装置16がジョブに係る処理を実行するようにしてもよい。
【0088】
プログラム処理部68は、ジョブに含まれる対象データに対する処理が完了した後において、当該ジョブの対応処理制御プログラムに対する処理を実行する。具体的には、プログラム処理部68は、対象データに対する処理の完了後に、対応処理制御プログラムをメモリ52に保持することができる。
【0089】
対応処理制御プログラムをメモリ52に保持する方法としては、以下の2つの方法がある。
【0090】
第1の方法として、プログラム処理部68は、対象データに対する処理の完了後に、対応処理制御プログラムをメモリ52に展開した状態で維持する。例えば、対応処理制御プログラムがインストーラ形式である場合、プログラム処理部68は、対応処理制御プログラムをメモリ52にインストールしたままの状態に維持する。また、対応処理制御プログラムがアーカイブ形式である場合、プログラム処理部68は、メモリ52に展開した対応処理制御プログラムに関するファイルを維持する。これにより、再度、当該対応処理制御プログラムに関連付けられたジョブをジョブ送信装置14から受信した場合、実行制御部66は、ブートプログラム54の実行、及び、対応処理制御プログラムの展開処理を行うことなく、当該ジョブの対象データに対する処理を実行することができる。
【0091】
第2の方法として、プログラム処理部68は、対象データに対する処理の完了後に、メモリ52上に展開した対応処理制御プログラムに関するファイルは削除するが、対応処理制御プログラム自体はプログラムスプール58に格納しておく。例えば、対応処理制御プログラムがインストーラ形式である場合、プログラム処理部68は、対応処理制御プログラムをメモリ52からアンインストールして、インストーラをプログラムスプール58に格納する。また、対応処理制御プログラムがアーカイブ形式である場合、プログラム処理部68は、メモリ52に展開した対応処理制御プログラムに関するファイル削除して、アーカイブファイルをプログラムスプール58に格納する。これにより、再度、当該対応処理制御プログラムに関連付けられたジョブをジョブ送信装置14から受信した場合、情報処理装置16は、再度、当該対応処理制御プログラムを取得する処理を行う必要なく、当該ジョブの対象データに対する処理を実行することができる。
【0092】
また、プログラム処理部68は、対象データに対する処理の完了後に、対応処理制御プログラムをメモリ52から削除してもよい。具体的には、対象データに対する処理が完了した後に、メモリ52上に展開した対応処理制御プログラムに関するファイルを削除し、対象処理制御プログラム自体もプログラムスプール58に格納せずに削除するようにしてもよい。例えば、対応処理制御プログラムがインストーラ形式である場合、プログラム処理部68は、対応処理制御プログラムをメモリ52からアンインストールし、且つ、インストーラもプログラムスプール58に格納せずに削除する。また、対応処理制御プログラムがアーカイブ形式である場合、プログラム処理部68は、メモリ52に展開した対応処理制御プログラムに関するファイル削除し、且つ、アーカイブファイルをプログラムスプール58に格納せずに削除する。これにより、メモリ52の空き容量を増大させることができる。
【0093】
プログラム処理部68が、対象データに対する処理の完了後に対応処理制御プログラムをメモリ52に保持するか、メモリ52から削除するか、あるいは、保持する場合にどのような方法で保持するかは、当該ジョブに係るユーザの指示により決定されてよい。あるいは、情報処理装置16において、情報処理装置16の管理者などによって予め定められた設定に応じて、プログラム処理部68が実行する処理が決定されてもよい。
【0094】
保持プログラム通知部70は、プログラム処理部68により対応処理制御プログラムがメモリ52に保持された場合、メモリ52に保持されている対応処理制御プログラムを示す保持プログラム情報をジョブ送信装置14に送信する。保持プログラム情報は、メモリ52に保持されている対応処理制御プログラムを示すプログラムIDであってよい。保持プログラム通知部70は、保持プログラム情報を間欠的に(例えば定期的に)ジョブ送信装置14に送信してもよいし、ジョブ送信装置14からの要求に応じて保持プログラム情報をジョブ送信装置14に送信するようにしてもよい。
【0095】
好適には、保持プログラム情報には、メモリ52における対応処理制御プログラムの保持状態が示されているとよい。具体的には、対応処理制御プログラムがメモリ52に展開したままの状態であるか、あるいは、メモリ52上に展開した対応処理制御プログラムに関するファイルは削除されており対応処理制御プログラム自体がプログラムスプール58に格納されている状態であるかが示されているとよい。
【0096】
ジョブ送信装置14が情報処理装置16から保持プログラム情報を受信した場合、保持プログラム情報と、当該保持プログラム情報の送信元である情報処理装置16を識別する装置識別子とを関連付けてメモリ32に記憶しておく。例えば、ジョブ送信装置14は、保持プログラム情報に基づいて、
図3に示したプログラムDB35を更新することで、情報処理装置16のプログラムの保持状態を管理することができる。すなわち、保持プログラム情報に含まれるプログラムIDに基づいて、
図3の保持の有無の項目を更新することができる。そして、ジョブ送信装置14の送信制御部46は、ある情報処理装置16に送信するジョブ(ここでは「他のジョブ」と記載する)に対応する対応処理制御プログラムが、当該情報処理装置16に関連付けられた保持プログラム情報に示されるものである場合、換言すれば、他のジョブに対応する対応処理制御プログラムが当該情報処理装置16のメモリ52に保持されている場合には、当該他のジョブに対応する対応処理制御プログラムを当該情報処理装置16に送信しないようにしてもよい。情報処理装置16の実行制御部66は、メモリ52に保持している当該対応処理制御プログラムを実行して他のジョブの対象データに対する処理を実行する。
【0097】
具体的には、保持プログラム情報において、対応処理制御プログラムがメモリ52に展開したままの状態であることが示されている場合、ジョブ送信装置14の送信制御部46は、他のジョブのみを情報処理装置16に送信することができる。情報処理装置16の実行制御部66は、メモリ52に展開済みの当該対応処理制御プログラムを実行して他のジョブの対象データに対する処理を実行する。
【0098】
一方、保持プログラム情報において、メモリ52上に展開した対応処理制御プログラムに関するファイルは削除されており対応処理制御プログラム自体がプログラムスプール58に格納されている状態であることが示されている場合、ジョブ送信装置14の送信制御部46は、他のジョブと、当該対応処理制御プログラムを示すプログラムIDを情報処理装置16に送信する。情報処理装置16の実行制御部66は、ジョブ送信装置14から受信したプログラムIDに基づいてプログラムスプール58から対応処理制御プログラムを特定する。そして、実行制御部66は、ブートプログラム54を実行し、特定した対応処理制御プログラムをメモリ52に展開した上で、展開した当該対応処理制御プログラムを実行して他のジョブの対象データに対する処理を実行する。
【0099】
他の例として、ジョブ送信装置14が、情報処理装置16の保持プログラム情報に基づいて、対応処理制御プログラムを当該情報処理装置が保持していない場合には、処理対象のデータとともに対象処理制御プログラムを情報処理装置16に送信する。
【0100】
また、ジョブ送信装置14から、他のジョブ、及び、当該他のジョブに対応する対応処理制御プログラムを示すプログラムIDを受信した場合、情報処理装置16のプログラム取得部64は、当該プログラムIDが示す対応処理制御プログラムがメモリ52に保持されているか否かを判定する。当該プログラムIDが示す対応処理制御プログラムがメモリ52に保持されている場合、プログラム取得部64は、改めて当該対応制御プログラムをプログラムリポジトリ34から取得する処理を行わずに、メモリ52に保持された当該対応処理制御プログラムを実行することで、当該他のジョブに含まれる対象データに対する処理を実行するようにしてもよい。なお、言うまでもなく、当該プログラムIDが示す対応処理制御プログラムがメモリ52に保持されていない場合、プログラム取得部64は、当該対応制御プログラムをプログラムリポジトリ34から取得した上で、当該対応処理制御プログラムを実行することで、当該他のジョブに含まれる対象データに対する処理を実行する。
【0101】
本実施形態に係る情報処理システム10の概要は以上の通りである。情報処理システム10においては、ジョブ送信装置14において、情報処理装置16に送信されるジョブに対応する対応処理制御プログラムが特定される。そして、情報処理装置16は、当該対応処理制御プログラムを取得した上で、当該対応処理制御プログラムを実行することで、当該ジョブに含まれる対象データに対する処理を実行する。このような仕組みであるから、対応処理制御プログラムとしては、当該ジョブに必要な機能を発揮できれば足り、情報処理装置16が実行し得る全ての機能を発揮可能となっている必要はない。つまり、情報処理装置16が実行し得る全ての機能を発揮可能な処理制御プログラムよりも、対応処理制御プログラムのデータサイズを低減することができる。したがって、本実施形態によれば、情報処理装置16が実行し得る全ての機能を発揮可能な処理制御ログラムが情報処理装置16のメモリ52に記憶される場合に比して、対応処理制御プログラムを記憶させるためのメモリ52の記憶領域を低減することができる。
【0102】
また、対応処理制御プログラムは、ジョブに対応して特定されるから、ユーザは、ジョブに対応した対応処理制御プログラムを用いて、当該ジョブに含まれる対象データに対する処理を実行させることができる。例えば、ユーザは、ジョブ毎に、自分の好みに合った対応処理制御プログラム、あるいは、対象データに合った対応処理制御プログラムを用いて、対象データに対する処理を実行させることができる。
【0103】
また、ある処理制御プログラム(あるいはモジュール)の複数のバージョンが存在する場合、ユーザは、必ずしも最新のバージョンを使用する必要はなく、ユーザの好みのバージョンを使用することが可能となる。いわば、マルチバージョン運用が可能となる。これに伴い、情報処理装置16側において、処理制御プログラム(あるいはモジュール)のバージョン管理(例えば常に処理制御プログラムを最新のバージョンに維持しておく管理など)を行う必要がなくなるという効果も奏する。
【0104】
以下、
図10に示すフローチャートに従って、情報処理システム10の処理の一例の流れを説明する。
【0105】
ステップS10において、ジョブ送信装置14は、ユーザからジョブを受け付ける。例えば、通信インターフェース30は、ユーザ端末12からジョブを受信する。
【0106】
ステップS12において、プログラム特定部44は、ステップS10で受信したジョブに対応する対応処理制御プログラムを特定する。また、情報処理システム10が複数の情報処理装置16を有している場合には、プログラム特定部44は、当該ジョブの送信先の情報処理装置16を特定する。
【0107】
ステップS14において、プロセッサ40は、ステップS10で受信したジョブをジョブスプール38に格納する。当該ジョブには管理情報が関連付けられる。管理情報には、ステップS12で特定された対応処理制御プログラムを示すプログラムID、及び、当該ジョブの送信先の情報処理装置16を示す指定装置情報が含まれる。
【0108】
ステップS16において、プロセッサ40は、ユーザあるいはジョブスケジューラなどからステップS10で受信したジョブの送信指示を受け付ける。
【0109】
ステップS18において、送信制御部46は、ステップS16で送信指示を受けたジョブと、当該ジョブの対応処理制御プログラムとを連結したジョブファイルを生成する。
【0110】
ステップS20において、送信制御部46は、ステップS18で生成したジョブファイルを情報処理装置16に送信する。
【0111】
ステップS22において、情報処理装置16のファイル分離部62は、ステップS20で受信したジョブファイルを分離して、ジョブと対応処理制御プログラムを取得する。
【0112】
ステップS24において、プロセッサ60はステップS22で取得したジョブをジョブスプール56に格納する。
【0113】
ステップS26において、実行制御部66は、ブートプログラム54を実行してメモリ52上に土台を形成した後、ステップS22で取得した対応処理制御プログラムをメモリ52上に展開する。
【0114】
ステップS28において、実行制御部66は、メモリ52上に展開した対応処理制御プログラムを実行することで、当該ジョブに含まれる対象データに対する処理を実行する。
【0115】
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
【符号の説明】
【0116】
10 情報処理システム、12 ユーザ端末、14 ジョブ送信装置、16 情報処理装置、30,50 通信インターフェース、32,52 メモリ、34 プログラムリポジトリ、36 ユーザDB、38,56 ジョブスプール、40,60 プロセッサ、42 ユーザ特定部、44 プログラム特定部、46 送信制御部、54 ブートプログラム、58 プログラムスプール、62 ファイル分離部、64 プログラム取得部、66 実行制御部、68 プログラム処理部、70 保持プログラム通知部。