Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. WO2020110767 - DISPOSITIF DE TRAITEMENT D'INFORMATIONS, DISPOSITIF SERVEUR, PROCÉDÉ DE COMMANDE ET PROGRAMME DE COMMANDE

Document

明 細 書

発明の名称 情報処理装置、サーバ装置、制御方法、制御プログラム

技術分野

0001  

背景技術

0002   0003   0004  

先行技術文献

特許文献

0005  

非特許文献

0006  

発明の概要

発明が解決しようとする課題

0007   0008  

課題を解決するための手段

0009  

発明の効果

0010  

図面の簡単な説明

0011  

発明を実施するための形態

0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14  

明 細 書

発明の名称 : 情報処理装置、サーバ装置、制御方法、制御プログラム

技術分野

[0001]
 本発明は、画像形成装置と通信する情報処理装置、サーバ装置等に関する。

背景技術

[0002]
 プリンタドライバを利用し、印刷装置に対して印刷データを送信する構成がある。ホストコンピュータには、オペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合する印刷装置に適したプリンタドライバを提供することにより、そのOSを用いてプリンタに印刷を指示する手段を提供することができる。機能が異なる複数種類の印刷装置を制御するためのプリンタドライバとしてユニバーサルプリンタードライバーと称されるプリンタドライバが知られている(特許文献1)。
[0003]
 特許文献1に開示されているようなユニバーサルプリンタードライバーは、印刷装置を提供するベンダ毎に提供されている。しかし、異なった印刷装置を提供するベンダの印刷装置を1つのユニバーサルプリンタードライバーで対応することは困難であった。
[0004]
 また、上述の仕組みを実現するために、前述したIPP Everywhere(登録商標)などに代表されるIPPに準拠する仕組みを使用したいわゆる共通プリンタドライバを利用できるようにすることが考えられる(非特許文献1)。

先行技術文献

特許文献

[0005]
特許文献1 : 特開2015-135658

非特許文献

[0006]
非特許文献1 : IPP Implementor’s Guide v2.0 (IG)https://ftp.pwg.org/pub/pwg/candidates/cs-ippig20-20150821-5100.19.pdf

発明の概要

発明が解決しようとする課題

[0007]
 共通プリンタドライバに対して、所定の画像形成装置用の拡張アプリケーションを関連付けの上セットアップする。これにより、共通プリンタドライバの機能を柔軟に拡張したり、画像形成装置の機能をより活用したりするための仕組みが考慮されうる。
[0008]
 しかしながら、拡張アプリケーションをクライアント側においてどのようなタイミングでもしくはどのようにしてセットアップして共通プリンタドライバを拡張させるかの仕組みは考えられていなかった。

課題を解決するための手段

[0009]
 本発明の一つの側面として、プリンタドライバをインストール可能であり、サーバ装置および画像形成装置と通信可能な情報処理装置において、前記画像形成装置の識別情報を受信する受信手段と、前記受信手段が受信した前記画像形成装置の識別情報を前記サーバ装置に対して送信する送信手段と、サーバ装置から送信されてくる拡張アプリケーションであって尚且つ前記送信手段により送信された前記画像形成装置の識別情報に対応する拡張アプリケーションと、前記プリンタドライバとを関連付ける処理を実行する実行手段を有する情報処理装置が一例として開示される。

発明の効果

[0010]
 本実施形態の一つの側面として、所定のプリンタドライバに対して、画像形成装置の機能を活用できる拡張アプリケーションを関連付けることができるという効果がある。

図面の簡単な説明

[0011]
[図1] 第1の実施形態における印刷システムの一例を示す図である。
[図2] クライアントコンピュータのハードウェア構成を示すブロック図である。
[図3] クライアントコンピュータのソフトウェア構成を示すブロック図である。
[図4] プリンタ、プリンタキュー、プリント拡張アプリとの関係を示す図である。
[図5] プリンタキュー生成とプリント拡張アプリとの関連付けフロー図である。
[図6] 従来のプリンタドライバとプリント拡張アプリの関連付けフロー図である。
[図7] 実施形態におけるプリンタドライバとプリント拡張アプリの関連付けフロー図である。
[図8] 拡張アプリ検索サーバが行う処理のフロー図である。
[図9] 拡張アプリ配信サーバが行う処理のフロー図である。
[図10] プリンタのHWIDとプリント拡張アプリの対応表である。
[図11] 第2の実施形態における印刷システムの一例を示す図である。
[図12] 共通プリンタドライバとプリント拡張アプリの関連付けフロー図である。
[図13] 拡張アプリ配信サーバが行う処理のフロー図である。
[図14] プリント拡張アプリがプリンタキューに対応しているか判断する処理のフロー図である。

発明を実施するための形態

[0012]
 以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
[0013]
 <第1の実施形態>
 まず図1を用いて、本発明に係る印刷システムの構成を説明する。図1は、本発明に係る印刷システムの一例を示す図である。本実施形態の印刷システムは、クライアントコンピュータ101、ページ記述言語(PDL)形式の印刷データを受信し印刷を行うプリンタA102、プリンタB103、各種サーバ、を備える。各種サーバは具体的には拡張アプリを配信する配信サーバ105、配信サーバ105から所望の拡張アプリを取得する検索サーバ106から成る。さらにドライバを配信するドライバ配信サーバ107、ドライバに関連付けられたデバイス管理部(以降、メタデータと呼ぶ)を配信するメタデータ配信サーバ308から成る。各装置は、Wide Area Network(WAN)を含むネットワーク104を通じて相互に通信可能である。
