JP2014149809A - 情報処理システム、情報処理装置、プログラム及び処理実行方法 - Google Patents

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

Info

Publication number
JP2014149809A
JP2014149809A JP2013216166A JP2013216166A JP2014149809A JP 2014149809 A JP2014149809 A JP 2014149809A JP 2013216166 A JP2013216166 A JP 2013216166A JP 2013216166 A JP2013216166 A JP 2013216166A JP 2014149809 A JP2014149809 A JP 2014149809A
Authority
JP
Japan
Prior art keywords
processing
execution
data
conversion
job
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.)
Granted
Application number
JP2013216166A
Other languages
English (en)
Other versions
JP6364738B2 (ja
Inventor
Tomoya Amikura
智哉 網倉
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 JP2013216166A priority Critical patent/JP6364738B2/ja
Priority to US14/148,923 priority patent/US9383950B2/en
Publication of JP2014149809A publication Critical patent/JP2014149809A/ja
Application granted granted Critical
Publication of JP6364738B2 publication Critical patent/JP6364738B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1213Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1241Dividing a job according to job requirements, e.g. black/white and colour pages, covers and body of books, tabs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Facsimiles In General (AREA)
  • Software Systems (AREA)

Abstract

【課題】処理の種類の増加に柔軟に対応可能な情報処理システム、情報処理装置、プログラム及び処理実行方法を提供することを課題とする。
【解決手段】情報処理装置を含むように構成される情報処理システムであって、処理実行要求を処理の種類により振り分ける管理手段と、振り分けられた処理実行要求を処理の種類ごとに保持する保持手段と、保持された処理実行要求に対応した処理を実行する複数の実行手段とを備え、複数の実行手段の少なくとも1つは、保持手段が保持する処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を他の実行手段に連携させて実行させる処理実行要求を保持手段に保持させることにより、上記課題を解決する。
【選択図】 図4

Description

本発明は、情報処理システム、情報処理装置、プログラム及び処理実行方法に関する。
従来、デバイスと、ウェブサービスと、分散環境を提供するプラットフォームとを連携させることを目的としたクラウドコンピューティングシステムは知られている(例えば特許文献1参照)。
従来のクラウドコンピューティングシステムは、画像形成装置からのジョブの処理依頼を受信する要求受信部と、ジョブに対応するメッセージに基づく処理を行うバックエンド処理部と、バックエンド処理部の数を管理する管理手段とを有している。
バックエンド処理部は、ジョブのタスク実行状況を特定する特定手段と、ジョブのタスク実行状況に応じたタスクサービスを、サービス提供装置が提供する複数のタスクサービスの中から選択し、サービス提供装置に実行を指示する指示手段とを有している。
例えば、あるデータ形式から他のデータ形式に変換する際、プログラムの独立性やメンテナンス性を高めるために、データ形式を変換するデータ変換エンジン(データ変換プログラム又はデータ変換ライブラリ)を用いる場合がある。
データ形式の変換に限らず、何らかの処理を実行する際、プログラムの独立性やメンテナンス性を高めるために、何らかの処理を実行する処理実行エンジン(処理実行プログラム又は処理実行ライブラリ)を用いる場合がある。
しかしながら、データ形式の種類が多数の場合には入力データ形式の種類と出力データ形式の種類のペア分のデータ変換エンジンが必要になる。例えば、変換前のデータ形式の候補が3種類あり、変換後のデータ形式の候補が3種類あると、それぞれのパターンに応じたデータ変換エンジンを9種類用意する必要がある。すなわち、変換前又は変換後のデータ形式の選択肢が多くなればなるほど、用意しなければならないデータ変換エンジンの数が増える。このように、実行する処理の種類が多数の場合には処理の種類分の処理実行エンジンが必要となる。
要約すると、データ変換処理など実行する処理の種類が多くなればなるほど、用意しなければならない処理実行エンジンの数が増えることが想定されるが、処理の種類の増加に柔軟に対応できないことが課題である。
本発明の実施の形態は、上記の点に鑑みなされたもので、処理の種類の増加に柔軟に対応可能な情報処理システム、情報処理装置、プログラム及び処理実行方法を提供することを目的とする。
上記目的を達成するために本願請求項1は、一以上の情報処理装置を含むように構成される情報処理システムであって、処理実行要求を処理の種類により振り分ける管理手段と、振り分けられた前記処理実行要求を処理の種類ごとに保持する保持手段と、保持された前記処理実行要求に対応した処理を実行する複数の実行手段とを備え、前記複数の実行手段の少なくとも1つは、前記保持手段が保持する前記処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させることを特徴とする。
本発明の実施の形態によれば、処理の種類の増加に柔軟に対応可能となる。
クラウドプリントの一例を表した模式図である。 クラウドプリントを実現する情報処理システムの構成例を示すブロック図である。 クラウドプリントの手順の一例を表したフローチャートである。 本実施形態のデータ変換システムの構成例を示すブロック図である。 変換手段の詳細な構成を示すブロック図である。 非同期変換サーバの動作を示すシーケンス図である。 ジョブの情報に含まれるタスクの分割例を表した説明図である。 分割前及び分割後のジョブフォーマットの一例を表した説明図である。 複数の変換エンジンの連携による処理の一例を表した説明図である。 画像ファイルをOCR処理してオンラインストレージに保存する処理の一例を表した模式図である。 画像ファイルをOCR処理してオンラインストレージに保存する処理を実現する情報処理システムの構成例を示すブロック図である。 本実施形態の処理実行システムの構成例を示すブロック図である。 実行手段の詳細な構成を示すブロック図である。 非同期処理サーバの動作を示すシーケンス図である。 ジョブの情報に含まれるタスクの分割例を表した説明図である。 第3の実施形態に係るシステムの一例の構成図である。 コンピュータシステムの一例のハードウェア構成図である。 第3の実施形態に係るサービス提供システムの一例の処理ブロック図である。 組織管理情報の一例の構成図である。 ユーザ管理情報の一例の構成図である。 機器管理情報の一例の構成図である。 第3の実施形態におけるデータ変換処理の一例について説明する説明図である。 キューとデータ形式変換部との対応付けの一例について説明する説明図である。 変換要求のリクエストを分割する処理の一例について説明する説明図である。 変換要求のリクエストを分割する処理の一例について説明する説明図である。 変換要求のリクエストを分割する処理の一例について説明する説明図である。 ステップS304の処理の一例について説明する説明図である。 ジョブaの実行結果を書き込まれたあとのジョブ管理情報の一例のデータ構造図である。 ステップS308の処理の一例について説明する説明図である。 ジョブbの実行結果を書き込まれたあとのジョブ管理情報の一例のデータ構造図である。 ステップS312の処理の一例について説明する説明図である。 ジョブcの実行結果を書き込まれたあとのジョブ管理情報の一例のデータ構造図である。 ジョブを処理する順序に優先度を付けないデータ変換システムの構成例を示すブロック図である。 ジョブを処理する順序に優先度を付けるデータ変換システムの構成例を示すブロック図である。
以下、本発明の実施形態について図面を参照しながら説明する。
[第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(Optical Character Reader)処理して、別のクラウドサービスが提供するオンラインストレージに保存する場合も共通の課題を有する。
また、別のクラウドサービスが提供するオンラインストレージからファイルを読み出してプリントデータ(印刷ファイル)への変換や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の外側に置く設計としてもよい。さらに、図4に示すようにジョブ情報管理データベース108は非同期変換サーバ101の一部として含まれる構成としてもよい。
ローカル側の機器であるPC12、MFP13はリバースプロキシ104によって通信が仲介されることで、クラウド側のサーバ群やストレージの内部構造を意識した処理や通信をする必要がない。また、認証サーバ105と認証用データベース106とは、ユーザ及び/又はローカル側の機器であるPC12、MFP13の認証を行う。
データ変換システム100と印刷ジョブ管理サーバ102とは、ローカル側の機器であるPC12がアップロードした印刷ジョブを管理/登録する。ローカル側の機器であるMFP13から印刷要求があった場合、データ変換システム100と印刷ジョブ管理サーバ102とはプリントデータをMFP13に送信する。
印刷ジョブには、ワードプロセッサアプリケーションなどで作成した電子文書ファイルが含まれる。データ変換システム100は、印刷ジョブに含まれる電子文書ファイルを例えばMFP13で出力可能なデータ形式(ページ記述言語(PDL))の電子データであるプリントデータに変換する。
図2に示した情報処理システムの利用例について図3を参照して説明する。図3はクラウドプリントの手順の一例を表したフローチャートである。
ステップS101において、ユーザはPC12からクラウドプリントサービスにログインする。認証処理は認証サーバ105が実行する。ステップS102において、ユーザは印刷したい電子文書ファイルを、PC12からクラウドプリントサービスにアップロードする。ステップS102の処理が印刷ジョブの登録である。印刷ジョブの登録処理は印刷ジョブ管理サーバ102が実行する。ここまでがPC12から行われる手順である。
印刷ジョブが登録されると、本実施形態のクラウドプリントサービスはバックグラウンドでデータ変換処理を行う。つまり、クラウドプリントサービスは非同期処理の一例としてデータ変換処理を実現している。
ステップS103において、印刷ジョブ管理サーバ102は登録された電子文書ファイルのデータ変換をデータ変換システム100に依頼する。ここで行われるデータ変換処理の詳細については後述する。
ユーザは印刷する場合、MFP13にて以下の一連の手順を行う。ステップS104において、クラウド側はMFP13がクラウドプリントサービスに対応の機器であるかを確かめる。機器としての認証である。次に、ステップS105において、ユーザはMFP13を操作してクラウドプリントサービスにログインする。ユーザとしての認証である。
認証後、MFP13はステップS106においてジョブ一覧をクラウドプリントサービスから取得し、操作パネルなどの表示手段に表示する。次にユーザはステップS107において、表示されているジョブ一覧の中から印刷を所望する印刷ジョブを選択する。
ユーザにより印刷ジョブを選択されると、MFP13はステップS108においてクラウドプリントサービスから印刷ジョブを取得し、出力する。クラウドプリントサービスはPC12にMFP13のプリンタドライバ(データ変換エンジン)を用意する必要がないので、例えば、会議資料を作成/アップロードしておき、海外出張時に現地で印刷するような用途に有効である。
《データ変換システム》
本実施形態に係るデータ変換システム100は、多種多様なデータ変換要求に応えるため、また、データ変換要求の種類の増加に柔軟に対応するため、以下に説明する構成を備える。図4に、データ変換システム100の機能構成を示す。図4は本実施形態のデータ変換システムの構成例を示すブロック図である。
図4に示すように、データ変換システム100は、フロントエンドアプリケーション102aと、共有ファイルストレージ107と、非同期変換サーバ101とを含む。フロントエンドアプリケーション102aは印刷ジョブ管理サーバ102の一機能である。非同期変換サーバ101は非同期変換サービスを提供する。また、非同期変換サーバ101はデータ変換要求管理手段111と、メッセージキュー112と、ジョブ情報管理データベース108と、複数の変換手段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に送信するリクエスト(ジョブ)に埋め込む。
同様に、変換元のデータのURI(Uniform Resource Indicator)もパラメータとしてリクエストに埋め込む。URIは共有ファイルストレージ107におけるデータの存在する場所の情報である。
データ変換の種類とデータのURIを少なくとも含むリクエストを受け取った非同期変換サーバ101では、データ変換要求管理手段111がリクエストを受け取る。データ変換要求管理手段111は、データ変換に係るリクエストを解析して、データ変換の種類に合致するメッセージキュー112に、ジョブ(メッセージ)を入れる。
データ変換要求管理手段111は、メッセージキュー112へメッセージを入れることと同時に並行して、ジョブ情報管理データベース108に、当該リクエストの情報を登録又は更新する。
ジョブ情報管理データベース108に登録される情報は、ファイルの場所(共有ファイルストレージ107上のURI)、リクエストに含まれるデータ変換の種類、当該リクエストの状態などである。リクエストの状態としては「データ変換実行中」「データ変換中継中」「データ変換完了」などがある。リクエストの状態は、データ変換の処理状況を示すステータスを表す。
メッセージキュー112は複数の変換手段120に対応するキューを有する。図4では変換手段120とメッセージキュー112が有するキューとが一対一に対応する例を示しているが、多対多に対応していてもよい。
各変換手段120は、その変換手段120に対応するキューを監視しており、キューにメッセージが入ると、ジョブ情報管理データベース108に登録された、そのメッセージに対応するリクエストの情報を取りに行く。各変換手段120は、ジョブ情報管理データベース108から取得したリクエストの情報に含まれるURIに基づいて、共有ファイルストレージ107上のデータを取得する。
そして、各変換手段120は取得したデータの変換を行う。各変換手段120は、変換後のデータを共有ファイルストレージ107上に登録し、ジョブ情報管理データベース108上に登録されたリクエストの情報を書き換えて更新する。また、後述するように連携してデータ変換する場合、各変換手段120はデータ変換した後、新たなメッセージを次にデータ変換を行う変換手段120のキューに入れる。
複数の変換手段120は、図5に示すように、変換処理ライブラリ120aと変換エンジン120bを備える構成である。変換処理ライブラリ120aは、その変換手段120に対応するキューを監視する処理や、変換後のデータを共有ファイルストレージ107上に登録する処理などを実行する。
また、変換処理ライブラリ120aはジョブ情報管理データベース108上に登録されたリクエストの情報を書き換えて更新する処理などを行う。また、変換処理ライブラリ120aは連携してデータ変換する場合にデータ変換後の新たなメッセージを次にデータ変換を行う変換手段120のキューに入れる処理などを実行する。
変換エンジン120bとしては、例えば、以下のようなものがある。
・doc2rpcs:ドキュメントファイルなどの電子文書ファイルをRPCSに変換するエンジン
・pdf2rpcs:PDF(Portable Document Format)ファイルをRPCSに変換するエンジン
・img2pdf:画像ファイルをPDFに変換するエンジン
・html2pdf:HTML(Hyper Text Markup Language)ファイルをPDFに変換するエンジン
・txt2pdf:テキストファイルをPDFに変換するエンジン
(非同期変換サービス)
図4に示す非同期変換サーバ101による非同期変換サービスの流れについて、図6のシーケンス図を参照して説明する。図6は非同期変換サーバの動作を示すシーケンス図である。
ステップS11において、フロントエンドアプリケーション102aは共有ファイルストレージ107に登録しておいたデータに対するデータ変換の要求(ジョブ登録依頼)を非同期変換サーバ101のデータ変換要求管理手段111に対して行う。つまり、非同期変換サービスは、フロントエンドアプリケーション102aが共有ファイルストレージ107に登録しておいたデータに対するデータ変換の要求(リクエスト)をデータ変換要求管理手段111に送信すると始まる。
ステップS11で送信されるリクエストはデータ変換の種類が例えば「type=doc2rpcs」のようなパラメータにより埋め込まれている。また、リクエストには変換しようとしているデータのURI(Uniform Resource Indicator)もパラメータで埋め込まれている。
ステップS12において、ジョブを受信したデータ変換要求管理手段111はジョブを解析して、データ変換の種類に合致する変換手段120があるか否かを判定する。データ変換の種類に合致する変換手段120がある場合、データ変換要求管理手段111は、その変換手段120に対応するメッセージキュー112のキューに、ジョブを登録する。
ステップS13において、データ変換要求管理手段111はジョブ登録結果をフロントエンドアプリケーション102aに返す。ここでは、第1の変換手段121に対応するメッセージキュー112のキューにジョブが登録されたものとして説明を続ける。
ステップS14において、自身が処理できるジョブに対応するキューを監視している第1の変換手段121はキューにジョブが登録されたことを検知する。ステップS15において、第1の変換手段121はキューに登録されたジョブの情報をジョブ情報管理データベース108から取得する。
第1の変換手段121は取得したジョブの情報に含まれるタスクの内容を解析し、そのタスクを変換手段120でデータ変換できる種類のタスクに分割する。ステップS15におけるタスクの分割は、例えば図7のように行われる。
図7はジョブの情報に含まれるタスクの分割例を表した説明図である。図7ではデータ変換の種類が「html2rpcs」である例を表している。データ変換の種類「html2rpcs」はHTMLファイルをRPCSに変換するものである。なお、本実施形態では一つの変換手段120でHTMLファイルをRPCSファイル(プリントデータ)にできないものとする。
そこで、フロントエンドアプリケーション102aは複数の変換手段120を連携させて「html2rpcs」をデータ変換させる。フロントエンドアプリケーション102aは例えば「html2rpcs」のタスクを「html2pdf」及び「pdf2rpcs」の二つのタスクに分割する第1の変換手段121に対応するメッセージキュー112のキューにジョブを登録する。第1の変換手段121は「html2rpcs」のタスクを「html2pdf」及び「pdf2rpcs」の二つのタスクに分割する。第1の変換手段121は、次に行うタスクに対応するキューに、それぞれのタスクを含むジョブを再登録することで、複数の変換手段120を連携させたデータ変換が可能となる。
図8は分割前及び分割後のジョブフォーマットの一例を表した説明図である。図8に示すジョブフォーマットはJSON形式の例である。
図8(A)は分割前のジョブフォーマットの一例を表している。図8(A)はデータ変換の種類が「html2rpcs」のタスクが含まれる。例えばデータ変換の種類「html2pdf」のデータ変換が可能な第2の変換手段122と、データ変換の種類「pdf2RPCS」のデータ変換が可能な第3の変換手段123とが存在するものとして説明する。また、データ変換の種類「html2rpcs」のデータ変換が可能な変換手段120が存在しないものとして説明する。
本実施形態では「html2rpcs」のタスクを「html2pdf」及び「pdf2rpcs」の二つのタスクに分割する第1の変換手段121を用意して、図8(A)のジョブフォーマットを図8(B)のジョブフォーマットに変更する。図8(B)は「html2rpcs」のタスクを分割した「html2pdf」及び「pdf2rpcs」の二つのタスクが含まれている。
第1の変換手段121は変換手段120で変換できないデータ変換の種類のタスクを含むジョブから第2の変換手段122及び第3の変換手段123で変換できるデータ変換の種類のタスクを含むジョブを生成する。第1の変換手段121は第2の変換手段122及び第3の変換手段123で変換できるデータ変換の種類のタスクを含むジョブを生成することにより、第2の変換手段122と第3の変換手段123とを連携させたデータ変換を実現している。
図6に戻り説明を続ける。ステップS16において、第1の変換手段121は分割したタスクを含むジョブを、次に行うタスク(例えばhtml2pdf)のデータ変換の種類に対応するキューに登録する。ステップS17において、自身が処理できるジョブに対応するキューを監視している第2の変換手段122はキューにジョブが登録されたことを検知する。
ステップS18において、第2の変換手段122はキューに登録されたジョブの情報をジョブ情報管理データベース108から取得する。第2の変換手段122はジョブの情報を解析し、先頭のタスクの情報に含まれるURIに基づいて共有ファイルストレージ107上のデータを取得し、先頭のタスクの情報に含まれるデータ変換の種類に応じたデータの変換を行う。
第2の変換手段122は、変換後のデータを共有ファイルストレージ107上に登録又は更新する。また、第2の変換手段122は変換したことを表すために、ジョブ情報管理データベース108に登録されているジョブの情報を更新する。このとき、リクエストの状態が例えば「データ変換中継中」に更新される。
そして、ステップS19において、第2の変換手段122はジョブの情報から先頭のタスク(処理済み)の情報を削除し、次に行うタスク(例えばpdf2RPCS)のデータ変換の種類に対応するキューに、残りのタスクを含むジョブを登録する。
ステップS20において、自身が処理できるジョブに対応するキューを監視している第3の変換手段123はキューにジョブが登録されたことを検知する。ステップS21において、第3の変換手段123はキューに登録されたジョブの情報をジョブ情報管理データベース108から取得する。
第3の変換手段123はジョブの情報を解析し、先頭のタスクの情報に含まれるURIに基づいて共有ファイルストレージ107上のデータを取得し、先頭のタスクの情報に含まれるデータ変換の種類に応じたデータの変換を行う。
第3の変換手段123は、変換後のデータを共有ファイルストレージ107上に登録又は更新する。また、第3の変換手段123は変換したことを表すために、ジョブ情報管理データベース108に登録されているジョブの情報を更新する。このとき、リクエストの状態が例えば「データ変換完了」に更新される。そして、ステップS22において、第3の変換手段123はジョブの情報から先頭のタスク(処理済み)の情報を削除し、次に行うタスクがジョブの情報に含まれていないため、他のキューにジョブを登録することなく処理を終了する。
上述した動作により、本実施形態では直接変換する変換手段120が存在しない変換要求のリクエストを満足する変換手段120を用意するのではなく、複数の既存の変換エンジン120を組み合わせ連携させることで、変換要求を処理できるようになる。
データ変換のリクエストの種類は、上述したように、データ変換システム100を立ち上げたあとに増加する可能性がある。これに対して、本実施形態によれば図9に示すように柔軟に対応することができるようになる。
また、本実施例によれば、フロントエンドアプリケーション102aは変換手段120のタスクを一つ含むジョブを登録することで、複数の変換手段120が処理することを意識することなく、複数のタスクを実行できる。
なお、変換手段120の種類としては、上記実施形態のものに限定されない。データ変換を行う変換手段120以外にも、例えば、バーコード画像のデータを文字列のデータに変換する変換手段120や、画像ファイルのデータからOCR処理して、文字列のデータに変換する変換手段120など、種々のものが考えられる。また、上記実施形態は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
[第2の実施形態]
第2の実施形態は、前述した第1の実施形態と一部を除いて同様であるため、同一部分について適宜説明を省略する。
<画像ファイルをOCR処理してオンラインストレージに保存>
図10は画像ファイルをOCR処理してオンラインストレージに保存する処理の一例を表した模式図である。
ステップS31において、インプット側機器の一例としてのMFP13は例えば原稿をスキャンして画像データ(画像ファイル)を作成する。ステップS32において、MFP13は作成した画像ファイルをクラウド10上のサーバ11にアップロードする。
ステップS33において、サーバ11はアップロードされた画像ファイルをOCR処理して、テキストファイルに変換する。ステップS34において、サーバ11は変換したテキストファイルを例えばクラウド10上のオンラインストレージ14に保存する。例えばクラウド10上のオンラインストレージ14の種類は今後も増加が予想される。
したがって、MFP13でスキャンした画像をクラウド10側でOCR処理して、別のクラウドサービスが提供するオンラインストレージ14に保存する場合も、データ変換処理と同様の課題を有する。
図10に示す画像ファイルをOCR処理してオンラインストレージに保存する処理は図11に示すようなクラウドコンピューティング型の情報処理システムで構成される。図11は画像ファイルをOCR処理してオンラインストレージに保存する処理を実現する情報処理システムの構成例を示すブロック図である。
ローカル側にはMFP13が存在する。MFP13はファイヤウォール103を介してインターネットなどのネットワークに接続する。図11において、クラウド側は、処理実行システム200、ジョブ管理サーバ202、リバースプロキシ104、認証サーバ105及び認証用データベース106を有する構成である。
図10のブロック図はローカル側からPC12が削除されている点と、データ変換システム100が処理実行システム200に変更されている点と、印刷ジョブ管理サーバ102がジョブ管理サーバ202に変更されている点と、が図2のブロック図と異なる。図11の処理実行システム200が実行する処理は画像ファイルのOCR処理やオンラインストレージへテキストファイルを保存する処理の他、第1の実施形態で説明したデータ変換処理も含ませることができる。
処理実行システム200は、非同期処理サーバ201、共有ファイルストレージ207及びジョブ情報管理データベース208を有する。なお、共有ファイルストレージ207は第1の実施形態の共有ファイルストレージ107と同様である。ジョブ情報管理データベース208も第1の実施形態のジョブ情報管理データベース108と同様である。
処理実行システム200とジョブ管理サーバ202とは、ローカル側の機器であるMFP13がアップロードしたジョブを管理/登録する。処理実行システム200はジョブに含まれる画像ファイルをOCR処理してテキストファイルに変換する。処理実行システム200はOCR処理により画像ファイルから変換したテキストファイルをオンラインストレージ14に保存する。ジョブにはMFP13でスキャンして作成した画像ファイルが含まれる。
《処理実行システム》
本実施形態に係る処理実行システム200は、多種多様な処理実行要求や処理実行要求の種類の増加に柔軟に対応するため、以下に説明する構成を備える。図12に、処理実行システム200の機能構成を示す。図12は本実施形態の処理実行システムの構成例を示すブロック図である。
図12に示すように、処理実行システム200は、フロントエンドアプリケーション202aと、共有ファイルストレージ207と、非同期処理サーバ201とを含む。フロントエンドアプリケーション202aはジョブ管理サーバ202の一機能である。非同期処理サーバ201は非同期処理サービスを提供する。また、非同期処理サーバ201は処理実行要求管理手段211と、メッセージキュー212と、ジョブ情報管理データベース208と、複数の実行手段220を含む構成である。
ジョブ管理サーバ202は、インプット側機器の一例としてのMFP13から送信されたジョブを受信して、ジョブに含まれる画像ファイル等を共有ファイルストレージ207に登録する機能を備える。また、ジョブ管理サーバ202は、実行が必要な処理を判断して処理実行システム200に処理を実行させる制御を行う。
処理実行システム200は処理の単位であるタスクを定義し、複数のタスクをジョブとして取り扱う。処理実行システム200は、メッセージキュー212にジョブを登録しておき、実行手段220がジョブを一つずつ処理していく。実行手段220は例えばWorkerにより実現される。実行手段220は、例えばインプット側機器の一例としてのMFP13から送信された画像ファイルをOCR処理してオンラインストレージ14に保存する。
フロントエンドアプリケーション202aは必要な処理を判断する機能を備える。フロントエンドアプリケーション202aは判断した処理の種類をパラメータにして、非同期処理サーバ201に送信するリクエスト(ジョブ)に埋め込む。同様に、処理を実行する画像ファイルのURIもパラメータとしてリクエストに埋め込む。
処理の種類と画像ファイルのURIを少なくとも含むリクエストを受け取った非同期処理サーバ201では、処理実行要求管理手段211がリクエストを受け取る。処理実行要求管理手段211は処理に係るリクエストを解析して、処理の種類に合致するメッセージキュー212に、ジョブ(メッセージ)を入れる。
処理実行要求管理手段211は、メッセージキュー212へメッセージを入れることと同時に並行して、ジョブ情報管理データベース208に、当該リクエストの情報を登録又は更新する。ジョブ情報管理データベース208に登録される情報は、画像ファイルなどのファイルの場所(共有ファイルストレージ207上のURI)、リクエストに含まれる処理の種類、当該リクエストの状態などである。
メッセージキュー212は複数の実行手段220に対応するキューを有する。図12では実行手段220とメッセージキュー212が有するキューとが一対一に対応する例を示しているが、多対多に対応していてもよい。
各実行手段220は、その実行手段220に対応するキューを監視しており、キューにメッセージが入ると、ジョブ情報管理データベース208に登録された、そのメッセージに対応するリクエストの情報を取りに行く。各実行手段220は、ジョブ情報管理データベース208から取得したリクエストの情報に含まれるURIに基づいて、共有ファイルストレージ207上のデータを取得する。
そして、各実行手段220は取得したデータの処理を行う。各実行手段220は、処理後のデータを共有ファイルストレージ207上に登録し、ジョブ情報管理データベース208上に登録されたリクエストの情報を書き換えて更新する。また、連携してデータを処理する場合、各実行手段220はデータを処理した後、新たなメッセージを次にデータを処理する実行手段220のキューに入れる。
複数の実行手段220は、図13に示すように、処理ライブラリ220aと処理エンジン220bを備える構成である。処理ライブラリ220aは、その実行手段220に対応するキューを監視する処理や、処理後のデータを共有ファイルストレージ207上に登録する処理などを実行する。
また、処理ライブラリ220aは、ジョブ情報管理データベース208上に登録されたリクエストの情報を書き換えて更新する処理などを実行する。また、処理ライブラリ220aは連携して処理する場合にデータの処理後の新たなメッセージを、次に処理を行う実行手段220のキューに入れる処理などを実行する。
処理エンジン220bとしては、例えば、以下のようなものがある。
・画像ファイルをOCR処理するエンジン
・ファイルをオンラインストレージ14に保存するエンジン
・画像/テキスト/HTMLファイルをPDFに変換するエンジン
・ドキュメント/PDFファイルをRPCSに変換するエンジン
・ドキュメント/PDFファイルを画像ファイル(jpeg/tiffなど)に変換するエンジン
・ドキュメント/PDFファイルをプレビュー画像ファイルに変換するエンジン
(非同期処理サービス)
図12に示す非同期処理サーバ201による非同期処理サービスの流れについて、図14のシーケンス図を参照して説明する。図14は非同期処理サーバの動作を示すシーケンス図である。
ステップS41において、フロントエンドアプリケーション202aは共有ファイルストレージ207に登録しておいたデータに対する処理の要求(ジョブ登録依頼)を非同期処理サーバ201の処理実行要求管理手段211に対して行う。非同期処理サービスはフロントエンドアプリケーション202aが共有ファイルストレージ207に登録しておいたデータに対する処理の要求(リクエスト)を処理実行要求管理手段211に送信すると始まる。
ステップS41で送信されるリクエストは処理の種類が例えば「type=img2ocr」のようなパラメータにより埋め込まれている。また、リクエストには処理しようとしているデータのURIもパラメータで埋め込まれている。
ステップS42において、ジョブを受信した処理実行要求管理手段211はジョブを解析して、処理の種類に合致する実行手段220があるか否かを判定する。処理の種類に合致する実行手段220がある場合、処理実行要求管理手段211は、その実行手段220に対応するメッセージキュー212のキューに、ジョブを登録する。
ステップS43において、処理実行要求管理手段211はジョブ登録結果をフロントエンドアプリケーション202aに返す。ここでは、第1の実行手段221(例えば画像ファイルをOCR処理してオンラインストレージに保存する処理)に対応するメッセージキュー212のキューにジョブが登録されたものとして説明を続ける。
ステップS44において、自身が処理できるジョブに対応するキューを監視している第1の実行手段221はキューにジョブが登録されたことを検知する。ステップS45において、第1の実行手段221はキューに登録されたジョブの情報をジョブ情報管理データベース208から取得する。
第1の実行手段221は取得したジョブの情報に含まれるタスクの内容を解析し、そのタスクを実行手段220で処理できる種類のタスクに分割する。ステップS45におけるタスクの分割は、例えば図15のように行われる。
図15はジョブの情報に含まれるタスクの分割例を表した説明図である。なお、図15では処理の種類が「img2storageA」である例を表している。処理の種類「img2storageA」は画像ファイルをOCR処理し、テキストファイルをオンラインストレージAに保存するものである。なお、本実施形態では一つの実行手段220で画像ファイルをOCR処理し、テキストファイルをオンラインストレージAに保存することができないものとする。
そこで、フロントエンドアプリケーション202aは、複数の実行手段220を連携させて「img2storageA」を処理させるため、次のように処理する。例えば「img2storageA」のタスクを「img2ocr」及び「txt2storageA」の二つのタスクに分割する第1の実行手段221に対応するメッセージキュー212のキューにジョブを登録する。
処理の種類「img2ocr」は画像ファイルをOCR処理し、テキストファイルを出力するものである。処理の種類「txt2storageA」はテキストファイルをオンラインストレージAに保存するものである。第1の実行手段221は「img2storageA」のタスクを「img2ocr」及び「txt2storageA」の二つのタスクに分割する。
そして、第1の実行手段221は、次に行うタスクに対応するキューに、それぞれのタスクを含むジョブを再登録することで、複数の実行手段220を連携させた処理が可能となる。
このように、第1の実行手段221は実行手段220で処理できない種類のタスクを含むジョブから第2の実行手段222及び第3の実行手段223で処理できる種類のタスクを含むジョブを生成する。このため、第1の実行手段221は第2の実行手段222と第3の実行手段223とを連携させた処理を実現できる。
図14に戻り説明を続ける。ステップS46において、第1の実行手段221は分割したタスクを含むジョブを、次に行うタスク(例えばimg2ocr)の処理の種類に対応するキューに登録する。ステップS47において、自身が処理できるジョブに対応するキューを監視している第2の実行手段222はキューにジョブが登録されたことを検知する。
ステップS48において、第2の実行手段222はキューに登録されたジョブの情報をジョブ情報管理データベース208から取得する。第2の実行手段222はジョブの情報を解析し、先頭のタスクの情報に含まれるURIに基づいて共有ファイルストレージ207上のデータを取得し、先頭のタスクの情報に含まれる処理の種類に応じた処理を行う。
第2の実行手段222は、処理後のデータを共有ファイルストレージ207上に登録又は更新する。また、第2の実行手段222は変換したことを表すために、ジョブ情報管理データベース208に登録されているジョブの情報を更新する。このとき、リクエストの状態が例えば「処理中継中」に更新される。
ステップS49において、第2の実行手段222はジョブの情報から先頭のタスク(処理済み)の情報を削除し、次に行うタスク(例えばtxt2storageA)の処理の種類に対応するキューに、残りのタスクを含むジョブを登録する。
ステップS50において、自身が処理できるジョブに対応するキューを監視している第3の実行手段223はキューにジョブが登録されたことを検知する。ステップS51において、第3の実行手段223はキューに登録されたジョブの情報をジョブ情報管理データベース208から取得する。
第3の実行手段223はジョブの情報を解析し、先頭のタスクの情報に含まれるURIに基づいて共有ファイルストレージ207上のデータを取得し、先頭のタスクの情報に含まれる処理の種類に応じた処理を行う。例えば第3の実行手段223は処理後のデータをオンラインストレージAに保存する処理を実行する。また、第3の実行手段223は処理したことを表すために、ジョブ情報管理データベース208に登録されているジョブの情報を更新する。このとき、リクエストの状態が例えば「処理完了」に更新される。
ステップS52において、第3の実行手段223はジョブの情報から先頭のタスク(処理済み)の情報を削除し、次に行うタスクがジョブの情報に含まれていないため、他のキューにジョブを登録することなく処理を終了する。
上述した動作によって、本実施形態では、直接処理する実行手段220が存在しない処理要求のリクエストを満足する実行手段220を用意するのではなく、複数の既存の処理エンジン220bを組み合わせ、連携させることによって処理要求を処理できる。
処理のリクエストの種類は、上述したように、処理実行システム200を立ち上げたあとに増加する可能性がある。これに対して、本実施形態によれば柔軟に対応することができるようになる。また、本実施例によれば、フロントエンドアプリケーション202aは実行手段220のタスクを一つ含むジョブを登録することで、複数の実行手段220が処理することを意識することなく、複数のタスクを実行できる。
なお、実行手段220の種類は、上記実施形態のものに限定されない。また、上記実施形態は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
[第3の実施形態]
データ変換処理などの処理の種類の増加に柔軟に対応することは、以下の第3の実施形態によっても実現できる。なお、第3の実施形態ではデータ変換処理の種類の増加に柔軟に対応する例について説明する。
<システム構成>
図16は第3の実施形態に係るシステムの一例の構成図である。図16のシステム1000は例えばオフィス内ネットワーク等のネットワークN1と、クラウドサービスに代表されるようなサービス提供システムのネットワークN2と、インターネットなどのネットワークN3とを有する。
ネットワークN1は、ファイヤウォールFWの内側にあるプライベートなネットワークである。ファイヤウォールFWはネットワークN1とネットワークN3との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークN1にはクライアント端末1011、携帯端末1012、複合機などの画像形成装置1013が接続されている。
クライアント端末1011は端末装置の一例である。クライアント端末1011は一般的なOSなどが搭載された情報処理装置によって実現できる。クライアント端末1011は無線による通信の手段または有線による通信の手段を有する。クライアント端末1011は、タブレットPC、ノートPCなど、ユーザが操作可能な端末である。
携帯端末1012は端末装置の一例である。携帯端末1012は、無線による通信の手段または有線による通信の手段を有している。携帯端末1012は、スマートフォンや携帯電話、タブレットPC、ノートPCなど、ユーザが携帯可能な端末である。
画像形成装置1013は複合機などの画像形成機能を有する装置である。画像形成装置1013は無線による通信の手段または有線による通信の手段を有する。画像形成装置1013は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成に係る処理を行う装置である。図16では、一例としてクライアント端末1011、携帯端末1012、画像形成装置1013がそれぞれ一台である例を示しているが複数台であってもよい。
なお、クライアント端末1011、携帯端末1012は、第1の実施形態のPC12に対応する。画像形成装置1013は第1の実施形態のMFP13に対応する。
ネットワークN2はアクセス制御装置1021によってネットワークN3に接続されている。ネットワークN2はアクセス制御装置1021によってセキュリティが保護されている。ネットワークN2にはプリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024が接続されている。
図16のシステム1000は、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024がサービス提供システムを実現している。サービス提供システムは第1の実施形態のクラウド側のデータ変換システム100、印刷ジョブ管理サーバ102、リバースプロキシ104、認証サーバ105、認証用データベース106に対応する。
アクセス制御装置1021はプリントサービス提供装置1022が提供するプリントサービスやスキャンサービス提供装置1023が提供するスキャンサービスなどへのログインを制御する。
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、一台以上の情報処理装置によって実現される。
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は一台の情報処理装置に統合して実現してもよいし、複数の情報処理装置に分散して実現してもよい。
ネットワークN2側のサービスの一部はネットワークN2以外にあってもよい。携帯端末1012は、オフィス内ネットワーク等のネットワークN1以外にあってもよい。図16のシステム1000では携帯端末1012がネットワークN1と、ネットワークN3とにある例を示している。
<ハードウェア構成>
クライアント端末1011、携帯端末1012、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、例えば図17に示すようなハードウェア構成のコンピュータシステムにより実現される。
図17はコンピュータシステムの一例のハードウェア構成図である。コンピュータシステム1500は、入力装置1501、表示装置1502、外部I/F1503、RAM(Random Access Memory)1504、ROM(Read Only Memory)1505、CPU(Central Processing Unit)1506、通信I/F1507、及びHDD(Hard Disk Drive)1508などを備え、それぞれがバスBで相互に接続されている。
入力装置1501はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置1502はディスプレイ等を含み、コンピュータシステム1500による処理結果を表示する。
通信I/F1507はコンピュータシステム1500をネットワークN1〜N3に接続するインタフェースである。これにより、コンピュータシステム1500は通信I/F1507を介してデータ通信を行うことができる。
HDD1508はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム1500全体を制御する基本ソフトウェアであるOS(Operating System)や、OS上において各種機能を提供するアプリケーションソフトウェアなどがある。
HDD1508は格納しているプログラムやデータを所定のファイルシステム及び/又はDB(データベース)により管理している。外部I/F1503は、外部装置とのインタフェースである。外部装置には、記録媒体1503aなどがある。これにより、コンピュータシステム1500は外部I/F1503を介して記録媒体1503aの読み取り及び/又は書き込みを行うことができる。記録媒体1503aにはフレキシブルディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory card)、USBメモリ(Universal Serial Bus memory)などがある。
ROM1505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM1505には、コンピュータシステム1500の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM1504は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU1506は、ROM1505やHDD1508などの記憶装置からプログラムやデータをRAM1504上に読み出し、処理を実行することで、コンピュータシステム1500全体の制御や機能を実現する演算装置である。
クライアント端末1011、携帯端末1012、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、コンピュータシステム1500のハードウェア構成により、後述するような各種処理を実現できる。
<ソフトウェア構成>
《サービス提供システム》
第3の実施形態に係るサービス提供システムは例えば図18に示す処理ブロックにより実現される。図18は第3の実施形態に係るサービス提供システムの一例の処理ブロック図である。
図18のサービス提供システム1100は、プログラムを実行することにより、サービスアプリ1101、プラットフォーム1102、管理データ記憶部1103及びプラットフォームAPI(Application Programming Interface)1104を実現している。
サービスアプリ1101は、プリントサービスアプリ1111、スキャンサービスアプリ1112、1つ以上のその他のサービスアプリ1113を一例として有する。
プリントサービスアプリ1111はプリントサービスを提供するアプリケーションである。スキャンサービスアプリ1112はスキャンサービスを提供するアプリケーションである。その他のサービスアプリ1113は何らかのサービスを提供するアプリケーションである。
プラットフォームAPI1104はプリントサービスアプリ1111、スキャンサービスアプリ1112、その他のサービスアプリ1113などのサービスアプリ1101が、プラットフォーム1102を利用するためのインタフェースである。プラットフォームAPI1104はサービスアプリ1101からの要求をプラットフォーム1102が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。なお、サービス提供システム1100を複数の情報処理装置に分散して構成する場合、プラットフォームAPI1104にはネットワーク経由で利用可能な例えばWeb APIを利用できる。
プラットフォーム1102は、認証処理部1121、機器通信部1122、セッション管理部1123、処理制御部1124、データ処理部1125を有する。データ処理部1125はメッセージキュー1131、1つ以上のデータ形式変換部1132を有する。
認証処理部1121は第1の実施形態の認証サーバ105に対応する。認証処理部1121はクライアント端末1011や画像形成装置1013などのオフィス機器からのログイン要求に基づいて認証を実行する。オフィス機器はクライアント端末1011、携帯端末1012、画像形成装置1013などの総称である。認証処理部1121は例えば後述するユーザ管理情報記憶部1142にアクセスしてユーザを認証する。また、認証処理部1121は組織管理情報記憶部1141、機器管理情報記憶部1143にアクセスして画像形成装置1013などを認証する。
機器通信部1122はオフィス機器との通信を実行する。セッション管理部1123はオフィス機器とのセッションを管理する。処理制御部1124はサービスアプリ1101からの要求に基づいてデータ処理部1125が実行するデータ処理を制御する。データ処理部1125は処理制御部1124の制御によりデータ処理を実行する。なお、処理制御部1124は第1の実施形態のデータ変換要求管理手段111に対応する。データ処理部1125のメッセージキュー1131は第1の実施形態のメッセージキュー112に対応する。データ形式変換部1132は第1の実施形態の変換手段120に対応する。
メッセージキュー1131は後述するデータ変換の種類に対応するキューを有し、処理制御部1124からデータ変換に係るリクエストのメッセージを入れられる。データ形式変換部1132は対応するキューを監視している。データ形式変換部1132はキューにメッセージが入ると、データ変換や、変換要求のリクエストの分割などを行う。第3の実施形態における非同期変換サービスの処理の詳細は後述する。
管理データ記憶部1103は組織管理情報記憶部1141、ユーザ管理情報記憶部1142、機器管理情報記憶部1143、ジョブ管理情報記憶部1144、データストレージ1145を有する。
組織管理情報記憶部1141は、後述の組織管理情報を記憶する。ユーザ管理情報記憶部1142は、後述のユーザ管理情報を記憶する。機器管理情報記憶部1143は後述の機器管理情報を記憶する。組織管理情報記憶部1141、ユーザ管理情報記憶部1142及び機器管理情報記憶部1143は、第1の実施形態の認証用データベース106に対応する。
ジョブ管理情報記憶部1144は第1の実施形態のジョブ情報管理データベース108に対応し、データ変換に係るリクエストの情報を記憶する。データストレージ1145は第1の実施形態の共有ファイルストレージ107に対応し、印刷ジョブに含まれる電子文書ファイル等のデータを記憶する。
サービス提供システム1100は、例えば認証やデータ形式変換といった機能を有するクラウド基盤と、クラウド基盤の機能を利用してプリントサービス等のサービス提供を行うサービス群として機能する。クラウド基盤は、例えばプラットフォーム1102、管理データ記憶部1103、プラットフォームAPI1104によって構成される。サービス群は例えばサービスアプリ1101によって構成される。
サービス提供システム1100のクラウド基盤が有する認証の機能は、例えば認証処理部1121と、認証用データベースにより構成される。認証用データベースは組織管理情報記憶部1141、ユーザ管理情報記憶部1142、機器管理情報記憶部1143などにより構成される。
また、サービス提供システム1100のクラウド基盤が有するデータ形式変換の機能は処理制御部1124、データ処理部1125、ジョブ管理情報記憶部1144、データストレージ1145などにより構成される。サービス群は、サービス提供システム1100のクラウド基盤が有する認証やデータ形式変換といった機能を利用し、サービスの提供を行う。
また、図18のサービス提供システム1100は、複数のサービスアプリ1101が共通に利用する組織管理情報、ユーザ管理情報、機器管理情報を管理データとして管理することで、認証機能を集約している。
《管理データ》
図19は組織管理情報の一例の構成図である。図19の組織管理情報はデータ項目として組織コード、組織名、国、言語、アドレス情報などを有する。組織コードは企業、組織などのグループを特定する情報である。
組織名は企業、組織などのグループの名称である。国は企業、組織などのグループの属する国名を表している。言語は企業、組織などのグループの使用言語を表している。アドレス情報は企業、組織などのグループのメールアドレスを表している。
図20はユーザ管理情報の一例の構成図である。図20のユーザ管理情報はデータ項目として組織コード、ユーザ名、パスワード、アドレス情報などを有する。ユーザ名、パスワードはユーザを特定する情報である。したがって、ユーザ名はユーザID等であってもよい。また、パスワードは必須でない。また、同じ組織コードで管理されるユーザ名、パスワードは一意であるが、組織コードが異なれば重複していてもよい。アドレス情報は例えばユーザのメールアドレスを表している。
さらに、ユーザIDはユーザが所持する電子媒体(例えばICカード)を識別する情報を用いてもよい。ユーザが所持する電子媒体としてはICカード、携帯電話、タブレット端末、電子書籍端末等を利用できる。電子媒体を識別する情報としては、カードID、シリアルID、携帯電話の電話番号、端末のプロフィール情報などを利用できる。電子媒体を識別する情報は組み合わせて利用してもよい。
図21は機器管理情報の一例の構成図である。図21の機器管理情報はデータ項目として組織コード、デバイス認証情報、事業所情報、ケーパビリティなどを有する。デバイス認証情報はオフィス機器が特定の条件を備えたものであることを判別するデバイス認証のための情報である。デバイス認証情報はオフィス機器に特定のアプリケーションが搭載されていることを示すIDや、特定のオフィス機器であることを示す機器番号などであってもよい。事業所情報は例えばオフィス機器が設置されている事業所を表している。ケーパビリティは例えばオフィス機器の能力を表している。
<処理の詳細>
以下では第3の実施形態に係るサービス提供システム1100の処理の詳細について説明するが、第1の実施形態と同様な部分について適宜説明を省略する。
《データ変換処理》
第3の本実施形態に係るサービス提供システム1100は、多種多様なデータ変換要求に応えるため、また、データ変換要求の種類の増加に柔軟に対応するため、以下に説明する構成を備える。図22に、サービス提供システム1100におけるデータ変換処理の機能構成を示す。図22は第3の実施形態におけるデータ変換処理の一例について説明する説明図である。なお、図22は一部を除いて図4と同一であるため、同一部分について適宜説明を省略する。
図22に示すように、サービス提供システム1100は、プリントサービスアプリ1111の一機能であるフロントエンドアプリケーション1111aと、データストレージ1145と、処理制御部1124と、メッセージキュー1131と、ジョブ管理情報記憶部1144と、複数のデータ形式変換部1132とを含む構成である。
処理制御部1124と、メッセージキュー1131と、ジョブ管理情報記憶部1144と、複数のデータ形式変換部1132とは、非同期データ変換サービスを提供する。クラウドプリントのソリューションにおいて、フロントエンドアプリケーション1111aはクライアント端末1011などインプット側機器から印刷ジョブを受信し、印刷ジョブに含まれる電子文書ファイル等をデータストレージ1145に登録する機能を備える。フロントエンドアプリケーション1111aは必要なファイル変換を判断して、非同期データ変換サービスにデータ変換を実行させる制御を行う。
変換後のファイルはデータストレージ1145に登録される。画像形成装置1013などアウトプット側機器から印刷ジョブの出力指示を受信すると、プリントサービスアプリ1111は登録された変換後のファイルを、出力指示を送信した画像形成装置1013に送信する。
フロントエンドアプリケーション1111aは、出力指示の実行に必要なファイル変換を判断する機能を備える。フロントエンドアプリケーション1111aは判断したデータ変換の種類を、例えば「doc2rpcs」のようなパラメータにして、処理制御部1124へのリクエストに埋め込む。同様に、フロントエンドアプリケーション1111aは変換元のデータが存在する場所の情報であるURIもパラメータとしてリクエストに埋め込む。
処理制御部1124はデータ変換の種類とデータのURIとを少なくとも含むリクエストを受け取る。処理制御部1124はデータ変換に係るリクエストを解析して、データ変換の種類に合致するメッセージキュー1131のキューに、メッセージを入れる。
処理制御部1124は、メッセージキュー1131へメッセージを入れることと同時に並行して、ジョブ管理情報記憶部1144にリクエストの情報を登録する。ジョブ管理情報記憶部1144に登録されるリクエストの情報は、ファイルの場所(データストレージ1145上のURI)、リクエストに含まれるデータ変換の種類、リクエストの状態などである。リクエストの状態としては「受付」「実行中」「完了」などがある。リクエストの状態は、データ変換の処理状況を示すステータスを表す。
メッセージキュー1131は複数のデータ形式変換部1132に対応するキューを有している。なお、図22ではデータ形式変換部1132とメッセージキュー1131が有するキューとが一対一に対応する例を示しているが、多対多に対応していてもよい。
各データ形式変換部1132は、そのデータ形式変換部1132に対応するキューを監視しており、キューにメッセージが入ると、そのメッセージに対応するデータ変換や変換要求のリクエストの分割などの処理を行う。
例えばデータ変換の処理を行う場合、データ形式変換部1132はメッセージに含まれるデータのURIに基づいて、データストレージ1145上のデータを取得する。データ形式変換部1132は取得したデータの変換を行う。データ形式変換部1132は、変換後のデータをデータストレージ1145上に登録し、ジョブ管理情報記憶部1144上に登録されたリクエストの情報を更新する。
また、変換要求のリクエストを分割する処理を行う場合、データ形式変換部1132は変換要求のリクエストを分割して、複数段階のデータ変換のプロセスに分け、各プロセスに対応する複数のジョブとする。このように、本実施形態のデータ形式変換部1132にはデータ変換の処理を行わずに、変換要求のリクエストを分解する処理を行うものが含まれる。変換要求のリクエストを分解する処理の具体例は後述する。
なお、データ変換のプロセスの単位は、非同期データ変換サービスに含まれる変換エンジン120bの単位となる。変換要求のリクエストから分割された複数のジョブは、そのジョブのデータ変換の種類に対応するキューにメッセージとして入れられる。その後の処理は、上記したデータ変換の処理を行う場合と同様である。
メッセージキュー1131のキューとデータ形式変換部1132とは例えば図23のように対応付けてもよい。図23はキューとデータ形式変換部との対応付けの一例について説明する説明図である。
メッセージキュー1131は、複数のキューを有する。キューは例えば「doc2rpcs」などのデータ変換の種類ごとに分離されている。また、データ形式変換部1132はWorkerノード上で動作する。Workerノードは例えばWindows(登録商標)サーバやLinux(登録商標)サーバにより実現される。
例えばデータ形式変換部1132は1つのWindows(登録商標)サーバ上で2つを動作させ、1つのLinux(登録商標)サーバ上で3つを動作させるような構成とすることができる。
図23では、Windows(登録商標)サーバ上で動作するデータ形式変換部1132が「doc2rpcs」「doc2pcl」「pdf2rpcs」「pdf2pcl」のデータ変換処理を行うことができる。また、図23ではLinux(登録商標)サーバ上で動作するデータ形式変換部1132が「html2pdf」「image2pdf」のデータ変換処理を行うことができる。
図23に示すように、データ形式変換部1132は1つの接続で複数のキューのジョブをポーリングすることができる。ただし、1つの接続でポーリングすることができる複数のキューの範囲は、例えば同一のOSサーバ上で動作するデータ形式変換部1132の範囲とする。
以下では変換要求のリクエストを分割する処理の一例として「img2rpcs」を例に説明する。図24〜図26は変換要求のリクエストを分割する処理の一例について説明する説明図である。
図24のステップS301以降の処理は処理制御部1124がデータ変換の種類「img2rpcs」とデータのURIとを少なくとも含むリクエストをフロントエンドアプリケーション1111aから受け取ったあとの処理である。
ステップS301において、処理制御部1124はフロントエンドアプリケーション1111aから受け取ったリクエストをジョブとしてジョブ管理情報記憶部1144に登録する。
ステップS302において、処理制御部1124はフロントエンドアプリケーション1111aから受け取ったリクエストをジョブaとして、データ変換の種類「img2rpcs」に対応するキューに投入する(Enqueue)。
データ変換の種類「img2rpcs」に対応するデータ形式変換部1132は、対応するキューを監視しており、ステップS303において、キューに投入されたジョブaを取得する。ステップS304において、データ形式変換部1132はジョブaに対応する処理を行う。
ここで、ステップS304におけるデータ形式変換部1132の処理について図27を参照しつつ説明する。図27はステップS304の処理の一例について説明する説明図である。図27ではデータ形式変換部1132をWorkerと記載している。また、図27では仮想的なタスクキュー(TasksQueue)の状態を表している。なお、仮想的なタスクキューはWorker内部で持っている配列のことである。
図27(1)において、タスクキューにはデータ形式変換部1132が取得したジョブaに対応するタスク「img2rpcs」が存在する。図27(2)において、データ変換の種類「img2rpcs」に対応するデータ形式変換部1132は、画像ファイルからRPCSへのデータ変換に必要なタスク「img2pdf」「pdf2rpcs」をタスクキューに追加する。
図27(3)において、データ形式変換部1132は、タスクキューの先頭にあるタスク「img2rpcs」を見て、ジョブaをデータ変換の種類「img2rpcs」に対応するキューから削除する(Dequeue)。
図27(4)において、データ形式変換部1132は、タスクキューの先頭にあるタスク「img2rpcs」を削除する。そして、図27(5)において、データ形式変換部1132はタスクキューの先頭にあるタスク「img2pdf」を見て、データ変換の種類「img2pdf」に対応するキューにジョブbを投入する。
図27(3)におけるジョブaの削除と図27(5)におけるジョブbの投入は図24のステップS305の処理となる。図24に戻り説明を続ける。
ステップS305においてジョブaの削除とジョブbの投入を行ったあと、データ変換の種類「img2rpcs」に対応するデータ形式変換部1132はステップS306においてジョブaの実行結果をジョブ管理情報記憶部1144に書き込む。ステップS306においてジョブaの実行結果を書き込まれたあとのジョブ管理情報は例えば図28に示すようになる。
図28はジョブaの実行結果を書き込まれたあとのジョブ管理情報の一例のデータ構造図である。図28に示すように、ジョブ管理情報には実行結果として「分割されたことを示す文字列」が書き込まれる。なお、ステータスは「img2rpcs」のデータ変換処理が実行中であることを表す「doing」となっている。
図25のステップS307において、データ変換の種類「img2pdf」に対応するデータ形式変換部1132は、監視しているキューに投入されたジョブbを取得する。ステップS308において、データ形式変換部1132はジョブbに対応する処理を行う。
ここで、ステップS308におけるデータ形式変換部1132の処理について図29を参照しつつ説明する。図29はステップS308の処理の一例について説明する説明図である。
図29(1)において、タスクキューにはタスク「img2pdf」「pdf2rpcs」が存在する。図29(2)において、データ変換の種類「img2pdf」に対応するデータ形式変換部1132は、タスクキューの先頭にあるタスク「img2pdf」を見る。データ変換の種類「img2pdf」に対応するデータ形式変換部1132はデータストレージ1145からのファイルの取得、ファイルのオープン、ファイルのデータ変換、ファイルのアップロード、ジョブbの削除を行う。
図29(3)において、データ形式変換部1132は、タスクキューの先頭にあるタスク「img2pdf」を削除する。そして、図29(4)において、データ形式変換部1132はタスクキューの先頭にあるタスク「pdf2rpcs」を見て、データ変換の種類「pdf2rpcs」に対応するキューにジョブcを投入する。
図29(2)におけるジョブbの削除と図29(4)におけるジョブcの投入は図25のステップS309の処理となる。図25に戻り説明を続ける。
ステップS309においてジョブbの削除とジョブcの投入を行ったあと、データ変換の種類「img2pdf」に対応するデータ形式変換部1132はステップS310においてジョブbの実行結果をジョブ管理情報記憶部1144に書き込む。ステップS310においてジョブbの実行結果を書き込まれたあとのジョブ管理情報は例えば図30に示すようになる。
図30はジョブbの実行結果を書き込まれたあとのジョブ管理情報の一例のデータ構造図である。図30に示すように、ジョブ管理情報には実行結果として、データストレージ1145における変換後のファイルが存在する場所の情報「データストレージのA.pdf」が書き込まれる。なお、ステータスは「img2rpcs」のデータ変換処理が実行中であることを表す「doing」となっている。
また、図26のステップS311において、データ変換の種類「pdf2rpcs」に対応するデータ形式変換部1132は、監視しているキューに投入されたジョブcを取得する。ステップS312において、データ形式変換部1132はジョブcに対応する処理を行う。
ここで、ステップS312におけるデータ形式変換部1132の処理について図31を参照しつつ説明する。図31はステップS312の処理の一例について説明する説明図である。
図31(1)において、タスクキューにはタスク「pdf2rpcs」が存在する。図31(2)において、データ変換の種類「pdf2rpcs」に対応するデータ形式変換部1132は、タスクキューの先頭にあるタスク「pdf2rpcs」を見る。データ変換の種類「pdf2rpcs」に対応するデータ形式変換部1132は、データストレージ1145からのファイルの取得、ファイルのオープン、ファイルのデータ変換、ファイルのアップロード、ジョブcの削除を行う。
図31(3)において、データ形式変換部1132は、タスクキューの先頭にあるタスク「pdf2rpcs」を削除する。タスク「pdf2rpcs」が削除されると、タスクキューは空になる。なお、図31(2)におけるジョブbの削除は図26のステップS313の処理となる。図26に戻り説明を続ける。
ステップS313においてジョブcの削除を行ったあと、データ変換の種類「pdf2rpcs」に対応するデータ形式変換部1132はステップS314においてジョブcの実行結果をジョブ管理情報記憶部1144に書き込む。ステップS314においてジョブcの実行結果を書き込まれたあとのジョブ管理情報は例えば図32に示すようになる。
図32はジョブcの実行結果を書き込まれたあとのジョブ管理情報の一例のデータ構造図である。図32に示すように、ジョブ管理情報には実行結果として、データストレージ1145における変換後のファイルが存在する場所の情報「データストレージのA.rpcs」が書き込まれる。なお、ステータスは「img2rpcs」のデータ変換処理が完了したことを表す「done」となっている。
このように、本実施形態によれば、複数のデータ形式変換部1132を連携したデータ変換処理が可能である。このため、本実施形態によれば、変換前又は変換後のデータ形式の選択肢が多くなっても用意しなければならないデータ変換エンジンの数の増加を従来よりも抑えることができるので変換前又は変換後のデータ形式の種類の増加に柔軟に対応できる。
なお、第3の実施形態ではデータ変換処理を例として説明したが、第2の実施形態において示したように、画像ファイルのOCR処理やオンラインストレージへファイルを保存する処理など、多種多様な処理に対応可能である。この場合、データ形式変換部1132は処理を実行する実行手段220に置き換えられる。
実行手段220は、処理実行要求により要求された処理の他、まだ処理実行要求されていないが、要求された処理実行要求の次に要求されることが予想される処理(例えばプレビュー処理など)を、裏で処理するものであってもよい。本実施形態では、第1の実施形態の変換手段120、第2の実施形態の実行手段220又は第3の実施形態のデータ形式変換部1132を連携させて処理を行わせることにより、以下のような処理を行うことが可能となる。
・画像/テキスト/HTML/ドキュメント/PDFファイルを印刷ファイルに変換
・画像形成装置1013でスキャンした画像ファイルをOCR処理して、オンラインストレージ14に保存
・オンラインストレージ14にあるファイルを取得し、印刷ファイルに変換
・オンラインストレージ14にある画像ファイルを取得し、OCR処理
[第4の実施形態]
上記した第1〜第3の実施形態では、受付順にジョブを処理していたが、以下の第4の実施形態のように、ジョブを処理する順序に優先度を付けることもできる。例えばユーザの種類を一般ユーザとプレミアムユーザとに分けた場合は、一般ユーザのジョブよりもプレミアムユーザのジョブを優先させたいケースが考えられる。処理時間が長いジョブと処理時間が短いジョブとがある場合は、処理時間が長いジョブよりも処理時間が短いジョブを優先させたいケースも考えられる。
ここでは、第1の実施形態において、ジョブを処理する順序に優先度を付ける例について説明するが、第2及び第3の実施形態においても同様に、ジョブを処理する順序に優先度を付けることが可能である。なお、第4の実施形態は前述した第1の実施形態と一部を除いて同様であるため、同一部分について適宜説明を省略する。
まず、ジョブを処理する順序に優先度を付けないデータ変換システム100について図33を参照しつつ説明する。図33はジョブを処理する順序に優先度を付けないデータ変換システムの構成例を示すブロック図である。
なお、図33は図4のデータ変換システム100に示した共有ファイルストレージ107、ジョブ情報管理データベース108の構成を省略している。また、図33は変換手段120をWorker120と記載している。
図33に示すように、データ変換システム100は、メッセージキュー112にジョブを登録しておき、Worker120がジョブを一つずつ処理していく。なお、図33ではメッセージキュー112がデータ変換の種類「doc2rpcs」及び「pdf2rpcs」に対応するキューを有している。また、図33ではWorker120が「doc2rpcs」及び「pdf2rpcs」のデータ変換処理を行うことができる。
フロントエンドアプリケーション102aは、必要なデータ変換の種類を例えば「type=doc2rpcs」のようなパラメータにして、非同期変換サーバ101に送信するリクエスト(ジョブ)に埋め込む。
リクエストを受け取った非同期変換サーバ101のデータ変換要求管理手段111はリクエストを解析して、データ変換の種類に合致するメッセージキュー112のデータ変換の種類「doc2rpcs」のキューに、ジョブ(メッセージ)を入れる。
ここでは「ジョブ1」及び「ジョブ2」が一般ユーザのジョブであり、「ジョブ2」及び「ジョブ4」がプレミアムユーザであるものとして説明する。ジョブを処理する順番に優先度を付けないデータ変換システム100では、図33のように一般のユーザのジョブもプレミアムユーザのジョブも同じキューに入れられるため、キューに入れられた順番に処理される。処理時間が長いジョブと処理時間が短いジョブとがある場合も同様に処理される。
即ち、各Worker120は、データ変換の種類「doc2rpcs」及び「pdf2rpcs」に対応するキューを監視しており、キューに入れられた順番にジョブを処理する。
次に、ジョブを処理する順序に優先度を付けるデータ変換システム100について図34を参照しつつ説明する。図34はジョブを処理する順序に優先度を付けるデータ変換システムの構成例を示すブロック図である。
なお、図34は図4のデータ変換システム100に示した共有ファイルストレージ107、ジョブ情報管理データベース108の構成を省略している。また、図34は変換手段120をWorker120と記載している。
図34のデータ変換システム100は、一般ユーザ用のキューとプレミアムユーザ用のキューと、をメッセージキュー112に用意している。例えば図34のデータ変換システム100はデータ変換の種類「doc2rpcs」及び「pdf2rpcs」に対応する一般ユーザ用のキューとプレミアムユーザ用のキューとを用意している。
図34ではデータ変換の種類「doc2rpcs」の一般ユーザ用のキューを「doc2rpcs」と記載する。また、データ変換の種類「pdf2rpcs」の一般ユーザ用のキューを「pdf2rpcs」と記載する。
また、データ変換の種類「doc2rpcs」のプレミアムユーザ用のキューを「doc2rpcs_prem」と記載する。また、データ変換の種類「pdf2rpcs」のプレミアムユーザ用のキューを「pdf2rpcs_prem」と記載する。
また、図34のデータ変換システム100は、プレミアムユーザ優先のWorker120と、一般ユーザ優先のWorker120とを用意している。なお、図34ではプレミアムユーザ優先のWorker120も一般ユーザ優先のWorker120も処理できるデータ変換の種類が同一であるが、優先して処理を行うキューが異なっている。
例えば図34の一般ユーザ優先のWorker120は一般ユーザ用のキューのジョブを優先して処理する。プレミアムユーザ優先のWorker120はプレミアムユーザ用のキューのジョブを優先して処理する。なお、図34の各Worker120上には優先して処理を行う順番に、キューが記載されている。
図34のように、一般ユーザ優先のWorker120の数よりもプレミアムユーザ優先のWorker120の数を多くすることで、一般ユーザ用のキューにジョブが先に入れられても、プレミアムユーザ用のキューに入れられたジョブが優先的に処理される。
なお、プレミアムユーザ用のキューにジョブが無い場合、プレミアムユーザ優先のWorker120は、一般ユーザ用のキューのジョブを処理することで、ジョブが存在するのにWorker120が処理しない状況を回避し、稼働率を向上させる。
一般ユーザ用のキューにジョブが無い場合も、一般ユーザ優先のWorker120はプレミアムユーザ用のキューのジョブを処理することで、ジョブが存在するのにWorker120が処理しない状況を回避し、稼働率を向上させる。
フロントエンドアプリケーション102aは、必要なデータ変換の種類を例えば「type=doc2rpcs」のようなパラメータにして、非同期変換サーバ101に送信するリクエスト(ジョブ)に埋め込む。
リクエストを受け取った非同期変換サーバ101のデータ変換要求管理手段111はリクエストを解析して、一般ユーザからのリクエストかプレミアムユーザからのリクエストかを判定する。一般ユーザかプレミアムユーザかの判定はリクエストの中に識別子を含ませて判定してもよいし、ユーザIDなどのユーザ特定情報から判定してもよい。例えば一般ユーザかプレミアムユーザかの情報をユーザIDなどのユーザ特定情報と対応付けて認証用データベース106に登録しておけば、一般ユーザによるプレミアムユーザのなりすまし等を防ぐこともできる。
そして、データ変換要求管理手段111は一般ユーザからのリクエストであると判定すると、データ変換の種類に合致する一般ユーザ用のキューに、ジョブ(メッセージ)を振り分ける。データ変換要求管理手段111はプレミアムユーザからのリクエストであると判定すると、データ変換の種類に合致するプレミアムユーザ用のキューにジョブを振り分ける。
図34では一般ユーザ用のキューに一般ユーザからの「ジョブ1」〜「ジョブ3」が振り分けられた様子を表している。また、プレミアムユーザ用のキューにプレミアムユーザからの「ジョブ1」〜「ジョブ5」が振り分けられた様子を表している。一般ユーザ用のキューに振り分けられた一般ユーザからの「ジョブ1」は一般ユーザ優先のWorker120によって処理されている。また、プレミアムユーザ用のキューに振り分けられたプレミアムユーザからの「ジョブ1」〜「ジョブ3」はプレミアムユーザ優先のWorker120によって処理されている。
ジョブを処理する順番に優先度を付けるデータ変換システム100では、一般のユーザのジョブとプレミアムユーザのジョブとを異なるキューに入れることでプレミアムユーザのジョブを優先的に処理できる。
なお、データ変換要求管理手段111によるジョブの振り分けは、一般ユーザ及びプレミアムユーザなどのユーザの種類の他、一般企業及びプレミアム企業などの企業の種類によっても行うことができる。
このように、本実施形態によれば、ジョブの優先度によりジョブを処理する順番を変更できる。例えば一般ユーザのジョブよりプレミアムユーザのジョブの方を優先的に処理することにより、プレミアムユーザの利用価値を向上させることができる。また、処理時間が長いジョブより処理時間が短いジョブの方を優先的に処理することにより、処理時間が長いジョブによって処理時間が短いジョブが待たされることを防ぐことができ、ユーザの利便性を向上させることができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した実行手段は変換手段120、実行手段220、データ形式変換部1132に相当する。管理手段はデータ変換要求管理手段111、処理実行要求管理手段211、処理制御部1124に相当する。保持手段はメッセージキュー112、212、1131に相当する。データ記憶装置はオンラインストレージ14に相当する。
10 クラウド
11 サーバ
12 PC(パーソナルコンピュータ)
13 MFP(複合機)
14 オンラインストレージ
100 データ変換システム
101 非同期変換サーバ
102 印刷ジョブ管理サーバ
102a、202a、1111a フロントエンドアプリケーション
103 ファイヤウォール
104 リバースプロキシ
105 認証サーバ
106 認証用データベース
107 共有ファイルストレージ
108 ジョブ情報管理データベース
111 データ変換要求管理手段
112、212 メッセージキュー
120 変換手段
120a 変換処理ライブラリ
120b 変換エンジン
200 処理実行システム
201 非同期処理サーバ
202 ジョブ管理サーバ
207 共有ファイルストレージ
208 ジョブ情報管理データベース
211 処理実行要求管理手段
220 実行手段
220a 処理ライブラリ
220b 処理エンジン
1000 システム
1011 クライアント端末
1012 携帯端末
1013 画像形成装置
1021 アクセス制御装置
1022 プリントサービス提供装置
1023 スキャンサービス提供装置
1024 他サービス提供装置
1100 サービス提供システム
1101 サービスアプリ
1102 プラットフォーム
1103 管理データ記憶部
1104 プラットフォームAPI(Application Programming Interface)
1111 プリントサービスアプリ
1112 スキャンサービスアプリ
1113 その他のサービスアプリ
1121 認証処理部
1122 機器通信部
1123 セッション管理部
1124 処理制御部
1125 データ処理部
1131 メッセージキュー
1132 データ形式変換部
1141 組織管理情報記憶部
1142 ユーザ管理情報記憶部
1143 機器管理情報記憶部
1144 ジョブ管理情報記憶部
1145 データストレージ
1500 コンピュータシステム
1501 入力装置
1502 表示装置
1503 外部I/F
1503a 記録媒体
1504 RAM
1505 ROM
1506 CPU
1507 通信I/F
1508 HDD
B バス
FW ファイヤウォール
N1〜N3 ネットワーク
特開2011−192250号公報

Claims (11)

  1. 一以上の情報処理装置を含むように構成される情報処理システムであって、
    処理実行要求を処理の種類により振り分ける管理手段と、
    振り分けられた前記処理実行要求を処理の種類ごとに保持する保持手段と、
    保持された前記処理実行要求に対応した処理を実行する複数の実行手段と
    を備え、
    前記複数の実行手段の少なくとも1つは、前記保持手段が保持する前記処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させること
    を特徴とする情報処理システム。
  2. 前記他の実行手段は、
    前記複数の実行手段の少なくとも1つが前記保持手段に保持させた前記処理実行要求に対応した処理を実行し、前記分割した処理のうち実行されていない処理の前記処理実行要求を前記保持手段に保持させること
    を特徴とする請求項1記載の情報処理システム。
  3. 前記複数の実行手段は、あるデータ形式から別のデータ形式へ所定のデータ変換を実行する変換手段と、
    第1のデータ形式の電子データを第2のデータ形式の電子データへ変換する前記処理実行要求に対応したデータ変換処理を、前記変換手段により実行されるデータ変換処理に分割し、分割したデータ変換処理を前記変換手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させる分割手段と、
    を備えることを特徴とする請求項1又は2記載の情報処理システム。
  4. 前記複数の実行手段は、電子データに対して処理を行い、又は、電子データを所定のデータ記憶装置に保存する複数の処理手段と、
    電子データに対して処理を行ったあと所定のデータ記憶装置に電子データを保存する処理実行要求を、前記処理手段により実行される電子データに対する処理と所定のデータ記憶装置に電子データを保存する処理とに分割し、分割した処理を前記処理手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させる分割手段と、
    を備えることを特徴とする請求項1又は2記載の情報処理システム。
  5. 前記複数の実行手段は、電子データに対して処理を行い、又は、所定のデータ記憶装置から電子データを取得する複数の処理手段と、
    所定のデータ記憶装置から電子データを取得し、電子データに対して処理を行う処理実行要求を、前記処理手段により実行される所定のデータ記憶装置から電子データを取得する処理と電子データに対する処理とに分割し、分割した処理を前記処理手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させる分割手段と、
    を備えることを特徴とする請求項1又は2記載の情報処理システム。
  6. 前記保持手段はキューであり、前記他の実行手段により実行される処理に分割される前記処理実行要求を保持するキューと、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を保持するキューと、
    を含むことを特徴とする請求項1乃至5何れか一項記載の情報処理システム。
  7. 一以上の情報処理装置を含むように構成される情報処理システムであって、
    処理実行要求を処理の種類及び優先度により振り分ける管理手段と、
    振り分けられた前記処理実行要求を処理の種類及び優先度ごとに保持する保持手段と、
    保持された前記処理実行要求に対応した処理を前記処理の種類及び優先度に従って実行する複数の実行手段と
    を備え、
    前記複数の実行手段の少なくとも1つは、前記保持手段が保持する前記処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させること
    を特徴とする情報処理システム。
  8. 前記保持手段は、振り分けられた前記処理実行要求を処理の種類及び優先度ごとに分けて保持し、優先度の高い前記処理実行要求に対応した処理を優先して実行する前記実行手段又は優先度の低い前記処理実行要求に対応した処理を優先して実行する前記実行手段により、保持している前記処理実行要求に対応した処理を実行されること
    を特徴とする請求項7記載の情報処理システム。
  9. 処理実行要求を処理の種類により振り分ける管理手段と、
    振り分けられた前記処理実行要求を処理の種類ごとに保持する保持手段と、
    保持された前記処理実行要求に対応した処理を実行する複数の実行手段と
    を備え、
    前記複数の実行手段の少なくとも1つは、前記保持手段が保持する前記処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させること
    を特徴とする情報処理装置。
  10. コンピュータを、
    処理実行要求を処理の種類により振り分ける管理手段と、
    振り分けられた前記処理実行要求を処理の種類ごとに保持する保持手段と、
    保持された前記処理実行要求に対応した処理を実行する複数の実行手段と
    として機能させ、
    前記複数の実行手段の少なくとも1つは、前記保持手段が保持する前記処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させること
    を特徴とするプログラム。
  11. 一以上の情報処理装置を含むように構成される情報処理システムが実行する処理実行方法であって、
    前記情報処理システムが、
    処理実行要求を処理の種類により振り分ける管理ステップと、
    振り分けられた前記処理実行要求を処理の種類ごとに保持手段に保持する保持ステップと、
    保持された前記処理実行要求に対応した処理を複数の実行手段が実行する実行ステップと
    を実行し、
    前記複数の実行手段の少なくとも1つは、前記保持手段が保持する前記処理実行要求に対応した処理を、他の実行手段により実行される処理に分割し、分割した処理を前記他の実行手段に連携させて実行させる前記処理実行要求を前記保持手段に保持させること
    を特徴とする処理実行方法。
JP2013216166A 2013-01-11 2013-10-17 情報処理システム、情報処理装置、プログラム及び処理実行方法 Active JP6364738B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013216166A JP6364738B2 (ja) 2013-01-11 2013-10-17 情報処理システム、情報処理装置、プログラム及び処理実行方法
US14/148,923 US9383950B2 (en) 2013-01-11 2014-01-07 Information processing system, information processing apparatus, and process execution method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013003182 2013-01-11
JP2013003182 2013-01-11
JP2013216166A JP6364738B2 (ja) 2013-01-11 2013-10-17 情報処理システム、情報処理装置、プログラム及び処理実行方法

Publications (2)

Publication Number Publication Date
JP2014149809A true JP2014149809A (ja) 2014-08-21
JP6364738B2 JP6364738B2 (ja) 2018-08-01

Family

ID=51166319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013216166A Active JP6364738B2 (ja) 2013-01-11 2013-10-17 情報処理システム、情報処理装置、プログラム及び処理実行方法

Country Status (2)

Country Link
US (1) US9383950B2 (ja)
JP (1) JP6364738B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004121A (ja) * 2015-06-05 2017-01-05 キヤノン株式会社 情報処理システム、およびその制御方法
JP2017037531A (ja) * 2015-08-11 2017-02-16 キヤノン株式会社 通信装置及びその制御方法ならびにプログラム
US11200088B2 (en) 2019-03-06 2021-12-14 Ricoh Company, Ltd. Information processing system, information processing method, and information processing apparatus

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6206149B2 (ja) * 2013-12-11 2017-10-04 富士ゼロックス株式会社 印刷システム
US9128779B1 (en) 2014-07-31 2015-09-08 Splunk Inc. Distributed tasks for retrieving supplemental job information
JP6672910B2 (ja) * 2016-03-11 2020-03-25 株式会社リコー 遠隔コミュニケーションシステム、通信端末、拡張機能提供方法および拡張機能提供プログラム
US9923956B2 (en) 2016-03-17 2018-03-20 Webtext Holdings Limited Message transfer system, method of transferring messages and software product
JP6848340B2 (ja) 2016-10-25 2021-03-24 株式会社リコー 情報処理システム、更新方法、情報処理装置及びプログラム
JP2018139081A (ja) * 2017-02-24 2018-09-06 セイコーエプソン株式会社 サーバー、プログラムおよび送信処理方法
US11243722B2 (en) 2019-02-11 2022-02-08 Cisco Technology, Inc. System and method of providing universal mobile internet proxy printing
JP7446824B2 (ja) * 2020-01-21 2024-03-11 キヤノン株式会社 情報処理装置、印刷システム、情報処理装置の制御方法及びプログラム
EP3933678A1 (en) 2020-06-30 2022-01-05 Ricoh Company, Ltd. Information processing system, data output system, image processing method, and carrier means
US11954525B1 (en) * 2022-09-21 2024-04-09 Zhejiang Lab Method and apparatus of executing collaborative job for spark faced to multiple K8s clusters

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075844A (ja) * 1999-08-31 2001-03-23 Nec Corp データ変換装置及びその記録媒体
JP2005071031A (ja) * 2003-08-22 2005-03-17 Nec Corp キューイング装置、キュー処理方法、およびキュー処理プログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816276B2 (en) * 2001-03-08 2004-11-09 Electronics For Imaging, Inc. Efficiently scheduled multiple raster image processors
US7872767B2 (en) * 2003-04-04 2011-01-18 Xerox Corporation Parallel printing system
US7788638B2 (en) * 2003-11-21 2010-08-31 Citigroup Global Markets Inc. Method and system for data file processing
US7911625B2 (en) * 2004-10-15 2011-03-22 Fujifilm Dimatrix, Inc. Printing system software architecture
US8448158B2 (en) * 2005-02-03 2013-05-21 Mitsubishi Electric Corporation Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof
JP2009134695A (ja) 2007-11-07 2009-06-18 Ricoh Co Ltd 情報処理装置、画像処理装置、アプリケーション実行方法、及びアプリケーション実行プログラム
US8438567B2 (en) 2007-11-07 2013-05-07 Ricoh Company, Ltd. Information processing device and image processing apparatus
US8593668B2 (en) * 2009-05-04 2013-11-26 Xerox Corporation Parallel printing system
US9754025B2 (en) * 2009-08-13 2017-09-05 TunesMap Inc. Analyzing captured sound and seeking a match based on an acoustic fingerprint for temporal and geographic presentation and navigation of linked cultural, artistic, and historic content
JP2011192250A (ja) 2010-02-22 2011-09-29 Canon Inc クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法
JP5623139B2 (ja) 2010-06-02 2014-11-12 キヤノン株式会社 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US20120054112A1 (en) * 2010-08-30 2012-03-01 Ricoh Company, Ltd. Techniques for creating microtasks for content privacy preservation
US8949258B2 (en) * 2011-03-28 2015-02-03 Microsoft Corporation Techniques to manage file conversions
JP2013103477A (ja) * 2011-11-16 2013-05-30 Canon Inc 画像形成装置、印刷制御方法、及びプログラム
US20130198620A1 (en) * 2012-01-26 2013-08-01 Microsoft Corporation Method and system for performing synchronous document conversion
JP2013178748A (ja) * 2012-02-01 2013-09-09 Ricoh Co Ltd 情報処理装置、プログラム、情報処理システム及びデータ変換処理方法
JP5299534B2 (ja) * 2012-03-07 2013-09-25 富士ゼロックス株式会社 印刷システム、管理装置、画像形成装置及びプログラム
US9001373B2 (en) * 2012-03-30 2015-04-07 Xerox Corporation Parallel printing system
CN103902236A (zh) * 2012-12-24 2014-07-02 北大方正集团有限公司 打印服务的实现方法和系统
US20140340717A1 (en) * 2013-05-20 2014-11-20 Conexant Systems, Inc. Real-time secure digital facsimile implementation using cloud services
JP6192423B2 (ja) * 2013-08-12 2017-09-06 キヤノン株式会社 情報処理装置及び情報処理方法、情報処理システム、プログラム
JP5838188B2 (ja) * 2013-08-23 2016-01-06 株式会社沖データ 情報処理装置及び情報処理システム
US9311038B2 (en) * 2013-09-30 2016-04-12 Samsung Electronics Co., Ltd. System and method for providing cloud printing service
US9292236B2 (en) * 2014-02-28 2016-03-22 Ricoh Company, Ltd. Locked print in cloud printing environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075844A (ja) * 1999-08-31 2001-03-23 Nec Corp データ変換装置及びその記録媒体
JP2005071031A (ja) * 2003-08-22 2005-03-17 Nec Corp キューイング装置、キュー処理方法、およびキュー処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004121A (ja) * 2015-06-05 2017-01-05 キヤノン株式会社 情報処理システム、およびその制御方法
JP2017037531A (ja) * 2015-08-11 2017-02-16 キヤノン株式会社 通信装置及びその制御方法ならびにプログラム
US11200088B2 (en) 2019-03-06 2021-12-14 Ricoh Company, Ltd. Information processing system, information processing method, and information processing apparatus

Also Published As

Publication number Publication date
JP6364738B2 (ja) 2018-08-01
US9383950B2 (en) 2016-07-05
US20140201759A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP6364738B2 (ja) 情報処理システム、情報処理装置、プログラム及び処理実行方法
US10042905B2 (en) Information processing apparatus, information processing system, and data conversion method
US10114940B2 (en) Information processing system, information processing apparatus, and information processing method
JP2013088950A (ja) 印刷システム及び印刷方法
US20160006796A1 (en) Information processing system
JP6357780B2 (ja) ネットワークシステム及び情報通知方法
US8994975B2 (en) Information processing apparatus, output system and non-transitory computer readable information recording medium
US20120096465A1 (en) Image forming apparatus, log management method, and storage medium
CN102103475A (zh) 打印任务管理装置、系统及方法
JP5845107B2 (ja) 画像形成装置、その制御方法、及びプログラム
JP6848378B2 (ja) 機器連携システム、機器連携方法、機器
JP6171346B2 (ja) 情報処理装置、処理実行方法、プログラム
JP6191130B2 (ja) 情報処理プログラム、情報処理方法、情報処理装置及び情報処理システム
JP2014167679A (ja) ジョブ実行制御システム、ジョブ実行システム、ジョブ実行制御方法及びプログラム
JP2008176784A (ja) ドキュメント処理システムおよび方法
JP6163932B2 (ja) データ処理システム、情報処理システム、情報処理方法及びプログラム
JP6844197B2 (ja) 情報処理システム、プログラム、処理実行方法
JP6123293B2 (ja) 情報処理システム、データ変換処理方法、プログラム及び記録媒体
JP2015158721A (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2013175060A (ja) 情報処理装置、ファイル処理方法、プログラム
JP6421843B2 (ja) 情報処理システム、データ変換処理方法及び情報処理システム
US9648077B2 (en) Client apparatus and system
JP6248563B2 (ja) 出力システム、端末装置、プログラム、及び出力方法
JP2023023019A (ja) 情報処理装置及びプログラム
US9826109B2 (en) System and method for distribution of hard copy documents in pull print system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180618

R151 Written notification of patent or utility model registration

Ref document number: 6364738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151