JP2017084129A - 情報処理システム、情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理システム、情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2017084129A
JP2017084129A JP2015212228A JP2015212228A JP2017084129A JP 2017084129 A JP2017084129 A JP 2017084129A JP 2015212228 A JP2015212228 A JP 2015212228A JP 2015212228 A JP2015212228 A JP 2015212228A JP 2017084129 A JP2017084129 A JP 2017084129A
Authority
JP
Japan
Prior art keywords
request
job
unit
execution
reservation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015212228A
Other languages
English (en)
Inventor
本田 正
Tadashi Honda
正 本田
熊谷 政輝
Masateru Kumagai
政輝 熊谷
西川 幸一郎
Koichiro Nishikawa
幸一郎 西川
智哉 網倉
Tomoya Amikura
智哉 網倉
洋一 宇都宮
Yoichi Utsunomiya
洋一 宇都宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2015212228A priority Critical patent/JP2017084129A/ja
Publication of JP2017084129A publication Critical patent/JP2017084129A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】処理の遅延を抑制可能な情報処理システム、情報処理装置、情報処理方法およびプログラムを提供する。【解決手段】データ変換システム100では、印刷ジョブ管理サーバのフロントエンドアプリケーション102aからの要求に従い、印刷関連のジョブを非同期変換サーバ101で実行する。データ変換要求管理部111は、ジョブ処理の要求を受付け、メッセージキュー112にジョブを登録する。この時、ジョブの開始日時を予約されたジョブは、メッセージキュー114に入れられる。起動部122は、予約されたジョブの開始日時に専用実行部(第1の実行部)121を起動し、予約ジョブが実行される。なお、予約ジョブ以外のジョブは、メッセージキュー113−1〜nに入れられ、それぞれの実行部(第2の実行部)120−1〜nで実行される。【選択図】図5

Description