[0014]
 なお、プリンタ102及びプリンタ103は、印刷機能のみを備えるシングルファンクションプリンタでも、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタでも構わない。また、クライアントコンピュータ101は、ネットワーク104に対し一台に限らず、複数台接続されていてもよい。クライアントコンピュータ101は、プリンタ102などに印刷データを送信することができる。プリンタドライバは、スキャナドライバでも構わない。また、プリンタ拡張アプリは、スキャナ拡張アプリでも構わない。
[0015]
 図2は、図1のクライアントコンピュータ101のハードウェア構成を示すブロック図である。クライアントコンピュータ101は、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、外部メモリ209、ROM(Read Only Memory)203を有する。
[0016]
 CPU201を含む制御部200は、クライアントコンピュータ101全体の動作を制御する。CPU201は、ROM203又は外部メモリ209に記憶されたプログラムをRAM202に展開し、それを実行してUI画面の制御や印刷データの生成、印刷データの転送などの各種制御を行う。ROM203は、CPU201で実行可能な制御プログラムやブートプログラム等を格納する。RAM202は、CPU201の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。外部メモリI/F208を介して制御部200に接続される外部メモリ209は、OS210、アプリケーション212、アプリケーション実行環境213、プリンタドライバ211などを記憶する。
[0017]
 本実施形態では外部メモリ209としてHDD(Hard Disk Drive)等の補助記憶装置を想定しているが、HDDの代わりにSSD(Solid State Drive)などの不揮発性メモリを用いるようにしても良い。このように、CPU201、ROM203、RAM202、外部メモリ209等のハードウェアは、いわゆるコンピュータを構成している。
[0018]
 操作入力装置I/F204は、キーボードやポインティングデバイス(マウス)、タッチ入力デバイスなどの操作入力装置205を制御するインタフェースである。操作入力装置205は、ユーザからの操作を受け付ける受付部として機能する。ディスプレイI/F206はディスプレイ207への画面の表示を制御する。ディスプレイ207は、ユーザに対して情報を表示する表示部として機能する。
[0019]
 制御部200は、ネットワークI/F214を介してネットワーク104に接続される。ネットワークI/F214は、ネットワーク104上のプリンタに印刷データを送信したり、ネットワーク104上の各種サーバから拡張アプリケーションやプリンタドライバなどを受信したりする。なお、ネットワーク104上の外部端末とのデータ通信は例えばIEEE802.11シリーズに準拠する無線通信やLTEや5Gなどの移動通信システムや、LANケーブルなどの有線ケーブルを介した通信である。
[0020]
 続けて、図3を用いて、クライアントコンピュータ101のソフトウェア構成の一例について説明する。まず、クライアントコンピュータ101内の動作ソフトウェアについて説明する。クライアントコンピュータ101内のソフトウェアは、OS210、アプリケーション実行環境213とアプリケーション212の3つの層から構成される。
[0021]
 まず、OS210を構成する個々の要素について説明する。OS210は、大きくプリンティングシステム337、プリンタドライバ211、外部設定ファイル群352とスレッドプール355から構成される。
[0022]
 まず、外部設定ファイル群352について説明する。外部設定ファイル群352に含まれるメタデータ320は、プリント拡張アプリ300のプリント拡張アプリ識別子とプリンタドライバ211のプリンタキュー308のHWID(HardwareId)の識別子を持ち、各々を関連付ける役割を持つ。
[0023]
 ただし、メタデータ320によって、Microsoft(登録商標)製のプリンタドライバ211とプリント拡張アプリ300が関連づくことはできない。
[0024]
 レジストリ353は、OS210の設定群が記述された領域である。Key And Value方式で値を記載することができ、プリンタキュー毎の設定などを記述することができる。レジストリ353には、印刷時起動アプリランチャ350によるバックグラウンドタスクの起動を有効とするか無効とするかを示すポリシーの設定や、プリンタドライバ211に関連づくプリント拡張アプリ300の識別子などが登録されている。なお、当該レジストリ353に登録されている設定は、OS210の設定画面を介して変更可能である。
[0025]
 続いてプリンティングシステム337を構成する要素について説明する。プリンタキュー308は、ネットワーク104内に存在するプリンタを使用して印刷を行う際に、印刷ジョブを一時的に保存する領域であり、複数個存在することができる。本実施形態では、プリンタ102とプリンタ103に対応するプリンタキューが作成されているものとする。
[0026]
 スプーラ325は、アプリケーション212のいずれかから印刷された印刷対象データであるXPS(XML Paper Specification)ファイルを一時的に保存及び管理するモジュールである。スプーラ325に保存されたXPSファイルは、フィルタパイプラインマネージャ335を通して、PDL(Page Description Language)に変換された後に、スプーラ325を通じてプリンタ102へと送信される。
[0027]
 フィルタパイプラインマネージャ335は、1以上のフィルタ330をロードして、XPSファイルをPDLファイルへと変換するモジュールである。フィルタパイプラインマネージャ335は、OS210が提供する印刷アーキテクチャ(印刷システムとも呼ぶ)の一部として構成されている。OS210は、フィルタコンフィグ336の定義に基づき、プリンタドライバ211を構成する要素の一つである1以上のフィルタ330を読み込み、当該1以上のフィルタを使用してPDLを生成する。PDLは、例えば、PCLやPDFなどを採用することができる。
