(57)【要約】【課題】ホストデバイスに対して、信頼できない出所から提供されたプログラム等の利用の阻止に有用な情報を提供し得るデバイスサーバを提供する。【解決手段】デバイスサーバ１００は、デバイスへ接続する第１Ｉ／Ｆ（インタフェース）１１０と、ホストデバイス２００ａが接続されたネットワークに接続するための第２Ｉ／Ｆ１２０と、そのデバイスでの処理用の第１種情報の生成のための生成用情報の所在場所を示すアドレス情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する第１制御部１３１と、ホストデバイス２００ａが送信した第１種情報を第２Ｉ／Ｆ１２０を介して受信してその第１種情報を第１Ｉ／Ｆ１１０を介してデバイスに送信し、デバイスの処理結果に関する第２種情報を第１Ｉ／Ｆ１１０を介して受信してその第２種情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する第２制御部１３２とを備える。【選択図】図４
2018205801.tif 000002
【特許請求の範囲】
【請求項１】
デバイスへ接続する第１インタフェースと、
ホストデバイスが接続されたネットワークに接続するための第２インタフェースと、
前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を、前記第２インタフェースを介して前記ホストデバイスに送信する第１制御部と、
前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信し、当該第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２制御部とを備える
デバイスサーバ。
【請求項２】
前記第１制御部は、前記第２インタフェースを介して前記ホストデバイスから前記アドレス情報の要求を受信した場合に、前記ホストデバイスに前記第２インタフェースを介して前記アドレス情報を送信する
請求項１記載のデバイスサーバ。
【請求項３】
前記第１制御部が送信する前記アドレス情報は、適正な前記生成用情報の所在するネットワークアドレスを示し、
前記生成用情報は、デバイス制御プログラムを含み、
前記ホストデバイスは、受信した前記デバイス制御プログラムの送信元の場所が、前記デバイスサーバから送信された前記アドレス情報に基づいて適正とされる場合に、当該デバイス制御プログラムを実行することで第１種情報を生成して当該第１種情報を前記デバイスサーバに送信し、前記第２制御部は、当該第１種情報を受信して当該第１種情報を前記デバイスに送信する
請求項１又は２記載のデバイスサーバ。
【請求項４】
前記第１制御部が送信する前記アドレス情報は、前記デバイスサーバのネットワークアドレスを示し、
前記生成用情報は、デバイス制御プログラムを含み、
前記デバイスサーバは更に、
ウェブページを示す記述及び前記生成用情報を示す記述を含む文書を記憶する記憶部と、
アクセスされた場合に前記文書を送信するウェブサーバとして機能する第３制御部とを備え、
前記ホストデバイスは、ウェブブラウザ機能により前記デバイスサーバの前記ウェブサーバにアクセスすることで前記文書を受信して当該文書に従ってウェブページを表示し、前記ホストデバイスへの操作に応じて前記デバイス制御プログラムを実行する
請求項１〜３のいずれか一項に記載のデバイスサーバ。
【請求項５】
前記第２インタフェースは、前記ホストデバイスと一対一で接続する
請求項４記載のデバイスサーバ。
【請求項６】
前記第１制御部が送信する前記アドレス情報は、前記デバイスサーバのネットワークアドレスを示し、
前記デバイスサーバは更に、前記ホストデバイスに前記第２インタフェースを介して前記生成用情報を送信する第３制御部を備える
請求項１〜３のいずれか一項に記載のデバイスサーバ。
【請求項７】
前記デバイスサーバは、前記アドレス情報を含むファームウェアを記憶媒体に格納し、
前記第１制御部は、前記記憶媒体に格納されている前記アドレス情報を前記ホストデバイスに送信し、
前記デバイスサーバは更に、前記記憶媒体における前記ファームウェアを更新する更新部を備える
請求項１〜３のいずれか一項に記載のデバイスサーバ。
【請求項８】
前記デバイスサーバは、前記アドレス情報を記憶媒体に格納し、
前記第１制御部は、前記記憶媒体に格納されている前記アドレス情報を前記ホストデバイスに送信し、
前記デバイスサーバは更に、前記デバイスサーバへの操作に応じて前記記憶媒体における前記アドレス情報を更新する更新部を備える
請求項１〜３のいずれか一項に記載のデバイスサーバ。
【請求項９】
前記デバイスサーバは更に、前記デバイスサーバの外部の外部装置から前記アドレス情報を取得して当該アドレス情報を記憶媒体に格納する取得部を備え、
前記第１制御部は、前記記憶媒体に格納されている前記アドレス情報を前記ホストデバイスに送信する
請求項１〜３のいずれか一項に記載のデバイスサーバ。
【請求項１０】
請求項１〜９のいずれか一項に記載のデバイスサーバと、
前記デバイスと、
前記ホストデバイスとを備える
ネットワークシステム。
【請求項１１】
デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースとを備えるデバイスサーバにおいて用いられる情報処理方法であって、
前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を前記第２インタフェースを介して前記ホストデバイスに送信するアドレス情報送信ステップと、
前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信する第１種情報転送ステップと、
前記第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２種情報転送ステップとを含む
情報処理方法。
【請求項１２】
デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースと、マイクロプロセッサとを備えるデバイスサーバに、所定情報処理を実行させるための制御プログラムであって、
前記所定情報処理は、
前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を前記第２インタフェースを介して前記ホストデバイスに送信するアドレス情報送信ステップと、
前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信する第１種情報転送ステップと、
前記第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２種情報転送ステップとを含む
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御技術に関し、特に、ホストデバイスが通信に用いるＬＡＮ等のネットワークと周辺機器（デバイス）とを連結するデバイスサーバに関する。
【背景技術】
【０００２】
パーソナルコンピュータ等のホストデバイスは、接続された周辺機器（デバイス）を利用し得る。例えば、ＵＳＢ（Universal Serial Bus）規格に準拠したＵＳＢポートを備えるホストデバイスは、そのＵＳＢポートを介して、ＵＳＢコネクタを有するＵＳＢデバイス或いはＵＳＢケーブルで接続可能なＵＳＢデバイスと、データの授受を行うことができる。ＵＳＢデバイスは、例えば、プリンタ、スキャナ等である。
【０００３】
従来、ＬＡＮ（Local Area Network）等のネットワークに接続された１台以上のホストデバイスが、ネットワークを介してＵＳＢデバイスを利用し得るように、ネットワークとＵＳＢデバイスとを連結するデバイスサーバが知られている（特許文献１参照）。
【０００４】
また、クライアント端末がウェブブラウザを用いてウェブページを取得し、ウェブページに組み込まれた画像入力制御用スクリプトを実行することにより、ネットワークを介して画像入力装置を制御する技術が知られている（特許文献２参照）。また、非特許文献１には、ＵＳＢデバイスとウェブとを接続する方法を提供するためのＷｅｂＵＳＢ ＡＰＩに係る技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２８７４５３号公報
【特許文献２】特開２０１２−１７３９１０号公報
【非特許文献】
【０００６】
【非特許文献１】ライリーグラント（Reilly Grant）、ケンロコット（Ken Rockot）、「WebUSB API Editor’s Draft, 14 May 2017」、［online］、平成２９年５月１４日、Web Platform Incubator Community Group（W3C WICG）、［平成２９年５月１５日検索］、インターネット〈URL：https://wicg.github.io/webusb/〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ホストデバイスは、デバイスの制御に必要な制御コマンドの生成等を行うデバイス制御プログラムをウェブサーバから取得し得る。しかし、特許文献２の画像入力制御用スクリプト等といった、ウェブサーバからダウンロードしたデバイス制御プログラム等は、必ずしも信頼できる出所から提供されたものとは限らず、不正なプログラム等であれば実行されるべきではない。
【０００８】
そこで、本発明は、信頼できない出所から提供されたプログラム等の利用の阻止に有用な情報をホストデバイスに提供し得るデバイスサーバを提供することを目的とする。また、本発明は、このデバイスサーバ及びホストデバイスを備えるネットワークシステム、このデバイスサーバで用いられる情報処理方法、及び、このデバイスサーバで用いられる制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係るデバイスサーバは、デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースと、前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を、前記第２インタフェースを介して前記ホストデバイスに送信する第１制御部と、前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信し、当該第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２制御部とを備える。
【００１０】
また、上記目的を達成するために本発明の一態様に係るネットワークシステムは、上述のデバイスサーバと、上述のデバイスと、上述のホストデバイスとを備える。
【００１１】
また、上記目的を達成するために本発明の一態様に係る情報処理方法は、デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースとを備えるデバイスサーバにおいて用いられる情報処理方法であって、前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を前記第２インタフェースを介して前記ホストデバイスに送信するアドレス情報送信ステップと、前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信する第１種情報転送ステップと、前記第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２種情報転送ステップとを含む。
【００１２】
また、上記目的を達成するために本発明の一態様に係る制御プログラムは、デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースと、マイクロプロセッサとを備えるデバイスサーバに、所定情報処理を実行させるための制御プログラムであって、前記所定情報処理は、前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を前記第２インタフェースを介して前記ホストデバイスに送信するアドレス情報送信ステップと、前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信する第１種情報転送ステップと、前記第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２種情報転送ステップとを含む。
【発明の効果】
【００１３】
本発明によれば、信頼できない出所から提供された、デバイス制御に係るプログラム等の利用の阻止に有用な情報がホストデバイスに提供され得る。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係るネットワークシステムの構成図である。
【図２】実施の形態１に係るネットワークシステムのデバイスサーバのハードウェア構成図である。
【図３】実施の形態１に係るネットワークシステムのホストデバイスのハードウェア構成図である。
【図４】実施の形態１に係るデバイスサーバ及びホストデバイスの機能ブロック図である。
【図５】実施の形態１に係るデバイスサーバが記憶媒体に格納しているアドレス情報の一例を示す図である。
【図６】実施の形態１に係るデバイスサーバの処理の一例を示すフローチャートである。
【図７】実施の形態１に係るネットワークシステムにおける各機器の連携動作の一例を示すシーケンス図である。
【図８】実施の形態２に係るネットワークシステムの構成図である。
【図９】実施の形態２に係るデバイスサーバ及びホストデバイスの機能ブロック図である。
【図１０】実施の形態２に係るデバイスサーバの処理の一例を示すフローチャートである。
【図１１】実施の形態３に係るネットワークシステムの構成図である。
【図１２】実施の形態３に係るデバイスサーバ及びホストデバイスの機能ブロック図である。
【図１３】実施の形態３に係るネットワークシステムにおける各機器の連携動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
信頼できない出所から提供されたプログラム等の利用の阻止に有用な情報をホストデバイスに提供すべく、本発明の一態様に係るデバイスサーバは、デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースと、前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を、前記第２インタフェースを介して前記ホストデバイスに送信する第１制御部と、前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信し、当該第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２制御部とを備える。第１種情報は、例えば、デバイスにおいて処理を実行させるための、予め規定されている制御コマンド等であり、第２種情報は、例えば、第１種情報に基づく処理が成功したか否かを示す情報、或いは、第１種情報に基づく処理により生成されたデータを示す情報等である。デバイスサーバはネットワークとデバイスとの間で第１種情報及び第２種情報の転送を行い得る。なお、転送においては第１種情報或いは第２種情報の情報形式の変換等が行われ得る。生成用情報は、例えば、制御コマンド等の第１種情報を生成するために用いられるプログラム等である。上記構成により、生成用情報の所在場所を示すアドレス情報がホストデバイスに提供され、このアドレス情報に基づいてホストデバイスは、ネットワークから受信した生成用情報に関してその出所であるウェブサイト等が信頼できるものであるか否かを判定可能になる。アドレス情報は、例えば、生成用情報の信頼できる１つ又は複数の出所を示し得る。このため、判定結果を用いて、ホストデバイスは信頼できないウェブサイトつまりウェブサーバからダウンロードした生成用情報を利用しないようにすることができる。なお、デバイスサーバが、アドレス情報をホストデバイスに送信することで提供するため、デバイスサーバに接続された個々のデバイスはアドレス情報に相当する情報を出力する機能を有さなくてもよい。また、ネットワークに接続されるデバイスサーバが、アドレス情報の提供を行うので、例えば生成用情報を配信する正規のウェブサイトの移転等に対応したアドレス情報の変更の必要性に、柔軟に対応することが可能となる。
【００１６】
例えば、前記第１制御部は、前記第２インタフェースを介して前記ホストデバイスから前記アドレス情報の要求を受信した場合に、前記ホストデバイスに前記第２インタフェースを介して前記アドレス情報を送信することとしてもよい。なお、アドレス情報の要求を示すものとして、いかなる情報を利用してもよい。これにより、デバイスサーバは、ホストデバイスからアドレス情報の要求の受信によって、アドレス情報を送信すべきタイミングを認識し、適時にアドレス情報をホストデバイスに提供できるようになる。ホストデバイスは、デバイスサーバを介してデバイスを利用する必要が生じると、デバイスの制御コマンド等といった第１種情報を生成させるデバイス制御プログラム（例えば制御用スクリプト等）等を、インターネット等に接続されたサーバから取得し、例えばこの取得の前又は後においてアドレス情報をデバイスサーバに要求し得る。そしてホストデバイスは、取得したアドレス情報に基づいて、信頼できる出所のデバイス制御プログラムを実行し、信頼できない出所のデバイス制御プログラムを実行しないようにすることが可能になる。
【００１７】
また、例えば、前記第１制御部が送信する前記アドレス情報は、適正な前記生成用情報の所在するネットワークアドレスを示し、前記生成用情報は、デバイス制御プログラムを含み、前記ホストデバイスは、受信した前記デバイス制御プログラムの送信元の場所が、前記デバイスサーバから送信された前記アドレス情報に基づいて適正とされる場合に、当該デバイス制御プログラムを実行することで第１種情報を生成して当該第１種情報を前記デバイスサーバに送信し、前記第２制御部は、当該第１種情報を受信して当該第１種情報を前記デバイスに送信することとしてもよい。アドレス情報は、例えば、生成用情報を配信する正規のウェブサイトのアドレス等といった、生成用情報の適正な出所を示し得る。これにより、ホストデバイスが、デバイスサーバから取得したアドレス情報に基づいて、適正な出所のデバイス制御プログラムを実行して生成した、制御コマンド等といった第１種情報を送信した場合に、デバイスサーバはデバイスに第１種情報を転送できるようになる。
【００１８】
また、例えば、前記第１制御部が送信する前記アドレス情報は、前記デバイスサーバのネットワークアドレスを示し、前記生成用情報は、デバイス制御プログラムを含み、前記デバイスサーバは更に、ウェブページを示す記述及び前記生成用情報を示す記述を含む文書を記憶する記憶部と、アクセスされた場合に前記文書を送信するウェブサーバとして機能する第３制御部とを備え、前記ホストデバイスは、ウェブブラウザ機能により前記デバイスサーバの前記ウェブサーバにアクセスすることで前記文書を受信して当該文書に従ってウェブページを表示し、前記ホストデバイスへの操作に応じて前記デバイス制御プログラムを実行することとしてもよい。文書は、例えばＨＴＭＬ（HyperText Markup Language）で記述されたＨＴＭＬ文書等である。文書は、例えば、生成用情報を含む、或いは、生成用情報の所在アドレス等を含み得る。これにより、デバイスサーバが、デバイスの制御コマンド等の第１種情報を生成するためのデバイス制御プログラムを含む生成用情報を示し、ウェブページを示す文書を提供するウェブサーバ機能を有するので、ホストデバイスはウェブブラウザ機能により適正なウェブページを表示でき適正なデバイス制御プログラムを実行可能となる。
【００１９】
また、例えば、前記第２インタフェースは、前記ホストデバイスと一対一で接続することとしてもよい。これにより、ホストデバイスとデバイスとの間での効率的な通信が可能となる。そして、ホストデバイスは、デバイスサーバからデバイスの制御に必要な情報を取得でき、適切にデバイスに処理を行わせることができるようになる。
【００２０】
また、例えば、前記第１制御部が送信する前記アドレス情報は、前記デバイスサーバのネットワークアドレスを示し、前記デバイスサーバは更に、前記ホストデバイスに前記第２インタフェースを介して前記生成用情報を送信する第３制御部を備えることとしてもよい。これにより、ホストデバイスは、デバイスサーバからデバイスの制御に必要な情報を取得でき、適切にデバイスに処理を行わせることができるようになる。
【００２１】
また、例えば、前記デバイスサーバは、前記アドレス情報を含むファームウェアを記憶媒体に格納し、前記第１制御部は、前記記憶媒体に格納されている前記アドレス情報を前記ホストデバイスに送信し、前記デバイスサーバは更に、前記記憶媒体における前記ファームウェアを更新する更新部を備えることとしてもよい。これにより、デバイスサーバのファームウェアの更新により、例えば生成用情報を配信する正規のウェブサイトの移転等に対応した最新の状態を表すように、アドレス情報を更新させることが可能となる。
【００２２】
また、例えば、前記デバイスサーバは、前記アドレス情報を記憶媒体に格納し、前記第１制御部は、前記記憶媒体に格納されている前記アドレス情報を前記ホストデバイスに送信し、前記デバイスサーバは更に、前記デバイスサーバへの操作に応じて前記記憶媒体における前記アドレス情報を更新する更新部を備えることとしてもよい。これにより、デバイスサーバの管理者等によるアドレス情報の編集操作等が可能となるので、アドレス情報の変更の必要性に柔軟に対応できる。
【００２３】
また、例えば、前記デバイスサーバは更に、前記デバイスサーバの外部の外部装置から前記アドレス情報を取得して当該アドレス情報を記憶媒体に格納する取得部を備え、前記第１制御部は、前記記憶媒体に格納されている前記アドレス情報を前記ホストデバイスに送信することとしてもよい。外部装置は、例えば、各種デバイス毎に対応した適正なウェブサイト等を検索可能なデータベース（ＤＢ）を備える装置であり得る。これにより、随時、外部装置におけるアドレス情報を変更することで、生成用情報を配信する正規のウェブサイトの移転等に効率的に対応し得る。
【００２４】
また、本発明の一態様に係るネットワークシステムは、上述のデバイスサーバとデバイスとホストデバイスとを備えるネットワークシステムとしてもよい。これにより、ネットワークシステムにおけるホストデバイスは、ネットワークを介してデバイスを制御でき、ホストデバイスから提供されるアドレス情報に基づいて、信頼できる出所の生成用情報を利用し、信頼できない出所の生成用情報を利用しないようにすることが可能になる。
【００２５】
また、本発明の一態様に係る情報処理方法は、デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースとを備えるデバイスサーバにおいて用いられる情報処理方法であって、前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を前記第２インタフェースを介して前記ホストデバイスに送信するアドレス情報送信ステップと、前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信する第１種情報転送ステップと、前記第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２種情報転送ステップとを含む。これにより、デバイスの制御に係る生成用情報の所在場所を示すアドレス情報がホストデバイスに提供され、このアドレス情報に基づいてホストデバイスは、ネットワークから受信した生成用情報に関してその出所であるウェブサイト等が信頼できるものであるか否かを判定可能になる。このため、判定結果を用いて、ホストデバイスは信頼できないウェブサイトつまりウェブサーバからダウンロードした生成用情報を利用しないようにすることができる。
【００２６】
また、本発明の一態様に係る制御プログラムは、デバイスへ接続する第１インタフェースと、ホストデバイスが接続されたネットワークに接続するための第２インタフェースと、マイクロプロセッサとを備えるデバイスサーバに、所定情報処理を実行させるための制御プログラムであって、前記所定情報処理は、前記デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を前記第２インタフェースを介して前記ホストデバイスに送信するアドレス情報送信ステップと、前記ホストデバイスが送信した第１種情報を前記第２インタフェースを介して受信して、当該第１種情報を前記第１インタフェースを介して前記デバイスに送信する第１種情報転送ステップと、前記第１種情報に基づく前記デバイスにおける処理の結果に関する第２種情報を前記第１インタフェースを介して受信して、当該第２種情報を前記第２インタフェースを介して前記ホストデバイスに送信する第２種情報転送ステップとを含む。この制御プログラムをデバイスサーバにインストールすることで、デバイスサーバは、デバイスの制御に係る生成用情報の所在場所を示すアドレス情報をホストデバイスに提供できるようになる。
【００２７】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
【００２８】
以下、実施の形態に係る情報処理方法を用いるデバイスサーバを含むネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、処理の要素としてのステップ及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００２９】
（実施の形態１）
以下、本発明の実施の形態１として、デバイスサーバと、ＵＳＢデバイスと、ネットワークに接続されたホストデバイスとを備えるネットワークシステム１０について、図面を用いて説明する。
【００３０】
［１．１  ネットワークシステム１０の構成］
図１は、ネットワークシステム１０の構成図である。
【００３１】
ネットワークシステム１０は、ネットワーク２０を介して、複数の機器間で通信を行うためのシステムである。ネットワーク２０は、例えばイーサネット（登録商標）ケーブルで接続された有線ＬＡＮ（Local Area Network）等である。有線ＬＡＮ等のネットワーク２０は、例えばＩＥＥＥ８０２．３規格に準拠したものである。図１に示すようにネットワーク２０に接続された機器には、デバイスサーバ１００、ホストデバイス２００ａ、ホストデバイス２００ｂ、及び、ルータ４０が含まれる。なお、図１で示すネットワークシステム１０を構成する機器の数等は例示に過ぎない。
【００３２】
ホストデバイス２００ａ、２００ｂは、パーソナルコンピュータ等のネットワーク通信機器であり、例えばクライアント端末である。
【００３３】
デバイスサーバ１００は、ＵＳＢデバイス３００ａ及びＵＳＢデバイス３００ｂとそれぞれＵＳＢケーブル３０ａ、３０ｂを介して接続されており、ＵＳＢデバイスをネットワークに接続された機器から利用可能にする機能を有する通信装置である。ＵＳＢデバイスは、ＵＳＢ規格に準拠して通信を行う周辺機器であり、例えば、プリンタ、スキャナ、ＵＳＢメモリ、ハードディスク装置、モニタ、スピーカ、オーディオプレイヤー、キーボード、マウス等である。ＵＳＢデバイス３００ａ、３００ｂは、それぞれＵＳＢケーブル３０ａ、３０ｂを挿抜自在であっても、ＵＳＢケーブル３０ａ、３０ｂと一体化されていてもよい。デバイスサーバ１００の働きにより、ホストデバイス２００ａ及びホストデバイス２００ｂは、ＵＳＢデバイス３００ａ或いはＵＳＢデバイス３００ｂを利用することができる。デバイスサーバ１００は、ホストデバイス等が接続されたネットワーク２０とＵＳＢデバイスとの間で、ＵＳＢデバイスに対する制御コマンド等の第１種情報、及び、制御コマンドへの応答等の第２種情報を転送する転送機能を有する。また、デバイスサーバ１００は、ＵＳＢデバイスに送信すべき第１種情報を生成するために用いられる生成用情報の所在場所を示すアドレス情報をホストデバイスに対して送信する情報提供機能を有する。デバイスサーバ１００から提供されたアドレス情報に基づいてホストデバイスは、信頼できない出所から提供されたデバイス制御プログラム等の利用の阻止を行い得る。
【００３４】
ルータ４０は、ネットワーク２０をインターネット等の広域ネットワーク４１に接続する。広域ネットワーク４１には、サーバ４２ａ及びサーバ４２ｂが接続されている。サーバ４２ａ及びサーバ４２ｂは、例えばデバイス制御プログラムを配信する制御プログラム配信サーバであり、例えば、ウェブサーバ機能を有するコンピュータである。例えば、ホストデバイス２００ａは、デバイスサーバ１００を介してＵＳＢデバイス３００ａに処理を行わせる場合に、サーバ４２ａからウェブページ及びデバイス制御プログラム（例えば制御用スクリプト等）を記述した文書を受信する。ホストデバイス２００ａは、そのデバイス制御プログラムの出所が信頼できる場合にそのデバイス制御プログラムを実行することで、制御コマンド等の第１種情報を生成して、第１種情報をデバイスサーバ１００に送信することで、第１種情報に基づく処理をＵＳＢデバイス３００ａに実行させ得る。
【００３５】
以下、ネットワークシステム１０においてホストデバイス２００ａがデバイスサーバ１００を介してＵＳＢデバイス３００ａに処理を実行させる例を想定して、デバイスサーバ１００及びホストデバイス２００ａを中心に説明を行う。
【００３６】
［１．２  デバイスサーバ１００のハードウェア構成］
図２は、デバイスサーバ１００のハードウェア構成を示す。同図に示すようにデバイスサーバ１００は、プロセッサ（マイクロプロセッサ）１０１と、記憶装置１０２と、ＵＳＢデバイスに接続する第１インタフェース（Ｉ／Ｆ）１１０と、ネットワーク２０に接続する第２インタフェース（Ｉ／Ｆ）１２０と、バス１０３とを備える。
【００３７】
ここで、記憶装置１０２は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等の記憶媒体を含む。記憶装置１０２は、不揮発性メモリを含んでもよい。記憶装置１０２は、プロセッサ１０１により実行されるプログラム（コンピュータプログラム）を記憶することができる。例えばプロセッサ１０１が、プログラムに従って動作することにより、デバイスサーバ１００は各種機能を実現することになる。なお、プログラムは、所定の機能を実現するために、プロセッサに対する指令を示す命令コードを複数個組み合わせて構成される。プログラムを実行するプロセッサ１０１は、例えば、ＵＳＢデバイスとネットワーク２０との間での情報の転送に係る処理（例えば情報に係るデータ変換等）を行い、第１Ｉ／Ｆ１１０と第２Ｉ／Ｆ１２０とを制御して転送機能を実現する。また、プログラムを実行するプロセッサ１０１は、例えば、記憶装置１０２の記憶内容に基づいて、第２Ｉ／Ｆ１２０を制御して情報提供機能を実現する。
【００３８】
第１Ｉ／Ｆ１１０は、ＵＳＢデバイスと接続するためのＵＳＢ通信インタフェース（つまりＵＳＢ規格に準拠したインタフェース）であり、ＵＳＢコントローラ、ＵＳＢケーブルのコネクタを挿抜可能なＵＳＢポート等である。
【００３９】
また、第２Ｉ／Ｆ１２０は、ホストデバイス２００ａ等が接続されているネットワーク２０に接続するためのネットワーク通信インタフェースであり、イーサネット（登録商標）コントローラ、ＬＡＮポート等である。
【００４０】
［１．３  ホストデバイス２００ａのハードウェア構成］
図３は、ホストデバイス２００ａのハードウェア構成を示す。同図に示すようにホストデバイス２００ａは、プロセッサ（マイクロプロセッサ）２０１と、記憶装置２０２と、ネットワーク２０に接続するネットワーク通信インタフェース（Ｉ／Ｆ）２０３と、ユーザインタフェース（Ｉ／Ｆ）２０４と、バス２０５とを備える。なお、ホストデバイス２００ｂも、ホストデバイス２００ａと同様の構成を備える。
【００４１】
ここで、記憶装置２０２は、ＲＯＭ、ＲＡＭ等であり、不揮発性メモリを含んでもよい。記憶装置２０２は、プロセッサ２０１により実行される各種プログラムを記憶することができる。プログラムを実行するプロセッサ２０１は、例えば、デバイスサーバ１００との間でデータの授受に係る処理を行うべく、ネットワーク通信Ｉ／Ｆ２０３を制御する。
【００４２】
ネットワーク通信Ｉ／Ｆ２０３は、ネットワーク２０に接続するためのインタフェースであり、イーサネット（登録商標）コントローラ、ＬＡＮポート等である。
【００４３】
また、ユーザＩ／Ｆ２０４は、例えば、ユーザの操作を受け付けるためのキーボード、マウス、タッチパネル等の入力装置、及び、ユーザに情報を提示するディスプレイ、プロジェクタ等の表示装置である。
【００４４】
［１．４  デバイスサーバ１００及びホストデバイス２００ａの機能構成］
図４は、デバイスサーバ１００及びホストデバイス２００ａの機能ブロック図である。なお、同図には、ホストデバイス２００ａがデバイスサーバ１００を介して制御し得るＵＳＢデバイス３００ａと、ホストデバイス２００ａがデバイス制御プログラム等の取得のためにアクセスし得るサーバ４２ａとを付記している。
【００４５】
ホストデバイス２００ａは、機能面においては、図４に示すように、通信部２１０、処理部２２０、操作受付部２３０及び表示部２４０を有する。
【００４６】
通信部２１０は、ネットワーク通信Ｉ／Ｆ２０３等により実現され、ネットワーク２０を介してデバイスサーバ１００との間で各種情報を示すデータの授受を行う。また、通信部２１０は、ネットワーク２０、ルータ４０等を介してウェブサーバ機能を有するサーバ４２ａ等との間でデータの授受を行う。
【００４７】
操作受付部２３０は、ユーザＩ／Ｆ２０４の入力装置等で実現され、ユーザの操作を受け付けて処理部２２０に伝える。
【００４８】
表示部２４０は、ユーザＩ／Ｆ２０４の表示装置等で実現され、処理部２２０の制御下で情報を表示する。
【００４９】
処理部２２０は、記憶装置２０２に格納されたプログラムを実行するプロセッサ２０１等により実現され、操作受付部２３０から伝えられた操作等に応じて、各種処理を実行し、表示内容を定めて表示部２４０に表示させる。処理部２２０は、ドライバ２２１と、ランタイムエンジン２２２とを含む。
【００５０】
ドライバ２２１は、デバイスの制御を行うべくデバイスと通信するデバイスドライバを実行するプロセッサ２０１等により実現される。ドライバ２２１は、具体的には例えば、ＵＳＢドライバであり、ＵＳＢ規格に従ってＵＳＢデバイスと通信をするためのデバイスドライバを実行するプロセッサ２０１等により実現される。なお、ドライバ２２１は、ホストデバイス２００ａに直接接続されたＵＳＢデバイスと同様に、通信部２１０を制御して、デバイスサーバ１００と通信させることで、デバイスサーバ１００に接続されたＵＳＢデバイス３００ａ等と通信し得る。ドライバ２２１は、通信部２１０を介してデバイスサーバ１００に、利用可能なＵＳＢデバイスの情報を要求し、ユーザの入力等に応じて選択されたＵＳＢデバイスに処理を行わせるために、生成された第１種情報の送信及び第２種情報の受信等を行う。なお、ドライバ２２１は、例えば、ユーザの操作等を受けて取得したデバイスサーバ１００のＭＡＣ（Media Access Control）アドレスを利用して、通信部２１０にデバイスサーバ１００との通信を行わせる。通信部２１０では、例えば、第１種情報等として、ＵＳＢ規格に準拠したデータをカプセル化して、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）に基づいてネットワーク２０を介してデバイスサーバ１００との通信を行う。
【００５１】
第１種情報は、例えば、ＵＳＢデバイスにおいて予め規定されている制御コマンド（つまり予め規定された処理の実行を指示する指令）等であり、例えば詳細な制御内容を指定する制御用パラメータを含み得る。第１種情報は、制御コマンドにより実行される処理の対象とされるべきデータ等を含んでもよい。具体的には、ホストデバイス２００ａが、例えばＵＳＢデバイスとしてのプリンタに印刷を行わせる場合において、送信する第１種情報は、例えば印刷コマンドであり、印刷されるべき用紙トレイ等を指定するパラメータ、印刷されるべき文書、画像等のデータ等を含み得る。また、第２種情報は、例えば、ＵＳＢデバイスにおいて第１種情報に基づく処理が成功したか否かを示す情報、或いは、第１種情報に基づく処理により生成されたデータを示す情報等である。具体的には、例えばＵＳＢデバイスとしてのスキャナに用紙のスキャンを行わせるスキャンコマンドが第１種情報であった場合において、そのＵＳＢデバイスからデバイスサーバ１００を介してホストデバイス２００ａが受信する第２種情報は、例えば、スキャン結果のイメージデータ等の情報である。
【００５２】
ランタイムエンジン２２２は、デバイス制御プログラムを取得して実行する機能を有するプログラムを実行するプロセッサ２０１等により実現される。具体的には、ランタイムエンジン２２２は、例えばウェブブラウザ機能を有するアプリケーションプログラムを実行するプロセッサ２０１等により実現される。ここでは、ランタイムエンジン２２２が、ウェブブラウザ機能を担うこととして説明する。ランタイムエンジン２２２は、ウェブブラウザ機能により、通信部２１０を制御して、ＴＣＰ／ＩＰ、ＨＴＴＰ（HyperText Transfer Protocol）等により、ウェブサーバ機能を有するサーバ４２ａ等と通信し、ウェブページを記述する文書等の情報資源を取得し、表示部２４０にウェブページを表示させる。ウェブページを記述する文書は、例えばＨＴＭＬ（HyperText Markup Language）で記述されたＨＴＭＬ文書であり、例えば、ウェブページの制御或いはＵＳＢデバイスの制御等のためのデバイス制御プログラムを含み得る。デバイス制御プログラムは、例えばＪａｖａＳｃｒｉｐｔ（登録商標）で記述された制御用スクリプトである。ランタイムエンジン２２２は、ウェブページを記述する文書の構文解析を行い、必要に応じてデバイス制御プログラムの実行制御を行う。デバイス制御プログラムでは、例えばＡＰＩ（Application Programming Interface）を利用し、ランタイムエンジン２２２は、ＡＰＩに係る処理等を実行し得る。ランタイムエンジン２２２が表示部２４０に表示させるウェブページ等は、例えばＧＵＩ（Graphical User Interface）を構成し、ランタイムエンジン２２２は、操作受付部２３０により受け付けられた操作に対応してインタラクティブに表示するウェブページの全体又はその一部を変更し得る。
【００５３】
また、デバイスサーバ１００は、機能面においては、図４に示すように、第１Ｉ／Ｆ１１０、第２Ｉ／Ｆ１２０、処理部１３０、記憶部１４０及び更新部１５０を有する。第１Ｉ／Ｆ１１０及び第２Ｉ／Ｆ１２０は、図３に示したものと同じである。
【００５４】
処理部１３０は、記憶装置１０２に格納されたプログラムを実行するプロセッサ１０１等により実現される。処理部１３０は、第１制御部１３１と第２制御部１３２とを含む。
【００５５】
第１制御部１３１は、ＵＳＢデバイス３００ａにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する情報提供機能を実現する。生成用情報は、上述のデバイス制御プログラム等であり、例えば、そのデバイス制御プログラム（例えば制御用スクリプト）を含むＨＴＭＬ文書等の情報資源であり得る。具体的には、第１制御部１３１は、例えば、第２Ｉ／Ｆ１２０を介してホストデバイス２００ａから、予め定められた、アドレス情報の要求を受信した際に、ホストデバイス２００ａに対して第２Ｉ／Ｆ１２０を介してアドレス情報を送信する。第１制御部１３１が送信するアドレス情報は、例えばデバイスサーバ１００のファームウェアの一部として、記憶部１４０に格納されており、信頼されるべき適正な生成用情報が所在するネットワークアドレスを示す。
【００５６】
第２制御部１３２は、ネットワーク２０とＵＳＢデバイス３００ａとの間での情報の転送に係る転送機能を実現する。例えば、第２制御部１３２は、転送機能により、ネットワーク２０に接続されているホストデバイス２００ａと、ＵＳＢデバイス３００ａとの通信を制御する。第２制御部１３２は、ホストデバイス２００ａが送信した第１種情報を第２Ｉ／Ｆ１２０を介して受信してその第１種情報を第１Ｉ／Ｆ１１０を介してＵＳＢデバイス３００ａに送信する。また、第２制御部１３２は、第１種情報に基づくＵＳＢデバイス３００ａにおける処理の結果に関する第２種情報を第１Ｉ／Ｆ１１０を介して受信してその第２種情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する。なお、第２制御部１３２は、情報の転送に際して、情報の形式の変更（つまりデータ変換）を行い得る。このデータ変換は、例えば、ＵＳＢケーブル３０ａで伝送されるＵＳＢ規格に準拠したデータをネットワーク２０上に転送する際にはＴＣＰ／ＩＰに基づいてそのデータに各種制御情報を含むヘッダ等の付加を行ってカプセル化し、カプセル化されたデータをＵＳＢケーブル３０ａに転送する際には、そのヘッダ等の除去を行ってデカプセル化する等の方法で、行われる。例えば第１種情報は、ネットワーク２０上においては、ＵＳＢデバイスに対するＵＲＢ（USB Request Block）等のデータをカプセル化したものとなり、例えば第２種情報は、ネットワーク２０上においては、ＵＲＢへの応答データをカプセル化したものとなり得る。第２制御部１３２は、データ変換として、圧縮、伸長その他の処理を行ってもよい。
【００５７】
記憶部１４０は、記憶装置１０２の一領域により実現され、第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を記憶する他、プロセッサ１０１に各機能を実行させるための制御プログラムを記憶している。ここで、ファームウェアの一部として記憶部１４０（つまり記憶媒体）に記憶されているアドレス情報について図５を用いて説明する。
【００５８】
図５は、アドレス情報の一例を示す図である。アドレス情報は、同図の例では、デバイス制御ＵＲＬ（Uniform Resource Locator）であり、デバイス種別情報が付されている。記憶部１４０は、デバイス種別情報毎に１つ又は複数のデバイス制御ＵＲＬを記憶している。デバイス種別情報は、ＵＳＢデバイスのデバイスクラスを示す情報であってもよいし、ＵＳＢデバイスのＩＤ等の識別情報であってもよい。同図の例では、デバイス種別情報は、例えば、ＵＳＢデバイス３００ａの識別情報としての「ＵＳＢデバイスＡ」、ＵＳＢデバイス３００ｂの識別情報としての「ＵＳＢデバイスＢ」等を示している。デバイス制御ＵＲＬは、生成用情報としての情報資源の所在場所を示すネットワークアドレスである。デバイス制御ＵＲＬは、一例としては、対応するデバイス種別情報で示されるＵＳＢデバイスに処理を行わせるための制御コマンド等の第１種情報を生成する生成用情報としてのデバイス制御プログラムを配信する制御プログラム配信サーバのＵＲＬ等である。図５の例によれば、第１制御部１３１は、例えばＵＳＢデバイス３００ａに係るアドレス情報の要求をホストデバイス２００ａから受けた場合において、記憶部１４０を参照して、ウェブページＡに係るＵＲＬをアドレス情報としてホストデバイス２００ａに送信し得る。なお、第１制御部１３１は、例えば、図５に例示するような複数のデバイス種別情報に対応するデバイス制御ＵＲＬの集合に、デバイス種別情報を対応付けた情報を、アドレス情報としてホストデバイス２００ａに送信することとしてもよい。これによりホストデバイス２００ａはデバイス種別情報に基づいて参照すべきデバイス制御ＵＲＬを選定し得る。
【００５９】
更新部１５０は、記憶装置１０２に格納されたプログラムを実行するプロセッサ１０１等により実現され、記憶部１４０に記憶されている制御プログラム及びアドレス情報であるファームウェアを、新たに取得したファームウェアによって、更新する機能を有する。更新部１５０における新たなファームウェアの取得方法は、いかなる方法であってもよい。更新部１５０は、例えば、第２Ｉ／Ｆ１２０を介して新たなファームウェアを受信する等により記憶部１４０のファームウェアの更新を行い得る。
【００６０】
［１．５  デバイスサーバ１００の動作］
図６は、デバイスサーバ１００の処理の一例を示すフローチャートである。以下、同図に即して、ネットワークシステム１０の動作についてデバイスサーバ１００の動作を中心に説明する。ここでは、ホストデバイス２００ａが、ＵＳＢデバイス３００ａを制御する例を用いて説明する。
【００６１】
前提として、デバイスサーバ１００は、第１Ｉ／Ｆ１１０に接続されているＵＳＢデバイス３００ａ、３００ｂに対してＵＳＢ規格に従ってコントロール転送によるコンフィギュレーションを行うよう制御し、この結果としてＵＳＢデバイス３００ａ、３００ｂからデバイスディスクリプタを取得し、必要に応じてインタフェースディスクリプタを取得している。例えば、デバイスディスクリプタにＵＳＢデバイスのＩＤ等が含まれ、デバイスディスクリプタ或いはインタフェースディスクリプタにデバイスクラスを示すクラス識別情報が含まれる。
【００６２】
デバイスサーバ１００は、ホストデバイス２００ａからのデバイスリストの要求を受信した場合には（ステップＳ１１）、第１Ｉ／Ｆ１１０に接続されているＵＳＢデバイス毎の情報（ＩＤ、デバイスクラス等）を示すデバイスリストを生成して、デバイスリストを第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する（ステップＳ１２）。なお、図６には示さないが、ホストデバイス２００ａにより、デバイスリストからユーザの操作等に基づいて選択された特定のＵＳＢデバイス３００ａへの接続要求（リモートデバイス接続要求）を受けると、デバイスサーバ１００は、そのホストデバイス２００ａとＵＳＢデバイス３００ａとの接続に係る情報を管理し、第１種情報及び第２種情報の転送等に利用する。
【００６３】
また、デバイスサーバ１００は、ホストデバイス２００ａから、ＵＳＢデバイス３００ａにおける処理のために用いられる制御コマンド等の第１種情報の生成に用いられる生成用情報（例えばデバイス制御プログラム）の所在場所を示すアドレス情報の要求を受信した場合には（ステップＳ１３）、第１制御部１３１が第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに、信頼できる生成用情報の所在場所を示すアドレス情報を送信する（ステップＳ１４）。ステップＳ１４では、例えば、第１制御部１３１は、記憶部１４０に記憶されているＵＳＢデバイス３００ａ（ＵＳＢデバイスＡ）に対応するデバイス制御ＵＲＬ（図５参照）等のアドレス情報を送信する。これにより、例えば、ＵＳＢデバイス３００ａに対応するデバイス制御プログラムを配信する正規の制御プログラム配信サーバを示すデバイス制御ＵＲＬがアドレス情報としてホストデバイス２００ａに送信される。ホストデバイス２００ａでは、ランタイムエンジン２２２が、取得したアドレス情報の１つに特定されたデバイス制御ＵＲＬが示すデバイス制御プログラム配信サーバ（例えばサーバ４２ａ）にアクセスして生成用情報（例えばデバイス制御プログラム等）をダウンロードし得る。サーバ４２ａは、ホストデバイス２００ａからＨＴＴＰによりアクセスを受けると、例えば、ウェブページを記述しデバイス制御プログラム（例えば制御用スクリプト）を示すＨＴＭＬ文書等をホストデバイス２００ａに送信する。ホストデバイス２００ａのランタイムエンジン２２２は、例えばウェブブラウザ機能によりＨＴＭＬ文書を構文解析して、ユーザの操作に応じたウェブページの表示及びデバイス制御プログラムの実行等を行い得る。なお、ランタイムエンジン２２２は、ステップＳ１４で取得したアドレス情報に基づかずユーザ操作に応じて任意のウェブサイトにアクセスしてウェブページを表示し、デバイス制御プログラムをダウンロードしてもよい。但し、ホストデバイス２００ａのランタイムエンジン２２２は、信頼できる出所の生成用情報（例えばデバイス制御プログラム等）を利用して制御コマンド等の第１種情報を生成して第１種情報をデバイスサーバ１００に送信し得るが、信頼できない出所の生成用情報を利用しない。例えば、ランタイムエンジン２２２は、デバイス制御プログラムの実行の前に一度はデバイスサーバ１００から信頼できるデバイス制御プログラムの出所を示すアドレス情報を取得して、これと比較してその実行しようとするデバイス制御プログラムが信頼できる出所から得られたものか否かを判断する。ランタイムエンジン２２２は、信頼できる出所から得られたデバイス制御プログラムを実行するが、その他の出所から得られたデバイス制御プログラムを実行しない。ランタイムエンジン２２２によるデバイス制御プログラムの実行により、第１種情報（例えば制御コマンド、制御用パラメータ、処理対象のデータ等）が生成され、第１種情報が、ドライバ２２１及び通信部２１０を介してデバイスサーバ１００に送信され得る。
【００６４】
また、デバイスサーバ１００は、ホストデバイス２００ａが送信した第１種情報を第２Ｉ／Ｆ１２０を介して受信した場合には（ステップＳ１５）、その第１種情報を第１Ｉ／Ｆ１１０を介してＵＳＢデバイス３００ａに転送する（ステップＳ１６）。これにより、ＵＳＢデバイス３００ａは、第１種情報に基づいて処理を実行し、例えば処理の実行結果等を示す第２種情報をデバイスサーバ１００に送信し得る。例えば、ＵＳＢデバイス３００ａがプリンタであれば、第１種情報に基づいて印刷が実行され、印刷完了の通知等を示す第２種情報がデバイスサーバ１００に送信され得る。例えば、ＵＳＢデバイス３００ａがスキャナであれば、第１種情報に基づいて用紙のスキャン等が実行され、スキャン結果のイメージデータ等を示す第２種情報がデバイスサーバ１００に送信され得る。
【００６５】
また、デバイスサーバ１００は、ＵＳＢデバイス３００ａが送信した第２種情報を第１Ｉ／Ｆ１１０を介して受信した場合には（ステップＳ１７）、その第２種情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに転送する（ステップＳ１８）。ホストデバイス２００ａの処理部２２０は、通信部２１０を介して第２種情報を取得し、例えばデバイス制御プログラムに第２種情報に対応した処理を行わせ、例えば第２種情報を表示部２４０に表示させ得る。
【００６６】
［１．６  ネットワークシステム１０の各機器の連携動作］
図７は、ネットワークシステム１０における各機器の連携動作の一例を示すシーケンス図である。以下、同図に即して、ネットワークシステム１０の具体的動作について説明する。同図の例では、ホストデバイス２００ａのドライバ２２１は、例えばオペレーティングシステムの一部等となるバスドライバ２２１ａと、通信部２１０及びネットワーク２０を介して遠隔のデバイスと通信するデバイス接続クライアント２２１ｂとに分けて表している。
【００６７】
デバイスサーバ１００は、第１Ｉ／Ｆ１１０に接続されたＵＳＢデバイスの検出によりコンフィギュレーションを行い（ステップＳ１０１）、ＵＳＢ３００ａからデバイスのＩＤ等を取得する（ステップＳ１０２）。
【００６８】
その後、デバイス接続クライアント２２１ｂは、例えばユーザの操作等に応じてＵＳＢデバイス３００ａを利用する場合において、ＵＳＢデバイス３００ａと接続するためにデバイスサーバ１００にリモートデバイス接続要求を送信し（ステップＳ１０３）、完了応答を受信し（ステップＳ１０４）、バスドライバ２２１ａにＵＳＢデバイス３００ａを登録して（ステップＳ１０５）、完了応答を受ける（ステップＳ１０６）。なお、ステップＳ１０３でのリモートデバイス接続要求では、例えば、ネットワーク２０においてデバイスサーバ１００との間でＴＣＰセッションを確立する。
【００６９】
次に、デバイス接続クライアント２２１ｂは、デバイスサーバ１００に、アドレス情報の要求を送信し（ステップＳ１０７）、デバイスサーバ１００から１つ以上のデバイス制御ＵＲＬであるアドレス情報を受信する（ステップＳ１０８）。
【００７０】
アドレス情報を受信したデバイス接続クライアント２２１ｂは、ＵＳＢデバイス３００ａの制御のための第１種情報（制御コマンド等）を生成するためのデバイス制御プログラムを配信するサーバに係るデバイス制御ＵＲＬをランタイムエンジン２２２に通知し、ランタイムエンジン２２２を起動する（ステップＳ１０９）。これにより、ランタイムエンジン２２２は、通知されたデバイス制御ＵＲＬが示すサーバにアクセスする（ステップＳ１１０）。なお、ユーザがランタイムエンジン２２２を起動して、任意のＵＲＬで示すウェブサイト等にアクセスさせてもよい。ここでは、ランタイムエンジン２２２がサーバ４２ａにアクセスしたものとして説明を続ける。
【００７１】
サーバ４２ａは、ランタイムエンジン２２２からのアクセスに対して、ウェブページ、デバイス制御プログラム等を記述した文書を返信する（ステップＳ１１１）。ユーザ操作に応じて任意のウェブサイトにアクセスし、文書を取得した場合は、ランタイムエンジン２２２は、そのデバイス制御プログラムの配信元のサーバ４２ａの信頼性を、バスドライバ２２１ａに問い合わせ（ステップＳ１１２）、バスドライバ２２１ａはその信頼性をデバイス接続クライアント２２１ｂに問い合わせる（ステップＳ１１３）。そして、デバイス接続クライアント２２１ｂは、デバイスサーバ１００にアドレス情報の要求を送信して（ステップＳ１１４）、デバイスサーバ１００からアドレス情報を受信し（ステップＳ１１５）、バスドライバ２２１ａにアドレス情報を転送する（ステップＳ１１６）。続いてバスドライバ２２１ａはアドレス情報をランタイムエンジン２２２に転送する（ステップＳ１１７）。
【００７２】
ランタイムエンジン２２２は、取得したアドレス情報に基づいて、デバイス制御プログラムの配信元のサーバ４２ａの信頼性を判断し、信頼性がないと判断した場合にはデバイス制御プログラムを実行しない。また、信頼性があると判断した場合には、ランタイムエンジン２２２は、サーバ４２ａから受信したデバイス制御プログラムの実行を開始する（ステップＳ１１８）。
【００７３】
ホストデバイス２００ａのランタイムエンジン２２２は、デバイス制御プログラムの送信元の場所が、デバイスサーバ１００から送信されたアドレス情報に基づいて適正とされる場合に、このデバイス制御プログラムを実行する。このデバイス制御プログラムの実行により、第１種情報が生成されてランタイムエンジン２２２からバスドライバ２２１ａに通知される（ステップＳ１１９）。続いて、第１種情報が、バスドライバ２２１ａからデバイス接続クライアント２２１ｂに通知され（ステップＳ１２０）、デバイス接続クライアント２２１ｂからデバイスサーバ１００に送信される（ステップＳ１２１）。
【００７４】
デバイス接続クライアント２２１ｂが送信した第１種情報をネットワーク２０経由で受信したデバイスサーバ１００は、第１種情報をＵＳＢデバイス３００ａへと転送する（ステップＳ１２２）。これにより第１種情報に基づいてＵＳＢデバイス３００ａで処理がなされ、処理結果等を示す第２種情報がＵＳＢデバイス３００ａからデバイスサーバ１００に送信される（ステップＳ１２３）。
【００７５】
第２種情報を受信したデバイスサーバ１００は、第２種情報を、ネットワーク２０を介してホストデバイス２００ａのデバイス接続クライアント２２１ｂへと転送する（ステップＳ１２４）。第２種情報を受信したデバイス接続クライアント２２１ｂは、第２種情報をバスドライバ２２１ａに通知し（ステップＳ１２５）、バスドライバ２２１ａは第２種情報をランタイムエンジン２２２に転送する（ステップＳ１２６）。これにより、実行中のデバイス制御プログラムは第２種情報に応じて、処理を行うことが可能となる。なお、ランタイムエンジン２２２に実行されるデバイス制御プログラムの内容次第で、ステップＳ１１９〜Ｓ１２６は例えば複数回実行され得る。
【００７６】
［１．７  ネットワークシステム１０の効果］
ネットワークシステム１０では、デバイスサーバ１００により、第１種情報の生成に用いられる生成用情報（例えばデバイス制御プログラム）の所在場所を示すアドレス情報がホストデバイス２００ａに提供される。このため、ユーザ操作に応じて任意のウェブサイトにアクセスし、情報を取得した場合であっても、ホストデバイス２００ａは、このアドレス情報に基づいて、取得した生成用情報に関してその出所であるウェブサイト等が信頼できるものであるか否かを判定可能になる。そして、ホストデバイス２００ａは信頼できないウェブサイト等のサーバからダウンロードした生成用情報を利用しないようにすることができる。ＵＳＢデバイス３００ａがアドレス情報に相当する情報を出力する機能を有する必要はない。アドレス情報を提供するデバイスサーバ１００におけるファームウェアの更新等によりアドレス情報を随時最新の状態に更新し得るので、例えばデバイス制御プログラムを配信する正規の配信サーバのウェブサイトの移転等に、柔軟に対応することが可能となる。
【００７７】
（実施の形態２）
以下、上述した実施の形態におけるネットワークシステム１０の一部を変形したネットワークシステム１０ａについて説明する。
【００７８】
［２．１  ネットワークシステム１０ａの構成］
図８は、ネットワークシステム１０ａの構成図である。
【００７９】
ネットワークシステム１０ａは、実施の形態１で示したネットワークシステム１０におけるデバイスサーバ１００を部分的に変形してデバイスサーバ１００ａとしたものである。ネットワークシステム１０ａの構成要素のうち、実施の形態１で示したネットワークシステム１０の構成要素と同一のものについては、図８において図１と同じ符号を付しており、ここでの説明を省略する。ネットワークシステム１０ａは、ここで特に示さない点についてはネットワークシステム１０と同様である。
【００８０】
外部装置４３は、信頼できる適正な生成用情報（例えばデバイス制御プログラム）の所在するネットワークアドレスを示すアドレス情報を、ＵＳＢデバイスのＩＤと対応付けたデータベース（ＤＢ）を備えるコンピュータである。外部装置４３は、デバイスサーバ１００ａから、ＵＳＢデバイスのＩＤをキーとしてアドレス情報を要求された場合に、そのＩＤをキーにしてＤＢを検索して、そのＩＤに対応する１つ又は複数のアドレス情報を、要求元のデバイスサーバ１００ａに返信する機能を有する。
【００８１】
デバイスサーバ１００ａは、デバイスサーバ１００と同様のハードウェア構成を有し、ここで特に示さない点についてはデバイスサーバ１００と同様である。デバイスサーバ１００ａは、ネットワーク２０、ルータ４０、及び、広域ネットワーク４１を介して、外部装置４３と通信可能である。
【００８２】
以下、ネットワークシステム１０ａにおいてホストデバイス２００ａがデバイスサーバ１００ａを介してＵＳＢデバイス３００ａに処理を実行させる例を想定して、デバイスサーバ１００ａ及びホストデバイス２００ａを中心に説明を行う。
【００８３】
［２．２  デバイスサーバ１００ａ及びホストデバイス２００ａの機能構成］
図９は、デバイスサーバ１００ａ及びホストデバイス２００ａの機能ブロック図である。ホストデバイス２００ａについては図４と同様である。なお、図９には、図４と同様ホストデバイス２００ａがデバイスサーバ１００ａを介して制御し得るＵＳＢデバイス３００ａと、ホストデバイス２００ａがデバイス制御プログラム等の取得のためにアクセスし得るサーバ４２ａを付記し、新たに、デバイスサーバ１００ａにアドレス情報を提供し得る外部装置４３を付記している。
【００８４】
デバイスサーバ１００ａは、機能面においては、図９に示すように、第１Ｉ／Ｆ１１０、第２Ｉ／Ｆ１２０、処理部１３０、記憶部１４０及び取得部１６０を有する。デバイスサーバ１００ａの機能構成要素のうち、実施の形態１で示したデバイスサーバ１００と同様のものについては、図９で図４と同じ符号を付しており、ここでは説明を省略する。
【００８５】
第１制御部１３１は、例えば、第２Ｉ／Ｆ１２０を介してホストデバイス２００ａから、予め定められた、アドレス情報の要求を受信した際に、ホストデバイス２００ａに対して第２Ｉ／Ｆ１２０を介してアドレス情報を送信する。第１制御部１３１が送信するアドレス情報は、取得部１６０が取得して記憶部１４０に格納されたものであり、信頼されるべき適正な生成用情報の所在するネットワークアドレスを示す。
【００８６】
記憶部１４０は、記憶装置１０２の一領域により実現され、取得部１６０に格納された、第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を保持する他、プロセッサ１０１に各機能を実行させるための制御プログラムを記憶している。
【００８７】
取得部１６０は、記憶装置１０２に格納されたプログラムを実行するプロセッサ１０１等により実現される。取得部１６０は、デバイスサーバ１００ａの外部の機器（例えば外部装置４３）からアドレス情報を取得してそのアドレス情報を記憶部１４０の記憶媒体に格納する。具体的には、取得部１６０は、予め定められた外部装置４３のＩＰアドレス等の情報に基づいて、第２Ｉ／Ｆ１２０を介して、外部装置４３にアクセスして、第１Ｉ／Ｆ１１０に接続されたＵＳＢデバイス３００ａ等のＵＳＢデバイスについてのＩＤ（図７のステップＳ１０２参照）をキーとして外部装置４３に通知してアドレス情報を要求することで、ＵＳＢデバイス３００ａ等に対応するデバイス制御プログラムの信頼できる適正な配信サーバに係るデバイス制御ＵＲＬを示すアドレス情報を取得する。取得部１６０は、取得したアドレス情報を、記憶部１４０に格納する。
【００８８】
［２．３  デバイスサーバ１００ａの動作］
図１０は、デバイスサーバ１００ａの処理の一例を示すフローチャートである。以下、同図に即して、ネットワークシステム１０ａの動作についてデバイスサーバ１００ａの動作を中心に説明する。ここでは、ホストデバイス２００ａが、ＵＳＢデバイス３００ａを制御する例を用いて説明する。なお、実施の形態１で示した処理のステップと同様のステップについては、図１０において図６と同じ符号を付しており、ここでは説明を適宜省略する。
【００８９】
前提として、デバイスサーバ１００ａは、第１Ｉ／Ｆ１１０に接続されているＵＳＢデバイス３００ａ、３００ｂに対してＵＳＢ規格に従ってコンフィギュレーションを行うよう制御し、この結果としてＵＳＢデバイス３００ａ、３００ｂから、ＵＳＢデバイスのＩＤ等を含むデバイスディスクリプタ等を取得している。
【００９０】
デバイスサーバ１００ａは、ホストデバイス２００ａから、ＵＳＢデバイス３００ａにおける処理に用いられる第１種情報の生成に用いられる生成用情報（例えばデバイス制御プログラム）の所在場所を示すアドレス情報の要求を受信した場合には（ステップＳ１３）、取得部１６０により、ＵＳＢデバイス３００ａのＩＤをキーにして外部装置４３からアドレス情報（デバイス制御ＵＲＬ）を取得し（ステップＳ１３ａ）、第１制御部１３１がホストデバイス２００ａにアドレス情報を送信する（ステップＳ１４）。
【００９１】
［２．４  ネットワークシステム１０ａの効果］
ネットワークシステム１０ａでは、デバイスサーバ１００ａにより、第１種情報の生成に用いられる生成用情報（例えばデバイス制御プログラム）の所在場所を示すアドレス情報が外部装置４３から取得されてホストデバイス２００ａに提供される。このため、ホストデバイス２００ａは、ユーザ操作に応じて任意のウェブサイトにアクセスし、生成用情報を取得した場合であっても、このデバイスサーバ１００から提供されるアドレス情報に基づいて、取得した生成用情報に関してその出所であるウェブサイト等が信頼できるものであるか否かを判定可能になる。そして、ホストデバイス２００ａは信頼できないウェブサイト等のサーバからダウンロードした生成用情報を利用しないようにすることができる。外部装置４３で、ＵＳＢデバイスの制御用のデバイス制御プログラム等を配信するサーバのアドレス等をＤＢで適切に管理すれば、例えばそのサーバのウェブサイトの移転等に、適切に対応することが可能となる。
【００９２】
（実施の形態３）
以下、上述した実施の形態におけるネットワークシステム１０の一部を変形したネットワークシステム１０ｂについて説明する。
【００９３】
［３．１  ネットワークシステム１０ｂの構成］
図１１は、ネットワークシステム１０ｂの構成図である。
【００９４】
ネットワークシステム１０ｂは、実施の形態１で示したネットワークシステム１０の一部を変形したものである。ネットワークシステム１０ｂの構成要素のうち、実施の形態１で示したネットワークシステム１０の構成要素と同一のものについては、図１１において図１と同じ符号を付しており、ここでの説明を省略する。
【００９５】
図１１に示すようにネットワーク２０に接続された機器には、デバイスサーバ１００ｂ、ホストデバイス２００ａ、及び、ホストデバイス２００ｂが含まれ、他の機器が接続されていてもよい。
【００９６】
デバイスサーバ１００ｂは、デバイスサーバ１００と同様のハードウェア構成を有し、ウェブサーバ機能を付加したものであり、ここで特に示さない点についてはデバイスサーバ１００と同様である。
【００９７】
以下、ネットワークシステム１０ｂにおいてホストデバイス２００ａがデバイスサーバ１００ｂを介してＵＳＢデバイス３００ａに処理を実行させる例を想定して、デバイスサーバ１００ｂ及びホストデバイス２００ａを中心に説明を行う。
【００９８】
［３．２  デバイスサーバ１００ｂ及びホストデバイス２００ａの機能構成］
図１２は、デバイスサーバ１００ｂ及びホストデバイス２００ａの機能ブロック図である。ホストデバイス２００ａについては図４と同様である。なお、図１２には、ホストデバイス２００ａがデバイスサーバ１００ｂを介して制御し得るＵＳＢデバイス３００ａを付記している。
【００９９】
デバイスサーバ１００ｂは、機能面においては、図１２に示すように、第１Ｉ／Ｆ１１０、第２Ｉ／Ｆ１２０、処理部１３０ｂ及び記憶部１４０ｂを有する。デバイスサーバ１００ｂの機能構成要素のうち、実施の形態１で示したデバイスサーバ１００と同様のものについては、図１２で図４と同じ符号を付しており、ここでは説明を省略する。
【０１００】
記憶部１４０ｂは、記憶装置１０２の一領域により実現され、第１種情報の生成に用いられる生成用情報の所在場所としてデバイスサーバ１００ｂを示すアドレス情報、つまりデバイスサーバ１００ｂにおけるウェブサーバのネットワークアドレスを示すアドレス情報を記憶する他、プロセッサ１０１に各機能を実行させるための制御プログラムを記憶している。記憶部１４０ｂは、更に、ＵＳＢデバイス３００ａ等に対応するデバイス制御プログラムである制御用スクリプト等の生成用情報を記憶し、ウェブページの記述及びその生成用情報を直接的又は間接的に示す記述を含む文書（例えばＨＴＭＬ文書）を記憶している。なお、この生成用情報、文書等は、例えば、必要に応じてデバイスサーバ１００ｂのファームウェアの更新によって、最新の内容へと更新されるようにしてもよい。
【０１０１】
処理部１３０ｂは、記憶装置１０２に格納されたプログラムを実行するプロセッサ１０１等により実現される。処理部１３０ｂは、第１制御部１３１と第２制御部１３２と第３制御部１３３とを含む。
【０１０２】
第１制御部１３１は、ＵＳＢデバイス３００ａにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の信頼できる適正な所在場所としてデバイスサーバ１００ｂを示すアドレス情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する情報提供機能を実現する。具体的には、第１制御部１３１は、例えば、第２Ｉ／Ｆ１２０を介してホストデバイス２００ａから、予め定められた、アドレス情報の要求を受信した際に、ホストデバイス２００ａに対して第２Ｉ／Ｆ１２０を介してデバイスサーバ１００ｂを示すアドレス情報を送信する。
【０１０３】
第３制御部１３３は、記憶部１４０ｂに記憶されている生成用情報を第２Ｉ／Ｆ１２０を介してホストデバイス２００ａに送信する機能を有する。具体的には、第３制御部１３３は、ウェブサーバ機能を有し、アクセスされた場合に、記憶部１４０ｂに記憶されている、ウェブページを記述して生成用情報を示す記述を含む文書をアクセス元に送信するウェブサーバとして機能する。
【０１０４】
［３．３  ネットワークシステム１０ｂの各機器の連携動作］
図１３は、ネットワークシステム１０ｂにおける各機器の連携動作の一例を示すシーケンス図である。以下、同図に即して、ネットワークシステム１０ｂの具体的動作について説明する。同図の例では、ホストデバイス２００ａのドライバ２２１は、例えばオペレーティングシステムの一部等となるバスドライバと、通信部２１０及びネットワーク２０を介して遠隔のデバイスと通信するデバイス接続クライアント２２１ｂとに分けて表している。
【０１０５】
ステップＳ２０１〜Ｓ２０７は、実施の形態１で示したステップＳ１０１〜Ｓ１０７と同様であり、ステップＳ２１２〜Ｓ２２６は、実施の形態１で示したステップＳ１１２〜Ｓ１２６と同様であるので、ここでは説明を適宜省略する。
【０１０６】
デバイスサーバ１００ｂは、ＵＳＢデバイス３００ａ等のコンフィギュレーションを行い（ステップＳ２０１）、ＩＤ等を取得する（ステップＳ２０２）。デバイス接続クライアント２２１ｂは、デバイスサーバ１００ｂにリモートデバイス接続要求を送信し（ステップＳ２０３）、完了応答を受信し（ステップＳ２０４）、バスドライバ２２１ａにＵＳＢデバイス３００ａを登録して（ステップＳ２０５）、完了応答を受ける（ステップＳ２０６）。
【０１０７】
次に、デバイス接続クライアント２２１ｂは、デバイスサーバ１００ｂに、アドレス情報の要求を送信し（ステップＳ２０７）、デバイスサーバ１００ｂからデバイスサーバ１００ｂのネットワークアドレスを示すアドレス情報を受信する（ステップＳ２０８）。
【０１０８】
アドレス情報を受信したデバイス接続クライアント２２１ｂは、ＵＳＢデバイス３００ａの制御に必要な第１種情報を生成するための生成用情報を配信するウェブサーバ機能を有するデバイスサーバ１００ｂを示すＵＲＬをランタイムエンジン２２２に通知して、ランタイムエンジン２２２を起動する（ステップＳ２０９）。これにより、ランタイムエンジン２２２は、デバイスサーバ１００ｂにアクセスする（ステップＳ２１０）。
【０１０９】
デバイスサーバ１００ｂの第３制御部１３３は、ランタイムエンジン２２２からのアクセスに応じて、ウェブページ、デバイス制御プログラム等を記述した文書を返信する（ステップＳ２１１）。ランタイムエンジン２２２は、そのデバイス制御プログラムの配信元のデバイスサーバ１００ｂの信頼性をバスドライバ２２１ａに問い合わせ（ステップＳ２１２）、バスドライバ２２１ａは問い合わせをデバイス接続クライアント２２１ｂに転送する（ステップＳ２１３）。そして、デバイス接続クライアント２２１ｂは、デバイスサーバ１００ｂにアドレス情報の要求を送信して（ステップＳ２１４）、デバイスサーバ１００ｂからデバイスサーバ１００ｂのネットワークアドレスを示すＵＲＬを内容とするアドレス情報を受信し（ステップＳ２１５）、バスドライバ２２１ａにアドレス情報を転送する（ステップＳ２１６）。続いてバスドライバ２２１ａはアドレス情報をランタイムエンジン２２２に転送する（ステップＳ２１７）。
【０１１０】
ランタイムエンジン２２２は、取得したアドレス情報に基づいて、デバイス制御プログラムの配信元のデバイスサーバ１００ｂの信頼性を判断し、信頼性がないと判断した場合にはデバイス制御プログラムを実行しない。また、信頼性があると判断した場合には、ランタイムエンジン２２２は、デバイスサーバ１００ｂから受信したデバイス制御プログラムの実行を開始する（ステップＳ２１８）。例えば、ランタイムエンジン２２２が、ユーザの操作等に応じてデバイスサーバ１００ｂ以外からデバイス制御プログラムをダウンロードしたとしても、そのデバイス制御プログラムの出所が信頼できる出所でないことを、取得したアドレス情報に基づいて判定できるので、不適切なデバイス制御プログラムの実行を阻止できる。
【０１１１】
ホストデバイス２００ａのランタイムエンジン２２２は、ウェブブラウザ機能によりデバイスサーバ１００ｂのウェブサーバにアクセスすることで文書（例えばＨＴＭＬ文書）を受信してその文書に従って例えばウェブページを表示し、例えばユーザによるホストデバイス２００ａへの操作に応じてデバイスサーバ１００ｂから提供されたデバイス制御プログラムを実行する。デバイスサーバ１００ｂから提供されたデバイス制御プログラムの実行により、生成された第１種情報が、ランタイムエンジン２２２からバスドライバ２２１ａに通知され（ステップＳ２１９）、続いてデバイス接続クライアント２２１ｂに通知され（ステップＳ２２０）、続いてデバイスサーバ１００ｂに送信される（ステップＳ２２１）。デバイスサーバ１００ｂは、第１種情報をＵＳＢデバイス３００ａへと転送する（ステップＳ２２２）。これにより第１種情報に基づいてＵＳＢデバイス３００ａで処理がなされ、処理結果等を示す第２種情報がＵＳＢデバイス３００ａからデバイスサーバ１００ｂに送信される（ステップＳ２２３）。デバイスサーバ１００ｂは、第２種情報をデバイス接続クライアント２２１ｂへ転送する（ステップＳ２２４）。第２種情報は、デバイス接続クライアント２２１ｂからバスドライバ２２１ａに通知され（ステップＳ２２５）、ランタイムエンジン２２２に通知される（ステップＳ２２６）。これにより、実行中のデバイス制御プログラムは第２種情報に応じて、処理を行うことが可能となる。なお、ランタイムエンジン２２２に実行されるデバイス制御プログラムの内容次第で、ステップＳ２１９〜Ｓ２２６は例えば複数回実行され得る。
【０１１２】
［３．４  ネットワークシステム１０ｂの効果］
ネットワークシステム１０ｂでは、ウェブサーバ機能を有し、第１種情報の生成に用いられる生成用情報（例えばデバイス制御プログラム）を提供し得るデバイスサーバ１００ｂにより、信頼できる生成用情報の所在場所としてデバイスサーバ１００ｂのネットワークアドレスを示すアドレス情報がホストデバイス２００ａに提供される。このため、ホストデバイス２００ａは、このアドレス情報に基づいて、取得した生成用情報に関してその出所が信頼できるものであるか否かを判定可能になる。そして、ホストデバイス２００ａは信頼できないウェブサイト等のサーバからダウンロードした生成用情報を利用しないようにすることができる。
【０１１３】
（その他の実施の形態等）
以上のように、本発明に係る技術の例示として実施の形態１〜３を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【０１１４】
上記実施の形態で示したネットワーク２０は、有線ＬＡＮであることとしたが、無線ＬＡＮであってもよく、例えばＩＥＥＥ８０２．１１シリーズの規格に従った無線ＬＡＮ部分を含んでいてもよい。また、上記実施の形態３で示したデバイスサーバ１００ｂの第２Ｉ／Ｆ１２０は、例えばホストデバイス２００ａとダイレクトに一対一で無線ＬＡＮ接続することとしてもよい。また、サーバ４２ａ、４２ｂは、ネットワーク２０に直接接続されていてもよい。
【０１１５】
また、上記実施の形態では、デバイスサーバ１００、１００ａ、１００ｂが、ホストデバイスからアドレス情報の要求を受けた場合にアドレス情報を送信する例を示したが、デバイスサーバ１００、１００ａ、１００ｂはアドレス情報の要求を受けなくても、何らかの事象の発生を契機としてホストデバイスに対してアドレス情報を送信してもよい。
【０１１６】
また、上記実施の形態１で示したデバイスサーバが情報提供機能によりホストデバイスに送信するアドレス情報は、更新部１５０によるファームウェアの更新によって更新されることとしたが、操作に応じて更新部１５０により更新されてもよい。例えば、更新部１５０は、デバイスサーバ１００の管理者等による、アドレス情報の設定管理のための設定値の入力及び編集の操作を、ユーザＩ／Ｆを介して受け付けて、その操作に応じた設定値に基づいて記憶部１４０の記憶媒体に格納されるアドレス情報のデバイス制御ＵＲＬを追加或いは変更等してもよい。また、デバイスサーバは、上記実施の形態１〜３で示したアドレス情報の個々の内容を組み合わせることで生成した、生成用情報の信頼できる適切な配信サーバに係るＵＲＬのリストを、ホストデバイスに送信することとしてもよい。
【０１１７】
また、上記実施の形態２では、取得部１６０が、ＵＳＢデバイスのＩＤをキーとして用いてアドレス情報を取得する例を示したが、例えばデバイスクラス等といった、ＩＤ以外のキーを用いてアドレス情報を取得してもよい。また、取得部１６０は、キーを用いずに外部装置４３から、第１種情報の生成に係る生成用情報（デバイス制御プログラム等）の１つ又は複数の信頼できる配信元を示すデバイス制御ＵＲＬを取得することとしてもよい。外部装置４３は、アドレス情報のバージョンを管理し、取得部１６０は外部装置４３から最新バージョンのアドレス情報を取得するようにしてもよい。
【０１１８】
また、上記実施の形態では、ＵＳＢデバイス３００ａ等に処理を行わせるためにホストデバイスが送信する第１種情報の生成のための生成用情報が例えばデバイス制御プログラムであることを示したが、生成用情報は、プログラムに限られず、例えば、第１種情報の生成に利用可能な制御コマンド或いは制御パラメータのリスト等といった情報、ユーザに第１種情報を選定させるために用いられるＧＵＩの情報等であってもよい。
【０１１９】
また、上記実施の形態では、デバイスサーバの第１Ｉ／Ｆ１１０は、ＵＳＢ通信インタフェースであるとしたが、その他のインタフェースであってもよく、デバイスサーバ１００、１００ａ、１００ｂに、第１Ｉ／Ｆ１１０により、ＵＳＢ以外のインタフェースに準拠したデバイスが接続されることとしてもよい。そのデバイスは、例えば、プリンタ、スキャナ、ハードディスク装置、モニタ、スピーカ等である。
【０１２０】
また、上記実施の形態で示した各機器における各構成要素の機能分担は一例に過ぎず、変更可能である。
【０１２１】
また、上述した各機器による各種処理（図６、図７、図１０及び図１３に示す処理等）の各処理ステップの実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、その一部を省略したり、その一部を並列に実行したりすることができる。また、図６、図７、図１０及び図１３に示された手順の全部又は一部を含む情報処理は、機器の電子回路等のハードウェアによりソフトウェアを用いずに実現されても、ソフトウェアを用いて実現されてもよい。なお、ソフトウェアによる処理は、各機器に含まれるプロセッサがメモリに記憶された制御プログラムを実行することにより実現されるものである。また、そのプログラムを記録媒体に記録して配布し、流通させてもよい。例えば、その配布されたプログラムを機器にインストールして、機器のプロセッサに実行させることで、機器に上述した各種処理を実行させることが可能となる。
【０１２２】
また、上述した各機器を構成する構成要素の一部又は全部は、１つ又は複数の集積回路で構成され得る。
【０１２３】
また、本発明の一態様としては、例えば図６、図７、図１０、図１３等に示す処理手順の全部又は一部を含む情報処理方法であるとしてもよい。例えば、情報処理方法は、デバイスサーバ１００、１００ａ、１００ｂにおいて用いられる情報処理方法であって、デバイスにおける処理のために用いられる第１種情報の生成に用いられる生成用情報の所在場所を示すアドレス情報を第２Ｉ／Ｆ１２０を介してホストデバイスに送信するアドレス情報送信ステップ（例えばステップＳ１４）と、ホストデバイスが送信した第１種情報を第２Ｉ／Ｆ１２０を介して受信してその第１種情報を第１Ｉ／Ｆ１１０を介してデバイスに送信する第１種情報転送ステップ（例えばステップＳ１５、Ｓ１６）と、第１種情報に基づくデバイスにおける処理の結果に関する第２種情報を第１Ｉ／Ｆ１１０を介して受信して、その第２種情報を第２Ｉ／Ｆ１２０を介してホストデバイスに送信する第２種情報転送ステップ（例えばステップＳ１７、Ｓ１８）とを含む方法である。また、本発明の一態様としては、この方法に係る所定情報処理をコンピュータにより実現する制御プログラム（コンピュータプログラム）であるとしてもよい。
【０１２４】
その他、上述した各実施の形態に対して当業者が当然に想到する各種変形を施して得られる形態、又は、各実施の形態及び変形例で示した構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
【産業上の利用可能性】
【０１２５】
本発明は、ホストデバイスがネットワークを介して周辺機器（デバイス）を利用するネットワークシステムに利用可能である。
【符号の説明】
【０１２６】
１０、１０ａ、１０ｂ  ネットワークシステム
２０  ネットワーク
３０ａ、３０ｂ  ＵＳＢケーブル
４０  ルータ
４１  広域ネットワーク
４２ａ、４２ｂ  サーバ
４３  外部装置
１００、１００ａ、１００ｂ  デバイスサーバ
１０１、２０１  プロセッサ
１０２、２０２  記憶装置
１０３、２０５  バス
１１０  第１Ｉ／Ｆ
１２０  第２Ｉ／Ｆ
１３０、１３０ｂ、２２０  処理部
１３１  第１制御部
１３２  第２制御部
１３３  第３制御部
１４０、１４０ｂ  記憶部
１５０  更新部
１６０  取得部
２００ａ、２００ｂ  ホストデバイス
２１０  通信部
２２１  ドライバ
２２１ａ  バスドライバ
２２１ｂ  デバイス接続クライアント
２２２  ランタイムエンジン
２３０  操作受付部
２４０  表示部
３００ａ、３００ｂ  ＵＳＢデバイス
【図１】
2018205801.tif 000003
【図２】
2018205801.tif 000004
【図３】
2018205801.tif 000005
【図４】
2018205801.tif 000006
【図５】
2018205801.tif 000007
【図６】
2018205801.tif 000008
【図７】
2018205801.tif 000009
【図８】
2018205801.tif 000010
【図９】
2018205801.tif 000011
【図１０】
2018205801.tif 000012
【図１１】
2018205801.tif 000013
【図１２】
2018205801.tif 000014
【図１３】
2018205801.tif 000015