本発明は、情報処理システム、情報処理装置、情報処理方法およびプログラムに関する。
近年、様々なクラウドサービスが市場に出始めている。例えば、クラウドコンピューティング型のプリントサービスやスキャンサービスが提供されている。これらのサービスは、認証機能、ドキュメント処理機能、ライセンス管理機能、および、ロギング機能などの共通機能を利用して実現される場合がある。このような共通機能を含むプラットフォームを商品開発者へ提供することで、開発効率の向上や、機能開発の二重投資を回避できる。
ドキュメント処理機能は、例えば、ユーザからドキュメントを処理するジョブの投入を受け付け、処理エンジンに対応したキューへキューイングし、非同期に処理を実行していく機能である。処理エンジンとしては、ファイルフォーマット変換、OCR(Optical Character Recognition)、画像加工、外部ストレージへのアップロード、および、メール配信などが存在する。
しかしながら、従来の技術では、ドキュメント処理などの対象となるジョブの処理が遅延する場合があった。例えば、あるユーザが大量のドキュメントを処理する場合、他のユーザのジョブの処理が遅くなる場合があった。
本発明は、上記に鑑みてなされたものであって、処理の遅延を抑制可能な情報処理システム、情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、処理の予約を要求する第1の要求、および、前記処理の実行を要求する第2の要求を受付ける受付部と、前記第1の要求および前記第2の要求を記憶部に記憶させる記憶制御部と、記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約された前記処理を実行する第1の実行部と、記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約されていない前記処理を実行する第2の実行部と、記憶された前記第1の要求に基づき、前記第1の実行部を起動する起動部と、を備える。
本発明によれば、処理の遅延を抑制可能になるという効果を奏する。
クラウドプリントサービスの一例を表した模式図である。 クラウドプリントサービスを実現する情報処理システムの構成例を示すブロック図である。 コンピュータシステムの一例のハードウェア構成図である。 クラウドプリントサービスの手順の一例を表したフローチャートである。 本実施形態のデータ変換システムの構成例を示すブロック図である。 データ変換要求管理部の機能構成の一例を示すブロック図である。 ジョブ情報テーブルのデータ構造の一例を示す図である。 本実施形態におけるジョブ登録処理の一例を示すフローチャートである。 予約ジョブ情報のデータ構造の一例を示す図である。 予約キューの例を示す図である。 ジョブ情報の振り分け手順の一例を説明する図である。 本実施形態における予約実行処理の一例を示すフローチャートである。 予約画面の一例を示す図である。
以下に添付図面を参照して、この発明にかかる情報処理システム、情報処理装置、情報処理方法およびプログラムの一実施形態を詳細に説明する。
<クラウドプリントサービス>
図1は、クラウドプリントサービスの一例を表した模式図である。クラウドプリントサービスとは、クラウドコンピューティング型のプリントサービスである。ステップS1において、インプット側機器の一例としてのPC(パーソナルコンピュータ)12は、例えばワードプロセッサアプリケーションなどで作成した電子文書ファイルをクラウド10上のサーバ11にアップロードする。
ステップS2において、サーバ11は、アップロードされた電子文書ファイルを例えばRPCS(株式会社リコーが開発したページ記述言語)のプリントデータに変換する。アウトプット側機器の一例としてのMFP(複合機)13は、ステップS3において、クラウド10上からプリントデータを受信し、出力する。
クラウド10側から見ると、PC12とMFP13とはクライアントとなる。クライアントであるPC12とMFP13とは、クラウド10上のサーバ11と通信を行い、所与の目的を達成する。
クラウドプリントサービスではクラウド10上でデータ変換処理を行うため、クライアントであるPC12にデータ変換エンジンを持つ必要がない。ところが、クラウド10側で用意するデータ変換エンジンは多種多様な電子文書ファイルに対応する必要がある。また、電子文書ファイルの種類は今後も増えていく可能性がある。出力に関しても、データ変換エンジンは、アウトプット側機器がMFP13である場合の他、プロジェクタ、または、全く未知の機器への出力に対応する可能性がある。さらに、データ変換エンジンは、別のクラウドサービスで利用できるデータ形式に対応する可能性もあり得る。
このような事情は、データ変換処理と同様、何らかの処理を実行するクラウド10側において共通の課題であると言える。例えばMFP13でスキャンした画像をクラウド10側でOCR処理して、別のクラウドサービスが提供するオンラインストレージに保存する場合も共通の課題を有する。
また、別のクラウドサービスが提供するオンラインストレージからファイルを読み出してプリントデータ(印刷ファイル)への変換やOCR処理などのデータ変換処理を行う場合も共通の課題を有する。
以下では、クラウドプリントサービスを一例として説明するが、クラウドプリントサービスに限定されるものではない。例えば上記したようなMFP13でスキャンした画像をクラウド10側でOCR処理して、別のクラウドサービスが提供するオンラインストレージに保存する処理にも適用可能である。また、上記したようなクラウドサービスが提供するオンラインストレージからファイルを読み出してプリントデータへの変換やOCR処理などを行う処理にも適用可能である。
図1に示すクラウドプリントサービスは、図2に示すようなクラウドコンピューティング型の情報処理システムで構成される。図2は、クラウドプリントサービスを実現する情報処理システムの構成例を示すブロック図である。
ローカル側にはPC12、MFP13が存在する。PC12およびMFP13は、LANなどのネットワーク上のゲートウェイ等に設置されているファイヤウォール103を介してインターネットなどのネットワークに接続する。なお、クラウドプリントサービスではPC12とMFP13とが同一のネットワーク上にあってもよいし、なくてもよい。以下ではPC12とMFP13とが同一のネットワーク上にないと仮定して説明する。
図2において、クラウド側は、データ変換システム100、印刷ジョブ管理サーバ102、リバースプロキシ104、認証サーバ105および認証用データベース106を有する構成である。
データ変換システム100は、非同期変換サーバ101、共有ファイルストレージ107およびジョブ情報管理データベース108を有する。なお、共有ファイルストレージ107は、データ変換システム100の外側に置く設計としてもよい。さらに、図5に示すように、ジョブ情報管理データベース108は非同期変換サーバ101の一部として含まれる構成としてもよい。
ローカル側の機器であるPC12、MFP13は、リバースプロキシ104によって通信が仲介されることで、クラウド側のサーバ群やストレージの内部構造を意識した処理や通信をする必要がない。また、認証サーバ105と認証用データベース106とは、ユーザおよび/またはローカル側の機器であるPC12、MFP13の認証を行う。
データ変換システム100と印刷ジョブ管理サーバ102とは、ローカル側の機器であるPC12がアップロードした印刷ジョブを管理/登録する。ローカル側の機器であるMFP13から印刷要求があった場合、データ変換システム100と印刷ジョブ管理サーバ102とはプリントデータをMFP13に送信する。
印刷ジョブには、ワードプロセッサアプリケーションなどで作成した電子文書ファイルが含まれる。データ変換システム100は、印刷ジョブに含まれる電子文書ファイルを例えばMFP13で出力可能なデータ形式(ページ記述言語(PDL))の電子データであるプリントデータに変換する。
<ハードウェア構成>
非同期変換サーバ101、印刷ジョブ管理サーバ102、認証サーバ105、および、PC12は、例えば図3に示すようなハードウェア構成のコンピュータシステムにより実現される。
図3は、コンピュータシステムの一例のハードウェア構成図である。コンピュータシステム300は、入力装置301、表示装置302、外部I/F(インタフェース)303、RAM(Random Access Memory)304、ROM(Read Only Memory)305、CPU(Central Processing Unit)306、通信I/F307、およびHDD(Hard Disk Drive)308などを備え、それぞれがバスBで相互に接続されている。
入力装置301は、キーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置302は、ディスプレイ等を含み、コンピュータシステム300による処理結果を表示する。タッチパネルの機能とディスプレイの機能とを備える操作パネルなどにより、入力装置301と表示装置302を一体に構成してもよい。
通信I/F307は、コンピュータシステム300をネットワークに接続するインタフェースである。これにより、コンピュータシステム300は、通信I/F307を介してデータ通信を行うことができる。
HDD308は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム300全体を制御する基本ソフトウェアであるOS(Operating System)や、OS上において各種機能を提供するアプリケーションソフトウェアなどがある。
HDD308は、格納しているプログラムやデータを所定のファイルシステムおよび/またはDB(データベース)により管理している。外部I/F303は、外部装置とのインタフェースである。外部装置には、記憶媒体303aなどがある。これにより、コンピュータシステム300は、外部I/F303を介して記憶媒体303aの読み取りおよび/または書き込みを行うことができる。記憶媒体303aにはフレキシブルディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory card)、および、USBメモリ(Universal Serial Bus memory)などがある。
ROM305は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM305には、コンピュータシステム300の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、およびネットワーク設定などのプログラムやデータが格納されている。RAM304は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU306は、ROM305やHDD308などの記憶装置からプログラムやデータをRAM304上に読み出し、処理を実行することで、コンピュータシステム300全体の制御や機能を実現する演算装置である。
非同期変換サーバ101、印刷ジョブ管理サーバ102、認証サーバ105、および、PC12は、コンピュータシステム300のハードウェア構成により、後述するような各種処理を実現できる。
図2に示した情報処理システムの利用例について図4を参照して説明する。図4はクラウドプリントサービスの手順の一例を表したフローチャートである。
ステップS101において、ユーザは、PC12からクラウドプリントサービスにログインする。認証処理は、認証サーバ105が実行する。ステップS102において、ユーザは、印刷したい電子文書ファイルを、PC12からクラウドプリントサービスにアップロードする。ステップS102の処理が印刷ジョブの登録である。印刷ジョブの登録処理は、印刷ジョブ管理サーバ102が実行する。ここまでがPC12から行われる手順である。
印刷ジョブが登録されると、本実施形態のクラウドプリントサービスは、バックグラウンドでデータ変換処理を行う。つまり、クラウドプリントサービスは非同期処理の一例としてデータ変換処理を実現している。
ステップS103において、印刷ジョブ管理サーバ102は、登録された電子文書ファイルのデータ変換をデータ変換システム100に依頼する。ここで行われるデータ変換処理の詳細については後述する。
ユーザは、印刷する場合、MFP13にて以下の一連の手順を行う。ステップS104において、クラウド側は、MFP13がクラウドプリントサービスに対応の機器であるかを確かめる。ステップS104の処理は、機器としての認証である。次に、ステップS105において、ユーザは、MFP13を操作してクラウドプリントサービスにログインする。ステップS105の処理は、ユーザとしての認証である。
認証後、MFP13は、ステップS106においてジョブ一覧をクラウドプリントサービスから取得し、操作パネルなどの表示装置に表示する。次にユーザは、ステップS107において、表示されているジョブ一覧の中から印刷を所望する印刷ジョブを選択する。
ユーザにより印刷ジョブを選択されると、MFP13は、ステップS108においてクラウドプリントサービスから印刷ジョブを取得し、出力する。クラウドプリントサービスは、PC12にMFP13のプリンタドライバ(データ変換エンジン)を用意する必要がないので、例えば、会議資料を作成/アップロードしておき、海外出張時に現地で印刷するような用途に有効である。
<データ変換システム>
本実施形態に係るデータ変換システム100は、多種多様なデータ変換要求に応えるため、また、データ変換要求の種類の増加に柔軟に対応するため、以下に説明する構成を備える。図5に、データ変換システム100の機能構成を示す。図5は本実施形態のデータ変換システムの構成例を示すブロック図である。
図5に示すように、データ変換システム100は、フロントエンドアプリケーション102aと、共有ファイルストレージ107と、非同期変換サーバ101とを含む。フロントエンドアプリケーション102aは、印刷ジョブ管理サーバ102の一機能である。非同期変換サーバ101は、非同期変換サービスを提供する。また、非同期変換サーバ101は、データ変換要求管理部111と、メッセージキュー112と、ジョブ情報管理データベース108と、複数の実行部120−1〜120−n(第2の実行部)と、専用実行部121(第1の実行部)と、起動部122と、を含む。実行部120−1〜120−nを区別する必要がない場合は単に実行部120という場合がある。
印刷ジョブ管理サーバ102は、インプット側機器の一例としてのPC12から送信された印刷ジョブを受信して、印刷ジョブに含まれる電子文書ファイル等を共有ファイルストレージ107に登録する機能を備える。また、印刷ジョブ管理サーバ102は、必要なファイル変換を判断して、データ変換システム100に変換を実行させる制御を行う。
データ変換システム100は、処理の単位であるタスクを定義し、複数のタスクをジョブとして取り扱う。データ変換システム100は、メッセージキュー112にジョブを登録しておき、実行部120がジョブを一つずつ処理していく。実行部120は例えば、タスクを実行するプロセスやスレッドであるWorkerにより実現される。
変換後のファイルは、共有ファイルストレージ107に登録される。例えばアウトプット側機器の一例としてのMFP13から印刷ジョブの出力指示を受信すると、印刷ジョブ管理サーバ102は、共有ファイルストレージ107に登録された変換後のファイルをMFP13に送信する。
フロントエンドアプリケーション102aは、出力指示の実行に必要なファイル変換を判断する機能を備える。フロントエンドアプリケーション102aは、例えば電子ファイルがドキュメントファイルであり、出力指示を送信するMFP13がRPCS対応の機種である場合、ドキュメントファイルのデータ形式からRPCSのデータ形式へのデータ変換が必要と判断する。
フロントエンドアプリケーション102aは、判断したデータ変換の種類を例えば「type=doc2rpcs」のようなパラメータにして、非同期変換サーバ101に送信するリクエスト(ジョブ)に埋め込む。
同様に、フロントエンドアプリケーション102aは、変換元のデータのURI(Uniform Resource Indicator)もパラメータとしてリクエストに埋め込む。URIは共有ファイルストレージ107におけるデータの存在する場所の情報である。
非同期変換サーバ101では、データ変換要求管理部111が、データ変換の種類とデータのURIを少なくとも含むリクエストを受け取る。データ変換要求管理部111は、データ変換に係るリクエストを解析して、データ変換の種類に合致するメッセージキュー112に、ジョブ(メッセージ)を入れる。
データ変換要求管理部111は、メッセージキュー112へメッセージを入れることと同時に並行して、ジョブ情報管理データベース108に、当該リクエストの情報を登録または更新する。
ジョブ情報管理データベース108に登録される情報は、ファイルの場所(共有ファイルストレージ107上のURI)、リクエストに含まれるデータ変換の種類、および、当該リクエストの状態などである。リクエストの状態としては「データ変換実行中」「データ変換中継中」「データ変換完了」などがある。リクエストの状態は、データ変換の処理状況を示すステータスを表す。
メッセージキュー112は、複数の実行部120、専用実行部121、および、起動部122に対応するキューを有する。例えば、メッセージキュー113−1〜113−nは、実行部120−1〜120−nにそれぞれ対応する。メッセージキュー114および115は、専用実行部121および起動部122にそれぞれ対応する。図5では実行部120、専用実行部121、および、起動部122と、メッセージキュー112が有するキューと、が一対一に対応する例を示しているが、多対多に対応していてもよい。
各実行部120は、その実行部120に対応するキューを監視しており、キューにメッセージが入ると、ジョブ情報管理データベース108に登録された、そのメッセージに対応するリクエストの情報を取りに行く。各実行部120は、ジョブ情報管理データベース108から取得したリクエストの情報に含まれるURIに基づいて、共有ファイルストレージ107上のデータを取得する。
そして、各実行部120は取得したデータの変換を行う。各実行部120は、変換後のデータを共有ファイルストレージ107上に登録し、ジョブ情報管理データベース108上に登録されたリクエストの情報を書き換えて更新する。また、複数の実行部120が連携してデータ変換する場合、各実行部120はデータ変換した後、新たなメッセージを次にデータ変換を行う実行部120のキューに入れる。
専用実行部121は、予約されたジョブ(以下、予約ジョブと呼ぶ)を実行するための実行部である。例えば大量のジョブを実行する必要がある場合、ユーザは、開始日時などを指定して当該ジョブの実行を事前に予約する。専用実行部121は、このようにして予約されたジョブを実行するように制御される。専用実行部121が実行するジョブの情報は、メッセージキュー114に記憶される。メッセージキュー114は、以下では専用キューという場合がある。
起動部122は、ジョブの予約の要求(リクエスト)に従い、専用実行部121を起動する。例えば起動部122は、ジョブの予約のリクエストを記憶するメッセージキュー115を監視し、少なくともジョブの予約時に指定された予約期間(開始日時から終了日時までの期間)、専用実行部121を起動する。起動部122は、要求されたジョブの種類に応じて、当該種類の処理を実行する専用実行部121を起動してもよい。起動部122は、例えばジョブの種類に応じた複数の専用実行部121を起動してもよい。メッセージキュー115は、ジョブの予約のリクエストを記憶するキューであるため、以下では予約キューという場合がある。
専用実行部121および起動部122は、実行部120と同様にWorkerにより実現されてもよい。
なお、認証用データベース106、共有ファイルストレージ107、ジョブ情報管理データベース108、および、メッセージキュー112は、HDD(図3ではHDD308)、RAM(図3ではRAM304)、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
図6は、データ変換要求管理部111の詳細な機能構成の一例を示すブロック図である。図6に示すように、データ変換要求管理部111は、受付部601と、記憶制御部602と、判定部603と、通信制御部604と、を備えている。
受付部601は、フロントエンドアプリケーション102aなどの外部の機能から、各種情報を受付ける。例えば受付部601は、上記のようなデータ変換の種類とデータのURIを少なくとも含むリクエスト(第2の要求)を受付ける。また受付部601は、ジョブの予約のリクエスト(第1の要求)を受け付ける。
記憶制御部602は、受け付けられたリクエストなどの情報を、HDD308、および、RAM304などの記憶部に記憶させる処理を制御する。例えば記憶制御部602は、ジョブの予約のリクエスト、および、ジョブの実行のリクエストなどを、記憶部の一例であるメッセージキュー112に記憶させる。
また、記憶制御部602は、ジョブについてのリクエスト(以下、ジョブ情報と呼ぶ)をジョブ情報テーブルに記憶する。ジョブ情報テーブルは、例えばジョブ情報管理データベース108に含まれる。
図7は、ジョブ情報テーブルのデータ構造の一例を示す図である。図7に示すように、ジョブ情報テーブルは、ジョブIDと、種類と、テナント/ユーザと、タスクパラメータと、ステータスと、を含む。ジョブIDは、ジョブを識別する情報である。
種類は、ジョブの種類を表す。予約ジョブを表す場合は、種類として「reservation」が設定される。予約されていない通常のジョブ(以下、通常ジョブと呼ぶ)の場合、種類は、データ変換の種類を示す値(「doc2rpcs」、「pdf2rpcs」、「ocr」など)が設定される。
テナント/ユーザは、ジョブの送信元である組織やユーザを示す。テナント/ユーザは、例えば、ユーザのテナントを識別する情報であるテナントID、および、ユーザを識別する情報であるユーザIDなどである。
タスクパラメータは、ジョブの処理で用いられるパラメータである。予約ジョブの場合、予約した開始日時や終了日時などをタスクパラメータに設定してもよい。ステータスは、上記のようにジョブの処理状態を示す。例えば、ジョブ受付(accepted)、ジョブ処理中(doing)、ジョブ完了(done)、および、エラー(error)などがステータスとして設定される。
図7に示すジョブ情報テーブルのデータ構造は一例であり、この他の情報をジョブ情報テーブルに記憶してもよい。例えば、ジョブを受け付けた日時をさらに記憶してもよい。
判定部603は、受け付けられたリクエストが、ジョブの予約のリクエストであるか、または、ジョブの実行のリクエストであるかを判定する。また判定部603は、ジョブの実行のリクエストの場合、さらに、事前に予約されたジョブの実行のリクエストであるかを判定する。
通信制御部604は、フロントエンドアプリケーション102aなどの外部の機能との間の通信を制御する。例えば通信制御部604は、ジョブを受け付けたことを示す通知、および、重複する予約があったことを示す通知などを、フロントエンドアプリケーション102aを介して、PC12に送信する。
次に、このように構成された本実施形態にかかる情報処理システムによるジョブ登録処理について図8を用いて説明する。図8は、本実施形態におけるジョブ登録処理の一例を示すフローチャートである。
最初に受付部601は、ユーザによりPC12などを介して指定されたジョブについてのリクエスト(ジョブ情報)を受け付ける(ステップS201)。判定部603は、受付けられたジョブ情報が、ジョブを予約するリクエスト(以下、予約ジョブ情報と呼ぶ)であるか否かを判定する(ステップS202)。
図9は、予約ジョブ情報のデータ構造の一例を示す図である。図9に示すように、予約ジョブ情報では、ジョブの種類(type)を示す値として「reservation」が設定される。また、ジョブのパラメータ(params)として、開始日時(start_at)、終了日時(end_at)、および、実行する処理(jobType)が設定される。
例えば、「今日中に月末の伝票OCRスキャンを確実に終わらせたいので、2時から4時までは誰にも邪魔されずに集中的に作業したい」というユーザニーズが想定される。他のユーザのOCRジョブも投入されるため、専用実行部121が存在しない構成では、当日中に処理することが困難になる場合がある。従って、2時から4時の間だけOCRジョブを実行する専用の実行部を用意して、他のユーザのOCRジョブが投入されない状態を保証し、集中的に処理をする機能を提供することが望ましい。本実施形態では、このような機能を実現するために、ジョブの予約を実行可能とし、予約されたジョブを実行する専用実行部121を備えるように構成している。そして、予約のためのジョブ情報は、図9のように開始日時(start_at)、終了日時(end_at)および実行する処理(jobType)を指定できるデータ構造となっている。
なお、通常ジョブの実行のためのリクエスト(ジョブ情報)は、例えば、図9と同様のデータ構造としてもよいし、他のデータ構造としてもよい。図9と同様のデータ構造とする場合は、例えば、ジョブの種類(type)に「reservation」以外の値を設定し、パラメータ(params)内の各項目(開始日時(start_at)、終了日時(end_at)、実行する処理(jobType))に「null」などの固定値を設定してもよい。
図8に戻り、ジョブ情報が予約ジョブ情報であった場合(ステップS202:Yes)、予約処理(ステップS203〜ステップS206)が実行される。予約処理は、予約ジョブ情報で予約が要求されたジョブを予約する処理である。まず記憶制御部602は、予約キューから、以前に予約されたジョブの一覧(以下、予約ジョブ一覧と呼ぶ)を取得する(ステップS203)。後述するようにジョブ情報テーブルにも同じ情報が格納されているが、ジョブ情報テーブルには「type」が「reservation」以外のジョブも格納されているので、予約キューを参照した方が効率よく処理できる。
判定部603は、予約ジョブ一覧に含まれる予約の中に、受け付けた予約ジョブ情報と予約期間が重複する予約があるか否かを判定する(ステップS204)。例えば判定部603は、取得した予約ジョブ一覧に、受け付けた予約ジョブ情報に対して、開始日時と終了日時で表される予約期間が重複し、かつ、実行する処理(jobType)が同じ予約ジョブが含まれるか判定する。
重複する予約がある場合(ステップS204:Yes)、通信制御部604は、重複する予約があることを、例えばフロントエンドアプリケーション102aを介して、ジョブ情報の送信元(PC12など)に送信する(ステップS205)。重複する予約がない場合(ステップS204:No)、判定部603は、予約ジョブの予約キューへの挿入位置を決定する(ステップS206)。
図7のジョブ情報テーブルで示される例のように、ジョブID=「0002」、「0005」、「0006」の3つの予約ジョブが既に予約キューに格納されているとする。図10の左に示すキューは、この場合の予約キューの例を示す図である。この例に示すように、記憶制御部602は、開始日時の順に予約ジョブの情報を予約キューに記憶してもよい。なお、図10はジョブIDのみを記載しているが、ジョブID以外の情報を記憶してもよい。例えば図7のジョブ情報テーブルと同じ情報を予約キューが記憶してもよい。
キューが図10の左に示す状況で、新たにジョブID=「0007」の予約ジョブが投入されたとする。開始日時と終了日時を考慮すると、この予約ジョブは、ジョブID=「0002」の予約ジョブと、ジョブID=「0005」の予約ジョブとの間に実行する必要がある。従って、判定部603は、図10の右のキューのように、新たな予約ジョブの挿入位置を2番目に決定する。
以上で予約処理は完了する。既に予約ジョブであることがわかっており、後段の予約確認を実施する必要がないので、ジョブ情報の蓄積(ステップS210)へ進む。
ステップS202で、ジョブ情報が予約ジョブ情報でないと判定された場合(ステップS202:No)、予約確認処理(ステップS207〜ステップS209)が実行される。予約確認処理は、実行が要求されたジョブが、予約済みのジョブであるかを確認する処理である。受け付けられたジョブ情報が予約ジョブ情報でない場合、当該ジョブ情報は、予約済みのジョブを予約期間中に実行するために投入されたジョブ(以下、専用ジョブと呼ぶ)、または、通常ジョブのいずれかである。予約確認処理では、ジョブ情報をこれらのいずれかに振り分ける。
記憶制御部602は、予約キューから予約ジョブ一覧を取得する(ステップS207)。判定部603は、受け付けたジョブ情報が予約済みのジョブであるか否かを判定する(ステップS208)。例えば判定部603は、予約ジョブ一覧に含まれる予約ジョブから、現在時刻が予約期間に含まれ、かつ、ユーザと実行する処理(jobType)が一致する予約ジョブを探し出す。ユーザが一致するかは、例えば、ユーザのテナントを識別する情報であるテナントID(図9の例では「organization_id」)、および、ユーザを識別する情報であるユーザID(図9の例では「user_id」)などを用いて判定できる。
予約ジョブでない場合(ステップS208:No)、通常ジョブなので、ステップS210へ進む。予約ジョブである場合(ステップS208:Yes)、記憶制御部602は、専用キューに振り分けるためにジョブの種類(type)を書き換える(ステップS209)。例えば記憶制御部602は、元の「type」の後に予約者(予約したユーザ)のテナントIDとユーザIDを「_」で繋いだ文字列に書き換える。例えば「type」が「ocr」であった場合、「ocr」が「ocr_(tenantID)_(userID)」の形式に書き換えられる。
予約処理および予約確認処理の後、記憶制御部602は、受け取ったジョブ情報を、ジョブ情報管理データベース108内のジョブ情報テーブルに蓄積する(ステップS210)。例えば記憶制御部602は、ジョブID(_id)を発行してジョブ情報をジョブ情報テーブルに蓄積する。
図7に示すように、ジョブ情報テーブルには、予約ジョブおよび通常ジョブの両方が記憶される。図7の例では、ジョブID=「0002」、「0005」、「0006」、および、「0007」が予約ジョブであり、ジョブID=「0001」、「0003」、および、「0004」が通常ジョブである。
記憶制御部602は、ジョブ情報を対応するキューに追加する(ステップS211)。例えば記憶制御部602は、ジョブの種類などを参照して、ジョブ情報をメッセージキュー112内の対応するキューに振り分ける。
図11は、ジョブ情報の振り分け手順の一例を説明する図である。データ変換要求管理部111(記憶制御部602)は、例えばジョブ情報の「type」が「(type)_(tenantID)_(userID)」の形式であった場合、このジョブ情報を専用キューであるメッセージキュー114に振り分ける。記憶制御部602は、「type」が「reservation」である予約ジョブのジョブ情報を、メッセージキュー115に振り分ける。予約処理で予約キューへの挿入位置が決まっていれば、記憶制御部602は、その位置に予約ジョブを格納する。記憶制御部602は、それ以外の種類(type)のジョブ情報を、種類に対応するメッセージキュー113−1〜113−nのいずれかに振り分ける。
通信制御部604は、ジョブを受け付けたことを示す通知を、ジョブの送信元に送信し(ステップS212)、ジョブ登録処理を終了する。
以上の処理で、予約ジョブの受付、専用ジョブの受付、および、通常ジョブの受付が可能となった。次に、予約に応じた専用実行部121の機能について説明する。図12は、本実施形態における予約実行処理の一例を示すフローチャートである。
起動部122は、一定の待機時間(例えば1分)が経過するごとに予約キューを監視し、予約キューからジョブを取得する(ステップS301)。予約キューに開始日時の順に予約ジョブが記憶されている場合であれば、起動部122は、開始日時が早い予約ジョブを予約キューから読み出してもよい。起動部122は、現在日時から、取得したジョブの開始日時までの時間が、所定の閾値(例えば10分)より小さいか否かを判断する(ステップS302)。開始日時−現在日時の値が閾値より小さい場合(ステップS302:Yes)、すなわち、現在日時が開始日時に迫っている場合、起動部122は、専用実行部121を起動する(ステップS303)。起動部122は、例えば「jobType」を参照し、起動する専用実行部121の種類を決定してもよい。
起動部122による起動方法は、一般的な方法で構わない。例えば、Windows(登録商標)サーバ上でサービスとして起動する方法、Linux(登録商標)サーバ上でバックグラウンドプロセスとして起動する方法、および、サーバインスタンスをイメージ化してイメージをコピーすることでサーバを増やす方法などを適用できる。起動部122は、起動する際に、「jobType」の後に予約者のテナントIDとユーザIDを「_」で繋いだ文字列を引数に起動してもよい。この場合、専用実行部121は、指定された引数に対応するキューを監視するように動作する。
起動部122はさらに、起動した専用実行部121が終了日時に停止するように設定してもよい(ステップS304)。終了日時の設定方法は、一般的な方法で構わない。例えば、Windowsサーバではタスクスケジューラにサービスの停止日時をスケジュールする方法、および、Linuxサーバでは「cron」によって指定プロセスを終了日時に停止するように設定する方法などを適用できる。
専用実行部121は、処理実行中にサービスおよびプロセスを停止するように指示された場合に、実行中の処理が完了するまでは処理を続ける機能を搭載してもよい。これにより、上記のように終了処理を実施しても問題は生じない。
起動部122は、ジョブ情報テーブルに記憶される予約ジョブのステータスを「完了(done)」状態に更新する(ステップS305)。
ステータスを更新後、および、ステップS302で「開始日時−現在日時」の値が閾値以上であると判断された場合(ステップS302:No)、起動部122は、待機時間が経過したかを判定する(ステップS306)。経過していない場合(ステップS306:No)、起動部122は、経過するまで待機する。経過した場合(ステップS306:Yes)、ステップS301に戻り処理が繰り返される。
(変形例)
判定部603は、予約キューのどの位置に新たな予約ジョブを挿入するかを判断していたが、そのような判断を実施しなくてもよい。この場合、例えば起動部122が、予約キューに記憶された1以上の予約ジョブ(例えばすべての予約ジョブ)を取得し、それぞれの開始日時を参照して、いずれの予約ジョブから処理すべきかを判断しても構わない。すなわち起動部122は、読み出した予約ジョブの開始日時のうち、他の予約ジョブの開始日時より早い開始日時に、対応する専用実行部121を起動してもよい。
また、起動部122は、予約ジョブ(予約キュー)のみを監視しているが、通常ジョブの監視、および、通常ジョブに対応する実行部120の起動を合わせて実施してもよい。例えば起動部122は、予約キュー(メッセージキュー115)と、「pdf2rpcs」の処理に対応するキュー(メッセージキュー113−1〜113−nのいずれか)とを監視し、これらのキューのジョブを交互に処理しても構わない。
また、予約ジョブを完了するとき、予約ジョブのステータスを完了(done)ではなく処理中(doing)にすることで、予約キューに該当ジョブを残すように構成してもよい。そして起動部122は、ステータスが「doing」である予約ジョブを取得した場合に、当該予約ジョブに対応する専用実行部121が稼働しているか否かを確認し、稼働していなければ再度起動処理を実行してもよい。また起動部122は、現在日時が、ステータスが「doing」である予約ジョブの終了日時を超えていた場合は、当該ジョブのステータスを「done」に変更し、予約ジョブを終わらせる。この際、予約キューからジョブを次々に取得し、ステータスが「doing」の場合は上記処理を実施し、ステータスが「accepted」の予約ジョブを取得したら起動処理を実施して1分待つようにすれば、次々に専用実行部121を起動および監視することができる。
予約の情報を課金処理に用いるように構成してもよい。上記のように、予約ジョブおよび専用ジョブは、ジョブ情報管理データベース108内のジョブ情報テーブルに格納されている。予約ジョブの情報のうち、例えば以下の情報を課金処理に用いることができる。
「organization_id」+「user_id」:ジョブをリクエストしたユーザ(請求先)
「created_at」:ジョブを受け付けた日時
「start_at」:予約開始日時
「end_at」:予約終了日時
「jobType」:予約した処理内容
「status」:ジョブのステータス
課金料金は、例えば以下の手順で算出される。課金処理は、例えば印刷ジョブ管理サーバ102などの装置内でスクリプト等により実行するように構成できる。
(1)ジョブの種類(jobType)に応じた課金の単価を取得する(OCRなら100円/ジョブ、PDL変換なら20円/ジョブなど)。
(2)終了日時(end_at)−開始日時(start_at)により利用期間を求める。
(3)利用期間中で種類が「(type)_(tenantID)_(userID)」の形式であるジョブをジョブ情報テーブルから取得する。
(4)状態(status)が「done」であるジョブをカウントし、利用数を求める。
(5)課金単価×利用数で課金料金を算出する。
(6)予約の早割を以下のようにディスカウントする。
・1か月以上前:ディスカウント50%
・15日以上前:ディスカウント25%
・5日以上前:ディスカウント10%
・それ以外:ディスカウント0%
本機能を利用し続けているユーザは、毎月月末の伝票処理が決まっている場合は、およそ毎月何時間の作業になるかを把握することができる。このため、何時から何時まで予約すればよいかを経験的に概算できる。また、上記のような課金体系の場合は、予約を利用することにより、料金のディスカウントを受けることが可能となる。
予約した場合の料金を、予約時に用いられる画面(予約画面)を介してユーザに提示するように構成してもよい。図13は、予約画面の一例を示す図である。予約画面1310では、予約する期間、および、予約する処理(機能)が指定される。「予約する」ボタン1301が押下されると、指定されたジョブが実行された場合の料金等を提示するための確認画面1320が表示される。重複する予約がある場合、例えば図13の確認画面1330のように、重複する予約があることを示すメッセージが表示されてもよい。
非同期変換サーバ101は、1つの装置(情報処理装置)により実現してもよいし、複数の装置を含む情報処理システムの各装置に、非同期変換サーバ101の各機能を分散して備えるように構成してもよい。
なお、本実施形態の装置で実行されるプログラムは、ROM等に予め組み込まれて提供される。
本実施形態の装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータ・プログラム・プロダクトとして提供するように構成してもよい。
さらに、本実施形態の装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施形態の装置で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
10 クラウド
11 サーバ
12 PC
13 MFP
100 データ変換システム
101 非同期変換サーバ
102 印刷ジョブ管理サーバ
103 ファイヤウォール
104 リバースプロキシ
105 認証サーバ
106 認証用データベース
107 共有ファイルストレージ
108 ジョブ情報管理データベース
111 データ変換要求管理部
112 メッセージキュー
120 実行部
121 専用実行部
122 起動部
601 受付部
602 記憶制御部
603 判定部
604 通信制御部
特開2013−178748号公報