[0028]
 コンフィグレーションモジュール331は、PrintTicket(プリントチケットとも呼ぶ)の生成、変更を行うモジュールである。また、モジュール331は、組み合わせることができない設定が行われないよう制限する禁則機能を有する。また、コンフィグレーションモジュールはプリンタの能力情報であるPrintCapabilitiesを管理する。
[0029]
 プリント拡張アプリ300の詳細印刷設定UI部304、印刷時起動バックグラウンドタスク部305と印刷時起動UI部303は、コンフィグレーションモジュール331が提供するAPIを呼び出すことができる。各部は、当該APIを呼び出すことで、XML(Extensible Markup Language)形式のPrintTicketやPrintCapabilitiesを取得することができる。
[0030]
 プリンタドライバ211は、禁則ルールやデバイスの機能が記述されたデバイス機能テキストファイル332や、スクリプトファイル333をOS211に提供する。ファイル332、333に基づき、コンフィグレーションモジュール331の動作はカスタマイズされる。
[0031]
 印刷時起動アプリランチャ350は、印刷時起動バックグラウンドタスク部305などが提供するバックグラウンドタスクの実行を制御するモジュールである。ランチャ350は、ユーザにより印刷開始指示が入力されたことをOS210が検知し、印刷を行う場合に、印刷時起動バックグラウンドタスク部305を起動する。なお、レジストリ353にバックグラウンドタスクの起動を無効とする設定が記憶されている場合、OS210はバックグラウンドタスクの実行を抑制する。
[0032]
 プリンタドライバ211は、フィルタ330、フィルタコンフィグ336、スクリプトファイル333とデバイス機能テキストファイル332、INF361で構成され、ドライバ格納領域370に保存されている。フィルタ330は、フィルタパイプラインマネージャ335によって呼び出されるフィルタであり、入力されたXPSファイルをPDLへと変換して出力する機能を有している。フィルタコンフィグ336は、フィルタパイプラインマネージャ335が参照する定義ファイルであり、1以上のフィルタ330を呼び出す順序が記述されている。スクリプトファイル333とデバイス機能テキストファイル332は、コンフィグレーションモジュール331によって呼び出されるファイルであり、コンフィグレーションモジュール331の動作をカスタマイズできる。INF361は、プリンタドライバ211をインストールするための設定情報が記載されたテキストファイルである。
[0033]
 スレッドプール355は、各種アプリケーション212やOS210内のモジュール群が実行される際に利用されるスレッドを格納するモジュールである。
[0034]
 アプリケーション実行環境213は、デスクトップアプリ実行環境323、タッチアプリ実行環境301から構成される。
[0035]
 タッチアプリ実行環境301は、後述するアプリケーション212の一種であるOS210上で動作するタッチアプリ321やプリント拡張アプリ300を実行するための実行環境である。実行環境301は、配信サーバ105から配布された拡張アプリケーションを動作させるための実行環境であり、拡張アプリケーションの実行を制御する。
[0036]
 デスクトップアプリ実行環境323は、後述するアプリケーション212の一種であるデスクトップアプリ322を実行するための実行環境である。デスクトップアプリ実行環境323は、デスクトップ上から実行されうるアプリケーションの実行を制御する。
[0037]
 アプリケーション212は、タッチアプリ321、プリント拡張アプリ300とデスクトップアプリ322の三種類のアプリケーションで構成される。タッチアプリ321は、タッチアプリ実行環境301で動作するアプリケーションである。タッチアプリ321は、インターネット上で公開されるアプリケーション配布システムを通じて、ダウンロードされ、クライアントコンピュータ101にインストールされる。タッチアプリ321は、必要なモジュール群がパッケージ化して署名されており、OS210内のAPIの呼び出しが制限されている。
[0038]
 プリント拡張アプリ300は、タッチアプリ321の一種であり、タッチアプリ321と同様にタッチアプリ実行環境301の上で動作する。プリント拡張アプリ300は、OS210がアプリケーション配布システムからインターネットを経由して取得する。また、本実施形態のプリント拡張アプリ300は、印刷時に独自にカスタマイズしたUIを表示させる印刷時UI表示機能を持つ。プリント拡張アプリ300は、メタデータ320を介してプリンタベンダが提供するプリンタドライバ211と関連づけられることができる。また、複数のプリンタベンダが提供するプリンタに対して共通で利用される共通プリンタドライバと関連づく場合には、INF361やレジストリ353を用いて関連づく。ここは、図4を用いて後述する。
[0039]
 プリント拡張アプリ300は、タイルアプリ部302、詳細印刷設定UI部304、印刷時起動バックグラウンドタスク部305、印刷時起動UI部303で構成される。
[0040]
 タイルアプリ部302部は、拡張アプリ300を起動するユーザ操作を受け付けたことに従って実行されるUI部であり、登録されたプリンタのステータス表示などの機能を提供する。
[0041]
 詳細印刷設定UI部304は、OS210によって発行された詳細印刷設定イベントを受信したことに従って実行されるUI部である。詳細印刷設定UI部304は、コンフィグレーションモジュール331からAPIを通じて取得したPrintTicketとPrintCapabilitiesに基づき印刷設定用のUIを生成して表示する。UI部304は、ユーザ操作に従って、適宜、PrintTicketの設定を変更し、コンフィグレーションモジュール331に返却する。
[0042]
 印刷時起動バックグラウンドタスク部305は、印刷イベントが発行された際に実行すべきバックグラウンドタスクに対応するコンポーネントである。タスク部305が提供するタスクは、生存時間に限りがあり、一定時間が経過するとOS210によって強制的に終了させられる。
