IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コニカミノルタ株式会社の特許一覧

特許7447667ジョブデータを生成するためのプログラム、方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】ジョブデータを生成するためのプログラム、方法および装置
(51)【国際特許分類】
   G06F 3/12 20060101AFI20240305BHJP
   H04N 1/00 20060101ALI20240305BHJP
   H04L 67/02 20220101ALI20240305BHJP
   B41J 29/38 20060101ALI20240305BHJP
【FI】
G06F3/12 357
G06F3/12 328
G06F3/12 305
H04N1/00 127B
H04L67/02
B41J29/38 204
【請求項の数】 21
(21)【出願番号】P 2020081369
(22)【出願日】2020-05-01
(65)【公開番号】P2021176048
(43)【公開日】2021-11-04
【審査請求日】2023-02-16
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】益田 哲也
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2006-134043(JP,A)
【文献】特開2019-212056(JP,A)
【文献】特開2008-097574(JP,A)
【文献】特開2020-030697(JP,A)
【文献】特開2018-133018(JP,A)
【文献】特開2017-191399(JP,A)
【文献】特開2002-244835(JP,A)
【文献】特開2020-064472(JP,A)
【文献】特開2014-026562(JP,A)
【文献】特開2020-004159(JP,A)
【文献】特開2013-088890(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09- 3/12
B41J 5/00- 5/52
B41J 21/00-21/18
B41J 29/00-29/70
G03G 13/34
G03G 15/00
G03G 15/36
G03G 21/00-21/02
G03G 21/14
G03G 21/20
H04L 51/00-51/58
H04L 67/00-67/75
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
1以上のプロセッサーに命令を実行させるためのプログラムであって、
前記命令は、
外部の情報処理装置からジョブ設定画面コンテンツを受信するステップと、
前記ジョブ設定画面コンテンツに基づいて、ジョブ設定画面を生成するステップと、
前記ジョブ設定画面の入力を受け付けるステップと、
前記ジョブ設定画面の入力に基づいて、前記情報処理装置に対する設定データを生成するステップと、
前記設定データに基づいて、前記情報処理装置に所定の処理を実行させるためのジョブデータを生成するステップと、
前記情報処理装置に、前記ジョブデータを送信するステップとを含み、
前記設定データに基づいて、情報処理装置のジョブデータを生成するステップは、
前記ジョブデータを生成するための入力を受け付けるステップと、
当該入力に基づいて、前記情報処理装置から、制御コマンド定義情報を取得するステップと、
前記制御コマンド定義情報を参照して、前記設定データに含まれる設定値に対応する制御コマンドを取得するステップと、
前記制御コマンドを含む前記ジョブデータを生成するステップとを含み、
前記命令は、
前記情報処理装置から、前記制御コマンド定義情報と共に、ジョブデータの加工処理の拡張機能データを受信するステップと、
前記ジョブデータの加工処理の拡張機能データに基づいて、前記ジョブデータに加工処理を追加するステップとをさらに含む、プログラム。
【請求項2】
1以上のプロセッサーに命令を実行させるためのプログラムであって、
前記命令は、
外部の情報処理装置からジョブ設定画面コンテンツを受信するステップと、
前記ジョブ設定画面コンテンツに基づいて、ジョブ設定画面を生成するステップと、
前記ジョブ設定画面の入力を受け付けるステップと、
前記ジョブ設定画面の入力に基づいて、前記情報処理装置に対する設定データを生成するステップと、
前記設定データに基づいて、前記情報処理装置に所定の処理を実行させるためのジョブデータを生成するステップと、
前記情報処理装置に、前記ジョブデータを送信するステップと、
ネットワーク上の複数の情報処理装置を検出するステップと、
検出した前記複数の情報処理装置のいずれかを選択するステップと、
選択された情報処理装置が前回通信した情報処理装置と異なることに基づいて、前記選択された情報処理装置の前記設定データを生成するステップと、
前記前回通信した情報処理装置の設定データの一部または全てを前記選択された情報処理装置の前記設定データに引き継ぐステップとを含む、プログラム。
【請求項3】
前記命令は、ブラウザ機能を呼び出して前記ジョブ設定画面を表示するステップをさらに含み、
前記情報処理装置に対する設定データを生成するステップは、前記ジョブ設定画面に入力されたデータを前記ブラウザ機能から取得するステップを含む、請求項1または2に記載のプログラム。
【請求項4】
前記ジョブ設定画面の入力に基づいて、前記情報処理装置に対する前記設定データを生成するステップは、
前記ジョブ設定画面の設置値を含む構造化データを生成するステップと、
前記構造化データが含む各オブジェクト情報に基づいて、前記構造化データから前記設定データを生成するステップとを含む、請求項1~3のいずれかに記載のプログラム。
【請求項5】
前記構造化データが含む各オブジェクト情報に基づいて、前記構造化データから前記設定データを生成するステップは、
前記構造化データに含まれる第1の設定および第2の設定を取得するステップと、
前記設定データのオフセットを取得するステップと、
前記オフセットに基づいて、前記設定データの特定の位置に、前記第1の設定を書き込むステップと、
前記第1の設定の書き込み後に、前記オフセットを更新するステップと、
更新された前記オフセットに基づいて、前記設定データの前記第1の設定の書き込み領域の次の位置に、前記第2の設定を書き込むステップとを含む、請求項に記載のプログラム。
【請求項6】
前記構造化データは、JSON(JavaScript Object Notation)またはマークアップ言語によって定義される、請求項4または5に記載のプログラム。
【請求項7】
前記命令は、
前記ジョブ設定画面コンテンツに基づいて、デフォルトの第1の構造化データと、前記ジョブ設定画面から入力された設定を一時的に格納する第2の構造化データとを生成するステップと、
前記ジョブ設定画面での設定内容を保存する入力を受け付けたことに基づいて、前記第2の構造化データを前記構造化データとして保存するステップをさらに含む、請求項4~6のいずれかに記載のプログラム。
【請求項8】
前記ジョブ設定画面コンテンツは、
画面コンテンツと、
ジョブ設定定義コンテンツとを含み、
前記画面コンテンツは、前記ジョブ設定画面に表示する要素に関する情報を含み、
前記ジョブ設定定義コンテンツは、前記ジョブ設定画面で入力される設定値と前記要素とを対応付けた情報を含む、請求項1~7のいずれかに記載のプログラム。
【請求項9】
前記要素は、HTML(HyperText Markup Language)で定義され、
前記ジョブ設定画面コンテンツは、HTMLの属性により、前記ジョブ設定画面で入力される設定値と前記要素とを対応付ける、請求項に記載のプログラム。
【請求項10】
前記命令は、
前記情報処理装置と通信する周期情報を受け付けるステップと、
前記周期情報に基づいて、前記情報処理装置から、各種コンテンツを取得するステップとをさらに含む、請求項1~9のいずれかに記載のプログラム。
【請求項11】
端末装置によりジョブデータを生成する方法であって、
外部の情報処理装置からジョブ設定画面コンテンツを受信するステップと、
前記ジョブ設定画面コンテンツに基づいて、ジョブ設定画面を生成するステップと、
前記ジョブ設定画面の入力を受け付けるステップと、
前記ジョブ設定画面の入力に基づいて、前記情報処理装置に対する設定データを生成するステップと、
前記設定データに基づいて、前記情報処理装置に所定の処理を実行させるためのジョブデータを生成するステップと、
前記情報処理装置に、前記ジョブデータを送信するステップとを含み、
前記設定データに基づいて、前記情報処理装置のジョブデータを生成するステップは、
前記ジョブデータを生成するための入力を受け付けるステップと、
当該入力に基づいて、前記情報処理装置から、制御コマンド定義情報を取得するステップと、
前記制御コマンド定義情報を参照して、前記設定データに含まれる設定値に対応する制御コマンドを取得するステップと、
前記制御コマンドを含む前記ジョブデータを生成するステップとを含み
前記情報処理装置から、前記制御コマンド定義情報と共に、ジョブデータの加工処理の拡張機能データを受信するステップと、
前記ジョブデータの加工処理の拡張機能データに基づいて、前記ジョブデータに加工処理を追加するステップとをさらに含む、方法。
【請求項12】
端末装置によりジョブデータを生成する方法であって、
外部の情報処理装置からジョブ設定画面コンテンツを受信するステップと、
前記ジョブ設定画面コンテンツに基づいて、ジョブ設定画面を生成するステップと、
前記ジョブ設定画面の入力を受け付けるステップと、
前記ジョブ設定画面の入力に基づいて、前記情報処理装置に対する設定データを生成するステップと、
前記設定データに基づいて、前記情報処理装置に所定の処理を実行させるためのジョブデータを生成するステップと、
前記情報処理装置に、前記ジョブデータを送信するステップと、
ネットワーク上の複数の情報処理装置を検出するステップと、
検出した前記複数の情報処理装置のいずれかを選択するステップと、
選択された情報処理装置が前回通信した情報処理装置と異なることに基づいて、前記選択された情報処理装置の前記設定データを生成するステップと、
前記前回通信した情報処理装置の設定データの一部または全てを前記選択された情報処理装置の前記設定データに引き継ぐステップとを含む、方法。
【請求項13】
ブラウザ機能を呼び出して前記ジョブ設定画面を表示するステップをさらに含み、
前記情報処理装置に対する設定データを生成するステップは、前記ジョブ設定画面に入力されたデータを前記ブラウザ機能から取得するステップを含む、請求項11または12に記載の方法。
【請求項14】
前記ジョブ設定画面の入力に基づいて、前記情報処理装置に対する前記設定データを生成するステップは、
前記ジョブ設定画面の設置値を含む構造化データを生成するステップと、
前記構造化データが含む各オブジェクト情報に基づいて、前記構造化データから前記設定データを生成するステップとを含む、請求項11~13のいずれかに記載の方法。
【請求項15】
前記構造化データが含む各オブジェクト情報に基づいて、前記構造化データから前記設定データを生成するステップは、
前記構造化データに含まれる第1の設定および第2の設定を取得するステップと、
前記設定データのオフセットを取得するステップと、
前記オフセットに基づいて、前記設定データの特定の位置に、前記第1の設定を書き込むステップと、
前記第1の設定の書き込み後に、前記オフセットを更新するステップと、
更新された前記オフセットに基づいて、前記設定データの前記第1の設定の書き込み領域の次の位置に、前記第2の設定を書き込むステップとを含む、請求項14に記載の方法。
【請求項16】
前記構造化データは、JSONまたはマークアップ言語によって定義される、請求項14または15に記載の方法。
【請求項17】
前記ジョブ設定画面コンテンツに基づいて、デフォルトの第1の構造化データと、前記ジョブ設定画面から入力された設定を一時的に格納する第2の構造化データとを生成するステップと、
前記ジョブ設定画面での設定内容を保存する入力を受け付けたことに基づいて、前記第2の構造化データを前記構造化データとして保存するステップをさらに含む、請求項14~16のいずれかに記載の方法。
【請求項18】
前記ジョブ設定画面コンテンツは、
画面コンテンツと、
ジョブ設定定義コンテンツとを含み、
前記画面コンテンツは、前記ジョブ設定画面に表示する要素に関する情報を含み、
前記ジョブ設定定義コンテンツは、前記ジョブ設定画面で入力される設定値と前記要素とを対応付けた情報を含む、請求項11~17のいずれかに記載の方法。
【請求項19】
前記要素は、HTMLで定義され、
前記ジョブ設定画面コンテンツは、HTMLの属性により、前記ジョブ設定画面で入力される設定値と前記要素とを対応付ける、請求項18に記載の方法。
【請求項20】
前記情報処理装置と通信する周期情報を受け付けるステップと、
前記周期情報に基づいて、前記情報処理装置から、各種コンテンツを取得するステップとをさらに含む、請求項11~19のいずれかに記載の方法。
【請求項21】
請求項1~10のいずれかに記載のプログラムを格納した記憶部と、
前記プログラムを実行する制御部とを備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してジョブデータを生成する装置に関し、より特定的には、ジョブの設定情報を端末装置に保存する技術に関する。
【背景技術】
【0002】
近年、MFP(Multifunction Peripheral)等の多種多様な情報処理装置が普及している。これらの情報処理装置は、互いに異なる機能または設定等をサポートしていることがあり、その場合、各情報処理装置ごとの設定入力用のアプリケーションまたはドライバーも異なったものになる。そのため、開発ベンダーは、情報処理装置ごとのアプリケーションまたはドライバーをユーザーに提供する必要があった。また、ユーザーも、複数の情報処理装置を使用する場合、各々の情報処理装置のアプリケーションまたはドライバーを端末装置にインストールして管理する必要があった。そのため、端末装置に複数のアプリケーションまたはドライバーをインストールすることなく、複数の情報処理装置のジョブデータを生成するための技術が求められている。
【0003】
複数の情報処理装置のジョブデータを生成するための技術に関し、例えば、特開2011-059783号公報(特許文献1)は、「Webサーバー機能を備えた画像形成装置と、画像形成装置とネットワークを介して接続された情報処理装置と、を含み、画像形成装置は、情報処理装置から取得したユーザエージェント文字列に基づいて、情報処理装置からの要求であるか否かを判定するユーザエージェント判定手段と、情報処理装置からの要求に従って、画像形成装置を制御するための情報の表示画面である機器制御画面をWebブラウザで閲覧可能な形式で生成するWeb画面生成手段と、を有し、情報処理装置は、Web画面生成手段により生成された機器制御画面を表示するWeb画面表示手段を有する」印刷システムを開示している([要約]参照)。
【0004】
また、その他の複数の情報処理装置のジョブデータを生成するための技術に関する情報が、特開2018-086841号公報(特許文献2)に開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2011-059783号公報
【文献】特開2018-086841号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1および2に開示された技術によると、複数の情報処理装置の各々のジョブの設定情報を端末装置に保存し、これらのジョブの設定情報を再利用することができない。したがって、複数の情報処理装置の各々のジョブの設定情報を端末装置に保存し、これらのジョブの設定情報を再利用するための技術が必要とされている。
【0007】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、複数の情報処理装置の各々のジョブの設定情報を端末装置に保存し、これらのジョブの設定情報を再利用する技術を提供することにある。
【課題を解決するための手段】
【0008】
ある実施の形態に従うと、1以上のプロセッサーに命令を実行させるためのプログラムが提供される。命令は、外部の情報処理装置からジョブ設定画面コンテンツを受信するステップと、ジョブ設定画面コンテンツに基づいて、ジョブ設定画面を生成するステップと、ジョブ設定画面の入力を受け付けるステップと、ジョブ設定画面の入力に基づいて、情報処理装置に対する設定データを生成するステップと、設定データに基づいて、情報処理装置に所定の処理を実行させるためのジョブデータを生成するステップと、情報処理装置に、ジョブデータを送信するステップとを含む。
【0009】
ある局面に従うプログラムにおいて、命令は、ブラウザ機能を呼び出してジョブ設定画面を表示するステップをさらに含む。情報処理装置に対する設定データを生成するステップは、ジョブ設定画面に入力されたデータをブラウザ機能から取得するステップを含む。
【0010】
ある局面に従うプログラムにおいて、ジョブ設定画面の入力に基づいて、情報処理装置に対する設定データを生成するステップは、ジョブ設定画面の設置値を含む構造化データを生成するステップと、構造化データが含む各オブジェクト情報に基づいて、構造化データから設定データを生成するステップとを含む。
【0011】
ある局面に従うプログラムにおいて、構造化データが含む各オブジェクト情報に基づいて、構造化データから設定データを生成するステップは、構造化データに含まれる第1の設定および第2の設定を取得するステップと、設定データのオフセットを取得するステップと、オフセットに基づいて、設定データの特定の位置に、第1の設定を書き込むステップと、第1の設定の書き込み後に、オフセットを更新するステップと、更新されたオフセットに基づいて、設定データの第1の設定の書き込み領域の次の位置に、第2の設定を書き込むステップとを含む。
【0012】
ある局面に従うプログラムにおいて、構造化データは、JSON(JavaScript(登録商標) Object Notation)またはマークアップ言語によって定義される。
【0013】
ある局面に従うプログラムにおいて、命令は、ジョブ設定画面コンテンツに基づいて、デフォルトの第1の構造化データと、ジョブ設定画面から入力された設定を一時的に格納する第2の構造化データとを生成するステップと、ジョブ設定画面での設定内容を保存する入力を受け付けたことに基づいて、第2の構造化データを構造化データとして保存するステップをさらに含む。
【0014】
ある局面に従うプログラムにおいて、設定データに基づいて、情報処理装置のジョブデータを生成するステップは、ジョブデータを生成するための入力を受け付けるステップと、当該入力に基づいて、情報処理装置から、制御コマンド定義情報を取得するステップと、制御コマンド定義情報を参照して、設定データに含まれる設定値に対応する制御コマンドを取得するステップと、制御コマンドを含むジョブデータを生成するステップとを含む。
【0015】
ある局面に従うプログラムにおいて、命令は、情報処理装置から、制御コマンド定義情報と共に、ジョブデータの加工処理の拡張機能データを受信するステップと、ジョブデータの加工処理の拡張機能データに基づいて、ジョブデータに加工処理を追加するステップとをさらに含む。
【0016】
ある局面に従うプログラムにおいて、ジョブ設定画面コンテンツは、画面コンテンツと、ジョブ設定定義コンテンツとを含み、画面コンテンツは、ジョブ設定画面に表示する要素に関する情報を含み、ジョブ設定定義コンテンツは、ジョブ設定画面で入力される設定値と要素とを対応付けた情報を含む。
【0017】
ある局面に従うプログラムにおいて、要素は、HTML(HyperText Markup Language)で定義され、ジョブ設定画面コンテンツは、HTMLの属性により、ジョブ設定画面で入力される設定値と要素とを対応付ける。
【0018】
ある局面に従うプログラムにおいて、命令は、情報処理装置と通信する周期情報を受け付けるステップと、周期情報に基づいて、情報処理装置から、各種コンテンツを取得するステップとをさらに含む。
【0019】
ある局面に従うプログラムにおいて、命令は、ネットワーク上の複数の情報処理装置を検出するステップと、検出した複数の情報処理装置のいずれかを選択するステップとをさらに含む。
【0020】
ある局面に従うプログラムにおいて、命令は、選択された情報処理装置が、前回通信した情報処理装置と異なることに基づいて、選択された情報処理装置の設定データを生成するステップと、前回通信した情報処理装置の設定データの一部または全てを選択された情報処理装置の設定データに引き継ぐステップとをさらに含む。
【0021】
他の実施の形態に従うと、端末装置によりジョブデータを生成する方法が提供される。この方法は、外部の情報処理装置からジョブ設定画面コンテンツを受信するステップと、ジョブ設定画面コンテンツに基づいて、ジョブ設定画面を生成するステップと、ジョブ設定画面の入力を受け付けるステップと、ジョブ設定画面の入力に基づいて、情報処理装置に対する設定データを生成するステップと、設定データに基づいて、情報処理装置に所定の処理を実行させるためのジョブデータを生成するステップと、情報処理装置に、ジョブデータを送信するステップとを含む。
【0022】
ある局面に従う方法において、方法は、ブラウザ機能を呼び出してジョブ設定画面を表示するステップをさらに含む。情報処理装置に対する設定データを生成するステップは、ジョブ設定画面に入力されたデータをブラウザ機能から取得するステップを含む。
【0023】
ある局面に従う方法において、ジョブ設定画面の入力に基づいて、情報処理装置に対する設定データを生成するステップは、ジョブ設定画面の設置値を含む構造化データを生成するステップと、構造化データが含む各オブジェクト情報に基づいて、構造化データから設定データを生成するステップとを含む。
【0024】
ある局面に従う方法において、構造化データが含む各オブジェクト情報に基づいて、構造化データから設定データを生成するステップは、構造化データに含まれる第1の設定および第2の設定を取得するステップと、設定データのオフセットを取得するステップと、オフセットに基づいて、設定データの特定の位置に、第1の設定を書き込むステップと、第1の設定の書き込み後に、オフセットを更新するステップと、更新されたオフセットに基づいて、設定データの第1の設定の書き込み領域の次の位置に、第2の設定を書き込むステップとを含む。
【0025】
ある局面に従う方法において、構造化データは、JSONまたはマークアップ言語によって定義される。
【0026】
ある局面に従う方法において、方法は、ジョブ設定画面コンテンツに基づいて、デフォルトの第1の構造化データと、ジョブ設定画面から入力された設定を一時的に格納する第2の構造化データとを生成するステップと、ジョブ設定画面での設定内容を保存する入力を受け付けたことに基づいて、第2の構造化データを構造化データとして保存するステップをさらに含む。
【0027】
ある局面に従う方法において、設定データに基づいて、情報処理装置のジョブデータを生成するステップは、ジョブデータを生成するための入力を受け付けるステップと、当該入力に基づいて、情報処理装置から、制御コマンド定義情報を取得するステップと、制御コマンド定義情報を参照して、設定データに含まれる設定値に対応する制御コマンドを取得するステップと、制御コマンドを含むジョブデータを生成するステップとを含む。
【0028】
ある局面に従う方法において、方法は、情報処理装置から、制御コマンド定義情報と共に、ジョブデータの加工処理の拡張機能データを受信するステップと、ジョブデータの加工処理の拡張機能データに基づいて、ジョブデータに加工処理を追加するステップとをさらに含む。
【0029】
ある局面に従う方法において、ジョブ設定画面コンテンツは、画面コンテンツと、ジョブ設定定義コンテンツとを含み、画面コンテンツは、ジョブ設定画面に表示する要素に関する情報を含み、ジョブ設定定義コンテンツは、ジョブ設定画面で入力される設定値と要素とを対応付けた情報を含む。
【0030】
ある局面に従う方法において、要素は、HTMLで定義され、ジョブ設定画面コンテンツは、HTMLの属性により、ジョブ設定画面で入力される設定値と要素とを対応付ける。
【0031】
ある局面に従う方法において、方法は、情報処理装置と通信する周期情報を受け付けるステップと、周期情報に基づいて、情報処理装置から、各種コンテンツを取得するステップとをさらに含む。
【0032】
ある局面に従う方法において、方法は、ネットワーク上の複数の情報処理装置を検出するステップと、検出した複数の情報処理装置のいずれかを選択するステップとをさらに含む。
【0033】
ある局面に従う方法において、方法は、選択された情報処理装置が前回通信した情報処理装置と異なることに基づいて、選択された情報処理装置の設定データを生成するステップと、前回通信した情報処理装置の設定データの一部または全てを選択された情報処理装置の設定データに引き継ぐステップとをさらに含む。
【0034】
他の実施の形態に従うと、上記のいずれかのプログラムを格納した記憶部と、プログラムを実行する制御部とを備える、端末装置が提供される。
【発明の効果】
【0035】
ある実施の形態に従うと、複数の情報処理装置の各々のジョブの設定情報を端末装置に保存し、これらのジョブの設定情報を再利用することが可能である。
【0036】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0037】
図1】ある実施の形態に従うプログラムを好適に適用できるシステム(以下、単に「本システム」と表すこともある)の構成の一例を示す図である。
図2】情報処理装置100のハードウェア構成の一例を示す図である。
図3】端末装置140の構成の一例を示す図である。
図4】情報処理装置100および端末装置140が含むソフトウェア構成およびデータの一例を示す図である。
図5】本システムにおける通信シーケンスの第1の例を示す図である。
図6】ジョブ設定画面コンテンツ453の構成の一例を示す図である。
図7】データ交換用のジョブ設定データからドライバー設定情報を生成する方法の一例を示す図である。
図8】本システムにおける通信シーケンスの第2の例を示す図である。
図9図8においてWebサーバー452が配信するジョブ設定定義コンテンツ457およびジョブ生成機能コンテンツ460の一例を示す図である。
図10】変換用データ1000の一例を示す図である。
図11】ジョブ設定の入力を受け付けて反映するまでの処理のフローチャートの一例である。
図12】詳細設定画面の表示処理のフローチャートの一例である。
図13】ジョブ設定画面コンテンツ取得処理フローチャートの一例である。
図14】ジョブ設定画面レンダリング処理のフローチャートの一例である。
図15】画面制御スクリプト456の起動処理のフローチャートの一例である。
図16】デフォルトのジョブ設定画面の作成処理のフローチャートの一例である。
図17】ジョブ設定データ生成処理のフローチャートの一例である。
図18】データ交換用のジョブ設定データの生成処理のフローチャートの一例である。
図19】2次記憶装置303に保存されているドライバー設定情報の設定値をデータ交換用のジョブ設定データに反映する処理のフローチャートの一例である。
図20図19のフローチャートによるデータの流れの一例を示す模式図である。
図21】ジョブ設定画面の制御処理のフローチャートの一例である。
図22】UI応答処理のフローチャートの一例である。
図23】詳細設定画面の設定反映処理のフローチャートの一例である。
図24】データ交換用のジョブ設定データの更新処理のフローチャートの一例である。
図25】ドライバー設定情報の更新処理のフローチャートの一例である。
図26】アプリケーション402によるジョブデータを生成する処理のフローチャートの一例である。
図27】交換用のジョブ設定データの読込み処理のフローチャートの一例である。
図28】交換用のジョブ設定データの整合性の検証処理のフローチャートの一例である。
図29】ジョブ生成機能を構成する処理のフローチャートの一例である。
図30】変換用データの作成処理のフローチャートの一例である。
図31】ジョブ制御コマンド定義情報461に含まれる情報を変換用データに反映する処理のフローチャートの一例である。
図32】ジョブデータ情報加工処理を構成する処理のフローチャートの一例である。
図33】ジョブ生成処理のフローチャートの一例である。
図34】ネットワーク上で構成されている情報処理装置100を検出する機能の一例を示す図である。
図35】情報処理装置100の切り替え画面の一例を示す図である。
図36】コンテンツ取得タイミングの設定画面3600の一例である。
図37】コンテンツ取得失敗時のエラー画面3700の一例である。
図38】再接続通知画面3800の一例を示す図である。
図39】ジョブ設定定義情報458の更新通知画面3900の一例である。
【発明を実施するための形態】
【0038】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0039】
<A.適用例>
(A-1.システム構成)
図1は、本実施の形態に従うプログラムを好適に適用できるシステム(以下、単に「本システム」と表すこともある)の構成の一例を示す図である。本システムは、情報処理装置100と、端末装置140と、プリントコントローラー150とを含む。当該構成は、一例であり、本システムの構成はこれに限られない。ある局面において、本システムは、任意の数の情報処理装置100と、任意の数の端末装置140とを備えていてもよい。また、他の局面において、本システムは、プリントコントローラー150を含まなくてもよい。以下、本実施の形態に従うシステムにおいて、ジョブの一例として印刷を実行するシステムを説明する。なお、ジョブの種類は、印刷に限られない。また、他の局面において、本実施の形態に従うプログラムは、他のアプリケーションから呼び出されるドライバー、または単独で動作するドライバー機能を備えたアプリケーションとして実現されてもよい。
【0040】
情報処理装置100は、ジョブデータを受信して処理する。「ジョブデータ」は、画像データ等のオブジェクトと、制御コマンドとを含む。「制御コマンド」は、情報処理装置100に与えられる個々の指示に相当する。情報処理装置100は、ジョブデータに含まれる制御コマンドに従い、オブジェクトを処理する。情報処理装置100は、例えば、画像形成装置であり、ジョブとして印刷処理を実行する。ある局面において、情報処理装置100は、スキャナー、3Dプリンター、プロッターまたは画像データを読み込むミシン等であってもよい。ジョブデータは、情報処理装置100の種類に応じて、画像、3Dモデルデータ、DXF(Drawing Exchange Format)データまたはGコード等の任意のデータを含み得る。
【0041】
端末装置140は、ユーザーが使用するPC(Personal Computer)、タブレットまたはスマートフォン等の任意の装置である。端末装置140には、情報処理装置100の設定情報の入力を受け付け、情報処理装置100にジョブデータを送信するためのプログラムがインストールされる。
【0042】
プリントコントローラー150は、情報処理装置100にジョブデータを送信する。ある局面において、端末装置140は、生成したジョブデータをプリントコントローラー150に送信してもよい。
【0043】
(A-2.プログラムの機能の概要)
次に、端末装置140にインストールされるプログラム(以下、「本プログラム」と表すこともある)の機能の概要およびその効果について説明する。本プログラムは、Webブラウザ機能を備える。そのため、本プログラムは、HTML(HyperText Markup Language)ファイルをディスプレイに表示し、Javascriptを実行し得る。本プログラムは、端末装置140によって実行される。
【0044】
第1のステップにおいて、端末装置140は、複数の情報処理装置100の各々から、ジョブ設定画面に表示するための画面コンテンツと、ジョブ設定画面の各要素に対応付けられる設定を定義したジョブ設定定義コンテンツとを受信する。画面コンテンツおよびジョブ設定定義コンテンツを総称してジョブ設定画面コンテンツと呼ぶ。
【0045】
ある局面において、端末装置140は、情報処理装置100以外のサーバーに対して、ジョブデータを送信する情報処理装置100の機種情報を送信し、当該サーバーから画面コンテンツと、ジョブ設定画面コンテンツとを受信してもよい。
【0046】
画面コンテンツは、一例として、HTMLファイルと、CSS(Cascading Style Sheets)ファイルとを含んでもよい。また、ジョブ設定定義コンテンツは、JSON(JavaScript Object Notation)またはXML(Extensible Markup Language)等のマークアップ言語によって定義された情報を含んでいてもよい。
【0047】
第2のステップにおいて、端末装置140は、画面コンテンツに基づいて、ジョブ設定画面をディスプレイに表示する。より具体的には、端末装置140は、本プログラムのWebブラウザ機能により、画面コンテンツに含まれるHTMLタグおよびCSSに基づいて、ジョブ設定画面を生成する。また、端末装置140は、ジョブ設定定義コンテンツから、ジョブ設定画面の各要素(入力フォーム、プルダウンまたはボタン等)に紐付けられる設定値(文字または数値等)を取得し、ジョブ設定画面に挿入する。ジョブ設定定義コンテンツは、各要素と各設定値とを紐付けるための、例えば、HTMLタグのvalue属性等を含んでもよい。
【0048】
上記のように、端末装置140は、本プログラムのWebブラウザ機能を使用して、画面コンテンツおよびジョブ設定定義コンテンツから、個別の情報処理装置100のジョブ設定画面を生成する。当該処理により、端末装置140は、単一のプログラムで、複数の情報処理装置100のジョブ設定画面を表示することができる。
【0049】
第3のステップにおいて、端末装置140は、ジョブ設定画面上でユーザーからの設定の入力を受け付ける。端末装置140は、ジョブ設定画面上でのユーザーからの入力に基づいて、ジョブ設定データおよびドライバー設定情報を生成し、端末装置140のメモリー(図示せず)に保存する。ここでの「ジョブ設定データ」は、JSONまたはXML等によって記述された中間データ(テキストの構造化データ)であり、ジョブ設定画面上で設定された各設定を含む。すなわち、端末装置140派、ジョブ設定画面の入力に基づいて、個別の情報処理装置100がサポートする設定を含むジョブ設定データを生成する。「ドライバー設定情報」は、ジョブ設定データをドライバーまたは本プログラムが含むドライバー機能が解釈できる形式に変換したものである。ある局面において、端末装置140は、生成したジョブ設定データまたは/およびドライバー設定情報を情報処理装置100に送信し、情報処理装置100は受信したジョブ設定データまたは/およびドライバー設定情報を保存してもよい。その場合、端末装置140は、ジョブの実行時に、情報処理装置100に事前に保存されたジョブ設定データまたは/およびドライバー設定情報を取得することで、ジョブデータを生成することができる。
【0050】
第4のステップにおいて、端末装置140は、ユーザーから、ある情報処理装置100(A)に対するジョブデータの生成要求またはジョブデータの投入要求の入力を受け付けたことに基づいて、情報処理装置100(A)から、ジョブ設定定義コンテンツと、メモリーのジョブ設定データとを取得する。端末装置140は、ジョブ設定定義コンテンツと、メモリーのジョブ設定データとを比較して、当該ジョブ設定データが情報処理装置100(A)に対応しているか否かの検証を行なう。
【0051】
第5のステップにおいて、端末装置140は、情報処理装置100(A)から、ジョブ制御コマンド定義情報と、ジョブデータの加工処理の拡張機能とを含むジョブ生成機能コンテンツを受信する。「ジョブ制御コマンド定義情報」は、全ての制御コマンドと、各制御コマンドに対応する設定項目とを含む。「ジョブデータの加工処理の拡張機能」は、ジョブに冊子処理や画像処理等の拡張機能を追加するソフトウェアモジュールまたはマクロその他のプログラムである。
【0052】
第6のステップにおいて、端末装置140は、ジョブ制御コマンド定義情報と、ジョブ設定定義情報とから、変換用データを作成する。「変換用データ」は、情報処理装置100(A)がサポートする全ての設定項目と、これらの設定項目に対応する制御コマンドとが関連付けられたファイルである。言い換えれば、変換用データは、ジョブ制御コマンド定義情報に含まれる全ての制御コマンドから、情報処理装置100(A)がサポートする制御コマンドを抽出したデータである。端末装置140は、ドライバー設定情報からジョブデータを作成するときに、変換用データを参照する。
【0053】
第7のステップにおいて、端末装置140は、ドライバー設定情報と、変換用データとに基づいて、ジョブデータを生成する。さらに、端末装置140は、ジョブデータの加工処理の拡張機能に基づいて、ジョブデータに加工処理を追加する。ある局面において、端末装置140は、ジョブデータの加工処理の拡張機能に基づいて、ドライバー設定情報に加工処理を追加し、当該加工処理を追加したドライバー設定情報からジョブデータを生成してもよい。
【0054】
上記のように、端末装置140は、任意の情報処理装置100から受信したコンテンツに基づくジョブ設定画面の設定値からドライバー設定情報を生成して、当該ドライバー設定情報を保存する。さらに、端末装置140は、必要に応じて、ドライバー設定情報と、情報処理装置100から取得した各種情報とに基づいて、ジョブデータを生成する。これらの端末装置140が備える機能により、端末装置140は、単一のプログラムにより、任意の情報処理装置100に対応するジョブデータを生成し得る。また、端末装置140は、通信したことのある情報処理装置100、および通信したことのある情報処理装置100と同機種の情報処理装置100にジョブデータを送信するときに、ドライバー設定情報を再利用し得る。
【0055】
<B.ハードウェアおよびソフトウェアの構成>
次に、図2図4を参照して、情報処理装置100および端末装置140のハードウェア構成と、ソフトウェア構成とについて説明する。なお、図2図4に示す構成は、一例であり、情報処理装置100および端末装置140は、これらの図に記載されていない構成を含んでいてもよい。
【0056】
図2は、情報処理装置100のハードウェア構成の一例を示す図である。図2に示す構成は、情報処理装置100が画像形成装置である場合の構成である。なお、情報処理装置100は、ジョブを処理する装置であればよく、画像形成装置に限られない。また、情報処理装置100のハードウェア構成は、用途によって適宜変更され得る。情報処理装置100は、制御部50と、原稿読取回路204と、画像受信回路205と、現像回路206と、定着回路207と、記憶装置210と、ファクシミリ回路211と、有線インターフェイス212と、無線インターフェイス213と、ユーザー認証回路214と、操作パネル60とを備える。
【0057】
制御部50は、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、ROM(Read Only Memory)203とを含む。CPU201は、RAM202に読み込まれた各種プログラムおよびデータを実行または参照する。ある局面において、CPU201は、組み込みCPUであってもよいし、FPGA(Field-Programmable Gate Array)であってもよいし、またはこれらの組み合わせ等によって構成される。CPU201は、情報処理装置100の各種機能を実現するためのプログラムを実行し得る。
【0058】
RAM202は、CPU201によって実行されるプログラムと、CPU201によって参照されるデータとを格納する。ある局面において、RAM202は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)であってもよい。
【0059】
ROM203は、不揮発性メモリーであり、CPU201によって実行されるプログラムを格納してもよい。その場合、CPU201は、ROM203からRAM202に読み出されたプログラムを実行する。ある局面において、ROM203は、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)またはフラッシュメモリーであってもよい。
【0060】
原稿読取回路204は、原稿読取部(図示せず)がスキャンした原稿を画像データに変換し得る。CPU201は、原稿読取回路204を介して、画像データを取得し得る。ある局面において、原稿読取回路204は、取得した画像データを記憶装置210に保存し得る。他の局面において、原稿読取回路204は、有線インターフェイス212または無線インターフェイス213を介して画像データを取得し、当該取得した画像データを記憶装置210に保存してもよい。
【0061】
画像受信回路205は、情報処理装置100が取り込んだ画像データの印刷処理を行う。ある局面において、画像受信回路205は、イメージングユニット(図示せず)を含む印刷機能のための各種アクチュエーターを制御する回路であってもよい。
【0062】
現像回路206は、情報処理装置100が取り込んだ画像データの現像処理を行う。ある局面において、現像回路206は、イメージングユニットを含む現像機能のための各種アクチュエーターを制御してもよい。定着回路207は、定着処理用のモーターおよびヒーター等を制御する。
【0063】
記憶装置210は、不揮発性メモリーであり、情報処理装置100の電源が切れた状態でもデータを保存しておくことができる。記憶装置210は、CPU201が実行または参照する任意のプログラムおよびデータを保存し得る。ある局面において、記憶装置210は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)であってもよい。CPU201は、必要に応じて各種プログラムを記憶装置210からRAM202に読み込み、当該読み込まれたプログラムを実行することができる。
【0064】
ファクシミリ回路211は、電話回線を用いたファクシミリにより、原稿または画像データの送受信を行う。ある局面において、ファクシミリ回路211は、ファクシミリの通信制御機能を持つ回路および電話回線の通信ポートであってもよい。
【0065】
有線インターフェイス212は、有線のネットワーク機器と接続される。ある局面において、有線インターフェイス212は、有線LAN(Local Area Network)ポートであってもよい。
【0066】
無線インターフェイス213は、無線のネットワーク機器と接続される。ある局面において、無線インターフェイス213は、Wi-Fi(Wireless Fidelity)(登録商標)モジュール等であってもよい。有線インターフェイス212および無線インターフェイス213は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信し得る。
【0067】
ユーザー認証回路214は、情報処理装置100を使用するユーザーの認証処理を行なう。ユーザー認証回路214は、外部の認証サーバーと連携してもよいし、しなくてもよい。ある局面において、制御部50がユーザー認証回路214の機能を備えていてもよい。
【0068】
操作パネル60は、表示部61と、操作部62とを含む。表示部61は液晶モニター、有機EL(Electro Luminescence)モニター等を含む。液晶モニター、有機ELモニター等は、タッチセンサーを含み、操作メニューを表示すると共に、ユーザーからのタッチによる入力を受け付けることができる。操作部62は、複数のボタンを含み、タッチパネルと同様に、ユーザーからの入力を受け付けることができる。
【0069】
図3は、端末装置140の構成の一例を示す図である。端末装置140は、CPU301と、1次記憶装置302と、2次記憶装置303と、外部機器インターフェイス304と、入力インターフェイス305と、出力インターフェイス306と、通信インターフェイス307とを含む。
【0070】
CPU301は、端末装置140の各種機能を実現するためのプログラムを実行し得る。CPU301は、例えば、少なくとも1つの集積回路によって構成される。集積回路は、例えば、少なくとも1つのCPUユニット、少なくとも1つのFPGA、またはこれらの組み合わせ等によって構成されてもよい。
【0071】
1次記憶装置302は、CPU301によって実行されるプログラムと、CPU301によって参照されるデータとを格納する。ある局面において、1次記憶装置302は、DRAMまたはSRAMによって実現されてもよい。
【0072】
2次記憶装置303は、不揮発性メモリーであり、CPU301によって実行されるプログラムおよびCPU301によって参照されるデータを格納してもよい。その場合、CPU301は、2次記憶装置303から1次記憶装置302に読み出されたプログラムを実行し、2次記憶装置303から1次記憶装置302に読み出されたデータを参照する。ある局面において、2次記憶装置303は、HDD、SSD、EPROM、EEPROMまたはフラッシュメモリー等によって実現されてもよい。
【0073】
外部機器インターフェイス304は、プリンター、スキャナーおよび外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器インターフェイス304は、USB(Universal Serial Bus)端子等によって実現されてもよい。
【0074】
入力インターフェイス305は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力インターフェイス305は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現されてもよい。
【0075】
出力インターフェイス306は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機ELディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力インターフェイス306は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子およびHDMI(登録商標)(High-Definition Multimedia Interface)端子等によって実現されてもよい。他の局面において、端末装置140は、ディスプレイを内蔵していてもよい。
【0076】
通信インターフェイス307は、有線または無線のネットワーク機器と接続される。ある局面において、通信インターフェイス307は、有線LANポートおよびWi-Fiモジュール等によって実現されてもよい。他の局面において、通信インターフェイス307は、TCP/IP、UDP等の通信プロトコルを用いてデータを送受信してもよい。
【0077】
図4は、情報処理装置100および端末装置140が含むソフトウェア構成およびデータの一例を示す図である。端末装置140は、OS(Operating System)401と、OS上で動作するアプリケーション402(本プログラム)とを含む。ある局面において、アプリケーション402は、他のアプリケーションから読み出されるドライバーであってもよいし、単独で動作するドライバー機能を備えるアプリケーションであってもよい。
【0078】
アプリケーション402は、大きく分けて、ジョブ設定画面モジュール403と、共通処理モジュール411と、ジョブ生成モジュール419とを備える。ジョブ設定画面モジュール403は、主に、情報処理装置100と通信して、ジョブ設定データおよびドライバー設定情報を生成して保存するまでの機能を提供する。共通処理モジュール411は、ジョブ設定画面モジュール403およびジョブ生成モジュール419の両方で使用される機能を提供する。ジョブ生成モジュール419は、主に、ドライバー設定情報からジョブデータを生成する機能を提供する。
【0079】
アプリケーション402は、モジュールとして、ジョブ設定画面モジュール403と、Webブラウザ機能モジュール404と、UI(User Interface)操作モジュール405と、情報処理装置の検索モジュール406と、Web通信エンジン407と、Web画面制御エンジン408と、Web画面コンテンツ処理モジュール409と、ジョブ設定定義コンテンツモジュール410と、共通処理モジュール411と、全体制御モジュール422と、ジョブ設定のモジュール412と、ジョブ設定データ作成モジュール413と、ジョブ設定データモジュール414と、ジョブ生成機能のモジュール415と、ジョブ生成の拡張コンテンツ取得モジュール416と、変換用データ作成モジュール417と、ジョブデータの加工処理の構成モジュール418と、ジョブ生成モジュール419と、ジョブデータの加工処理モジュール420と、ジョブ制御コマンド生成モジュール421とを含む。
【0080】
アプリケーション402は、情報処理装置群450に含まれる各々の情報処理装置100A~100N(以下、総称するときは「情報処理装置100」と表すこともある)と通信する。
【0081】
ジョブ設定画面モジュール403は、情報処理装置100のいずれかと通信し、ジョブ設定画面を生成する。ジョブ設定画面モジュール403は、ジョブ設定画面においてユーザーから入力された情報に基づいて、ジョブ設定データを生成する。Webブラウザ機能モジュール404は、ウェブブラウザの機能、すなわち、HTMLの描画機能、Javascriptの実行機能等を提供する。Web通信エンジン407は、Webサーバーとの通信機能であり、主に、情報処理装置100内のWebサーバーと通信する。Web画面制御エンジン408は、HTMLを解析して、HTMLに基づくコンテンツを画面に表示する機能を提供する。Web画面コンテンツ処理モジュール409は、画面に表示される個別のコンテンツを処理する。ジョブ設定定義コンテンツモジュール410は、情報処理装置100から受信したジョブ設定画面コンテンツを画面に埋め込む処理等を行なう。UI操作モジュール405は、画面に表示されたボタン等のUIごとの操作の制御を行なう。情報処理装置の検索モジュール406は、端末装置140が通信可能な情報処理装置100を検索する機能を提供する。
【0082】
共通処理モジュール411は、ジョブ設定画面モジュール403およびジョブ生成モジュール419の両方で使用される機能を提供する。全体制御モジュール422は、共通処理モジュール411への要求の受信、共通処理モジュール411の下位の各モジュールへのタスクの割り振り等を実行する。ジョブ設定のモジュール412は、主に、ジョブ設定画面コンテンツ453に関連した機能を提供する。ジョブ設定データ作成モジュール413は、ジョブ設定に関するデータを生成する。ジョブ設定データモジュール414は、ジョブ設定データを処理する。ジョブ生成機能のモジュール415は、ジョブ制御コマンドおよびドライバー設定情報の加工処理の情報に関する機能を提供する。ジョブ生成の拡張コンテンツ取得モジュール416は、ジョブデータの加工処理の拡張機能462を取得する。ジョブデータの加工処理の構成モジュール418は、一例として、ジョブデータの加工処理の拡張機能462が複数ある場合に、それらの使用順序の決定や選択等の処理を行なう。
【0083】
ジョブ生成モジュール419は、ドライバー設定情報に基づいて制御コマンドを含むジョブデータを生成し、ジョブデータを情報処理装置100のいずれかに送信するまでの機能を提供する。ドライバー設定情報の加工処理モジュール420は、ジョブデータの加工処理の構成モジュール418が提供する加工処理の構成データに基づいて、ジョブデータに加工処理を追加する。ジョブ制御コマンド生成モジュール421は、ドライバー設定情報から制御コマンドを生成する。
【0084】
情報処理装置100は、Webサーバー452を含む。Webサーバー452は、端末装置140の要求に応じて、ジョブ設定画面コンテンツ453の一部または全てを端末装置140に送信する。ジョブ設定画面コンテンツ453は、画面コンテンツ454と、ジョブ設定定義コンテンツ457と、ジョブ生成機能コンテンツ460とを含む。
【0085】
画面コンテンツ454は、画面構成コンテンツ455と、画面制御スクリプト456とを含む。ジョブ設定定義コンテンツ457は、ジョブ設定定義情報458と、デフォルトのジョブ設定459とを含む。ジョブ生成機能コンテンツ460は、ジョブ制御コマンド定義情報461と、ジョブデータの加工処理の拡張機能462とを含む。各コンテンツの詳細については後述する。
【0086】
<C.通信シーケンス>
図5は、本システムにおける通信シーケンスの第1の例を示す図である。図5に示す処理は、端末装置140が情報処理装置100のジョブ設定データおよびドライバー設定情報を生成して保存するまでの処理である。図5に示す処理のうち、端末装置140において実行される処理を実行するために、CPU301は、1次記憶装置302に読み込まれたアプリケーション402を実行してもよい。また、図5に示す処理のうち、情報処理装置100において実行される処理を実行するために、CPU201は、RAM202に読み込まれた図5の処理を実行するためのプログラムを実行してもよい。図5の例では、アプリケーション402の共通処理機能501と、アプリケーション402のブラウザ機能502と、情報処理装置100(情報処理装置100で動作するプログラム)との通信を示す。共通処理機能501は、例えば、共通処理モジュール411およびその下位のモジュールと、UI操作モジュール405と、情報処理装置の検索モジュール406とを含む。ブラウザ機能502は、例えば、Webブラウザ機能モジュール404およびその下位のモジュールを含む。
【0087】
なお、共通処理機能501と、ブラウザ機能502との間の通信は、端末装置140の内部における通信であり、アプリケーション402内の各モジュール間の処理である。
【0088】
ステップS505において、共通処理機能501は、ユーザーから詳細設定画面を表示するための入力を受け付けたことに応じて、端末装置140に、詳細設定画面の表示指示を送信する。
【0089】
ステップS510において、ブラウザ機能502は、ジョブを実行する予定の情報処理装置100に、ジョブ設定画面コンテンツ453の要求を送信する。端末装置140は、少なくとも、画面コンテンツ454と、ジョブ設定定義コンテンツ457とを要求する。ある局面において、当該要求は、http(Hyper Text Transfer Protocol)リクエストであってもよい。
【0090】
ステップS515において、情報処理装置100は、ブラウザ機能502に、ジョブ設定画面コンテンツ453(画面コンテンツ454、ジョブ設定定義コンテンツ457)を送信する。
【0091】
ステップS520においてブラウザ機能502は、受信したジョブ設定画面コンテンツ453に基づいて、詳細設定画面を生成する。本ステップにて生成される詳細設定画面は、ジョブ設定画面に相当する。ステップS525において、ブラウザ機能502は、デフォルトのジョブ設定データを生成する。デフォルトのジョブ設定データは、画面制御用のジョブ設定データと、データ交換用のジョブ設定データとを生成するためのひな形として使用される。
【0092】
ステップS530において、ブラウザ機能502は、画面制御用のジョブ設定データを生成する。画面制御用のジョブ設定データは、設定画面でのユーザーからの入力内容を一時的に保存するためのデータである。ステップS535において、ブラウザ機能502は、データ交換用のジョブ設定データを生成して、当該データ交換用のジョブ設定データを2次記憶装置303に保存し得る。データ交換用のジョブ設定データは、詳細設定画面での入力が完了次第(ステップS550の処理の完了後)、画面制御用のジョブ設定データにより上書きされる。ブラウザ機能502は、設定画面において何も入力が変更されなかった場合に、デフォルトのジョブ設定データをデータ交換用のジョブ設定データとして2次記憶装置303に保存し得る。さらに、ブラウザ機能502は、データ交換用のジョブ設定データをドライバー設定情報に変換して、当該ドライバー設定情報を2次記憶装置303に保存し得る。
【0093】
ステップS540において、共通処理機能501は、ユーザーからのジョブ設定に関する入力を検出して、ブラウザ機能502に、当該入力の結果を反映する。ステップS545において、ブラウザ機能502は、ユーザーからのジョブ設定に関する入力に応じて、詳細設定画面を更新する。ステップS550において、共通処理機能501は、ユーザーからOKボタンの押下等の設定完了を示す入力があったことを検出する。ステップS555において、共通処理機能501は、ブラウザ機能502から取得した情報(設定の入力情報)に基づいて、画面制御用のジョブ設定データにより、データ交換用のジョブ設定データを上書きする。さらに、共通処理機能501は、交換用のジョブ設定データから、ドライバー設定情報を生成する。ある局面において、共通処理機能501は、上記のブラウザ機能502が実行した処理の一部をブラウザ機能502の代わりに実行してもよい。また、他の局面において、ブラウザ機能502は、上記の共通処理機能501が実行した機能の一部を共通処理機能501の代わりに実行してもよい。
【0094】
図6は、ジョブ設定画面コンテンツ453の構成の一例を示す図である。ジョブ設定画面コンテンツ453は、図5に示した詳細設定画面を生成するためのコンテンツであり、画面コンテンツ454と、ジョブ設定定義コンテンツ457とを含む。
【0095】
画面コンテンツ454は、画面構成コンテンツ455と、画面制御スクリプト456とを含む。画面構成コンテンツ455は、詳細設定画面のレイアウト、ディスプレイに表示される画像等を定義する。画面構成コンテンツ455は、一例として、HMTLファイル、CSSファイル、JSONまたはXML等の言語データおよび画像データを含む。
【0096】
画面制御スクリプト456は、詳細設定画面の動作を定義する。詳細設定画面の動作は、一例として、ユーザーにボタンを押されたときの動作、入力フォームに文字を入力されたときの動作等を含む。画面制御スクリプト456は、一例として、Javascriptファイル等を含む。
【0097】
ジョブ設定定義コンテンツ457は、ジョブ設定定義情報458と、デフォルトのジョブ設定459とを含む。ジョブ設定定義情報458は、詳細設定画面の各入力項目と、情報処理装置100の機能との対応付けを定義する。デフォルトのジョブ設定459は、詳細設定画面におけるユーザーが入力する前の設定内容を定義する。ある局面において、ステップS525のデフォルトのジョブ設定データは、当該デフォルトのジョブ設定459に基づいて生成されてもよい。他の局面において、ジョブ設定定義情報458と、デフォルトのジョブ設定459とは、JSONまたはXML等により定義されてもよい。さらに、他の局面において、ジョブ設定定義情報458と、デフォルトのジョブ設定459とは、HTMLのid属性またはname属性と、ジョブの設定とを対応付けていてもよい。
【0098】
図7は、データ交換用のジョブ設定データからドライバー設定情報を生成する方法の一例を示す図である。データ交換用のジョブ設定データは、上述したように、JSONまたはXML等により定義されるテキスト情報である。これに対して、ドライバー設定情報701は、アプリケーション402またはアプリケーション402に含まれるドライバー機能が解釈できるバイナリデータである。ドライバー設定情報701は、Public領域702と、Private領域703とを含む。Public領域702は、一例として、各情報処理装置100に共通の設定を含む。Private領域703は、一例として、か各情報処理装置100の固有の設定を含む。
【0099】
端末装置140は、データ交換用のジョブ設定データの設定値をPublic領域702またはPrivate領域703に書き込んでいく。端末装置140は、ドライバー設定情報701の適切な位置に設定値を書き込むために、Public領域702およびPrivate領域703のそれぞれのオフセットを管理し得る。オフセットは、Public領域702またはPrivate領域703のメモリーの先頭位置からのずれを示す。例えば、端末装置140は、Private領域703のメモリーの先頭から2バイト分の領域に、色調整の設定値を書き込んだとする。その場合、端末装置140は、Private領域703のオフセットを2にする。次に、端末装置140は、オフセットを参照して、Private領域703のメモリーの先頭から2バイト先の位置に、次の設定値を書き込む。このように、オフセットは、次の設定値を書き込むべきメモリー上の位置を示す。
【0100】
図8は、本システムにおける通信シーケンスの第2の例を示す図である。図8に示す処理は、端末装置140がジョブデータを生成するまでの処理である。図8に示す処理のうち、端末装置140において実行される処理を実行するために、CPU301は、1次記憶装置302に読み込まれたアプリケーション402を実行してもよい。また、図8に示す処理のうち、情報処理装置100において実行される処理を実行するために、CPU201は、RAM202に読み込まれた図8の処理を実行するためのプログラムを実行してもよい。なお、各処理の主体を図2の各モジュールやサーバーであるとして説明するが、実際には、これらの処理は、CPU201またはCPU301によって実行される。
【0101】
ステップS805において、全体制御モジュール422は、他のアプリケーションからジョブデータの生成開始またはジョブデータの投入の要求の入力を受け付ける。他のアプリケーションは、一例として、ドキュメント編集用のアプリケーション等である。また、ジョブデータの生成開始またはジョブデータの投入の要求の入力は、一例として、他のアプリケーション上でユーザーが印刷ボタン等を押した場合に発行される。ステップS810において、全体制御モジュール422は、ジョブ設定のモジュール412に、ジョブ設定の制御を要求する。ステップS815において、ジョブ設定のモジュール412は、交換用のジョブ設定データを読み込む。
【0102】
ステップS820において、ジョブ設定のモジュール412は、ジョブを実行させる予定の情報処理装置100のWebサーバー452に、ジョブ設定定義情報458を取得するためのhttpリクエストを送信する。ステップS825において、Webサーバー452は、ジョブ設定のモジュール412に、ジョブ設定定義情報458を送信する。より具体的には、Webサーバー452は、Web通信エンジン407に対して、ジョブ設定定義情報458を送信する。ジョブ設定のモジュール412は、Web通信エンジン407を介して、ジョブ設定定義情報458を取得する。
【0103】
ステップS830において、ジョブ設定のモジュール412は、取得したジョブ設定定義情報458に基づいて、交換用のジョブ設定データの整合性を検証する。すなわち、ジョブ設定のモジュール412は、交換用のジョブ設定データが、ジョブを実行させる予定の情報処理装置100に対応しているか否か、または今回通信する情報処理装置100と前回通信した情報処理装置100とが同一の装置であるか否かを判定する。ステップS835において、ジョブ設定のモジュール412は、全体制御モジュール422に、上記の検証結果を送信する。
【0104】
ステップS840において、全体制御モジュール422は、ジョブ生成機能のモジュール415に、ジョブデータに必要な情報の収集の実行を要求する。ステップS845において、ジョブ生成機能のモジュール415は、Webサーバー452に、ジョブ生成機能コンテンツ460を取得するためのhttpリクエストを送信する。
【0105】
ステップS850において、Webサーバー452は、ジョブ生成機能のモジュール415に、ジョブ生成機能コンテンツ460を送信する。より具体的には、Webサーバー452は、Web通信エンジン407に対して、ジョブ生成機能コンテンツ460を送信する。ジョブ生成機能のモジュール415は、Web通信エンジン407を介して、ジョブ生成機能コンテンツ460を取得する。
【0106】
ステップS855において、ジョブ生成機能のモジュール415は、ジョブ設定定義情報458と、ジョブ生成機能コンテンツ460に含まれるジョブ制御コマンド定義情報461とに基づいて、変換用データを生成する。
【0107】
ステップS860において、ジョブ生成機能のモジュール415は、取得したジョブデータの加工処理の拡張機能462に基づいて、ジョブデータの加工処理の拡張機能462の構成データを生成する。「構成データ」は、各種加工処理の選択情報および使用順序等を含む。ステップS865において、ジョブ生成機能のモジュール415は、全体制御モジュール422に、準備完了の通知を送信する。
【0108】
ステップS870において、全体制御モジュール422は、ジョブ生成モジュール419に、ジョブデータの生成要求を送信する。ある局面において、ジョブデータは、ドライバー設定情報を含んでいてもよい。他の局面において、ジョブ生成モジュール419は、1次記憶装置302に記憶されているドライバー設定情報を直接参照してもよい。
【0109】
ステップS875において、ジョブ生成モジュール419は、ドライバー設定情報と、変換用データとに基づいて、ジョブデータを生成する。さらに、ジョブ生成モジュール419は、ジョブデータの加工の拡張機能の構成データに基づいて、ジョブデータに加工処理を追加する。ある局面において、ジョブ生成モジュール419は、ジョブデータの加工の拡張機能の構成データに基づいて、ドライバー設定情報に加工処理の設定値を追加してもよい。ステップS880において、ジョブ生成モジュール419は、Webサーバー452に、ジョブデータを送信する。
【0110】
図9は、図8においてWebサーバー452が配信するジョブ設定定義コンテンツ457およびジョブ生成機能コンテンツ460の一例を示す図である。図8においてWebサーバー452が配信するジョブ設定定義コンテンツ457は、図5及び図6で示したジョブ設定定義コンテンツ457と同一のデータであり、交換用のジョブ設定データの検証に使用される。
【0111】
ジョブ生成機能コンテンツ460は、ジョブ制御コマンド定義情報461と、ジョブデータの加工処理の拡張機能462とを含む。上述したように、ジョブ制御コマンド定義情報461は、全ての制御コマンドと、各制御コマンドに対応する設定項目とを含む。例えば、制御コマンド910Aは、色調整の設定に対応する制御コマンドであり、制御コマンド910Bは、色設定に対応する制御コマンドである。ジョブデータの加工処理の拡張機能462は、各種加工機能を実現するためのソフトウェアモジュール、マクロその他のプログラムである。
【0112】
図10は、変換用データ1000の一例を示す図である。変換用データ1000は、ジョブ制御コマンド定義情報461から、情報処理装置100がサポートする全ての設定項目と、それらの設定項目に対応する制御コマンドとを抽出したデータである。端末装置140は、変換用データ1000に基づいて、ドライバー設定情報からジョブデータを生成する。
【0113】
<D.フローチャート>
(D-1.ジョブ設定データおよびドライバー設定情報の生成)
次に、図11図25を参照して、アプリケーション402がジョブ設定データおよびドライバー設定情報を生成するまでの処理の流れについて説明する。ある局面において、CPU301は、図11図25の処理を行うためのプログラム(アプリケーション402)を2次記憶装置303から1次記憶装置302に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0114】
図11は、ジョブ設定の入力を受け付けて反映するまでの処理のフローチャートの一例である。ステップS1110において、CPU301は、アプリケーション402のジョブ設定画面をディスプレイに表示する。ある局面において、ディスプレイは、出力インターフェイス306を介して、端末装置140に接続されてもよい。他の局面において、端末装置140は、ディスプレイを内蔵していてもよい。
【0115】
ステップS1120において、CPU301は、ユーザーから詳細設定画面の表示の指示を受け付ける。ステップS1130において、CPU301は、詳細設定画面の表示処理を実行する。詳細設定画面の表示処理の詳細は、図12を参照して説明する。
【0116】
ステップS1140において、CPU301は、UI応答処理を実行する。UI応答処理の詳細は、図22を参照して説明する。ステップS1150において、CPU301は、詳細設定画面の設定反映処理を実行する。詳細設定画面の設定反映処理の詳細は、図23を参照して説明する。
【0117】
図12は、詳細設定画面の表示処理のフローチャートの一例である。ステップS1210において、CPU301は、アプリケーション402のWebブラウザ機能の起動処理を実行する。ステップS1220において、CPU301は、ジョブ設定画面コンテンツを取得する処理を実行する。ジョブ設定画面コンテンツ取得処理の詳細は、図13を参照して説明する。
【0118】
ステップS1230において、CPU301は、ジョブ設定画面レンダリング処理を実行する。ジョブ設定画面レンダリング処理の詳細は、図14を参照して説明する。ステップS1240において、CPU301は、ジョブ設定データ生成処理を実行する。ジョブ設定データ生成処理の詳細は、図17を参照して説明する。ステップS1250において、CPU301は、ジョブ設定画面の制御処理を実行する。ジョブ設定画面の制御処理の詳細は、図21を参照して説明する。
【0119】
図13は、ジョブ設定画面コンテンツ取得処理フローチャートの一例である。ステップS1310において、CPU301は、Webサーバー452から、画面コンテンツ454を取得する。ステップS1320において、CPU301は、Webサーバー452から、ジョブ設定定義コンテンツ457を取得する。ある局面において、CPU301は、ステップS1310の処理およびS1320の処理を同時に実行してもよい。
【0120】
図14は、ジョブ設定画面レンダリング処理のフローチャートの一例である。ステップS1410において、CPU301は、画面構成コンテンツ455の表示処理を実行する。より具体的には、CPU301は、画面構成コンテンツ455に含まれる情報に基づいて、詳細設定画面のレイアウトを定義する。ステップS1420において、CPU301は、画面制御スクリプト456の起動処理を実行する。画面制御スクリプト456の起動処理の詳細は、図15を参照して説明する。
【0121】
図15は、画面制御スクリプト456の起動処理のフローチャートの一例である。ステップS1510において、CPU301は、詳細設定画面の作成に使用するフレームワーク、ライブラリ等を起動させる、または読み込む。ステップS1520において、CPU301は、デフォルトのジョブ設定画面の作成処理を実行する。デフォルトのジョブ設定画面の作成処理の詳細は、図16を参照して説明する。
【0122】
図16は、デフォルトのジョブ設定画面の作成処理のフローチャートの一例である。ステップS1610において、CPU301は、ジョブ設定定義情報458から設定項目の情報を取得する。ステップS1620において、CPU301は、ジョブ設定画面(詳細設定画面)のUIコントロールに、設定項目の情報を反映する。UIコントロールは、例えば、HTMLファイルの各要素(ボタン、プルダウン等)からなるコントロールである。ステップS1630において、CPU301は、デフォルトのジョブ設定459からデフォルトの設定値を取得する。ステップS1640において、CPU301は、ジョブ設定画面のUIコントロールの表示をデフォルトの設定値にする。
【0123】
図17は、ジョブ設定データ生成処理のフローチャートの一例である。ステップS1710において、CPU301は、データ交換用のジョブ設定データの生成処理を実行する。データ交換用のジョブ設定データの生成処理の詳細は、図18を参照して説明する。ステップS1720において、CPU301は、画面制御用のジョブ設定データの生成処理を実行する。ある局面において、CPU301は、ステップS1710にて生成したデータ交換用のジョブ設定データを画面制御用のジョブ設定データとして複製してもよい。
【0124】
図18は、データ交換用のジョブ設定データの生成処理のフローチャートの一例である。ステップS1810において、CPU301は、デフォルトのジョブ設定459を複製する。CPU301は、複製したデフォルトのジョブ設定459に基づいて、交換用のジョブ設定データおよび画面制御用のジョブ設定データを生成する。
【0125】
ステップS1820において、CPU301は、2次記憶装置303に保存されているドライバー設定情報の値をデータ交換用のジョブ設定データに反映する処理を実行する。2次記憶装置にドライバー設定情報が保存されていない場合、CPU301は、ステップS1820の処理を実行しなくてもよい。ある局面において、CPU301は、事前に使用しことのあるドライバー設定情報を流用して新しいデータ交換用のジョブ設定データを作成する場合に、ステップS1820の処理を実行し得る。2次記憶装置303に保存されているドライバー設定情報の設定値をデータ交換用のジョブ設定データに反映する処理の詳細は、図19を参照して説明する。
【0126】
図19は、2次記憶装置303に保存されているドライバー設定情報の設定値をデータ交換用のジョブ設定データに反映する処理のフローチャートの一例である。下記の処理により、CPU301は、2次記憶装置303に保存されているドライバー設定情報の設定値を読み出して、交換用のジョブ設定データに上書きする。
【0127】
ステップS1905において、CPU301は、ドライバー設定情報のPrivate領域703の開始アドレスを取得する。ステップS1910において、CPU301は、ドライバー設定情報のPrivate領域703のオフセットを0に設定する。ステップS1915において、CPU301は、データ交換用のジョブ設定データ内に定義されているtabキーのオブジェクト総数(詳細設定画面のタブ総数)を取得する。
【0128】
ステップS1920において、CPU301は、tabキーのオブジェクト総数分だけ以降の処理を繰り返す。ステップS1925において、CPU301は、tabキーのオブジェクト情報を取得する。ステップS1930において、CPU301は、functionsキーのオブジェクト総数(詳細設定画面のtabごとの設定項目の総数)を取得する。
【0129】
ステップS1935において、CPU301は、functionsキーのオブジェクト総数分だけステップS1940~S1965までの処理を繰り返す。ステップS1940において、CPU301は、functionsキーのオブジェクト情報を取得する。ステップS1945において、CPU301は、functionsキーのオブジェクト情報に含まれるvalue_typeキー(ジョブ設定値のデータ型)のValueを取得する。
【0130】
ステップS1950において、CPU301は、functionsキーのオブジェクト情報に含まれるvalue_memsizeキー(ジョブ設定値のデータサイズ情報)のValueを取得する。ステップS1955において、CPU301は、functionsキーのオブジェクト情報に含まれるドライバー設定情報のPrivate領域703のオフセット位置のデータ(設定値)を取得する。
【0131】
ステップS1960において、CPU301は、ドライバー設定情報から取得したデータ(設定値)の各々を交換用のジョブ設定データのvalueキーのValueの各々に上書きする。ステップS1965において、CPU301は、value_memsizeキーのValueをドライバー設定情報のPrivaite領域のオフセットに加算する。CPU301は、オフセットを1次記憶装置302または2次記憶装置303に保存し得る。
【0132】
図20は、図19のフローチャートによるデータの流れの一例を示す模式図である。CPU301は、ドライバー設定情報のPrivate領域2001に格納された設定値の各々を読み出して、これらの設定値をデータ交換用のジョブ設定データの各設定のvalueキーのValueとして設定する。CPU301は、オフセットを求めるために、value_memsizeのValueを使用する。
【0133】
図21は、ジョブ設定画面の制御処理のフローチャートの一例である。ステップS2110において、CPU301は、画面制御用のジョブ設定データの生成に必要な情報を取得する。ある局面において、CPU301は、交換用のジョブ設定データまたはデフォルトのジョブ設定459を複製してもよい。ステップS2120において、CPU301は、画面制御用のジョブ設定データの設定値をジョブ設定データのUIコントロールの表示に反映する。
【0134】
図22は、UI応答処理のフローチャートの一例である。ステップS2210において、CPU301は、ジョブ設定画面のUI応答処理を開始する。CPU301は、ジョブ設定画面におけるユーザーの入力を受け付ける。
【0135】
ステップS2220において、CPU301は、詳細設定画面のOKボタンが押されたか(設定内容を保存する入力を受け付けたか)否かを判定する。CPU301は、詳細設定画面のOKボタンが押されたと判定した場合(ステップS2220にてYES)、ジョブ設定画面の制御処理を終了する。そうでない場合(ステップS2220にてNO)、CPU301は、制御をステップS2230に移す。
【0136】
ステップS2230において、CPU301は、ジョブ設定画面のUIが操作されたか否かを判定する。ここでのジョブ設定画面のUIとは、OKボタン以外のUIコントロールを指す。CPU301は、ジョブ設定画面のUIが操作されたと判定した場合(ステップS2230にてYES)、制御をステップS2240に移す。そうでない場合(ステップS2230にてNO)、制御をステップS2220に移す。ステップS2240において、CPU301は、UI操作されたコントロールに対するUI応答処理を実行する。
【0137】
図23は、詳細設定画面の設定反映処理のフローチャートの一例である。ステップS2310において、CPU301は、詳細設定画面のOKボタンが押下されたか否かを判定する。CPU301は、詳細設定画面のOKボタンが押下されたと判定した場合(ステップS2310にてYES)、制御をステップS2320に移す。そうでない場合(ステップS2310にてNO)、CPU301は、制御をステップS2340に移す。
【0138】
ステップS2320において、CPU301は、データ交換用のジョブ設定データの更新処理を実行する。データ交換用のジョブ設定データの更新処理の詳細は、図24を参照して説明する。
【0139】
ステップS2330において、CPU301は、ドライバー設定情報の更新処理を実行する。ドライバー設定情報の更新処理の詳細は、図25を参照して説明する。ステップS2340において、CPU301は、Webブラウザ機能を終了する。
【0140】
図24は、データ交換用のジョブ設定データの更新処理のフローチャートの一例である。ステップS2410において、CPU301は、画面制御用のジョブ設定データの設定値を取得する。当該設定値は、詳細設定画面にて入力された設定値である。ステップS2420において、CPU301は、画面制御用のジョブ設定データの設定値をデータ交換用のジョブ設定データに反映する。
【0141】
図25は、ドライバー設定情報の更新処理のフローチャートの一例である。下記の処理により、CPU301は、交換用のジョブ設定データの設定値を2次記憶装置303に保存されているドライバー設定情報に反映する。
【0142】
ステップS2505において、CPU301は、ドライバー設定情報のPrivate領域703の開始アドレスを取得する。ステップS2510において、CPU301は、ドライバー設定情報のPrivate領域703のオフセットを0に設定する。ステップS2515において、CPU301は、データ交換用のジョブ設定データ内に定義されているtabキーのオブジェクト総数(詳細設定画面のタブ総数)を取得する。
【0143】
ステップS2520において、CPU301は、tabキーのオブジェクト総数分だけ以降の処理を繰り返す。ステップS2525において、CPU301は、tabキーのオブジェクト情報を取得する。ステップS2530において、CPU301は、functionsキーのオブジェクト総数(詳細設定画面のtabごとの設定項目の総数)を取得する。
【0144】
ステップS2535において、CPU301は、functionsキーのオブジェクト総数分だけステップS2540~S2570までの処理を繰り返す。ステップS2540において、CPU301は、functionsキーのオブジェクト情報を取得する。ステップS2545において、CPU301は、functionsキーのオブジェクト情報に含まれるvalue_typeキー(ジョブ設定値のデータ型)のValueを取得する。ステップS2550において、CPU301は、functionsキーのオブジェクト情報に含まれるvalue_memsizeキー(ジョブ設定値のデータサイズ情報)のValueを取得する。
【0145】
ステップS2555において、CPU301は、valueキーのValueを取得する。ステップS2560において、CPU301は、ドライバー設定情報のPrivate領域703のオフセットを取得する。
【0146】
ステップS2565において、CPU301は、取データ交換用のジョブ設定データから取得した設定値をドライバー設定情報のPrivate領域703のオフセットの示す位置に書き込む。ステップS2570において、CPU301は、value-memsizeキーのValueをドライバー設定情報のPrivate領域703のオフセットに加算する。
【0147】
(D-2.ジョブの実行)
次に、図26図33を参照して、アプリケーション402による情報処理装置100へのジョブデータの送信までの処理の流れについて説明する。ある局面において、CPU301は、図26図33の処理を行うためのプログラム(アプリケーション402)を2次記憶装置303から1次記憶装置302に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0148】
図26は、アプリケーション402によるジョブデータを生成する処理のフローチャートの一例である。ステップS2610において、CPU301は、ユーザーからのアプリケーション402起動要求の入力等に基づいて、アプリケーション402のジョブ設定画面を開く。ステップS2620において、CPU301は、ユーザーからジョブデータを情報処理装置100に送信する指示を受け付ける。ある局面において、CPU301は、ユーザーからジョブデータの生成指示を受け付けてもよい。
【0149】
ステップS2630において、CPU301は、ドライバー設定情報を読み込む。ドライバー設定情報の読込み処理の詳細は、図27を参照して説明する。ステップS2640において、CPU301は、ジョブ生成機能を構成する処理を実行する。ジョブ生成機能を構成する処理は、主に、ジョブデータの生成に必要なデータを準備する処理である。ジョブ生成機能を構成する処理の詳細は、図29を参照して説明する。ステップS2650において、CPU301は、ジョブ生成処理を実行する。ジョブ生成処理の詳細は、図33を参照して説明する。
【0150】
図27は、交換用のジョブ設定データの読込み処理のフローチャートの一例である。ステップS2710において、CPU301は、情報処理装置100から、ジョブ設定定義コンテンツ457を取得する。ステップS2720において、CPU301は、交換用のジョブ設定データの整合性の検証処理を実行する。交換用のジョブ設定データの整合処理の詳細は、図28を参照して説明する。
【0151】
図28は、交換用のジョブ設定データの整合性の検証処理のフローチャートの一例である。ステップS2810において、CPU301は、2次記憶装置303から交換用のジョブ設定データを取得する。ステップS2820において、CPU301は、前回ジョブを送信した情報処理装置100における交換用のジョブ設定データと、今回の情報処理装置100のジョブ設定定義情報458とを比較する。
【0152】
ステップS2830において、CPU301は、情報処理装置100の切り替えがあるか否かを判定する。CPU301は、一例として、前回ジョブを送信した情報処理装置100における交換用のジョブ設定データと、今回の情報処理装置100のジョブ設定定義情報458とに不整合が在ることに基づいて、情報処理装置100の切り替えがあると判定し得る。ここでの不整合とは、例えば、交換用のジョブ設定データが、今回の情報処理装置100がサポートしない設定項目を含むこと等を含む。CPU301は、情報処理装置100の切り替えがあると判定した場合(ステップS2830にてYES)、交換用のジョブ設定データの整合処理を完了する。そうでない場合(ステップS2830にてNO)、CPU301は、制御をステップS2840に移す。
【0153】
ステップS2840において、CPU301は、今回の情報処理装置100のデータ交換用のジョブ設定データの生成処理を実行する。情報処理装置100の切り替えが発生しているため、CPU301は、前回ジョブを送信した情報処理装置100の交換用のジョブ設定データを使用することができない。そこで、CPU301は、図5のステップS505~S535を繰り返して、今回の情報処理装置100のデータ交換用のジョブ設定データを生成する。
【0154】
なお、本ステップの処理はユーザーにUI等を表示する必要はないため、CPU301は、ステップS505~S535の処理から、ユーザーへの情報の提示および入力の受け付けに関する処理を実行しなくてもよい。
【0155】
次に、CPU301は、今回の情報処理装置100のデータ交換用のジョブ設定データに、前回ジョブを送信した情報処理装置100のドライバー設定データの一部または全てを反映させる。当該処理により、CPU301は、前回ジョブを送信した情報処理装置100の設定の中から今回の情報処理装置100の設定に使用できるものを流用し得る。
【0156】
ある局面において、CPU301は、今回の情報処理装置100に対応するデータ交換用のジョブ設定データを生成するためのジョブ設定画面をディスプレイに表示して、ユーザーから設定の入力を受け付けてもよい。
【0157】
ステップS2850において、CPU301は、ドライバー設定データを更新する。具体的には、CPU301は、今回の情報処理装置100の交換用のジョブ設定データに基づいて、ドライバー設定データを更新する。言い換えれば、CPU301は、前回ジョブを送信した情報処理装置100のドライバー設定データを今回の情報処理装置100のドライバー設定データに書き換えている。
【0158】
図29は、ジョブ生成機能を構成する処理のフローチャートの一例である。ステップS2910において、CPU301は、情報処理装置100から、ジョブ生成機能コンテンツ460を取得する。ジョブ生成機能コンテンツ460は、制御コマンドを含むジョブ制御コマンド定義情報461と、ジョブデータの加工処理の拡張機能462とを含む。
【0159】
ステップS2920において、CPU301は、変換用データを作成する。変換用データの作成処理の詳細は、図30を参照して説明する。ステップS2930において、CPU301は、ジョブデータ情報加工処理を構成する処理を実行する。ジョブデータ情報加工処理を構成する処理の詳細は、図32を参照して説明する。
【0160】
図30は、変換用データの作成処理のフローチャートの一例である。ステップS3010において、CPU301は、情報処理装置100から受信したジョブ設定定義情報458を複製する。CPU301は、複製したジョブ設定定義情報458を変換用データとして2次記憶装置303に保存する。ステップS3020において、CPU301は、ジョブ制御コマンド定義情報461に含まれる情報を変換用データに反映する処理を実行する。ジョブ制御コマンド定義情報461に含まれる情報を変換用データに反映する処理の詳細は、図31を参照して説明する。
【0161】
図31は、ジョブ制御コマンド定義情報461に含まれる情報を変換用データに反映する処理のフローチャートの一例である。ステップS3105において、CPU301は、ジョブ制御コマンド定義情報461内に定義されるtabキーのオブジェクト総数(詳細設定画面のタブ総数)を取得する。ステップS3110において、CPU301は、tabキーのオブジェクト総数分だけ以下の処理を繰り返す。ステップS3115において、CPU301は、tabキーのオブジェクト情報を取得する。
【0162】
ステップS3120において、CPU301は、tab内のfunctionsキーのオブジェクト総数(詳細設定画面の設定項目の総数)を取得する。ステップS3125において、CPU301は、functionsキーのオブジェクト総数分だけ以下の処理を繰り返す。ステップS3130において、CPU301は、functionsキーのオブジェクト情報を取得する。
【0163】
ステップS3135において、CPU301は、pjl_commandキーの情報を取得する。pjl_commandキーの情報は、PJL(Printer Job Language)の制御命令を含む。ある局面において、ジョブ制御コマンド定義情報461は、PJL以外のフォーマットの制御命令と、そのcommandキーとを含んでいてもよい。
【0164】
ステップS3140において、CPU301は、pjl_command_memsizeキー(コマンドデータサイズ情報)の情報を取得する。ステップS3145において、CPU301は、pjl_commandキーの情報と、pjl_command_memsizeキーの情報とを変換用データ内の該当するオブジェクトに追記する。
【0165】
図32は、ジョブデータ情報加工処理を構成する処理のフローチャートの一例である。ステップS3210において、CPU301は、情報処理装置100から取得したジョブデータの加工処理の拡張機能462の総数を取得する。ステップS3220において、CPU301は、ジョブデータ情報の加工処理の拡張機能の総数分だけ、次の処理を繰り返す。ステップS3230において、CPU301は、ジョブデータ情報の加工処理の拡張機能に関する情報を構成データに反映する。
【0166】
図33は、ジョブ生成処理のフローチャートの一例である。ステップS3310において、CPU301は、ジョブデータ情報の加工処理を実行する。本ステップの処理において、CPU301は、構成データに基づいて、ジョブデータに加工処理を追加する。
【0167】
ステップS3320において、CPU301は、変換用データに基づいて、ジョブ制御コマンドを生成する。CPU301は、生成したジョブ制御コマンド、オブジェクトおよび加工処理の情報を含むジョブデータを情報処理装置100に送信する。
【0168】
<E.応用機能>
次に、図34図39を参照して、本システムが提供する情報処理装置100の選択機能、各種コンテンツの取得タイミングの設定等の機能について説明する。図34は、ネットワーク上で構成されている情報処理装置100を検出する機能の一例を示す図である。端末装置140は、選択画面3410,3420で、複数の情報処理装置100のいずれかを選択し得る。端末装置140は、ジョブ設定画面3440で、選択した情報処理装置100から取得したジョブ設定コンテンツを閲覧、編集することができる。
【0169】
端末装置140は、選択した情報処理装置100が前回通信した情報処理装置100と異なる場合、2次記憶装置303に保存してあるデータ交換用のジョブ設定データおよびドライバー設定データを更新する。より具体的には、端末装置140は、図28のステップS2840,S2850の処理により、選択した情報処理装置100のデータ交換用のジョブ設定データおよびドライバー設定データを生成し得る。その際、端末装置140は、前回通信した情報処理装置100のドライバー設定データの一部または全てを流用し得る。
【0170】
図35は、情報処理装置100の切り替え画面の一例を示す図である。端末装置140は、例えば、情報処理装置100の選択ボタン3510を備えた情報処理装置100のプロパティ画面等によって、情報処理装置100を選択してもよい。
【0171】
図36は、コンテンツ取得タイミングの設定画面3600の一例である。端末装置140は、コンテンツ取得タイミングの設定画面3600で、情報処理装置100からジョブ設定画面コンテンツ453等を取得する周期を設定し得る。端末装置140は、当該周期の設定を2次記憶装置303に保存してもよい。
【0172】
図37は、コンテンツ取得失敗時のエラー画面3700の一例である。端末装置140は、情報処理装置100からジョブ設定画面コンテンツ453等を取得することに失敗した場合、ディスプレイにコンテンツ取得失敗時のエラー画面3700を表示してもよい。
【0173】
図38は、再接続通知画面3800の一例を示す図である。端末装置140は、情報処理装置100との通信が再確立した場合、ディスプレイに再接続通知画面3800を表示してもよい。
【0174】
図39は、ジョブ設定定義情報458の更新通知画面3900の一例である。端末装置140は、新しく情報処理装置100から取得したジョブ設定定義情報458と、以前に取得した情報処理装置100から取得したジョブ設定定義情報458とを比較して、差分がある場合、ディスプレイにジョブ設定定義情報458の更新通知画面3900を表示してもよい。
【0175】
以上説明した通り、端末装置140およびアプリケーション402は、本プログラムのWebブラウザ機能を使用して、画面コンテンツおよびジョブ設定定義コンテンツから、個別の情報処理装置100のジョブ設定画面を生成する。当該処理により、端末装置140およびアプリケーション402は、単一のプログラムで、複数の情報処理装置100のジョブ設定画面を表示することができる。
【0176】
さらに、端末装置140およびアプリケーション402は、任意の情報処理装置100から受信したコンテンツに基づくジョブ設定画面の設定値からドライバー設定情報を生成する。さらに、端末装置140およびアプリケーション402は、必要に応じて、ドライバー設定情報と、情報処理装置100から取得した各種情報とに基づいて、ジョブデータを生成する。当該処理により、端末装置140およびアプリケーション402は、単一のプログラムにより、任意の情報処理装置100に対応するジョブデータを生成し得る。また、端末装置140およびアプリケーション402は、通信したことのある情報処理装置100、および通信したことのある情報処理装置100と同機種の情報処理装置100にジョブデータを送信するときに、ドライバー設定情報を再利用し得る。
【0177】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0178】
50 制御部、60 操作パネル、61 表示部、62 操作部、100 情報処理装置、140 端末装置、150 プリントコントローラー、201,301 CPU、202 RAM、203 ROM、204 原稿読取回路、205 画像受信回路、206 現像回路、207 定着回路、210 記憶装置、211 ファクシミリ回路、212 有線インターフェイス、213 無線インターフェイス、214 ユーザー認証回路、302 1次記憶装置、303 2次記憶装置、304 外部機器インターフェイス、305 入力インターフェイス、306 出力インターフェイス、307 通信インターフェイス、402 アプリケーション、403 ジョブ設定画面モジュール、404 Webブラウザ機能モジュール、405 UI操作モジュール、406 情報処理装置の検索モジュール、407 Web通信エンジン、408 Web画面制御エンジン、409 Web画面コンテンツ処理モジュール、410 ジョブ設定定義コンテンツモジュール、411 共通処理モジュール、412 ジョブ設定のモジュール、413 ジョブ設定データ作成モジュール、414 ジョブ設定データモジュール、415 ジョブ生成機能のモジュール、416 拡張コンテンツ取得モジュール、417 変換用データ作成モジュール、418 ジョブデータの加工処理の構成モジュール、419 ジョブ生成モジュール、420 加工処理モジュール、421 ジョブ制御コマンド生成モジュール、422 全体制御モジュール、450 情報処理装置群、452 Webサーバー、453 ジョブ設定画面コンテンツ、454 画面コンテンツ、455 画面構成コンテンツ、456 画面制御スクリプト、457 ジョブ設定定義コンテンツ、458 ジョブ設定定義情報、459 デフォルトのジョブ設定、460 ジョブ生成機能コンテンツ、461 ジョブ制御コマンド定義情報、462 ジョブデータの加工処理の拡張機能、501 共通処理機能、502 ブラウザ機能、701 ドライバー設定情報、702 Public領域、703 Private領域、910A,910B 制御コマンド、1000 変換用データ、3410,3420 選択画面、3440 ジョブ設定画面、3510 選択ボタン、3600 コンテンツ取得タイミングの設定画面、3700 コンテンツ取得失敗時のエラー画面、3800 再接続通知画面、3900 更新通知画面。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39