(57)【要約】【課題】印刷ユーティリティがダウンした場合でも、再起動を行うことなくユーザが行った印刷指示を処理できるようにする。【解決手段】印刷指示に基づき印刷処理を行う印刷ユーティリティ３１と、印刷ユーティリティ３１がダウンしていないか監視する監視プロセス３２とを有し、印刷指示に基づき搭載されたルールに従って印刷処理を行うクライアント端末３であって、監視プロセス３２により印刷ユーティリティ３１がダウンしていないことが確認されたときは、印刷指示で指示された前記ルールに基づき印刷処理を行い、印刷ユーティリティ３１がダウンしていることが確認されたときは、受け付けた印刷指示及び前記ルールを予め定めた委譲先のクライアント端末３に委譲する。【選択図】図１
2017167964.tif 000002
【特許請求の範囲】
【請求項１】
印刷指示に基づき印刷処理を行う印刷ユーティリティと、前記印刷ユーティリティがダウンしていないか監視する監視プロセスとを有し、印刷指示に基づき搭載されたルールに従って印刷処理を行う情報処理装置であって、
前記監視プロセスにより印刷ユーティリティがダウンしていないことが確認されたときは、印刷指示で指示された前記ルールに基づき印刷処理を行い、
前記印刷ユーティリティがダウンしていることが確認されたときは、受け付けた印刷指示及び前記ルールを予め定めた委譲先の情報処理装置に委譲することを特徴とする情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、
前記ルールは印刷処理のための条件及びアクションを含み、
受け付けた印刷指示を委譲先の情報処理装置に委譲する場合において、前記監視プロセスは前記条件の有無を判定して、前記条件が有りの場合は、さらに前記条件で規定されたパラメータの有無で委譲先の情報処理装置における処理結果が変更するか否か判定し、処理結果が変更する場合は、前記条件で規定されたパラメータを取得して前記パラメータを前記委譲先の情報処理装置に委譲し、前記処理結果が変更しないと判断したときは、前記パラメータを取得しないことを特徴とする情報処理装置。
【請求項３】
請求項２に記載された情報処理装置において、
前記委譲先の情報処理装置は委譲する前記パラメータに対応させて予め定められていることを特徴とする情報処理装置。
【請求項４】
請求項１ないし３のいずれかに記載された情報処理装置において、
前記印刷ユーティリティは、シナリオを記憶するシナリオ記憶部と、前記シナリオ記憶部に記憶された前記ルールのうち、印刷実行時に実行したいルールを設定する印刷処理の設定部と、前記印刷処理の設定部に設定されたルールに従い印刷処理を実行する印刷指示処理部を有することを特徴とする情報処理装置。
【請求項５】
請求項１ないし４のいずれかに記載された情報処理装置において、
前記監視プロセスは、シナリオがどこにあるか設定するシナリオのファイルパス設定部と、前記シナリオがどこにあるかを記憶するシナリオのファイルパス記憶部を有することを特徴とする情報処理装置。
【請求項６】
請求項１ないし５のいずれかに記載された情報処理装置を複数有し、前記複数の情報処理装置を相互に接続して、前記印刷指示、前記ルール及び前記パラメータが互いに委譲可能であることを特徴とする情報処理システム。
【請求項７】
請求項６に記載された情報処理システムにおいて、
前記情報処理装置に接続されたプリンタを有する情報処理システム。
【請求項８】
コンピュータを、請求項１又は２に記載された情報処理装置の前記印刷ユーティリティ及び前記監視プロセスとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【０００２】
例えば、医療分野において利用される印刷ユーティリティによる印刷は、患者が必要なときに必要な治療や診断を受けることが出来るように、ユーザが行った印刷指示が確実に処理されることが望まれる。そのため、印刷ユーティリティが何らかの理由（バグが発生した、メモリ不足に陥った、ユーザが印刷ユーティリティを終了させた等）でダウンした場合、監視プロセスが、印刷ユーティリティの再起動を行う。
【０００３】
しかし、印刷ユーティリティの再起動を行う場合、従来は印刷ユーティリティがダウンした原因を突き止めた上で再起動しているわけではない。そのため、同じ原因で印刷ユーティリティがダウンし、ユーザが行った印刷指示が処理されないという問題が生じる。
【０００４】
特許文献１（特開２０１３−１６１４３７号公報）には、常駐プロセスが運用継続不可とならないようにすることを目的に、常駐プロセスが何らかの要因で終了してしまった場合に、自動で常駐プロセスを再起動させることができるプロセス部管理ミドルウエアと称する発明が開示されている。
このプロセス部管理ミドルウエアは、常駐プロセス（印刷ユーティリティに対応する）の運用継続を目的としているが、再起動後に同じ原因で常駐プロセスがダウンし、ユーザが行った印刷指示を処理できないという上述の問題は解消できない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上述の従来の問題に鑑みてなされたものであって、その目的は、印刷ユーティリティがダウンした場合でも、再起動を行うことなくユーザが行った印刷指示の処理ができるようにすることである。
【課題を解決するための手段】
【０００６】
本発明は、印刷指示に基づき印刷処理を行う印刷ユーティリティと、前記印刷ユーティリティがダウンしていないか監視する監視プロセスとを有し、印刷指示に基づき搭載されたルールに従って印刷処理を行う情報処理装置であって、前記監視プロセスにより印刷ユーティリティがダウンしていないことが確認されたときは、印刷指示で指示された前記ルールに基づき印刷処理を行い、前記印刷ユーティリティがダウンしていることが確認されたときは、受け付けた印刷指示及び前記ルールを予め定めた委譲先の情報処理装置に委譲することを特徴とする情報処理装置である。
【発明の効果】
【０００７】
本発明によれば、印刷ユーティリティがダウンした場合でも、再起動を行うことなくユーザが行った印刷指示を処理することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る情報処理システムの構成を示す図である。
【図２】本発明の情報処理装置に相当するクライアント端末の機能ブロック図である。
【図３】印刷指示を受け付けたクライアント端末の印刷ユーティリティがダウンしていない場合における、ルールの実行手順（ワークフロー）を示すフロー図である。
【図４】印刷指示を受け付けたクライアント端末の印刷ユーティリティがダウンしている場合における、印刷指示の委譲処理の手順を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
本発明は、印刷ユーティリティがダウンした時の処理に際して、以下の特徴を有する。
即ち、本発明は、印刷ユーティリティがダウンしたときは、従来のようにダウンした印刷ユーティリティを再起動するのではなく、監視プロセスが、同じ機能を有する別の印刷ユーティリティに印刷指示を委譲することが特徴になっている。 
【００１０】
また、委譲元となるクライアント端末（委譲元端末という）に設定されている印刷処理のためのルールを、他のクライアント端末（委譲先端末という）に委譲する際に、その内容として、委譲元端末の例えば、ＩＰアドレスやログインユーザ名などのパラメータに対応して特定のプリンタＸが指定されていると、委譲先端末のＩＰアドレスは委譲元端末とは異なるため、同じプリンタＸには出力されない。
【００１１】
本発明は、このような場合に、パラメータも併せて委譲先端末に送信し、委譲先端末において、そのパラメータを使用することで、委譲元端末におけると同様の印刷処理が行えるようにすることも特徴となっている。
【００１２】
具体的には、例えば、委譲されるルールでパラメータａ、ｂ、ｃが指定されているとして、そのうち、パラメータａ、ｂは、委譲元端末のパラメータを利用しないと委譲元端末と同じ処理結果が得られないものであり、パラメータｃは、委譲先端末で取得すればよいパラメータであるとする。この場合、委譲先クライアント端末（印刷ユーティリティ）は渡されたパラメータａ、ｂに加えて自身で取得したパラメータｃを備えることで、委譲されたルールに従った印刷処理が実行され、委譲元端末と同じ処理結果が得られるようにしている。
【００１３】
次に、以上の特徴を備えた本発明をその実施形態について説明する。
図１は、本発明の実施形態に係る情報処理システムの構成を示す図である。
本情報処理システム１は、複数のプリンタ２（２（１）、２（２）、・・・）と、本発明の情報処理装置に対応する複数のクライアント端末３（３（１）、３（２）、・・・）で構成される。
各クライアント端末３には、各々印刷ユーティリティ３１と、監視プロセス３２が搭載されている。
【００１４】
印刷ユーティリティ３１（３１（１）、３１（２））は、ここではアプリケーションプログラムをコンピュータに読み取らせることにより実現される機能実現手段であり、ユーザにより設定されたルールに基づいて印刷を行う場合の制御を行う。
監視プロセス３２（３２（１）、３２（２））は、プログラムをコンピュータに読み取らせることにより実現される機能実現手段であり、ＯＳ（Operating System）からメモリ領域などの割り当てを受けて、定期的に印刷ユーティリティ３１がダウンしていないかを監視する。
なお、符号について各構成要素を総称するときは、プリンタ２、クライアント端末３、印刷ユーティリティ３１、監視プロセス３２という。
【００１５】
クライアント端末３は、幾つかの予め設定されたルールに含まれる印刷の条件及びアクション（例えば、プリンタ２に印刷する等）を定めたシナリオファイルを備えている。
印刷の条件は、条件無しの場合と条件有りの場合とがある。条件無しの場合は、印刷指示に基づき、設定されたシナリオファイルのルールに基づき所定のアクションを行う。一方、条件有りの場合は、その条件が満たされた場合にのみ、所定のアクションを行う。なお、印刷指示には、印刷データが含まれる。
【００１６】
通常は、いずれかのクライアント端末３において、印刷指示に基づき、当該クライアント端末３に設定されたシナリオファイルのルールにしたがって印刷のための処理が行われる。
ただ、印刷指示を行ったクライアント端末３（１）の印刷ユーティリティが何らかの理由（バグが発生した、メモリ不足に陥った、ユーザが印刷ユーティリティを終了させた等）でダウンした場合は、印刷指示を実行（処理）することはできない。
その場合、本実施形態は、既に述べたように、その印刷指示等を他のクライアント端末３に委譲することで、委譲された他のクライアント端末３で印刷指示を実行する。
【００１７】
次に、本実施形態のクライアント端末３で実施する印刷処理について説明するが、ここでは、まず、クライアント端末３に搭載されるシナリオファイルについて説明する。
表１は、シナリオファイルのデータ構造について説明する表である。
【００１８】
【表１】
2017167964.tif 000003
【００１９】
シナリオファイルは、表１に示すように、１以上のルールを含む。ルールは、０以上の条件（パラメータの指定）と１つ以上のアクションで構成されている。印刷ユーティリティ３１は、印刷指示があると、シナリオファイルに含まれるルールに基づいて処理を実行する。
【００２０】
図２は、本発明の情報処理装置に相当するクライアント端末３の機能ブロック図である。
クライアント端末３の印刷ユーティリティ３１は、ここでは、印刷指示処理部３１ａと、印刷指示処理の設定部３１ｂと、監視プロセスとの通信部３１ｃと、シナリオ記憶部３１ｄと、を有する。
監視プロセス３２は、印刷ユーティリティ監視部３２ａと、印刷ユーティリティとの通信部３２ｂと、他のクライアント端末３の監視プロセスとの通信部３２ｃと、印刷指示委譲先設定部３２ｄと、シナリオのファイルパス設定部３２ｅと、委譲先記憶部３２ｆと、シナリオのファイルパス記憶部３２ｇと、を有する。
【００２１】
印刷指示処理部３１ａは、印刷実行時に、シナリオファイルに含まれるルールに基づいた印刷処理を実行する。
印刷指示処理の設定部３１ｂは、印刷実行時に、実行したいシナリオファイルのルールを設定する。
監視プロセスとの通信部３１ｃは、委譲された印刷指示、印刷データ、シナリオファイルと委譲元端末３のパラメータ（ここでは識別子）を受け取る。
シナリオ記憶部３１ｄは、ルールの実行手順を示すワークフローに基づいて処理を実行するために必要なシナリオファイルを記憶手段に記憶する処理を行う。
【００２２】
監視プロセス３２は、印刷ユーティリティ３１がダウンしているか否か監視し、かつ、印刷ユーティリティ３１がダウンしている場合に、別のクライアント端末３の印刷ユーティリティ３１に印刷指示を委譲する処理を行う。
印刷ユーティリティ監視部３２ａは、印刷ユーティリティ３１がダウンしているか監視する。
印刷ユーティリティとの通信部３２ｂは、印刷ユーティリティ３１に処理を委譲するために、印刷指示、印刷データ、シナリオファイル、委譲元端末３の識別子を送る。
監視プロセスとの通信部３２ｃは、各監視プロセス３２間での印刷指示、印刷データ、シナリオファイルと委譲元端末３の識別子の送受信をする。
【００２３】
印刷指示委譲先設定部３２ｄは、印刷ユーティリティ３１（１）がダウンしていた場合に印刷指示を委譲する宛先を設定する。
シナリオのファイルパス設定部３２ｅは、シナリオファイルがどこにあるかを設定する。
委譲先記憶部３２ｆは、印刷指示を委譲する際に、シナリオファイルなどと一緒に委譲すべきパラメータと、印刷指示委譲先設定部３２ｄで設定した委譲先端末３（２）、・・・とを対応（紐）付けて記憶手段に記憶させる。
シナリオのファイルパス記憶部３２ｆは、シナリオファイルがどこにあるかを記憶する。
【００２４】
図３は、印刷指示を受け付けたクライアント端末３の印刷ユーティリティ３１がダウンしていない場合における、ルールの実行手順（ワークフロー）を示すフロー図である。
あるクライアント端末、ここではクライアント端末３に印刷指示があると、印刷ユーティリティ３１がこれを受け取り、その印刷指示処理部３１ａは、シナリオ記憶部３１ｄに記憶されたシナリオ中のルールから、印刷指示で指定されたルール、つまり印刷実行時に実行したいルールとして印刷指示処理の設定部３１ｂに設定されたルールに従って処理を開始する。
具体的には、印刷ユーティリティ３１（１）は、印刷指示処理の設定部３１ｂに設定された一つ目のルールから順に条件のチェックとアクションを実行する。印刷ユーティリティ３１（１）は、ルールに規定された条件をチェックし、条件無しの場合であれば（Ｓ１０１、ＮＯ）アクションを無条件に実行する。
【００２５】
条件有りの場合は（Ｓ１０１、ＹＥＳ）、その条件で指定されたパラメータが満たされていれば、つまり条件に合致すれば（Ｓ１０２、ＹＥＳ）、クライアント端末３（１）は、そのルールにしたがったアクションを実行する（Ｓ１０３、ＹＥＳ）。条件に合致しなければ（Ｓ１０２、ＮＯ）、アクションを実行せずに次のルールがあるか否かを判定するステップＳ１０４に進む。
印刷ユーティリティ３１（１）は、印刷指示処理の設定部３１ｂに設定された全てのルールを確認し、全てのルールに従ったアクションを実行すると（Ｓ１０４、ＮＯ）、このワークフローを終了する。
【００２６】
次に、印刷指示を受け付けたクライアント端末３（１）の印刷ユーティリティ３１（１）がダウンしている場合における、印刷指示の委譲処理について説明する。
図４は、印刷指示を受け付けたクライアント端末３の印刷ユーティリティ３１がダウンしている場合における、印刷指示の委譲処理の手順を示すシーケンス図である。
即ち、図１において、クライアント端末（委譲元端末）３（１）の監視プロセス３２（１）の印刷ユーティリティ監視部３２ａは、定期的な確認において、その印刷ユーティリティ３１がダウンしていることを確認している（Ｓ２０１）ものとする。
【００２７】
この状態において、ユーザが委譲元端末３（１）に対して印刷指示を行うと（Ｓ２０２）、その監視プロセス３２（１）は、印刷ユーティリティ３１（１）に代わって印刷指示を受け付ける。次に、監視プロセス３２（１）は、シナリオのファイルパス設定部３２ｅで設定されたファイルパスを記憶するシナリオのファイルパス記憶部３２ｇに基づきクライアント端末３（１）に予め設定されたルールを含むシナリオファイルを取得する（Ｓ２０３）。
【００２８】
次に、監視プロセス３２（１）は、取得したシナリオファイル中のルールの条件の有無を判定し、条件有りの場合は、さらに前記条件で規定されたパラメータの有無で委譲先端末における処理結果が変更するか否か判定し、処理結果が変更する場合は、そのパラメータ（ここでは識別子）を取得する。また、それと共に印刷指示委譲先設定部３２ｄで設定された委譲先端末３（２）を記憶する委譲先記憶部３２ｆ（後記表２）から、そのパラメータ（識別子）に対応した（紐付けされた）委譲先端末３（２）を取得して、取得したパラメータを委譲先の情報処理装置に委譲する。前記処理結果が変更しないと判断したときは、前記パラメータを取得しない。
【００２９】
次に、クライアント端末３（１）の監視プロセス３２（１）は、監視プロセスとの通信部３２ｃにより、取得した宛先（即ち委譲先端末３（２）の監視プロセス３２（２））へ、印刷指示の委譲を依頼し（Ｓ２０４）、ステップＳ２０３で取得したシナリオファイル及び印刷データと、もし有ればクライアント端末３（１）のパラメータを渡す（Ｓ２０５）
委譲依頼を受けた委譲先端末３（２）の監視プロセス３２（２）は、監視下にある委譲先端末３（２）の印刷ユーティリティ３１（２）がダウンしていなければ、その印刷ユーティリティとの通信部３２ｂにより、委譲先端末３（２）の印刷ユーティリティ３１（２）に対して印刷指示等を委譲する（Ｓ２０６）。
【００３０】
委譲先端末３（２）の印刷ユーティリティ３１（２）は、委譲されたシナリオファイルのルールに基づいた処理（印刷処理）を実行し（Ｓ２０７）、プリンタ２で印刷を行う（Ｓ２０８）。
なお、この場合において、委譲先端末３（２）の印刷ユーティリティ３１（２）は、印刷指示等が監視プロセス部３２（２）から送られてきたと判断したときは、印刷処理に委譲元端末３（１）のパラメータ（識別子等）を用いて印刷処理を実行する。
これにより、委譲元端末３（１）における印刷処理と同じ処理が可能になる。つまり、ここでは、ダウンした委譲元端末３（１）（印刷ユーティリティ３１（１））に代わって、委譲先のクライアント端末３（２）の印刷ユーティリティ３１（２）で同じプリンタからの印刷出力が可能である。
【００３１】
委譲先端末３（２）の印刷ユーティリティ３１（２）がダウンしているときは、監視プロセス３２（２）は、上述の手順と同様の手順で設定されている宛先（さらに他の委譲先端末）へ、委譲依頼と共に受領したルール、印刷データと、委譲元端末３（１）のパラメータを送信する。
【００３２】
表２と表３は、実施形態１における委譲先記憶部３２ｆと委譲先に渡すデータのデータ構造について説明する表である。
【００３３】
【表２】
2017167964.tif 000004
【００３４】
【表３】
2017167964.tif 000005
【００３５】
印刷指示等の委譲先端末を設定するため、ここではＩＰアドレスとポート番号の組み合わせをパラメータとしている。また、委譲元端末３（１）の監視プロセス３２（１）は、委譲元端末３（１）における印刷指示に含まれる条件指示に適合するＩＰアドレス（ポート番号）毎に、委譲先端末（図中、委譲先１、２、３・・・）を設定する。つまり、委譲先端末は委譲するパラメータに対応させて予め定められている。
【００３６】
委譲元端末３（１）の監視プロセス３２（１）は、委譲先端末３（２）に対して、表３に示すデータ、即ち、シナリオファイルと、印刷データ（印刷したい文章の生データ）と、委譲元のパラメータ（ＩＰアドレスとポート番号）を渡す。
以上説明したように、本発明の上記実施形態によれば、印刷ユーティリティがダウンしたときは、従来のようにその印刷ユーティリティを再起動するのではなく、別の印刷ユーティリティを代替的に使用して印刷処理を行う。そのため、印刷ユーティリティが、同じ原因でダウンし、ユーザが行った印刷指示が処理されないという問題を解決することができる。
【００３７】
なお、本実施形態は更に以下のように変更することができる。
（１）委譲先の監視プロセスが委譲元の監視プロセスに認証を求めるようにしてもよい。具体的な認証は周知又は公知の方法で行う。
これにより、委譲依頼をしてきた監視プロセスつまり認証先の監視プロセスが信用できる相手か否かを区別することができる。
【００３８】
（２）監視プロセスが、印刷指示の委譲依頼を受けた際に、印刷ユーティリティをコピーしたプロセス部を作成し、そのコピーしたプロセス部に対して、印刷指示の委譲を行うようにする。
これにより、委譲されたデータにプロセス部をダウンさせる原因があっても、コピーされたプロセス部がダウンするだけで、コピー元の印刷ユーティリティがダウンすることを防止できる。
【００３９】
（３）バージョンの異なる印刷ユーティリティを備え、委譲先の設定がなされていない状態で印刷ユーティリティがダウンした場合に、監視プロセスが、ダウンしたものとは別バージョンの印刷ユーティリティを起動し、その印刷ユーティリティに印刷指示を行うようにする。
これにより、再度同じ原因で印刷ユーティリティがダウンする可能性を下げることができる。
（４）監視プロセスが、処理の委譲依頼を受け付けないように、事前に受付拒否の設定ができるようにする。
これにより、ユーザが自身のクライアント端末のリソースが勝手に利用されることを防止できる。
【００４０】
（５）監視プロセスに、同一の印刷指示が来る毎にカウントアップするカウンタを設け、カウンタのカウント値が所定値に達したとき、委譲依頼の受付拒否の設定をして、同一のクライアント端末に対して、一定回数以上、同一の印刷指示の委譲依頼が来た場合に、委譲処理を中止するようにする。
これにより、委譲処理の無限ループを防ぐことが出来る。
【符号の説明】
【００４１】
１・・・印刷システム、２（２（１）、２（２））・・・プリンタ、３（３（１）、３（２））・・・クライアント端末、３１（３１（１）、３１（２））・・・印刷ユーティリティ、３１ａ・・・印刷指示処理部、３１ｂ・・・印刷指示処理の設定部、３１ｃ・・・監視プロセスとの通信部、３１ｄ・・・シナリオ記憶部、３２（３２（１）、３２（２））・・・監視プロセス、３２ａ・・・印刷ユーティリティ監視部、３２ｂ・・・印刷ユーティリティとの通信部、３２ｃ・・・監視プロセスとの通信部、３２ｄ・・・印刷指示委譲先設定部、３２ｅ・・・シナリオのファイルパス設定部、３２ｆ・・・委譲先記憶部、３２ｇ・・・シナリオのファイルパス記憶部。
【先行技術文献】
【特許文献】
【００４２】
【特許文献１】特開２０１３−１６１４３７号公報
【図１】
2017167964.tif 000006
【図２】
2017167964.tif 000007
【図３】
2017167964.tif 000008
【図４】
2017167964.tif 000009