(57)【要約】【課題】機器に関する情報を、情報処理装置を使用しているユーザのいずれかに確実に通知する。【解決手段】ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供できる情報処理装置において、情報処理装置の表示部を使用しているユーザセッションを特定し、当該ユーザセッションで、機器に関する情報を表示プログラムを起動させる。【選択図】　　　図４
2004094311.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置において、機器に関する情報をユーザに通知する通知方法であって、
機器に関する情報を取得する取得ステップと、
情報処理装置の表示部を使用しているユーザセッションを特定する特定ステップと、
前記取得ステップで取得された情報を表示するための表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させる起動ステップとを有することを特徴とする通知方法。
【請求項２】
表示プログラムから起動していることを示す存在情報を受信する受信ステップと、
前記存在情報に基づいて、表示プログラムが起動されているかどうかを判定する起動判定ステップと、
起動されていると判断されるのに応じて、前記取得ステップで取得された情報を、表示プログラムに送信する送信ステップとを有することを特徴とする請求項１に記載の通知方法。
【請求項３】
前記特定ステップで特定されたユーザセッションで、複数の表示プログラムが起動されている場合、複数の表示プログラムのいずれかを終了させるステップを有することを特徴とする請求項１或いは２に記載の通知方法。
【請求項４】
表示プログラムは、印刷装置に対して発行された印刷ジョブに関する情報、または前記印刷装置のステータスに関する情報を表示するプログラムであることを特徴とする請求項１乃至３のいずれかに記載の通知方法。
【請求項５】
表示プログラムが起動されているユーザセッションに対応するユーザを特定するユーザ特定ステップと、
前記ユーザ特定ステップで特定されたユーザの印刷ジョブが前記印刷装置に発行されているかどうかを判定する発行判定ステップとを有し、
発行されていないと判定されるのに応じて、表示プログラムを起動しないようにすることを特徴とする請求項４に記載の通知方法。
【請求項６】
前記取得ステップで取得された情報に基づいて、表示することが必要な情報であるかどうかを判定する必要判定ステップを有し、
表示することが必要な情報であると判定されるのに応じて、表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させることを特徴とする請求項１乃至５のいずれかに記載の通知方法。
【請求項７】
機器に関する情報を表示する条件及び表示しない条件が記述された条件情報を取得する条件取得ステップと、
前記条件情報と、前記取得ステップで取得された情報とに基づいて、機器に関する情報を表示する必要がある状態にあるかどうかを判定する状態判定ステップと、
前記状態にないと判定されるのに応じて、表示プログラムを終了させるステップとを有することを特徴とする請求項１乃至６のいずれかに記載の通知方法。
【請求項８】
機器に関する情報を表示する条件及び表示しない条件が記述された条件情報を取得する条件取得ステップと、
前記条件情報と、前記取得ステップで取得された情報とに基づいて、機器に関する情報を表示する必要があるかどうかを判定する必要判定ステップとを有し、必要がないと判定されるのに応じて、表示プログラムは、前記取得ステップで取得された情報を表示しないことを特徴とする請求項１乃至６のいずれかに記載の通知方法。
【請求項９】
ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置において、印刷装置に関する情報をユーザに通知する通知方法であって、
第１の情報処理装置で生成された印刷ジョブを第２の情報処理装置を介して印刷装置に転送するステップと、
印刷装置に関する情報を取得する取得ステップと、
前記取得ステップで取得された情報が、前記第２の情報処理装置の表示部に表示する必要がある情報であるかどうかを判定する判定ステップと、
表示する必要がある情報であると判定された場合、前記第２の情報処理装置の表示部を使用しているユーザセッションを特定する特定ステップと、
表示する必要がある情報であると判定された場合、前記取得ステップで取得された情報を表示するための表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させる起動ステップとを有することを特徴とする通知方法。
【請求項１０】
前記取得ステップで取得された情報を、前記第１の情報処理装置及び前記第２の情報処理装置で起動されている表示プログラムの少なくとも１つに送信する送信ステップとを有することを特徴とする請求項９に記載の通知方法。
【請求項１１】
ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置であって、
機器に関する情報を取得する取得手段と、
情報処理装置の表示部を使用しているユーザセッションを特定する特定手段と、
前記取得手段で取得された情報を表示するための表示プログラムを、前記特定手段で特定されたユーザセッションで起動させる起動手段とを有することを特徴とする情報処理装置。
【請求項１２】
ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能なコンピュータを制御するプログラムであって、
機器に関する情報を取得する取得ステップと、
コンピュータの表示部を使用しているユーザセッションを特定する特定ステップと、
前記取得ステップで取得された情報を表示するための表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させる起動ステップとをコンピュータに実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、適切なユーザに、機器に関する情報を、例えば印刷機器における印刷ジョブに関する情報やステータスに関する情報を、ユーザに通知するための通知方法及び情報処理装置に関するものである。
【０００２】
【従来の技術】
従来、印刷ジョブやプリンタのステータスに関する情報をユーザに通知する方法として、ジョブ管理アプリケーションプログラムや同等の機能を有するプリンタドライバプログラム（略して、プリンタドライバとも呼ぶ）がプリンタからのデータに基づいて、上記のような情報をユーザに通知していた。
【０００３】
しかし、ジョブ管理アプリケーションプログラムやプリンタドライバの場合には、ユーザが、情報を必要とする物理的なプリンタに対応するプリンタのアイコンを自分で選択して、その物理的なプリンタを明示的に指定することにより、上記のような情報を閲覧していた。そのため、ユーザが指定をしない限り、ユーザに情報を通知することができない。
【０００４】
そこで、自動的にユーザに情報を通知をすることができるように、所定の条件に応じて自動的にジョブ管理アプリケーションプログラムやプリンタドライバを起動することも考えられていた。
【０００５】
【発明が解決しようとする課題】
しかし、マルチユーザ環境下のコンピュータでは、ジョブ管理アプリケーションプログラムやプリンタドライバを自動的に起動する場合、以下のような課題があった。
【０００６】
マルチユーザ環境下のコンピュータでは、複数のユーザが同時にログオン（ログイン）しておくことができ、アプリケーションプログラム（略してアプリケーションとも呼ぶ）は複数のユーザセッションのそれぞれで起動可能である。ここで、ユーザセッションとは、あるユーザがコンピュータにログインしていることを示すものであり、当該ユーザは、自分に対応するユーザセッションで様々なアプリケーションを起動させることができる。
【０００７】
ディスプレイ上に様々な情報を表示できるユーザセッションはだた一つであって、これをアクティブセッションと呼ぶ。ディスプレイ上には、アクティブセッションで起動しているアプリケーションしか情報を表示することはできず、アクティブセッション以外のユーザセッションで起動されたアプリケーションは情報をディスプレイに表示することができない。
【０００８】
そのため、いずれかのユーザに情報を通知するためにジョブ管理アプリケーションが自動起動された場合でも、起動されたユーザセッションが非アクティブセッションであった場合には、情報がディスプレイに表示されず、いずれのユーザにも情報を通知することができない。よって、マルチユーザ環境下においても、適切なユーザに情報を通知できる仕組みが必要である。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明に係る通知方法は、ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置において、機器に関する情報をユーザに通知する通知方法であって、機器に関する情報を取得する取得ステップと、情報処理装置の表示部を使用しているユーザセッションを特定する特定ステップと、前記取得ステップで取得された情報を表示するための表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させる起動ステップとを有することを特徴とする。
【００１０】
また、表示プログラムから起動していることを示す存在情報を受信する受信ステップと、前記存在情報に基づいて、表示プログラムが起動されているかどうかを判定する起動判定ステップと、起動されていると判断されるのに応じて、前記取得ステップで取得された情報を、表示プログラムに送信する送信ステップとを有することを特徴とする。
【００１１】
また、前記特定ステップで特定されたユーザセッションで、複数の表示プログラムが起動されている場合、複数の表示プログラムのいずれかを終了させるステップを有することを特徴とする。
【００１２】
また、表示プログラムは、印刷装置に対して発行された印刷ジョブに関する情報、または前記印刷装置のステータスに関する情報を表示するプログラムであることを特徴とする。
【００１３】
また、表示プログラムが起動されているユーザセッションに対応するユーザを特定するユーザ特定ステップと、前記ユーザ特定ステップで特定されたユーザの印刷ジョブが前記印刷装置に発行されているかどうかを判定する発行判定ステップとを有し、発行されていないと判定されるのに応じて、表示プログラムを起動しないようにすることを特徴とする。
【００１４】
また、前記取得ステップで取得された情報に基づいて、表示することが必要な情報であるかどうかを判定する必要判定ステップを有し、表示することが必要な情報であると判定されるのに応じて、表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させることを特徴とする。
【００１５】
また、機器に関する情報を表示する条件及び表示しない条件が記述された条件情報を取得する条件取得ステップと、前記条件情報と、前記取得ステップで取得された情報とに基づいて、機器に関する情報を表示する必要がある状態にあるかどうかを判定する状態判定ステップと、前記状態にないと判定されるのに応じて、表示プログラムを終了させるステップとを有することを特徴とする。
【００１６】
また、機器に関する情報を表示する条件及び表示しない条件が記述された条件情報を取得する条件取得ステップと、前記条件情報と、前記取得ステップで取得された情報とに基づいて、機器に関する情報を表示する必要があるかどうかを判定する必要判定ステップとを有し、必要がないと判定されるのに応じて、表示プログラムは、前記取得ステップで取得された情報を表示しないことを特徴とする。
【００１７】
また、本発明に係る通知方法は、ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置において、印刷装置に関する情報をユーザに通知する通知方法であって、第１の情報処理装置で生成された印刷ジョブを第２の情報処理装置を介して印刷装置に転送するステップと、印刷装置に関する情報を取得する取得ステップと、前記取得ステップで取得された情報が、前記第２の情報処理装置の表示部に表示する必要がある情報であるかどうかを判定する判定ステップと、表示する必要がある情報であると判定された場合、前記第２の情報処理装置の表示部を使用しているユーザセッションを特定する特定ステップと、表示する必要がある情報であると判定された場合、前記取得ステップで取得された情報を表示するための表示プログラムを、前記特定ステップで特定されたユーザセッションで起動させる起動ステップとを有することを特徴とする。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明に係る実施形態を説明する。
【００１９】
図１は、マルチユーザ環境下にあるコンピュータを示すブロック図である。
【００２０】
コンピュータ１００は、ＰＣ、ワークステーション、情報携帯端末などの情報処理装置であり、以下の各部を有する。キーボード１１０及びマウス１１８は、ユーザが様々な情報を入力するための機器である。入力インタフェース１１１は、キーボード１１０やマウス１１８などの情報入力機器をバス１２０に接続するためのインターフェースである。
【００２１】
ディスプレイ１１７は、情報をユーザに表示するための表示機器であって、ＣＲＴや液晶表示装置などがある。出力インターフェース１１６は、ディスプレイ１１７をバス１２０に接続するためのインターフェースである。
【００２２】
プリンタ３００は、コンピュータ１００から送信される印刷データに基づいて記録媒体に印刷を行う印刷装置である。代表的なものとしては、レーザビームプリンタ、インクジェットプリンタなどがある。ただし、印刷装置に限定される必要はなく、複写機、複合機、ファクシミリなどの画像処理装置や、その他の外部装置であっても良い。入出力インターフェース１１９は、プリンタ３００等との接続を確立するためのインターフェースである。入出力インターフェース１１９は、ネットワークインターフェース、セントロインターフェース、パラレルインタフェース、ＵＳＢ、ＳＣＳＩ、ＩＥＥＥ１３９４、無線インタフェースなどが挙げられる。
【００２３】
ＲＯＭ１１３にはコンピュータの初期化プログラムが格納されている。外部記憶装置１１５には、下記に説明するオペレーティングシステムのプログラムやその他のアプリケーションプログラムが格納されている。ＲＡＭ１１４は、図柄情報記憶領域１１４ａ、印刷データ記憶領域１１４ｂ、プログラムロード領域１１４ｃを有する。ＣＰＵ１１２は、ＲＯＭ１１３、外部記憶装置１１５、ＲＡＭ１１４に格納されている様々なプログラムに従って、様々な情報処理を行い、上記各部を制御する。
【００２４】
図２は、コンピュータのマルチユーザ環境におけるソフトウェア階層を示す図である。マルチユーザ環境を提供する機能を有するオペレーティングシステム（略してＯＳとも呼ぶ）２００は、複数のユーザセッションを制御することができるプラットフォームである。各ユーザセッション２１０〜２３０では、ユーザが所望するアプリケーションが起動されている。
【００２５】
図２においては、ユーザセッション２１０では、アプリケーション２１１、アプリケーション２１２、ジョブ管理アプリケーション２１３が起動されている。ユーザセッション２２０では、アプリケーション２２１、アプリケーション２２２が起動されている。ユーザセッション２３０では、アプリケーション２３１が起動されている。
【００２６】
ＯＳサービス群とは、ＯＳが提供するサービスプログラム群である。これらは、ユーザセッションの数に関係なく、ＯＳに対して１つしか起動されておらず、またアクティブセッションがない場合でも起動されている。図２では、印刷サービス２０１とネットワークサービス２０２を代表として例示したが、その他のサービスも通常は存在する。
【００２７】
先に述べたように、ユーザセッションが３つ存在する場合でも、ディスプレイに情報を表示する機能を占有しているアクティブセッションは１つである。例えば、ユーザセッション２２０がアクティブセッションである場合には、デスクトップにはアプリケーション２２１と２２２としか見えず、アプリケーション２１１〜２１３及び２３１は見えない。
【００２８】
ここで、アプリケーション２１１又は２１２で印刷が実行されると、ジョブ管理アプリケーション２１３は、印刷サービスの一つであるプリンタドライバ２０３と連動して動作する。そして、ユーザセッション２１０がアクティブセッションである場合には、ジョブ管理アプリケーション２１３は印刷ジョブやプリンタのステータスに関する情報をディスプレイ上に表示することができるが、他のユーザセッションがアクティブセッションである場合には、それらの情報を表示することはできず、いずれのユーザもそれらの情報を確認することができない。
【００２９】
図３は、コンピュータ１００とプリンタ３００との間のデータの流れを示すブロック図である。コンピュータ１００において印刷アプリケーションプログラム３１１は、作画環境と印刷環境をユーザに提供し、印刷開始を命令するためのプログラムである。
【００３０】
印刷サービス２０１は、ＯＳが印刷サービスを提供するためのプログラム群であって、プリンタドライバなどを含む。印刷アプリケーションプログラム３１１から出力された図柄情報はここでプリンタコマンドに変換されて、印刷データが生成される。印刷データは、一定サイズの印刷データブロック単位でデータ送受信制御プログラム３１３に渡される。
【００３１】
データ送受信制御プログラム３１３は、受け取った印刷データブロックをインターフェース制御プログラム３１４を介して、プリンタ３００に送信する。また、送信するとともに、次の印刷データブロックを印刷サービス２０１の他のプログラムに要求する。インタフェース制御プログラム３１４は、入出力インターフェース１１９を管理するプログラムである。データ送受信制御プログラム３１３は、全ての印刷データブロックをプリンタ３００に転送するまでこの処理を継続し、一方で、インターフェース制御プログラム３１４を介してプリンタ３００のステータスに関する情報を取得する。
【００３２】
ジョブ管理アプリケーション３１２は、印刷ジョブやプリンタに関する情報を管理するアプリケーションである。メールスロット等の通信方法を用いてデータ送受信制御プログラム３１３と通信して、印刷ジョブやプリンタのステータスに関する情報を取得する。また、受け取った情報をユーザに報告し、ユーザからの指示をデータ送受信制御プログラム３１３に伝達する。
【００３３】
印刷サービス２０１のプログラム群は、ユーザセッションごとに別々に起動されず、アクティブセッションが存在しない場合でも起動されている。
【００３４】
本実施形態では、例としてホストコンピュータの処理の分担を上記のごとく示したが、これに限られるものではない。
【００３５】
一方、プリンタ３００は、インターフェース部３０１、ＲＡＭ３０２、ＲＯＭ３０３、ＣＰＵ３０４、プリンタエンジン３０５を有している。インターフェース部３０１は、外部との接続を確立するためのインターフェースである。ＲＯＭ３０２は制御プログラムを格納している。ＣＰＵ３０４は、ＲＯＭ３０２に格納されている制御プログラムに従ってプリンタ３００の各部を制御する。ＲＡＭ３０２は、ＣＰＵ３０４の主メモリとワークメモリとして用いられ、コンピュータ１００から送信されてきた印刷データを一旦保存するための受信バッファとしても使用される。プリンタエンジン３０５は、ＲＡＭ３０２に保存されたデータに基づき記録媒体に印刷を行うものである。
【００３６】
図４は、データ送受信制御プログラム３１３とジョブ管理アプリケーションとが実行する処理を示すフローチャートである。図４では、左側にデータ送受信制御プログラム３１３が実行する処理を示し、右側にジョブ管理アプリケーションの処理を示す。また、２重矢印は、データが転送されることを示している。
【００３７】
データ送受信制御プログラム３１３が印刷データブロックを受信すると（ステップＳ４０１）、アクティブセッション情報を取得して、現在アクティブセッションになっているユーザセッションを特定する（ステップＳ４０２）。アクティブセッションを特定する方法として、例えば、ＯＳのサービス群に含まれるマルチユーザ管理サービスに問い合わせる。
【００３８】
アクティブセッションが存在しない場合には、すなわちどのユーザもデスクトップを占有していない場合には、ステータス情報を表示する必要がないのでステップＳ４０５に進む。アクティブセッションが存在する場合には、アクティブセッションでジョブ管理アプリケーションを起動する（ステップＳ４０４）。
【００３９】
次に、インターフェース制御プログラム３１４を介してプリンタ３００のステータス情報（印刷ジョブに関する情報をも含む）を取得する（ステップＳ４０５）。
【００４０】
データ送受信制御プログラム３１３は、上記の一連の動作と並行してジョブ管理アプリケーションからのメッセージ（４５１）を受信して、ジョブ管理アプリケーションが起動しているかどうかを既に確認している。そこで、ジョブ管理アプリケーションが起動しているかどうかを判断し（ステップＳ４０６）、起動していなければステップＳ４０８に進む。ジョブ管理アプリケーションが起動している場合には、取得したステータス情報をメッセージ（４５２）としてジョブ管理アプリケーションに送信する（ステップＳ４０７）。
【００４１】
次に、印刷データブロックをプリンタ３００に送信する処理を行う（ステップＳ４０９）。この後、印刷データを全て受信したかどうか、つまり印刷が終了したかどうかを判断して（ステップＳ４０９）、印刷が終了していない場合には、ステップＳ４０１に進む。印刷が終了した場合には、終了命令を示すメッセージ（４５３）をジョブ管理アプリケーションに伝送する（ステップＳ４１０）。
【００４２】
一方、ステップＳ４０４で起動されたジョブ管理アプリケーションはまず、同じユーザセクションで他のジョブ管理アプリケーションが既に起動されているかどうかを確認する（ステップＳ４１１）。そして、他のジョブ管理アプリケーションが起動している場合には、当該ジョブ管理アプリケーションに終了通知を行う（ステップＳ４１２）。
【００４３】
ここでは、ジョブ管理アプリケーションの排他制御を行うために、終了通知（終了メッセージの通知）を行うこととしたが、セマフォ等を使用して排他制御を行うことも考えられる。また、ここでは、先に起動しているジョブ管理アプリケーションを終了するようにしたが、他のジョブ管理アプリケーションが起動している場合には、後から起動されたジョブ管理アプリケーションを終了させたり、後からはジョブ管理アプリケーションを起動しないようにしても良い。また、データ送受信制御プログラム３１３がいずれかのジョブ管理アプリケーションを終了させるように制御しても良い。
【００４４】
次に、他のジョブ管理アプリケーションから終了通知を受信していないかどうかを確認し（ステップＳ４１３）、受信している場合には、処理を終了する。
【００４５】
他のジョブ管理アプリケーションから終了通知を受けていない場合には、自分が起動していることをデータ送受信制御プログラム３１３に伝えるために、存在していることを示すメッセージをデータ送受信制御プログラム３１３に送信する（ステップＳ４１４）。
【００４６】
その後、メッセージがデータ送受信制御プログラム３１３から送信されているかどうかを判断し（ステップＳ４１５）、メッセージがない場合にはステップＳ４１３に戻り、終了命令を示すメッセージが送信されている場合には処理を終了し、終了命令を示すメッセージではなくてステータス情報を示すメッセージが送信されている場合には、プリンタのステータスに関する情報や印刷ジョブに関する情報をディスレプイに表示する（ステップＳ４１７）。
【００４７】
これにより、プリンタのステータスに関する情報や印刷ジョブに関する情報が、アクティブセッションで起動されているジョブ管理アプリケーションによってディスプレイに表示されるため、必要な情報をいずれかのユーザに確実に通知することができる。
【００４８】
また、アクティブセッションがない場合には、ジョブ管理アプリケーションを不用意に起動しないため、システムのリソース、例えばＣＰＵの処理リソースやメモリリソースを無駄にすることがなくなる。
【００４９】
また、印刷が終了した際には終了通知をジョブ管理アプリケーションに対して行っているため、ジョブ管理アプリケーションを自動的に終了させることができる。
【００５０】
また、複数のジョブ管理アプリケーションを不用意に起動させることがないため、システムリソースを無駄にすることがなくなる。
【００５１】
次に、印刷を指示したユーザに対して、印刷ジョブやプリンタのステータスに関する情報を通知する方法を説明する。これにより、複数のユーザがコンピュータにログインしている場合、印刷ジョブやプリンタのステータスに関する情報を必要とするユーザは、印刷を行ったユーザであるので、印刷を行っていないユーザに不必要に情報を通知するのを防止する。
【００５２】
図５は、図２の状況に対して、さらにジョブ管理アプリケーション２３２が起動されていることを示す図である。図５では、複数のユーザセッションのそれぞれでジョブ管理アプリケーションが起動されている。なお、複数のジョブ管理アプリケーションは、同じプログラムコードに基づいて別のプロセスで起動されていても良い。
【００５３】
さらに、図６は、プリンタ３００に対応する印刷キューを示す概略図である。印刷キューには、印刷キューに対応するプリンタに発行された印刷ジョブが投入されており、図６の印刷キューには、ユーザＡの印刷ジョブとして、印刷ジョブ１と印刷ジョブ２とが投入されており、ユーザＣの印刷ジョブとして、印刷ジョブ３が投入されている。
【００５４】
図７は、印刷を指示したユーザに対応するユーザセッションで印刷管理アプリケーションを起動するためのジョブ管理アプリケーションの処理を示すフローチャートである。なお、図７は、図４のフローチャートに対してステップＳ７０１〜Ｓ７０３を追加したものである。そのため、その他のステップは、図４の対応するステップと同じである。
【００５５】
図７では、ジョブ管理アプリケーションは起動した後、自身が起動しているユーザセッションに対応するユーザ名をＯＳに問い合わせる（ステップＳ７０１）。そのあと、印刷サービスから、図６に示すような印刷キューに関する情報を取得する（ステップＳ７０２）。
【００５６】
そして、ステップＳ７０１で取得したユーザ名と、ステップＳ７０２で取得した印刷キューに関する情報とを比較して、自分を起動したユーザの印刷ジョブが印刷キューに投入されているかどうかを判断する（ステップＳ７０３）。投入されていない場合には、処理を終了し、投入されている場合には、ステップＳ４１３に進む。
【００５７】
これにより、印刷を行ったユーザに対しては、印刷ジョブに関する情報やステータスに関する情報を通知し、印刷を行っていないユーザに対して、不必要に情報を通知しないようにできる。
【００５８】
次に、印刷が正常に行われている場合にはステータス情報を通知しないが、エラー発生時にはステータス情報（この場合の多くは、エラー情報）を通知する方法を説明する。
【００５９】
図８は、サーバクライアント方式のシステムであって、ユーザがクライアントコンピュータ上で印刷を指示する場合のシステムを示すブロック図である。特に、ユーザがクライアントコンピュータから印刷を指示した場合には、印刷ジョブやステータスに関する情報をサーバコンピュータのディスプレイに表示する必要はない。が、エラー情報はサーバコンピュータのディスプレイに表示していずれかのユーザに通知する必要がある。
【００６０】
よって、印刷が正常に行われている場合にはステータス情報を通知しないが、エラー発生時にはステータス情報（この場合の多くは、エラー情報）を通知する方法を、図８のシステムを前提に説明するが、図１のシステムでも同様の処理を行うことができる。
【００６１】
図８では、クライアントコンピュータ８１０、サーバコンピュータ８２０、プリンタ３００がそれぞれ通信可能に接続されている。クライアントコンピュータ８１０とサーバコンピュータ８２０は、図１で示したコンピュータと同等である。また、印刷アプリケーションプログラム８１１は印刷アプリケーションプログラム３１１と同等であり、印刷サービス８１２及び８２２は印刷サービス２０１と同等であり、データ送受信制御プログラム８１３と８２３はデータ送受信制御プログラム３１３と同等であり、ジョブ管理アプリケーション８１４及び８２４はジョブ管理アプリケーション３１２と同等であり、インターフェース制御プログラム８２１はインターフェース制御プログラム３１４と同等である。また、ネットワーク制御プログラム８１５及び８２５は、ネットワークとの接続を確立するためのプログラムである。
【００６２】
ユーザが印刷アプリケーションプログラム８１１で印刷を指示した場合、印刷サービス８１２で作成された印刷データは、ネットワーク制御プログラム８１５及び８２５を介して印刷サービス８２２に送信される。そして、データ送受信制御プログラム８２３は、印刷サービス８２２で生成された印刷データブロックをインターフェース制御プログラム８２１を介してプリンタ３００に送信する。
【００６３】
ジョブ管理アプリケーション８１４は、ネットワーク制御プログラム８１５及び８２５を介して、データ送受信制御プログラム８２３と通信可能である。
【００６４】
サーバコンピュータ８２０は、さらに、データベース８２６を有している。データベース８２６は、ユーザ情報を格納するデータベースであり、ユーザ情報にはプリンタの管理者権限等が記載されている。
【００６５】
図９は、データ送受信制御プログラム８２３が実行する処理を示すフローチャートである。データ送受信制御プログラム３１３が印刷データブロックを受信すると（ステップＳ９０１）、印刷がネットワーク印刷かローカル印刷かを判断する（ステップＳ９０２）。
【００６６】
ネットワーク印刷とは、印刷データがネットワークを介して転送されてきたものであり、ローカル印刷とは、印刷データがコンピュータ内で生成されたものである。
【００６７】
印刷がネットワーク印刷であるかローカル印刷であるかを判断するために、印刷データにコンピュータ名を付加することが考えられる。図１０は、コンピュータ名が付加された印刷データを示す図である。データ送受信制御プログラム８２３は、印刷データを解析して、コンピュータ名を取得する。さらに、ＯＳからもコンピュータ名を取得する。そして、両者を比較し、一致しなければ、ネットワーク印刷であると判断し、一致すれば、ローカル印刷であると判断する。
【００６８】
ローカル印刷である場合には、図４のステップＳ４０１に進む。ネットワーク印刷である場合には、ステップ９０３に進む。
【００６９】
次に、インターフェース制御プログラム８２１を介してプリンタ３００のステータス情報（印刷ジョブに関する情報をも含む）を取得する（ステップＳ９０３）。そして、取得したステータス情報がサーバコンピュータ上に表示すべき情報であるかどうかを判断する（ステップＳ９０４）。
【００７０】
表示すべき情報である場合には、ステップＳ９０４に進む。そして、アクティブセッション情報を取得して、現在アクティブセッションになっているユーザセッションがあるかどうかを判断する（ステップＳ９０５）。アクティブセッションがある場合には、アクティブセッションで印刷ジョブ管理アプリケーションプログラムを起動する。
【００７１】
これにより、サーバコンピュータを使用しているユーザのいずれかにプリンタのステータス、特にプリンタのエラーを通知できるようにする。サーバコンピュータがネットワーク管理者によって管理されている場合には、ネットワーク管理者にエラーを通知することができる。また、サーバコンピュータがプリンタ３００のそばにある場合には、プリンタ３００のそばにいるユーザにエラーを通知することができる。
【００７２】
そして、データ送受信制御プログラム８２３は、ジョブ管理アプリケーションが起動しているかどうかを判断する（ステップＳ９０７）ジョブ管理アプリケーションが起動している場合には、取得したステータス情報をメッセージとしてジョブ管理アプリケーションに送信する（ステップＳ４０７）。図８では、ジョブ管理アプリケーション８１４及び８２４にメッセージを送信する。なお、メッセージを送信する場合には、いずれのコンピュータのジョブ管理アプリケーションであるかを特定するために、コンピュータ名をも送信する必要がある。
【００７３】
次に、印刷データブロックをプリンタ３００に送信する処理を行う（ステップＳ９０９）。この後、印刷データを全て受信したかどうか、つまり印刷が終了したかどうかを判断する（ステップＳ９１０）。また、ジョブ管理アプリケーションが起動されているかどうかを判断し（ステップＳ９１１）、起動されている場合には、終了命令を示すメッセージをジョブ管理アプリケーションに伝送する（ステップＳ９１２）。
【００７４】
次に、複数のユーザが存在する場合、印刷ジョブやステータスに関する情報を必要とするユーザと必要としないユーザとが存在する。よって、情報の通知／非通知をユーザ毎に切り換える方法を説明する。
【００７５】
図１１は、情報の通知／非通知をユーザ毎に切り換えることができるコンピュータのブロック図である。図１１は、図４にユーザ情報ファイル１１０４を追加したものである。また、ジョブ管理アプリケーション１１０２は、図４のフローチャートが示す処理に代えて、図１４のフローチャートが示す処理を実行する。また、データ送受信制御プログラム１１０３は、図４のフローチャートが示す処理を実行するとともに、常駐時には、図１３のフローチャートが示す処理を実行する。
【００７６】
図１２は、ユーザ情報ファイルの一例を示す図である。ユーザ情報ファイルでは、項目「自印刷時」は、ユーザの印刷ジョブが印刷キューにあるときに情報を通知するか否かを示すものである。項目「他印刷時」は、他のユーザの印刷ジョブが印刷キューにあるときに情報を通知するか否かを示すものである。項目「非印刷時」は、どのユーザの印刷ジョブもないときに情報を通知するか否かを示すものである。項目「エラー発生時」は、エラーが発生したときに情報を通知するか否かを示すものである。
【００７７】
図１２では、Ａｄｍｉｎｉｓｔｒａｔｏｒｓグループに属するユーザに対しては、印刷ジョブがあるなしに関わらず、情報を通知するよう設定されている。Ｇｕｅｓｔｓに属するユーザに対しては、自分の印刷ジョブがある場合に限り、情報を通知するように設定されている。さらに、Ａｄｍｉｎｉｓｔｒａｔｏｒｓグループに属するユーザａｄｍｉｎＡに対しては、自分の印刷ジョブがある場合と、エラーが発生した場合とに限り、情報を通知するように設定されている。
【００７８】
データ送受信制御プログラム１１０３及びジョブ管理アプリケーション１１０２はこのユーザ情報ファイルを参照する。なお、ユーザ情報ファイルは、データ送受信制御プログラム１１０３、ジョブ管理アプリケーション１１０２、ＯＳに含まれるでーたであってもよい。
【００７９】
図１３は、常駐時に、データ送受信制御プログラム１１０３が実行する処理を示すフローチャートである。
【００８０】
まず、データ送受信制御プログラム１１０３が、インターフェース制御プログラム３１４を介してプリンタ３００のステータス情報（印刷ジョブに関する情報をも含む）を取得する（ステップＳ１３０１）。
【００８１】
つぎに、アクティブセッション情報を取得して、現在アクティブセッションになっているユーザセッションがあるかどうかを判断する（ステップＳ１３０２）。アクティブセッションが存在しない場合には、ステータス情報を表示する必要がないのでステップＳ１３０１に進む。アクティブセッションが存在する場合には、アクティブセッションでジョブ管理アプリケーションを起動する（ステップＳ１３０３）。
【００８２】
データ送受信制御プログラム１１０３は、上記の一連の動作と並行してジョブ管理アプリケーションからのメッセージを受信して、ジョブ管理アプリケーションが起動しているかどうかを既に確認している。そこで、ジョブ管理アプリケーションが起動しているかどうかを判断し（ステップＳ１３０４）、起動していなければステップＳ１３０１に進む。ジョブ管理アプリケーションが起動している場合には、取得したステータス情報をメッセージとして、起動しているすべてのジョブ管理アプリケーションに送信する（ステップＳ１３０５）。
【００８３】
図１４は、ジョブ管理アプリケーション１１０２が実行する処理を示すフローチャートである。
【００８４】
まず、同じユーザセクションで他のジョブ管理アプリケーションが既に起動されているかどうかを確認する（ステップＳ１４０１）。そして、他のジョブ管理アプリケーションが起動している場合には、当該ジョブ管理アプリケーションに終了通知を行う（ステップＳ１４０２）。
【００８５】
次に、自身が起動されているユーザセッションに対応するユーザ名を取得する（ステップＳ１４０３）。そして、ユーザが終了を指示しているかどうかを判断し（ステップＳ１４０４）、終了を指示している場合には、ユーザ情報ファイルにおいて、取得したユーザ名に対応する欄の「非印刷時」の項目に「非通知」を記録する。
【００８６】
つぎに、他のジョブ管理アプリケーションから終了通知を受けているかどうかを判断する（ステップＳ１４０６）。受けていない場合には、ユーザ情報ファイルから、取得したユーザに対応する欄の通知条件を取得し（ステップＳ１４０７）、さらに、印刷キューに関する情報を取得する（ステップＳ１４０８）。
【００８７】
ステップＳ１４０７とステップＳ１４０８とで取得した情報に基づいて、ステータス情報を通知すべき状態にあるかどうかを判断する（ステップＳ１４０９）。通知すべき状態にない場合には処理を終了する。
【００８８】
一方、ステータスを通知すべき状態にある場合には、自分が起動していることをデータ送受信制御プログラム１１０３に伝えるために、存在していることを示すメッセージをデータ送受信制御プログラム１１０３に送信する（ステップＳ１４１０）。
【００８９】
その後、メッセージがデータ送受信制御プログラム３１３から送信されているかどうかを判断し（ステップＳ１４１１）、メッセージがない場合にはステップＳ１４０４に戻る。
【００９０】
メッセージが送信されている場合には、印刷キューの情報、メッセージが示すステータス情報、ユーザ情報ファイルの通知条件に基づいて、ステータスを表示すべきかどうかを判断する（ステップＳ１４１２）。表示が必要である場合には、プリンタのステータスに関する情報や印刷ジョブに関する情報をディスレプイに表示する（ステップＳ４１７）。
【００９１】
これにより、情報の通知／非通知をユーザ毎に切り換えることができる。情報の通知／非通知を設定された条件に応じて切り換えることができる。また、その条件をユーザの要望に応じて変更することができる。
【００９２】
【発明の効果】
上記説明したように、本願発明によれば、ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置において、情報処理装置の表示部を使用しているユーザセッションを特定し、当該ユーザセッションで、機器に関する情報を表示プログラムを起動させることにより、機器に関する必要な情報をいずれかのユーザに確実に通知することができる。
【００９３】
また、特定されたユーザセッションで、複数の表示プログラムが起動されている場合、複数の表示プログラムのいずれかを終了させることにより、プログラムを不用意に起動することを防止し、システムのリソース、例えばＣＰＵの処理リソースやメモリリソースを、無駄にしないようにできる。
【００９４】
表示プログラムが、印刷装置に対して発行された印刷ジョブに関する情報、または前記印刷装置のステータスに関する情報を表示するプログラムであることにより、機器に関する情報を詳細に確認する手段を有しておらず、情報処理装置でのプログラムでしか詳細を確認することができない機器であっても、いずれかのユーザに確実に情報を伝えることができる。
【００９５】
表示プログラムが起動されているユーザセッションに対応するユーザを特定し、当該ユーザの印刷ジョブが前記印刷装置に発行されているかどうかを判定することにより、印刷を行っていないユーザに不必要に情報を通知するのを防止し、印刷を行ったユーザに対しては、印刷ジョブに関する情報やステータスに関する情報を通知し、印刷を行っていないユーザに対して、不必要に情報を通知しないようにできる。
【００９６】
また、設定された条件情報と、取得された情報とに基づいて、機器に関する情報を表示する必要がある状態にあるかどうかを判定することにより、或いは、設定された条件情報と、取得された情報とに基づいて、機器に関する情報を表示する必要があるかどうかを判定することにより、情報の通知／非通知をユーザ毎に切り換えることができる。情報の通知／非通知を設定された条件に応じて切り換えることができる。また、その条件をユーザの要望に応じて変更することができる。
【００９７】
また、ユーザが所望するプログラムを起動させることができる環境をユーザセッションとして複数のユーザのそれぞれに対して同時に提供することが可能な情報処理装置を使って、第１の情報処理装置で生成された印刷ジョブを第２の情報処理装置を介して印刷装置に転送する場合に、印刷装置に関する情報が第２の情報処理装置の表示部に表示する必要がある情報であるかどうかを判定し、表示する必要がある情報であると判定された場合、第２の情報処理装置の表示部を使用しているユーザセッションで、表示プログラムを起動させることにより、第２の情報処理装置を使用しているユーザのいずれかに印刷装置に関する情報、特に印刷装置のエラーを通知できる。そして、第２の情報処理装置がネットワーク管理者によって管理されている場合には、ネットワーク管理者にエラーを通知することができる。また、第２の情報処理装置が印刷装置のそばにある場合には、印刷装置のそばにいるユーザにエラーを通知することができる。
【図面の簡単な説明】
【図１】マルチユーザ環境下にあるコンピュータを示すブロック図である。
【図２】コンピュータのマルチユーザ環境におけるソフトウェア階層を示す図である。
【図３】コンピュータとプリンタとの間のデータの流れを示すブロック図である。
【図４】データ送受信制御プログラムとジョブ管理アプリケーションとが実行する処理を示すフローチャートである。
【図５】コンピュータのマルチユーザ環境におけるソフトウェア階層を示す図である。
【図６】プリンタに対応する印刷キューを示す概略図である。
【図７】ジョブ管理アプリケーションの処理を示すフローチャートである。
【図８】コンピュータとプリンタとの間のデータの流れを示すブロック図である。
【図９】データ送受信制御プログラムが実行する処理を示すフローチャートである。
【図１０】コンピュータ名が付加された印刷データを示す図である。
【図１１】コンピュータのブロック図である。
【図１２】ユーザ情報ファイルの一例を示す図である。
【図１３】データ送受信制御プログラムが実行する処理を示すフローチャートである。
【図１４】ジョブ管理アプリケーションが実行する処理を示すフローチャートである。
【符号の説明】
２００　オペレーティングシステム
２０１　印刷サービス
２０２　ネットワークサービス
２０３　プリンタドライバ
２１０　ユーザセッション
２１１　アプリケーション
２１２　アプリケーション
２１３　ジョブ管理アプリケーション
２２０　ユーザセッション
２２１　アプリケーション
２２２　アプリケーション
２３０　ユーザセッション
２３１　アプリケーション
【図１】
2004094311.tif 000003
【図２】
2004094311.tif 000004
【図３】
2004094311.tif 000005
【図４】
2004094311.tif 000006
【図５】
2004094311.tif 000007
【図６】
2004094311.tif 000008
【図７】
2004094311.tif 000009
【図８】
2004094311.tif 000010
【図９】
2004094311.tif 000011
【図１０】
2004094311.tif 000012
【図１１】
2004094311.tif 000013
【図１２】
2004094311.tif 000014
【図１３】
2004094311.tif 000015
【図１４】
2004094311.tif 000016