(57)【要約】【課題】クライアント装置の環境に適合したデバイスドライバを簡単に用意しクライアント装置に提供すること。【解決手段】  サーバ１１がクライアント装置２ａ，２ｂからドライバのパッケージファイルのダウンロード要求を受信すると、パッケージ生成手段１４は、そのダウンロード要求の送信元のクライアント装置２ａ，２ｂに応じてサブモジュール群からサブモジュールを選択し、ドライバコアモジュールおよび選択したサブモジュールから、ドライバのパッケージファイルを生成する。サーバ１１は、パッケージ生成手段１４により生成されたパッケージファイルをそのダウンロード要求の送信元のクライアント装置２ａ，２ｂへ送信する。【選択図】  図１
2006244009.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置に接続される周辺機器に対応するドライバをクライアント装置に供給
するサーバ装置を備えるダウンロードシステムにおいて、
上記サーバ装置は、
上記クライアント装置に接続される周辺機器に対応するドライバの構成要素となるドラ
イバコアモジュール、および上記ドライバコアモジュールから呼び出されるルーチンを含
むサブモジュールを複数含むサブモジュール群を格納したデータ格納装置と、
上記クライアント装置からダウンロード要求を受信する受信手段と、
上記受信手段によりダウンロード要求が受信されると、そのダウンロード要求の送信元
のクライアント装置に応じて上記サブモジュール群からサブモジュールを選択し、上記ド
ライバコアモジュールおよび選択したサブモジュールから、ドライバのパッケージファイ
ルを生成するパッケージ生成手段と、
上記パッケージ生成手段により生成されたパッケージファイルをそのダウンロード要求
の送信元のクライアント装置へ送信する送信手段とを備え、
上記クライアント装置は、
上記サーバ装置へダウンロード要求を送信する要求送信手段と、
上記サーバ装置からパッケージファイルを受信するパッケージ受信手段とを備えること
、  
を特徴とするダウンロードシステム。
【請求項２】
クライアント装置に接続される周辺機器に対応するドライバをクライアント装置に供給
するサーバ装置において、
上記クライアント装置に接続される周辺機器に対応するドライバの構成要素となるドラ
イバコアモジュール、および上記ドライバコアモジュールから呼び出されるルーチンを含
むサブモジュールを複数含むサブモジュール群を格納したデータ格納装置と、
上記クライアント装置からダウンロード要求を受信する受信手段と、
上記受信手段によりダウンロード要求が受信されると、そのダウンロード要求の送信元
のクライアント装置に応じて上記サブモジュール群からサブモジュールを選択し、上記ド
ライバコアモジュールおよび選択したサブモジュールから、ドライバのパッケージファイ
ルを生成するパッケージ生成手段と、
上記パッケージ生成手段により生成されたパッケージファイルをそのダウンロード要求
の送信元のクライアント装置へ送信する送信手段と、
を備えることを特徴とするサーバ装置。
【請求項３】
前記送信手段は、前記パッケージ生成手段により生成されたパッケージファイルととも
に、そのパッケージファイルに基づいて前記クライアント装置でドライバをインストール
するインストーラプログラムを送信することを特徴とする請求項２記載のサーバ装置。
【請求項４】
前記パッケージ生成手段は、前記クライアント装置から取得されたそのクライアント装
置に実装されているオペレーティングシステムのディストリビューションの種別に基づい
て、前記サブモジュール群からサブモジュールを選択することを特徴とする請求項２記載
のサーバ装置。
【請求項５】
前記パッケージ生成手段は、前記クライアント装置から取得されたそのクライアント装
置に実装されているオペレーティングシステムのディストリビューションの種別に基づい
て、前記パッケージファイルの形式を選択することを特徴とする請求項２記載のサーバ装
置。
【請求項６】
前記サブモジュール群は、Ｌｉｎｕｘについて複数のディストリビューションに対応す
る複数のサブモジュールを含むことを特徴とする請求項２から請求項５のうちのいずれか
１項記載のサーバ装置。
【請求項７】
サーバ装置からクライアント装置へ、そのクライアント装置に接続される周辺機器に対
応するドライバを提供するドライバ提供方法において、
クライアント装置からダウンロード要求を受信するステップと、
ダウンロード要求を受信すると、上記クライアント装置に接続される周辺機器に対応す
るドライバの構成要素となるドライバコアモジュール、および上記ドライバコアモジュー
ルから呼び出されるルーチンを含むサブモジュールを複数含むサブモジュール群を格納し
たデータ格納装置におけるサブモジュール群から、そのダウンロード要求の送信元のクラ
イアント装置に応じてサブモジュールを選択するステップと、
上記ドライバコアモジュールおよび選択したサブモジュールから、ドライバのパッケー
ジファイルを生成するステップと、
上記パッケージファイルをそのダウンロード要求の送信元のクライアント装置へ送信す
るステップと、
を備えることを特徴とするドライバ提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンロードシステム、サーバ装置およびドライバ提供方法に関するもので
ある。
【背景技術】
【０００２】
従来から、プリンタ、スキャナなどといったパーソナルコンピュータ用周辺機器のデバ
イスドライバ（デバイス定義ファイルを含む）が、所定のサーバ装置に、ダウンロード可
能な状態で公開されている（例えば特許文献１）。
【０００３】
このようなサーバ装置では、デバイスドライバは、オペレーティングシステム（以下、
ＯＳという）の種類ごとに用意されることが多い。その場合、ユーザは、パーソナルコン
ピュータ（以下、ＰＣという）に実装されているＯＳの種類に応じたデバイスドライバを
、そのＰＣにダウンロードさせ、インストールさせる。
【０００４】
【特許文献１】特開２００２−２２９７５１号公報（要約、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｌｉｎｕｘのように一種類のＯＳでありながら、複数のディストリビューションが存在
する場合、各ディストリビューションで使用されているカーネルバージョン、各種ライブ
ラリ、ＡＰＩ（Application Program Interface ）などが完全には統一されていないため
、ディストリビューションごとにデバイスドライバのパッケージファイルを用意する必要
がある。なお、パッケージファイルとは、ソフトウェアのインストールに使用されるファ
イル、設定情報などを含むファイルである。
【０００６】
しかしながら、ディストリビューションの増減、各ディストリビューションのバージョ
ンアップなどが頻繁に起こるため、それらの変化に対応してディストリビューションごと
に適切なデバイスドライバのパッケージファイルを簡単に用意することは困難である。
【０００７】
本発明は、クライアント装置の環境に適合したデバイスドライバを簡単に用意しクライ
アント装置に提供することができるダウンロードシステム、サーバ装置およびドライバ提
供方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明では以下のようにした。
【０００９】
本発明に係るダウンロードシステムは、クライアント装置に接続される周辺機器に対応
するドライバをクライアント装置に供給するサーバ装置とを備えるダウンロードシステム
である。そして、サーバ装置は、クライアント装置に接続される周辺機器に対応するドラ
イバの構成要素となるドライバコアモジュール、およびドライバコアモジュールから呼び
出されるルーチンを含むサブモジュールを複数含むサブモジュール群を格納したデータ格
納装置と、クライアント装置からダウンロード要求を受信する受信手段と、受信手段によ
りダウンロード要求が受信されると、そのダウンロード要求の送信元のクライアント装置
に応じてサブモジュール群からサブモジュールを選択し、ドライバコアモジュールおよび
選択したサブモジュールから、ドライバのパッケージファイルを生成するパッケージ生成
手段と、パッケージ生成手段により生成されたパッケージファイルをそのダウンロード要
求の送信元のクライアント装置へ送信する送信手段とを備える。また、クライアント装置
は、サーバ装置へダウンロード要求を送信する要求送信手段と、サーバ装置からパッケー
ジファイルを受信するパッケージ受信手段とを備える。
【００１０】
これにより、クライアント装置の環境に適合したデバイスドライバを簡単に用意しクラ
イアント装置に提供することができる。つまり、ドライバのパッケージファイルのダウン
ロード時に、クライアント装置に合わせてパッケージファイルが生成されるため、１種類
のＯＳに関し、クライアント装置の環境のバリエーションが多い場合においても、サブモ
ジュールを適宜追加、変更することで、適切なデバイスドライバのパッケージファイルを
簡単に用意し提供することができる。
【００１１】
本発明に係るサーバ装置は、クライアント装置に接続される周辺機器に対応するドライ
バの構成要素となるドライバコアモジュール、およびドライバコアモジュールから呼び出
されるルーチンを含むサブモジュールを複数含むサブモジュール群を格納したデータ格納
装置と、クライアント装置からダウンロード要求を受信する受信手段と、受信手段により
ダウンロード要求が受信されると、そのダウンロード要求の送信元のクライアント装置に
応じてサブモジュール群からサブモジュールを選択し、ドライバコアモジュールおよび選
択したサブモジュールから、ドライバのパッケージファイルを生成するパッケージ生成手
段と、パッケージ生成手段により生成されたパッケージファイルをそのダウンロード要求
の送信元のクライアント装置へ送信する送信手段とを備える。
【００１２】
これにより、クライアント装置の環境に適合したデバイスドライバを簡単に用意しクラ
イアント装置に提供することができる。つまり、ドライバのパッケージファイルのダウン
ロード時に、クライアント装置に合わせてパッケージファイルが生成されるため、１種類
のＯＳに関し、クライアント装置の環境のバリエーションが多い場合においても、サブモ
ジュールを適宜追加、変更することで、適切なデバイスドライバのパッケージファイルを
簡単に用意し提供することができる。
【００１３】
また、本発明に係るサーバ装置は、上記のサーバ装置に加え、次のようにしてもよい。
つまり、この場合、送信手段は、パッケージ生成手段により生成されたパッケージファイ
ルとともに、そのパッケージファイルに基づいてクライアント装置でドライバをインスト
ールするインストーラプログラムを送信する。
【００１４】
これにより、ダウンロードしたパッケージファイルに基づいて、クライアント装置にド
ライバを確実にインストールさせることができる。
【００１５】
また、本発明に係るサーバ装置は、上記のサーバ装置のいずれかに加え、次のようにし
てもよい。つまり、この場合、パッケージ生成手段は、クライアント装置から取得された
そのクライアント装置に実装されているオペレーティングシステムのディストリビューシ
ョンの種別に基づいて、サブモジュール群からサブモジュールを選択する。
【００１６】
これにより、ＯＳのディストリビューションごとに適切なデバイスドライバを簡単に用
意しクライアント装置に提供することができる。つまり、ディストリビューションの増減
、各ディストリビューションのバージョンアップなどが頻繁に起こっても、サブモジュー
ルを適宜追加、変更することで、それらの変化に対応してディストリビューションごとに
適切なデバイスドライバのパッケージファイルを簡単に用意し提供することができる。
【００１７】
また、本発明に係るサーバ装置は、上記のサーバ装置のいずれかに加え、次のようにし
てもよい。つまり、この場合、パッケージ生成手段は、クライアント装置から取得された
そのクライアント装置に実装されているオペレーティングシステムのディストリビューシ
ョンの種別に基づいて、パッケージファイルの形式を選択する。
【００１８】
これにより、ダウンロードしたパッケージファイルに基づいて、各ディストリビューシ
ョンが採用しているインストーラを使用してクライアント装置にドライバを確実にインス
トールさせることができる。
【００１９】
また、本発明に係るサーバ装置は、上記のサーバ装置のいずれかに加え、次のようにし
てもよい。つまり、この場合、サブモジュール群は、Ｌｉｎｕｘについて複数のディスト
リビューションに対応する複数のサブモジュールを含む。
【００２０】
これにより、Ｌｉｎｕｘに存在する多数のディストリビューションのそれぞれに対して
適切なデバイスドライバを簡単に用意し、クライアント装置へ提供することができる。
【００２１】
本発明に係るドライバ提供方法は、クライアント装置からドライバのパッケージファイ
ルのダウンロード要求を受信するステップと、ダウンロード要求を受信すると、クライア
ント装置に接続される周辺機器に対応するドライバの構成要素となるドライバコアモジュ
ール、およびドライバコアモジュールから呼び出されるルーチンを含むサブモジュールを
複数含むサブモジュール群を格納したデータ格納装置におけるサブモジュール群から、そ
のダウンロード要求の送信元のクライアント装置に応じてサブモジュールを選択するステ
ップと、ドライバコアモジュールおよび選択したサブモジュールから、ドライバのパッケ
ージファイルを生成するステップと、パッケージファイルをそのダウンロード要求の送信
元のクライアント装置へ送信するステップとを備える。
【００２２】
これにより、クライアント装置の環境に適合したデバイスドライバを簡単にクライアン
ト装置に提供することができる。つまり、ドライバのパッケージファイルのダウンロード
時に、クライアント装置に合わせてパッケージファイルが生成されるため、１種類のＯＳ
に関し、クライアント装置の環境のバリエーションが多い場合においても、サブモジュー
ルを適宜追加、変更することで、適切なデバイスドライバのパッケージファイルを簡単に
提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、図に基づいて本発明の実施の形態を説明する。
【００２４】
実施の形態１．
図１は、本発明の実施の形態１に係るサーバ装置を含むダウンロードシステムの構成を
示すブロック図である。
【００２５】
図１において、サーバ装置１は、実施の形態１に係るサーバ装置であって、クライアン
ト装置２ａ，２ｂに接続される周辺機器（図１ではプリンタ３ａ，３ｂ）に対応するドラ
イバをクライアント装置２ａ，２ｂに供給するサーバ装置である。
【００２６】
また、クライアント装置２ａは、所定のディストリビューション（以下、ディストリビ
ューションＡという）のＯＳ３１ａがインストールされ稼動するクライアント装置である
。また、クライアント装置２ａは、プリンタ３ａを接続される。
【００２７】
クライアント装置２ｂは、クライアント装置２ａとは異なる所定のディストリビューシ
ョン（以下、ディストリビューションＢという）のＯＳ３１ｂがインストールされ稼動す
るクライアント装置である。また、クライアント装置２ｂは、プリンタ３ｂを接続される
。
【００２８】
この実施の形態１では、クライアント装置２ａ，２ｂは、ＬｉｎｕｘであるＯＳ３１ａ
，３１ｂをインストールされたパーソナルコンピュータである。
【００２９】
また、通信網４は、サーバ装置１と、クライアント装置２ａ，２ｂとが通信可能な、コ
ンピュータネットワーク、電話回線などを適宜含む通信媒体である。
【００３０】
図１に示すサーバ装置１において、サーバ１１は、ＨＴＴＰ（HyperText Transfer Pro
tocol ）、ＦＴＰ（File Transfer Protocol ）などといった所定の通信プロトコルのサ
ーバであって、サーバプログラムをＣＰＵが実行することにより実現される処理部である
。なお、サーバ１１は、クライアント装置２ａ，２ｂからドライバのパッケージファイル
のダウンロード要求を受信する受信手段、およびパッケージ生成手段１４により生成され
たパッケージファイルをそのダウンロード要求の送信元のクライアント装置２ａ，２ｂへ
送信する送信手段として機能する。
【００３１】
また、通信装置１２は、ネットワークインタフェース、モデムなどといった通信網４を
介してデータ通信可能な装置である。
【００３２】
また、データ格納装置１３は、ハードディスクドライブ、ディスクアレイなどといった
大規模記録媒体である。データ格納装置１３には、ドライバコアモジュール２１、サブモ
ジュール群２２および対応テーブル２３が格納される。
【００３３】
ドライバコアモジュール２１は、クライアント装置２ａ，２ｂの周辺機器（ここではプ
リンタ３ａ，３ｂ）用のドライバの構成要素であって、ドライバが実行する処理流れを記
述されたプログラムを有するデータファイルである。ドライバコアモジュール２１は、サ
ブモジュール群２２内の同一種別における複数のサブモジュールに共通な呼び出しを含む
。
【００３４】
サブモジュール群２２は、所定のＯＳについて複数のディストリビューションに対応す
る複数のサブモジュールを含む。また、サブモジュール群２２は、サブモジュールの種別
ごとに、複数のサブモジュールを有する。
【００３５】
各サブモジュールは、当該サブモジュールの属する種別の機能を記述されたプログラム
を有するデータファイルである。ただし、同一種別における複数のサブモジュールは、互
いに異なるプログラムを有する。
【００３６】
例えば、プリンタドライバの場合、サブモジュールの種別としては、スプーラモジュー
ル、ＧＵＩツールキットモジュール、画像処理ルーチンモジュール、システムライブラリ
などがある。
【００３７】
図２は、実施の形態１におけるドライバコアモジュール２１と、サブモジュール群２２
内のサブモジュールとの関係を示す図である。図２に示すサブモジュール群２２は、プリ
ンタドライバのためのサブモジュール群２２である。
【００３８】
図２に示すサブモジュール群２２は、複数のスプーラモジュール２２ａ、複数のＧＵＩ
ツールキットモジュール２２ｂ、複数の画像処理ルーチンモジュール２２ｃ、複数のシス
テムライブラリ２２ｄ、および複数のドキュメントモジュール２２ｅといったサブモジュ
ールを含む。
【００３９】
１つのスプーラモジュール２２ａは、クライアント装置２ａ，２ｂにおいてプリンタ用
のスプーラを実現するためのプログラムを含むファイルである。スプーラモジュール２２
ａは、所定の種類のＯＳ（ここではＬｉｎｕｘ）においてインストール可能な複数のスプ
ーラのそれぞれに対応して用意される。Ｌｉｎｕｘの場合、スプーラモジュール２２ａと
しては、例えばｌｐｒ用、ＣＵＰＳ用などがある。
【００４０】
１つのＧＵＩツールキットモジュール２２ｂは、クライアント装置２ａ，２ｂにおいて
プリンタドライバのＧＵＩを実現するためのプログラムを含むファイルである。ＧＵＩツ
ールキットモジュール２２ｂは、所定の種類のＯＳ（ここではＬｉｎｕｘ）の各ディスト
リビューションにおいて使用可能な複数のＧＵＩのそれぞれに対応して用意される。Ｌｉ
ｎｕｘの場合、ＧＵＩツールキットモジュール２２ｂとしては、例えばＧＮＯＭＥ用、Ｋ
ＤＥ用などがある。
【００４１】
１つの画像処理ルーチンモジュール２２ｃは、クライアント装置２ａ，２ｂにおいて、
画像データなどをプリンタにおける印刷処理に適合したデータ形式へ変換する処理（画像
補正、色変換、ハーフトーニングなど）を実現するためのプログラムを含むファイルであ
る。画像処理ルーチンモジュール２２ｃは、クライアント装置２ａ，２ｂに接続可能なプ
リンタのそれぞれに対応して用意される。
【００４２】
システムライブラリ２２ｄは、所定の種類のＯＳ（ここではＬｉｎｕｘ）の各ディスト
リビューションにおけるカーネルバージョンにおいて使用可能な複数のシステムライブラ
リである。
【００４３】
ドキュメントモジュール２２ｅは、リードミー（ReadMe）、ヘルプなどのテキストデー
タを有し、いずれかのスプーラモジュール２２ａ、いずれかのＧＵＩツールキットモジュ
ール２２ｂ、いずれかの画像処理ルーチンモジュール２２ｃ、およびいずれかのシステム
ライブラリ２２ｄの組み合わせごとに用意されたドキュメントファイルである。
【００４４】
ドライバコアモジュール２１は、サブモジュール群２２における各種別について共通な
呼び出し（コール）２１ａ，２１ｂ，２１ｃ，２１ｄを有する。これらの呼び出し２１ａ
，２１ｂ，２１ｃ，２１ｄは、ドライバコアモジュール２１内のプログラムにおいて、必
要に応じてサブモジュールの機能（関数、ルーチンなど）を使用する場合に使用される。
【００４５】
呼び出し２１ａは、すべてのスプーラモジュール２２ａ内の同一名称のルーチン（関数
を含む）を読み出すためのコードである。また、呼び出し２１ｂは、すべてのＧＵＩツー
ルキットモジュール２２ｂ内の同一名称のルーチン（関数を含む）を読み出すためのコー
ドである。また、呼び出し２１ｃは、すべての画像処理ルーチンモジュール２２ｃ内の同
一名称のルーチン（関数を含む）を読み出すためのコードである。また、呼び出し２１ｄ
は、すべてのシステムライブラリ２２ｄ内の同一名称のルーチン（関数を含む）を読み出
すためのコードである。つまり、呼び出し２１ａは１つであるが、ドライバコアモジュー
ル２１に組み合わされるスプーラモジュール２２ａに応じて、呼び出される処理は異なる
。これは、呼び出し２１ｂ，２１ｃ，２１ｄとモジュール２２ｂ，２２ｃ，２２ｄについ
ても同様である。
【００４６】
図１に戻り、対応テーブル２３は、クライアント装置２ａ，２ｂに実装されているＯＳ
のディストリビューションの種別、コンフィギュレーション情報および周辺機器（ここで
はプリンタ３ａ，３ｂ）の種別と、サブモジュール群２２の各種別において選択すべきサ
ブモジュールとの対応関係の情報を有する。
【００４７】
例えば、周辺機器がプリンタである場合、コンフィギュレーション情報としては、使用
するスプーラの種別、ＧＵＩ（Graphical User Interface）環境の種別などがある。
【００４８】
図３は、実施の形態１における対応テーブル２３の一例を示す図である。図３に示す対
応テーブル２３は、ＯＳがＬｉｎｕｘである場合のプリンタドライバ用のものである。
【００４９】
この対応テーブル２３は、３つのテーブルを含む。第１のテーブル（図３（Ａ））は、
ＯＳのディストリビューションと、選択すべきＧＵＩツールキットモジュール２２ｂ、選
択すべきシステムライブラリ２２ｄおよび選択すべきデフォルトのスプーラモジュール２
２ａとの対応関係を示す。
【００５０】
第２のテーブル（図３（Ｂ））は、クライアント装置２ａ，２ｂからの要求においてス
プーラ種別が指定された場合におけるスプーラ種別と、選択すべきスプーラモジュール２
２ａとの対応関係を示す。
【００５１】
第３のテーブル（図３（Ｃ））は、クライアント装置２ａ，２ｂからの要求におけるプ
リンタ種別と、選択すべき画像処理ルーチンモジュール２２ｃとの対応関係を示す。
【００５２】
図１に戻り、パッケージ生成手段１４は、サブモジュール群２２から適切なサブモジュ
ールを選択し、ドライバコアモジュール２１および選択したサブモジュールから、ドライ
バのパッケージファイルを生成する処理部であって、パッケージ生成プログラムをＣＰＵ
が実行することにより実現される処理部である。なお、Ｌｉｎｕｘの場合、パッケージフ
ァイルとしては、ｄｅｂ形式、ｒｐｍ形式、ｔｇｚ形式、ｓｌｐ形式などといった形式の
ファイルがある。
【００５３】
なお、サーバ装置１は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスクドライブなどを有す
る図示せぬコンピュータを含み、ハードディスクドライブなどに格納されたＯＳプログラ
ム、サーバプログラム、パッケージ生成プログラムなどがＣＰＵにより実行されることで
、各種処理部が実現される。
【００５４】
図１に示すクライアント装置２ａにおいて、ＯＳ３１ａは、ある種類のＯＳであって、
ディストリビューションＡのＯＳである。実施の形態１では、ＯＳ３１ａは、Ｌｉｎｕｘ
であって、例えばＳｕＳＥ、Ｍａｎｄｒａｋｅ、Ｆｅｄｏｒａなどのうちのいずれかのデ
ィストリビューションＡのＯＳである。ＯＳ３１ａは、カーネル、ＧＵＩ環境、システム
ライブラリなどを含む処理部である。
【００５５】
クライアント３２は、サーバ装置１のサーバ１１と同一の所定の通信プロトコルのクラ
イアントであって、クライアントプログラムをＣＰＵが実行することにより実現される処
理部である。なお、クライアント３２は、サーバ装置１へダウンロード要求を送信する要
求送信手段、およびサーバ装置１からパッケージファイルを受信するパッケージ受信手段
として機能する。
【００５６】
また、通信装置３３は、ネットワークインタフェース、モデムなどといった通信網４を
介してデータ通信可能な装置である。
【００５７】
また、データ格納装置３４は、ハードディスクドライブなどといった大規模記録媒体で
ある。データ格納装置３４には、ＯＳ３１ａのプログラム、サーバ装置１からダウンロー
ドされた周辺機器用ドライバのパッケージファイル、そのパッケージファイルに基づいて
インストールされた周辺機器用ドライバファイルなどが格納される。
【００５８】
図１に示すクライアント装置２ｂにおいて、ＯＳ３１ｂは、ＯＳ３１ａと同一種類であ
るがディストリビューションが異なるＯＳであって、ディストリビューションＢのＯＳで
ある。実施の形態１では、ＯＳ３１ｂは、Ｌｉｎｕｘであって、例えばＳｕＳＥ、Ｍａｎ
ｄｒａｋｅ、ＦｅｄｏｒａなどのうちのいずれかのディストリビューションＢのＯＳであ
る。ＯＳ３１ｂは、カーネル、ＧＵＩ環境、システムライブラリなどを含む処理部である
。
【００５９】
なお、クライアント装置２ｂにおけるクライアント３２、通信装置３３およびデータ格
納装置３４は、クライアント装置２ａのものと同様であるので、その説明を省略する。
【００６０】
次に、上記ダウンロードシステムにおける各装置の動作について説明する。図４は、実
施の形態１におけるドライバダウンロード時の処理の流れを説明する図である。なお、こ
こでは、クライアント装置２ａがサーバ装置１からプリンタドライバをダウンロードする
場合について説明する。
【００６１】
まず、クライアント装置２ａのクライアント３２は、サーバ装置１のサーバ１１にアク
セスする（ステップＳ１）。サーバ装置１のサーバ１１は、クライアント３２からのアク
セスに対応して、入力フォームページデータを、クライアント装置２ａのクライアント３
２へ送信する（ステップＳ２）。
【００６２】
なお、クライアント３２とサーバ１１との間の通信は、通信装置３３、通信網４および
通信装置１２を介して行われる（以下、同様）。
【００６３】
例えば、クライアント３２がＷｅｂブラウザなどのＨＴＴＰクライアントであり、サー
バ１１がＨＴＴＰサーバである場合、サーバ装置１は、所定のＵＲＬ（Uniform Resource
Locator）のウェブページデータとして、入力フォームページデータをデータ格納装置１
３などに格納しておき、クライアント３２は、そのＵＲＬのウェブページを取得するため
のＨＴＴＰコマンドを送信し、サーバ１１は、そのＨＴＴＰコマンドを受信すると、入力
フォームページデータをクライアント３２へ送信する。
【００６４】
クライアント装置２ａのクライアント３２は、その入力フォームページデータを受信す
ると、その入力フォームページデータに基づいて図示せぬディスプレイに、入力フォーム
ページを表示する（ステップＳ３）。図５は、実施の形態１における入力フォームページ
の表示例を示す図である。図５に示す入力フォームページでは、ＯＳのディストリビュー
ション種別を入力するためのプルダウンメニュー６１ａ、スプーラ種別を入力するための
プルダウンメニュー６１ｂ、プリンタ種別を入力するためのプルダウンメニュー６１ｃ、
およびダウンロードを開始させるための操作ボタン６１ｄが表示される。
【００６５】
これらのプルダウンメニュー６１ａ〜６１ｃおよび操作ボタン６１ｄに対する操作は、
クライアント装置２ａにおける図示せぬディスプレイ、マウスといった入力装置などから
なるＧＵＩで行われる。
【００６６】
例えばクライアント装置２ａの場合、ユーザにより、プルダウンメニュー６１ａでは、
ディストリビューションＡが選択され、プルダウンメニュー６１ｃでは、プリンタ３ａが
選択される。
【００６７】
プルダウンメニュー６１ａ〜６１ｃによりディストリビューション種別、スプーラ種別
およびプリンタ種別の選択が終了した後、操作ボタン６１ｄが押下されると、クライアン
ト３２は、ダウンロード要求を、選択されたディストリビューション種別、スプーラ種別
およびプリンタ種別の情報とともに、サーバ１１へ送信する（ステップＳ４）。
【００６８】
サーバ装置１のサーバ１１がそのダウンロード要求を受信すると、パッケージ生成手段
１４は、ダウンロード要求とともに受信したディストリビューション種別、スプーラ種別
およびプリンタ種別の情報に基づいて、サブモジュール群２２からサブモジュールを選択
し、ドライバコアモジュール２１と選択したサブモジュールを含むパッケージファイルを
生成し、データ格納装置１３に格納する（ステップＳ５）。
【００６９】
パッケージファイルの生成が完了すると、サーバ１１は、データ格納装置１３から、そ
のパッケージファイルを読み出し、クライアント３２へ送信する（ステップＳ６）。
【００７０】
クライアント装置２ａのクライアント３２は、そのパッケージファイルを受信すると、
データ格納装置３４に格納する。その後、クライアント装置２ａでは、図示せぬインスト
ーラプログラムが実行され、そのパッケージファイルに基づいて、プリンタ３ａに対応し
たプリンタドライバがインストールされる（ステップＳ７）。
【００７１】
このようにして、クライアント装置２ａへプリンタドライバがダウンロードされる。な
お、クライアント装置２ｂへプリンタドライバがダウンロードされる場合、同様の処理が
実行されるが、ＯＳのディストリビューションとプリンタの種別が異なるため、クライア
ント装置２ａの場合とは異なるサブモジュールを含むパッケージファイルがダウンロード
される。
【００７２】
ここで、サーバ装置１におけるドライバのパッケージファイルの生成について詳細に説
明する。図６は、実施の形態１におけるパッケージファイルの生成処理について説明する
フローチャートである。図７は、実施の形態１におけるパッケージファイルの生成処理に
ついて説明する図である。
【００７３】
サーバ装置１のパッケージ生成手段１４は、サーバ１１によりダウンロード要求が受信
されると、ダウンロード要求とともに受信されたディストリビューション種別、スプーラ
種別およびプリンタ種別の情報を取得する（ステップＳ２１）。
【００７４】
次に、パッケージ生成手段１４は、対応テーブル２３を参照し、取得したディストリビ
ューション種別、スプーラ種別およびプリンタ種別に対応するスプーラモジュール２２ａ
−ｉ、ＧＵＩツールキットモジュール２２ｂ−ｊ、画像処理ルーチンモジュール２２ｃ−
ｋ、およびシステムライブラリ２２ｄ−ｓを特定するとともに、それらのサブモジュール
の組み合わせに対応するドキュメントモジュール２２ｅ−ｔを特定する（ステップＳ２２
）。なお、スプーラ種別の指定がない場合には、各ディストリビューションのデフォルト
のスプーラが選択される。
【００７５】
その際、図７に示すように、Ｌ個のスプーラモジュール２２ａ−１〜２２ａ−Ｌから１
つのスプーラモジュール２２ａ−ｉが、Ｍ個のＧＵＩツールキットモジュール２２ｂ−１
〜２２ｂ−Ｍから１つのＧＵＩツールキットモジュール２２ｂ−ｊが、Ｎ個の画像処理ル
ーチンモジュール２２ｃ−１〜２２ｃ−Ｎから１つの画像処理ルーチンモジュール２２ｃ
−ｋが、Ｐ個のシステムライブラリ２２ｄ−１〜２２ｄ−Ｐから１つのシステムライブラ
リ２２ｄ−ｓが、Ｑ個のドキュメントモジュール２２ｅ−１〜２２ｅ−Ｑから１つのドキ
ュメントモジュール２２ｅ−ｔが選択される。
【００７６】
そして、パッケージ生成手段１４は、ドライバコアモジュール２１、並びに対応テーブ
ル２３を参照して特定したスプーラモジュール２２ａ−ｉ、ＧＵＩツールキットモジュー
ル２２ｂ−ｊ、画像処理ルーチンモジュール２２ｃ−ｋ、システムライブラリ２２ｄ−ｓ
およびドキュメントモジュール２２ｅ−ｔを含むパッケージファイル８１を生成し、デー
タ格納装置１３に格納する（ステップＳ２３）。このとき、パッケージ生成手段１４は、
ディストリビューションに応じた形式のパッケージファイル８１を生成する。
【００７７】
このようにして、サーバ装置１では、ドライバのダウンロード要求毎に、パッケージフ
ァイル８１が生成され、ダウンロードされる。
【００７８】
以上のように、上記実施の形態１によれば、サーバ装置１のデータ格納装置１３は、ク
ライアント装置２ａ，２ｂに接続される周辺機器に対応するドライバの構成要素となるド
ライバコアモジュール２１、およびドライバコアモジュール２１から呼び出されるルーチ
ンを含むサブモジュールを複数含むサブモジュール群２２を格納する。パッケージ生成手
段１４は、サーバ１１によりダウンロード要求が受信されると、そのダウンロード要求の
送信元のクライアント装置２ａ，２ｂに応じてサブモジュール群からサブモジュールを選
択し、ドライバコアモジュールおよび選択したサブモジュールから、ドライバのパッケー
ジファイル８１を生成する。そして、サーバ１１は、パッケージ生成手段１４により生成
されたパッケージファイル８１をそのダウンロード要求の送信元のクライアント装置２ａ
，２ｂへ送信する。
【００７９】
これにより、クライアント装置２ａ，２ｂの環境に適合したデバイスドライバを簡単に
用意しクライアント装置２ａ，２ｂに提供することができる。つまり、ドライバのパッケ
ージファイル８１のダウンロード時に、クライアント装置２ａ，２ｂに合わせてパッケー
ジファイル８１が生成されるため、１種類のＯＳに関し、クライアント装置２ａ，２ｂの
環境のバリエーションが多い場合においても、サブモジュールを適宜追加、変更すること
で、適切なデバイスドライバのパッケージファイル８１を簡単に用意し提供することがで
きる。
【００８０】
特に、サブモジュール群２２は、Ｌｉｎｕｘについて複数のディストリビューションに
対応する複数のサブモジュールを含む。これにより、Ｌｉｎｕｘに存在する多数のディス
トリビューションのそれぞれに対して適切なデバイスドライバを簡単に用意し、クライア
ント装置２ａ，２ｂへ提供することができる。
【００８１】
また、上記実施の形態１によれば、パッケージ生成手段１４は、クライアント装置２ａ
，２ｂから取得されたそのクライアント装置２ａ，２ｂに実装されているオペレーティン
グシステムのディストリビューションの種別に基づいて、サブモジュール群２２からサブ
モジュールを選択する。
【００８２】
これにより、ＯＳのディストリビューションごとに適切なデバイスドライバを簡単に用
意しクライアント装置２ａ，２ｂに提供することができる。つまり、ディストリビューシ
ョンの増減、各ディストリビューションのバージョンアップなどが頻繁に起こっても、サ
ブモジュールを適宜追加、変更することで、それらの変化に対応してディストリビューシ
ョンごとに適切なデバイスドライバのパッケージファイル８１を簡単に用意し提供するこ
とができる。
【００８３】
また、上記実施の形態１によれば、パッケージ生成手段１４は、クライアント装置２ａ
，２ｂから取得されたそのクライアント装置２ａ，２ｂに実装されているオペレーティン
グシステムのディストリビューションの種別に基づいて、パッケージファイル８１の形式
を選択する。
【００８４】
これにより、ダウンロードしたパッケージファイル８１に基づいて、各ディストリビュ
ーションが採用しているインストーラを使用してクライアント装置２ａ，２ｂにドライバ
を確実にインストールすることができる。
【００８５】
実施の形態２．
本発明の実施の形態２に係るサーバ装置は、実施の形態１に係るサーバ装置において、
必要に応じて、同一種別のサブモジュールを複数、パッケージファイルに入れるようにし
たものである。
【００８６】
この場合、ディストリビューション種別およびスプーラ種別に応じて、複数のサブモジ
ュールが同時にインストールされる場合には、対応テーブル２３の対応個所に、複数のサ
ブモジュールが登録される。そして、同一種別の複数のサブモジュールがクライアント装
置２ａ，２ｂにインストールされる。例えば、ｌｐｒとＣＵＰＳの両方のスプーラがイン
ストールされる場合や、ＧＮＯＭＥとＫＤＥの両方のＧＵＩツールキットがインストール
される場合がある。
【００８７】
例えば、パッケージ生成手段１４は、同一の種別について複数のサブモジュールを選択
し、選択したサブモジュールをそれぞれ異なるファイル名あるいはパス名のファイルとし
て、パッケージファイルを生成する。
【００８８】
なお、パッケージ生成手段１４は、パッケージファイルが有する同一種別の複数のサブ
モジュールのいずれかへのリンクファイルを含めるようにしてもよい。この場合、ドライ
バコアモジュール２１は、そのリンクファイルを、当該種別のサブモジュールのファイル
とした呼び出しを含む。
【００８９】
なお、その他の構成および動作については、実施の形態１の場合と同様であるので、そ
の説明を省略する。
【００９０】
以上のように、上記実施の形態２によれば、サブモジュール群２２は、種別ごとに複数
のサブモジュールを有する。そして、パッケージ生成手段１４は、同一の種別について複
数のサブモジュールを選択し、選択したサブモジュールをそれぞれ異なるファイル名ある
いはパス名として、パッケージファイルを生成する。
【００９１】
これにより、同一種別について異なる複数のソフトウェアをインストール可能なＯＳの
ディストリビューションの場合にも、それに対応して適切なデバイスドライバを簡単に用
意することができる。
【００９２】
また、上記実施の形態２によれば、パッケージ生成手段１４は、パッケージファイル８
１が有する同一種別の複数のサブモジュールのいずれかへのリンクファイルを含める。そ
して、ドライバコアモジュール２１は、リンクファイルを、当該種別のサブモジュールの
ファイルとした呼び出しを含む。
【００９３】
これにより、リンクファイルに記述されるリンク先の指定を変更するだけ、どのサブモ
ジュール内のルーチンを使用することができ、パッケージファイルをダウンロードしたク
ライアント装置において、使用するサブモジュールを簡単に切り替えることができる。
【００９４】
実施の形態３．
本発明の実施の形態３に係るサーバ装置は、実施の形態１，２に係るサーバ装置におい
て、ユーザ入力の代わりに、クライアント装置２ａ，２ｂのＯＳディストリビューション
およびコンフィギュレーションを特定するプログラムを、クライアント装置２ａ，２ｂに
ダウンロードさせ、そのプログラムをクライアント装置２ａ，２ｂで実行させて、ＯＳデ
ィストリビューション種別およびコンフィギュレーション情報を取得するようにしたもの
である。
【００９５】
この場合、サーバ装置１は、ＯＳディストリビューションおよびコンフィギュレーショ
ンを特定するプログラムをデータ格納装置１３に格納しておき、入力フォームページデー
タの代わりにクライアント装置２ａ，２ｂに送信する。クライアント装置２ａ，２ｂは、
そのプログラムを受信すると、自動的に実行し、ＯＳディストリビューション種別および
コンフィギュレーション情報をサーバ装置１へ送信する。
【００９６】
なお、その他の構成および動作については、実施の形態１，２の場合と同様であるので
、その説明を省略する。
【００９７】
以上のように、上記実施の形態３によれば、ユーザの誤入力による誤ったドライバのダ
ウンロードが発生することを抑制することができる。
【００９８】
実施の形態４．
本発明の実施の形態４に係るサーバ装置は、実施の形態１，２，３に係るサーバ装置に
おいて、プリンタドライバの代わりにスキャナドライバを提供する。
【００９９】
この場合、サブモジュール群２２は、ＧＵＩツールキットモジュール、スキャナ用の画
像処理ルーチンモジュール、システムライブラリ、ドキュメントモジュールなどを含む。
【０１００】
なお、その他の構成および動作については、実施の形態１，２，３の場合と同様である
ので、その説明を省略する。
【０１０１】
以上のように、上記実施の形態４によれば、実施の形態１におけるプリンタドライバと
同様に、各クライアント装置２ａ，２ｂに対して適切なスキャナドライバを提供すること
ができる。
【０１０２】
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定さ
れるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能で
ある。
【０１０３】
例えば、各実施の形態において、サーバ装置１は、パッケージファイル８１をクライア
ント装置２ａ，２ｂに送信する場合に、パッケージファイル８１とともに、専用インスト
ーラプログラムをダウンロードさせるようにしてもよい。
【０１０４】
また、各実施の形態において、ディストリビューションごとに、クライアント装置内で
のドライバのインストール場所が異なる場合には、それに対応してパッケージファイル８
１を生成するようにしてもよい。この場合、インストール場所は、コンフィギュレーショ
ン情報としてクライアント装置２ａ，２ｂからサーバ装置１へ通知されるか、ディストリ
ビューション種別に基づいて特定される。
【０１０５】
また、上述の実施の形態では、プリンタドライバまたはスキャナドライバがダウンロー
ドされるが、プリンタドライバおよびスキャナドライバ以外のデバイスドライバをダウン
ロードするようにしてもよい。
【産業上の利用可能性】
【０１０６】
本発明は、例えば、プリンタドライバのダウンロードサイトのサーバ装置に適用可能で
ある。
【図面の簡単な説明】
【０１０７】
【図１】実施の形態１に係るサーバ装置を示すブロック図である。
【図２】実施の形態１におけるモジュール間の関係を示す図である。
【図３】実施の形態１における対応テーブルの一例を示す図である。
【図４】実施の形態１におけるダウンロード処理を説明する図である。
【図５】実施の形態１での入力フォームページの表示例を示す図である。
【図６】実施の形態１のパッケージファイル生成処理を示す図である。
【図７】実施の形態１のパッケージファイル生成処理を示す図である。
【符号の説明】
【０１０８】
１  サーバ装置、２ａ，２ｂ  クライアント装置、１１  サーバ（受信手段，送信手段
）、１３  データ格納装置、１４  パッケージ生成手段、２１  ドライバコアモジュール
、２２  サブモジュール群、２２ａ  スプーラモジュール（サブモジュール）、２２ｂ  
ＧＵＩツールキットモジュール（サブモジュール）、２２ｃ  画像処理ルーチンモジュー
ル（サブモジュール）、２２ｄ  システムライブラリ（サブモジュール）、３２  クライ
アント（要求送信手段，パッケージ受信手段）、８１  パッケージファイル。
【図１】
2006244009.tif 000003
【図２】
2006244009.tif 000004
【図３】
2006244009.tif 000005
【図４】
2006244009.tif 000006
【図５】
2006244009.tif 000007
【図６】
2006244009.tif 000008
【図７】
2006244009.tif 000009