JP5623139B2 - クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム - Google Patents

クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP5623139B2
JP5623139B2 JP2010126451A JP2010126451A JP5623139B2 JP 5623139 B2 JP5623139 B2 JP 5623139B2 JP 2010126451 A JP2010126451 A JP 2010126451A JP 2010126451 A JP2010126451 A JP 2010126451A JP 5623139 B2 JP5623139 B2 JP 5623139B2
Authority
JP
Japan
Prior art keywords
message
processing unit
job
end processing
queue
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.)
Active
Application number
JP2010126451A
Other languages
English (en)
Other versions
JP2011253337A (ja
Inventor
峻輔 太田
峻輔 太田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010126451A priority Critical patent/JP5623139B2/ja
Priority to US13/109,872 priority patent/US20110299112A1/en
Publication of JP2011253337A publication Critical patent/JP2011253337A/ja
Application granted granted Critical
Publication of JP5623139B2 publication Critical patent/JP5623139B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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/124Parallel printing or parallel ripping
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

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)
  • Software Systems (AREA)
  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラムに関する。
近年、インターネット上のサーバにて動作する各種アプリケーションを利用可能な、クラウドコンピューティングシステムという技術が注目されている。クラウドクラウドコンピューティングシステムは、サーバの負荷やトランザクションの多寡に応じて、仮想的なコンピュータ(Virtual Machine :VM)を複数起動させることを容易にできる。その結果、複数のVMを用いて処理を実行することで、並列処理が可能となる。クラウドコンピューティングシステムを利用したサービスの1つとして、ドライバレスな印刷サービスが考えられる。この印刷サービスでは、PC(Personal Computer )にドライバをインストールすることなく、VM上のアプリケーションサーバに印刷データ変換サービスを実装し、実装された印刷データ変換サービスを用いて、印刷データを生成する。
なお、特許文献1は、印刷データ変換処理を行う演算装置(デコンポーザ)の起動数を、印刷データの1ページあたりの情報量やページ数より決定し、適切な数の演算装置を用いて並列処理する印刷制御装置を提案している。
特開2008−293313号公報
一般に、システムが複数の演算装置を用いて並列処理を行う場合には、演算装置の数と処理対象の数との間の関係を決定する明確な基準がない。従って、処理に必要な最適な演算装置の数を求めることは困難である。
特許文献1が提案する印刷制御装置は、メモリの残容量等の、刻々と大きく変化する対象に基づいて演算装置の起動数を決定する。しかし、クラウドコンピューティングシステムにおいて、VMの起動にはある程度の時間必要であるため、即時にVMの起動数を変化させることは困難である。例えば、システムがVMの起動時間を待ってから処理を開始した場合、処理の結果を出すために時間を要する。予めVMを起動させておくことも考えられるが、無駄にVMを起動させてしまう、もしくは起動すべきVMが足りないという状況が生じ得る。
また、従来、1つのコンテンツの印刷データ変換処理のジョブを並列処理可能な単位に分割し、複数のキューを用いて並列的に処理するシステムにおいて、複数のキューに格納されたジョブの適切な実行順序を決定して処理するシステムはなかった。
本発明は、処理依頼されたジョブを分割して分割ジョブを生成し、夫々の分割ジョブを適切な実行順序で文書処理するクラウドコンピューティングシステムの提供を目的とする。
本発明の一実施形態のクラウドコンピューティングシステムは、 画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、
前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と、前記記憶手段に格納されたメッセージを可視状態または不可視状態にする制御部とを有するクラウドコンピューティングシステムである。前記要求受信部は、前記画像形成装置からのジョブの処理依頼を受信し、該受信したジョブを分割し、該分割された夫々のジョブの実行順序を決定し、該分割した夫々のジョブに対応するメッセージを複数の前記記憶手段に格納する格納手段を有し、前記バックエンド処理部は、前記決定された分割ジョブの実行順序に従って、前記複数の記憶手段のいずれかに格納されているメッセージを取り出し、該取り出したメッセージに基づき前記分割されたジョブの文書処理を行文書処理手段を有し、前記制御部は、前記メッセージが特定の前記バックエンド処理部により取得されたことに応じて、同一の前記メッセージが他の前記バックエンド処理部に取得されないように前記メッセージを不可視状態とし、前記特定のバックエンド処理部による処理が終了せずに前記メッセージが前記不可視状態となってから所定時間経過した後、前記メッセージを前記不可視状態から前記可視状態へと変更し、前記他のバックエンド処理部が前記メッセージを取得できるように制御する。
本発明によれば、起動している全てのVMを用いて並列的に文書処理を行わせることが可能である。また、並列処理の際には、処理の順番を考慮して適切な順番で処理を行うことで、処理の高速化を図ることができる。
本実施形態のシステムの全体構成を示す図である。 文書処理システムが備えるサーバと、画像形成装置のハードウェア構成の例を示す図である。 本実施形態のシステムの機能ブロック図の例である。 文書処理システムを実現するプラットフォームシステムを示す図である。 キュー管理テーブルとメッセージ管理テーブルの例を示す図である。 キューに格納されるメッセージの例を示す図である。 メッセージのキューへの登録処理を説明するフローチャートである。 文書処理システムから画像形成装置に対する印刷データの送信処理を説明する図である。 バックエンド処理部による文書処理を説明するフローチャートである。 キューに格納されるメッセージの例を示す図である。 メッセージのキューへの登録処理を説明するフローチャートである バックエンド処理部による文書処理を説明するフローチャートである。
以下に、本実施形態を添付の図面に基づいて説明する。まず、本実施形態で使用される用語の一般的な定義について説明する。ポーリングとは、クライアントがホストに要求をした処理の経過や完了を確認するために、クライアントが一定間隔でホストに処理の経過状況を問い合わせる処理である。コンテンツとは、例えば、文書データや画像データを組み合わせた電子データである。印刷データ変換処理とは、例えば、ユーザが印刷したいコンテンツを、MFP(Multi Function Peripheral )やプリンタ等の画像形成装置が印刷データへ変換する処理である。印刷データは、例えば、コンテンツを印刷データ処理によって変換処理したデータのことである。印刷データは、例えば、PDL(Page Description Language )、PDF(Portable Document Format)、ラスタイメージ等である。
図1は、本実施形態のシステムの全体構成を示す図である。図1に示すシステムは、文書リポジトリ101、文書処理システム102、画像形成装置103とを備える。文書リポジトリ101と文書処理システム102と画像形成装置103とは、ネットワーク100を介して接続されている。ネットワーク100は、有線、無線を問わない。
文書リポジトリ101は、コンテンツを保存し、画像形成装置103からの要求に応じて、コンテンツを画像形成装置103に対して提供する処理装置である。画像形成装置103は、文書処理システム102に対して印刷要求を行い、この印刷要求に応答した文書処理システム102から印刷データを受信し、受信した印刷データを印刷処理する。画像形成装置103は、外部からのアクセスが制限されたローカルエリアに配置されており、ネットワーク120からファイアウォールで遮断されている。文書処理システム102は、複数のサーバ200を含むサーバ群を備える。
文書処理システム102は、画像形成装置103から印刷要求を受け取り、文書リポジトリに保存されているコンテンツに対して印刷要求に応じた処理を実行して印刷データを生成し、生成した印刷データを画像形成装置103に送信する。文書処理システム102は、クラウドに設けられているクラウドコンピューティングシステムである。クラウドとは、クラウドコンピューティング環境におけるサーバ群が配置される領域のことである。クラウドコンピューティング環境においては、ユーザはコンピュータ処理をネットワーク経由でサービスとして利用する。クラウドに設けられた文書処理システム102から発する要求によりファイアウォール内部にアクセスすることはできない。従って、文書処理システム102は、画像形成装置103からの要求の応答を返すことによって、画像形成装置103に対して通信を行う。本実施形態の文書処理方法は、図1に示す文書処理システム102によって実現される。また、本実施形態のコンピュータプログラムは、この文書処理方法をコンピュータに実行させる。
図2は、文書処理システムが備えるサーバと、画像形成装置のハードウェア構成の例を示す図である。図2(A)は、文書処理システム102が備えるサーバ200のハードウェア構成の例を示す。このサーバ200は、CPU201、直接記憶部202、間接記憶部203、ネットワークインタフェース204を有する。
CPU(Central Processing Unit)201は、所定のプログラムを実行し、サーバ200の各種制御を指示する処理部である。直接記憶部202は、CPU201がプログラムを実行する際に使用するワークメモリである。このプログラムは直接記憶部202にロードされる。直接記憶部202は、RAM(Random Access Memory)を備える。間接記憶部203には、アプリケーションプログラム、OS(Operating System)を含む各種プログラムが記憶されている。間接記憶部203に記憶されている各種プログラムは、CPU201がプログラムを実行する際に直接記憶部202へ移動する。間接記憶部203は、ROM(Read Only Memory)またはHDD(Hard Disc Drive )を備える。なお、CPU201がマルチプロセッサであってもよい。ネットワークインタフェース206は、ネットワーク100に接続されており、サーバ200とネットワーク100に接続されている他の装置との通信を媒介する。
図2(B)は、画像形成装置103のハードウェア構成の例を示す。画像形成装置103は、画像処理ユニット301と印刷ユニット307とを備える。画像処理ユニット301は、文書処理システム102から印刷データを取得し、この印刷データに対して所定の画像処理を実行する。印刷ユニット307は、画像処理ユニット301によって画像処理された印刷データを印刷する。
画像処理ユニット301は、CPU302、直接記憶部303、間接記憶部304、ユーザインタフェース305、ネットワークインタフェース306を備える。CPU302は、所定のプログラムを実行し、画像処理ユニット301の各種制御を指示するユニットである。直接記憶部303は、CPU302がプログラムを実行する際に使用するワークメモリである。このプログラムは直接記憶部303にロードされる。直接記憶部303は、RAMにより実現される。間接記憶部304には、アプリケーションプログラムを含む各種プログラムが記憶されている。間接記憶部304に記憶されている各種プログラムは、CPU302がプログラムを実行する際に直接記憶部303へ移動する。間接記憶部304は、SSD(Solid State Drive )またはHDDにより実現される。CPU302がマルチプロセッサであってもよい。ユーザインタフェース305は、ユーザからの入力を受け付ける機能を持つ。ユーザインタフェース305は、タッチパネルや、マウス、キーボードなどの機器を介してユーザからの入力を受け付ける。ネットワークインタフェース306は、ネットワーク100に接続されており、ネットワーク100に接続されている他の装置との通信を媒介する。
図3は、本実施形態のシステムの機能ブロック図の例である。文書リポジトリ101はWebサーバ部4011、文書蓄積部4012を備える。Webサーバ部4011は、文書処理システム102、画像形成装置103からのリクエストを受信し、各要求に応じた処理を行う。文書リポジトリ101は、例えば、画像形成装置103のウェブブラウザ4034から文書一覧取得のためのHTTP要求を受け、文書蓄積部4012に保存されている各種コンテンツの情報を返す。文書蓄積部4012は、図2(B)の間接記憶部203によって実現される。文書リポジトリ101に保存されるコンテンツ、コンテンツの保存方法には特に指定はない。
文書処理システム102は、ストレージ4021、キューサービス4022、テーブル4023、フロントエンド処理部4025、バックエンド処理部4024を備える。ストレージ4021は、バックエンド処理部4024による処理の実行結果のデータを始めとする各種データを保存しておく機能を持つ。ストレージ4021は、図2(B)の間接記憶部203によって実現される。キューサービス4022は、キューを有する。キューサービス4022は、フロントエンド処理部4025とバックエンド処理部4024とが非同期でデータ通信できるようにする機能を持つ。また、キューサービス4022は、キューに追加されているメッセージを不可視、または可視にする機能を持つ。キューサービス4022は、図2(B)の間接記憶部203に保存されているキュープログラムが、直接記憶部202にロードされて、CPU201により実行されることで実現される。また、キューサービス4022が有するキューは、間接記憶部203によって実現される。
テーブル4024は、処理の状態等の情報を保持する記憶部としての機能を有する。フロントエンド処理部4025は、画像形成装置103からジョブの処理依頼を受信したことに応じて、ジョブに対応するメッセージを記憶手段であるキューに格納する、要求受信部である。フロントエンド処理部4025は、要求受信プログラムを実行することにより実現される。フロントエンド処理部4025は、画像形成装置103からのジョブの処理依頼を受信し、該受信したジョブを分割する。フロントエンド処理部4025は、該分割された夫々のジョブの実行順序を決定し、該分割した夫々のジョブに対応するメッセージを複数のキューに格納する格納手段を有する。
具体的には、フロントエンド処理部4025が備える格納手段は、画像形成装置103から文書処理に関する要求(例えば、印刷要求、印刷データ要求)を受信する。印刷要求は、印刷データ変換処理を実行することを求める要求である。印刷データ要求は、印刷データ変換処理によって得られる印刷データを送信するように求める要求である。フロントエンド処理部4025は、キューサービス4022が有する複数のキューを介して、バックエンド処理部4024に対して処理内容を伝える機能を有する。フロントエンド処理部4025は、受信した要求内容に応じて、文書処理のジョブを並列処理可能な単位に分割して分割ジョブを生成するとともに夫々の分割ジョブの実行順序を決定した上で、該分割ジョブを含むメッセージを複数のキューに格納する。メッセージは、文書処理に関するジョブを含む情報である。
バックエンド処理部4024は、キューに対しメッセージの取得要求を定期的に行い、キューからメッセージを取得した場合は、該取得したメッセージに基づく処理を行う。バックエンド処理部4024は、バックエンド処理プログラムを実行することにより実現される。バックエンド処理部4024は、文書処理手段を有する。この文書処理手段は、フロントエンド処理部4025によって決定された分割ジョブの実行順序に従って、複数のキューのいずれかに格納されているメッセージを取り出す。そして、文書処理手段は、該取り出したメッセージに基づき分割されたジョブの文書処理を行い、該文書処理の結果を記憶手段に格納する。
具体的には、バックエンド処理部5031は、フロントエンド処理部4025によって決定された分割ジョブの実行順序に従って、キューからメッセージを取得する。バックエンド処理部5031は、取得したメッセージから分割ジョブを取り出し、取り出した分割ジョブを実行して文書処理を行い、文書処理結果を前記画像形成装置に返す。キューを用いてフロントエンド処理部4025からバックエンド処理部4024に対してジョブを受け渡すようにすることで、フロントエンド処理部4025とバックエンド処理部4024とが非同期で処理を実行することができる。
バックエンド処理部4024は、該バックエンド処理部4024に対応するサーバ200のメモリに処理プログラムをロードし処理を行う。フロントエンド処理部4025の機能は、図2(B)の間接記憶部203に保存されているフロントエンド処理プログラムが、直接記憶部202にロードされて、CPU201により実行されることで実現される。同様に、バックエンド処理部4024の機能は、図2(B)の間接記憶部203に保存されているバックエンド処理プログラムが、直接記憶部202にロードされて、CPU201により実行されることで実現される。
画像形成装置103は、印刷処理部4031、印刷要求送信部4032、ユーザインタフェース4033、ウェブブラウザ4034を有する。印刷処理部4031は、印刷データの印刷処理を行う。印刷要求送信部4032は、ユーザインタフェース4033によって指定された印刷設定等を、文書処理システム102のフロントエンド処理部4025に送信し、その応答を受信するプログラムである。ユーザインタフェース4033は、ユーザが印刷装置103によって提供される各種アプリケーションを使用するためのインタフェースである。画像形成装置103は、ユーザインタフェース4033を介して入力されるユーザ操作に従って、各種アプリケーションを実行する。ウェブブラウザ4034は、ネットワーク100を介して接続されているデバイス内に保存されているデータや情報をユーザが閲覧するようにする機能を有する。ウェブブラウザ4034は、図2(A)の直接記憶部303に保存されているプログラムが、間接記憶部304にロードされ、CPU302により実行されることで実現される。また、ユーザは、ウェブブラウザ4034を用いてネットワーク100上に存在するコンテンツを閲覧し、ユーザインタフェース4033を用いて選択、印刷指示を行うことができる。
図4は、文書処理システムを実現するプラットフォームシステムを示す図である。ユーザは、文書処理システム102が備えるサーバ200の物理ハードウェアリソースをコンピューティングリソースとして使用することができる。図4に示すプラットフォームシステムは、ロードバランサー501、VM(Virtual Machine )502、503、ストレージサービス504、ファブリックコントローラ505を備える。VM502、503は、プラットフォームシステムの内部に複数設けられている。VMは、仮想化技術によって物理的なサーバを論理的なコンピュータに分割し、分割された中で独立したオペレーティングシステムをもって動作する論理的なコンピュータである。この論理的なコンピュータの単位をインスタンスという。
VM502は、フロントエンド処理部5021、フロントエンド処理部エージェント5022を備える。フロントエンド処理部5021は、ロードバランサー501を介してユーザからの処理依頼を受信する。フロントエンド処理部5021は、外部ネットワークからの要求を受け付ける機能を有する。また、フロントエンド処理部は、後述するキュー5042を介してバックエンド処理部5031への処理依頼を送信する機能を有する。フロントエンド処理部5021の高い可用性を確保するために、外部ネットワークからの要求(例えばHTTPによる通信)は、VM502の外部にあるロードバランサー501を通じて行われる。ロードバランサー501は、外部ネットワークからの要求を一元的に管理し、同等な要求受信機能を有する複数のVMに対し、選択的に要求を転送する。フロントエンド処理部エージェント5022は、VM502の使用状況、フロントエンド処理部5021の稼動状態、VM502のリソースの使用状況、およびフロントエンド処理部5021のエラー情報を含む各種情報を収集する。フロントエンド処理部エージェント5022は、収集した各種情報をファブリックコントローラ505に定期的に送信する。
フロントエンド処理部5031は、フロントエンド処理部エージェント5022を介してのみ、ファブリックコントローラ505にアクセスすることができる。フロントエンド処理部5021、バックエンド処理部5031は、ファブリックコントローラ505によって管理されている。これにより、各インスタンスの拡張性と可用性が保証される。例えば、フロントエンド処理部5021、またはバックエンド処理部5031において、ある特定のインスタンスがサーバの故障によって停止した場合を想定する。この場合、ファブリックコントローラ505は、フロントエンド処理部エージェント5022、またはバックエンド処理部エージェント5032から定期通知を受け取れなくなる。定期通知を受け取らなくなったファブリックコントローラ505は、新しいインスタンスに処理が委譲されるようにVMに対して指示を出す。その結果、処理を実行しているインスタンス数が一定に保たれるため、処理の遅延を抑えることができる。
VM503は、バックエンド処理部5031、バックエンド処理部エージェント5032で構成される。バックエンド処理部5031は、キュー5042を介してフロントエンド処理部5021からの処理依頼を受信し、処理を行う。バックエンド処理部5031も、フロントエンド処理部5021と同様に、バックエンド処理部エージェント5032を介してファブリックコントローラ505にアクセスする。
フロントエンド処理部5021とバックエンド処理部5031は、スケールアウトすることが可能である。スケールアウトとは、VM502、503が増加し、フロントエンド処理部5021、バックエンド処理部5031のインスタンスが増加することをいう。フロントエンド処理部5021のスケールアウトを行うことで、ユーザ数の増加などによりトラフィックが増加した場合でも、負荷を分散させることができる。また、バックエンド処理部5031のスケールアウトを行うことで、バックエンド処理部1つ当たりのデータ処理量が減少する。これにより、ユーザからの処理依頼に対する結果をより早く返すことができる。
ストレージサービス504は、ストレージ5041、複数のキュー5042、複数のテーブル5043を備える。キュー5042は、フロントエンド処理部5021とバックエンド処理部5031とが非同期でデータ通信できるようにする。フロントエンド処理部5021とバックエンド処理部5031は、キュー5042に対し各種指示を出すことで、非同期でデータ通信する。フロントエンド処理部5021がキュー5042に対して行う指示とは、メッセージの追加指示である。バックエンド処理部5031がキュー5042に対して行う指示とは、メッセージの取得指示、メッセージの削除指示である。
フロントエンド処理部5021とバックエンド処理部5031が非同期でデータ通信する一連の動作について説明する。フロントエンド処理部5021は、ユーザからの処理依頼に応じたメッセージを作成し、メッセージをキューに追加するようにキュー5042に追加指示を送信する。追加指示を受信したキュー5042は、キューにメッセージを追加する。バックエンド処理部5031は、メッセージを取得するために、キュー5042に取得指示を出す。取得指示を受けたキュー5042は、メッセージと、メッセージ毎に固有に割り振られたメッセージIDと、受取IDとを取得指示に対するレスポンスとしてバックエンド処理部5031に返す。メッセージIDとは、メッセージを一意に定めるためにメッセージごとに割り振られた固有の情報である。受取IDは、処理が終了したバックエンド処理部5031がメッセージを削除指示する際に使用する。メッセージと、メッセージIDと、受取IDは、関連付けされて保存される。
バックエンド処理部5031は、処理依頼を完了すると、受取IDに対応するメッセージの削除指示をキュー5042に対して行う。削除指示を受けたキュー5042は、バックエンド処理部5031が指示した受取IDに対応するメッセージをキューから削除する。これにより、削除指示を出したバックエンド処理部5031以外のバックエンド処理部5031が同じメッセージを処理するという冗長な処理を防ぐことができる。
次に、キュー5042に追加されているメッセージを不可視、または可視にする機能について詳細に説明する。不可視機能は、バックエンド処理部5031がキューからメッセージを取得した際に、他のバックエンド処理部5031が同一のメッセージを取得しないように、他のバックエンド処理部5031がメッセージを取得できない状態(不可視状態)にする機能である。ここで、再度メッセージが取得可能な状態(可視状態)になるまでの時間を不可視時間と呼ぶ。フロントエンド処理部5021がキューを作成する際に任意の時間を不可視時間として設定できる。不可視時間中にバックエンド処理部5031の処理が終了しない場合、可視状態になり、バックエンド処理部5031がメッセージを再取得し処理する。
また、バックエンド処理部5031が、処理中に何らかの理由でクラッシュし、処理の継続が不可能になった場合でも、不可視時間の間は再処理を行うことができない。また、処理時間が不可視時間を超過した場合には、処理が完了していないメッセージが可視状態になり、他のバックエンド処理部5031により処理が開始してしまうために、削除することができない。そのため、キュー5042に設定される不可視時間は、キュー5042に格納されている任意のメッセージの処理時間よりも長くする必要がある。しかし、不可視時間を長くし過ぎると、バックエンド処理部5031がクラッシュした場合に、再処理までに時間がかかってしまう。従って、フロントエンド処理部5021が、キュー5042にメッセージを格納する際に、メッセージに含まれるジョブ(分割ジョブ)の処理時間が近くなるように(実行処理コストが同じになるように)メッセージをグループ化する。フロントエンド処理部5021は、グループ化されたメッセージをキュー5042に格納する。
ストレージ5041は、データ保存に利用される記憶領域を提供する。ストレージ5041にはメタデータを関連付けることができる。メタデータは名前と値のペアで表現される。メタデータはデータと独立して取得、設定することができる。テーブル5043は、ストレージサービス504上に複数設けられる。夫々のテーブル5043が一意の名前を持つ。本実施形態では、テーブル5043が、キュー管理テーブル601(図5(A)を参照)とメッセージ管理テーブル602(図5(B)を参照)とを有する。プラットフォーム利用者は、夫々のテーブルの名前に基づいてテーブルにアクセスすることができる。テーブル5043は、主にサービスの状態を保持するために用いられる。テーブル5043は、エンティティと呼ばれる基本的なデータ項目から構成される。エンティティは一連のプロパティで構成される。プロパティはエンティティ内の1つの値を表す。本実施形態では、テーブルを表形式で表現する。表の行をエンティティ、列をプロパティと呼ぶ。
図5は、キュー管理テーブルとメッセージ管理テーブルの例を示す図である。図5(A)は、キュー管理テーブル601の例を示す。キュー管理テーブル601は、夫々のキュー5042に格納されたメッセージに関する情報(キュー情報)を管理するテーブルである。具体的には、キュー管理テーブル601は、キューIDとメッセージIDリストといったデータ項目を有する。キューIDは、キューを一意に識別する識別情報である。メッセージIDリストは、キューに格納されているメッセージの識別情報であるメッセージIDのリストである。図4中のフロントエンド処理部5021が、キュー管理テーブル601にキュー情報を格納する。夫々のキューに格納されているメッセージは、フロントエンド処理部5021によってグループ化されたメッセージである。具体的には、フロントエンド処理部5021は、メッセージに含まれるジョブ(分割ジョブ)の実行処理コスト(例えば処理時間)が同じなるようにメッセージをグループ化する。すなわち、フロントエンド処理部5021が備える格納手段は、実行処理コストが同じである分割ジョブを含むメッセージを同じキューに格納して、キューとメッセージとの対応情報をキュー情報として所定の記憶部(ストレージ)に記憶する。
図5(B)は、メッセージ管理テーブル602の例を示す図である。メッセージ管理テーブル602は、メッセージID、実行順、キューID、処理といったデータ項目を有する分割ジョブ情報を格納する。メッセージIDは、メッセージの識別情報である。実行順は、当該メッセージIDが示すメッセージに含まれるジョブ(分割ジョブ)の実行順序である。キューIDは、当該メッセージIDが示すメッセージが格納されているキューの識別情報である。処理は、各メッセージの処理状況を示す。「処理中」は、バックエンド処理部5031がメッセージを処理していることを示す。「未処理」は、バックエンド処理部5031がメッセージを処理していないことを示す。フロントエンド処理部5021が、図5(B)に示す分割ジョブ情報をストレージに記憶する。すなわち、フロントエンド処理部5021は、メッセージと該メッセージに含まれる分割ジョブの実行順序と該メッセージが格納されているキューとを対応付けて分割ジョブ情報として記憶部に記憶する。
バックエンド処理部5031(が備える文書処理手段)は、処理の開始時に、キュー管理テーブル601にアクセスしてキュー情報を参照する。そして、バックエンド処理部5031は、各キューのリストの先頭のメッセージのメッセージID(例えば、図5(A)に示すMessage3,Message1)を取得する。これにより、バックエンド処理部5031は、夫々のキューの先頭に格納されているメッセージを認識する。そして、バックエンド処理部5031は、取得した各キューの先頭のメッセージのメッセージIDと、メッセージ管理テーブル602に格納された分割ジョブ情報とを用いて、メッセージを取得するキューを選択する。具体的には、バックエンド処理部5031は、分割ジョブ情報に基づいて、上記認識したメッセージに含まれる分割ジョブの実行順序を取得する。バックエンド処理部5031は、各キューの先頭のメッセージの中で、メッセージに含まれる分割ジョブの実行順序が最も早く、かつ、処理中ではないメッセージを選択する。そして、バックエンド処理部5031は、選択したメッセージが格納されているキューにアクセスしてメッセージを取り出し、取り出したメッセージに含まれる分割ジョブを実行する。すなわち、バックエンド処理部5031は、取得した実行順序が最も早い分割ジョブを含むメッセージを格納しているキューからメッセージを取り出し、該メッセージに含まれる分割ジョブを実行する。これにより、実行されるべき順序を保ってメッセージを処理することができる。
図6は、キューに格納されるメッセージの例を示す図である。図6に示すメッセージは、文書処理システム102が画像形成装置103から受ける印刷要求が複数のページを含むコンテンツに対応する印刷データである場合における、キュー5042に格納されるメッセージである。メッセージは、MessageID、処理内容、Device、ContentsID、Page、Contents Pathを含む。MessageIDはメッセージIDである。処理内容は、実行すべきジョブの内容を示す。この例では、処理内容として印刷データ変換処理が指定されている。Deviceは、印刷要求の要求元の処理装置(画像形成装置103)である。ContentsIDは、文書リポジトリ101の文書蓄積部4012が保持しているコンテンツの識別情報である。このコンテンツは、印刷データ変換処理の対象となるコンテンツである。Pageは、印刷データ変換処理の対象のページの番号である。Contents Pathは、印刷データ変換処理の対象となるコンテンツが保存されている文書リポジトリ101上のパスである。メッセージは、文書リポジトリ101へのアクセスに必要なアカウント名や、パスワードなども含む。メッセージに格納する情報は、自由に変化させることができるので、必要な情報を格納することで、任意のコンテンツに対して、任意の処理をすることができるようになる。
図7乃至9を用いて、本発明の実施例1の文書処理について説明する。図7は、メッセージのキューへの登録処理を説明するフローチャートである。まず、画像形成装置103が、ウェブブラウザ4034を用いて指定された、文書リポジトリ101のWebサーバ部4011に対して文書一覧を要求し(ステップS1)、文書一覧情報を取得する。取得される文書一覧情報のフォーマットは、画像形成装置が理解できるフォーマットであれば、特に指定はない。次に、画像形成装置103が、取得した文書一覧情報をウェブブラウザ4034に表示する(ステップS2)。続いて、画像形成装置103が、表示された文書一覧情報の中から印刷を行う文書を選択する(ステップS3)。文書の選択方法は、タッチパネルや、キーボード、マウス等のユーザインタフェース4033を介して行われる。
次に、画像形成装置103が、文書処理システム102のフロントエンド処理部4025に印刷要求を送信する(ステップS4)。印刷要求は、選択された文書を一意に識別する情報と印刷する際の設定情報等を含む。選択された文書を一意に識別する情報は、文書リポジトリ101上の文書の保存場所を示す情報を含む。文書リポジトリ101がコンテンツを保存する際に各文書に一意のIDを割り振っておき、このIDを用いて文書を一意に識別することも可能である。画像形成装置103が印刷要求を送信した後、画像形成装置103が、印刷データ受信処理(ステップS5)を行う。
フロントエンド処理部4025が、画像形成装置103から送信された印刷要求を受信する(ステップS6)。フロントエンド処理部4025が、受信した印刷要求に含まれる情報に基づいて、文書リポジトリ101から処理対象のコンテンツの情報を取得する(ステップS7)。続いて、フロントエンド処理部4025が、ページ毎に印刷データ変換処理されるように、画像形成装置103から受け付けた印刷要求が示すジョブを並列処理可能な単位のジョブに分割する(ステップS8)。すなわち、フロントエンド処理部4025(が備える格納手段)は、文書処理のジョブを文書のページ単位に分割して分割ジョブを生成する。フロントエンド処理部4025は、ページ順に従って印刷データ変換処理されるように、各ページの印刷データ変換処理の実行順(図5(B)を参照)を、ページ順に従って1から順に割り振る。フロントエンド処理部4025は、各実行順に現在メッセージ管理テーブル602に格納されているメッセージの中で最も大きい実行順の値を足し合わせる。これにより、ページ番号の小さいものから印刷データ変換処理が行われることになる。フロントエンド処理部4025は、さらに、ページ毎に印刷データ変換処理に必要となる処理時間を算出する。
次に、フロントエンド処理部4025が、分割ジョブを含むメッセージに対応する分割ジョブ情報をメッセージ管理テーブル602に登録する(ステップS9)。登録される分割ジョブ情報は、各メッセージを一意に識別するメッセージID、各メッセージの実行順、そのメッセージが格納されるキューを一意に識別するためのキューID、処理状況を示す処理である。S8において算出した印刷データ変換処理の処理時間よりも大きい不可視時間であって、所定の時間範囲内にある不可視時間が設定されたキューが存在している場合、フロントエンド処理部4025がそのキューのIDをキューIDに登録する。上記時間範囲は、文書処理システム102によるサービスの提供者が自由に決めることができる。時間範囲の大きさは、上記ステップS8で行った処理時間の算出処理に依存する。処理時間の算出が正確に行われる場合は、時間範囲は小さくてもよい。逆に、処理時間の算出が正確ではない場合は、時間範囲としてある程度の大きさをとる必要がある。また、上記不可視時間が設定されたキューが存在していない場合には、フロントエンド処理部4025が、所定の不可視時間を設定したキューを作成し、そのキューのIDキューIDに登録する。そして、フロントエンド処理部4025が、メッセージ管理テーブル602の処理に「未処理」を設定する。
次に、フロントエンド処理部4025が、メッセージ管理テーブル602に登録された分割ジョブ情報に含まれるメッセージIDを、キュー管理テーブル601に登録する(ステップS10)。具体的には、フロントエンド処理部4025が、メッセージ管理テーブル602に登録された分割ジョブ情報に含まれるキューIDとメッセージIDとを取得する。そして、フロントエンド処理部4025が、キュー管理テーブル601における、上記取得したキューIDに対応するメッセージIDリストに、上記取得したメッセージIDを追加する。次に、フロントエンド処理部4025が、各メッセージをキュー5042に登録する(ステップS11)。ステップS11の処理により、フロントエンド処理部4025が、印刷データ変換処理をバックエンド処理部4024に委譲したことになる。
図8は、文書処理システムから画像形成装置に対する印刷データの送信処理を説明する図である。図8中のステップS21乃至S28が、図7のステップS5の印刷データの受信処理に対応する。まず、画像形成装置103が、印刷データ変換処理された文書を取得するために、フロントエンド処理部4025に対して印刷データ要求を送信する(ステップS21)。印刷データ要求には、送信を求める文書のID(文書ID)が含まれる。続いて、フロントエンド処理部4025が、画像形成装置103からの印刷データ要求を受け、ストレージ4021に受信した文書IDに対応する印刷データが保存されているかを判断する(ステップS22)。
ストレージ4021に受信した文書IDに対応する印刷データが保存されている場合は、ステップS23に進む。ストレージ4021に受信した文書IDに対応する印刷データが保存されてない場合は、ステップS24に進む。ステップS23において、フロントエンド処理部4025が、ストレージ4021から印刷データを取得し、画像形成装置103に送信するためのレスポンスに印刷データを格納し(ステップS23)、ステップS25に進む。フロントエンド処理部4025は、画像形成装置103との間で決められている任意のフォーマットでレスポンスに印刷データを格納する。ステップS24においては、フロントエンド処理部が、印刷データが存在していないことを示す情報をレスポンスに格納し(ステップS24)、ステップS25に進む。そして、フロントエンド処理部4025が、レスポンスを印刷データ要求に対する応答として画像形成装置103に返す(ステップS25)。
次に、画像形成装置103が、フロントエンド処理部4025からレスポンスを受信する(ステップS26)。続いて、画像形成装置103が、受信したレスポンスに印刷データが含まれているかを判断する(ステップS27)。受信したレスポンスに印刷データが含まれていない場合、ステップS21に戻る。受信したレスポンスに印刷データが含まれている場合は、画像形成装置103が、印刷データに対して印刷処理を行う(ステップS28)。
図9は、バックエンド処理部による文書処理を説明するフローチャートである。図9では、バックエンド処理部5031のインスタンス数は1として説明するが、複数のバックエンド処理部5031が存在している場合でも同じように動作する。すなわち、複数のバックエンド処理部5031を用いた並列処理が可能である。
まず、バックエンド処理部5031が、キュー5042をポーリングする(ステップS31)。フロントエンド処理部4025からのメッセージの通知はキュー5042を介して行われるため、バックエンド処理部5031は、処理がない間、常にキューをポーリングする。続いて、バックエンド処理部5031が、ポーリングの結果、キュー5042にメッセージが登録されているかを判断する(ステップS32)。キュー5042にメッセージが登録されていない場合は、ステップS31に戻る。キュー5042にメッセージが登録されている場合は、ステップS33に進む。
次に、バックエンド処理部4024が、キュー管理テーブル601にアクセスし、夫々のキューIDに対応するメッセージIDリストの先頭に登録されているメッセージIDを取得する(ステップS33)。続いて、バックエンド処理部4024が、メッセージ管理テーブル602から、ステップS33で取得したメッセージIDのうち、実行順序が最も早いメッセージのメッセージIDに対応するエンティティを取得する(ステップS34)。ステップS34において取得されるエンティティに対応するメッセージが、最先に処理されるべきメッセージである。
次に、バックエンド処理部4024が、取得したエンティティに含まれる処理を参照して、メッセージに含まれるジョブが処理中であるかを判断する(ステップS35)。ジョブが処理中でない場合は、エンティティに含まれる処理に「未処理」を設定して、ステップS36に進む。ジョブが処理中である場合は、エンティティに含まれる処理に「処理中」を設定して、ステップS37に進む。ステップS37において、バックエンド処理部4024が、実行順序が次に早いメッセージに対応するエンティティをメッセージ管理テーブル602から取得し(ステップS37)、ステップS35に戻る。
ステップS36においては、バックエンド処理部4024が、ステップS34で取得したエンティティに含まれるキューIDに対応するキューからメッセージを取得する(ステップS36)。続いて、バックエンド処理部4024は、取得したメッセージに基づき、メッセージに含まれるジョブを実行する(ステップS38)。具体的には、バックエンド処理部4024は、メッセージに含まれる文書リポジトリ101上のパスにアクセスし、指定のページのコンテンツを取得する。そして、バックエンド処理部4024が、印刷要求(図7のステップS4)に含まれる、印刷する際の設定情報に従い、コンテンツを印刷データに変換する(ステップS38)。
次に、バックエンド処理部4024が、印刷データをストレージ4021に格納する(ステップS39)。バックエンド処理部4024は、ストレージ4021に、データを一意に識別可能な情報(例えばコンテンツID)をメタデータとして与える。続いて、バックエンド処理部4024が、メッセージ管理テーブル602、キュー管理テーブル601を更新する(ステップS40)。具体的には、バックエンド処理部4024は、メッセージ管理テーブル602から、処理が終了したメッセージに対応するエンティティを削除する。また、バックエンド処理部4024が、キュー管理テーブル601から、メッセージを取得したキューのキューIDに対応するメッセージIDリストを更新する。続いて、バックエンド処理部4024が、処理が終了したメッセージをキューから削除する(ステップS41)。
実施例1の文書処理システムによれば、起動している全てのVMを用いて、印刷データ変換を行うことが可能となり、コストを抑えることができる。また、実施例1の文書処理システムによれば、ページ順に従った適切な順序で印刷データ変換を実行することができる。
次に、実施例2について説明する。実施例2の文書処理システムの構成は、実施例1の文書処理システムの構成と同様である。実施例2の文書処理システムは、帳票データと印刷データとを重ね合わせる処理(フォーム合成処理)を実行する。フォーム合成処理には、帳票データの生成処理(以下、フォーム登録処理と記述)、印刷データの生成処理(以下、印刷データ変換処理と記述)、帳票データと印刷データとの合成処理(以下、合成処理と記述)が含まれる。
フロントエンド処理部4025(が備える格納手段)は、画像形成装置103から受信した文書処理に関する要求内容がフォーム合成処理である場合に、以下の処理を実行する。フロントエンド処理部4025は、該フォーム合成処理に含まれるフォーム登録処理、印刷データ変換処理、または合成処理に対応する分割ジョブを生成する。そして、フロントエンド処理部4025は、夫々の分割ジョブの実行順序を決定した上で、該分割ジョブを複数のキューに格納する。
図10は、実施例2においてキューに格納されるメッセージの例を示す図である。図10(A)は、フォーム登録処理用のメッセージ例である。図10(B)は、印刷データ変換用処理のメッセージ例である。図10(C)は、合成処理用のメッセージ例である。図10(A)に示すフォーム登録処理用のメッセージは、MessageID、処理内容、FormID、Form Path、Store Pathを有する。MessageIDはメッセージIDである。処理内容は、実行すべきジョブの内容を示す。この例では、処理内容としてフォーム登録が指定されている。FormIDは、フォーム合成に用いるフォームデータを一意に識別する識別情報である。Form Pathは、フォームデータが保存されている場所へのパスである。Store Pathは、フォームの登録先のパスである。なお、フォーム登録処理用のメッセージは、文書リポジトリ101へのアクセスに必要なアカウント名や、パスワードなども有する。
図10(B)に示す印刷データ変換用のメッセージは、MessageID、処理内容、ContentsID、Page、Contents Path、Store Pathを有する。このメッセージでは、処理内容として印刷データ変換が指定されている。ContentsID、Page、Contents Path、Store Pathを有する。ContentsIDは、文書リポジトリ101の文書蓄積部4012が保持しているコンテンツの識別情報である。このコンテンツは、印刷データ変換処理の対象となるコンテンツである。Pageは、印刷データ変換処理の対象のページの番号である。Contents Pathは、印刷データ変換処理の対象となるコンテンツが保存されている文書リポジトリ101上のパスである。Store Pathは、変換後のデータの保存先へのパスである。
図10(C)に示す合成処理用のメッセージは、MessageID、処理内容、Contents Path、Form Pathを有する。このメッセージでは、処理内容としてフォーム合成が指定されている。Contents Pathは、フォーム合成に用いる印刷データが保存されている場所へのパスである。Form Pathは、フォーム合成に用いるフォームデータが保存されている場所へのパスである。
図11は、実施例2における、メッセージのキューへの登録処理を説明するフローチャートである。図11中に示すステップS51乃至S53は、図7中に示すステップS1乃至S3と同様である。また、図11中に示すステップS56乃至S58は、図7中に示すステップS5乃至S7と同様である。図11のステップS54において、画像形成装置103が、フォーム合成に用いるフォームデータを選択する(ステップS54)。ステップS54においては、画像形成装置103は、ウェブブラウザ4034を用いて、ネットワーク100上に存在するフォームデータを選択する。続いて、画像形成装置103が、選択された文書を一意に識別する情報、印刷する際の設定情報、フォームデータを一意に識別する情報を送信する。選択された文書を一意に識別するための情報は、文書リポジトリ101上の文書の保存場所を示す情報である。文書リポジトリ101にコンテンツを保存する際に各文書に一意になるようにIDを割り振っておき、割り振られたIDを用いて一意に識別することも可能である。また、フォームデータを一意に識別するための情報は、フォームデータの保存場所を示す情報(フォームID)である。
ステップS59において、文書処理システム102のフロントエンド処理部4025が、フォーム登録処理、印刷データ変換処理、または合成処理に対応する分割ジョブ情報をメッセージ管理テーブル602に登録する(ステップS59)。フロントエンド処理部4025は、例えば、フォーム登録処理に対応する分割ジョブ情報、印刷データ変換処理に対応する分割ジョブ情報、合成処理に対応する分割ジョブ情報の順に、分割ジョブ情報を登録する。フロントエンド処理部4025は、少なくとも印刷データ変換処理に対応する分割ジョブ情報については、ページ順に印刷データ変換処理されるように、メッセージ管理テーブル602において、各ページの印刷データ変換処理の実行順序を割り振る。
次に、フロントエンド処理部4025が、メッセージ管理テーブル602に登録された分割ジョブ情報に含まれるメッセージIDを、キュー管理テーブル601に登録する(ステップS60)。そして、フロントエンド処理部4025が、各メッセージをキューに登録する(ステップS61)。なお、実施例2における文書処理システムから画像形成装置に対する印刷データの送信処理は、図8を参照して説明した印刷データの送信処理と同様である。
図12は、実施例2における、バックエンド処理部による文書処理を説明するフローチャートである。図12では、バックエンド処理部5031のインスタンス数は1として説明するが、複数のバックエンド処理部5031が存在している場合でも同じように動作する。すなわち、複数のバックエンド処理部5031を用いた並列処理が可能である。図12のステップS71乃至S77は、図9のステップS31乃至S37と同様である。また、図12のステップS88は、図9のステップS40と同様である。
図12のステップS78において、バックエンド処理部5031が、キューから取得したメッセージに含まれる処理内容がフォーム登録であるかを判断する(ステップS78)。キューから取得したメッセージに含まれる処理内容がフォーム登録である場合は、ステップS79に進む。キューから取得したメッセージがフォーム登録でない場合は、ステップS81に進む。
ステップS79において、バックエンド処理部5031が、取得したメッセージに含まれるForm Path(図10(A)を参照)に基づいて、フォームデータを取得する(ステップS79)。そして、バックエンド処理部5031が、取得したフォームデータをストレージ5041に保存する(ステップS80)。バックエンド処理部5031は、取得したメッセージに含まれるフォームID(図10(A)を参照)もストレージ5041に保存する。
ステップS81において、バックエンド処理部5031が、キューから取得したメッセージがフォーム合成であるかを判断する(ステップS81)。キューから取得したメッセージがフォーム合成である場合は、ステップS85に進む。キューから取得したメッセージがフォーム合成でない場合は、ステップS85に進む。
ステップS82において、バックエンド処理部5031が、キューから取得したメッセージ(図10(C)を参照)に含まれるForm Pathに基づいて、ストレージ5041からフォームデータを取得する(ステップS82)。続いて、バックエンド処理部5031が、メッセージに含まれるContents Pathに基づいて、ストレージ5041から印刷データを取得する(ステップS83)。そして、バックエンド処理部5031が、印刷データとフォームデータとを合成し(ステップS84)、ステップS88に進む。
ステップS85において、バックエンド処理部5031が、取得したメッセージ(図10(B)を参照)に含まれるContents Pathに基づいて、文書リポジトリ101から印刷変換処理対象のコンテンツを取得する(ステップS85)。バックエンド処理部5031が、取得したコンテンツを印刷データ変換する(ステップS86)。そして、バックエンド処理部5031が、印刷データ変換によって得られた印刷データをストレージ5041に格納し(ステップS87)、ステップS88に進む。
実施例2の文書処理によれば、文書処理システム102がフォーム合成をする前に、フォームデータの登録処理、印刷データ変換処理を行うことができる。従って、フォーム合成をするために必要なジョブの実行を適切な順序で行うことができる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
101 文書リポジトリ
102 文書処理システム
103 画像形成装置

