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