(57)【要約】【課題】複数のプラグインモジュールを用いた印刷システムにおいて、物理的に同一のプリンタが探索された場合に候補として重複することなくユーザに提示すること。【解決手段】印刷システムは印刷プラグインを用いた情報処理装置を備え、プリンタを印刷時に探索する処理を実行し、印刷可能なプリンタが検出されると、プリンタの候補をリスト表示等でユーザに提示する。印刷システムの制御部は、印刷プラグインにプリンタを探索させる順序を制御し、単一ベンダ対応のプラグインに対して、当該ベンダ製プリンタへの出力を優先的に行う。マルチベンダ対応の印刷プラグインは、単一ベンダ対応の印刷プラグインのいずれにおいても対応できないプリンタに対して出力処理を行う。プリンタ探索の結果、探索済みのプリンタがプリンタリストに登録されていない場合には当該リストへの登録が行われ、登録済みである場合には、当該リストには登録されない。【選択図】  図６
2016033770.tif 000002
【特許請求の範囲】
【請求項１】
複数のプラグインモジュールによりプリンタの探索処理を行い、探索されたプリンタから操作により選択されるプリンタを使用して印刷処理を行う印刷システムであって、
前記複数のプラグインモジュールに対してプリンタの探索処理の順序を制御するとともに、前記プラグインモジュールにより探索されたプリンタの情報を当該プラグインモジュールと関連付けて登録し、探索済みのプリンタを重複せずに候補として提示する制御を行う制御手段を備えることを特徴とする印刷システム。
【請求項２】
複数のプラグインモジュールによりプリンタの探索処理を行い、探索されたプリンタから操作により選択されるプリンタに対して印刷処理を指示する情報処理装置であって、
前記複数のプラグインモジュールに対してプリンタの探索処理の順序を制御するとともに、前記プラグインモジュールにより探索されたプリンタの情報を当該プラグインモジュールと関連付けて登録し、探索済みのプリンタを重複せずに候補として提示する制御を行う制御手段を備えることを特徴とする情報処理装置。
【請求項３】
前記制御手段は、前記プラグインモジュールのベンダを示す第１の情報、および前記プラグインモジュールにより探索されたプリンタから返信される第２の情報を取得し、探索された当該プリンタのベンダが、当該プラグインモジュールのベンダと一致する場合であって、当該プリンタの情報が登録されていない場合には当該プリンタを候補として登録する処理を行い、当該プリンタの情報が登録されている場合には登録しないことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、特定のプリンタを提供するベンダのプラグインモジュールに対して優先的にプリンタの探索処理を指示することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記制御手段は、複数のベンダのプリンタを対象として動作するプラグインモジュールに対して優先的にプリンタの探索処理を指示することを特徴とする請求項２または３に記載の情報処理装置。
【請求項６】
探索済みのプリンタの情報を表示する表示手段をさらに備え、
前記制御手段は、前記複数のプラグインモジュールによってそれぞれ探索された複数のプリンタの情報を重複せずにリストに登録し、該リストに登録されたプリンタの候補を前記表示手段に表示させる制御を行うことを特徴とする請求項２から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記複数のプラグインモジュールのうち、複数のベンダのプリンタを対象として動作する第１のプラグインモジュールは、探索したプリンタの情報を、特定のプリンタを提供するベンダ製の第２のプラグインモジュールに通知する処理を行うことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記第１のプラグインモジュールが探索したプリンタのベンダが、前記第２のプラグインモジュールのベンダと一致し、かつ前記第２のプラグインモジュールが、探索されたプリンタに対応して当該プリンタのベンダから提供されたプラグインモジュールである場合、前記制御手段は当該プリンタの情報を重複せずにリストに登録する処理を行うことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
複数のプラグインモジュールによりプリンタの探索処理を行い、探索されたプリンタから操作により選択されるプリンタを使用して印刷処理を行う印刷システムの情報処理装置にて実行される制御方法であって、
前記情報処理装置の制御手段が、
前記複数のプラグインモジュールに対してプリンタの探索処理の順序を制御するステップと、
前記プラグインモジュールにより探索されたプリンタの情報を当該プラグインモジュールと関連付けて登録し、探索済みのプリンタを重複せずに候補として提示する制御を行うステップを有することを特徴とする制御方法。
【請求項１０】
複数のプラグインモジュールによりプリンタの探索処理を行い、探索されたプリンタから操作により選択されるプリンタを使用して印刷処理を行う印刷システムの情報処理装置にてコンピュータが実行するプログラムであって、
前記コンピュータに、
前記複数のプラグインモジュールに対してプリンタの探索処理の順序を制御するステップと、
前記プラグインモジュールにより探索されたプリンタの情報を当該プラグインモジュールと関連付けて登録し、探索済みのプリンタを重複せずに候補として提示する制御を行うステップを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷用プラグインモジュールを使用したプリンタの探索および印刷処理に関するものである。
【背景技術】
【０００２】
近年、Ａｎｄｒｏｉｄ（登録商標）に代表されるスマートフォン等の携帯端末装置では、そのオペレーティングシステム（ＯＳ）で印刷機能を標準的にサポートするようになってきている。携帯端末装置ではプリンタドライバの代わりに、印刷プラグインというソフトウェアを用いる。一方、パーソナルコンピュータでは印刷機能を司るプリンタドライバというソフトウェアがある。また、Ｗｉｎｄｏｗｓ（登録商標）はスマートフォン等の携帯端末装置にも採用され、その裾野を広げつつある。
【０００３】
ユーザの印刷環境は多様化しており、個人の自宅は勿論のこと、ホテル、空港のラウンジ、コーヒーショップ、コンビニエンスストア等、様々な場所で印刷が可能である。多種多様なプリンタベンダ製のプリンタが設置されており、様々な場所でユーザが印刷を試みるとなると、多種多様なプリンタベンダに対応したプリンタドライバや印刷プラグインが必要となる。Ｗｉｎｄｏｗｓ（登録商標）等の環境においては、その結果、多種多様のプリンタドライバがインストールされることになるため、印刷時にユーザがプリンタドライバを選択する作業が非常に煩わしくなるという問題があった。
この問題に対処すべく特許文献１には、汎用プリンタドライバを用いて１つの物理的なプリンタに対して、複数のドライバや印刷キュー(ポート)が生じてしまうのを未然に防ぐことで選択を容易にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−７６２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
スマートフォン等の携帯端末装置を使用するモバイル環境の場合、印刷プラグインを用いた印刷システムにおいては、プリンタを印刷時に探索して、その都度、印刷可能なプリンタを選択して印刷を指示することが行われる。従って、複数の印刷プラグインが装置に実装されている場合には、物理的に同一のプリンタが複数の印刷プラグインの各々に検出されて印刷候補としてリストアップされてしまう。その結果、ユーザは、どの印刷プラグインを使って印刷すべきかの選択に迷う可能性がある。近年のＡｎｄｒｏｉｄ（登録商標）においては、複数の印刷プラグインが予め実装されて出荷されるという事例も発生しており、この問題は無視できない状況になってきている。
【０００６】
本発明の目的は、複数のプラグインモジュールを用いた印刷システムにおいて、物理的に同一のプリンタが探索された場合に候補として重複することなくユーザに提示することである。
【課題を解決するための手段】
【０００７】
本発明に係るシステムは、複数のプラグインモジュールによりプリンタの探索処理を行い、探索されたプリンタから操作により選択されるプリンタを使用して印刷処理を行う印刷システムであって、前記複数のプラグインモジュールに対してプリンタの探索処理の順序を制御するとともに、前記プラグインモジュールにより探索されたプリンタの情報を当該プラグインモジュールと関連付けて登録し、探索済みのプリンタを重複せずに候補として提示する制御を行う制御手段を備える。
【発明の効果】
【０００８】
本発明によれば、複数のプラグインモジュールを用いた印刷システムにおいて、物理的に同一のプリンタが探索された場合に候補として重複することなくユーザに提示できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る全体のシステム構成図である。
【図２】携帯端末装置の構成例を示すブロック図である。
【図３】携帯端末装置のＲＯＭ・ＲＡＭ内部のソフトウェア構成図である。
【図４】印刷装置の構成例を示すブロック図である。
【図５】同一のプリンタを印刷候補に重複して含むプリンタリストを示す図である。
【図６】本実施形態にて同一のプリンタを重複せずにリストアップした状態のプリンタリストを示す図である。
【図７】第一実施形態の処理を説明するメインフローチャートである。
【図８】第一実施形態に係るベンダ提供のプラグインによる探索処理のフローチャートである。
【図９】第一実施形態に係るマルチベンダ対応のプラグインによる探索処理のフローチャートである。
【図１０】第二実施形態の処理を説明するメインフローチャートである。
【図１１】第二実施形態に係るマルチベンダ対応のプラグインによる探索処理のフローチャートである。
【図１２】第二実施形態に係るベンダ提供のプラグインによる探索処理のフローチャートである。
【図１３】第一および第二実施形態に共通するＯＳによる判断処理のフローチャートである。
【図１４】第三および第四実施形態に共通するＯＳによる判断処理のフローチャートである。
【図１５】全実施形態に共通する印刷プラグイン内部で保持するベンダ情報を例示する図である。
【図１６】第一および第三実施形態における全体的なデータ処理の流れを説明する動作フロー図である。
【図１７】第二および第四実施形態における全体的なデータ処理の流れを説明する動作フロー図である。
【図１８】第五実施形態における全体的なデータ処理の流れを説明する動作フロー図である。
【発明を実施するための形態】
【００１０】
以下に、本発明の各実施形態について、添付図面を参照して説明する。先ず、本発明に係る印刷システム、情報処理装置（携帯端末装置）、印刷装置等の構成を説明する。以下では、機能拡張用に追加されるプログラムであるプラグインモジュールを、単にプラグインという。印刷用プラグインモジュールを「印刷プラグイン」と呼び、印刷プラグインに係る第１の情報は当該プラグインを提供するベンダを特定する情報を含むものとする。また、印刷プラグインによって探索されるプリンタに係る第２の情報は当該プリンタを提供するベンダを特定する情報および機種名等を示す情報を含むものとする。
【００１１】
図１は、本発明に係る代表的な全体システム構成図の一例を示す。携帯端末装置１０１は、写真、画像、文章、表等のさまざまな印刷対象となるドキュメントを管理および保管する。携帯端末装置１０１はアクセスポイント１０２と無線通信により接続される。更に携帯端末装置１０１は、アクセスポイント１０２を介さずに、プリンタ１０３，１０４，１０５と無線通信によって直接的に接続される場合もある。更に携帯端末装置１０１は、アクセスポイント１０２を経由してインターネット１０６への接続が可能であり、また直接的にインターネット１０６へ接続することも可能である。プリンタ１０３，１０４，１０５はそれぞれ、無線通信または有線通信にてアクセスポイント１０２と接続され、アクセスポイント１０２を経由して携帯端末装置１０１と接続される。以下では、プリンタ１０３をプリンタＡ、プリンタ１０４をプリンタＢ、プリンタ１０５をプリンタＣともいう。
【００１２】
図２は携帯端末装置１０１の構成を例示するブロック図である。携帯端末装置１０１のメインボード２０１には、ＣＰＵ（中央演算処理装置）２０５や、ＲＯＭ（リード・オンリ・メモリ）およびＲＡＭ（ランダム・アクセス・メモリ）２０６等が搭載されている。ＣＰＵ２０５は、ＲＯＭおよびＲＡＭ２０６上にロードされたオペレーティングシステム（以下、ＯＳと記す）を動作させて、携帯端末装置１０１全体の動作を制御する。後述するアプリケーションや印刷プラグイン等もＲＯＭおよびＲＡＭ２０６上に格納されてＣＰＵ２０５が解釈して実行する。メインボード２０１上の無線ＮＷ I/F ２０２は、主にＷｉ−Ｆｉ通信の制御を行うインタフェース部であり、電話通信のインタフェース部も包含している。携帯端末装置１０１は無線ＮＷ I/F ２０２を使ってＷｉ−Ｆｉ通信でアクセスポイント１０２にアクセスすることができる。さらに携帯端末装置１０１は電話通信のインタフェース部を使ってインターネット１０６に直接アクセスすることもできる。メインボード２０１上の近距離無線ＮＷ I/F ２０３は、主にブルートゥース（登録商標）通信の制御を行う。
【００１３】
システムバス２０４は、メインボード２０１上の各種処理ブロックの間での情報を相互に交換する。ユーザI/F ２０７は表示部２０８と入力部２０９を制御するインタフェース部であり、ユーザ操作入力処理や画像表示処理に使用される。携帯端末装置１０１の表示部２０８は、液晶パネル（ＬＣＤ）や有機エレクトロルミネッセンス（ＥＬ）パネル等の表示デバイスを備える。携帯端末装置１０１の入力部２０９は、キーボードや操作ボタン、表示部２０８の表面に付設されたタッチ式のセンサ等を備える。
【００１４】
図３は携帯端末装置１０１のＲＯＭおよびＲＡＭ２０６上に記憶されているアプリケーション３０１、ＯＳ３０４、印刷プラグイン３０８，３１２，３１６を例示する。図３のアプリケーション３０１は大きく分けて、ＵＩ（ユーザ・インタフェース）制御部３０２および基本処理部３０３で構成される。ＵＩ制御部３０２は、アプリケーション３０１による表示部２０８および入力部２０９の制御を行う。基本処理部３０３は、アプリケーション３０１によるデータ処理を行う。例えば基本処理部３０３は、文章作成アプリケーションの場合、文章作成処理やデータの保存処理、印刷処理等を行う。
【００１５】
図３のＯＳ３０４は大きく分けて、アプリケーション制御部３０５、基本処理部３０６、およびプラグイン制御部３０７で構成される。アプリケーション制御部３０５はアプリケーション３０１とのインタフェース処理を受け持ち、アプリケーション３０１からの様々な要求を基本処理部３０６に伝える。基本処理部３０６は、ＯＳ３０４の基本的な動作を行う処理部であり、メモリ管理、実行プログラムの管理等を行い、携帯端末装置１０１全般の動作を制御する。プラグイン制御部３０７は、ＯＳ３０４と各種の印刷プラグイン３０８，３１２，３１６との連携処理を行う。プラグイン制御部３０７は、基本処理部３０６の指示を印刷プラグイン３０８，３１２，３１６に伝達し、また印刷プラグイン３０８，３１２，３１６からの情報を基本処理部３０６に返信する処理を行う。
【００１６】
図３に示す第１の印刷プラグイン３０８は、大きく分けて、デバイス探索制御部３０９、基本処理部３１０、レンダリング処理部３１１で構成される。デバイス探索制御部３０９はＯＳ３０４からのデバイス探索指示にしたがってプリンタの探索処理を実行する。探索結果は順次、ＯＳ３０４に返信される。その詳細な処理については後述する。デバイス探索制御部３０９は更に、印刷プラグイン３０８がどのプリンタベンダのプリンタを対象としているのかを示す値を１つまたは複数の形式で保持している。印刷プラグイン３０８が複数のプリンタベンダのプリンタを対象とする場合、デバイス探索制御部３０９は、マルチベンダ対応である旨を示す値を保持している。図１５にはその一例を示す。データ１５０１は、単一のプリンタベンダに対応する旨を１６進数の値で示した例である。また、データ１５０２は、複数のプリンタベンダに対応する旨を１６進数の値で示した例である。この１６進数としては、例えばＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍ  Ｉｎｃが管理しているベンダＩＤの１６進数を使ってもよい。図１５に示すデータ１５０３は、単一のプリンタベンダに対応する旨を１６進数の値と、文字列という２つの方法で示した例である。またデータ１５０４は、複数のプリンタベンダに対応する旨を１６進数の値と、文字列という２つの方法で示した例である。なお、データ値の保存形式については、数値や文字列の列挙、ＸＭＬ形式、ＪＳＯＮ形式等、いかような形式でも保存可能なものとする。ＸＭＬは“Extensible Markup Language”の略号であり、ＪＳＯＮは“Java（登録商標）Script Object Notation”の略号である。
【００１７】
基本処理部３１０は、印刷プラグイン３０８の基本的な処理を実行する。基本処理部３１０は利用可能な用紙サイズの情報を保持し、レンダリング処理部３１１に印刷用データを提供する。レンダリング処理部３１１はアプリケーション３０１が保持するデータを、印刷装置が印刷可能な形式のデータに変換する処理を実行する。なお、図３の第２の印刷プラグイン３１２および第３の印刷プラグイン３１６についても第１の印刷プラグイン３０８の場合と同様であるので、それらの詳細な説明は省略する。
【００１８】
図４はプリンタ１０３の構成例を示すブロック図である。プリンタ１０４，１０５も同様の構成を有するので、プリンタ１０３を例にして説明する。プリンタ１０３はコントローラボード４０１を備える。
有線ＮＷ I/F ４０２は、イーサネット（登録商標）に代表される有線通信ネットワークの通信制御を行う。プリンタ１０３は有線ＮＷ I/F ４０２を使ってインターネット１０６にアクセスすることができる。プリンタ１０３はさらに、アクセスポイント１０２にアクセス可能である。無線ＮＷ I/F ４０３は、Ｗｉ−Ｆｉ通信の制御を行う。プリンタ１０３は無線ＮＷ I/F ４０３を使ってインターネット１０６にアクセスすることができる。有線通信と無線通信のどちらを使ってインターネット１０６にアクセスするかについては、プリンタ１０３が備える表示部４１２および入力部４１３を用いて設定された内容に従う。近距離無線ＮＷ I/F ４０４は、主にブルートゥース（登録商標）通信の制御を行う。
【００１９】
システムバス４０５は、コントローラボード４０１上の各種処理ブロックの間の情報を相互に交換する。ＣＰＵ４０６は、ＲＯＭおよびＲＡＭ４０７上にある制御プログラムを実行して、プリンタ１０３全体の動作を制御する。Ｄｉｓｋコントローラ４０８は、ハードディスクやＳＳＤに代表される外部記憶装置４１１を制御し、他の処理ブロックとの情報の受け渡しを行う。外部記憶装置４１１は、印刷ジョブ等を一時的に記憶しておく記憶領域を有する。ユーザI/F ４０９は、表示部４１２と入力部４１３を制御する。表示部４１２は液晶や有機ＥＬを用いた表示デバイスを備え、プリンタ１０３内の設定情報を表示し、また入稿済みジョブの一覧等を表示する。入力部４１３はプリンタ１０３に付設されているキーボードやスイッチ、表示部４１２の表面に付設したタッチセンサ等を備え、ユーザがプリンタ１０３に対して操作指示を行う際に用いる。印刷部I/F ４１０は、印刷部４１４へ印刷データを引き渡すインタフェース部である。印刷部４１４は、いわゆるプリンタエンジンであり、電子写真方式やインクジェット方式等の、様々な印刷方式による印刷装置のことである。複数種類の用紙を供給する給紙カセットや、両面印刷装置、白黒・カラー印刷、ステープル、製本機、複数の排紙トレイ等も印刷部４１４に含まれる。
【００２０】
図５は、ユーザが携帯端末装置１０１から印刷を試みようとした場合に、印刷可能なプリンタが複数検出され、その結果がプリンタリスト５０１として表示部２０８に表示されている様子を例示する。表示領域５０２には、プリンタＡ（プリンタ１０３）が印刷プラグイン１（印刷プラグイン３０８）により探索され、印刷候補として表示されている。表示領域５０３には、プリンタＢ（プリンタ１０４）が印刷プラグイン１（印刷プラグイン３０８）により探索され、印刷候補として表示されている。表示領域５０４には、プリンタＢ（プリンタ１０４）が印刷プラグイン２（印刷プラグイン３１２）により探索され、印刷候補として表示されている。表示領域５０５には、プリンタＢ（プリンタ１０４）が印刷プラグイン３（印刷プラグイン３１６）により探索され、印刷候補として表示されている。表示領域５０６には、プリンタＣ（プリンタ１０５）が印刷プラグイン２（印刷プラグイン３１２）により探索され、印刷候補として表示されている。表示領域５０７はプリンタＣ（プリンタ１０５）が印刷プラグイン３（印刷プラグイン３１６）により探索され、印刷候補として表示されている。
【００２１】
図５に示す例では、物理的に同一のプリンタＢ（プリンタ１０４）が３つの印刷プラグイン(印刷プラグイン１から３)によって探索されて、印刷可能なプリンタとしてプリンタリストに表示されている。更に物理的に同一のプリンタＣ（プリンタ１０５）が２つの印刷プラグイン(印刷プラグイン２、印刷プラグイン３)によって探索されて、印刷可能なプリンタとしてプリンタリスト５０１に表示されている。携帯端末装置１０１から印刷を試みようとしているユーザが、プリンタＢ（プリンタ１０４）を選択して印刷しようとした場合を想定する。この場合、選択可能な候補は表示領域５０３，５０４，５０５にそれぞれ示す３つのプリンタが存在することになるが、その差は印刷プラグインの違いとなっている。携帯端末装置１０１から印刷を試みようとするユーザが、印刷プラグインの違いで何が変わってくるのかについて良く理解できていない場合には、プリンタの選択処理で迷う可能性がある。本発明はこの点を解決すべき課題として、以下の対策を講じる。
【００２２】
図６は、本発明の実施形態において、ユーザが携帯端末装置１０１から印刷を試みようとした場合に、印刷可能なプリンタが複数検出され、その結果がプリンタリスト６０１として表示部２０８に表示されている様子を例示する。図５の例と異なり、ユーザがプリンタの選択に迷わないように、物理的に同一のプリンタに対しては、１つの印刷プラグインが表示される。表示領域６０２には、プリンタＡ（プリンタ１０３）が印刷プラグイン１（印刷プラグイン３０８）により探索され、印刷候補として表示されている。表示領域６０３には、プリンタＢ（プリンタ１０４）が印刷プラグイン１（印刷プラグイン３０８）により探索され、印刷候補として表示されている。表示領域６０４には、プリンタＣ（プリンタ１０５）が印刷プラグイン３（印刷プラグイン３１６）により探索され、印刷候補として表示されている。図６の例において、携帯端末装置１０１から印刷を試みようとしているユーザが仮に、プリンタＢ（プリンタ１０４）を選択して印刷しようとした場合、印刷プラグイン１によって探索されたプリンタは、表示領域６０３に表示された１つのプリンタしか候補が無い。すなわち、探索されたプリンタの情報は探索した印刷プラグインと関連付けてリストに登録され、探索済みのプリンタの情報を重複せずに候補としてユーザに提示する制御が行われる。よって、ユーザがリスト表示を見てプリンタの選択に迷うことが無くなるので、前記課題が解決される。
【００２３】
［第一実施形態］
本発明の第一実施形態に係る処理の要部を説明する前に、本実施形態におけるデータ処理の全体的な流れについて、具体例を用いて説明する。図１６を参照して、本実施形態における全体的なデータの流れを説明する。なお、一例として印刷プラグイン１（印刷プラグイン３０８）、印刷プラグイン２（印刷プラグイン３１２）を、プリンタベンダがそれぞれ提供する印刷プラグインとする。印刷プラグイン３（印刷プラグイン３１６）を、マルチベンダ対応の印刷プラグインとする。更に、印刷プラグイン１とプリンタＢ（プリンタ１０４）は同一のベンダにより提供されるものとする。
【００２４】
ユーザがアプリケーション３０１から印刷指示を行うと、ＯＳ３０４に対して印刷指示が送られる（Ｓ１６０１）。印刷指示を受け付けたＯＳ３０４は最初に、実装済みのベンダ提供の印刷プラグインである、印刷プラグイン１および印刷プラグイン２に対して優先的にプリンタ探索を指示する（Ｓ１６０２）。プリンタ探索の指示を受けた印刷プラグイン１および印刷プラグイン２は各々独自にプリンタ探索を行う（Ｓ１６０３）。プリンタ探索パケットを受信したプリンタＢはそれに応答するが、ここでは印刷プラグイン２からのプリンタ探索パケットを先に受信し、当該パケットに対して先に返信する場合を想定する。プリンタＢは印刷プラグイン２に対して、プリンタＢ自身の情報を返信する（Ｓ１６０４）。
【００２５】
印刷プラグイン２は、プリンタＢから返信された情報を受け取ると、その情報をＯＳ３０４に通知して、プリンタリストへの登録要請を行う（Ｓ１６０５）。しかし、この場合、プリンタＢは印刷プラグイン２のベンダが提供するプリンタではないので、ＯＳ３０４は、プリンタＢの情報をプリンタリストに登録しない。
【００２６】
次に、プリンタＢは印刷プラグイン１から受信したプリンタ探索パケットに対して応答する（Ｓ１６０６）。印刷プラグイン１は、プリンタＢから返信された情報を受け取ると、その情報をＯＳ３０４に通知して、プリンタリストへの登録要請を行う（Ｓ１６０７）。プリンタＢは印刷プラグイン１のベンダが提供するプリンタである。よって、ＯＳ３０４は、プリンタＢの情報をプリンタリストに登録する。
【００２７】
ベンダ提供の印刷プラグインによる処理が終了した後、マルチベンダ対応の印刷プラグインによる処理へ移行する。ＯＳ３０４は、マルチベンダ対応の印刷プラグイン３に対して、プリンタ探索を指示する（Ｓ１６０８）。プリンタ探索の指示を受けた印刷プラグイン３はプリンタ探索を行う（Ｓ１６０９）。プリンタ探索パケットを受信したプリンタＢはそれに応答し、印刷プラグイン３に対して、プリンタＢ自身の情報を返信する（Ｓ１６１０）。
【００２８】
印刷プラグイン３はプリンタＢから返信された情報を受け取ると、その情報をＯＳ３０４に通知して、プリンタリストへの登録要請を行う（Ｓ１６１１）。しかし、プリンタリストには既にプリンタＢがリストアップ済みである。つまり、印刷プラグイン１によって取得された情報がリストに記載されているので、ＯＳ３０４は印刷プラグイン３からの情報をプリンタリストに登録しない。したがって、プリンタリスト（候補リスト）にはプリンタＢと同じベンダが提供する印刷プラグイン１により探索した結果に基づいて、１つのプリンタＢの情報だけがリストアップされることになり、候補の重複登録が回避される。
【００２９】
図７は、本実施形態に係る処理を説明するメインフローチャートである。以下の処理はＯＳ３０４における処理である。ユーザがアプリケーション３０１で印刷処理を選択してからＯＳ３０４に対して印刷指示が行われると、ＯＳ３０４におけるプリンタの探索処理が開始する。なお、探索処理が完了した後では、印刷に使用するプリンタをユーザが選択して、印刷処理を実行するのが通常の流れであるが、候補プリンタのリストが表示された以降の処理は既知として説明を省略する。
【００３０】
図７のＳ７０１から処理が開始すると、Ｓ７０２に処理を進め、特定のプリンタベンダが作成して提供している、特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されているか否かについて判定される。印刷プラグインが特定のプリンタベンダ製のプリンタのみを対象としているか否かは、図３のデバイス探索制御部３０９，３１３，３１７に保持されている、対象とするプリンタベンダを示す値を用いて判断することができる。ここで、「実装されている」とは、携帯端末装置１０１のＲＯＭおよびＲＡＭ２０６上に印刷プラグインが存在する状態を示している。印刷プラグインは、携帯端末装置１０１の操作により、適宜に追加や削除が可能である。特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されている場合、Ｓ７０４の処理に進み、実装されていない場合にはＳ７０３に進む。なお、特定のプリンタベンダが作成して提供している、特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが複数実装されている場合には、各々の印刷プラグインに対して、同時に並行してＳ７０４の処理が実行されるものとする。
【００３１】
Ｓ７０３では、複数のプリンタベンダ製のプリンタを対象としているマルチベンダ対応の印刷プラグインが実装されているか否かについて判定される。マルチベンダ対応の印刷プラグインについては、例えばＭｏｐｒｉａ（登録商標）  Ａｌｌｉａｎｃｅのような標準化団体や、一般の第三者団体から提供されることが予想される。Ｓ７０３にてマルチベンダ対応の印刷プラグインが実装されていると判定された場合、Ｓ７０５の処理に進み、そうでない場合にはＳ７０６に進んで探索処理を終了する。なお、マルチベンダ対応の印刷プラグインが複数実装されている場合には、各々並行してＳ７０５の処理が実行される。あるいは、例えばマルチベンダ対応の印刷プラグインのリリース日時が新しい順にＳ７０５の処理を実行しても構わない。
図７のＳ７０４では、特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されているので、それに特化した処理を行う。この処理の詳細について、図８を参照して説明する。
【００３２】
図８は特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されている場合に、当該印刷プラグインにプリンタを探索させる処理を示したフローチャートである。以下の処理は印刷プラグイン３０８，３１２，３１６における処理である。
【００３３】
図８のＳ８０１から処理が開始すると、Ｓ８０２では、プリンタベンダが提供した印刷プラグインにおいて、プリンタの探索処理が実行される。具体的には、当該印刷プラグインがサポートする一般的なプロトコルまたは特定のプロトコルによる探索パケットを携帯端末装置１０１から送出する動作が行われる。そして携帯端末装置１０１は応答パケット待ちの状態となる。Ｓ８０３は、プリンタからの応答パケット待ちの状態で、応答パケットが返信されてきたか否かの判定処理である。携帯端末装置１０１に対し、プリンタからの返信があればＳ８０５に進み、返信が無い場合にはＳ８０４に進む。
【００３４】
Ｓ８０４では、一定時間以上に亘って応答パケットが返信されない状態が継続しているか否かが判定される。探索パケットに対する応答の待ち時間や、応答待ちを何回繰り返すのかについては、表示部２０８や入力部２０９を用いて設定可能である。応答待ちの繰り返し上限回数に達した場合、Ｓ８０６に進み、探索処理を終了する。また応答待ちの繰り返し上限回数に達していない場合にはＳ８０２に戻り、プリンタの探索処理が続行する。
【００３５】
Ｓ８０５では、Ｓ８０３で探索できた機種に関する情報がＯＳ３０４に提供され、その情報をプリンタリストに表示するための処理をＯＳ３０４が実行する。この情報（以下、機種情報という）は、機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称、探索したプラグインベンダ名等の情報である。Ｓ８０５の処理の詳細については、図１３（Ａ）のＳ１３０１にて後述する。Ｓ８０５の処理を終えると、Ｓ８０２に処理が戻る。
【００３６】
次に、図９を参照して、図７のＳ７０５の処理の流れを説明する。Ｓ７０５では、マルチベンダ対応の印刷プラグインが実装されているので、それに特化した処理が行われる。図９は、例えばＭｏｐｒｉａ（登録商標）  Ａｌｌｉａｎｃｅのようなマルチベンダ対応の印刷プラグインが実装されている場合に、当該プラグインにプリンタを探索させる処理を示したフローチャートである。この処理は印刷プラグイン（図１６：３１６）における処理である。
【００３７】
図９のＳ９０１から処理が開始すると、Ｓ９０２ではマルチベンダ対応の印刷プラグインにおいて、プリンタの探索処理が実行される。具体的には、当該印刷プラグインがサポートする一般的なプロトコルまたは特定のプロトコルによる探索パケットを携帯端末装置１０１から送出する動作が行われる。そして携帯端末装置１０１は応答パケット待ちの状態となる。Ｓ９０３では、プリンタからの応答パケット待ちの状態で、応答パケットが返信されてきたか否かについて判定される。携帯端末装置１０１に対してプリンタからの返信があればＳ９０５に進み、返信が無い場合にはＳ９０４に進む。Ｓ９０４では、一定時間以上に亘って応答パケットが返信されない状態が継続しているか否かについて判定される。探索パケットに対する応答の待ち時間や、応答待ちを何回繰り返すのかについては、表示部２０８や入力部２０９を用いて設定可能である。応答待ちの繰り返し上限回数に達した場合には、Ｓ９０６に進み、探索処理を終了する。応答待ちの繰り返し上限回数に達していない場合はＳ９０２に戻り、プリンタの探索処理が続行する。
【００３８】
Ｓ９０５では、探索できたプリンタの機種情報がＯＳ３０４に提供され、それをプリンタリストに表示するための処理をＯＳ３０４が実行する。Ｓ９０５の処理の詳細については図１３（Ｂ）のＳ１３１１にて後述する。
【００３９】
次に図１３（Ａ）のフローチャートを参照して、図８に示したＳ８０５の処理の詳細を説明する。Ｓ１３０１は、印刷プラグイン３０８，３１２，３１６がプリンタを探索して、その機種情報をＯＳ３０４に提供した後で、ＯＳ３０４にて実行される判断処理を例示する。Ｓ１３０１での判断処理を判断処理Ａと記す。この図１３（Ａ）に示すＳ１３０１、および図１３（Ｂ）に示すＳ１３１１の処理は、本発明の第一実施形態および後述の第二実施形態で共通の処理である。
【００４０】
図１３（Ａ）のＳ１３０２は、印刷プラグインから提供されたベンダ情報(ベンダ名、探索したプラグインベンダ名等)を用いて、印刷プラグインによって探索されたプリンタが既にリストアップされているか否かの判定処理である。つまり、探索で見つかったプリンタが、ＯＳ３０４によってプリンタリスト６０１に登録されているか否かが判定される。探索済みのプリンタがリストアップされているかどうかについては、機種名、ベンダ名、ＩＰアドレスおよび個別に定めた値の一致により判断される。探索したプラグイン名称および探索したプラグインベンダ名の如何は問わない。探索済みのプリンタが既にリストアップされている場合にはＳ１３０５に進んで処理を終了し、リストアップされていない場合にはＳ１３０３に進む。
【００４１】
Ｓ１３０３は、印刷プラグインから提供されたベンダ情報を用いて、探索されたプリンタ機種と、探索した印刷プラグインのベンダの機種とが同一であるか否かの判断処理である。探索されたプリンタ機種と、探索した印刷プラグインのベンダの機種とが同一でない場合、Ｓ１３０５に進んで処理を終了し、同一である場合にはＳ１３０４に進む。Ｓ１３０４は、印刷プラグインから提供されたベンダ情報を用いて、探索済みのプリンタを特定する情報をプリンタリスト６０１に追加する処理である。表示部２０８の画面にリスト表示される情報は、機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称等である。また、その他の情報が印刷プラグインから伝達されている場合、それらの情報は表示部２０８に表示されずにＲＯＭおよびＲＡＭ２０６に保持される。そしてＳ１３０５に進んで処理を終了する。
【００４２】
以上のように、図８のＳ８０５から図１３のＳ１３０１に進み、処理を実行した結果、
・探索されたプリンタのベンダが提供する印刷プラグインが当該プリンタを探索した場合には、探索されたプリンタがリストアップされ、また、
・探索されたプリンタが既にリストアップ済みである場合には何もしない。
【００４３】
次に図１３（Ｂ）のフローチャートを参照して、図９に示したＳ９０５の処理の詳細を説明する。Ｓ１３１１は、印刷プラグイン３０８，３１２，３１６がプリンタを探索して、その機種情報がＯＳ３０４に提供された後で、ＯＳ３０４が実行する判断処理を例示する。Ｓ１３１１の判断処理を、判断処理Ｂと記す。
【００４４】
Ｓ１３１２では、印刷プラグインから提供されたベンダ情報を用いて、印刷プラグインが探索したプリンタが既にＯＳ３０４によってプリンタリスト６０１に登録されているか否かについて判定される。探索されたプリンタが登録済みである場合、Ｓ１３１４に進んで処理を終了し、リストに登録されていない場合にはＳ１３１３に進む。Ｓ１３１３では、印刷プラグインから提供されたベンダ情報を用いて、探索済みのプリンタを示す情報をプリンタリスト６０１に追加する処理が実行される。この処理は図１３（Ａ）のＳ１３０４と同様である。そしてＳ１３１４に進み、処理を終了する。
【００４５】
以上のように、図９のＳ９０５から図１３のＳ１３１１に進み、処理が実行されることにより、以下の結果が得られる。
・探索されたプリンタが既にリストアップ済みである場合には何もしないこと。
・探索されたプリンタがリストアップ済みでない場合にはプリンタリストに当該プリンタの情報が追加されること。
図８の処理後に、図９の処理が連続して実行されることにより、以下に示す結果が得られる。
・プリンタベンダ提供の印刷プラグインが実装されている場合には、当該プリンタベンダが提供するプラグインのみにより、プリンタリスト６０１に探索済みプリンタ（物理的に同一のプリンタ）が１つだけリストアップされること。
・プリンタベンダが提供する印刷プラグインが実装されていない場合には、マルチベンダ対応の印刷プラグインにより、プリンタリスト６０１に探索済みプリンタ（物理的に同一のプリンタ）が１つだけリストアップされること。
よって、物理的に同一である１台のプリンタは、１つの印刷プラグインでリスト表示される。
【００４６】
本実施形態では、物理的に同一のプリンタが複数の印刷プラグインの各々によって検出される結果として、複数の印刷候補（プリンタ）がリストアップされてしまうという問題を解決できる。すなわち、印刷候補を示す１つのプリンタはプリンタリストに１つだけリストアップされる。更には、リストアップされる印刷候補を示す１つのプリンタは、当該プリンタのベンダが提供する印刷プラグインに対応するものとなる(ＯＳに実装されている場合)ので、より好ましい印刷結果を得ることができるという効果を奏する。
【００４７】
［第二実施形態］
次に、本発明の第二実施形態を説明する。本実施形態にて第一実施形態の場合と同様の構成要素については既に使用した符号を用いることにより、それらの詳細な説明を省略する。このような説明の省略の仕方は後述する他の実施形態でも同じである。
本実施形態に係る処理の要部を説明する前に、本実施形態におけるデータ処理の全体的な流れについて、具体例を用いて説明する。図１７を参照して、本実施形態における全体的なデータの流れを説明する。なお、印刷プラグイン１（印刷プラグイン３０８）をプリンタベンダが提供する印刷プラグインとし、印刷プラグイン３（印刷プラグイン３１６）をマルチベンダ対応の印刷プラグインとする。更に、印刷プラグイン１とプリンタＢ（プリンタ１０４）は同一のベンダにより提供されるものとする。
【００４８】
ユーザがアプリケーション３０１から印刷指示を行うと、ＯＳ３０４に対して印刷指示が送られる（Ｓ１７０１）。印刷指示を受け付けたＯＳ３０４は最初に、実装済みのマルチベンダ対応の印刷プラグイン３に対して優先的にプリンタ探索を指示する（Ｓ１７０２）。プリンタ探索の指示を受けた印刷プラグイン３はプリンタ探索を行う（Ｓ１７０３）。プリンタ探索パケットを受信したプリンタＢはそれに応答し、プリンタＢ自身の情報を返信する（Ｓ１７０４）。印刷プラグイン３はプリンタＢからの返信情報を受け取ると、その情報をＯＳ３０４に通知する（Ｓ１７０５）。ＯＳ３０４は受信した情報に基づき、探索済みプリンタのベンダを把握し、当該ベンダが提供する印刷プラグイン１が実装されていることを把握する。ＯＳ３０４は印刷プラグイン１に対し、受信した情報の示すプリンタへの対応の可否を問い合わせる（Ｓ１７０６）。ベンダ提供の印刷プラグイン１は、ＯＳ３０４の問合せに対し、プリンタＢに対応している旨を返信する。ベンダ提供の印刷プラグイン１がプリンタＢを検出したものと見做して、ＯＳ３０４はプリンタＢに関する情報をプリンタリストに登録する（Ｓ１７０７）。
【００４９】
マルチベンダ対応の印刷プラグイン３による処理が終了した後、ベンダ提供の印刷プラグイン１による処理へ移行する。ＯＳ３０４は、ベンダ提供の印刷プラグイン１に対して、プリンタ探索を指示する（Ｓ１７０８）。プリンタ探索の指示を受けた印刷プラグイン１はプリンタ探索を行う（Ｓ１７０９）。プリンタ探索パケットを受信したプリンタＢはそれに応答し、印刷プラグイン１に対して、プリンタＢ自身の情報を返信する（Ｓ１７１０）。印刷プラグイン１はプリンタＢからの返信情報を受け取ると、その情報をＯＳ３０４に通知して、プリンタリストへの登録要請を行う（Ｓ１７１１）。しかし、プリンタリストには既にプリンタＢの情報が、印刷プラグイン１による情報としてリストアップされているので今回の情報は登録されない。したがって、プリンタリストにはプリンタＢのベンダと同じベンダが提供する印刷プラグイン１により探索したと見做された１つのプリンタＢの情報だけがリストアップされることになり、候補の重複登録が回避される。
【００５０】
図１０は、本実施形態におけるプリンタ探索処理を説明するフローチャートである。以下の処理はＯＳ３０４における処理である。ユーザがアプリケーション３０１で印刷処理を選択してからＯＳ３０４に対して印刷指示が行われ後に、ＯＳ３０４がプリンタの探索処理を指示する。
【００５１】
Ｓ１００１から処理が開始すると、Ｓ１００２では、マルチベンダ対応の印刷プラグインが実装されているか否か、つまり携帯端末装置１０１のＲＯＭおよびＲＡＭ２０６上に当該印刷プラグインが存在するか否かについて判定処理が実行される。印刷プラグインが複数のプリンタベンダ製のプリンタを対象としているか否かについては、図３のデバイス探索制御部３０９，３１３，３１７に保持されている、対象とするプリンタベンダを示す値を用いて判断される。マルチベンダ対応の印刷プラグインが実装されている場合、Ｓ１００４に進み、そうでない場合にはＳ１００３に進む。なお、マルチベンダ対応の印刷プラグインが複数実装されている場合には、各々の印刷プラグインに対して並行してＳ１００４の処理が実行される。あるいは印刷プラグインのリリース日時が新しい順にＳ１００４の処理を順次に実行しても構わない。
【００５２】
Ｓ１００３では、特定のプリンタベンダが作成して提供している、特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されているか否かについて判定処理が実行される。特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されている場合、Ｓ１００５に進み、実装されていない場合にはＳ１００６に進み、処理を終了する。Ｓ１００４では、マルチベンダ対応の印刷プラグインに特化した処理が行われる。この処理の詳細については図１１を参照して後述する。また、Ｓ１００５では、特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインに特化した処理が行われる。この処理の詳細については図１２を参照して後述する。
【００５３】
次に、図１１のフローチャートを参照して、図１０のＳ１００４の処理を説明する。以下の処理は印刷プラグイン（図１７：３１６）における処理である。Ｓ１１０２からＳ１１０４の処理は、図９のＳ９０２からＳ９０４の処理と同様であるため、それらの説明を省略し、相違点であるＳ１１０５での判断処理Ｃについて、図１３（Ｃ）のフローチャートを参照して説明する。
【００５４】
図１３（Ｃ）のＳ１３２１では、印刷プラグインがプリンタを探索して、その機種情報がＯＳ３０４に提供された後で、ＯＳ３０４が判断処理Ｃを実行する。Ｓ１３２２は、印刷プラグインから提供されたベンダ情報を用いて、印刷プラグインが探索したプリンタが既にＯＳ３０４によってプリンタリスト中にリストアップされているか否かの判定処理である。機種名、ベンダ名、ＩＰアドレスおよび個別に定めた値の一致により、探索済みのプリンタがプリンタリスト中にリストアップされていることが判断された場合、Ｓ１３２８に進んで処理を終了する。また、探索済みのプリンタがプリンタリスト中にリストアップされていない場合にはＳ１３２３に処理を進める。
【００５５】
Ｓ１３２３では、印刷プラグインから提供されたベンダ情報を用いて、探索済みプリンタのベンダが提供する印刷プラグインが実装されているか否かについて判定される。当該印刷プラグインが実装されている場合にはＳ１３２５に進み、実装されていない場合にはＳ１３２４に進む。各印刷プラグインに対応するベンダ情報は、図３のデバイス探索制御部３０９，３１３，３１７にそれぞれ保持されている。よって、そのベンダ情報と印刷プラグインから提供された情報のベンダ名を比較することで実装の有無を判定できる。Ｓ１３２４では、印刷プラグインから提供されたプリンタに関する情報をプリンタリストに追加する処理が実行される。プリンタリストに追加する情報は機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称等である。その他の情報が印刷プラグインから伝達されている場合、それらの情報の示す値は表示部２０８に画面表示せずに、ＲＯＭおよびＲＡＭ２０６に保持される。そしてＳ１３２８に進み、処理を終了する。
【００５６】
Ｓ１３２５に到達した時点では、探索済みプリンタのベンダが提供する印刷プラグインが携帯端末装置１０１に実装されていることが判明している。Ｓ１３２５では、探索済みプリンタのベンダが提供する印刷プラグインに対して、マルチベンダ対応の印刷プラグインが取得してＯＳ３０４に通知しているベンダ情報が転送される。当該プリンタのベンダが提供する印刷プラグインが、その機種をサポートしているか否かの問い合わせが行われる。ＯＳ３０４に通知している情報とは、機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称、探索したプラグインのベンダ名等である。そしてＳ１３２６では、Ｓ１３２５で実施した問い合わせの結果について判断処理が実行される。探索済みプリンタのベンダの提供する印刷プラグインが対象機種に対応しているという回答が、当該ベンダの印刷プラグインからＯＳ３０４に返信された場合、Ｓ１３２７に進み、対応していないという回答が返信された場合にはＳ１３２４に進む。
【００５７】
Ｓ１３２７に到達した時点では、探索済みプリンタのベンダが提供する印刷プラグインが実装されており、かつ、当該プリンタがその印刷プラグインでの印刷に対応していることが判明している。Ｓ１３２７でＯＳ３０４は、探索されたプリンタのベンダが提供する印刷プラグインに対して、探索済みプリンタをプリンタリストにリストアップするために必要な情報を、ＯＳ３０４に送信するように指示を出す。この情報は、機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称、探索したプラグインのベンダ名等である。探索済みプリンタのベンダが提供する印刷プラグインは、この指示を受信し、探索済みプリンタをプリンタリスト６０１にリストアップするために必要な情報を返信する。ＯＳ３０４はその情報をプリンタリスト６０１に登録する。そして、Ｓ１３２８に進み、処理を終了する。
【００５８】
図１２は、特定のプリンタベンダが提供した、特定のプリンタベンダ製のプリンタのみを対象としている印刷プラグインが実装されている場合に、当該印刷プラグインにプリンタを探索させる処理を示したフローチャートである。Ｓ１２０２からＳ１２０４の処理は、図８のＳ８０２からＳ８０４の処理と同様であり、Ｓ１２０５にて判断処理Ｂが実行されることが相違点である。図１２のＳ１２０５では、探索されたプリンタの機種情報がＯＳ３０４に提供され、それをプリンタリストにて表示するための処理をＯＳ３０４が実行する。判断処理Ｂについては、第一実施形態にて図１３（Ｂ）のＳ１３１１にて既に説明したとおりであるため、重複説明を回避するためにその説明を省略する。
【００５９】
以上のように、図１１のＳ１１０５から図１３（Ｃ）のＳ１３２１に進み、処理が実行されることで、以下の結果が得られる。
・マルチベンダ対応の印刷プラグインがプリンタを探索し、プリンタベンダの提供する印刷プラグインが実装済みである場合
当該プリンタベンダが提供する印刷プラグインを使って当該プリンタに関する情報をプリンタリスト６０１にリストアップする処理が行われること。
・探索されたプリンタが既にリストアップ済みである場合には何もしないこと。
更に、図１２のＳ１２０５から図１３（Ｂ）のＳ１３１１に進み、処理が実行されることで、以下の結果が得られる。
・探索されたプリンタが既にリストアップ済みである場合には何もしないこと。
・マルチベンダ対応の印刷プラグインがプリンタを探索することができない場合であって、プリンタベンダの提供する印刷プラグインにより探索可能なプリンタがある場合：当該プリンタに関する情報をプリンタリスト６０１にリストアップする処理が行われること。
【００６０】
本実施形態では、第一実施形態の場合と同様に、ＯＳおよび印刷プラグインが協働し、プリンタの探索処理の順序が制御される。これにより、物理的に同一のプリンタが複数の印刷プラグインの各々に検出され、複数の候補としてリストアップされてしまうという問題を解決することができる。
【００６１】
［第三実施形態］
次に本発明の第三実施形態を説明する。本実施形態におけるデータ処理の全体的な流れについては、第一実施形態の場合と同様である（図１６参照）。本実施形態では、第一実施形態で説明した図７から図９と基本的に同様の処理が行われるが、図８のＳ８０５および図９のＳ９０５の処理が相違する。
【００６２】
本実施形態の場合、図８のＳ８０５にてベンダ提供の印刷プラグインは、探索できたプリンタの機種情報に基づいて、当該プリンタが既にプリンタリスト６０１にリストアップ済みであるか否かの問い合わせをＯＳ３０４に対して実施する。ＯＳ３０４から、当該プリンタがリストアップ済みであるという回答が得られた場合、Ｓ８０２に処理を戻す。また、当該プリンタがリストアップ済みでないという回答が得られた場合にベンダ提供の印刷プラグインは、ＯＳ３０４に対して探索済みプリンタの機種情報を提供し、それをプリンタリストにて表示するための処理をＯＳ３０４が実行する。この場合の判断処理Ａの詳細については図１４（Ａ）のＳ１４０１を参照して後述する。
【００６３】
本実施形態では、図９のＳ９０５にてマルチベンダ対応の印刷プラグインは、探索できたプリンタの機種情報に基づいて、当該プリンタが既にプリンタリスト６０１にリストアップ済みであるか否かの問い合わせをＯＳ３０４に対して実施する。ＯＳ３０４から、当該プリンタがリストアップ済みであるという回答が得られた場合、Ｓ９０２に処理を戻す。また、当該プリンタがリストアップ済みでないという回答が得られた場合にマルチベンダ対応の印刷プラグインは、ＯＳ３０４に対して探索済みプリンタの機種情報を提供し、それをプリンタリストにて表示するための処理をＯＳ３０４が実行する。この場合の判断処理Ｂの詳細については図１４（Ｂ）のＳ１４１１を参照して後述する。
【００６４】
図１４（Ａ）のＳ１４０１に示す判断処理Ａは、基本的に図１３（Ａ）のＳ１３０１と同様である。ただし、図１３のＳ１３０２の処理は省略されている。Ｓ１３０３にて、印刷プラグインから提供されたベンダ情報を用いて、探索されたプリンタのベンダ名と、探索を行った印刷プラグインのベンダ名とが同一であるか否かの判定処理から開始する。Ｓ１３０４の処理については、図１３（Ａ）にて説明したとおりである。
【００６５】
図１４（Ｂ）のＳ１４１１に示す判断処理Ｂは、基本的に図１３（Ｂ）のＳ１３１１と同様であるが、Ｓ１３１３の処理だけが実行される。つまり、印刷プラグインから提供されたベンダ情報を用いて、プリンタに関する情報をプリンタリスト６０１に追加する処理が実行される。
【００６６】
本実施形態では、印刷プラグインが探索したプリンタの機種情報がプリンタリスト６０１に登録済みであるか否かの判断処理を印刷プラグインが行う。本実施形態によれば、物理的に同一のプリンタが複数の印刷プラグインの各々に検出される結果、候補が重複してリストアップされてしまうという問題を解決することができる。
【００６７】
［第四実施形態］
次に、本発明の第四実施形態を説明する。本実施形態におけるデータ処理の全体的な流れについては、第二実施形態の場合と同様である（図１７参照）。本実施形態では、第二実施形態で説明した図１０から図１２と基本的に同様の処理が行われるが、図１１のＳ１１０５および図１２のＳ１２０５の処理が相違する。
【００６８】
本実施形態の場合、図１１のＳ１１０５にてマルチベンダ対応の印刷プラグインは探索できたプリンタの機種情報に基づき、当該プリンタが既にプリンタリスト６０１にリストアップ済みであるか否かの問い合わせをＯＳ３０４に対して実施する。ＯＳ３０４から、探索済みプリンタがリストアップ済みであるという回答が得られた場合、Ｓ１１０２に処理を戻す。また、探索済みプリンタがリストアップ済みでないという回答が得られた場合にマルチベンダ対応の印刷プラグインは、ＯＳ３０４に探索済みプリンタの機種情報を提供し、それをプリンタリストにて表示するための処理をＯＳ３０４が実行する。この場合の判断処理Ｃの詳細については図１４（Ｃ）のＳ１４２１を参照して後述する。
【００６９】
また、本実施形態では、図１２のＳ１２０５にてベンダ提供の印刷プラグインは探索できたプリンタの機種情報に基づいて、当該プリンタが既にプリンタリスト６０１にリストアップ済みであるか否かの問い合わせをＯＳ３０４に対して実施する。ＯＳ３０４から、探索済みプリンタがリストアップ済みであるという回答が得られた場合、Ｓ１２０２に処理を戻す。探索済みプリンタがリストアップ済みでないという回答が得られた場合にベンダ提供の印刷プラグインは、ＯＳ３０４に対して探索済みプリンタの機種情報を提供し、それをプリンタリストにて表示するための処理をＯＳ３０４が実行する。判断処理Ｂの詳細については、第三実施形態にて図１４（Ｂ）のＳ１４１１で説明したとおりであり、その説明を省略する。
図１４（Ｃ）を参照して判断処理Ｃを説明する。Ｓ１４２１は、基本的に図１３（Ｃ）のＳ１３２１と同様であるが、図１３のＳ１３２２の処理は省略されている。Ｓ１３２３にて、印刷プラグインから提供されたベンダ情報を用いて、探索されたプリンタのベンダが提供する印刷プラグインが実装されているか否かの判断処理から開始する。他の処理（Ｓ１３２４からＳ１３２８）は図１３（Ｃ）の場合と同じである。
本実施形態によれば、第二実施形態の場合と同様の効果が得られる。
【００７０】
［第五実施形態］
次に、本発明の第五実施形態を説明する。本実施形態に係る処理の要部を説明する前に、本実施形態におけるデータ処理の全体的な流れについて、具体例を用いて説明する。図１８を参照して、本実施形態における全体的なデータの流れを説明する。なお、印刷プラグイン１（印刷プラグイン３０８）をプリンタベンダが提供する印刷プラグインとし、印刷プラグイン３（印刷プラグイン３１６）をマルチベンダ対応の印刷プラグインとする。更に、印刷プラグイン１とプリンタＢ（プリンタ１０４）は同一のベンダにより提供されるものとする。
【００７１】
ユーザがアプリケーション３０１から印刷指示を行うと、ＯＳ３０４に対して印刷指示が送られる（Ｓ１８０１）。印刷指示を受け付けたＯＳ３０４は最初に、実装済みのマルチベンダ対応の印刷プラグイン３に対してプリンタ探索を指示する（Ｓ１８０２）。プリンタ探索の指示を受けた印刷プラグイン３はプリンタ探索を行う（Ｓ１８０３）。プリンタ探索パケットを受信したプリンタＢはそれに応答し、プリンタＢ自身の情報を返信する（Ｓ１８０４）。
【００７２】
印刷プラグイン３はプリンタＢからの返信情報を受け取ると、その情報に基づいて、探索したプリンタＢのベンダを把握し、当該ベンダ提供の印刷プラグイン１が実装されていることを把握する。印刷プラグイン３は、印刷プラグイン１に対し、探索したプリンタＢへの対応の可否を問い合わせる（Ｓ１８０５）。ベンダ提供の印刷プラグイン１は、印刷プラグイン３からの問合せに対し、プリンタＢに対応している旨を返信する（Ｓ１８０６）。ベンダ提供の印刷プラグイン１は更に、プリンタＢを自身が発見したものと見做してプリンタＢに関する情報をプリンタリスト６０１に登録する（Ｓ１８０７）。
【００７３】
マルチベンダ対応の印刷プラグイン３による処理が終了した後、ベンダ提供の印刷プラグイン１による処理へ移行する。ＯＳ３０４は、ベンダ提供の印刷プラグイン１に対して、プリンタ探索を指示する（Ｓ１８０８）。プリンタ探索の指示を受けた印刷プラグイン１はプリンタ探索を行う（Ｓ１８０９）。プリンタ探索パケットを受信したプリンタＢはそれに応答し、印刷プラグイン１に対して、プリンタＢ自身の情報を返信する（Ｓ１８１０）。印刷プラグイン１はプリンタＢからの返信を受け取ると、その情報をＯＳ３０４に通知してプリンタリスト６０１への登録要請を行う（Ｓ１８１１）。しかし、プリンタリスト６０１には既にプリンタＢの情報が、印刷プラグイン１による情報としてリストアップされているので今回の情報は登録されない。したがって、プリンタリスト６０１にはプリンタＢのベンダと同じベンダが提供する印刷プラグイン１により探索したと見做された１つのプリンタＢの情報だけがリストアップされることになり、候補の重複登録が回避される。
【００７４】
本実施形態と第四実施形態との相違点は、本実施形態にて図１４（Ｃ）のＳ１４２１に示す処理を印刷プラグインが内部で処理する点である。本実施形態の場合、図１４（Ｃ）のＳ１３２３にて印刷プラグインが取得したベンダ情報を用いて、探索されたプリンタのベンダが提供する印刷プラグインが実装されているか否かについて判定される。当該印刷プラグインが実装されている場合にはＳ１３２５に進み、そうでない場合にはＳ１３２４に進む。各印刷プラグインに対応するベンダ情報は、図３のデバイス探索制御部３０９，３１３，３１７が保持しているので、その情報の示すベンダ名と印刷プラグインから提供された情報の示すベンダ名とを比較することで判定処理が行われる。
【００７５】
Ｓ１３２４では、印刷プラグインが取得したプリンタに関する情報をＯＳ３０４に通知して、プリンタリスト６０１に追加する処理が実行される。プリンタリスト６０１に追加される情報は機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称等である。その他の情報も併せてＯＳ３０４に通知され、表示部２０８の画面に表示せずにＲＯＭおよびＲＡＭ２０６上で保持される。そしてＳ１３２８に進み、処理を終了する。
【００７６】
Ｓ１３２５に到達した時点では、探索されたプリンタのベンダが提供する印刷プラグインが実装されていることが判明している。よって、当該プリンタのベンダが提供する印刷プラグインに対して、マルチベンダ対応の印刷プラグインが取得した情報が印刷プラグインの間で転送される。マルチベンダ対応の印刷プラグインが取得した情報とは、プリンタの機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称、探索したプラグインのベンダ名等である。当該プリンタのベンダが提供する印刷プラグインが、その機種をサポートしているか否かの問い合わせ処理が実行され、Ｓ１３２６に処理を進める。Ｓ１３２６では、Ｓ１３２５で行った問い合わせの結果が判定され、探索されたプリンタのベンダが提供する印刷プラグインが該当機種に対応しているか否かが確認される。つまり、探索されたプリンタのベンダが提供する印刷プラグインが該当機種に対応しているという回答が、当該プリンタのベンダが提供する印刷プラグインから返信された場合、Ｓ１３２７に進む。また、探索されたプリンタのベンダが提供する印刷プラグインが該当機種に対応していないという回答であった場合にはＳ１３２４に進む。
【００７７】
図１４のＳ１３２７に到達した時点では、探索されたプリンタのベンダが提供する印刷プラグインが実装されており、かつ、プリンタがその印刷プラグインでの印刷に対応していることが判明している。ＯＳ３０４は、探索されたプリンタのベンダが提供する印刷プラグインに対して、探索済みプリンタをプリンタリストにリストアップするために必要な情報を、ＯＳ３０４に送信するように指示する。当該情報は、プリンタの機種名、ベンダ名、ＩＰアドレス、探索したプラグイン名称、探索したプラグインベンダ名等である。プリンタのベンダが提供する印刷プラグインは、この指示を受信し、探索済みプリンタをプリンタリスト６０１にリストアップするために必要な情報をＯＳ３０４に通知する。ＯＳ３０４はその情報をプリンタリスト６０１にリストアップしてからＳ１３２８に進み、処理を終了する。
本実施形態によれば、第四実施形態の場合と同様の効果が得られる。
【００７８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７９】
１０１                  携帯端末装置
１０３，１０４，１０５  プリンタ
３０１                  アプリケーション
３０４                  オペレーティングシステム
３０８，３１２，３１６  印刷プラグイン
【図１】
2016033770.tif 000003
【図２】
2016033770.tif 000004
【図３】
2016033770.tif 000005
【図４】
2016033770.tif 000006
【図５】
2016033770.tif 000007
【図６】
2016033770.tif 000008
【図７】
2016033770.tif 000009
【図８】
2016033770.tif 000010
【図９】
2016033770.tif 000011
【図１０】
2016033770.tif 000012
【図１１】
2016033770.tif 000013
【図１２】
2016033770.tif 000014
【図１３】
2016033770.tif 000015
【図１４】
2016033770.tif 000016
【図１５】
2016033770.tif 000017
【図１６】
2016033770.tif 000018
【図１７】
2016033770.tif 000019
【図１８】
2016033770.tif 000020