(57)【特許請求の範囲】
【請求項１】
プリンターと情報処理装置を含む印刷システムであって、
前記プリンターの記憶部において、前記情報処理装置にプリンタードライバーをインストールするためのセットアッププログラムを記憶しており、
前記情報処理装置が、
前記プリンターからセットアッププログラムを取得して、前記情報処理装置の記憶部に記憶する記憶手段と、
前記記憶部に記憶されたセットアッププログラムを起動して、前記プリンターを制御するためのプリンタードライバーをインストールするに際して、前記情報処理装置で動作するＯＳの属性を特定する特定手段と、
前記特定手段により特定されたＯＳの属性に応じて、インストールされるプリンタードライバーのために作成されるポートのポート名のフォーマットを決定する決定手段と、
前記決定手段により決定されたフォーマットに従うポート名のポートを作成し、プリンタードライバーをインストールする制御手段と、
前記制御手段により作成されるポートと、前記情報処理装置の既存のポートとのデータの送信先が一致するかを判定する判定手段と、を有し、
前記判定手段により一致しないと判定された場合に、前記制御手段は作成されたポートが設定されたデバイスドライバーをインストールすることを特徴とする印刷システム。
【請求項２】
記憶部を備える情報処理装置であって、
デバイスを制御するためのデバイスドライバーをインストールするに際して、前記情報処理装置で動作するＯＳの属性を特定する特定手段と、
前記特定手段により特定されたＯＳの属性に応じて、インストールされるデバイスドライバーのために作成されるポートのポート名のフォーマットを決定する決定手段と、
前記決定手段により決定されたフォーマットに従うポート名と、前記記憶部に記憶された設定情報に含まれるデータの送信先の情報とが設定されたポートを作成し、該ポートが設定されたデバイスドライバーをインストールの制御を行う制御手段と、
前記制御手段により作成されるポートと、前記情報処理装置の既存のポートとのデータの送信先が一致するかを判定する判定手段と、を有し、
前記判定手段により一致しないと判定された場合に、前記制御手段は作成されたポートが設定されたデバイスドライバーをインストールすることを特徴とする情報処理装置。
【請求項３】
前記特定手段は、ＯＳの属性としてバージョンを特定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記設定情報は、前記デバイスから取得され記憶部に記憶されることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記デバイスはプリンターであって、デバイスドライバーはプリンタードライバーであることを特徴とする請求項２乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記デバイスには、当該デバイスと接続された管理装置の指示に応じて作成された、デバイスドライバーをインストールするためのセットアッププログラムが記憶され、
前記制御手段は、前記制御手段によるインストールの制御は、デバイスから取得されたセットアッププログラムを実行することにより実現されることを特徴とする請求項２乃至５の何れか１項に記載の情報処理装置。
【請求項７】
記憶部を備える情報処理装置における情報処理方法であって、
デバイスを制御するためのデバイスドライバーをインストールするに際して、前記情報処理装置で動作するＯＳの属性を特定する特定工程と、
前記特定されたＯＳの属性に応じて、インストールされるデバイスドライバーのために作成されるポートのポート名のフォーマットを決定する決定工程と、
前記決定されたフォーマットに従うポート名と、前記記憶部に記憶された設定情報に含まれるデータの送信先の情報とが設定されたポートを作成し、該ポートが設定されたデバイスドライバーをインストールする制御工程と、
前記制御工程で作成されるポートと、前記情報処理装置の既存のポートとのデータの送信先が一致するかを判定する判定工程と、を有し、
前記判定工程で一致しないと判定された場合に、前記制御工程では作成されたポートが設定されたデバイスドライバーがインストールされることを特徴とする情報処理方法。
【請求項８】
請求項２乃至５の何れか１項に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、印刷システムにおける技術に関するものである。
【背景技術】
【０００２】
近年、企業のオフィス等にプリンターが普及し、誰でも簡単に印刷ができるようになった。ＰＣ（パーソナルコンピュータ）からプリンターに印刷するには、プリンターを制御し印刷データを生成するプリンタードライバーをＰＣにインストールする必要がある。一般的にプリンタードライバーは、ＰＣのオペレーティングシステム（ＯＳ）や印刷するプリンター毎に用意され、プリンターと同梱されたＣＤ−ＲＯＭやＦＤ等の記憶媒体によって提供されている。また、管理者は最新のプリンタードライバーを、公衆ネットワークを介してプリンターの製造元が開設したホームページからダウンロードにより入手することが一般的である。さらに、入手したプリンタードライバーとインストール時に使用する設定情報とを、ネットワーク上で共有されている記憶装置に配置しておき、一般ユーザーに配置場所をアナウンスしてプリンターを利用させるといった運用が行われている。一般ユーザーはアナウンスを元に、その配置場所から取得した情報に従い、ＰＣにプリンタードライバーをインストールする。
【０００３】
また、従来から、プリンタードライバーをインストールする方法として、インストーラが使用する設定情報を定義ファイルとして管理者が作成し、定義ファイルとインストーラを１つの実行ファイルから呼び出す技術が提案されている。（特許文献１参照。）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０９２１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１で開示される方法では、ユーザーはプリンタードライバーのインストール時に使用する設定情報として、論理プリンター名、ポート名を自由に設定した実行ファイルを生成できる。ユーザーが実行ファイルを実行すると、設定情報で指定された論理プリンターがＰＣに存在する場合は、既存の論理プリンターを設定情報で上書きする。具体的には、設定情報で指定されたポート名が既存のポート名と異なる場合は、新たに指定されたポート名でポートを作成する。さらに、印刷データを送信する際に用いるように設定し、ＰＣにインストール済みのプリンタードライバーが古ければ、プリンタードライバーを更新する。
【０００６】
バージョンアップしたプリンタードライバーがプリンターベンダーからリリースされた等の理由により、ユーザーはプリンタードライバーだけ更新をしたくても、特許文献１に開示される方法では、ポートも新規に作成されてしまう。すなわち、論理プリンターの接続ポートに、既存のポート名とは異なるポート名を指定してしまうことが発生する。従って、プリンタードライバーの更新する度に、システムに使われない古いポートが残ることがあった。
【０００７】
また、ユーザーに任意のポート名を指定させず、プリンターのＩＰアドレスのみ指定させる方法がある。ポート名のフォーマットを固定し、同じＩＰアドレスは同じポート名とすることで、同一ＩＰアドレスに対しては複数のポートを作成させない。例えば、印刷実行するプリンターのＩＰアドレスとして“１７２．１０．１０．１０”を指定したときは、ポート名を“ＩＰ＿１７２．１０．１０．１０”にするとする。既に、ポート名が“ＩＰ＿１７２．１０．１０．１０”のポートが存在するときは、新規にポートを作成せずに、既存のポートを流用する。
【０００８】
ＯＳに標準搭載されている標準ＴＣＰ／ＩＰポートでは、ＯＳのバージョンによって自動で作成されるポート名が異なる。例えば、印刷実行するデバイスのＩＰアドレスとして“１７２．１０．１０．１０”を指定したとき、あるＯＳ（第１のＯＳ）では、そのＯＳの標準ＴＣＰ／ＩＰポートでポートを作成すると、ポート名が“ＩＰ＿１７２．１０．１０．１０”となる。一方で、他のＯＳ（第２のＯＳ）では、同ポートを作成するとポート名が“１７２．１０．１０．１０”となる。
【０００９】
ここで、第２のＯＳ上で、ポート名“ＩＰ＿１７２．１０．１０．１０”のポートが作成済みであった際を考える。この際に、ポート名のフォーマットを固定してしまうと、ＩＰアドレス“１７２．１０．１０．１０”を指定すると、新たにポート名“１７２．１０．１０．１０”のポートを作成してしまうことになる。つまり、同じ印刷先となるＩＰアドレスに対して、使用されないポートを含む２つのポートを作成してしまう。
従って、本発明は、上述した環境を考慮して、ＰＣへプリンタードライバーをインストールする際に、適切に論理プリンターを登録するための手法の提供を目的としている。
【課題を解決するための手段】
【００１０】
上述の課題を解決するために、本発明は、プリンターと情報処理装置を含む印刷システムであって、前記プリンターの記憶部において、前記情報処理装置にプリンタードライバーをインストールするためのセットアッププログラムを記憶しており、前記情報処理装置が、前記プリンターからセットアッププログラムを取得して、前記情報処理装置の記憶部に記憶する記憶手段と、前記記憶部に記憶されたセットアッププログラムを起動して、前記プリンターを制御するためのプリンタードライバーをインストールするに際して、前記情報処理装置で動作するＯＳの属性を特定する特定手段と、前記特定手段により特定されたＯＳの属性に応じて、インストールされるプリンタードライバーのために作成されるポートのポート名のフォーマットを決定する決定手段と、前記決定手段により決定されたフォーマットに従うポート名のポートを作成し、プリンタードライバーをインストールする制御手段と、前記制御手段により作成されるポートと、前記情報処理装置の既存のポートとのデータの送信先が一致するかを判定する判定手段と、を有し、前記判定手段により一致しないと判定された場合に、前記制御手段は作成されたポートが設定されたデバイスドライバーをインストールすることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＰＣへプリンタードライバーをインストールする際に、適切に論理プリンターを登録などいった設定処理を行うための手法を提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の印刷システムの構成の一例を示すブロック図である。
【図２】本発明の印刷システムの詳細な構成の一例を示すブロック図である。
【図３】本発明のデバイス選択画面の一例である。
【図４】本発明のドライバーアップロード画面の一例である。
【図５】本発明の一般者用ドライバーダウンロード画面の一例である。
【図６】本発明のシステム構成の例を示す図である。
【図７】本発明のデバイスの選択処理を説明するためのフローチャートである。
【図８】本発明のアップロード条件設定処理を説明するためのフローチャートである。
【図９】本発明のプリンタードライバーの取得処理を説明するためのフローチャートである。
【図１０】本発明のアップロード処理の基本フローである。
【図１１】本発明のセットアッププログラムの作成処理を説明するためのフローチャートである。
【図１２】本発明の監視処理を説明するためのフローチャートである。
【図１３】本発明のセットアッププログラムの更新処理を説明するためのフローチャートである。
【図１４】本発明のＷｅｂサーバー処理を説明するためのフローチャートである。
【図１５】本発明のインストーラを結合前後のセットアッププログラムの構成図。
【図１６】本発明のセットアッププログラム起動時に必要な情報ファイルの一例である。
【図１７】本発明のインストーラが必要な情報ファイルの一例である。
【図１８】実施例１における、セットアッププログラムに基づく処理を説明するためのフローチャートである。
【図１９】実施例１における、使用するポート名の判定処理を説明するためのフローチャートである。
【図２０】実施例１における、削除ドライバーの指定処理を説明するためのフローチャートである。
【図２１】実施例１における、実ドライバーの削除処理を説明するためのフローチャートである。
【図２２】本発明の削除ドライバーの指定画面の一例である。
【図２３】実施例２における、判定処理を説明するためのフローチャートである。
【図２４】本発明の、管理者用のドライバーダウンロード画面の一例である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するために最良の形態について図面を用いて説明する。
なお、本発明では特に断りの無い限り、「プリンタードライバー」とは、アプリケーションからの印刷指示に応じて、ＯＳから呼び出されて印刷データを生成するソフトウェアを意味する。また、「論理プリンター」とは、ＯＳのスプーラー上の印刷キューのことであり、ソフトウェアとしてのプリンターを意味する。「論理プリンター名」は論理プリンターを識別する名称である。「ポート」とは、論理プリンターが物理デバイスに印刷データを送付するネットワークポートあるいはローカルポートの総称を意味する。１つのポートには印刷データの送信先（例えば、ＩＰアドレス）が１つだけマッピングされているのが普通である。また、「ポート名」とはポートを識別する名称である。「インストーラ」とはプリンタードライバーをインストールするアプリケーションであり、インストールプログラムとインストール情報を記載した情報ファイルからなる。また、インストーラはプリンタードライバーのインストールと同時に論理プリンターの登録、ポートの作成も行うことができるものとする。
【００１４】
（実施例１）
本発明に係る一実施形態としてのシステムについて説明する。
図１は、本発明を適用可能な印刷システムの構成の一例を示すブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行されるのであれば、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００１５】
１０１〜１０４は、情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続されている。さらに、アプリケーションプログラム等の各種のプログラムを実行可能であり、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えている。
１０１は、管理装置としての情報処理装置であって、以下、他の情報処理装置と区別するため管理装置１０１と呼ぶ。管理装置１０１は、プリンター１０５に関する様々な情報を保持し、プリンターの印刷ログ、動作ログ等を集計して保持する機能を備えている。１０２〜１０４は、パーソナルクライアントコンピュータとしての情報処理装置であって、以下、他の情報処理装置と区別するため、クライアントと呼ぶ。
【００１６】
１０５はプリンターであり、図示省略したネットワークインターフェィスを介してネットワーク１０６に接続されている。さらに、クライアント１０２、１０３、１０４から送信される印刷データを含むジョブを解析して１ページずつイメージに変換して、１ページ毎に印刷する。また、プリンターは、電子写真方式を採用したレーザービームプリンター、インクジェット方式を採用したインクジェットプリンター、熱転写方式を利用したプリンター等の様々な方式のもののうち何れであってもよい。
【００１７】
図２において、２００は情報処理装置における処理を制御するＣＰＵである。ＣＰＵ２００は、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタードライバープログラム、ＯＳや制御プログラム等を実行する。さらに、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１８】
２０１は記憶手段であるＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶される。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブである。このＦＤドライブ２０３を介して、記憶媒体としてのフロッピー（登録商標）ディスク（ＦＤ）２０４に記憶されたプログラム等をクライアントである本コンピュータシステムにロードすることができる。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。ＦＤ２０４には、コンピュータによって読み取り可能なプログラムが格納されている。
【００１９】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタードライバープログラム、ＯＳ、制御プログラム、関連プログラム等が格納されている。さらにスプーラーがここに確保される。スプーラーは、クライアントにおいてはクライアントスプーラーと呼び、プリントサーバーではサーバスプーラーと呼ぶ。また、プリントサーバーでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２０】
２０６はユーザーの入力を受け付ける入力手段としてのキーボードである。２０７はディスプレイ（表示手段）であり、キーボード２０６から入力されたコマンドや、後述するアプリケーション等に関する表示を行うものである。２０８はシステムバスであり、クライアントであるコンピュータ内のデータの流れを司るものである。２０９はインターフェィスであり、該インターフェィス２０９を介してクライアントは外部装置とのデータのやり取りを行う。
【００２１】
次にプリンターの詳細構成を説明する。プリンター１０５は、詳細を後述するハードディスク（ＨＤ）２２８、接続部２２６、データ制御部（プリンターエンジン）２２５、操作部２２４、外部メモリ２２３、ＰＣＰＵ２２０、ＰＲＡＭ２２２、及びＰＲＯＭ２２１を主要な構成要素する。これらの構成要素がシステムバス２２７を介して互いに接続されている。
【００２２】
プリンターＣＰＵ（ＰＣＰＵ）２２０は、プリンター１０５の全体制御を司るものである。ＰＣＰＵ２２０は、後述するＰＲＯＭ２２１或いは外部メモリ２２３に記憶された制御プログラムに基づいて、接続部２２６で受信したプリンター制御コマンドより、画像信号をデータ制御部２２５に送信する。ＨＤ２２８は、大容量の記憶装置である。フォントデータや印刷データなどの保存先として利用される。またＨＤ２２８は図示しない外部装置としての記憶装置と置き換えが可能である。外部の記憶装置と置き換える場合は、プリンターは接続部２２６を介し、データの送受信を行う。ＰＲＡＭ２２２は、ＰＣＰＵ２２０の主メモリとして、ＰＣＰＵ２２０による制御実行時、ワークデータエリアとして使用される各種データの一時記憶領域を備えている。外部メモリ２２３は、オプションとしても接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ＰＲＯＭ２２１はプリンター内部メモリであり、外部メモリと同様に、各種データや本プリンターを制御するプリンター制御プログラム等を記憶している。データ制御部２２５はプリンターエンジンであり、ＰＣＰＵ２２０により制御され、ＰＲＯＭ２２１、或いは外部メモリ２２３に記憶された制御プログラムよりシステムバス２２７を介して出力された画像信号を受け、実際の印刷処理を行う。操作部２２４は、操作パネルや操作スイッチ等の入力部、及びＬＥＤ、液晶パネル等の表示部等から構成され、オペレータの操作を受け、結果を表示するものである。オペレータは操作部２２４を介して本実施の形態例プリンターの設定を指示や、確認することが可能である。２２６は接続部であり、前述の双方向インターフェィス２０９を介して情報処理装置の接続部２１０に接続し、印刷制御コマンドを受信や、プリンター内部の状態等を通知する事も可能である。
【００２３】
図３は、本実施例における管理装置１０１上で実行される管理アプリケーションにより提供される画面の一例を示している。管理アプリケーションは、ユーザー操作によりデバイスを管理下に追加登録することが出来る。図３で示すように、管理下のデバイスを、状態、ＩＰアドレス等の付属情報と共にリストで一覧表示することができる。なお、管理下となるデバイスとは、印刷機能を有するプリンター、スキャナ、ＦＡＸ機能やコピー機能を併せ持つ複合機等を含む。さらに、ユーザーによって一覧表示されたデバイスを選択し、「ドライバー登録」ボタンを押下されることで、図４に図示するアップロード条件の設定画面を開くことができる。また、ユーザーによって「ドライバー削除」ボタンを押下されると、図２２の削除ドライバーを指定する指定画面を表示する。
【００２４】
図４は、本実施例における管理装置１０１上で実行される管理アプリケーションにより提供されるアップロード条件の設定画面の一例である。この設定画面は、ユーザーによって「参照」ボタンを押下されることで、図示しないファイル選択ダイアログが表示する。ユーザーによってファイル選択ダイアログからインストーラの“ｓｅｔｕｐ．ｅｘｅ”ファイルが指定されることで、指定されたｓｅｔｕｐ．ｅｘｅや付随するファイルからインストーラのドライバー種類、バージョンを読み込む。読み込んだドライバー種類、バージョンはそれぞれ、設定画面のテキストエリア「ドライバー種類：」、「バージョン：」に反映される。さらに、インストーラが保持するドライバーモデルのリストから、図３で図示された管理アプリケーションで指定されたデバイスのモデル名を比較し、一致するものを「ドライバーモデル」コンボボックスに表示する。この画面で“ＯＫ”を押下することで、ファイル選択ダイアログで指定されたインストーラに、後述の表示名やアップロード番号等の設定を反映したものがセットアッププログラムとして構築される。そして、該プログラムがプリンターの記憶装置にアップロードされる。
【００２５】
さらに、「ドライバーモデル」コンボボックスに設定したドライバーモデル名を「表示名」テキストボックスの初期値として設定する。「表示名」テキストボックスはユーザーによって任意の文字列に編集可能である。「表示名」テキストボックスで指定された文字列は、ダウンロードを行うユーザーが目的ドライバーを認識しやすいように、後述のドライバーダウンロードページに表示される。
【００２６】
「アップロードＮｏ．」コンボボックスは、アップロードするセットアッププログラムを格納するアップロード番号の指定を、ユーザーに許可する。このアップロード番号は１から３を指定可能である。デバイスの記憶装置には、アップロード番号に対応した格納領域が予め確保されている。既にデバイスにセットアッププログラムが格納済みのアップロード番号を指定してアップロードを実行すると、既存のセットアッププログラムは無効化され、新規にアップロードされたセットアッププログラムが有効になる。
【００２７】
「コメント」テキストボックスでは、ユーザーに任意のコメントを入力させる。ここで指定された文字列は、ダウンロードを行うユーザーが目的ドライバーを認識しやすいように、後述のドライバーダウンロードページに表示される。さらに、クライアントに作成された論理プリンターのプロパティにコメントとして追加される。
【００２８】
「ポート」では、ユーザーに論理プリンターに接続するポートの種類を「ＩＰアドレス」、「ホスト名」、「ポート名を指定する」ラジオボタンから選択可能とする。さらに、ユーザーによって「ポート名を指定する」ラジオボタンを指定した場合は、「ポート名」テキストボックスが入力可能になり、ユーザーに任意のポート名の入力を許可する。
【００２９】
「ボックスパス」テキストボックスでは、ユーザーにセットアッププログラムをアップロードする記憶装置のパスを指定させる。「ユーザー名」テキストボックスでは、ユーザーに「ボックスパス」テキストボックスで指定されたパスへのアクセス権のあるユーザー名を指定させる。「パスワード」テキストボックスでは、ユーザーに「ボックスパス」テキストボックスで指定されたパスへのアクセス権のあるユーザーのパスワードを指定させる。
【００３０】
図２２は、管理アプリケーションにより提供される削除ドライバーを指定する指定画面の一例を示している。この画面上で、ユーザーによって、「アップロードＮｏ．」コンボボックスでアップロード番号の指定後、削除ボタン押下されると、デバイスの記憶装置に確保されたそのアップロード番号を用いてアップロードされたセットアッププログラムが削除される。
【００３１】
図５は、本実施例におけるプリンター１０５の備えるＷｅｂサーバーに対して、一般ユーザーがクライアント１０２のＷｅｂブラウザー６２０からアクセスしたときに、クライアント１０２の表示部に表示される一般ユーザー用ドライバーダウンロード画面の一例である。Ｗｅｂサーバー機能部６０５は、図示しないログイン画面をＷｅｂブラウザー６２０に表示し、ユーザーにユーザー名入力を受付ける。さらにＷｅｂサーバー機能部６０５は、Ｗｅｂサーバー機能部に予め設けられた権限判定手段により前述のログイン画面から取得したユーザー名を判断し、取得ユーザー名が一般ユーザーの場合は図５に図示する管理者用ダウンロード画面を表示する。このダウンロード画面は、デバイスにアップロードされたセットアッププログラムの一覧を、「Ｎｏ．」「表示名」、「ドライバー種類」、「バージョン」、「コメント」および「ダウンロード」ボタンと共に表示する。
【００３２】
「Ｎｏ．」は、図４の画面の「アップロードＮｏ．」で指定されたアップロード番号を表示する。「表示名」は、図４の画面の「表示名」で指定された文字列を表示する。「ドライバー種類」は、図４の画面の「ドライバー種類：」で設定した文字列を表示する。「コメント」は、図４の画面の「コメント」で指定された文字列を表示する。「バージョン」は、図４の画面の「バージョン：」で設定した文字列を表示する。
【００３３】
ここで、何れか行の「ダウンロード」ボタンをユーザーによって押下されると、図示しないダウンロードダイアログを表示し、セットアッププログラムのダウンロードを開始する。セットアッププログラムをダウンロードは、ユーザーによって前述のダウンロードダイアログに指定されたダウンロードディレクトリに行われる。
【００３４】
図２４は、本実施例におけるプリンター１０５の備えるＷｅｂサーバーに対して、管理者ユーザーがクライアント１０２のＷｅｂブラウザー６２０からアクセスしたときに、クライアント１０２の表示部に表示されるドライバーダウンロード画面の一例である。Ｗｅｂサーバー機能部６０５は、前述の権限判定手段により管理者ユーザーと判定した場合は図２４に図示するダウンロード画面を表示する。このダウンロード画面は、デバイスにアップロードされたセットアッププログラムの一覧を、「Ｎｏ．」「表示名」、「ドライバー種類」、「バージョン」、「パス」、「コメント」および「ダウンロード」ボタンと共に表示する。
【００３５】
「Ｎｏ．」、「表示名」、「ドライバー種類」、「バージョン」、「コメント」および「ダウンロード」ボタンは、図５に図示した一般ユーザー用ダウンロード画面と同等である。「パス」はセットアッププログラムが格納されたファイルパスを表示する。
【００３６】
ここで、何れか行の「削除」ボタンをユーザーによって押下されると、該当行のセットアッププログラムが削除される。
図６は、本実施例の印刷システムにおける主要なモジュール構成を示す図である。これらモジュールは、システム内の各装置においてＣＰＵがプログラムを実行することで実現される機能を提供するための論理的な構成になる。
【００３７】
プリンター１０５は、記憶部６０１、監視部６０３、プログラム更新部６０４、Ｗｅｂサーバー機能部６０５を持つ。
記憶部６０１は、管理装置１０１のアップロード部６１５からセットアッププログラムを受け取り、記憶装置に予め確保された格納領域に格納する。さらに、記憶部６０１は、管理装置１０１の削除部６１７から、削除要求として、格納済みのセットアッププログラムを識別する情報を受け取り、該当するセットアッププログラムを削除する。セットアッププログラム６０２は、インストーラと論理プリンター作成時に必要となる各種設定を含む実行プログラムである。監視部６０３は、プリンターの構成情報を監視し、変更が発生した場合はプログラム更新部６０４にセットアッププログラム６０２の更新を依頼する。構成情報とは、プリンターに設定された情報、例えばＩＰアドレス、ホスト名、機器名、設置場所情報などである。また、監視部６０３は、情報処理装置１０１からセットアッププログラムのアップロードや登録済みセットアッププログラムの削除指示を監視する。プログラム更新部６０４は、監視部６０３からの指示基づき、セットアッププログラム６０２の内部情報を書き換える。Ｗｅｂサーバー機能部６０５は、Ｗｅｂサーバーとして動作するもので、図５および図２４に図示するドライバーダウンロード画面を含む、各種Ｗｅｂページを提供するものである。
【００３８】
管理装置１０１は、ドライバー取得部６１１、選択部６１２、条件設定部６１３、作成部６１４、アップロード部６１５、ドライバー指定部６１６、削除部６１７からなる。
ドライバー取得部６１１は、アップロード条件の設定画面（図４）から起動され、インストーラを取り込む。選択部６１２は、管理アプリケーションが提供する画面（図３）を表示部２０７に表示する。条件設定部６１３は、設定画面（図４）を表示部２０７に表示する。作成部６１４は、ドライバー取得部６１１が取得したインストーラに、条件設定部６１３から論理プリンター登録に必要な設定情報を取得し、セットアッププログラムを作成する。アップロード部６１５は、セットアッププログラムを記憶部６０２に送信する。ドライバー指定部６１６は、図２２に図示する削除ドライバー指定画面を表示部２０７に表示する。削除部６１７は、ドライバー指定部６１６から削除するセットアッププログラムが格納されているアップロード番号を取得し、記憶部６０２から該当アップロード番号のセットアッププログラムを削除するための要求を行う。
【００３９】
クライアント１０２は、Ｗｅｂブラウザー６２０を持ち、ユーザーの指示によりプリンター１０５のＷｅｂサーバーにアクセスして、セットアッププログラム６０２のダウンロードなどを行う。
図７のフローチャートを用いて、選択部６１２が行う処理をについて説明する。本処理のためのプログラムは予め、管理装置１０１のＨＤ２０５にインストールされ、ＲＡＭ２０２に呼びだされ、ＣＰＵ２００によって実行されているものとする。また、図３で示す画面に登録されているデバイスは、全てプリンターとする。
【００４０】
Ｓ７０１で、選択部６１２はイベントが発生したか確認する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＭＳＤＮ  Ｌｉｂｒａｒｙ（登録商標）で開示されている方法では、マウスによるクリックやキーボード入力等の操作と、ウィンドウ内のボタンやリストボックス等の各リソースを一意に決定するＩＤが、イベントとして通知される。イベント発生しないと判断した場合は、Ｓ７０１を繰り返す。Ｓ７０１でイベントが発生したと判断したきは、Ｓ７０２で、選択部６１２はイベントがデバイスの選択が行われたかを判断する。すなわち、発生したイベントにおいて、図３に図示したデバイス選択画面のデバイスリストのレコードの示すＩＤと、左マウスボタン操作が含まれるときは、「デバイス選択」が行われたと判断する。Ｓ７０２でイベントがデバイス選択と判断したときは、Ｓ７０３で、選択部６１２は予めＲＡＭ２０２やＨＤ２０５等の記憶装置に確保しているワーク領域のデバイスのリストにレコードを追加する。デバイスのリストには、デバイスモデル名、ＩＰアドレス、シリアルナンバー等のプリンター固有の情報が含まれる。次に、Ｓ７０１に戻る。
【００４１】
Ｓ７０２でイベントがデバイス選択と判断しなかったときは、Ｓ７０４で、選択部６１２はイベントが「ドライバー登録」ボタン押下かを判断する。すなわち、イベントに図３に図示したデバイス選択画面の「ドライバー登録」ボタンを示すＩＤと、左マウスボタン操作が含まれるときは、「ドライバー登録」のボタン押下と判断する。Ｓ７０４でイベントが「ドライバー登録」のボタン押下と判断されたときは、Ｓ７０５で、選択部６１２はＳ７０３で作成したデバイスリストを条件設定部６１３に渡す。そして、デバイスリストを渡された条件設定部６１３は、後述のアップロード条件設定を行う。次にＳ７０６で、選択部６１２はデバイスリストと、ドライバー取得部６１１が取得したインストーラと、Ｓ７０５で設定したアップロード条件をアップロード部６１５に渡す。アップロード部６１５は、後述のアップロード処理を行う。次に、Ｓ７０１へ戻る。
【００４２】
Ｓ７０４でイベントが「ドライバー登録」ボタン押下と判断しなかったときは、Ｓ７０７で、選択部６１２はイベントが「ドライバー削除」のボタン押下かを判断する。すなわち、イベントに図３に図示したデバイス選択画面の「ドライバー削除」ボタンを示すＩＤと、左マウスボタン操作が含まれるときは、「ドライバー削除」ボタン押下と判断する。Ｓ７０７でイベントが「ドライバー削除」ボタン押下と判断したときはＳ７０８で、選択部６１２は後述の削除ドライバーの指定処理を行う。次にＳ７０９で、選択部６１２はＳ７０８で指定された削除ドライバーの情報を取得し、削除部６１７に渡す。削除部６１７は後述のドライバー削除処理を行う。次にＳ７０１へ戻る。
【００４３】
Ｓ７０７で「ドライバー削除」のボタン押下と判断しなかったときは、Ｓ７１０で、選択部６１２はイベントが「終了」か判断する。すなわち、イベントに図３に図示したデバイス選択画面の「終了」アイコンを示すＩＤと、左マウスボタン操作が含まれるときは、終了アイコン押下と判断し、「終了」と判断する。Ｓ７１０で「終了」と判断したときは、選択部６１２は所定の手続きに基づき、ＲＡＭ２０２やＨＤ２０５等の記憶装置に確保しているワーク領域を開放し、終了処理を行う。Ｓ７１０で「終了」と判断しなかったときは、他の操作が行われものとして、Ｓ７０１へ戻る。ここでは、この他の操作に関しては説明を省略する。
【００４４】
図８を用いて、図７のＳ７０５のアップロード条件の設定処理を説明する。本設定処理では、図４に図示するような設定画面を表示部に表示する。
Ｓ８０１で、条件設定部６１３はイベントが発生したか確認する。Ｓ８０１でイベントが発生していないと判断された場合は、Ｓ８０２で、条件設定部６１３は設定が完了したか判断する。すなわち、図４に図示したアップロード条件の設定画面を検索し、全項目に値が設定済の場合は設定が完了したと判断する。Ｓ８０２で設定完了と判断された場合は、Ｓ８０３で、条件設定部６１３は図４に図示した設定画面の「ＯＫ」ボタンを有効化する。次にＳ８０１へ戻る。Ｓ８０２で設定完了と判断されなかった場合は、Ｓ８０４で、条件設定部６１３は図４に図示した設定画面の「ＯＫ」ボタンを無効化する。次にＳ８０１へ戻る。
【００４５】
Ｓ８０１でイベントが発生したと判断されたときはＳ８０５で、条件設定部６１３はイベントがファイルパスの設定か判断する。すなわち、イベントに図４に図示した設定画面の「参照」ボタンを示すＩＤと、左マウスボタン操作が含まれるときは、「ファイルパスの設定」と判断し、Ｓ８０６に進む。Ｓ８０６で、条件設定部６１３はドライバー取得部６１１を呼び出す。ドライバー取得部６１１は後述のプリンタードライバー取得処理を行う。次にＳ８０１に戻る。
【００４６】
Ｓ８０５でファイルパスの設定と判断しなかったときはＳ８０７で、条件設定部６１３は「ＯＫ」ボタン押下か判断する。すなわち、イベントに図４に図示した設定画面の「ＯＫ」ボタンを示すＩＤと、左マウスボタン操作が含まれるときは、「ＯＫ」ボタンを押下されたと判断する。Ｓ８０７で「ＯＫ」のボタン押下と判断されなかったときは、Ｓ８０１へ戻る。Ｓ８０７で「ＯＫ」のボタン押下と判断されたときは、設定画面上で設定されたアップロード条件を選択部６１２に返して、設定処理を終了する。
【００４７】
図９を用いて、Ｓ８０６のプリンタードライバーの取得処理を説明する。
Ｓ９０１で、ドライバー取得部６１１はドライバー情報ファイルを読み込む。ＣＰＵ２００を用い、ユーザーによって図示しないファイル選択ダイアログから指定された“ｓｅｔｕｐ．ｅｘｅ”のパス情報を取得し、同パス以下からドライバー情報ファイル（ｓｅｔｕｐ．ｉｎｆ）を検索する。ドライバー情報ファイルが見つかったら、所定のフォーマットに従いファイルを検索し、バージョン情報及びドライバー種類を読み出し、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存する。
【００４８】
次にＳ９０２で、ドライバー取得部６１１は、Ｓ９０１で取得したバージョン情報、及びドライバーの種類を、表示部に表示しているアップロード条件の設定画面（図４）の「バージョン情報：」「ドライバー種類：」テキストエリアに書き込む。次にＳ９０３で、ドライバー取得部６１１は、ドライバーモデル名を設定する。ドライバー情報ファイルを検索し、デバイスに相応しいドライバーモデル名を検索する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＭＳＤＮ  Ｌｉｂｒａｒｙ（登録商標）で開示されている方法では、ＩＮＦファイルのモデルセクションに、ドライバーモデル名とハードウェアＩＤを１つのエントリーとして記載する方法が開示されている。その記載に従い、Ｓ９０１で見つけたドライバー情報ファイルから、デバイスの持つハードウェアＩＤと同一の記載を全検索する。見つけたドライバーモデル名を、表示部に表示しているアップロード条件の設定画面（図４）の「ドライバーモデル名」コンボボックスにおけるリストのエントリーに登録する。画面上ではリストの先頭候補となるドライバーモデル名が選択状態に設定される。ドライバーモデル名が見つからないときは、ドライバー情報ファイルに記載されている全てのドライバーモデル名を「ドライバーモデル名」コンボボックスにおけるリストのエントリーに登録する。この場合、初期状態ではどのドライバーモデルも選択されていない状態で設定画面に表示される。なお、本ステップで用いるドライバーモデル名は、図３の管理アプリケーションが表示しているデバイスリストから選択された先頭のデバイス用のドライバーモデル名とする。次にＳ９０４で、ドライバー取得部６１１はＳ９０３で設定された「ドライバーモデル名」コンボボックスの情報を表示名テキストボックスに設定し、本処理を終了する。
【００４９】
図１０を用いて、Ｓ７０６のセットアッププログラムのアップロード処理を説明する。アップロード対象とするデバイスのリストおよびアップロードに必要とする情報は、選択部６１２からアップロード部に渡され、ＲＡＭ２０２等の記憶領域に確保したワーク領域に保持しているものとする。
Ｓ１００１で、アップロード部６１５は作成部６１４を呼び出し、必要な情報およびアップロード対象のインストーラを渡す。作成部６１４は後述のセットアッププログラム作成処理を行う。
【００５０】
次にＳ１００２で、アップロード部６１５はモデル名が一致しているか判断する。すなわち、アップロード部６１５はＲＡＭ２０２等の記憶領域に確保したワーク領域に保持されたデバイスリストから１レコードを取り出す。次に、取り出したレコード中のデバイスのモデル名と後述の作成部６１４が作成したセットアッププログラムのドライバーのモデル名を比較する。比較の結果が一致しているときは、モデル名が一致していると判断する。例えば、デバイスのモデル名が“Ｃ＿ｉＲ−ＡＤＶ  Ｃ５０５１”のとき、ドライバーのモデル名“Ｃ＿ｉＲ−ＡＤＶ  Ｃ５０５１／５０４１”のようにデバイスモデル名を含む場合は、ドライバーモデル名が一致していると判断する。
【００５１】
Ｓ１００２でモデル名が一致していると判断されたときは、Ｓ１００３で、アップロード部６１５はセットアッププログラムを送信する。すなわち、アップロード部６１５は、後述の作成部が作成したセットアッププログラムを、アップロード条件の設定画面（図４）の設定値に従い、プリンターの記憶部６０１に配置する。
【００５２】
次にＳ１００４で、アップロード部６１５はプリンター１０５にアップロードを通知する。すなわち、アップロード部６１５は所定の手続きに基づき、予め用意された通信手段を用いて、プリンター１０５にアップロード番号、パス、ファイル名、および、プリンターが保持するダウンロードページの作成に必要な情報を通知する。
【００５３】
次にＳ１００５で、アップロード部６１５は全デバイスへの処理が終了したか判断する。すなわち、アップロード部６１５はＲＡＭ２０２等の記憶領域に確保したワーク領域に保存されているデバイスのリストを検索し、未処理のレコードが存在しない場合は全デバイスへの処理が終了したと判断する。Ｓ１００５で全デバイスへの処理が終了したと判断されたときはアップロード処理を終了する。Ｓ１００５で全デバイスへの処理が終了したと判断されなかったときはＳ１００２へ戻り、他のデバイスに関する同様の処理を行う。また、Ｓ１００２でモデル名が一致していると判断されなかったときは、Ｓ１００５へ進む。
【００５４】
図１１、図１５〜１７を用いて、Ｓ１００１のセットアッププログラムの作成処理を、説明する。なお、セットアッププログラム作成に必要な情報、および、インストーラは、アップロード部６１５から適宜渡されているものとする。
Ｓ１１０１で、作成部６１４は、一時フォルダを作成する。例えば、ＯＳが提供している機能を利用し、ＲＡＭ２０２、ＨＤ２０５等の記憶領域に確保されているワーク領域にフォルダを作成する。
【００５５】
次にＳ１１０２で、作成部６１４はＳ１１０１で作成した一時フォルダに、図１５（ａ）に示す初期セットアッププログラムを作成する。初期セットアッププログラムはヘッダー部と、プログラム部から構成される。
【００５６】
ヘッダー部には、プログラム部の動作を決定するための様々なパラメータが格納されている。一例として以下のようなものが含まれている。
・Ｏｆｆｓｅｔ＿ｔｏ＿ｅｎｔｒｙ：結合ファイルの情報を格納している領域を格納している先頭からのオフセット
・Ｓｉｚｅ＿ｏｆ＿ａｌｌ＿ｅｎｔｒｙ：結合ファイルの情報を格納している領域の合計サイズ
・ｓｉｚｅ＿ｏｆ＿ｆｉｌｅ＿ｅｎｔｒｙ：結合ファイルの情報を格納している領域のサイズ
・ｎｕｍ＿ｏｆ＿ｅｎｔｒｙ：結合ファイルの情報を格納している領域の総数
初期セットアッププログラムでは、結合されているファイルがないので、上記のパラメータは０にセットされている。プログラム部には、ヘッダーを参照し結合ファイルの位置を特定し、結合されているインストーラを分離し、インストーラを起動するためのプログラムが格納されている。
【００５７】
次にＳ１１０３で、作成部６１４はＳ１１０１で作成した一時フォルダに図１６（ａ）、図１７（ａ）に図示する情報ファイルを作成する。図１６（ａ）はセットアッププログラム起動時に必要な情報、および、後述のダウンロードページ作成に必要な情報を記載したファイルで、ファイル名は“ｓｅｔｕｐ．ｉｎｉ”とする。“ｓｅｔｕｐ．ｉｎｉ”ファイルには、［ＤｒｉｖｅｒＵｐｌｏａｄＩｎｆｏ］セクションを持ち、以下の設定が可能である。
・ＤｒｉｖｅｒＭｏｄｅｌＮａｍｅ：ドライバーモデル名
・ＰｒｉｎｔｅｒＮａｍｅ：ＰＣにインストールする論理プリンター名
・Ｃｏｍｍｅｎｔｓ：ＰＣにインストールした論理プリンターに設定するコメント
・ＰｏｒｔＴｙｐｅ：ポートの種類（１：ＩＰアドレス、２：ホスト名、３：ポート名）
・ＰｏｒｔＮａｍｅ：ポート名（ＰｏｒｔＴｙｐｅ＝３のときのみ有効）
図１６（ａ）の例では、ドライバーモデルは“Ｃ＿ｉＲ−ＡＤＶ  Ｃ５０４５／５０５１”、論理プリンター名は、“Ｃ＿ｉＲ−ＡＤＶ  Ｃ５０５１”、コメントは“３Ｆ  ｓｈａｒｅ  ｐｒｉｎｔｅｒ”、ポートの種類は“１”でＩＰアドレスを意味している。
【００５８】
図１７（ａ）は結合されたセットアッププログラムから分離されたインストーラが必要な情報を記載したファイルであり、ファイル名は“ｓｉｌｅｎｔ．ｉｎｉ”である。“ｓｉｌｅｎｔ．ｉｎｉ”ファイルは、［ＩｎｓｔａｌｌＣｏｍｐｌｅｔｅ］、［ＳｅｌｅｃｔＪｏｂ］、及び［ＰｒｉｎｔｅｒＩｎｆｏ］のセクションを持ち、以下の設定が可能である。
・Ｒｅｂｏｏｔ：インストール終了後にＰＣのリブートを制御するフラグ（０：リブートなし、１：リブート）
・ＳｅｌｅｃｔＪｏｂ：プリンタードライバーのインストールモード（０：新規インストール、１：上書きインストール、２：インストールしない）
・ＰＲＴ１：論理プリンター名／ドライバーモデル／接続ボートを指定する。
【００５９】
図１７（ａ）の例では、リブートなし、上書きインストールを指定している。論理プリンター名、ドライバーモデル、接続ポートは初期状態では未設定である。これら未設定項目は後述のセットアッププログラム更新処理で設定する。
【００６０】
次にＳ１１０４で、作成部６１４はＳ１１０２で作成した初期セットアッププログラムに、Ｓ１１０３で作成した情報ファイルと、Ｓ８０６で取得したインストーラを結合する。
【００６１】
次にＳ１１０５で、作成部６１４はＳ１１０４で作成したセットアッププログラムのヘッダーを書き換え、図１５（ｂ）に図示するセットアッププログラムを作成する。ヘッダー部の“Ｏｆｆｓｅｔ＿ｔｏ＿ｅｎｔｒｙ”には結合ファイルの情報を格納している領域のセットアッププログラム先頭からのオフセット“４０９６”を設定する。ヘッダー部の“Ｓｉｚｅ＿ｏｆ＿ａｌｌ＿ｅｎｔｒｙ”には、結合ファイルの情報を格納している領域の合計サイズ“１５３６”を設定する。ヘッダー部の“ｓｉｚｅ＿ｏｆ＿ｆｉｌｅ＿ｅｎｔｒｙ”には、結合ファイルの情報を格納している領域のサイズ“５１２”を設定する。ヘッダー部の“ｎｕｍ＿ｏｆ＿ｅｎｔｒｙ”には、結合ファイルの情報を格納している領域の総数“３”を設定する。
【００６２】
さらに、結合ファイルの情報を格納する３つ領域を“Ｏｆｆｓｅｔ＿ｔｏ＿ｅｎｔｒｙ”で指定される領域に確保する。３つの領域に結合したファイルの情報を格納する。先頭から、Ｓ１１０３で作成した“ｓｅｔｕｐ．ｉｎｉ”ファイル、ドライバー取得部６１１が取得し、アップロード部６１５から渡されたインストーラ、Ｓ１１０３で作成した“ｓｉｌｅｎｔ．ｉｎｉ”ファイルである。それぞれの領域に各ファイルの以下の情報をセットする。
・ＯＦＦＳＥＴ：結合されたファイルが位置するセットアッププログラム先頭からのオフセット
・Ｓｉｚｅ：結合されたファイルのサイズ
・Ｔｙｐｅ：結合されたファイルのタイプ（１：実行ファイル、２：テンポラリファイル、３：情報ファイル、４：その他）
・ＦＩＬＥＮＡＭＥ：結合されたファイル名
作成部６１４は、セットアッププログラムのヘッダー書き換えが終了したら、セットアッププログラムの作成処理を終了する。
【００６３】
図１２を用いて、プリンター１０５の監視部６０３が行う処理を説明する。監視部６０３はプリンター１０５の稼動と共に起動され、プリンター１０５が稼動終了するまで起動するものとする。
【００６４】
Ｓ１２０１で、監視部６０３は管理装置１０１からのセットアッププログラムのアップロード通知があるか判断する。すなわち、所定の手続きに基づき双方向インターフェース２０９を介し、接続部２２６を通り受信するパケットを検索し、所定フォーマットのアップロード通知を見つけたときは、アップロード通知があったと判断する。Ｓ１２０１でアップロード通知があったと判断された場合はＳ１２０２で、監視部６０３はプログラム更新部６０４を呼び出す。同時に、監視部６０３は、アップロード通知により得たアップロード番号、パス、ファイル名、およびダウンロードページの作成に必要な情報に加え、後述の構成情報、登録指示をプログラム更新部６０４に渡す。そして、プログラム更新部６０４は後述のセットアッププログラムの更新処理を行う。次にＳ１２０３で、監視部６０３はアップロード結果通知を行う。監視部６０３は、所定の方法に基づき、接続部２２６を介し、所定のフォーマットで作成したアップロード結果通知を、Ｓ１２０１でアップロード通知の送信元（管理装置）に送付する。次にＳ１２０１に戻る。
【００６５】
Ｓ１２０１でアップロード通知があったと判断されなかったときはＳ１２０４で、監視部６０３は構成情報に変化があったか判断する。すなわち、監視部６０３は、ＰＲＡＭ２２２等の記憶装置の特定領域に保持されている構成情報を順次読み出し、前回判定時と比べて変化があったときは構成情報に変更があったと判断する。構成情報に変更があった場合は、次回判定時の比較対象のために、ＰＲＡＭ２２２等の記憶装置の予め用意されているワーク領域に構成情報を保存する。構成情報とは、管理者が変更可能なＩＰアドレス、機器名などを例とする。
【００６６】
Ｓ１２０４で構成情報に変化があったと判断したときはＳ１２０５で、監視部６０３はセットアッププログラムがアップロードされているかを判断する。ここでは、監視部６０３は、セットアッププログラムの管理装置からのアップロードがあった場合にその旨が管理情報として書き込まれるＨＤ２２８等の記憶装置に予め用意された領域から、その管理情報を読み出す。読み出した結果、セットアッププログラムの情報が１つ以上存在する場合は、セットアッププログラムが管理装置からアップロードされていると判断する。Ｓ１２０５でアップロードされたセットアッププログラムが存在しないと判断されたときはＳ１２０１に進む。
【００６７】
Ｓ１２０５でセットアッププログラムがアップロード済であったと判断されたときはＳ１２０６で、監視部６０３はプログラム更新部６０４を呼び出す。同時に、監視部６０３は前述のセットアッププログラムの管理情報から、まだ更新処理をしていいないセットアッププログラムの情報を１件読み出す。そして、読み出したアップロード番号、パス、ファイル名、およびダウンロードページの作成等に必要な情報に加え、更新指示とＳ１２０４で取得した構成情報をプログラム更新部６０４に渡す。そして、プログラム更新部６０４は後述のセットアッププログラムの更新処理を行う。
【００６８】
次にＳ１２０７で、監視部６０３は管理装置からアップロードされたすべてのセットアッププログラムの更新処理が終了したかを判断する。すなわち、監視部６０３は前述のセットアッププログラムの管理情報を検索し、更新が行われていないセットアッププログラムが存在しないときは、すべてのセットアッププログラムの更新処理が終了したと判断する。Ｓ１２０７で更新処理が終了したと判断されなかったときはＳ１２０６に戻る。Ｓ１２０７で更新処理が終了したと判断されたときはＳ１２０１に戻る。
【００６９】
Ｓ１２０４で構成情報に変化があったと判断しなかったときはＳ１２０８で、監視部６０３は削除通知があったか判断する。すなわち、所定の手続きに基づき双方向インターフェース２０９を介し、接続部２２６を通り受信するパケットを検索し、所定フォーマットの削除通知を見つけたときは、管理装置１０１からの削除通知があったと判断する。また、所定の手続きに基づき、Ｗｅｂサーバー機能部６０５からの通知を検索し、削除通知があったときは、Ｗｅｂサーバー機能部６０５から削除通知があったと判断する。
【００７０】
Ｓ１２０８で削除通知があったと判断された場合は、Ｓ１２０９で、監視部６０３はプログラム更新部６０４を呼び出す。同時に、監視部６０３は、削除通知により得たアップロード番号および削除指示をプログラム更新部６０４に渡す。そして、プログラム更新部６０４は後述のセットアッププログラムの更新処理を行う。次にＳ１２１０で、監視部６０３は削除結果通知を行う。監視部６０３は、所定の方法に基づき、接続部２２６を介し、所定のフォーマットで作成した削除結果通知を、Ｓ１２０８で判断された削除通知の送信元（管理装置）に送付する。次にＳ１２０１に戻る。Ｓ１２０８で削除通知があったと判断されなかったときもＳ１２０１に戻る。
【００７１】
図１３を用いて、プリンター１０５のプログラム更新部６０４によるセットアッププログラムの更新処理を説明する。監視部６０３からの（更新または削除を示す）指示、アップロード番号、パス、ファイル名、及びダウンロードページの作成に必要な情報などといった更新処理に用いる情報は、ＰＲＡＭ２２２等に確保されたワークエリアに保存されているものとする。以下、本処理ではこのワークエリアに保存されている情報に応じた処理について説明する。
【００７２】
Ｓ１３０１で、プログラム更新部６０４は削除指示か判断する。すなわち、監視部６０３から渡されワークエリアの情報を検索し、削除指示が含まれていれば、削除指示があったと判断する。Ｓ１３０１で削除指示と判断したときは、Ｓ１３０２で、プログラム更新部６０４は削除指示で指定されたアップロード番号にセットアッププログラムがアップロードされているか判断する。すなわち、プログラム更新部６０４は、ワークエリアの情報を検索し、アップロード番号を取り出す。次にＨＤ２２８等の記憶装置に配置されたセットアッププログラム格納領域に、取り出したアップロード番号に該当するセットアッププログラムが存在する場合は、アップロード済みと判断する。Ｓ１３０２でアップロード済みと判断されたときは、Ｓ１３０３で、プログラム更新部６０４はＨＤ２２８等の記憶装置に配置されたセットアッププログラム格納領域の該当セットアッププログラムを消去する。次にＳ１３０７へ進む。Ｓ１３０２でアップロード済みと判断されなかったときはＳ１３０１へ戻る。
【００７３】
Ｓ１３０１で削除指示と判断されなかったときは、Ｓ１３０４で、プログラム更新部６０４はＨＤ２２８等の記憶装置に配置された該当のセットアッププログラムを、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアにコピーする。
【００７４】
次にＳ１３０５で、プログラム更新部６０４はＳ１３０４でコピーしたセットアッププログラムに、監視部６０３から渡された構成情報を反映させる。例えば、ポートが“ＩＰ＿１７２．１０．１０．１０”、機器名が「Ｃｏｌｏｒ  Ｐｒｉｎｔｅｒ」といった情報を反映させる場合を想定する。この場合は、Ｓ１３０４でコピーしたセットアッププログラムに連結された“ｓｅｔｕｐ．ｉｎｉ”ファイル、“ｓｉｌｅｎｔ．ｉｎｉ”ファイルをそれぞれ更新し、保存する。図１６（ｂ）、図１７（ｂ）が更新されたファイルを示しており、機器名などが変更されていることがわかる。次にＳ１３０６で、プログラム更新部６０４はＳ１３０５で更新したセットアッププログラムを、Ｓ１３０４でコピーした元のファイルに上書き保存する。
【００７５】
Ｓ１３０７で、プログラム更新部６０４は、ダウンロード情報をページに書き込む。ダウンロード情報をクライアント１０２のＷｅｂブラウザー６０２から読み込むと、ログインユーザによって図５または図２４に示す図を表示する。その後、ワークエリアを開放し、セットアッププログラム更新処理を終了する。なお、この際に更新完了、または削除完了など、本処理の結果を外部通知などするために監視部６０３に渡す。
【００７６】
図１４を用いて、プリンター１０５のＷｅｂサーバー機能部６０５による処理を説明する。
Ｓ１４０１で、Ｗｅｂサーバー機能部６０５はユーザーによってリロードを指示されたか判断する。すなわち、Ｗｅｂサーバー機能部６０５は、接続部２２６を介し受信したパケットを検索し、Ｗｅｂブラウザーなどからのリロードのリクエストがあるか判断する。リロードのリクエストが見つかったときは、リロードを指示されたと判断する。Ｓ１４０１でリロード指示された判断された場合は、Ｓ１４０２で、Ｗｅｂサーバー機能部はページを再構築し、所定の手続きに基づき、Ｗｅｂブラウザー６２０に再構築したページを送出する。
【００７７】
Ｓ１４０１でリロード指示されたと判断されなかった場合は、Ｓ１４０３で、Ｗｅｂサーバー機能部６０５はユーザーによってダウンロードを指示されたか判断する。すなわち、Ｗｅｂサーバー機能部６０５は、接続部２２６を介し受信したパケットを検索し、ダウンロードのリクエストがあるか判断する。ダウンロードのリクエストが見つかったときは、ダウンロードを指示されたと判断する。Ｓ１４０３でダウンロード指示があったと判断された場合は、Ｓ１４０４で、Ｗｅｂサーバー機能部６０５はダウンロードリクエストに指定されたセットアッププログラムをＨＤ２２８等の記憶装置から取り出す。次にＳ１４０５で、Ｗｅｂサーバー機能部はＳ１４０３で取り出したセットアッププログラムをダウンロード指示したクライアント１０２に対して送信する。Ｓ１４０３でダウンロードの指示があったと判断されなかった場合は、Ｓ１４０６で、Ｗｅｂサーバー機能部６０５は、ユーザーによって削除を指示されたか判断する。すなわち、Ｗｅｂサーバー機能部６０５は、接続部２２６を介し受信したパケットを検索し、削除のリクエストがあるか判断する。削除のリクエストが見つかったときは、削除を指示されたと判断する。Ｓ１４０６で削除指示があったと判断された場合は、Ｓ１４０７でＷｅｂサーバー機能部６０５は、所定の手続きに基づき監視部６０３に削除通知を行う。Ｓ１４０６でダウンロードの指示があったと判断されなかった場合はＳ１４０１へ戻る。
【００７８】
図１８を用いて、セットアッププログラム６０２の実行により実現されるセットアップモジュールにより行われる処理について説明する。セットアッププログラム６０２は、ユーザーによってクライアント１０２へダウンロードされ、実行指示されることで起動される。起動されると、ＲＡＭ２０２等の記憶装置に確保されたプログラム領域にロードされＣＰＵ２００によって実行される。
【００７９】
Ｓ１８０１で、セットアップモジュールは一時フォルダを作成する。例えば、ＯＳが提供している機能を利用し、ＲＡＭ２０２、ＨＤ２０５等の記憶領域に確保されているワーク領域にフォルダを作成する。次にＳ１８０２で、セットアップモジュールはＳ１８０１でフォルダ作成が成功したか判断する。Ｓ１８０２でフォルダ作成が失敗したと判断されたときは、Ｓ１８１１に進み、エラーを表示する。Ｓ１８０２でフォルダ作成が成功したと判断されたときは、Ｓ１８０３で、セットアップモジュールは結合されているファイルを分離する。すなわち、図１５（ｂ）に図示する“ｓｉｌｅｎｔ．ｉｎｉ”ファイル、“ｓｅｔｕｐ．ｅｘｅ”ファイル、“ｓｅｔｕｐ．ｉｎｉ”ファイルを、Ｓ１８０１で作成した一時フォルダに作成する。次にＳ１８０４で、セットアップモジュールはＳ１８０３のファイル分離処理が成功したか判断する。例えば、一時フォルダが書き込み禁止になっていた等の理由でファイル分離処理に失敗したと判断した場合は、Ｓ１８１１に進み、エラーを表示する。
【００８０】
Ｓ１８０４でファイル分離処理が成功したと判断されたときはＳ１８０５で、セットアップモジュールは、分離した情報ファイルからポート名を取得取り出す。すなわち、“ｓｉｌｉｅｎｔ．ｉｎｉ”のＰＲＴ欄に記載のポート名を取り出し、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存する。
【００８１】
次に、Ｓ１８０６で、セットアップモジュールは、後述の使用ポート名判定処理を行う。
次に、Ｓ１８０７で、セットアップモジュールはＳ１８０３で分離した“ｓｉｌｅｎｔ．ｉｎｉ”ファイルを更新する。例えば、Ｓ１８０６で“ｓｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名以外のポートを使用する判定をしたときは、“ｓｉｌｅｎｔ．ｉｎｉ”ファイルのＰＲＴ欄に記載のポート名を、Ｓ１８０６で得られたポート名に変更する。また、図示しない処理でインストール後にＰＣ再起動が必要になることが分かったときは、［ＩｎｓｔａｌｌＣｏｍｐｌｅｔｅ］セクションを“Ｒｅｂｏｏｔ＝１”に書き換える。次にＳ１８０８で、セットアップモジュールはインストーラを起動する。すなわち、Ｓ１８０３で分離したインストーラに、例えば以下のコマンドによって“ｓｉｌｅｎｔ．ｉｎｉ”ファイルを渡し、起動する。
『ｓｅｔｕｐ．ｅｘｅ／ｓ  ｓｉｌｅｎｔ．ｉｎ／ｌｏｇ  ｓｉｌｅｎｔ．ｌｏｇ』
上記コマンドは、情報ファイルとして“ｓｉｌｅｎｔ．ｉｎｉ”ファイルを指定し、結果格納ファイルとして“ｓｉｌｅｎｔ．ｌｏｇ”ファイルを指定している。インストーラは、“ｓｉｌｅｎｔ．ｉｎｉ”ファイルの指示を読み、“ｓｉｌｅｎｔ．ｉｎｉ”に記載がない項目はデフォルト動作をし、その結果を“ｓｉｌｅｎｔ．ｌｏｇ”に記載する。
【００８２】
次にＳ１８０９で、セットアップモジュールはＳ１８０８で起動したインストーラの処理が完了したか判断する。例えば、インストーラの戻り値が“０”のときは完了、“０”以外はエラーで終了したと判断する。Ｓ１８０９でインストーラの処理が完了したと判断したときは、Ｓ１８１２で、セットアップモジュールは論理プリンターのプロパティを設定する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）
に用意されているＷｉｎ３２関数ＳｅｔＰｒｉｎｔｅｒ（）を用いる。この関数のＰＲＩＮＴＴＥＲ＿ＩＮＦＯ＿２構造体のメンバー“ｐＣｏｍｍｅｎｔ”にＳ１８０３で分離した“ｓｅｔｕｐ．ｉｎｉ”ファイルに記載の“Ｃｏｍｍｅｎｔｓ”を指定する。
【００８３】
Ｓ１８０９で、インストーラの処理が完了したと判断されなかったときは、Ｓ１８１０で、セットアップモジュールはインストーラが作成した“ｓｉｌｅｎｔ．ｌｏｇ”からエラー内容を取り出す。次に、Ｓ１８１１に進む。Ｓ１８１１で、セットアップモジュールはＳ１８１０で取り出したエラー内容や、ＯＳから取得できるエラー情報からから適宜エラーメッセージを作成し、表示部２０７にそのエラーメッセージを表示して処理を終了する。
【００８４】
図１９を用いて、図１８のＳ１８０６の使用ポート名の判定処理について説明する。ここで、Ｓ１８０４で分離した“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名はＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されているものとする。
【００８５】
なお、前述されたようにクライアントのＯＳに標準搭載されている標準ＴＣＰ／ＩＰポートでは、インストール時に該ＯＳのバージョンによって自動で作成されるポート名が異なる。例えば、印刷実行するデバイスのＩＰアドレスとして“１７２．１０．１０．１０”を指定した場合を想定する。この際に、第１のＯＳでは、標準ＴＣＰ／ＩＰポートとして、ポート名に“ＩＰ＿１７２．１０．１０．１０”を設定し、ポート作成を行う。一方で、第２のＯＳでは、同ポートを作成するとポート名が“１７２．１０．１０．１０”となる。ここで、第１のＯＳの具体例としては、Ｗｉｎｄｏｗｓ（登録商標）  ＸＰが挙げられ、第２のＯＳの具体例としては、Ｗｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａが挙げられる。以下では、第１のＯＳと第２のＯＳにおける、これらの動作を考慮したセットアップモジュールの処理に関して説明を行うことになる。
【００８６】
Ｓ１９０１で、セットアップモジュールは、クライアント上で動作するＯＳの属性（種別やバージョン）の判定を行う。ここでは第２のＯＳであるか否かの判断を行っている。例えば、ＯＳがＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａであるか否かを判断する場合には、標準搭載のＷｉｎ３２関数ＧｅｔＯＳＶｅｒｓｉｏｎ（）によりＯＳの情報を取得することで判断を行う。Ｓ１９０１でＯＳが第２のＯＳと判断されたときは、Ｓ１９０２で、セットアップモジュールはポート名を第２のＯＳ用のフォーマットに整形する。例えば、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されているポート名が“ＩＰ＿１７２．１０．１０．１０”の場合は、“１７２．１０．１０．１０”に変更する。次にＳ１９０４に進む。
【００８７】
Ｓ１９０１でＯＳが第２のＯＳと判断されなかったときは、Ｓ１９０３で、セットアップモジュールはポート名を第１のＯＳ用のフォーマットに整形する。例えば、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されているポート名が“ＩＰ＿１７２．１０．１０．１０”の場合は変更を行う必要は無く、そのまま用いることになる。次にＳ１９０４に進む。
【００８８】
Ｓ１９０４で、セットアップモジュールは、Ｓ１９０２または、Ｓ１９０３で整形したポート名が、セットアッププログラムを起動しているＰＣ上に既に存在するか判断する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＰｏｒｔｓ（）等で、ＰＣに登録済のポートおよびポート情報の一覧を取得する。ここで取得したポートの一覧からポート名を検索し、Ｓ１９０２またはＳ１９０３で整形したポート名と同名のポートが存在するかを判断する。Ｓ１９０４で整形したポート名が既に存在すると判断されなかったときは、Ｓ１９０５で、セットアップモジュールは、ＯＳに標準で用意されている手法に従い、前述の整形したポート名を用いてポート作成を行う。Ｓ１９０４で、整形したポート名が既に存在すると判断されたときは、本判定処理を終了する。
【００８９】
ここで、Ｓ１９０２またはＳ１９０３で整形されたポート名が、セットアップモジュールがＳ１８０７で“ｓｉｌｅｎｔ．ｉｎｉ”ファイルの更新で用いるポート名となる。
【００９０】
図２０を用いて、図７のＳ７０８における、削除ドライバーの指定処理について説明する。削除ドライバー指定処理は、表示部に表示される削除ドライバー指定画面（図２２）への入力などに従う処理になる。
【００９１】
Ｓ２００１で、ドライバー指定部６１６はイベントが発生したか確認する。Ｓ２００１でイベントが発生したと判断されなかった場合は、Ｓ２００２で、ドライバー指定部６１６はユーザーによる削除するドライバーの指定が完了したか判断する。すなわち、指定画面（図２２）を検索し、「アップロードＮｏ．」コンボボックスが空欄でない場合は、削除するドライバーの指定が完了したと判断する。Ｓ２００２で削除するドライバーの指定が完了と判断した場合は、Ｓ２００３で、ドライバー指定部６１６は指定画面（図２２）の「削除」ボタンを有効化する。次にＳ２００１へ戻る。Ｓ２００２で削除するドライバーの指定が完了したと判断されなかったときは、Ｓ２００４で、ドライバー指定部６１６は指定画面（図２２）の「削除」ボタンを無効化する。次にＳ２００１へ戻る。
【００９２】
Ｓ２００１でイベントが発生したと判断されたきは、Ｓ２００５で、ドライバー指定部６１６はイベントが「アップロードＮｏ．」コンボボックスの操作かを判断する。すなわち、イベントに図２２に図示した削除ドライバー指定画面の「アップロードＮｏ．」コンボボックスを示すＩＤと、左マウスボタン操作が含まれるときは、「アップロードＮｏ．」コンボボックスの操作と判断し、Ｓ２００６に進む。Ｓ２００６で、ドライバー指定部６１６は、削除するドライバーが格納されているアップロード番号を取得する。すなわち、イベントに指定画面（図２２）の「アップロードＮｏ．」コンボボックスに設定された数値を読み取り、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存する。次にＳ２００１に戻る。
【００９３】
Ｓ２００５で「アップロードＮｏ．」コンボボックスの操作と判断されなかったときは、Ｓ２００７で、ドライバー指定部６１６は「削除」ボタンが押下されたか判断する。すなわち、すなわち、イベントに図２２に図示した削除ドライバー指定画面の「削除」ボタンを示すＩＤと、左マウスボタン操作が含まれるときは、「削除」ボタンを押下されたと判断する。Ｓ２００７で「削除」ボタン押下と判断されたときは、Ｓ２００８で、ドライバー指定部６１６は、現在「アップロードＮｏ．」で選択され、保存された数値を選択部６１２に対して返す。
【００９４】
Ｓ２００７で「削除」ボタン押下と判断されなかったときは、Ｓ２００９で、ドライバー指定部６１６は「キャンセル」ボタン押下か判断する。すなわち、イベントに指定画面（図２２）の「キャンセル」ボタンを示すＩＤと、左マウスボタン操作が含まれるときは、「キャンセル」ボタンを押下されたと判断する。Ｓ２００９で「キャンセル」ボタン押下と判断されなかったときは、Ｓ２００１へ戻る。Ｓ２００９で「キャンセル」ボタン押下と判断されたときは、ドライバー指定部６１６は、所定の手続きに基づき、ＲＡＭ２０２やＨＤ２０５等の記憶装置に確保しているワーク領域を開放し、終了処理を行う。
【００９５】
図２１を用いて、図７のＳ７０９のドライバー削除処理を説明する。削除対象とするとセットアッププログラムのアップロード番号及び、削除対象とするデバイスのリストは選択部６１２から削除部６１７に渡され、ＲＡＭ２０２等の記憶領域に確保したワーク領域に保持しているものとする。
【００９６】
Ｓ２１０１で、ドライバー削除部６１７はＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域からアップロード番号を取得する。次にＳ２１０２で、削除部６１７は、プリンター１０５に削除を通知する。すなわち、削除部６１７は、デバイスリストの中から削除処理の対象となるデバイスの情報を取り出し、所定の手続きに基づき通信手段を用いて、該デバイスにセットアッププログラムの削除の指示とともに、アップロード番号を通知する。その後、削除部６１７はＲＡＭ２０２等の記憶領域に確保したワーク領域に保存されている情報などを削除し、本処理を終了する。
【００９７】
（実施例２）
以下、本発明の別の実施の形態について説明する。前述の実施例１の図１９における処理では、新規に作成しようとするポートのポート名をＯＳの属性（種別やバージョン）に応じて可変としていた。また、既存のポート名と比較する処理についても説明した。
【００９８】
しかしながら、ＯＳに標準搭載されている標準ＴＣＰ／ＩＰポートは、ユーザーがポート名を自由に変更できるため、ポート名とその送信先が想定と異なる場合がある。例えば、あるポートに関して、ポート名が“ＩＰ＿１７２．１０．１０．１０”で、印刷データの送信先のＩＰアドレスが“１７２．２０．２０．２０”となっている場合もあり得る。よって、同一の送信先のポートを重複作成することは、ポート名を基準にした判定では防げないことがある。また、第１のＯＳから第２のＯＳへ、ＯＳのアップグレードをする等の理由で、古い環境が残っていることがある。具体的には、第２のＯＳに登録済みポートとして、第１のＯＳのフォーマットで作成された、ポート名が“ＩＰ＿１７２．１０．１０．１０”とするポートが存在することも考えられる。
【００９９】
従って、本実施例においては、ポートにマッピングされている印刷データの送信先を基準に、クライアント上でのポートの重複判定を行うといった手法を説明する。なお、説明の簡便のために、実施例１と異なる点のみ説明する。
【０１００】
図１８のフローにおけるＳ１８０５の使用ポート名の判定処理を、本実施例においては図２３を用いて説明する。なお、Ｓ１８０４で分離した“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名は、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されているものとする。
【０１０１】
Ｓ２３０１で、セットアップモジュールはＰＣに登録済みのポートのリストを取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＰｏｒｔｓ（）等で、ＰＣに登録済のポートおよびポート情報の一覧を取得する。次にＳ２３０２で、セットアップモジュールは、取得したポートの一覧からポート名および印刷データの送信先を含む１レコードを取り出し、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存する。次にＳ２３０３で、セットアップモジュールは、保存したレコードの印刷データの送信先と、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されている“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに含まれる情報とを比較する。
【０１０２】
例えば、“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルにポート名が“ＩＰ＿１７２．１０．１０．１０”のポートが含まれており、その場合はそのポートの印刷データの送信先を“１７２．１０．１０．１０”であると特定する。この特定された送信先と、保存したレコードの印刷データの送信先が、“１７２．１０．１０．１０”で同じ場合に、Ｓ２３０３でセットアップモジュールは送信先が一致していると判断する。
【０１０３】
Ｓ２３０３で印刷データの送信先が一致すると判断されたときは、Ｓ２３０９で、セットアップモジュールは、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されている“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名を変更する。すなわちワーク領域に保存されている“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名を、Ｓ２３０２で取り出したレコードに記載されているポート名で上書きする。そして、使用ポート名の判定処理を終了する。
【０１０４】
Ｓ２３０３で印刷データの送信先が一致すると判断されなかったときは、Ｓ２３０４で、セットアップモジュールは、Ｓ２３０１で取得したポートのリストの全ポートに対してＳ２３０３の判定を終了したかを判断する。Ｓ２３０４で、全件終了したと判断されなかったときはＳ２３０２へ戻る。
【０１０５】
Ｓ２３０４で全件終了したと判断されたときは、Ｓ２３０５で、セットアップモジュールは、プログラムを起動してＰＣのＯＳの属性（種別やバージョン）を判定する。ここでは、クライアントで動作するＯＳが第２のＯＳか否かを判断する。Ｓ２３０５で第２のＯＳと判断されたときは、Ｓ２３０６で、セットアップモジュールはポート名を第２のＯＳのフォーマットに整形する。例えば、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されている“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名が“ＩＰ＿１７２．１０．１０．１０”の場合は、“１７２．１０．１０．１０”に変更する。次にＳ３２０８に進む。Ｓ２３０５で第２のＯＳと判断されなかったときは、Ｓ２３０７で、セットアップモジュールはポート名を第１のＯＳのフォーマットに整形する。例えば、ＲＡＭ２０２等の記憶装置に所定のワーク領域に保存されている“ｓｅｉｌｅｎｔ．ｉｎｉ”ファイルに記載のポート名が“ＩＰ＿１７２．１０．１０．１０”の場合は変更しない。次にＳ２３０８に進む。Ｓ２３０８で、セットアップモジュールは、Ｓ２３０６または、Ｓ２３０７で整形したポート名とするポートを、ＯＳに標準装備された手段を用いて作成する。
【０１０６】
最終的には、Ｓ２３０６、Ｓ２３０７、Ｓ２３０９の何れかによるポート名が、セットアップモジュールが、Ｓ１８０７で“ｓｉｌｅｎｔ．ｉｎｉ”ファイルの更新で用いるポート名となる。
【０１０７】
以上の説明において、ポートのマッピングされている印刷データの送信先として、“Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒ．４”形式のＩＰアドレスを例にとり説明した。しかしながら、その他の形式のＩＰアドレスにも適用される。また、ネットワークアドレス以外の、ローカルポート（例えば、ＬＰＴ、ＣＯＭ、ＵＳＢ、ＩｒＤＡ）やホスト名にも適用される。また、デバイスの例としてプリンターを代表して説明したが、プリンターに限定されるものでなく、印刷機能を持つ複合機や、プリンタードライバーと同等の仕組みのＦＡＸドライバーで動作するＦＡＸにおいても本発明は適用される。
【０１０８】
以上、説明した手順において、論理プリンターのインストール時にＯＳ毎に自動でポート名を決定することにより、ユーザーはポート名を指定する手間を省くことができる。入力ミス等による不注意によって、同一ＩＰアドレスに複数ポートを作成する等の資源の浪費を防ぐことができる。さらに、既存のポート名のフォーマットがＯＳ標準と異なっていてもポートが使用中のＩＰアドレスを自動判定することによって、同一ＩＰアドレスに対し重複してポートを作成することを回避できる。よって、ユーザーは重複回避のために、ポート毎に使用ＩＰアドレスを目視確認し、重複しているか判断する手間が省ける。プリンターインストール時のユーザーの負荷が軽減し、利便性が向上する。
【図１】
0005725873.tif 000002
【図２】
0005725873.tif 000003
【図３】
0005725873.tif 000004
【図４】
0005725873.tif 000005
【図５】
0005725873.tif 000006
【図６】
0005725873.tif 000007
【図７】
0005725873.tif 000008
【図８】
0005725873.tif 000009
【図９】
0005725873.tif 000010
【図１０】
0005725873.tif 000011
【図１１】
0005725873.tif 000012
【図１２】
0005725873.tif 000013
【図１３】
0005725873.tif 000014
【図１４】
0005725873.tif 000015
【図１５】
0005725873.tif 000016
【図１６】
0005725873.tif 000017
【図１７】
0005725873.tif 000018
【図１８】
0005725873.tif 000019
【図１９】
0005725873.tif 000020
【図２０】
0005725873.tif 000021
【図２１】
0005725873.tif 000022
【図２２】
0005725873.tif 000023
【図２３】
0005725873.tif 000024
【図２４】
0005725873.tif 000025