(57)【要約】【課題】  先に接続要求を発行したホストコンピュータからの再接続要求の発行時期が早まるだけで、後から接続要求を発行した別のホストコンピュータに対して接続許可が応答される可能性がある。【解決手段】  第１ホストコンピュータとのセッション中に、その第１ホストコンピュータ以外の他のホストコンピュータからのセッション開始要求を受信すると、当該他のホストコンピュータの情報を候補情報として登録し、第１ホストコンピュータとのセッション終了後、第１ホストコンピュータ以外の第２ホストコンピュータからのセッション開始要求を受信すると、第２ホストコンピュータが候補情報の条件を満足している（Ｓ１７，Ｓ１８）と、その第２ホストコンピュータとのセッション接続許可を与える（Ｓ１９）。【選択図】    図１１
2005135076.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置からのセッション開始要求を受信して、情報処理装置との間で通信を行う電子機器であって、
第１情報処理装置とのセッション中に前記第１情報処理装置以外の他の情報処理装置からのセッション開始要求を受信すると、当該他の情報処理装置の情報を候補情報として登録する登録手段と、
前記第１情報処理装置とのセッション終了後、第２情報処理装置からのセッション開始要求を受信すると、前記第２情報処理装置が前記候補情報に基づく条件を満足している場合に前記第２情報処理装置とのセッションを開始するように制御する制御手段と、
を有することを特徴とする電子機器。
【請求項２】
前記候補情報の条件は、
前記候補情報が全てクリアされている状態、或は
前記候補情報に前記第２コンピュータの情報が含まれていて、かつ前記第２情報処理装置からのセッション開始要求の受信タイミングが、当該セッション開始要求を受信すると予測される予測時間内である状態のいずれかを含むことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記セッション開始要求は、セッション開始要求を発行した時間情報を含み、前記登録手段は、最先の時間情報を含むセッション開始要求を候補情報として登録することを特徴とする請求項１又は２に記載の電子機器。
【請求項４】
前記セッション開始要求は、セッション開始要求の再試行回数を含み、前記登録手段は、前記再試行回数の最も多いセッション開始要求を候補情報として登録することを特徴とする請求項１又は２に記載の電子機器。
【請求項５】
前記候補情報は、セッション開始要求が発行された時間情報を含み、前記制御手段は、前記候補情報の条件を満足しているセッション開始要求の内、最先の時間情報を含むセッション開始要求を発行した情報処理装置とのセッションを開始するように制御することを特徴とする請求項１又は２に記載の電子機器。
【請求項６】
前記候補情報は、セッション開始要求の再試行回数を含み、前記制御手段は、前記候補情報の条件を満足しているセッション開始要求の内、前記再試行回数の最も多いセッション開始要求を発行した情報処理装置とのセッションを開始するように制御することを特徴とする請求項１又は２に記載の電子機器。
【請求項７】
前記候補情報は、更にセッション開始要求の再試行回数を含み、前記制御手段は、前記最先の時間情報を含むセッション開始要求を発行した情報処理装置が複数存在する場合には、前記再試行回数を多い情報処理装置とのセッションを開始するように制御することを特徴とする請求項５に記載の電子機器。
【請求項８】
前記候補情報は、セッション開始要求が発行された時間情報を含み、前記制御手段は、前記再試行回数の最も多いセッション開始要求を発行した情報処理装置が複数存在する場合には、最先の時間情報を含むセッション開始要求を発行した情報処理装置とのセッションを開始するように制御することを特徴とする請求項６に記載の電子機器。
【請求項９】
前記予測時間は、前記第１情報処理装置とのセッション中に前記候補情報に含まれる情報処理装置からのセッション開始要求の時間間隔に基づいて設定される、または、前記第１情報処理装置とのセッション中に前記候補情報に含まれる情報処理装置からのセッション開始要求の時間間隔の平均値に基づいて設定されることを特徴とする請求項２に記載の電子機器。
【請求項１０】
ターゲットに対してセッション開始要求コマンドを発行し、当該ターゲットからのセッション開始許可に応じて当該ターゲットとのセッションを実行する情報処理装置であって、
前記セッション開始要求コマンドに、前記セッション開始要求コマンドの再送回数を示す情報を含むことを特徴とする情報処理装置。
【請求項１１】
前記セッション開始要求コマンドは更に、当該セッション開始要求コマンドが最初に発行された時間情報を含むことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
情報処理装置とターゲットとが通信可能な通信システムであって、
前記情報処理装置は、ターゲットに対して、セッション開始要求コマンドの再送回数を示す情報を含むセッション開始要求コマンドを発行し、
前記ターゲットは、
第１情報処理装置とのセッション中に前記第１情報処理装置以外の他の情報処理装置からのセッション開始要求を受信すると、当該他の情報処理装置の情報を候補情報として登録する登録手段と、
前記第１情報処理装置とのセッション終了後、前記第１情報処理装置以外の第２情報処理装置からのセッション開始要求を受信すると、前記第２情報処理装置が前記候補情報の条件を満足している場合に前記第２情報処理装置とのセッションを開始するように制御する制御手段とを有することを特徴とする通信システム。
【請求項１３】
情報処理装置とターゲットとが通信可能な通信システムにおける通信制御方法であって、
前記情報処理装置からターゲットに対して、セッション開始要求コマンドを発行し、
前記ターゲットにおいて、第１情報処理装置とのセッション中に前記第１情報処理装置以外の他の情報処理装置からのセッション開始要求を受信すると、当該他の情報処理装置の情報を候補情報として登録する登録工程と、
前記第１情報処理装置とのセッション終了後、第２情報処理装置からのセッション開始要求を受信すると、前記第２情報処理装置が前記候補情報に基づく条件を満足している場合に前記第２情報処理装置とのセッションを開始するように制御する制御工程とを実行することを特徴とする通信制御方法。
【請求項１４】
請求項１３に記載の通信制御方法を実行することを特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムを記憶していることを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【請求項１６】
外部装置からの通信開始要求を受信して、前記外部装置との間でデータ通信を行うデータ処理装置であって、
第１の外部装置とのデータ通信中に前記第１の外部装置以外の他の外部装置からの通信開始要求を受信すると、当該他の外部装置の情報を候補情報として登録する登録手段と、
前記第１の外部装置とのデータ通信の終了後、第２の外部装置からの通信開始要求を受信すると、前記第２の外部装置が前記候補情報に基づく条件を満足している場合に前記第２の外部装置とのデータ通信を開始するように制御する制御手段と、
を有することを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
複数の情報処理装置とターゲット（電子機器）とが通信可能である環境において、複数の情報処理装置からターゲットに接続するための技術に関する。
【背景技術】
【０００２】
複数の情報処理装置とターゲットが接続されているネットワーク環境において、ターゲットが既に１つ又は複数の情報処理装置とセッション中であって、そのターゲットがセッション中の情報処理装置の数が接続許容数に達している場合、他の情報処理装置からそのターゲットに接続要求が発行されると、その情報処理装置に対して接続不成立の応答を行う。これに対して、この接続不成立の応答を受けた情報処理装置は、そのターゲットから接続成功の応答を受け取るまで、周期的に接続要求を繰り返し発行する。そして、そのターゲットと情報処理装置とのセッションが終了して、その情報処理装置との接続が解除されて接続許容数以下となった後、ターゲットが新たな接続要求を情報処理装置から受け取ると、その接続が許可され、その接続要求を出した情報処理装置に対して接続成功の応答を返す（例えば、特許文献１）。
【特許文献１】特開２００１−３５３９３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、ターゲットにおけるセッション中の情報処理装置の数が、そのターゲットの接続許容数に達している場合に、ある情報処理装置Ａが、そのターゲットに接続要求を出し、遅れて更に別の情報処理装置Ｂが接続要求を出し始めた場合を考える。各情報処理装置は互いに異なる周期で接続の再要求を繰り返し発行することになるが、この状況では、先に接続要求を出した情報処理装置Ａが次に接続に成功する保証はなく、たまたま、そのターゲットがセッションを終了したタイミングで接続要求を発行した情報処理装置Ｂとの接続が確立されてしまうことがある。
【０００４】
これに対して、最先に接続要求を発行した情報処理装置Ａが、ターゲットが他の情報処理装置との接続が可能になった時に、最先に接続することを概ね保証できるようにすることが提案されている。これらによれば、接続要求の受付順に情報処理装置の優先順位を決め、ターゲットから情報処理装置に対して接続不成立を応答する際に、その優先順位が高いほど時間間隔が短くなるようにターゲットが情報処理装置に再接続要求タイミングを指示することが提案されている。
【０００５】
しかし、この提案では、常にターゲット側が複数の情報処理装置の優先順位を管理する必要がある。また、この提案では、先に接続要求を発行した情報処理装置からの再接続要求の発行時期が早まるだけであるため、その情報処理装置からの再接続要求の発行が僅かに遅れた場合であっても、後から接続要求を発行した別の情報処理装置に対して接続許可が応答されるという問題も起こり得る。よって、上述した問題点を十分に解決するには至っていない。
【０００６】
本発明は上記問題点に鑑みてなされたもので、複数の情報処理装置とターゲットとが接続されたネットワーク環境において、ターゲットに対して複数の情報処理装置から接続要求が発行された場合に、そのターゲットにおいて、それら複数の情報処理装置に対して最も効率良く接続許可を与える方法、装置、及びシステムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る電子機器は、
情報処理装置からのセッション開始要求を受信して、情報処理装置との間で通信を行う電子機器であって、
第１情報処理装置とのセッション中に前記第１情報処理装置以外の他の情報処理装置からのセッション開始要求を受信すると、当該他の情報処理装置の情報を候補情報として登録する登録手段と、
前記第１情報処理装置とのセッション終了後、第２情報処理装置からのセッション開始要求を受信すると、前記第２情報処理装置が前記候補情報に基づく条件を満足している場合に前記第２情報処理装置とのセッションを開始するように制御する制御手段と、
を有することを特徴とする。
【０００８】
本発明に係る情報処理装置は、
ターゲットに対してセッション開始要求コマンドを発行し、当該ターゲットからのセッション開始許可に応じて当該ターゲットとのセッションを実行する情報処理装置であって、
前記セッション開始要求コマンドに、前記セッション開始要求コマンドの再送回数を示す情報を含むことを特徴とする。
【０００９】
また本発明に係る通信システムは、
情報処理装置とターゲットとが通信可能な通信システムであって、
前記情報処理装置は、ターゲットに対して、セッション開始要求コマンドの再送回数を示す情報を含むセッション開始要求コマンドを発行し、
前記ターゲットは、
第１情報処理装置とのセッション中に前記第１情報処理装置以外の他の情報処理装置からのセッション開始要求を受信すると、当該他の情報処理装置の情報を候補情報として登録する登録手段と、
前記第１情報処理装置とのセッション終了後、前記第１情報処理装置以外の第２情報処理装置からのセッション開始要求を受信すると、前記第２情報処理装置が前記候補情報の条件を満足している場合に前記第２情報処理装置とのセッションを開始するように制御する制御手段とを有することを特徴とする。
【００１０】
また本発明に係る通信制御方法は、
情報処理装置とターゲットとが通信可能な通信システムにおける通信制御方法であって、
前記情報処理装置からターゲットに対して、セッション開始要求コマンドを発行し、
前記ターゲットにおいて、第１情報処理装置とのセッション中に前記第１情報処理装置以外の他の情報処理装置からのセッション開始要求を受信すると、当該他の情報処理装置の情報を候補情報として登録する登録工程と、
前記第１情報処理装置とのセッション終了後、第２情報処理装置からのセッション開始要求を受信すると、前記第２情報処理装置が前記候補情報に基づく条件を満足している場合に前記第２情報処理装置とのセッションを開始するように制御する制御工程とを実行することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のホストコンピュータとターゲットとが接続されたネットワーク環境において、ターゲットに対して複数のホストコンピュータから接続要求が発行された場合に、そのターゲットにおいて、それら複数のホストコンピュータに対して最も効率良く接続許可を与えることができるという効果がある。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。この実施の形態では、データ通信システムにおいて、ターゲットとしてプリンタを用いた場合で説明するが、本発明はこれに限定されるものでない。
【実施例】
【００１３】
図１は、本発明の実施の形態に係るデータ通信システムの構成を示すブロック図である。
【００１４】
図において、１０１は、有線又は無線で構成されたネットワークである。１０２及び１０３は共にネットワーク１０１に接続されたホストコンピュータ（ＰＣ）である。１０４はプリンタで、ターゲットの一例を示している。プリンタは、その他の種類の印刷装置などのデータ処理装置であっても良い。１０５はネットワークアダプタを示している。１０６は、プリンタ１０４とネットワークアダプタ１０５とを接続するインターフェースである。このインターフェースは、プリンタ１０４とネットワークアダプタ１０５とを接続するもので、ＵＳＢやＩＥＥＥ１３９４などのコネクタを有し、それぞれを有線ケーブルで接続しているものでもよく、或はプリンタ１０４とネットワークアダプタ１０５とを同一の筐体に収容し、金属銅線の内部バスにより接続したものの何れで構成されても良く、またこれに限定されない。
【００１５】
図２は、ホストコンピュータ（ＰＣ）１０２，１０３が備えるソフトウェアの構成を示すブロック図である。
【００１６】
アプリケーション層２０１は、各種アプリケーションソフトウェアを表し、ユーザの操作に従って、例えば文字や図形などのデータ作成や編集などを行う。プリンタドライバ層２０２は、各種プリンタを制御するためのドライバソフトウェアである。アプリケーション層２０１において、ユーザの指示で印刷処理が呼び出されると、プリンタドライバ層２０２の所定のプリンタドライバが選択される。そしてアプリケーション層２０１のアプリケーションソフトウェアから印刷に必要なデータが、選択されたプリンタドライバに渡され、プリンタ１０４が解釈できる適切なプリンタコマンドに変換される。ポートドライバ層２０３は、各種ネットワーク用のパケットを生成し、通信を制御して、プリンタドライバによって生成されたプリンタコマンドを送受信する役目を持つ。ネットワークインターフェース層２０４は、ホストコンピュータにおけるネットワーク通信用のドライバであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＩＥＥＥ１３９４などのような有線ネットワークや、例えばＩＥＥＥ８０２．１１ａやＩＥＥＥ８０２．１１ｂなどのような無線ネットワークに対応したドライバを備えている。
【００１７】
ここで、アプリケーション層２０１、プリンタドライバ層２０２、ポートドライバ層２０３、ネットワークインターフェース層２０４の各層は、全て同一のホストコンピュータ（ＰＣ）内にある必要はなく、例えば、ホストコンピュータ（ＰＣ）が備えるアプリケーション層２０１とプリンタドライバ層２０２で生成したプリンタコマンドを他のサーバコンピュータに転送し、そのサーバコンピュータにあるポートドライバ層２０３とネットワークインターフェース層２０４を用いて通信を行っても同等の機能を実現できる。
【００１８】
図３は、本実施の形態に係るプリンタ（ターゲット）１０４が備えるソフトウェアの構成を示すブロック図である。
【００１９】
通信層３０１は、ネットワークに接続された通信モジュールの制御を行うソフトウェアであって、ホストコンピュータ（ＰＣ）のポートドライバ層２０３が生成するパケットを解釈して適切な処理及び制御を行う。ホストコンピュータ（ＰＣ）からプリンタ１０４に印刷用プリンタコマンドが送信された場合、通信層３０１は、その通信に用いたパケットヘッダを取り外し、プリンタコマンドのみをプリンタ層３０２に転送する。通信層３０１はプリンタ１０４に置かれ、プリンタ１０４の入力部に接続された内蔵型であっても良いし、別の筐体内に設けられてインターフェース機能モジュールと共に、プリンタ１０４が備えるセントロニクス、ＵＳＢ，ＩＥＥＥ１３９４などの拡張ポートに接続可能なインターフェースを有した外付けアダプタ型であっても良い。また、この通信層３０１は、上記の機能を有したコンピュータであっても良い。
【００２０】
次に、上述した図２及び図３に示す各ソフトウェア構成を説明したホストコンピュータ（ＰＣ）とプリンタ１０４との間の通信に関して説明する。
【００２１】
ここでは、ポートドライバ層２０３（図２）は、図３の通信層３０１とＴＣＰプロトコル(Transmission Control Protocol)とＵＤＰ（User Datagram Protocol）プロトコルを用いて通信される。
【００２２】
このＴＣＰプロトコルは、ネットワークアプリケーションに対して信頼性のあるストリームサービスを提供するためのプロトコルであって、2台の機器間で行われる通信の単位であるセッションの接続を行う必要があるが、通信に関しては保障されているため、印刷用のプリントデータの転送などに用いられる。ＵＤＰプロトコルは、信頼性よりもリアルタイム性が重要なアプリケーションや、複数の相手に通知するようなアプリケーションなどで主に使われるプロトコルであって、ＴＣＰセッションを既に接続した状態においても利用でき、本実施の形態に係るコマンド及びパケットを生成して送受信する。尚、コマンドの種類及び使用されるプロトコルについては後述する。
【００２３】
図４は、各コマンドで共通に使用されるデータパケットのフォーマットを説明する図である。
【００２４】
このパケットは、固定の識別子４０１と、コマンドの種別を示すコマンド番号４０２と、エラーの種別を示すエラー番号４０３と、このパケットのシーケンス番号４０４と、パケットヘッダ以降に続くデータ量を示すデータサイズ４０５と、各コマンドに応じたデータ部４０６とを備えている。
【００２５】
シーケンス番号４０４は、ホストコンピュータ（ＰＣ）とプリンタ１０４との間における通信の各パケットに対して「0x00」〜「0xFF」まで順番に付与される番号を示し、「0xFF」に達すると「0x00」に初期化される。このシーケンス番号４０４はホストコンピュータ（ＰＣ）のみでインクリメントされ、プリンタ１０４はＵＤＰの応答パケットを返す際に、同じシーケンス番号を付して応答する。ホストコンピュータ（ＰＣ）が発行したＵＤＰのシーケンス番号に対応する応答がプリンタ１０４から送られてこない場合は、ホストコンピュータ（ＰＣ）は、再度同じコマンドを、同じシーケンス番号でプリンタ１０４に送信する。
【００２６】
図５は、パケットに含まれるコマンドの一覧を説明する図である。
【００２７】
ＵＤＰとＴＣＰの両プロトコルに対応するコマンドは、セッション確立前はＵＤＰで、セッション確立後はＴＣＰで通信する。各コマンドの説明欄における上段、１）は、ホストコンピュータ（ＰＣ）からプリンタ１０４へ送られるコマンド内容を示し、下段、２）はプリンタ１０４からホストコンピュータ（ＰＣ）へ送られるコマンド内容を示している。また、各コマンドには、予めコマンド番号が割り当てられており、これが図４に示すデータパケットのコマンド番号４０２にセットされる。これによりコマンドの種類を識別することができる。
【００２８】
［第１実施例］
図６は、本発明の実施の形態１に係るホストコンピュータ（ＰＣ）からプリンタ１０４へ送られるセッション開始要求パケットを説明する図である。このコマンドはＵＤＰプロトコルを用いて通信される。ここではコマンド番号４０２に「セッション開始要求」を示す「０５」が記入されており、これは図５を参照すると「ターゲット(Target)（プリンタ）へのセッション開始要求」であることが分かる。尚、図４に示すパケットの識別子４０１、コマンド番号４０２、エラー番号４０３、シーケンス番号４０４、そしてデータサイズ４０５と共通するエリアは同じ番号で示している。
【００２９】
データ部４０６には、セッション開始を要求した回数を示すリトライカウント（Retry Count）、セッション開始要求を始めた時刻を示すホストコンピュータにおける（Time Stamp）、ホストコンピュータの識別名（コンピュータ名）及びドキュメント名などが格納される。但し、これらはいつも全てデータ部４０６に含まれるわけではなく、コマンドの種類に応じて、これらの一部のみが含まれる場合もある。ここで、「Retry Count」と「Time Stamp」は、後述するセッション開始要求の可否判定に用いられる情報である。コンピュータ名、ドキュメント名、その他のデータは、セッション中にプリンタ１０４が保持する情報であり、他ホストコンピュータからのセッション情報の取得要求に対して応答する場合などに用いられる。「Time Stamp」は、ホストコンピュータ（ＰＣ）が備えるリアルタイムクロックに基づいて、あるジョブについて最初のセッション開始要求時に設定され、セッション成立まで同一値が保持される。「Retry Count」は、最初のセッション開始要求時には「Retry Count」の値を「０」とし、以降、再要求の度に１ずつインクリメントされる。
【００３０】
図７は、プリンタ１０４からホストコンピュータ（ＰＣ）へ送られるセッション開始要求応答パケットのフォーマットを示す図である。ここではコマンド番号４０２に「８５」が記入されており、これは図５を参照すると「セッション開始要求に対する応答（Reply）」であることが分かる。
【００３１】
この応答コマンドは、ＵＤＰプロトコルを用いて通信される。プリンタ１０４は、セッション開始の可否を示す所定のエラー番号４０３を格納してホストコンピュータ（ＰＣ）へ返信する。このパケットでは、データ部４０６が存在しないため、データサイズ４０５の値は「０」となっている。
【００３２】
次に図８及び図９を参照して、本実施の形態に係るホストコンピュータ（ＰＣ）１０２（１０３）及びプリンタ１０４の構成を説明する。
【００３３】
図８は、本実施の形態に係るホストコンピュータ（ＰＣ）の構成を示すブロック図である。
【００３４】
図８において、８１は、このホストコンピュータ全体の動作を制御するＣＰＵである。ハードディスク（ＨＤ）８３に記憶されているプログラムやデータがＲＡＭ８２にロードされてＣＰＵ８１により実行されることにより、このホストコンピュータの動作制御が実行される。またこのＲＡＭ８２は、ＣＰＵ８１による制御動作時にワークメモリとして使用され、各種データを一時的に保存している。ＨＤ８３は、各種アプリケーションソフトウェアやドライバなどを記憶している大容量記憶装置である。入力部８４は、キーボードやポインティングデバイスなどを有し、ユーザにより操作されて各種データやコマンドの入力に使用される。表示部８５は液晶やＣＲＴ等を有し、オペレータへのメッセージやデータなどを表示する。ネットワークインターフェース８６は、ネットワーク１０１とのインターフェースを制御している。
【００３５】
図９は、本実施の形態に係るターゲットの一例を示すプリンタ１０４の構成を示すブロック図である。
【００３６】
図９において、９１は制御部を示し、この制御部９１は、このプリンタ１０４全体の動作を制御するＣＰＵ９４、このＣＰＵ９４により実行されるプログラムを記憶しているプログラムメモリ９５、ＣＰＵ９４により動作時にワークエリアとして使用され、各種データを一時的に保存するＲＡＭ９７、ネットワーク１０１との間の通信を制御するネットワークインターフェース９６を備えている。操作パネル９２は、ユーザにより操作されて各種データやコマンドを入力するキーや表示部を有している。プリンタエンジン９３は、例えば電子写真法やインクジェット方式により記録シート上に画像を印刷する。
【００３７】
図１０は、本実施の形態に係るホストコンピュータ（ＰＣ）によるセッション開始要求処理を示すフローチャートで、この処理を実行するプログラムはＨＤ８３にインストールされており、実行時にＲＡＭ８２にロードされて実行される。
【００３８】
このホストコンピュータは、セッション開始要求を始めるに当たって、まず最初にステップＳ１で、「Time Stamp」に、現在の時間を設定し、ステップＳ２で、「Retry Count」を「０」に設定して、セッション開始要求パケットを作成して送信する（ステップＳ３）。尚、セッション開始要求の時間及び「Retry Count」の値は、ＲＡＭ８２に記憶されている。尚、「Time Stamp」に設定される現在の時間は、不図示のタイマによる計時に基づくものであっても、或はネットワーク１０１を介して他のホストコンピュータ等から取得した時間情報であっても良い。
【００３９】
そしてステップＳ４で、プリンタ１０４からの応答をタイムアウトまで待ち、それまでにプリンタ１０４からの応答があると、ステップＳ５で、その応答パケットがセッション開始を許可する（ＳＵＣＣＥＳＳ）ものか否かを判断する。セッションの開始が許可されたならば、プリンタ１０４とのセッションを開始して（ステップＳ９）、この処理フローを終了する。
【００４０】
一方、ステップＳ５でセッション開始が不許可となった場合はステップＳ７に進み、「Retry Count」の値を１つインクリメントし、次にステップＳ８に進み、ジョブがキャンセルされているかどうかをチェックし、キャンセルされていなければステップＳ３に戻ってパケットを再送する。また、ジョブがキャンセルされている時はステップＳ１０に進み、セッション開始が失敗したものとして処理を終了する。
【００４１】
また、ステップＳ４で、プリンタ１０４からの応答をタイムアウトまで待ち、それまでにプリンタ１０４からの応答がないときはステップＳ６に進み、セッション開始要求パケットをプリンタ１０４に再送するように指示されたかどうかを判断し、再送が指示されたときはステップＳ３に戻って前述の処理を繰り返す。再送指示がないときはそのまま処理を終了する（ステップＳ１０）。
【００４２】
図１１は、本実施の形態に係るプリンタ１０４における、ホストコンピュータ（ＰＣ）からのセッション開始要求への応答処理を示すフローチャートで、この処理を実行するプログラムはプログラムメモリ９５に記憶されている。プリンタ１０４は、ホストコンピュータからのセッション開始要求パケットに対して、ＳＵＣＣＥＳＳ（成功）又はＮＧ（失敗）応答を返すが、その判断について説明する。尚、これ以降の説明において、説明を簡単にするために、プリンタ１０４が一度に実行できるセッション数を「１」として説明する。
【００４３】
プリンタ１０４の電源投入直後には、セッションは接続されておらず、プリンタ１０４内部で保持している、次のセッション開始要求に対してＳＵＣＣＥＳＳを返す候補コンピュータ情報はクリアされており、無効な状態である。
【００４４】
この処理は、ホストコンピュータからセッション開始要求パケットを受信することにより開始され、まずステップＳ１１で、現在セッション中であるかどうかを判定し、セッション中でなければステップＳ１５に進むが、セッション中であればステップＳ１２に進む。ステップＳ１５では、ある候補コンピュータの情報をクリアするまでの時間（有効時間）が経過しているか否かを判定する。この有効時間は、例えば、セッションが空き状態になってから５秒等というように、各パケットを送受信する処理よりも十分長い時間の固定値であってもよく、候補コンピュータのリトライ間隔を追従し、次に予測されるリトライのタイミングまででもよい。また更に、ネットワーク規模を考慮して推測してもよい（候補コンピュータのリトライ間隔を追従して、有効時間を算出する処理については後述する）。そして、その候補コンピュータの情報をクリアするまでの時間（有効時間）が経過している時はステップＳ１６に進み、その候補コンピュータの情報をクリアしてステップＳ１７に進む。
【００４５】
一方、ステップＳ１５で、セッションが解放されてから、その候補コンピュータの情報の有効時間以上が経過していない場合は、候補コンピュータの情報をそのまま保持してステップＳ１７に進み、候補コンピュータの情報が有効かどうかを判断する。この候補コンピュータの情報が有効かどうかの判定は、初期状態或はセッションの競合が発生していないために、候補コンピュータ情報が全てクリアされていたならば、候補コンピュータ情報が無効であると判断する。候補コンピュータ情報が全てクリアされていればステップＳ１９に進んで、ＳＵＣＣＥＳＳ応答を、そのホストコンピュータに返す。このように初期状態では、元々候補コンピュータ情報はクリアされているのでＳＵＣＣＥＳＳ応答が返送されることになる。
【００４６】
これに対しステップＳ１７で、候補コンピュータ情報がクリアされておらず、候補コンピュータ情報が有効であると判断されるとステップＳ１８に進み、そのセッション開始要求を送信したホストコンピュータが候補コンピュータと同じであるか否かを判断する。同じであればステップＳ１９に進んで、そのホストコンピュータにＳＵＣＣＥＳＳ応答を返し、セッション開始を可能にする。一方、ステップＳ１８で、そのセッションの開始を要求したホストコンピュータが候補コンピュータと異なる場合はステップＳ１４に進んでＮＧ応答を返し、セッション不許可とする。
【００４７】
一方、ステップＳ１１で、セッションが開始されている状態で、他のホストコンピュータからセッション開始要求を受信するとステップＳ１２に進み、そのセッション開始を要求したホストコンピュータと候補コンピュータとを比較する。ここで候補コンピュータ情報が登録されていないときは、そのセッションを要求したホストコンピュータを候補コンピュータとして保持する。一方、既に候補コンピュータ情報が登録されている場合は、そのセッション要求したホストコンピュータと比較を行う。その比較条件としては、
（ａ）「Time Stamp」がより古いかどうか
（ｂ）「Retry Count」がより多いかどうか
（ｃ）「Time Stamp」が等しい場合、「Retry Count」がより多いかどうか
（ｄ）「Retry Count」が等しい場合、「Time Stamp」がより古いかどうか
などというように、セッションの開始を要求した回数を示す「Retry Count」、セッション開始要求を始めた時刻を示す「Time Stamp」のいずれか一方又は両方を用いて、どのホストコンピュータが先に要求を出し始めたかを判断できるものであればどの様な条件であっても良い。
【００４８】
また、予め何れかの条件が固定的に設定されていても良いし、設定された条件を任意に変更できるようにしても良い。尚、これら条件の少なくともいずれかを満足したホストコンピュータの情報により、候補コンピュータの情報が更新される。ここにおいて、コンピュータ情報とはＭＡＣアドレスなどのように、そのホストコンピュータを特定できる情報である。
【００４９】
次に候補コンピュータとして登録されているホストコンピュータからのセッション開始要求のリトライ間隔に基づいて、前述の有効時間を算出する処理を説明する。
【００５０】
図１２は、ホストコンピュータ（ＰＣ１０２，１０３）とプリンタ１０４との間のセッションを説明する図である。
【００５１】
先ず１２００で、ホストコンピュータ１０２からプリンタ１０４に対してセッション開始を要求する。これに対してプリンタ１０４から「ＳＵＣＣＥＳＳ」が返送されて、セッションの開始が許可されると（１２０１）、ホストコンピュータ１０２はセッションの開始を指示する（１２０３）。これに対してプリンタ１０４より「開始ＯＫ」が返送されると（１２０４）、ホストコンピュータ１０２とプリンタ１０４との間でのセッションが開始される。このセッションは１２０５で、ホストコンピュータ１０２からプリンタ１０４に対してセッション終了が送信されるまで継続される。
【００５２】
その間、１２１０で、別のホストコンピュータ１０３からセッション開始要求がプリンタ１０４に送信されると、このセッション開始要求は受け付けられず、プリンタ１０４から「ＮＧ」が返送される（１２１１）。ここで、１２１０におけるセッション開始要求における「Retry Count」の値は「０」で、プリンタ１０４から「ＮＧ」が返送されることにより、ホストコンピュータ１０３からセッション開始要求がプリンタ１０４に送信される度に、この「Retry Count」の値は＋１される。
【００５３】
プリンタ１０４は、このセッション開始要求コマンドを受信する度に、各セッション開始要求コマンドの時間間隔(Time Interval)を算出する。
【００５４】
いま、セッション終了（１２０５）の直前のセッション開始要求パケット（１２１３）の「Retry Count」の値を「ｎ」とすると、このセッション開始要求パケット１２１３の処理を行った際に、このセッション開始要求パケット１２１３と、直前の「Retry Count」の値が「ｎ−１」のセッション開始要求パケット１２１２との時間間隔（１２２０）を求める。
【００５５】
そして、セッション終了（１２０５）の直後にホストコンピュータ１０３から発行されるセッション開始要求パケット（１２１４）（Retry Count」の値が「ｎ＋１」）は、セッション開始要求パケット（１２１３）から時間間隔１２２０と同じ時間間隔１２２１の後に送信されてくると予想される。
【００５６】
このようにして、候補コンピュータの情報の有効時間は、セッション終了直前のセッション開始要求パケット１２１３の到着時間に、その直前のパケット１２１２との間の時間間隔１２２０を加え、更に多少の余裕を加えた時間として算出される。
【００５７】
図１３は、本実施の形態に係るプリンタ１０４における有効時間の決定処理を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ９５に記憶されている。
【００５８】
この処理は、プリンタ１０４において、ホストコンピュータからセッション開始要求パケットを受信し、そのセッション開始要求パケットを送信しているホストコンピュータが候補コンピュータであると判断されることにより開始され、例えば前述の図１１のフローチャートのステップＳ１３で実行される。
【００５９】
先ずステップＳ２１で、そのセッション開始要求パケットの到着時間を取得する。次にステップＳ２２進み、セッション開始要求パケットの「Retry Count」の値を調べ「０」であれば、初めてのセッション開始要求パケットであること示しているのでステップＳ２８に進み、最初の有効時間としてデフォルト値を設定してステップＳ２７に進む。尚、このデフォルト値は、後述する最大設定（Max）値を利用してもよい。
【００６０】
一方、ステップＳ２２で、「Retry Count」の値が「０」以外の場合はステップＳ２３に進み、ＲＡＭ９７に記憶しておいた一つ前のパケットの到着時間を読み取る。次にステップＳ２４で、一つ前のバケットの到着時間と現パケットの到着時間との時間間隔（Time Interval）を算出し、余裕を持たせるため、例えば、この１．５倍の値を求めて有効時間とする。そしてステップＳ２５で、ステップＳ２４で求めた有効時間が、始めに定義されていた固定の最大値（Max）よりも大きいかどうかを調べ、大きくなければそれを有効時間として確定してステップＳ２７に進み、そうでないときはステップＳ２６で、その有効時間を最大値（Max）に置き換える。尚、この最大値（Max）は、ネットワーク１０１の一時的な負荷の増大等により有効時間が極端に長くなるのを避けるために設定した値である。そしてステップＳ２７に進み、現パケットの到着時間をＲＡＭ９７に記憶する。
【００６１】
上述の説明では、次のセッション開始要求パケットを受信するまでの有効時間の算出に際して、現パケットの到着時間と直前のパケットの到着時間間隔を使用したが本発明はこれに限定されるものでなく、例えば、「Retry Count」の値が「０」から「ｎ」までのｎ個の時間間隔の平均を求め、この平均値に基づいて有効時間を決定しても良い。また、平均値と実測値が大きく隔たる場合は、ｎ回の時間間隔の最大値を利用してもよい。
【００６２】
図１４は、本実施の形態に係るプリンタ１０４における状態遷移を説明する遷移図である。
【００６３】
電源投入時は、セッション無しで、かつ候補コンピュータ情報が無い状態１４００である。この状態で、ホストコンピュータからセッション開始要求パケットを受信し「ＳＵＣＣＥＳＳ」を返すと、セッション有りの状態１４０１に移行する。この状態１４０１でセッションが終了すると状態１４００に戻る。
【００６４】
あるホストコンピュータとのセッション状態１４０１で、更に他のホストコンピュータからのセッション開始要求があった場合は「ＮＧ」で応答し、セッション有りで、かつ候補コンピュータ情報有りの状態１４０２に移行する。この状態１４０２で更にセッション開始要求があれば、そのセッション開始要求を発行したホストコンピュータと候補コンピュータ情報とを比較し、条件に合致すればその候補コンピュータの情報を更新する。
【００６５】
状態１４０２で、セッションが終了すると、セッション無しで、かつ候補コンピュータ情報有りの状態１４０３に移行する。状態１４０３で、有効時間内に候補コンピュータからセッション開始要求があった場合は、そのホストコンピュータにセッションの開始を許可し、これで候補コンピュータ情報がなくなると状態１４０１へ移行する。また状態１４０３で、有効時間内で候補コンピュータ以外からの要求に対しては「ＮＧ」応答を繰り返し、状態１４０３を保持する。そして、ある候補コンピュータ情報の有効時間以上経過した場合は、その候補コンピュータ情報をクリアし、候補コンピュータ情報が無くなると状態１４００に移行する。
【００６６】
尚、前述の説明では、候補コンピュータ情報は一種類だけとして説明したが、複数の候補コンピュータ情報を管理している状態で、状態１４０３において有効時間内に候補コンピュータからセッション開始要求があり、そのホストコンピュータにセッションの開始を許可した場合に、まだ候補コンピュータ情報が存在している場合には状態１４０２へ移行することになる。
【００６７】
次に、複数のホストコンピュータ１０２，１０３，１０６と１台のプリンタ１０４との間のセッションの様子をタイミングチャートを用いて説明する。
【００６８】
図１５は、候補コンピュータから有効時間内にセッション要求がある場合のタイミングチャートである。
【００６９】
まずホストコンピュータ１０２からプリンタ１０４に対してセッションの開始要求１５００が送信されると、これに対して「ＳＵＣＣＥＳＳ」１５０１で応答する。これに対してホストコンピュータ１０２がセッション開始コマンド１５０２をプリンタ１０４に送信すると、プリンタ１０４からホストコンピュータ１０２に開始ＯＫ１５０３が応答されることにより、ホストコンピュータ１０２とプリンタ１０４との間でセッションが開始される。
【００７０】
このとき、ホストコンピュータ１０２からのセッション開始コマンド１５０２と略同時に、ホストコンピュータ１０３からセッション開始要求１５０４が送られている。しかし、ホストコンピュータ１０２からの開始要求が先であるため、この要求１５０４に対して「ＮＧ」１５０５が応答され、このホストコンピュータ１０３の情報は候補コンピュータ情報として登録される。またこの後、ホストコンピュータ１０６からセッション開始要求１５０６がプリンタ１０４に送信されてくると、この要求１５０６に対して「ＮＧ」１５０７が応答される。尚、ここで、ホストコンピュータ１０６の「Time Stamp3」は、ホストコンピュータ１０３の「Time Stamp2」よりも新しく、かつ「Retry Count」の値も「０」であるため、このホストコンピュータ１０６の情報は候補コンピュータ情報として登録されない。
【００７１】
次に、プリンタ１０４とホストコンピュータ１０２とのセッションの最中にホストコンピュータ１０３からのセッション開始要求１５０８がプリンタ１０４に送信されてくると、この要求１５０８に対して「ＮＧ」１５０９が応答される。
【００７２】
そして、ホストコンピュータ１０２からセッション終了１５１０が送信され、その応答１５１１を返送することにより、ホストコンピュータ１０２とプリンタ１０４との間のセッションが終了する。
【００７３】
この後、ホストコンピュータ１０６からセッション開始要求１５１２が送信されると、この時点ではホストコンピュータ１０３が候補コンピュータ情報に登録されているので、このセッション開始要求１５１２に対する応答は一時保留される。
【００７４】
その後、ホストコンピュータ１０３からセッション開始要求１５１３が送信されると、この時点で候補コンピュータ情報として有効であるホストコンピュータ１０３からのセッション開始要求が受け付けられて、ホストコンピュータ１０３に「ＳＵＣＣＥＳＳ」１５１４が応答され、ホストコンピュータ１０６に「ＮＧ」１５１５が応答される。次にホストコンピュータ１０３からのセッション開始コマンド１５１６によりプリンタ１０４から開始ＯＫ１５１７が返送されると、ホストコンピュータ１０３とプリンタ１０４との間でのセッションが開始される。この後、１５１８で、ホストコンピュータ１０６からのセッション開始要求が送られてくると、このホストコンピュータ１０６の情報が候補コンピュータ情報として登録されることになる。
【００７５】
なお、図中、太い矢印で示したものはＴＣＰによる通信部分、細い矢印で示したものはＵＤＰによる通信部分を意味している。
【００７６】
図１６は、候補コンピュータから有効時間内に要求がない場合のタイミングチャートである。
【００７７】
まずホストコンピュータ１０２からプリンタ１０４に対してセッションの開始要求１６００が送信されると、これに対して「ＳＵＣＣＥＳＳ」１６０１で応答する。これに対してホストコンピュータ１０２がセッション開始コマンド１６０２をプリンタ１０４に送信すると、プリンタ１０４からホストコンピュータ１０２に開始ＯＫ１６０３が応答されることにより、ホストコンピュータ１０２とプリンタ１０４との間でセッションが開始される。
【００７８】
このとき、ホストコンピュータ１０２からのセッション開始コマンド１６０２と略同時に、ホストコンピュータ１０３からセッション開始要求１６０４が送られている。しかし、ホストコンピュータ１０２からの開始要求が先であるため、この要求１６０４に対して「ＮＧ」１６０５が応答され、このホストコンピュータ１０３の情報が候補コンピュータ情報として登録される。また、この後、ホストコンピュータ１０６からセッション開始要求１６０６がプリンタ１０４に送信されてくると、このセッション開始要求１６０６に対して「ＮＧ」１６０７が応答される。尚、前述したようの、このホストコンピュータ１０６の情報は候補コンピュータ情報として登録されない。
【００７９】
次に、プリンタ１０４とホストコンピュータ１０２とのセッションの最中にホストコンピュータ１０３からのセッション開始要求１６０８がプリンタ１０４に送信されてくると、この要求１６０８に対して「ＮＧ」１６０９が応答される。
【００８０】
そして、ホストコンピュータ１０２からセッション終了１６１０が送信され、その応答１６１１を返送することにより、ホストコンピュータ１０２とプリンタ１０４との間のセッションが終了する。この後、ホストコンピュータ１０６からセッション開始要求１６１２が送信されると、ホストコンピュータ１０６に「ＮＧ」１６１３が応答される。これは、この時点では、ホストコンピュータ１０３が候補コンピュータ情報に登録されており、そのセッション開始要求を受信すると予測される有効時間内であるため、これ以外のホストコンピュータ１０６からの開始要求が無視されることになる。
【００８１】
しかし、この有効時間を経過した後、ホストコンピュータ１０３からのセッション開始要求が送られてこないときは、そのホストコンピュータ１０３は候補コンピュータ情報から消去される。このため、次にホストコンピュータ１０６がセッション開始要求１６１４を発行すると、これに対してセッション開始要求応答（ＯＫ）１６１５がプリンタ１０４からホストコンピュータ１０６に送信される。これによりホストコンピュータ１０６からセッション開始コマンド１６１６がプリンタ１０４に送信されると、プリンタ１０４からホストコンピュータ１０６にセッション開始ＯＫ１６１７が送信されて、ホストコンピュータ１０６とプリンタ１０４とのセッションが開始される。
【００８２】
このように、ホストコンピュータ１０３の候補コンピュータ情報としての有効時間内に、ホストコンピュータ１０３からプリンタ１０４に対してセッション開始要求パケットが発行されない場合には、その有効時間以上が経過したタイミングで、候補コンピュータ情報がクリアされる。
【００８３】
［第２実施例］
上述のホストコンピュータが備えるリアルタイムクロックは、全て正しく設定されているとは限らない。また、例え全てのホストコンピュータで計時されている時刻を正確に合わせたとしても、それぞれのコンピュータの進みや遅れ誤差によって不正確になりがちである。従って、各ホストコンピュータのリアルタイムクロックによる計時に基づいて「Time Stamp」を設定するようにした前述の実施の形態１のシステムでは、実際にはセッション開始要求を始めたのが先であるにも拘わらず、セッション開始要求が許可されないということも起こり得る。
【００８４】
そこで、この実施の形態２では、プリンタ１０４で「Time Stamp」を設定することにより、各ホストコンピュータにおける計時誤差による問題をなくして、より精度の高い計時に基づく判断を実現するものである。
【００８５】
この実施の形態２に係るホストコンピュータからプリンタ１０４へ送られるセッション開始要求パケットの構造は、前述の実施の形態１（図６）で説明したものがそのまま適用できる。但し、ここでの「Time Stamp」は、あるジョブについての最初のセッション開始要求（「Retry Count」の値が「０」）に対してプリンタ１０４から返される応答パケットに格納される情報である。従って、最初のセッション開始要求時（「Retry Count」の値が「０」）には「Time Stamp」には「０」が設定されているものとする。このプリンタ１０４からの「Time Stamp」は、プリンタ１０４の制御部９１に設けられた時計機能による時刻、プリンタ１０４の電源投入後の相対的な積算時間、又はプリンタ１０４が送受信したパケットの積算などのいずれか１つである。つまりダウンストリームにおける接続要求のコマンドを受信したタイミングが、時系列上において新旧を区別できる情報であれば、どのようなフォーマットであっても同等の機能を有することができる。
【００８６】
図１７は、本発明の実施の形態２に係るプリンタ１０４からホストコンピュータへ送られるセッション開始要求応答パケットのデータ構成を説明する図で、前述の図６及び図７と共通する部分は同じ記号で示している。
【００８７】
前述の実施の形態１に係るセッション開始要求応答パケット（図７）と異なるのは、図１７では、データ部４０６に「Time Stamp」の値が格納されている点である。
【００８８】
プリンタ１０４では、ホストコンピュータからのセッション開始要求に応答する際に、「Time Stamp」の値を、このパケットのデータ部４０６に格納する。同一ジョブについての再要求及びその応答に際しては、同一の「Time Stamp」の値がホストコンピュータとプリンタ１０４との間でやり取りされる。
【００８９】
図１８は、実施の形態２に係るホストコンピュータにおけるセッション開始要求処理を示すフローチャートである。
【００９０】
セッション開始要求を始めるに当たって、まず初めにステップＳ３１で、「Time Stamp」を「０」にセットし、次にステップＳ３２で、「Retry Count」に「０」をセットし、ステップＳ３３で、セッション開始要求パケットをプリンタ１０４に送信する。
【００９１】
ステップＳ３４でプリンタ１０４からの応答をタイムアウトまで待ち、プリンタ１０４からの応答があるとステップＳ３５に進み、その応答パケットがセッション開始を許可するもの「ＳＵＣＣＥＳＳ」か否かを判断する。ここで、「ＳＵＣＣＥＳＳ」即ち、セッションが許可されるとステップＳ４１に進み、プリンタ１０４とのセッションを開始して、このフローチャートで示される処理を終了する。
【００９２】
一方、ステップＳ３４で、タイムアウトとなった場合はステップＳ３６に進み、再送するように指示されたかどうかを判定し、再送が指示されるとステップＳ３３に戻り、前述の処理を実行する。再送指示がない場合はステップＳ４２に進み、セッション開始が失敗したものとして処理を終了する。
【００９３】
またステップＳ３５で、応答が「ＳＵＣＣＥＳＳ」でない場合はステップＳ３７に進み、「Retry Count」の値が「０」かどうかをチェックし、「０」であればステップＳ３８に進み、応答パケットから「Time Stamp」を取得し、次の再要求パケットに格納する「Time Stamp」としてステップＳ３９に進む。これにより、「Retry Count」の値が「０」でないパケットでは、「Retry Count」の値が「０」の時の「Time Stamp」が、そのまま再送時に用いられることになる。
【００９４】
次にステップＳ３９に進み、「Retry Count」の値を１つインクリメントし、次にステップＳ４０に進み、ジョブがキャンセルされているかどうかをチェックし、キャンセルされていなければステップＳ３３に戻ってパケットを再送する。また、ジョブがキャンセルされている時はステップＳ４２に進み、セッション開始が失敗したものとして処理を終了する。
【００９５】
図１９は、本実施の形態に係るプリンタ１０４におけるセッション開始要求に対する応答処理を示すフローチャートである。
【００９６】
先ずステップＳ５１で、ホストコンピュータから受信したセッション開始要求パケットに格納された「Retry Count」の値が「０」かどうかを調べ、「０」であればステップＳ５２に進み、「Time Stamp」を作成する。ここで作成される「Time Stamp」は前述の通り、プリンタの１０４の制御部９１に設けられた時計機能による時刻、プリンタ１０４の電源投入後の相対的な積算時間、またはプリンタ１０４が送受信したパケットの積算などのダウンストリームにおける接続要求のコマンドを受信したタイミングが時系列上において新旧を区別できる情報であればよい。一方ステップＳ５１で、「Retry Count」の値が「０」以外の場合はステップＳ５３に進み、セッション開始要求パケット中の「Time Stamp」が保持される。次にステップＳ５３に進み、応答パケットに格納する「Time Stamp」を設定する。
【００９７】
次にステップＳ１１に進み、現在実行中のセッションがあるかどうかを判定する。これ以降の処理は、前述の実施の形態１において、図１１のフローチャートを参照して説明したステップＳ１１〜Ｓ１９における候補コンピュータ情報との比較及び有効時間に関する処理と同一であるので、その説明を省略する。
【００９８】
図２０は、前述の候補コンピュータ情報から有効時間内に要求がある場合の複数のホストコンピュータ１０２，１０３，１０６と１台のプリンタ１０４との間のセッションの様子を示すタイミングチャートで、前述の図１５と共通する部分は同じ記号で示し、その説明を省略する。
【００９９】
前述の実施の形態１におけるタイミングチャート（図１５）との相違は、本実施の形態においては、「ＮＧ」応答１５０５，１５０７で、ホストコンピュータが「Time Stamp」を設定するのではなく、プリンタ１０４が「Time Stamp」を設定する点にある。
【０１００】
図２１は、候補コンピュータから有効時間内に要求がない場合の複数のホストコンピュータ１０２，１０３，１０６と１台のプリンタ１０４との間のセッションの様子を示すタイミングチャートで、前述の図１６と共通する部分は同じ記号で示し、その説明を省略する。
【０１０１】
前述の実施の形態１におけるタイミングチャート（図１６）との相違は、本実施の形態２においては、「ＮＧ」応答１６０５，１６０７で、ホストコンピュータが「Time Stamp」を設定するのではなく、プリンタ１０４が「Time Stamp」を設定する点にある。
【０１０２】
［実施の形態３］
本実施の形態３は、前述の実施の形態２と同様に、プリンタ１０４で「Time Stamp」を設定することで、より精度の高い判断を実現するものである。但し、前述の実施の形態２が、プリンタ１０４で設定した「Time Stamp」を応答パケットに格納してホストコンピュータへ返していたのに対して、本実施の形態３では、プリンタ１０４で設定した「Time Stamp」をプリンタ１０４でのみ保持して、ホストコンピュータには返さない点で異なっている。
【０１０３】
尚、プリンタ１０４からホストコンピュータへ送られるセッション開始要求応答パケットの構造は、前述の実施の形態１において、図７を用いて説明したものがそのまま適用できる。
【０１０４】
図２２は、本実施の形態３に係るホストコンピュータからプリンタ１０４へ送られるセッション開始要求パケットのデータフォーマットを説明する図である。本実施の形態３では、「Time Stamp」をプリンタ１０４のＲＡＭ９７でのみ保持するので、前述の実施の形態１，２のセッション開始要求パケット（図６）と異なり、データ部４０６に「Time Stamp」を格納する必要はない。
【０１０５】
図２３は、ホストコンピュータにおけるセッション開始要求処理を示すフローチャートで、この処理を実行するプログラムはＨＤ８３にインストールされており、実行時にＲＡＭ８２にロードされて実行される。
【０１０６】
セッション開始要求を始めるに当たって、まず初めにステップＳ７１で、「Retry Count」の値を「０」にセットし、ステップＳ７２で、セッション開始要求パケットをプリンタ１０４に送信する。そしてステップＳ７３に進み、プリンタ１０４からの応答をタイムアウトまで待ち、プリンタ１０４からの応答があるとステップＳ７４に進み、その応答パケットがセッション開始を許可するもの「ＳＵＣＣＥＳＳ」か否かを判断する。「ＳＵＣＣＥＳＳ」であれば、即ち、許可されたならばステップＳ７８に進み、プリンタ１０４とのセッションを開始して、このフローを終了する。
【０１０７】
一方、ステップＳ７３でタイムアウトとなった場合はステップＳ７５に進み、再送指示が入力されたかどうかを判定し、再送が指示されるとステップＳ７２に進んで、前述の処理を繰り返す。再送指示が入力されないときはステップＳ７９に進み、セッションの開始が失敗したものとして処理を終了する。
【０１０８】
またステップＳ７４で、「ＳＵＣＣＥＳＳ」を受信していない場合はステップＳ７６に進み、「Retry Count」の値を１つインクリメントする。次にステップＳ７７に進み、ジョブがキャンセルされているかどうかをチェックし、キャンセルされていなければステップＳ７２に戻ってパケットを再送する。ジョブがキャンセルされているときはステップＳ７９に進み、セッションの開始が失敗したものとして処理を終了する。
【０１０９】
図２４は、本実施の形態３に係るプリンタ１０４におけるセッション開始要求に対する応答処理を示すフローチャートで、この処理を実行するプログラムはプログラムメモリ９５に記憶されている。
【０１１０】
先ずステップＳ８１で、ホストコンピュータから受信したセッション開始要求パケットに格納された「Retry Count」の値が「０」かどうかをみる。「０」であればステップＳ８２に進み、「Time Stamp」を作成し、プリンタ１０４のＲＡＭ９７に、そのホストコンピュータからの要求パケットと対応付けて格納する。ここで作成される「Time Stamp」は前述の通り、プリンタ１０４の制御部９１に設けられた時計機能による時刻、プリンタ１０４の電源投入後の相対的な積算時間、またはプリンタ１０４が送受信したパケットの積算などのダウンストリームにおける接続要求のコマンドを受信したタイミングが時系列上において新旧を区別できる情報であればよい。
【０１１１】
一方ステップＳ８１で、「Retry Count」の値が「０」以外の場合はステップＳ８３に進み、既にＲＡＭ９７に格納されている「Time Stamp」がそのまま保持される。
【０１１２】
尚、ステップＳ１１以降の処理については、前述の実施の形態１において、図１１を用いて説明した候補コンピュータ情報の比較及び有効時間に関する処理（ステップＳ１１〜Ｓ１９）と同一であるので、その説明を省略する。
【０１１３】
ここでプリンタ１０４のＲＡＭ９７のメモリ領域が十分にある場合には、第２、第３の候補コンピュータ情報も格納してもよい。セッションが接続されている際に、格納したホストコンピュータ以外の第２、第３のホストコンピュータから、セッション開始要求パケットを受信すると、第２、第３の候補コンピュータとしてＲＡＭ９７に格納する。
【０１１４】
現在のセッションが解放された後、候補コンピュータのセッション開始要求パケットに対して、プリンタ１０４は「ＳＵＣＣＥＳＳ」を返し、候補コンピュータからのセッションを接続する。これによりプリンタ１０４のＲＡＭ９７に保持されていた、セッションを開始した候補コンピュータの情報はクリアされ、保持していた第２の候補コンピュータの情報が次の候補コンピュータとして繰り上がる。同様に第３の候補コンピュータの情報が第２へと繰り上がる。以降、同様の処理が繰り返される。
【０１１５】
また，この場合のプリンタ１０４における状態遷移の様子は、前述の実施の形態１において図１４を用いて説明したものが適用できる。但し，状態１４０３で、有効時間内に候補コンピュータからのセッション開始要求を受信してセッションが開始された場合、他の候補があれば状態１４０２に移行して、その候補を次に有効な候補コンピュータ情報とする。
【０１１６】
また、複数のホストコンピュータと１台のプリンタ１０４との間のセッションの様子を示すタイミングチャートは、前述の実施の形態２において図２０及び図２１を用いて説明したものがそのまま適用できる。
【０１１７】
［他の実施の形態］
また前述の実施の形態以外にも、例えば、ホストコンピュータからプリンタ１０４に送られるセッション開始要求に優先度情報を含ませることで、その優先度を加味したセッション要求の受け付け可否判定を行うようにしても良い。例えば、Ｈ（優先度高）、Ｍ（優先度中）、Ｌ（優先度低）の３レベルの優先度の何れかをホストコンピュータ（ユーザ）で指定して、この優先度を含んだセッション開始要求をプリンタ１０４に送信する。このセッション開始要求を受け取ったプリンタ１０４は、優先度がＨ（優先度高）のものだけを、上述した第１〜３実施の形態で説明したセッション可否判定の対象とするようにしても良い。
【０１１８】
また、ホストコンピュータが備えるリアルタイムクロックに基づいて設定される第１の「Time Stamp」と、プリンタ１０４の制御部９１に設けられた時計機能による時刻、プリンタ１０４の電源投入後の相対的な積算時間、またはプリンタ１０４が送受信したパケットの積算などのいずれか１つから設定される第２の「Time Stamp」とを用いて、より複合的なセッション可否判定を行うようにしても良い。これにより、例えば、一方の「Time Stamp」の値が等しいセッション開始要求が複数あった場合に、他方の値がより古い方にセッション開始許可を与えるようにもできる。また、一方の「Time Stamp」が何かの要因で失われている場合に、他方の「Time Stamp」値を基に、セッション開始の可否判定を行うことが考えられる。
【０１１９】
また、ターゲット（電子機器）としては、この実施の形態に係るプリンタの他にファックスや、プリンタ機能、ファックス機能など複数機能を備えた多機能複合機であっても良い。
【０１２０】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムをコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、その目的を達成することができる。
【０１２１】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接に供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【０１２２】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１２３】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【０１２４】
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【０１２５】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【０１２６】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【０１２７】
【図１】本発明の実施の形態に係るデータ通信システムの構成を示すブロック図である。
【図２】本実施の形態に係るホストコンピュータ（ＰＣ）が備えるソフトウェア構成を示すブロック図である。
【図３】本実施の形態に係るプリンタ（ターゲット）が備えるソフトウェアの構成を示すブロック図である。
【図４】各コマンドで共通に使用されるデータパケットのフォーマットを説明する図である。
【図５】パケットに含まれるコマンドの一覧を説明する図である。
【図６】本発明の実施の形態１に係るホストコンピュータ（ＰＣ）からプリンタへ送られるセッション開始要求パケットを説明する図である。
【図７】本実施の形態に係るプリンタからホストコンピュータ（ＰＣ）へ送られるセッション開始要求応答パケットのフォーマットを示す図である。
【図８】本実施の形態に係るホストコンピュータ（ＰＣ）の構成を示すブロック図である。
【図９】本実施の形態に係るターゲットの一例を示すプリンタの構成を示すブロック図である。
【図１０】本実施の形態に係るホストコンピュータ（ＰＣ）によるセッション開始要求処理を示すフローチャートである。
【図１１】本発明の実施の形態１に係るプリンタにおける、ＰＣからのセッション開始要求への応答処理を示すフローチャートである。
【図１２】本実施の形態１に係るホストコンピュータとプリンタとの間のセッションを説明する図である。
【図１３】本実施の形態１に係るプリンタにおける有効時間の決定処理を説明するフローチャートである。
【図１４】本実施の形態１に係るプリンタにおける状態遷移を説明する遷移図である。
【図１５】本実施の形態１に係る候補コンピュータから有効時間内にセッション要求がある場合のタイミングチャートである。
【図１６】本実施の形態１に係る候補コンピュータから有効時間内に要求がない場合のタイミングチャートである。
【図１７】本実施の形態２に係るプリンタからホストコンピュータへ送られるセッション開始要求応答パケットのデータ構成を説明する図である。
【図１８】実施の形態２に係るホストコンピュータにおけるセッション開始要求処理を示すフローチャートである。
【図１９】本実施の形態２に係るプリンタにおけるセッション開始要求に対する応答処理を示すフローチャートである。
【図２０】本実施の形態２に係る候補コンピュータから有効時間内に要求がある場合の複数のホストコンピュータと１台のプリンタとの間のセッションの様子を示すタイミングチャートである。
【図２１】本実施の形態２に係る候補コンピュータから有効時間内に要求がない場合の複数のホストコンピュータと１台のプリンタとの間のセッションの様子を示すタイミングチャートである。
【図２２】本実施の形態３に係るホストコンピュータからプリンタへ送られるセッション開始要求パケットのデータフォーマットを説明する図である。
【図２３】本実施の形態３に係るホストコンピュータにおけるセッション開始要求処理を示すフローチャートである。
【図２４】本実施の形態３に係るプリンタにおけるセッション開始要求に対する応答処理を示すフローチャートである。
【図１】
2005135076.tif 000003
【図２】
2005135076.tif 000004
【図３】
2005135076.tif 000005
【図４】
2005135076.tif 000006
【図５】
2005135076.tif 000007
【図６】
2005135076.tif 000008
【図７】
2005135076.tif 000009
【図８】
2005135076.tif 000010
【図９】
2005135076.tif 000011
【図１０】
2005135076.tif 000012
【図１１】
2005135076.tif 000013
【図１２】
2005135076.tif 000014
【図１３】
2005135076.tif 000015
【図１４】
2005135076.tif 000016
【図１５】
2005135076.tif 000017
【図１６】
2005135076.tif 000018
【図１７】
2005135076.tif 000019
【図１８】
2005135076.tif 000020
【図１９】
2005135076.tif 000021
【図２０】
2005135076.tif 000022
【図２１】
2005135076.tif 000023
【図２２】
2005135076.tif 000024
【図２３】
2005135076.tif 000025
【図２４】
2005135076.tif 000026