(57)【要約】【課題】提供側にとっては容易な提供を可能としつつ、ユーザ側にとって余分な機能は梱包されず必要とされる機能モジュールのみを梱包したドライバパッケージを生成する。【解決手段】本発明に係るサーバ装置は、ドライバパッケージを提供するサーバ装置であって、コアモジュール及び機能モジュール群、並びに各機能モジュールのパッケージ化条件を規定するルールファイルを記憶した記憶手段と、ドライバパッケージ要求を受信する受信手段と、指定された機能モジュールとルールファイルとに基づいて、ドライバパッケージに含まれる機能モジュールを決定する決定手段と、各モジュールのインストール方法を指示するインストールシナリオを、決定した機能モジュールとルールファイルに基づいて作成する作成手段と、コアモジュール、決定した機能モジュール及び作成したインストールシナリオを含むドライバパッケージを生成する生成手段とを有する。【選択図】図１４
2010182116.tif 000002
【特許請求の範囲】
【請求項１】
少なくともドライバのコアモジュールを含むドライバパッケージをクライアント装置に提供するサーバ装置であって、
前記ドライバパッケージの構成要素である前記コアモジュール及び機能モジュール群、並びに各機能モジュールのパッケージ化条件を規定するルールファイルを記憶した記憶手段と、
前記クライアント装置から、機能モジュールが指定されたドライバパッケージ要求を受信する受信手段と、
指定された機能モジュールと前記ルールファイルとに基づいて、前記機能モジュール群からドライバパッケージに含まれる機能モジュールを決定する決定手段と、
前記クライアント装置でドライバパッケージがインストールされる際各モジュールのインストール方法を指示するインストールシナリオを、決定した機能モジュールと前記ルールファイルに基づいて作成するインストールシナリオ作成手段と、
前記コアモジュール、前記決定した機能モジュール及び前記作成したインストールシナリオを含むドライバパッケージを生成するパッケージ生成手段と、
を有することを特徴とするサーバ装置。
【請求項２】
前記ルールファイルは、各機能モジュール間の排他関係を規定しており、
前記決定手段は、指定された機能モジュールと前記ルールファイルに規定される前記排他関係とに基づいて、ドライバパッケージに含まれる機能モジュールを決定すること、
を特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記ルールファイルは、各機能モジュールのインストール順序及びインストール属性を規定しており、
前記インストールシナリオ作成手段は、前記決定した機能モジュールの前記インストール順序及び前記インストール属性を指示したインストールシナリオを作成すること、
を特徴とする請求項１又は２に記載のサーバ装置。
【請求項４】
前記指定された機能モジュールと、前記決定手段が決定した機能モジュールとが異なる場合、その旨の確認をクライアント装置に通知する通知手段と、
を有することを特徴とする請求項１ないし３いずれか一項に記載のサーバ装置。
【請求項５】
少なくともドライバのコアモジュールを含むドライバパッケージをクライアント装置に提供するようにサーバ装置を、
前記ドライバパッケージの構成要素である前記コアモジュール及び機能モジュール群、並びに各機能モジュールのパッケージ化条件を規定するルールファイルを記憶した記憶手段と、
前記クライアント装置から、機能モジュールが指定されたドライバパッケージ要求を受信する受信手段と、
指定された機能モジュールと前記ルールファイルとに基づいて、前記機能モジュール群からドライバパッケージに含まれる機能モジュールを決定する決定手段と、
前記クライアント装置でドライバパッケージがインストールされる際各モジュールのインストール方法を指示するインストールシナリオを、決定した機能モジュールと前記ルールファイルに基づいて作成するインストールシナリオ作成手段と、
前記コアモジュール、前記決定した機能モジュール及び前記作成したインストールシナリオを含むドライバパッケージを生成するパッケージ生成手段と、
して機能させるためのドライバパッケージ生成プログラム。
【請求項６】
前記ルールファイルは、各機能モジュール間の排他関係を規定しており、
前記決定手段は、指定された機能モジュールと前記ルールファイルに規定される前記排他関係とに基づいて、ドライバパッケージに含まれる機能モジュールを決定すること、
を特徴とする請求項５に記載のドライバパッケージ生成プログラム。
【請求項７】
前記ルールファイルは、各機能モジュールのインストール順序及びインストール属性を規定しており、
前記インストールシナリオ作成手段は、前記決定した機能モジュールの前記インストール順序及び前記インストール属性を指示したインストールシナリオを作成すること、
を特徴とする請求項５又は６に記載のドライバパッケージ生成プログラム。
【請求項８】
前記サーバ装置を、
前記指定された機能モジュールと、前記決定手段が決定した機能モジュールとが異なる場合、その旨の確認をクライアント装置に通知する通知手段と、
して機能させるための請求項５ないし７いずれか一項に記載のドライバパッケージ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドライバパッケージを生成するサーバ装置及びドライバパッケージ生成プログラムの分野に関する。
【背景技術】
【０００２】
プリンタドライバは、例えばユーザ端末等にインストールされ、プリンタに対して各種印刷設定を含む印刷指示を行うプログラムである。一般的に、プリンタドライバはＷｅｂ上に公開されており、ユーザは使用するプリンタの機種に応じて、対応するプリンタドライバをダウンロードできる。図１は、プリンタドライバダウンロードページを示す図の一例である。
【０００３】
ここで、プリンタドライバは、ある一の機種であっても、複数の種類のプリンタドライバが提供されている場合がある。例えば、図１に示されるように標準（推奨）版、軽量版、エンタープライズ版といったように、含まれる機能に応じて、異なるプリンタドライバパッケージが提供されている。また他にも、ユーザが個々に欲しい機能（オプション機能）と不要な機能を取捨して、ダウンロードしたい機能を選択できるようにすることもできる。
【０００４】
図２は、プリンタドライバダウンロードページの内部的なデータ構成を示す図の一例である。プリンタドライバダウンロードページと、サーバ上の各ドライバパッケージ（実体）とはリンクされており、ダウンロードページ上と対応するドライバパッケージが、サーバからダウンロードできるようになっている。
【０００５】
図３は、各ドライバパッケージに梱包されるファイルを模式的に示す図の一例である。パッケージによって内包するファイル（モジュール）は異なっている。ドライバインストーラは、そのパッケージに含まれるドライバコアや各機能をインストールするように作成されている。ドライバコアは、いずれのパッケージでもプリンタドライバにおいて必須の機能を提供するもので必ずパッケージには含まれるものである。機能Ａ、Ｂ、Ｃは、必ずしも必須ではなく、用途や必要に応じて、取捨可能であるものである。
【０００６】
このようにドライバパッケージには多数のファイルが梱包されており、これらのファイルはそれぞれ機能や役割に応じて存在するものである。ユーザが全ての機能を使わない限り本来必ずしも全てのファイルをパッケージに梱包する必要はないが、従来おおよそのユーザ毎の使用状況を想定して、使用するであろうファイルを梱包したパッケージを提供していた。
【０００７】
その理由の一つとしては、単純に全ての機能の組合せた種類のパッケージを提供する場合、多大なコスト増になるため非現実的だからである。例えば、上記ケースであれば、ドライバコアは必須であるとしても、機能Ａ、Ｂ、Ｃを組合せると、全部で１６パターンのパッケージを提供側（例えばメーカー）は作成しなくてはならない。従って、従来、ある程度ファイルを複数梱包したパッケージを提供するという対応が一般的であった。
【０００８】
しかしながら、全て（多く）のファイルを梱包する場合、パッケージサイズが肥大化するため、ユーザサイドからすると、使用しない機能のためにパッケージ容量が大きくなってしまい無駄が生じる。また、そのユーザにとって不要な機能を含んでいるため、使用上（操作上）複雑になったりと、かえって使いにくくなっている場合がある。とはいえ前述の通り、全ての機能の組合せた種類のパッケージを提供するのは、多大なコスト増になるため非現実的である。
【０００９】
これに関連する技術として特許文献１には、ドライバのパッケージファイルのダウンロード時に、クライアント装置に合わせてパッケージファイルが生成されるようにして、クライアント装置の環境のバリエーションが多い場合においても、サブモジュールを適宜追加、変更することで、適切なデバイスドライバのパッケージファイルを簡単に用意し提供することが記載されている。つまり、プリンタドライバのダウンロードに際し、サーバ装置は、ユーザに必要な機能を選択して、必要な機能のみ梱包されたパッケージファイルを生成するようになっている。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、プリンタは多くのオプション（機能）がしばしば追加されて使用される。単純にプリンタの基本的な機能としてプリント機能が思い浮かぶが、近年、現在のデジタル複合機（MFP：Multi-Function Peripheral）は、ＣＰＵの性能向上、メモリの大容量化、通信技術の高速化及びデジタル画像技術の高度化等、ＭＦＰに関連する技術の進化に伴い、単にプリンタとしての機能だけでなく、様々な機能を搭載し、ユーザ環境において多彩な利用形態を提供するようになった。従って、プリンタドライバで対応すべき機能は相当数に及ぶので、前述のように、単純に全ての機能の組合せた種類のパッケージを提供することは、現実的ではない。
【００１１】
また特許文献１に記載される発明のように、ユーザに必要な機能を選択して、必要な機能のみ梱包されたパッケージファイルを生成（提供）する場合であっても、単純に必要な機能のみを梱包してパッケージファイルを生成するのみでは不十分である。というのは、多種機能を有するプリンタにおいては、オプション機能によっては排他関係や主従関係など、機能特性から生ずる機能間の相互関係が組合せにも関係してくるからである。例えば、排他関係にある機能両方がパッケージに含まれていても、いずれかの機能は事実上使用されることなく、この場合パッケージには余分な機能が含まれてしまっている。また、ある機能に対して従関係にある機能のみがパッケージに含まれていても、主たる機能がないので、この従関係にある機能は事実上使用されることなく、この場合もパッケージには余分な機能が含まれてしまっている。
【００１２】
仮に、このような機能間の相互関係を考慮して成立しうるパッケージの組合せを全て作成して提供することもできるが、やはり多大なコスト増となり非現実的である。
【００１３】
そこで本発明では上記のような問題に鑑みて、提供側にとっては容易な提供を可能としつつ、ユーザ側にとって余分な機能は梱包されず必要とされる機能モジュールのみを梱包したドライバパッケージを生成するサーバ装置及びドライバパッケージ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
そこで上記課題を解決するため、本発明に係るサーバ装置は、少なくともドライバのコアモジュールを含むドライバパッケージをクライアント装置に提供するサーバ装置であって、前記ドライバパッケージの構成要素である前記コアモジュール及び機能モジュール群、並びに各機能モジュールのパッケージ化条件を規定するルールファイルを記憶した記憶手段と、前記クライアント装置から、機能モジュールが指定されたドライバパッケージ要求を受信する受信手段と、指定された機能モジュールと前記ルールファイルとに基づいて、前記機能モジュール群からドライバパッケージに含まれる機能モジュールを決定する決定手段と、前記クライアント装置でドライバパッケージがインストールされる際各モジュールのインストール方法を指示するインストールシナリオを、決定した機能モジュールと前記ルールファイルに基づいて作成するインストールシナリオ作成手段と、前記コアモジュール、前記決定した機能モジュール及び前記作成したインストールシナリオを含むドライバパッケージを生成するパッケージ生成手段とを有する。
【００１５】
また上記課題を解決するため、前記サーバ装置において、前記ルールファイルは、各機能モジュール間の排他関係を規定しており、前記決定手段は、指定された機能モジュールと前記ルールファイルに規定される前記排他関係とに基づいて、ドライバパッケージに含まれる機能モジュールを決定することを特徴とする。
【００１６】
また上記課題を解決するため、前記サーバ装置において、前記ルールファイルは、各機能モジュールのインストール順序及びインストール属性を規定しており、前記インストールシナリオ作成手段は、前記決定した機能モジュールの前記インストール順序及び前記インストール属性を指示したインストールシナリオを作成することを特徴とする。
【００１７】
また上記課題を解決するため、前記サーバ装置において、前記指定された機能モジュールと、前記決定手段が決定した機能モジュールとが異なる場合、その旨の確認をクライアント装置に通知する通知手段とを有する。
【００１８】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１９】
本発明によれば、提供側にとっては容易な提供を可能としつつ、ユーザ側にとって余分な機能は梱包されず必要とされる機能モジュールのみを梱包したドライバパッケージを生成するサーバ装置及びドライバパッケージ生成プログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】プリンタドライバダウンロードページを示す図の一例である。
【図２】プリンタドライバダウンロードページの内部的なデータ構成を示す図の一例である。
【図３】各ドライバパッケージに内包されるファイルを模式的に示す図の一例である。
【図４】本発明に係る一実施形態におけるネットワーク構成図である。
【図５】サーバ１の一実施形態の主要構成を示すハードウェア構成図である
【図６】サーバ１の一実施形態の主要機能構成を示す機能ブロック図である。
【図７】記憶されたデータ構成を模式的に示す図の一例である。
【図８】ルールファイルの記載内容を示す図の一例である。
【図９】サーバ１からドライバパッケージを取得する概念を説明する図である。
【図１０】サーバ１の処理動作を説明するフローチャートである。
【図１１】インストールシナリオを示す図の一例である。
【図１２】ドライバパッケージに含まれるデータを示す図の一例である。
【図１３】ドライバパッケージインストールを説明するフローチャートである。
【図１４】インストールシナリオを示す図の一例である。
【図１５】サーバ１からドライバパッケージを取得する概念を説明する図である。
【発明を実施するための形態】
【００２１】
以下、本発明を実施するための形態を各実施形態において図面を用いて説明する。
【００２２】
＜構成＞
はじめに、具体的な発明の内容を説明する前に、本発明を実施するにあたってのシステム構成について説明する。図４は、本発明に係る一実施形態におけるネットワーク構成図である。本発明に係るサーバ１及びクライアントＰＣ（以下ＰＣという）２が、インターネット等のネットワーク３を介して接続されている。サーバ１は、ＰＣ１にプリンタドライバパッケージを提供するサーバ装置である。さらにＷｅｂ機能を有しており、Ｗｅｂ技術を利用してＰＣ１からのアクセスを容易にしている。
【００２３】
ＰＣ１は、ユーザ端末であり、Ｗｅｂブラウザを介してサーバ１から必要なプリンタドライバをダウンロードする。プリンタドライバパッケージは、ＰＣ１にインストールされ、プリンタ４に対して印刷指示等を行なう。プリンタ４は、例えば画像形成装置をはじめとするプリンタ装置であり、ＰＣ１のプリンタドライバから印刷指示を受けて該印刷指示を実行する。
【００２４】
なお、サーバ１は後述するように記憶部（Data Base等）を有するが、当該機能は必ずしもサーバ１と同一筐体になくともよく、ネットワーク３上に接続されたファイルサーバ等を設け当該機能を持たせてもよい。
【００２５】
（サーバ）
図５は、本発明に係るサーバ１の一実施形態の主要構成を示すハードウェア構成図である。ここでサーバ１のハードウェア構成について簡単に説明しておく。サーバ１は、例えば一般的な情報処理装置でもよく、主要な構成として、ＣＰＵ１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、補助記憶装置１０４、記憶媒体読取装置１０５、入力装置１０６、表示装置１０７、及び通信装置１０８を含む構成である。
【００２６】
ＣＰＵ１０１は、マイクロプロセッサ及びその周辺回路から構成され、ＰＣ１全体を制御する回路である。また、ＲＯＭ１０２は、ＣＰＵ１０１で実行される所定の制御プログラム（ソフトウェア部品）を格納するメモリであり、ＲＡＭ１０３は、ＣＰＵ１０１がＲＯＭ１０２に格納された所定の制御プログラム（ソフトウェア部品）を実行して各種の制御を行うときの作業エリア（ワーク領域）として使用するメモリである。
【００２７】
補助記憶装置１０４は、汎用のＯＳ（Operating System）、プリンタドライバを含む各種情報を格納する装置であり、不揮発性の記憶装置であるＨＤＤ（Hard Disk Drive）などが用いられる。なお、上記各種情報は、補助記憶装置１０４以外にも、ＣＤ−ＲＯＭ（Compact Disk - ROM）やＤＶＤ（Digital Versatile Disk）などの記憶媒体やその他のメディアを記憶されてもよく、これらの記憶媒体に格納された各種情報は、記憶媒体読取装置１０５などのドライブ装置を介して読み取ることが可能である。
【００２８】
入力装置１０６は、サーバ管理者が各種入力操作を行うための装置である。入力装置１０６は、マウス、キーボードなどを含む。表示装置１０７は、いわゆるディスプレイで例えばＬＣＤ(Liquid Crystal Display)、ＣＲＴ(Cathode Ray Tube)などから構成される。次に、通信装置１０８は、ネットワーク３を介してＰＣ２との通信を行う装置である。有線ネットワークや無線ネットワークなど含む各種ネットワーク形態に応じた通信をサポートする。
【００２９】
図６は、サーバ１の一実施形態の主要機能構成を示す機能ブロック図である。サーバ１は、主な機能部として、記憶部６０１、受信部６０２、決定部６０３、インストールシナリオ作成部６０４、及びパッケージ生成部６０５を含む構成である。機能部の機能動作については再度詳細に説明を行うので、ここでは簡単に説明する。
【００３０】
記憶部６０１は、ドライバパッケージの構成要素であるコアモジュール及び機能モジュール群、並びに各機能モジュールのパッケージ化条件を規定するルールファイルを記憶している。記憶部６０１に記憶されるこれらデータについては後述する。
【００３１】
受信部６０２は、ＰＣ２から、機能モジュールが指定されたドライバパッケージ要求を受信する機能を有している。ドライバパッケージ要求には、例えば機能Ａ、機能Ｂといったように、ユーザがドライバパッケージに含めたい機能（プリンタ４においてドライバを介して利用したい機能）との情報が含まれている。
【００３２】
決定部６０３は、ユーザに指定された機能モジュールと、記憶部６０１のルールファイルとに基づいて、記憶部６０１の機能モジュール群からドライバパッケージに含まれる機能モジュールを決定する機能を有している。
【００３３】
インストールシナリオ作成部６０４は、ＰＣ２でドライバパッケージがインストールされる際各モジュールのインストール方法を指示するインストールシナリオを、決定部６０３で決定した機能モジュールと、記憶部６０１のルールファイルに基づいて作成する機能を有している。
【００３４】
パッケージ生成部６０５は、コアモジュール、決定した機能モジュール及び作成したインストールシナリオを含むドライバパッケージを生成する機能を有している。コアモジュールは、プリンタドライバには必ず必要なモジュールである。なお、ドライバパッケージは後述するマスターインストーラをも含む。
【００３５】
上記説明したこれらの機能は、実際にはＣＰＵ１０１が実行するドライバパッケージ生成プログラムによりコンピュータ（サーバ１）に実現させるものである。
【００３６】
（データ構成）
記憶部６０１に記憶（格納）されるデータ構成を説明する。図７は、記憶されたデータ構成を模式的に示す図の一例である。前述の通り、コアモジュール、機能モジュール群、ルールファイルが記憶されている。
【００３７】
コアモジュール、機能モジュール群は、図に示されるように、それぞれが自身のインストーラを有しており、各モジュール実体は互いに独立するデータになっている。そして、ドライバパッケージに梱包される場合、コアモジュールは必須であるので、コアモジュールに加えて必要とされる機能モジュールがパッケージに含まれる。ドライバパッケージはＰＣ２にインストールされる際、まず開梱される。そしてインストールシナリオに指示される手順等に従って、各モジュールはインストールされる。このとき各モジュールは自身が有するインストーラを使用して自身のモジュールをインストールしていくことができるよう構成されている。
【００３８】
ルールファイルは、各機能モジュールのパッケージ化条件を規定するもので、各ドライバモジュール（コンポーネント）リリース時において同時にリリースされる。そして、例えばルールファイルは、各機能モジュール間の排他関係を規定しており、決定部６０３は、ユーザに指定された機能モジュールとルールファイルに規定される排他関係とに基づいて、機能モジュール群からドライバパッケージに含まれる機能モジュールを決定する。つまり、互いに排他する機能モジュールがユーザに指定された機能モジュールに含まれている場合、例えば、排他関係にある機能の片方をパッケージから除外する。また、ルールファイルは、各機能モジュールのインストール順序及びインストール属性を規定しており、インストールシナリオ作成部６０４は、決定部６０３で決定した機能モジュールがＰＣ２においてインストールされる際に適用されるインストール順序やインストール属性を指示したインストールシナリオを作成する。つまり、ルールファイルが参照されて適切なインストールシナリオが作成される。
【００３９】
図８は、ルールファイルの記載内容を示す図の一例である。ルールファイルは、一例として、各機能毎のプロパティ条件をＣＳＶフォーマットでリストされている。例えば、図中、「機能Ａのルール」を参照すると、「Any_Core, Must」と規定されている。「Any_Core, Must」は、「機能Ａは、いずれかのコアモジュールを必須である」ことを意味している。
【００４０】
また、「PCL5_Core, IF_Opt, -pcl5」は、「機能Ａは、PCL5のコアモジュールとともにインストールする場合、オプション-pcl5を指定する」ことを意味している。具体的に、機能Ａは各PDL向けのLocked Print機能を包含しておりいずれのコアモジュールも対応しているが、コアモジュールそのものがPCL5の場合は、機能Ａインストール時PCL5向けとしてインストールすることが規定されている。よって機能Ａのインストーラに対して、インストールオプションの形で指定をする。
【００４１】
次に、「機能Ｂのルール」を参照すると、「FuncD, Want」は、「機能Ｂは、機能Ｄ（モジュール）を推奨する」ことを意味している。この場合、機能Ｄは、機能Ｂの拡張機能にあたるので、機能Ｃを追加した方が高い機能が提供される。勿論、機能Ｄは機能Ｂがなくては（後からしか）追加できない。一例として、機能Ｂは基本地紋機能、機能Ｄは拡張地紋機能の場合、拡張地紋機能をＰＣ２でインストールして使うためには、そのベースとして基本地紋機能がインストール済みである必要がある。拡張機能は基本機能の各種処理部を利用するからである。また例えば、機能Ｂはウォーターマーク機能、機能Ｄは（基本）地紋機能の場合、地紋機能を単体でインストールした場合は、地紋機能の簡易版しか使えないが、先にウォーターマーク機能をインストールした上で地紋機能を追加すると、ウォーターマークの機能もフル活用した、より高度な地紋機能が使えるようになる。
【００４２】
さらに、「機能Ｃのルール」を参照すると、「FuncA, Not」は、「機能Ｃは、機能Ａ（モジュール）を排除する」ことを意味している。機能上/つくり上、機能Ｃと機能Ａは排他関係にあり、そのまま平易にインストールすることはできない。例えば、機能ＣはPS Driver向けの機能（PS Passthrough機能など）であり、このような場合PCL6 Driverのコアには追加できない。次にこれらルールを具体的に適用しながら、サーバ１の処理動作について説明していく。
【００４３】
＜動作＞
図９は、サーバ１からドライバパッケージを取得する概念を説明する図である。ユーザによってプリンタドライバダウンロードページ（Ｗｅｂ画面等）から必要な機能が指定（選択）されると、サーバ１は指定された機能（モジュール）を、動的に個々取得してパッケージ処理を行い、ユーザに生成されたドライバパッケージを提供する。なお、「PCL6 Driver（コア）」は必須モジュールであるので、デフォルトで強制的に指定されるようにしてもよい。
【００４４】
図１０は、サーバ１の処理動作を説明するフローチャートである。即ちドライバパッケージ生成処理を説明する図である。以下説明する。
【００４５】
ステップＳ１００１において、受信部６０２は、ＰＣ２から、機能モジュールが指定されたドライバパッケージ要求を受信すると、指定された機能モジュール情報を取得することができる。ここでは、指定された機能モジュールは、図９に対応するように、「PCL6 Driver(コア)」、「PCL6 Driver(機能Ａ)」、「PCL6 Driver(機能Ｂ)」、「PCL6 Driver(機能Ｃ)」であるとする。
【００４６】
ステップＳ１００２で、決定部６０３は、ルールファイルの、特に指定された機能モジュールの排他関係を参照する。
【００４７】
ステップＳ１００３で、ルールを満たすか否かの判定を行う。つまり、指定された機能モジュールが排他関係を有しない場合、ステップＳ１００４に進み、その指定された機能モジュールをドライバパッケージに含めるとの決定を行い、記憶部６１０から指定された機能モジュール（実体）を取得する。
【００４８】
指定された機能モジュールが排他関係を有する場合、ステップＳ１００８で、ユーザにその旨を通知する。また再設定を促す画面を表示する。その際、具体的にどの機能を組み込めないか等を通知して、ルールに適用するような指定（選択）を促すとよい。
【００４９】
ここでは前述の通り、指定された機能モジュールは、「PCL6 Driver(コア)」、「PCL6 Driver(機能Ａ)」、「PCL6 Driver(機能Ｂ)」、「PCL6 Driver(機能Ｃ)」である。図８に示されるルールファイルを参照すると、特に機能モジュールである「PCL6 Driver(機能Ａ)」、「PCL6 Driver(機能Ｃ)」において、排他関係を有するので、ステップＳ１００８に進む。そして、例えば「PCL6 Driver(機能Ｃ)」を指定しないようにする旨を通知する。これにより、「PCL6 Driver(コア)」、「PCL6 Driver(機能Ａ)」、「PCL6 Driver(機能Ｂ)」が再指定されたとする。なお、排他関係は有しないが、「PCL6 Driver(機能Ｂ)」は、「PCL6 Driver(機能Ｄ)」を推奨する旨をユーザに通知し、「PCL6 Driver(機能Ｄ)」を再び指定するように促してもよい。
【００５０】
ステップＳ１００５で、インストールシナリオ作成部６０４は、ルールファイルを再び参照し、決定した機能モジュールのインストール方法を指示するインストールシナリオ作成する。図１１は、インストールシナリオを示す図の一例である。概略的にインストールシナリオには、各モジュールをインストールする順序が規定されている。このインストールシナリオについては後述するので、このまま説明を進める。
【００５１】
ステップＳ１００６で、パッケージ生成部６０５は、コアモジュール、決定した機能モジュール及び作成したインストールシナリオを含むドライバパッケージを生成する。また、パッケージ生成部６０５は、マスターインストーラを含めてからパッケージ（圧縮して１ファイル化）を行なう。マスターインストーラは、ドライバパッケージ全体のインストーラである。実際にはインストールシナリオに規定（記載）された順に、各モジュールの有するインストーラを起動する役割を担う。
【００５２】
図１２は、ドライバパッケージに含まれるデータを示す図の一例である。ユーザ指定に応じていわば動的に生成されたドライバパッケージには、マスターインストーラ、インストールシナリオ、「PCL6 Driver コア実体」、「PCL6 Driver 機能Ａ実体」、「PCL6 Driver機能Ｂ実体」が含まれている。
【００５３】
ステップＳ１００７で、サーバ１は、生成されたドライバパッケージをＰＣ２に提供する。
【００５４】
（インストール）
ＰＣ２側にダウンロードされたドライバパッケージは、プリンタドライバとしてＰＣ２にインストールされてから利用される。ここで、マスターインストーラ及びインストールシナリオをより詳しく説明するため、ＰＣ２側におけるドライバパッケージのインストールフローに触れる。
【００５５】
図１３は、ドライバパッケージインストールを説明するフローチャートである。サーバ１側で生成されたライバパッケージは、ＰＣ２側にダウンロードされる。ＰＣ２は、そのドライバパッケージを利用するためインストールを行なうのである。以下、説明する。
【００５６】
ステップＳ１３０１において、ＰＣ２は、ドライバパッケージの解凍を行なう。ドライバパッケージは、サーバ１側で圧縮処理されているからである。
【００５７】
ステップＳ１３０２で、まずマスターインストーラを起動する。マスターインストーラは、ドライバパッケージ全体のインストーラである。
【００５８】
ステップＳ１３０３で、マスターインストーラはインストールシナリオを読み取る（参照する）。そしてマスターインストーラは、インストールシナリオに規定（記載）された順に、各モジュールの有するインストーラを起動する。
【００５９】
ステップＳ１３０４で、シナリオ順に、各インストーラを起動する。具体的に再び図１２を参照して、[Driver File1]として「.\Core\Install.exe」が記載されている。よって、まずマスターインストーラは、インストーラプログラムである「.\Core\Install.exe」の起動を行なう。この「.\Core\Install.exe」は、図１１を参照すると「PCL Driver6 コア実体」内の「コアインストーラ」に相当する。
【００６０】
ステップＳ１３０５で、各モジュール毎に、自身内の全てのファイルをインストールする。つまり、各モジュールは自身でそれぞれインストーラを有しているので、そのインストーラが起動されてしまえば、自身に含まれる全てのファイルをインストールすることができる。再び、図１１を参照して、「PCL Driver コア実体」内の「コアインストーラ」が起動されると、これにより「ドライバコア」がインストールされる。このように、マスターインストーラは、各モジュールのインストーラを順に起動するだけで、個々のインストールは個々のインストーラによって行なわれることになる。
【００６１】
ステップＳ１３０６で、インストールシナリオ内の全てのインストーラを起動したか判定を行う。全てのインストーラを起動した場合、全ての各モジュール（コアドライバ、各機能ドライバ）がインストールされたことを意味するので、インストール処理を終了する。一方、全てのインストーラを起動していない場合、順に全ての全てのインストーラを起動するまで同様な処理を行う。具体的にここでマスターインストーラは、「.\Core\Install.exe」、「.\FuncA \Install.exe」、「.\FuncB \Install.exe」の順に各インストーラを起動していく。
【００６２】
（補足）
以上、サーバ１がドライバパッケージを生成する処理動作を説明してきたが、ルールファイルに関して言及できなかったケースについて補足説明を行っておく。
【００６３】
指定された機能モジュールが、「PCL6 Driver(コア)」、「PCL6 Driver(機能Ａ)」、「PCL6 Driver(機能Ｂ)」、「PCL6 Driver(機能Ｄ)」の場合を取り上げる。
【００６４】
再び図８を参照し、（機能Ａのルール）において、「Any_Core, Must」、「PCL6_Core, IF_Opt, -pcl6」と規定されている。これはつまり、機能Ａにとって、何からのコアモジュールは必須であるが、PCL6版のコアモジュールの場合、インストールオプションとして「-pcl6」を指定するようになっているのである。
【００６５】
具体的に、機能Ａは各PDL向けのLocked Print機能を包含しておりいずれのコアモジュールも対応しているが、コアモジュールそのものがPCL6の場合は、機能Ａインストール時PCL6向けとしてインストールすることが規定されている。よって機能Ａのインストーラに対して、インストールオプションの形で指定をする。
【００６６】
この場合、機能Ａは、例えばその機能のPCL6に対応する一部でよい（十分）ことを意味する。勿論、機能Ａの全部が含まれても問題はない。しかしながら、コアモジュールがPCL6対応である以上、PCL6に対応する一部がインストールされていれば十分である。従って、インストールにおいては、機能Ａの一部をインストールするようにすることで、不要な（無駄な）、機能やデータを削減する。なお、特に規定がないような機能においては、機能Ａは機能Ａの全部が含まれるように、パッケージされる。
【００６７】
このように、ルールファイルによって各機能の特性や属性（プロパティ）が考慮され、その機能の特性に基づいてインストールのオプションが決定される。プリンタドライバのように多種な特性を有する機能を含むドライバにおいては、無駄のないインストールを行なうことができるのである。
【００６８】
再び図８を参照する。（機能Ｂのルール）において、機能Ｄは推奨される機能であることが分かる。この場合、機能Ｄは、機能Ｂの拡張機能にあたるので、機能Ｄは機能Ｂがなくては（後からしか）追加できない。例えば、機能Ｂは基本地紋機能、機能Ｄは拡張地紋機能の場合、拡張地紋機能をインストールして使うためには、そのベースとして基本地紋機能がインストール済みである必要がある。拡張機能は基本機能の各種処理部を利用するからである。従って、インストールシナリオでは、インストールされる順序として、「PCL6 Driver(機能Ｂ)」、「PCL6 Driver(機能Ｄ)」となるよう作成（記載）される。「PCL6 Driver(機能Ｄ)」、「PCL6 Driver(機能Ｂ)」の順序とはならないように明示的にインストールシナリオにそのインストール順序が記載されるのである。
【００６９】
このように、ルールファイルによって各機能間の特性（性質）が考慮され、その機能間の特性に基づいてインストールの順序が決定される。プリンタドライバのように多種な特性を有する機能を含むドライバにおいては、確実に正確なインストールを行なうことができるのである。
【００７０】
また再び図８を参照し、（機能Ｂのルール）において、「FuncD, IF_Opt, -Half」と記載されている。この場合、機能Ｄは、機能Ｂの拡張機能にあたるのであるが、機能Ｄはその機能の、例えば半分又は一部（-Half）でよい（十分）ことを意味する。勿論、機能Ｄの全部（-Full）が含まれても問題はない。しかしながら、機能Ｂとの関係においては、機能Ｄはその機能の、半分又は一部（-Half）で、十分機能Ｄの機能を発揮することができるので、インストールにおいては、機能Ｄの半分又は一部をインストールするようにすることで、不要な（無駄な）、機能やデータを削減する。なお、特に規定がないような機能においては、機能Ｄは機能Ｄの全部（-Full）が含まれるように、パッケージされる。
【００７１】
図１４は、インストールシナリオを示す図の一例である。即ち、ここで作成されたインストールシナリオを示す図である。機能Ｂと機能Ｄの関係が反映されており、まず「.\FuncB\Install.exe」が実行（起動）されてから、「.\FuncD\Install.exe」が実行されるよう明示的に記載されている。また、同様に機能Ｄに関して、「.\FuncD\Install.exe -Half」と記載されている。機能Ｄの半分又は一部（-Half）をインストールするように明示的に記載されている。
【００７２】
＜変形例＞
図１５は、サーバ１からドライバパッケージを取得する概念を説明する図である。図９と対比されることができる。つまり、図９のプリンタドライバダウンロードページにおいて、ユーザはチェックボックスで欲しい機能にチェックすればよかった。
【００７３】
図１５のプリンタドライバダウンロードページにおいて、標準（推奨）版、軽量版、エンタープライズ版といったように、含まれる機能に応じて、異なるプリンタドライバパッケージが提供されている。つまり、コンセプトやキャッチフレーズ等の観点から、ユーザにとって分かり易い単位でのドライバパッケージが提供されている。このようにすることで、チェックボックス形式に比べて、個々の機能詳細を把握していなくとも、そのコンセプトからおおよそそのユーザニーズにマッチしたドライバパッケージを提供できる。
【００７４】
図中、「PCL6 Driver （軽量版）」が指定（選択）された場合、サーバ１側では指定された機能モジュールを特定しており、この場合、「PCL6 Driver 機能Ａ実体」が指定された機能モジュールであると特定している。よって、最終的に、「インストールシナリオ」、「PCL6 Driver ドライバコア実体」（必須）、「PCL6 Driver 機能Ａ実体」（指定）が梱包されて、ドライバパッケージとしてユーザに提供される。
【００７５】
なお、プリンタドライバダウンロードページの作り込みにおいて、「PCL6 Driver （軽量版）」のリンク中に指定された機能モジュールとして「PCL6 Driver 機能Ａ実体」の情報を埋め込むことで実現できる。またもしくは、「PCL6 Driver （軽量版）」のリンク中に所定のフラグ等を埋め込んでおき、サーバ１側でその所定フラグの対応する機能モジュールを決めておくことで実現できる。
【００７６】
以上本発明によれば、提供側にとっては容易な提供を可能としつつ、ユーザ側にとって余分な機能は梱包されず必要とされる機能モジュールのみを梱包したドライバパッケージを生成するサーバ装置及びドライバパッケージ生成プログラムすることができる。
【００７７】
以上、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。即ちプリンタドライバパッケージに限られずとも、特に多彩な機能及び機能間に特有の相互関係を有するような周辺機器等においても本発明を適用することができる。
【符号の説明】
【００７８】
１        サーバ装置
２        クライアントＰＣ
３        ネットワーク
４        プリンタ
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    補助記憶装置
１０５    記憶媒体読取装置
１０６    入力装置
１０７    表示装置
１０８    通信装置
６０１    記憶部
６０２    受信部
６０３    決定部
６０４    インストールシナリオ作成部
６０５    パッケージ生成部
【先行技術文献】
【特許文献】
【００７９】
【特許文献１】特開２００６−２４４００９号公報
【図１】
2010182116.tif 000003
【図２】
2010182116.tif 000004
【図３】
2010182116.tif 000005
【図４】
2010182116.tif 000006
【図５】
2010182116.tif 000007
【図６】
2010182116.tif 000008
【図７】
2010182116.tif 000009
【図８】
2010182116.tif 000010
【図９】
2010182116.tif 000011
【図１０】
2010182116.tif 000012
【図１１】
2010182116.tif 000013
【図１２】
2010182116.tif 000014
【図１３】
2010182116.tif 000015
【図１４】
2010182116.tif 000016
【図１５】
2010182116.tif 000017