[0043]
 印刷時起動バックグラウンドタスク部305は、コンフィグレーションモジュール331のAPIを通じてPrintTicketの取得や読み書きをすることができる。バックグラウンドタスクにより、印刷時起動UI部303を起動するか否かを判断し、必要に応じてフォアグラウンドタスクのコンポーネントである印刷時起動UI部303の起動をOS210に要求することが既定されている。また、アプリストア334に変更した値を読み書きすることで、印刷時起動UI部303と値の受け渡しをすることができる。印刷時起動UI部303を起動しないと判断する場合は、ランチャ350は、プリント拡張アプリ300を起動することなく印刷データの生成を行う。
[0044]
 更に、バックグラウンドタスクにより起動された印刷時起動UI部303は、印刷対象のデータとなるXPSやPrintTicketを編集して、OS210に返すことができる。
[0045]
 バックグラウンドタスクによってOS210に対して起動要求が行われると、OS210は、印刷時起動UI部303を起動する。印刷時起動UI部303は、PrintTicketやPrintCapabilitiesの取得と設定の変更ができる他に、印刷対象のデータのXPSファイルを取得することができる。XPSファイルの変更を行う場合には、一度、アプリストア334を通じて編集後のXPSファイルを印刷時起動バックグラウンドタスク部305に渡し、タスク部305が編集したXPSファイルをOS210に返す必要がある。本実施形態において、印刷時起動UI部303は、印刷に関する確認を行うためのUIや、未入力の設定をユーザに入力させるためのUIなどを表示するものとする。
[0046]
 設定ファイル362は、プリント拡張アプリ300の設定値が記述されているファイルである。プリント拡張アプリ300を一意に示すプリント拡張アプリ識別子や、利用するカスタム設定ファイルが記載されている。
[0047]
 カスタム設定ファイル363は、プリント拡張アプリ300がプリンタドライバ211に対して利用できるサービスの設定を記載した設定ファイルである。
[0048]
 次に、共通プリンタドライバについて説明する。簡単に印刷を行いたいユーザにとって、インストールは手間となる。これを解消するために使用するのが共通プリンタドライバである。共通プリンタドライバは例えばIPPを使用して印刷を行うことのできるMopria(登録商標)対応のプリンタに対応した共通のプリンタドライバである。この場合、Mopria(登録商標)対応のプリンタを持つユーザはプリンタベンダ製のプリンタドライバをインストールすることなく、共通プリンタドライバを使用して簡単に印刷を行うことができる。しかも共通プリンタドライバはプリンタベンダに依存しないため、どこのプリンタベンダのプリンタに対しても同様に使用することができる。
[0049]
 続けて、共通プリンタドライバとプリント拡張アプリの関係について説明する。図4はプリンタA102およびプリンタB103に対する共通プリンタドライバのプリントキュー502、503とプリント拡張アプリ300との関係を示した図である。プリンタA102に対応するのが共通プリンタドライバのプリンタキュー502であり、プリンタB103に対応するのが共通プリンタドライバのプリンタキュー503である。それぞれ実体としてのプリンタは異なるがどちらも共通プリンタドライバが印刷データを生成し、印刷ジョブを発行する。共通プリンタドライバはプリンタA102、プリンタB103からある程度の能力情報を取得してそれぞれの能力に応じた印刷設定が可能になっている。しかし、共通プリンタドライバは複数ベンダの複数プリンタに対応するために設定可能な印刷設定の種類が少ない。これを補うのがプリント拡張アプリ300である。プリンタA用プリント拡張アプリ602はプリンタAに特化したプリント拡張アプリ300であり、プリンタB用プリント拡張アプリ603はプリンタBに特化したプリント拡張アプリ300である。プリント拡張アプリ300はプリンタベンダによって作成される。これにより共通プリンタドライバがプリンタの種類に依存しないソフトウェアであるのに対してプリント拡張アプリ300はプリンタごとのより細かい印刷設定を行う事が可能である。図4に示すように共通プリンタドライバに対してプリンタの種類に応じたプリント拡張アプリ300を関連付けるためのフローが必要となる。関連付けのフローについては図5を用いて後述する。なお、「関連付け」とは、具体的にはたとえばOS210がレジストリ353に対してプリンタドライバ211に関連付くプリント拡張アプリ300の識別子を登録することである。
[0050]
 レジストリ353に限らず、所定の記憶領域やデータベースにおいて、プリンタドライバ211の識別子と関連付けるべきプリント拡張アプリ300の識別子を対応付けて登録することができる。単に一対一対応の表にするだけでなく、プリンタドライバ211に対して複数の拡張アプリを対応付けて登録することも可能である。
[0051]
 これによりOS21はプリンタドライバ211の使用時に、関連付けがされているプリント拡張アプリ300の詳細印刷設定UI部を表示したり、印刷時起動UI部303を表示したりすることができる。
[0052]
 図5は共通プリンタドライバとプリント拡張アプリを関連付けるためのフローを示す図である。図5はクライアントコンピュータ101のOS210の処理である。ここで説明するOS210の処理はRAM202にロードされ、CPU201によって実行される。
[0053]
 OS210へのプリンタの導入時、OS210はネットワーク内のプリンタを探索してユーザに対して表示する(S101)。OS210へのプリンタ導入時とは、たとえば、ネットワークまたはローカルインタフェース上に新しくプリンタが発見されて所定のイベントが発生したときがある。またはユーザに指示によりプリンタ導入が開始される場合がある。
