(57)【要約】【課題】ワークフロー管理機構の改良である。【解決手段】  文書最適化を実行するシステムを説明する。該システムは、少なくとも１つの物理的メモリ装置と、少なくとも１つの物理的メモリ装置に結合した一以上のプロセッサとを有し、一以上のプロセッサは、処理する一以上の印刷ジョブを含む印刷ファイルを受信し、印刷ファイルを処理するために実施する複数の処理ステップを決定し、各処理ステップに対応するマイクロサービスを生成し、対応するマイクロサービスにより各ステップコンポーネントを処理する。【選択図】図２
2019149164.tif 000002
【特許請求の範囲】
【請求項１】
一以上のプロセッサにより実行されると、前記一以上のプロセッサに、
処理する一以上の印刷ジョブを含む印刷ファイルを受信させ、
前記印刷ファイルを処理するために実施する複数の処理ステップを決定させ、
各ステップコンポーネントに対応するマイクロサービスを生成させ、
対応するマイクロサービスにより各ステップコンポーネントを処理させる、
コンピュータプログラム。
【請求項２】
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記印刷ファイルを、第１処理ステップにおいて処理する二以上の部分に分割させ、
前記二以上の部分を前記第１処理ステップにおいて処理させる、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記第１処理ステップが完了した後、前記二以上の部分を結合させる、
請求項２に記載のコンピュータプログラム。
【請求項４】
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記印刷ファイルを、第２処理ステップにおける処理のため二以上の部分に分割すると決定させ、
前記二以上の部分を前記第２処理ステップにおいて処理させ、
前記第２処理ステップが完了した後、前記二以上の部分を結合させる、
請求項３に記載のコンピュータプログラム。
【請求項５】
前記印刷ファイルを二以上の部分に分割するかの判断は、前記第１処理ステップの性能と、前記印刷ファイルの処理に対して〆切りがあるかとに基づく、
請求項４に記載のコンピュータプログラム。
【請求項６】
前記一以上のプロセッサにより実行されると、前記一以上のプロセッサにさらに、
前記第１処理ステップを分析して、前記印刷ファイルを前記二以上の部分に分割するか判断させる、
請求項２に記載のコンピュータプログラム。
【請求項７】
前記第１処理ステップを分析させることは、
前記印刷ファイルを分割する部分の数を決定させることと、
決定された数の部分への分割を実行させることとを含む、
請求項６に記載のコンピュータプログラム。
【請求項８】
前記第１処理ステップを分析させることはさらに、
前記印刷ファイルの処理する〆切りがあるか判断させることと、
前記二以上の部分への分割の実行により前記〆切りが守れるか判断させることとを含む、
請求項７に記載のコンピュータプログラム。
【請求項９】
前記第１処理ステップを分析させることは、前記第１処理ステップが大きすぎて効率的に処理できないか判断させることを含む、
請求項８に記載のコンピュータプログラム。
【請求項１０】
前記二以上の部分は並列に処理される、
請求項２に記載のコンピュータプログラム。
【請求項１１】
システムであって、
少なくとも１つの物理的メモリ装置と、
前記少なくとも１つの物理的メモリ装置に結合した一以上のプロセッサとを有し、
前記一以上のプロセッサは、
処理する一以上の印刷ジョブを含む印刷ファイルを受信し、
前記印刷ファイルを処理するために実施する複数の処理ステップを決定し、
各ステップコンポーネントに対応するマイクロサービスを生成し、
対応するマイクロサービスにより各ステップコンポーネントを処理する、
システム。
【請求項１２】
前記１つ又は複数のプロセッサはさらに、
前記印刷ファイルを、第１処理ステップにおいて処理する二以上の部分に分割し、
前記二以上の部分を前記第１処理ステップにおいて処理する、
請求項１１に記載のシステム。
【請求項１３】
前記１つ又は複数のプロセッサはさらに、
前記第１処理ステップが完了した後、前記二以上の部分を結合する、
請求項１２に記載のシステム。
【請求項１４】
前記１つ又は複数のプロセッサはさらに、
前記印刷ファイルを、第２処理ステップにおける処理のため二以上の部分に分割すると決定し、
前記二以上の部分を前記第２処理ステップにおいて処理し、
前記第２処理ステップが完了した後、前記二以上の部分を結合する、
請求項１３に記載のシステム。
【請求項１５】
前記１つ又は複数のプロセッサはさらに、
前記第１処理ステップを分析して、前記印刷ファイルを前記二以上の部分に分割するか判断する、
請求項１３に記載のシステム。
【請求項１６】
前記第１処理ステップを分析することは、
前記印刷ファイルを分割する部分の数を決定することと、
決定された数の部分への分割を実行することとを含む、
請求項１５に記載のシステム。
【請求項１７】
前記第１処理ステップを分析することはさらに、
前記印刷ファイルの処理する〆切りがあるか判断することと、
前記二以上の部分への分割の実行により前記〆切りが守れるか判断することとを含む、
請求項１５に記載のシステム。
【請求項１８】
前記第１処理ステップを分析することは、前記第１処理ステップが大きすぎて効率的に処理できないか判断することを含む、
請求項１５に記載のシステム。
【請求項１９】
前記ステップコンポーネントは対応するマイクロサービスにおいて並列に処理される、
請求項１１に記載のシステム。
【請求項２０】
前記二以上の部分は並列に処理される、
請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して印刷サービスの分野に関する。より具体的に、本発明は、印刷サービスワークフロー管理過程に関する。
【背景技術】
【０００２】
大量の印刷需要をかかえる法人（ｅｎｔｉｔｉｅｓ）は一般的に大量印刷（例えば、１分あたり１００ページ以上）用の高速プロダクションプリンターを備える。プロダクションプリンターは大型ロールに格納された印刷媒体のウェブ（ｗｅｂ）に印刷する連続フォームプリンタを含む場合がある。プロダクションプリンターは一般に、印刷システムの動作全体を制御するローカル（ｌｏｃａｌｉｚｅｄ）印刷コントローラと、一以上のプリントヘッドアセンブリを含むプリントエンジンとを含み、各アセンブリはプリントヘッドコントローラとプリントヘッド（またはプリントヘッドのアレイ）とを含む。
【０００３】
最近、サービスがインターネットに接続されたサーバシステムにより提供されるクラウドサービスと呼ばれるインフラストラクチャの構築が進んでいる。インターネットを介した印刷の印刷サービスも提供されている。これらのサービスは、印刷装置の要求により、インターネット上のサーバで印刷データを生成および配信する機能を提供する。現在、前述のクラウドを用いてかかる印刷サービスを提供するシステムが開発されている。
【０００４】
クラウドシステムは一般的に大規模な印刷及び複写ジョブのプロダクションを管理するワークフロー管理システムを実施する。ワークフロー管理システムの機能は、サービスレベルアグリーメント（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔｓ（ＳＬＡｓ））の満足と、ジョブ処理中に生じることがある潜在的問題の特定とを含む。従来のワークフロー管理システムが特定することはできるが、修正することができないことが多い問題の１つは、印刷サービスにより実行されるべき仕事量の大幅な増加である。例えば、印刷サービスはビジネスの増加の結果として生じ、計算リソースを超過することになることがある。
【０００５】
計算リソースを超過すると、すべてのジョブのスループットが大幅に遅くなり、ＳＬＡを満たせないことがある。解決策の１つは、計算リソースをもっと取得することである。しかし、追加リソースは結局不適切となることがあり、またはボリューム増加は短期的なものであり、長期的な投資に値しない可能性もある。
【０００６】
したがって、ワークフロー管理機構の改良が望まれる。
【発明の概要】
【０００７】
一実施形態では、方法を開示する。本方法は、処理する一以上の印刷ジョブを含む印刷ファイルを受信することと、前記印刷ファイルを処理するために実施する処理ステップを決定することと、各ステップコンポーネントに対応するマイクロサービスを生成することと、対応するマイクロサービスにより各ステップコンポーネントを処理することとを含む。
【図面の簡単な説明】
【０００８】
以下の図面では、同じ参照番号は同じ要素を参照するのに用いられる。以下の図面は様々な例を示すが、一以上の実装は、図面に示された例に限定されない。
【０００９】
【図１】一実施形態によるワークフロー管理機構を利用する計算装置を有するシステムを示す。
【図２】一実施形態によるワークフロー管理機構を示す。
【図３】印刷システムの一実施形態を示す。
【図４】クラウド計算環境において実装されたワークフロー管理機構の他の実施形態を示す図である。
【図５】ワークフロー管理を実行する過程の一実施形態を示すフロー図である。
【図６】ワークフロー管理を実行する過程の他の一実施形態を示すフロー図である。
【図７Ａ】ワークフロー分割を実行する過程の一実施形態を示すフロー図である。
【図７Ｂ】ワークフロー分割を実行する過程の一実施形態を示すフロー図である。
【図８】本開示の実施形態を実装するのに適した計算装置を示す。
【発明を実施するための形態】
【００１０】
クラウド印刷サービス環境に実装されるワークフロー管理機構を説明する。以下の詳細な説明では、説明を目的として、本発明を完全に理解してもらうために、具体的な詳細事項を開示した実施形態例を記載する。しかし、言うまでもなく、本発明はこれらの幾つかの詳細がなくても実施することができる。他の場合において、ブロック図形式で周知の構造やデバイスを示すが、これは本発明の根本原理が不明瞭になることを避けるためである。
【００１１】
本明細書において「一実施形態」とは、その実施形態に関して説明する具体的な機能、構造、特徴などが本発明の少なくとも１つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、必ずしも同じ実施形態を指すものではない。
【００１２】
本明細書を通して、「ロジック」、「コンポーネント」、「モジュール」、「エンジン」、「モデル」、「ユニット」などの用語は互換的に参照されることがあり、例として、ソフトウェア、ハードウェア、および／またはファームウェアなどのソフトウェアとハードウェアの任意の組み合わせを含む。さらに、特定のブランド、単語、用語、句、名前、および／または頭字語の使用は、実施形態を、製品に、またはこの文書の外部の文献にそのラベルを有するソフトウェアまたは装置に限定すると解釈してはならない。
【００１３】
任意の数およびタイプのコンポーネントを追加および／または削除して、特定の特徴を追加、削除、および／または強化することを含む様々な実施形態を促進することができると思われる。簡潔さ、明瞭さ、および理解を容易にするために、計算装置のコンポーネントなど、標準的なコンポーネントおよび／または既知のコンポーネントの多くは、本明細書では図示または説明しない。本明細書で説明するように、実施形態は、いかなる特定の技術、トポロジ、システム、アーキテクチャ、および／または標準にも限定されず、将来の変更を採用および適応するのに十分に動的であると考えられる。
【００１４】
図１は、一実施形態によるワークフロー管理機構１１０を利用する計算装置１２０を有するシステム１００を示す。一実施形態では、計算装置１２０は、印刷サービスにおいて文書を印刷するための処理を容易にするためにワークフロー管理機構１１０を利用するホストマシンとして機能するホストサーバコンピュータを含む。計算装置１２０は、サーバコンピュータ（例えば、クラウドサーバコンピュータなど）、デスクトップコンピュータ、クラスタベースコンピュータ、セットトップボックス（例えば、インターネットベースのケーブルテレビジョンセットトップボックスなど）等を含み得る（限定ではない）。計算装置１２０は、その一以上のハードウェア／物理的リソースと、一以上のクライアント装置１３０Ａ−１３０Ｎとの間のインターフェースとして機能するオペレーティングシステム（「ＯＳ」）を含む。計算装置１２０はさらに、プロセッサ１０２と、メモリ１０４と、タッチスクリーン、タッチパネル、タッチパッド、仮想的または普通のキーボード、仮想的または普通のマウスなどの入出力（「Ｉ／Ｏ」）ソース１０８とを含む。
【００１５】
一実施形態では、ホスト組織１０１はさらに、それを通してクライアント装置１３０Ａ−１３０Ｎと通信可能にインターフェースするプロダクション環境を利用してもよい。クライアント装置１３０Ａ−１３０Ｎは、カスタマー組織ベースのサーバコンピュータと、デスクトップコンピュータと、ラップトップコンピュータと、スマートフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、電子ブックリーダーなどのメディアモバイル計算装置と、メディアインターネット装置と、スマートテレビジョンと、テレビジョンプラットフォームと、ウェアラブルデバイス（例えば、メガネ、腕時計、ブレスレット、スマートカード、宝飾品、衣類など）と、メディアプレーヤと、ＧＰＳ（ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）ベースのナビゲーションシステムと、ケーブルセットアップボックスとなどを含む（限定ではない）。
【００１６】
一実施形態では、図示したデータベース１４０は、カスタマー組織１２１Ａ−１２１Ｎの代わりに文書及び／又は印刷ジョブを処理するカスタマー及びユーザデータを有するデータベースレコードと情報を格納する（限定ではない）。幾つかの実施形態では、ホスト組織１０１は、一以上のネットワーク１３５を介して複数のカスタマー組織１２１Ａ−１２１Ｎから入力及びその他の要求を受信する。例えば、入来する印刷ジョブ及び／又は文書処理要求、またはその他の入力を、カスタマー組織１２１Ａ−１２１Ｎから受信して、データベースシステム１４０を用いて処理してもよい。
【００１７】
一実施形態では、各カスタマー組織１２１Ａ−１２１Ｎは、別個のリモート組織、ホスト組織１０１内の組織グループ、ホスト組織１０１のビジネスパートナー、ホスト組織１０１により提供されるクラウド計算サービスをサブスクライブするカスタマー組織１２１Ａ−１２１Ｎよりなる群から選択されるエンティティである。
【００１８】
一実施形態では、要求は、ホスト組織１０１内のウェブサーバが受信し、又はそのウェブサーバに送信される。ホスト組織１０１は、処理のため様々な要求を受信することができる。例えば、ウェブサーバが受信する入来要求は、ホスト組織１０１からの印刷サービスを特定することができる。さらに、ホスト組織１０１は、ウェブサーバを介して、または独立したインターフェースとして要求インターフェースを実装して、クライアント装置１３０Ａ−１３０Ｎから要求パケットまたはその他の要求を受信する。要求インターフェースは、応答パケットその他の回答の返送と、ホスト組織１０１から一以上のクライアント装置１３０Ａ−１３０Ｎへの外向きの応答とをサポートしてもよい。
【００１９】
図２は、一実施形態による、図１のワークフロー管理機構１１０を示す。一実施形態では、ワークフロー管理機構１１０は、幾つのどんな種類のコンポーネントを含んでもよく、例えば、要求ロジック２０１、ファイル分析ロジック２０２、マイクロサービスエンジン２０３、ステップアダプターエンジン２０４、アグリゲータ（ａｇｇｒｅｇａｔｏｒ）２０５、ユーザインターフェース２０６、及び通信／互換性ロジック２０７を含んでもよい。
【００２０】
一実施形態では、計算装置１２０はサーバコンピュータを含んでもよく、このサーバコンピュータはデータベース１４０などの一以上のデータベースまたはストレージリポジトリと通信することができてもよく、このデータベースはローカルに配置されていても、ネットワーク１３５などの一以上のネットワーク（例えば、クラウドネットワーク、インターネット、近接ネットワーク、イントラネット、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）、ＣｏＴ（Ｃｌｏｕｄ  ｏｆ  Ｔｈｉｎｇｓ）など）を介してリモートに配置されていてもよい。図示した計算装置１２０はさらに、クライアント計算装置１３０Ａ−１３０Ｎなどの幾つのどんな種類の他の計算装置と、ネットワーク１３５などの一以上のネットワークを介して通信してもよい。
【００２１】
一実施形態では、計算装置１２０は、ワークフロー管理機構１１０をＳａａＳ（ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ）としてホスティングし維持するサービスプロバイダコアとして機能してもよく、一以上のネットワーク１３５と幾つのどんな種類の専用ノードとを介して、一以上のクライアントコンピュータ１３０Ａ−１３０Ｎと通信していてもよい。図１を参照して上述の通り、幾つのどんな種類の要求を受信しても、処理のため送信してもよい。例えば、入来する要求は、一以上のクライアント装置１３０Ａ−１３０Ｎ、コード拡張要求などの代わりに、印刷及び／又は文書操作要求など、計算装置１２０からのどのサービスを提供すべきか指定する。
【００２２】
一実施形態によれば、ホスト組織１０１は一以上の印刷システムを介してクライアント装置１３０のために印刷サービスを実行することができる。図３は、かかる印刷システム３００の一実施形態を示す。プリンタ３００は制御部３５０と印刷エンジン３５８とを含む。一実施形態によれば、制御部３５０は、印刷ジョブデータで受信したオブジェクトを処理およびレンダリングし、印刷用シートマップを印刷エンジン３５８に提供する。制御部（例えば、ＤＦＥまたはデジタルフロントエンド）３５０は、制御部３５０が受信した画像オブジェクトをラスタイメージプロセッサ（ＲＩＰ）により処理し、ベクトルグラフィックフォーマット（例えば、形状）で記述された画像を、ラスタイメージ（例えば、ピクセル）に変換するように実装される。ラスタイメージは、印刷エンジン３５８への出力のため、メモリアレイ（図示せず）にスキャンラインデータとして格納される。他の実施形態では、印刷エンジン３５８はカスタマー組織１２１に関連する施設に配置されてもよい。かかる実施形態では、制御部３５０は、印刷ジョブ情報を処理して、リモート印刷エンジンにラスタイメージを送信して、出力を生成する。
【００２３】
図２に戻り、ワークフロー管理機構１１０は印刷処理のため文書の大きなワークフローを管理するように実施されてもよい。ホスト組織１０１は印刷要求を受信し、印刷要求の一部は大量の（例えば、数千部の）印刷ジョブを含んでいてもよい。かかる大量の印刷ジョブのため、ワークフロー管理機構１１０は、クライアントのＳＬＡを満たすため、要求を効率的に処理しなければならない。上記の通り、印刷要求のボリュームが計算装置のリソースを超過する場合には、ＳＬＡを満たすことは問題となり得る。
【００２４】
一実施形態によれば、ワークフロー管理機構１１０は、リソース制約無しに、印刷データのワークフローを処理するマイクロサービスアーキテクチャを実装する。かかる一実施形態では、ワークフロー管理機構１１０は、ワークフローを処理するために実施する処理ステップの数にしたがって、ワークフローを複数のコンポーネントに分割し、ファイルサイズとチューニングパラメータに基づいて、各ステップに対しマイクロサービス（ｍｉｃｒｏｓｅｒｖｉｃｅ）を生成する。別の一実施形態では、ワークロード処理ステップを並列に実行してもよい。このように、マイクロサービス実装により、ワークフロー管理機構１１０は、必要リソース量のみを使いつつ、決定されたステップ数に基づいて各印刷ファイルを処理することができる。
【００２５】
ワークフロー管理機構１１０は、大きいワークフローファイルを受信することがしばしばあり、これの処理には時間がかかる。よって、別の一実施形態では、ワークフロー管理機構１１０は、受信した印刷ジョブを分析して、必要に応じてそのファイルを二以上のコンポーネント（または部分）に分割する。この実施形態では、ワークフロー管理機構１１０は、受信された印刷ジョブファイルが大きすぎて又は複雑過ぎて１つのステップではそのファイルを許容可能レートで処理できないか判定し、その印刷ファイルを処理するワークロードを、効率的に処理可能な決定された数（ｄｅｔｅｒｍｉｎｅｄ  ｎｕｍｂｅｒ）の部分に自動的に分割する。
【００２６】
一実施形態では、ファイルのサイズ、ファイルデータストリームの主要構造（ｋｅｙ  ｓｔｒｕｃｔｕｒｅ）、及びステップ調整パラメータ（ｓｔｅｐ  ｔｕｎｉｎｇ  ｐａｒａｍｅｔｅｒｓ）を用いて、そのステップを処理する許容可能レートを決定する。結果として、実際のファイル（例えば、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ（ＰＤＦ）、Ａｄｖａｎｃｅｄ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｉｎｇ（ＡＦＰ）、Ｐｏｓｔｓｃｒｉｐｔ（ＰＳ）、又は対応するメタデータ）が複数の部分に分割されてもよい。一実施形態では、分割された複数の部分は並列に処理される。
【００２７】
それらの部分は、処理が完了すると、再合成（又は結合）され、後続のステップに送られて処理される。幾つかの実施形態では、後続のステップも分割される必要があると判定された場合、ファイルは複数の部分に分割されたままでもよい。例えば、後続のステップの分析により、前のステップでＳＬＡを満たす処理が十分になされていないと判定してもよい。この実施形態では、現在のステップを処理している間に、結合する決定が行われる。この先読みアクションにより、データが最も効率的なレートでワークフローを流れることができる。
【００２８】
図４は、クラウド計算環境においてマイクロサービスとして実装されたワークフロー管理機構１１０の一実施形態を示す。図４に示すように、印刷ファイルは受信され、第１処理ステップ（ステップ１）で５つの部分に分割される。その後、ステップが結合されてから、第２処理ステップ（ステップ２）に進み処理される。
【００２９】
一実施形態では、計算装置１２０は、ウェブサーバを介して、またはユーザインターフェース２０６などの独立のインターフェースとして機能して、クライアント装置１３０Ａ−１３０Ｎから要求パケットその他の要求を受信する要求ロジック２０１を実装してもよい。要求インターフェースは、応答パケットその他の回答の返送と、計算装置１２０から一以上のクライアント装置１３０Ａ−１３０Ｎへの外向きの応答とをサポートしてもよい。
【００３０】
さらに別の一実施形態では、要求ロジック２０１は、要求と共に計算装置１２０に送信された一以上の印刷ジョブファイルに印刷サービスを実行する要求を、カスタマー組織から受信する。ファイル分析ロジック２０２は、受信された印刷ジョブファイルを分析して、そのファイルを処理するために実施される処理ステップの数を決定する。かかる一実施形態では、分析ロジック２０２は、そのファイルに実行する処理（例えば、変換、ハーフトーンなど）を調べることにより、そのファイルを分析し、そのファイルを処理するのに必要なリソースを計算する。このように、ファイル分析ロジック２０２は、ファイル処理のための効率的なリソース利用の決定に基づいて、ワークフロー過程を二以上の処理ステップに分割してもよい。
【００３１】
マイクロサービスエンジン２０３は、分析ロジック２０２により決定された複数のステップの各々を処理するマイクロサービスを生成する。一実施形態では、マイクロサービスは、ファイルサイズと、各ステップの調整パラメータとに基づいて生成される。上記の通り、生成された複数のマイクロサービスのうち二以上を並列に処理してもよい。ステップアダプターエンジン２０４は、マイクロサービスエンジン２０３により生成されたマイクロサービス（ｍｉｃｒｏｓｅｒｖｉｃｅ）において、各ステップの処理を管理する。
【００３２】
一実施形態によれば、ステップアダプターエンジン２０４は、分析ロジック２０２により割り当てられた各ステップを分析し、ステップを二以上の部分に分割するか判定する。分析中、ステップアダプターエンジン２０４は、各ステップが様々なデータセットにアクセスするのに要する時間の長さと、満たさなければならないＳＬＡをデータのどれかが有しているかいなかと、ＳＬＡまたは〆切りを満たすためデータにアクセスする必要があるその他のステップとを決定することができる。一実施形態では、ステップアダプターエンジン２０４は、ステップをどう分割するか決定する一以上の教師付き機械学習モデルを実装してもよい。かかる一実施形態では、ステップアダプターエンジン２０４は、現在のファイルとの類似性を有する以前に処理された一以上のファイルの特徴データにアクセスして、成功した以前のファイルの処理に基づき、ステップを複数の部分に分割してもよい。
【００３３】
例えば、完了期限が４時間である１００，０００ページの印刷ジョブが受信され、ワークフローに入ることがある。この例では、ファイル分析ロジック２０２は、そのファイルを５つの処理ステップに分割することを決定してもよい。したがって、ステップアダプターエンジン２０４は、第１ステップは変換ステップであると認識し、以前に処理されたジョブのデータから、１００，０００ページに対して実行される変換ステップの処理には４時間かかり、その他の４つのステップには処理時間が合計で１時間かかることを認識する。この分析に基づき、ステップアダプターエンジン２０４は、変換ステップを２つの部分に分割し、ステップが２時間以内に処理できるようにする。結果として、全部で５つのステップを約３時間で処理することにより、〆切りに間に合う。
【００３４】
アグリゲータ（ａｇｇｒｅｇａｔｏｒ）２０５は、処理が完了すると、分割された複数の部分を結合する。上記の通り、複数の部分は、後続のステップに送られて処理される前に再結合（ｒｅ−ｃｏｍｂｉｎｅｄ）されてもよく、又は次のステップも分割する必要があると判定された場合には、複数の部分に分割されたままにされてもよい。
【００３５】
通信・機能ロジック２０７は、動的に通信する機能を提供し、変化するテクノロジー、パラメータ、プロトコル、標準などとの互換性を確保しつつ、幾つのどのタイプのソフトウェア／アプリケーション開発ツール、モデル、データ処理サービス、データベースプラットフォームおよびアーキテクチャ、プログラミング言語及びそれらの対応するプラットフォームなどで構成されてもよい。
【００３６】
図５は、ワークフロー管理を実行する過程５００の一実施形態を示すフロー図である。過程５００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（処理デバイス上で実行される命令など）、またはこれらの組み合わせを含み得る処理ロジックにより実行され得る。一実施形態では、過程５００はワークフロー管理機構１１０により実行されてもよい。過程５００は、表示の短縮および明確化のため線形順序で示されている。しかし、これらのうち幾つを並列に、非同期で、または異なる順序で実行できることが想定される。短縮、明確化、及び理解の容易のため、図１ないし図４を参照して説明した詳細事項の多くは、ここでは繰り返さない。
【００３７】
過程５００は処理ブロック５１０で始まり、印刷ファイルが受信されワークロードに入る。処理ブロック５２０において、ファイルを処理するステップ数を決定する。処理ブロック５３０において、ステップを分析する。一実施形態では、分析は、そのジョブを処理する時間と、及び複数の処理ステップの各々を実行するのに要する時間との決定を含む。上記の通り、分析は、以前に処理されたジョブの特徴データを用いて、現在のファイルを処理する最も効率的なやり方を決定することができる。
【００３８】
決定ブロック５４０において、複数のステップのうち一以上を分割するか判断する。分割する場合、処理ブロック５５０において、その一以上のステップは決定された数の部分に分割される。どちらの場合であっても、処理ブロック５６０においてステップ処理が実行される。処理ブロック５７０において、前述の通り、複数のステップが結合される。図６は、ワークフロー管理を実行する方法の他の一実施形態を示すフロー図である。図６に示したように、ファイルは、ステップ２で分割されたままにすると決定されると、ステップ１からステップ２に送られる時、分割されたままにされる。しかし、ファイルは、ステップ２の処理後、結合されてから、ステップ３に送られる。
【００３９】
図７Ａ及び７Ｂは、ステップに対して分割（ｓｐｌｉｔ）を実行する過程７００の一実施形態を示すフロー図である。過程７００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（処理デバイス上で実行される命令など）、またはこれらの組み合わせを含み得る処理ロジックにより実行され得る。一実施形態では、過程７００はステップアダプターエンジン２０４により実行されてもよい。過程７００は、表示の短縮および明確化のため線形順序で示されている。しかし、これらのうち幾つを並列に、非同期で、または異なる順序で実行できることが想定される。短縮、明確化、及び理解の容易のため、図１−６を参照して説明した詳細事項の多くは、ここでは繰り返さない。
【００４０】
過程７００は、図７Ａの処理ブロック７０２で始まり、受信された印刷ファイルの処理及び／又は印刷に〆切りがあるか判断される。〆切りがあれば、判断ブロック７０４において、ファイル中のすべてのステップを処理する平均時間が、〆切りに基づいて、利用できる時間より長いか判断される。処理時間の方が長ければ、判断ステップ７０６において、現在のステップがコスト高（例えば、現在のステップの処理時間がすべてのステップを処理する平均時間より長い）であるか判断する。現在のステップがコスト高でなければ、判断ブロック７０８において、ステップを分割することにより〆切りに間に合うか判断する。
【００４１】
ステップの分割により〆切りに間に合うと判断された場合、処理ブロック７１０（図７Ｂ）において、ステップを分割する部分（ｓｅｇｍｅｎｔ）の数を決定する。一実施形態では、処理時間を短縮する点で違いがある数の部分に、ステップを分割する。他の一実施形態では、ステップを処理する時間がどれだけ平均処理時間より長いかに基づき、分割の数を決定してもよい。よって、このステップは、それが処理時間よりどれだけ長いに応じた数の部分に分割され得る。処理ブロック７１２において、決定された数の分割が実行される。
【００４２】
判断ブロック７０２において、受信した印刷ファイルに〆切りがないと判断されると、判断ブロック７１４（図７Ｂ）において、効率的に処理するにはそのステップのデータ量が大き過ぎるか否か判断する。データが大きすぎる場合、処理ブロック７１０に制御が返され、分割数（ｎｕｍｂｅｒ  ｏｆ  ｓｐｌｉｔｓ）が決定され、分割が実行される（処理ブロック７１２）。判断ブロック７１４において、データは大きすぎないと判断されたとき、そのステップは分割する必要がないので、過程は完了する。
【００４３】
判断ブロック７０４において、すべてのステップを処理する平均時間が利用可能時間より短いと判断された場合、判断ブロック７１４に制御が返され、そのステップのデータ量が大きすぎて効率的に処理できないか判断する。判断ブロック７０６において、ステップがコスト高（ｃｏｓｔｌｙ）であると判断されると、処理ブロック７１０に制御が返される。判断ブロック７０８において、ステップを分割しても〆切りに間に合わないと判断されると、そのステップを分割する必要はないので、過程は完了する。
【００４４】
上記の機構により、印刷ワークフローは、業務用印刷システムに関連する大量の印刷ジョブを、遅延時間無く処理することができる。
【００４５】
図８は、計算装置１２０及び／または１２１が実施されるコンピュータシステム９００を示す。コンピュータシステム９００は、情報を伝送するシステムバス９２０と、情報を処理する、バス９２０に結合したプロセッサ９１０とを含む。
【００４６】
コンピュータシステム９００はさらに、情報と、プロセッサ９１０により実行される命令とを格納する、バス９２０に結合したランダムアクセスメモリ（ＲＡＭ）またはその他のダイナミック記憶デバイス９２５（ここではメインメモリと呼ぶ）を有する。メインメモリ９２５は、プロセッサ９１０による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用される。コンピュータシステム９００は、バス９２０に結合され、プロセッサ９１０により用いられる静的情報と命令とを記憶する読み出し専用メモリ（ＲＯＭ）その他の静的記憶デバイス９２６を含む。
【００４７】
磁気ディスクや光ディスク及びそれに対応するドライブなどのデータ記憶デバイス９２７は、コンピュータシステム９００にも結合し、情報と命令を記憶する。また、コンピュータシステム９００は、Ｉ／Ｏインターフェース９３０を介して第２のＩ／Ｏバス９５０に結合していてもよい。複数のＩ／ＯデバイスがＩ／Ｏバス９５０に結合していてもよく、これにはディスプレイデバイス９２４、入力デバイス（例えば、キーボード（英数字入力デバイス）９２３及び／またはカーソル制御デバイス９２２）を含む。通信デバイス９２１は他のコンピュータシステム（サーバまたはクライアント）にアクセスするものである。通信デバイス９２１は、モデム、ネットワークインタフェース、またはその他の周知のインタフェースデバイス（イーサネット(登録商標)、トークンリング、その他のタイプのネットワークに結合するのに使われるもの）を有する。
【００４８】
実施形態は、親ボードを使用して相互接続された１つ以上のマイクロチップまたは集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）として、またはこれらの組み合わせとして実施できる。用語「ロジック」は、例として、ソフトウェアもしくはハードウェアおよび／またはソフトウェアとハードウェアとの組み合わせを含み得る。
【００４９】
実施形態は、例えば、コンピュータ、コンピュータネットワーク、または他の電子装置などの１つまたは複数の機械によって実行されると、１つまたは複数の機械が、本明細書に記載の実施形態に従って動作を実行する機械実行可能命令を記憶した１つまたは複数の機械可読媒体を含むことができるコンピュータプログラム製品として提供することができる。機械読み取り可能媒体は、フロッピー（登録商標）ディスケット、光ディスク、ＣＤ−ＲＯＭ（コンパクトディスクリードオンリーメモリ）、及び光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ（消去可能プログラマブルリードオンリーメモリ）、ＥＥＰＲＯＭ、磁気または光学カード、フラッシュメモリ、またはその他のタイプの、機械実行可能命令を記憶するのに適した媒体／機械読み取り可能媒体を含むが、これに限定されない。
【００５０】
さらに、実施形態は、コンピュータプログラム製品としてダウンロード可能であってもよく、プログラムは、通信リンク（例えば、モデム及び／又はネットワーク接続）を介して、搬送波またはその他の伝搬媒体で実施及び／又は変調された一以上のデータ信号により、リモートコンピュータ（例えば、サーバ）から要求コンピュータ（例えば、クライアント）に転送できる。
【００５１】
図面と上記の説明は実施形態の例を与えるものである。当業者には言うまでもないが、説明した一以上の要素を結合して単一の機能要素にしてもよい。あるいは、ある要素を複数の機能要素に分離してもよい。一実施形態の要素を他の一実施形態に付加してもよい。例えば、ここに説明した過程の順序は、変更してもよく、ここに説明したように限定されるものではない。さらに、どのフロー図のステップ（ａｃｔｉｏｎ）も図示した順序で実施する必要はない。また、すべてのステップ（ａｃｔｓ）を実行する必要も必ずしもない。また、他のステップに依存しないステップは、他のステップと並行して実行してもよい。実施形態の範囲はこれらの具体的な例により決して限定されない。多数のバリエーションが、本明細書で明示的に説明されていようといまいと、例えば構造、寸法、使用材料が異なるなどの相違が可能である。実施形態の範囲は少なくとも後述の特許請求の範囲と同じように広い。
【図１】
2019149164.tif 000003
【図２】
2019149164.tif 000004
【図３】
2019149164.tif 000005
【図４】
2019149164.tif 000006
【図５】
2019149164.tif 000007
【図６】
2019149164.tif 000008
【図７Ａ】
2019149164.tif 000009
【図７Ｂ】
2019149164.tif 000010
【図８】
2019149164.tif 000011