Claims (10)

  1. 処理の予約を要求する第1の要求、および、前記処理の実行を要求する第2の要求を受付ける受付部と、
    前記第1の要求および前記第2の要求を記憶部に記憶させる記憶制御部と、
    記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約された前記処理を実行する第1の実行部と、
    記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約されていない前記処理を実行する第2の実行部と、
    記憶された前記第1の要求に基づき、前記第1の実行部を起動する起動部と、
    を備える情報処理システム。
  2. 前記第1の要求は、前記処理の開始日時を少なくとも含み、
    前記記憶制御部は、前記処理の開始日時の順に前記第1の要求を前記記憶部に記憶させ、
    前記起動部は、前記開始日時が早い前記第1の要求を前記記憶部から読み出し、読み出した前記第1の要求に含まれる前記開始日時に前記第1の実行部を起動する、
    請求項1に記載の情報処理システム。
  3. 前記第1の要求は、前記処理の開始日時を少なくとも含み、
    前記起動部は、前記記憶部に記憶された1以上の前記第1の要求を読出し、読み出した前記第1の要求に含まれる前記開始日時のうち、他の前記第1の要求に含まれる前記開始日時より早い前記開始日時に前記第1の実行部を起動する、
    請求項1に記載の情報処理システム。
  4. 前記第1の要求は、前記処理の開始日時、および、前記処理の終了日時を少なくとも含み、
    前記起動部は、前記開始日時に前記第1の実行部を起動し、起動した前記第1の実行部を前記終了日時に停止する、
    請求項1に記載の情報処理システム。
  5. 前記起動部は、さらに、記憶された前記第2の要求に基づき、前記第2の実行部を起動する、
    請求項1に記載の情報処理システム。
  6. 前記起動部は、起動した前記第1の実行部が稼働しているか否かを監視し、稼働していない場合は起動する、
    請求項1に記載の情報処理システム。
  7. 前記第1の要求は、前記処理の開始日時、前記処理の終了日時、および、前記処理の種類を含む、
    請求項1に記載の情報処理システム。
  8. 処理の予約を要求する第1の要求、および、前記処理の実行を要求する第2の要求を受付ける受付部と、
    前記第1の要求および前記第2の要求を記憶部に記憶させる記憶制御部と、
    記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約された前記処理を実行する第1の実行部と、
    記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約されていない前記処理を実行する第2の実行部と、
    記憶された前記第1の要求に基づき、前記第1の実行部を起動する起動部と、
    を備える情報処理装置。
  9. 処理の予約を要求する第1の要求、および、前記処理の実行を要求する第2の要求を受付ける受付ステップと、
    前記第1の要求および前記第2の要求を記憶部に記憶させる記憶制御ステップと、
    第1の実行部が、記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約された前記処理を実行する第1の実行ステップと、
    第2の実行部が、記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約されていない前記処理を実行する第2の実行ステップと、
    記憶された前記第1の要求に基づき、前記第1の実行部を起動する起動ステップと、
    を含む情報処理方法。
  10. コンピュータに、
    処理の予約を要求する第1の要求、および、前記処理の実行を要求する第2の要求を受付ける受付ステップと、
    前記第1の要求および前記第2の要求を記憶部に記憶させる記憶制御ステップと、
    第1の実行部が、記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約された前記処理を実行する第1の実行ステップと、
    第2の実行部が、記憶された前記第2の要求により要求される前記処理のうち、前記第1の要求により予約されていない前記処理を実行する第2の実行ステップと、
    記憶された前記第1の要求に基づき、前記第1の実行部を起動する起動ステップと、
    を実行させるためのプログラム。