Claims (7)

  1. 画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、
    前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と
    前記記憶手段に格納されたメッセージを可視状態または不可視状態にする制御部とを有するクラウドコンピューティングシステムであって、
    前記要求受信部は、
    前記画像形成装置からのジョブの処理依頼を受信し、該受信したジョブを分割し、該分割された夫々のジョブの実行順序を決定し、該分割した夫々のジョブに対応するメッセージを複数の前記記憶手段に格納する格納手段を有し、
    前記バックエンド処理部は、
    前記決定された分割ジョブの実行順序に従って、前記複数の記憶手段のいずれかに格納されているメッセージを取り出し、該取り出したメッセージに基づき前記分割されたジョブの文書処理を行文書処理手段を有し、
    前記制御部は、前記メッセージが特定の前記バックエンド処理部により取得されたことに応じて、同一の前記メッセージが他の前記バックエンド処理部に取得されないように前記メッセージを不可視状態とし、前記特定のバックエンド処理部による処理が終了せずに前記メッセージが前記不可視状態となってから所定時間経過した後、前記メッセージを前記不可視状態から前記可視状態へと変更し、前記他のバックエンド処理部が前記メッセージを取得できるように制御する
    ことを特徴とするクラウドコンピューティングシステム。
  2. 前記記憶手段は、キューであり、
    前記格納手段は、前記画像形成装置から文書処理に関する要求を受信し、受信した要求内容に応じて、前記文書処理のジョブを並列処理可能な単位に分割して分割ジョブを生成するとともに夫々の分割ジョブの実行順序を決定した上で、該分割ジョブを含むメッセージを複数の前記キューに格納し、
    前記文書処理手段は、前記決定された分割ジョブの実行順序に従って、前記キューに格納されたメッセージに含まれる分割ジョブを取り出し、取り出した分割ジョブを実行して文書処理を行い、文書処理結果を前記画像形成装置に返す
    ことを特徴とする請求項1に記載のクラウドコンピューティングシステム。
  3. 前記格納手段は、実行処理コストが同じである分割ジョブを含むメッセージを同じ前記キューに格納して、前記キューとメッセージとの対応情報をキュー情報として記憶し、メッセージと該メッセージに含まれる分割ジョブの実行順序と該メッセージが格納されている前記キューとを対応付けて分割ジョブ情報として記憶し、
    前記文書処理手段は、前記キュー情報を参照して、夫々の前記キューの先頭に格納されているメッセージを認識し、前記記憶された分割ジョブ情報に基づいて、前記認識したメッセージに含まれる分割ジョブの実行順序を取得し、該実行順序が最も早い分割ジョブを含むメッセージを格納している前記キューからメッセージを取り出し、該メッセージに含まれる分割ジョブを実行する
    ことを特徴とする請求項2に記載のクラウドコンピューティングシステム。
  4. 前記格納手段は、前記文書処理のジョブを文書のページ単位に分割して前記分割ジョブを生成する
    ことを特徴とする請求項2または請求項3に記載のクラウドコンピューティングシステム。
  5. 前記格納手段は、前記画像形成装置から受信した文書処理に関する要求内容が、帳票データと印刷データを重ね合わせるフォーム合成処理である場合に、該フォーム合成処理に含まれる帳票データの生成処理、印刷データの生成処理、または帳票データと印刷データとの合成処理に対応する分割ジョブを生成する
    ことを特徴とする請求項2または請求項3に記載のクラウドコンピューティングシステム。
  6. 画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と、前記記憶手段に格納されたメッセージを可視状態または不可視状態にする制御部とを有するクラウドコンピューティングシステムにおける文書処理方法であって、
    前記要求受信部が、前記画像形成装置からのジョブの処理依頼を受信し、該受信したジョブを分割し、該分割された夫々のジョブの実行順序を決定し、該分割した夫々のジョブに対応するメッセージを複数の前記記憶手段に格納する工程と、
    前記バックエンド処理部が、前記決定された分割ジョブの実行順序に従って、前記複数の記憶手段のいずれかに格納されているメッセージを取り出し、該取り出したメッセージに基づき前記分割されたジョブの文書処理を行工程と
    前記制御部が、前記メッセージが特定の前記バックエンド処理部により取得されたことに応じて、同一の前記メッセージが他の前記バックエンド処理部に取得されないように前記メッセージを不可視状態とし、前記特定のバックエンド処理部による処理が終了せずに前記メッセージが前記不可視状態となってから所定時間経過した後、前記メッセージを前記不可視状態から前記可視状態へと変更し、前記他のバックエンド処理部が前記メッセージを取得できるように制御する工程とを有する文書処理方法。
  7. 請求項6に記載の文書処理方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
