(57)【要約】【課題】第１の命令から生成された文字列と第２の命令に付加された文字列とが対応しない場合に、第２の命令が実行されるのを防止する【解決手段】制御部３０１は、生成されたハッシュ値と対象コマンドに付加されたハッシュ値とが対応するか否かを判断する（ステップＳＢ６）。２つのハッシュ値が対応すると判断された場合（ＳＢ６：ＹＥＳ）、制御部３０１は、対象コマンドを実行する（ステップＳＢ７）。２つのハッシュ値が対応しないと判断された場合（ＳＢ６：ＮＯ）、制御部３０１は、対象コマンドを破棄する（ステップＳＢ８）。【選択図】図１１
2015176341.tif 000002
【特許請求の範囲】
【請求項１】
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表され、前記第１の命令から生成された文字列が付加された第２の命令とを取得する取得手段と、
前記第１の命令から文字列を生成する生成手段と、
前記第２の命令に付加された文字列と前記生成手段により生成された文字列とが対応しない場合、前記第２の命令を破棄する破棄手段と
を有する情報処理装置。
【請求項２】
前記第２の命令に付加された文字列と前記生成手段により生成された文字列とが対応する場合、前記第２の命令を実行する実行手段
を有する請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、外部装置によって書き換えられた前記第１の命令と、前記外部装置によって書き換えられていない前記第２の命令とを取得する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第１の命令と前記第２の命令とは互いに異なる意味内容を示す
ことを特徴とする請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項５】
前記文字列は、ハッシュ値である
ことを特徴とする請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成する命令生成手段と、
前記第１の命令から文字列を生成する生成手段と、
前記第１の命令と、前記生成手段により生成された文字列が付加された前記第２の命令とを送信する送信手段と
を有する情報処理装置。
【請求項７】
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成する命令生成手段と、
前記第１の命令から文字列を生成する第１生成手段と、
前記第１の命令と、前記第１生成手段により生成された文字列が付加された前記第２の命令とを送信する送信手段と
を有する第１の情報処理装置と、
前記送信手段により送信された前記第１の命令と、前記第２の命令とを取得する取得手段と、
前記第１の命令から文字列を生成する第２生成手段と、
前記第２の命令に付加された文字列と前記第２生成手段により生成された文字列とが対応しない場合、前記第２の命令を破棄する破棄手段と
を有する第２の情報処理装置と
を有する情報処理システム。
【請求項８】
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表され、前記第１の命令から生成された第１の文字列が付加された第２の命令とを取得するステップと、
前記第１の命令から第２の文字列を生成するステップと、
前記第１の文字列と前記第２の文字列とが対応しない場合、前記第２の命令を破棄するステップと
を有する情報処理方法。
【請求項９】
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成するステップと、
前記第１の命令から文字列を生成するステップと、
前記第１の命令と、生成された文字列が付加された前記第２の命令とを送信するステップと
を有する情報処理方法。
【請求項１０】
コンピュータに、
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表され、前記第１の命令から生成された第１の文字列が付加された第２の命令とを取得するステップと、
前記第１の命令から第２の文字列を生成するステップと、
前記第１の文字列と前記第２の文字列とが対応しない場合、前記第２の命令を破棄するステップと
を実行させるためのプログラム。
【請求項１１】
コンピュータに、
第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成するステップと、
前記第１の命令から文字列を生成するステップと、
前記第１の命令と、生成された文字列が付加された前記第２の命令とを送信するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
ジョブ制御言語により記述されたコマンドを情報処理装置に実行させることが知られている。特許文献１には、プリンタからコード体系情報を取得したＰＣが、プリンタのコード体系でユーザ情報を送信し、プリンタにおける文字化けを防止する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１１８１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、第１の命令から生成された文字列と第２の命令に付加された文字列とが対応しない場合に、第２の命令が実行されるのを防止することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に係る情報処理装置は、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表され、前記第１の命令から生成された文字列が付加された第２の命令とを取得する取得手段と、前記第１の命令から文字列を生成する生成手段と、前記第２の命令に付加された文字列と前記生成手段により生成された文字列とが対応しない場合、前記第２の命令を破棄する破棄手段とを有する。
【０００６】
請求項２に係る情報処理装置は、請求項１に記載の構成において、前記第２の命令に付加された文字列と前記生成手段により生成された文字列とが対応する場合、前記第２の命令を実行する実行手段を有する。
【０００７】
請求項３に係る情報処理装置は、請求項１または２に記載の構成において、前記取得手段は、外部装置によって書き換えられた前記第１の命令と、前記外部装置によって書き換えられていない前記第２の命令とを取得することを特徴とする。
【０００８】
請求項４に係る情報処理装置は、請求項１ないし３のいずれか１項に記載の構成において、前記第１の命令と前記第２の命令とは互いに異なる意味内容を示すことを特徴とする。
【０００９】
請求項５に係る情報処理装置は、請求項１ないし４のいずれか１項に記載の構成において、前記文字列は、ハッシュ値であることを特徴とする。
【００１０】
請求項６に係る情報処理装置は、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成する命令生成手段と、前記第１の命令から文字列を生成する生成手段と、前記第１の命令と、前記生成手段により生成された文字列が付加された前記第２の命令とを送信する送信手段とを有する。
【００１１】
請求項７に係る情報処理システムは、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成する命令生成手段と、前記第１の命令から文字列を生成する第１生成手段と、前記第１の命令と、前記第１生成手段により生成された文字列が付加された前記第２の命令とを送信する送信手段とを有する第１の情報処理装置と、前記送信手段により送信された前記第１の命令と、前記第２の命令とを取得する取得手段と、前記第１の命令から文字列を生成する第２生成手段と、前記第２の命令に付加された文字列と前記第２生成手段により生成された文字列とが対応しない場合、前記第２の命令を破棄する破棄手段とを有する第２の情報処理装置とを有する。
【００１２】
請求項８に係る情報処理方法は、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表され、前記第１の命令から生成された第１の文字列が付加された第２の命令とを取得するステップと、前記第１の命令から第２の文字列を生成するステップと、前記第１の文字列と前記第２の文字列とが対応しない場合、前記第２の命令を破棄するステップとを有する。
【００１３】
請求項９に係る情報処理方法は、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成するステップと、前記第１の命令から文字列を生成するステップと、前記第１の命令と、生成された文字列が付加された前記第２の命令とを送信するステップとを有する。
【００１４】
請求項１０に係るプログラムは、コンピュータに、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表され、前記第１の命令から生成された第１の文字列が付加された第２の命令とを取得するステップと、前記第１の命令から第２の文字列を生成するステップと、前記第１の文字列と前記第２の文字列とが対応しない場合、前記第２の命令を破棄するステップとを実行させる。
【００１５】
請求項１１に係るプログラムは、コンピュータに、第１の命令と、前記第１の命令に対応し、前記第１の命令とは異なる文字コードで表された第２の命令とを生成するステップと、前記第１の命令から文字列を生成するステップと、前記第１の命令と、生成された文字列が付加された前記第２の命令とを送信するステップとを実行させる。
【発明の効果】
【００１６】
請求項１、７、８、および１０に係る発明によれば、第１の命令から生成された文字列と第２の命令に付加された文字列とが対応しない場合に、第２の命令が実行されることが防止される。
請求項２に係る発明によれば、第１の命令から生成された文字列と第２の命令に付加された文字列とが対応する場合に、第２の命令が破棄されることが防止される。
請求項３に係る発明によれば、第２の命令が実行されることが防止される。
請求項４に係る発明によれば、第１の命令および第２の命令のうちいずれか一方の命令により、他方の命令では示せない意味内容が示される。
請求項５に係る発明によれば、第１の命令から生成されたハッシュ値と第２の命令に付加されたハッシュ値とが対応しない場合に、第２の命令が実行されることが防止される。
請求項６、９、および１１に係る発明によれば、第１の命令の文字コードおよび第２の命令の文字コードのうち少なくとも一方の文字コードに対応する情報処理装置に、命令を実行させることができる。
【図面の簡単な説明】
【００１７】
【図１】画像処理システムの全体構成を示す図
【図２】ＰＣの機能的構成を示すブロック図
【図３】画像形成装置の機能的構成を示すブロック図
【図４】ＰＣのハードウェア構成を示すブロック図
【図５】サーバ装置のハードウェア構成を示すブロック図
【図６】画像形成装置のハードウェア構成を示すブロック図
【図７】ジョブ制御コマンドを送信する処理を示すフローチャート
【図８】ジョブ制御コマンドを例示する図
【図９】ジョブ制御コマンドを書き換える処理の概要を例示する図
【図１０】ジョブ制御コマンドを書き換える処理の具体例を示す図
【図１１】ジョブ制御コマンドを取得したときの処理を示すフローチャート
【図１２】変形例１に係るジョブ制御コマンドを例示する図
【図１３】変形例１２に係るジョブ制御コマンドを例示する図
【発明を実施するための形態】
【００１８】
図１は、本発明の一実施形態に係る画像処理システム１の全体構成を示す図である。画像処理システム１（情報処理システムの一例）は、画像データに関する各種の情報処理を行うためのシステムである。画像処理システム１は、パーソナルコンピュータ１０（以下、「ＰＣ１０」という）と、サーバ装置２０と、画像形成装置３０とを有する。ＰＣ１０は、画像形成装置３０に対するコマンド（命令）を送信する情報処理装置である。画像形成装置３０の利用を包括的に管理するため、画像形成装置３０は、特定の装置（この例ではサーバ装置２０）からのコマンドのみを受け付けるように設定されている。したがって、ＰＣ１０は、画像形成装置３０に対するコマンドをサーバ装置２０に送信する。サーバ装置２０は、ＰＣ１０から送信されたコマンドを、画像形成装置３０に中継する。
【００１９】
ＰＣ１０が送信するコマンドには、描画を指示するための言語（ページ記述言語）で記述されたコマンド（以下、「描画コマンド」という）と、ページ記述言語により描画される文書の作成者および文書名、並びに画像形成装置３０を利用する権限に関する認証情報などの付加情報を示すための言語（ジョブ制御言語）で記述されたコマンド（以下、「ジョブ制御コマンド」という）とがある。図１の例で、ＰＣ１０は、ジョブ制御言語について、第１の文字コードと、第１の文字コードとは異なる第２の文字コードの両方に対応している。第１の文字コードは、例えば、Shift JISなどの単一の言語に対応する文字コードである。以下では、第１の文字コードを「非拡張文字コード」と表現する。第２の文字コードは、例えば、Unicodeなどの複数の言語に対応する文字コードである。以下では、第２の文字コードを「拡張文字コード」と表現する。
【００２０】
サーバ装置２０（外部装置の一例）は、画像形成装置３０におけるコマンドの実行を管理する装置である。サーバ装置２０は、ＰＣ１０から取得した描画コマンドおよびジョブ制御コマンドを画像形成装置３０に中継する。図１において、サーバ装置２０は、画像形成装置３０にコマンドを実行させる目的で、ＰＣ１０から取得した複数のジョブ制御コマンドのうち少なくとも一部のジョブ制御コマンドを書き換える。例えば、画像形成装置３０が、ジョブ制御コマンドに特定のユーザ名が記述されたコマンドのみを実行するように設定されている場合であって、ＰＣ１０から取得したジョブ制御コマンドに記載されたユーザ名が特定のユーザ名でないとき、サーバ装置２０は、ユーザ名を特定のユーザ名に書き換える。これにより、本来、画像形成装置３０でコマンドが実行されることがないユーザ名のユーザが画像形成装置３０を利用しようとする場合に、特定のユーザ名が用いられてコマンドが実行される。別の例で、画像形成装置３０が、ジョブ制御コマンドに予め定められた文字数以下の文書名が記述されたコマンドのみを実行するように設定されている場合であって、ＰＣ１０から取得したジョブ制御コマンドに当該文字数を超える文書名が記述されているとき、サーバ装置２０は、文書名を当該文字数以下の文書名に書き換える。これにより、本来、画像形成装置３０でコマンドが実行されることがない文書名が記述されたジョブ制御コマンドがＰＣ１０から取得された場合に、予め定められた文字数以下の文書名でコマンドが実行される。なお、サーバ装置２０には、ジョブ制御コマンドを書き換えるためのデータ（例えば、書き換えの前後のジョブ制御コマンドの対応関係を示すデータ）が記憶されており、サーバ装置２０は、当該データに応じてジョブ制御コマンドを書き換える。図１の例で、サーバ装置２０は、非拡張文字コードに対応し、且つ、拡張文字コードに対応していない装置である。
【００２１】
画像形成装置３０は、複写機、プリンタ、スキャナ、およびファクシミリなどとして機能する情報処理装置である。画像形成装置３０は、サーバ装置２０から取得した描画コマンドおよびジョブ制御コマンドを実行する。図１の例で、画像形成装置３０は、非拡張文字コードと拡張文字コードの両方に対応している。ＰＣ１０、サーバ装置２０、および画像形成装置３０は、インターネットなどの通信回線Ｎを介して相互に接続されている。
【００２２】
図１に示した画像処理システム１においては、次のような問題が起こる可能性がある。いま、以下のような状況を考える。ＰＣ１０は、拡張文字コードで記述された複数のジョブ制御コマンドをサーバ装置２０に送信する。サーバ装置２０は、拡張文字コードに対応していないため、ＰＣ１０から取得した複数のジョブ制御コマンドのうち少なくとも一部のコマンドを非拡張文字コードで記述されたコマンドに書き換え、書き換え後のジョブ制御コマンドを画像形成装置３０に出力する。画像形成装置３０は、サーバ装置２０から取得した複数のジョブ制御コマンドを拡張文字コードで読み取り実行する。この場合、複数のジョブ制御コマンドには非拡張文字コードで記述されたジョブ制御コマンドが含まれているため、拡張文字コードで読み取られると誤動作（いわゆる文字化け）が発生する。画像処理システム１は、拡張文字コードに対応していないサーバ装置２０を介してジョブ制御コマンドが送信される場合に、画像形成装置３０において誤動作が発生することを防止する。以下では、非拡張文字コードで記述されたジョブ制御コマンドを「第１のコマンド」と表現し、拡張文字コードで記述されたジョブ制御コマンドを「第２のコマンド」と表現する。
【００２３】
図２は、ＰＣ１０の機能的構成を示すブロック図である。ＰＣ１０は、コマンド生成手段１１と、第１生成手段１２と、送信手段１３とを有する。コマンド生成手段１１は、第１のコマンドと、当該第１のコマンドに対応する第２のコマンドとを生成する。第１生成手段１２は、第１のコマンドから文字列を生成する。文字列は、元のコマンドに対して予め定められた計算を実行することにより導出される固有のデータであり、同じコマンドからは同じ文字列が生成され、異なるコマンドからは異なる文字列が生成される。送信手段１３は、第１のコマンドと、第１生成手段１２により生成された文字列が付加された第２のコマンドとを送信する。
【００２４】
図３は、画像形成装置３０の機能的構成を示すブロック図である。画像形成装置３０は、取得手段３１と、第２生成手段３２と、判定手段３３と、破棄手段３４と、実行手段３５とを有する。取得手段３１は、第１のコマンドと第２のコマンドとを取得する。第２生成手段３２は、第１のコマンドから文字列を生成する。判定手段３３は、第２のコマンドに付加された文字列と、第２生成手段３２により生成された文字列とが対応するか否かを判定する。破棄手段３４は、第２のコマンドに付加された文字列と、第２生成手段３２により生成された文字列とが対応しないと判定された場合、第２のコマンドを破棄し、第１のコマンドを実行する。なお、ここでいう「破棄」とは、取得された第２のコマンドを実行しないことをいい、第２のコマンドが消去されない場合も含まれる。実行手段３５は、第２のコマンドに付加された文字列と、第２生成手段３２により生成された文字列とが対応すると判定された場合、第２のコマンドを実行する。
【００２５】
図４は、ＰＣ１０のハードウェア構成を示すブロック図である。同図に示したように、ＰＣ１０は、制御部１０１と、記憶部１０２と、通信部１０３と、表示部１０４と、入力部１０５とを備えるコンピュータである。また、ＰＣ１０の各部は、バス１０６に接続されており、このバス１０６を介して各種データの授受を行う。
【００２６】
制御部１０１は、ＰＣ１０の各部の動作を制御する手段である。制御部１０１は、ＣＰＵ（Central Processing Unit）などの演算処理装置と、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記録媒体（主記憶装置）とを備える。記憶部１０２は、データを記憶する手段である。記憶部１０２は、ハードディスク、フラッシュメモリなどの記録媒体（補助記憶装置）を備え、通信部１０３で受信したデータを記憶する。通信部１０３は、データを送受信する手段である。通信部１０３は、通信回線Ｎに接続されており、通信回線Ｎに接続されている他の装置と通信を行う通信インターフェースとして機能する。表示部１０４は、情報を表示する手段、例えば液晶ディスプレイである。入力部１０５は、ユーザによる入力を受け付ける装置であり、キーボード、マウス、および各種ボタン等を備える。
【００２７】
図４において、プログラムを実行している制御部１０１は、コマンド生成手段１１および第１生成手段１２の一例である。プログラムを実行している制御部１０１により制御されている通信部１０３は、送信手段１３の一例である。
【００２８】
図５は、サーバ装置２０のハードウェア構成を示すブロック図である。同図に示したように、サーバ装置２０は、制御部２０１と、記憶部２０２と、通信部２０３とを備えるコンピュータである。また、サーバ装置２０の各部は、バス２０４に接続されており、このバス２０４を介して各種データの授受を行う。
【００２９】
制御部２０１は、サーバ装置２０の各部の動作を制御する手段である。制御部２０１は、ＣＰＵなどの演算処理装置と、ＲＯＭ、ＲＡＭなどの記録媒体（主記憶装置）とを備える。記憶部２０２は、データを記憶する手段である。記憶部１０２は、ハードディスク、フラッシュメモリなどの記録媒体（補助記憶装置）を備え、通信部２０３で受信したデータを記憶する。通信部２０３は、データを送受信する手段である。通信部２０３は、通信回線Ｎに接続されており、通信回線Ｎに接続されている他の装置と通信を行う通信インターフェースとして機能する。
【００３０】
図６は、画像形成装置３０のハードウェア構成を示すブロック図である。同図に示したように、画像形成装置３０は、制御部３０１と、記憶部３０２と、操作部３０３と、表示部３０４と、画像読取部３０５と、画像形成部３０６と、通信部３０７と、画像処理部３０８とを備える。また、画像形成装置３０の各部は、バス３０９に接続されており、このバス３０９を介して各種データの授受を行う。
【００３１】
制御部３０１は、画像形成装置３０の各部の動作を制御する手段である。制御部３０１は、ＣＰＵなどの演算処理装置と、ＲＯＭ、ＲＡＭなどの記録媒体（主記憶装置）とを備える。ＣＰＵは、ＲＯＭに記憶されているプログラムを読み出し、ＲＡＭを作業エリアにしてプログラムを実行する。制御部３０１は、このようにプログラムを実行することにより、用紙に画像を形成すること、文書を読み取って文書の画像データを生成すること、通信回線Ｎを介して他の装置と通信を行うことなどを実現する。
【００３２】
記憶部３０２は、データを記憶する手段である。記憶部３０２は、ハードディスク、フラッシュメモリなどの記録媒体（補助記憶装置）を備え、通信部３０７で受信したデータや画像形成装置３０で生成されたデータなどを記憶する。また、記憶部３０２は、いわゆるメモリーカードやＵＳＢ（Universal Serial Bus）メモリなどの着脱可能な記録媒体（リムーバブルメディア）と、その記録媒体にデータを読み書きする手段とを含んでもよい。
【００３３】
操作部３０３は、ユーザの操作を受け付ける手段である。操作部３０３は、操作子（ボタン、キーなど）を備え、押下された操作子に応じた制御信号を制御部３０１に供給する。また、操作部３０３は、表示部３０４と、表示部３０４の表示面に重ねて設けられたセンサとを備え、押圧した位置に応じた制御信号を制御部３０１に供給するタッチパネルによって構成されてもよい。
【００３４】
表示部３０４は、情報を表示する手段である。表示装置として例えば液晶ディスプレイを有している。表示部３０４は、制御部３０１の制御の下、画像形成装置３０を操作するためのメニュー画面や画像形成装置３０に関するデータなどを表示する。
【００３５】
画像読取部３０５は、原稿を読み取って画像データに変換する手段である。画像読取部３０５は、原稿を光学的に読み取り、読み取った原稿の画像を表す画像データを生成する画像読取装置を備えている。画像読取部３０５は、生成した画像データを画像処理部３０８に供給する。
【００３６】
画像形成部３０６は、画像を形成する手段である。画像形成部３０６は、電子写真方式によって紙などの記録媒体にトナー像を形成する画像形成機構を具備している。なお、画像形成機構は、電子写真方式に限らず、インクジェット方式などの他の記録方式が用いられてもよい。
【００３７】
通信部３０７は、データを送受信する手段である。通信部３０７は、通信回線Ｎに接続されており、通信回線Ｎに接続されている他の装置と通信を行う通信インターフェースとして機能する。
【００３８】
画像処理部３０８は、画像データに対して画像処理を実行する手段である。ここでいう画像処理とは、例えば、色補正や階調補正である。画像処理部３０８は、画像処理が施された画像データを画像形成部３０６に供給する。
【００３９】
図６において、プログラムを実行している制御部３０１により制御されている通信部３０７は、取得手段３１の一例である。プログラムを実行している制御部３０１は、第２生成手段３２、判定手段３３、破棄手段３４、および実行手段３５の一例である。
【００４０】
図７は、ＰＣ１０がジョブ制御コマンドを送信する処理を示すフローチャートである。図７において、ＰＣ１０には、画像形成装置３０を制御するためのプログラム（ドライバ）が予めインストールされている。ドライバには、第１のコマンドからハッシュ値（文字列の一例）を生成するためのアルゴリズムが定義されている。以下の処理は、画像形成装置３０が提供する機能を利用するための指示（以下、「利用指示」という）がＰＣ１０に入力されたことを契機として開始される。利用指示は、例えば、ユーザが入力部１０５を操作することにより入力される。なお、ＰＣ１０は、図７に示す処理とは別の図示せぬ処理により描画コマンドを画像形成装置３０に送信する。
【００４１】
ステップＳＡ１において、制御部１０１は、利用される画像形成装置３０の機能に応じて、一または複数の第１のコマンドを生成する。制御部１０１は、生成された第１のコマンドをＲＡＭに記憶する。ステップＳＡ２において、制御部１０１は、生成された第１のコマンドに対応する一または複数の第２のコマンドを生成する。制御部１０１は、生成された第２のコマンドを、当該第２のコマンドの元になる第１のコマンドに対応付けてＲＡＭに記憶する。ステップＳＡ３において、制御部１０１は、ＲＡＭに記憶された第１のコマンドの各々からハッシュ値を生成する。ステップＳＡ４において、制御部１０１は、生成されたハッシュ値を第２のコマンドの各々に付加する。具体的には、制御部１０１は、第１のコマンドから生成されたハッシュ値を、当該第１のコマンドに対応する第２のコマンドに付加する。制御部１０１は、ハッシュ値が付加された第２のコマンドを再びＲＡＭに記憶する。ステップＳＡ５において、制御部１０１は、サーバ装置２０に複数のジョブ制御コマンドを順次送信する。具体的には、制御部１０１は、第１のコマンドの各々と第２のコマンドの各々とをＲＡＭから読み出してサーバ装置２０に順次送信する。
【００４２】
図８は、ＰＣ１０により送信されるジョブ制御コマンドを例示する図である。図８の例で、ＰＣ１０は、非拡張文字コードとしてShift JISに対応しており、拡張文字コードとしてUTF-8（Unicodeをエンコードする規格の一つ）に対応している。図８では、ＰＣ１０は、コマンドＣ５０１からＣ５０７の７つのジョブ制御コマンドを送信している。コマンドＣ５０１からＣ５０４は、Shift JISにより記述された第１のコマンドである。コマンドＣ５０１は、文字コードを指定するためのコマンドである。この例では、Shift JISが指定されている。コマンドＣ５０２は、ユーザ名を指定するためのコマンドである。コマンドＣ５０３は、ユーザドメイン名を指定するためのコマンドである。コマンドＣ５０４は、文書名を指定するためのコマンドである。
【００４３】
コマンドＣ５０５からＣ５０７は、UTF-8により記述された第２のコマンドである。図８の例で、第２のコマンドは、第１のコマンドよりも後に送信される。コマンドＣ５０５は、ユーザ名を指定するためのコマンドである。コマンドＣ５０５は、コマンドＣ５０２に対応するコマンドであり、コマンドＣ５０２から生成されたハッシュ値が付加されている。ここでいう「コマンドが対応する」とは、２つのコマンドが相当する意味内容（例えば、同じ意味内容）を示すことを表す。なお、対応するコマンドが異なる意味内容を示していてもよい。コマンドＣ５０６は、ユーザドメイン名を指定するためのコマンドである。コマンドＣ５０６は、コマンドＣ５０３に対応するコマンドであり、コマンドＣ５０３から生成されたハッシュ値が付加されている。コマンドＣ５０７は、文書名を指定するためのコマンドである。コマンドＣ５０７は、コマンドＣ５０４に対応するコマンドであり、コマンドＣ５０４から生成されたハッシュ値が付加されている。
【００４４】
図９は、サーバ装置２０がジョブ制御コマンドを書き換える処理の概要を例示する図である。図９は、図８に示したコマンドＣ５０１からＣ５０７がサーバ装置２０に入力され、コマンドＣ６０１からＣ６０７がサーバ装置２０から出力される様子を示している。図９において、サーバ装置２０は、Shift JISに対応し、且つ、UTF-8に対応していない装置である。図９の例で、サーバ装置２０は、コマンドＣ５０２およびＣ５０４を書き換えており、書き換え後のコマンドＣ６０２およびＣ６０４を画像形成装置３０に送信している。具体的には、コマンドＣ５０２において指定されたユーザ名を他のユーザ名（代替ユーザ名）に書き換えており、コマンドＣ５０４において指定された文書名を他の文書名（代替文書名）に書き換えている。サーバ装置２０は、また、コマンドＣ５０１、Ｃ５０３、Ｃ５０５、Ｃ５０６、およびＣ５０７を書き換えることなく、コマンドＣ６０１、Ｃ６０３、Ｃ６０５、Ｃ６０６、およびＣ６０７を画像形成装置３０に送信している。なお、この例で、サーバ装置２０は、コマンドＣ５０３には対応していないため、コマンドＣ５０３において指定されたユーザドメイン名は書き換えない。
【００４５】
図１０は、サーバ装置２０がジョブ制御コマンドを書き換える処理の具体例を示す図である。図１０は、図９と同様に、サーバ装置２０が、コマンドＣ５０２およびＣ５０４を書き換えた場合の例を示している。図１０では、ユーザ名について、コマンドＣ５０２で「Chen」が指定されており、コマンドＣ５０５で「陳」が指定されている。また、ユーザドメイン名について、コマンドＣ５０３で「対応しないドメイン名」が指定されており、コマンドＣ５０６で以下の式（１）に示す文字が指定されている。
【数１】
2015176341.tif 000003
式（１）に示す文字のうち第２文字目の文字は、Shift JISでは表現されない文字である。そのため、コマンドＣ５０３においては「対応しないドメイン名」という文字が指定されており、コマンドＣ５０３とＣ５０６とは、互いに異なる意味内容を示している。文書名については、コマンドＣ５０４とＣ５０７で「日本語版文書」が指定されている。
【００４６】
図１０において、サーバ装置２０は、コマンドＣ５０２で指定された「Chen」を「太郎」に書き換えて、コマンドＣ６０２を送信している。サーバ装置２０は、また、コマンドＣ５０４で指定された「日本語版文書」を「改定版文書」に書き換えて、コマンドＣ６０４を送信している。
【００４７】
図１１は、画像形成装置３０がジョブ制御コマンドを取得したときの処理を示すフローチャートである。以下の処理は、ジョブ制御コマンドが取得される度に繰り返し行われる。ステップＳＢ１において、制御部３０１は、サーバ装置２０からジョブ制御コマンドを取得する。以下では、ステップＳＢ１において新たに取得されたジョブ制御コマンドを「対象コマンド」と表現する。ステップＳＢ２において、制御部３０１は、対象コマンドが、文字コードの判断が必要なコマンドか否かを判断する。ステップＳＢ２の判断は、文字コードの判断が不要なコマンドを実行するために行われる。例えば、プリントの部数を指定するコマンドなど数字以外の文字を含まないコマンドは、文字コードの判断が不要なコマンドであると判断される。対象コマンドが、文字コードの判断が必要なコマンドであると判断された場合（ＳＢ２：ＹＥＳ）、制御部３０１は、処理をステップＳＢ３に移行する。対象コマンドが、文字コードの判断が不要なコマンドであると判断された場合（ＳＢ２：ＮＯ）、制御部３０１は、処理をステップＳＢ７に移行する。
【００４８】
ステップＳＢ３において、制御部３０１は、対象コマンドが第２のコマンドであるか否かを判断する。対象コマンドが第２のコマンドであると判断された場合（ＳＢ３：ＹＥＳ）、制御部３０１は、処理をステップＳＢ４に移行する。対象コマンドが第２のコマンドでないと判断された場合（ＳＢ３：ＮＯ）、制御部３０１は、処理をステップＳＢ７に移行する。
【００４９】
ステップＳＢ４において、制御部３０１は、対象コマンドに対応する第１のコマンド（以下、「対応コマンド」という）が取得されているか否かを判断する。具体的には、第１のコマンドと第２のコマンドとの対応関係（すなわち、ある第２のコマンドがどの第１のコマンドに対応するのかという情報）が予め画像形成装置３０に登録されており、制御部３０１は、当該対応関係に従って対応コマンドを特定し、対応コマンドが取得されているか否かを判断する。制御部３０１は、対象コマンドが取得される前の決められた時間内に、対応コマンドが取得されたか否かを判断する。対応コマンドが取得されていると判断された場合（ＳＢ４：ＹＥＳ）、制御部３０１は、処理をステップＳＢ５に移行する。対応コマンドが未だ取得されていないと判断された場合（ＳＢ４：ＮＯ）、制御部３０１は、処理をステップＳＢ７に移行する。
【００５０】
ステップＳＢ５において、制御部３０１は、対応コマンドからハッシュ値を生成する。例えば、図９または図１０に示した例で、対象コマンドがコマンドＣ６０５であるときには、制御部３０１は、コマンドＣ６０２からハッシュ値を生成する。別の例で、対象コマンドがコマンドＣ６０６であるときには、制御部３０１は、コマンドＣ６０３からハッシュ値を生成する。さらに別の例で、対象コマンドがコマンドＣ６０７であるときには、制御部３０１は、コマンドＣ６０４からハッシュ値を生成する。制御部３０１は、生成されたハッシュ値をＲＡＭに記憶する。ステップＳＢ６において、制御部３０１は、生成されたハッシュ値と対象コマンドに付加されたハッシュ値とが対応する（例えば、一致する）か否かを判断する。２つのハッシュ値が対応すると判断された場合（ＳＢ６：ＹＥＳ）、制御部３０１は、処理をステップＳＢ７に移行する。２つのハッシュ値が対応しないと判断された場合（ＳＢ６：ＮＯ）、制御部３０１は、処理をステップＳＢ８に移行する。
【００５１】
ステップＳＢ７において、制御部３０１は、対象コマンドを実行する。ステップＳＢ８において、制御部３０１は、対象コマンドを破棄する。
【００５２】
図９または図１０に示した例で、コマンドＣ６０１からＣ６０４は第２のコマンドでないため（ＳＢ３：ＮＯ）、実行される。コマンドＣ６０５については、コマンドＣ６０２が書き換えられたコマンドであるため、コマンドＣ６０２から生成されたハッシュ値とコマンドＣ６０５に付加されたハッシュ値（コマンドＣ５０２から生成されたハッシュ値）とは対応しない（ＳＢ６：ＮＯ）。したがって、コマンドＣ６０５は破棄される。コマンドＣ６０６については、コマンドＣ６０３が書き換えられたコマンドでないため、コマンドＣ６０３から生成されたハッシュ値とコマンドＣ６０６に付加されたハッシュ値とは対応する（ＳＢ６：ＹＥＳ）。したがって、コマンドＣ６０６は実行される。コマンドＣ６０７については、コマンドＣ６０４が書き換えられたコマンドであるため、コマンドＣ６０４から生成されたハッシュ値とコマンドＣ６０７に付加されたハッシュ値（コマンドＣ５０４から生成されたハッシュ値）とは対応しない（ＳＢ６：ＮＯ）。したがって、コマンドＣ６０７は破棄される。
【００５３】
以上の処理により、ＰＣ１０から画像形成装置３０にジョブ制御コマンドが送信される過程でサーバ装置２０が第１のコマンドを書き換えた場合に、当該第１のコマンドに対応する第２のコマンドが破棄され、第１のコマンド（第２のコマンドの対応コマンド）が実行される。したがって、サーバ装置２０による書き換えが反映されていない第２のコマンドが実行され、画像形成装置３０において誤動作が発生することが防止される。
【００５４】
本発明は、上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下で説明する変形例のうち、２つ以上のものが組み合わされて用いられてもよい。
【００５５】
（１）変形例１
ＰＣ１０は、第１のコマンドを送信せずに、第２のコマンドを送信してもよい。この場合、ＰＣ１０は、ハッシュ値の付加されていない第２のコマンドを送信してもよい。
【００５６】
図１２は、変形例１に係るジョブ制御コマンドを例示する図である。図１２において、ＰＣ１０は、ハッシュ値の付加されていない第２のコマンド（コマンドＣ７０１からＣ７０３）を送信している。変形例１においても、画像形成装置３０は図１１に示す処理を行ってもよい。この場合、制御部３０１は、図１１のステップＳＢ４において対応コマンドが取得されていないと判断し（ＳＢ４：ＮＯ）、対象コマンドを実行する。また、変形例１において、サーバ装置２０は、ＰＣ１０から第２のコマンドを取得すると、当該第２のコマンドに対応する第１のコマンドを生成し、第１のコマンドと第２のコマンドとを画像形成装置３０に送信してもよい。この場合、制御部３０１は、第１のコマンドを実行する（ステップＳＢ７）。また、この場合、第２のコマンドにハッシュ値自体が付加されていないため、制御部３０１は、図１１のステップＳＢ６においてハッシュ値が対応しないと判断し（ＳＢ６：ＮＯ）、第２のコマンドを破棄する。
【００５７】
（２）変形例２
画像処理システム１において、拡張文字コードに対応していない画像形成装置が用いられてもよい。拡張文字コードに対応していない画像形成装置は、第１のコマンドを実行し、第２のコマンドを破棄する。この場合においても、ＰＣ１０は図７に示す処理を行ってもよい。
【００５８】
（３）変形例３
画像処理システム１において、サーバ装置２０は設けられていなくてもよい。この場合においても、ＰＣ１０は図７に示す処理を行い、且つ、画像形成装置３０は図１１に示す処理を行ってもよい。
【００５９】
（４）変形例４
画像処理システム１において、非拡張文字コードと拡張文字コードの両方に対応しているサーバ装置が用いられてもよい。非拡張文字コードと拡張文字コードの両方に対応しているサーバ装置は、第１のコマンドと、当該第１のコマンドに対応する第２のコマンドとを書き換えてもよい。この場合においても、ＰＣ１０は図７に示す処理を行い、且つ、画像形成装置３０は図１１に示す処理を行ってもよい。
【００６０】
（５）変形例５
第１のコマンドから生成される文字列はハッシュ値に限らない。文字列は、第１のコマンドから導出される固有のデータであれば、いかなるデータであってもよい。例えば、第１のコマンドから導出されたバイナリデータが文字列として用いられてもよい。
【００６１】
（６）変形例６
非拡張文字コードおよび拡張文字コードは、実施形態に示した文字コードに限らない。例えば、非拡張文字コードとしてASCIIコードまたはGB2312コードが用いられてもよい。
【００６２】
（７）変形例７
第１のコマンドと第２のコマンドとが送信される順序は、実施形態に記載された順序に限らない。例えば、第２のコマンドは、第１のコマンドよりも前に送信されてもよい。この場合、図１１のステップＳＢ４において、制御部３０１は、予め定められた時間待機した後で、対象コマンドに対応する第１のコマンドが取得されているか否かを判断する。別の例で、第１のコマンドと第２のコマンドとは、交互に送信されてもよい。
【００６３】
（８）変形例８
ＰＣ１０は、３つ以上の文字コードで記述された複数のジョブ制御コマンドを送信してもよい。例えば、ＰＣ１０は、Shift JISで記述されたジョブ制御コマンドと、GB2312で記述されたジョブ制御コマンドと、Unicodeで記述されたジョブ制御コマンドとを送信してもよい。
【００６４】
（９）変形例９
ジョブ制御言語で記述される内容は、図８乃至図１０に示した内容に限らない。例えば、プリントの部数または文書の作成日時などの付加情報がジョブ制御言語により記述されていてもよい。
【００６５】
（１０）変形例１０
サーバ装置２０が書き換えるジョブ制御コマンドは、実施形態に記載したコマンドに限らない。サーバ装置２０は、例えば、コマンドＣ５０３により指定されたユーザドメイン名を書き換えてもよい。サーバ装置２０は、また、新たに第１のコマンドを生成し、画像形成装置３０に送信してもよい。
【００６６】
（１１）変形例１１
描画コマンドおよびジョブ制御コマンドを送信する情報処理装置は、ＰＣ１０に限らない。例えば、携帯電話機またはタブレット端末などの他の情報処理装置が描画コマンドおよびジョブ制御コマンドを送信してもよい。また、ＰＣ１０からサーバ装置２０を介して送信されたコマンドを処理する情報処理装置は、画像形成装置３０に限らない。例えば、画像形成装置３０に代えて、データの出力、データの保存、またはデータ形式の変換などの各種のサービスを提供する情報処理装置が用いられてもよい。
【００６７】
（１２）変形例１２
ＰＣ１０は、ハッシュ値が付加された第２のコマンドと、ハッシュ値が付加されていない第２のコマンドとを送信してもよい。
【００６８】
図１３は、変形例１２に係るジョブ制御コマンドを例示する図である。図１３において、ＰＣ１０は、第１のコマンド（コマンドＣ８０１からＣ８０４）と、第２のコマンド（コマンドＣ８０５からＣ８０７）とを送信している。図１３の例で、コマンドＣ８０５およびＣ８０６は、ハッシュ値が付加されていない第２のコマンドであり、コマンドＣ８０７は、ハッシュ値が付加された第２のコマンドである。なお、この例で、コマンドＣ８０４は、サーバ装置２０により書き換えられていないコマンドである。変形例１２において、画像形成装置３０は、第１のコマンドと第２のコマンドとを取得した場合であって、第２のコマンドにハッシュ値が付加されていないとき、コマンドごとに予め定めておいた優先順位（例えば、画像形成装置３０がジョブ制御コマンドを取得したタイミングで先優先または後優先など）に基づいて、第１のコマンドと第２のコマンドのいずれかを有効なコマンドとして実行してもよい。優先順位は、例えば、ユーザ名を示すジョブ制御コマンドについては時系列で先優先、ドメイン名を示すジョブ制御コマンドについては時系列で後優先、文書名を示すジョブ制御コマンドについては時系列で先優先と定義される。この例で、制御部３０１は、ユーザ名を示すジョブ制御コマンドについては優先順位に従って先優先と判断し、コマンドＣ８０２を有効なコマンドとして実行する。制御部３０１は、また、ドメイン名を示すジョブ制御コマンドについては優先順位に従って後優先と判断し、コマンドＣ８０６を有効なコマンドとして実行する。制御部３０１は、さらに、文書名を示すジョブ制御コマンドについてはハッシュ値が対応すると判断し（ＳＢ６：ＹＥＳ）、コマンドＣ８０７を実行する。
【００６９】
（１３）その他の変形例
画像処理システム１において用いられる各装置のハードウェア構成は、図４乃至図６に示した構成に限らない。図７および図１１に示した処理が実行されれば、各装置はどのようなハードウェア構成であってもよい。
【００７０】
実施形態において、ＰＣ１０および画像形成装置３０によって実行されるプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリ（フラッシュＲＯＭなど）などのコンピュータが読み取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットなどのネットワーク経由でダウンロードされてもよい。
【符号の説明】
【００７１】
１…画像処理システム、１０…ＰＣ、１１…コマンド生成手段、１２…第１生成手段、１３…送信手段、１０１…制御部、１０２…記憶部、１０３…通信部、１０４…表示部、１０５…入力部、１０６…バス、２０…サーバ装置、２０１…制御部、２０２…記憶部、２０３…通信部、２０４…バス、３０…画像形成装置、３１…取得手段、３２…第２生成手段、３３…判定手段、３４…破棄手段、３５…実行手段、３０１…制御部、３０２…記憶部、３０３…操作部、３０４…表示部、３０５…画像読取部、３０６…画像形成部、３０７…通信部、３０８…画像処理部、３０９…バス
【図１】
2015176341.tif 000004
【図２】
2015176341.tif 000005
【図３】
2015176341.tif 000006
【図４】
2015176341.tif 000007
【図５】
2015176341.tif 000008
【図６】
2015176341.tif 000009
【図７】
2015176341.tif 000010
【図８】
2015176341.tif 000011
【図９】
2015176341.tif 000012
【図１０】
2015176341.tif 000013
【図１１】
2015176341.tif 000014
【図１２】
2015176341.tif 000015
【図１３】
2015176341.tif 000016