(57)【要約】【課題】  印刷が尻切れ状態となったり、送信元で送信エラーとなったりすることなく、印刷装置を再起動させることができるようにする。【解決手段】  コンピュータ１００は、プリンタ２００の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張る送信処理部１１６と、全てのコネクションを張った後に、プリンタ２００から取得した情報に基づいて、プリンタ２００において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部１１２と、印刷ジョブ監視部１１２によって全ての印刷ジョブについての終了が検知された後に、プリンタ２００に対し、再起動の命令を与える再起動命令部１１４と、を備える。【選択図】  図１
2006113932.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された印刷装置を再起動させるための再起動装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置から取得した情報に基づいて、前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置に対し、再起動の命令を与える再起動命令部と、
を備える再起動装置。
【請求項２】
ネットワークを介して接続された印刷装置を再起動させるための再起動装置であって、
前記印刷装置から取得した情報に基づいて、前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置に対し、再起動の命令を与える再起動命令部と、
を備える再起動装置。
【請求項３】
ネットワークを介して接続された印刷装置を再起動させるための再起動装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置に対し、再起動の命令を与える再起動命令部と、
を備える再起動装置。
【請求項４】
請求項１または請求項２に記載の再起動装置において、
前記印刷ジョブ監視部が、前記印刷装置から取得する情報は、前記印刷装置の有するＭＩＢ（Management Information Base）から取得する情報であることを特徴とする再起動装置。
【請求項５】
請求項１ないし請求項３のうちの任意の１つに記載の再起動装置において、
前記再起動命令部は、ＳＮＭＰ（Simple Network Management Protocol）を用いて前記再起動の命令を与えることを特徴とする再起動装置。
【請求項６】
請求項１ないし請求項３のうちの任意の１つに記載の再起動装置において、
前記再起動命令部は、印刷ジョブを用いて再起動の命令を与えることを特徴とする再起動装置。
【請求項７】
自身で再起動を行うことが可能な印刷装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置自身に対し、再起動の命令を与える再起動命令部と、
を備える印刷装置。
【請求項８】
自身で再起動を行うことが可能な印刷装置であって、
前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置自身に対し、再起動の命令を与える再起動命令部と、
を備える印刷装置。
【請求項９】
自身で再起動を行うことが可能な印刷装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置自身に対し、再起動の命令を与える再起動命令部と、
を備える印刷装置。
【請求項１０】
請求項７ないし請求項９のうちの任意の１つに記載の印刷装置において、
前記再起動命令部は、ＳＮＭＰを用いて前記再起動の命令を与えることを特徴とする印刷装置。
【請求項１１】
請求項７ないし請求項９のうちの任意の１つに記載の印刷装置において、
前記再起動命令部は、印刷ジョブを用いて再起動の命令を与えることを特徴とする印刷装置。
【請求項１２】
印刷装置を再起動させるための再起動方法であって、
（ａ）前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張る工程と、
（ｂ）全てのコネクションを張った後に、前記印刷装置において受信されている印刷ジョブの状態を監視する工程と、
（ｃ）監視結果として全ての印刷ジョブについての終了が検知された後に、前記印刷装置に対し、再起動の命令を与える工程と、
を備える再起動方法。
【請求項１３】
印刷装置を再起動させるための再起動方法であって、
（ａ）前記印刷装置において受信されている印刷ジョブの状態を監視する工程と、
（ｂ）監視結果として全ての印刷ジョブについての終了が検知された後に、前記印刷装置に対し、再起動の命令を与える工程と、
を備える再起動方法。
【請求項１４】
印刷装置を再起動させるための再起動方法であって、
（ａ）前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張る工程と、
（ｂ）全てのコネクションを張った後に、前記印刷装置に対し、再起動の命令を与える工程と、
を備える再起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタなどの印刷装置を再起動させるための技術に関するものである。
【背景技術】
【０００２】
従来においては、例えば、ネットワークに接続されたプリンタのファームウェアを、ネットワークを介してリモートでアップデートする場合、コンピュータなどからネットワークを介してプリンタに、そのファームウェアのファイルを送信し、その後、そのコンピュータなどからネットワークを介してプリンタをリモートで再起動させることにより、そのファームウェアをプリンタに反映させていた。
【０００３】
このような場合において、コンピュータなどからネットワークを介してプリンタをリモートで再起動させる方法としては、従来、次のような方法があった。
１）ＳＮＭＰ（Simple Network Management Protocol）を用いて再起動する方法
コンピュータなどからプリンタに対し、ＳＮＭＰで、Set Request命令として、変数prtGeneralResetに所定の値をセットした命令を与えると、それをきっかけとして、プリンタが再起動する。
２）印刷ジョブを用いて再起動する方法
コンピュータなどからプリンタに対し、EJL PRINTERRESETコマンド（プリンタをリブートするコマンド）を含む印刷ジョブを送信し、プリンタにおいて、その印刷ジョブが言語解釈されると、その時点で、プリンタが再起動する。
【０００４】
なお、従来において、関連する技術としては、下記の特許文献１〜３に記載のものが挙げられる。
【０００５】
【特許文献１】特開２００１−２２３７４３号公報
【特許文献２】特開２００１−３４５８２号公報
【特許文献３】特開２００３−５４０８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した従来における再起動の方法によれば、次のような問題があった。
即ち、１）の方法の場合、プリンタに上記命令が与えられると、それをきっかけとして、印刷ジョブの切れ目か否かに関わりなく、プリンタは直ちに再起動をしてしまう。また、２）の方法の場合も、プリンタが上記コマンドを含む印刷ジョブを受信した後、その印刷ジョブを言語解釈すると、プリンタは直ちに再起動をしてしまう。
【０００７】
従って、何れの方法の場合も、プリンタにおいて、再起動する際に、印刷中の印刷ジョブが存在する場合、その印刷ジョブについての印刷は尻切状態になってしまうという問題があった。また、再起動する際に、受信中の印刷ジョブが存在する場合、その印刷ジョブを送信した送信元からは、プリンタにその印刷ジョブが受信され始めたにもかかわらず、その後、その印刷ジョブが処理されずに破棄されたように見えてしまう。その結果、送信元では、その印刷ジョブは送信エラーとして認識されるため、印刷ジョブの再送信を余儀なくされるという問題もあった。
【０００８】
このような問題を、２）の再起動方法の場合を例にとり、図１０を用いて説明する。
図１０は２）の再起動方法によってプリンタを再起動する場合における、プリンタの各処理状態を示す説明図である。図１０において、横軸は時間であり、縦軸には、プリンタで行われる各処理、即ち、受信処理，言語解釈処理，印刷処理が記載されている。
【０００９】
図１０において、今、プリンタに対し、各々異なる装置から印刷ジョブＡ，Ｂ，Ｃがそれぞれ送信され、このうち、印刷ジョブＢに、上記したEJL PRINTERRESETコマンドが含まれているものとする。プリンタは、まず、印刷ジョブＡを受信して、受信処理を行い、受信処理を終えた部分から、言語解釈処理を行い、さらに、言語解釈処理を終えた部分から、印刷処理を行う。そして、印刷ジョブＡについて、受信処理を全て完了すると、プリンタは、次に、印刷ジョブＢを受信して、受信処理を行い、さらに、印刷ジョブＡについて、言語解釈処理を全て完了すると、印刷ジョブＢについて、受信処理を終えた部分から、言語解釈処理を行う。そして、印刷ジョブＢについて、受信処理を全て完了すると、プリンタは、次に、印刷ジョブＣを受信して、受信処理を行う。その後、印刷ジョブＢについて、言語解釈処理を行っている際に、上記したEJL PRINTERRESETコマンドを解釈すると、プリンタは直ちに再起動する。
【００１０】
このとき、印刷ジョブＡについては、まだ、印刷処理中であるため、印刷が尻切れ状態になってしまい、印刷ジョブＢについては、まだ、受信処理中であるため、送信元では送信エラーとなってしまうという問題があった。
【００１１】
なお、以上の説明では、プリンタを、コンピュータなど他の装置（即ち、再起動装置）からネットワークを介してリモートで再起動させる場合について説明したが、プリンタが、自身で再起動を行う場合についても、上記した１），２）の方法を用いることが可能であり、そのような場合にも、同様の問題が発生しうる。
【００１２】
従って、本発明の目的は、上記した従来技術の問題点を解決し、印刷が尻切れ状態となったり、送信元で送信エラーとなったりすることなく、印刷装置を再起動させることができる技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記した目的の少なくとも一部を達成するために、本発明の第１の再起動装置は、ネットワークを介して接続された印刷装置を再起動させるための再起動装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置から取得した情報に基づいて、前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置に対し、再起動の命令を与える再起動命令部と、
を備えることを要旨とする。
【００１４】
このように、第１の再起動装置では、コネクション実行部が、印刷装置の全ての受信ポートに対して、全てのコネクションを張る。従って、その後、他の装置から印刷装置に対して印刷ジョブを送信しようとしても、その送信は全て阻止されるため、印刷装置は、新たな印刷ジョブを受信することができない。また、印刷ジョブ監視部が、印刷装置において受信されている印刷ジョブの状態を監視する。従って、コネクションを張る前に受信されていた印刷ジョブが印刷装置に残っていたとしても、その印刷ジョブの状態は印刷ジョブ監視部によって監視されることになる。さらに、再起動命令部は、印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、印刷装置に対し、再起動の命令を与える。従って、印刷装置に残っていた全ての印刷ジョブについて印刷終了やキャンセル終了などが確認された後に、印刷装置は再起動されることになる。
【００１５】
よって、第１の再起動装置によれば、印刷装置を再起動する際に、受信中の印刷ジョブは存在しないため、送信元で送信エラーとなることはない。また、印刷装置を再起動する際に、印刷中の印刷ジョブも存在しないため、印刷が尻切れ状態となることもない。
【００１６】
本発明の第２の再起動装置は、ネットワークを介して接続された印刷装置を再起動させるための再起動装置であって、
前記印刷装置から取得した情報に基づいて、前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置に対し、再起動の命令を与える再起動命令部と、
を備えることを要旨とする。
【００１７】
このように、第２の再起動装置では、印刷ジョブ監視部が、印刷装置において受信されている印刷ジョブの状態を監視するため、印刷ジョブが印刷装置に残っていたとしても、その印刷ジョブの状態は印刷ジョブ監視部によって監視されることになる。また、再起動命令部は、印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、印刷装置に対し、再起動の命令を与えるため、印刷装置に残っていた全ての印刷ジョブについて印刷終了などが確認された後に、印刷装置は再起動されることになる。
【００１８】
よって、第２の再起動装置によれば、印刷装置を再起動する際に、印刷中の印刷ジョブは存在しないため、印刷が尻切れ状態となることがない。
【００１９】
本発明の第３の再起動装置は、ネットワークを介して接続された印刷装置を再起動させるための再起動装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置に対し、再起動の命令を与える再起動命令部と、
を備えることを要旨とする。
【００２０】
このように、第３の再起動装置では、コネクション実行部が、印刷装置の全ての受信ポートに対して、全てのコネクションを張るため、その後、他の装置から印刷装置に対して印刷ジョブを送信しようとしても、その送信は全て阻止され、印刷装置は、新たな印刷ジョブを受信することができない。また、再起動命令部は、全てのコネクションを張った後に、印刷装置に対し、再起動の命令を与える。従って、印刷装置に新たな印刷ジョブが受信されない状態で、印刷装置は再起動されることになる。
【００２１】
よって、第３の再起動装置によれば、印刷装置を再起動する際に、受信中の印刷ジョブは存在しないため、送信元で送信エラーとなることはない。
【００２２】
本発明の再起動装置において、前記印刷ジョブ監視部が、前記印刷装置から取得する情報は、前記印刷装置の有するＭＩＢから取得する情報であることが好ましい。ＭＩＢは、一般に、ネットワーク機器が自分の状態を外部に知らせるために公開する情報であるため、これを利用することによって、再起動装置は、ネットワークを介して、印刷装置における印刷ジョブの状態を容易に監視することが可能となる。
【００２３】
本発明の再起動装置において、前記再起動命令部は、ＳＮＭＰを用いて前記再起動の命令を与えるようにしてもよく、印刷ジョブを用いて再起動の命令を与えるようにしてもよい。
【００２４】
このような方法を用いることによって、再起動装置は印刷装置をネットワークを介してリモートで再起動させることができる。
【００２５】
また、本発明の第１の印刷装置は、自身で再起動を行うことが可能な印刷装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置自身に対し、再起動の命令を与える再起動命令部と、
を備えることを要旨とする。
【００２６】
このように、第１の印刷装置では、コネクション実行部が、印刷装置の全ての受信ポートに対して、全てのコネクションを張るため、その後、他の装置から印刷装置に対して印刷ジョブを送信しようとしても、その送信は全て阻止され、印刷装置は、新たな印刷ジョブを受信することができない。また、印刷ジョブ監視部が、印刷装置において受信されている印刷ジョブの状態を監視するため、コネクションを張る前に受信されていた印刷ジョブが印刷装置に残っていたとしても、その印刷ジョブの状態は印刷ジョブ監視部によって監視されることになる。さらに、再起動命令部は、印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、印刷装置自身に対し、再起動の命令を与える。従って、印刷装置は、残っていた全ての印刷ジョブについて印刷終了やキャンセル終了などを確認した後に、自身で再起動することになる。
【００２７】
よって、第１の印刷装置によれば、自身で再起動する際に、受信中の印刷ジョブは存在しないため、送信元で送信エラーとなることはない。また、自身で再起動する際に、印刷中の印刷ジョブも存在しないため、印刷が尻切れ状態となることもない。
【００２８】
本発明の第２の印刷装置は、自身で再起動を行うことが可能な印刷装置であって、
前記印刷装置において受信されている印刷ジョブの状態を監視する印刷ジョブ監視部と、
前記印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、前記印刷装置自身に対し、再起動の命令を与える再起動命令部と、
を備えることを要旨とする。
【００２９】
このように、第２の印刷装置では、印刷ジョブ監視部が、印刷装置において受信されている印刷ジョブの状態を監視するため、印刷ジョブが印刷装置に残っていたとしても、その印刷ジョブの状態は印刷ジョブ監視部によって監視されることになる。また、再起動命令部は、印刷ジョブ監視部によって全ての印刷ジョブについての終了が検知された後に、印刷装置自身に対し、再起動の命令を与える。従って、印刷装置は、残っていた全ての印刷ジョブについて印刷終了などを確認した後に、自身で再起動することになる。
【００３０】
よって、第２の印刷装置によれば、自身で再起動する際に、印刷中の印刷ジョブは存在しないため、印刷が尻切れ状態となることがない。
【００３１】
本発明の第３の印刷装置は、自身で再起動を行うことが可能な印刷装置であって、
前記印刷装置の有するネットワークポートのうち、印刷ジョブを受信することが可能な全ての受信ポートに対し、張ることが可能な全てのコネクションを張るコネクション実行部と、
全てのコネクションを張った後に、前記印刷装置自身に対し、再起動の命令を与える再起動命令部と、
を備えることを要旨とする。
【００３２】
このように、第３の印刷装置では、コネクション実行部が、印刷装置の全ての受信ポートに対して、全てのコネクションを張るため、その後、他の装置から印刷装置に対して印刷ジョブを送信しようとしても、その送信は全て阻止され、印刷装置は、新たな印刷ジョブを受信することができない。また、再起動命令部は、全てのコネクションを張った後に、印刷装置自身に対し、再起動の命令を与える。従って、印刷装置は、新たな印刷ジョブを受信しない状態で、自身で再起動することになる。
【００３３】
よって、第３の印刷装置によれば、自身で再起動する際に、受信中の印刷ジョブは存在しないため、送信元で送信エラーとなることはない。
【００３４】
本発明の再起動装置において、前記再起動命令部は、ＳＮＭＰを用いて前記再起動の命令を与えるようにしてもよく、印刷ジョブを用いて再起動の命令を与えるようにしてもよい。
このような方法を用いることによって、印刷装置は自身で再起動することができる。
【００３５】
なお、本発明は、このような再起動装置や印刷装置などの装置発明の態様に限ることなく、再起動方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１の実施例の構成：
Ｂ．第１の実施例の動作：
Ｂ−１．印刷処理：
Ｂ−２．再起動処理：
Ｃ．第１の実施例の効果：
Ｄ．第２の実施例の構成：
Ｅ．第２の実施例の動作：
Ｆ．第２の実施例の効果：
Ｇ．変形例：
Ｇ−１．変形例１：
Ｇ−２．変形例２：
Ｇ−３．変形例３：
Ｇ−４．変形例４：
Ｇ−５．変形例５：
【００３７】
Ａ．第１の実施例の構成：
図１は本発明の第１の実施例としての再起動装置を構成するコンピュータとその再起動装置によって再起動されうるプリンタとを示すブロック図である。再起動装置であるコンピュータ１００は、コンピュータプログラムに従って種々の処理や制御を行うためのＣＰＵ１１０と、上記コンピュータプログラムや種々のデータを記憶するためのメモリ１２０と、各種周辺装置との間でデータなどのやり取りを行なうためのＩ／Ｏ部１３０と、ユーザからの指示などを入力するための入力装置１４０と、データの内容などを表示するためのモニタ１５０と、ネットワーク３００に接続され、そのネットワーク３００上にある他の装置との間でデータなどのやり取りを行うためのネットワークインタフェース部１６０と、を備えている。
【００３８】
このうち、ＣＰＵ１１０は、メモリ１２０から、上記コンピュータプログラムを読み出して実行することにより、印刷ジョブ監視部１１２，再起動命令部１１４，送信処理部１１６などの各機能ブロックとして機能する。また、送信処理部１１６は、ＳＮＭＰクライアント部１１６ａ，Ｐｏｒｔ９１００クライアント部１１６ｂ，ＬＰＲクライアント部１１６ｃなどを備えている。なお、各機能ブロックをハードウェア的に構築しても構わない。
【００３９】
一方、プリンタ２００は、ファームウェアなどのコンピュータプログラムに従って種々の処理や制御を行うためのＣＰＵ２１０と、上記コンピュータプログラムや種々のデータを記憶するためのメモリ２２０と、各種周辺装置との間でデータなどのやり取りを行なうためのＩ／Ｏ部２３０と、実際に印刷を行う機構部分であるプリンタエンジン２５０と、ネットワーク３００に接続され、そのネットワーク３００上にある他の装置との間でデータなどのやり取りを行うためのネットワークインタフェース部２６０と、を備えている。
【００４０】
このうち、ＣＰＵ２１０は、メモリ２２０から、上記コンピュータプログラムを読み出して実行することにより、印刷処理部２１２，言語解釈処理部２１４，受信処理部２１６などの各機能ブロックとして機能する。また、受信処理部２１６は、ＳＮＭＰサーバ部２１６ａ，Ｐｏｒｔ９１００サーバ部２１６ｂ，ＬＰＲサーバ部２１６ｃなどを備えている。なお、Ｐｏｒｔ９１００サーバ部２１６ｂ，ＬＰＲサーバ部２１６ｃなどは、後述するように、プリンタ２００において、動作状態がイネーブル（enable）となっているプロトコルに対応して生成されている。例えば、Ｐｏｒｔ９１００サーバ部２１６ｂは、無手順プロトコルの動作状態がイネーブルになっている場合に生成され、ＬＰＲサーバ部２１６ｃは、ＬＰＲ（Line PRinter daemon protocol）の動作状態がイネーブルになっている場合に生成される。また、各機能ブロックをハードウェア的に構築しても構わない。
さらに、メモリ２２０は、プリンタ２００のＭＩＢ（Management Information Base）データ２２２を格納している。
【００４１】
さらに、ネットワーク３００は、ローカルエリアネットワーク（ＬＡＮ）や、イントラネットや、インターネットや、それらを複合したものなどで構成されている。
【００４２】
なお、本実施例において、図１に示すコンピュータ１００が、請求項における再起動装置に、プリンタ２００が印刷装置に、ネットワーク３００がネットワークに、印刷ジョブ監視部１１２が印刷ジョブ監視部に、再起動命令部１１４が再起動命令部に、送信処理部１１６がコネクション実行部に、それぞれ相当する。
【００４３】
Ｂ．第１の実施例の動作：
Ｂ−１．印刷処理：
本発明の特徴部分である再起動処理を説明する前に、通常の印刷処理について簡単に説明する。なお、印刷ジョブをコンピュータ１００からプリンタ２００に送信し、プリンタ２００で印刷を実行する場合を例として説明する。
【００４４】
ユーザが入力装置１４０によってコンピュータ１００に印刷命令を出すと、コンピュータ１００では、アプリケーション（図示せず）やプリンタドライバ（図示せず）が印刷すべきデータに基づいて印刷ジョブを生成する。このとき、プリンタドライバにおいて、印刷プロトコルの設定は、無手順プロトコルに設定されているものとする。
【００４５】
図２は印刷処理におけるコンピュータ１００のＰｏｒｔ９１００クライアント部１１６ｂの処理手順を示すフローチャートである。次に、送信処理部１１６が、接続先アドレスとして、プリンタ２００に設定されているＩＰアドレスを指定すると共に、接続先ポート番号として、無手順プロトコルに通常割り当てられている「９１００」を指定する。それにより、Ｐｏｒｔ９１００クライアント部１１６ｂが、Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、ネットワーク３００上のプリンタ２００にアクセスし、プリンタ２００有するネットワークポートのうち、ポート番号「９１００」の受信ポートに接続を行う（ステップＳ１０２）。
【００４６】
図３はプリンタ２００のＰｏｒｔ９１００サーバ部２１６ｂの処理手順を示すフローチャートである。一方、プリンタ２００では、Ｐｏｒｔ９１００サーバ部２１６ｂが、ポート番号「９１００」の受信ポートに接続が行われるまで待機しており（ステップＳ２０２）、その後、コンピュータ１００からそのポートに上記した如く接続が行われると、所定の接続確認を経て、コネクションが確立する（ステップＳ２０４）。こうして、コンピュータ１００からプリンタ２００のポート番号「９１００」の受信ポートに対してコネクションが張られる。
【００４７】
コンピュータ１００では、Ｐｏｒｔ９１００クライアント部１１６ｂが、コネクションが確立したことを検知すると（ステップＳ１０４）、生成した印刷ジョブをプリンタ２００に送信する（ステップＳ１０６）。
【００４８】
プリンタ２００では、Ｐｏｒｔ９１００サーバ部２１６ｂが、ポート番号「９１００」の受信ポートで印刷ジョブを受信するまで待機しており（ステップＳ２０６）、その後、コンピュータ１００からの印刷ジョブを受信すると、それを言語解釈処理部２１４に渡す（ステップＳ２０８）。言語解釈処理部２１４では、受け取ったその印刷ジョブを言語解釈し、その結果に従って、印刷処理部２１２が、Ｉ／Ｏ部２３０を介して、プリンタエンジン２５０に印刷を実行させる。一方、Ｐｏｒｔ９１００サーバ部２１６ｂは、受信した印刷ジョブを言語解釈処理部２１４に渡したら、コネクションが切断されたかどうかを判定し（ステップＳ２１０）、切断されていなければ、ステップＳ２０６に戻り、切断されていれば、初めのステップ２０２に戻る。
【００４９】
図４は印刷処理を行う際のコンピュータ１００及びプリンタ２００における通信機能をレイヤに分けて示した説明図である。図４に示すように、コンピュータ１００のＰｏｒｔ９１００クライアント部１１６ｂとプリンタ２００におけるＰｏｒｔ９１００サーバ部２１６ｂとの間でコネクションが確立することにより、印刷ジョブは、コンピュータ１００において、Ｐｏｒｔ９１００クライアント部１１６ｂから、トランスポート層のＴＣＰ，インターネット層のＩＰ，ネットワーク・インタフェース層のＥｔｈｅｒｎｅｔ（登録商標）を介して、プリンタ２００に送信する。一方、プリンタ２００では、送信された印刷ジョブを、Ｅｔｈｅｒｎｅｔ（登録商標），ＩＰ，ＴＣＰを介して、Ｐｏｒｔ９１００サーバ部２１６ｂで受信し、その後、言語解釈処理部２１４を介して印刷処理部２１２に渡す。
以上のようにして、通常の印刷処理は実行される。
【００５０】
なお、プリンタ２００では、Ｐｏｒｔ９１００サーバ部２１６ｂの上記処理に並行して、ＬＰＲサーバ部２１６ｃも上記と同様の処理を行っている。即ち、ＬＰＲでは、通常、ポート番号として「５１５」が割り当てられているため、ＬＰＲサーバ部２１６ｃは、プリンタ２００の有するネットワークポートのうち、ポート番号「５１５」の受信ポートに接続が行われるまで待機しており、他の装置からそのポートに接続が行われると、同様にして、所定の接続確認を経て、コネクションを確立する。その後、その装置からの印刷ジョブを受信すると、それを言語解釈処理部２１４に渡す。但し、言語解釈処理部２１４では１度に１つの印刷ジョブしか受け付けられないため、Ｐｏｒｔ９１００サーバ部２１６ｂ，ＬＰＲサーバ部２１６ｃから共に印刷ジョブが渡されると、先着順で受け取ることになり、遅い方のサーバ部は、言語解釈処理部２１４での処理が終わるまで待機することになる。言語解釈処理部２１４に印刷ジョブを渡した後の処理は、Ｐｏｒｔ９１００サーバ部２１６ｂの場合と同様であるので、説明は省略する。
【００５１】
Ｂ−２．再起動処理：
次に、本発明の特徴部分である再起動処理について詳細に説明する。今、プリンタ２００のファームウェアを、ネットワーク３００を介してリモートでアップデートする場合を、例として考えてみる。プリンタ２００には、既に、コンピュータ１００からネットワーク３００を介して新たなファームウェアのファイルがダウンロードされている。そのファームウェアをプリンタ２００に反映させるためには、プリンタ２００を再起動させる必要がある。そこで、コンピュータ１００からネットワーク３００を介してプリンタ２００をリモートで再起動させるために、まず、ユーザが入力装置１４０によってコンピュータ１００に、プリンタ２００に対する再起動命令を出すと、コンピュータ１００では、図５に示す処理が開始される。
【００５２】
図５はコンピュータ１００における再起動処理手順を示すフローチャートである。まず、送信処理部１１６が、接続先アドレスとして、プリンタ２００に設定されているＩＰアドレスを指定すると共に、接続先ポート番号として、ＳＮＭＰに通常割り当てられている「１６１」を指定する。それにより、ＳＮＭＰクライアント部１１６ａが、Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、ネットワーク３００上のプリンタ２００に対し、ＳＭＮＰで、プロトコルの動作状況の問い合わせを行う。それに対し、プリンタ２００では、ＳＮＭＰサーバ部２１６ａが、メモリ２２０に格納されているＭＩＢデータ２２２にアクセスし、ＭＩＢデータ２２２の中から、プリンタ２００におけるプロトコルの動作状況を示す情報を読み出し、コンピュータ１００に回答する。コンピュータ１００では、ＳＮＭＰクライアント部１１６ａが、その情報に基づいて、動作状態がイネーブルとなっているプロトコルが何であるかを調べる（ステップＳ３０２）。
この結果、プリンタ２００において、動作状態がイネーブルとなっているプロトコルが、今、無手順プロトコル及びＬＰＲであったとする。
【００５３】
そこで、まず、送信処理部１１６が、接続先ポート番号として、無手順プロトコルに通常割り当てられている「９１００」を指定する。これにより、Ｐｏｒｔ９１００クライアント部１１６ｂが、Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、プリンタ２００にアクセスし、プリンタ２００の有するネットワークポートのうち、ポート番号「９１００」の受信ポートに接続を行う（ステップＳ３０４）。
【００５４】
これに対し、プリンタ２００では、前述したとおり、Ｐｏｒｔ９１００サーバ部２１６ｂが、ポート番号「９１００」の受信ポートに接続が行われるまで待機しており（図３のステップＳ２０２）、その後、コンピュータ１００からそのポートに接続が行われると、所定の接続確認を経て、コネクションが確立する（図３のステップＳ２０４）。こうして、コンピュータ１００からプリンタ２００のポート番号「９１００」の受信ポートに対してコネクションが張られる。
【００５５】
コンピュータ１００では、Ｐｏｒｔ９１００クライアント部１１６ｂが、コネクションが確立したことを検知すると（ステップＳ３０６）、次に、送信処理部１１６が、接続先ポート番号として、ＬＰＲに通常割り当てられている「５１５」を指定する。これにより、ＬＰＲクライアント部１１６ｃが、Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、プリンタ２００にアクセスし、プリンタ２００の有するネットワークポートのうち、ポート番号「５１５」の受信ポートに接続を行う（ステップＳ３０８）。
【００５６】
これに対し、プリンタ２００では、前述したとおり、ＬＰＲサーバ部２１６ｃが、ポート番号「５１５」の受信ポートに接続が行われるまで待機しており、コンピュータ１００からそのポートに接続が行われると、所定の接続確認を経て、コネクションが確立する。こうして、今度は、コンピュータ１００からプリンタ２００のポート番号「５１５」の受信ポートに対してコネクションが張られる。
【００５７】
以上によって、コンピュータ１００は、プリンタ２００において、動作状態がイネーブルとなっている各プロトコルに対応する全ての受信ポート、即ち、印刷ジョブを受信することが可能な全ての受信ポートに対して、コネクションを張ったことになる。この結果、プリンタ２００では、印刷ジョブを受信することが可能な全ての受信ポートがふさがれるため、他の装置からネットワーク３００を介してプリンタ２００に印刷ジョブを送信しようとしても、その送信は全て阻止されてしまう。従って、これ以降、プリンタ２００は、新たな印刷ジョブを受信することができなくなる。
【００５８】
図６は再起動処理を行う際のコンピュータ１００及びプリンタ２００における通信機能をレイヤに分けて示した説明図である。即ち、図６に示すように、無手順プロトコルについては、Ｐｏｒｔ９１００クライアント部１１６ｂから、ＴＣＰ，ＩＰ，Ｅｔｈｅｒｎｅｔ（登録商標），ネットワークケーブル，Ｅｔｈｅｒｎｅｔ（登録商標），ＩＰ，ＴＣＰを介して、Ｐｏｒｔ９１００サーバ部２１６ｂにコネクションが張られ、ＬＰＲについても、同様に、ＬＰＲクライアント部１１６ｃから、ＴＣＰ，ＩＰ，Ｅｔｈｅｒｎｅｔ（登録商標），ネットワークケーブル，Ｅｔｈｅｒｎｅｔ（登録商標），ＩＰ，ＴＣＰを介して、ＬＰＲサーバ部２１６ｃにコネクションが張られる。ちなみに、ＳＭＮＰについては、ＳＮＭＰクライアント部１１６ａから、トランスポート層のＵＤＰ，ＩＰ，Ｅｔｈｅｒｎｅｔ（登録商標），ネットワークケーブル，Ｅｔｈｅｒｎｅｔ（登録商標），ＩＰ，ＵＤＰを介して、ＳＮＭＰサーバ部２１６ａに問い合わせなどがなされる。
【００５９】
こうして、コンピュータ１００では、ＬＰＲクライアント部１１６ｃが、コネクションが確立したことを検知すると（ステップＳ３１０）、次に、送信処理部１１６が、接続先ポート番号として、ＳＮＭＰに割り当てられている「１６１」を指定する。それにより、印刷ジョブ監視部１１２が、ＳＮＭＰクライアント部１１６ａ，Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、プリンタ２００に対し、プリンタ２００において存在している全ての印刷ジョブ（即ち、既に受信している全ての印刷ジョブ）について、その印刷状態をＳＭＮＰで問い合わせる。それに対し、プリンタ２００では、ＳＮＭＰサーバ部２１６ａが、メモリ２２０に格納されているＭＩＢデータ２２２にアクセスし、ＭＩＢデータ２２２の中から、各印刷ジョブごとに、印刷状態を示す情報を読み出し、コンピュータ１００に回答する。コンピュータ１００では、印刷ジョブ監視部１１２が、その情報に基づき、プリンタ２００において存在している全ての印刷ジョブについて、その印刷状態をチェックし、印刷ジョブが終了しているかどうかを検知する（ステップＳ３１２）。このとき、その情報の示す印刷状態が"Print Waiting"や"Printing"である場合には、未だ、その印刷ジョブは終了とはなっていないが、印刷状態が"Print Successs Completed"である場合には「印刷終了」となっており、"Print Cancel"である場合には「キャンセル終了」となっている。
【００６０】
そこで、印刷ジョブ監視部１１２は、チェックした結果、印刷ジョブの何れかが「印刷終了」または「キャンセル終了」になっていなければ、再び、ステップＳ３１２に戻り、プリンタ２００に、印刷ジョブについての印刷状態を問い合わせて、各印刷ジョブが終了したかどうかを調べる。そして、全ての印刷ジョブが「印刷終了」または「キャンセル終了」になるまで、印刷ジョブの状態を監視する。
【００６１】
そして、全ての印刷ジョブが「印刷終了」または「キャンセル終了」になったことを検知したら、次に、再起動命令部１１４は、ＳＮＭＰクライアント部１１６ａ，Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、プリンタ２００に対し、ＳＮＭＰで再起動命令を与える（ステップＳ３１６）。即ち、ＳＮＭＰを用い、Set Request命令として、変数prtGeneralResetに所定の値（例えば、５）をセットした命令を与える。これにより、プリンタ２００では、ＳＮＭＰサーバ部２１６ａが、この命令を受け取って解釈すると、それをきっかけとして、プリンタ２００自体を再起動する。
【００６２】
こうして、コンピュータ１００は、ネットワーク３００を介してプリンタ２００をリモートで再起動させることができる。この結果、プリンタ２００にダウンロードされていたファームウェアは、再起動後、プリンタ２００に反映され、ファームウェアのアップデートが完了する。
【００６３】
Ｃ．第１の実施例の効果：
以上説明したように、本実施例においては、コンピュータ１００が、プリンタ２００における全ての受信ポートに対してコネクションを張ることにより、プリンタ２００では、新たな印刷ジョブを受信することができなくなる。従って、プリンタ２００を再起動する際に、プリンタ２００では、受信中の印刷ジョブは存在しないため、印刷ジョブを送信する送信元の装置において、送信エラーとなることはない。また、コネクションを張る前に受信されていた印刷ジョブがプリンタ２００に残っていたとしても、その印刷ジョブの状態はコンピュータ１００において監視されており、そして、その後、全ての印刷ジョブについて、「印刷終了」または「キャンセル終了」が検知されたら、プリンタ２００に対し再起動の命令を与える。従って、プリンタ２００に存在していた全ての印刷ジョブについて「印刷終了」または「キャンセル終了」が確認された後に、プリンタ２００は再起動されることになる。よって、プリンタ２００を再起動する際には、印刷中の印刷ジョブも存在しないため、印刷が尻切れ状態となることもない。
【００６４】
このような本実施例の効果を図７を用いてさらに説明する。図７は本発明の再起動処理によってプリンタを再起動する場合における、プリンタの各処理状態を示す説明図である。図７において、横軸は時間であり、縦軸には、プリンタで行われる各処理、即ち、受信処理，言語解釈処理，印刷処理が記載されている。
【００６５】
図７において、今、プリンタに対し、各々異なる装置から印刷ジョブＡ，Ｂがそれぞれ送信されているものとする。プリンタ２００は、まず、印刷ジョブＡを受信して、受信処理を行い、受信処理を終えた部分から、言語解釈処理を行い、さらに、言語解釈処理を終えた部分から、印刷処理を行う。そして、印刷ジョブＡについて、受信処理を全て完了すると、プリンタ２００は、次に、印刷ジョブＢを受信して、受信処理を行い、さらに、印刷ジョブＡについて、言語解釈処理を全て完了すると、印刷ジョブＢについて、受信処理を終えた部分から、言語解釈処理を行う。このとき、コンピュータ１００からプリンタ２００の受信ポートに対し接続が開始されたとすると、その後、印刷ジョブＢについて、受信処理を全て完了した段階で、コンピュータ１００からプリンタ２００における全ての受信ポートに対してコネクションが張られ、全ての受信ポートはふさがれることになる。従って、これ以降、プリンタ２００は新たな印刷ジョブを受信できなくなる。
【００６６】
その後、プリンタ２００は、印刷ジョブＢについて、言語解釈処理を終えた部分から、印刷処理を行い、印刷ジョブＡについて、印刷処理を全て完了し、さらに、印刷ジョブＢについて、印刷処理を全て完了する。この結果、全ての印刷ジョブについて「印刷終了」または「キャンセル終了」が検知されることになり、プリンタ２００は再起動される。
【００６７】
このとき、プリンタ２００は、新たな印刷ジョブを受信していないので、送信元では送信エラーとなることはない。また、このとき、印刷ジョブＡ，Ｂについては、全て、印刷処理が完了しているため、印刷が尻切れ状態になることはない。
【００６８】
Ｄ．第２の実施例の構成：
上記した第１の実施例においては、プリンタ２００を、コンピュータ１００からネットワーク３００を介してリモートで再起動させていたが、本実施例では、プリンタ２００が、自ら再起動を行うものである。
【００６９】
図８は本発明の第２の実施例として、自身で再起動を行うことができるプリンタを示すブロック図である。本実施例におけるプリンタ２００が、第１の実施例におけるプリンタと異なる点は、ＣＰＵ２１０が、印刷処理部２１２，言語解釈処理部２１４として機能する他、印刷ジョブ監視部２１３，再起動命令部２１５としても機能する点と、図１に示した受信処理部２１６に代えて、送受信処理部２１７として機能する点である。このうち、送受信処理部２１７は、ＳＮＭＰサーバ部２１７ａ，Ｐｏｒｔ９１００サーバ部２１７ｂ，ＬＰＲサーバ部２１７ｃなどの他に、さらに、ＳＮＭＰクライアント部２１７ｄ，Ｐｏｒｔ９１００クライアント部２１７ｅ，ＬＰＲクライアント部２１７ｆなどを備えている。このうち、Ｐｏｒｔ９１００サーバ部２１７ｂ，ＬＰＲサーバ部２１７ｃ，Ｐｏｒｔ９１００クライアント部２１７ｅ，ＬＰＲクライアント部２１７ｆなどは、プリンタ２００において、動作状態がイネーブル（enable）となっているプロトコルに対応して生成されている。
図８において、その他の構成は第１の実施例と同様であるので、それらについての説明は省略する。
【００７０】
Ｅ．第２の実施例の動作：
それでは、本発明の特徴部分である再起動処理について説明する。今、プリンタ２００が、自らの異常を検知して、自身で再起動する場合を、例として考えてみる。プリンタ２００は、予め設定された異常を検知すると、プリンタ２００では、図５に示した処理とほぼ同様の処理が開始される。
【００７１】
まず、送受信処理部２１７が、自身に接続するために、接続先アドレスとして、ループバックアドレス（127.0.0.1）を指定すると共に、接続先ポート番号として、ＳＮＭＰに通常割り当てられている「１６１」を指定する。これにより、ＳＮＭＰクライアント部２１７ｄがＳＮＭＰサーバ部２１７ａに対し、ＳＭＮＰで、プロトコルの動作状況の問い合わせを行う。それに対し、ＳＮＭＰサーバ部２１７ａが、メモリ２２０に格納されているＭＩＢデータ２２２にアクセスし、ＭＩＢデータ２２２の中から、プリンタ２００におけるプロトコルの動作状況を示す情報を読み出し、ＳＮＭＰクライアント部２１７ｄに回答する。ＳＮＭＰクライアント部２１７ｄが、その情報に基づいて、動作状態がイネーブルとなっているプロトコルが何であるかを調べる（ステップＳ３０２）。この結果、プリンタ２００において、動作状態がイネーブルとなっているプロトコルが、今、無手順プロトコル及びＬＰＲであったとする。
【００７２】
そこで、送受信処理部２１７が、接続先アドレスとして、ループバックアドレス（127.0.0.1）を指定すると共に、接続先ポート番号として、無手順プロトコルに通常割り当てられている「９１００」を指定する。これにより、Ｐｏｒｔ９１００クライアント部２１７ｅが、プリンタ２００の有するネットワークポートのうち、ポート番号「９１００」の受信ポートに接続を行うと（ステップＳ３０４）、待機していたＰｏｒｔ９１００サーバ部２１７ｂは、所定の接続確認を行って、コネクションが確立する（ステップＳ３０６）。こうして、プリンタ２００は、自らポート番号「９１００」の受信ポートに対してコネクションを張る。
【００７３】
次に、送受信処理部２１７が、接続先アドレスとして、ループバックアドレス（127.0.0.1）を指定すると共に、接続先ポート番号として、ＬＰＲに通常割り当てられている「５１５」を指定する。これにより、ＬＰＲクライアント部２１７ｆが、プリンタ２００の有するネットワークポートのうち、ポート番号「５１５」の受信ポートに接続を行うと（ステップＳ３０８）、待機していたＬＰＲサーバ部２１７ｃは、所定の接続確認を行って、コネクションが確立する（ステップＳ３１０）。こうして、プリンタ２００は、自らポート番号「５１５」の受信ポートに対してコネクションを張る。
【００７４】
以上によって、プリンタ２００は、動作状態がイネーブルとなっている各プロトコルに対応する全ての受信ポート、即ち、印刷ジョブを受信することが可能な全ての受信ポートに対して、自らコネクションを張ったことになる。この結果、プリンタ２００では、全ての受信ポートがふさがれているため、他の装置からネットワーク３００を介してプリンタ２００に印刷ジョブを送信しようとしても、その送信は全て阻止されてしまう。従って、これ以降、プリンタ２００は、新たな印刷ジョブを受信することができない。
【００７５】
図９は再起動処理を行う際のプリンタ２００における通信機能をレイヤに分けて示した説明図である。即ち、図９に示すように、無手順プロトコルについては、Ｐｏｒｔ９１００クライアント部２１７ｅから、ＴＣＰ，ＩＰ，ＴＣＰを介して、Ｐｏｒｔ９１００サーバ部２１７ｂにコネクションが張られ、ＬＰＲについても、同様に、ＬＰＲクライアント部２１７ｆから、ＴＣＰ，ＩＰ，ＴＣＰを介して、ＬＰＲサーバ部２１７ｃにコネクションが張られる。ちなみに、ＳＭＮＰについても、ＳＮＭＰクライアント部２１７ｄから、ＵＤＰ，ＩＰ，ＵＤＰを介して、ＳＮＭＰサーバ部２１７ａに問い合わせなどがなされる。
【００７６】
次に、送受信処理部２１７が、接続先アドレスとして、ループバックアドレス（127.0.0.1）を指定すると共に、接続先ポート番号として、ＳＮＭＰに割り当てられている「１６１」を指定する。それにより、印刷ジョブ監視部２１３が、ＳＮＭＰクライアント部２１７ｄを介して、ＳＮＭＰサーバ部２１７ａに対し、プリンタ２００において存在している全ての印刷ジョブ（即ち、既に受信している全ての印刷ジョブ）について、その印刷状態をＳＭＮＰで問い合わせる。それに対し、ＳＮＭＰサーバ部２１７ａが、メモリ２２０に格納されているＭＩＢデータ２２２にアクセスし、ＭＩＢデータ２２２の中から、各印刷ジョブごとに、印刷状態を示す情報を読み出し、ＳＮＭＰクライアント部２１７ｄを介して印刷ジョブ監視部２１３に回答する。印刷ジョブ監視部２１３は、その情報に基づき、プリンタ２００において存在している全ての印刷ジョブについて、その印刷状態をチェックし、印刷ジョブが終了しているかどうかを検知する（ステップＳ３１２）。
【００７７】
そこで、印刷ジョブ監視部２１３は、チェックした結果、印刷ジョブの何れかが「印刷終了」または「キャンセル終了」になっていなければ、再び、ＳＮＭＰクライアント部２１７ｄを介してＳＮＭＰサーバ部２１７ａに、印刷ジョブについての印刷状態を問い合わせて、各印刷ジョブが終了したかどうかを調べる。そして、全ての印刷ジョブが「印刷終了」または「キャンセル終了」になるまで、印刷ジョブの状態を監視する。
【００７８】
全ての印刷ジョブが「印刷終了」または「キャンセル終了」になったことを印刷ジョブ監視部２１３が検知したら、次に、再起動命令部２１５は、ＳＮＭＰクライアント部２１７ｄを介して、ＳＮＭＰサーバ部２１７ａに対し、ＳＮＭＰで再起動命令を与える（ステップＳ３１６）。これにより、プリンタ２００では、ＳＮＭＰサーバ部２１７ａが、この命令を受け取って解釈すると、それをきっかけとして、プリンタ２００自体を再起動する。
こうして、プリンタ２００は、自身で再起動を行うことができる。この結果、２００は、所定の異常については、再起動後、その異常が解消される。
【００７９】
Ｆ．第２の実施例の効果：
以上説明したように、本実施例においては、プリンタ２００が、全ての受信ポートに対して自らコネクションを張ることにより、プリンタ２００では、新たな印刷ジョブを受信することができなくなる。従って、プリンタ２００を再起動する際に、プリンタ２００では、受信中の印刷ジョブは存在しないため、印刷ジョブを送信する送信元の装置において、送信エラーとなることはない。また、コネクションを張る前に受信されていた印刷ジョブがプリンタ２００に残っていたとしても、その印刷ジョブの状態はプリンタ２００において自ら監視しており、その後、全ての印刷ジョブについて、「印刷終了」または「キャンセル終了」が検知されたら、プリンタ２００自身に対し再起動の命令を与える。従って、プリンタ２００に存在していた全ての印刷ジョブについて「印刷終了」または「キャンセル終了」が確認された後に、プリンタ２００は自身で再起動を行うことになる。よって、プリンタ２００を再起動する際には、印刷中の印刷ジョブも存在しないため、印刷が尻切れ状態となることもない。
【００８０】
Ｇ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。
【００８１】
Ｇ−１．変形例１：
上記した各実施例では、プリンタ２００を再起動する方法として、ＳＮＭＰを用いて再起動する場合について説明したが、これに代えて、印刷ジョブを用いて再起動するようにしてもよい。
【００８２】
例えば、第１の実施例に適用する場合について説明する。今、上記印刷ジョブをコンピュータ１００からプリンタ２００にＬＰＲで送信するものとする。送信処理部１１６は、接続先アドレスとして、プリンタ２００に設定されているＩＰアドレスを指定すると共に、接続先ポート番号として、ＬＰＲに割り当てられている「５１５」を指定する。再起動命令部１１４は、ＬＰＲクライアント部１１６ｃ，Ｉ／Ｏ部１３０，ネットワークインタフェース部１６０を介して、プリンタ２００に対し、ＬＰＲで、再起動命令を含む印刷ジョブを送信する。具体的には、EJL PRINTERRESETコマンド（プリンタをリブートするコマンド）を含む印刷ジョブを送信する。一方、プリンタ２００では、ＬＰＲサーバ部２１６ｃが、この印刷ジョブを受信し、言語解釈処理部２１４は、その印刷ジョブを言語解釈する。すると、言語解釈処理部２１４が、その再起動命令を解釈した時点で、プリンタ２００自体を再起動する。このようにして、印刷ジョブを用いてプリンタ２００を再起動させることができる。なお、第２の実施例に適用する場合においても、第１の実施例に適用する場合と同様にして、プリンタ２００が自身で再起動を行うことができる。
【００８３】
Ｇ−２．変形例２：
上記した各実施例において、プリンタ２００は、プリンタ本体と、ＮＩＣ（Network Interface Card）と、で構成するようにしてもよい。かかる場合、プリンタエンジン２５０などはプリンタ本体に、ネットワークインタフェース部２６０などはＮＩＣに、それぞれ搭載させるようにすればよい。また、ＣＰＵ及びメモリは、プリンタ本体，ＮＩＣにそれぞれ１組ずつ別々に搭載するようにしてもよい。その場合、印刷処理部２１２，印刷ジョブ監視部２１３，言語解釈処理部２１４，再起動命令部２１５，受信処理部２１６（または送受信処理部２１７）は、各ＣＰＵに適宜分担をさせて機能させるようにしてもよい。
【００８４】
また、このように、プリンタ２００をプリンタ本体とＮＩＣとで構成する場合、プリンタを再起動させる際には、ＮＩＣのみを再起動させるようにしてもよいし、プリンタ本体及びＮＩＣを共に再起動させるようにしてもよい。例えば、ＳＮＭＰを用いて再起動する方法では、ＳＮＭＰで、Set Request命令として、変数nicResetに所定の値をセットした命令を与えた場合、プリンタ２００内のＮＩＣのみが再起動する。また、上述したように、ＳＮＭＰで、Set Request命令として、変数prtGeneralResetに所定の値をセットした命令を与える場合には、プリンタ本体とＮＩＣが共に再起動することになる。
【００８５】
Ｇ−３．変形例３：
上記した第１の実施例では、コンピュータ１００によってプリンタ２００をリモートで再起動させる場合について説明したが、コンピュータ１００に限らず、ネットワーク３００に接続された他のデバイスによって、プリンタ２００をリモートで再起動させるようにしてもよい。例えば、他のデバイスとして、プリンタ２００とは別のプリンタを用いてもよい。即ち、そのプリンタが、第２の実施例におけるプリンタ２００と同じような構成を有していれば容易に実現可能である。また、このように、別のプリンタによって、プリンタ２００をリモートで再起動させる場合、その別のプリンタが、第２の実施例におけるプリンタ２００と同じような構成であれば、当然に、自身も再起動させることができる。この場合において、その別のプリンタが、自身を再起動させるか、自身とは異なるプリンタ（この場合、プリンタ２００）を再起動させるかは、再起動の対象とすべきプリンタのＩＰアドレスを切り換えるだけで、同じ処理によって、実現することができる。
【００８６】
Ｇ−４．変形例４：
上記した各実施例では、プリンタ２００において、動作状態がイネーブルとなっているプロトコルが、無手順プロトコル及びＬＰＲである場合を例として説明したが、本発明はこれに限定されるものではない。プロトコルとしては、その他にも、ＮｅｔＢＥＵＩ，ＡｐｐｌｅＴａｌｋ，ＩＰＸ，ＩＰＰ，ＦＴＰなどを用いることも可能である。
【００８７】
Ｇ−５．変形例５：
上記した各実施例では、１つの受信ポートに張れるコネクションは１つであることを前提として説明したが、プロトコルによっては、１つの受信ポートに２つ以上のコネクションを張ることができる場合もある。そのような場合において、その受信ポートにコネクションを張る場合、張ることが可能な全てのコネクションを張るようにする。
【図面の簡単な説明】
【００８８】
【図１】本発明の第１の実施例としての再起動装置を構成するコンピュータとその再起動装置によって再起動されうるプリンタとを示すブロック図である。
【図２】印刷処理におけるコンピュータ１００のＰｏｒｔ９１００クライアント部１１６ｂの処理手順を示すフローチャートである。
【図３】プリンタ２００のＰｏｒｔ９１００サーバ部２１６ｂの処理手順を示すフローチャートである。
【図４】印刷処理を行う際のコンピュータ１００及びプリンタ２００における通信機能をレイヤに分けて示した説明図である。
【図５】コンピュータ１００における再起動処理手順を示すフローチャートである。
【図６】再起動処理を行う際のコンピュータ１００及びプリンタ２００における通信機能をレイヤに分けて示した説明図である。
【図７】本発明の再起動処理によってプリンタを再起動する場合における、プリンタの各処理状態を示す説明図である。
【図８】本発明の第２の実施例として、自身で再起動を行うことができるプリンタを示すブロック図である。
【図９】再起動処理を行う際のプリンタ２００における通信機能をレイヤに分けて示した説明図である。
【図１０】印刷ジョブを用いてプリンタを再起動する場合における、プリンタの各処理状態を示す説明図である。
【符号の説明】
【００８９】
１００...コンピュータ
１１０...ＣＰＵ
１１２...印刷ジョブ監視部
１１４...再起動命令部
１１６...送信処理部
１１６ａ...ＳＮＭＰクライアント部
１１６ｂ...Ｐｏｒｔ９１００クライアント部
１１６ｃ...ＬＰＲクライアント部
１２０...メモリ
１３０...Ｉ／Ｏ部
１４０...入力装置
１５０...モニタ
１６０...ネットワークインタフェース部
２００...プリンタ
２１０...ＣＰＵ
２１２...印刷処理部
２１３...印刷ジョブ監視部
２１４...言語解釈処理部
２１５...再起動命令部
２１６...受信処理部
２１６ａ...ＳＮＭＰサーバ部
２１６ｂ...Ｐｏｒｔ９１００サーバ部
２１６ｃ...ＬＰＲサーバ部
２１７...送受信処理部
２１７ａ...ＳＮＭＰサーバ部
２１７ｃ...ＬＰＲサーバ部
２１７ｂ...Ｐｏｒｔ９１００サーバ部
２１７ｄ...ＳＮＭＰクライアント部
２１７ｅ...Ｐｏｒｔ９１００クライアント部
２１７ｆ...ＬＰＲクライアント部
２２０...メモリ
２２２...ＭＩＢデータ
２３０...Ｉ／Ｏ部
２５０...プリンタエンジン
２６０...ネットワークインタフェース部
３００...ネットワーク
Ａ...印刷ジョブ
Ｂ...印刷ジョブ
Ｃ...印刷ジョブ
【図１】
2006113932.tif 000003
【図２】
2006113932.tif 000004
【図３】
2006113932.tif 000005
【図４】
2006113932.tif 000006
【図５】
2006113932.tif 000007
【図６】
2006113932.tif 000008
【図７】
2006113932.tif 000009
【図８】
2006113932.tif 000010
【図９】
2006113932.tif 000011
【図１０】
2006113932.tif 000012