[0054]
 そしてOS210は探索された全てのプリンタからどのプリンタに対するプリンタドライバ211をインストールするかについてユーザ入力を受け付ける(S102)。OS210はユーザによって指定されたプリンタに印刷可能なプリンタドライバ211をインストールしてプリンタキュー308を生成する(S103)。次にOS210はユーザによって指定されたプリンタ(実デバイス)からプリンタの機種ごとに決められたハードウェアID(=HWID)をネットワーク等を介して取得する(S104)。次にOS210はプリンタのHWIDを元にプリント拡張アプリ300を取得してS103で生成したプリンタキュー308に関連付ける(S105)。S105の具体的な処理は図6と図7を用いて後述する。このようにして、プリンタドライバとプリント拡張アプリ300との関連付けが行われる。
[0055]
 図6はOS210におけるS105の処理について、比較例としてのOS210の処理を示したフロー図である。ここで説明するOS210の処理もRAM202にロードされ、CPU201によって実行される。まずOS210はプリンタのHWIDを元に、対応するメタデータ320が存在するかをメタデータ配信サーバ108に問い合わせる(S301)。OS210はメタデータ320が存在するかを確認し(S302)、存在しない場合は処理を終了する。S104で取得されたHWIDに対応するメタデータ320が存在する場合、OS210はそのメタデータ320をダウンロードする(S303)。そしてそのメタデータ320をプリンタキュー308に関連付ける(S304)。次にOS210はダウンロードしたメタデータ320を参照し、メタデータ320の中からプリント拡張アプリ300のアプリ識別子を取得する(S305)。そしてOS210はそのアプリ識別子を元にプリント拡張アプリ300を拡張アプリ配信サーバ107に問い合わせる(S306)。OS210はプリント拡張アプリ300が存在するか確認する(S307)。S307で、存在しないと確認された場合は処理を終了する。S307で存在すると確認された場合、OS210はそのプリント拡張アプリ300をダウンロードする(S308)。次にOS210はダウンロードしたプリント拡張アプリ300をインストールする(S309)。さらにOS210はインストールしたプリント拡張アプリ300をプリンタキュー308に関連付ける(S310)。このようにしてメタデータ320を介してプリンタキュー308とプリント拡張アプリ300との関連付けを行っている。
[0056]
 図7はOS210における図5のS106の処理について、本実施形態におけるOS210の処理を示したフロー図である。ここで説明するOS210の処理もRAM202にロードされ、CPU201によって実行される。まずOS210はS104で取得されたプリンタのHWIDを元に、対応するプリント拡張アプリ300が存在するかを検索サーバ106に問い合わせる(S201)。OS210はHWIDに対応するプリント拡張アプリ300が存在するかを確認する(S202)。存在しないとS202で確認された場合は処理を終了する。HWIDに対応するプリント拡張アプリ300が存在するとS202で確認された場合、OS210はそのプリント拡張アプリ300をダウンロードする(S203)。次にOS210はダウンロードしたプリント拡張アプリ300とプリンタドライバ211が対応しているかどうかを確認する(S204)。具体的には、S104で取得されたプリンタのHWIDを検索サーバ106に対してOS201は送信する。これに対する返信として、OS210は、HWIDに対応するプリント拡張アプリ300のリストを受信する。これにより、S202でHWIDに対応するアプリがあるかが確認される。
[0057]
 ここで確認するS204の詳細を図14に示す。OS210はまずダウンロードしたプリント拡張アプリ300から対応ドライバ識別子を取得する(S801)。プリント拡張アプリ300はそれぞれ対応するプリンタドライバの識別子を保持している。これによりプリント拡張アプリ300は予期しないプリンタドライバに紐づくことを回避することができる。次にOS210はプリンタキュー308のドライバ識別子が前記対応ドライバ識別子の中に存在するかどうかを確認する(S802)。S802で存在すると確認された場合、OS210はプリンタキュー308に対応しているプリント拡張アプリ300であると判断する。S802で存在しないと確認された場合、OS210はプリンタキュー308に対応していないプリント拡張アプリ300であると判断する。
[0058]
 前述の図14の処理で確認した結果、対応していないと確認された場合(S204-NO)、OS210は関連付けを行わずに終了する。一方、対応していると確認された場合(S204-YES)、OS210はダウンロードしたプリント拡張アプリ300をインストールする(S205)。そしてOS210はインストールしたプリント拡張アプリ300をプリンタキュー308に関連付ける(S206)。このようにして、OS210はプリンタキュー308とプリント拡張アプリ300の関連付けのためにメタデータ320を使用せず、直接関連付けを行う。これによりMicrosoft(登録商標)製の共通プリンタドライバのプリンタキュー308であってもプリンタベンダ製のプリント拡張アプリ300と関連付けを行うことができる。
[0059]
 なお、OS210は関連付けを行う際に、図6の処理と図7の処理を使い分けて実施することも可能である。例えば、該当するメタデータ320がメタデータ配信サーバ108に存在するか否かでメタデータ320を使用して関連付けを行うか直接プリント拡張アプリ300との関連付けを行うかを決定してもよい。もしくは関連付け対象のプリンタドライバがベンダ製プリンタドライバの場合は図6の処理を行い、共通プリンタドライバの場合は図7の処理を行う方法を取ってもよい。このようにすることで、従来のメタデータ320の資産を活用しつつ共通プリンタドライバへの関連付けにも対応することができる。
