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

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

▶ キヤノン株式会社の特許一覧

<>
  • 特許-情報処理装置、方法、及びプログラム 図1
  • 特許-情報処理装置、方法、及びプログラム 図2
  • 特許-情報処理装置、方法、及びプログラム 図3
  • 特許-情報処理装置、方法、及びプログラム 図4
  • 特許-情報処理装置、方法、及びプログラム 図5
  • 特許-情報処理装置、方法、及びプログラム 図6
  • 特許-情報処理装置、方法、及びプログラム 図7
  • 特許-情報処理装置、方法、及びプログラム 図8
  • 特許-情報処理装置、方法、及びプログラム 図9
  • 特許-情報処理装置、方法、及びプログラム 図10
  • 特許-情報処理装置、方法、及びプログラム 図11
  • 特許-情報処理装置、方法、及びプログラム 図12
  • 特許-情報処理装置、方法、及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】情報処理装置、方法、及びプログラム
(51)【国際特許分類】
   G06F 3/12 20060101AFI20240213BHJP
【FI】
G06F3/12 325
G06F3/12 303
G06F3/12 326
G06F3/12 336
【請求項の数】 15
(21)【出願番号】P 2019223754
(22)【出願日】2019-12-11
(65)【公開番号】P2021093011
(43)【公開日】2021-06-17
【審査請求日】2022-12-05
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】松井 裕佑
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2009-187447(JP,A)
【文献】特開2018-194906(JP,A)
【文献】特開2018-194910(JP,A)
【文献】特開2016-224731(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
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
ネットワーク経由で通信可能な周辺機器を検索する検索手段と、
前記検索手段による検索結果として、検出した周辺機器それぞれの情報を、表示手段に表示させる表示制御手段と、
前記検出した周辺機器のなかからユーザーにより選択された周辺機器の情報を記憶手段に記憶させる記憶制御手段と、
前記選択された周辺機器に対応するドライバをインストールするインストール手段と、
前記記憶手段に記憶された前記情報に基づき、前記選択された周辺機器と通信可能なポートを決定する通信可能ポート決定手段と、
を有する情報処理装置であって、
前記通信可能ポート決定手段による通信可能ポート決定処理が開始された後の且つ前記通信可能ポート決定処理が完了される前のタイミングに前記インストール手段によるインストール処理が開始されること、又は、前記インストール処理が開始された後の且つ前記インストール処理が完了される前のタイミングに前記通信可能ポート決定処理が開始されることにより、記インストール処理と、前記通信可能ポート決定処理とは、並列して実行される
ことを特徴とする情報処理装置。
【請求項2】
前記インストール処理と、前記通信可能ポート決定処理との並列処理の完了後、前記通信可能ポート決定処理の結果に応じて、前記選択された周辺機器と通信可能なポートを生成するポート生成手段と、
前記インストール手段によりインストールされたドライバと、前記ポート生成手段により生成されたポートとに紐付けされたキューを生成するキュー生成手段と、
を更に有することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記通信可能ポート決定手段は、第1ネットワークプロトコルによる通信ポートの生成が可能か不可かを判定する第1判定手段を有し、
前記第1判定手段が可能と判定した場合、前記通信可能ポート決定手段は、通信可能ポートが前記第1ネットワークプロトコルによる通信ポートと決定する
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記第1判定手段は、
前記第1ネットワークプロトコルを用いて前記ネットワーク上を探索し、
前記ネットワーク上で、前記記憶手段に記憶された前記情報で特定される周辺機器が検出された場合、前記第1ネットワークプロトコルによる通信ポートの生成が可能と判定する一方で、検出されなかった場合、該第1ネットワークプロトコルによる通信ポートの生成が不可と判定する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記通信可能ポート決定手段は、前記第1判定手段が不可と判定した場合、第2ネットワークプロトコルによる通信ポートの生成が可能か不可かを判定する第2判定手段を有し、
前記第2判定手段が可能と判定した場合、前記通信可能ポート決定手段は、通信可能ポートが前記第2ネットワークプロトコルによる通信ポートと決定する
ことを特徴とする請求項3または4に記載の情報処理装置。
【請求項6】
前記第2判定手段は、
前記選択された周辺機器とユニキャスト通信を行うことで、該選択された周辺機器に設定されているホスト名を取得する取得手段と、
前記取得手段により取得されたホスト名を用いて名前解決を実行する名前解決手段と、
を有することを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記第2判定手段は、
前記名前解決手段による名前解決に成功した場合、前記第2ネットワークプロトコルによる通信ポートの生成が可能と判定する一方で、
前記取得手段によるホスト名の取得に失敗した場合、または、前記名前解決手段による名前解決に失敗した場合、前記第2ネットワークプロトコルによる通信ポートの生成が不可と判定する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記第2判定手段が不可と判定した場合、前記通信可能ポート決定手段は、通信可能ポートが、前記記憶手段に記憶された前記情報である固定IPアドレスを用いた通信ポートと決定する
ことを特徴とする請求項5乃至7の何れか1項に記載の情報処理装置。
【請求項9】
前記通信可能ポート決定手段は、
第1ネットワークプロトコルによる通信ポートの生成が可能か不可かを判定する第1判定手段と、
第2ネットワークプロトコルによる通信ポートの生成が可能か不可かを判定する第2判定手段と
を有し、
前記第1判定手段による判定処理と、前記第2判定手段による判定処理とは、並列して実行される
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項10】
前記第1判定手段による判定処理と、前記第2判定手段による判定処理との並列処理の完了後、第1判定手段が可能と判定した場合、前記通信可能ポート決定手段は、通信可能ポートが前記第1ネットワークプロトコルによる通信ポートと決定する
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
第1判定手段が不可と判定した場合、かつ、第2判定手段が可能と判定した場合、前記通信可能ポート決定手段は、通信可能ポートが前記第2ネットワークプロトコルによる通信ポートと決定し、
第1判定手段が不可と判定した場合、かつ、第2判定手段が不可と判定した場合、前記通信可能ポート決定手段は、通信可能ポートが、前記記憶手段に記憶された前記情報である固定IPアドレスを用いた通信ポートと決定する
ことを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記インストール処理の完了後、前記記憶手段に記憶された前記情報である固定IPアドレスを用いた第1通信ポートを生成する第1通信ポート生成処理を実行するポート生成手段と、
前記インストール手段によりインストールされたドライバと、前記第1通信ポートとに紐付けされたキューを生成する生成手段と、
を更に有し、
前記インストール手段による前記インストール処理、前記ポート生成手段による前記第1通信ポート生成処理、及び前記生成手段によるキュー生成処理と、前記通信可能ポート決定手段による前記通信可能ポート決定処理とは、並列して実行される
ことを特徴とする請求項1に記載の情報処理装置。
【請求項13】
通信可能ポートが前記第1通信ポートではない場合、前記ポート生成手段は、前記通信可能ポート決定処理の結果に応じて、前記選択された周辺機器と通信可能な第2通信ポートを生成し、
前記キューに紐づく通信ポートに関して、前記第1通信ポートから前記第2通信ポートに置換される
ことを特徴とする請求項12に記載の情報処理装置。
【請求項14】
ネットワーク経由で通信可能な周辺機器を検索する検索ステップと、
前記検索ステップの検索結果として、検出した周辺機器それぞれの情報を、表示手段に表示させるステップと、
前記検出した周辺機器のなかからユーザーにより選択された周辺機器の情報を記憶手段に記憶させるステップと、
前記選択された周辺機器に対応するドライバをインストールするインストールステップと、
前記記憶手段に記憶された前記情報に基づき、前記選択された周辺機器と通信可能なポートを決定する決定ステップと、
を有し、
前記決定ステップが開始された後の且つ前記決定ステップが完了される前のタイミングに前記インストールステップが開始されること、又は、前記インストールステップが開始された後の且つ前記インストールステップが完了される前のタイミングに前記決定ステップが開始されることにより、前記インストールステップと、前記決定ステップとは、並列して実行される
ことを特徴とする方法。
【請求項15】
コンピュータに請求項14に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、方法、及びプログラムに関し、特に、ネットワークデバイスドライバのインストール処理の技術に関する。
【背景技術】
【0002】
近年、情報処理装置(以下PC)の周辺機器(以下デバイス)の分野では、単機能でなく複数機能が1つのデバイスに搭載されている。このようなデバイスとして、例えば、プリント機能だけでなく、スキャン機能およびファックス機能を搭載するMFP(Multi-Function Peripheral)等が挙げられる。このようなデバイスはUSB(Universal Serial Bus)やネットワークなど様々なインターフェースを介してPCと接続することが可能である。特にネットワークにおいては、同一ネットワーク上にある複数のPCやスマートデバイスで共有してデバイスを利用することが可能になった。
【0003】
デバイスの様々なインターフェースへの対応に伴い、特定のデバイスに対応するデバイスドライバをPCにインストールし、様々なインターフェース上で該特定のデバイスを検索する方法として、図13に示す方法が知られている。図13(a)は、ネットワークとUSBとの各インターフェースを考慮したドライバインストーラのUI画面フローを示し、図13(b)は、該ドライバインストーラに従ってPCが実行する処理のフローを示す。
【0004】
従来、デバイス検索プロトコルを、デバイスを開発するメーカが独自に開発してきた。しかし近年、OSの標準機能として、UPnP(Universal Plug and Play)プロトコルに対応したデバイスを検索し、そのプロトコルに対応した通信ポートに関連付けてデバイスドライバをインストールすることが可能となっている。そして、メーカ独自のデバイス検索プロトコルと、OS標準のデバイス検索プロトコルとの両方に対応したデバイスが普及している。
【0005】
これらのデバイス検索プロトコルを用いる場合に、ネットワークの状態やデバイスの状態によっては、デバイスを検出できない可能性がある。特許文献1には、図13(b)に示すネットワークポート生成処理において、デバイス探索プロトコルを用いてデバイスと通信し、複数の通信ポートのうち通信可能な通信ポートを特定する方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2016-224731号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、ドライバインストール処理と、周辺機器の検索処理と、ネットワークポート生成処理内で実行する通信可能な通信ポートを決定するための通信処理とを、シーケンシャルで実行している。このため、情報処理装置と周辺機器との通信時に周辺機器からの応答に時間がかかると、各工程での処理に時間がかかり、ドライバインストールを含む周辺機器の設定処理全体に影響を及ぼしてしまう。
【0008】
そこで本発明は、上記の課題に鑑み、周辺機器の設定にかかる時間の増加を抑えることを目的とする。
【課題を解決するための手段】
【0009】
本発明の一実施形態は、ネットワーク経由で通信可能な周辺機器を検索する検索手段と、前記検索手段による検索結果として、検出した周辺機器それぞれの情報を、表示手段に表示させる表示制御手段と、前記検出した周辺機器のなかからユーザーにより選択された周辺機器の情報を記憶手段に記憶させる記憶制御手段と、前記選択された周辺機器に対応するドライバをインストールするインストール手段と、前記記憶手段に記憶された前記情報に基づき、前記選択された周辺機器と通信可能なポートを決定する通信可能ポート決定手段と、を有する情報処理装置であって、前記通信可能ポート決定手段による通信可能ポート決定処理が開始された後の且つ前記通信可能ポート決定処理が完了される前のタイミングに前記インストール手段によるインストール処理が開始されること、又は、前記インストール処理が開始された後の且つ前記インストール処理が完了される前のタイミングに前記通信可能ポート決定処理が開始されることにより、前記インストール処理と、前記通信可能ポート決定処理とは、並列して実行されることを特徴とする情報処理装置である。
【発明の効果】
【0010】
本発明によれば、周辺機器の設定にかかる時間の増加を抑えることが可能になる。
【図面の簡単な説明】
【0011】
図1】第1の実施形態におけるシステムの構成を示すブロック図
図2】第1の実施形態におけるPC101のハードウェア構成を示すブロック図
図3】第1の実施形態におけるデバイス102のハードウェア構成を示すブロック図
図4】第1の実施形態におけるPC101のソフトウェア構成を示すブロック図
図5】第1の実施形態におけるアプリケーション401によって表示される、デバイス検索結果を示す画面
図6】(a)第1の実施形態におけるアプリケーション401によって表示される、インストール処理中の画面(b)第1の実施形態におけるアプリケーション401によって表示される、インストール完了の旨を通知する画面
図7】(a)第1の実施形態におけるアプリケーション401の全体のUI画面フロー(b)第1の実施形態におけるアプリケーション401の全体の処理の流れを示すフローチャート
図8】第1の実施形態における通信可能ポート決定処理のフローチャート
図9】第1の実施形態におけるWSDポート生成可否の判定処理のフローチャート
図10】第1の実施形態におけるLLMNRポート生成可否の判定処理のフローチャート
図11】第2の実施形態における通信可能ポート決定処理のフローチャート
図12】第3の実施形態におけるアプリケーション401の全体の処理の流れを示すフローチャート
図13】(a)従来のアプリケーション401の全体のUI画面フロー(b)従来のアプリケーション401の全体の処理の流れを示すフローチャート
【発明を実施するための形態】
【0012】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものではない。また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0013】
なお、以降の記載において、複数の処理を並列(もしくは並行)して実行することについて記載されている。ここでの「並列」(もしくは「並行」)は、複数の処理が同時に実行される場合と、複数の処理の一部が交互に実行される場合を含むものとする。後者の場合、例えば処理Aが開始され、処理Bが完了する前に処理Bが開始されるとする。そして、例えば処理A、処理Bのそれぞれ一部が微小な時間で交互に実行される場合も「並列」に含まれる。この場合、処理A、処理Bは厳密には同時に実行されていないが、処理Aの完了前に処理Bが実行されているため、例えばユーザーにとっては両者が同時に実行されることになる。
【0014】
[第1の実施形態]
<システムの構成>
図1は、本実施形態における情報処理装置(以下PC)101を含むネットワークシステムの構成の一例を示すブロック図である。図1に示すシステムでは、PC101と、周辺機器(以下デバイス)102と、ルーター103とが、ネットワーク104を介して接続されている。各装置は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルとUDP(User Datagram Protocol)とに従って、通信を行う。ネットワーク104は、ルーター103を介して外部ネットワーク105と接続されている。
【0015】
デバイス102は具体的には、プリンタ、複写機、ファクシミリ、スキャナ等の周辺機器、または、それらの複合機能を有する装置である。また、デバイス102は、TCP/IPプロトコルに対応すると共に、UPnPに対応したWindows OS標準のネットワークプロトコルであるWSD(WebService on Devices)プロトコルに対応する。さらに、デバイス102は、近隣のネットワークデバイスの名前解決ができるLLMNR(Link-Local Multicast Name Resolution)プロトコルにも対応する。尚、デバイス102のWSD機能、LLMNR機能については、ユーザーがデバイス102を直接操作することで、機能の有効と無効との切り替えを行うことができる。ルーター103は、DHCP(Dynamic Host Configuration Protocol)サーバ機能を有し、PC101、デバイス102にIPアドレスを割り当てる。
【0016】
<PC101のハードウェア構成>
図2は、PC101のハードウェア構成を示すブロック図である。PC101は、モニタ201と、CPU202と、ROM203と、RAM204と、補助記憶装置205と、キーボード206と、ポインティングデバイス207と、ネットワークボード208とを有する。各構成要素は、バス209を介して相互に接続され、構成要素間でデータを送信または受信することが可能である。
【0017】
モニタ201には、アプリケーション401(図4参照)等のアプリケーションやドライバのUser Interface(以下、UI)が表示される。UIには、GUI(Graphical User Interface)が含まれる。CPU202は、ROM203や補助記憶装置205に記憶されている、アプリケーションやドライバ等のプログラムをRAM204にロードして、該ロードしたプログラムを実行する。これにより、以下で説明する本実施形態における処理が実行される。
【0018】
ROM203には、BIOS等の基本ソフトウェアや、PC101で実行する処理を実現するための各種プログラムが記憶される。RAM204には、アプリケーションやドライバなどのソフトウェアや、それらが利用するデータが一時的に記憶される。補助記憶装置205は、例えば、ハードディスクである。補助記憶装置205は、OS、アプリケーション、ドライバ、種々のモジュールなどのソフトウェア(プログラム)が記憶される。
【0019】
補助記憶装置205によって記憶されるドライバには、デバイス102を制御するデバイスドライバ(スキャナドライバ、プリンタドライバ、ファクシミリドライバ等)が含まれる。また、補助記憶装置205によって記憶されるドライバには、モニタ201における表示を制御する表示制御ドライバ、キーボード206を制御するキーボードドライバ、ポインティングデバイス207を制御するポインティングデバイスドライバが含まれる。さらに、補助記憶装置205によって記憶されるドライバには、ネットワークボード208の通信を制御するネットワークドライバが含まれる。
【0020】
補助記憶装置205によって記憶されるアプリケーションには、本実施形態におけるアプリケーション401が含まれる。アプリケーション401は、TCP/IPによるデバイスの検索機能および情報設定機能を有する。尚、アプリケーション401が、これらの機能を有するモジュールを呼び出して、これらの機能を実行させるようにしてもよい。尚、これら検索機能と情報設定機能とが、それぞれ別のモジュールに設けられていてもよい。キーボード206およびポインティングデバイス207は、ユーザーからの指示を入力する入力装置である。ネットワークボード208は、ネットワーク経由で、PC101外のデバイス102との通信を行う。
【0021】
<デバイス102のハードウェア構成>
図3は、デバイス102のハードウェア構成を示すブロック図である。尚、図3は、デバイス102がプリンタのケースを示しているが、前述した通り、デバイス102としてプリンタ以外の装置を採用してよい。
【0022】
デバイス102は、CPU301と、ROM302と、RAM303と、通信部304と、記録部305と、操作部306と、表示部307とを有する。デバイス102を構成するこれらの構成要素は、バス308を介して相互に接続され、構成要素間でデータを送信または受信することが可能である。CPU301は、デバイス102の中央処理装置として機能し、例えば、マイクロプロセッサである。CPU301は、ROM302に記憶されているプログラムをRAM303にロードし、該ロードしたプログラムを実行することによって、通信部304、記録部305、操作部306、及び表示部307を制御する。
【0023】
ROM302には、デバイス102で実行する処理を実現するための各種プログラムが記憶される。RAM303は、CPU301のワークエリアとして用いられる。RAM303には、各種データが一時的に記憶される。通信部304は、ネットワークを介して、デバイス102外のPC101等の他デバイスとの通信を行う。
【0024】
記録部305は、例えば、印刷ジョブに含まれる画像データに基づき作成される記録データに応じて、紙などの記録媒体に画像を記録(印刷)する。操作部306は、ボタンやタッチパネル等の入力装置で構成され、ユーザーは、操作部306を介してデバイス102への入力を行う。表示部307には、デバイス102を操作するための画面等のGUIや、デバイス102の各種情報が表示され、ユーザーは、表示部307に表示された内容を視認する。
【0025】
尚、デバイス102がプリンタ以外のデバイスである場合、デバイス102は、記録部305に代えて、または記録部305に加えて、他の構成要素を有することになる。例えば、デバイス102がスキャナであれば、デバイス102は、他の構成要素として、原稿上の画像を読み取る読取部を有する。
【0026】
<アプリケーション401のソフトウェア構成>
図4は、PC101が有するアプリケーションであって、PC101がデバイス102と通信するためのアプリケーションの構成を示すブロック図である。図4に示すように、PC101は、アプリケーション401と、ドライバINFファイル402と、プリンタドライバ403と、スキャナドライバ404と、ファックスドライバ405とを有する。
【0027】
アプリケーション401は、デバイス102のドライバをPC101にインストールするドライバインストーラである。具体的には、アプリケーション401は、PC101と接続しているデバイス(デバイス102が含まれる)を検索し、該検出したデバイスに関する情報をモニタ201に表示させる。その後、表示された情報のうちユーザーにより選択された情報に対応するデバイスのドライバがPC101にインストールされる。
【0028】
ドライバINFファイル402には、アプリケーション401によってインストールされるドライバ(本例ではドライバ403~405の何れか1つ以上)に対応するデバイスの機種情報などのデバイス固有の情報が含まれる。
【0029】
アプリケーション401は、デバイス検索部406と、検出デバイス出力部407と、ドライバインストール部408と、通信可能ポート決定部409と、通信ポート生成部410と、キュー生成部411とを有する。図4に示す各部は、PC101のCPU202が、ROM203または補助記憶装置205に記憶されているアプリケーション401のプログラムを読み出して実行することで実現される。本実施形態では、アプリケーション401は、同一ネットワーク内にあるデバイスを検索し、検出したデバイスの情報をモニタ201に表示する。一方、同一ネットワーク内にあるデバイスを検索できなかった場合、アプリケーション401は、デバイスを1台も検出できなかった旨をモニタ201に表示する。
【0030】
デバイス検索部406は、ドライバ情報を含むドライバINFファイル402から得たターゲットデバイス(アプリケーション401が対応するデバイスの機種)のデバイス名情報と、デバイス検索部406が検索したデバイスのデバイス名情報とを比較する。
【0031】
検出デバイス出力部407は、デバイス検索部406により検索されたデバイスのデバイス名情報と、ドライバINFファイル402から得たターゲットデバイスのデバイス名情報とが一致した場合、この一致したデバイスの情報をモニタ201に表示する。ユーザーは、モニタ201に表示されたデバイスの一覧から、所望のデバイス(所望デバイスとする)を選択する。
【0032】
ドライバインストール部408は、検出デバイス出力部407により表示された一覧からユーザーが選択したデバイスに対応するドライバをインストールする。尚、検出デバイス出力部407により表示された一覧からユーザーが選択したデバイスの種類によって、ドライバインストール部408がインストールするドライバは異なる。例えば、ユーザーが選択したデバイスがプリンタの場合、アプリケーション401は、プリンタドライバ403をPC101にインストールする。また、ユーザーが選択したデバイスがスキャナの場合、アプリケーション401は、スキャナドライバ403をPC101にインストールする。さらに、ユーザーが選択したデバイスがMFPの場合、アプリケーション401はプリンタドライバ403に加えて、スキャナドライバ404とファックスドライバ405との少なくとも1つをPC101にインストールする。
【0033】
通信可能ポート決定部409は、ユーザーが選択したデバイスと複数のデバイス探索用プロトコルを用いて通信し、何れの通信可能ポートが該デバイスにとって最適な通信可能ポートか判定し、決定する。
【0034】
通信ポート生成部410は、通信可能ポート決定部409により決定された通信可能ポートを生成する。
【0035】
キュー生成部411は、ドライバインストール部408によりインストールされた各種ドライバと、通信ポート生成部410により生成された通信ポートとを紐付けたキューを、PC101に生成する。
【0036】
<アプリケーション401のGUI>
図5は、モニタ201に表示されるアプリケーション401のGUIの一例として、検出デバイス出力部407によるデバイス検索結果を示す画面(デバイス検索結果画面とする)501を示す図である。
【0037】
図6(a)は、アプリケーション401のGUIの一例を示す。具体的には図6(a)は、ドライバインストール部408と、通信可能ポート決定部409と、通信ポート生成部410と、キュー生成部411との処理を実行しているときに表示される画面(インストール中画面とする)601を示している。インストール中画面601では、内部処理のステータスがメッセージ602を用いて示されている。例えば、ドライバインストール部408がドライバインストール処理を実行している場合、図6(a)に示すように、メッセージ602として「ドライバインストール中・・・」等と表示される。
【0038】
図6(b)は、図6(a)に示す内部処理(具体的にはドライバインストール処理)の完了後に表示される、アプリケーション401のGUIの一例を示す図である。
【0039】
<アプリケーション401の処理>
以下、本実施形態におけるアプリケーション401に従い実行される処理について、図7を用いて説明する。図7(a)は、PC101のCPU202がアプリケーション401を実行することでモニタ201に表示されるGUIの遷移を示す。図7(b)は、PC101のCPU202がアプリケーション401を実行したときの全体の処理の流れを示すフローチャートである。
【0040】
まず、ユーザーがアプリケーション401を起動すると、CPU202は、図5に示すデバイス検索結果画面501を表示する。CPU202がデバイス検索結果画面501を表示した後、ステップS701において、デバイス検索部406は、PC101と接続しているデバイスの検索を自動で開始する。このとき、ネットワークだけでなく、異なるインターフェースで接続(例えば、USBケーブルなど)されるデバイスも同時に検索しても良い。デバイス検索部406によるデバイスの検索が終了すると、検出されたデバイス等の検索結果が、デバイス一覧502に表示される。尚、以下では「ステップS~」を「S~」と略記する。
【0041】
S702において、ユーザーは、デバイス一覧502を確認し、デバイス一覧502に所望デバイスが含まれているか否かを判断する。デバイス一覧502に所望デバイスが含まれている場合、S703に進む。一方、デバイスが1台も表示されない等、デバイス一覧502に所望デバイスが含まれていない場合に、ユーザーが再検索ボタン503(図5参照)を押下すると、S701に戻り、デバイス検索部406がデバイス検索処理を再び実行する。尚、ユーザーが再検索ボタン503を押下すると、デバイス一覧502の表示内容はクリアされる。
【0042】
S702の後、ユーザーは、デバイス一覧502に表示されているデバイスの中から、所望デバイスを選択的に決定、具体的には、デバイス一覧502に表示されているデバイスの中から所望デバイスを選択し、インストール開始504ボタンを押下する。そして、S703において、CPU202は、このユーザー入力を受け付ける。
【0043】
S703の後、モニタ201に表示される画面がデバイス検索結果画面501からドライバインストール中画面601に切り替わる。このとき、S704において、CPU202は記憶制御手段として機能し、ユーザーが選択したデバイスのネットワーク情報(IPアドレスなど)をRAM204に記憶する。
【0044】
S704の後、CPU202は、S705のドライバインストール処理と、S706の通信可能ポート決定処理とを並列で(並行して)実行する。このとき、ドライバインストール処理はドライバインストール部408によって実行され、通信可能ポート決定処理は通信可能ポート決定部409によって実行される。ドライバインストール処理(S705)と、通信可能ポート決定処理(S706)との両方が終了すると、S707に進む。
【0045】
S707において、通信ポート生成部410は、S706における通信可能ポート決定処理の結果に応じた通信ポートを生成する。S707の通信ポート生成処理が終了すると、S708に進む。
【0046】
S708において、キュー生成部411は、S705でドライバインストール部408がインストールした各種ドライバと、S707で通信ポート生成部410が生成した通信ポートとに紐付くキューを生成する。S708におけるキュー生成処理が終了すると、CPU202は、インストール処理が完了した旨を示す画面(図6(b)参照)をモニタ201に表示する。その後、ユーザーが終了ボタン604を押下すると、図7(b)に示す一連の処理が終了し、アプリケーション401が終了する。
【0047】
<通信可能ポート決定処理>
図8は、通信可能ポート決定処理(図7(b)のS706)の流れを示すフローチャートである。通信可能ポート決定処理では、通信ポートに優先順位を設けており、具体的には、優先順位が高いプロトコルの順に、通信ポートの生成が可能か否かの判定処理を実行する。尚、本実施形態における通信ポートの優先順位は、WSDプロトコル、LLMNRプロトコル、固定IPアドレスの順としている。
【0048】
まず、S801において、通信可能ポート決定部409は、WSDプロトコルによる通信ポート(WSD通信ポート、WSDポート等と呼ぶ)の生成が可能か否か判定する処理(WSDポート生成可否の判定処理とする)を実行し、その結果を受け取る。尚、WSDポート生成可否の判定処理の詳細については、図9を用いて後述する。
【0049】
S802において、通信可能ポート決定部409は、S801におけるWSDポート生成可否の判定処理の実行結果に基づき、WSDの通信ポートを生成可能か判定する。本ステップの判定結果が真の場合、S803に進む。一方、本ステップの判定結果が偽の場合、S804に進む。
【0050】
S803において、通信可能ポート決定部409は、通信可能ポートがWSDポートと決定し、通信可能ポート決定処理は終了する。
【0051】
S804において、通信可能ポート決定部409は、LLMNRプロトコルによる通信ポート(LLMNRポートとする)の生成が可能か否か判定する処理(LLMNRポート生成可否の判定処理とする)を実行し、その結果を受け取る。尚、LLMNRポート生成可否の判定処理の詳細については、図10を用いて後述する。
【0052】
S805において、通信可能ポート決定部409は、S804におけるLLMNRポート生成可否の判定処理の実行結果に基づき、LLMNRポートを生成可能か判定する。本ステップの判定結果が真の場合、S806に進む。一方、本ステップの判定結果が偽の場合、S807に進む。
【0053】
S806において、通信可能ポート決定部409は、通信可能ポートがLLMNRポートと決定し、通信可能ポート決定処理は終了する。
【0054】
S807において、通信可能ポート決定部409は、通信可能ポートが固定IPアドレスのポートと決定し、通信可能ポート決定処理は終了する。
【0055】
<WSDポート生成可否の判定処理>
図9は、WSDポート生成可否の判定処理(図8のS801)の流れを示すフローチャートである。
【0056】
まず、S901において、通信可能ポート決定部409は、WSDプロトコルによるネットワーク探索を開始し、ネットワーク上に存在するデバイスの検出を試みる。
【0057】
S902において、通信可能ポート決定部409は、S901のデバイス探索の結果、デバイスの検出に成功したか判定する。本実施形態では具体的には、S704で記憶しておいた所望デバイスのネットワーク情報で特定されるデバイスを検出した場合、デバイスの検出に成功したとみなす。本ステップの判定結果が真の場合、S903に進む。一方、本ステップの判定結果が偽の場合、S904に進む。
【0058】
S903において、通信可能ポート決定部409は、WSD通信ポートを生成可能と判定し、WSDポート生成可否の判定処理(S801)は終了する。
【0059】
S904において、通信可能ポート決定部409は、WSD通信ポートを生成不可と判定し、WSDポート生成可否の判定処理(S801)は終了する。
【0060】
<LLMNRポート生成可否の判定処理>
図10は、LLMNRポート生成可否の判定処理(図8のS804)の流れを示すフローチャートである。
【0061】
まず、S1001において、通信可能ポート決定部409は、S704で記憶しておいた所望デバイスのネットワーク情報に基づき所望デバイスとユニキャスト通信を行う。本ステップでユニキャスト通信を行う理由は、所望デバイスに設定されているLLMNRホスト名を取得するためである。
【0062】
S1002において、通信可能ポート決定部409は、LLMNRホスト名の取得に成功したか判定する。本ステップの判定結果が真の場合、S1003に進む。一方、本ステップの判定結果が偽の場合、S1006に進む。
【0063】
S1003において、通信可能ポート決定部409は、S1001で取得したLLMNRホスト名を用いて名前解決を実行する。
【0064】
S1004において、通信可能ポート決定部409は、S1003における名前解決に成功したか判定する。本ステップの判定結果が真の場合、S1005に進む。一方、本ステップの判定結果が偽の場合、S1006に進む。
【0065】
S1005において、通信可能ポート決定部409は、LLMNRの通信ポートを生成可能と判定し、LLMNRポート生成可否の判定処理(S804)は終了する。
【0066】
S1006において、通信可能ポート決定部409は、LLMNRの通信ポートを生成不可と判定し、LLMNRポート生成可否の判定処理(S804)は終了する。
【0067】
<本実施形態の効果等>
本実施形態によれば、PC101に接続されているネットワークデバイス102を先に検出することで、アプリケーション401は、ドライバインストール処理(S705)と通信可能ポート決定処理(S706)とを並列で(並行して)実行することが可能になる。従って、各処理をシーケンシャルで実行するよりも、ドライバのインストール処理を早く完了することができる。
【0068】
尚、前述のケースでは、通信可能ポート決定処理(図7のS706)において、WSDプロトコルとLLMNRプロトコルとを用いたが、本実施形態はこれに限定されない。例えば、IPP(InternetPrintingProtocol)やDNS(DomainNameSystem)等、他のプロトコルを追加的に用いてよいし、WSDプロトコルとLLMNRプロトコルとに代えて、これら他のプロトコルを用いても良い。
【0069】
また、前述のケースでは、生成する通信ポートの優先順位をWSD、LLMNR、固定IPアドレスの順としたが、本実施形態はこれに限定されず、任意の優先順位を採用してよい。例えば、DNS、WSD、LLMNR、固定IPアドレスのように他のプロトコルを加えても良いし、アプリケーション401やデバイス102の都合に合わせて優先順位を変えても良い。
【0070】
また、前述のケースでは、通信可能ポートをアプリケーション401が自動で決定する仕様としているが(S706)、例えば、アプリケーションのGUIとして、生成ポートを指定する画面を新たに設け、ユーザーが生成したい通信ポートを指定してもよい。このとき、決定された通信可能ポートの生成に失敗した場合、その旨を伝える画面を表示しても良いし、アプリケーション401が代替の通信可能ポートを自動的に決定し生成しても良い。
【0071】
また、前述のケースでは、ユーザーがデバイス検索結果画面501で所望デバイスを選択(S703)した後、通信可能ポート決定処理(S706)を実行している。しかし、デバイス検索処理(S701)においてデバイスを検出した直後に通信可能ポート決定処理(S706)を実行しても良い。但し、本実施形態のように、接続しているデバイスを複数インターフェース(ネットワークとUSB、など)で検索する場合に、ユーザーがUSBデバイスを選択する可能性があるため、通信可能ポート決定処理(S706)が無駄になる可能性がある。このように、複数インターフェースにわたってデバイス検索を行う場合、ユーザーに所望デバイスと所望インターフェースとを指定させてから通信可能ポート決定処理(S706)を行う方が、不要なパケットを送信しなくて済むメリットがある。
【0072】
また、従来のドライバインストーラは図13のように、始めにデバイスドライバをインストールしてから、デバイスとの接続方法を選択し、ネットワーク検索を開始して、所望デバイスのユーザー選択に応じて、ポート生成処理を実行するのが一般的である。しかし本実施形態のように、複数インターフェースの同時検索の結果、又はドライバインストール処理及びポート生成処理を1つの画面に集約することで、図7(a)のように図13(a)よりUI画面数やユーザー操作のステップ数を抑えられるメリットがある。
【0073】
[第2の実施形態]
本実施形態では、通信可能ポート数が増えた場合に、好適に通信可能ポートを決定する手法について、図11を用いて説明する。尚、実施形態1と重複する構成については説明を省略する。
【0074】
<通信可能ポート決定処理>
図11は、本実施形態における通信可能ポート決定処理(S706)の流れを示すフローチャートである。
【0075】
まず、通信可能ポート決定部409は、S1101におけるWSDポート生成可否の判定処理と、S1102におけるLLMNRポート生成可否の判定処理とを並列で(並行して)実行する。
【0076】
S1103において、通信可能ポート決定部409は、S1101におけるWSDポート生成可否の判定処理の実行結果に基づき、WSDの通信ポートを生成可能か判定する。本ステップの判定結果が真の場合、S1104に進む。一方、本ステップの判定結果が偽の場合、S1105に進む。
【0077】
S1104において、通信可能ポート決定部409は、通信可能ポートがWSPポートと決定し、通信可能ポート決定処理は終了する。
【0078】
S1105において、通信可能ポート決定部409は、S1102におけるLLMNRポート生成可否の判定処理の実行結果に基づき、LLMNRの通信ポートを生成可能か判定する。本ステップの判定結果が真の場合、S1106に進む。一方、本ステップの判定結果が偽の場合、S1107に進む。
【0079】
S1106において、通信可能ポート決定部409は、通信可能ポートがLLMNRポートと決定し、通信可能ポート決定処理は終了する。
【0080】
S1107において、通信可能ポート決定部409は、通信可能ポートが固定IPアドレスのポートと決定し、通信可能ポート決定処理は終了する。
【0081】
<本実施形態の効果等>
本実施形態によれば、アプリケーション401で生成可能な通信ポート数が増加しても、通信可能ポート決定処理(S706)において、各通信ポートの生成可否の判定処理をシーケンシャルで実行するよりも処理時間を低減できる。
【0082】
また、前述のケースでは、各ポートの生成可否の判定処理(S1101とS1102)が終了した後に、優先順位の高い順に各ポートの生成可否の判定結果を確認した(S1103でNO→S1105)。しかし、本実施形態はこれに限定されない。例えば、S1101とS1102との並列処理中に、WSDポート生成可否の判定処理(S1101)が先に終了し、かつ、生成する通信ポートの優先順位について、LLMNRポートよりWSDポートが高い場合を考える。このような場合に、LLMNRポートの生成可否の判定処理の終了を待たずに、通信可能ポート決定処理(S706)を終了しても良い。つまり、通信ポートを生成する優先順位が高い方の判定処理結果に基づいて、当該高い方の通信ポートの生成が可能と判定された時点で、通信可能ポート決定処理(S706)を終了しても良い。
【0083】
[第3の実施形態]
前述の実施形態では、アプリケーション401により、ドライバインストール処理(S705)と通信可能ポート決定処理(S706)とを並列して(並行して)実行することで、アプリケーション401の処理時間が長くなってしまう課題を解消する技術を説明した。本実施形態では、ドライバインストール処理と通信可能ポート決定との並列処理に加えて、キュー生成時間も短縮することで、アプリケーション401の処理時間を更に短縮する技術を、図12を用いて説明する。尚、前述の実施形態と重複する構成については説明を省略する。
【0084】
<アプリケーション401の処理>
以下、本実施形態におけるアプリケーション401に従い実行される処理について、図12を用いて説明する。図12は、CPU202が本実施形態におけるアプリケーション401のプログラムを実行したときの全体の処理の流れを示すフローチャートである。尚、S1201からS1204までの処理は、図7(b)のS701からS704の処理と同等のため、説明は省略する。
【0085】
モニタ201に表示されるアプリケーション401のGUIがデバイス検索結果画面からドライバインストール画面601に切り替わると、CPU202は、S1205のドライバインストール処理と、S1206の通信可能ポート決定処理とを並列で(並行して)実行する。このとき、ドライバインストール処理はドライバインストール部408によって実行され、通信可能ポート決定処理は通信可能ポート決定部409によって実行される。
【0086】
ドライバインストール部408がドライバインストール処理(S1205)を終了すると、S1207において、通信ポート生成部410は、S1204で事前に記憶した所望デバイスのIPアドレス情報を用いて、固定IPアドレスの通信ポートを生成する。
【0087】
S1208において、キュー生成部411は、S1205でドライバインストール部408がインストールした各種ドライバと、S1207で通信ポート生成部410が生成した固定IPアドレスの通信ポートとに紐付くキューを生成する。
【0088】
キュー生成部411による固定IPアドレスの通信ポートに紐付くキュー生成(S1208)が終了し、かつ、通信可能ポート決定部409による通信可能ポート決定処理(S1206)が終了すると、CPU202は、並列処理を終了する。
【0089】
並列処理の終了後、S1209において、通信ポート生成部410は、S1206における通信可能ポート決定処理の結果を確認し、通信可能ポートが固定IPアドレスのポートか判定する。本ステップの判定結果が真の場合、CPU202は、ドライバインストール処理が完了した旨を示す画面(図6(b)参照)を表示し、一連の処理は終了する。一方、本ステップの判定結果が偽の場合、S1210に進む。
【0090】
S1210において、通信ポート生成部410は、S1206における通信可能ポート決定処理の結果に応じた通信ポートを生成する。
【0091】
S1211において、CPU202は、S1208でキュー生成部411が生成したキューに紐付けする通信ポートに関して、S1207で生成された固定IPアドレスの通信ポートから、S1210で生成された通信ポートに置換する。
【0092】
S1212において、CPU202は、S1207で生成した固定IPアドレスの通信ポートを削除する。S1212の固定IP通信ポート削除処理が終了すると、CPU202は、ドライバインストール処理が完了した旨を示す画面(図6(b))を表示し、一連の処理は終了する。
【0093】
<本実施形態の効果>
以上説明した通り、本実施形態によれば、印刷キューの生成時間の短縮も期待できる。よって、前述の実施形態と比較して、アプリケーション401の処理時間の更なる短縮を期待できる。
【0094】
[その他の実施形態]
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0095】
101・・・PC
104・・・ネットワーク
201・・・モニタ
202・・・CPU
204・・・RAM
406・・・デバイス検索部
407・・・検出デバイス出力部
408・・・ドライバインストール部
409・・・通信可能ポート決定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13