(57)【要約】【課題】クライアントとサーバの機能を双方の装置が利用する形態と、一方の装置がクライアント機能のみ利用し、他方の装置がサーバ機能のみ利用する形態とを装置間の通信経路上で双方向通信が可能か否かに応じて動的に切り替える。【解決手段】クライアント−サーバシステムを用いて通信を行うデジタルカメラ１０１とプリンタ１０２との間の通信経路上で双方向通信が可能か否かを判定し、双方向通信が可能な場合は、デジタルカメラ１０１とプリンタ１０２がクライアント及びサーバの両方の機能を使用して通信を行い、双方向通信が不可能な場合は、デジタルカメラ１０１がクライアントの機能を使用し、プリンタ１０２がサーバの機能を使用して通信を行うように制御する。【選択図】      図１
2005026971.tif 000002
【特許請求の範囲】
【請求項１】
クライアント−サーバシステムを用いて通信を行う第１及び第２の通信装置間の通信制御方法であって、
前記第１及び第２の通信装置の両装置がクライアント及びサーバの両方の機能を使用する第１の通信方法と、前記第１の通信装置がクライアントの機能を使用し、前記第２の通信装置がサーバの機能を使用する第２の通信方法とを、選択的に実行するように制御する制御工程を有することを特徴とする通信制御方法。
【請求項２】
クライアント−サーバシステムを用いて通信を行う通信装置であって、
前記クライアント及びサーバの両方の機能を使用する第１の通信方法と、前記クライアント機能とサーバ機能のいずれか一方を使用する第２の通信方法とを、選択的に実行するように制御する制御手段を有することを特徴とする通信装置。
【請求項３】
クライアント−サーバシステムを用いて通信を行う通信装置の通信制御方法であって、
前記クライアント及びサーバの両方の機能を使用する第１の通信方法と、前記クライアント機能とサーバ機能のいずれか一方を使用する第２の通信方法とを、選択的に実行するように制御する制御工程を有することを特徴とする通信制御方法。
【請求項４】
通信相手との通信経路上で双方向通信が可能か否かを判定する判定工程を有し、
前記制御工程は、前記判定工程における判定に基づいて、前記第１、第２の通信方法を選択的に行うことを特徴とする請求項３に記載の通信制御方法。
【請求項５】
前記通信装置は撮像装置もしくは印刷装置であることを特徴とする請求項３に記載の通信制御方法。
【請求項６】
前記通信装置は、ＨＴＴＰを利用してメッセージ交換を行うことを特徴とする請求項３に記載の通信制御方法。
【請求項７】
通信する際の通信モードを判定する判定工程を有し、
前記制御工程は、前記判定工程における判定に基づいて、上記第１、第２の通信方法を選択的に行うことを特徴とする請求項３に記載の通信制御方法。
【請求項８】
前記判定工程は、無線通信方式におけるアドホックモードか、インフラストラクチャモードかを判定することを特徴とする請求項７に記載の通信制御方法。
【請求項９】
通信相手との通信経路上に特定機能を有する中継装置が存在するか否かを判別する判別工程を有し、
前記制御工程は、前記判別工程における判別に基づいて、上記第１、第２の通信方法を選択的に行うことを特徴とする請求項３に記載の通信制御方法。
【請求項１０】
前記中継装置はファイヤーウォールであることを特徴とする請求項９に記載の通信制御方法。
【請求項１１】
前記特定機能はネットワークアドレス変換機能もしくはＩＰマスカレード機能であることを特徴とする請求項９に記載の通信制御方法。
【請求項１２】
前記制御工程は、少なくとも前記通信装置あるいは通信相手のアドレス情報に基づいて、前記通信方法を選択することを特徴とする請求項３に記載の通信制御方法。
【請求項１３】
前記制御工程は、通信相手との通信経路上でアドレス情報が変換されたか否かにより、前記通信方法を選択することを特徴とする請求項３に記載の通信制御方法。
【請求項１４】
前記制御工程は、通信相手への所定の信号に対する応答に基づいて、前記通信方法を選択することを特徴とする請求項３に記載の通信制御方法。
【請求項１５】
コンピュータに請求項３乃至請求項１４の何れか一項に記載の通信制御方法の各手順を実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアント−サーバシステムを用いて通信を行う第１及び第２の通信装置間の通信制御技術に関するものである。
【０００２】
【従来の技術】
インターネットで最も広範に利用されているＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を代表とするクライアント−サーバ型のプロトコルは、クライアントから通信を開始してサーバからレスポンスを受け取る通信形態をとる。以下に、図面を用いてＷｅｂ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）におけるＨＴＴＰの動作を説明する。
【０００３】
図６は、ＷｅｂにおけるＨＴＴＰクライアント及びサーバの通信手順を示す図である。まず、Ｗｅｂブラウザ６０１が起動されているパーソナルコンピュータ（ＰＣ）は、通信プロトコルとしてＨＴＴＰクライアント６０２の機能を有し、インターネット上のＷｅｂサーバ６０３はＨＴＴＰサーバ６０４の機能を有する。ここで、Ｗｅｂブラウザ６０１が、所定のＨＴＭＬファイルを獲得するために、ＨＴＭＬファイルのＵＲＬ（ｈｔｔｐ：／／ｃａｎｏｎ．ｊｐ／ｉｎｄｅｘ．ｈｔｍｌ）を指定してＧＥＴリクエストをＷｅｂサーバ６０３に送信する（６１１）。そして、Ｗｅｂサーバ６０３は、Ｗｅｂブラウザ６０１からのＧＥＴ要求に対するレスポンスとして、ＨＴＭＬファイル（ｉｎｄｅｘ．ｈｔｍｌ）を返信する（６１２）。
【０００４】
尚、Ｗｅｂの場合、Ｗｅｂブラウザ６０１からメッセージの送信が開始されることはあっても、Ｗｅｂサーバ６０３からメッセージの送信が開始されることはない。
【０００５】
また、上述のＨＴＴＰはＷｅｂというアプリケーションに限らず、様々なアプリケーションに適用可能であり、例えばＩｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＩＰＰ）などの規格においても採用されている。以下、図面を用いてＨＴＴＰをＩＰＰに適用した場合について説明する。
【０００６】
図７は、ＨＴＴＰクライアント及びサーバの両方の機能をＰＣ及びプリンタが利用した場合の印刷処理における通信手順を示す図である。図７に示すように、ＰＣ７０１は、ＨＴＴＰクライアント７０２及びＨＴＴＰサーバ７０３の機能を有し、プリンタ７０４に画像データ（ｉｍａｇｅ．ｊｐｇ）を転送するために、ＨＴＴＰクライアント７０２を利用してＰＵＴリクエストを発行する（７１１）。同様に、プリンタ７０４も、ＨＴＴＰクライアント７０５及びＨＴＴＰサーバ７０６の機能を有する。ここで、プリンタ７０４がＰＣ７０１から画像データを受信すると、ＨＴＴＰサーバ７０６からＰＵＴレスポンスが返信される（７１２）。次に、プリンタ７０４は、内蔵の印刷モジュール７０７に受信した画像データを受け渡す（７１３）。その後、画像データを印刷している最中に、プリンタ７０４に紙詰まりなどのエラーが生じた場合（７１４）、その旨をＰＣ７０１に通知する必要が生じる。そこで、プリンタ７０４はＨＴＴＰクライアント７０５を利用してＰＯＳＴリクエストにより、その旨をＰＣ７０１側のＨＴＴＰサーバ７０３に伝達し（７１５）、そのレスポンスを受け取る（７１６）。このように、通信を相互に開始する仕組みが必要なアプリケーションでは、双方の機器にＨＴＴＰのクライアント及びサーバの機能をもつ必要が生じる。
【０００７】
ここで、もし同様のことをＰＣ７０１側にはＨＴＴＰクライアントの機能だけが存在し、プリンタ７０４側にはＨＴＴＰサーバの機能だけが存在する通信形態で行おうとした場合について説明する。
【０００８】
図８は、ＰＣがＨＴＴＰクライアントの機能を利用し、プリンタがＨＴＴＰサーバの機能を利用した場合の印刷処理における通信手順を示す図である。図８に示すように、ＰＣ８０１のＨＴＴＰクライアント８０２から画像データ（ｉｍａｇｅ．ｊｐｇ）をＰＵＴリクエストで送信し（８１１）、そのレスポンスを受け取った後（８１２）、ＨＴＴＰクライアント８０２からプリンタ８０３のＨＴＴＰサーバ８０４に対して定期的にポーリングを行い、紙詰まりがないか否か、印刷が終了したか否かなどをチェックする必要がある（８１３〜８１８）。これは、無駄な問い合わせによる通信コストの増加を招くものである。
【０００９】
そこで、これを改良するためのいくつかの方法が考えられる。例えば、第１の改良方法としては、ポーリングの間隔を長くすることである。この方法は、通信コストの削減にはなるが、今度は紙詰まりになったことを即座に知ることができなくなるなどの弊害が発生する。
【００１０】
また、第２の改良方法としては、ポーリングのリクエストに対するレスポンスを実際の紙詰まりが発生するか、印刷が完了するまで返信しないようにすることである。この方法は、レスポンスがいつ返信されるか分からず、またプリンタが過負荷状態に陥っている場合や、ネットワークが混雑している現象と見分けがつかないため、送信者のＰＣでタイムアウトが起こり通信の信頼性を損なう恐れがある。
【００１１】
そして、第３の改良方法としては、ＨＴＴＰ１．１で規定されているチャンク形式エンコーディングを使うことである。このチャンク形式エンコーディングは、１つのリクエストに対して複数のレスポンスを返してよい。これにより、紙詰まりが発生するか、印刷が完了するまでの間に送信側がタイムアウトにならないように適宜何らかのレスポンスを返し、印刷が完了したときや紙詰まりが生じたときに、最後のレスポンスを通知することである。この方法は、改良案の中では効率的で、信頼性も向上するが、送信者がタイムアウトをしないようにダミーのレスポンスを返す必要があり、通信コストが依然としてかかる。更に、ダミーのレスポンスを返すタイミングなどを制御することが難しいなどの問題がある。
【００１２】
一方、現状のインターネットなどの通信ネットワークでは、フィルタリング機能を備えたファイヤーウォール、ネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ：ＮＡＴ）機能やＩＰ  Ｍａｓｑｕｅｒａｄｅ機能を備えたルータなど、双方向通信を不能にする中継装置が数多く存在する（例えば、特許文献１、２、３参照）。
【００１３】
例えば、図１０に示すように、ファイヤーウォール１００８では、ファイヤーウォール内から通信が開始された通信コネクションのリプライのみをファイヤーウォール内に取り込むことが可能であり（１０１２）、ファイヤーウォールの外から開始された通信は、ファイヤーウォール１００８より内側に入り込むことができない（１０１５）。
【００１４】
また、ＮＡＴ機能を有するルータは、プライベートアドレス内に存在する装置とグローバルアドレス側の装置が通信するときに送信元アドレスや送信先アドレスを変換する。このプライベートアドレス内に存在する装置とＮＡＴルータが一対一に静的に対応付けられた場合、グローバルアドレス側からプライベートアドレス内の装置に通信を開始することが可能である。
【００１５】
しかし、もし複数の装置がプライベートアドレス内に存在する場合を考慮して、多くのルータには動的にＮＡＴ変換を行う機能を持っている。このため、ＮＡＴ機能を中継装置が有していると、グローバル側からのアクセスができない場合が存在する。
【００１６】
また、ＩＰマスカレード（ＩＰ  Ｍａｓｑｕｅｒａｄｅ）機能を有するルータは、ＮＡＴ機能で行われたＩＰアドレスの変換のみならず、ＴＣＰ／ＵＤＰのポート番号まで変換する。そのため、プライベートアドレス内に存在する装置がサーバ機能を有している場合、そのサーバのＴＣＰ／ＵＤＰポートへアクセスする必要が生じるが、グローバルアドレス側からそのポートへアクセスすることは一般的には不可能である。
【００１７】
【特許文献１】特開２００２−１３５８５８号公報
【特許文献２】特開２００２−３２８８８６号公報
【特許文献３】特開２００２−３２８８８７号公報
【００１８】
【発明が解決しようとする課題】
このように、上記従来例では、２つの通信装置が互いに通信を開始する必要があるアプリケーションをより効率良く動作させるために、クライアントとサーバの機能を双方の装置が持つ必要がある。しかし、その一方、このような通信形態では中継装置で通信が遮断されてしまう可能性があり、通信自体が行えなくなるという問題点があった。
【００１９】
本発明は、上記課題を解決するためになされたもので、クライアントとサーバの機能を双方の装置が利用する形態と、一方の装置がクライアント機能のみ利用し、他方の装置がサーバ機能のみ利用する形態とを動的に切り替えることを目的とする。
【００２０】
【課題を解決するための手段】
上記目的を達成するために、本発明は、クライアント−サーバシステムを用いて通信を行う第１及び第２の通信装置間の通信制御方法であって、前記第１及び第２の通信装置の両装置がクライアント及びサーバの両方の機能を使用する第１の通信方法と、前記第１の通信装置がクライアントの機能を使用し、前記第２の通信装置がサーバの機能を使用する第２の通信方法とを、選択的に実行するように制御する制御工程を有することを特徴とする。
【００２１】
また、上記目的を達成するために、本発明は、クライアント−サーバシステムを用いて通信を行う通信装置であって、前記クライアント及びサーバの両方の機能を使用する第１の通信方法と、前記クライアント機能とサーバ機能のいずれか一方を使用する第２の通信方法とを、選択的に実行するように制御する制御手段を有することを特徴とする。
【００２２】
更に、上記目的を達成するために、本発明は、クライアント−サーバシステムを用いて通信を行う通信装置の通信制御方法であって、前記クライアント及びサーバの両方の機能を使用する第１の通信方法と、前記クライアント機能とサーバ機能のいずれか一方を使用する第２の通信方法とを、選択的に実行するように制御する制御工程を有することを特徴とする。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００２４】
実施形態における共通の目的としては、デジタルカメラがプリンタ（プリントサービス）に画像データを送信して印刷を行う際に、デジタルカメラとプリンタがクライアントとサーバの両方の機能を使うか、或いはどちらか一方のみを使うかを適切に切り替える技術を提供することである。
【００２５】
［第１の実施形態］
まず、第１の実施形態では、通信メディアの特性を検知することにより、使用するモジュール構成を切り替える場合について説明する。具体的には、デジタルカメラがＩＥＥＥ８０２．１１準拠の無線ＬＡＮシステムを利用して無線アクセスポイントなどの中継装置を介さずにプリンタに印刷を依頼する場合と、デジタルカメラがＩＥＥＥ８０２．１１準拠の無線ＬＡＮシステムを利用して無線アクセスポイントを介してインターネットに接続するプリンタ（プリントサービス）に印刷を依頼する方法について説明する。また、デジタルカメラとプリンタとはメッセージ交換を行うためにクライアントとサーバの両方の機能を有するものとする。
【００２６】
ＩＥＥＥ８０２．１１準拠の無線ＬＡＮのネットワーク構成には、アドホック・モードとインフラストラクチャ・モードの２種類がある。まず、図１は、無線通信機能を用いてデータ伝送を可能とする無線通信システムの構成例を示す図である。図１に示すデジタルカメラ１０１とプリンタ１０２は、共に無線通信機能を搭載した端末であり、無線通信機能により端末間で直接接続してデータ伝送を行うことが可能である。この通信モードをアドホックモードと呼ぶ。
【００２７】
また、図２は、無線通信機能を用いてデータ伝送を可能とする無線通信システムの他の構成例を示す図である。図２に示すデジタルカメラ２０１は、無線通信機能を搭載した端末であり、無線通信機能によりアクセスポイント２０２を介してネットワーク上のプリンタとデータ伝送を行うことが可能である。このような構成の通信モードをインフラストラクチャモードと呼ぶ。このインフラストラクチャモードでは、デジタルカメラ２０１はアクセスポイント２０２を介して有線ネットワークであるインターネット２０４や、インターネット上に存在するプリンタ２０５にデータを伝送できる。
【００２８】
尚、インターネット２０４との接続を行うには、ファイヤーウォール２０３、或いは不図示のＮＡＴ／ＩＰ  Ｍａｓｑｕｅｒａｄｅ機能付きルータなど双方向通信を妨げる装置を経由する必要がある場合がある。
【００２９】
ここで、実施形態におけるデジタルカメラとプリンタの構成について順に説明する。図３は、第１の実施形態におけるデジタルカメラの機能ブロック図である。尚、このデジタルカメラは図１、図２に示したデジタルカメラ１０１、２０１として機能させることが可能である。
【００３０】
図３に示すように、デジタルカメラ３０１の操作部３１０は、システムコントローラ３１１を介してＣＰＵ３１５に接続され、操作部３１０はデジタルカメラ３０１のシャッタースイッチや各種キーなどを含む。撮像部３０２はシャッターが押下されたときに画像を撮影するブロックであり、撮影された画像は撮像処理部３０３によって処理される。表示部３０６はＬＣＤ表示、ＬＥＤ表示、音声表示等、ユーザに対する各種情報を表示するブロックであり、表示処理部３０７によってその表示内容の制御や処理が行われる。また、表示部３０６に表示された各種情報からユーザが選択するなどの操作は操作部３１０と連動して行われる。即ち、表示部３０６と操作部３１０とでユーザインターフェースが構成されるものである。
【００３１】
無線通信機能部３０４は無線通信を行うブロックである。ＲＦ部３０５は他の無線通信機器との間で無線信号の送受信を行う。メモリカードインターフェース（Ｉ／Ｆ）３０８はメモリカード３０９を接続するためのインターフェースであり、ＵＳＢＩ／Ｆ３１２は外部機器とＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を用いて接続するためのインターフェース、オーディオＩ／Ｆ３１４は音信号を外部機器と接続するためのインターフェースである。これらのブロック図に示される機能部分は、ＣＰＵ３１５の制御によって処理され、ＣＰＵ３１５によって制御されるプログラムは、ＲＯＭ３１５、もしくはフラッシュＲＯＭ３１３に格納されることになる。また、ＣＰＵ３１５によって処理されるデータは、ＲＡＭ３１７、もしくはフラッシュＲＯＭ３１３に対して書き込み、或いは読み込みが行われる。フラッシュＲＯＭ３１３は不揮発性の記憶領域であり、ここに無線通信の設定情報などを記憶する。
【００３２】
尚、撮像した画像データは公知の圧縮処理を経てメモリカードＩ／Ｆ３０８を介してメモリカード３０９に書き込まれる（保存される）。
【００３３】
図４は、第１の実施形態におけるプリンタの機能ブロック図である。尚、このプリンタは図１、図２に示したプリンタ１０２、２０５として機能させることが可能である。
【００３４】
図４に示すように、プリンタ４０１の操作部４１０は、システムコントローラ４１１を介してＣＰＵ４１５に接続されている。プリントエンジン４０２は実際に画像を用紙にプリントする機能ブロックであり、プリント処理部４０３によって処理される。プリントエンジン４０２は如何なるものでも良いが、実施形態では図１で使われているプリンタ１０２は主に家庭で使われている熱エネルギーによってインク液滴を記録紙等の記録媒体上に吐出するインクジェットプリンタとする。また、図２で使われているプリンタ２０５は主に業務ようとして使われているトナーによって記録紙等の記録媒体上に可視画像を形成するレーザービームプリンタとする。
【００３５】
表示部４０６はＬＣＤ表示、ＬＥＤ表示、音声表示等、ユーザに対する各種情報を表示するブロックであり、表示処理部４０７によってその表示内容の制御や処理が行われる。また、表示部４０６に表示された各種情報からユーザが選択するなどの操作は操作部４１０を介して行われる。つまり、表示部４０６及び操作部４１０が実施形態におけるプリンタ４０１のユーザＩ／Ｆとなる。
【００３６】
無線通信機能部４０４は無線通信を行うブロックである。ＲＦ部４０５は他の無線通信機器との間で無線信号の送受信を行う。メモリカードＩ／Ｆ４０８は着脱可能なメモリカード４０９を接続するためのインターフェースであり、デジタルカメラに搭載されたメモリカードを差し込むことで、撮像画像を印刷することも可能にしている。
【００３７】
ＵＳＢＩ／Ｆ４１２は外部機器とＵＳＢを用いて接続するためのインターフェース、ＥＴＨＥＲＩ／Ｆ４１４は外部機器とＥＴＨＥＲ通信を用いて接続するためのインターフェースである。これらのブロック図に示される機能部分は、ＣＰＵ４１５の制御によって処理され、ＣＰＵ４１５によって制御されるプログラムは、ＲＯＭ４１５、もしくはフラッシュＲＯＭ４１３に格納され、ＣＰＵ４１５によって処理されるデータは、ＲＡＭ４１７、もしくはフラッシュＲＯＭ４１３に対して書き込み、或いは読み込みが行われる。フラッシュＲＯＭ４１３は不揮発性の記憶領域であり、ここに通信の設定情報などを記憶する。
【００３８】
尚、ＲＦ部３０５、４０５にはアンテナが設けられているが、外部に突出する形態で有するものとは限らない。特に、デジタルカメラの場合、携帯性が重要なファクタであるので、アンテナは外部に突出するのではなく、内蔵もしくは表面上に実装されることが望ましい。
【００３９】
また、デジタルカメラ３０１及びプリンタ４０１には、ＨＴＴＰクライアントの機能とＨＴＴＰサーバの機能を実現する通信モジュールがインストールされており、詳細は後述する判定処理に応じて両方又は一方の通信モジュールがＣＰＵによって実行されるものとする。
【００４０】
以上の構成を有するデジタルカメラ３０１とプリンタ４０１とを、例えば図１に示したアドホックモード又は図２に示したインフラストラクチャモードの無線通信システムとして構成した場合に、通信モードに応じてデジタルカメラ３０１及びプリンタ４０１がクライアント及びサーバの両方の機能を使用するか、デジタルカメラ３０１がクライアント機能を使用し、プリンタ４０１がサーバ機能を使用するかを判定する処理について説明する。
【００４１】
図１２は、第１の実施形態による判定処理を示すフローチャートである。まずステップＳ１２０１において、デジタルカメラ３０１は、無線通信機能部３０４に設定された通信モードを調べることにより、アドホックモードで接続を行っているか、或いはインフラストラクチャモードで接続を行っているかを検知する。そして、ステップＳ１２０２、ステップＳ１２０３において、アドホックモードかインフラストラクチャモードかを判定し、アドホックモードであればステップＳ１２０４へ進み、ＨＴＴＰのクライアントとサーバの両方の機能を使って通信する。また、インフラストラクチャモードであればステップＳ１２０５へ進み、ＨＴＴＰのクライアント機能だけを使って通信する。そして、どちらのモードでもなければステップＳ１２０６へ進み、エラーである旨のメッセージを表示部３０６に表示して終了する。
【００４２】
図９は、アドホックモードの場合のデジタルカメラ及びプリンタの通信手順を示す図である。この場合、デジタルカメラ９０１及びプリンタ９０４がＨＴＴＰのクライアント及びサーバの両方の機能を使用する。図９は、従来の技術の欄で説明した図７に示すＩｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＩＰＰ）とは異なる。ＩＰＰを利用するプリンタは比較的大型なレーザービームプリンタが主流であり、多くのメモリ容量（ＲＡＭ４１７）を搭載している。このため、図７に示すように、画像データ（ｉｍａｇｅ．ｊｐｇ）をＰＣ７０１からプリンタ７０４に一度に送ることが可能である（７１１）。しかし、インクジェットなどの小型プリンタで印刷する場合は、プリンタはデジタルカメラで撮影した一枚の画像データですら保存するメモリ領域を持ち得ないため、印刷処理をしながら必要なデータを受信し、少ないメモリでも動作するように設計されている。ここでは、デジタルカメラ９０１をインクジェットタイプのプリンタ９０４のＵＳＢＩ／Ｆ４１２を介して接続した場合の処理規格であるＰｉｃｔＢｒｉｄｇｅ（ＣＩＰＡ  ＤＣ００１）に基づいて通信手順をネットワーク通信や無線通信に適用した場合について説明する。
【００４３】
まず、デジタルカメラ９０１はｓｔａｒｔＪｏｂコマンドを発行する。ここでＳｔａｒｔＪｏｂコマンドには、どの画像の印刷をこれから開始したいのかを示す情報が含まれているものとする。そして、デジタルカメラ９０１のＨＴＴＰクライアント９０２は、ＳｔａｒｔＪｏｂを、ＰＯＳＴメソッドを用いて配送する（９１１、９１２）。これにより、ＳｔａｒｔＪｏｂを受信したプリンタ９０４は、どのファイルをデジタルカメラ９０１からダウンロードするかを確認し、メモリ容量に応じて受信可能なバイト数や指定ファイルのオフセット情報などを含むＰａｒｔｉａｌＧｅｔＦｉｌｅコマンドを発行する。このＰａｒｔｉａｌＧｅｔＦｉｌｅコマンドはプリンタ９０４のＨＴＴＰクライアント９０５によりＰＯＳＴメソッドを用いて配送され（９１３）、レスポンスとして指定画像が指定のデータ量だけ獲得される（９１４）。
【００４４】
次に、受信した画像データは印刷モジュールに渡され（９１５）、印刷モジュールはそのデータを処理し、次のデータを処理可能になると次のＰａｒｔｉａｌＧｅｔＦｉｌｅを発行するように要求する（９１６）。この作業を指定画像全てに対して行い、印刷が終了するまで繰り返す（９１７〜９２０）。その後、印刷が完了すると（９２１）と、プリンタ９０４はＮｏｔｉｆｙＪｏｂＳｔａｔｕｓコマンドを発行し、これをＨＴＴＰクライアント９０５がＰＯＳＴメソッドを用いて配送し（９２２）、ＮｏｔｉｆｙＪｏｂＳｔａｔｕｓのレスポンスをＰＯＳＴのレスポンスとして受け取る（９２３）。
【００４５】
次に、通信モードが図２に示したようなインフラストラクチャモードの場合のデジタルカメラ及びプリンタの通信手順について説明する。
【００４６】
図１１は、インフラストラクチャモードの場合のデジタルカメラ及びプリンタの通信手順を示す図である。この場合、デジタルカメラ１１０１がＨＴＴＰクライアント機能を使用し、プリンタ１１０３がＨＴＴＰサーバ機能を使用する。ここでも、ＰｉｃｔＢｒｉｄｇｅの規格に基づいて通信手順をネットワーク通信や無線通信に適用した場合について説明する。
【００４７】
尚、ここではチャンク形式エンコーディングを使った場合の通信手順を用いて説明する。また、図１１に示す例では、図２に示したアクセスポイント２０２とファイヤーウォール２０３は不図示であるが、これらを経由して通信が行われることは言うまでもない。
【００４８】
まず、デジタルカメラ１１０１はｓｔａｒｔＪｏｂコマンドを発行する。ここでＳｔａｒｔＪｏｂコマンドには、どの画像の印刷をこれから開始したいのかを示す情報が含まれているものとする。そして、デジタルカメラ１１０１のＨＴＴＰクライアント１１０２は、ＳｔａｒｔＪｏｂを、ＰＯＳＴメソッドを用いて配送する（１１１１、１１１２）。ここで、ＨＴＴＰクライアント１１０２は送信が終わると、プリンタ１１０３のＨＴＴＰサーバ１１０４がすぐにチャンク形式でレスポンスを返せるように、ＰＯＳＴメソッドによりダミーのリクエストを送信する（１１１３）。これにより、ＳｔａｒｔＪｏｂを受信したプリンタ１１０４は、どのファイルをデジタルカメラ１１０１よりダウンロードするかを確認し、メモリ容量に応じて受信可能なバイト数や指定ファイルのオフセット情報などを含むＰａｒｔｉａｌＧｅｔＦｉｌｅコマンドを発行する。このＰａｒｔｉａｌＧｅｔＦｉｌｅコマンドは、チャンク形式エンコーディングの第１のレスポンスとしてデジタルカメラ１１０１のＨＴＴＰクライアント１１０２に返信される（１１１４）。ここで、ＰａｒｔｉａｌＧｅｔＦｉｌｅを受信したデジタルカメラ１１０１は、指定ファイルを指定データサイズ分だけＨＴＴＰクライアント１１０２のＰＵＴメソッドで送信し（１１１５）、そのレスポンスを受信する（１１１６）。
【００４９】
一方、プリンタ１１０３が画像データを受信すると、印刷モジュール１１０５に渡し（１１１７）、印刷モジュール１１０５はそのデータを処理する。そして、次のデータを処理可能になると次のＰａｒｔｉａｌＧｅｔＦｉｌｅを発行するように要求する（１１１８）。この作業を指定画像全てに対して行い、印刷が終了するまで繰り返す（１１１９〜１１２３）。その後、印刷が完了する（１１２４）と、プリンタ１１０３はＮｏｔｉｆｙＪｏｂＳｔａｔｕｓコマンドを発行し、これをチャンク形式の最後のレスポンスとして返信する（１１２５）。最後に、ＮｏｔｉｆｙＪｏｂＳｔａｔｕｓのレスポンスを受信するために、デジタルカメラ１１０１のＨＴＴＰクライアント１１０２からＰＯＳＴメソッドが送信されるのを待つ（１１２６。１１２７）。
【００５０】
このように、チャンク形式エンコーディングを使用すると、デジタルカメラとプリンタの両方にＨＴＴＰサーバ及びクライアントの機能がある場合に比べて、メッセージシーケンスが増加することが分かる。
【００５１】
また、図１１には示していないが、チャンク形式のレスポンスがあまりに長い間返信されないと、デジタルカメラ側でタイムアウトを起こしてしまう可能性があるため、ダミーのレスポンスを返すなどの工夫を必要とする。
【００５２】
このように、第１の実施形態では、無線通信システムの特性を生かして簡便に、ＨＴＴＰクライアント及びサーバの機能を実現するモジュールを判定して通信することができる。つまり、８０２．１１規格準拠のアドホックモードでは、無線通信範囲内に存在する装置（プリンタやストレージ等）と直接通信を行うことに限定されるため、中継経路は存在しないことを利用し、通信効率の良いクライアント及びサーバの両方の機能を各装置が使用する。
【００５３】
また、図２に示したような、８０２．１１規格準拠のインフラストラクチャモードに設定されている場合は、少なくとも中継装置としてのアクセスポイントを経由して通信が行われ、ファイヤーウォールが経路上に存在することが予想されるため、デジタルカメラはクライアント機能のみを使用し、プリンタはサーバ機能のみを使用して通信する。また、インフラストラクチャモードにおいても、デジタルカメラとプリンタとの通信経路上に必ずしも双方向通信を妨げる機能を有する中継装置が存在するわけではない。もし中継装置にそのような機能がない場合は、クライアント及びサーバの両方の機能を双方の装置が使用するほうが効率が良いが、第１の実施形態では、最も簡便な方法を利用して詳細な検査を省き余計な処理を増やさないことに特徴がある。
【００５４】
以上説明したように、使用者はデジタルカメラを利用してアドホックモードの直接通信では、クライアント及びサーバの両者の機能を利用して通信効率や通信の信頼性を高めることが可能となる。一方、インフラストラクチャモードの場合は、中継経路に双方向通信を不可能にするような装置がある場合に対処してクライアントのみの機能を利用して通信を行うことを可能とする。また、使用者は実際に構成されているモジュール構成を全く意識することなく利用でき、環境に応じて通信効率が向上することが可能である。また利用する通信モードにより簡便に使用するモジュールを選択できるため実現も容易である。
【００５５】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。
【００５６】
第２の実施形態では、２つの通信装置がメッセージ交換を行い、相手の情報を取得するか、もしくはエラーを検知することにより使用するモジュールの構成を切り替える場合について説明する。具体的には、デジタルカメラが実際にプリンタと通信することで、使用するモジュールを切り替える方法について説明する。
【００５７】
図５は、第２の実施形態における無線通信システムの構成例を示す図である。図５に示すように、デジタルカメラ５０１は無線通信機能を搭載しており、無線通信機能によりアクセスポイント５０２を介してプリンタ５０３にデータ伝送を行うことが可能である。また、デジタルカメラ５０１はアクセスポイント５０２及び中継装置５０４を経由して有線ネットワークであるインターネット５０５に接続され、インターネット上に存在するプリンタ５０６にデータを伝送できる。尚、中継装置５０４は、ファイヤーウォール或いはＮＡＴ／ＩＰ  Ｍａｓｑｕｅｒａｄｅ機能付きルータなど双方向通信を阻害するものであり、インターネット５０５との接続に必ずしも必要なものではない。
【００５８】
第１の実施形態では、デジタルカメラの通信方法として無線ＬＡＮを利用し、図２に示したようなインフラストラクチャモードの場合、通信をするための何らかの中継装置を経由する必要があることを判断基準として、それらが双方向通信を阻害する機能を有するものであれば、ＨＴＴＰのクライアント機能のみを使用していた。しかし、図５に示すように、インフラストラクチャモードで通信する場合であっても、プリンタ５０３との間には中継装置は存在しないため、通信効率が良いクライアント及びサーバの両方の機能を使用することが可能である。
【００５９】
一方、プリンタ５０６と通信する場合は、双方向通信をできなくする中継装置５０４が存在してしまうため、ＨＴＴＰクライアントの機能のみで通信する必要が生じる。
【００６０】
第２の実施形態では、印刷データを送信したいプリンタに対して何らかの通信をしてプリンタの設定情報や中継経路の特性を把握し、クライアントやサーバの機能を実現するモジュールを選択する。ここでは同じ構成形態で、異なる３つの判定処理について説明する。
【００６１】
図１３は、第２の実施形態におけるデジタルカメラによる第１の判定処理を示すフローチャートである。まず、ステップＳ１３００において、デジタルカメラ５０１のユーザが、使用したいプリンタを選択する。ここでは、プリンタ５０３もしくはプリンタ５０６が存在し、どちらかのプリンタをデジタルカメラ５０１から選択する。尚、プリンタ５０３やプリンタ５０６が存在することは、予めユーザが分かっているものとするが、動的に検出する手段があれば、それを用いてもかまわない。
【００６２】
次に、ステップＳ１３０１において、ステップＳ１３００でプリンタ５０３、５０６のどちらかが選択されたとすると、その選択されたプリンタのＩＰアドレスを獲得する。例えば、ＵＲＬでＨＴＴＰ：／／ｐｒｉｎｔｅｒ５０６などと指定し、これに対応するＩＰアドレスを獲得できるものとする。もし以前にこのプリンタを使用したことがあり、既にＩＰアドレスがわかっている場合などは、改めてプリンタにＩＰアドレスを確認するための通信を行う必要はない。
【００６３】
次に、ステップＳ１３０２において、デジタルカメラ５０１は自分のＩＰアドレスとＮｅｔｍａｓｋを確認し、ステップＳ１３０３において、ネットワークアドレスを生成する。そして、ステップＳ１３０４において、プリンタのＩＰアドレスがデジタルカメラ５０１のネットワークアドレスに含まれるアドレスか否かを検査する。ここで、含まれている場合はステップＳ１３０５へ進み、ＨＴＴＰのクライアント及びサーバの両方の機能を使用して通信を行う。また、含まれていない場合はステップＳ１３０６へ進み、ＨＴＴＰのクライアント機能だけを使用して通信を行う。
【００６４】
上述した第１の判定処理では、プリンタが自分と同じネットワークに存在するか否かを確認し、もし同じネットワークに存在する場合は中継装置に双方向通信を妨げる機能がないと判定し、ＨＴＴＰのクライアント及びサーバの両方の機能を使用して通信効率を上げることができる。
【００６５】
図１４は、第２の実施形態におけるデジタルカメラによる第２の判定処理を示すフローチャートである。まず、デジタルカメラのユーザにより、使用プリンタが選択されると、ステップＳ１４０１において、デジタルカメラ５０１は選択されたプリンタに対して何らかの通信を行い、ステップＳ１４０２において、プリンタにデジタルカメラ５０１から送信したパケットの送信元ＩＰアドレスが何であったかをデータとして返信してもらう。
【００６６】
次に、ステップＳ１４０３において、デジタルカメラ５０１は自分のインターフェースに割り当てられているＩＰアドレスを獲得し、続くステップＳ１４０４において、デジタルカメラ５０１はプリンタより送信された送信元ＩＰアドレスと自分のインターフェースに現在割り当てられているＩＰアドレスとを比較する。もし、中継装置５０４にネットワークアドレス変換機能がある場合は、プリンタに到達したときのＩＰアドレスはデジタルカメラのＩＰアドレスとは異なる。ここで、二つが一致している場合はネットワークアドレス変換機能を有する中継装置が経路上に存在しないと判定し、ステップＳ１４０５へ進み、ＨＴＴＰクライアント及びサーバの両方の機能を使用して通信する。また比較した二つのアドレスが異なる場合はネットワークアドレス変換機能を有する中継装置が経路上に存在すると判定し、ステップＳ１４０６へ進み、クライアント機能のみを使用して通信する。
【００６７】
上述した手順を、例えばＰｉｃｔＢｒｉｄｇｅの制御シーケンスのなかで実行するならば、図１５に示すように実行することができる。つまり、デジタルカメラ１５０１より発行されたｐｒｉｎｔＣｏｎｇｉｕｒｅＳｅｒｖｉｃｅコマンドをＨＴＴＰクライアント１５０２のＰＯＳＴメソッドで送信する（１５１１）。ここで、ｐｒｉｎｔＣｏｎｆｉｇｕｒｅＳｅｒｖｉｃｅにはプリンタのシリアル番号などデバイスの詳細情報が存在する。そして、ＰｒｉｎｔＣｏｎｆｉｇｕｒｅＳｅｒｖｉｃｅのリクエストを受信したプリンタは、その返信としてプリンタのシリアル番号などデバイスの詳細情報に加え、デジタルカメラから受信したデータパケットの送信元アドレスとなるＩＰアドレスを付加し、ｐｒｉｎｔＣｏｎｆｉｇｕｒｅＳｅｒｖｉｃｅのレスポンスとして返信する（１５１２）。これにより、デジタルカメラがこのレスポンスを受信すると、図１４に示すステップＳ１４０４において、ＨＴＴＰクライアント及びサーバの機能を使って通信するかどうかを判定する。
【００６８】
上述した第２の判定処理では、中継装置５０４に双方向通信を妨げる要因の一つであるアドレス変換機能があるかどうかを積極的に検査し、アドレス変換機能が経路上にない場合はＨＴＴＰのクライアント及びサーバの両方の機能を使用して通信効率を上げることができる。またアドレス変換機能が経路上にある場合は、デジタルカメラがＨＴＴＰクライアントの機能だけを使用して通信ができなくなることを防ぐことができる。
【００６９】
図１６は、第２の実施形態におけるデジタルカメラによる第３の判定処理の通信手順を示す図である。まず、デジタルカメラのユーザにより、使用プリンタが選択されると、デジタルカメラ１６０１（図５に示すデジタルカメラ５０１）は、選択されたプリンタ１６０４（図５に示すプリンタ５０６）に対してｐｒｉｎｔＣｏｎｆｉｇｕｒｅＳｅｒｖｉｃｅを行い、デバイスの詳細情報をＨＴＴＰクライアント１６０２のＰＯＳＴメソッドで交換した後（１６１１、１６１２）、プリンタ１６０４より通信を開始するＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓコマンドを発行し、このコマンドをプリンタ１６０４のＨＴＴＰクライアント１６０５のＰＯＳＴメソッドを用いて送信する（１６１３）。ここで、ＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓのレスポンスが正しくデジタルカメラ１６０１に届く場合は、中継経路上に双方向通信を阻害する機能を有する中継装置が存在しないことを意味するため、ＨＴＴＰクライアント及びサーバの両方の機能を利用して通信する。
【００７０】
また、デジタルカメラ１６０１は、ｐｒｉｎｔＣｏｎｆｉｇｕｒｅＳｅｒｖｉｃｅのレスポンスを受信した後、一定時間を待ったとしてもＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓを受信しない場合は、ｇｅｔＤｅｖｉｃｅＳｔａｔｕｓコマンドを発行し、ＨＴＴＰのクライアント１６０２よりＰＯＳＴメソッドで送信し、プリンタ１６０４にｎｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓの通信を行った結果を問い合わせる（１６１５）。ここで、プリンタ１６０４が通信を行ったが、タイムアウトになってしまった場合は、その旨をデジタルカメラ１６０１に伝える（１６１６）。この場合は、デジタルカメラ１６０１はＨＴＴＰクライアントの機能だけを利用して通信する。
【００７１】
上述した第３の判定処理では、中継装置５０４にて双方向通信が可能か否かを積極的に検査することで、もし可能な場合はＨＴＴＰのクライアント及びサーバの両方の機能を使用して通信効率を上げることができる。また可能でない場合は、デジタルカメラがＨＴＴＰクライアントの機能だけを使用して通信ができなくなることを防ぐことができる。
【００７２】
［変形例］
以上説明した実施形態では、デジタルカメラとプリンタの両方にＨＴＴＰクライアントとサーバの機能を実現するモジュールが存在することを前提としたが、プリンタにはＨＴＴＰサーバの機能を実現するモジュールのみ有する構成としても良い。この場合、図１５において、ｐｒｉｎｔＣｏｎｆｉｇｕｒｅＳｅｒｖｉｃｅをデジタルカメラ１５０１からＰＯＳＴで送信し（１５１１）、プリンタ１５０４がそのレスポンスとしてＨＴＴＰサーバしかない旨を伝える（１５１２）。すると、デジタルカメラ１５０１は、ＨＴＴＰクライアントのみの機能で通信するように判定する。
【００７３】
また、通信プロトコルとしてＨＴＴＰを想定したが、クライアント−サーバ型のプロトコルであれば何でもよく、例えばＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのプロトコルでもかまわない。
【００７４】
更に、デジタルカメラとプリンタを例に説明したが、通信可能な機器であれば、コンピュータとプリンタ、コンピュータと画像保存装置（ストレージデバイス）、デジタルカメラと画像保存装置などの通信にも容易に適用することが可能である。
【００７５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００７６】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７７】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００７８】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８０】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８１】
【発明の効果】
以上説明したように、本発明によれば、クライアントとサーバの機能を双方の装置が利用する形態と、一方の装置がクライアント機能のみ利用し、他方の装置がサーバ機能のみ利用する形態とを動的に切り替えることにより、通信効率や通信の信頼性を向上させることができる。
【図面の簡単な説明】
【図１】無線通信機能を用いてデータ伝送を可能とする無線通信システムの構成例を示す図である。
【図２】無線通信機能を用いてデータ伝送を可能とする無線通信システムの他の構成例を示す図である。
【図３】第１の実施形態におけるデジタルカメラの機能ブロック図である。
【図４】第１の実施形態におけるプリンタの機能ブロック図である。
【図５】第２の実施形態における無線通信システムの構成例を示す図である。
【図６】ＷｅｂにおけるＨＴＴＰクライアント及びサーバの通信手順を示す図である。
【図７】ＨＴＴＰクライアント及びサーバの両方の機能をＰＣ及びプリンタが利用した場合の印刷処理における通信手順を示す図である。
【図８】ＰＣがＨＴＴＰクライアントの機能を利用し、プリンタがＨＴＴＰサーバの機能を利用した場合の印刷処理における通信手順を示す図である。
【図９】アドホックモードの場合のデジタルカメラ及びプリンタの通信手順を示す図である。
【図１０】ファイヤーウォールを介して通信が行われる通信手順を示す図である。
【図１１】インフラストラクチャモードの場合のデジタルカメラ及びプリンタの通信手順を示す図である。
【図１２】第１の実施形態による判定処理を示すフローチャートである。
【図１３】第２の実施形態による第１の判定処理を示すフローチャートである。
【図１４】第２の実施形態による第２の判定処理を示すフローチャートである。
【図１５】図１４に示す第２の判定処理の通信手順を示す図である。
【図１６】第２の実施形態による第３の判定処理の通信手順を示す図である。
【符号の説明】
１０１  デジタルカメラ
１０２  プリンタ
２０１  デジタルカメラ
２０２  アクセスポイント
２０３  ファイヤーウォール
２０４  インターネット
２０５  プリンタ
３０１  デジタルカメラ
３０２  撮像部
３０３  撮像処理部
３０４  無線通信機能部
３０５  ＲＦ部
３０６  表示部
３０７  表示処理部
３０８  メモリカードＩ／Ｆ
３０９  メモリカード
３１０  操作部
３１１  システムコントローラ
３１２  ＵＳＢＩ／Ｆ
３１３  フラッシュＲＯＭ
３１４  オーディオＩ／Ｆ
３１５  ＣＰＵ
３１６  ＲＯＭ
３１７  ＲＡＭ
４０１  プリンタ
４０２  プリントエンジン
４０３  プリント処理部
４０４  無線通信機能部
４０５  ＲＦ部
４０６  表示部
４０７  表示処理部
４０８  メモリカードＩ／Ｆ
４０９  メモリカード
４１０  操作部
４１１  システムコントローラ
４１２  ＵＳＢＩ／Ｆ
４１３  フラッシュＲＯＭ
４１４  ＥＴＨＥＲＩ／Ｆ
４１５  ＣＰＵ
４１６  ＲＯＭ
４１７  ＲＡＭ
５０１  デジタルカメラ
５０２  アクセスポイント
５０３  プリンタ
５０４  中継装置
５０５  インターネット
５０６  プリンタ
【図１】
2005026971.tif 000003
【図２】
2005026971.tif 000004
【図３】
2005026971.tif 000005
【図４】
2005026971.tif 000006
【図５】
2005026971.tif 000007
【図６】
2005026971.tif 000008
【図７】
2005026971.tif 000009
【図８】
2005026971.tif 000010
【図９】
2005026971.tif 000011
【図１０】
2005026971.tif 000012
【図１１】
2005026971.tif 000013
【図１２】
2005026971.tif 000014
【図１３】
2005026971.tif 000015
【図１４】
2005026971.tif 000016
【図１５】
2005026971.tif 000017
【図１６】
2005026971.tif 000018