(57)【特許請求の範囲】
【請求項１】
ジョブ提供装置と、ジョブ提供装置に通信可能に接続されるジョブ実行装置とを備えるジョブ実行システムであり、
ジョブ提供装置は、
特定のジョブデータを記憶する記憶手段と、
特定の識別情報を入力する第１識別情報入力手段と、
第１識別情報入力手段に前記特定の識別情報が入力された場合に、第１スレッドと第２スレッドとを並列的に実行する第１通信処理手段と、を備え、
第１スレッドは、
第１識別情報入力手段に入力された前記特定の識別情報を含む第１検索パケットをジョブ実行装置に送信する処理と、
ジョブ実行装置から、前記第１検索パケットの応答として、第１返信パケットを受信することを監視する処理と、
ジョブ実行装置から前記第１返信パケットが受信された場合に、前記第１返信パケットの応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含み、
第２スレッドは、
ジョブ実行装置から、ジョブ実行装置に入力された前記特定の識別情報を含む第２検索パケットを受信することを監視する処理と、
ジョブ実行装置から前記第２検索パケットが受信された場合に、前記第２検索パケットの応答として、第２返信パケットをジョブ実行装置に送信する処理と、
ジョブ実行装置から、前記第２返信パケットの応答として、ジョブ送信要求を受信する処理と、
ジョブ実行装置から前記ジョブ送信要求が受信された場合に、前記ジョブ送信要求の応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含み、
ジョブ実行装置は、
前記特定の識別情報を入力する第２識別情報入力手段と、
第２識別情報入力手段に前記特定の識別情報が入力された場合に、第３スレッドと第４スレッドとを並列的に実行して、ジョブ提供装置から前記特定のジョブデータを受信する第２通信処理手段と、
第２通信処理手段によって受信された前記特定のジョブデータに基づいてジョブを実行するジョブ実行手段と、を備え、
第３スレッドは、
ジョブ提供装置から、ジョブ提供装置に入力された前記特定の識別情報を含む前記第１検索パケットを受信することを監視する処理と、
ジョブ提供装置から前記第１検索パケットが受信された場合に、前記第１検索パケットの応答として、前記第１返信パケットをジョブ提供装置に送信する処理と、を含み、
第４スレッドは、
第２識別情報入力手段に入力された前記特定の識別情報を含む前記第２検索パケットをジョブ提供装置に送信する処理と、
ジョブ提供装置から、前記第２検索パケットの応答として、前記第２返信パケットを受信することを監視する処理と、
ジョブ提供装置から前記第２返信パケットが受信された場合に、前記第２返信パケットの応答として、前記ジョブ送信要求をジョブ提供装置に送信する処理と、を含み、
第２通信処理手段は、
前記第３スレッドにおいて、前記第１返信パケットをジョブ提供装置に送信する場合に、ジョブ提供装置から、前記第１返信パケットの応答として、前記特定のジョブデータを受信し、
前記第４スレッドにおいて、前記ジョブ送信要求をジョブ提供装置に送信する場合に、ジョブ提供装置から、前記ジョブ送信要求の応答として、前記特定のジョブデータを受信する
ことを特徴とするジョブ実行システム。
【請求項２】
ジョブ実行装置に通信可能に接続されるジョブ提供装置であり、
特定のジョブデータを記憶する記憶手段と、
特定の識別情報を入力する第１識別情報入力手段と、
第１識別情報入力手段に前記特定の識別情報が入力された場合に、第１スレッドと第２スレッドとを並列的に実行する第１通信処理手段と、を備え、
第１スレッドは、
第１識別情報入力手段に入力された前記特定の識別情報を含む第１検索パケットをジョブ実行装置に送信する処理と、
ジョブ実行装置から、前記第１検索パケットの応答として、第１返信パケットを受信することを監視する処理と、
ジョブ実行装置から前記第１返信パケットが受信された場合に、前記第１返信パケットの応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含み、
第２スレッドは、
ジョブ実行装置から、ジョブ実行装置に入力された前記特定の識別情報を含む第２検索パケットを受信することを監視する処理と、
ジョブ実行装置から前記第２検索パケットが受信された場合に、前記第２検索パケットの応答として、第２返信パケットをジョブ実行装置に送信する処理と、
ジョブ実行装置から、前記第２返信パケットの応答として、ジョブ送信要求を受信する処理と、
ジョブ実行装置から前記ジョブ送信要求が受信された場合に、前記ジョブ送信要求の応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含む
ことを特徴とするジョブ提供装置。
【請求項３】
記憶手段は、複数の組合せデータを記憶することが可能であり、
各組合せデータは、識別情報とジョブデータとが対応づけられたものであり、
第１通信処理手段は、
前記第１スレッドにおいて、ジョブ実行装置から前記第１返信パケットが受信された場合に、前記第１返信パケットの応答として、前記特定の識別情報に対応づけられている前記特定のジョブデータをジョブ実行装置に送信し、
前記第２スレッドにおいて、ジョブ実行装置から前記ジョブ送信要求が受信された場合に、前記ジョブ送信要求の応答として、前記特定の識別情報に対応づけられている前記特定のジョブデータをジョブ実行装置に送信する
ことを特徴とする請求項２に記載のジョブ提供装置。
【請求項４】
記憶手段は、複数の識別情報とジョブデータとが対応づけられている組合せデータを記憶することが可能である
ことを特徴とする請求項３に記載のジョブ提供装置。
【請求項５】
記憶手段は、第１識別情報入力手段に前記特定の識別情報が入力された場合に、前記特定の識別情報と前記特定のジョブデータとが対応づけられている組合せデータを記憶する
ことを特徴とする請求項３又は４に記載のジョブ提供装置。
【請求項６】
複数のジョブ実行装置に通信可能に接続される請求項２から５のいずれかに記載のジョブ提供装置であり、
第１通信処理手段は、
前記第１スレッドにおいて、第１識別情報入力手段に入力された前記特定の識別情報を含む前記第１検索パケットを各ジョブ実行装置に送信し、
前記第１スレッドにおいて、いずれかのジョブ実行装置から前記第１返信パケットが受信された場合に、前記第１返信パケットの応答として、前記特定のジョブデータを当該ジョブ実行装置に送信し、
前記第２スレッドにおいて、いずれかのジョブ実行装置から前記ジョブ送信要求が受信された場合に、前記ジョブ送信要求の応答として、前記特定のジョブデータを当該ジョブ実行装置に送信する
ことを特徴とするジョブ提供装置。
【請求項７】
ジョブ提供装置に通信可能に接続されるジョブ実行装置であり、
特定の識別情報を入力する第２識別情報入力手段と、
第２識別情報入力手段に前記特定の識別情報が入力された場合に、第３スレッドと第４スレッドとを並列的に実行して、ジョブ提供装置から特定のジョブデータを受信する第２通信処理手段と、
第２通信処理手段によって受信された前記特定のジョブデータに基づいてジョブを実行するジョブ実行手段と、を備え、
第３スレッドは、
ジョブ提供装置から、ジョブ提供装置に入力された前記特定の識別情報を含む第１検索パケットを受信することを監視する処理と、
ジョブ提供装置から前記第１検索パケットが受信された場合に、前記第１検索パケットの応答として、第１返信パケットをジョブ提供装置に送信する処理と、を含み、
第４スレッドは、
第２識別情報入力手段に入力された前記特定の識別情報を含む第２検索パケットをジョブ提供装置に送信する処理と、
ジョブ提供装置から、前記第２検索パケットの応答として、第２返信パケットを受信することを監視する処理と、
ジョブ提供装置から前記第２返信パケットが受信された場合に、前記第２返信パケットの応答として、ジョブ送信要求をジョブ提供装置に送信する処理と、を含み、
前記第２通信手段は、
前記第３スレッドにおいて、前記第１返信パケットをジョブ提供装置に送信する場合に、ジョブ提供装置から、前記第１返信パケットの応答として、前記特定のジョブデータを受信し、
前記第４スレッドにおいて、前記ジョブ送信要求をジョブ提供装置に送信する場合に、ジョブ提供装置から、前記ジョブ送信要求の応答として、前記特定のジョブデータを受信する
ことを特徴とするジョブ実行装置。
【請求項８】
第２識別情報入力手段は、複数の識別情報を入力することが可能であり、
第２通信処理手段は、第２識別情報入力手段に複数の識別情報が入力された場合に、前記第４スレッドにおいて、第２識別情報入力手段に入力された各識別情報を含む各第２検索パケットをジョブ提供装置に送信する
ことを特徴とする請求項７に記載のジョブ実行装置。
【請求項９】
複数のジョブ提供装置に通信可能に接続される請求項７又は８に記載のジョブ実行装置であり、
第２通信処理手段は、
前記第４スレッドにおいて、前記特定の識別情報を含む前記第２検索パケットを各ジョブ提供装置に送信し、
前記第４スレッドにおいて、いずれかのジョブ提供装置から前記第２返信パケットが受信された場合に、前記第２返信パケットの応答として、前記ジョブ送信要求を当該ジョブ提供装置に送信する
ことを特徴とするジョブ実行装置。
【請求項１０】
ジョブ実行装置に通信可能に接続されるジョブ提供装置のためのコンピュータプログラムであり、ジョブ提供装置に搭載されるコンピュータに、
特定のジョブデータを記憶する記憶処理と、
特定の識別情報を入力する第１識別情報入力処理と、
第１識別情報入力処理で前記特定の識別情報が入力された場合に、第１スレッドと第２スレッドとを並列的に実行する第１通信処理と、を実行させ、
第１スレッドは、
第１識別情報入力手段に入力された前記特定の識別情報を含む第１検索パケットをジョブ実行装置に送信する処理と、
ジョブ実行装置から、前記第１検索パケットの応答として、第１返信パケットを受信することを監視する処理と、
ジョブ実行装置から前記第１返信パケットが受信された場合に、前記第１返信パケットの応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含み、
第２スレッドは、
ジョブ実行装置から、ジョブ実行装置に入力された前記特定の識別情報を含む第２検索パケットを受信することを監視する処理と、
ジョブ実行装置から前記第２検索パケットが受信された場合に、前記第２検索パケットの応答として、第２返信パケットをジョブ実行装置に送信する処理と、
ジョブ実行装置から、前記第２返信パケットの応答として、ジョブ送信要求を受信する処理と、
ジョブ実行装置から前記ジョブ送信要求が受信された場合に、前記ジョブ送信要求の応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含む
ことを特徴とするコンピュータプログラム。
【請求項１１】
ジョブ提供装置に通信可能に接続されるジョブ実行装置のためのコンピュータプログラムであり、ジョブ実行装置に搭載されるコンピュータに、
特定の識別情報を入力する第２識別情報入力処理と、
第２識別情報入力処理で前記特定の識別情報が入力された場合に、第３スレッドと第４スレッドとを並列的に実行して、ジョブ提供装置から特定のジョブデータを受信する第２通信処理と、
第２通信処理で受信された前記特定のジョブデータに基づいてジョブを実行するジョブ実行処理と、を実行させ、
第３スレッドは、
ジョブ提供装置から、ジョブ提供装置に入力された前記特定の識別情報を含む第１検索パケットを受信することを監視する処理と、
ジョブ提供装置から前記第１検索パケットが受信された場合に、前記第１検索パケットの応答として、第１返信パケットをジョブ提供装置に送信する処理と、を含み、
第４スレッドは、
第２識別情報入力手段に入力された前記特定の識別情報を含む第２検索パケットをジョブ提供装置に送信する処理と、
ジョブ提供装置から、前記第２検索パケットの応答として、第２返信パケットを受信することを監視する処理と、
ジョブ提供装置から前記第２返信パケットが受信された場合に、前記第２返信パケットの応答として、ジョブ送信要求をジョブ提供装置に送信する処理と、を含み、
前記第２通信処理では、
前記第３スレッドにおいて、前記第１返信パケットをジョブ提供装置に送信する場合に、ジョブ提供装置から、前記第１返信パケットの応答として、前記特定のジョブデータを受信し、
前記第４スレッドにおいて、前記ジョブ送信要求をジョブ提供装置に送信する場合に、ジョブ提供装置から、前記ジョブ送信要求の応答として、前記特定のジョブデータを受信する
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ提供装置から提供されるジョブデータに基づいてジョブ実行装置がジョブを実行する技術に関する。
【背景技術】
【０００２】
下記の特許文献１には、ホストコンピュータから提供される印刷ジョブデータに基づいてプリンタが印刷ジョブを実行するシステムが開示されている。ユーザは、ホストコンピュータにおいて、ユーザＩＤを入力するとともに印刷指示を入力する。これにより、ホストコンピュータは、ユーザＩＤが付加された印刷ジョブデータを作成する。ホストコンピュータは、ユーザによって予め指定されたプリンタ（以下では第１プリンタと呼ぶ）に印刷ジョブデータを送信する。第１プリンタは、印刷ジョブデータを記憶しておく。ユーザは、他のプリンタ（以下では第２プリンタと呼ぶ）においてユーザＩＤを入力することができる。この場合、第２プリンタは、入力されたユーザＩＤを含む検索パケットをネットワークに送信する。この結果、第１プリンタが検索パケットを受信する。第１プリンタは、検索パケットに含まれるユーザＩＤが付加されている印刷ジョブデータを有している場合には、その印刷ジョブデータを第２プリンタに送信する。第２プリンタは、第１プリンタから送信された印刷ジョブデータを受信すると、その印刷ジョブデータに基づいて印刷ジョブを実行する。
【０００３】
【特許文献１】特開平１１−１９１０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１の技術では、ユーザは、ホストコンピュータに先にユーザＩＤを入力し、プリンタにユーザＩＤを後に入力する必要がある。ユーザが各デバイスにユーザＩＤを入力する順序が制約される。本明細書では、ユーザが各デバイスに識別情報を入力する順序が制約されることなく、ジョブ提供装置からジョブ実行装置にジョブデータを提供することができる技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書によって開示される一つの技術は、ジョブ提供装置と、ジョブ提供装置に通信可能に接続されるジョブ実行装置とを備えるジョブ実行システムである。ジョブ提供装置は、ジョブを実行するためのデータ（ジョブデータ）をジョブ実行装置に提供する。ジョブ実行装置は、ジョブ提供装置から提供されたジョブデータに基づいてジョブを実行する。上記のジョブ実行システムにおいて実行されるジョブの内容は、特に限定されない。例えば、ジョブ実行装置がプリンタである場合には、ジョブ実行装置はジョブデータに基づいて印刷するジョブを実行してもよい。また、例えば、ジョブ実行装置がファイルサーバ等の記憶装置である場合には、ジョブ実行装置はジョブデータを記憶するジョブを実行してもよい。
【０００６】
本発明のジョブ提供装置は、特定のジョブデータを記憶する記憶手段と、特定の識別情報を入力する第１識別情報入力手段と、第１識別情報入力手段に前記特定の識別情報が入力された場合に、第１スレッドと第２スレッドとを並列的に実行する第１通信処理手段と、を備え、第１スレッドは、第１識別情報入力手段に入力された前記特定の識別情報を含む第１検索パケットをジョブ実行装置に送信する処理と、ジョブ実行装置から、前記第１検索パケットの応答として、第１返信パケットを受信することを監視する処理と、ジョブ実行装置から前記第１返信パケットが受信された場合に、前記第１返信パケットの応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含み、第２スレッドは、ジョブ実行装置から、ジョブ実行装置に入力された前記特定の識別情報を含む第２検索パケットを受信することを監視する処理と、ジョブ実行装置から前記第２検索パケットが受信された場合に、前記第２検索パケットの応答として、第２返信パケットをジョブ実行装置に送信する処理と、ジョブ実行装置から、前記第２返信パケットの応答として、ジョブ送信要求を受信する処理と、ジョブ実行装置から前記ジョブ送信要求が受信された場合に、前記ジョブ送信要求の応答として、前記特定のジョブデータをジョブ実行装置に送信する処理と、を含むことを特徴とする。
本明細書によって開示される１つの形態のジョブ提供装置は、記憶手段と、第１識別情報入力手段と、第１識別情報送信手段と、第１識別情報受信手段と、要求受信手段と、ジョブデータ送信手段とを有する。記憶手段は、ジョブデータを記憶する。第１識別情報入力手段は、識別情報を入力する。例えば、ユーザが第１識別情報入力手段を操作することによって、識別情報が入力されてもよい。また、例えば、ジョブ提供装置に接続された別のデバイスにおいてユーザが識別情報の入力操作を実行し、そのデバイスからジョブ提供装置に識別情報が出力されてもよい。この場合、第１識別情報入力手段は、上記のデバイスから出力された識別情報を入力する。なお、識別情報は、ジョブデータを識別することができる情報であればどのような情報であってもよい。例えば、識別情報は上記のシステムを使用するユーザに個別に付与されるＩＤであってもよい。あるいは、使い捨てのジョブＩＤを生成するなどしてもよい（例えば、ユーザによる任意な４桁の数字や文字列などの入力に基づいて生成してもよい）。
【０００７】
第１識別情報送信手段は、上記の第１識別情報入力手段に識別情報が入力された場合に、当該識別情報をジョブ実行装置に送信する。第１識別情報受信手段は、ジョブ実行装置から送信された識別情報を受信する。要求受信手段は、ジョブ実行装置から送信されたジョブ送信要求を受信する。ジョブデータ送信手段は、第１識別情報送信手段によって識別情報が送信された後に当該識別情報が第１識別情報受信手段によって受信された場合には、記憶手段に記憶されているジョブデータをジョブ実行装置に送信する。また、ジョブデータ送信手段は、要求受信手段によってジョブ送信要求が受信された場合には、記憶手段に記憶されているジョブデータをジョブ実行装置に送信する。
【０００８】
本発明のジョブ実行装置は、特定の識別情報を入力する第２識別情報入力手段と、第２識別情報入力手段に前記特定の識別情報が入力された場合に、第３スレッドと第４スレッドとを並列的に実行して、ジョブ提供装置から特定のジョブデータを受信する第２通信処理手段と、第２通信処理手段によって受信された前記特定のジョブデータに基づいてジョブを実行するジョブ実行手段と、を備え、第３スレッドは、ジョブ提供装置から、ジョブ提供装置に入力された前記特定の識別情報を含む第１検索パケットを受信することを監視する処理と、ジョブ提供装置から前記第１検索パケットが受信された場合に、前記第１検索パケットの応答として、第１返信パケットをジョブ提供装置に送信する処理と、を含み、第４スレッドは、第２識別情報入力手段に入力された前記特定の識別情報を含む第２検索パケットをジョブ提供装置に送信する処理と、ジョブ提供装置から、前記第２検索パケットの応答として、第２返信パケットを受信することを監視する処理と、ジョブ提供装置から前記第２返信パケットが受信された場合に、前記第２返信パケットの応答として、ジョブ送信要求をジョブ提供装置に送信する処理と、を含み、前記第２通信手段は、前記第３スレッドにおいて、前記第１返信パケットをジョブ提供装置に送信する場合に、ジョブ提供装置から、前記第１返信パケットの応答として、前記特定のジョブデータを受信し、前記第４スレッドにおいて、前記ジョブ送信要求をジョブ提供装置に送信する場合に、ジョブ提供装置から、前記ジョブ送信要求の応答として、前記特定のジョブデータを受信することを特徴とするジョブ実行装置である。
本明細書によって開示される１つの形態のジョブ実行装置は、第２識別情報入力手段と、第２識別情報送信手段と、第２識別情報受信手段と、要求送信手段と、ジョブデータ受信手段と、ジョブ実行手段とを有する。第２識別情報入力手段は、識別情報を入力する。上記した第１識別情報入力手段と同様に、ユーザが第２識別情報入力手段を操作することによって、識別情報が入力されてもよい。また、例えば、ジョブ実行装置に接続された別のデバイスにおいてユーザが識別情報の入力操作を実行し、そのデバイスからジョブ実行装置に識別情報が出力されてもよい。この場合、第２識別情報入力手段は、上記のデバイスから出力された識別情報を入力する。また、上記の場合と同様に、識別情報は、ＩＤであってもよい。
【０００９】
第２識別情報送信手段は、第２識別情報入力手段に識別情報が入力された場合に、当該識別情報をジョブ提供装置に送信する。第２識別情報受信手段は、ジョブ提供装置から送信された識別情報を受信する。要求送信手段は、第２識別情報送信手段によって識別情報が送信された後に当該識別情報が第２識別情報受信手段によって受信された場合に、ジョブ送信要求をジョブ提供装置に送信する。ジョブデータ受信手段は、ジョブ提供装置から送信されたジョブデータを受信する。ジョブ実行手段はジョブデータ受信手段によって受信されたジョブデータに基づいて、ジョブを実行する。例えば、ジョブ実行装置がプリンタである場合には、ジョブ実行手段はジョブデータ受信手段で受信したジョブデータを印刷する処理を実行してもよい。また、例えば、ジョブ実行装置が記憶装置である場合には、ジョブ実行手段はジョブデータ受信手段で受信したジョブデータを記憶領域に記憶する処理を実行してもよい。
【００１０】
上記のシステムにおいて、ジョブ提供装置に先に識別情報が入力される場合がある。ジョブ提供装置の第１識別情報入力手段に識別情報が入力されると、その識別情報は、第１識別情報送信手段によってジョブ実行装置へ送信され、ジョブ実行装置の第２識別情報受信手段によって受信される。この後に同じ識別情報がジョブ実行装置の第２識別情報入力手段に入力されると、その識別情報は第２識別情報送信手段によってジョブ提供装置へ送信され、ジョブ提供装置の第１識別情報受信手段によって受信される。すなわち、ジョブ提供装置では、第１識別情報送信手段によって識別情報が送信された後に、その識別情報が第１識別情報受信手段によって受信される。この場合、ジョブ提供装置のジョブデータ送信手段は、記憶手段に記憶されているジョブデータをジョブ実行装置に送信する。これにより、ジョブ実行装置のジョブデータ受信手段がジョブデータを受信し、ジョブ実行手段がジョブデータに基づいてジョブを実行する。
【００１１】
また、上記のシステムにおいて、ジョブ実行装置に先に識別情報が入力される場合がある。ジョブ実行装置の第２識別情報入力手段に識別情報が入力されると、その識別情報は、第２識別情報送信手段によってジョブ提供装置へ送信され、ジョブ提供装置の第１識別情報受信手段によって受信される。この後に同じ識別情報がジョブ提供装置の第１識別情報入力手段に入力されると、その識別情報は第１識別情報送信手段によってジョブ実行装置へ送信され、ジョブ実行装置の第２識別情報受信手段によって受信される。すなわち、ジョブ実行装置では、第２識別情報送信手段によって識別情報が送信された後に、その識別情報が第２識別情報受信手段によって受信される。この場合、ジョブ実行装置の要求送信手段は、ジョブ送信要求をジョブ提供装置に送信する。ジョブ提供装置の要求受信手段によってジョブ送信要求が受信される。ジョブデータ送信手段は、記憶手段に記憶されているジョブデータをジョブ実行装置に送信する。これにより、ジョブ実行装置のジョブデータ受信手段がジョブデータを受信し、ジョブ実行手段がジョブデータに基づいてジョブを実行する。
【００１２】
上記のシステムによると、ジョブ提供装置とジョブ実行装置のどちらに先に識別情報が入力されても、ジョブ提供装置にジョブデータを送信させ、ジョブ実行装置にそのジョブデータに基づくジョブを実行させることができる。上記のシステムによると、ユーザが各デバイスに識別情報を入力する順序が制約されない。ユーザにとっての利便性を向上させることができる。
【００１３】
上記のシステムを構築するジョブ提供装置の単体も新規で有用な技術である。ジョブ提供装置の記憶手段は、複数の組合せデータを記憶することが可能であってもよい。各組合せデータは、識別情報とジョブデータとが対応づけられたものであってもよい。また、要求受信手段は、識別情報を含むジョブ送信要求を受信してもよい。ジョブデータ送信手段は、第１識別情報送信手段によって識別情報が送信された後に当該識別情報が第１識別情報受信手段によって受信された場合には、当該識別情報に対応づけられているジョブデータをジョブ実行装置に送信してもよい。また、ジョブデータ送信手段は、要求受信手段によってジョブ送信要求が受信された場合には、当該ジョブ送信要求に含まれる識別情報に対応づけられているジョブデータをジョブ実行装置に送信してもよい。
【００１４】
上述したように、上記のジョブ提供装置では、識別情報とジョブデータとが対応づけられた複数の組合せデータが記憶手段に記憶される。ジョブデータ送信手段は、ジョブ提供装置に先に識別情報が入力された場合（すなわち、第１識別情報送信手段によって識別情報が送信された後に当該識別情報が第１識別情報受信手段によって受信された場合）には、当該識別情報に対応づけられているジョブデータをジョブ実行装置に送信することができる。また、ジョブ実行装置に先に識別情報が入力された場合（すなわち、要求受信手段によってジョブ送信要求が受信された場合）においても、ジョブデータ送信手段は、当該ジョブ送信要求に含まれる識別情報に対応づけられているジョブデータをジョブ実行装置に送信することができる。上記のジョブ提供装置によると、ジョブ提供装置とジョブ提供装置に接続されるジョブ実行装置のどちらに先に識別情報が入力された場合であっても、その識別情報に対応付けられているジョブデータをジョブ実行装置に送信することができる。
【００１５】
上記のジョブ提供装置の記憶手段は、ジョブデータに対して１つの識別情報が対応づけられている組合せデータを記憶することが可能であってもよい。一方において、上記のジョブ提供装置の記憶手段は、ジョブデータに対して複数の識別情報が対応づけられている組合せデータを記憶することが可能であってもよい。例えば、ユーザ毎に識別情報が割り当てられている場合、後者の構成が効果的に機能することがある。この例の場合、記憶手段は、ジョブデータに対して複数のユーザの識別情報が対応づけられている組合せデータを記憶することができる。各ユーザが、ジョブデータをジョブ提供装置からジョブ実行装置に提供させることができる。
【００１６】
上記のジョブ提供装置の記憶手段は、第１識別情報入力手段に識別情報が入力された場合に、当該識別情報とジョブデータとが対応づけられている組合せデータを記憶してもよい。この場合、第１識別情報入力手段に識別情報が入力されると、第１識別情報送信手段によって当該識別情報が送信されるとともに、当該識別情報とジョブデータとが対応づけられている組合せデータが記憶手段に記憶される。その後に当該識別情報が第１識別情報受信手段によって受信されるか、あるいは、要求受信手段によって当該識別情報を含むジョブ送信要求が受信されると、当該識別情報に対応づけられているジョブデータがジョブ実行装置に送信される。
【００１７】
上記のジョブ提供装置は、複数のジョブ実行装置に通信可能に接続されてもよい。この場合、ジョブ提供装置の第１識別情報送信手段は、第１識別情報入力手段に識別情報が入力された場合に、当該識別情報を各ジョブ実行装置に送信してもよい。また、ジョブデータ送信手段は、第１識別情報送信手段によって識別情報が送信された後に当該識別情報が第１識別情報受信手段によって受信された場合には、記憶手段に記憶されているジョブデータを当該識別情報の送信元のジョブ実行装置に送信してもよい。また、ジョブデータ送信手段は、要求受信手段によってジョブ送信要求が受信された場合には、記憶手段に記憶されているジョブデータを当該ジョブ送信要求の送信元のジョブ実行装置に送信してもよい。この構成によると、ユーザは、複数のジョブ実行装置の中からジョブを実行させるジョブ実行装置を選択し、そのジョブ実行装置に識別情報を入力することができる。ジョブ提供装置は、ユーザによって選択されたジョブ実行装置にジョブデータを提供することができる。
【００１８】
上記のシステムを構築するジョブ実行装置の単体も新規で有用な技術である。ジョブ実行装置の第２識別情報入力手段は、複数の識別情報を入力することが可能であってもよい。この場合、第２識別情報送信手段は、第２識別情報入力手段に複数の識別情報が入力された場合に、各識別情報をジョブ提供装置に送信してもよい。
【００１９】
上記のジョブ実行装置は、複数のジョブ提供装置に通信可能に接続されてもよい。この場合、ジョブ実行装置の第２識別情報送信手段は、第２識別情報入力手段に識別情報が入力された場合に、当該識別情報を各ジョブ提供装置に送信してもよい。また、要求送信手段は、第２識別情報送信手段によって識別情報が送信された後に当該識別情報が第２識別情報受信手段によって受信された場合に、ジョブ送信要求を当該識別情報の送信元のジョブ提供装置に送信してもよい。この構成によると、ユーザは、複数のジョブ提供装置の中からジョブデータを提供させるジョブ提供装置を選択し、そのジョブ提供装置に識別情報を入力することができる。ジョブ実行装置は、ユーザによって選択されたジョブ提供装置から提供されたジョブデータに基づいてジョブを実行することができる。
【００２０】
上記のジョブ提供装置を実現するためのコンピュータプログラムも有用である。このコンピュータプログラムは、ジョブ提供装置に搭載されるコンピュータに以下の各処理を実行させる。
・ジョブデータを記憶する記憶処理。
・識別情報を入力する第１識別情報入力処理。
・第１識別情報入力処理で識別情報が入力された場合に、当該識別情報をジョブ実行装置に送信する第１識別情報送信処理。
・ジョブ実行装置から送信された識別情報を受信する第１識別情報受信処理。
・ジョブ実行装置から送信されたジョブ送信要求を受信する要求受信処理。
・第１識別情報送信処理で識別情報が送信された後に当該識別情報が第１識別情報受信処理で受信された場合には、記憶処理で記憶されたジョブデータをジョブ実行装置に送信するとともに、要求受信処理でジョブ送信要求が受信された場合には、記憶処理で記憶されたジョブデータをジョブ実行装置に送信するジョブデータ送信処理。
このコンピュータプログラムによると、上記のジョブ提供装置を実現することができる。
【００２１】
上記のジョブ実行装置を実現するためのコンピュータプログラムも有用である。このコンピュータプログラムは、ジョブ実行装置に搭載されるコンピュータに以下の各処理を実行させる。
・識別情報を入力する第２識別情報入力処理。
・第２識別情報入力処理で識別情報が入力された場合に、当該識別情報をジョブ提供装置に送信する第２識別情報送信処理。
・ジョブ提供装置から送信された識別情報を受信する第２識別情報受信処理。
・第２識別情報送信処理で識別情報が送信された後に当該識別情報が第２識別情報受信処理で受信された場合に、ジョブ送信要求をジョブ提供装置に送信する要求送信処理。
・ジョブ提供装置から送信されたジョブデータを受信するジョブデータ受信処理。
・ジョブデータ受信処理で受信されたジョブデータに基づいてジョブを実行するジョブ実行処理。
このコンピュータプログラムによると、上記のジョブ実行装置を実現することができる。
【実施例】
【００２２】
（第１実施例）
図１は、本実施例のプリンタシステム２を示す。プリンタシステム２は、複数のプリンタ１０，４２と複数のホワイトボード５０，８２を有する。ホワイトボード５０，８２は、印刷するためのデータ（印刷データ）を作成し、プリンタ１０，４２にその印刷データを送信するとともに、その印刷を指示することができる。なお、以下の実施例では、ジョブ提供装置の一例としてホワイトボード５０，８２を挙げているが、本明細書の技術の実施形態はこれに限定されない。例えば、ジョブ提供装置は、情報処理装置やスキャナであってもよい。また、以下の実施例では、ジョブ実行装置の一例としてプリンタ１０，４２を挙げているが、本明細書の技術の実施形態はこれに限定されない。例えば、ジョブ実行装置は、ファイルサーバ等の記憶装置であってもよい。
【００２３】
（プリンタの構成）
プリンタ１０の構成について説明する。プリンタ４２は、プリンタ１０と同じ構成を有しているため、その説明を省略する。プリンタ１０は、操作部１２と表示部１４とＩＤカードリーダ１６と記憶部１８と入出力ポート３２と制御部３４と印刷部４０等を有する。表示部１４は、様々な情報を表示することができる。ＩＤカードリーダ１６は、各ユーザに付与されているＩＤカードに記憶されているＩＤ（識別情報）を読み取ることができる。なお、ＩＤカードリーダ１６は、個々のユーザを特定することができるＩＤを読取可能であればよく、特に限定されない。ＩＤカードリーダ１６は、例えば、ＩＣカードリーダであってもよいし、バーコードリーダであってもよい。また、ＩＤカードリーダに代えて、ユーザの指紋を認識する指紋認識装置や、パスワードを入力するための入力装置が備えられていてもよい。操作部１２は、複数のキーによって構成される。ユーザは、操作部１２を操作することによって、様々な情報や指示をプリンタ１０に入力することができる。また、操作部１２は、ＩＤ入力完了ボタン１２ａを備えている。ＩＤ入力完了ボタン１２ａが押下されると、ＩＤカードリーダ１６によるＩＤの入力が完了される。ＩＤ入力完了ボタン１２ａの操作によってＩＤの入力が完了されるまでに、複数のＩＤがＩＤカードリーダ１６によって入力されていてもよい。
【００２４】
記憶部１８は、ＲＯＭ、ＥＥＰＲＯＭ、ＲＡＭ等によって構成されている。記憶部１８は、制御部３４に外部装置との通信を実行させるプログラム、印刷ジョブを実行させるプログラム、外部から受信されたデータ、制御部３４によって生成されるデータ等を記憶している。また、記憶部１８は、ＩＤカードリーダ１６によって入力されるＩＤデータを記憶することができる。入出力ポート３２は、ＬＡＮ回線やインターネット回線に接続されている。プリンタ１０は、入出力ポート３２を介して、ホワイトボード５０，８２やその他のデバイス（プリンタシステム２を構成するデバイス）と通信可能である。入出力ポート３２は、複数のポートによって構成される。各ポートにはポート番号が割り当てられている。入出力ポート３２を介して外部と通信されるデータは、所定のポート番号を有する入出力ポート３２を介して送受信される。
【００２５】
制御部３４は、ＣＰＵ等によって構成されている。制御部３４は、通信処理部３６と印刷処理部３８とを有する。プリンタ１０では、通信処理部３６と印刷処理部３８のそれぞれが異なるタスクを実行する。各処理部３６，３８によって実行されるタスクの内容は、後で詳しく説明する。印刷部４０は、制御部３４の印刷処理部３８からの指示に従って印刷媒体に印刷する。
【００２６】
（ホワイトボードの構成）
ホワイトボード５０の構成について説明する。ホワイトボード８２は、ホワイトボード５０と同じ構成を有しているため、その説明を省略する。ホワイトボード５０は、表示板５２とスキャナ５４とＩＤカードリーダ５６と操作部５８と入出力ポート６０と記憶部６２と制御部７６等を有する。表示板５２には、ユーザが文字や図形等を描画することができる。スキャナ５４は、表示板５２に描画された文字や図形をスキャンすることができる。スキャナ５４がスキャンを実行することで、プリンタ１０で印刷するための画像データ（印刷データ）が作成される。ＩＤカードリーダ５６は、プリンタ１０のＩＤカードリーダ１６と同様に、各ユーザに付与されているＩＤカードに記憶されているＩＤを読み取ることができる。ＩＤカードリーダ５６は、例えば、ＩＣカードリーダであってもよいし、バーコードリーダであってもよい。また、ＩＤカードリーダに代えて、ユーザの指紋を認識する指紋認識装置や、パスワードを入力するための入力装置が備えられていてもよい。
【００２７】
操作部５８は、複数のキーによって構成される。ユーザは、操作部５８を操作することによって、様々な情報や指示をホワイトボード５０に入力することができる。また、操作部５８は、スキャンボタン５８ａとＩＤ入力完了ボタン５８ｂを備えている。ユーザは、スキャンボタン５８ａを操作することで、表示板５２に描画された内容をスキャナ５４にスキャンさせることができる。また、ユーザは、ＩＤ入力完了ボタン５８ｂを押下することで、ＩＤカードリーダ５６によるＩＤの入力を完了させることができる。ＩＤ入力完了ボタン５８ｂの操作によってＩＤの入力が完了されるまでに、複数のＩＤがＩＤカードリーダ５６によって入力されてもよい。入出力ポート６０は、ＬＡＮ回線やインターネット回線に接続されている。ホワイトボード５０は、入出力ポート６０を介して、プリンタ１０，４２やその他のデバイス（インターネット上のデバイス等）と通信可能である。入出力ポート６０は、複数のポートによって構成される。各ポートにはポート番号が割り当てられている。入出力ポート６０を介して外部と通信されるデータは、所定のポート番号を有する入出力ポート６０を介して送受信される。
【００２８】
記憶部６２は、ＲＯＭ、ＥＥＰＲＯＭ、ＲＡＭ等によって構成されている。記憶部６２は、ジョブ情報記憶領域６４を有する。ジョブ情報記憶領域６４は、複数のジョブ情報データを記憶することができる。ジョブ情報記憶領域６４に記憶される情報の内容については、後で詳しく説明する。また、記憶部６２は、制御部７６にスキャンを実行させるプログラム、外部から受信されたデータ、制御部７６によって生成されるデータ等を記憶する記憶領域７４を有する。制御部７６は、ＣＰＵ等によって構成されている。制御部７６は、通信処理部７８とスキャン処理部８０とを有する。ホワイトボード５０では、通信処理部７８とスキャン処理部８０のそれぞれが異なるタスクを並列的に実行する。各処理部７８，８０によって実行されるタスクの内容は、後で詳しく説明する。
【００２９】
（プリンタの処理）
続いて、プリンタ１０の各処理部３６，３８によって実行される処理（タスク）について説明する。図２〜図５は、プリンタ１０の通信処理のフローチャートを示す。図６は、プリンタ１０の印刷処理のフローチャートを示す。プリンタ１０における通信処理は、制御部３４の通信処理部３６によって実行される。
【００３０】
（プリンタの通信処理）
プリンタ１０の電源がオンされると、通信処理部３６は、ジョブ情報受信スレッドを起動する（Ｓ８）。ジョブ情報受信スレッドの処理は、後で詳しく説明する。また、通信処理部３６は、ＩＤカードリーダ１６にＩＤが入力される（Ｓ１０）とともに、ＩＤ入力完了ボタン１２ａが押下されることを監視している（Ｓ１２）。例えば、ユーザが自身のＩＤカードをＩＤカードリーダ１６にかざすと、ＩＤカードに記憶されているＩＤ情報がＩＤカードリーダ１６によって読み取られる（Ｓ１０）。このステップでプリンタ１０に入力されたＩＤは、記憶部１８に記憶される。以下では、このユーザのＩＤ情報を「０１２３４５６」として説明する。次いで、ＩＤ入力完了ボタン１２ａが押下されると（Ｓ１２でＹＥＳ）、ＩＤ入力が完了したと判断される。ＩＤ入力完了ボタン１２ａが押下されるまでに、Ｓ１０の処理によって、複数のＩＤが入力されてもよい。Ｓ１２でＹＥＳと判断されると、通信処理部３６は、入力された各ＩＤについて、スレッドＡとスレッドＢを起動する（Ｓ１４）。スレッドＡとスレッドＢとジョブ情報受信スレッドは、並列的に実行されるものである。また、以下で説明するスレッドＡとスレッドＢの処理は、入力されたＩＤについて、並列的に（同時的に）実行されるものである。例えば、上記の処理において２個のＩＤがＩＤカードリーダ１６によって入力された場合には、２組のスレッドＡとスレッドＢが並列的に起動される。
【００３１】
（スレッドＡの処理）
図３は、スレッドＡの処理のフローチャートを示す。通信処理部３６は、所定のポートを開放する（Ｓ２０）。上述したように、入出力ポート３２は複数のポートを有している。このステップでは、所定のポート番号（以下では「開放ポート番号」という）を有するポートが開放される。通信処理部３６は、以下の処理において、この開放ポート番号を有するポートを用いて、プリンタシステム２上のその他のデバイスと通信する。
【００３２】
次いで、通信処理部３６は、Ｓ１０で入力されたＩＤとＳ２０で開放された開放ポート番号を含む検索パケットＡ１をマルチキャスト送信する（Ｓ２２）。マルチキャスト送信方式を用いると、通信処理部３６は単一のアドレスを送信先に指定することで、プリンタシステム２を構成する複数のデバイス（例えばホワイトボード５０，８２）に対して同じ内容のパケットを送信することができる。図１０に、プリンタ１０によって送信されるパケット情報（ホワイトボード５０，８２によって受信されるパケット情報）を示す。検索パケットＡ１は、このパケットが検索を指示することを表わす検索指示「Ｍ−ＳＥＡＲＣＨ  ＊  ＨＴＴＰ／１．１」と、マルチキャスト送信の宛先のアドレス「２３９．２５５．２５５．２５０：１９００」と、検索対象に関する条件「ｕｒｎ：ｂｒｏｔｈｅｒ．ｃｏ．ｊｐ：ｄｅｖｉｃｅ：ＰｒｉｎｔＣｌｉｅｎｔ：１：ｉｄ＝０１２３４５６」を有している。上記のアドレス「２３９．２５５．２５５．２５０」は、プリンタシステム２を構成するデバイス群（図１を参照）を指定するマルチキャストアドレスである。マルチキャストアドレスを宛先に指定することで、上記デバイス群の各デバイスに検索パケットＡ１を送信することができる。「１９００」は、通信処理部３６によってＳ２０で開放された開放ポート番号である。検索パケットＡ１は、開放ポート番号「１９００」のポートを介して、プリンタシステム２を構成する各デバイス４２，５０，８２に送信される。図１０からは、検索パケットＡ１はＳ１０でプリンタ１０に入力されたＩＤ「０１２３４５６」と一致するＩＤ２４が入力されたホワイトボード（Ｐｒｉｎｔ  Ｃｌｉｅｎｔ）を検索する指示であることが理解される。
【００３３】
検索パケットＡ１をマルチキャスト送信すると、通信処理部３６は、検索パケットＡ１に対する返信パケットＢ２が受信されることを監視する（Ｓ２４）。検索パケットＡ１を受信したデバイス群において、検索パケットＡ１で指定された条件に適合するホワイトボード（すなわち、プリンタシステム２を構成するデバイスであり、ＩＤ「０１２３４５６」が既に入力されているホワイトボード）が存在する場合には、当該ホワイトボードからの返信パケットＢ２が受信される。この場合、Ｓ２４でＹＥＳと判断される。なお、返信パケットＢ２は、検索パケットＡ１に含まれる開放ポート番号を送信先として送信される。例えば、上記の図１０の検索パケットＡ１の場合、返信パケットＢ２は、プリンタ１０の開放ポート番号「１９００」のポートを介して、通信処理部３６によって受信される。
【００３４】
図１１に、プリンタ１０によって受信されるパケット情報（ホワイトボード５０によって送信されるパケット情報）を示す。返信パケットＢ２は、検索パケットＡ１に対する応答であることを表わす情報「ＨＴＴＰ／１．１  ２００  ＯＫ」と、該当する検索対象に関する条件「ｕｒｎ：ｂｒｏｔｈｅｒ．ｃｏ．ｊｐ：ｄｅｖｉｃｅ：ＰｒｉｎｔＣｌｉｅｎｔ：１：ｉｄ＝０１２３４５６」を有している。なお、プリンタ１０から上記の検索パケットＡ１が送信される場合、その検索パケットＡ１にはプリンタ１０のＩＰアドレスも付加されている。これにより、ホワイトボード５０は、返信パケットＢ２の送信先を特定することができる。ホワイトボードにおけるポート開放処理と返信パケットＢ２の送信処理については、後で詳しく説明する。
【００３５】
返信パケットＢ２が受信されると、通信処理部３６は、返信パケットＢ２に含まれるＩＤが、Ｓ１０で入力されたＩＤと一致するか否かを判断する（Ｓ２６）。このステップでは、上記のＳ１０で入力されたＩＤと検索パケットＢ１に含まれるＩＤが比較され、それらのＩＤが一致するか否かが判断される。例えば、返信パケットＢ２に含まれるＩＤ（図１１参照）と、Ｓ１０で入力されたＩＤがともに「０１２３４５６」であり、一致している場合には、Ｓ２６でＹＥＳと判断される。この場合、Ｓ１４で同一のＩＤについて起動されたスレッドＢに処理を終了することを指示する終了指示を送信し（Ｓ３２）、Ｓ３４へ進む。この一方で、上記の処理において、Ｓ２４でＮＯと判断された場合（すなわち、返信パケットＢ２が受信されなかった場合）、又は、Ｓ２６でＮＯと判断された場合（すなわち、返信パケットＢ２に含まれるＩＤと入力されたＩＤが一致しなかった場合）には、Ｓ２８へと進む。
【００３６】
Ｓ２８では、スレッドＡが起動されてから所定時間が経過しているか、又は、スレッドＢからの終了指示があったか否かが判断される。スレッドＡが起動されてから所定時間が経過していてタイムアウトとなっている場合、又は、Ｓ１４でスレッドＡとともに起動されたスレッドＢからの終了指示があった場合（Ｓ２８でＹＥＳ）には、通信処理部３６は、Ｓ２０で開放したポートを閉じて（Ｓ３９）、スレッドＡの処理を終了する。スレッドＢからの終了指示は、プリンタ１０に入力されたＩＤを含む検索パケットをプリンタ１０で受信した場合に、スレッドＢより送信される。この処理については、後で詳しく説明する。スレッドＡが起動されてから所定時間が経過しておらずタイムアウトとなっていない場合であり、かつ、スレッドＢからの終了指示がない場合（Ｓ２８でＮＯ）には、Ｓ３０へ進む。
【００３７】
Ｓ３０では、検索パケットＡ１を送信してから一定時間が経過することが監視される。一定時間が経過していない場合（Ｓ３０でＮＯ）には、Ｓ２４へ進み、返信パケットＢ２が受信されることを監視する状態へと戻る。一定時間が経過した場合（Ｓ３０でＹＥＳ）には、通信処理部３６はＳ２２へ進み、入力されたＩＤと開放ポート番号を含む検索パケットＡ１を再度マルチキャスト送信する処理を実行する。例えば、前回の検索パケットＡ１を送信した後であって、上記の一定時間の経過後に、ホワイトボード５０，８２のいずれかが検索パケットＡ１で指定する条件に適合する状態となった場合には、当該ホワイトボードからの返信パケットＢ２が受信される。Ｓ２８のタイムアウトまでの所定時間、及び／又は、Ｓ３０のタイムアウトまでの一定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。なお、上記の所定時間は、上記の一定時間より長い時間に設定される。
【００３８】
この一方で、プリンタ１０に入力されたＩＤがプリンタシステム２を構成するデバイス群に送信された後に、当該ＩＤを含む返信パケットＢ２がプリンタ１０で受信された場合、Ｓ３４が実行される。Ｓ３４では、当該ＩＤを含むジョブ情報の送信を要求する送信要求パケットＡ３を、返信パケットＢ２の送信元のホワイトボード５０にユニキャスト送信する。なお、ホワイトボード５０から上記の返信パケットＢ２が送信される場合、その返信パケットＢ２にはホワイトボード５０のＩＰアドレスも付加されている。これにより、プリンタ１０は、送信要求パケットＡ３の送信先を特定することができる。ユニキャスト送信方式を用いると、通信処理部３６は特定のアドレスを宛先に指定して、プリンタシステム２のデバイス群における特定のデバイスに対してパケットを送信することができる。
【００３９】
例えば、図１０に示す送信要求パケットＡ３は、送信要求パケットＡ３の送信先として、ホワイトボード５０のアドレス「１９２．１６８．１．１０５：１９００」を含んでいる。また、送信要求パケットＡ３は、プリンタ１０のアドレスを通知するパケットであることを表わす情報「ＮＯＴＩＦＹ  ＊  ＨＴＴＰ／１．１」と、ジョブ情報を要求する対象であることを示す情報「ｕｒｎ：ｂｒｏｔｈｅｒ．ｃｏ．ｊｐ：ｄｅｖｉｃｅ：ＰｒｉｎｔＳｅｒｖｅｒ：１：ｉｄ＝０１２３４５６」と、プリンタ１０のアドレス「ｈｔｔｐ：／／１９２．１６８．１．１０２／ＳＯＡＰ−Ｐｒｉｎｔ／」を有している。送信要求パケットＡ３は、ＩＤ「０１２３４５６」を含むジョブ情報（すなわち、ＩＤ「０１２３４５６」と印刷データとが対応付けられているジョブ情報）を、上記のプリンタ１０のアドレスを送信先として送信するように要求する指示である。送信要求パケットＡ３を送信すると、通信処理部３６はそれまで開放していたポートを閉じて（Ｓ３９）、スレッドＡの処理を終了する。
【００４０】
なお、上記のＳ３４の処理によって送信要求パケットＡ３を送信すると、通信処理部３６は、その送信要求パケットＡ３の送信先のホワイトボード５０から、上記のプリンタ１０のアドレス（ｈｔｔｐ：／／１９２．１６８．１．１０２／ＳＯＡＰ−Ｐｒｉｎｔ／）を送信先として送信されたジョブ情報と印刷指示を受信する。後で詳しく説明するが、上記のアドレスに送信されるジョブ情報と印刷指示は、ジョブ情報受信スレッドによって受信され、処理される。なお、ホワイトボード５０におけるジョブ情報と印刷指示の送信処理についても、後で詳しく説明する。
【００４１】
（スレッドＢの処理）
図４は、スレッドＢの処理のフローチャートを示す。通信処理部３６は、検索パケットＢ１が受信されることを監視する（Ｓ４０）。検索パケットＢ１は、例えば、ホワイトボード５０からプリンタ１０を含むプリンタシステム２を構成するデバイス群に対してマルチキャスト送信されるものである。図１１に示す検索パケットＢ１は、マルチキャストアドレス「２３９．２５５．２５５．２５０」を用いて、プリンタシステム２を構成するデバイス群の各デバイスに対して送信される。また、検索パケットＢ１は、ホワイトボード５０において開放された開放ポート番号「１９００」と、当該ホワイトボードに入力されたＩＤ「０１２３４５６」を含んでいる。ホワイトボードにおける検索パケットＢ１の送信処理については、後で詳しく説明する。
【００４２】
検索パケットＢ１が受信されると（Ｓ４０でＹＥＳ）、通信処理部３６は、Ｓ１０で入力されたＩＤと検索パケットＢ１に含まれるＩＤとが一致するか否かを判断する（Ｓ４２）。例えば、検索パケットＢ１（図１１参照）に含まれるＩＤと入力されたＩＤがともに「０１２３４５６」であり、一致している場合には、Ｓ４２でＹＥＳと判断される。この場合、プリンタ１０は、検索パケットＢ１の条件に適合する（すなわち、プリンタシステム２を構成するデバイスであり、ＩＤ「０１２３４５６」が入力されている）。検索パケットＢ１に含まれるＩＤとプリンタ１０に入力されたＩＤが一致すると、通信処理部３６は、Ｓ１４で同一のＩＤについて起動されたスレッドＡに処理を終了することを指示する終了指示を送信し（Ｓ４６）、Ｓ４８へ進む。
【００４３】
Ｓ４８では、通信処理部３６は、Ｓ１０で入力されたＩＤとジョブ情報受信スレッドのアドレスを含む返信パケットＡ２を、上記の検索パケットＢ１の送信元にユニキャスト送信する。返信パケットＡ２を送信すると、通信処理部３６はスレッドＢの処理を終了する。なお、ホワイトボード５０から上記の検索パケットＢ１が送信される場合、その検索パケットＢ１にはホワイトボード５０のＩＰアドレスも付加されている。これにより、プリンタ１０は、返信パケットＡ２の送信先を特定することができる。返信パケットＡ２は、検索パケットＢ１に含まれていたホワイトボード５０の開放ポート番号を送信先に指定して送信される。図１０の返信パケットＡ２は、ホワイトボード５０からの検索パケットＢ１（図１１参照）に対する応答であることを表わす情報「ＨＴＴＰ／１．１  ２００  ＯＫ」と、該当する検索対象に関する条件「ｕｒｎ：ｂｒｏｔｈｅｒ．ｃｏ．ｊｐ：ｄｅｖｉｃｅ：ＰｒｉｎｔＳｅｒｖｅｒ：１：ｉｄ＝０１２３４５６」を含んでいる。また、返信パケットＡ２は、プリンタ１０のジョブ情報受信スレッドのアドレス「ｈｔｔｐ：／／１９２．１６８．１．１０２／ＳＯＡＰ−Ｐｒｉｎｔ」を有している。返信パケットＡ２がホワイトボード５０に送信されると、ホワイトボード５０からは上記のアドレスを送信先として、ジョブ情報と印刷指示が送信される。プリンタ１０におけるジョブ情報受信スレッドの処理とホワイトボード５０におけるジョブ情報の送信処理については、後で詳しく説明する。
【００４４】
上記の処理において、Ｓ４０でＮＯと判断された場合（すなわち、検索パケットＢ１が受信されなかった場合）、又は、Ｓ４２でＮＯと判断された場合（すなわち、Ｓ１０で入力されたＩＤと、受信した検索パケットＢ１に含まれるＩＤが一致しなかった場合）には、通信処理部３６はＳ４４へ進む。Ｓ４４では、スレッドＢが起動されてから所定時間が経過しているか、又は、スレッドＡからの終了指示があったか否かが判断される。スレッドＢが起動されてから所定時間が経過していてタイムアウトとなっている場合、又は、Ｓ１４でスレッドＢとともに起動されているスレッドＡからの終了指示があった場合（Ｓ４４でＹＥＳ）には、通信処理部３６は、スレッドＢの処理を終了する。スレッドＡからの終了指示は、プリンタ１０に入力されたＩＤをマルチキャストした後に、当該ＩＤを含む返信パケットが受信されている場合に、スレッドＡより送信される（図３のＳ３２を参照）。スレッドＢが起動されてから所定時間が経過しておらずタイムアウトとなっていない場合であり、かつ、Ｓ１４でスレッドＢとともに起動されているスレッドＡからの終了指示がない場合（Ｓ４４でＮＯ）には、Ｓ４０へ進み、検索パケットＢ１が受信されることを監視する状態に戻る。上記のタイムアウトまでの所定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。例えば、Ｓ４４では、スレッドＢの起動から「１時間」が経過することが監視されてもよい。
【００４５】
（ジョブ情報受信スレッドの処理）
図５は、ジョブ情報受信スレッドの処理のフローチャートを示す。通信処理部３６は、ジョブ情報とその印刷指示が受信されることを監視する（Ｓ５０）。このステップにおいてその受信が監視されるジョブ情報と印刷指示は、図３のスレッドＡのＳ３４において送信した送信要求パケットＡ３に応答して、上記の送信要求パケットＡ３を受信したホワイトボードから送信されるものである。また、図４のスレッドＢのＳ４８において返信パケットＡ２を送信した場合にも、上記の返信パケットＡ２を受信したホワイトボードから印刷データと印刷指示が送信される。上記の送信要求パケットＡ３と返信パケットＡ２は、いずれも、Ｓ１０で入力されたＩＤと一致するＩＤを含んでいるとともに、ジョブ情報受信スレッドのＵＲＬアドレスを含んでいる（図１０参照）。このことから、ジョブ情報と印刷指示は、ＵＲＬに従った通信方法（上記の場合はＨＴＴＰ形式）により通信処理部３６によって受信される。また、ジョブ情報受信スレッドのアドレスにＩＰＰを利用する場合であれば、印刷データと印刷指示はＩＰＰプロトコルによって使用される所定のポートを介して、通信処理部３６によって受信されてもよい。また、このステップで受信されたジョブ情報は、記憶部１８に記憶されてもよい。なお、ジョブ情報を受信する際に、受信したＩＤが先にプリンタ１０から送信したパケット（すなわち、送信要求パケットＡ３又は返信パケットＡ２）に含まれるＩＤと一致するかについての判断がなされてもよい。
【００４６】
次いで、通信処理部３６は、Ｓ５０で受信されたジョブ情報を、印刷指示とともに印刷処理部３８に送信する（Ｓ５２）。なお、このステップにおいて、印刷処理部３８には、印刷指示とＩＤが送信されてもよい。あるいは、印刷処理部３８には、印刷データと印刷指示が送信されてもよい。いずれの場合も、印刷処理部３８に「ジョブ情報と印刷指示を送信」することに等しい。また、Ｓ５０において所定バイト分のジョブ情報が受信されたときに、Ｓ５２ではその所定バイト分のジョブ情報が印刷処理部３８に送信されてもよい。この場合、ジョブ情報の所定バイトを実行単位として、Ｓ５０とＳ５２の処理が繰り返される。印刷処理部３８へジョブ情報と印刷指示が送信されると、ジョブ情報受信スレッドではジョブ情報と印刷指示が受信されることを監視する状態へと戻る。
【００４７】
（印刷処理）
図６に示す印刷処理は、制御部３４の印刷処理部３８によって実行される。印刷処理部３８は、通信処理部３６からのジョブ情報と印刷指示が受信されることを監視している（Ｓ６０）。通信処理部３６からのジョブ情報と印刷指示は、ジョブ情報受信スレッドのＳ５２の処理（図５参照）によって印刷処理部３８に送信される。ジョブ情報と印刷指示が受信されると（Ｓ６０でＹＥＳ）、印刷処理部３８は、受信された印刷指示とジョブ情報に基づいて、印刷処理を実行する（Ｓ６２）。印刷処理部３８は、印刷指示に従って、ジョブ情報に含まれる印刷データに基づいて印刷部４０（図１参照）を駆動する。なお、印刷処理部３８によって、ジョブ情報に含まれる印刷データの解析処理と、解析結果に基づいて実行されるレイアウト処理やラスタライズ処理等が実行されてもよい。Ｓ６２で印刷処理が実行されると、印刷処理部３８は、Ｓ６０へ進み、通信処理部３６からのジョブ情報と印刷指示が受信されることを監視する状態に戻る。
【００４８】
上記のプリンタ１０では、通信処理部３６はジョブ情報受信スレッドを起動する（Ｓ８）。また、ＩＤカードリーダ１６によってＩＤが入力され（Ｓ１０）、ＩＤ入力完了ボタン１２ａが押下されると（Ｓ１２でＹＥＳ）、通信処理部３６はスレッドＡとスレッドＢを起動する。通信処理部３６は、スレッドＡの処理によって、入力されたＩＤについて検索パケットＡ１をマルチキャスト送信し、それに対する返信パケットが受信されることを監視する。これとともに、通信処理部３６は、スレッドＢの処理によって、入力されたＩＤについて他のデバイスからの検索パケットＢ１が受信されることを監視する。ホワイトボード５０，８２よりも先にプリンタ１０にＩＤが入力されている場合には、スレッドＡとジョブ情報受信スレッドの処理によって印刷が実行される。プリンタ１０よりも先にホワイトボード５０，８２にＩＤが入力された場合には、スレッドＢとジョブ情報受信スレッドの処理によって印刷が実行される。
【００４９】
（ホワイトボードの処理）
続いて、ホワイトボード５０の各処理部７８，８０によって実行される処理（タスク）について説明する。図７は、ホワイトボード５０のスキャン処理のフローチャートを示す。図８及び図９は、ホワイトボード５０の通信処理のフローチャートを示す。
【００５０】
（スキャン処理）
スキャン処理部８０は、ホワイトボード５０のスキャンボタン５８ａが操作されることを監視している（Ｓ７０）。上述したように、ユーザは、操作部５８のスキャンボタン５８ａを操作することができる。この場合、スキャン処理部８０は、Ｓ７０でＹＥＳと判断し、Ｓ７２へ進む。Ｓ７２では、ＩＤカードリーダ５６によってユーザＩＤが入力される。例えば、ユーザが自身のＩＤカードをＩＤカードリーダ５６にかざすと、ＩＤカードに記憶されているＩＤ情報がＩＤカードリーダ５６によって読み取られる。この結果として、ユーザのＩＤ「０１２３４５６」が入力される。このステップにおいて、複数のＩＤが入力されてもよい。スキャン処理部８０は、ＩＤ入力完了ボタン５８ｂが押下され、ＩＤの入力が完了することを監視している（Ｓ７４）。Ｓ７４でＩＤ入力の完了を監視する間に、所定の時間が経過してもＩＤ入力完了ボタン５８ｂが押下されない場合には、ＩＤ入力完了ボタン５８ｂを押下するようユーザに促すための報知処理を実行してもよい。
【００５１】
ＩＤ入力が完了されると、スキャン処理部８０は、スキャン処理を実行する（Ｓ７６）。スキャン処理部８０はスキャナ５４を駆動して、表示板５２に描画されている文字や図形をスキャンして、データ（印刷データ）を作成する。作成される印刷データの形式は、特に限定されない。スキャン処理部８０は、スキャナ５４を駆動して、例えば、ＰＤＦ、ＴＩＦＦ、ＪＰＥＧ等の形式の印刷データを作成することができる。次いで、スキャン処理部８０は、Ｓ７６で作成した印刷データとＳ７４で入力が完了されたＩＤを、ジョブ情報データ６６として記憶部６２のジョブ情報記憶領域６４に記憶する（Ｓ７８）。例えば、Ｓ７２からＳ７４の処理によって、ＩＤ「０１２３４５６」とＩＤ「０６５４３２１」が入力された場合には、ジョブ情報データ６６には、第１ＩＤデータ６８ａ（ＩＤ「０１２３４５６」）と第２ＩＤデータ６８ｂ（ＩＤ「０６５４３２１」）と印刷データ７２が含まれている。上記のジョブ情報データ６６は、印刷データ７２と第１ＩＤデータ６８ａとが対応付けられた組合せデータ７３ａと、印刷データ７２と第２ＩＤデータ６８ｂとが対応付けられた組合せデータ７３ｂを含んでいると換言することもできる（図１参照）。
【００５２】
Ｓ７８の処理が実行されると、スキャン処理部８０は、入力された各ＩＤについて、スレッドＣとスレッドＤを通信処理部７８に起動させる（Ｓ８０）。以下で説明するスレッドＣとスレッドＤの処理は、通信処理部７８によって、入力されたＩＤについて、並列的に（同時的に）実行されるものである。また、スレッドＣとスレッドＤは、入力されたＩＤ毎に、各ＩＤについて、並列的に実行されてもよい。Ｓ８０を終えると、スキャン処理部８０は、スキャンボタン５８ａが操作されることを監視する状態（Ｓ７０）に戻る。なお、本実施例ではスキャンボタン５８ａが押下された（Ｓ７０でＹＥＳ）後にＩＤ入力が完了される（Ｓ７４でＹＥＳ）ことで、印刷データが作成されている。しかしながら、本明細書の技術の実施形態はこれに限定されない。スキャン処理は、スキャンボタン５８ｂが操作されるよりも先にＩＤが入力された場合に実行されてもよい。スキャン処理によって、印刷データが作成され、そのデータとＩＤとが対応づけられる関係を有してジョブ情報記憶領域６４に記憶されればよく、上記した以外の処理構成によってスキャン処理が実行されてもよい。
【００５３】
（ホワイトボードの通信処理）
通信処理部７８は、スキャン処理部８０からの指示を受けてスレッドＣとスレッドＤを起動する。以下では、スレッドＣとスレッドＤについて順に説明する。
【００５４】
（スレッドＣの処理）
図７は、スレッドＣの処理のフローチャートを示す。通信処理部７８は、所定のポートを開放する（Ｓ９０）。上述したように、入出力ポート６０は複数のポートを有している。このステップでは、所定の開放ポート番号を有するポートが開放される。例えば、本実施例では、このステップにおいてポート番号「１９００」が開放される。通信処理部７８は、以下の処理において、この開放ポート番号「１９００」のポートを用いて、プリンタシステム２上のその他のデバイスと通信する。
【００５５】
次いで、通信処理部７８は、Ｓ７２で入力されたＩＤとＳ９０で開放された開放ポート番号を含む検索パケットＢ１をマルチキャスト送信する（Ｓ９２）。検索パケットＢ１は、スレッドＢのＳ４０で、プリンタ１０の通信処理部３６によって受信される（図４参照）。図１１に示す検索パケットＢ１は、プリンタシステム２を構成するデバイス群（図１を参照）を指定するマルチキャストアドレス「２３９．２５５．２５５．２５０」を宛先に指定するとともに、通信処理部７８によってＳ９０で開放された開放ポート番号「１９００」を指定している。また、検索パケットＢ１に含まれるＩＤ６８（０１２３４５６）は、Ｓ７２でホワイトボード５０に入力されたＩＤである（図７参照）。図１１からは、検索パケットＢ１はＳ７２でホワイトボード５０に入力されたＩＤ「０１２３４５６」と一致するＩＤが入力されたプリンタ（Ｐｒｉｎｔ  Ｓｅｒｖｅｒ）を検索する指示であることが理解される。
【００５６】
検索パケットＢ１をマルチキャスト送信すると、通信処理部７８は、検索パケットＢ１に対する返信パケットＡ２が受信されることを監視する（Ｓ９４）。返信パケットＡ２は、スレッドＢのＳ４８で、プリンタ１０の通信処理部３６によって送信される（図４参照）。検索パケットＢ１で指定された条件に適合するプリンタ（すなわち、プリンタシステム２を構成するデバイスであり、ＩＤ「０１２３４５６」が入力されているプリンタ）が存在する場合には、当該プリンタからの返信パケットＡ２が受信される。この場合、Ｓ９４でＹＥＳと判断される。なお、返信パケットＡ２は、検索パケットＢ１で送信したホワイトボード５０の開放ポート番号（上記の場合、「１９００」）を送信先アドレスとして送信され、通信処理部７８によって受信される。
【００５７】
返信パケットＡ２が受信されると、通信処理部７８は、返信パケットＡ２に含まれるＩＤが、Ｓ７２で入力されたＩＤと一致するか否かを判断する（Ｓ９６）。例えば、返信パケットＡ２に含まれるＩＤ（図１０参照）と、Ｓ７２で入力されたＩＤがともに「０１２３４５６」であり、一致している場合には、Ｓ９６でＹＥＳと判断される。この場合、Ｓ８０で同一のＩＤについて起動されたスレッドＤに処理を終了することを指示する終了指示を送信し（Ｓ１０２）、Ｓ１０４へ進む。この一方で、上記の処理において、Ｓ９４でＮＯと判断された場合（すなわち、Ｓ９４の判断処理が実行されるまでに返信パケットＡ２が受信されなかった場合）、又は、Ｓ９６でＮＯと判断された場合（すなわち、返信パケットＡ２に含まれるＩＤと入力されたＩＤが一致しなかった場合）には、Ｓ９８へと進む。
【００５８】
上記の一連の処理において、Ｓ１０２の処理を実行した場合には、ホワイトボード５０に入力されたＩＤがプリンタシステム２を構成するデバイス群に送信された後に、特定のプリンタ（上記の場合、プリンタ１０）から送信された当該ＩＤがホワイトボード５０で受信されている。このことから、通信処理部７８は、ジョブ記憶領域６４を検索して、当該ＩＤを含むジョブ情報を特定することができる。Ｓ１０４では、当該ＩＤを含むジョブ情報と印刷指示を、返信パケットＡ２に含まれていたプリンタ１０のジョブ情報受信スレッドのアドレス（「ｈｔｔｐ：／／１９２．１６８．１．１０２／ＳＯＡＰ−Ｐｒｉｎｔ／」，図１０参照）を送信先に指定してプリンタ１０にユニキャスト送信する。送信されたジョブ情報と印刷指示は、ジョブ情報受信スレッドのＳ５０で、プリンタ１０の通信処理部３６によって受信される（図５参照）。ジョブ情報と印刷指示を送信すると、通信処理部７８はそれまで開放していたポートを閉じて（Ｓ１０６）、スレッドＣの処理を終了する。
【００５９】
Ｓ９８では、スレッドＣが起動されてから所定時間が経過しているか、又は、スレッドＤからの終了指示があったか否かが判断される。スレッドＣが起動されてから所定時間が経過していてタイムアウトとなっている場合、又は、Ｓ８０でスレッドＣとともに起動されたスレッドＤからの終了指示があった場合（Ｓ９８でＹＥＳ）には、通信処理部７８は、Ｓ９０で開放したポートを閉じて（Ｓ１０６）、スレッドＣの処理を終了する。スレッドＤからの終了指示は、ホワイトボード５０に入力されたＩＤを含む検索パケットをホワイトボード５０で受信した場合に、スレッドＤより送信される。この処理については、後で詳しく説明する。スレッドＣが起動されてから所定時間が経過しておらずタイムアウトとなっていない場合であり、かつ、スレッドＤからの終了指示がない場合（Ｓ９８でＮＯ）には、Ｓ１００へ進む。
【００６０】
Ｓ１００では、検索パケットＢ１を送信してから一定時間が経過することが監視される。一定時間が経過していない場合（Ｓ１００でＮＯ）には、Ｓ９４へ進み、返信パケットＡ２が受信されることを監視する状態へと戻る。一定時間が経過した場合（Ｓ１００でＹＥＳ）には、通信処理部７８は９２へ進み、入力されたＩＤと開放ポート番号を含む検索パケットＢ１を再度マルチキャスト送信する処理を実行する。例えば、前回の検索パケットＢ１を送信した後であって、上記の一定時間の経過後に、プリンタ１０，４２のいずれかが検索パケットＢ１で指定する条件に適合する状態となった場合には、当該プリンタからの返信パケットＡ２が受信される。Ｓ９８のタイムアウトまでの所定時間、及び／又は、Ｓ１００のタイムアウトまでの一定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。なお、上記の所定時間は、上記の一定時間より長い時間に設定される。
【００６１】
（スレッドＤの処理）
図９は、スレッドＤの処理のフローチャートを示す。通信処理部７８は、検索パケットＡ１が受信されることを監視する（Ｓ１１０）。検索パケットＡ１は、スレッドＡのＳ２２において、プリンタ１０からホワイトボード５０を含むプリンタシステム２を構成するデバイス群に対してマルチキャスト送信される（図３参照）。検索パケットＡ１が受信されると（Ｓ１１０でＹＥＳ）、通信処理部７８は、Ｓ７２で入力されたＩＤと検索パケットＡ１に含まれるＩＤとが一致するか否かを判断する（Ｓ１１２）。例えば、検索パケットＡ１（図１０参照）に含まれるＩＤと入力されたＩＤがともに「０１２３４５６」であり、一致している場合には、Ｓ１１２でＹＥＳと判断される。検索パケットＡ１に含まれるＩＤとホワイトボード５０に入力されたＩＤが一致すると、通信処理部７８は、Ｓ８０で同一のＩＤについて起動されたスレッドＣに処理を終了することを指示する終了指示を送信し（Ｓ１１６）、Ｓ１１８へ進む。
【００６２】
Ｓ１１８では、通信処理部７８は、所定のポートを開放する。このステップでは、所定の開放ポート番号を有するポートが開放される。通信処理部７８は、以下の処理において、開放ポート番号を有するポートを用いて、プリンタシステム２上のその他のデバイスと通信する。次いで、通信処理部７８は、Ｓ７２で入力されたＩＤとＳ１１８で開放された開放ポート番号を含む返信パケットＢ２を、上記の検索パケットＡ１の送信元にユニキャスト送信する（Ｓ１２０）。例えば、図１１の返信パケットＢ２は、ＩＤ「０１２３４５６」を含んでいる。なお、ホワイトボード５０が返信パケットＢ２を送信する場合、その返信パケットＢ２にはホワイトボード５０のアドレスが付加される。プリンタ１０は、上記のアドレスを送信先に指定して、ホワイトボード５０に各種パケットを送信することができる。返信パケットＢ２は、検索パケットＡ１に含まれていた上記の開放ポート番号を送信先に指定して送信され、スレッドＡのＳ２４で、プリンタ１０の通信処理部３６によって受信される（図３参照）。
【００６３】
返信パケットＢ２がプリンタ１０に送信されると、通信処理部７８は、ジョブ情報の送信要求パケットＡ３が受信されることを監視する（Ｓ１２２）。ジョブ情報の送信要求パケットＡ３は、スレッドＡのＳ３４で、プリンタ１０の通信処理部３６によって送信される（図３参照）。ジョブ情報の送信要求パケットＡ３が受信されると（Ｓ１２２でＹＥＳ）、通信処理部７８は、送信要求パケットＡ３に含まれていたＩＤを含むジョブ情報と印刷指示を、その送信要求パケットＡ３の送信元のプリンタ１０にユニキャスト送信する（Ｓ１２６）。ジョブ情報と印刷指示は、送信要求パケットＡ３で指定されていたプリンタ１０のアドレスを送信先に指定して送信される。この結果、ホワイトボード５０から送信されたジョブ情報と印刷指示は、ジョブ情報受信スレッドのＳ５０で、プリンタ１０の通信処理部３６によって受信される（図５参照）。ジョブ情報と印刷指示をプリンタ１０に送信すると、通信処理部７８は、それまで開いていたポートを閉じて（Ｓ１２８）、スレッドＤの処理を終了する。
【００６４】
上記の処理において、Ｓ１１０でＮＯと判断された場合（すなわち、検索パケットＡ１が受信されなかった場合）、又は、Ｓ１１２でＮＯと判断された場合（すなわち、Ｓ８０で入力されたＩＤと、受信した検索パケットＡ１に含まれるＩＤが一致しなかった場合）には、通信処理部７８はＳ１１４へ進む。Ｓ１１４では、スレッドＤが起動されてから所定時間が経過しているか、又は、スレッドＣからの終了指示があったか否かが判断される。スレッドＤが起動されてから所定時間が経過していてタイムアウトとなっている場合、又は、Ｓ８０でスレッドＤとともに起動されているスレッドＣからの終了指示があった場合（Ｓ１１４でＹＥＳ）には、通信処理部７８は、スレッドＤの処理を終了する。上記のスレッドＣからの終了指示は、ホワイトボード５０に入力されたＩＤをマルチキャストした後に、当該ＩＤを含む返信パケットが受信されている場合に、スレッドＣより送信される（図８のＳ１０２を参照）。スレッドＤが起動されてから所定時間が経過しておらずタイムアウトとなっていない場合であり、かつ、Ｓ８０でスレッドＤとともに起動されたスレッドＣからの終了指示がない場合（Ｓ１１４でＮＯ）には、Ｓ１１０へ進み、検索パケットＡ１が受信されることを監視する状態に戻る。
【００６５】
また、上記の処理において、Ｓ１２２でＮＯと判断された場合（すなわち、Ｓ１２２の判断処理が実行されるまでに送信要求パケットＡ３が受信されなかった場合）には、通信処理部７８はＳ１２４へ進む。Ｓ１２４では、返信パケットＢ２を送信してから一定時間が経過することが監視される。返信パケットＢ２を送信してから一定時間が経過していない場合（Ｓ１２４でＮＯ）には、通信処理部７８はＳ１２０へ進み、入力されたＩＤと開放ポート番号を含む返信パケットＢ２を、Ｓ１１０で受信された検索パケットＡ１の送信元のプリンタに再度ユニキャスト送信する処理を実行する。返信パケットＢ２を送信してから一定時間が経過した場合（Ｓ１２４でＹＥＳ）には、通信処理部７８は、それまでに開放していたポートがある場合には、そのポートを閉じ（Ｓ１２８）、スレッドＤの処理を終了する。
【００６６】
Ｓ１１４のタイムアウトまでの所定時間、及び／又は、Ｓ１２４のタイムアウトまでの一定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。
【００６７】
上記のホワイトボード５０では、ＩＤカードリーダ５６によってＩＤが入力され（Ｓ７２）、ＩＤ入力完了ボタン５８ｂが押下されると（Ｓ７４でＹＥＳ）、通信処理部７８はスレッドＣとスレッドＤを起動する。通信処理部７８は、スレッドＣの処理によって、入力されたＩＤについて検索パケットＢ１をマルチキャスト送信し、それに対する返信パケットが受信されることを監視する。これとともに、通信処理部７８は、スレッドＤの処理によって、入力されたＩＤについて他のデバイスからの検索パケットＡ１が受信されることを監視する。プリンタ１０，４２よりも先にホワイトボード５０にＩＤが入力されている場合には、スレッドＣの処理によって印刷データの送信が実行される。これとともに、ホワイトボード５０よりも先にプリンタ１０，４２にＩＤが入力された場合には、スレッドＤの処理によって印刷データの送信が実行される。
【００６８】
上記のプリンタシステム２によると、プリンタ１０（あるいは、プリンタ４２）とホワイトボード５０（あるいは、ホワイトボード８２）のどちらに先にＩＤが入力されても、
ホワイトボードに印刷データ（上記の場合では、印刷データを含むジョブ情報）を送信させ、プリンタにその印刷データに基づく印刷を実行させることができる。上記のシステム２によると、ユーザが各デバイスにＩＤを入力する順序が制約されない。ユーザにとっての利便性を向上させることができる。
【００６９】
（第２実施例）
図１２〜図１５を用いて、プリンタシステム２のその他の実施形態について説明する。第１実施例と共通するプリンタシステム２と、プリンタ１０，４２及びホワイトボード５０，８２の構成については、説明を省略する。
【００７０】
（プリンタの処理）
図１２及び図１３は、プリンタ１０の通信処理部３６によって実行される通信処理を示す。図１２に示したスレッドＡと図１３に示したスレッドＢは、通信処理部３６によって図２のＳ１０からＳ１４までの処理が実行されることによって、入力されたＩＤについて起動される。また、本実施例のプリンタ１０の通信処理部３６は、図２のＳ８の処理によってジョブ情報受信スレッドを起動している。ジョブ情報受信スレッドは、上記の図１２のスレッドＡ又は図１３のスレッドＢの処理によってホワイトボードから送信されるジョブ情報と印刷指示を受信して、図５に示した処理を実行する。さらに、本実施例のプリンタ１０の印刷処理部３８は、図６に示した印刷処理を実行する。このため、ジョブ情報受信スレッドと印刷処理部３８の処理についての説明は省略する。
【００７１】
（スレッドＡの処理）
スレッドＡのＳ１３０からＳ１３６では、図３のＳ２０からＳ２６までの処理と同様の処理が実行される。第１実施例では、Ｓ２６でＹＥＳの場合に、スレッドＢに終了指示が出されている（図３参照）。しかしながら、本実施例では、Ｓ１３６でＹＥＳの場合に、スレッドＢに終了指示が出されない。Ｓ１３６でＹＥＳの場合、Ｓ１４０からＳ１４８が実行される。Ｓ１４０では、図３のＳ３４の処理と同様の処理が実行される。Ｓ１４４では、図３のＳ３０の処理と同様の処理が実行される。Ｓ１４８では、図３のＳ３９の処理と同様の処理が実行される。また、Ｓ１３４でＮＯと判断された場合、又は、Ｓ１３６でＮＯと判断された場合には、Ｓ１４２へ進む。
【００７２】
Ｓ１４２では、スレッドＡが起動されてから所定時間が経過しているか否かが判断される。スレッドＡが起動されてから所定時間が経過しており、タイムアウトとなっている場合（Ｓ１４２でＹＥＳ）には、通信処理部３６は、Ｓ１３０で開放したポートを閉じて（Ｓ１４８）、スレッドＡの処理を終了する。スレッドＡが起動されてから所定時間が経過しておらず、タイムアウトとなっていない場合（Ｓ１４２でＮＯ）には、Ｓ１４４へ進む。Ｓ１４４では、検索パケットＡ１を送信してから一定時間が経過することが監視される。一定時間が経過していない場合（Ｓ１４４でＮＯ）には、Ｓ１３４へ進み、返信パケットＢ２が受信されることを監視する状態へと戻る。一定時間が経過した場合（Ｓ１４４でＹＥＳ）には、通信処理部３６はＳ１３２へ進み、入力されたＩＤと開放ポート番号を含む検索パケットＡ１を再度マルチキャスト送信する処理を実行する。例えば、前回の検索パケットＡ１を送信した後であって、上記の一定時間の経過後に、ホワイトボード５０，８２のいずれかが検索パケットＡ１で指定する条件に適合する状態となった場合には、当該ホワイトボードからの返信パケットＢ２が受信される。Ｓ１４２のタイムアウトまでの所定時間及びＳ１４４のタイムアウトまでの一定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。なお、上記の一定時間は、上記の所定時間より短い時間に設定される。
【００７３】
（スレッドＢの処理）
スレッドＢのＳ１５０からＳ１５２では、図４のＳ４０及びＳ４２と同様の処理が実行される。第１実施例では、Ｓ４２でＹＥＳの場合に、スレッドＡに終了指示が出されている（図４参照）。しかしながら、本実施例では、Ｓ１５２でＹＥＳの場合に、スレッドＡに終了指示が出されない。Ｓ１５２でＹＥＳの場合、Ｓ１５６からＳ１６４が実行される。Ｓ１５６では、図４のＳ４８の処理と同様の処理が実行される。また、Ｓ１５０でＮＯと判断された場合、又は、Ｓ１５２でＮＯと判断された場合には、Ｓ１６４へ進む。
【００７４】
Ｓ１６４では、スレッドＢが起動されてから所定時間が経過しているか否かが判断される。スレッドＢが起動されてから所定時間が経過しており、タイムアウトとなっている場合（Ｓ１６４でＹＥＳ）には、通信処理部３６はスレッドＢの処理を終了する。スレッドＢが起動されてから所定時間が経過しておらず、タイムアウトとなっていない場合（Ｓ１６４でＮＯ）には、Ｓ１５０へ進み、検索パケットＢ１が受信されることを監視する状態に戻る。Ｓ１６４のタイムアウトまでの所定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。例えば、Ｓ１６４ではスレッドＢの起動から「１日」が経過することが監視されてもよい。
【００７５】
上記のスレッドＡでは、Ｓ１３０からＳ１４０の処理を実行した後に必ずＳ１４２のタイムアウト判断処理が実行される。スレッドＡでは、Ｓ１４２でＹＥＳと判断され、タイムアウトするまでの間、入力されたＩＤについて、所定のポートを開放した状態が維持される。さらに、上記のタイムアウトまでの間、他のデバイスに対する検索パケットＡ１のマルチキャスト送信処理（Ｓ１３２）が繰り返し実行される。
また、上記のスレッドＢでは、Ｓ１５０からＳ１５６の処理を実行した後に必ずＳ１６４のタイムアウト判断処理が実行される。スレッドＢでは、Ｓ１６４でＹＥＳと判断され、タイムアウトするまでの間、入力されたＩＤについて、プリンタシステム２上の他のデバイスからマルチキャスト送信される検索パケットＢ１の受信を監視する状態が維持される。
【００７６】
（ホワイトボードの処理）
図１４及び図１５は、ホワイトボード５０の通信処理部７８によって実行される通信処理を示す。図１４に示したスレッドＣと図１５に示したスレッドＤは、通信処理７８によって図７のＳ８０の処理が実行されることによって、入力されたＩＤについて起動される。また、本実施例のホワイトボード５０のスキャン処理部８０は、図７に示したスキャン処理を実行する。このため、スキャン処理についての説明は省略する。
【００７７】
（スレッドＣの処理）
スレッドＣのＳ１７０からＳ１７６では、図８のＳ９０からＳ９６と同様の処理が実行される。第１実施例では、Ｓ９６でＹＥＳの場合に、スレッドＤに終了指示が出されている（図８参照）。しかしながら、本実施例では、Ｓ１７６でＹＥＳの場合に、スレッドＤに終了指示が出されない。Ｓ１７６でＹＥＳの場合、Ｓ１７８が実行される。Ｓ１７８では、図７のＳ１０４と同様の処理が実行される。なお、このステップで送信されたジョブ情報と印刷指示は、プリンタ１０のジョブ情報受信スレッドによって処理される（図５参照）。
【００７８】
Ｓ１７４でＮＯと判断された場合、又は、Ｓ１７６でＮＯと判断された場合には、Ｓ１８０へ進む。さらに、本実施例では、Ｓ１７８でプリンタにジョブ情報と印刷指示を送信した後にも、Ｓ１８０へ進む。
【００７９】
Ｓ１８０では、スレッドＣが起動されてから所定時間が経過しているか否かが判断される。スレッドＣが起動されてから所定時間が経過しておりタイムアウトとなっている場合（Ｓ１８０でＹＥＳ）には、通信処理部７８は、Ｓ１７０で開放したポートを閉じて（Ｓ１８４）、スレッドＣの処理を終了する。スレッドＣが起動されてから所定時間が経過しておらずタイムアウトとなっていない場合（Ｓ１８０でＮＯ）には、Ｓ１８２へ進む。Ｓ１８２では、図８のＳ１００と同様の処理が実行される。Ｓ１８０のタイムアウトまでの所定時間及びＳ１８２のタイムアウトまでの一定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。なお、上記の一定時間は、上記の所定時間より短い時間に設定される。
【００８０】
（スレッドＤの処理）
スレッドＤのＳ１９０とＳ１９２では、図９のＳ１１０及びＳ１１２と同様の処理が実行される。第１実施例では、Ｓ１１２でＹＥＳの場合に、スレッドＣに終了指示が出されている（図９参照）。しかしながら、本実施例では、Ｓ１９２でＹＥＳの場合に、スレッドＣに終了指示が出されない。Ｓ１９２でＹＥＳの場合、Ｓ１９４の処理が実行されるとともに、新たにスレッドが起動され、Ｓ１９６からＳ２０６の処理が上記のＳ１９４と並列的に実行される。新たに起動されたスレッドのＳ１９６からＳ２０６では、図９のＳ１１８からＳ１２８と同様の処理が実行される。
【００８１】
上述したように、スレッドＤでは、Ｓ１９２でＹＥＳと判断された場合に、Ｓ１９４へと進む。さらに、本実施例では、Ｓ１９０でＮＯと判断された場合、又は、Ｓ１９２でＮＯと判断された場合にも、Ｓ１９４へ進む。
【００８２】
Ｓ１９４では、スレッドＤが起動されてから所定時間が経過しているか否かが判断される。スレッドＤが起動されてから所定時間が経過しておりタイムアウトとなっている場合（Ｓ１９４でＹＥＳ）には、通信処理部７８はスレッドＤの処理を終了する。スレッドＤが起動されてから所定時間が経過しておらずタイムアウトとなっていない場合（Ｓ１９４でＮＯ）には、Ｓ１９０へ進み、検索パケットＡ１が受信されることを監視する状態に戻る。なお、Ｓ１９４のタイムアウトまでの所定時間とＳ２０２のタイムアウトまでの一定時間は、デフォルトで設定されていてもよいし、ユーザが任意に設定するものであってもよい。上記の一定時間は、上記の所定時間より短い時間に設定される。
【００８３】
上記したように、スレッドＣでは、Ｓ１７０からＳ１７８の処理を実行した後に必ずＳ１８０のタイムアウト判断処理が実行される。スレッドＣでは、Ｓ１８０でＹＥＳと判断され、タイムアウトするまでの間、入力されたＩＤについて所定のポートを開放した状態が維持される。さらに、上記のタイムアウトまでの間、他のデバイスに対する検索パケットＢ１のマルチキャスト送信処理（Ｓ１７２）が繰り返し実行される。
また、スレッドＤでは、Ｓ１９０からＳ１９２の処理を実行した後に必ずＳ１９４のタイムアウト判断処理が実行される。スレッドＤでは、Ｓ１９４でＹＥＳと判断され、タイムアウトするまでの間、入力されたＩＤについて、プリンタシステム２上の他のデバイスからマルチキャスト送信される検索パケットＡ１の受信を監視する状態が維持される。
【００８４】
例えば、ユーザがホワイトボード５０にＩＤを入力してから、「１日」の所定時間が経過するまでの間に、ホワイトボード５０で作成された印刷データを印刷するのに、プリンタ１０を使用し、次いで、プリンタ４２を使用するような場合がある。このような場合に、本実施例の構成によると、スレッドＣの処理によってホワイトボード５０が当該ＩＤを含む検索パケットＢ１をマルチキャスト送信し続けるとともに、スレッドＢの処理によってプリンタ１０，４２から当該ＩＤを含むパケットが受信されることを監視し続ける。このため、ホワイトボード５０で作成された印刷データを、プリンタ１０においても、また、プリンタ４２においても受信させ、印刷させることができる。
【００８５】
また、例えば、ユーザがプリンタ１０にＩＤを入力してから、上記の所定時間が経過するまでの間に、ホワイトボード５０を使用し、次いで、ホワイトボード８２を使用し、それらのホワイトボードで作成された印刷データを先にＩＤを入力したプリンタ１０で印刷したい場合がある。このような場合に、本実施例の構成によると、スレッドＡの処理によってプリンタ１０が当該ＩＤを含む検索パケットＡ１をマルチキャスト送信し続けるとともに、スレッドＤの処理によってホワイトボード５０，８２から当該ＩＤを含むパケットが受信されることを監視し続ける。このため、ホワイトボード５０、８２でそれぞれ作成された印刷データをプリンタ１０に受信させ、印刷させることができる。
【００８６】
上記の実施例の構成によると、ユーザがＩＤをプリンタとホワイトボードに入力する順序が制約されないだけでなく、ユーザは選択したプリンタに一度ＩＤを入力しておくだけで、複数のホワイトボードで作成した印刷データをそのプリンタで印刷できる。また、ユーザは選択したホワイトボードに一度ＩＤを入力しておくだけで、そのホワイトボードにおいて作成された印刷データを複数のプリンタで印刷できる。どちらの場合においても、簡単な操作によってホワイトボードに印刷データを送信させ、プリンタにその印刷データに基づく印刷を実行させることができる。ユーザの利便性をさらに向上させることができる。
【００８７】
上記の実施例では、ＩＤを通信することによって、プリンタシステムを構成する複数のデバイスのうち、印刷データを作成するホワイトボードと、その印刷データを印刷するプリンタが特定される。しかしながら、本明細書の技術は、プリンタとホワイトボードが一対一の関係で接続されているシステムに実現してもよい。
【００８８】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
【００８９】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００９０】
【図１】プリンタシステムの概要構成を示す説明図。
【図２】スレッドＡ，Ｂが起動されるまでのプリンタの通信処理部の処理概要を表すフローチャート。
【図３】スレッドＡの処理概要を表すフローチャート（第１実施例）。
【図４】スレッドＢの処理概要を表すフローチャート（第１実施例）。
【図５】ジョブ情報受信スレッドの処理概要を表すフローチャート。
【図６】プリンタの印刷処理部の処理概要を表すフローチャート。
【図７】ホワイトボードのスキャン処理部の処理概要を表すフローチャート。
【図８】スレッドＣの処理概要を表すフローチャート（第１実施例）。
【図９】スレッドＤの処理概要を表すフローチャート（第１実施例）。
【図１０】プリンタが送信する情報を例示する図。
【図１１】ホワイトボードが送信する情報を例示する図。
【図１２】スレッドＡの処理概要を表すフローチャート（第２実施例）。
【図１３】スレッドＢの処理概要を表すフローチャート（第２実施例）。
【図１４】スレッドＣの処理概要を表すフローチャート（第２実施例）。
【図１５】スレッドＤの処理概要を表すフローチャート（第２実施例）。
【符号の説明】
【００９１】
２：プリンタシステム
１０，４２：プリンタ
１２：操作部
１２ａ：ＩＤ入力完了ボタン
１４：表示部
１６：ＩＤカードリーダ
１８：記憶部
２０：ジョブ情報記憶領域
２２：ジョブ情報データ
３２：入出力ポート
３４：制御部
３６：通信処理部
３８：印刷処理部
４０：印刷部
５０，８２：ホワイトボード
５２：表示板
５４：スキャナ
５６：ＩＤカードリーダ
５８：操作部
５８ａ：スキャンボタン
５８ｂ：ＩＤ入力完了ボタン
６０：入出力ポート
６２：記憶部
６４：ジョブ情報記憶領域
６６：ジョブ情報データ
６８ａ，６８ｂ：ＩＤデータ
７２：印刷データ
７３ａ，７３ｂ：組合せデータ
７４：その他の記憶領域
７６：制御部
７８：通信処理部
８０：スキャン処理部
【図１】
0005029426.tif 000002
【図２】
0005029426.tif 000003
【図３】
0005029426.tif 000004
【図４】
0005029426.tif 000005
【図５】
0005029426.tif 000006
【図６】
0005029426.tif 000007
【図７】
0005029426.tif 000008
【図８】
0005029426.tif 000009
【図９】
0005029426.tif 000010
【図１０】
0005029426.tif 000011
【図１１】
0005029426.tif 000012
【図１２】
0005029426.tif 000013
【図１３】
0005029426.tif 000014
【図１４】
0005029426.tif 000015
【図１５】
0005029426.tif 000016