(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-12
(45)【発行日】2022-05-20
(54)【発明の名称】ワークフロー管理機構
(51)【国際特許分類】
G06F 3/12 20060101AFI20220513BHJP
B41J 29/38 20060101ALI20220513BHJP
【FI】
G06F3/12 375
G06F3/12 311
G06F3/12 320
G06F3/12 340
G06F3/12 387
B41J29/38
(21)【出願番号】P 2019030613
(22)【出願日】2019-02-22
【審査請求日】2019-02-22
【審判番号】
【審判請求日】2020-08-19
(32)【優先日】2018-02-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】マーキス ジー ウォーラー
(72)【発明者】
【氏名】ジョセフ ウェイン ストラドリング
(72)【発明者】
【氏名】マイケル グレン ロッツ
(72)【発明者】
【氏名】ジェフリー アレン シッキンク
【合議体】
【審判長】▲吉▼田 耕一
【審判官】角田 慎治
【審判官】稲葉 和生
(56)【参考文献】
【文献】米国特許出願公開第2010/0128303(US,A1)
【文献】特開2018-1639(JP,A)
【文献】特開2001-306655(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 29/00-29/70
B42B 2/00-9/06
B42C 1/00-99/00
G06F 3/09-3/12
(57)【特許請求の範囲】
【請求項1】
一以上のプロセッサにより実行されると、前記一以上のプロセッサに、
処理する一以上の印刷ジョブを含む印刷ファイルを受信させ、
前記印刷ファイルを処理するために実施する複数の処理ステップを決定させ、
各ステップコンポーネントに対応するマイクロサービスを生成させ、
前記マイクロサービスはファイルサイズと各ステップの調整パラメータとに基づいて生成され、
対応するマイクロサービスにより各ステップコンポーネントを処理させ、
前記印刷ファイルは、第1処理ステップにおいて処理される二以上の部分に分割され、前記二以上の部分が前記第1処理ステップにおいて処理される、
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記第1処理ステップを分析して、前記印刷ファイルを前記二以上の部分に分割するか判断させる、
コンピュータプログラム。
【請求項2】
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記第1処理ステップが完了した後、前記二以上の部分を結合させる、
請求項1に記載のコンピュータプログラム。
【請求項3】
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記印刷ファイルを、第2処理ステップにおける処理のため二以上の部分に分割すると決定させ、
前記二以上の部分を前記第2処理ステップにおいて処理させ、
前記第2処理ステップが完了した後、前記二以上の部分を結合させる、
請求項2に記載のコンピュータプログラム。
【請求項4】
前記印刷ファイルを二以上の部分に分割するかの判断は、前記第1処理ステップの性能と、前記印刷ファイルの処理に対して〆切りがあるかとに基づく、
請求項3に記載のコンピュータプログラム。
【請求項5】
前記第1処理ステップを分析させることは、
前記印刷ファイルを分割する部分の数を決定させることと、
決定された数の部分への分割を実行させることとを含む、
請求項1に記載のコンピュータプログラム。
【請求項6】
前記第1処理ステップを分析させることはさらに、
前記印刷ファイルの処理する〆切りがあるか判断させることと、
前記二以上の部分への分割の実行により前記〆切りが守れるか判断させることとを含む、
請求項5に記載のコンピュータプログラム。
【請求項7】
前記第1処理ステップを分析させることは、前記第1処理ステップが大きすぎて効率的に処理できないか判断させることを含む、
請求項6に記載のコンピュータプログラム。
【請求項8】
前記二以上の部分は並列に処理される、
請求項1に記載のコンピュータプログラム。
【請求項9】
システムであって、
少なくとも1つの物理的メモリ装置と、
前記少なくとも1つの物理的メモリ装置に結合した一以上のプロセッサとを有し、
前記一以上のプロセッサは、
処理する一以上の印刷ジョブを含む印刷ファイルを受信し、
前記印刷ファイルを処理するために実施する複数の処理ステップを決定し、
各ステップコンポーネントに対応するマイクロサービスを生成し、
前記マイクロサービスはファイルサイズと各ステップの調整パラメータとに基づいて生成され、
対応するマイクロサービスにより各ステップコンポーネントを処理し、
前記印刷ファイルは、第1処理ステップにおいて処理される二以上の部分に分割され、前記二以上の部分が前記第1処理ステップにおいて処理され、
前記1つ又は複数のプロセッサはさらに、
前記第1処理ステップを分析して、前記印刷ファイルを前記二以上の部分に分割するか判断し、
前記第1処理ステップが完了した後、前記二以上の部分を結合する、
システム。
【請求項10】
前記1つ又は複数のプロセッサはさらに、
前記印刷ファイルを、第2処理ステップにおける処理のため二以上の部分に分割すると決定し、
前記二以上の部分を前記第2処理ステップにおいて処理し、
前記第2処理ステップが完了した後、前記二以上の部分を結合する、
請求項9に記載のシステム。
【請求項11】
前記第1処理ステップを分析することは、
前記印刷ファイルを分割する部分の数を決定することと、
決定された数の部分への分割を実行することとを含む、
請求項9に記載のシステム。
【請求項12】
前記第1処理ステップを分析することはさらに、
前記印刷ファイルの処理する〆切りがあるか判断することと、
前記二以上の部分への分割の実行により前記〆切りが守れるか判断することとを含む、
請求項9に記載のシステム。
【請求項13】
前記第1処理ステップを分析することは、前記第1処理ステップが大きすぎて効率的に処理できないか判断することを含む、
請求項9に記載のシステム。
【請求項14】
前記ステップコンポーネントは対応するマイクロサービスにおいて並列に処理される、
請求項9に記載のシステム。
【請求項15】
前記二以上の部分は並列に処理される、
請求項9に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して印刷サービスの分野に関する。より具体的に、本発明は、印刷サービスワークフロー管理過程に関する。
【背景技術】
【0002】
大量の印刷需要をかかえる法人(entities)は一般的に大量印刷(例えば、1分あたり100ページ以上)用の高速プロダクションプリンターを備える。プロダクションプリンターは大型ロールに格納された印刷媒体のウェブ(web)に印刷する連続フォームプリンタを含む場合がある。プロダクションプリンターは一般に、印刷システムの動作全体を制御するローカル(localized)印刷コントローラと、一以上のプリントヘッドアセンブリを含むプリントエンジンとを含み、各アセンブリはプリントヘッドコントローラとプリントヘッド(またはプリントヘッドのアレイ)とを含む。
【0003】
最近、サービスがインターネットに接続されたサーバシステムにより提供されるクラウドサービスと呼ばれるインフラストラクチャの構築が進んでいる。インターネットを介した印刷の印刷サービスも提供されている。これらのサービスは、印刷装置の要求により、インターネット上のサーバで印刷データを生成および配信する機能を提供する。現在、前述のクラウドを用いてかかる印刷サービスを提供するシステムが開発されている。
【0004】
クラウドシステムは一般的に大規模な印刷及び複写ジョブのプロダクションを管理するワークフロー管理システムを実施する。ワークフロー管理システムの機能は、サービスレベルアグリーメント(Service Level Agreements(SLAs))の満足と、ジョブ処理中に生じることがある潜在的問題の特定とを含む。従来のワークフロー管理システムが特定することはできるが、修正することができないことが多い問題の1つは、印刷サービスにより実行されるべき仕事量の大幅な増加である。例えば、印刷サービスはビジネスの増加の結果として生じ、計算リソースを超過することになることがある。
【0005】
計算リソースを超過すると、すべてのジョブのスループットが大幅に遅くなり、SLAを満たせないことがある。解決策の1つは、計算リソースをもっと取得することである。しかし、追加リソースは結局不適切となることがあり、またはボリューム増加は短期的なものであり、長期的な投資に値しない可能性もある。
【0006】
したがって、ワークフロー管理機構の改良が望まれる。
【発明の概要】
【0007】
一実施形態では、方法を開示する。本方法は、処理する一以上の印刷ジョブを含む印刷ファイルを受信することと、前記印刷ファイルを処理するために実施する処理ステップを決定することと、各ステップコンポーネントに対応するマイクロサービスを生成することと、対応するマイクロサービスにより各ステップコンポーネントを処理することとを含む。
【図面の簡単な説明】
【0008】
以下の図面では、同じ参照番号は同じ要素を参照するのに用いられる。以下の図面は様々な例を示すが、一以上の実装は、図面に示された例に限定されない。
【0009】
【
図1】一実施形態によるワークフロー管理機構を利用する計算装置を有するシステムを示す。
【
図2】一実施形態によるワークフロー管理機構を示す。
【
図4】クラウド計算環境において実装されたワークフロー管理機構の他の実施形態を示す図である。
【
図5】ワークフロー管理を実行する過程の一実施形態を示すフロー図である。
【
図6】ワークフロー管理を実行する過程の他の一実施形態を示すフロー図である。
【
図7A】ワークフロー分割を実行する過程の一実施形態を示すフロー図である。
【
図7B】ワークフロー分割を実行する過程の一実施形態を示すフロー図である。
【
図8】本開示の実施形態を実装するのに適した計算装置を示す。
【発明を実施するための形態】
【0010】
クラウド印刷サービス環境に実装されるワークフロー管理機構を説明する。以下の詳細な説明では、説明を目的として、本発明を完全に理解してもらうために、具体的な詳細事項を開示した実施形態例を記載する。しかし、言うまでもなく、本発明はこれらの幾つかの詳細がなくても実施することができる。他の場合において、ブロック図形式で周知の構造やデバイスを示すが、これは本発明の根本原理が不明瞭になることを避けるためである。
【0011】
本明細書において「一実施形態」とは、その実施形態に関して説明する具体的な機能、構造、特徴などが本発明の少なくとも1つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、必ずしも同じ実施形態を指すものではない。
【0012】
本明細書を通して、「ロジック」、「コンポーネント」、「モジュール」、「エンジン」、「モデル」、「ユニット」などの用語は互換的に参照されることがあり、例として、ソフトウェア、ハードウェア、および/またはファームウェアなどのソフトウェアとハードウェアの任意の組み合わせを含む。さらに、特定のブランド、単語、用語、句、名前、および/または頭字語の使用は、実施形態を、製品に、またはこの文書の外部の文献にそのラベルを有するソフトウェアまたは装置に限定すると解釈してはならない。
【0013】
任意の数およびタイプのコンポーネントを追加および/または削除して、特定の特徴を追加、削除、および/または強化することを含む様々な実施形態を促進することができると思われる。簡潔さ、明瞭さ、および理解を容易にするために、計算装置のコンポーネントなど、標準的なコンポーネントおよび/または既知のコンポーネントの多くは、本明細書では図示または説明しない。本明細書で説明するように、実施形態は、いかなる特定の技術、トポロジ、システム、アーキテクチャ、および/または標準にも限定されず、将来の変更を採用および適応するのに十分に動的であると考えられる。
【0014】
図1は、一実施形態によるワークフロー管理機構110を利用する計算装置120を有するシステム100を示す。一実施形態では、計算装置120は、印刷サービスにおいて文書を印刷するための処理を容易にするためにワークフロー管理機構110を利用するホストマシンとして機能するホストサーバコンピュータを含む。計算装置120は、サーバコンピュータ(例えば、クラウドサーバコンピュータなど)、デスクトップコンピュータ、クラスタベースコンピュータ、セットトップボックス(例えば、インターネットベースのケーブルテレビジョンセットトップボックスなど)等を含み得る(限定ではない)。計算装置120は、その一以上のハードウェア/物理的リソースと、一以上のクライアント装置130A-130Nとの間のインターフェースとして機能するオペレーティングシステム(「OS」)を含む。計算装置120はさらに、プロセッサ102と、メモリ104と、タッチスクリーン、タッチパネル、タッチパッド、仮想的または普通のキーボード、仮想的または普通のマウスなどの入出力(「I/O」)ソース108とを含む。
【0015】
一実施形態では、ホスト組織101はさらに、それを通してクライアント装置130A-130Nと通信可能にインターフェースするプロダクション環境を利用してもよい。クライアント装置130A-130Nは、カスタマー組織ベースのサーバコンピュータと、デスクトップコンピュータと、ラップトップコンピュータと、スマートフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、電子ブックリーダーなどのメディアモバイル計算装置と、メディアインターネット装置と、スマートテレビジョンと、テレビジョンプラットフォームと、ウェアラブルデバイス(例えば、メガネ、腕時計、ブレスレット、スマートカード、宝飾品、衣類など)と、メディアプレーヤと、GPS(global positioning system)ベースのナビゲーションシステムと、ケーブルセットアップボックスとなどを含む(限定ではない)。
【0016】
一実施形態では、図示したデータベース140は、カスタマー組織121A-121Nの代わりに文書及び/又は印刷ジョブを処理するカスタマー及びユーザデータを有するデータベースレコードと情報を格納する(限定ではない)。幾つかの実施形態では、ホスト組織101は、一以上のネットワーク135を介して複数のカスタマー組織121A-121Nから入力及びその他の要求を受信する。例えば、入来する印刷ジョブ及び/又は文書処理要求、またはその他の入力を、カスタマー組織121A-121Nから受信して、データベースシステム140を用いて処理してもよい。
【0017】
一実施形態では、各カスタマー組織121A-121Nは、別個のリモート組織、ホスト組織101内の組織グループ、ホスト組織101のビジネスパートナー、ホスト組織101により提供されるクラウド計算サービスをサブスクライブするカスタマー組織121A-121Nよりなる群から選択されるエンティティである。
【0018】
一実施形態では、要求は、ホスト組織101内のウェブサーバが受信し、又はそのウェブサーバに送信される。ホスト組織101は、処理のため様々な要求を受信することができる。例えば、ウェブサーバが受信する入来要求は、ホスト組織101からの印刷サービスを特定することができる。さらに、ホスト組織101は、ウェブサーバを介して、または独立したインターフェースとして要求インターフェースを実装して、クライアント装置130A-130Nから要求パケットまたはその他の要求を受信する。要求インターフェースは、応答パケットその他の回答の返送と、ホスト組織101から一以上のクライアント装置130A-130Nへの外向きの応答とをサポートしてもよい。
【0019】
図2は、一実施形態による、
図1のワークフロー管理機構110を示す。一実施形態では、ワークフロー管理機構110は、幾つのどんな種類のコンポーネントを含んでもよく、例えば、要求ロジック201、ファイル分析ロジック202、マイクロサービスエンジン203、ステップアダプターエンジン204、アグリゲータ(aggregator)205、ユーザインターフェース206、及び通信/互換性ロジック207を含んでもよい。
【0020】
一実施形態では、計算装置120はサーバコンピュータを含んでもよく、このサーバコンピュータはデータベース140などの一以上のデータベースまたはストレージリポジトリと通信することができてもよく、このデータベースはローカルに配置されていても、ネットワーク135などの一以上のネットワーク(例えば、クラウドネットワーク、インターネット、近接ネットワーク、イントラネット、IoT(Internet of Things)、CoT(Cloud of Things)など)を介してリモートに配置されていてもよい。図示した計算装置120はさらに、クライアント計算装置130A-130Nなどの幾つのどんな種類の他の計算装置と、ネットワーク135などの一以上のネットワークを介して通信してもよい。
【0021】
一実施形態では、計算装置120は、ワークフロー管理機構110をSaaS(software as a service)としてホスティングし維持するサービスプロバイダコアとして機能してもよく、一以上のネットワーク135と幾つのどんな種類の専用ノードとを介して、一以上のクライアントコンピュータ130A-130Nと通信していてもよい。
図1を参照して上述の通り、幾つのどんな種類の要求を受信しても、処理のため送信してもよい。例えば、入来する要求は、一以上のクライアント装置130A-130N、コード拡張要求などの代わりに、印刷及び/又は文書操作要求など、計算装置120からのどのサービスを提供すべきか指定する。
【0022】
一実施形態によれば、ホスト組織101は一以上の印刷システムを介してクライアント装置130のために印刷サービスを実行することができる。
図3は、かかる印刷システム300の一実施形態を示す。プリンタ300は制御部350と印刷エンジン358とを含む。一実施形態によれば、制御部350は、印刷ジョブデータで受信したオブジェクトを処理およびレンダリングし、印刷用シートマップを印刷エンジン358に提供する。制御部(例えば、DFEまたはデジタルフロントエンド)350は、制御部350が受信した画像オブジェクトをラスタイメージプロセッサ(RIP)により処理し、ベクトルグラフィックフォーマット(例えば、形状)で記述された画像を、ラスタイメージ(例えば、ピクセル)に変換するように実装される。ラスタイメージは、印刷エンジン358への出力のため、メモリアレイ(図示せず)にスキャンラインデータとして格納される。他の実施形態では、印刷エンジン358はカスタマー組織121に関連する施設に配置されてもよい。かかる実施形態では、制御部350は、印刷ジョブ情報を処理して、リモート印刷エンジンにラスタイメージを送信して、出力を生成する。
【0023】
図2に戻り、ワークフロー管理機構110は印刷処理のため文書の大きなワークフローを管理するように実施されてもよい。ホスト組織101は印刷要求を受信し、印刷要求の一部は大量の(例えば、数千部の)印刷ジョブを含んでいてもよい。かかる大量の印刷ジョブのため、ワークフロー管理機構110は、クライアントのSLAを満たすため、要求を効率的に処理しなければならない。上記の通り、印刷要求のボリュームが計算装置のリソースを超過する場合には、SLAを満たすことは問題となり得る。
【0024】
一実施形態によれば、ワークフロー管理機構110は、リソース制約無しに、印刷データのワークフローを処理するマイクロサービスアーキテクチャを実装する。かかる一実施形態では、ワークフロー管理機構110は、ワークフローを処理するために実施する処理ステップの数にしたがって、ワークフローを複数のコンポーネントに分割し、ファイルサイズとチューニングパラメータに基づいて、各ステップに対しマイクロサービス(microservice)を生成する。別の一実施形態では、ワークロード処理ステップを並列に実行してもよい。このように、マイクロサービス実装により、ワークフロー管理機構110は、必要リソース量のみを使いつつ、決定されたステップ数に基づいて各印刷ファイルを処理することができる。
【0025】
ワークフロー管理機構110は、大きいワークフローファイルを受信することがしばしばあり、これの処理には時間がかかる。よって、別の一実施形態では、ワークフロー管理機構110は、受信した印刷ジョブを分析して、必要に応じてそのファイルを二以上のコンポーネント(または部分)に分割する。この実施形態では、ワークフロー管理機構110は、受信された印刷ジョブファイルが大きすぎて又は複雑過ぎて1つのステップではそのファイルを許容可能レートで処理できないか判定し、その印刷ファイルを処理するワークロードを、効率的に処理可能な決定された数(determined number)の部分に自動的に分割する。
【0026】
一実施形態では、ファイルのサイズ、ファイルデータストリームの主要構造(key structure)、及びステップ調整パラメータ(step tuning parameters)を用いて、そのステップを処理する許容可能レートを決定する。結果として、実際のファイル(例えば、Portable Document Format(PDF)、Advanced Function Printing(AFP)、Postscript(PS)、又は対応するメタデータ)が複数の部分に分割されてもよい。一実施形態では、分割された複数の部分は並列に処理される。
【0027】
それらの部分は、処理が完了すると、再合成(又は結合)され、後続のステップに送られて処理される。幾つかの実施形態では、後続のステップも分割される必要があると判定された場合、ファイルは複数の部分に分割されたままでもよい。例えば、後続のステップの分析により、前のステップでSLAを満たす処理が十分になされていないと判定してもよい。この実施形態では、現在のステップを処理している間に、結合する決定が行われる。この先読みアクションにより、データが最も効率的なレートでワークフローを流れることができる。
【0028】
図4は、クラウド計算環境においてマイクロサービスとして実装されたワークフロー管理機構110の一実施形態を示す。
図4に示すように、印刷ファイルは受信され、第1処理ステップ(ステップ1)で5つの部分に分割される。その後、ステップが結合されてから、第2処理ステップ(ステップ2)に進み処理される。
【0029】
一実施形態では、計算装置120は、ウェブサーバを介して、またはユーザインターフェース206などの独立のインターフェースとして機能して、クライアント装置130A-130Nから要求パケットその他の要求を受信する要求ロジック201を実装してもよい。要求インターフェースは、応答パケットその他の回答の返送と、計算装置120から一以上のクライアント装置130A-130Nへの外向きの応答とをサポートしてもよい。
【0030】
さらに別の一実施形態では、要求ロジック201は、要求と共に計算装置120に送信された一以上の印刷ジョブファイルに印刷サービスを実行する要求を、カスタマー組織から受信する。ファイル分析ロジック202は、受信された印刷ジョブファイルを分析して、そのファイルを処理するために実施される処理ステップの数を決定する。かかる一実施形態では、分析ロジック202は、そのファイルに実行する処理(例えば、変換、ハーフトーンなど)を調べることにより、そのファイルを分析し、そのファイルを処理するのに必要なリソースを計算する。このように、ファイル分析ロジック202は、ファイル処理のための効率的なリソース利用の決定に基づいて、ワークフロー過程を二以上の処理ステップに分割してもよい。
【0031】
マイクロサービスエンジン203は、分析ロジック202により決定された複数のステップの各々を処理するマイクロサービスを生成する。一実施形態では、マイクロサービスは、ファイルサイズと、各ステップの調整パラメータとに基づいて生成される。上記の通り、生成された複数のマイクロサービスのうち二以上を並列に処理してもよい。ステップアダプターエンジン204は、マイクロサービスエンジン203により生成されたマイクロサービス(microservice)において、各ステップの処理を管理する。
【0032】
一実施形態によれば、ステップアダプターエンジン204は、分析ロジック202により割り当てられた各ステップを分析し、ステップを二以上の部分に分割するか判定する。分析中、ステップアダプターエンジン204は、各ステップが様々なデータセットにアクセスするのに要する時間の長さと、満たさなければならないSLAをデータのどれかが有しているかいなかと、SLAまたは〆切りを満たすためデータにアクセスする必要があるその他のステップとを決定することができる。一実施形態では、ステップアダプターエンジン204は、ステップをどう分割するか決定する一以上の教師付き機械学習モデルを実装してもよい。かかる一実施形態では、ステップアダプターエンジン204は、現在のファイルとの類似性を有する以前に処理された一以上のファイルの特徴データにアクセスして、成功した以前のファイルの処理に基づき、ステップを複数の部分に分割してもよい。
【0033】
例えば、完了期限が4時間である100,000ページの印刷ジョブが受信され、ワークフローに入ることがある。この例では、ファイル分析ロジック202は、そのファイルを5つの処理ステップに分割することを決定してもよい。したがって、ステップアダプターエンジン204は、第1ステップは変換ステップであると認識し、以前に処理されたジョブのデータから、100,000ページに対して実行される変換ステップの処理には4時間かかり、その他の4つのステップには処理時間が合計で1時間かかることを認識する。この分析に基づき、ステップアダプターエンジン204は、変換ステップを2つの部分に分割し、ステップが2時間以内に処理できるようにする。結果として、全部で5つのステップを約3時間で処理することにより、〆切りに間に合う。
【0034】
アグリゲータ(aggregator)205は、処理が完了すると、分割された複数の部分を結合する。上記の通り、複数の部分は、後続のステップに送られて処理される前に再結合(re-combined)されてもよく、又は次のステップも分割する必要があると判定された場合には、複数の部分に分割されたままにされてもよい。
【0035】
通信・機能ロジック207は、動的に通信する機能を提供し、変化するテクノロジー、パラメータ、プロトコル、標準などとの互換性を確保しつつ、幾つのどのタイプのソフトウェア/アプリケーション開発ツール、モデル、データ処理サービス、データベースプラットフォームおよびアーキテクチャ、プログラミング言語及びそれらの対応するプラットフォームなどで構成されてもよい。
【0036】
図5は、ワークフロー管理を実行する過程500の一実施形態を示すフロー図である。過程500は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(処理デバイス上で実行される命令など)、またはこれらの組み合わせを含み得る処理ロジックにより実行され得る。一実施形態では、過程500はワークフロー管理機構110により実行されてもよい。過程500は、表示の短縮および明確化のため線形順序で示されている。しかし、これらのうち幾つを並列に、非同期で、または異なる順序で実行できることが想定される。短縮、明確化、及び理解の容易のため、
図1ないし
図4を参照して説明した詳細事項の多くは、ここでは繰り返さない。
【0037】
過程500は処理ブロック510で始まり、印刷ファイルが受信されワークロードに入る。処理ブロック520において、ファイルを処理するステップ数を決定する。処理ブロック530において、ステップを分析する。一実施形態では、分析は、そのジョブを処理する時間と、及び複数の処理ステップの各々を実行するのに要する時間との決定を含む。上記の通り、分析は、以前に処理されたジョブの特徴データを用いて、現在のファイルを処理する最も効率的なやり方を決定することができる。
【0038】
決定ブロック540において、複数のステップのうち一以上を分割するか判断する。分割する場合、処理ブロック550において、その一以上のステップは決定された数の部分に分割される。どちらの場合であっても、処理ブロック560においてステップ処理が実行される。処理ブロック570において、前述の通り、複数のステップが結合される。
図6は、ワークフロー管理を実行する方法の他の一実施形態を示すフロー図である。
図6に示したように、ファイルは、ステップ2で分割されたままにすると決定されると、ステップ1からステップ2に送られる時、分割されたままにされる。しかし、ファイルは、ステップ2の処理後、結合されてから、ステップ3に送られる。
【0039】
図7A及び7Bは、ステップに対して分割(split)を実行する過程700の一実施形態を示すフロー図である。過程700は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(処理デバイス上で実行される命令など)、またはこれらの組み合わせを含み得る処理ロジックにより実行され得る。一実施形態では、過程700はステップアダプターエンジン204により実行されてもよい。過程700は、表示の短縮および明確化のため線形順序で示されている。しかし、これらのうち幾つを並列に、非同期で、または異なる順序で実行できることが想定される。短縮、明確化、及び理解の容易のため、
図1-6を参照して説明した詳細事項の多くは、ここでは繰り返さない。
【0040】
過程700は、
図7Aの処理ブロック702で始まり、受信された印刷ファイルの処理及び/又は印刷に〆切りがあるか判断される。〆切りがあれば、判断ブロック704において、ファイル中のすべてのステップを処理する平均時間が、〆切りに基づいて、利用できる時間より長いか判断される。処理時間の方が長ければ、判断ステップ706において、現在のステップがコスト高(例えば、現在のステップの処理時間がすべてのステップを処理する平均時間より長い)であるか判断する。現在のステップがコスト高でなければ、判断ブロック708において、ステップを分割することにより〆切りに間に合うか判断する。
【0041】
ステップの分割により〆切りに間に合うと判断された場合、処理ブロック710(
図7B)において、ステップを分割する部分(segment)の数を決定する。一実施形態では、処理時間を短縮する点で違いがある数の部分に、ステップを分割する。他の一実施形態では、ステップを処理する時間がどれだけ平均処理時間より長いかに基づき、分割の数を決定してもよい。よって、このステップは、それが処理時間よりどれだけ長いに応じた数の部分に分割され得る。処理ブロック712において、決定された数の分割が実行される。
【0042】
判断ブロック702において、受信した印刷ファイルに〆切りがないと判断されると、判断ブロック714(
図7B)において、効率的に処理するにはそのステップのデータ量が大き過ぎるか否か判断する。データが大きすぎる場合、処理ブロック710に制御が返され、分割数(number of splits)が決定され、分割が実行される(処理ブロック712)。判断ブロック714において、データは大きすぎないと判断されたとき、そのステップは分割する必要がないので、過程は完了する。
【0043】
判断ブロック704において、すべてのステップを処理する平均時間が利用可能時間より短いと判断された場合、判断ブロック714に制御が返され、そのステップのデータ量が大きすぎて効率的に処理できないか判断する。判断ブロック706において、ステップがコスト高(costly)であると判断されると、処理ブロック710に制御が返される。判断ブロック708において、ステップを分割しても〆切りに間に合わないと判断されると、そのステップを分割する必要はないので、過程は完了する。
【0044】
上記の機構により、印刷ワークフローは、業務用印刷システムに関連する大量の印刷ジョブを、遅延時間無く処理することができる。
【0045】
図8は、計算装置120及び/または121が実施されるコンピュータシステム900を示す。コンピュータシステム900は、情報を伝送するシステムバス920と、情報を処理する、バス920に結合したプロセッサ910とを含む。
【0046】
コンピュータシステム900はさらに、情報と、プロセッサ910により実行される命令とを格納する、バス920に結合したランダムアクセスメモリ(RAM)またはその他のダイナミック記憶デバイス925(ここではメインメモリと呼ぶ)を有する。メインメモリ925は、プロセッサ910による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用される。コンピュータシステム900は、バス920に結合され、プロセッサ910により用いられる静的情報と命令とを記憶する読み出し専用メモリ(ROM)その他の静的記憶デバイス926を含む。
【0047】
磁気ディスクや光ディスク及びそれに対応するドライブなどのデータ記憶デバイス927は、コンピュータシステム900にも結合し、情報と命令を記憶する。また、コンピュータシステム900は、I/Oインターフェース930を介して第2のI/Oバス950に結合していてもよい。複数のI/OデバイスがI/Oバス950に結合していてもよく、これにはディスプレイデバイス924、入力デバイス(例えば、キーボード(英数字入力デバイス)923及び/またはカーソル制御デバイス922)を含む。通信デバイス921は他のコンピュータシステム(サーバまたはクライアント)にアクセスするものである。通信デバイス921は、モデム、ネットワークインタフェース、またはその他の周知のインタフェースデバイス(イーサネット(登録商標)、トークンリング、その他のタイプのネットワークに結合するのに使われるもの)を有する。
【0048】
実施形態は、親ボードを使用して相互接続された1つ以上のマイクロチップまたは集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)として、またはこれらの組み合わせとして実施できる。用語「ロジック」は、例として、ソフトウェアもしくはハードウェアおよび/またはソフトウェアとハードウェアとの組み合わせを含み得る。
【0049】
実施形態は、例えば、コンピュータ、コンピュータネットワーク、または他の電子装置などの1つまたは複数の機械によって実行されると、1つまたは複数の機械が、本明細書に記載の実施形態に従って動作を実行する機械実行可能命令を記憶した1つまたは複数の機械可読媒体を含むことができるコンピュータプログラム製品として提供することができる。機械読み取り可能媒体は、フロッピー(登録商標)ディスケット、光ディスク、CD-ROM(コンパクトディスクリードオンリーメモリ)、及び光磁気ディスク、ROM、RAM、EPROM(消去可能プログラマブルリードオンリーメモリ)、EEPROM、磁気または光学カード、フラッシュメモリ、またはその他のタイプの、機械実行可能命令を記憶するのに適した媒体/機械読み取り可能媒体を含むが、これに限定されない。
【0050】
さらに、実施形態は、コンピュータプログラム製品としてダウンロード可能であってもよく、プログラムは、通信リンク(例えば、モデム及び/又はネットワーク接続)を介して、搬送波またはその他の伝搬媒体で実施及び/又は変調された一以上のデータ信号により、リモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に転送できる。
【0051】
図面と上記の説明は実施形態の例を与えるものである。当業者には言うまでもないが、説明した一以上の要素を結合して単一の機能要素にしてもよい。あるいは、ある要素を複数の機能要素に分離してもよい。一実施形態の要素を他の一実施形態に付加してもよい。例えば、ここに説明した過程の順序は、変更してもよく、ここに説明したように限定されるものではない。さらに、どのフロー図のステップ(action)も図示した順序で実施する必要はない。また、すべてのステップ(acts)を実行する必要も必ずしもない。また、他のステップに依存しないステップは、他のステップと並行して実行してもよい。実施形態の範囲はこれらの具体的な例により決して限定されない。多数のバリエーションが、本明細書で明示的に説明されていようといまいと、例えば構造、寸法、使用材料が異なるなどの相違が可能である。実施形態の範囲は少なくとも後述の特許請求の範囲と同じように広い。