(57)【特許請求の範囲】
【請求項１】
印刷の条件を含む属性情報と、印刷対象のデータと、を含む印刷ジョブを記憶する印刷ジョブ記憶部に前記印刷ジョブが登録されたか否かを検知する検知部と、
前記検知部により前記印刷ジョブの登録が検知された場合、印刷を要求したユーザを識別するユーザ情報を特定する特定部と、
ログイン中の複数のユーザと１対１に対応する複数のユーザプロセスのうち、前記特定部により特定された前記ユーザ情報に対応する前記ユーザプロセスに対して、前記ユーザプロセスが実行する処理に必要な情報を提供する提供部と、を備える、
情報処理装置。
【請求項２】
前記提供部は、
前記特定部により特定された前記ユーザ情報に対応する前記ユーザプロセスに対して、印刷要求を受け付けたことを示す印刷要求通知を通知するための制御を行う印刷要求通知制御部を有し、
前記ユーザプロセスは、
前記印刷要求通知を検知する印刷要求通知検知部と、
前記印刷要求通知検知部により前記印刷要求通知が検知された場合、前記処理に必要な情報を受け入れるための処理用中間媒体を生成する生成部と、
前記処理用中間媒体の所在を特定可能な特定情報を示す特定情報通知を、前記提供部へ通知するための制御を行う特定情報通知制御部と、
前記処理用中間媒体に格納された前記処理に必要な情報を用いて前記処理を実行する処理部と、を有する、
請求項１に記載の情報処理装置。
【請求項３】
前記提供部は、
前記特定情報通知を検知する特定情報通知検知部と、
前記特定情報通知検知部により前記特定情報通知が検知された場合、前記特定情報通知が示す前記特定情報により特定される前記処理用中間媒体に、前記処理に必要な情報を書き込む書き込み部と、を有する、
請求項２に記載の情報処理装置。
【請求項４】
前記ユーザプロセスは、
前記ユーザ情報を含み、かつ、前記印刷要求通知および前記特定情報通知の通信に用いる要求管理用中間媒体を有し、
前記印刷要求通知検知部は、
前記要求管理用中間媒体に前記印刷要求通知が書き込まれたか否かを検知することで、前記印刷要求通知を検知し、
前記特定情報通知制御部は、
前記特定情報通知を前記提供部へ通知するための制御として、前記要求管理用中間媒体に前記特定情報通知を書き込む制御を行う、
請求項３に記載の情報処理装置。
【請求項５】
前記提供部の印刷要求通知制御部は、前記ユーザプロセスに対して前記印刷要求通知を通知するための制御として、前記特定部により特定された前記ユーザ情報に対応する前記ユーザプロセスが有する前記要求管理用中間媒体に前記印刷要求通知を書き込む制御を行い、
前記提供部の前記特定情報通知検知部は、前記要求管理用中間媒体に前記特定情報が書き込まれたか否かを検知することで、前記特定情報通知を検知する、
請求項４に記載の情報処理装置。
【請求項６】
前記要求管理用中間媒体および前記処理用中間媒体は、名前付きパイプである、
請求項４または５に記載の情報処理装置。
【請求項７】
前記提供部の前記書き込み部は、前記処理に必要な情報として、前記印刷ジョブに含まれる前記属性情報を前記処理用中間媒体に書き込む、
請求項３乃至６のうちの何れか１項に記載の情報処理装置。
【請求項８】
前記ユーザプロセスの前記処理部は、前記処理用中間媒体に格納された前記属性情報と、予め定められたルールとに基づいて、対応する前記処理を実行する、
請求項７に記載の情報処理装置。
【請求項９】
印刷の条件を含む属性情報と、印刷対象のデータと、を含む印刷ジョブを記憶する印刷ジョブ記憶部に前記印刷ジョブが登録されたか否かを検知する検知ステップと、
前記検知ステップにより前記印刷ジョブの登録が検知された場合、印刷を要求したユーザを識別するユーザ情報を特定する特定ステップと、
ログイン中の複数のユーザと１対１に対応する複数のユーザプロセスのうち、前記特定ステップにより特定された前記ユーザ情報に対応する前記ユーザプロセスに対して、前記ユーザプロセスが実行する処理に必要な情報を提供する提供ステップと、を含む、
情報処理方法。
【請求項１０】
コンピュータに、
印刷の条件を含む属性情報と、印刷対象のデータと、を含む印刷ジョブを記憶する印刷ジョブ記憶部に前記印刷ジョブが登録されたか否かを検知する検知ステップと、
前記検知ステップにより前記印刷ジョブの登録が検知された場合、印刷を要求したユーザを識別するユーザ情報を特定する特定ステップと、
ログイン中の複数のユーザと１対１に対応する複数のユーザプロセスのうち、前記特定ステップにより特定された前記ユーザ情報に対応する前記ユーザプロセスに対して、前記ユーザプロセスが実行する処理に必要な情報を提供する提供ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、所定の条件に従ってプリントジョブを画像形成装置に振り分けるシステムが知られている（例えば特許文献１）。このようなシステムでは、ユーザがクライアント端末においてプリントジョブの印刷要求を行うと、クライアント端末において、プリントジョブが予め設定しておいた条件を満たすか否かを判定し、満たした条件の内容に応じて決定される印刷先の画像形成装置に、このプリントジョブの印刷を実行させる、という機能が実現される。また、プリントジョブが特定の条件を満たす場合に、ユーザに再度印刷を実行するか否かの確認を行わせるための確認画面を表示させる、といったことも可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記のようなシステムで、ログインしている（システムを使用する権限を有すると認められた）ユーザの操作画面上に、確認を受け付けるためのＵＩを表示させたい場合や、ユーザの個別の設定値を反映させたい場合がある。この機能は、ログインしているユーザのセッションで動作するユーザプロセスにより提供する必要があるが、複数のユーザが同時にログインしている場合は、システムに共通のサービスとして動作するコンポーネント（サービスプロセス）から、同時にログインしている複数のユーザと１対１に対応する複数のユーザプロセスの各々へ適切に処理を振り分ける必要がある。しかしながら、従来においては、サービスプロセスとユーザプロセスとが連携して、効率的にジョブの実行を制御するような仕組みは提供されていなかった。
【課題を解決するための手段】
【０００４】
上述した課題を解決し、目的を達成するために、本発明は、印刷の条件を含む属性情報と、印刷対象のデータと、を含む印刷ジョブを記憶する印刷ジョブ記憶部に前記印刷ジョブが登録されたか否かを検知する検知部と、前記検知部により前記印刷ジョブの登録が検知された場合、印刷を要求したユーザを識別するユーザ情報を特定する特定部と、ログイン中の複数のユーザと１対１に対応する複数のユーザプロセスのうち、前記特定部により特定された前記ユーザ情報に対応する前記ユーザプロセスに対して、前記ユーザプロセスが実行する処理に必要な情報を提供する提供部と、を備える情報処理装置である。
【発明の効果】
【０００５】
本発明によれば、サービスプロセスから、ユーザプロセスへ適切に処理を振り分け、制御することができる。
【図面の簡単な説明】
【０００６】
【図１】図１は、情報処理システムの構成の一例を示す図である。
【図２】図２は、クライアント端末のハードウェア構成の一例を示す図である。
【図３】図３は、クライアント端末が有する機能の一例を示す図である。
【図４】図４は、サービスプロセスおよびユーザプロセスの起動手順の一例を示すフロー図である。
【図５】図５は、クライアント端末のＯＳ上で動作するプログラムの状態を示す図である。
【図６】図６は、クライアント端末のＯＳ上で動作するプログラムの状態を示す図である。
【図７】図７は、クライアント端末のＯＳ上で動作するプログラムの状態を示す図である。
【図８】図８は、クライアント端末の動作例を示すフローチャートである。
【図９】図９は、ルールベース印刷サービスコンポーネントの印刷要求通知制御部および特定情報通知検知部の動作例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、本発明に係る情報処理装置、情報処理方法およびプログラムの実施形態を詳細に説明する。
【０００８】
図１は、本実施形態の情報処理システム１００の構成の一例を示す図である。図１に示すように、情報処理システム１００は、クライアント端末１０と、１以上のプリンタ２０と、を備えた印刷システムであり、これらは、有線または無線などで接続される。例えばインターネットなどのネットワークを介して接続される形態であってもよい。この情報処理システム１００では、クライアント端末１０は、ユーザの操作に応じて、印刷の実行を命令する印刷ジョブを生成し、その生成した印刷ジョブを、出力先として設定された何れかのプリンタ２０へ送信する。そして、印刷ジョブを受信したプリンタ２０は、その受信した印刷ジョブに基づく印刷を実行する。
【０００９】
クライアント端末１０は、ユーザが利用するＰＣ（Personal  Computer）等の情報処理装置である。なお、クライアント端末１０は、据置型の形態に限らず、例えば携帯型の形態（例えばスマートフォンやタブレットなどの形態）であってもよい。この例では、クライアント端末１０は、請求項の「情報処理装置」に対応している。
【００１０】
図１の例では、クライアント端末１０のオペレーティングシステム（ＯＳ）上で動作するプログラムとして、ＷｏｒｄやＥｘｃｅｌなどのユーザの操作に応じて印刷ジョブを作成するための印刷アプリケーション１０１、印刷アプリケーション１０１によって作成された印刷ジョブをプリンタ２０が印刷可能な形式に変換するためのプリンタドライバ１０２、複数のユーザと１対１に対応し、それぞれがユーザのセッションで動作する複数のユーザプロセス１０３、および、システムに共通のサービスとして動作するサービスプロセス１０４などが存在している。サービスプロセス１０４には、プリンタドライバ１０２によって変換された印刷ジョブを一時的に保存し、順次に実行していくためのスプーラ（Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ）、後述のキュー監視コンポーネント１１０、および、後述のルールベース印刷サービスコンポーネント１２０などが含まれる。なお、上述の印刷ジョブは、出力先のプリンタ２０を指定する情報、印刷条件、印刷を要求したユーザを識別するユーザ情報などを含む属性情報と、印刷対象のデータ（描画データ）とを含む。また、この例では、ＯＳは各ユーザを認証する機能を有している。
【００１１】
図１の例では、印刷アプリケーション１０１、プリンタドライバ１０２、複数のユーザプロセス１０３は、クライアント端末１０のハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェアである。また、サービスプロセス１０４は、クライアント端末１０のハードウェアを管理、制御するなど、クライアント端末１０の稼動や使用そのものをサポートするためのシステムソフトウェアである。
【００１２】
図２は、クライアント端末１０のハードウェア構成の一例を示す図である。図２に示すように、クライアント端末１０は、ＣＰＵ５０１、ＲＯＭ５０２、ＨＤＤ５０３、ＲＡＭ５０４、入力装置５０５、表示装置５０６、外部Ｉ／Ｆ５０７、通信Ｉ／Ｆ５０８などを備え、それぞれがバスＢで相互に接続されている。
【００１３】
ＣＰＵ５０１は、ＲＯＭ５０２やＨＤＤ５０３などの記憶装置からプログラムやデータをＲＡＭ５０４上に読み出し、処理を実行することで、クライアント端末１０全体の制御や各種の機能を実現する演算装置である。
【００１４】
ＲＯＭ５０２は、電源を切っても（クライアント端末１０に対する電力供給が遮断されても）プログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）の一例である。ＲＯＭ５０２には、クライアント端末１０の起動時に実行されるＢＩＯＳ、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。
【００１５】
ＨＤＤ５０３は、プログラムやデータを格納する不揮発性の記憶装置の一例である。ＨＤＤ５０３には、クライアント端末１０全体を制御する基本ソフトウェアであるＯＳ、及びＯＳ上において各種機能を提供するアプリケーションソフトウェア（以下、単に「アプリケーション」と称する）などがある。なお、クライアント端末１０は、ＨＤＤ５０３に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであってもよい。
【００１６】
ＲＡＭ５０４は、プログラムやデータを一時保存する揮発性の記憶装置の一例であり、ＣＰＵ５０１が実行する処理の作業領域（ワークエリア）として機能する。
【００１７】
入力装置５０５は、ユーザが各種の操作信号を入力するのに用いられるデバイスであり、例えばキーボードやマウス、タッチパネルなどで構成され得る。表示装置５０６は、各種の情報（例えばクライアント端末１０による処理の結果等）を表示するデバイスであり、例えば液晶型のディスプレイ装置で構成され得る。なお、例えばタッチパネルなどのように、入力装置５０５と表示装置５０６とが一体で構成される形態であってもよい。また、入力装置５０５および表示装置５０６は必要なときに接続して利用する形態であってもよい。
【００１８】
外部Ｉ／Ｆ５０７は、外部装置とのインタフェースである。図２の例では、外部装置の一例として、記録媒体５１０を挙げているが、これに限られるものではない。クライアント端末１０は、外部Ｉ／Ｆ５０７を介して、記録媒体５１０からのデータの読み出しまたは記録媒体５１０に対するデータの書き込みを行うことができる。記録媒体５１０の一例として、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリなどが挙げられる。
【００１９】
通信Ｉ／Ｆ５０８は、プリンタ２０と通信するためのインタフェースである。例えばクライアント端末１０とプリンタ２０が、インターネットなどのネットワークを介して通信する形態であれば、通信Ｉ／Ｆ５０８は、クライアント端末１０をネットワークに接続するためのインタフェースである。
【００２０】
図３は、クライアント端末１０に実装される本発明に係るアプリケーションプログラムが有する機能の一例を示す図である。図３の例では、本実施形態に関する機能を主に例示しているが、クライアント端末１０が有する機能はこれらに限られるものではない。図１にも示したように、クライアント端末１０には、本発明に係るアプリケーションプログラムの他に、印刷アプリケーション１０１としての機能を実装する１以上のアプリケーションプログラム、プリンタドライバ１０２としての機能を実装する１以上のプリンタドライバプログラムがインストールされている。また、その他のアプリケーションプログラムがインストールされていてもよい。
【００２１】
図３に示すように、本発明に係るアプリケーションプログラムが実装されて処理が動作することにより、クライアント端末１０において、複数のユーザと１対１に対応する複数のユーザプロセス１０３が起動される。各ユーザプロセス１０３は、対応するユーザがログインしたとき（クライアント端末１０を使用する権限を有すると認められたとき）に起動し、また、ログアウトしたときにクローズする。なお、ログインした状態のまま、ユーザの切り替えを行い、他のユーザがログインした場合は、それぞれのユーザのユーザプロセス１０３が立ち上がった状態となる。
【００２２】
例えば、ログインしたユーザＡに対する作業環境をクライアント端末１０が提供し、ユーザＡの設定に準じた画面が表示装置５０６に表示されている（例えば、ユーザＡのデスクトップ画面が表示されている）ときに、本発明に係るアプリケーションプログラムがその画面に何らかのメッセージを表示させたい場合、ユーザＡのユーザプロセス１０３を介して制御が行われることとなる。また、ユーザＡのユーザプロセス１０３から、ユーザＢのユーザプロセス１０３に対して処理の制御を行うことは通常許可されない。一方で、本発明に係るアプリケーションプログラムは、ユーザのユーザプロセス１０３とサービスプロセス１０４とを連携するための仕組みを用意する。なお、説明の便宜上、ここでは、ユーザＡに対応するユーザプロセス１０３（ユーザＡ用のユーザプロセス１０３）を例に挙げて説明するが、他のユーザプロセス１０３が有する機能も同様である。
【００２３】
図３に示すように、サービスプロセス１０４は、キュー監視コンポ―ネント１１０、ルールベース印刷サービスコンポーネント１２０を有する。なお、この例では、キュー監視コンポ―ネント１１０とルールベース印刷サービスコンポーネント１２０との間の通信にはＨＴＴＰプロトコルを使用し、ルールベース印刷サービスコンポーネント１２０とユーザプロセス１０３との間の通信には名前付きパイプを使用している。ここで、ユーザプロセス１０３は、ログイン中のユーザの数だけ同時に起動し得るため、それぞれにポートを割り当てるのはポートの枯渇を招き易くなり、適切ではない。そこで、本実施形態では、サービスプロセス１０４（ルールベース印刷サービスコンポーネント１２０）とユーザプロセス１０３との間の通信に名前付きパイプを使用することで、ユーザプロセス１０３ごとにポートを割り当てることを回避している。
【００２４】
キュー監視コンポ―ネント１１０は、プリンタキュー検知部１１１と特定部１１２とを有する。プリンタキュー検知部１１１は、印刷ジョブを記憶するプリンタキュー（スプーラに含まれる）に印刷ジョブが登録されたか否かを検知する。特定部１１２は、プリンタキュー検知部１１１により印刷ジョブの登録が検知された場合、印刷を要求したユーザを識別するユーザ情報を特定する。この特定方法は任意であるが、本実施形態では、印刷ジョブに含まれる属性情報にユーザ情報が記述されているので、特定部１１２は、プリンタキューに登録された印刷ジョブに含まれる属性情報を確認することで、ユーザ情報を特定することができる。また、ここでは、プリンタキューに印刷ジョブが登録されたことは、ユーザからの印刷要求を受け付けたことと同義であると考えることができる。
【００２５】
ルールベース印刷サービスコンポーネント１２０は、「提供部」の一例であり、ログイン中の複数のユーザと１対１に対応する複数のユーザプロセス１０３のうち、特定部１１２により特定されたユーザ情報に対応するユーザプロセス１０３に対して、該ユーザプロセス１０３が実行する処理に必要な情報を提供する。具体的な内容は、後述の説明で明らかになるが、図３の例では、ルールベース印刷サービスコンポーネント１２０は、印刷要求通知制御部１２１、特定情報通知検知部１２２、書き込み部１２３を有する。
【００２６】
印刷要求通知制御部１２１は、特定部１１２により特定されたユーザ情報に対応するユーザプロセス１０３に対して、印刷要求を受け付けたことを示す印刷要求通知を通知するための制御を行う。ここでは、印刷要求通知制御部１２１は、ユーザプロセス１０３に対して印刷要求通知を通知するための制御として、特定部１１２により特定されたユーザ情報に対応するユーザプロセス１０３が有する後述の要求管理パイプ１３１（「要求管理用中間媒体」の一例）に、印刷要求通知を書き込む制御を行う。この例では、要求管理パイプ１３１は、名前付きパイプであり、上述の属性情報に記述されるユーザ情報を含む名前が付されている。この例では、印刷要求通知制御部１２１は、特定部１１２により特定されたユーザ情報を含む要求管理パイプ１３１を特定し、その特定した要求管理パイプ１３１に対して印刷要求通知を書き込む制御を行う。
【００２７】
説明の便宜上、ここでユーザプロセス１０３が有する機能について説明する。図３に示すように、ユーザプロセス１０３は、要求管理パイプ１３１、印刷要求通知検知部１３２、生成部１３３、特定情報通知制御部１３４、生成部１３３により生成される処理用パイプ１３５、情報検知部１３６、処理部１３７を有する。
【００２８】
要求管理パイプ１３１は、「要求管理用中間媒体」の一例であり、ユーザプロセス１０３に対応するユーザを識別するユーザ情報を含み、かつ、印刷要求通知および後述の特定情報通知の通信に用いる中間媒体である。この例では、要求管理パイプ１３１は、ユーザ情報を含む名前が付された名前付きパイプであるが、これに限られるものではない。印刷要求通知検知部１３２は、印刷要求通知を検知する。この例では、印刷要求通知検知部１３２は、要求管理パイプ１３１に印刷要求通知が書き込まれたか否かを検知することで、印刷要求通知を検知することができる。
【００２９】
生成部１３３は、印刷要求通知検知部１３２により印刷要求通知が検知された場合、ユーザプロセス１０３が実行する処理に必要な情報を受け入れるための処理用パイプ１３５（「処理用中間媒体」の一例）を生成する。この例では、処理用パイプ１３５は名前付きパイプであり、生成部１３３は、生成した処理用パイプ１３５に対してユニークな名前を付ける。また、生成部１３３は、１つの処理に対して１つの処理用パイプ１３５を生成する。
【００３０】
特定情報通知制御部１３４は、処理用パイプ１３５の所在を特定可能な特定情報（この例では処理用パイプ１３５に付された名前）を示す特定情報通知をルールベース印刷サービスコンポーネント１２０（「提供部」）へ通知するための制御を行う。この例では、特定情報通知制御部１３４は、特定情報通知をルールベース印刷サービスコンポーネント１２０へ通知するための制御として、要求管理パイプ１３１に特定情報通知を書き込む制御を行う。
【００３１】
情報検知部１３６は、処理用パイプ１３５に書き込まれた情報を検知する。この例では、情報検知部１３６は、ルールベース印刷サービスコンポーネント１２０の書き込み部１２３によって処理用パイプ１３５に書き込まれた、ユーザプロセス１０３が実行する処理に必要な情報を検知する。情報検知部１３６は、処理用パイプ１３５が生成されるタイミングで、処理用パイプ１３５と１対１に対応して生成部１３３により生成されるようにしてもよい。情報検知部１３６によって、処理用パイプ１３５に書き込まれた情報が検知された場合、処理部１３７は、処理用パイプ１３５に格納された情報を用いて処理を実行する。この例では、ユーザプロセス１０３が実行する処理に必要な情報は、印刷ジョブに含まれる属性情報であり、処理部１３７は、処理用パイプ１３５に格納された属性情報を用いて処理を実行する。より具体的には、処理部１３７は、処理用パイプ１３５に格納された属性情報と、予め定められたルールとに基づいて、対応する処理を実行する。例えば予め定められたルールとして、「ユーザＡ」の印刷要求を受け付けた場合は、出力先のプリンタ２０やカラー属性を伝えるためのダイアログを表示することが設定されていた場合、処理部１３７は、処理用パイプ１３５に格納された属性情報に含まれる、出力先のプリンタ２０を示す情報やカラー属性を示す情報を用いて、ダイアログを表示装置５０６に表示する処理を実行する。予め定められたルールを示す情報は、例えばＨＤＤ５０３等の記憶装置に格納されていてもよい。
【００３２】
続いて、ルールベース印刷サービスコンポーネント１２０が有する機能を説明する。特定情報通知検知部１２２は、特定情報の通知（ユーザプロセス１０３からの通知）を示す特定情報通知を検知する。この例では、特定情報通知検知部１２２は、特定部１１２により特定されたユーザ情報に対応するユーザプロセス１０３が有する要求管理パイプ１３１（特定部１１２により特定されたユーザ情報を含む名前が付された要求管理パイプ１３１）に特定情報が書き込まれたか否かを検知することで、特定情報通知を検知する。
【００３３】
書き込み部１２３は、特定情報通知検知部１２２により特定情報通知が検知された場合、特定情報通知が示す特定情報により特定される処理用パイプ１３５に、処理に必要な情報を書き込む。この例では、書き込み部１２３は、特定情報通知検知部１２２により検知された特定情報通知が示す特定情報と同じ名前が付された処理用パイプ１３５を特定し、その特定した処理用パイプ１３５に対して、プリンタキュー検知部１１１により登録が検知された印刷ジョブに含まれる属性情報を書き込む。
【００３４】
図４は、サービスプロセス１０４およびユーザプロセス１０３の起動手順の一例を示すフロー図である。まず、クライアント端末１０に対する電力供給が開始されると（電源オンになると）、ＯＳは、サービスプロセス１０４を起動する（ステップＳ１）。図５は、このときのクライアント端末１０のＯＳ上で動作するプログラムの状態を示す図であり、サービスプロセス１０４のみが動作する状態を表している。
【００３５】
図４の説明を続ける。次に、ＯＳは、ユーザの認証を行うと（ステップＳ２）、認証したユーザに対応するユーザプロセス１０３およびアプリケーションを起動する（ステップＳ３）。
【００３６】
例えばユーザＡが認証された場合を想定する。図６は、このときのクライアント端末１０のＯＳ上で動作するプログラムの状態を示す図である。図６の例では、サービスプロセス１０４に加えて、ユーザＡ用のユーザプロセス１０３、ユーザＡの設定に応じた印刷アプリケーション１０１、ユーザＡの設定に応じたプリンタドライバ１０２が動作する状態を表している。
【００３７】
また、例えばユーザＡが認証された後に、ユーザＡのユーザプロセス１０３が起動したままの状態で、ユーザＢが認証された場合を想定する。図７は、このときのクライアント端末１０のＯＳ上で動作するプログラムの状態を示す図である。図７の例では、サービスプロセス１０４、ユーザＡ用のユーザプロセス１０３、ユーザＡの設定に応じた印刷アプリケーション１０１、ユーザＡの設定に応じたプリンタドライバ１０２に加えて、ユーザＢ用のユーザプロセス１０３、ユーザＢの設定に応じた印刷アプリケーション１０１、ユーザＢの設定に応じたプリンタドライバ１０２が動作する状態を表している。
【００３８】
図８は、あるユーザが認証された後のクライアント端末１０の動作例を示すフローチャートである。説明の便宜上、以下では、ユーザＡが認証されたことを前提とする。まず、印刷アプリケーション１０１は、ユーザＡの操作に応じて印刷ジョブを生成する（ステップＳ１１）。次に、スプーラ（サービスプロセス１０４）は、ステップＳ１１で生成された印刷ジョブをプリンタキューに登録する（ステップＳ１２）。そして、キュー監視コンポ―ネント１１０は、プリンタキューに印刷ジョブが登録されたことを検知すると、その登録された印刷ジョブに対応するユーザ情報を特定し（ステップＳ１３）、その特定したユーザ情報と、印刷ジョブに含まれる属性情報（ユーザプロセス１０３が実行する処理に必要な情報で、例えば印刷ジョブの印刷条件等）とをルールベース印刷サービスコンポーネント１２０へ通知する。ルールベース印刷サービスコンポーネント１２０は、この通知に対する応答として、必要な値を返すこともできる。
【００３９】
次に、ルールベース印刷サービスコンポーネント１２０は、ステップＳ１３で特定されたユーザ情報に対応するユーザプロセス１０３に対して、印刷要求を受け付けたことを通知するための制御を行う（ステップＳ１４）。具体的な内容は上述したとおりである。次に、印刷要求通知を検知したユーザプロセス１０３は、処理用パイプ１３５を生成し（ステップＳ１５）、その生成した処理用パイプ１３５の所在を特定可能な特定情報をルールベース印刷サービスコンポーネント１２０に通知するための制御を行う（ステップＳ１６）。具体的な内容は上述したとおりである。
【００４０】
次に、ルールベース印刷サービスコンポーネント１２０は、ユーザプロセス１０３からの特定情報通知を検知すると、該特定情報通知が示す特定情報により特定される処理用パイプ１３５に、キュー監視コンポ―ネント１１０から受け取った属性情報を書き込む（ステップＳ１７）。具体的な内容は上述したとおりである。そして、ユーザプロセス１０３は、処理用パイプ１３５に書き込まれた属性情報を検知すると、その属性情報を用いて処理を実行する（ステップＳ１８）。具体的な内容は上述したとおりである。
【００４１】
上述したように、本実施形態では、ユーザプロセス１０３は、要求管理パイプ１３１と、処理用パイプ１３５とを別々に有するので、１つの処理が完了するまでの間、次の印刷要求通知の受け付け（要求管理パイプ１３１への書き込み）を停止する必要は無く、１つの処理を実行中であっても、次の印刷要求通知を受け付けて、対応する処理用パイプ１３５を生成することができる。これにより、並列処理を実現できるという利点がある。つまり、ステップＳ１７の属性情報の書き込みが完了していれば、要求管理パイプ１３１に次の印刷要求通知を書き込むことができる。
【００４２】
図９は、ルールベース印刷サービスコンポーネント１２０の印刷要求通知制御部１２１および特定情報通知検知部１２２の動作例を示すフローチャートである。図９に示すように、印刷要求通知制御部１２１は、キュー監視コンポ―ネント１１０からのユーザ情報および属性情報の通知を待つ（ステップＳ２１）。ステップＳ２１の結果が肯定の場合（ステップＳ２１：Ｙｅｓ）、印刷要求通知制御部１２１は、ステップＳ２１で通知されたユーザ情報に対応するユーザプロセス１０３に対して、印刷要求を受け付けたことを通知するための制御を行う（ステップＳ２２）。上述したように、印刷要求通知制御部１２１は、ステップＳ２１で通知されたユーザ情報に対応するユーザプロセス１０３が有する要求管理パイプ１３１に対して、印刷要求を受け付けたことを示す印刷要求通知を書き込む。その後、特定情報通知検知部１２２は、ステップＳ２１で通知されたユーザ情報に対応するユーザプロセス１０３が有する要求管理パイプ１３１に特定情報が書き込まれたか否かを検知することで、特定情報通知を検知する（ステップＳ２３）。特定情報通知を検知した場合、特定情報通知検知部１２２は、検知した特定情報と、ステップＳ２１で通知された属性情報とを書き込み部１２３へ渡し、属性情報の書き込みを指示する（ステップＳ２４）。以降は、ステップＳ２１で通知されたユーザ情報に対応するユーザプロセス１０３が有する要求管理パイプ１３１に対しても、次の印刷要求通知を書き込むことができるので、ステップＳ２１以降の処理を繰り返す。
【００４３】
以上に説明したように、システムソフトウェアであるサービスプロセス１０４は、プリンタキューへの印刷ジョブの登録を検知した場合、印刷を要求したユーザを識別するユーザ情報を特定し、ログイン中の複数のユーザと１対１に対応する複数のユーザプロセス１０３のうち、その特定したユーザ情報に対応するユーザプロセス１０３に対して、該ユーザプロセス１０３が実行する処理に必要な情報を提供する。これにより、サービスプロセス１０４から、同時にログインしている複数のユーザと１対１に対応する複数のユーザプロセス１０３の各々へ適切に処理を振り分けることができる。
【００４４】
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態および変形例にわたる構成要素を適宜組み合わせてもよい。
【００４５】
また、上述した各実施形態のクライアント端末１０（ＣＰＵ５０１）が実行するプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【００４６】
１０    クライアント端末
２０    プリンタ
１００  情報処理システム
１０１  印刷アプリケーション
１０２  プリンタドライバ
１０３  ユーザプロセス
１０４  サービスプロセス
１１０  キュー監視コンポ―ネント
１１１  プリンタキュー検知部
１１２  特定部
１２０  ルールベース印刷サービスコンポーネント
１２１  印刷要求通知制御部
１２２  特定情報通知検知部
１２３  書き込み部
１３１  要求管理パイプ
１３２  印刷要求通知検知部
１３３  生成部
１３４  特定情報通知制御部
１３５  処理用パイプ
１３６  情報検知部
１３７  処理部
【先行技術文献】
【特許文献】
【００４７】
【特許文献１】特開２０１３−００８３５３号公報
【図１】
0006597432.tif 000002
【図２】
0006597432.tif 000003
【図３】
0006597432.tif 000004
【図４】
0006597432.tif 000005
【図５】
0006597432.tif 000006
【図６】
0006597432.tif 000007
【図７】
0006597432.tif 000008
【図８】
0006597432.tif 000009
【図９】
0006597432.tif 000010