(57)【要約】      （修正有）【課題】クライアント端末からのＨＴＴＰリクエストの処理効率を向上させる。【解決手段】１以上の情報処理装置を有する情報処理システムであって、異なる処理をそれぞれ実行する複数の処理手段９５が処理を実行するプロセス１００を１以上生成する。外部装置に搭載されるアプリケーションから１以上の処理の要求を受け付けると、対応する処理を処理手段９５に割り当て、割り当てられた処理手段９５において生成されたプロセス１００が処理中である場合には、新たなプロセス１００を処理手段９５に生成させて対応する処理を実行させる。プロセス１００が処理中でない場合には、前記処理中でないプロセス１００に対応する処理を実行させる。【選択図】図４
2015176321.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を有する情報処理システムであって、
異なる処理をそれぞれ実行する複数の処理手段であって、それぞれの処理を実行するプロセスを１以上生成する複数の処理手段と、
外部装置に搭載されるアプリケーションから１以上の処理の要求を受け付けると、前記１以上の処理の要求に対応する処理を、前記複数の処理手段のうち１以上の処理手段に割り当てる処理フロー制御手段と、
前記１以上の処理の要求に対応する処理が割り当てられた前記１以上の処理手段において生成された１以上のプロセスが処理中である場合には、新たなプロセスを前記１以上の処理手段に生成させて前記１以上の処理の要求に対応する処理を実行させ、前記生成された１以上のプロセスが処理中でない場合には、前記処理中でない前記プロセスに前記１以上の処理の要求に対応する処理を実行させるプロセス監視手段とを有することを特徴とする情報処理システム。
【請求項２】
前記プロセス監視手段は、
前記１以上の処理の要求に対応する処理を実行させた後、前記生成された１以上のプロセスが処理中でない場合には、前記処理中でない前記プロセスを終了させることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記プロセス監視手段は、
前記生成された１以上のプロセスの数と、前記処理中の前記プロセスの数とが一致している場合に、前記新たなプロセスを生成することを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記プロセス監視手段は、
前記生成された１以上のプロセスの数と、前記処理中の前記プロセスの数とが一致していない場合に、前記処理中でない前記プロセスを終了することを特徴とする請求項２に記載の情報処理システム。
【請求項５】
前記プロセス監視手段は、
前記１以上の処理手段が利用中のライセンス数が、前記１以上の処理手段が利用可能なライセンス数に満たない場合に、前記新たなプロセスを生成することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理システム。
【請求項６】
前記プロセス監視手段は、
前記生成された１以上のプロセスの数が、予め指定されたプロセス数に達した場合には、前記新たなプロセスを生成しないことを特徴とする請求項１乃至５のいずれか一項に記載の情報処理システム。
【請求項７】
前記プロセス監視手段は、
前記プロセスにより処理された履歴情報に基づき、曜日又は時間ごとに利用されるプロセス数を予測し、前記曜日又は時間に対応させて予測した数のプロセスを生成することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理システム。
【請求項８】
情報処理システムにより実行される情報処理方法であって、
異なる処理をそれぞれ実行する複数の処理手段であって、それぞれの処理を実行するプロセスを１以上生成する複数の処理手順と、
外部装置に搭載されるアプリケーションから１以上の処理の要求を受け付けると、前記１以上の処理の要求に対応する処理を、前記複数の処理手順のうち１以上の処理手順に割り当てる処理フロー制御手順と、
前記１以上の処理の要求に対応する処理が割り当てられた前記１以上の処理手順において生成された１以上のプロセスが処理中である場合には、新たなプロセスを前記１以上の処理手順で生成させて前記１以上の処理の要求に対応する処理を実行させ、前記生成された１以上のプロセスが処理中でない場合には、前記処理中でない前記プロセスに前記１以上の処理要求に対応する処理を実行させるプロセス監視手順とを有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、情報処理システム、及び情報処理方法に関する。
【背景技術】
【０００２】
クライアント端末からのＨＴＴＰリクエストをＷｅｂアプリケーションサーバで実行し、その結果をクライアント端末へ通知する手法が知られている。また、上述したＷｅｂアプリケーションサーバにおける処理において、クライアント端末から受け取ったリクエストをメッセージキューに保存し、非同期でキューから取り出して実行し、その結果をキューに返すという手法が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上述した特許文献１の手法では、所定の機能を有するアプリケーション内部で所定のプログラム（エンジン）が動作し、エンジンがメッセージキューにアクセスして１つのリクエストを取得し、レスポンスを返した後に、再度メッセージキューにアクセスする。このエンジンは、リクエスト実行中はメッセージキューにアクセスしないため、例えば処理時間の長いリクエストを実行中の場合には、メッセージキューにアクセスしない状態が長くなる。このため、メッセージキューにはリクエストが滞留して、リクエストの開始から終了までの時間が長くなってしまう。
【０００４】
１つの側面では、本発明は、処理効率を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
一態様において、１以上の情報処理装置を有する情報処理システムであって、異なる処理をそれぞれ実行する複数の処理手段であって、それぞれの処理を実行するプロセスを１以上生成する複数の処理手段と、外部装置に搭載されるアプリケーションから１以上の処理の要求を受け付けると、前記１以上の処理の要求に対応する処理を、前記複数の処理手段のうち１以上の処理手段に割り当てる処理フロー制御手段と、前記１以上の処理の要求に対応する処理が割り当てられた前記１以上の処理手段において生成された１以上のプロセスが処理中である場合には、新たなプロセスを前記１以上の処理手段に生成させて前記１以上の処理の要求に対応する処理を実行させ、前記生成された１以上のプロセスが処理中でない場合には、前記処理中でない前記プロセスに前記１以上の処理の要求に対応する処理を実行させるプロセス監視手段とを有する。
【発明の効果】
【０００６】
処理効率を向上させることが可能となる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る情報処理システムの一例の構成図である。
【図２】コンピュータシステムのハードウェア構成図である。
【図３】サービス提供システムの一例を示す処理ブロック図である。
【図４】ワークフロー制御部の一例を示す処理ブロック図である。
【図５】各種データ例を説明するための図である。
【図６】プロセス生成処理の一例を示すフローチャートである。
【図７】プロセス終了処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
次に、本発明の実施の形態について、詳細に説明する。
【０００９】
＜システム構成＞
図１は、本実施形態に係る情報処理システムの一例の構成図である。図１に示す情報処理システム１は、例えばオフィス１０内のネットワークＮ１と、クラウドサービスに代表されるサービス提供システム２０のネットワークＮ２と、例えばインターネット等のネットワークＮ３とを有する。
【００１０】
ネットワークＮ１は、ファイヤウォールＦＷの内側にあるプライベートなネットワークである。ファイヤウォールＦＷは、ネットワークＮ１とネットワークＮ３との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークＮ１には、クライアント端末１１と、携帯端末１２と、複合機等の画像形成装置１３とが接続されている。
【００１１】
クライアント端末１１は、端末装置の一例である。クライアント端末１１は、一般的なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等が搭載された情報処理装置によって実現される。クライアント端末１１は、無線又は有線による通信の手段を有する。クライアント端末１１は、タブレットＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ノートＰＣ等、ユーザが操作可能な端末である。
【００１２】
携帯端末１２は、端末装置の一例である。携帯端末１２は、無線又は有線による通信の手段を有している。携帯端末１２は、スマートフォンや携帯電話、タブレットＰＣ、ノートＰＣ等、ユーザが携帯可能な端末である。
【００１３】
画像形成装置１３は、複合機等の画像形成機能を有する装置である。画像形成装置１３は、無線又は有線による通信の手段を有する。画像形成装置１３は、複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板等、画像形成に係る処理を行う装置である。図１の例では、クライアント端末１１、携帯端末１２、画像形成装置１３がそれぞれ一台である例を示しているが複数台であっても良い。
【００１４】
ネットワークＮ２は、アクセス制御装置２１によってネットワークＮ３に接続されている。ネットワークＮ２は、アクセス制御装置２１によってセキュリティが保護されている。ネットワークＮ２には、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４が接続されている。
【００１５】
図１の情報処理システム１は、アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４がサービス提供システム２０を実現している。
【００１６】
アクセス制御装置２１は、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４等へのログインを制御する。プリントサービス提供装置２２は、プリントサービスを提供する。スキャンサービス提供装置２３は、スキャンサービスを提供する。他サービス提供装置２４は、他サービスを提供する。
【００１７】
アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４は、１以上の情報処理装置によって実現される。アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４は、１台の情報処理装置に統合して実現しても良く、複数の情報処理装置に分散して実現しても良い。
【００１８】
ネットワークＮ２側のサービスの一部は、ネットワークＮ２以外にあっても良い。図１の情報処理システム１では、携帯端末１２がネットワークＮ１と、ネットワークＮ３とにある例を示している。ネットワークＮ３には、オンラインストレージ等の外部サービスを提供する装置を接続しても良い。
【００１９】
＜ハードウェア構成＞
図１に示すクライアント端末１１、携帯端末１２は、例えば図２に示すようなハードウェア構成のコンピュータにより実現される。また、アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４は、例えば図２に示すようなハードウェア構成のコンピュータにより実現される。図２は、コンピュータシステムのハードウェア構成図である。
【００２０】
図２に示すコンピュータシステム２は、入力装置３１と、表示装置３２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３３と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３４と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３５と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３６と、通信Ｉ／Ｆ３７と、外部Ｉ／Ｆ３８とを有し、それぞれがバスＢで相互に接続されている。
【００２１】
入力装置３１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置３２は、ディスプレイ等を含み、コンピュータシステム２による処理結果を表示する。
【００２２】
ＲＡＭ３３は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＲＯＭ３４は、電源を切ってもプログラムやデータを保持可能な不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ３４には、コンピュータシステム２の起動時に実行されるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）、ＯＳ設定、及びネットワーク設定等のプログラムやデータを格納する。
【００２３】
ＨＤＤ３５は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム２全体を制御する基本ソフトウェアであるＯＳや、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。ＨＤＤ３５は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（データベース）により管理する。
【００２４】
ＣＰＵ３６は、ＲＯＭ３４やＨＤＤ３５等の記憶装置からプログラムやデータをＲＡＭ３３上に読み出し、処理を実行することで、コンピュータシステム２全体の制御や機能を実現する演算装置である。
【００２５】
通信Ｉ／Ｆ３７は、コンピュータシステム２をネットワークＮ１〜Ｎ３に接続するインターフェースである。これにより、コンピュータシステム２は、通信Ｉ／Ｆ３７を介してデータ通信を行う。
【００２６】
外部Ｉ／Ｆ３８は、外部装置とのインターフェースである。外部装置には、記録媒体３８Ａ等がある。これにより、コンピュータシステム２は、外部Ｉ／Ｆ３８を介して記録媒体３８Ａの読み取り及び／又は書き込みを行うことが可能である。
【００２７】
記録媒体３８Ａには、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＳＤメモリカード（ＳＤ  Ｍｅｍｏｒｙ  ｃａｒｄ）、ＵＳＢメモリ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  ｍｅｍｏｒｙ）等がある。
【００２８】
クライアント端末１１、携帯端末１２は、コンピュータシステム２のハードウェア構成により、後述するような各種処理を実現できる。また、アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、他サービス提供装置２４は、コンピュータシステム２のハードウェア構成により、後述するような各種処理を実現できる。
【００２９】
＜ソフトウェア構成＞
《サービス提供システム》
本実施形態に係るサービス提供システム２０は、例えば図３に示す処理ブロックにより実現される。図３は、サービス提供システムの一例の処理ブロック図である。
【００３０】
サービス提供システム２０は、プログラムを実行することで、サービスアプリ４１、プラットフォーム４２、データ記憶部４３、プラットフォームＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）４４を実現する。
【００３１】
サービスアプリ４１は、プリントサービスアプリ５１、スキャンサービスアプリ５２、その他のサービスアプリ５３を一例として有する。プリントサービスアプリ５１は、例えばクライアント端末１１等から送信されたデータを、画像形成装置１３から出力するサービスを提供するアプリケーションである。スキャンサービスアプリ５２は、例えば画像形成装置１３等でスキャンされたスキャン画像を配信するサービスを提供するアプリケーションである。その他のサービスアプリ５３は、例えば外部のオンラインストレージ等にデータを蓄積するサービス等のその他のサービスを提供するアプリケーションである。
【００３２】
プラットフォーム４２は、認証処理部６１と、組織管理部６２と、ユーザ管理部６３と、機器管理部６４と、ワークフロー制御部６５とを有する。また、ワークフロー制御部６５は、メッセージキュー７１と、ワーカー（Ｗｏｒｋｅｒ）７２とを有する。ワーカー７２は、例えば画像変換や画像送信等の機能を実現する。
【００３３】
認証処理部６１は、クライアント端末１１や画像形成装置１３等のオフィス機器からのログイン要求に基づいて認証処理を実行する。オフィス機器は、クライアント端末１１、携帯端末１２、画像形成装置１３等の総称である。
【００３４】
認証処理部６１は、例えばユーザ情報記憶部８２等にアクセスしてユーザを認証する。また、認証処理部６１は、例えば組織情報記憶部８１や機器情報記憶部８３等にアクセスして画像形成装置１３等を認証する。
【００３５】
組織管理部６２は、例えば組織情報記憶部８１に記憶されている組織情報を管理する。ユーザ管理部６３は、例えばユーザ情報記憶部８２に記憶されているユーザ情報を管理する。機器管理部６４は、例えば機器情報記憶部８３に記憶されている機器情報を管理する。
【００３６】
ワークフロー制御部６５は、サービスアプリ４１からの要求に基づいて、例えば画像処理に関するワークフローを制御する。ワークフロー制御部６５は、例えば処理の要求として処理（ジョブ）に係るリクエストのメッセージを、そのジョブの種類に対応するメッセージキュー７１のキューに投入（キューイング）する。メッセージキュー７１は、処理の種類に対応するキューを有する。
【００３７】
ワーカー７２は、対応するキューを監視している。ワーカー７２は、キューにメッセージが投入されると、対応するジョブの種類に応じた画像変換や画像送信等の処理を行う。なお、キューに投入されたメッセージは、ワーカー７２が主体的に読み出す（Ｐｕｌｌ）ようにしても良く、キューからワーカー７２に提供する（Ｐｕｓｈ）ようにしても良い。
【００３８】
データ記憶部４３は、組織情報記憶部８１と、ユーザ情報記憶部８２と、機器情報記憶部８３と、ジョブ情報記憶部８４と、データストレージ８５とを有する。
【００３９】
組織情報記憶部８１は、例えばデータ項目として、組織ＩＤ、組織名、表示言語、タイムゾーン、状態、国等を有する。ユーザ情報記憶部８２は、例えばデータ項目として、組織ＩＤ、ユーザＩＤ、パスワード、ユーザ名、表示言語、タイムゾーン等を有する。
【００４０】
機器情報記憶部８３は、例えばデータ項目として組織ＩＤ、デバイス認証情報、事業所情報、ケーパビリティ等を有する。ジョブ情報記憶部８４は、例えば処理要求としての処理（ジョブ）に係るリクエストの情報（ジョブ情報）を記憶する。データストレージ８５は、例えばワーカー７２が処理する変換対象のファイル（スキャン画像等）やデータ等を記憶する。
【００４１】
プラットフォームＡＰＩ４４は、プリントサービスアプリ５１、スキャンサービスアプリ５２等のサービスアプリ４１が、プラットフォーム４２を利用するためのインタフェースである。プラットフォームＡＰＩ４４は、サービスアプリ４１からの要求をプラットフォーム４２が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。
【００４２】
プラットフォームＡＰＩ４４は、サービス提供システム２０が複数の情報処理装置で構成される場合、ネットワーク経由で利用可能な例えばＷｅｂ  ＡＰＩにより実現できる。
【００４３】
＜ワークフロー制御部＞
図４は、ワークフロー制御部の一例を示す処理ブロック図である。図４に示すように、ワークフロー制御部６５は、メッセージキュー７１と、ワーカー７２と、プロセス監視部９１と、アプリケーション管理ＤＢ９２と、プロセス管理ＤＢ９３と、ライセンス管理ＤＢ９４とを有する。
【００４４】
図４の例では、ワークフロー制御部６５は、例えばＷｅｂアプリケーションサーバにより構成された例を示している。また、ワーカー７２は、例えばＷｅｂアプリケーションにより構成された例を示している。また、メッセージキュー７１は、キュー７１−１〜７１−３（適宜、「メッセージキュー７１」という）を有し、例えばＷｅｂアプリケーションサーバで動作しているアプリケーションごとに構成された例を示している。メッセージキュー７１には、例えば処理要求として処理（ジョブ）に係るＨＴＴＰリクエスト（ジョブ情報）等が保持される。
【００４５】
図４の例では、ワーカー７２は、例えばＷｅｂアプリケーションサーバで動作するアプリケーションごとのプログラムとして、例えばエンジン９５−１〜９５−３（適宜、「エンジン９５」という）を有している。
【００４６】
エンジン９５は、異なる処理をそれぞれ実行するプロセス１００を１以上生成する。すなわち、１つのエンジン９５では、単一又は複数のプロセス１００が動作する。エンジン９５は、ワークフロー制御部６５が、外部装置に搭載されるアプリケーションの一例として、図４に示すサービスアプリから１以上の処理の要求を受け付けると、１以上の処理の要求に対応する処理（ジョブ）をメッセージキュー７１のキューに割り当てる。エンジン９５は、対応するメッセージキュー７１のキューを監視することで、ジョブの種類に応じたＨＴＭＬ→ＰＤＦ、ＰＤＦ→ＲＰＣＳ等のファイル変換や、画像送信、文字認証（ＯＣＲ）等の割り当てられた処理を行う。
【００４７】
エンジン９５は、初期起動時には、例えば１つのプロセス１００が動作する。図４の例では、エンジン９５−１は、例えばプロセス１００−１〜１００−２（適宜、「プロセス１００」という）を有している。
【００４８】
プロセス１００は、ジョブ登録処理及びジョブ実行処理を行う。プロセス１００は、ジョブ登録処理では、図４に示すサービスアプリ４１からワークフロー制御部６５が受け付けた処理（ジョブ）に係るリクエスト（ジョブ情報）を、対応するメッセージキュー７１のキューに登録することができる。
【００４９】
プロセス１００は、ジョブ実行処理では、対応するメッセージキュー７１からジョブ情報を取得すると、データストレージ８５から対象ファイル（例えば変換対象ファイル）を取得し、ジョブ情報に対応する処理を実行する。なお、処理（ジョブ）に係るリクエスト（ジョブ情報）とは、例えばクライアント端末１１から要求されたファイル変換や画像送信等に関する情報である。
【００５０】
エンジン９５が複数のプロセス１００を有する場合、それぞれのプロセス１００は、同一の処理を実行する。すなわち、同一のエンジン９５では、同一の処理が実行される。したがって、同一のエンジン９５におけるそれぞれのプロセス１００は、例えば異なる入力データに対して、同一のエンジン９５を使用した処理を実行し、異なる出力データを出力する。
【００５１】
例えば、エンジン９５−１が画像変換エンジンである場合、プロセス１００−１〜１００−２は、画像変換に関する同一の処理を実行する。したがって、エンジン９５が有するプロセス１００の数を増やすことで、ワークフロー制御部６５から割り当てられたメッセージキュー７１のリクエストをより迅速に処理することが可能となる。
【００５２】
なお、図４の例では、エンジン９５−１は、対応するメッセージキュー７１として、キュー７１−１が割り当てられ、エンジン９５−２には、キュー７１−２が割り当てられ、エンジン９５−３には、キュー７１−３が割り当てられているものとする。
【００５３】
プロセス監視部９１は、ワークフロー制御部６５により処理が割り当てられたエンジン９５において、起動中の（生成された）プロセス１００が全て処理中である場合には、新たなプロセス１００をエンジン９５に起動（生成）させて、対応する処理を実行させる。
【００５４】
また、プロセス監視部９１は、処理が割り当てられたエンジン９５において、起動中のプロセス１００のうち、処理中でないプロセスがある場合には、処理中でないプロセス１００に対応する処理を実行させる。
【００５５】
また、プロセス監視部９１は、処理が割り当てられたエンジン９５において、対応する処理を実行させた後、起動中のプロセス１００のうち処理中でないプロセスがある場合には、処理中でないプロセスを終了させる。
【００５６】
プロセス監視部９１は、例えば１つのエンジン９５（図４の例ではエンジン９５−１〜９５−３それぞれ）における起動中のプロセス１００の数と、処理中のプロセス１００の数とが一致している場合には、そのエンジン９５で動作するためのプロセス１００を新たに生成する。これにより、処理待ちのジョブを実行することが可能となり、メッセージキュー７１におけるジョブの滞留をなくすことが可能となる。
【００５７】
また、プロセス監視部９１は、例えば１つのエンジン９５における起動中のプロセス１００の数と、処理中のプロセス１００の数とが一致していない場合には、そのエンジン９５で処理中でないプロセス１００を終了する。これにより、不要なプロセス１００の動作によりＣＰＵやメモリの消費を減らすことが可能となる。
【００５８】
なお、プロセス監視部９１は、プロセス１００の生成や終了を判断するため、例えばアプリケーション管理ＤＢ９２から起動中のプロセス数を取得したり、プロセス管理ＤＢ９３からプロセス１００の処理状態を取得したり、更新したりする。また、プロセス監視部９１は、ライセンス管理ＤＢ９４からプロセス１００が使用するライセンスの処理状態を取得したり、更新したりする。
【００５９】
アプリケーション管理ＤＢ９２は、アプリケーション情報を保持及び管理するためのデータベースである。アプリケーション管理ＤＢ９２で管理されるアプリケーション情報については、プロセス監視部９１により登録及び更新される。なお、アプリケーション管理ＤＢ９２の具体例については後述する。
【００６０】
プロセス管理ＤＢ９３は、プロセス情報を保持及び管理するためのデータベースである。プロセス管理ＤＢ９３で管理されるプロセス１００に関するプロセス情報（ジョブ処理状態等）については、エンジン９５により登録及び更新される。なお、プロセス管理ＤＢ９３の具体例については後述する。
【００６１】
ライセンス管理ＤＢ９４は、ライセンス情報を保持及び管理するためのデータベースである。ライセンス管理ＤＢ９４で管理されるライセンス情報は、プロセス１００により登録及び更新される。なお、ライセンス管理ＤＢ９４の具体例については後述する。
【００６２】
なお、図４の例では、メッセージキュー７１と、アプリケーション管理ＤＢ９２と、プロセス管理ＤＢ９３と、ライセンス管理ＤＢ９４とが、ワークフロー制御部６５に含まれている例を示しているがこれには限定されない。メッセージキュー７１を、メッセージキューサーバとして構成しても良く、アプリケーション管理ＤＢ９２と、プロセス管理ＤＢ９３と、ライセンス管理ＤＢ９４を、データベースサーバとして構成しても良い。また、図４に示すデータストレージ８５が、アプリケーション管理ＤＢ９２と、プロセス管理ＤＢ９３と、ライセンス管理ＤＢ９４とを保持する構成としても良い。
【００６３】
＜各種データ例＞
次に、上述した本実施形態における各種データ例について、図を用いて説明する。図５は、各種データ例を説明するための図である。図５（Ａ）は、ジョブ情報の一例を示し、図５（Ｂ）は、アプリケーション管理ＤＢ９２の一例を示し、図５（Ｃ）は、プロセス管理ＤＢ９３の一例を示し、図５（Ｄ）は、ライセンス管理ＤＢ９４の一例を示す。
【００６４】
図５（Ａ）に示すジョブ情報は、例えば「ＩＤ」、「アプリケーションＩＤ」、「ユーザＩＤ」、「組織ＩＤ」、「ジョブ実行タイプ」等の項目を有する。「ＩＤ」は、例えばジョブを一意に識別するための情報である。「アプリケーションＩＤ」は、アプリケーションを一意に識別するための情報である。
【００６５】
「ユーザＩＤ」は、例えばファイル変換等の処理を依頼したユーザを識別するための情報である。「組織ＩＤ」は、ユーザが所属する企業等を識別するための情報である。「ジョブ実行タイプ」は、例えばエンジンを識別するための情報であり、例えばファイル変換等の処理内容に対応した文字列（「ｐｄｆ２ｒｐｃｓ」：ＰＤＦファイルのデータ形式からＲＰＣＳのデータ形式へのデータ変換）等が指定される。
【００６６】
図５（Ｂ）に示すアプリケーション管理ＤＢ９２は、例えば「アプリケーションＩＤ」、「起動中プロセス」等の項目を有する。「アプリケーションＩＤ」は、例えば図５（Ａ）の「アプリケーションＩＤ」に対応し、アプリケーションを一意に識別する情報である。「起動中プロセス数」は、アプリケーションで起動中のプロセス１００の数を示す情報である。
【００６７】
図５（Ｃ）に示すプロセス管理ＤＢ９３は、例えば「プロセスＩＤ」、「アプリケーションＩＤ」、「ライセンスＩＤ」、「ジョブ処理状態」等の項目を有する。「プロセスＩＤ」は、プロセス１００を一意に識別する情報である。「アプリケーションＩＤ」は、プロセス１００が起動されているアプリケーションを一意に識別するための情報である。
【００６８】
「ライセンスＩＤ」は、プロセス１００が使用しているソフトウェアやサービスのライセンスを識別する情報である。例えばプロセス１００がソフトウェアやサービスを使用していない場合には、「ＮＵＬＬ」となる。
【００６９】
「ジョブ処理状態」は、例えばプロセス１００のジョブ処理状態を示す情報である。例えば、ジョブ処理状態が「未処理」の場合には、プロセス１００においてジョブがまだ処理されていない状態を示す。また、「処理中」の場合には、プロセス１００においてジョブが完了していない状態を示す。また、「処理完了」の場合には、プロセス１００においてジョブが処理完了した状態を示す。なお、ジョブ処理状態については、これに限定されるものではない。
【００７０】
図５（Ｄ）に示すライセンス管理ＤＢ９４は、例えば「ライセンスＩＤ」、「利用可能なライセンス数」、「利用済みライセンス数」等の項目を有する。「ライセンスＩＤ」は、例えば図５（Ｃ）の「ライセンスＩＤ」に対応し、ライセンスを一意に識別する情報である。「利用可能なライセンス数」は、利用可能なライセンスの数量を示す情報である。「利用済みライセンス数」は、利用済のライセンスの数量を示す情報である。
【００７１】
上述した各種データを用いることで、プロセス監視部９１によりプロセス１００の生成処理及び終了処理が実行される。以下、フローチャートを用いて一例について説明する。
【００７２】
＜プロセス生成処理＞
図６は、プロセス生成処理の一例を示すフローチャートである。図６の例では、プロセス監視部９１がエンジン９５ごとにプロセス１００の処理状態（実行状態）を監視し、プロセス１００の生成が必要であると判断した場合にプロセス１００の生成を実行する。なお、図６に示すフローチャートは、起動中のエンジン９５ごとにプロセス１００の処理状態を監視し、プロセス１００の生成を実行する。
【００７３】
具体的には、図６に示すように、プロセス監視部９１は、例えばＷｅｂアプリケーションによりワーカー７２が起動すると、エンジン９５ごと（例えばエンジン９５−１）に、アプリケーション管理ＤＢ９２から起動中のプロセス数を取得する（Ｓ１０）。
【００７４】
次に、プロセス監視部９１は、例えばアプリケーションＩＤに基づき、プロセス管理ＤＢ９３から「ジョブ処理状態」が「処理中」のレコードの数（ジョブ処理中プロセス数）を取得する（Ｓ１１）。
【００７５】
次に、プロセス監視部９１は、起動中のプロセス数と、ジョブ処理中プロセス数とを比較し、起動中のプロセス数とジョブ処理中プロセス数とが一致するか判断する（Ｓ１２）。
【００７６】
プロセス監視部９１は、起動中のプロセス数と、ジョブ処理中プロセス数とが一致すると判断した場合に（Ｓ１２において、ＹＥＳ）、プロセス１００がライセンスが必要なソフトウェア又はＷｅｂサービス等を使用しているか判断する（Ｓ１３）。
【００７７】
ここで、プロセス監視部９１は、ライセンスが必要なソフトウェアやＷｅｂサービス等を使用していると判断すると（Ｓ１３において、ＹＥＳ）、ライセンス管理ＤＢ９４から利用可能なライセンス数と、利用中のライセンス数（利用済みライセンス数）を取得する（Ｓ１４）。Ｓ１３〜Ｓ１４の処理では、プロセス１００が、ライセンス制限のあるソフトウェアやサービス等を使用している場合もあるため、ライセンス違反を防止するために確認を行う。
【００７８】
プロセス監視部９１は、利用中のライセンス数が利用可能なライセンス数よりも少ないか判断し（Ｓ１５）、利用中のライセンス数が少ないと判断すると（Ｓ１５において、ＹＥＳ）、プロセス１００を生成する（Ｓ１６）。なお、プロセス１００がライセンスが必要なソフトウェア又はＷｅｂサービス等を使用していないと判断した場合にも（Ｓ１３において、ＮＯ）、Ｓ１６の処理に進む。
【００７９】
また、Ｓ１２の処理で、プロセス監視部９１は、起動中のプロセス数とジョブ処理中プロセス数とが一致しないと判断すると（Ｓ１２において、ＮＯ）、エンジン９５に対応するメッセージキュー７１に保持されているジョブ情報（例えば図５（Ａ））を参照する。
【００８０】
ここで、プロセス監視部９１は、ジョブ情報から処理待ちジョブの法人契約ライセンス情報を確認する（Ｓ１７）。なお、処理待ちジョブは、例えばメッセージキュー７１の最初に登録されているものである。
【００８１】
プロセス監視部９１は、ジョブ情報に含まれている組織ＩＤ等に対応して設定されている法人契約ライセンス情報を取得し、法人契約ライセンスが優先的に処理するプレミアライセンスか判断する（Ｓ１８）。本実施形態では、予め契約ライセンスの種類に応じて優先度を設け、プレミアムライセンスは、その契約ライセンスの優先度が、他のライセンスよりも高いものを示している。
【００８２】
プロセス監視部９１は、プレミアライセンスであると判断すると（Ｓ１８において、ＹＥＳ）、Ｓ１３の処理に進む。これにより、プレミアムライセンスを有するユーザのジョブを優先的に処理することが可能となる。
【００８３】
また、プロセス監視部９１は、プレミアライセンスではないと判断すると（Ｓ１８において、ＮＯ）、処理を終了する。なお、Ｓ１５の処理で、プロセス監視部９１は、利用中のライセンス数が利用可能なライセンス数よりも少なくない（利用可能なライセンス数と一致している）と判断すると（Ｓ１５において、ＮＯ）、処理を終了する。プロセス監視部９１は、次に起動中のエンジン（例えばエンジン９５−２）について判断する。
【００８４】
上述したように、起動中のプロセス数と、ジョブ処理中プロセス数とが一致した場合や、ライセンス制限がない場合には、プロセス１００を生成する。
【００８５】
なお、プロセス監視部９１は、例えばアプリケーション管理ＤＢ９２で「起動中のプロセス数」が、予め指定した起動プロセス数の上限値に達したと判断した場合に、プロセス１００を生成しないように制御しても良い。これにより、エンジン９５においてプロセス１００が大量に起動することにより、実行中のジョブの処理時間が長くなるのを防止することが可能となる。
【００８６】
また、プロセス１００がジョブを実行した曜日や日時等のジョブ実行履歴をデータベースに登録し、プロセス監視部９１は、ジョブ実行履歴に基づき、例えば現在の時間帯でジョブの処理に必要なプロセス数を予測し、不足分のプロセス１００を生成しても良い。これにより、ジョブの実行数が多い時間帯において、ジョブの実行までの時間を短縮することが可能となる。
【００８７】
＜プロセス終了処理＞
図７は、プロセス終了処理の一例を示すフローチャートである。図７の例では、プロセス監視部９１が起動中のエンジン９５ごとにプロセス１００の処理状態（実行状態）を監視し、プロセス１００の終了が必要であると判断した場合にプロセス１００の終了を実行する。
【００８８】
具体的には、図７に示すように、プロセス監視部９１は、例えばワーカー７２が起動した後、所定時間が経過すると、エンジン９５ごと（例えばエンジン９５−１）に、アプリケーション管理ＤＢ９２から起動中のプロセス数を取得する（Ｓ２０）。
【００８９】
次に、プロセス監視部９１は、例えばアプリケーションＩＤに基づき、プロセス管理ＤＢ９３から「ジョブ処理状態」が「処理中」のレコードの数（ジョブ処理中プロセス数）を取得する（Ｓ２１）。
【００９０】
次に、プロセス監視部９１は、起動中のプロセス数と、ジョブ処理中プロセス数とを比較し、起動中のプロセス数とジョブ処理中プロセス数とが一致するか判断する（Ｓ２２）。
【００９１】
プロセス監視部９１は、起動中のプロセス数と、ジョブ処理中プロセス数とが一致しないと判断した場合（Ｓ２２において、ＮＯ）、ジョブを処理するのに十分な数のプロセス１００は起動していると判断して、ジョブを実行していないプロセス１００（「ジョブ処理状態」が「未処理」、「処理完了」のプロセス）を終了する（Ｓ２３）。また、Ｓ２２の処理で、プロセス監視部９１は、起動中のプロセス数と、ジョブ処理中プロセス数とが一致していると判断した場合（Ｓ２２において、ＹＥＳ）、処理を終了する。なお、プロセス監視部９１は、次に起動中のエンジン（例えばエンジン９５−２）について判断する。
【００９２】
上述したように、ジョブを実行していないプロセス１００を終了することで、不要なプロセスの動作しないように制御することが可能となる。
【００９３】
上述した実施形態によれば、アプリケーション内部のエンジンごとに起動中のプロセスがリクエストを実行しているか監視し、起動中の全てのプロセスがリクエストを実行している場合に、新たなプロセスを生成し、キューからリクエストを取り出し実行させる。これにより、処理効率を向上させることが可能となる。
【００９４】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００９５】
１  情報処理システム
１０  オフィス
１１  クライアント端末
１２  携帯端末
１３  画像形成装置
２０  サービス提供システム
２１  アクセス制御装置
２２  プリントサービス提供装置
２３  スキャンサービス提供装置
２４  他サービス提供装置
３１  入力装置
３２  表示装置
３３  ＲＡＭ
３４  ＲＯＭ
３５  ＨＤＤ
３６  ＣＰＵ
３７  通信Ｉ／Ｆ
３８  外部Ｉ／Ｆ
３８Ａ  記録媒体
４１  サービスアプリ
４２  プラットフォーム
４３  データ記憶部
５１  プリントサービスアプリ
５２  スキャンサービスアプリ
５３  その他のサービスアプリ
６１  認証処理部
６２  組織管理部
６３  ユーザ管理部
６４  機器管理部
６５  ワークフロー制御部（処理フロー制御手段の一例）
７１  メッセージキュー
７２  ワーカー
８１  組織情報記憶部
８２  ユーザ情報記憶部
８３  機器情報記憶部
８４  ジョブ情報記憶部
８５  データストレージ
９１  プロセス監視部（プロセス監視手段の一例）
９２  アプリケーション管理ＤＢ
９３  プロセス管理ＤＢ
９４  ライセンス管理ＤＢ
９５  エンジン（処理手段の一例）
１００  プロセス
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２００８−１５２７７０号公報
【図１】
2015176321.tif 000003
【図２】
2015176321.tif 000004
【図３】
2015176321.tif 000005
【図４】
2015176321.tif 000006
【図５】
2015176321.tif 000007
【図６】
2015176321.tif 000008
【図７】
2015176321.tif 000009