[0060]
 次に図8を用いて検索サーバ106が行う処理フローについて説明する。拡張検索サーバは、図2と同様のハードウェア構成を持ちうる。具体的にはクライアントコンピュータ101のOS210が図7のS201においてHWIDに対応するプリント拡張アプリ300を問い合わせた際に検索サーバ106が行う処理である。ここで説明する検索サーバ106の処理は検索サーバ106内に存在するRAMにロードされ、検索サーバ106内のCPUによって実行される。まず、検索サーバ106は任意のクライアントコンピュータ101からHWIDを伴うプリント拡張アプリ300の要求を受け付ける(S401)。検索サーバ106は内部に保持しているHWIDとプリント拡張アプリの対応表を取得する(S402)。
[0061]
 ここで、HWIDとプリント拡張アプリの対応表について図10を用いて説明する。検索サーバ106は図10に示すプリンタのHWIDとプリント拡張アプリの対応表を保持している。プリンタのHWID501はプリンタの機種ごとに固有のIDであり、機種が異なれば別々のIDが降られている。プリント拡張アプリ名称502はプリント拡張アプリの名称であり一般のユーザが識別しやすい名称となっている。アプリ識別子(AppID)503は配信サーバ105で管理されている識別子であり、配信サーバ105はアプリ識別子によってすべての拡張アプリの中から該当するプリント拡張アプリ300を特定することができる。図10に示す対応表はプリント拡張アプリ300が新規に開発されて登録されるたびに更新されうる。たとえば、更新用の対応表はネットワークを介して外部の装置から配信サーバ105へ送信される。そして、古い対応表は新しい対応表を用いて配信サーバ105において更新されうる。
[0062]
 プリンタベンダは一つのプリント拡張アプリ300を登録する際に関連付けを行うべきプリンタの一つのHWIDを同時に登録できる。さらに、一つのプリンタのHWIDに対して複数のアプリ識別子を設けてもよい。いずれの際も、その登録内容が図10の対応表に追加される。図10の例では、ひとつのプリンタに対してそれぞれひとつのアプリ識別子が登録されている。また、たとえば、PrinterAAAが列501に二度現れることを許してもよい。これは、一つのプリンタに対して複数の拡張プリンタアプリを設けることを意味する。
[0063]
 検索サーバ106が対応表を取得したら、検索サーバ106はクライアントコンピュータ101から届いたHWIDに対応するプリント拡張アプリ300が対応表に存在するかを確認する(S403)。
[0064]
 例えば、プリンタのHWIDとしてPrinterAAAが取得されたら、検索サーバ106は、図10の表を検索して、PrinterAAAに対応するアプリの識別子はAAA01であると確認する。そして、検索サーバ106はクライアントに対してAAA01およびプリント拡張アプリ名称Print App AAAを通知することができる。原則ここでのHWIDは、プリンタからクライアントコンピュータが取得したものである。
[0065]
 図4の説明に戻る。S403で存在しないと確認された場合次の処理をする。検索サーバ106は要求元のクライアントコンピュータ101にエラーを返す(S409)、そして処理を終了する。S403で存在すると確認された場合、検索サーバ106はプリント拡張アプリ300のアプリ識別子を取得する(S404)。そして検索サーバ106はそのアプリ識別子を元にプリント拡張アプリ300を配信サーバ105に問い合わせる(S405)。検索サーバ106は配信サーバ105に求めるプリント拡張アプリ300が存在していたかを確認する(S406)。存在しないとS406で確認された場合、検索サーバ106は要求元のクライアントコンピュータ101にエラーを返す(S409)。そして、処理を終了する。S406で存在すると確認された場合、検索サーバ106はそのプリント拡張アプリ300をダウンロードする(S407)。そして検索サーバ106は取得したプリント拡張アプリ300を要求元のクライアントコンピュータ101からダウンロード可能にする(S408)。そして、S408ではクライアントコンピュータに対してダウンロード可能にしたプリント拡張アプリ300のリストを通知する。プリント拡張アプリは複数リストに掲載される場合もある。この通知に応じてクライアントコンピュータは自動的にプリント拡張アプリ300が存在することを確認し、ダウンロードしてもよい(S308)。
[0066]
 検索サーバ106が図8の処理を行う。これにより、配信サーバ105は共通プリンタドライバに対してもプリンタベンダ製プリンタドライバに対しても動作を変えることなく適切なプリント拡張アプリ300を提供することができる。なお、ここでは説明を簡単にするためにS407において検索サーバ106が実際のプリント拡張アプリ300をあらかじめダウンロードする方法について説明した。変形例として、S407ではダウンロードせずにクライアントコンピュータ101からの取得要求が来た後に拡張アプリ配信サーバからダウンロード可能にする方法をとることもできる。
[0067]
 次に図9を用いて配信サーバ105が行う処理フローについて説明する。具体的にはクライアントコンピュータ101が図7のS306で配信サーバ105に問い合わせる際、もしくは検索サーバ106が図8のS405で配信サーバ105に問い合わせる際に配信サーバ105が行う処理である。ここで説明する配信サーバ105の処理は配信サーバ105内に存在する不図示のRAMにロードされ、配信サーバ105内の不図示のCPUによって実行される。まず、配信サーバ105は任意のクライアントコンピュータ101もしくは検索サーバ106からアプリ識別子によるプリント拡張アプリ要求を受け付ける(S501)。要求が届いたら配信サーバ105はそのアプリ識別子のプリント拡張アプリ300を保持しているかを確認する(S502)。保持していない場合、配信サーバ105は要求元のクライアントコンピュータ101もしくは検索サーバ106に対してエラーを返して(S501)処理を終了する。保持している場合、配信サーバ105は指定されたアプリ識別子を持つプリント拡張アプリ300を特定する(S503)。そして配信サーバ105はその特定したプリント拡張アプリ300を要求元からダウンロード可能にする(S501)。このようにして、配信サーバ105は要求元が何かに関わらず同じ処理を行えばよい。ダウンロード可能になると、クライアントコンピュータ101の要求に応じて拡張アプリはダウンロード可能になる。