JP2010126451A 2010-06-02 2010-06-02 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム Active JP5623139B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010126451A JP5623139B2 (ja) 2010-06-02 2010-06-02 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US13/109,872 US20110299112A1 (en) 2010-06-02 2011-05-17 Cloud computing system, method for processing document, and storage medium for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010126451A JP5623139B2 (ja) 2010-06-02 2010-06-02 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2011253337A JP2011253337A (ja) 2011-12-15
JP5623139B2 true JP5623139B2 (ja) 2014-11-12

Family

ID=45064253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010126451A Active JP5623139B2 (ja) 2010-06-02 2010-06-02 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US20110299112A1 (ja)
JP (1) JP5623139B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5539017B2 (ja) * 2010-05-18 2014-07-02 キヤノン株式会社 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
JP5653151B2 (ja) 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
JP5212559B1 (ja) * 2012-03-14 2013-06-19 富士ゼロックス株式会社 情報処理システム及びプログラム
JP6024204B2 (ja) * 2012-05-24 2016-11-09 株式会社リコー 情報処理装置、プログラム及び分散処理方法
JP5949339B2 (ja) * 2012-08-31 2016-07-06 ブラザー工業株式会社 画像処理装置及びプログラム
JP6364738B2 (ja) 2013-01-11 2018-08-01 株式会社リコー 情報処理システム、情報処理装置、プログラム及び処理実行方法
JP5494855B2 (ja) * 2013-02-27 2014-05-21 富士ゼロックス株式会社 情報処理システム及びプログラム
JP6188464B2 (ja) * 2013-07-17 2017-08-30 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及びプログラム
US10162829B2 (en) * 2013-09-03 2018-12-25 Adobe Systems Incorporated Adaptive parallel data processing
JP6331455B2 (ja) * 2014-02-20 2018-05-30 キヤノンマーケティングジャパン株式会社 情報処理システム、及びその制御方法、並びに情報処理サーバ、その制御方法、及びプログラム
JP5729503B2 (ja) * 2014-03-04 2015-06-03 富士ゼロックス株式会社 情報処理装置及びプログラム
KR102255361B1 (ko) * 2014-11-18 2021-05-24 삼성전자주식회사 인텐트 처리 방법 및 그 전자 장치
US10235209B2 (en) * 2015-08-28 2019-03-19 Vmware, Inc. Hybrid task framework
JP2017111581A (ja) * 2015-12-15 2017-06-22 キヤノン株式会社 情報処理システム、制御方法
JP2018063672A (ja) * 2016-10-14 2018-04-19 キヤノン株式会社 メッセージ実行サーバー、制御方法、およびプログラム
JP6881116B2 (ja) * 2017-07-12 2021-06-02 富士通株式会社 情報処理装置、情報処理方法およびプログラム
GB2580506B (en) * 2018-11-30 2021-10-13 Canon Kk Information processing apparatus, control method, and program

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286932A (ja) * 1995-04-11 1996-11-01 Hitachi Ltd ジョブの並列実行制御方法
US6104500A (en) * 1998-04-29 2000-08-15 Bcl, Computer Inc. Networked fax routing via email
JP2003091393A (ja) * 2001-09-19 2003-03-28 Fuji Xerox Co Ltd 印刷システムおよびその方法
JP2004102934A (ja) * 2002-09-12 2004-04-02 Dainippon Printing Co Ltd 自動処理汎用制御システム、ジョブ入力装置、自動処理汎用制御装置、自動処理汎用制御方法、プログラム、及び、記録媒体
JP2005190418A (ja) * 2003-12-26 2005-07-14 Canon Software Inc 印刷管理システムおよび印刷管理システムの制御方法およびプログラムおよび記録媒体
JP4944369B2 (ja) * 2004-08-05 2012-05-30 キヤノン株式会社 情報処理装置およびその制御方法
JP2006139621A (ja) * 2004-11-12 2006-06-01 Nec Electronics Corp マルチプロセッシングシステム及びマルチプロセッシング方法
JP2006236123A (ja) * 2005-02-25 2006-09-07 Fujitsu Ltd ジョブ分散プログラム、ジョブ分散方法およびジョブ分散装置
EP1862904A4 (en) * 2005-03-22 2009-06-03 Fujitsu Ltd DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM
JP4761533B2 (ja) * 2005-12-13 2011-08-31 キヤノン株式会社 情報処理装置及びワークフロー生成方法とプログラム
JP2007164507A (ja) * 2005-12-14 2007-06-28 Fujifilm Corp 注文処理システム
JP2009123147A (ja) * 2007-11-19 2009-06-04 Ricoh Co Ltd 印刷制御システム、印刷制御装置、印刷制御方法、印刷制御プログラム及び記録媒体
JP5471681B2 (ja) * 2010-03-23 2014-04-16 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
US8520226B2 (en) * 2010-04-15 2013-08-27 Xerox Corporation Robust recovery of a page parallel RIP system
US8427702B2 (en) * 2010-05-27 2013-04-23 Xerox Corporation Page parallel raster image processing
JP5645515B2 (ja) * 2010-07-09 2014-12-24 キヤノン株式会社 処理システム、制御方法、およびそのプログラム
JP5653151B2 (ja) * 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション

