(57)【要約】【課題】ＰＴＰを用いたファイル転送では、「ＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔ」の指示はホストからスレーブの方向に限定されており、スレーブ側から部分画像データの転送要求を発行することはできなかった。【解決手段】クライアントである第１機器からサーバである第２機器に対して第２機器が記憶している画像ファイルの転送要求を発行し（Ｓ６１）、その転送要求に応答して、第２機器は第１機器にオブジェクト要求を発行し、第１機器はそのオブジェクト要求に応答して第２機器に対してスクリプトによりファイルＩＤ及びデータサイズを送信し（Ｓ６３）、第２機器は、そのスクリプトに応答してファイルＩＤ及びデータサイズに対応する部分画像データを第１機器に送信する（Ｓ５４）。【選択図】  図２５
2004310613.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムであって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求を発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトによりファイルＩＤ及びデータサイズを送信し、
前記第２機器は、前記スクリプトに応答して前記ファイルＩＤ及びデータサイズに対応する部分画像データを前記第１機器に送信するようにしたことを特徴とする画像データ転送システム。
【請求項２】
前記スクリプトは更に前記ファイルにおけるデータのオフセット情報を含むことを特徴とする請求項１に記載の画像データ転送システム。
【請求項３】
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムにおけるデータ転送方法であって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求を発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトによりファイルＩＤ及びデータサイズを送信し、
前記第２機器は、前記スクリプトに応答して前記ファイルＩＤ及びデータサイズに対応する部分画像データを前記第１機器に送信するようにしたことを特徴とするデータ転送方法。
【請求項４】
前記スクリプトは更に、前記ファイルにおけるデータのオフセット情報を含むことを特徴とする請求項３に記載のデータ転送方法。
【請求項５】
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムであって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求をスクリプトを用いて発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトにより応答し、
前記第２機器は、前記スクリプトに応答して、前記画像ファイルをスクリプトを用いて前記第１機器に送信するようにしたことを特徴とする画像データ転送システム。
【請求項６】
前記機器間でのデータ転送プロトコルはＰＴＰであることを特徴とする請求項５に記載の画像データ転送システム。
【請求項７】
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムにおけるデータ転送方法であって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求をスクリプトを用いて発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトにより応答し、
前記第２機器は、前記スクリプトに応答し、スクリプトを用いて前記画像ファイルを前記第１機器に送信するようにしたことを特徴とするデータ転送方法。
【請求項８】
前記機器間でのデータ転送プロトコルはＰＴＰであることを特徴とする請求項７に記載のデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＵＳＢインターフェースを介して少なくとも３つの機器をサーバクライアント接続して画像データを転送する画像データ転送システム及びその方法に関するものである。尚、本明細書中においてはデジタルカメラを仮にＤＳＣと略して記述することとするが、静止画撮影に限るという意味ではなく、デジタルビデオカメラのような動画も取れるカメラもデジタルカメラ（ＤＳＣ）に含まれたことが前提で本説明はなされるものとする。
【０００２】
【従来の技術】
通常、デジタルカメラで撮影した映像をプリントする場合、そのデジタルカメラに記憶された画像をパーソナルコンピュータ（以下、ＰＣ）で読取り、ＰＣ上のアプリケーションを用いて、そのＰＣに接続されたプリンタで印刷するという作業を踏む。つまり、画像データの流れとしては、ＤＳＣ→ＰＣ→プリンタという手順になり、ＰＣの介在を必須としている。これではＤＳＣに記憶されている画像を印刷するのに、一々ＰＣを起動しなければならないという問題もある。
【０００３】
かかる点に着目し、ＤＳＣとプリンタとをダイレクトに接続し、ＤＳＣが通常備えている表示器上でプリント指示を与える（以下、フォトダイレクトプリントという）ことにより、デジタルカメラで撮影された画像を印刷することができるプリンタ装置も市場に出ている。
【０００４】
【発明が解決しようとする課題】
ところで、昨今のＤＳＣの多くは、ＰＣやプリンタ装置と接続するための汎用の通信手段を備えている。この通信手段は、典型的にはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）であるが、このＵＳＢを用いた接続の場合、ＤＳＣはスレーブ、プリンタ装置はホストとして通信が確立する。そして、このＵＳＢを介してＤＳＣからプリントを行うために、ＤＳＣとプリンタとが直接接続される。
【０００５】
これに対し更にＤＶＤ等の記憶装置を接続して、より大量の画像データをＤＳＣから取り込んで記憶装置に記憶させたり、或いはテレビジョン受像機等のディスプレイに接続して、そのＤＳＣで撮影された画像を、より大きい画面で見たいという要望が出てきている。これに伴って機器間で転送される画像データの量が増大するため、メモリ容量の少ない機器では、所望とする画像データを一度に受取って格納できないという事態が発生する。
【０００６】
このような場合のために、例えばＰＴＰでは「ＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔ」というコマンドを備えて、このコマンドのパラメータでオフセットや最大取得バイト数を指定することにより、部分的な画像データを取得することが行われている。しかしながら、このＰＴＰを用いたファイル転送では、「ＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔ」の指示はホストからスレーブの方向に限定されており、スレーブ側から全体及び部分画像データの転送要求を発行することはできなかった。また、ＰＴＰではホストからスレーブの方向へのファイル転送は「ＳｅｎｄＯｂｊｅｃｔ」というコマンドで実現されるが、この場合に転送されるべきファイルはホストが指定する形式になっており、スレーブ側の機器が指定する手段は無い。更にＰＴＰではホストからスレーブの方向への部分ファイル転送を実現するコマンドは無い。特に、前述のＵＳＢを介した接続形態では、クライアント側の例えばプリンタ装置のメモリ容量が少なく、ＤＶＤ等の記憶装置に記憶されている所望の画像データを受取る場合、一度にその画像データの全てを受信して記憶できない事態が発生しても、クライアントからホストに対して部分画像データを要求することはできなかった。
【０００７】
本発明はかかる問題点に鑑みてなされたものであり、ＵＳＢを介して接続されたクライアントからホストに対して全体及び部分画像データを要求して受信できるようにすることを提案することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために本発明の画像データ転送システムは以下のような構成を備える。即ち、
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムであって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求を発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトによりファイルＩＤ及びデータサイズを送信し、
前記第２機器は、前記スクリプトに応答して前記ファイルＩＤ及びデータサイズに対応する部分画像データを前記第１機器に送信するようにしたことを特徴とする。
【０００９】
上記目的を達成するために本発明の画像データ転送システムは以下のような構成を備える。即ち、
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムであって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求をスクリプトを用いて発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトにより応答し、
前記第２機器は、前記スクリプトに応答して、前記画像ファイルをスクリプトを用いて前記第１機器に送信するようにしたことを特徴とする。
【００１０】
上記目的を達成するために本発明の画像データ転送システムにおける方法は以下のような工程を備える。即ち、
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムにおけるデータ転送方法であって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求を発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトによりファイルＩＤ及びデータサイズを送信し、
前記第２機器は、前記スクリプトに応答して前記ファイルＩＤ及びデータサイズに対応する部分画像データを前記第１機器に送信するようにしたことを特徴とする。
【００１１】
上記目的を達成するために本発明の画像データ転送システムにおける方法は以下のような工程を備える。即ち、
ＵＳＢインターフェースを介してサーバクライアント接続された機器間でデータを転送する画像データ転送システムにおけるデータ転送方法であって、
クライアントである第１機器からサーバである第２機器に対して前記第２機器が記憶している画像ファイルの転送要求をスクリプトを用いて発行し、
前記転送要求に応答して、前記第２機器は前記第１機器にオブジェクト要求を発行し、
前記第１機器は前記オブジェクト要求に応答して前記第２機器に対してスクリプトにより応答し、
前記第２機器は、前記スクリプトに応答し、スクリプトを用いて前記画像ファイルを前記第１機器に送信するようにしたことを特徴とする。
【００１２】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１３】
図１は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ装置）１０００の概観斜視図である。このＰＤプリンタ装置１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラからの画像データを受信して印刷する機能を備えている。
【００１４】
図１において、本実施の形態に係るＰＤプリンタ装置１０００の外殻をなす本体は、ケースＭ１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ装置１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部が形成されている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録シートが排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また、排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、用紙の支持面積を３段階に拡大、縮小させ得るようになっている。
【００１５】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）あるいはインクタンク（不図示）等の交換が可能となる。なお、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバーの開閉状態を検出し得るようになっている。
【００１６】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、記録シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドと記録シートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ装置１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００１７】
図２は、本実施の形態に係るＰＤプリンタ装置１０００の操作パネル１０１０の概観図である。
【００１８】
同図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、印刷したい範囲の先頭写真番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了した範囲の最後の写真番号（終了）、印刷部数（部数）、印刷に使用する用紙（記録シート）の種類（用紙種類）、１枚の用紙に印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要な用紙枚数の表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００１９】
次に図３を参照して、本実施の形態に係るＰＤプリンタ装置１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２０】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示し、その構成は図４のブロック図を参照して詳しく後述する。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ（ＵＳＢ  ＨＵＢ）で、このＰＤプリンタ装置１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）である。３０３０は例えばハードディスクやＤＶＤドライブ等の記憶装置で、画像データを記憶している。この記憶装置３０３０は，ＵＳＢコネクタ３０３１を介してＵＳＢにより接続されている。
【００２１】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００２２】
図４は、ＡＳＩＣ３００１の構成を示すブロック図で、この図４においても、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２３】
４００１はＰＣカードインターフェース部で、装着されたＰＣカード３０１１に記憶されている画像データを読取ったり、或いはＰＣカード３０１１へのデータの書き込み等を行う。４００２はＩＥＥＥ１２８４インターフェース部で、プリンタエンジン３００４との間のデータのやり取りを行う。このＩＥＥＥ１２８４インターフェース部４００２は、デジタルカメラ３０１２或いはＰＣカード３０１１に記憶されている画像データを印刷する場合に使用されるバスである。４００３はＵＳＢインターフェース部で、ＰＣ３０１０との間でのデータのやり取りを行う。４００４はＵＳＢホストインターフェース部で、デジタルカメラ３０１２との間でのデータのやり取りを行う。４００５は操作パネル・インターフェース部で、操作パネル１０１０からの各種操作信号を入力したり、表示部１００６への表示データの出力などを行う。４００６はビューワ・インターフェース部で、ビューワ１０１１への画像データの表示を制御している。４００７は各種スイッチやＬＥＤ４００９等との間のインターフェースを制御するインターフェース部である。４００８はＣＰＵインターフェース部で、ＤＳＰ（ＣＰＵ）３００２との間でのデータのやり取りの制御を行っている。４０１０はこれら各部を接続する内部バス（ＡＳＩＣバス）である。４０１１はＵＳＢインターフェース部で、記憶装置３０３０との間でのデータのやり取りを行う。
【００２４】
図５は、本実施の形態に係るＤＳＣ３０１２の構成を示すブロック図である。なお、このようなデジタルカメラ（ＤＳＣ）のハードウェアそのものは公知であるので、簡単に説明する（ファームウェアはＤＰＳ（Ｄｉｒｅｃｔ  Ｐｒｉｎｔ  Ｓｙｓｔｅｍ）対応になっている）。
【００２５】
同図において、３１はＤＳＣ３０１２全体の制御を司るＣＰＵであり、３２はＣＰＵ３１の処理手順（ファームウェア）を記憶しているＲＯＭである（ただし、ファームウェアは適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成される）。３３はＣＰＵ３３のワークエリアとして使用されるＲＡＭであり、３４は各種操作を行うスイッチ群である。３５は液晶表示器であり、撮像した画像を確認したり、各種設定を行う際のメニューを表示するために使用される。これら３４，３５は、本実施形態では、ダイレクトプリントシステムとして機能した場合、システム全体としてユーザインターフェースとして機能するようになる。３６は光学ユニットであり、主としてレンズ及びその駆動系で構成される。３７はＣＣＤ素子であり、３８はＣＰＵ３１の制御下において光学ユニット３６を制御するドライバである。３９は記憶媒体４０（コンパクトフラッシュ（登録商標）メモリカード、スマートメディア等）を接続するためのコネクタであり、４１はＰＣ或いは実施形態におけるＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。また後述するように、更にＵＳＢインターフェース４２を備えて、このＵＳＢインターフェースを介して直接記憶装置３０３０或いは後述のディスプレイ（テレビジョン受像機）に接続するように構成されていてもよい。
【００２６】
図６は、ＤＳＣ３０１２と同様に、このＰＤプリンタ装置１０００にＵＳＢを介して接続される記憶装置３０３０の構成を説明するブロック図である。
【００２７】
同図において、６０は記憶装置３０３０全体の制御を司るＣＰＵであり、６１はＣＰＵ６０の処理手順（ファームウェア）を記憶しているＲＯＭである（ただし、ファームウェアは適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成される）。６２はＣＰＵ６０のワークエリアとして使用されるＲＡＭである。６３は、本実施の形態に係るＰＤプリンタ装置１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。また後述するように、更にＵＳＢインターフェース６７を備えて、このＵＳＢインターフェースを介して直接ＤＳＣ３０１２或いはディスプレイに接続するように構成されていてもよい。
【００２８】
図７は、本実施の形態に係るＰＤプリンタ装置１０００とＤＳＣ３０１２との間でのインターフェースを説明する図である。尚、このＰＤプリンタ装置１０００と記憶装置３０３０との間のインターフェースも基本的に同様の階層構造を有している。
【００２９】
同図において、６００はＵＳＢによるインターフェース、６０１はブルーツース（Ｂｌｕｅｔｏｏｔｈ）によるインターフェースを示している。６０２はＤＰＳによるシステムを構築する際に組込まれるアプリケーションレイヤを示している。６０３は既存のプロトコル及びインターフェースを実行するためのレイヤで、ここではＰＴＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ），ＳＣＳＩ及びブルーツースのＢＩＰ（Ｂａｓｉｃ  Ｉｍａｇｅ  Ｐｒｏｆｉｌｅ），ＵＳＢインターフェース等が実装されている。本実施の形態に係るＤＰＳは、このようなプロトコルレイヤ等のアーキテクチャが実装されていて、その上にアプリケーションとして実装されることが前提である。ここではＰＤプリンタ装置１０００はＵＳＢホスト、カメラ３０１２（記憶装置３０３０）はＵＳＢデバイスとして規定されており、図７に示すように、それぞれ同じＤＰＳ構成となっている（但し、図７では記憶装置３０３０の構成は不図示である）。
【００３０】
本実施の形態に係るＤＰＳを用いることのメリットは、ＰＤプリンタ装置１０００とＤＳＣ３０１２が互いにＤＰＳへ移行する際、及び移行した後において、互いに情報のやりとりを行う場合には、一連の情報、一連の動作手順をスクリプト（Ｓｃｒｉｐｔ）で記述したファイル（テキストファイル）を生成し、それを相手側デバイスに送信し、受信側では受信したスクリプトを解釈して処理することにある。この結果、或る情報を相手側に伝えたい場合において、その情報が複数の要素で構成されている場合、一つ一つの要素をハンドシェークでやりとりすることが少なくでき、情報伝達に係るオーバーヘッドがなくなり、情報伝達の効率が向上するからである。例えば、ＤＳＣ３０１２側で、印刷させたい画像が複数存在する場合、その印刷させたい画像を好きなだけ選択し、それぞれに対して印刷条件を設定した場合、その一連の処理手順がスクリプトとして記述されてＰＤプリンタ装置１０００に通知することが可能になる。ＰＤプリンタ装置１０００側では、受信したスクリプトを解釈し、処理することになる。
【００３１】
［実施の形態１］
図８は、本発明の実施の形態１においてＰＤプリンタ装置１０００、ＤＳＣ３０１２及び記憶装置３０３０とをＵＳＢインターフェースで接続した場合の例を示す図である。尚、図８の例では、それぞれが２つのＵＳＢインターフェースを使用して互いに接続されている。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバをそれぞれ示しており、この図８の例では、ユーザがＤＳＣ３０１２を操作して、記憶装置３０３０に記憶されている画像データを指定してＰＤプリンタ装置１０００により印刷させる場合を示している。また記憶装置３０３０は、ＰＤプリンタ装置１０００と別体であっても、或いはＰＤプリンタ装置１０００に組込まれたものであっても良い。尚、図８において、記憶装置３０３０に２つの「ＳＳ」が示されているが、これは１つの「ＳＳ」を２つの外部ＳＣが共用する形態を示すもので、後述の図９（Ａ）と同じ意味である。
【００３２】
本実施の形態では通信プロトコルとしてＰＴＰを用いた場合の各クライアント及びサーバの動作を図３、図５、図６及び図８を参照して説明する。
【００３３】
図８におけるＰＤプリンタ装置１０００が担当している「ＰＳ」及び「ＳＣ」の機能は、図３のＤＳＰ（ＣＰＵ）３００２がプログラムメモリ３００３ａに格納された「ＰＳ」及び「ＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＰＳ」動作プログラムは、デジタルカメラ３０１が担当している「ＰＣ」からの印刷要求（Ｓｃｒｉｐｔ）等をＵＳＢ３００５，ＡＳＩＣ３００１を経由して受信して解析し、ＡＳＩＣ３００１を介してプリンタエンジン３００４を印刷要求に従って制御して印刷を行う。「ＳＣ」動作プログラムは、印刷に必要なファイルの取得要求が記述されたファイル要求（Ｓｃｒｉｐｔ）等を作成し、ＡＳＩＣ３００１，ＵＳＢＩ／Ｆ３０３１を介して記憶装置３０３０の担当している「ＳＳ」へ発行し、必要なファイル等を取得する。
【００３４】
またＤＳＣ３０１２が担当している「ＰＣ」及び「ＳＣ」の機能は、図５のＣＰＵ３１がＲＯＭ３２中に格納された「ＰＣ」及び「ＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＰＣ」動作プログラムは、印刷要求（Ｓｃｒｉｐｔ）等を作成し、Ｉ／Ｆ４１を介してＰＤプリンタ装置１０００が担当する「ＰＳ」に対して発行する。「ＳＣ」動作プログラムは、写真画像の閲覧に必要なファイルの取得要求が記述されたファイル要求（Ｓｃｒｉｐｔ）等を作成し、ＵＳＢＩ／Ｆ４２を介して記憶装置３０３０が担当している「ＳＳ」へ発行し、必要なファイルを取得する。
【００３５】
更に記憶装置３０３０が担当している「ＳＳ」の機能は、図６のＣＰＵ６０がＲＯＭ６１中に格納された「ＳＳ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＳＳ」動作プログラムは、ＰＤプリンタ装置１０００が担当している「ＳＣ」からのファイル取得要求（Ｓｃｒｉｐｔ）等をＵＳＢＩ／Ｆ６３を経由して受信して解析し、要求に従ってＲ／Ｗコントローラ６４を介してディスク６５内に格納されている画像ファイル等をＵＳＢＩ／Ｆ６３経由でＰＤプリンタ装置１０００が担当している「ＳＣ」へ送信する。また、ＤＳＣ３０１２が担当する「ＳＣ」からのファイル取得要求（Ｓｃｒｉｐｔ）等をＵＳＢＩ／Ｆ６７を経由して受信して解析し、要求に従ってＲ／Ｗコントローラ６４を介してディスク６５内に格納されている画像ファイル等をＵＳＢＩ／Ｆ６７経由でＤＳＣ３０１２１０００が担当している「ＳＣ」へ送信する。
【００３６】
上記各プログラムは、必ずしも全てがソフトウェアで実現される必要は無く、その一部、又は全部がハードウェアで実現されていても構わない事は言うまでも無い。
【００３７】
この場合は、まずＤＳＣ３０１２から記憶装置３０３０に対して「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、記憶装置３０３０に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。尚、この要求には、ＤＳＣ３０１２のＩＤが含まれている。これにより記憶装置３０３０は、このＤＳＣ３０１２のＩＤと、その要求を特定する要求ＩＤとを設定し、ディスク６５に記憶されている画像ファイルのリスト及びサムネイル画像を、その要求ＩＤと共にＤＳＣ３０１２に送る。これにより、それらサムネイル画像がインデックス画像としてＤＳＣ３０１２の表示器３５に表示される。そして、ユーザがＤＳＣ３０１２のＵＩを使用して、印刷したい画像を選択する。こうしてユーザが印刷したい画像を選択して印刷開始を指示すると、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して、その印刷したい画像を特定するファイルＩＤと前述の要求ＩＤとともに印刷開始を指示する「ＳｔａｒｔＪｏｂ」コマンドが送信される。これによりＰＤプリンタ装置１０００は、その印刷指示されたファイルＩＤと要求ＩＤに基づいて記憶装置３０３０に対して、「ＧｅｔＦｉｌｅ」コマンドを発行し、その画像データを要求する。これにより記憶装置３０３０から、その指定した画像データがＰＤプリンタ装置１０００に送信され、ＰＤプリンタ装置１０００で復号されて印刷される。
【００３８】
尚、前述の要求ＩＤは、詳しく後述するように、記憶装置３０３０がＤＳＣ３０１２に応答した時のファイルリストと、ＰＤプリンタ装置１０００から画像データの要求があった時のファイルリストのファイルＩＤとの対応を取るためのものである。
【００３９】
図９（Ａ）は、本実施の形態１においてＰＤプリンタ装置１０００、ＤＳＣ３０１２及び記憶装置３０３０とをＵＳＢインターフェースで接続した場合の他の例を示す図である。尚、図９の例では、ＰＤプリンタ装置１０００はＵＳＢのホストであり、ＵＳＢハブを介してＤＳＣ３０１２と記憶装置３０３０が接続されている（図９（Ｂ））。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＶＳＳ」は仮想ストレージサーバ、「ＶＳＣ」は仮想ストレージクライアントをそれぞれ示しており、この図９（Ａ）の例では、ユーザがＤＳＣ３０１２を操作して、記憶装置３０３０に記憶されている画像データを指定してＰＤプリンタ装置１０００により印刷させる場合を示している。
【００４０】
図９（Ａ）中のＰＤプリンタ装置１０００が担当している「ＰＳ」及び「ＳＣ」は、図８で説明した内容と同じであるので省略する。「ＶＳＳ」及び「ＶＳＣ」の機能は、図３のＤＳＰ（ＣＰＵ）３００２がプログラムメモリ３００３ａ中に格納された「ＶＳＳ」及び「ＶＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＶＳＳ」動作プログラムはあたかも記憶装置３０３０の担当している「ＳＳ」の代理人の様に振るまい、「ＶＳＣ」動作プログラムは、あたかもＤＳＣ３０１２の担当している「ＳＣ」の代理人の様に振舞う。まず「ＶＳＳ」は、デジタルカメラ３０１が担当している「ＳＣ」からのファイル取得要求（Ｓｃｒｉｐｔ）等をＵＳＢ３００５，ＡＳＩＣ３００１を経由して受信して解析する。次に「ＶＳＳ」は、「ＶＳＣ」に対して解析内容の送付を行う。そして「ＶＳＣ」は、その解析内容に基づきファイルの取得要求が記述されたファイル要求（Ｓｃｒｉｐｔ）等を作成しＵＳＢＩ／Ｆ３０３１を介して記憶装置３０３０の担当している「ＳＳ」へ発行し、必要なファイル等を取得し、メモリ３００３に格納する。「ＶＳＣ」は必要なファイル等を取得した事実及びメモリ３００３内でのファイル等の格納位置情報を「ＶＳＳ」へ通達する。これにより「ＶＳＳ」は、その通達された格納位置情報を基に、その取得したファイル等をＡＳＩＣ３００１，ＵＳＢ３００５を介してＤＳＣ３０１２が担当している「ＳＣ」へ送付する。ここまで見てきたように、「ＶＳＳ」と「ＶＳＣ」間のやり取りは純粋にＰＤプリンタ装置１０００の内部処理であるので、実際的にはＶＳＳとＶＳＣは独立して存在せずに一体のプログラムとしても実現され得る。
【００４１】
またＤＳＣ３０１２が担当している「ＰＣ」は、図８で説明した内容と同じであるので省略する。更に「ＳＣ」の機能は、ＣＰＵ３１がＲＯＭ３２中に格納された「ＳＣ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＳＣ」動作プログラムは、写真画像の閲覧に必要なファイルの取得要求が記述されたファイル要求（Ｓｃｒｉｐｔ）等を作成し、Ｉ／Ｆ４１を介してＰＤプリンタ装置１０００の担当している「ＶＳＳ」へ発行し、その結果必要なファイルを取得する。
【００４２】
更に、記憶装置３０３０が担当している「ＳＳ」の機能は、図６のＣＰＵ６０がＲＯＭ６１中に格納された「ＳＳ」動作プログラムを読み出してステップ毎に実行することにより実現される。「ＳＳ」動作プログラムは、ＰＤプリンタ装置１０００が担当している「ＶＳＣ」からのファイル取得要求（Ｓｃｒｉｐｔ）等をＵＳＢＩ／Ｆ６３を経由して受信して解析し、要求に従ってＲ／Ｗコントローラ６４を介してディスク６５内に格納されている画像ファイル等をＵＳＢＩ／Ｆ６３経由でＰＤプリンタ装置１０００が担当している「ＶＳＣ」へ送信する。
【００４３】
上記各プログラムも、必ずしも全てがソフトウェアで実現される必要は無く、その一部、又は全部がハードウェアで実現されていても構わない事は言うまでも無い。
【００４４】
また、上記プログラムの説明時には明記していないが、「ＶＳＳ」及び「ＶＳＣ」は自分が「代理人」である事を明言する事で以下に示す様なメリットを享受し得る。
・依頼人「ＳＣ」に対して自分「ＶＳＳ」の名前及び代理対象の「ＳＳ」の名前を通達し、依頼人「ＳＳ」に対して自分「ＶＳＣ」の名前及び代理対象の「ＳＣ」の名前を通達する事で、「ＶＳＳ」は理解出来ない、「ＳＣ」―「ＳＳ」間でのみ理解可能なストレージサービスを実現出来る。
・「ＶＳＳ」及び「ＶＳＣ」を担当している機器の利用可能なバッファメモリサイズが、「ＳＣ」及び「ＳＳ」を担当している機器の利用可能なバッファメモリサイズよりも小さい場合、「ＳＣ」−「ＳＳ」直接接続時にやり取りするファイルの最大サイズよりも「ＳＣ」−「ＶＳＳ」−「ＶＳＣ」−「ＳＳ」代理接続時にやり取りするファイルの最大サイズを小さく設定して「ＶＳＳ」−「ＶＳＣ」機器のバッファオーバーフローを回避する事が出来る。
【００４５】
この場合は、まずＤＳＣ３０１２からＰＤプリンタ装置１０００に対してＩＤと共に「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、記憶装置３０３０に記憶されている画像ファイルのリスト及びそのサムネイル画像を、ＰＤプリンタ装置１０００に要求する。この場合、ＰＤプリンタ装置１０００は仮想ストレージサーバとして機能している。そして次に、ＰＤプリンタ装置１０００は仮想ストレージクライアントとして機能し、記憶装置３０３０に対して「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、記憶装置３０３０に対して、ディスク６５に記憶されている画像データのファイルリスト及びサムネイル画像を要求する。これに応答して、画像ファイルリスト及びサムネイル画像が要求ＩＤと共に記憶装置３０３０からＰＤプリンタ装置１０００に送られると、ＰＤプリンタ装置１０００は、そのリスト及びサムネイル画像を要求ＩＤと共にＤＳＣ３０１２に送信する。これにより画像ファイルリスト及びサムネイル画像がＤＳＣ３０１２の表示器３５に表示される。そして、ユーザがＤＳＣ３０１２のＵＩを使用して印刷したい画像を選択する。こうしてユーザにより印刷したい画像が選択され、印刷開始が指示されると、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して、その印刷したい画像を特定するファイルＩＤと要求ＩＤ、及び印刷開始を指示する「ＳｔａｒｔＪｏｂ」コマンドが送信される。これによりＰＤプリンタ装置１０００は、その印刷指示されたファイルＩＤと要求ＩＤに基づいて記憶装置３０３０に対して、「ＧｅｔＦｉｌｅ」により、その画像データを要求する。これにより記憶装置３０３０から、その指定した画像データがＰＤプリンタ装置１０００に送信され、ＰＤプリンタ装置１０００により印刷される。
【００４６】
図９（Ｂ）は、図９（Ａ）に示す、ＰＤプリンタ装置１０００、ＤＳＣ３０１２及び記憶装置３０３０のＵＳＢ接続を説明する図で、ここではＰＤプリンタ装置１０００がホストで、ＤＳＣ３０１２及び記憶装置３０３０は共にスレーブに設定されている。
【００４７】
また図９（Ａ）に示す、ＰＤプリンタ装置１０００、ＤＳＣ３０１２及び記憶装置３０３０のＵＳＢ接続は、ＤＳＣ３０１２とＰＤプリンタ装置１０００とのＵＳＢ接続ではＰＤプリンタ装置１０００がホストであり、ＰＤプリンタ装置１０００と記憶装置３０３０とのＵＳＢ接続では、記憶装置３０３０はＵＳＢのホストであってもよい。
【００４８】
図１０（Ａ）は、本実施の形態１においてＰＤプリンタ装置１０００、ＤＳＣ３０１２及び記憶装置３０３０とをＵＳＢインターフェースで接続した場合の更に他の例を示す図である。尚、図１０では、図１０（Ｂ）に示すように、ＤＳＣ３０１２と記憶装置３０３０とのＵＳＢ接続では記憶装置３０３０がホストであり、ＰＤプリンタ装置１０００と記憶装置３０３０とのＵＳＢ接続では、ＰＤプリンタ装置１０００はＵＳＢのホストである。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＶＰＳ」は仮想プリントサーバ、「ＶＰＣ」は仮想プリントクライアントをそれぞれ示しており、この図１０（Ａ）の例では、ユーザがＤＳＣ３０１２を操作して、記憶装置３０３０に記憶されている画像データを指定してＰＤプリンタ装置１０００により印刷させる場合を示している。
【００４９】
この場合は、まずＤＳＣ３０１２から記憶装置３０３０に対して、ＩＤ及び「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、記憶装置３０３０に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。これにより、画像ファイルのリスト及びサムネイル画像が要求ＩＤと共に記憶装置３０３０からＤＳＣ３０１２に送られ、ユーザにより印刷したい画像が選択される。そして次に、印刷したい画像が選択されて印刷開始が指示されるとＤＳＣ３０１２からＰＤプリンタ装置１０００に対して、その印刷したい画像を特定するファイルＩＤと要求ＩＤ及び印刷開始を指示する「ＳｔａｒｔＪｏｂ」コマンドが送信される。これにより記憶装置３０３０は、ＰＤプリンタ装置１０００に対して、その要求ＩＤに対応する印刷指示されたファイルＩＤを用いてＰＤプリンタ装置１０００に対して印刷を指示する（「ＳｔａｒｔＪｏｂ」）。これによりＰＤプリンタ装置１０００は、その指示された要求ＩＤとファイルＩＤとを使用して、記憶装置３０３０に対して、「ＧｅｔＦｉｌｅ」により、その画像データを要求する。これにより記憶装置３０３０から、その指定した画像データが送信され、ＰＤプリンタ装置１０００により印刷される。最初にＤＳＣ３０１２から記憶装置３０３０に対して記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する場合に、上記説明のように、リストとサムネイル画像を一括で取得しても良く、最初に「ＧｅｔＦｉｌｅＬｉｓｔ」コマンドを送出してリストだけを取得し、取得したリスト中に記載されたファイルＩＤを用いて「ＧｅｔＴｈｕｍｂ」コマンドを送出して必要な画像のサムネイルのみを逐次取得する様にしても良い。
【００５０】
図１１は、図８の構成におけるＤＳＣ３０１２，ＰＤプリンタ装置１０００及び記憶装置３０３０の動作を説明するフローチャートで、それぞれの処理を実行するプログラムは、ＰＤプリンタ装置１０００の場合はプログラムメモリ３００３ａに、ＤＳＣ３０１２の場合はＲＯＭ３２に，記憶装置３０３０の場合はＲＯＭ６１にそれぞれ記憶されている。
【００５１】
まずＤＳＣ３０１２がユーザにより操作されて、インデックス表示が指示されるとステップＳ１で、「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを記憶装置３０３に出力して、記憶装置３０３０が記憶している画像データのリスト及びそのサムネイル画像を要求する。これにより記憶装置３０３０はステップＳ１１で、そのコマンドを送出してきたカメラのＩＤ及びその要求ＩＤをＲＡＭ６２に記憶する。ここで、カメラＩＤはコマンドに含まれており、要求ＩＤはそのコマンドによる要求に対して一意に割り当てられるＩＤである。そしてステップＳ１２に進み、記憶装置３０３０からＤＳＣ３０１２に対して、ファイルリスト及びそのサムネイル画像が送信される。これによりＤＳＣ３０１２では、ステップＳ２の応答受信待ちからステップＳ３に進み、その受信したサムネイル画像に基づいてインデックス画像を表示器３５に表示する。そしてユーザは、そのインデックス画像を見ながら操作ボタン３４を操作して印刷したい画像を選択し、印刷の開始を指示するとステップＳ４からステップＳ５に進み、コマンド「ＳｔａｒｔＪｏｂ」を発行して、カメラＩＤ及び要求ＩＤ，そして選択されたファイルＩＤを，ＰＤプリンタ装置１０００に送信する。
【００５２】
これによりＰＤプリンタ装置１０００は、ステップＳ２１でプリント要求を受信してステップＳ２２に進み、「ＳｔａｒｔＪｏｂ」で指定された要求ＩＤと、ファイルＩＤに対応する画像データを記憶装置３０３０に対して要求し（「ＧｅｔＦｉｌｅ」）、ステップＳ２３で画像データの受信待ちに入る。
【００５３】
これにより記憶装置３０３０は、ステップＳ１３からステップＳ１４に進み、カメラＩＤ、要求ＩＤ及びファイルＩＤに基づいて、その要求された画像データを検索し、ディスク６５からその画像データを読み出す。そしてステップＳ１５に進み、その読み出した画像データをＰＤプリンタ装置１０００に送信する。
【００５４】
これによりＰＤプリンタ装置１０００は、ステップＳ２３からステップＳ２４に進み、その画像データを受信し復号してプリントデータに展開し印刷を実行する。
【００５５】
図１２は、ファイルリストの要求に対して、記憶装置３０３０のＲＡＭ６２に記憶される、カメラＩＤと要求（リクエスト）ＩＤに対応付けて、応答した画像データ名と、実際にディスク６６に記憶されている画像データのとの関係を説明する図である。
【００５６】
これは例えば同じカメラ（ＤＳＣ）（ＩＤ：＃Ａ）からの「ＧｅｔＦｉｌｅＬｉｓｔ」コマンドに対する応答であっても、例えば、時間的に古いリクエストＩＤ（＃００１）では、１２０で示すように画像データ名のリストを送信している。これに対して、例えば数日後、同じカメラからの要求を受取った時（ＩＤ：＃００２）に、ディスク６５内の画像データ「ｉｍａｇｅ００２．ｊｐｇ」が削除されている場合、その画像リストは、１２１で示すように、送信した画像データ名の「ｉｍａｇｅ０２」以降では、ディスク６５に格納されている画像データ名と、送信したファイル名とが、１２０の場合と異なってしまう。従って記憶装置３０３０では、ファイルリストを要求したカメラＩＤと要求ＩＤとを対応付けて、送信画像データ名のリストを記憶しておき、そのカメラＩＤと要求ＩＤとに対応する画像ファイルリスト名を参照して、ディスク６５から対応する画像データを読み出すようにしている。これにより、図１２に示すように、ある画像データが削除されていても、ユーザが意図した画像でない画像が誤って印刷されるという不具合を無くすことが出来る。尚、要求ＩＤだけで、ＤＳＣ３０１２からの要求を特定できるのであれば、カメラＩＤは使用しなくても良いことはもちろんである。
【００５７】
また図１２において、フラグ１２２は、そのファイルリストが要求されてから、実際に、そのファイルリストに基づいて画像データが要求されたかどうかを示すフラグで、要求があるとオンに設定される。これは、例えば画像ファイルのリストが要求された後、そのリストに基づく印刷要求が入力されない前に、ディスク６５に記憶されている画像データが削除されてしまうことにより、画像ファイルリストで送信した画像のデータが実際には格納されていなくなるという不具合を無くすためのもので、このフラグがオフである間は、そのリストに含まれている画像データの更新は禁止されるようにしてもよい。
【００５８】
図１３は前述の図１１と同様に、ＤＳＣ３０１２、ＰＤプリンタ装置１０００及び記憶装置３０３０との間の処理を説明するフローチャートで、この処理は図１０に示す接続形態に対応している。尚、前述の図１１と同様の動作には同じステップ番号を付している。
【００５９】
まずＤＳＣ３０１２がユーザにより操作されて、インデックス表示が指示されるとステップＳ１で、「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを記憶装置３０３に出力して、記憶装置３０３０が記憶している画像データのリスト及びそのサムネイル画像を要求する。これにより記憶装置３０３０はステップＳ１１で、そのコマンドを送出してきたカメラのＩＤ及びその要求ＩＤをＲＡＭ６２に記憶する。ここで、カメラＩＤはコマンドに含まれており、要求ＩＤはそのコマンドによる要求に対して一意に割り当てられるＩＤである。そしてステップＳ１２に進み、記憶装置３０３０からＤＳＣ３０１２に対して、ファイルリスト及びそのサムネイル画像が送信される。これによりＤＳＣ３０１２では、ステップＳ２の応答受信待ちからステップＳ３に進み、その受信したサムネイル画像に基づいてインデックス画像を表示器３５に表示する。そしてユーザは、そのインデックス画像を見ながら操作ボタン３４を操作して印刷したい画像を選択し、印刷の開始を指示するとステップＳ４からステップＳ５に進み、コマンド「ＳｔａｒｔＪｏｂ」を発行して、カメラＩＤ及び要求ＩＤ，そして選択されたファイルＩＤを，ＰＤプリンタ装置１０００に送信する。ここまでは図１１の処理と同じである。
【００６０】
これにより記憶装置３０３０は、ステップＳ３１でプリント要求を受信するとステップＳ３２に進み、ＤＳＣ３０１２からの「ＳｔａｒｔＪｏｂ」に基づいて、ＰＤプリンタ装置１０００に対して「ＳｔａｒｔＪｏｂ」を発行する。これらステップＳ３１，Ｓ３２における処理が、前述した記憶装置３０３０における仮想プリントサーバ、仮想プリントクライアントとしての処理に対応している。
【００６１】
これにより前述の図１１の場合と同様にして、ＰＤプリンタ装置１０００は、ステップＳ２１で、この「ＳｔａｒｔＪｏｂ」を受信してステップＳ２２に進み、「ＳｔａｒｔＪｏｂ」で指定された要求ＩＤ、ファイルＩＤに対応する画像データを記憶装置３０３に対して要求し（「ＧｅｔＦｉｌｅ」）、ステップＳ２３で画像データの受信待ちに入る。これにより記憶装置３０３０は、ステップＳ１３からステップＳ１４に進み、カメラＩＤ、要求ＩＤ及びファイルＩＤに基づいて、その要求された画像データを検索し、ディスク６５からその画像データを読み出す。そしてステップＳ１５に進み、その読み出した画像データをＰＤプリンタ装置１０００に送信する。これによりＰＤプリンタ装置１０００は、ステップＳ２３からステップＳ２４に進み、その画像データを受信し復号してプリントデータに展開し印刷を実行する。
【００６２】
更に図１４は、前述の図９の場合における、ＤＳＣ３０１２、ＰＤプリンタ装置１０００及び記憶装置３０３０との間の処理を説明するフローチャートである。尚、前述の図１１と同様の動作には同じステップ番号を付している。
【００６３】
この場合もＤＳＣ３０１２の動作は基本的に前述の図１１及び図１３の場合と同様であり、ここではＰＤプリンタ装置１０００が仮想ストレージサーバ、仮想ストレージクライアントとして機能しているので、そのためのＰＤプリンタ装置１０００による処理（ステップＳ４１乃至Ｓ４３）の部分だけが、前述のフローチャートと異なっている。
【００６４】
即ち、ステップＳ４１で、ＤＳＣ３０１２より送信された「ＧｅｔＦｉｌｅＬｉｓｔ」、「ＧｅｔＴｈｕｍｂ」を受信すると、記憶装置３０３０に対して、そのコマンドを送出して画像ファイルリスト及びサムネイル画像を要求する。これに応答して記憶装置３０３０から応答があるとステップＳ４２からステップＳ４３に進み、その受信したファイルリスト及びサムネイル画像（要求ＩＤを含む）をＤＳＣ３０１２に送信する。これによりＤＳＣ３０１２で、ユーザが印刷したい画像を選択してプリント指示を行う処理は前述の図１１のフローチャートと同様であるため、その説明を省略する。
【００６５】
［実施の形態２］
図１５は、本発明の実施の形態２においてＰＤプリンタ装置１０００、ＤＳＣ３０１２及びディスプレイ（例えばテレビジョン受像機）３０４０とをＵＳＢインターフェースで接続した場合の例を示す図である。尚、図１５の例では、それぞれが２つのＵＳＢインターフェースを使用して互いに接続されている。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＤＳ」は表示（ディスプレイ）サーバ、そして「ＤＣ」は表示クライアントをそれぞれ示しており、この図１５の例では、ユーザがディスプレイ３０４０を操作して、ＤＳＣ３０１２に記憶されている画像データを指定してディスプレイ３０４０に表示させると共に、ＰＤプリンタ装置１０００により印刷させる場合を示している。
【００６６】
この場合は、まずディスプレイ３０４０からＤＳＣ３０１２に対して「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、ＤＳＣ３０１２のメモリカードに記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。これによりＤＳＣ３０１２から画像ファイルリスト及びサムネイル画像（要求ＩＤを含む）がディスプレイ３０４０に送られて画面に表示される。そして、ユーザがディスプレイ３０４０のＵＩ（例えばリモコン等）を使用して、インディスク画像の中から表示したい画像を選択する。ここでは既に取得済みのサムネイル画像を拡大して表示することとするが、より良い画質で表示したい場合には「ＧｅｔＦｉｌｅ」で表示したい画像の元ファイルを取得して表示しても良い。
【００６７】
一方、ＤＳＣ３０１２も液晶表示器３５を備えているので、ユーザに対して表示情報を提供することができ、表示サービスを外部機器に対して提供する。この液晶表示器３５での表示に対しては、表示クライアントであるディスプレイ３０４０から所定のファイルＩＤを記述した「ＳｔａｒｔＪｏｂ」を表示サーバであるＤＳＣ３０１２に対して発行することで、所定画像の表示要求を行うことができる（現在ユーザがディスプレイ３０４０のＵＩを使用して選択した画像等）。こうすることにより、ＤＳＣ３０１２がシステムの一部として動作していることをユーザに明示でき、またディスプレイ３０４０上での表示とＤＳＣ３０１２上での表示の同期を取ることができる。
【００６８】
上記「ＳｔａｒｔＪｏｂ」で表示要求する内容は、所定のファイルＩＤで示される画像のみでなく、スクリプト中に記述された文字列であっても、所定のコードに対応付けられた表示記号等であっても良い（「現在接続中でケーブルを抜かない様に」や「現在印刷中」等のメッセージやエラー発生を示す記号等）。
【００６９】
一方、ディスプレイ３０４０の画面に表示されたインデックス画像を参照してＰＤプリンタ装置１０００に対して印刷を指示すると、その印刷したい画像を特定するファイルＩＤと印刷開始を指示する「ＳｔａｒｔＪｏｂ」コマンドが、ディスプレイ３０４０からＰＤプリンタ装置１０００に送信される。これによりＰＤプリンタ装置１０００は、その印刷指示されたファイルＩＤと要求ＩＤとに基づいてＤＳＣ３０１２に対して「ＧｅｔＦｉｌｅ」により、その画像データを要求する。これによりＤＳＣ３０１２から、その指定した画像データがＰＤプリンタ装置１０００に送信され、ＰＤプリンタ装置１０００により印刷される。
【００７０】
図１６は、本発明の実施の形態２に係るディスプレイ３０４０の構成を説明するブロック図である。
【００７１】
同図において、７０はディスプレイ３０４０全体の制御を司るＣＰＵであり、７１はＣＰＵ７０の処理手順（ファームウェア）を記憶しているＲＯＭである（但し、ファームウェアは適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成される）。７２はＣＰＵ７０のワークエリアとして使用されるＲＡＭである。７３は、本実施の形態２に係るＰＤプリンタ装置１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。また後述するように、更にＵＳＢインターフェース６７を備えて、このＵＳＢインターフェースを介して直接ＤＳＣ３０１２に接続するように構成されていてもよい。７４はディスプレイ３０４０コントローラで、表示部７５への画像表示を制御している。
【００７２】
図１７（Ａ）は、本実施の形態２においてＰＤプリンタ装置１０００、ＤＳＣ３０１２及びディスプレイ３０４０とをＵＳＢインターフェースで接続した場合の他の例を示す図である。尚、図１７の例では、ＰＤプリンタ装置１０００はＵＳＢのホストであり、ＵＳＢハブを介してＤＳＣ３０１２とディスプレイ３０４０が接続されている。また図において、「ＰＳ」はプリントサーバ、「ＰＣ」はプリントクライアント、「ＳＣ」はストレージクライアント、「ＳＳ」はストレージサーバ、「ＶＳＳ」は仮想ストレージサーバ、「ＶＳＣ」は仮想ストレージクライアント、「ＤＳ」は表示サーバ、「ＤＣ」は表示クライアント、「ＶＤＳ」は仮想表示サーバをそれぞれ示しており、この図１７（Ａ）の例では、ユーザがディスプレイ３０４０２を操作して、ＤＳＣ３０１２に記憶されている画像データを指定してディスプレイ３０４０及びＤＳＣ３０１２の液晶表示器３５に表示させたり、或いはＰＤプリンタ装置１０００により印刷させる場合を示している。
【００７３】
まず、ディスプレイ３０４０からＰＤプリンタ装置１０００に対して「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、ＤＳＣ３０１２に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。この場合、ＰＤプリンタ装置１０００は仮想ストレージサーバとして機能している。そして次に、ＰＤプリンタ装置１０００は仮想ストレージクライアントとして機能し、ＤＳＣ３０１２に対して「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、ＤＳＣ３０１２に対して、そのメモリカード４０に記憶されている画像データのファイルリスト及びサムネイル画像を要求する。これにより、ＤＳＣ３０１２から画像ファイルリスト及びサムネイル画像（要求ＩＤを含む）がＰＤプリンタ装置１０００に送られると、ＰＤプリンタ装置１０００は、そのリスト及びサムネイル画像をディスプレイ３０４０に送信する。これによりディスプレイ３０４０の表示部７５にインデックス画像が表示される。そして、ユーザがディスプレイ３０４０のＵＩ（例えばリモコン等）を使用して、表示したい画像を選択する。ここでは既に取得済みのサムネイル画像を拡大して表示する事とするが、より良い画質で表示したい場合には上記「ＧｅｔＦｉｌｅＬｉｓｔ」、「ＧｅｔＴｈｕｍｂ」と同様にＰＤプリンタ装置１０００経由でＤＳＣ３０１２へ「ＧｅｔＦｉｌｅ」を発行して表示したい画像の元ファイルを取得して表示しても良い。またＤＳＣ３０１２上の液晶表示器３５に所定の画像を表示させる場合には、ディスプレイ３０４０からＰＤプリンタ装置１０００に対して所定のファイルＩＤを記述した「ＳｔａｒｔＪｏｂ」コマンドを送出して、ＤＳＣ３０１２に記憶されている画像ファイルの表示を要求する。この場合、ＰＤプリンタ装置１０００は仮想表示サーバとして機能している。そして次に、ＰＤプリンタ装置１０００は仮想表示クライアントとして機能し、ＤＳＣ３０１２に対して「ＳｔａｒｔＪｏｂ」コマンドを送出して、ＤＳＣ３０１２に対して、そのメモリカード４０に記憶されている画像データの表示要求する。表示サーバであるＤＳＣ３０１２は、そのメモリカード４０に記憶されている画像データをＤＳＣ３０１２上の液晶表示器３５に表示する。
【００７４】
一方、ディスプレイ３０４０にインデックス画像が表示された状態で印刷が指示されると、「ＳｔａｒｔＪｏｂ」がディスプレイ３０４０からＰＤプリンタ装置１０００に送られる。これによりＰＤプリンタ装置１０００は、ストレージクライアントとして動作し、ＤＳＣ３０１２に対して、その印刷が指示された画像データを要求ＩＤと共に要求する（「ＧｅｔＦｉｌｅ」）。こうして印刷が指示された画像データが得られると、ＰＤプリンタ装置１０００はその画像データに基づいて画像を印刷する。
【００７５】
図１７（Ｂ）は、図１７（Ａ）に示す、ＰＤプリンタ装置１０００、ＤＳＣ３０１２及びディスプレイ３０４０のＵＳＢ接続を説明する図で、ここではＰＤプリンタ装置１０００がホストで、ＤＳＣ３０１２及びディスプレイ３０４０は共にスレーブに設定されている。
【００７６】
また図１７（Ａ）に示すＰＤプリンタ装置１０００、ＤＳＣ３０１２及び記憶装置３０３０のＵＳＢ接続の変形例としては、ＤＳＣ３０１２とＰＤプリンタ装置１０００とのＵＳＢ接続では、ＰＤプリンタ装置１０００がホストであり、ＰＤプリンタ装置１０００とディスプレイ３０４０とのＵＳＢ接続では、ディスプレイ３０３０はＵＳＢのホストであってもよい。
【００７７】
図１８（Ａ）は、本実施の形態２においてＰＤプリンタ装置１０００、ＤＳＣ３０１２及びディスプレイ３０４０とをＵＳＢインターフェースで接続した場合の更に他の例を示す図である。尚、図１８では、図１８（Ｂ）に示すように、ＤＳＣ３０１２とディスプレイ３０４０とのＵＳＢ接続ではディスプレイ３０４０がホストであり、ＰＤプリンタ装置１０００とディスプレイ３０４０とのＵＳＢ接続では、ＰＤプリンタ装置１０００はＵＳＢのホストである。また図１８（Ａ）における「ＰＳ」等の表記は前述した例と同様である。図１８（Ａ）の例では、ユーザがディスプレイ３０４０を操作して、ＤＳＣ３０１２に記憶されている画像データを指定してディスプレイ３０４０及びＤＳＣ３０１２の液晶表示器３５に表示したり、或いはＰＤプリンタ装置１０００により印刷させる場合を示している。
【００７８】
まずディスプレイ３０４０からＤＳＣ３０１２に対して「ＧｅｔＦｉｌｅＬｉｓｔ」，「ＧｅｔＴｈｕｍｂ」コマンドを送出して、ＤＳＣ３０１２のメモリカード４０に記憶されている画像ファイルのリスト及びそのサムネイル画像を要求する。これにより、画像ファイルのリスト及びサムネイル画像（要求ＩＤを含む）がＤＳＣ３０１２からディスプレイ３０４０に送られ、ユーザにより表示したい画像が選択される。ここでは既に取得済みのサムネイル画像を拡大して表示することにするが、より良い画質で表示したい場合には上記「ＧｅｔＦｉｌｅＬｉｓｔ」、「ＧｅｔＴｈｕｍｂ」と同様にＤＳＣ３０１２へ「ＧｅｔＦｉｌｅ」を発行して表示したい画像の元ファイルを取得して表示しても良い。
【００７９】
またＤＳＣ３０１２の液晶表示器３５に所定の画像を表示させる場合には、ディスプレイ３０４０からＤＳＣ３０１２に対して所定のファイルＩＤを記述した「ＳｔａｒｔＪｏｂ」コマンドを送出して、そのメモリカード４０に記憶されている画像データの表示要求する。表示サーバであるＤＳＣ３０１２は、そのメモリカード４０に記憶されている画像データをＤＳＣ３０１２の液晶表示器３５上に表示する。
【００８０】
また印刷を行う場合には、サムネイル画像がＤＳＣ３０１２からディスプレイ３０４０に送られ、ユーザにより印刷したい画像が選択されると、「ＳｔａｒｔＪｏｂ」コマンドがディスプレイ３０４０からＰＤプリンタ装置１０００に対して発行される。これにより、ＰＤプリンタ装置１０００は、ストレージクライアントとしてストレージの仮のサーバであるディスプレイ３０４０に対して画像データを要求する。これによりディスプレイ３０４０は、ストレージクライアントとして、サーバであるＤＳＣ３０１２に対して、その選択された画像データを要求ＩＤと共に要求する（「ＧｅｔＦｉｌｅ」）。これによりＤＳＣ３０１２から画像データがディスプレイ３０４０に送信され、更にディスプレイ３０４０からＰＤプリンタ装置１０００に対してその画像データが送信されて、その画像の印刷が実行される。
【００８１】
尚、この実施の形態２においても、前述の実施の形態１に係る図１１乃至図１４のフローチャートに示す処理と同様の処理で画像データのやり取りや印刷及び表示を行うことができるが、その説明は基本的に前述した説明に表示処理が加わるだけで、前述のフローチャートで示す処理と同様であるため、その説明を省略する。
【００８２】
図１９は、前述の図８に示す形態におけるＤＳＣ３０１２，ＰＤプリンタ装置１０００及び記憶装置３０３０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図８と同じであるので、以下簡単に説明する。
【００８３】
まずストレージクライアントであるＤＳＣ３０１２からストレージサーバである記憶装置３０３０に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ＤＳＣ３０１２は、記憶装置３０３０に対して、そのディスク６５に記憶されている画像ファイルの全てのＩＤを要求する（ＧｅｔＦｉｌｅＬｉｓｔ）。これに対してファイルリストが記憶装置３０３０から送られてくると、そのサムネイル画像を要求する（ＧｅｔＴｈｕｍｂ）。尚、このサムネイル画像の要求は、各画像ごとに出力する（例えばｎ枚の画像のサムネイル画像を要求する場合にはｎ回）。これによりＤＳＣ３０１２の液晶表示器３５に、そのサムネイル画像を表示することができる。
【００８４】
こうしてＤＳＣ３０１２のユーザが、印刷したい画像を選択して印刷を指示すると、今度は、プリントクライアントであるＤＳＣ３０１２からＰＤプリンタ装置１０００に対してプリントサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対してファイルＩＤを指定して印刷を要求する（ＳｔａｒｔＪｏｂ）。
【００８５】
こうして印刷が要求されるとストレージクライアントであるＰＤプリンタ装置１０００は、ストレージサーバである記憶装置３０３０に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ＰＤプリンタ装置１０００は、記憶装置３０３０に対して、ＤＳＣ３０１２から印刷が要求されたファイルＩＤで指定されたファイルデータ（画像データ）を要求する（ＧｅｔＦｉｌｅ）。尚、この画像データの要求は、各画像ごとに出力する（例えばｎ枚の画像の画像データを要求する場合にはｎ回）。これにより記憶装置３０３０から画像データを取得して、ＰＤプリンタ装置１０００により、ＤＳＣ３０１２から指定された画像を印刷することができる。
【００８６】
図２０は、前述の図９に示す形態におけるＤＳＣ３０１２，ＰＤプリンタ装置１０００及び記憶装置３０３０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図９と同じである。
【００８７】
この例では、ＰＤプリンタ装置１０００は、ＤＳＣ３０１２に対しては仮想ストレージサーバ及びプリントサーバとして機能しており、また記憶装置３０３０に対しては仮想ストレージクライアント及びストレージクライアントとして機能している。この場合は、ＰＤプリンタ装置１０００は、ＤＳＣ３０１２からのＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ，  ＧｅｔＦｉｌｅＬｉｓｔ及びＧｅｔＴｈｕｍｂを記憶装置３０３０に対して中継している点が前述の図１９の場合と異なっているだけであるため、その説明を省略する。
【００８８】
更に図２１は、前述の図１０に示す形態におけるＤＳＣ３０１２，ＰＤプリンタ装置１０００及び記憶装置３０３０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図１０と同じである。
【００８９】
この例では、記憶装置３０３０は、ＤＳＣ３０１２に対してはストレージサーバ及び仮想プリントサーバとして機能しており、またＰＤプリンタ装置１０００に対してはストレージサーバ及び仮想プリントクライアントとして機能している。この場合は、ＤＳＣ３０１２からのＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ，  ＧｅｔＦｉｌｅＬｉｓｔ及びＧｅｔＴｈｕｍｂに関しては図１９の場合と同じであり、ＤＳＣ３０１２からのＣｏｎｆｉｒｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ，  ＳｔａｒｔＪｏｂを記憶装置３０３０が中継している点が、前述の図１９と異なっている。
【００９０】
図２２乃至図２４は、前述の図１５，図１７及び図１８の場合におけるＤＳＣ３０１２，ＰＤプリンタ装置１０００及びディスプレイ３０４０間でのコマンドのやり取りを説明する図で、ストレージ及びプリントにおけるサーバ，クライアント表記は前述の図と同じである。
【００９１】
まず図２２において、ストレージクライアントであるディスプレイ３０４０からストレージサーバであるＤＳＣ３０１２に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ディスプレイ３０４０は、ＤＳＣ３０１２に対して、そのメモリカード４０に記憶されている画像ファイルの全てのＩＤを要求する（ＧｅｔＦｉｌｅＬｉｓｔ）。これに対してファイルリストがＤＳＣ３０１２から送られてくると、そのサムネイル画像を要求する（ＧｅｔＴｈｕｍｂ）。尚、このサムネイル画像の要求は、各画像ごとに出力する（例えばｎ枚の画像のサムネイル画像を要求する場合にはｎ回）。これによりディスプレイ３０４０の表示部７５に、そのサムネイル画像を表示することができる。
【００９２】
また表示クライアントであるディスプレイ３０４０から表示サーバであるＤＳＣ３０１２に対してプリントサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ）。これに対して許可が得られると次にＤＳＣ３０１２に対して（ＳｔｒａｔＪｏｂ）を発行する。これによりＤＳＣ３０１２の表示器３５に、指定された画像が表示される。これのよりユーザは、ＤＳＣ３０１２が、このシステムの一部として機能していることを認識できる。
【００９３】
こうしてディスプレイ３０４０のユーザが、印刷したい画像を選択して印刷を指示すると、今度は、プリントクライアントであるディスプレイ３０４０からＰＤプリンタ装置１０００に対してプリントサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ディスプレイ３０４０からＰＤプリンタ装置１０００に対してファイルＩＤを指定して印刷を要求する（ＳｔａｒｔＪｏｂ）。
【００９４】
こうして印刷が要求されるとストレージクライアントであるＰＤプリンタ装置１０００は、ストレージサーバであるＤＳＣ３０１２に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ＰＤプリンタ装置１０００は、ＤＳＣ３０１２に対して、ディスプレイ３０４０から印刷が要求されたファイルＩＤで指定されたファイルデータ（画像データ）を要求する（ＧｅｔＦｉｌｅ）。尚、この画像データの要求は、各画像ごとに出力する（例えばｎ枚の画像の画像データを要求する場合にはｎ回）。これによりＤＳＣ３０１２から画像データを取得して、ＰＤプリンタ装置１０００により、ディスプレイ３０４０により指定された画像を印刷することができる。
【００９５】
図２３は、図２２に示す処理を仮想サーバ、仮想クライアントとしても機能できるＰＤプリンタ装置１０００を介して実行する場合を示している。
【００９６】
まず、ストレージクライアントであるディスプレイ３０４０から仮想ストレージサーバであるＰＤプリンタ装置１０００に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これによりＰＤプリンタ装置１０００は仮想ストレージクライアントとして機能し、ＤＳＣ３０１２に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ディスプレイ３０４０は、ＰＤプリンタ装置１０００に対して、ＤＳＣ３０１２のメモリカード４０に記憶されている画像ファイルの全てのＩＤを要求する（ＧｅｔＦｉｌｅＬｉｓｔ）。これによりＰＤプリンタ装置１０００は仮想ストレージクライアントとして、ＤＳＣ３０１２に対してスファイルＩＤを要求する（ＧｅｔＦｉｌｅＬｉｓｔ）。これに対してファイルリストがＤＳＣ３０１２かＰＤプリンタ装置１０００に送られてくると、それをディスプレイ３０４０に送信する。これに対してディスプレイ３０４０からサムネイル画像が要求されると（ＧｅｔＴｈｕｍｂ）、ＰＤプリンタ装置１０００はそのコマンドをＤＳＣ３０１２に送る。これによりＤＳＣ３０１２からサムネイル画像が送られてくるとＰＤプリンタ装置１０００は、それをディスプレイ３０４０に送るる。これによりディスプレイ３０４０の表示部７５に、そのサムネイル画像を表示することができる。
【００９７】
また表示クライアントであるディスプレイ３０４０から仮想表示サーバであるＰＤプリンタ装置１０００に対してプリントサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ）。これによりＰＤプリンタ装置１０００は、仮想表示クライアントとして機能して、表示サーバであるＤＳＣ３０１２に対してプリントサービスを要求する。これに対して許可が得られると次にディスプレイ３０４０は、ＰＤプリンタ装置１０００に対して（ＳｔｒａｔＪｏｂ）を発行する。これによりＰＤプリンタ装置１０００はその（ＳｔｒａｔＪｏｂ）をＤＳＣ３０１２に送る。これにより、ＤＳＣ３０１２の表示器３５に、指定された画像が表示される。これのよりユーザは、ＤＳＣ３０１２が、このシステムの一部として機能していることを認識できる。
【００９８】
こうして次にディスプレイ３０４０のユーザが、印刷したい画像を選択して印刷を指示すると、今度は、プリントクライアントであるディスプレイ３０４０からＰＤプリンタ装置１０００に対してプリントサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ディスプレイ３０４０からＰＤプリンタ装置１０００に対してファイルＩＤを指定して印刷を要求する（ＳｔａｒｔＪｏｂ）。こうして印刷が要求されるとストレージクライアントであるＰＤプリンタ装置１０００は、ストレージサーバであるＤＳＣ３０１２に対してストレージサービスの提供を要求する（ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ）。これに応答して許可信号が送られてくると、ＰＤプリンタ装置１０００は、ＤＳＣ３０１２に対して、ディスプレイ３０４０から印刷が要求されたファイルＩＤで指定されたファイルデータ（画像データ）を要求する（ＧｅｔＦｉｌｅ）。これによりＤＳＣ３０１２から画像データを取得して、ＰＤプリンタ装置１０００により、ディスプレイ３０４０により指定された画像を印刷することができる。
【００９９】
図２４は、図１８の接続形態におけるＤＳＣ３０１２、ディスプレイ３０４０及びＰＤプリンタ装置１０００間でのコマンド及びデータのやり取りを説明する図で、ここではディスプレイ３０４０がＰＤプリンタ装置１０００に対してプリントクライアント仮想ストレージサーバとして機能しており、またＤＳＣ３０１２に対しては、表示クライアント、ストレージクライアント及び仮想ストレージクライアントとして機能している。これの動作は前述の説明より理解できるので、この説明は省略する。
【０１００】
［実施の形態３］
次に本発明の実施の形態３について説明する。この実施の形態３では、前述したように、スクリプトを用いてストレージサービスをクライアント（スレーブ）からサーバ（ホスト）に対して要求するとともに、クライアントにおけるメモリ容量の制限等により、サーバが有している画像データを一度に受信できない場合に、元の画像データを分割した部分画像データとして受信する場合について説明する。
【０１０１】
図２５は、本発明の実施の形態３に係るホスト（サーバ）とスレーブ（クライアント）における処理を説明するフローチャートである。尚、この場合のサーバ及びクライアントは、上述の例からも明らかなように、ＤＳＣ３０１２，ＰＤプリンタ装置１０００、記憶装置３０３０及びディスプレイ３０４０のいずれでも良い。
【０１０２】
この図２５と図２６に示すＰＴＰでのコマンドのやり取りを示す図とを参照して，その動作を説明する。
【０１０３】
まずスレーブはステップＳ６１で、ホストに対してデータ（Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）のスレーブ→ホスト方向への転送を要求する（ＲｅｑｕｅｓｔＯｂｊｅｃｔＴｒａｎｓｆｅｒ）。この（Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）はスレーブが作成し、スレーブがホストに対して要求するホスト→スレーブ方向への部分画像データ転送の、元画像ファイル、オフセットアドレス（先頭アドレスからのオフセット）、データサイズ（送信データ量）等を記述する。これによりホストの処理はステップＳ５１からステップＳ５２に進み、その要求してきた  （Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）の情報を取得するための要求を発行する。ここでは図２６に示すように、ホストからスレーブに対して「ＧｅｔＯｂｊｅｃｔＩｎｆｏ」を送信して、その  （Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）に関する情報（ファイル名やファイルタイプ、ファイルサイズ等）を要求し、これに応答してスレーブから送られてくる情報を受信する。次にホストはその（Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）本体を取得するための要求を発行する。ここでは図２６に示すように、ホストからスレーブに対して「ＧｅｔＯｂｊｅｃｔ」を送信し、これに応答してスレーブから送られてくるスクリプトを受信する。即ち、スレーブはステップＳ６３で、（Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）をホスト側へ送信する事で、ホストに対してホスト→スレーブ方向への部分画像データの転送を要求し、その（Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ）中に記述された情報で元画像ファイル、オフセットアドレス（先頭アドレスからのオフセット）、データサイズ（送信データ量）を指定する。これによりホストの処理はステップＳ５３からステップＳ５４に進み、その指定された部分画像データを送信する。これによりスレーブは、その部分画像データをステップＳ６４で受信し、ステップＳ６５で正常受信或いはエラーが発生した場合はエラー受信を応答する。これによりホストはステップＳ５５からステップＳ５６に進み、「ＲｅｓｐｏｎｓｅＳｃｒｉｐｔ」で応答する。スレーブ側ではステップＳ６５からＳ６６へ進み、この「ＲｅｓｐｏｎｓｅＳｃｒｉｐｔ」により部分画像データを確実に受信できたと判定し、各部分画像データの順番及びそれらのつながりを管理する。
【０１０４】
本例ではオフセットアドレスやデータサイズを利用して部分画像データを受信する場合を説明したが、同様の方法を用いて部分ファイルのみでなくファイル全体を一括取得する事も可能であることは言うまでも無い。（オフセットアドレスを０に指定し、データサイズをファイルサイズに指定する、若しくは両パラメータを省略する等）
図２７は、ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して実データの転送を伴わないデータ転送処理を、仮想ストレージサーバ（ＶＳＳ）、仮想ストレージクライアント（ＶＳＣ）を挟んでスクリプトを用いて実現した例を示す図である。この例では、クライアントからＤＰＳの「ＧｅｔＦｉｌｅＩｎｆｏ」を（ＲｅｑｕｅｓｔＳｃｒｉｐｔ）を用いて発行し、ストレージサーバに記憶されているファイルに関する情報を取得している。
【０１０５】
この例では、ＶＳＳはストレージクライアントからスクリプトを受取り、対応するスクリプトをＶＳＣからストレージサーバに送信している。そしてストレージサーバからレスポンス（Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ）を受取り、そのレスポンスをストレージクライアントに送信している。
【０１０６】
図２８は、ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して実データの転送を伴うデータ転送処理を、仮想ストレージサーバ（ＶＳＳ）、仮想ストレージクライアント（ＶＳＣ）を挟んでスクリプトを用いて実現した例を示す図である。この例では、クライアントからＤＰＳの「ＧｅｔＦｉｌｅ」，「ＧｅｔＰａｔｉａｌＦｉｌｅ」、「ＧｅｔＴｈｕｍｂ」コマンドを使用して実データ要求する場合を示している。この場合も、これらコマンドは（ＲｅｑｕｅｓｔＳｃｒｉｐｔ）を用いて発行され、ストレージサーバに記憶されているファイルデータを取得している。
【０１０７】
この例では、ＶＳＳはストレージクライアントから実データを要求するスクリプトを受取り、対応するスクリプトをＶＳＣからストレージサーバに送信している。そしてストレージサーバからファイルデータとレスポンス（Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ）を受取り、そのファイルデータ及びレスポンスをストレージクライアントに送信している。ここでＶＳＣは、実データ（ファイルデータ）に続くレスポンス（Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ）を受取って、その内容を解析し、ストレージサーバとの間でのデータ転送が正しく終了したことを確認するまで、その実データ（ファイルデータ）のストレージクライアントへの転送を行わないようにしている。こうすることにより、データ転送に伴うエラーの影響がクライアントにまで及ぶのを防止している。
【０１０８】
本実施の形態では、スレーブ側からホスト側に対して部分ファイルの取得を行う場合の例を示したが、スクリプトにスレーブ側からホスト側へ要求Ｓｃｒｉｐｔを送信し、ホスト側がリクエストに応じた処理を行い、応答Ｓｃｒｉｐｔを返信するという手順を行う事により、他のＤＰＳのオペレーションである「ＧｅｔＦｉｌｅＩｎｆｏ」や「ＧｅｔＦｉｌｅＬｉｓｔ」、「ＧｅｔＴｈｕｍｂ」、「ＧｅｔＦｉｌｅ」も同様に実現出来る。更に、同様の手法を適用する事により、ホスト側が管理しているファイルシステムの他の機能（例えばファイル・フォルダの送信やホスト側の管理する記憶媒体のフォーマット等）をスレーブ側で利用出来る。
【０１０９】
次に、各コマンドについて説明する。
【０１１０】
（Ａ）［ＣｏｎｆｉｇｕｒｅＰｒｉｎｔＳｅｒｖｉｃｅ：］
プリントクライアント（ＰＣ）からプリントサーバ（ＰＳ）に対してプリントサービスの提供を要求する。
【０１１１】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ：］
プリントクライアントがプリントサーバに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000003
ここで、「Ｉｎｐｕｔ」はＲｅｑｕｅｓｔである事を示すタグ、「ｖｅｎｄｏｒＮａｍｅ」はプリントクライアント機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、プリントクライアント機器の機器名を記述する。
【０１１２】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔの変形例：］
バーチャルプリントクライアントがプリントサーバに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000004
ここで、「Ｉｎｐｕｔ」はＲｅｑｕｅｓｔである事を示すタグ、「ｖｉｒｔｕａｌＶｅｎｄｏｒＮａｍｅ」はバーチャルプリントクライアント機器のベンダー名を記述する。「ｖｉｒｔｕａｌＰｒｏｄｕｃｔＮａｍｅ」は、バーチャルプリントクライアント機器の機器名を記述する。「ｖｅｎｄｏｒＮａｍｅ」はバーチャルプリントクライアント機器が代理をしているプリントクライアント機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、バーチャルプリントクライアント機器が代理をしているプリントクライアント機器の機器名を記述する。
【０１１３】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
プリントサーバ（ＰＳ）がプリントクライアント（ＰＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000005
ここで「Ｏｕｔｐｕｔ」はＲｅｓｐｏｎｓｅである事を示すタグ、「ｐｒｉｎｔＳｅｒｖｉｃｅＡｖａｉｌａｂｌｅ」は、プリントサービス許可であればＴｒｕｅ、不許可であればＦａｌｓｅを記述する。「ｖｅｎｄｏｒＮａｍｅ」は、プリントサーバ機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、プリントサーバ機器の機器名を記述する。
【０１１４】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔの変形例：］
バーチャルプリントサーバがプリントクライアントに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000006
ここで「Ｏｕｔｐｕｔ」はＲｅｓｐｏｎｓｅである事を示すタグ、「ｖｉｒｔｕａｌＰｒｉｎｔＳｅｒｖｉｃｅＡｖａｉｌａｂｌｅ」は、バーチャルプリントサービス許可であればＴｒｕｅ、不許可であればＦａｌｓｅを記述する。「ｖｉｒｔｕａｌＶｅｎｄｏｒＮａｍｅ」はバーチャルプリントサーバ機器のベンダー名を記述する。「ｖｉｒｔｕａｌＰｒｏｄｕｃｔＮａｍｅ」は、バーチャルプリントサーバ機器の機器名を記述する。「ｖｅｎｄｏｒＮａｍｅ」はバーチャルプリントサーバ機器が代理をしているプリントサーバ機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、バーチャルプリントサーバ機器が代理をしているプリントサーバ機器の機器名を記述する。
【０１１５】
（Ｂ）［ＣｏｎｆｉｇｕｒｅＳｔｏｒａｇｅＳｅｒｖｉｃｅ：］
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対してストレージサービスの提供を要求する。
【０１１６】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ：］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000007
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｖｅｎｄｏｒＮａｍｅ」は、ストレージクライアント機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ］は、ストレージクライアント機器の機器名を記述する。
【０１１７】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔの変形例：］
バーチャルストレージクライアントがストレージサーバに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000008
ここで、「Ｉｎｐｕｔ」はＲｅｑｕｅｓｔである事を示すタグ、「ｖｉｒｔｕａｌＶｅｎｄｏｒＮａｍｅ」はバーチャルストレージクライアント機器のベンダー名を記述する。「ｖｉｒｔｕａｌＰｒｏｄｕｃｔＮａｍｅ」は、バーチャルストレージクライアント機器の機器名を記述する。「ｖｅｎｄｏｒＮａｍｅ」はバーチャルストレージクライアント機器が代理をしているストレージクライアント機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、バーチャルストレージクライアント機器が代理をしているストレージクライアント機器の機器名を記述する。
【０１１８】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000009
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグ、「ＳｔｏｒａｇｅＳｅｒｖｉｃｅＡｖａｉｌａｂｌｅ」は、ストレージサービス許可であればＴｒｕｅ、不許可であればＦａｌｓｅを記述する。「ｖｅｎｄｏｒＮａｍｅ］は、ストレージサーバ機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、ストレージサーバ機器の機器名を記述する。
【０１１９】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔの変形例：］
バーチャルストレージサーバがストレージクライアントに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000010
ここで「Ｏｕｔｐｕｔ」はＲｅｓｐｏｎｓｅである事を示すタグ、「ｖｉｒｔｕａｌＳｔｏｒａｇｅＳｅｒｖｉｃｅＡｖａｉｌａｂｌｅ」は、バーチャルストレージサービス許可であればＴｒｕｅ、不許可であればＦａｌｓｅを記述する。「ｖｉｒｔｕａｌＶｅｎｄｏｒＮａｍｅ」はバーチャルストレージサーバ機器のベンダー名を記述する。「ｖｉｒｔｕａｌＰｒｏｄｕｃｔＮａｍｅ」は、バーチャルストレージサーバ機器の機器名を記述する。「ｖｉｒｔｕａｌＷｉｎｄｏｗＳｉｚｅ」はバーチャルストレージサーバの利用可能なバッファメモリサイズを表し、本例ではｖｉｒｔｕａｌＷｉｎｄｏｗＳｉｚｅは１０２４バイトであり、この値を超えるファイルサイズのファイルデータを要求する時には必ず１０２４バイト以下のサイズで部分要求をする事をストレージクライアントに対して要求している。「ｖｅｎｄｏｒＮａｍｅ」はバーチャルストレージサーバ機器が代理をしているストレージサーバ機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、バーチャルストレージサーバ機器が代理をしているストレージサーバ機器の機器名を記述する。
【０１２０】
（Ｃ）［ＣｏｎｆｉｇｕｒｅＤｉｓｐｌａｙＳｅｒｖｉｃｅ：］
ディスプレイクライアント（ＤＣ）からディスプレイサーバ（ＤＳ）に対してディスプレイサービスの提供を要求する。
【０１２１】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ：］
ディスプレイクライアント（ＤＣ）がディスプレイサーバ（ＤＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000011
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｖｅｎｄｏｒＮａｍｅ］は、ディスプレイクライアント機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ］は、ディスプレイクライアント機器の機器名を記述する。
【０１２２】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔの変形例：］
バーチャルディスプレイクライアントがディスプレイサーバに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000012
ここで、「Ｉｎｐｕｔ」はＲｅｑｕｅｓｔである事を示すタグ、「ｖｉｒｔｕａｌＶｅｎｄｏｒＮａｍｅ」はバーチャルディスプレイクライアント機器のベンダー名を記述する。「ｖｉｒｔｕａｌＰｒｏｄｕｃｔＮａｍｅ」は、バーチャルディスプレイクライアント機器の機器名を記述する。「ｖｅｎｄｏｒＮａｍｅ」はバーチャルディスプレイクライアント機器が代理をしているディスプレイクライアント機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、バーチャルディスプレイクライアント機器が代理をしているディスプレイクライアント機器の機器名を記述する。
【０１２３】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
ディスプレイサーバ（ＤＳ）がディスプレイクライアント（ＤＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000013
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグ、「ＤｉｓｐｌａｙＳｅｒｖｉｃｅＡｖａｉｌａｂｌｅ］は、ディスプレイサービス許可であればＴｒｕｅ、不許可であればＦａｌｓｅを記述する。「ｖｅｎｄｏｒＮａｍｅ」は、ディスプレイサーバ機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ］は、ディスプレイサーバ機器の機器名を記述する。
【０１２４】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔの変形例：］
バーチャルディスプレイサーバがディスプレイクライアントに対して送信するスクリプト（Ｓｃｒｉｐｔ）である。
2004310613.tif 000014
ここで「Ｏｕｔｐｕｔ」はＲｅｓｐｏｎｓｅである事を示すタグ、「ｖｉｒｔｕａｌＤｉｓｐｌａｙＳｅｒｖｉｃｅＡｖａｉｌａｂｌｅ」は、バーチャルディスプレイサービス許可であればＴｒｕｅ、不許可であればＦａｌｓｅを記述する。「ｖｉｒｔｕａｌＶｅｎｄｏｒＮａｍｅ」はバーチャルストレージサーバ機器のベンダー名を記述する。「ｖｉｒｔｕａｌＰｒｏｄｕｃｔＮａｍｅ」は、バーチャルストレージサーバ機器の機器名を記述する。「ｖｅｎｄｏｒＮａｍｅ」はバーチャルストレージサーバ機器が代理をしているストレージサーバ機器のベンダー名を記述する。「ｐｒｏｄｕｃｔＮａｍｅ」は、バーチャルストレージサーバ機器が代理をしているストレージサーバ機器の機器名を記述する。
【０１２５】
（Ｄ）［ＧｅｔＦｉｌｅＬｉｓｔ：  （Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ  Ｏｐｅｒａｔｉｏｎ）］
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対してストレージサーバの管理する全ファイルのＩＤリストを要求する。
【０１２６】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ：］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000015
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグである。
【０１２７】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000016
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグ、「ｆｉｌｅＩＤｓ」は、ストレージサーバが管理している全ファイルのファイルＩＤを列挙したもので、本例は全部で４つのファイルがあり、それぞれファイルＩＤ「００００」，「０００１」、「０００２」、「０００３」が付与されている事を示す。また、「ｒｅｑｕｅｓｔＩＤ」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態で「要求ＩＤ」として記述されているものである。
【０１２８】
（Ｅ）ＧｅｔＴｈｕｍｂ：  （Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ  Ｏｐｅｒａｔｉｏｎ）
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して、ファイルＩＤで指定したストレージサーバ（ＳＳ）が管理するファイルに対応するサムネイル画像データを要求する。
【０１２９】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ：］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000017
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｆｉｌｅＩＤ」は、ストレージクライアントが要求するサムネイル画像データの元ファイルのファイルＩＤである。また、「ｒｅｑｕｅｓｔＩＤ」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態で「要求ＩＤ」として記述されているものである。
【０１３０】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000018
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグである。
【０１３１】
（Ｆ）ＧｅｔＦｉｌｅ：  （Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ  Ｏｐｅｒａｔｉｏｎ）
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して、ファイルＩＤで指定したストレージサーバ（ＳＳ）が管理するファイルデータを要求する。
【０１３２】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000019
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｆｉｌｅＩＤ」は、ストレージクライアントが要求するファイルデータのファイルＩＤである。また、「ｒｅｑｕｅｓｔＩＤ」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態で「要求ＩＤ」として記述されているものである。
【０１３３】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000020
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグである。
【０１３４】
（Ｇ）［ＧｅｔＰａｒｔｉａｌＦｉｌｅ：  （Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ  Ｏｐｅｒａｔｉｏｎ）］
ストレージクライアント（ＳＣ）からストレージサーバ（ＳＳ）に対して、ファイルＩＤで指定したストレージサーバの管理するファイルデータの一部を要求する。
【０１３５】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ：］
ストレージクライアント（ＳＣ）がストレージサーバ（ＳＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000021
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｆｉｌｅＩＤ］は、ストレージクライアントが要求するファイルデータのファイルＩＤである。「ｏｆｆｓｅｒ］は、要求するファイルの部分データの先頭位置（ファイル先頭から何バイト目かを意味する。本例では、２０４８バイト目を指定している）。「ｓｉｚｅ」は、要求するファイルの部分データのサイズ（何バイトかを意味する。本例では１０２４バイトを指定している）。また、「ｒｅｑｕｅｓｔＩＤ」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態で「要求ＩＤ」として記述されているものである。
【０１３６】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
ストレージサーバ（ＳＳ）がストレージクライアント（ＳＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000022
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグである。
【０１３７】
（Ｈ）［ＳｔａｒｔＪｏｂ：  （Ｐｒｉｎｔ  Ｓｅｒｖｉｃｅ  Ｏｐｅｒａｔｉｏｎ）］
プリントクライアント（ＰＣ）からプリントサーバ（ＰＳ）に対して、ファイルＩＤで指定したストレージサーバの管理しているファイルデータを記録紙へ印刷するようにを要求する。印刷方法はプリントクライアントから特に指定の無い項目はプリントサーバが任意に設定する。
【０１３８】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ］
プリントクライアント（ＰＣ）がプリントサーバ（ＰＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000023
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｆｉｌｅＩＤｓ」は、プリントクライアントが印刷要求するファイルのファイルＩＤである。本例ではファイルＩＤ「０００１」及び「０００２」の２つのファイルを印刷するように要求している。また、「ｒｅｑｕｅｓｔＩＤ」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態中で「要求ＩＤ」として記述されているものである。
【０１３９】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
プリントサーバ（ＰＳ）がプリントクライアント（ＰＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000024
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグである。
【０１４０】
（Ｉ）［ＳｔａｒｔＪｏｂ：  （Ｄｉｓｐｌａｙ  Ｓｅｒｖｉｃｅ  Ｏｐｅｒａｔｉｏｎ）］
ディスプレイクライアント（ＤＣ）からディスプレイサーバ（ＤＳ）に対して、ファイルＩＤで指定したストレージサーバの管理しているファイルデータをディスプレイへ表示するようにを要求する。このディスプレイへの表示方法はディスプレイクライアントから特に指定の無い項目はディスプレイサーバが任意に設定する。
【０１４１】
［Ｒｅｑｕｅｓｔ  Ｓｃｒｉｐｔ］
ディスプレイクライアント（ＤＣ）がディスプレイサーバ（ＤＳ）に対して送信するＳｃｒｉｐｔである。
2004310613.tif 000025
ここで「Ｉｎｐｕｔ」は、Ｒｅｑｕｅｓｔである事を示すタグ、「ｆｉｌｅＩＤｓ」は、ディスプレイクライアントが表示要求するファイルのファイルＩＤである。本例では、ファイルＩＤ「０００１」及び「０００２」の２つのファイルを表示するようにを要求している。また、「ｒｅｑｕｅｓｔＩＤ」はファイルリストとファイルＩＤの整合性を取る為に付与されているＩＤで、実施の形態中で「要求ＩＤ」として記述されているものである。
【０１４２】
［Ｒｅｓｐｏｎｓｅ  Ｓｃｒｉｐｔ：］
ディスプレイサーバ（ＤＳ）がディスプレイクライアント（ＤＣ）に対して返答するＳｃｒｉｐｔである。
2004310613.tif 000026
ここで「Ｏｕｔｐｕｔ」は、Ｒｅｓｐｏｎｓｅである事を示すタグである。
【０１４３】
本実施の形態においては、バーチャルサーバ・クライアントとサーバ・クライアントの宣言を（Ａ）〜（Ｃ）の各サービスのＣｏｎｆｉｇｕｒｅオペレーションで行っているので、それ以降にやりとりされる（Ｄ）〜（Ｉ）のそれぞれのオペレーションではバーチャルかどうかの区別の無いＳｃｒｉｐｔ表記となっている。よって（Ｄ）〜（Ｉ）の部分で記述している「ＰＳ」は「ＶＰＳ」である場合を含む。また他の要素（例：ＰＣ、ＳＳ等）においても同様である。
【０１４４】
［その他の実施の形態］
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１４５】
また、本発明の目的は、前述した実施形態の機能（カメラ側で行われる処理、プリンタ側で行われる各種印刷処理）を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４７】
以上説明したように本実施の形態によれば、ＵＳＢにより接続された機器間でデータのやり取りを行うことができる。
【０１４８】
また、ファイルリストで要求されたファイルＩＤと、実際にそのファイルＩＤに対応する画像データとの対応を確実に取ることができる。
【０１４９】
また、ＵＳＢ接続された機器間でスクリプトによりデータをやり取りすることで、ＵＳＢ接続のホスト・スレーブ機器間で任意の方向にデータを転送して、データのやり取りを行うことができる。
【０１５０】
【発明の効果】
以上説明したように本発明によれば、ＵＳＢを介して接続されたクライアントからホストに対して部分画像データを要求して受信できる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るＰＤプリンタ装置の概観斜視図である。
【図２】本実施の形態に係るＰＤプリンタ装置の操作パネルの概観図である。
【図３】本実施の形態に係るＰＤプリンタ装置の制御に係る主要部の構成を示すブロック図である。
【図４】本実施の形態に係るＰＤプリンタ装置のＡＳＩＣの構成を示すブロック図である。
【図５】本実施の形態に係るＤＳＣの基本構成を説明するブロック図である。
【図６】本実施の形態に係る記憶装置の基本構成を説明するブロック図である。
【図７】本実施の形態に係るＰＤプリンタ装置とＤＳＣにおけるソフトウェア構成を説明する図である。
【図８】本発明の実施の形態１に係るＰＤプリンタ装置、ＤＳＣ及び記憶装置とをＵＳＢインターフェースで接続した場合の例を示す図である。
【図９】本実施の形態１に係るＰＤプリンタ装置にＤＳＣと記憶装置とをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１０】本実施の形態１に係る記憶装置にＰＤプリンタ装置とＤＳＣとをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１１】図８の接続例におけるＰＤプリンタ装置、記憶装置及びＤＳＣの動作を説明するフローチャートである。
【図１２】記憶装置で管理されているカメラＩＤ、要求ＩＤ及び画像データ名との関連を説明する図である。
【図１３】図１０の接続例におけるＰＤプリンタ装置、記憶装置及びＤＳＣの動作を説明するフローチャートである。
【図１４】図９の接続例におけるＰＤプリンタ装置、記憶装置及びＤＳＣの動作を説明するフローチャートである。
【図１５】本発明の実施の形態２に係るＰＤプリンタ装置、ＤＳＣ及び記憶装置とをＵＳＢインターフェースで接続した場合の例を示す図である。
【図１６】本実施の形態２に係るディスプレイの構成を説明するブロック図である。
【図１７】本実施の形態２に係るＰＤプリンタ装置にＤＳＣとディスプレイとをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１８】本実施の形態２に係るディスプレイにＰＤプリンタ装置とＤＳＣとをＵＳＢインターフェースで接続した場合の例を説明する図である。
【図１９】図８に示す形態におけるＤＳＣ，ＰＤプリンタ装置及び記憶装置間でのコマンドのやり取りを説明する図である。
【図２０】図９に示す形態におけるＤＳＣ，ＰＤプリンタ装置及び記憶装置間でのコマンドのやり取りを説明する図である。
【図２１】図１０に示す形態におけるＤＳＣ，ＰＤプリンタ装置及び記憶装置間でのコマンドのやり取りを説明する図である。
【図２２】図１５に示す形態におけるＤＳＣ，ＰＤプリンタ装置及びディスプレイ間でのコマンドのやり取りを説明する図である。
【図２３】図１７に示す形態におけるＤＳＣ，ＰＤプリンタ装置及びディスプレイ間でのコマンドのやり取りを説明する図である。
【図２４】図１８に示す形態におけるＤＳＣ，ＰＤプリンタ装置及びディスプレイ間でのコマンドのやり取りを説明する図である。
【図２５】本発明の実施の形態３に係るスレーブとホスト間の動作を説明するフローチャートである。
【図２６】本発明の実施の形態３に係るスレーブとホスト間での部分画像データの転送動作を説明する図である。
【図２７】本発明の実施の形態３に係るスレーブとホスト間での実データの転送を伴わない動作を説明する図である。
【図２８】本発明の実施の形態３に係るスレーブとホスト間での実データの転送を伴う動作を説明する図である。
【図１】
2004310613.tif 000027
【図２】
2004310613.tif 000028
【図３】
2004310613.tif 000029
【図４】
2004310613.tif 000030
【図５】
2004310613.tif 000031
【図６】
2004310613.tif 000032
【図７】
2004310613.tif 000033
【図８】
2004310613.tif 000034
【図９】
2004310613.tif 000035
【図１０】
2004310613.tif 000036
【図１１】
2004310613.tif 000037
【図１２】
2004310613.tif 000038
【図１３】
2004310613.tif 000039
【図１４】
2004310613.tif 000040
【図１５】
2004310613.tif 000041
【図１６】
2004310613.tif 000042
【図１７】
2004310613.tif 000043
【図１８】
2004310613.tif 000044
【図１９】
2004310613.tif 000045
【図２０】
2004310613.tif 000046
【図２１】
2004310613.tif 000047
【図２２】
2004310613.tif 000048
【図２３】
2004310613.tif 000049
【図２４】
2004310613.tif 000050
【図２５】
2004310613.tif 000051
【図２６】
2004310613.tif 000052
【図２７】
2004310613.tif 000053
【図２８】
2004310613.tif 000054