クラウド印刷サービス環境に実装される文書操作機構を説明する。以下の詳細な説明では、説明を目的として、本発明を完全に理解してもらうために、具体的な詳細事項を開示した実施形態を記載する。しかし、言うまでもなく、本発明はこれらの幾つかの詳細がなくても実施することができる。他の場合において、ブロック図形式で周知の構造や装置を示すが、これは本発明の根本原理が不明瞭になることを避けるためである。
本明細書において「一実施形態」とは、その実施形態に関して説明する具体的な機能、構造、特徴などが本発明の少なくとも1つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、必ずしも同じ実施形態を指すものではない。
本明細書を通して、「ロジック」、「コンポーネント」、「モジュール」、「エンジン」、「モデル」などの用語は互換的に参照されることがあり、例として、ソフトウェア、ハードウェア、および/またはファームウェアなどのソフトウェアとハードウェアの任意の組み合わせを含む。さらに、特定のブランド、単語、用語、句、名前、および/または頭字語の使用は、実施形態を、製品に、またはこの文書の外部の文献にそのラベルを有するソフトウェアまたは装置に限定すると解釈してはならない。
任意の数およびタイプの構成要素を追加および/または削除して、特定の特徴を追加、削除、および/または強化することを含む様々な実施形態を促進することができると思われる。簡潔さ、明瞭さ、および理解を容易にするために、計算装置の構成要素など、標準的な構成要素および/または既知の構成要素の多くは、本明細書では図示または説明しない。本明細書で説明するように、実施形態は、いかなる特定の技術、トポロジ、システム、アーキテクチャ、および/または標準にも限定されず、将来の変更を採用および適応するのに十分に動的であると考えられる。
図1は、一実施形態による文書操作機構110を利用する計算装置120を有するシステム100を示す。一実施形態では、計算装置120は、印刷サービスにおいてPDF文書を印刷するための処理を容易にするために文書操作機構110を利用するホストマシンとして機能するホストサーバコンピュータを含む。計算装置120は、サーバコンピュータ(例えば、クラウドサーバコンピュータなど)、デスクトップコンピュータ、クラスタベースコンピュータ、セットトップボックス(例えば、インターネットベースのケーブルテレビジョンセットトップボックスなど)等を含み得る(限定ではない)。計算装置120は、その一以上のハードウェア/物理的リソースと、一以上のクライアント装置130A−130Nとの間のインターフェースとして機能するオペレーティングシステム(「OS」)を含む。計算装置120はさらに、プロセッサ102と、メモリ104と、タッチスクリーン、タッチパネル、タッチパッド、仮想的または普通のキーボード、仮想的または普通のマウスなどの入出力(「I/O」)ソース108とを含む。
一実施形態では、ホスト組織101はさらに、それを通してクライアント装置130A−130Nと通信可能にインターフェースするプロダクション環境を利用してもよい。クライアント装置130A−130Nは、カスタマー組織ベースのサーバコンピュータと、デスクトップコンピュータと、ラップトップコンピュータと、スマートフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、電子ブックリーダーなどのメディアモバイル計算装置と、メディアインターネット装置と、スマートテレビジョンと、テレビジョンプラットフォームと、ウェアラブル装置(例えば、メガネ、腕時計、ブレスレット、スマートカード、宝飾品、衣類など)と、メディアプレーヤと、GPS(global positioning system)ベースのナビゲーションシステムと、ケーブルセットアップボックスとなどを含む(限定ではない)。
一実施形態では、図示したデータベース140は、カスタマー組織121A−121Nの代わりに文書及び/又はプリントジョブを処理するカスタマー及びユーザデータを有するデータベースレコードと情報を格納する(限定ではない)。幾つかの実施形態では、ホスト組織101は、一以上のネットワーク135を介して複数のカスタマー組織121A−121Nから入力及びその他の要求を受信する。例えば、入来するプリントジョブ及び/又は文書処理要求、またはその他の入力を、カスタマー組織121A−121Nから受信して、データベースシステム140を用いて処理してもよい。
一実施形態では、各カスタマー組織121A−121Nは、別個のリモート組織、ホスト組織101内の組織グループ、ホスト組織101のビジネスパートナー、ホスト組織101により提供されるクラウド計算サービスをサブスクライブするカスタマー組織121A−121Nよりなる群から選択されるエンティティである。
一実施形態では、要求は、ホスト組織101内のウェブサーバが受信し、又はそのウェブサーバに送信される。ホスト組織101は、処理のため様々な要求を受信することができる。例えば、ウェブサーバが受信する入来要求は、ホスト組織101からのプリントサービスを特定することができる。さらに、ホスト組織101は、ウェブサーバを介して、または独立したインターフェースとして要求インターフェースを実装して、クライアント装置130A−130Nから要求パケットまたはその他の要求を受信する。要求インターフェースは、応答パケットその他の回答の返送と、ホスト組織101から一以上のクライアント装置130A−130Nへの外向きの応答とをサポートしてもよい。
図2は、一実施形態による、図1の文書操作機構110を示す。一実施形態では、文書操作機構110は、幾つのどんな種類の構成要素を含んでもよく、例えば、要求ロジック201、構造分析エンジン202、補正エンジン203、最適化部204、報告エンジン205、ユーザインターフェース206、及び通信/互換性ロジック207を含んでもよい。
一実施形態では、計算装置120はサーバコンピュータを含んでもよく、このサーバコンピュータはデータベース140などの一以上のデータベースまたはストレージリポジトリと通信することができてもよく、このデータベースはローカルに配置されていても、ネットワーク135などの一以上のネットワーク(例えば、クラウドネットワーク、インターネット、近接ネットワーク、イントラネット、IoT(Internet of Things)、CoT(Cloud of Things)など)を介してリモートに配置されていてもよい。図示した計算装置120はさらに、クライアント計算装置130A−130Nなどの幾つのどんな種類の他の計算装置と、ネットワーク135などの一以上のネットワークを介して通信してもよい。
一実施形態では、計算装置120は、文書操作機構をSaaS(software as a service)としてホスティングし維持するサービスプロバイダコアとして機能してもよく、一以上のネットワーク135と幾つのどんな種類の専用ノードとを介して、一以上のクライアントコンピュータ130A−130Nと通信していてもよい。図1を参照して上述の通り、幾つのどんな種類の要求を、要求ロジックが受信しても、要求ロジックに送信してもよい。例えば、入来する要求は、一以上のクライアント装置130A−130N、コード拡張要求などの代わりに、文書操作要求など、計算装置120からのどのサービスを提供すべきか指定する。
一実施形態によれば、ホスト組織101は一以上の印刷システムを介してクライアント装置130のためにプリントサービスを実行することができる。図3は、かかる印刷システム300の一実施形態を示す。プリンタ300は制御部350とプリントエンジン358とを含む。一実施形態によれば、制御部350は、プリントジョブデータで受信したオブジェクトを処理およびレンダリングし、印刷用シートマップをプリントエンジン358に提供する。制御部(例えば、DFEまたはデジタルフロントエンド)350は、制御部350が受信した画像オブジェクトをラスタイメージプロセッサ(RIP)により処理し、ベクトルグラフィックフォーマット(例えば、形状)で記述された画像を、ラスタイメージ(例えば、ピクセル)に変換するように実装される。ラスタイメージは、プリントエンジン358への出力のため、メモリアレイ(図示せず)にスキャンラインデータとして格納される。他の実施形態では、プリントエンジン358はカスタマー組織121に関連する設備に配置されてもよい。かかる実施形態では、制御部350は、プリントジョブ情報を処理して、リモートプリントエンジンにラスタイメージを送信して、出力を生成する。
図2に戻って、文書操作機構110は、一以上のカスタマー組織121から受信したPDFファイルに最適化を実行するように実装されてもよい。かかる一実施形態では、文書操作機構110は、一以上のPDFツール及び/又はスキャン(例えば、Adobe(登録商標) Acrobat(登録商標)、Enfocus(登録商標) PitStop(登録商標)など)を実行し、一以上のフォーマット問題を特定し、PDFファイルを最適化(例えば、補正、組み込まれたフォントの削除、カラー画像のダウンサンプリングなど)する。さらに別の一実施形態では、複数の最適化が並列で実行される。
一実施形態では、計算装置120は、ウェブサーバを介して、またはユーザインターフェース206などの独立のインターフェースとして機能して、クライアント装置130A−130Nから要求パケットその他の要求を受信する要求ロジック201を実装してもよい。要求インターフェースは、応答パケットその他の回答の返送と、計算装置120から一以上のクライアント装置130A−130Nへの外向きの応答とをサポートしてもよい。
[0023]
さらに別の一実施形態では、要求ロジック201は、カスタマー組織から要求を受信し、計算装置120に送信されたPDFファイルに一以上の最適化を実行する。この実施形態では、要求は、特定され最適化されるPDFファイルの一以上の問題を含む最適化仕様を含み得る。また、最適化仕様は、そのPDFファイルが印刷されるプリンタ(例えば、印刷システム300)のタイプ、カラースケーリング、フォント制限などの様々な最適化基準を含んでいてもよい。
一実施形態では、構造分析エンジン202は、受信したPDFファイルの構造を分析し、何か問題(例えば、構造的またはシンタックス的なもの)があるか特定する。かかる実施形態では、PDF構造は、そのPDF中の様々な構造的アイテム(例えば、画像、フォント、フォントタイプ、アート&クロップボックスのサイズ、及び様々な要素の内容及び位置)、カラー要件、注釈、構造ツリー、フォーム、コンテンツストリームなどを含み得る。このように、構造分析エンジン202により実行される構造分析により、そのPDFの最適化のために実施されるべき一以上の最適化ツールの選択が可能になる。
一実施形態では、補正エンジン203は、構造分析に基づいて実施すべき一以上の最適化を選択する。この実施形態では、補正エンジン203は、受信されたPDFの構造的特徴を、以前に処理され(例えば、データベース140に)記憶されたPDFの構造的特徴と比較することにより、最適化を決定する。以前に処理されたPDFと同様の構造的特徴を含むと判断されたとき、以前に処理されたPDFに対して実行された最適化が特定され、現在のPDFの最適化に対して利用される。
別の一実施形態では、補正エンジン203は、要求として受信した最適化基準を用いて、実施すべき最適化を決定する。例えば、受信した要求がページのカラーカバレージ(color coverage)に関する50%削減の要求を含む場合、構造分析に基づいて選択された最適化ツールの一部のみ(例えば、4つのツールのうち2つ)が、最適化を実行するだけでよい可能性もある。
さらに別の一実施形態では、補正エンジン203は、PDFが一以上の一意的な構造的特徴(例えば、文書操作機構110が以前に遭遇した特徴)を含むと判定した場合、そのPDFを最適化する最適化ツール一式(full suite of optimization tools)を選択してもよい。一旦最適化されると、その特徴と、それらの構造的特徴を有効に処理していた、対応する最適化とが記憶され、その後に同じ特徴を有するPDFを受信したときに最適化に利用される。このように、文書操作機構110により、PDF最適化がより効率的になり、より多くのPDFファイルを処理できる。
最適化部204はそのPDFに対して選択された最適化を実行する。一実施形態では、選択された各最適化は、独立したマイクロサービス(microservices)を用いて同時に並列に実行され、これにより処理が削減される。図4は、マイクロサービスにより実行される最適化の実施形態を示す。別の一実施形態では、最適化の結果が分析され、オーバーラップ問題が検出されると、結合され、最適なPDFを生成するためにさらに最適化され得る。
一実施形態では、報告エンジン205は、カスタマーオーナーに対して、文書操作機構110により提供される推奨の最適化と共に、実行された各最適化の最適化リストと、各最適化の結果とを提供する。図4に示すように、最適化の結果は、カスタマーオーナーに直接配信されてもよく、仮想プリンタ設備を介して配信されてもよい。仮想プリンタ設備は、各最適化にしたがって文書の印刷をシミュレーションする。仮想プリンタ設備は、ジョブがどう生成されるかに関する実際の生成情報を提供するため、受信した最適化リストから実際のデータを生成する。他の実施形態では、カスタマーオーナーは、好ましい最適化の選択を伝達してもよい。これは記憶され、そのクライアントに対して受信されるその後の最適化要求に対して用いられる。
通信・機能ロジック207は、動的に通信する機能を提供し、変化するテクノロジー、パラメータ、プロトコル、標準などとの互換性を確保しつつ、幾つのどのタイプのソフトウェア/アプリケーション開発ツール、モデル、データ処理サービス、データベースプラットフォームおよびアーキテクチャ、プログラミング言語及びそれらの対応するプラットフォームなどで構成されてもよい。
図5は、PDF文書を操作するプロセス500の一実施形態を示すフロー図である。プロセス500は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(処理装置上で実行される命令など)、またはこれらの組み合わせを含み得る処理ロジックにより実行され得る。一実施形態では、プロセス500は文書操作機構110により実行されてもよい。プロセス500は、表示の短縮および明確化のため線形順序で示されている。しかし、これらのうち幾つを並列に、非同期で、または異なる順序で実行できることが想定される。短縮、明確化、及び理解の容易のため、図1ないし図4を参照して説明した詳細事項の多くは、ここでは繰り返さない。
プロセス500は処理ブロック510で始まり、ここではカスタマーオーナーから、PDFファイルと何らかの最適化仕様とを含む最適化要求が受信される。処理ブロック520において、PDFの構造を分析する。処理ブロック530において、構造分析及び/又は要求に含まれる最適化基準に基づいて、最適化のリストが選択される。処理ブロック540において、最適化を実行する。上記の通り、最適化は個別のマイクロサービス(microservices)により並列に実行される。処理ブロック550において、最適化の結果は、何らかの具体的な推奨とともに、カスタマーオーナーに報告される。
図6は、計算装置120及び/または121が実施されるコンピュータシステム900を示す。コンピュータシステム900は、情報を伝送するシステムバス920と、情報を処理する、バス920に結合したプロセッサ910とを含む。
コンピュータシステム900は、さらに、情報と、プロセッサ910により実行される命令とを格納する、バス920に結合したランダムアクセスメモリ(RAM)またはその他のダイナミック記憶装置925(ここではメインメモリと呼ぶ)を有する。メインメモリ925は、プロセッサ910による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用される。コンピュータシステム900は、バス920に結合され、プロセッサ910により用いられる静的情報と命令とを記憶する読み出し専用メモリ(ROM)その他の静的記憶装置926を含む。
磁気ディスクや光ディスク及びそれに対応するドライブなどのデータ記憶装置927は、コンピュータシステム900にも結合し、情報と命令を記憶する。また、コンピュータシステム900は、I/Oインターフェース930を介して第2のI/Oバス950に結合していてもよい。複数のI/O装置がI/Oバス950に結合していてもよく、これにはディスプレイ装置924、入力装置(例えば、キーボード(英数字入力装置)923及び/またはカーソル制御装置922)を含む。通信装置921は他のコンピュータシステム(サーバまたはクライアント)にアクセスするものである。通信装置921は、モデム、ネットワークインターフェース、またはその他の周知のインターフェース装置(イーサネット(登録商標)、トークンリング、その他のタイプのネットワークに結合するのに使われるもの)を有する。
実施形態は、親ボードを使用して相互接続された1つ以上のマイクロチップまたは集積回路、ハードワイヤードロジック、メモリ装置によって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)として、またはこれらの組み合わせとして実施できる。用語「ロジック」は、例として、ソフトウェアもしくはハードウェアおよび/またはソフトウェアとハードウェアとの組み合わせを含み得る。
実施形態は、例えば、コンピュータ、コンピュータネットワーク、または他の電子装置などの1つまたは複数の機械によって実行されると、1つまたは複数の機械が、本明細書に記載の実施形態に従って動作を実行する機械実行可能命令を記憶した1つまたは複数の機械可読媒体を含むことができるコンピュータプログラム製品として提供することができる。機械読み取り可能媒体は、フロッピー(登録商標)ディスケット、光ディスク、CD−ROM(コンパクトディスクリードオンリーメモリ)、及び光磁気ディスク、ROM、RAM、EPROM(消去可能プログラマブルリードオンリーメモリ)、EEPROM、磁気または光学カード、フラッシュメモリ、またはその他のタイプの、機械実行可能命令を記憶するのに適した媒体/機械読み取り可能媒体を含むが、これに限定されない。
さらに、実施形態は、コンピュータプログラム製品としてダウンロード可能であってもよく、プログラムは、通信リンク(例えば、モデム及び/又はネットワーク接続)を介して、搬送波またはその他の伝搬媒体で実施及び/又は変調された一以上のデータ信号により、リモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に転送できる。
図面と上記の説明は実施形態の例を与えるものである。当業者には言うまでもないが、説明した一以上の要素を結合して単一の機能要素にしてもよい。あるいは、ある要素を複数の機能要素に分離してもよい。一実施形態の要素を他の一実施形態に付加してもよい。例えば、ここに説明したプロセスの順序は、変更してもよく、ここに説明したように限定されるものではない。さらに、どのフロー図のステップ(action)も図示した順序で実施する必要はない。また、すべてのステップ(acts)を実行する必要も必ずしもない。また、他のステップに依存しないステップは、他のステップと並行して実行してもよい。実施形態の範囲はこれらの具体的な例により決して限定されない。多数のバリエーションが、本明細書で明示的に説明されていようといまいと、例えば構造、寸法、使用材料が異なるなどの相違が可能である。実施形態の範囲は少なくとも後述の特許請求の範囲と同じように広い。