[0068]
 以上、図を用いて本発明の第1の実施形態について説明を行った。本発明のシステムが上記の構成をとることで、共通プリンタドライバに対してもHWIDに応じた適切なプリント拡張アプリ300を関連付けることが可能となる。
[0069]
 <第2の実施形態>
 以下では特に断らない限り同じ符号は同じ装置や機能を示す。第1の実施形態と異なる部分を中心に説明する。第1の実施形態では検索サーバ106がHWIDに対応するプリント拡張アプリ300を検索する処理を行う例について説明した。しかし、検索サーバ106の存在は必須ではない。具体的には、配信サーバ105が検索サーバ106の機能も担う事で実施が可能であるため、第2の実施形態として説明する。つまり,105と106が一体化することも考えられる。
[0070]
 図11は第2の実施形態における印刷システムの構成を示している。第1の実施形態における図1とほぼ同じ構成であるが、検索サーバ106が存在しない点が相違点である。それぞれの構成要素の詳細は前記説明済みであるためここでは省略する。第1の実施形態において図2~図5、図7で説明した内容も第2の実施形態に適用できるため説明を省略する。
[0071]
 図12はクライアントコンピュータ101のOS210における図5のS105の処理をより詳細に示したフロー図である。ここで説明するOS210の処理もRAM202にロードされ、CPU201によって実行される。図12のフローにおいて、図7との違いはS601である。OS210がプリンタのHWIDを元に、プリント拡張アプリ300の存在を問い合わせる先が検索サーバ106ではなく配信サーバ105となっている点である(S601)。それ以外の処理(S602~S606)は第1の実施形態における処理(S202~S206)と同じであるため説明を省略する。クライアントコンピュータ101のOS210がこのような処理を行う事で、システム内に検索サーバ106を別途立てる必要がなくなる。
[0072]
 図12はクライアントコンピュータ101が、図6のS306や図12のS601において配信サーバ105に対して問い合わせを行う際に、配信サーバ105が行うフローを示している。ここで説明する配信サーバ105の処理は配信サーバ105内に存在する不図示のRAMにロードされ、配信サーバ105内の不図示のCPUによって実行される。まず、配信サーバ105は任意のクライアントコンピュータ101からプリント拡張アプリ要求を受け付ける(S701)。次に配信サーバ105はその要求がアプリ識別子によるプリント拡張アプリ要求かどうかを確認する(S702)。アプリ識別子によるプリント拡張アプリ要求の場合、配信サーバ105は自身の保持するプリント拡張アプリ300の中から指定されたアプリ識別子を持つプリント拡張アプリ300を特定する(S703)。そうではない場合、次に配信サーバ105はHWIDによるプリント拡張アプリ要求かどうかを確認する(S704)。HWIDによるプリント拡張アプリ要求の場合、配信サーバ105は自身の保持するプリント拡張アプリ300の中から指定されたHWIDを持つプリント拡張アプリ300を特定する(S705)。そして配信サーバ105は特定したプリント拡張アプリ300を自身が保持しているかを確認する(S706)。保持ししている場合、配信サーバ105は特定したプリント拡張アプリを要求元のクライアントコンピュータ101からダウンロード可能にする(S707)。保持していない場合、配信サーバ105は要求元のクライアントコンピュータ101にエラーを返す(S702)。
[0073]
 以上、図を用いて本発明の第2の実施形態について説明を行った。本発明のシステムが上記の構成をとることで、検索サーバ106を有せずとも第1の実施形態と同等の効果を得ることができる。
[0074]
 情報処理装置の一例であるクライアントコンピュータ101は、プリンタドライバの一例であるプリンタドライバ211をインストール可能である。また、サーバ装置の一例である配信サーバ105と通信可能である。また、画像形成装置の一例であるプリンタA102やプリンタB103とも通信可能である。なお、プリンタドライバ211は複数のプリンタに対応可能である共通プリンタドライバやユニバーサルプリンタドライバでありうる。
[0075]
 また、画像形成装置の識別情報の一例であるHWIDをネットワークI/F214で受信する。また、ネットワークI/F214経由で受信したHWIDを、ネットワークI/F214は、配信サーバ105に対して送信する。ネットワークI/F214は送信手段、受信手段の一例である。プリント拡張アプリ300は、拡張アプリケーションの一例である。
[0076]
 さらに、配信サーバ105から送信されてくるプリント拡張アプリ300であって尚且つネットワークI/F214により送信されたHWIDに対応するプリント拡張アプリ300をプログラムAとする。CPU201は、プログラムAと、プリンタドライバ211とを関連付ける処理を実行する。CPU201は実行手段の一例である。クライアントコンピュータ101は、配信サーバ105から送信されてくるプリント拡張アプリ300が、プリンタドライバ211に対応しているかどうかを確認してもよい。
[0077]
 また、対応していると確認されたことを条件として、プリント拡張アプリ300をインストールするようにしてもよい。