Also Published As

Publication number Publication date
US20110299112A1 (en) 2011-12-08
JP2011253337A (ja) 2011-12-15

Similar Documents

Publication Publication Date Title
JP5623139B2 (ja) クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
JP5653151B2 (ja) クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US8970876B2 (en) Printing system, cloud computing system, printing system control method, and storage medium
US8321530B2 (en) Cloud computing system, server computer, device connection method, and storage medium
US8908220B2 (en) Information processing system, print system, and method and computer-readable storage medium for controlling information processing system
US8736882B2 (en) Printing system, service processing method, and storage medium
US8836974B2 (en) Image processing system and control method for managing a job related to image processing in a distributed environment
US8570574B2 (en) Processing system, control method, and storage medium therefor
US8717600B2 (en) Network system, network system control method, and storage medium
US20120086978A1 (en) Cloud computing system, information processing method, and storage medium
JP5602592B2 (ja) ネットワークシステム、サーバ、ログ登録方法、及び、プログラム
US8610937B2 (en) Printing system, printing apparatus, control method and program
US20110299130A1 (en) Cloud computing system, document processing method, and storage medium
JP2018041274A (ja) 情報処理装置その制御方法、印刷システム及びプログラム
JP5857594B2 (ja) 分散印刷システム及び印刷装置
JP5678556B2 (ja) ジョブ実行システム、ジョブ実行装置及びプログラム
JP2020184241A (ja) 情報処理装置、情報処理装置の制御方法、及び印刷拡張アプリケーション
JP2015072716A (ja) 情報処理システム、情報処理システム制御方法、およびそのプログラム
US11200088B2 (en) Information processing system, information processing method, and information processing apparatus
JP5855057B2 (ja) 情報処理システム、システム、情報処理システム制御方法、およびそのプログラム
JP2018147300A (ja) 情報処理装置、情報処理方法及びプログラム
JP2021125800A (ja) 情報処理装置とその制御方法、及びプログラム
JP2015146064A (ja) 情報処理システム、情報処理装置、制御方法およびコンピュータプログラム
JP2009269293A (ja) 印刷装置、ジョブ処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

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: 20140826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140924

R151 Written notification of patent or utility model registration

Ref document number: 5623139

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151