JP2015212228A 2015-10-28 2015-10-28 情報処理システム、情報処理装置、情報処理方法およびプログラム Pending JP2017084129A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015212228A JP2017084129A (ja) 2015-10-28 2015-10-28 情報処理システム、情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015212228A JP2017084129A (ja) 2015-10-28 2015-10-28 情報処理システム、情報処理装置、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2017084129A true JP2017084129A (ja) 2017-05-18

Family

ID=58711197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015212228A Pending JP2017084129A (ja) 2015-10-28 2015-10-28 情報処理システム、情報処理装置、情報処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2017084129A (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234782A (ja) * 1994-02-24 1995-09-05 Fujitsu Ltd スプール管理処理装置
JPH10289078A (ja) * 1997-04-16 1998-10-27 Canon Inc 出力制御方法及び装置
JP2004054844A (ja) * 2002-07-24 2004-02-19 Canon Finetech Inc システムにおける監視方法及びシステムにおける監視装置及びシステムにおける監視装置の制御方法及び記憶媒体
JP2008209982A (ja) * 2007-02-23 2008-09-11 Casio Comput Co Ltd サーバ装置、クライアント装置、リモート接続システム及びプログラム
JP2009004958A (ja) * 2007-06-20 2009-01-08 Toshiba Corp 情報処理装置
JP2012134728A (ja) * 2010-12-21 2012-07-12 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム
JP2013161334A (ja) * 2012-02-07 2013-08-19 Konica Minolta Inc 画像形成装置、管理装置、管理方法、および管理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234782A (ja) * 1994-02-24 1995-09-05 Fujitsu Ltd スプール管理処理装置
JPH10289078A (ja) * 1997-04-16 1998-10-27 Canon Inc 出力制御方法及び装置
JP2004054844A (ja) * 2002-07-24 2004-02-19 Canon Finetech Inc システムにおける監視方法及びシステムにおける監視装置及びシステムにおける監視装置の制御方法及び記憶媒体
JP2008209982A (ja) * 2007-02-23 2008-09-11 Casio Comput Co Ltd サーバ装置、クライアント装置、リモート接続システム及びプログラム
JP2009004958A (ja) * 2007-06-20 2009-01-08 Toshiba Corp 情報処理装置
JP2012134728A (ja) * 2010-12-21 2012-07-12 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム
JP2013161334A (ja) * 2012-02-07 2013-08-19 Konica Minolta Inc 画像形成装置、管理装置、管理方法、および管理プログラム

Similar Documents

Publication Publication Date Title
US9189187B2 (en) Service providing system and service providing method for providing a service to a service usage device connected via a network
US8836974B2 (en) Image processing system and control method for managing a job related to image processing in a distributed environment
US8330980B2 (en) System, method, and apparatus for networked print management
JP2013178748A (ja) 情報処理装置、プログラム、情報処理システム及びデータ変換処理方法
JP6634744B2 (ja) 情報処理システム、情報処理装置、機器、情報処理方法、プログラム
JP2011128995A (ja) ログ情報管理システムおよびその制御方法、プログラム、記憶媒体
JP2010218049A (ja) 情報処理装置、情報処理方法及びプログラム
US20140201759A1 (en) Information processing system, information processing apparatus, and process execution method
US20180275935A1 (en) System and method for cloud-based document content collaboration with scheduled printing
JP2020140439A (ja) 印刷管理プログラム、印刷管理方法、および印刷管理装置
JP6848340B2 (ja) 情報処理システム、更新方法、情報処理装置及びプログラム
US20150237231A1 (en) Data processing device, data processing system, and data processing method
US10235112B2 (en) Hot folder creation and management
US10666834B2 (en) Information processing system, information processing apparatus, and information processing method
US10365862B2 (en) System, information processing apparatus, information processing method, and program for performing a process of transmitting page description language data to an image forming apparatus
US8095791B2 (en) Distributed processing system, distributed processing method and image processing apparatus
US9423992B2 (en) Management system and control method
JP2015158721A (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP5241520B2 (ja) ワークフロー管理装置、タスク連携処理システム、ワークフロー管理方法、及びプログラム
JP6123293B2 (ja) 情報処理システム、データ変換処理方法、プログラム及び記録媒体
JP2017084129A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP2023120895A (ja) サーバ、方法およびプログラム
JP2016212852A (ja) 情報処理装置、情報処理システムおよび方法
JP5887900B2 (ja) ジョブ制御システム、ジョブ制御方法、情報処理装置、ジョブ制御プログラム
JP2021026707A (ja) クラウドプリントサービスの提供方法及びサーバ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191023