[0078]
 プリント拡張アプリ300の識別情報の一例はアプリ識別子である。アプリ識別子を配信サーバ105に対して送信し、配信サーバ105から当該識別情報に対応するプリント拡張アプリ300を前記受信手段は受信してもよい。また、101においてインストールされたプリンタドライバが、複数のプリンタA,Bで利用可能な共通プリンタドライバである場合と、そうでない場合とで異なる経路でプリント拡張アプリ300を取得するようにしてもよい。制御手段の一例は、CPU201である。
[0079]
 プリンタの識別情報であるHWIDには複数のプリント拡張アプリが対応づけ可能である。また、CPU201は、送信したHWIDに対応する複数のプリント拡張アプリを、プリンタドライバ211に関連付ける処理を実行してもよい。
[0080]
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために以下の請求項を添付する。
[0081]
 本願は、2018年11月30日提出の日本国特許出願特願2018-225490を基礎として優先権を主張するものであり、その記載内容の全てをここに援用する。

請求の範囲

[請求項1]
 プリンタドライバをインストール可能であり、サーバ装置および画像形成装置と通信可能な情報処理装置において、
 前記受信手段が受信した前記画像形成装置の識別情報を前記サーバ装置に対して送信する送信手段と、
 サーバ装置から送信されてくる拡張アプリケーションであって尚且つ前記送信手段により送信された前記画像形成装置の識別情報に対応する拡張アプリケーションと、前記プリンタドライバとを関連付ける処理を実行する実行手段を有する情報処理装置。
[請求項2]
 前記情報処理装置は、前記サーバ装置から送信されてくる前記拡張アプリケーションが、前記プリンタドライバに対応しているかどうかを確認する確認手段と、
 前記確認手段で対応していると確認されたことを条件として、前記拡張アプリケーションをインストールするインストール手段をさらに有する請求項1に記載の情報処理装置。
[請求項3]
 前記情報処理装置の送信手段は、前記拡張アプリケーションの識別情報をサーバ装置に対して送信し、前記サーバ装置から当該識別情報に対応する拡張アプリケーションを前記受信手段は受信し、前記情報処理装置においてインストールされたプリンタドライバが、複数の画像形成装置で利用可能な共通プリンタドライバである場合と、前記共通プリンタドライバでない場合とで異なる経路で前記拡張アプリケーションを取得するよう制御する制御手段を有する請求項1または2に記載の情報処理装置。
[請求項4]
 前記画像形成装置の識別情報には複数の拡張アプリケーションが対応づけ可能であり、前記実行手段は、前記送信手段が送信した識別情報に対応する複数の拡張アプリケーションを、前記プリンタドライバに関連付ける処理を実行する請求項1乃至3のいずれか1項に記載の情報処理装置。
[請求項5]
 プリンタドライバをインストール可能であり、サーバ装置および画像形成装置と通信可能な情報処理装置の制御方法において、
 前記画像形成装置の識別情報を受信する受信工程と、
 前記受信工程で受信された前記画像形成装置の識別情報を前記サーバ装置に対して送信する送信工程と、
 前記サーバ装置から送信されてくる拡張アプリケーションであって尚且つ前記送信工程において送信された前記画像形成装置の識別情報に対応する拡張アプリケーションと、前記プリンタドライバとを関連付ける処理を実行する実行工程とをコンピュータに実行させる制御方法。
[請求項6]
 前記サーバ装置から送信されてくる前記拡張アプリケーションが、前記プリンタドライバに対応しているかどうかを確認する確認工程と、
 前記確認工程で対応していると確認されたことを条件として、前記拡張アプリケーションをインストールするインストール工程をさらにコンピュータに実行させる請求項5に記載の制御方法。
[請求項7]
 前記情報処理装で実行される送信工程では、前記拡張アプリケーションの識別情報がサーバ装置に対して送信され、前記サーバ装置から当該識別情報に対応する拡張アプリケーションが前記受信工程において受信され、前記情報処理装置においてインストールされたプリンタドライバが、複数の画像形成装置で利用可能な共通プリンタドライバである場合と、前記共通プリンタドライバでない場合とで異なる経路で前記拡張アプリケーションを取得するよう制御する制御工程をコンピュータに実行させる請求項5または6に記載の制御方法。
[請求項8]
 前記画像形成装置の識別情報には複数の拡張アプリケーションが対応づけ可能であり、前記実行工程では、前記送信工程で送信された識別情報に対応する複数の拡張アプリケーションを、前記プリンタドライバに関連付ける処理が実行される請求項5乃至7のいずれか1項に記載の制御方法。
[請求項9]
 請求項5乃至8のいずれか1項に記載の制御方法をコンピュータに実行させる制御プログラム。
[請求項10]
 情報処理装置と通信可能なサーバ装置において、
 前記情報処理装置から画像形成装置の識別情報を受信する受信手段と、
 前記画像形成装置に対応する拡張アプリケーションを取得する取得手段と、
 前記取得手段が取得した拡張アプリケーションを前記情報処理装置に対して送信する送信手段とを有するサーバ装置。
[請求項11]
 情報処理装置と通信可能なサーバ装置の制御方法において、
 前記情報処理装置から画像形成装置の識別情報を受信する受信工程と、
 前記画像形成装置に対応する拡張アプリケーションを取得する取得工程と、
 前記取得手段が取得した拡張アプリケーションを前記情報処理装置に対して送信する送信工程と、をコンピュータに実行させる制御方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]