JP2009070386A - タスクを実行する方法、タスクの実行を制御する装置、記録媒体及びプログラム。 - Google Patents

タスクを実行する方法、タスクの実行を制御する装置、記録媒体及びプログラム。 Download PDF

Info

Publication number
JP2009070386A
JP2009070386A JP2008235413A JP2008235413A JP2009070386A JP 2009070386 A JP2009070386 A JP 2009070386A JP 2008235413 A JP2008235413 A JP 2008235413A JP 2008235413 A JP2008235413 A JP 2008235413A JP 2009070386 A JP2009070386 A JP 2009070386A
Authority
JP
Japan
Prior art keywords
workflow
client
provider
enable
manager
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.)
Pending
Application number
JP2008235413A
Other languages
English (en)
Inventor
Bradley J Rhodes
ジェイ ローズ ブラドリー
Sergey Chemishkian
ケミシキアン セルゲイ
Schwarz Edward
シュワルツ エドワード
Daja Phillips
フィリップス ダージャ
Max E Mcfarland
イー マクファーランド マックス
Andrea Mariotti
マリオット アンドレア
Yu Haixia
ユィ ハイシア
Michael G E Griffin
ジーイー グリフィン マイケル
R Sabikki Stephen
アール サビツキー ステフェン
Wolf Gregory
ウォルフ グレゴリー
Patty Case
ケース パティ
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
Publication of JP2009070386A publication Critical patent/JP2009070386A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Abstract

【課題】クライアントを登録し、データをポーリングし、他クライアントを参入させる新規な方法を提供すること。
【解決手段】ワークフローイネーブルクライアント(WEC)は、クライアント及びワークフローマネジャ(WM)インタフェース(IF)ユニットを有する。WM-IFユニットは、クライアントをWMに結合し、自動的な発見、分散処理、ダイナミックユーザIF生成等の本発明による機能を提供する。WECの通信マネジャは、名前、データ及び他のコマンドを用意することで、WMに対するクライアントの登録/登録抹消を行う登録ユニットを有する。ポーリングモジュールは、WMから受信したロケーションを使ってデータを取得する。プロセス制御モジュール(PCM)は、複数の処理機能(例えば、ポーリングしたデータを処理し、格納する又はそれを他のクライアントに提供すること)を実行する。PCMは他のクライアントを参入させることもできる。
【選択図】図1A

Description

本発明は分散型コンピュータシステムに関連する。より具体的には、本発明はプロバイダ装置及びクライアント装置間で処理を分散するシステム及び方法に関連する。更に具体的には、自動ディスカバリ機能を提供し、プロバイダ及びクライアント間で予め決められたインタフェースを提供し、ユーザによりカスタマイズ可能であり、且つプロバイダ及びクライアント間で処理を割り当てるようにした分散ワークフローイネーブルシステムに本発明は特に関連する。
多くのオフィス環境に様々な周辺装置が普及しており、周辺装置の各々は特定の機能を発揮する。例えば、プリンタ、スキャナ、ファクシミリ、コピー機、複合機(MFP)又はこれらの装置のバリエーションのような事務機器の1つ以上を、多くのオフィスは備えている。ネットワークで共に結合されたこれらのいくつもの装置をオフィス環境が備えていることは良く知られている。通信ネットワークは多種多様な形式をとってよく、例えば、ローカルエリアネットワーク、広域ネットワーク、3Gネットワーク又は無線ネットワーク等であるが、これらに限定されない。しかしながら、これらの装置の既存の構成に伴う問題は、ネットワークで各装置を使用する際、ユーザは装置の存在を知る必要があること、各装置と通信するには別のソフトウエア又は多の装置を負担しなければならないこと、そして装置とやりとりする方法が柔軟でないこと等である。従ってユーザは典型的にはネットワーク上の少数の装置としかやりとりを行わず、ネットワークに用意されている多くのリソースを利用していない。
これらの周辺装置に関連して使用されるコンピュータ装置の状況は、デスクトップコンピュータのような同種の少数のコンピュータ装置群から、非常に様々な機能及び演算能力を備えた大規模な異種のコンピュータ装置群へと変わってきた。例えば、限定ではないが、パーソナルコンピュータ、パーソナルディジタルアシスタント、スマートフォン、ラップトップコンピュータ及びディジタルカメラ等のようなコンピュータ装置(周辺装置と共に使用するように結合されるもの)は、幾つ存在してもよい。これらの多くの装置は、有線又は無線でネットワークを介して通信する機能を有するが、周辺装置とやりとりする機能(インタフェース)はかなり制限されている。なぜなら、各周辺装置は、様々なデータ通信プロトコルに従う必要があり、自身のアプリケーションインタフェースを有する必要があり、データをその周辺装置に特有のフォーマットにしなければならないからである(しばしば他の周辺装置のフォーマットと異なる)。
周辺装置を伴うコンピュータ装置を利用する現在の環境に付随する或る特別な問題は、新たな周辺装置が使用環境の中に加えられる毎に、その新たな周辺装置と通信を希望する既存の装置各々が、一般的には、修正を要する或いはそれを加える新たなソフトウエアを要することである。例えば、新たなプリンタがネットワークに追加される場合、その新たなプリンタを使いたいコンピュータ装置各々は、ソフトウエアドライバをダウンロードして追加しなければならず、そのソフトウエアドライバは、コンピュータ装置がデータ及び制御コマンドをその新たなプリンタと通信できるようにする。更に、使用環境に追加される何らかの新たな装置にとって、ネットワーク上の他の装置と相互作用する手段が一つも無いことが間々ある。
ネットワーク上の新たな装置と通信することよりも更に基本的でさえある別の問題は、利用可能な周辺装置の存在を発見することである。ネットワーク上の装置を自動的に検出し、やりとりに備えてコンピュータ装置及び周辺装置を自動的に設定する手段は、多くのネットワークの場合存在しない。同様に、周辺装置の処理機能が何であるか(例えば、走査、印刷、製本等)を自動的に決定する手段が1つもないことも間々ある。
本発明の課題は、新たな周辺装置が使用環境の中に加えられる際、既存の装置各々が新たな周辺装置と簡易に通信できるようにすることである。
<I.全体システム>
本発明は分散ワークフローイネーブルシステムに伴う従来の欠点を克服する。本システムは、コンピュータ装置及び周辺装置が共によりいっそう効率的に機能できる点で特に優れている。特に、本発明ではそれらの演算能力にそれぞれ依存して、演算処理負担が周辺装置及びコンピュータ装置の間で分けられる。例えば、移動電話機のようにコンピュータ装置が限られた演算能力しか持っていなかった場合、プリンタ又はMFPが演算の責務をより多く請け負う。これに対して、例えばスタンドアローンプリンタと通信するデスクトップコンピュータのように、コンピュータ装置がより大きな又は未使用の能力を持っていた場合、そのコンピュータ装置はより多くの演算の責務を請け負う。
一実施例では、本発明のシステムは、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアントをネットワークで通信可能に結合して含んでいる。ネットワークイネーブルプロバイダ及びネットワークイネーブルクライアントは、ワークフローユニットを含む。ワークフローユニットは、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアントが、通信を行い、処理を分散し且つユーザインタフェースを提示することを可能にする。一実施例では、ワークフローユニットは、通信マネジャ、処理制御モジュール及びユーザインタフェースモジュールを有する。通信マネジャはネットワークに結合され、他のワークフローユニットとのリンクを確立し、他のワークフローユニットとデータ及びコマンドを通信することを促す。プロセス制御モジュールは、通信マネジャ及び各自のプロバイダ又はクライアントに結合される。プロセス制御モジュールは、複数の処理機能の内の1つを実行する。ユーザインタフェースモジュールは、プロセス制御モジュールに結合され、ユーザインタフェースを動的に生成し、関連するプロバイダ又はクライアントによる表示に備える。他の実施例では、本システムはワークフローマネジャを含み、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアント間の通信を促す。
本発明は、通信方法、プロセス制御モジュールによる処理方法、ユーザインタフェースの作成及び提示方法、プロセス制御モジュールで実行可能な検索処理方法等を含む多数の新規な方法を含む。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
<II.MFP装置>
本発明は、ワークフローイネーブルプロバイダを有する分散ワークフローイネーブルシステムにおける従来の欠点を克服する。ワークフローイネーブルプロバイダは、サービスプロバイダ及びワークフローマネジャインタフェースユニットを含む。サービスプロバイダは、複合プリンタ、プリンタ、スキャナ又はウェブサービス等のような既存のタイプのどれでもよい。ワークフローマネジャインタフェースユニットは、サービスプロバイダをワークフローマネジャに結合し、自動発見、分散処理、ダイナミックユーザインタフェース生成等の本発明による機能を提供する。ワークフローマネジャインタフェースユニットは、通信マネジャ、プロセス制御モジュール及びユーザインタフェースモジュールを含む。通信マネジャは、通知モニタ、要求モジュール及び応答モジュールを有する。通知モニタは、新たなクライアントに関するワークフローマネジャからのブロードキャストを聴く(監視する)。要求モジュール及び応答モジュールは、ワークフローマネジャ及びサービスプロバイダ間でのデータ及び制御信号の伝送を処理する。プロセス制御モジュールは、通信マネジャ及びサービスプロバイダに結合される。プロセス制御モジュールは複数の処理機能を実行し、その処理機能は、クライアントからのリクエストを収集すること、サービス可能なリクエストを選択すること、ユーザインタフェースを提示すること、プロバイダを介して入力を処理すること及びサービスプロバイダを制御すること等を含む。ユーザインタフェースモジュールは、プロセス制御モジュールに結合され、サービスプロバイダによる表示に備えてユーザインタフェースを動的に生成する。
ユーザインタフェース提示方法、監視及び起動方法、認証方法等の新規な多数の方法を本発明は含んでいる。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
<III.クライアント/ウィジェット>
本発明はワークフローイネーブルクライアントを有する分散ワークフローイネーブルシステムに伴う従来の欠点を克服する。ワークフローイネーブルクライアントは、クライアント及びワークフローマネジャインタフェースユニットを有する。クライアントは何らかのロジック又はルーチンであり、スキャントゥミー(scan-to-me)、ロック印刷、レシートのスキャン、日々のニュースを印刷すること等を行う。ワークフローマネジャインタフェースユニットは、クライアントをワークフローマネジャに結合し、自動発見、分散処理及びユーザインタフェースの動的な生成等の本発明による機能を発揮する。ワークフローマネジャインタフェースユニットは、通信マネジャ、プロセス制御モジュール及びユーザインタフェースモジュールを含む。通信マネジャは登録ユニット及びポーリングユニットを有する。登録ユニットは、例えば、名前、日付及び他のコマンドを用意することで、ワークフローマネジャと共にクライアントを登録及び登録抹消する。これに応じて、登録ユニットは、ワークフローマネジャから或るロケーションを受信し、そのロケーションはデータを引き出すためにモジュールをポーリングするのに使用可能である。プロセス制御モジュールは、通信マネジャ及びクライアントに結合されている。プロセス制御モジュールは、ポーリングデータの処理、その格納、それを他のクライアントに提供すること等の複数の処理機能を実行する。一実施例では、プロセス制御モジュールを介してユーザは他のクライアントを参加させる。ユーザインタフェースモジュールは、プロセス制御モジュールに結合され、分散ワークフローイネーブルシステムの動作設定の際、クライアントの使用するユーザインタフェースを動的に生成する。
クライアントを登録する方法、データをポーリングする方法、他のクライアントを参加させる方法等の新規な多数の方法を本発明は含んでいる。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
<IV.ウィジェットマネジャ>
本発明はワークフローマネジャを有する分散ワークフローイネーブルシステムに伴う従来の問題を克服する。ワークフローマネジャは、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアント間の通信を処理する。ワークフローマネジャは、クライアントのディレクトリを維持し、プロバイダによる処理を、クライアントにとって静的な複数のトランザクションに変換し、セキュリティを管理する。一実施例では、ワークフローマネジャは、登録によりワークフローイネーブルクライアントと接続し、通知及び起動によりワークフローイネーブルプロバイダと接続する。ワークフローマネジャ、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアント間の以後の通信は、要求/応答プロトコルと共に行われる。ワークフローマネジャは、登録モジュール、クライアント応答モジュール、通知モジュール、プロバイダ応答モジュール、データストレージ、ワークフローストレージ及び他の情報のディレクトリを含む。登録に応じて、ワークフローマネジャの登録モジュールは、通信用のロケーションをクライアントに提供し、クライアント応答モジュールはクライアントからのポーリング要求に応じる。プロバイダ応答モジュールは、登録に対応するワークフローサービスを実行することを提案しているプロバイダに応答する。データストレージは、ワークフローイネーブルクライアント又はワークフローイネーブルプロバイダに送信するデータを格納し、ワークフローストレージは登録されたクライアントに関連する情報を格納する。
クライアントを登録する方法及びプロバイダをアクティブにする方法を含む新規な多数の方法を本発明は含んでいる。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
本発明は非限定的な実施例により添付図面と共に説明され、図中同様な参照番号は同様な要素を指す。
分散ワークフローイネーブルシステム100が説明される。以下の説明では、説明の便宜上多くの具体的詳細が述べられ、本発明の十分な理解を図る。しかしながら本発明がそのような具体的詳細によらず実施可能であることは、当業者にとって明らかであろう。また、本発明を曖昧にすることを避けるため、構造や装置はブロック図で示される。例えば本発明は以下の実施例ではジャバ(Java(登録商標))、HTTP要求/応答プロトコル、ユーザインタフェース及び特定のハードウエアに関連して説明される。しかしながら、データ及びコマンドを受信することができる如何なるタイプのコンピュータ装置にも及びサービスを提供する如何なる周辺装置にも、本発明は適用可能である。
本明細書における「一実施例」又は「実施例」は、その実施例に関して説明される特定の特質、構造又は特徴が、本発明の少なくとも1つの実施例に含まれることを意味する。本明細書の様々な場所で「一実施例」なる用語が使用されていることは、全て同じ実施例であることを必ずしも意味しているわけではない。特に本発明は2つの別個のアーキテクチャのコンテンツに関して以下で説明され、或る構成要素は双方のアーキテクチャで使用されるが別の構成要素はそうではない。
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現で与えられる。これらのアルゴリズムの説明及び表現は、データ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、その動作や処理は、コンピュータシステムのレジスタ及びメモリの中で物理的な(電子的な)量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよいし、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
最後に、ここで説明されるアルゴリズム及び表示は、特定のコンピュータその他の装置のどれにも固有に関連するものではない。様々な汎用システムがここで教示するものによるプログラムと共に使用されてよく、或いは、必要な方法ステップを実行するように、よりいっそう特化した装置を構築することが便利なことが分かるかもしれない。これら様々なシステムに必要な構造は以下の説明から明らかになるであろう。更に、本発明は特定のプログラミング言語のどれにも依存しない。ここで説明される本発明の教示内容を実現するのに様々なプログラミング言語が使用されてよいことが分かるであろう。
システム概要
図1A−Eは、本発明の一実施例により構築された分散ワークフローイネーブルシステム100A-100Eの様々な形態を示す。ここで図1Aを参照するに、第1形態の分散ワークフローイネーブルシステムは:ワークフローイネーブルプロバイダ102、ネットワーク104及びワークフローイネーブルクライアント106を有する。図1Aは、1つのワークフローイネーブルプロバイダ102及び1つのワークフローイネーブルクライアント106と共に、本発明による分散ワークフローイネーブルシステム100の最小限の構成を示す。ワークフローイネーブルプロバイダ102は、信号線120を介してネットワーク104に通信可能に結合される。ワークフローイネーブルクライアント106は、信号線122を介してネットワーク104に通信可能に結合される。ワークフローイネーブルプロバイダ102は、そのハードウエア、ソフトウエア及び接続に応じて、様々な如何なるサービス処理をも実行できる。ワークフローイネーブルプロバイダ102のサービス処理は、スキャニング、印刷、撮影、複写、ファクシミリ伝送、光文字認識、画像捕捉、画像生成、画像処理等を含むがこれらに限定されない。ワークフローイネーブルプロバイダ102は、そこで動作するソフトウエアを伴う装置(又はその一部として統合されたハードウエア)であって本発明によるユーザインタフェース及び通信機能を提供する何らかの装置である。ワークフローイネーブルプロバイダ102は、ワークフローイネーブルクライアント106と通信、相互作用及び協調するように適合させられている。ワークフローイネーブルクライアント106は、通信装置で動作するソフトウエアであり、如何なるレベルのコンピュータ機能を備えていてもよい。ワークフローイネーブルクライアント106は、本発明による方法を使って特定のタスクを実行し且つ通信を行う何らかのクライアントソフトウエアである。ワークフローイネーブルクライアント106及びワークフローイネーブルプロバイダ102は、互いに通信を行い、プロセス及びワークフローを分散し、ユーザインタフェースを生成及び用意する。
本発明による分散ワークフローイネーブルシステム100は、多数の恩恵をもたらす点で特に優れている。第1に、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106は、より効率的に動作可能になる。特に、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の間で、本発明は作業負担(ワークロード)を分割可能にする。この作業負担の分割は、ワークフローイネーブルプロバイダ102の能力(機能及び利用可能な演算力の双方)、ワークフローイネーブルクライアント106の能力及びワークフローイネーブルプロバイダ102における他者による要請等に基づく。第2に、本発明は、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106間の通信に関する通信標準仕様を作成する。これは作業負担の分割を可能にするが、複数のワークフローイネーブルプロバイダ102の中で情報を処理するために新たなワークフローを制御及び生成する手段をもたらす。第3に、本発明は例えばグラフィックユーザインタフェース(GUI)のようなユーザインタフェースの作成及び提示を可能にし、ユーザインタフェースは、そのユーザに対して特化され、ワークフロー、ワークフローイネーブルクライアント106の能力及びワークフローイネーブルプロバイダ102の能力に適合させられる。より具体的には、一実施例の場合、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の双方に共通するGUIが、異なるプロバイダ及び異なるクライアントを使用する場合でさえ、共通のインタフェース又は経験をもたらすために使用可能である。
図1B−1Eを参照するに、本発明による第2形態の分散ワークフローイネーブルシステム100B-100Eの様々な構成が示されている。分散ワークフローイネーブルシステム100B-100Eの第2形態では、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106間の通信は、通知/ディスカバリ(advertisement/discovery)プロトコルを使用し、ワークフローマネジャ108も含み、ワークフローマネジャはワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106間の通信を支援する。一実施例では、ワークフローマネジャ108は、ワークフローイネーブルクライアント106のディレクトリ、ワークフローイネーブルクライアントをアクティブにしたワークフローイネーブルプロバイダ102のIPアドレスのリスト及び他の情報を維持し;利用可能性に関する通知と共にワークフローイネーブルクライアント106を支援し;ワークフローイネーブルプロバイダ102からのトランザクションをワークフローイネーブルクライアント106に適した複数のトランザクションに変換し;セキュリティ及び認証を処理する。ワークフローマネジャ108の機能については、後に図6を参照しながら詳細に説明される。自身の利用可能性を通知するワークフローイネーブルクライアント106及び通知を発見するワークフローイネーブルプロバイダ102と共に本発明は説明されるが、他の実施例の場合、それらの役割は逆でもよく、自身の利用可能性を通知するワークフローイネーブルプロバイダ102及び通知を発見するワークフローイネーブルクライアント106が利用されてもよいことを、当業者は認識するであろう。
図1Bは、第2形態の分散ワークフローイネーブルシステム100Bの第1の好ましい構成を示し、システム100Bの構成要素は複数の装置におけるソフトウエア手段である。この第1の構成例の場合、例えばMFPである第1装置150はワークフローイネーブルプロバイダ102を含む一方、例えばパーソナルコンピュータである第2装置152はワークフローイネーブルクライアント106を含む。ワークフローイネーブルクライアント106は、ワークフローマネジャ108及びライトウェイト(lightweight)クライアント110を更に含む。ワークフローイネーブルプロバイダ102は信号セイン120によりネットワーク104に結合される。ワークフローイネーブルクライアント106は、特にワークフローマネジャ108は、信号線122によりネットワーク104に結合される。そしてワークフローマネジャ108は信号線124によりライトウェイトクライアント110に結合される。ワークフローイネーブルクライアント106はパーソナルコンピュータ上で動作可能である。1つのライトウェイトクライアント110しか示されていないが、第2装置152はそのようなライトウェイトクライアントを複数個含み(110A-110N)、それら総ては図1Eの第5構成例100Eに示されるようにワークフローマネジャ108に結合されることを、当業者は認識するであろう。更に、第1装置150及び第2装置152は、如何なるコンピュータ装置及びMFPでもよく、パーソナルコンピュータは単なる一例として使用されているに過ぎない。
図1Cは、第2形態の分散ワークフローイネーブルシステム100Cの第2構成例を示す。この構成例の場合、第1装置150は、図1Bを参照しながら上述したようにワークフローイネーブルプロバイダ102を含む。しかしながらこの第2構成例は第2装置152を有し、その第2装置はライトウェイトクライアント110だけを含み、ワークフローマネジャ108は第3装置154の一部として含まれ動作する。ワークフローマネジャ108は、信号線126によりネットワーク104に結合される。ライトウェイトクライアント110は信号線128により通信に備えてネットワーク104に結合される。この例は有利である。なぜなら、第2装置152は、ライトウェイトクライアント110をダウンロードしてインストールすることだけを必要とし、ネットワーク104にアクセスし、本発明による機能を可能にするからである。この例におけるライトウェイトクライアント110は、図1Bで直結されていたのとは異なり、ネットワーク104を介してワークフローマネジャ108と通信する。即ち、ネットワーク104に結合された別個の第3装置154(サーバ)にワークフローマネジャ108を設けることは、そのワークフローマネジャ108が、小さなライトウェイトクライアント110を含むいくつかの装置で共用されることを可能にする。
図1Dは、第2形態の分散ワークフローイネーブルシステムの第3構成例を示す。この構成例の場合、第1装置150がワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の双方を含む。ワークフローイネーブルプロバイダ102が信号線132によりワークフローマネジャ108に結合され、ワークフローマネジャ108は信号線130によりネットワーク104に結合されるように、結合が変更されている。第2構成例と同様に、第3構成例も第2装置152にライトウェイトクライアント110しか必要としていない。第2形態のこれらの様々な構成例は、ワークフローマネジャ108が、分散ワークフローイネーブルシステム100の何らかの装置の一部として動作してよいことを示す。
図1Eは、第2形態の分散ワークフローイネーブルシステム100Dの第4構成例を示す。この構成例の場合、第1装置150はワークフローイネーブルプロバイダ102を含む一方、第2装置152はワークフローマネジャ108及び複数のライトウェイトクライアント110A-110Nを含む。ワークフローイネーブルプロバイダ102は、信号線120によりネットワーク104に結合される。ワークフローマネジャ108は、信号線122によりネットワーク104に結合される。ワークフローマネジャ108は通信用に信号線124A-124Nによりライトウェイトクライアント110A-110Nにそれぞれ結合される。ワークフローマネジャ108及び複数のライトウェイトクライアント110A-110Nは、パーソナルコンピュータ152で動作可能である。この構成例は、いくつであってもライトウェイトクライアント110A-110Nが1つのコンピュータ装置でどのようにして同時に使用されるかを示す。
図1B−1Eは本発明を実現する単なる例に過ぎず、別の構成例が幾つでも可能なことを当業者は認識するであろう。例えば、他の例の場合に、ワークフローマネジャ108を配置する様々な変形例の総てが、複数のワークフローマネジャ108と共に或る構成例の中で同時に存在してもよい。同様に、他の構成例は或るワークフローイネーブルプロバイダ102、或るワークフローイネーブルクライアント106、或るライトウェイトクライアント110及び或るワークフローマネジャ108を、特定のオフィス設定の要請に従って選択することができる。
図2は、本発明の第3形態により構築された更に複雑な分散ワークフローイネーブルシステム200のブロック図である。図2は分散ワークフローイネーブルシステムの更に別の例を示し、複数のワークフローイネーブルプロバイダ102a-102n及び複数のワークフローイネーブルクライアント106a-106nが存在する。
図2を参照するに、ネットワーク104は信号線120によって複数のワークフローイネーブルプロバイダ102a-102nに結合される。一実施例では、本発明はソフトウエアとして実現され、既存の複数のプロバイダ装置にインストールされてもよい。他の実施例では、本発明はハードウエアとして実現され、既存の複数のプロバイダ装置にないに組み込まれてもよい。本発明によるソフトウエアと共にそのような装置がいったんイネーブルにされると、それらはワークフローイネーブルプロバイダ102a-102nになる。本実施例における複数のワークフローイネーブルプロバイダ102a-102nは、ワークフローイネーブルプリンタ102a、ワークフローイネーブルコピー機102b、ワークフローイネーブルウェブサービス102c、ワークフローイネーブル複合機102d、ワークフローイネーブルサーバ102e及び他のワークフローイネーブルオフィス機器102nを含む。本発明による複雑に分散したワークフローイネーブルシステム200は、ワークフローイネーブルプロバイダ102a-102nを幾つ含んでもよいこと、及びワークフローイネーブルプロバイダ102a-102nの各々は異なる性能を持っていてよいこと等を、図2は示している。
複合的に分散したワークフローイネーブルシステム200のこの例は、信号線122を介してネットワーク104に結合された複数のワークフローイネーブルクライアント106a-106nも含んでいる。複合的に分散したワークフローイネーブルシステム200はワークフローイネーブルクライアント106a-106nを幾つ含んでもよいこと、及びワークフローイネーブルクライアント106a-106n各々は異なる性能を有するだけでなく異なる媒体で通信してよいことを、この複数のワークフローイネーブルクライアント106a-106nは示している。この特定の実施例の場合、ワークフローイネーブルクライアント106a-106nは、ワークフローイネーブルパーソナルコンピュータ106a、ワークフローイネーブルラップトップコンピュータ106b、ワークフローイネーブルスマートフォン106c及びワークフローイネーブルパーソナルディジタルアシスタント(PDA)106nを含む。一実施例では、本発明はソフトウエアとして実現され、通常の如何なるクライアント装置にインストールされてもよい。図2に示されるような複合的な分散ワークフローイネーブルシステム200のアーキテクチャに基づいて、当業者は多種多様なワークフローを認識でき、ワークフローの様々な部分は様々なプロバイダ102a-102n及び様々なワークフローイネーブルクライアント106a-106nにより実行され、ワークフローに対する入力及び出力は、様々なプロバイダ102a-102n及び様々なワークフローイネーブルクライアント106a-106nにより送受信される。
実施例に依存して、システム200はワークフローマネジャ108を含んでもよい。ワークフローマネジャ108は、複数のプロバイダ102a-102n及び複数のワークフローイネーブルクライアント106a-106n間の通信を促す。図2には1つのワークフローマネジャ108しか示されていないが、他の実施例は複数のワークフローマネジャ108を含んでもよい。代替実施例は1つ以上のワークフローマネジャ108を含んでもよく、その全部又は一部は、図1Cに示されるようなスタンドアローンでもよいし、図1Dのようにワークフロープロバイダ102と共にまとめられてもよいし、図1Bのようにライトウェイトクライアント110と共にまとめられてもよい。
システム実施例
図3Aを参照するに、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106を詳細に示す分散ワークフローイネーブルシステムの第1形態が示されている。
図3Aに示されているように、ワークフローイネーブルプロバイダ102は、通常のプロバイダ302及びプロバイダワークフローユニット304を含む。本願における通常のプロバイダ302は、スキャン、コピー、印刷、ページ順に並べること(collating)、フォーマット変換、光文字認識、製本、ファクシミリ送信、電子メール送信等のような1つ以上の何らかの処理(例示のものに限定されない)を実行可能な何らかの装置を一般的に指すように使用される。コピー、スキャン、ファクシミリ及び印刷等のようなオフィス環境の複合機で実行される処理に関連して、本発明は主に説明されているが、様々な他の文書又は画像処理に本発明が使用されてよいことを当業者は認識するであろう。更に、一実施例では、通常のプロバイダ302はそのような他の文書又は画総処理にアクセスするウェブサービスであってもよい。プロバイダワークフローユニット304は、通常のプロバイダ302と通信するように結合及び適合している。プロバイダワークフローユニット304は、他のワークフローユニット304,308と通信し;通常のプロバイダ302から受信した又は信号線120を介してワークフローイネーブルプロバイダ102により外部から受信したデータ及び情報を処理し;通常のプロバイダ302への入力を制御及び提供し;ユーザインタフェースを生成し、それを通常のプロバイダ302に提示する。一実施例のプロバイダワークフローユニット304は、図4を参照しながら後に詳細に図示及び説明される。
ワークフローイネーブルクライアント106は、通常のクライアント306及びワークフローユニット308を含む。通常のクライアント306は、何らかのコンピュータ装置で動作するような通常のタイプのものである。通常のクライアント306は、情報を表示し、入力を受信し、演算を実行することのできる何らかのコンピュータ装置を一般的に言及している。例えば、通常のクライアント306は、通常のパーソナルコンピュータ、通常のスマートフォン、通常のラップトップコンピュータ、通常のパーソナルディジタルアシスタント、通常の携帯通信装置及び通常のセルラ電話機等のような如何なるものでもよい。通常のクライアント306は、クライアントワークフローユニット308との通信に適合して結合されている。クライアントワークフローユニット308は、プロバイダワークフローユニット304に関して説明されたのと同様な機能を有する。クライアントワークフローユニット308は、他のワークフローユニット304と通信し;通常のクライアント306から受信した又は信号線122を介してワークフローイネーブルクライアント106により外部から受信したデータ及び情報を処理し;ユーザインタフェースを生成し;それらを通常のクライアント306に提示する。一実施例のクライアントワークフローユニット308は、図5Aを参照しながら後に詳細に図示及び説明される。
ネットワーク104は通常の有線又は無線のタイプであり、スターコンフィギュレーション、トークンリングコンフィギュレーションその他の当業者に既知のコンフィギュレーション等のようなコンフィギュレーションを幾つ含んでいてもよい。更に、ネットワーク104は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)(例えば、インターネット)及び/又は他の何らかの相互接続データパス(そのデータパスを介して複数の装置が通信する)を有する。更に別の実施例では、ネットワーク104はピアトゥピアネットワークでもよい。
図3Bを参照するに、第2形態の分散ワークフローイネーブルシステム100Cは、ワークフローイネーブルプロバイダ102及びライトウェイトクライアント110を詳細に示している。第2形態では、ワークフローイネーブルプロバイダ102は通常のプロバイダ302及びプロバイダワークフローインタフェース(WIF)ユニット352を有する。ライトウェイトクライアント110は、通常のクライアント306及びクライアントワークフローインタフェース(WIF)ユニット354を有する。通常のプロバイダ302及び通常のクライアント306は、図3Aに関して説明されているので、ここで重複的には説明しない。ワークフローマネジャ108は、図1B−1Eを参照しながら説明されており、図6を参照しながら以下で詳細に説明される。以下の図3Bの説明は、ワークフローマネジャ108に登録されたライトウェイトクライアント110の観点からのやりとりを説明しているが、ワークフローイネーブルクライアント106又はヘビーウェイトクライアントでもよいことを当業者は認識するであろう(この点については、図5Cに関連して後に詳細に説明される)。
プロバイダワークフローインタフェース(WIF)ユニット352は、通常のプロバイダ302及びワークフローユニット308と通信するように結合及び適合している。プロバイダWIF352は、通常のプロバイダ302と通信し、通常のプロバイダ302のサービスを利用し、通常のプロバイダ302によるユーザインタフェースの表示を制御する。プロバイダWIF352は、実行するアクションが何であるかについて通常のプロバイダ302に命令を与え、そのようなアクションを実行するためのデータを提供する。プロバイダWIFユニット352は、プロセス結果及び他の情報を通常のプロバイダ302から受信する。プロバイダWIFユニット352は、ワークフローマネジャ108とも通信し、通常のプロバイダ302により生成されたプロセス結果をサービス固有のライトウェイトクライアント110に与える。WIFユニット352はワークフローマネジャ108から命令及びデータを受信する。より具体的には、プロバイダWIFユニット352は、通知の監視、受信した通知の報告及びライトウェイトクライアント110の活性化を実行する。プロバイダWIFユニット352は、ライトウェイトクライアント110に関する通知を監視し、それらのライトウェイトクライアント110のメニューを維持し、関連する通常のプロバイダ302は、そのライトウェイトクライアントの条件に合っており、そのメニューが通常のプロバイダ302により表示されることを引き起こす。ユーザが特定のライトウェイトクライアント110をメニューから選択すると、プロバイダWIFユニット352はワークフローマネジャ108に通知を送り、適切なライトウェイトクライアント110との通信を開始する。選択的に、パスワードを要求した後、ワークフローマネジャ108は、アクション(即ち、捕捉やスキャン)が特定のパラメータと共に実行されるべきことを表示及び/又は指示するユーザインタフェースアイテムと共に選択的に応答する。ユーザの入力に応答して(典型的には、ユーザがスタートボタンを押す)、プロバイダWIFユニット352は、適切なライトウェイトクライアント110の起動を開始し、スキャン又は捕捉した他の何らかの情報をワークフローマネジャ108に送信し、及び/又は印刷される或いは通常のプロバイダ302により出力されるファイルを受信する。WIFユニット352の一例は、図4Bを参照しながら詳細に図示及び説明される。
クライアントワークフローインタフェース(WIF)ユニット354は、通常のクライアント306及びワークフローマネジャ108と通信するように結合及び適合している。クライアントWIFユニット354は、通常のクライアント306と通信し、データ、コマンド(命令)及びコンフィギュレーション情報を受信及び送信する。クライアントWIFユニット354は、ワークフローマネジャ108と通信し、ライトウェイトクライアント110の登録及び登録抹消を行い、ワークフローマネジャ108から処理結果を取り出す。ライトウェイトクライアント110は、ワークフローマネジャ108のサービスを使用して、通知及び通信を実行する。クライアントWIFユニット354はワークフローマネジャ108と共に登録を開始する。ワークフローマネジャ108は、ロケーションと共に応答し、そのロケーションにより、クライアントWIFユニット354はデータを取り出して更なるコマンドを送信できる。いったん登録されると、ワークフローマネジャ108はライトウェイトクライアント110を自動的に告知する。ライトウェイトクライアント110は、ワークフローマネジャ108と共に登録を抹消する。そしてワークフローマネジャ108はライトウェイトクライアント110の削除を告知し、そのライトウェイトクライアント110用に格納していた如何なるデータも削除する。クライアントWIFユニット354は、何らかのワークフローイネーブルプロバイダ102がそれをアクティブにしたか否かを確認し、もしあれば、ワークフローマネジャ108と通信することで、送信されたデータを取り出す。クライアントWIFユニット354は、特定のインスタンスを指定するパスを利用して、ワークフローマネジャ108にファイル又はデータを送信し、そのインスタンスにてライトウェイトクライアント110は活性化されている。一実施例では、クライアントWIFユニット354は、ワークフローマネジャ108からのプロセス結果を分析し、現在の又は他のワークフローイネーブルクライアント106からの1つ以上のアクションを開始する。他の実施例の場合、クライアントWIFユニット354が、ユーザインタフェースを提示し、ワークフローイネーブルクライアント106のユーザからコンフィギュレーション情報を受信する。クライアントWIFユニット354の一例は、図5Bを参照しながら詳細に図示及び説明される。
図4Aを参照するに、本発明によるワークフローイネーブルプロバイダの第1形態が、詳細に示されている。特に、図4Aはプロバイダワークフローユニット304だけでなく、通常のプロバイダ302及び他の外部装置(図示せず)との結合関係も示している。この例では、プロバイダワークフローユニット304は、ユーザインタフェースモジュール402、プロセス制御モジュール404及び通信マネジャ406を含む。
ユーザインタフェースモジュール402は、信号線428を介してプロセス制御モジュール404に結合される。ユーザインタフェースモジュール402は、ユーザインタフェースを動的に生成し、プロセス制御モジュール404とやりとりを行い、動的に生成されたユーザインタフェースを通常のプロバイダ302が表示することを引き起こす。他の実施例では、ユーザインタフェースモジュール402は通常のプロバイダ302に直接的に結合され、通常のプロバイダ302の表示を直接的に制御し、ユーザインタフェースを望まれるように生成する。ユーザインタフェースモジュール402及びその動作は、図9及び12を参照しながら後に詳細に説明される。一実施例では、ユーザインタフェースモジュール402はオプションであり、このため図4では破線で示されている。
プロセス制御モジュール404は、プロバイダワークフローユニット304の動作を制御し、信号線420を介して通常のプロバイダ302と通信するように結合され、信号線422を介して通信マネジャ406と通信するように結合され、信号線424を介して1つ以上の外部装置(図示せず)と(選択的に)結合される。プロセス制御モジュール404は、通信マネジャ406からコマンド及びデータを受信し、それらのコマンド及びデータを通常のプロバイダ302用の入力に変換する。一実施例では、プロセス制御モジュール404は、通常のプロバイダ302のアプリケーションインタフェースを組み込む。従ってプロセス制御モジュール404は、通常のプロバイダ302が理解できる方法で信号線420を介して通信することができる。別の実施例では、プロセス制御モジュール404は、通常のプロバイダ302にデータを渡す前にそのデータについて処理を施す。更に別の実施例では、プロセス制御モジュール404は、コマンド及びデータを通常のプロバイダ302のような別のリソースに又は信号線424を用いて外部リソース(図示せず)に送信することで、ワークフローを管理する。プロセス制御モジュール404は、図8Aを参照しながら以下で詳細に説明される。
通信マネジャ406は、信号線422を介してプロセス制御モジュール404と及び信号線120を介してネットワーク104と通信するように適合させられている。通信マネジャ406は、他のワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106との通信及びデータ交換を取り扱う。多くの場合、通信マネジャは1つのワークフローイネーブルクライアント106と通信を行うが、複数のワークフローイネーブルプロバイダ102及び複数のワークフローイネーブルクライアント106と通信してもよい。通信マネジャ406の動作は、図7A及び11Aを参照しながら後に詳細に説明される。一実施例では、通信マネジャ406は標準化されたプロトコルを使用し、通信マネジャ各々が互いに通信するようにする。この標準的なプロトコルは、自動発見、自動登録、サービスの通知、制御コマンド及びデータの転送等を含む。完全を期するため、通常のプロバイダ302は信号線120に結合した入力/出力を選択的に有し、ある実施例の通常のプロバイダ302に関して一般に理解されているように、通常のプロバイダ302との直接的な通信を行ってよいことが理解されるべきである。従って通常のプロバイダ302は、信号線120により直接的に又は通信マネジャ406を用いて、他の装置と通信してよい。
図4Bは、本発明によるワークフローイネーブルプロバイダ102の第2形態を示す。第2形態のワークフローイネーブルプロバイダ102は、通常のプロバイダ302及びプロバイダWIFユニット352を含み、プロバイダWIFユニット352は、ユーザインタフェースモジュール452、プロセス制御モジュール454及び通信マネジャ456を含む。通信マネジャ456は信号線120を介してネットワーク104に結合される。プロセス制御モジュール454は、信号線460により通信マネジャ456に、信号線458によりユーザインタフェース452に、信号線464により通常のプロバイダ302に結合されている。ユーザインタフェースモジュール452及びプロセス制御モジュール454は、図4Aを参照しながら説明されたユーザインタフェースモジュール402及びプロセス制御モジュール404と同様な機能をそれぞれ有する。本実施例の場合、プロバイダWIFユニと352は、通信マネジャ456を介して、ワークフローイネーブルプロバイダ102及びワークフローマネジャ108間の通信をネットワーク104を用いて制御することに、留意すべきである。通信マネジャ456は図7Bを参照しながら以下で詳細に説明される。他の主な相違は、プロセス制御モジュール454がワークフローマネジャ108と共に適切にやりとりするのに必要なアクションを実行することである。
別の実施例では、第2形態のワークフローイネーブルプロバイダ102は、デバイスプロバイダプロキシ(図示せず)を含んでもよい。従来の通常のプロバイダ302は、ネットワーク104を介して通信し、リクエストを発し、及び/又はワークフローイネーブルプロバイダ102であるのに必要なメニューをコンソール上に提示する能力を備えていないかもしれない。そのような従来の通常のプロバイダ302の場合、デバイスプロキシがプロバイダWIFユニット354に加えて追加され、そのグループがワークフローイネーブルプロバイダ102をなすようにする。デバイスプロキシは、実際のスキャンや印刷の機能を除いて装置機能の総てを実行するサーバである。一実施例では、デバイスプロキシは或る装置であり、その装置は、LPRのような又はUSBを介する従来のプロトコルを用いてスキャナ又はプリンタバックエンドとたまたま通信している装置である。デバイスプロキシは、ワークフローイネーブルクライアント106のメニューを維持し、DNS−ベースのサービスディスカバリ(DNS-SD)を介して自ら告知を行い、ワークフローイネーブルクライアント106を選択及び活性化するユーザインタフェースを提供する。それは従来の通常のプロバイダが適切にスキャン又は印刷することを制御し、スキャンした文書をワークフローイネーブルクライアント106にリクエスト(例えば、HTTP POSTリクエスト)に応じて与える。ワークフローマネジャ108とは異なり、デバイスプロキシは、スキャナやプリンタのような特定のタイプの装置に特有であるが、複数のスキャナ又は複数のプリンタが同じデバイスプロキシによって支援されてもよい。
図5Aは、本発明によるワークフローイネーブルクライアント106の第1形態を示す。図5Aは、ワークフローイネーブルクライアント106のクライアントワークフローユニット308に関する追加的な情報を提供する。この実施例の場合、クライアントワークフローユニット308は、ユーザインタフェースモジュール502、プロセス制御モジュール504及び通信マネジャ506を有する。
ユーザインタフェースモジュール502は、図4Aを参照しながら説明したユーザインタフェースモジュール402と同様な機能を有する。しかしながら、ユーザインタフェースモジュール502は、通常のプロバイダ302とは異なり、通常のクライアント306でのユーザインタフェースの生成に備えて、ユーザインタフェースを動的に生成し、プロセス制御モジュール504とやりとりを行う。再びユーザインタフェースモジュール502はオプションであり、それ故に図5Aでは破線で示されている。ユーザインタフェースモジュール502は図5Aでは示されていないが、通常のクライアント306におけるユーザインタフェースの生成及び制御に備えて、通常のクライアント306に直接的に結合されてもよい。ユーザインタフェースモジュール502は、信号線528を介してプロセス制御モジュール504に結合されている。ユーザインタフェースモジュール502は、図9及び12を参照しながら後に説明される。
プロセス制御モジュール504は、信号線520を介して通常のクライアント306に及び信号線522を介して通信マネジャ506に結合される。プロセス制御モジュール504は、全体的なワークフロープロセスを制御するのに使用される。様々な実施例でプロセス制御モジュール504は通常のクライアント306の動作を制御する。プロセス制御モジュール504は、通信マネジャ506を介して得られるルーチンの処理を実行するモジュールを含んでもよいし、或いはプロセス制御モジュール504の一部として格納されてもよい。これらのルーチンは、一般的なワークフローのコマンド及び制御を含むだけでなく、データの独立な処理をも含む。プロセス制御モジュール504をクライアントワークフローユニット308の一部として含めることは有利である。なぜなら、プロセス制御モジュール504は通常のクライアントのリソースを割り当てて使用し、全体的なワークフローの一部を処理するからである。例えば、プロセス制御モジュール504がワークフローイネーブルプロバイダ102の特殊なサービスを使用しつつ、それと同時に、その処理を実行するために通常のクライアント306の利用可能な帯域を使うことは、演算コストが高くなる。これは、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の間で作業を効果的に分割し、双方の装置のパフォーマンスを向上させるよう最適化する。プロセス制御モジュール504の動作は、図8B及び11Bを参照しながら更に詳細に説明される。
通信マネジャ506は、通信マネジャ406を参照しながら説明されたものと同様な機能を有する。通信マネジャ506は、図7A及び11Aを参照しながら以下で更に詳細に説明される。通信マネジャ406との主な相違は、通信マネジャ506が信号線122によりネットワーク104に結合され、信号線522によりプロセス制御モジュール504に結合されている点である。
図5Bは、本発明によるライトウェイトクライアント110の第2形態を示す。第2形態のライトウェイトクライアント110は、通常のクライアント306及びクライアントWIFユニット354を含み、クライアントWIFユニット354は、ユーザインタフェースモジュール522、プロセス制御モジュール554及び通信マネジャ556を有する。通信マネジャ556は信号線122によりネットワーク104に結合される。プロセス制御モジュール554は、信号線560により通信マネジャ556に、信号線558によりユーザインタフェースモジュール552に、信号線562により通常のクライアント306に結合される。ユーザインタフェースモジュール552及びプロセス制御モジュール554は、図5Aを参照しながら説明されたユーザインタフェースモジュール502及びプロセス制御モジュール504と同様な機能をそれぞれ有する。本実施例では、通信マネジャ556を介するクライアントWIFユニット354は、ライトウェイトクライアント110及びワークフローマネジャ108間の通信をネットワーク104を用いて制御することに、留意すべきである。通信マネジャ556は図7Cを参照しながら以下で更に詳細に説明される。他の主な相違は、プロセス制御モジュール554が、ワークフローマネジャ108との適切なやりとりに必要なアクション(処理)を実行することである。ワークフローイネーブルクライアント106は、通常のクライアント306とやりとりを行い、ライトウェイトクライアント110のユーザコンフィギュレーションを受信及び使用する。
図5Cは、本発明によるヘビーウェイト(heavyweight)クライアント112の一例を示す。ヘビーウェイトクライアント112は、ライトウェイトクライアント110と同じ又は類似する機能を有する多くのモジュールを含み、例えば、通常のクライアント306及びクライアントWIFユニット354(ユーザインタフェースモジュール552及びプロセス制御モジュール554を含む)を含む。しかしながら、通信マネジャ556の代わりに、ヘビーウェイトクライアント112は通知マネジャ564を有する。通知マネジャ564は、信号線122によりネットワーク104に結合され、信号線560によりプロセス制御モジュールに結合される。通知マネジャ564は、通常のクライアント306との直接的な通信をもたらし、通知(告知)及び要求に対する応答のようないくつかのワークフローマネジャ108の機能を実行する。通知マネジャ564は、ワークフローイネーブルプロバイダ102と共に、直接的な通信(ワークフローマネジャ108によらない通信)に必要なリクエスト処理サービス及び通知を行う。これは登録の必要性を排除する。多くの場合、通知マネジャ564は他のライトウェイトクライアント110ともヘビーウェイトクライアント112とも共用されず、特定のヘビーウェイトクライアント112に専用になるからである。本実施例の場合、プロセス制御モジュール554は、HTTPリクエストを利用するのではなく、ソフトウエアライブラリコールを使用して通常のクライアント306と通信する。図6と共に当業者に理解されるように、ヘビーウェイトクライアント112の通知マネジャ564は、通知モジュール608、プロバイダ応答モジュール612、応答データストレージ614、ワークフロープロセッサ616、ワークフローストレージ618、セキュリティ及びロギングモジュール620に類似するワークフローマネジャ108の機能を有する。これは、ヘビーウェイトクライアント112が、図1Bのワークフローイネーブルクライアント106と同じ方法で、ワークフローイネーブルプロバイダ102とやりとりできるようにする。
図6は、本発明によるワークフローマネジャ108の一例を示す。ワークフローマネジャ108は、登録モジュール602、クライアント情報ディレクトリ604、クライアント応答モジュール606、通知モジュール608、プロバイダ応答モジュール612、応答データストレージ614、ワークフロープロセッサ616、ワークフローストレージ618、セキュリティモジュール620を有する。一実施例では、ワークフローマネジャ108はソフトウエアライブラリであり、通信機能を実行し、ユーザの代わりに一群のクライアントを管理する。図1Bを参照しながら説明されたように、他の実施例では、ワークフローマネジャ108は、パーソナルコンピュータ上で動作するソフトウエアであり、ライトウェイトクライアント110との通信に適合している。更に別の実施例では、ワークフローマネジャ108はHTTPサーバであり、HTTPサーバは、HTTPリクエストに応答し、サービスディスカバリプロトコル(例えば、DNSベースサービスディスカバリ(DNS-SD)、サービスロケーションプロトコル(SLP)又はユニバーサルプラグアンドプレイ(UPnP))を用いて通知を行う。具体的には、ワークフローマネジャ108は、ワークフローイネーブルプロバイダ102及びライトウェイトクライアント110の間の通信を処理する。ワークフローマネジャ108は、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106に関する情報を管理及び保持する。例えば、一実施例では、ワークフローマネジャ108は、個々の活性化(activation)に関する情報を追跡し(その情報は活性化を要求したワークフローイネーブルプロバイダ102のIPアドレスを含み)、更にはワークフローイネーブルプロバイダ102が(例えば、印刷用に)サポートしている代替プロトコルに関して提供している如何なる情報をも追跡する。ワークフローイネーブルクライアント106の場合、ワークフローマネジャ108は、登録されたワークフローイネーブルクライアント106のリストを保持し、設定に依存して、それらの利用可能性を持続的に(パーシステントに)通知してもよい。最後に、ワークフローマネジャ108はセキュリティ及びエラー回復を処理する。
登録モジュール602、クライアント情報ディレクトリ604、クライアント応答モジュール606、応答データストレージ614及びワークフロープロセッサ616は、ワークフローマネジャ108及びライトウェイトクライアント110間の通信を協同して可能にする。特に、本発明の方法に関して以下で説明されるように、これらの要素は、ワークフローマネジャと共にライトウェイトクライアント110を登録すること、ワークフローイネーブルクライアント106がデータを取り出せる場所の特定、情報を求めるワークフローイネーブルクライアントからのリクエストに応答すること、登録されたライトウェイトクライアント110のクライアント情報を格納及び管理すること等を可能にする。
通知モジュール608、プロバイダ情報ディレクトリ610、プロバイダ応答モジュール612、応答データストレージ614、ワークフロープロセッサ616は、ワークフローマネジャ108及びワークフローイネーブルプロバイダ102間の通信を協同して可能にする。特に、特に、本発明の方法に関して以下で説明されるように、これらの要素は、ワークフローイネーブルプロバイダ102にライトウェイトクライアント110を通知すること、ライトウェイトクライアント110を活性化すること、ワークフローイネーブルプロバイダ102にデータ及びコマンドを転送すること、ワークフローイネーブルプロバイダ102からデータを受信して格納すること、活性化されたライトウェイトクライアント110のプロバイダ情報を格納及び保持すること等を協同して可能にする。
登録モジュール602は、ライトウェイトクライアント110を登録するためのソフトウエア及びルーチンである。ライトウェイトクライアント110からの登録の要求に応答して、ワークフローマネジャ108はそれを登録し、ライトウェイトクライアント110を告知し、(スキャン又は印刷のような)指定された1つ以上の機能を実行できる如何なるワークフローイネーブルプロバイダ102も、そのライトウェイトクライアント110を発見できるようにする。そしてワークフローイネーブルプロバイダ102はユーザインタフェースを生成し、そのユーザインタフェースは、ライトウェイトクライアント110の利用可能性をワークフローイネーブルプロバイダ102のユーザに表示する。
一実施例では、登録コマンドを受信すると、登録モジュール602はそのライトウェイトクライアント110に2つのIDを割り当て、一方は内部的なものであり、ライトウェイトクライアント110を登録抹消し且つスキャンしたファイル及び他のデータにアクセスするためにライトウェイトクライアント110により使用され、他方は外部的なものであり、ライトウェイトクライアント110を活性化するようにワークフローイネーブルプロバイダ102により使用される。
双方のIDは、ワークフローマネジャ108の状況の中で固有であるべきであり、内部IDは外部IDから推測できないことが望ましい。登録モジュール602はその後に内部IDに基づいてロケーション識別子を割り当て、それをライトウェイトクライアント110に送信する。一実施例では、生成された(201)ステータスコードを有するHTTP応答と共に、(http://host:port/internal-ID/の形式の)絶対URLに設定されたロケーション応答ヘッダと共に、登録モジュール602はライトウェイトクライアント110に応答し、ホスト及びポートはワークフローマネジャ自身のホスト名及びポートである。これは、ライトウェイトクライアント110からワークフローマネジャ108への将来的な総ての通信に対する基本的なURLになる。ロケーション識別子、内部IDは、ワークフローマネジャ108から情報を取り出すのに使用される。好適実施例では、ワークフローマネジャ108はそのURLについてベーシック又はダイジェストアクセス認証(Basic or Digest Access Authentication)を要しない。
一実施例では、登録の要求はHTTPリクエストの形式でライトウェイトクライアント110からワークフローマネジャ108へ送信される。そのようなリクエストのフォーマット例は、以下の表1の何らかのパラメータを伴うHTTP POSTリクエストである。
Figure 2009070386
表1のパラメータは単なる一例に過ぎず、ワークフローイネーブルプロバイダ102及びライトウェイトクライアント110に従って様々な他のパラメータが追加されてもよいことを、当業者は認識するであろう。登録モジュール602は、ライトウェイトクライアント110に関して割り当てられた名前及び他の情報を、クライアント情報ディレクト604に格納する。例えば、ライトウェイトクライアント110の2つのID、及びライトウェイトクライアント110により指定されたタスクを実行するために必要な何らかのファイル又はデータが、クライアント情報ディレクト604に格納される。登録モジュール602は、ワークフローイネーブルプロバイダ102により後に使用されるデータ又はファイルをクライアントからアップロードする。例えば、活性化の際(アクティブにされたときに)、ファイルを印刷するライトウェイトクライアント110は、印刷ファイルパラメータのように印刷されるファイルを含み、リクエストをマルチパート/フォームデータのようにエンコードすべきである。印刷ファイルは、印刷装置(即ち、ワークフローイネーブルプロバイダ102)がサポートできるフォーマット、或いはワークフローマネジャ108がワークフローイネーブルプロバイダ102によりサポートされているフォーマットに変換可能なフォーマットの何れかであるべきである。印刷ファイルのコンテンツタイプ(フォーマット)は、登録用のHTTP POSTリクエストの中で、ファイル形式部分に関するコンテンツ配置ヘッダで指定されるべきである。ライトウェイトクライアント110は選択的にファイル名を指定してもよい。印刷されるファイル名及びそのコンテンツタイプは、ワークフローマネジャ108により、応答データストレージの中に保存され、アクティブコマンドリクエストに対する応答としてライトウェイトクライアント110を活性化する何らかのワークフローイネーブルプロバイダ102に後に送信される。登録モジュール602は、ライトウェイトクライアント110及びその関連するデータを、クライアント情報ディレクトリ604及び通知モジュール608から削除することで、ライトウェイトクライアント110の登録を抹消するリクエストを処理する。
クライアント情報ディレクト604は、登録されたライトウェイトクライアント110に関する情報を格納するメモリ又はストレージである。メモリは通常のタイプのものであり、例えば、ワークフロープロセッサ616により使用するために割り当てられた作業メモリの一部、又はハードドライブのような磁気媒体のストレージ等でもよい。
クライアント応答モジュール606は、ライトウェイトクライアント110からの検索要求に応答するソフトウエア及びルーチンである。ライトウェイトクライアント110は、ワークフローイネーブルプロバイダ102による実行からデータを予測し、ワークフローマネジャ108はデータを受信し、応答データストレージ614に格納する。クライアント応答モジュール606は、与えられた場所で、ライトウェイトクライアント110からのデータを求めるリクエストに応答する。クライアント応答モジュール606はこれらのリクエストを受信及び処理し、利用可能でないデータ又はデータ自身の指示を含む応答(レスポンス)を生成する。クライアント応答モジュール606は、ライトウェイトクライアント110及び応答データストレージ614と通信するように適合している。
通知モジュール608は、ライトウェイトクライアント110を通知するソフトウエア及びルーチンである。一実施例では、通知モジュール608は、DNSベースのサービスディスカバリ(DNS-SD)、サービスディスカバリコンポーネントオブボンジュール(より一般的には、Zeroconfとして知られている。)を利用して、ローカルネットワーク上に登録されているライトウェイトクライアント110の存在を通知する。通知モジュール608は、通知を作成及び送信する。例えば、通知はユーザ名及びクライアント名を指定し、クライアントはその名前の下でリスト化されるべきであり、更にはワークフローイネーブルプロバイダ102がクライアント及び何らかの機能を特定できる固有の識別子と共にリスト化されるべきであり、クライアントはサポートするプロバイダをリスト化することを要する。ローカルネットワーク上のワークフローイネーブルプロバイダ102は、これらの通知を監視する。ワークフローイネーブルプロバイダ102がワークフローイネーブルクライアント106により要求された機能をサポートしている場合、ワークフローイネーブルプロバイダ102は、そのワークフローイネーブルクライアント106をユーザインタフェースメニューに追加する。通知モジュール608は、DSN-SDを介するサーバのようにネットワーク104上で通知をブロードキャストする責務を有する。DNS-SDを利用することは、通知モジュール608が、局所的に固有の名前を動的に選択することを可能にし、その名前を同じ局所的なサブネット上の他者に通知することを可能にする。一実施例では、通知されたサービスに関するホスト及びポート番号は、再びワークフローマネジャ108と同じであってもよいが、(新たなサービスのDNS TXTレコード内で指定されるような)パスは、ライトウェイトクライアント110の固有の外部IDが先行し、後に“/”が付いている。その結果のURL(http://host:port/external-id/)は、基礎的なURLであり、ワークフローイネーブルプロバイダ102がライトウェイトクライアント110を活性化するのに使用し、PINが必要な場合ベーシック又はダイジェストアクセス認証を必要とする。登録パラメータに依存して、通知モジュール608は、ワークフローイネーブルクライアント106を持続的に通知してもよいし、或いは関連するライトウェイトクライアント110が活性化された後でその通知を終了してもよい。
一実施例では、特殊なライトウェイトクライアント110の通知は、サービスのトップレベルのユーザ/メニュー名及びDNS-SD通知を予約するDNS-SD通知を送信することを含む。第1の通知は、トップレベルのユーザ/メニュー名を予約する目的でなされ、その名前の下に、1つ以上のワークフローイネーブルクライアント106はワークフローイネーブルプロバイダ102についてリスト化される。これは、例えば2人のユーザがたまたま同じ名前を共用していた場合に、2つの別々のワークフローマネジャ108が同じメニュー名でクライアントをリスト化しないことを保証する。第2の通知は、ワークフローイネーブルクライアント106自身を通知し、ワークフローイネーブルプロバイダ102により監視される通知である。これらのメッセージは以下の表2及び表3に示されるようなフォーマット例を使用してもよい。
Figure 2009070386
Figure 2009070386
プロバイダ応答モジュール612は、ワークフローイネーブルプロバイダ102からのリクエストを監視し、それらに応答するソフトウエア及びルーチンである。プロバイダ応答モジュール612は、活性化に続くリクエストを処理する。一実施例では、プロバイダ応答モジュール612は、登録されたワークフローイネーブルクライアント106の活性化に備えて、ワークフローイネーブルプロバイダ102からのHTTPリクエストを監視する。一実施例では、プロバイダ応答モジュール612は「ハロー(Hello)」コマンドのような第1コマンドを監視する。別の実施例の場合、プロバイダ応答モジュール612は、そのワークフローイネーブルクライアント106を活性化するのに或いは既に入力されているPINを有効にするのに、認証(ワークフローイネーブルプロバイダ102からの信用証明)又はPINが必要であるか否かを確認する。PINが一切不要であった場合又は適切な認証が与えられていた場合、プロバイダ応答モジュール612は、HTTP応答を生成及び送信することでワークフローイネーブルプロバイダ102と共にやりとりを行い、ライトウェイトクライアント110により指定されているタスクを実行する。これらの生成された応答の具体例は、本発明による方法の説明(後述)の際に説明される。
PINが要求され、ハローコマンドがPINを一切含んでいなかった場合又は有効でないPINしか含んでいなかった場合、プロバイダ応答モジュール612はそのリクエストが承認されないことを応答し、ワークフローイネーブルプロバイダ102は、そのユーザからの有効なPINを要求し、包含され与えられているPINと共にハローコマンドを反復すべきことを指示する。一実施例では、有効なPINが要求されるPINの有効化及び応答の後に、RFC2617インターネット標準仕様に記載されているようなHTTP認証法が続く。プロバイダ応答モジュール612は、第2のコマンドである「活性化(Activation)」コマンドを監視する。この第2のコマンドに応答して、プロバイダ応答モジュール612は、ライトウェイトクライアント110に後に配布するために、ワークフローイネーブルプロバイダ102からのリクエストの一部として受信したファイル及びデータを、応答データストレージ614に格納する。プロバイダ応答モジュール612は、ワークフローイネーブルプロバイダ102に送信される応答の中にファイル及びデータを含める。例えば、ハローコマンドに応答するプロバイダ応答モジュール612により生成された応答は、UI要素と共に表示される文字を含む活性化フォーム(Activation form)を含むことができ、UI要素は、アクティブコマンドリクエストの一部として、プロバイダ応答モジュール612に返す情報をユーザが提示することを可能にする。このフォームは、アクティブコマンドリクエストと共に包含されるべき何らかのスキャンを指定するのに使用される。これらのUI要素を通じて入力された値及び生成された何らかのスキャンデータは、アクティブコマンドリクエストの一部としてプロバイダ応答モジュール612に送信される。このデータは、以下で詳細に説明されるように、クライアント応答モジュール606によりワークフローイネーブルクライアント106に利用可能にされる。プロバイダ応答モジュール612により生成された応答(レスポンス)は、ワークフローイネーブルプロバイダ102による出力等のための他のファイル又はデータを含んでよい。他の具体例として、アクティブコマンドに応答してプロバイダ応答モジュール612により生成された応答は、ワークフローイネーブルプロバイダ102により印刷されるべきファイルを含んでもよい。プロバイダ応答モジュール612に降り生成される応答は:1)ファイルを伴う応答、2)データを伴わない応答、3)ファイルを取り出すアドレスを伴う応答、4)有効なPINが供給されなければならない応答又は5)他の何らかのエラー状態が生じている応答かもしれない。
応答データストレージ614は、ワークフローイネーブルプロバイダ102から受信した情報を格納するメモリ又はストレージである。応答データストレージ614は、データが受信側のライトウェイトクライアント110に送信されるまで、そのデータを格納する。メモリは通常のタイプのものであり、例えば、ワークフロープロセッサ616により使用するために割り当てられた作業メモリの一部、又はハードドライブのような磁気メモリ等でもよい。代替実施例では、スキャンされたファイル、ワークフローイネーブルクライアント自身の印刷ファイル、及び他の形式のデータが、ワークフローマネジャ108により、クライアント情報ディレクトリ604内のライトウェイトクライアント110のファイル及びサブディレクトリの形式で利用可能にされる。登録中にライトウェイトクライアント110により印刷ファイルが指定されていた場合、そのファイルは、登録リクエストで指定されているファイル名と共にベースワークフローイネーブルクライアントURIに現れる。1つの活性化の間に生成された総ての情報は、yyyMMdd’T’HHmmss’Z’.a.b.c.dの形式のサブディレクトリの名前と共に、ワークフローイネーブルクライアントの基本ウィジェット(widget)URIのサブディレクトリにより、ライトウェイトクライアント110に利用可能にされ、この場合におけるyyyMMdd’T’HHmmss’Z’は活性化がなされた際のタイムスタンプであり(インターネットタイムフォーマットにおけるもの、除去される句読点を除く)、a.b.c.dは活性化を実行したワークフローイネーブルプロバイダ102のIPアドレスにおけるものである。スキャンされたファイルは自身のスキャンサブディレクトリ内に現れ、活性化フォームで指定されているファイル名と同じ名前を有する。1つのスキャンで複数のファイルが生成されていた場合、複数ページ文書の場合と同様に、複数のファイルがそのスキャンディレクトリに用意される。ワークフローイネーブルプロバイダ102により提供されたオリジナルのファイル名及びコンテンツファイルは、可能であれば保存されるべきである。ワークフローイネーブルプロバイダ102の活性化が、サポートしている何らかの代替プロトコルを指定していた場合(例えば、IPP又はLPD)、これらのプロトコルを介してワークフローイネーブルプロバイダ102にアクセスするためのURLは、活性化サブディレクトリ内のファイルalt.uriに現れる。ファイルは、text/uri-list の形式であり、CRLFにより分離された1つ以上のURIで簡易に構成される。応答データストレージ614は、ワークフローイネーブルプロバイダ102を追跡するのに使用されるデータを格納し、そのワークフローイネーブルプロバイダ102はライトウェイトクライアント110に対して現在活性化されているものである。
ワークフロープロセッサ616は、ワークフローマネジャ108の動作を制御するコントローラである。ワークフロープロセッサ616は、ワークフローマネジャ108の他の要素の動作も制御し、場合によっては、ここで説明される機能をもたらすルーチンを実行する。ワークフロープロセッサ616は、ハードウエアの場合は通常のタイプのプロセッサでもよいし、ソフトウエアの場合はマスタ制御プログラムでもよい。
直接印刷の特殊な場合、本発明のワークフロープロセッサ616は、ワークフローマネジャ108がワークフローイネーブルプロバイダ102にとって直接的にファイルを印刷することを可能にし、そのワークフローイネーブルプロバイダは、特定のライトウェイトクライアント110を以前に活性化していたものである。ワークフローマネジャ108は、URLで指定された活性化を実行したワークフローイネーブルプロバイダ102に指定したファイルを印刷する(又は出力する)。必要ならば、ワークフローマネジャ108は、ワークフローイネーブルプロバイダ102により理解可能なフォーマットにファイルを変換することを試みる(例えば、ポストスクリプトからPCLに変換する)。ワークフローマネジャ108は、URL:http://host:port/internal-ID/yyyyMMdd’T’HHmmss’Z’.X.X.X.X/に対するPOSTリクエストを、1つ以上のパラメータと共に受信し、そのパラメータは:1)op:(要)印刷されるべきことを表す,2)印刷ファイル:(要)ライトウェイトクライアント110がワークフローイネーブルプロバイダ102へ印刷することを希望していることを表す。これはワークフロープロセッサ616からの応答を生成し、ワークフロープロセッサ616は、成功した場合OK(200)を返し、印刷ファイルがワークフローマネジャ108によりワークフローイネーブルプロバイダ102の理解できるものに変換できなかった場合又はワークフローイネーブルプロバイダ102がどの種類の印刷機能もサポートできなかった場合、非サポートメディアタイプ−Unsupported Media Type−(415)を返し、指定されたURLが未知であった場合、発見不可−Not Found−(404)を返す。
ワークフローストレージ618は、ライトウェイトクライアント110を格納するメモリ又はストレージである。一実施例では、図14を参照しながら説明されるように、ワークフローイネーブルクライアント106は何らかのコンピュータ装置で使用するためにダウンロード可能である。一実施例におけるワークフローマネジャ108はインターネットに接続されたサーバであるので、このワークフローストレージ618は、特定のワークフローイネーブルクライアント106の使用を待機している如何なるユーザによってもアクセスされてよい。ワークフローストレージ618は、印刷、スキャン、画像処理又は文書処理に関するタスクを幾つでも提供できるように、様々なワークフローイネーブルクライアント106のライブラリを格納することが好ましい。数個の特定のワークフローイネーブルクライアント106が以下で説明されるが、様々なオフィスタスクの如何なるものでも実行するために、開発者はワークフローイネーブルクライアント106を幾つでも作成してよいことを、当業者は理解するであろう。例えばオンライン又は小売店からのダウンロード又は購入により、或いは広範に及ぶ様々なプログラミング言語を利用するエンドユーザ若しくは社内IT部署による書き込みにより(これらには限定されない)、ワークフローイネーブルクライアントは、ワークフローマネジャ108とは完全に分離して、取得可能であることにも留意すべきである。
セキュリティ及びロギングモジュール620は、登録されたライトウェイトクライアント110の何らかの実行に関連するセキュリティ及びロギング機能を実行するソフトウエア及びルーチンである。一実施例では、セキュリティロギングモジュール620は、そのワークフローマネジャ108で実行された処理の履歴(ログ)を生成及び維持する。一実施例では、セキュリティロギングモジュール620はログを維持し、各ログエントリは、イベントの記述に加えて、ログの中の過去のエントリの暗号ハッシュにより構成される。一実施例では、“Synchronizing Distributed Work Through Document Logging”と題する西暦委2004年7月9日付けで出願された米国特許出願第10/887,998号に開示されている方法を、セキュリティロギングモジュール620は使用し、本願はその文献の内容全体をリファレンスに組み入れる。更に別の実施例では、ワークフローイネーブルプロバイダ102及びワークフローマネジャ108の各々は、各自自身のロギングを有し、各々がデータを送受信し、ログエントリを生成し、そのログエントリは:1)送信した又は受信した何らかのデータのハッシュ(ID)、及び2)過去のログエントリのハッシュ(ID)で構成され、ログエントリは通信の一部分として送信される(ログに「関わりをもたせる(entangling)」及び同期させるのに使用される)。
通信モジュール
図7Aを参照するに、本発明による通信マネジャの第1形態が示されている。概して通信マネジャ406/506は通信マネジャ406のように以下で言及されるが、通信マネジャ506はワークフローイネーブルクライアント106用であることを除いて(406と)同様な機能を有することに留意を要する。通信マネジャ406は信号線422,120に結合され、上述したような他の要素と通信する。一実施例では、通信マネジャ406はデータ伝送モジュール702、接続及びディスカバリモジュール704、通知及び登録モジュール706、そしてプロセッサ制御インタフェースモジュール708を含む。
データ伝送モジュール702は、プロセッサ制御インタフェースモジュール708との通信及び信号線120を介した他の通信マネジャ(図示せず)との通信に適合している。データ伝送モジュール702は、他の通信マネジャとの間でメッセージ及びデータを送受信する。一実施例では、データ伝送モジュール702は、他の通信マネジャと共に通信する所定のプロトコルを使用する。これは、分散ワークフローイネーブルシステム内のどのワークフローイネーブルプロバイダ102にとっても又はどのワークフローイネーブルクライアント106にとっても互いに通信するための基本構造をもたらす。データ伝送モジュール702は、メッセージ及びデータを、プロセス制御モジュール404の理解可能なコマンド及びデータに変換し、それらをプロセス制御モジュール404に送る。データ伝送モジュール702は、プロセッサ制御インタフェースモジュール708を介してプロセス制御モジュール404と通信する。
接続及びディスカバリモジュール704も、プロセッサ制御インタフェースモジュール708との通信及び信号線120を介した他の通信マネジャ(図示せず)との通信に適合している。接続及びディスカバリモジュール704は、ネットワーク104に参加した新たなワークフローイネーブルプロバイダ102を発見し、それらとの接続を確立する責務を有する。別の実施例では、接続及びディスカバリモジュール704は、ネットワーク104に接続された他のワークフローイネーブルクライアント106を発見して接続を確立する。新たなワークフローイネーブルプロバイダ102がネットワーク104に接続されると、その新たなワークフローイネーブルプロバイダはそのネットワーク104にとって新しいことを示すハートビート(heartbeat)信号を送信する。更に、いったん接続されると、ワークフローイネーブルプロバイダ102は周期的に信号を送信し、接続及びディスカバリモジュール704は、そのワークフローイネーブルプロバイダ102が依然としてネットワーク104に接続されていることを確認するためにその信号を使用する。接続及びディスカバリモジュール704は、そのようなハートビート信号を監視する。ハートビート信号を検出する際、接続及びディスカバリモジュール704は新たなワークフローイネーブルプロバイダ102との接続を確立する。接続を確立するため、接続及びディスカバリモジュール704は、身元情報(識別情報)及び通信プロトコル情報を新たなワークフローイネーブルプロバイダ102とやりとりする。一実施例では、接続及びディスカバリモジュール704は、サービスを提供するのに利用可能なワークフローイネーブルプロバイダ102のリストを維持する。
ワークフローイネーブルプロバイダ102及び通信マネジャ406の間で通信リンクがいったん確立されると、通知及び登録モジュール706が活性化される(アクティブになる)。通知及び登録モジュール706は、プロセッサ制御インタフェースモジュール708との通信及び信号線120を介した他の通信マネジャとの通信に適合している。上述したように、各ワークフローイネーブルプロバイダ102は様々な能力を有するかもしれない。例えば、第1ワークフローイネーブルプロバイダ102は図形ディスプレイを備えておらず、印刷できるだけであり;第2ワークフローイネーブルプロバイダ102はスキャンも印刷も可能であり、図形ディスプレイを備えており;第3ワークフローイネーブルプロバイダ102は文書を送信する能力しかない。通知及び登録モジュール706は、通知情報を処理し、ワークフローイネーブルプロバイダ102と共にそれらが提供するサービスに備えて登録を行う。一実施例では、ワークフローイネーブルプロバイダ102は、ネットワーク104を介してメッセージを周期的に送ることで、それらが提供可能なサービスを通知する。代替例として、通知及び登録モジュール706は、特定のワークフローイネーブルプロバイダ102が提供できるサービスの情報を要求できる。通知及び登録モジュール706は、ワークフローイネーブルプロバイダ102により送信された通知メッセージを処理する。通信マネジャ406のデフォルト設定に依存して、通知及び登録モジュール706は、サービスが通知されると速やかにサービスを登録する、或いは特定のサービスを求めるリクエストがプロセス制御モジュール404から受信された場合にサービスを登録する。更に別の実施例では、通知及び登録モジュール706は、プロセス制御モジュール404による実行に利用可能なプロセス及びルーチンに関するサービスを登録する。登録モジュール706は、ワークフローイネーブルプロバイダ102と共に情報を交換することで登録を実行し、ワークフローイネーブルプロバイダ102により提供される機能が確認されるようにし、且つそのようなサービスのコマンド及びデータ構造がデータ伝送モジュール702で使用できるようにする。更に別の実施例では、通知及び登録モジュール706は、例えばクライアントがネットワークから分離したような場合に、ワークフローイネーブルクライアント106の登録を抹消する。
プロセッサ制御インタフェースモジュール708は、プロセス制御モジュール404に対するインタフェースを与える。プロセッサ制御インタフェースモジュール708は、データ伝送モジュール702、接続及びディスカバリモジュール704、そして通知及び登録モジュール706からデータ及びコマンドを受信し、プロセス制御モジュール404に対して通信リンクを提供する。
図7B及び図4B及び6を参照するに、通信マネジャ456の第2形態が示されている。第2形態の通信マネジャ456は、ワークフローイネーブルプロバイダ102のWIFユニット352及びワークフローマネジャ108間の通信を可能にする。通信マネジャ456は、制御インタフェースモジュール708、通知モニタ720、リクエストモジュール722及び応答モジュール724を含む。上述したように、ワークフローイネーブルプロバイダ102は、ワークフローイネーブルクライアント106の通知を監視し、ワークフローイネーブルクライアント106をアクティブにし、場合によっては、ライトウェイトクライアント110に以後配布するためにワークフローマネジャ108にファイル又は情報を配布する。通信マネジャ456は、この通信機能をサポートするように上記の要素を含む。
特に、通知モニタ720は、ネットワーク104上のヘビーウェイトクライアント112及びワークフローイネーブルクライアント106の通知を監視するソフトウエア及びルーチンである。通知モニタ720は、ワークフローマネジャ108の通知モジュール608により、又はヘビーウェイトクライアント112の通知マネジャ564により出力された通知を受信及び処理する。一実施例では、通知モニタ720は、受信した通知をプロセッサ制御インタフェースモジュール708に送信し、WIFユニット352のプロセス制御モジュール454による追加的な処理に備える。受信した通知に応答して、プロセス制御モジュール454は、ワークフローイネーブルプロバイダ102がワークフローイネーブルクライアント106により要求されたサービスを提供するのに必要な機能を有するか否かを確認する。一実施例では、プロセス制御モジュール454は、活性化可能な登録済みのワークフローイネーブルクライアント106のリストを維持する。更に、プロセス制御モジュール454は、特に、条件を満たす登録済みワークフローイネーブルクライアント106に対して、ユーザインタフェースを生成及び表示してもよい。
通信マネジャ456の要求モジュール722は、プロセッサ制御モジュール454と共に協働して、登録されたワークフローイネーブルクライアント106をアクティブにし、ヘビーウェイトクライアント112の通知マネジャ564及びワークフローマネジャ108のプロバイダ応答モジュール612に、追加的なデータ及びコマンドを提供する。例えば、ワークフローイネーブルプロバイダ102で受信したユーザ入力に応答して、要求モジュール722は活性化要求信号(アクティベーションリクエスト)を生成してワークフローマネジャ108に送る。一実施例ではそのリクエストはHTTPリクエストである。リクエストモジュール722は、選択されたワークフローイネーブルクライアント106により記述されているようなワークフローイネーブルプロバイダ102での処理結果のファイル、及び/又は個人識別番号のような認証情報を含むリクエストを生成及び送信することができる。要求モジュール722はネットワーク104を介した通信に適合している。
通信マネジャ456の応答モジュール724は、プロセッサ制御モジュール454と共に協働し、ワークフローマネジャ108又はヘビーウェイトクライアント112からの応答を受信し、受信した応答を処理する。例えば、ワークフローマネジャ108は、要求モジュール722から受信したリクエストに対する応答を送信する。一実施例では、その応答はHTTPレスポンスである。この応答はネットワークを介して送信され、応答モジュール724により受信される。例えば、データ及び/又はコマンドを抽出し、そのデータ及び/又はコマンドをプロセッサ制御インタフェースモジュール708に提供し、プロセッサ制御モジュール454に配布するようにすることで、応答モジュール724はその応答を処理する。応答は、ユーザインタフェースを更新するための簡易なコマンド、ユーザからのPINを要求する簡易なコマンドでもよいし、プロセッサ制御モジュール454により処理するのに必要なファイルでもよいし、或いはワークフローイネーブルプロバイダ102により印刷されるファイルでもよい。応答モジュール724はネットワーク104を介する通信に適合している。
図7Cに加えて図5B及び図6を参照するに、通信マネジャ556の第3形態が示されている。第3形態の通信マネジャ556は、ライトウェイトクライアント110のWIFユニット354及びワークフローマネジャ108間の通信を可能にする。通信マネジャ556は、プロセッサ制御インタフェースモジュール708、登録ユニット740及びポーリングモジュール742を含む。上述したように、ライトウェイトクライアント110はワークフローマネジャ108と共に登録しなければならず、場合によってはワークフローマネジャ108からデータを抽出しなければならない。登録ユニット740及びポーリングモジュール742はそのような機能を提供する。
登録ユニット740は、ワークフローマネジャ108の登録モジュール620と共にやりとりを行うソフトウエア及びルーチンである。登録ユニット740は、登録コマンドを生成し、ワークフローマネジャの登録モジュール620に送信する。一実施例では、登録コマンドはHTTPリクエストであり、ライトウェイトクライアント110に直接関係する情報を含む。例えば、ライトウェイトクライアント110の名前、ユーザ名、トップレベルメニュー名、ワークフローイネーブルプロバイダ102が提供可能でなければならないサービスのリスト、サービス(例えば、スキャン要求、ファックス要求、印刷要求等)、ワークフローイネーブルプロバイダにより表示される文字その他のUI要素(そのUIでクライアントは選択を行う)、パーシステンスブーリアン(persistence Boolean)、認証情報、印刷データ、印刷データの場所、ライトウェイトクライアント110の実行に必要なデータや情報等をHTTPリクエストは含んでもよい。例えば、ライトウェイトクライアント110で実行されるタスクが印刷ニュース処理であった場合、HTTPリクエストは、クライアントが起動した際に印刷されるニュースを含むファイルを有する。これに応じて、登録ユニット740は、情報の取得及び後の登録抹消に備えて、ワークフローマネジャ108から或る場所(例えば、URL)を受信する。登録ユニット740はその場所(ロケーション)を実際に使用するポーリングモジュール742に与える。
ポーリングモジュール742は、ワークフローマネジャ108から情報を取得するソフトウエア及びルーチンである。ポーリングモジュール742は、ワークフローマネジャ108のクライアント応答モジュール606との通信に適合している。ポーリングモジュール742は、登録ユニット740からの場所(ロケーション)を使用し、そのアドレスにリクエストを送信する。一実施例では、ポーリングモジュール742はそのロケーション宛のリクエストを周期的に生成及び送信する。一実施例では、ワークフローマネジャ108はクライアント情報ディレクトリ604の中に、ファイルのディレクトリ及びサブディレクトリを維持する。ワークフローイネーブルプロバイダ102による何らかの処理結果は、そのようなディレクトリに格納される。例えば、複数のファイルが1回のスキャンで生成された場合、例えば複数ページの文書の場合、複数のファイルがこのスキャンディレクトリに用意される。ワークフローイネーブルプロバイダ102により提供されるオリジナルのファイル名及びコンテンツタイプは、可能ならば予約される。データを予測しているワークフローイネーブルクライアント106は、それらのワークフローイネーブルクライアントURIをポーリングし、最後にポーリングして以来、何らかの新たなサブディレクトリが作成されたか否かを確認し、発見された如何なる新規ファイルをも取得する。一実施例では、ポーリングモジュール742は、IF-Modified-SinceHTTPリクエストヘッダを利用して、ポーリングにより生成されるトラフィックを制限する。
プロセス制御モジュール
図8Aを参照するに、本発明によるワークフローイネーブルプロバイダのプロセス制御モジュール404の一例が示されている。プロセス制御モジュール404は、状態マシーン802、トランスレータ804、機能及びルーチン用のストレージ806、プロバイダインタフェースモジュール808及び通信インタフェースモジュール810を有する。
状態マシーン802は、トランスレータ804、ストレージ806、プロバイダインタフェースモジュール808及び通信インタフェースモジュール810と通信するように適合している。状態マシーン802は、プロセス制御モジュール404の全体的な動作を制御する。一実施例では、状態マシーン802は3つの状態を含む。第1の状態では、状態マシーン802は入力を受信する。入力は、プロバイダインタフェースモジュール808又は通信インタフェースモジュール810からのものでよい。第2状態では、状態マシーン802は入力を処理する。状態マシーン802はストレージ806に結合され、ストレージは状態マシーン802により実行可能な様々な機能又はルーチンを含む。プロバイダインタフェースモジュール808及び通信インタフェースモジュール810から受信したデータを用いて、状態マシーン802は、入力に応答して、機能又はルーチンの1つをストレージ806から選択及び実行する。一実施例では、ストレージ806における機能及びルーチンは、ワークフローイネーブルプロバイダ102により通知されたサービスに対応する。例えばMFPの場合、状態マシーン802は、印刷、コピー、スキャン、ユーザインタフェースの表示、又はそれらの組み合わせ等のようなルーチンを実行できる。第3状態の場合、状態マシーン802は処理の出力を送信する。出力は、通常のプロバイダ302、通信マネジャ406、トランスレータ804又は(424の信号を介して)外部装置に方向付けられてもよい。状態マシーン802は信号線428を介してユーザインタフェースモジュール402と通信し、ユーザインタフェースを生成する。これらのユーザインタフェースは状態マシーン802により送信され、それらが通常のプロバイダ302で表示されるようにする。状態マシーン802は、ワークフローイネーブルクライアント106から受信した指示に応じて、ユーザインタフェースを分類及び提示する。例えば、状態マシーン802はユーザ及び対応する機能/ルーチンを識別し、ユーザインタフェースを提示し、そのユーザインタフェースは、ワークフローイネーブルプロバイダ102を使ってユーザが実行してよいルーチン及び特定のユーザの間の関連性を示す。
トランスレータ804は、状態マシーン802の出力を、通常のプロバイダ302に理解可能なフォーマットに変換(翻訳)するソフトウエア又はルーチンである。例えば、トランスレータ804は、通常のプロバイダ302のアプリケーションインタフェースに符合するような対応する命令及び機能に、状態マシーン802の出力を変換する。トランスレータ804は、通常のプロバイダ302からのフィードバック制御信号及び他の情報を、状態マシーン802が使用可能なフォーマットに変換する。トランスレータ804は、プロバイダインタフェースモジュール808及び状態マシーン802との通信に適合して結合されている。
機能及びルーチン用のストレージ806は如何なる数のフォーマットを備えていてもよい。ストレージ806は、「ウィジェット(widget)」と言及される内蔵アプリケーションを格納するのに使用される。内蔵アプリケーション又はウィジェットは、プロセス制御モジュール404/504により実行可能な制御コマンドとコマンドに必要なデータ又はデータリソースとの組み合わせを含む。例えば一実施例の場合、ストレージ806は通常のプロバイダ302のメモリの一部分である。別の実施例の場合、ストレージ806は通常のプロバイダ302に結合されたメモリである。更に別の実施例の場合、ストレージ806はハードディスクのような不揮発性メモリでもよい。
プロバイダインタフェースモジュール808は、トランスレータ804及び状態マシーン802と結合される。プロバイダインタフェースモジュール808は、信号線420により通常のプロバイダ302に結合され、通常のプロバイダ302、トランスレータ804及び状態マシーン802の間の通信リンクを与える。
通信インタフェースモジュール810は、状態マシーン802に結合される。通信インタフェースモジュール810は、プロセス制御モジュール404及び通信マネジャ406の間の通信リンクを提供する。
図8Bを参照するに、本発明の実施例によるワークフローイネーブルクライアント106のプロセス制御モジュール504の一例が示されている。プロセス制御モジュール504は、データプロセッサ812、プロセスマネジャ814、機能及びルーチン用のストレージ806、クライアントインタフェースモジュール808及び通信インタフェースモジュール810を有する。ストレージ806及び通信インタフェースモジュール810は、上述したのもの同様な機能を有するので、重複的には説明されない。クライアントインタフェースモジュール808は、プロバイダインタフェースモジュール808に関して説明されたのと同様な機能を有するが、クライアントインタフェースモジュール808は、信号線520に結合されている点、及びプロセス制御モジュール504を通常のクライアント306に結合する点で異なる。本発明で特に優れた点の1つは、ワークフローを管理でき、追加的な処理を用意できることである。これらの機能の大部分は、データプロセッサ812及びプロセスマネジャ814によってもたらされる。本発明の他の利点は、ワークフローイネーブルクライアント106が全体的なプロセスを制御できることである。更に、本発明はワークフローイネーブルプロバイダ102から計算を移す機能を有し、必要に応じてワークフローイネーブルクライアント106で計算が実行できるようにする。
データプロセッサ812は、ルーチン及び機能を取得するためにストレージ806に結合される。データプロセッサ812は、通常のタイプのものでよく、ストレージ806内のルーチン及び機能を実行することができる。一般に、データプロセッサ812は、通信マネジャ506又は通常のクライアント306から受信したデータを操作及び処理する。例えば、データプロセッサ812は、スキャンした画像を受信し、そのスキャンした画像をPDFのような出力フォーマットに処理する。同様に、データプロセッサ812は、フォーマット変換、光文字認識、画像改善、その他の文書及びスキャン画像に一般的に実行されるデータ処理のような入力データに関する処理を幾つでも実行できることを、当業者は認識するであろう。一実施例では、データプロセッサ812はプロセスマネジャ814の指示及び制御の下にある。
プロセスマネジャ814は、ストレージ806、データプロセッサ812、クライアントインタフェースモジュール808及び通信インタフェースモジュール810に結合されている。プロセスマネジャ814は、ストレージ806に結合され、内蔵アプリケーション又はウィジェットを取得し、それらを実行する。ウィジェットが実行されたことに応答して、プロセスマネジャ814はクライアントインタフェースモジュール808を使用して、従来のクライアント306へデータを送信し及びそこからデータを受信する。プロセスマネジャ814はクライアントインタフェースモジュール808を使って、制御信号及びユーザインタフェース信号を、従来のクライアント306に送信し及びそこから信号を受信する。同様に、プロセスマネジャ814は、通信インタフェースモジュール810を使って、ワークフローイネーブルプロバイダ102へデータを送信し及びそこからデータを受信する。プロセスマネジャ814は、通信インタフェースモジュール810を介して、ワークフローイネーブルプロバイダ102へデータを送信し及びそこからデータを受信する。特定の内蔵アプリケーション又はウィジェットの実行の際、プロセスマネジャ814は、通信インタフェースモジュール810を用いて、様々なワークフローイネーブルプロバイダ102とやりとりを行ってよいことを、当業者は認識するであろう。例えば、プロセスマネジャ814はMFPとやりとりを行い、通信インタフェースモジュール810を用いて画像をスキャン及び捕捉し、データプロセッサ812の機能を使って、サーチ可能なPDFを生成し、再び通信インタフェースモジュール810を使ってそのサーチ可能なPDFをアマゾンS3(AmazonS3)のようなウェブサーバに格納する。
ユーザインタフェースモジュール
図9を参照するに、本発明によるユーザインタフェースモジュール例402,502が示されている。以下、ワークフローイネーブルプロバイダ102の第1形態のユーザインタフェースモジュール402に関連して、ユーザインタフェースモジュール402,502が説明される。これは理解の簡明化を図るためであるが、当業者は、他のユーザインタフェースモジュール502,452,552も同一又は類似する機能を有することを理解するであろう。ユーザインタフェースモジュール402は、ダイナミックユーザインタフェースユニット902、ユーザインタフェース配送モジュール904、ユーザインタフェースコンフィギュレーションストレージ906及びプロセス制御インタフェースモジュール908を有する。
ダイナミックユーザインタフェースユニット902は、ユーザインタフェースを動的に生成するソフトウエア及びルーチンである。ダイナミックユーザインタフェースユニット902は、プロセス制御インタフェースモジュール908と通信し、プロセス制御インタフェースモジュール404から制御信号及び入力を受信することに適している。ダイナミックユーザインタフェースユニット902は、ユーザインタフェースコンフィギュレーションストレージ906にも結合され、ユーザインタフェースの生成を必要とするユーザに関連するアプリケーション及びユーザに関する情報を抽出する。例えば、スキャン処理及び印刷処理を実行するために、第1ユーザはクライアントを活性化している。これに対して、第2ユーザはそれらのクライアントを活性化しているが、文書フォーマット変換及びPDF生成を行うクライアントも活性化している。従ってダイナミックユーザインタフェースユニット902は、ユーザ、プロバイダ302及びクライアント306に応じて異なるユーザインタフェースを生成する。更に、ダイナミックユーザインタフェースユニット902は複数のユーザで使用可能な1つのインタフェースを生成し、各ユーザは自身の複数のアプリケーションを有し、そのインタフェースは複数の異なるプロバイダ302及びクライアント306に提示される。例示的なユーザインタフェースは、図16乃至21を参照しながら以下で説明される。ダイナミックユーザインタフェースユニット902は、その出力をユーザインタフェース配送モジュール904に提供する。
ユーザインタフェース配送モジュール904は、特定の通常のプロバイダ302又は通常のクライアント306におけるユーザインタフェースを生成するのに必要な命令を送信するソフトウエアルーチンを含む。ユーザインタエース配送モジュール904は、生成されるユーザインタフェースに関する情報をダイナミックユーザインタフェースユニット902から受信するように結合される。ユーザインタフェース配送モジュール904は、プロセス制御インタフェースモジュール908によりプロセス制御モジュール404に結合される。この接続を通じて、ユーザインタフェース配送モジュール904は、通常のプロバイダ302にとって理解可能で実行可能な命令及びコマンドを送信することができる。本質的には、ユーザインタフェース配送モジュール904は、通常のプロバイダ302に対して、表示するものを通知する。
ユーザインタフェースコンフィギュレーションストレージ906は、プロバイダにおけるユーザインタフェースを生成するのに必要な様々な情報を格納している。例えばユーザインタフェースコンフィギュレーションストレージ906は、ユーザが見るのに慣れているインタフェースのスタイル、ユーザのID、ユーザに利用可能なワークフローイネーブルクライアント106、通常のプロバイダ302の能力、プロバイダのインタフェースの表示能力等に関する情報を含み、更にユーザインタフェースの生成に必要な当業者が理解している他の情報を含む。
プロセス制御インタフェースモジュール908は、プロセス制御モジュール404と通信するためのルーチンを有する。通常のプロバイダ302又は通常のクライアント306と通信するための他のインタフェースモジュールは図示されていないが、ユーザインタフェースモジュール402に含まれてよいことを、当業者は認識するであろう。
好適実施例では、ユーザインタフェースモジュール452,552は、ダイナミックユーザインタフェースユニット902、ユーザインタフェース配送モジュール904及びプロセス制御インタフェースモジュール908を上述したように含んでいる。当業者はユーザインタフェースモジュール452,552が1つのモデルを提供することを理解するであろう。そのモデルでは、表示するUIはハローリクエストに応じて返されることで得た起動形式によって記述され、ダイナミックユーザインタフェースユニット902はその起動形式で情報を提示し、プロセス制御インタフェースモジュール908はその起動形式で記述されているように動的に生成されたユーザインタフェースの表示を制御する。
代替実施例では、ユーザインタフェースモジュール402,502,452,552の要素の全部又は何れかが、プロセス制御モジュール404,405,454,554にそれぞれ組み込まれてよいことに留意すべきである。
方法
図10A及び10Bは、本発明の2つの実施例による分散ワークフロー処理の一般的な方法例を示すフローチャートである。第1形態の分散ワークフローイネーブルシステム100A(ワークフローマネジャ108のないもの)と共に実行する際の一般的な方法を図10Aは示す。ワークフローマネジャ108を伴う第2形態の分散ワークフローイネーブルシステム100Bで実行する際の一般的な方法を図10Bは示す。
図10Aを参照しながら第1の一般的方法1000を説明する。本方法は、パーソナルコンピュータのようなコンピュータ装置がワークフローイネーブルクライアント106をダウンロードすることから始まる1002。次に、ユーザはワークフローイネーブルクライアント106をパーソナルコンピュータ上で走らせ、ワークフローイネーブルクライアント106を構築する1004。ユーザID、アカウント番号、サーバロケーション、好みのインタフェース等の基本的なコンフィギュレーション情報を、ユーザは入力する。ワークフローイネーブルクライアント106はネットワーク104と接続し、ネットワーク104上でサービスを提供している何らかのワークフローイネーブルプロバイダ102を発見する1006。ワークフローイネーブルクライアント106が実行するタスク及びそれが必要とする機能に依存して、ワークフローイネーブルクライアント106は1つ以上のワークフローイネーブルプロバイダ102に登録し1008、そのプロバイダ102はワークフローイネーブルクライアント106の機能条件を満たすことができる。次に、ワークフローイネーブルプロバイダ102は、実行されるタスクに従って、ワークフローイネーブルクライアント106により指定されているようにユーザインタフェース(UI)を表示する1010。ワークフローイネーブルプロバイダ102はユーザから入力を受信する1012。ワークフローイネーブルプロバイダ102は入力を処理する1014。必要ならば、ワークフローイネーブルプロバイダ102は、追加的な処理に関するワークフローイネーブルクライアント106に情報を送信してよい。このプロセスは、結果をワークフローイネーブルクライアント106に転送すること、ワークフローイネーブルプロバイダ102により印刷することを含んでもよい。ワークフローイネーブルプロバイダ102及び/又はワークフローイネーブルクライアント106による処理の後、本方法は、ワークフローイネーブルクライアント106により指定されたタスクを完了するために、追加的な入力が必要であるか否かを確認する。例えば、ワークフロープロセスを始めることに加えて、追加的な認証又は情報(例えば、PIN)が要求されてもよい。追加的な入力が要求される場合、本方法はステップ1010に戻り、適切な情報を求めるためにGUIを提示する。追加的な入力が一切必要なかった場合、本方法は完了し、終了する。特定のタスクに関する本方法の例は、図13A,15A及び15Bを参照しながら以下で詳細に説明される。
図10Bを参照しながら第2の一般的方法1050を説明する。本方法はワークフローイネーブルクライアント106のダウンロード1002及び構築1004により始まる。そして本方法はワークフローイネーブルクライアント106をワークフローマネジャ108に登録する。ワークフローマネジャ108は登録されたワークフローイネーブルクライアント106をネットワーク104上で告知する。1つ以上のワークフローイネーブルプロバイダ102がその告知を受信し、それらが告知で列挙されている総てのサービスを提供できるか否かを確認する1055。あるワークフローイネーブルプロバイダが列挙されているサービスを提供できる場合、そのワークフローイネーブルクライアントをプロバイダ302で利用可能であるとして追加する1056。ワークフローイネーブルプロバイダ102は、登録済みのワークフローイネーブルクライアント106に特有のユーザインタフェースを提示する1058。ユーザインタフェースと共にユーザが情報を入力すると、ワークフローイネーブルプロバイダ102はそのユーザ入力を受け取る1060。ワークフローイネーブルプロバイダ102及び/又はワークフローイネーブルクライアント106で、受信した入力が処理される1062。特定のタスクに関する本方法の例は、図13B,15C,22A,22B及び23を参照しながら以下で詳細に説明される。
図11Aを参照しながら、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106(ワークフローマネジャ108を伴わない)間の本発明の一実施例による通信方法を説明する。より具体的には、図11Aに示される方法は、通信マネジャ406,506で実行されるステップを示す。本方法はネットワーク104に通信マネジャ506が参加することから始まる1102。次に、通信マネジャ506はサービス提供信号を監視する。上述したように、ワークフローイネーブルプロバイダ102は、ハートビート信号(heartbeat signal)を使ってサービスの利用可能性又は提供性を周期的に告知する1104。そして通信マネジャ406は、利用可能なサービスのリストを作成し、ネットワーク104上のワークフローイネーブルプロバイダ102の1つ以上の告知を選択する1106。一実施例では、通信マネジャ506は、プロセス制御モジュール504に情報を送信し、発見して接続するワークフローイネーブルプロバイダ102に関するユーザ入力を受信する。別の実施例では、通信マネジャ506は、デフォルト設定を有し、そのデフォルト設定に合うワークフローイネーブルプロバイダ102を自動的に発見して接続する。次に、ネットワーク104で現在利用可能な発見されたワークフローイネーブルプロバイダ102のリスト中のサービスを登録することで1108、通信マネジャ506は、接続及び発見プロセスを完了する。これはサービスを利用可能にし、登録されたワークフローイネーブルクライアント106によりアクセス可能にする。
特定のワークフローイネーブルクライアント106がワークフローイネーブルプロバイダ102に接続及び登録されると1108、個々のユーザも特定のサービスについて登録されなければならない。ステップ1110では、ネットワーク104の現在の様子に従って(言い換えれば、どのワークフローイネーブルプロバイダ102が接続されているか及びワークフローイネーブルクライアント106によりアクセス可能であるかに依存して)、ワークフローイネーブルプロバイダ102で提供されているサービスを個々のユーザが登録することで、登録プロセスは完了する。個々のユーザが登録されると1110、通信マネジャ506は、ワークフローイネーブルプロバイダ102に対するメッセージ及びデータを送信及び受信する1112。
図11Bを参照するに、本発明の一実施例によるプロセス制御モジュール404,504の動作方法が示されている。本プロセスはプロセスを特定して1152イネーブルにすることから始まる。この場合において、プロセスは内蔵アプリケーション又はウィジェットを指す。プロセスが特定されると、プロセスを実行するための論理コード又はプログラムコードが取得される1154。このプロセスの一例は、図14を参照しながら以下で詳細に説明される。一般に、内蔵アプリケーションはソースから取り出され、プロセス制御モジュール504のストレージに格納されている。次に、本方法は内蔵アプリケーションの実行を準備し、プロセスがクライアント306(又はプロセス制御モジュール404用のプロバイダ302)を使用するか否かを確認する1156。使用する場合、プロセス制御モジュール504は、実行処理を進める前に、クライアント306(又はプロバイダ302)にアクセスする1158。プロセス制御モジュール504は、クライアント(プロバイダ)インタフェースモジュール808を利用することで、クライアント306(又はプロバイダ302)にアクセスできる。プロセスがクライアントリソースを使用しない場合、本方法は、外部リソースがそのプロセスによって使用されるか否かを確認することに続く1160。使用される場合、本方法はステップ1166に進む前に外部リソースにアクセスする1162。例えば、プロセス制御モジュール504はウェブサービスにアクセスし、ステップ1162でそのウェブサービスに対するアクセスを設定する。一方、本方法が外部リソースを利用しない場合、本方法はクライアントワークフローユニット308内のリソースにアクセスすることに続く1164。より具体的には、プロセスマネジャ814は接続を設定し、プロセスを実行するためにデータプロセッサ812のリソースを割り当てる。リソース割当ステップ1158,1152,1164の何れかの後に、プロセス制御モジュールは、割り当てられたリソースを使って論理処理(ロジック)を実行する1166。一実施例では、図11Bで実行される全体的なプロセスがプロセスマネジャ814によって管理される。そのような例の場合、プロセスの異なる部分について、内部の、外部の又はクライアントのリソースを特定のプロセスが使用してもよい。そして本方法は、プロセスを完了するために、より多くのリソースへのアクセスが必要か否かを確認することに続く1168。必要であった場合、本方法はプロセスの残りの部分を行うためにステップ1156に戻る。必要でなかった場合、本方法は完了し、終了する。
図12を参照するに、本発明の一実施例によるユーザインタフェースを生成及び提示する方法が示されている。本プロセスはユーザインタフェースモジュール502がユーザインタフェースを取得することから始まる1202。例えば、ダイナミックユーザインタフェースユニット902がユーザインタフェースコンフィギュレーションストレージ906から情報を取り出すことで、本ステップが実行されてもよい。次に、ユーザインタフェースモジュール502はユーザインタフェースを通常のクライアント306/通常のプロバイダ302に送信し1204、通常のクライアント306/通常のプロバイダ302はそのユーザインタフェースを表示する。これに応答して、ユーザインタフェースモジュール502は、通常のクライアント306/通常のプロバイダ302から入力を受信する1206。本方法は入力がユーザを特定しているか否かを確認する1208。そうであれば、ユーザインタフェースモジュール502のダイナミックユーザインタフェースユニット902は、指定されたユーザに特有の新たなユーザインタフェースを動的に生成する1210。新たなユーザインタフェースが作成されると、本方法はそのユーザインタフェースを表示するために通常のクライアント306/通常のプロバイダ302に送信する。一方、入力がユーザを特定していなかった場合、本方法は、通常のクライアント306/通常のプロバイダ302が特定のユーザインタフェースを有する又は必要とするか否かを確認することに続く1212。必要とする場合、ユーザインタフェースモジュール502のダイナミックユーザインタフェースユニット902が、通常のクライアント306/通常のプロバイダ302に特有のユーザインタフェースを動的に生成する1214。例えば、通常のクライアント306/通常のプロバイダ302は、限定された機能的性能を有するかもしないし、或いは動的に作成可能なユーザインタフェースを拘束又は命令する限定された表示機能を有するかもしれない。通常のクライアント306/通常のプロバイダ302についてユーザインタフェースが動的に作成された後1214、本方法は表示するためにユーザインタフェースをその通常のクライアント306/通常のプロバイダ302へ送信する。通常のクライアント306/通常のプロバイダ302に対する特定のユーザインタフェースが無かった場合、本方法はステップ1216に進み、デフォルトのユーザインタフェースを取り出す。デフォルトのユーザインタフェースは、ステップ1218で提示される。ユーザインタフェースが通常のクライアント306/通常のプロバイダ302に送られた後、本方法は1206に戻り、通常のクライアント306/通常のプロバイダ302から追加的な入力を受信する。本発明方法は、通常のクライアント306及び通常のプロバイダ302双方に同じに見えるユーザインタフェースを、分散ワークフローイネーブルシステム100が提示できるようにするので、本発明方法は特に有利である、ということを当業者は認識するであろう。これは、ユーザインタフェースを使用する際、利用が簡単であること及びユーザが親しみやすいという利点をもたらす。所与の機能を実行するのに使用されている通常のプロバイダのタイプに依存せずに、ユーザインタフェースは通常のクライアント306により生成及び駆動できる。更に、クライアント駆動ユーザインタフェースは、通常のプロバイダ302が或る機能を提供することを可能にし、その機能は、例えばワークフローの一部分が通常のクライアント306で実行されるような場合に、通常のプロバイダにとって遠隔的に実行される。
図13Aを参照するに、本発明の第1形態の分散ワークフローイネーブルシステム100Aと共にスキャン動作を実行する方法が示されている。スキャン処理は“Scan2me”と言及され、ユーザはワークフローイネーブルプロバイダ102を使って文書をスキャンし、ワークフローイネーブルプロバイダ102で捕捉された画像は、そのユーザに関連するワークフローイネーブルクライアント106に送信される。“Scan2me”の機能を含む内蔵アプリケーションをワークフローイネーブルクライアント106が取得及びロードすることで、本プロセスが始まる1302。別の時点でワークフローイネーブルプロバイダ102はScan2me機能を活性化し及びイネーブルにする1304。ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106は互いに発見し1306、コネクションを設定し、Scan2meプロセスを使用するように登録する。ワークフローイネーブルプロバイダ102がScan2me機能と共にイネーブルにされるので、ユーザの身元及び登録に基づいてユーザインタフェースを提示することができる1308。ワークフローイネーブルプロバイダ102は通常の方法で文書をスキャンする1310。しかしながら、ユーザは本発明に従って登録されているので、プロバイダ302は文書のスキャンを適切なワークフローイネーブルクライアント106に送信できる。ステップ1304−1310がワークフローイネーブルプロバイダ102で実行されることを、当業者は認識するであろう。その後の何らかの時点で、ワークフローイネーブルクライアント106は、スキャンが追加的な処理に利用可能なことを通知するユーザインタフェースを生成及び提示する1312。ワークフローイネーブルクライアント106は、ワークフローイネーブルプロバイダ102から受信したスキャンを処理することに備えて、追加的な入力を要求するユーザインタフェースを提示する1314。ユーザはワークフローイネーブルクライアント106に情報を入力し、ワークフローイネーブルクライアント106はデフォルトのユーザ入力に従ってスキャンを処理する1316。
図13Aに関連して説明されたプロセスは、(協同して最終結果に到達できるように、ワークフローイネーブルクライアント106及びワークフローイネーブルプロバイダ102にロードされてよい)内蔵アプリケーションのほんの一例であることを、当業者は認識するであろう。様々な他のアプリケーションが存在することが理解されるべきであり、その一部は他の内蔵アプリケーションと共に以下で説明される。例えば、1)何らかのワークフローイネーブル装置で印刷すること、2)文書をスキャンし、電子メールを生成すること、3)文書をスキャンし、PDFファイルを生成すること、4)文書をスキャンし、ファイル、フォルダ又は外部ロケーションにそれを保存すること、5)文書をスキャンし、それを財務システムに与えること、6)文書をスキャンし、光文字認識を実行すること等に備えて、内蔵アプリケーションが生成されてもよい。
図13Bを参照するに、本発明の第2形態の分散ワークフローイネーブルシステム100B(例えば、ワークフローマネジャ108を伴う)と共にスキャン動作を実行する方法が示されている。図13Bは、スキャン処理を実行するステップ及び要素のトレース図を示す。ライトウェイトクライアント110がダウンロードされて構築され、コンピュータ装置で動作可能になっていることが、本方法以前に仮定されている。ライトウェイトクライアント110がワークフローマネジャ108に登録することで、本方法は始まる1352。これは一実施例では、ワークフローイネーブルクライアント106からワークフローマネジャ108へHTTPリクエスト(op=register, name=<client name>の必須フィールドと、フォームファイル、パーシステント、必要なPIN、印刷ファイル、スキャンディレクトリ及びゼロ個以上の条件(プロバイダが満足すべきことをリスト化したもの)等を指定する任意フィールドとを伴うHTTP POST)を生成及び送信することで行われる。ワークフローマネジャ108は、肯定応答又は確認応答信号及びロケーションと共にライトウェイトクライアント110に答える1354。一実施例では、確認応答信号は、HTTPリクエストヘッダ“Location:”を伴うHTTP応答(HTTP応答:OK(200))であり、クライアント内部IDに基づくクライアントのロケーションURLを指定する。ライトウェイトクライアント110が登録された後直ぐに、ワークフローマネジャ108はライトウェイトクライアント110のりよう可能性を告知する1356。ワークフローイネーブルプロバイダ102はその告知を受信し、利用可能なワークフローイネーブルクライアント106のリスト(WECリスト)を更新する1358。ワークフローイネーブルプロバイダ102は、ワークフローイネーブルクライアント106のリストを選別し、そのワークフローイネーブルプロバイダ102がサービスする用意のない機能を要求しているワークフローイネーブルクライアント106を削除する。そしてワークフローイネーブルプロバイダ102はユーザインタフェースを表示する1360。上述したように、ユーザインタフェースは、ユーザ及び利用可能なワークフローイネーブルクライアント106に特有のインタフェースを提示するようにカスタマイズされてもよい。一実施例では、ユーザ名及びワークフローイネーブルクライアント106の名前を、UIは選択可能なボタンとして含んでいる。次に、ユーザはワークフローイネーブルプロバイダ102で選択内容を入力する。
例えば、ユーザは複合機(ワークフローイネーブルプロバイダ102を含む)のところに行き、複合機のディスプレイパネルでUIのボタンを選択してもよい。ワークフローイネーブルプロバイダ102は通知信号を生成し、それをワークフローマネジャ108に送信する1364。例えば、通知信号はHTTPリクエスト(指定されたパラメータ“op=hello”を伴うHTTP GET)でもよい。ワークフローマネジャ108は、その通知信号に応答して、確認応答信号をワークフローイネーブルプロバイダ102に送信する。選択されたワークフローイネーブルクライアント106にPINが必要であった場合、応答はその旨を知らせる。この場合、ワークフローイネーブルプロバイダ102は、ユーザがPINを入力することを要求するユーザインタフェースを更新し、そのPINに基づく信用証明を用いてリクエストを再送する。一実施例では、有効なPINが提供されなかった場合の確認信号は、HTTP応答(HTTP応答−認証不可−UNAUTHORIZED(401))であり、RFC2617で指定されているようなHTTP認証を用いて信用証明が生成される。一実施例では、如何なるPINも必要とされなかった場合又は有効なPINが入力された場合、確認応答信号はHTTP応答(HTTP応答:OK(200))である。一実施例では、確認応答信号の本体(ボディ)は、ワークフローイネーブルプロバイダ102が表示すべきUI要素を示し、例えば印刷用の文字による指示又はチェックボックス、及びユーザが埋めるべき他の形式の要素を示す。一実施例では、そのように返されたフォームが、表現されるHTMLページとしてエンコードされる。別の実施例では、そのフォームはシンプルマークアップ言語を使ってエンコードされ、キャラクタシーケンス“[[”及び“]]”を使ってチェックボックス要素を囲むことで示されたチェックボックスと共に、テキスト及びチェックボックスUI要素を指定するだけである。(例えば、文書のスキャンを引き起こすことで、又は画像の取得を引き起こすことで)ワークフローイネーブルプロバイダ102が情報捕捉処理を実行すべきことの指示をも、フォームは含んでよく、そのフォームは捕捉処理を実行する際に使用されるべき何らかの選択的パラメータを指定してもよい。一実施例では、キャラクタシーケンス“{{”及び“}}”を用いて総てを囲んだ、0個以上の選択的パラメータが後に続くスキャンされる文書のフィールド名をフォームに付けることで、情報の捕捉が示される。次に、ワークフローイネーブルプロバイダ102は、ユーザインタフェースを更新し1368、スタートボタンを用意し、ワークフローマネジャ108により返されたフォームで指定されている他の何らかのUI要素を表示する。表示されている何らかのUI要素を用いて、ユーザは選択的に情報を提供し、スタートボタンを選択し、そのユーザ入力はワークフローイネーブルプロバイダ102により受信される1370。このワークフローイネーブルクライアント106によりなされるタスクは、文書のスキャン及び送付であるので、ワークフローマネジャ108から返されるフォームは、スキャンが実行されるべきこと、そしてワークフローイネーブルプロバイダ102がユーザの入力した文書をスキャンすること1372を指定する。スキャンは1ページでもよいし、何ページでもよい。代替実施例では、スキャン処理は、クライアントがスキャンデータとして選択する前に既に捕捉済みのデータを指定することを含み、例えば、ワークフローイネーブルクライアント106がカメラであり、ワークフローイネーブルクライアント106の選択が、画像の撮影された後に実行されるような場合である。次に、ワークフローイネーブルプロバイダ102は、スキャンデータと共に起動信号をワークフローマネジャ108に送信する1374。一実施例では、起動信号はHTTPリクエストにおけるものである(必須フィールド“op=active”と、任意フィールドalt=<プロバイダのサービスを表す代替プロトコルのリストを含むファイル>と、ワークフローマネジャ108により返されたフォームのスキャンリクエストセクションで指定されているようなフィールド名と共にスキャニング中に捕捉されたファイルとを伴うHTTP POSTである)。ワークフローマネジャ108は確認応答信号を送信する。 ライトウェイトクライアント110は、ワークフローマネジャ108を周期的にポーリングすることで、ワークフローマネジャ108からデータを取得し、ワークフローマネジャ108はライトウェイトクライアント110用に指定された如何なるデータも有する。
図13Bに示されるように、ライトウェイトクライアント110は信号を送信し1378、登録後速やかにワークフローマネジャ108からの情報を求める。例えばこれは、ライトウェイトクライアント110からワークフローマネジャ108に送信されるHTTPリクエスト(クライアントの内部IDに関連するURIのHTTP GET)とすることができる。ワークフローイネーブルプロバイダ102は未だ如何なるデータも生成していないので、この最初の試みは失敗に終わり、何らかのデータを生成し、ワークフローマネジャ108は、データは一切利用可能でないことを示しながら応答する1380。例えばこれはHTTP応答(HTTP応答:NO CONTENT(204))でもよい。一実施例では、スキャンされた画像各々が、ワークフローマネジャ108により別々のファイルに格納される。例えば、スキャンデータは、scan-data-1,scan-data-2,...,scan-data-nのようにファイルを幾つでも含んでよい。スキャンされたデータがワークフローイネーブルプロバイダ102からワークフローマネジャ108へ送信されると1374、ワークフローマネジャ108はスキャンデータを、例えばデータストレージ614に又はクライアント情報ディレクトリ604のサブディレクトリ内に格納する。他の実施例では、クライアント情報ディレクトリ604のサブディレクトリは、選択されたチェックボックス、追加的なディレクトリ情報、ワークフローイネーブルプロバイダ102のコンフィギュレーション情報、又は他の何らかの情報(ワークフローイネーブルプロバイダ102により捕捉され、ワークフローマネジャ108に送信される)のようなワークフローイネーブルプロバイダ102からの他の情報をもしあれば含む。スキャン画像及び他の情報がワークフローマネジャ108に転送され、確認応答1376が送信された後のある時点で、ライトウェイトクライアント110はスキャン情報のリクエストをポーリング又は生成し、それを送信する1382。ワークフローマネジャ108はそのリクエストを受信する。例えばそのリクエストはHTTP GET<client-url>の形式におけるHTTPリクエストであり、<client-url>は登録プロセスの際にワークフローマネジャ108からライトウェイトクライアント110へ送信されるロケーションである。ワークフローマネジャ108が配送するコンテンツを持っていた場合、リクエストに対する最初の応答はファイルのディレクトリ及びタイムスタンプを含む応答である1384。例えば、その応答はHTTP応答:OKでもよく、その応答は、ファイル名又はURL(URLリストフォーマットにエンコードされたスキャン画像ファイル各々を表現する)のリストを含む応答のボディを伴う。ライトウェイトクライアント110はその応答からファイルリストを取り出す。次に、ライトウェイトクライアント110は、ワークフローイネーブルプロバイダ102から捕捉される他の情報(例えば、チェックボックス)を求める他のリクエストを生成及び送信する1386。ワークフローマネジャ108は、そのリクエストを受信し、他の情報を含む他の応答を送信することで応答する。図示されてはいないが、このプロセスは、全体的なディレクトリリスト及び他の情報がライトウェイトクライアント110で受信されるまで、同様なリクエスト/応答プロトコルを使って何度でも反復されてよい。ライトウェイトクライアント110はリスト中の各ファイルについてのリクエストを生成及び送信する1390。例えば、リクエストはHTTP GET<scan-url-1>の形式でもよい。各リクエストに応答して、ワークフローマネジャ108は、そのファイルを含む応答を生成及び送信する1392。例えば、その応答は、応答のボディの中に要求されたファイルを含むHTTP応答:OKの形式でもよい。スキャンしたレシート総てが、データベースにそれらを格納するような更なる処理に備えて、ワークフローマネジャ108からライトウェイトクライアント110へ送信されるまで、ライトウェイトクライアント110及びワークフローマネジャ108は何回でもリクエスト1390/応答1392を反復する。
他の実施例では、図13Bの上記のステップの一部は省略されてもよいし、或いは他の新たなステップが加わってもよいことを、当業者は認識するであろう。例えば、図13Bは、レシートをスキャンし、レシートの捕捉画像をライトウェイトクライアント110へ送信し、ライトウェイトクライアント110でそれらを処理する(例えば、それらを立て替え払いフォームの一部として格納する)ように修正可能である。
図14を参照するに、本発明の分散ワークフローイネーブルシステム100のワークフローイネーブルクライアント106でプロセスを抽出及びイネーブルにする方法が示されている。本方法はワークフローイネーブルクライアント106がプロセスキット(process kit)を取り出すことから始まる1412。一実施例では、ユーザはウェブブラウザを使ってウェブサイトを探し、そのプロセスキットをダウンロードする。プロセスキットはプロセスマネジャ814及びプロセスを含む。次に、ワークフローイネーブルクライアント106はプロセスマネジャ814をインストールし、プロセスマネジャ814はプロセスをインストールするのに使用される。次に、プロセスマネジャ814は、ダウンロードするだけのようなローカルなプロセスを特定する1406。そしてプロセスマネジャ814は、ワークフローイネーブルクライアント106におけるローカルプロセス(ウィジェット)をイネーブルにする。一実施例では、プロセスマネジャ814は、ワークフローイネーブルプロバイダ102を自動的に発見し、ユーザにインストールを促す。他の実施例では、プロセスマネジャ814は新たなワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106を周期的に検査し、それらのインストールをユーザに促す。更に、プロセスマネジャ814は、ワークフローイネーブルクライアント106をインストール、アンインストール、イネーブル及びディセーブルにすることに関し、ワークフローイネーブルクライアントの管理を実行する。
図15A及び15Bを参照するに、本発明の第1形態による分散ワークフローイネーブルシステム100Aと共にロック印刷処理を行う方法が示されている。プロセスは、ワークフローイネーブルクライアント106が、ロック印刷処理用のウィジェット又は論理(ロジック)をダウンロード及びインストールすることで始まる1502。ロック印刷ロジックは、ワークフローイネーブルクライアント106で処理可能であるように処理される1504。ロック印刷ロジックの処理は、処理を求めるユーザリクエストに応答して実行される。本方法は次にユーザからパスワードを受信し、格納する1506。一実施例では、パスワードはそのユーザ及び文書に関連している。他の実施例では、パスワードはユーザにのみ関連している。更に別の実施例では、そのステップは省略され、ユーザにより事前に入力され記憶済みのデフォルトのパスワードが使用される。次に、ワークフローイネーブルクライアント106は、出力用のプリンタ(ワークフローイネーブルプロバイダ102)を発見及び選択する1508。一実施例では、ワークフローイネーブルクライアント106は、利用可能なプリンタ(ワークフローイネーブルプロバイダ102)のリストを表示し、リスト中のプリンタの1つを指す選択をユーザが入力できるようにする。そして、ワークフローイネーブルクライアント106は、ID及び印刷ジョブアクションを、選択されたワークフローイネーブルプロバイダ102に送信する。ワークフローイネーブルクライアント106及びワークフローイネーブルプロバイダ102は、互いに登録しているので、ワークフローイネーブルプロバイダ102は初期のユーザインタフェースを提示する1512。例えば、図18に示されるものに似たユーザインタフェースが提示されてもよい。ユーザインタフェースの提示に応じて、ワークフローイネーブルプロバイダ102はユーザから入力を受信する1514。ワークフローイネーブルプロバイダ102は、その入力をワークフローイネーブルクライアント106に送信する。図15Bに示されるように、ワークフローイネーブルクライアント106は入力を受信し、印刷ジョブに対応するパスワードと比較する1518。パスワードがユーザ及び/又は文書のパスワードに対応しているか否かを、ワークフローイネーブルクライアント106は確認する1520。パスワードが合致すると、ワークフローイネーブルクライアント106はTRUEメッセージをワークフローイネーブルプロバイダ102に送信する1524。パスワードが一致しなかった場合、ワークフローイネーブルクライアント106はFALSEメッセージをワークフローイネーブルプロバイダ102に送信する1522。ワークフローイネーブルプロバイダ102はそのメッセージを受信し1526、それがTRUEメッセージであるか否かを確認する1528。メッセージがTRUEメッセージでなかった場合、ワークフローイネーブルプロバイダ102は、入力パスワードが合致せず終了したことを示すエラーメッセージを表示するステップに進む1530。メッセージがTRUEメッセージであった場合、ワークフローイネーブルプロバイダ102はその文書を印刷し、本方法は完了する。
図15Cを参照するに、本発明の第2形態による分散ワークフローイネーブルシステム100B(ワークフローマネジャ108を伴う)と共にロック印刷処理を行う方法が示されている。図15Cは「ロック印刷」処理を実行する際のステップ及び要素(ライトウェイトクライアント110、ワークフローマネジャ108及びワークフローイネーブルプロバイダ102)のトレース図を示す。「ロック印刷」処理では、印刷する特定の装置にユーザが文書を送信した場合、その印刷装置が印刷文書を表現及び出力する前に、ユーザは或るコードを印刷装置に入力することを要する。本方法は、ライトウェイトクライアント110を登録し1352,1354、それを告知し1356、ワークフローイネーブルクライアントリストを更新し1358、GUIを表示し1360、ユーザ入力を受信することで1362、本方法は始まる。一実施例では、登録1352は「no」に設定された上述のパーシステントフラグを含み、これは、起動されてもはや自動的には告知されなくなるまで、ロック印刷クライアントが告知されることを意味する。これらのステップは図13Bを参照しながら説明したものと同様である。ライトウェイトクライアント110は「ロック印刷」処理を実行するので、登録ステップ1352は、名前(及びおそらくは上位レベルのメニュー項目)(クライアントはその名前の下でリスト化される)と、要求されるべきPINと、印刷されるファイルとに関する情報を含む。一実施例では、登録ステップ1352は、ライトウェイトクライアント110からワークフローマネジャ108へ送信されるHTTPリクエストであり、例えば、“op=register”,“name=LockPrint”,“persistent=no”,“pin=“1234””,“printfile=myfile.pcl”のフィールドを伴うマルチパート/フォームのデータフォーマットでエンコードされたHTTP POSTである。同様に、ステップ1360で表示されるUIは、ユーザ名及びライトウェイトクライアント110の名前−目下の場合「ロック印刷」−を示すボタンである。ワークフローイネーブルプロバイダ102がユーザ入力を受信した後1362、本方法は、ワークフローイネーブルプロバイダ102からワークフローマネジャ108へ通知信号を送信するステップに続く1364。通知信号は、ワークフローイネーブルクライアント106の識別番号を含む。例えば、通知信号は、ワークフローイネーブルクライアント106からワークフローマネジャ108へ送信されたhttp://workflow-manager-host:port/client-external-ID/?op=helloの形式のURLを求めるHTTP GETリクエストでもよく、workflow-manage-hostはワークフローマネジャ108のホスト名又はIPアドレスであり、portはマネジャがモニタしているポートであり、client-external-IDはライトウェイトクライアント110の拡張識別番号であり、“op=hello”は、クライアントが選択された通知としてのリクエスト、及び表示されるべき何らかのユーザインタフェース要素を求めるリクエストを区別する。この処理は、ユーザが或るコード、PIN又はパスワードを入力することを要する「ロック印刷」処理なので、ワークフローマネジャ108は、認証が必要なことを示す応答と共にワークフローイネーブルプロバイダ102に応答することで1550、そのような条件を課す。例えば、応答はHTTP応答:認証要−Authentication Required−(401)でもよい。そして、ワークフローイネーブルプロバイダ102はUIを更新し、コード又はパスワードを求める。例えば、ワークフローイネーブルプロバイダ102がディスプレイから離れたキーパッドを備えていた場合、ワークフローイネーブルプロバイダ102は、そのキーパッドを使ってコードを入力するメッセージを表示する。一方、ワークフローイネーブルプロバイダ102がタッチスクリーンを備えていた場合、ワークフローイネーブルプロバイダ102は、ユーザがユーザのコードを入力することを要するキーパッド及びラベルを表示する。ワークフローイネーブルプロバイダ102は、ユーザからの入力を受信する1554。ワークフローイネーブルプロバイダ102は、提供されたパスワードに基づいて信用証明を生成し、その信用証明を他の通知要求と共にワークフローマネジャ108に送信する。これは例えば、認証要求応答1550で指定されるようにベーシックHTTP認証又はダイジェストHTTP認証を用いて、認証及びユーザ固有のパスワードに関するユーザ名のようなクライアントのトップレベル名を利用して、HTTP GET(http://workflow-manager-host:port/client-external-ID/?op=hello)のようなHTTPリクエストで行われてもよい。ワークフローマネジャ108は、認証コードを受信し、登録の際にライトウェイトクライアント110から受信したコードと比較することでそれが有効であることを確認する。認証コードが合致していなかった場合、ワークフローマネジャ108はワークフローイネーブルプロバイダ102への応答を送信し(図示せず)、HTTP応答:認証不可(401)のように、そのコードが有効でないことを示す。そのような応答を受信すると、ワークフローイネーブルプロバイダ102は終了する、或いは例えばキーパッドUIを提示してユーザ入力を再び受け入れることで、適切なコードをユーザが再入力する機会を与える。他の実施例では、ワークフローイネーブルプロバイダ102は、アクセスを遮断する前に所定回数ユーザがコードの入力を試みることを許可する。認証コードが合致していた場合、ワークフローマネジャ108は、HTTP応答:OKのような確認応答を送信する1558。この応答のボディ(本体)は、表示する何らかのユーザインタフェース要素(例えば、文字、チェックボックス又は他のフォーム要素)を含む。一実施例では、この応答はテキストベースのマークアップ言語にエンコードされる。別の実施例では、応答はHTMLにエンコードされる。本方法は、(もしあれば)印刷ボタンと共に返されたユーザインタフェース要素を示すようにUIを更新し、チェックボックスの選択及び/又は印刷ボタンの選択のようなユーザ入力を、図13Bで説明したのと同様に受信する1370。ワークフローイネーブルプロバイダ102は、起動リクエストをワークフローマネジャ108に送信する1560。例えば、ワークフローイネーブルプロバイダ102は、HTTPリクエストをワークフローマネジャ108に送信し、HTTPリクエストは、multipart/form-data又はapplication/x-www-url-encoded from dataのようにエンコードされ、フィールド“op=active”及び何らかの選択されたチェックボックス又は他のフォーム情報(それら自身のフィールドとしてエンコードされる)を伴うHTTP POSTである。ワークフローイネーブルプロバイダ102は、HTTPリクエストヘッダ“Accepts”を含み、プロバイダが印刷に受け入れるフォーマットが何であるかを示す。これに応答して、ワークフローマネジャ108は再び認証コードを確認し、印刷されるファイルを含む応答をワークフローイネーブルプロバイダ102に送信する1562。一実施例では、応答はHTTP応答:OKであり、印刷されるファイルは応答のボディに備わっている。そして応答はワークフローイネーブルプロバイダ102で受信され、ファイルが印刷され1564、方法は終了する。起動リクエスト1560がワークフローマネジャ108により受信された後、ワークフローマネジャ108は終了告知応答をワークフローイネーブルプロバイダ102に送信し1566、ワークフローイネーブルプロバイダ102は、そのライトウェイトクライアント110を利用可能なワークフローイネーブルクライアント106のリスト(WEC)から排除し、ユーザインタフェースを更新する。
上記と同様なプロセスが、PINを要しない“Print4Me”の簡易な処理に使用されてよいことを、当業者は認識するであろう。本発明のシステム100Bを用いるそのような処理は、図15Cのステップの多くを含む。しかしながら、そのような実施例は、以下の点で図15Cと異なる:1)認証リクエスト1550の代わりに、UIで表示する文字が返され;2)ステップ1552は文字を表示すること;3)ステップ1554は“Print4Me”処理及びスタートボタンをユーザが選択することを含み;及び4)ステップ1556,1558,1368及び1370は省略される。更に、“Print4Me”の基本動作は、ワークフローイネーブルプロバイダ102又はライトウェイトクライアント110による他の処理と組み合わされ、「日々のニュースの印刷(print daily news)」のような更に進んだ処理を提供でき、ワークフローイネーブルプロバイダ102又はライトウェイトクライアント110は、ニュースコンテンツを提供するウェブサービスにアクセスし、ワークフローイネーブルプロバイダ102はそのコンテンツを印刷する。
更に、図13B及び15C双方を参照するに、これらのプロセス中の選択されたステップが結合され、“Locked Scan2Me”ワークフローイネーブルクライアント106を作成できることを、当業者は認識するであろう。“Locked Scan2Me”は“Scan2Me”と似ているが、“Locked Scan2Me”を利用するにはユーザはPINを入力しなければならない。一実施例では、図13Bの基本的な“Scan2Me”プロセスが、ステップ1366を図15Bのステップ1550,1552,1554,1556,1558で置換するように修正され、PINの要求をユーザに提示し、PINを受け入れ、PIN又は認証をワークフローマネジャ108に送信する。
図22A及び22Bを参照しながら、(例えば、ワークフローマネジャ108を伴う)第2形態の分散ワークフローイネーブルシステム100Bを使って日々のニュースコンテンツを印刷する例を説明する。
図22Aは、日々のニュースコンテンツを印刷する第1の方法例を示す。デイリーニュースコンテンツ印刷処理は、ニュースに関するいくつかのオンラインプロバイダから取得されるようなその日のニュース情報をライトウェイトクライアント110が提供する処理である。この情報はファイルにまとめられ(パッケージされ)、印刷文書を生成するために、そのファイルは何らかの印刷装置に送信される。本方法は、ワークフローイネーブルクライアント106がニュースコンテンツを取得し、そのニュースコンテンツを含む印刷可能なファイルを作成する。そして本方法は、ライトウェイトクライアント110を登録し1352,1354、それを告知し1356、ワークフローイネーブルクライアントリストを更新し1358、GUIを表示し1360、ユーザ入力を受信し1362、GUIを更新し1368、ユーザ入力を受信する1370。これらのステップは図13Bを参照しながら説明されたものと同様である。しかしながら、ワークフローイネーブルクライアント106は日々のニュースの印刷を実行するので、登録するステップ1352は、ユーザに関する情報、処理が日々のニュースを印刷することであるのを示す指示、及び印刷されるファイルを含む。例えば、ライトウェイトクライアント110はリクエストをワークフローマネジャ108に送信し、例えばリクエストは、multipart/form-dataフォーマットでエンコードされ、フィールド“op=register”,“name=Dailynews”,“persitent=no”,pin=“1234”,“printfile=myfile.pcl”を伴うHTTP POSTである。ワークフローマネジャ108は、ロケーションを含む応答と共に説明されたような応答である。同様に、ステップ1360で表示されるUIは、ユーザ名で示されるボタン及びライトウェイトクライアント名110であり、目下の例では“Daily News”である。ユーザが“Daily News”の処理を選択し1362、スタートボタンを選択すると1370、ワークフローイネーブルプロバイダ102は、起動リクエストをワークフローマネジャ108に送信することでプロセスを続ける。例えば、ワークフローイネーブルプロバイダ102はHTTPリクエストをワークフローマネジャ108に送信し、HTTPリクエストは、multipart/form-data又はapplication/x-www-url-encoded from dataのようにエンコードされ、フィールド“op=active”及び何らかの選択されたチェックボックス又は他のフォーム情報(それら自身のフィールドとしてエンコードされる)を伴うHTTP POSTである。起動リクエストに応答して、ワークフローマネジャ108は、印刷されるデータを含む応答を送信する2204。例えば応答は、応答のボディでエンコードされた印刷可能なファイルを伴うHTTP応答:OKでもよい。ワークフローイネーブルプロバイダ102がリクエスト及びファイル(“my-news.pcl”の名前を持つ)を受信すると、そのファイルを印刷する処理に進む2206。登録及び告知はバックグラウンドで自動的にユーザの介在なしになされるので、本実施例は特に有利であることを、当業者は認識するであろう。ユーザにとって行う必要のあることは、ワークフローイネーブルプロバイダ102のところに近づき、ユーザ名を選択し、“Daily News”を選択し、スタートボタンを選択することであり、そうするとワークフローイネーブルプロバイダ102はその日のニュースのコピーを印刷する。
図22Bは、個人識別番号も要求される場合に、日々のニュースコンテンツを印刷する第2の方法例を示す。日々のニュースを印刷する第2の方法例は、第1の方法例と同様なステップを多く含み、それ故に同様な参照番号が、同一又は類似する処理を有するステップに使用されている。日々のニュースを印刷する第2の方法例は、図22Aに関連して説明されたのと同様な方法で通知1364を介して登録ステップ1352を実行する。しかしながら、日々のニュースを印刷する第2方法例は、日々のニュースが印刷される前に、個人識別番号が要求され、第2方法例のデイリーニュース印刷処理は、図15Cのロック印刷処理で説明したのと同様な方法で認証を実行して確認応答を要求する。特に、ワークフローマネジャ108は、認証がワークフローイネーブルプロバイダ102に要求されること示す通知を送信する1550。ワークフローイネーブルプロバイダ102はUIを更新し1552、ユーザ入力を受信し1554、認証情報をリクエストでワークフローマネジャ108に送信する1556。ワークフローマネジャ108は確認相当を送信し1558、ワークフローイネーブルプロバイダ102がそのUIで更新することを可能にし1368、スタートボタンを表示し、ユーザがそのボタンを選択することを受け入れる1554。これに応答して、ワークフローイネーブルプロバイダ102は、PINのような認証情報を含む起動リクエストを送信する2208。認証情報はワークフローマネジャ108によって処理され、有効であったならば、ワークフローマネジャはそのデータを印刷するために送信する2204。そして、受信したアイルを印刷することで本方法は終了する2206。
図23は、分散ワークフローイネーブルシステム100Bを用いて“スキャン印刷(Scan and Print)”処理を実行する方法を示す。この方法はスキャンされたものに基づいて印刷を行う。例えば、オンラインリポジトリの文書をスキャンし、スキャンした文書のサムネイル画像と、後の取得に備えてその文書を識別するのに使用される2次元(2D)バーコードとを含むレシートを印刷する。このプロセスは、登録し1352、告知し1356、通知し1364、スキャンし1372、活性化し(アクティブにし)1374、ファイルと共に応答する1392ことで、図23に示されるような“Scan2Me”と共に始まる。ライトウェイトクライアント110がスキャンされるページを取得すると、ライトウェイトクライアント110はそのページをオンラインリポジトリが受入可能なフォーマットに変換し(例えば、簡易なPDF文書に変換し)2302、それをオンラインリポジトリ(図示せず)に更新する。ライトウェイトクライアント110は、オンラインリポジトリから返された何らかの情報プラス画像に基づいて、レシートを生成する2304。ライトウェイトクライアント110は、印刷要求をワークフローマネジャ108に送信することで2306、代わりにレシートを印刷するようにワークフローマネジャ108に尋ねる。例えば、印刷リクエストはHTTP POSTでもよく、そのHTTP POSTは、フィールド“op=print”及び“printfile=<receipt-print-file.pdf>”の指定を伴い、http://workflow-manager-host:port/client-internal-ID/activation-directory/宛であり、printfile.pdfは印刷されるべきレシートのファイルコンテンツを含む。ワークフローマネジャ108は、スキャン1372を実行し、起動リクエスト1374を送信したワークフローイネーブルプロバイダ102を確認する2308(例えば、印刷リクエストURLで指定されている<activation-directory>を生成した、起動を当初に実行したものを確認する。)。ワークフローマネジャ108は、確認されたワークフローイネーブルプロバイダ102に、ファイルを印刷するリクエストを送信し、その際に例えばLPR又はIPPのような表う準的な印刷プロトコルを利用し、そしてワークフローイネーブルプロバイダ102はレシートを印刷する2312。
ユーザインタフェース
図16−21を参照するに、様々なユーザインタフェース及びユーザインタフェースの流れ図が示されている。これらのユーザインタフェースは例示としてのみ与えられており、様々な他の表示形式及び表示内容が、ユーザインタフェースモジュール402,502,452,552により生成されるユーザインタフェースモジュールに含まれてよい。
図16は本発明によるワークフローイネーブルクライアント106用のユーザインタフェース例1600を示す図である。ユーザインタフェース1600は、ブラウザに表示される要に示され、利用可能なワークフローイネーブルクライアント106のアイコン1602を含む。ユーザインタフェース1600は様々なアプリケーションを提供し、それらの中からユーザは実行するものを選択できる。図示されているように、各処理が区別できるように各アイコン1602について異なる色が使用されている。更に、アイコン1602の各々は選択可能なエリアを表し、そのエリアをダブルクリックすることで特定のアプリケーションを開始する。ユーザインタフェース1600は、どのワークフローイネーブルクライアント106がダウンロードされ、それが存在することによってワークフローイネーブルクライアント106で実行可能にされるかを固有に示す。ワークフローイネーブルプロバイダ102のディスプレイパネルは、同様な形式でユーザインタフェース1600を表示してもよい。そのような実施例の場合、ディスプレイパネルはユーザがアイコン1602を選択することを可能にするタッチスクリーンでもよい。
図17は、本発明によるワークフローイネーブルクライアント106の別のユーザインタフェース例1700を示す図である。ユーザインタフェース1700は、図16のユーザインタフェース1600でアイコン1602を選択した後に表示されるインタフェースを表す。ユーザインタフェース1700は、Scan2Me処理に対応し、情報を提示するだけでなく、対応するワークフローイネーブルクライアント106のワークフローを修正するいくつもの領域も提示している。例えばユーザは名称変更ボタン(Rename)1702を利用して、ワークフローイネーブルクライアント106の名前を、そのユーザにとって更に関連のある何らかの特定の名前に仕立てることができる。この処理は、グループ化ボタン1704を用いることでユーザの望む他の処理とネスト化(nested)又はグループ化されてもよい。更に、文書をスキャンしてそれをワークフローイネーブルクライアント106に単に送るだけでなく、ユーザはボタン1706を利用してそのスキャンについて実行される追加的な処理を指定することができる。ユーザインタフェース1700を利用して、ユーザはボタン1708を使うことで出力が保存される場所を指定できる。最後に、ユーザインタフェースは処理をアクティブにする又はそれを取り消す通常のボタン1710を含む。
図18は、本発明によるワークフローイネーブルプロバイダ102のユーザインタフェース例を示す図である。ユーザインタフェース1800は3つの部分を含む。第1の部分では、ユーザインタフェース1800はいくつかのアイコン1802を提示し、その各々は異なるユーザを表現する。アイコン1802は同様な形状をしているが、ユーザを識別する異なる色又はラベルを有していてもよいことに留意すべきである。ユーザインタフェース1800の第2部分では、別のグループのアイコン1804があり、その各々は、ワークフローイネーブルプロバイダ102によりイネーブルにされ且つ登録されているワークフローイネーブルクライアント106に対応する。一実施例では、ユーザインタフェース1800の第2部分に示されているアイコン1804は、選択されたユーザについてイネーブルにされ且つ登録されているものに対してだけ特有である。別の実施例では、ユーザインタフェース1800の第2部分に示されているアイコン1804は、どのユーザに対しても利用可能なワークフローイネーブルクライアント106総てを含む。更に別の実施例では、アイコン1804が示されるが、ユーザが選択されるので、対応するアイコン1804は、例えば異なる色で強調された方法で示され、そのユーザに利用可能なワークフローイネーブルクライアント106を表現するアイコン1804は、ユーザインタフェース1800の第2部分に示されている。特定のワークフローイネーブルクライアント106に対応するアイコン1804をユーザが選択した後、アイコン1804は、ユーザのアイコン1802のものに合う色のような強調された方法で表示される。この特定の具体例が図18に示されている。最後に、ユーザインタフェース1800の第3部分は、ユーザインタフェース1800で選択されたワークフローイネーブルクライアント106の実行を開始するように選択可能なアイコン1806を含む。一実施例では、ユーザが特定のワークフローイネーブルクライアント106に対応するアイコン1804を選択するまで、アイコン1806は現れない。
図19を参照するに、ユーザインタフェース例の流れ図1900が示されている。図19は本発明による一般的な処理に関するユーザインタフェースを示す。本発明により生成されたユーザインタフェース例1902,1904,1906,1908,1910及びそれらの遷移の様子がフローチャート1900に示されている。ダイナミックユーザインタフェースユニット902は、先ずメインスクリーン1902を生成する。このメインスクリーン1902では、ワークフローイネーブルプロバイダ102はワークフローイネーブルクライアント106をポーリングし、利用可能なユーザ名のアルファベット順のリストをボタン1912として表示する。この例の場合、ボタン1912は、表示領域に対してユーザ名が多すぎた場合、スクロール矢印と共に縦向きに揃えられている。選択がなされるまで、ボタン1912は同じ視覚的な属性と共に示されるが、ユーザ名に対応する異なる識別ラベルを伴う。ユーザインタフェース1902でユーザが或るボタンを選択すると、ダイナミックユーザインタフェースユニット902はユーザインタフェース1904を表示するように更新し、それは選択されたユーザに利用可能なワークフローイネーブルクライアント106のリストを含む。利用可能なワークフロークライアント106のリストは、第2列目の追加的なボタン列1914として示されている。ワークフローイネーブルプロバイダ102は、選択されたユーザ名を強調し、アプリケーションボタン1914をユーザボタン同様な方法で整理する。他の実施例は、ユーザ名の上に追加的なメニューを含み、例えばユーザ名の最初の文字に基づいてユーザを個々のメニューに分割し、或いはユーザ及びアプリケーション名の間に追加的なメニューを含み、例えば、アプリケーションを「仕事のため」及び「楽しみのため」に分割する。他の実施例は、ユーザ名のメニューを全体的に異なる階層組織で置換し、例えば部署やアプリケーションタイプで置換し、或いはアプリケーション数が少なかった場合、第1レベルのカテゴリを伴わないアプリケーションボタンをリスト化することさえ可能である。ユーザがアプリケーションを選択すると、ユーザインタフェースはインタフェース1904をインタフェース1906に移す。ユーザインタフェース1906の場合、ワークフローイネーブルプロバイダ102はワークフローイネーブルクライアント106の名前を強調し、スタートボタン1916と共に、そのワークフローイネーブルクライアント106にとって利用可能なオプションのリストを表示する。ユーザがオプション及びスタートボタン1916を選択すると、ワークフローイネーブルプロバイダ102は、ユーザインタフェース1908を処理していることを表示するものに移る。ユーザインタフェース1908を処理している際、ワークフローイネーブルプロバイダ102はオーバーレイパネル1918を進行する動画と共に表示する。処理が完了すると、オーバーレイパネル1918は完了メッセージを表示し、完了メッセージはそのアプリケーション及びOKボタンに特有でもよい。一実施例では、完了メッセージは所定の時間の後に時間切れになり、メイン画面のインタフェース1902に戻る。処理中にエラーが生じた場合、表示はユーザインタフェース1910に更新され、エラーメッセージを伴う新たなオーバーレイパネル1920がOKボタンと共に表示される。OKボタンを選択した後、プロバイダはメイン画面インタフェース1902を表示する。
図20は、本発明によるScan2Me処理のユーザインタフェース例2002,2004,2006,2008,2010,2012のフローを示す図である。更に、図19を参照しながら既に説明されたユーザインタフェースのいくつかも使用されているが、理解及び簡明化を単に図る観点から、特にScan2Me処理に関するユーザインタフェース2002,2004,2006,2008,2010及び2010が説明される。ユーザがメインメニューを閲覧し、ユーザ及びScan2Me処理を選択すると、オプション/スタートユーザインタフェース2002が提示される。ユーザが両面処理を選択すると、ユーザインタフェースは更新され、ユーザインタフェース2400で示されるように選択内容を反映する。ユーザが両面処理を選択すると、スキャンされたページ(複数)は手作業でワークフローイネーブルプロバイダ102に与えられなければならず、オーバーレイパネル2014がユーザインタフェース2006上に用意され、手作業のスキャニングに関する状態(ステータス)を提供し、終了したこと又はスキャンする追加ページを示すボタンを提供する。或いは、両面処理が選択されていなかったならば、ワークフローイネーブルプロバイダ102の自動文書フィーダが使用され、ユーザに提示する次のユーザインタフェースがユーザインタフェース2008になってもよい。有料スキャンが終了した場合に、ユーザインタフェース2006からユーザインタフェース2008へユーザが移ってもよい。ユーザインタフェース2008はオーバーレイパネル2016を含み、オーバーレイパネルは「あなたに送信しています」というような処理状態を示す。文書がワークフローイネーブルクライアント106に送信されると、ワークフローイネーブルプロバイダ102はユーザインタフェース2010に移り、ユーザインタフェースにおけるオーバーレイパネル2018は、ワークフローイネーブルクライアント106に文書が良好に送信されたことをユーザに通知する。所定の期間経過後に又はユーザインタフェース2010のOKボタンの選択後に、ユーザインタフェースはメインユーザインタフェース1902を表示するように移り変わる。スキャン又は送信中にエラーが生じた場合、ユーザインタフェース2012が表示される。そのユーザインタフェース2012は、エラーをユーザに通知し且つ確認ボタンを提示するディスプレイオーバーレイを含む。所定の期間経過後又はユーザインタフェース2010のOKボタンの選択後、ユーザインタフェースはメインユーザインタフェース1902を表示するように移り変わる。
図21は、本発明によるロック印刷処理のユーザインタフェース例2102,2104,2106,2108,2110のフローを示す図である。ユーザがメインメニューを1902を閲覧し、ロック印刷処理を選択すると、オプション/スタートユーザインタフェース2101が提示される。オプション/スタートユーザインタフェース2101は、ユーザが自身のパスワードを入力するための入力ボックスを含む。ユーザはオプション/スタートユーザインタフェース2102のパスワードフィールドを選択し、そのインタフェースは、パスワード入力インタフェース2014を表示するようにワークフローイネーブルプロバイダ102がディスプレイを更新することを引き起こす。ユーザインタフェース2104はオーバーレイパネル2112を用意し、パスワード及びボタンの入力に備えてQWERTYキーボードを提供する。ユーザが不適切なパスワードを入力すると、ワークフローイネーブルプロバイダ102はユーザインタフェース2110にエラーを表示する。エラーインタフェース2110は、そのパスワードが適切でなかったことをユーザに通知する。一実施例では、パスワード入力インタフェース2104が再度提示される。別の実施例では、メインメニューユーザインタフェース1902が提示される。ユーザが適切なパスワードを入力すると、ワークフローイネーブルプロバイダ102が一連のステータスユーザインタフェース2106,2108を表示し、そのインターフェースにおけるオーバーレイパネル2114,2116は、文書が印刷中であること及び印刷が完了したことをユーザに通知する。印刷が完了すると、メインメニューユーザインタフェース1902が提示される。
図24は、本発明によるワークフローイネーブルプロバイダ102のユーザインタフェース例2400を示す図である。ユーザインタフェース2400は、動的に生成され、ユーザ2402,2404及び2406に対応する複数の領域(エリア)を含む。各々のエリアの中で、ユーザインタフェース2400はいくつものアイコン又はボタン2410−2420を提示する。アイコンの各々2410−2420は、そのエリアに対応するユーザに利用可能な様々なワークフローイネーブルクライアント106に対応する。例えば、第1ユーザ2402−ブラッド(Brad)−は、アイコン2410,2412及び2414で表現されているように利用可能な3つのワークフローイネーブルクライアント106を有する。有利なことに各アイコンは、ボタン2410,2412及び2414として与えるだけでなくそれらのラベルによって利用可能な機能も識別し、対応するワークフローイネーブルクライアント106を参入させる。同様に、第2ユーザ2404−Ed−は利用可能な2つのワークフローイネーブルクライアント106を有する一方、第3ユーザ−アンドレア(Andrea)は、自身のエリアに利用可能なワークフローイネーブルクライアント106を1つ有する。ユーザインタフェース2400は、利用可能なワークフローイネーブルクライアント106の通知及びグループに基づいて、識別及び選択を簡易にするようにユーザにより動的に生成されるので、ユーザインタフェース2400は特に有利である。
図25は、本発明によるワークフローイネーブルプロバイダ102の別のユーザインタフェース例2400を示す図である。ユーザインタフェース2500も動的に生成され、メニューバー2502に列挙されている複数のユーザのプルダウンメニューバー2502を含む。表示スペースは限られているかもしれないので、追加的なユーザはスクロールバー2508でアクセスされてもよい。特定のユーザEdについて示されているように、初期プルダウンメニュー2504及びその初期プルダウンメニュー2504での選択に基づく第2メニュー2506がある。初期プルダウンメニュー2504は、機能タスクの広範囲に及ぶカテゴリを示し、如何なるタイプの仕組みが使用されてよい。この例はトップレベルのメニュー項目としてユーザ名を他のメニュー名よりも優先して使用しているが、例えば機能タスクの概略的な分類がトップレベルのメニュー名に使用されてもよい。
図26は他のユーザインタフェース例2600を示す図である。図19−21のユーザインタフェースと同様に、3つのワークフローイネーブルクライアント106が示されている。図26は追加的なチェックボックスがユーザインタフェース2600でどのように用意できるかを示す。これらの追加的なチェックボックス2602は、選択されたワークフローイネーブルクライアント106に特有なパラメータを、ユーザが入力できるようにする。これは本発明に更なる柔軟性をもたらし、ワークフローをユーザの望みや要請に的確に合わせるように修正できる。例えば、ユーザインタフェース2600は、トランスレーションワークフローイネーブルクライアント106が選択された場合に、所望の変換形式をユーザが選択できるようにする。本発明によれば、チェックボックスは動的であり、選択されたワークフローイネーブルクライアント106に依存して変わり、選択された時点でのワークフローイネーブルクライアント106によって動的に生成される。
以上本発明の実施例の説明は、説明及び図示を意図してなされてきた。説明が網羅的であることは意図されておらず、説明された厳密な形態に本発明を限定することは意図されていない。多くの修正及び変形が、上記の教示に照らして可能になる。本発明の範囲はこの詳細な説明に限定されず、本願の特許請求の範囲によって規定されることが意図される。当業者に理解されるように、本発明の精神又は本質的特徴から逸脱せずに、本発明は他の形態で実現されてもよい。同様に、モジュール、ルーチン、特徴、属性、方法及び他の形態の特定の名称及び区分けは、必須でもなく重要でもない。本発明又はその特徴を実現する手段は様々な名称、区分け及び/又は形式を持ってよい。更に、当業者に明らかなように、本発明に関するモジュール、ルーチン、特徴、属性、方法及び他の形態は、ソフトウエア、ハードウエア、ファームウエア又はそれらの如何なる組み合わせで実現されてもよい。モジュールの一例である本発明の構成要素がソフトウエアとして実現される場合、その構成要素は、スタンドアローンプログラムとして、大規模なプログラムの一部として、複数の分離したプログラムとして、固定的に又は動的にリンクしたライブラリとして、カーネルローダブルモジュールとして、デバイスドライバとして実現されてもよく、及び/又はコンピュータプログラミング業界の当業者に現在既知の又は将来知られる如何なる方法によって実現されてもよい。更に、本発明はどの特定のプログラミング言語で実現されてもよいし、どの特定のオペレーティングシステム又は環境で実現されてもよい。更に、本願説明は例示を意図しており、本発明の範囲を限定するものではなく、本発明の範囲は添付の特許請求の範囲で規定される。
関連出願のクロスリファレンス
本願は35U.S.C§119(e)の下に2007年9月14日付けで出願された“Distributed Workflow Enabled System”と題する米国仮出願第60/972,562号の利益を享受し、仮出願の内容全体が組み入れられる。
本発明の一実施例により構築された分散ワークフローイネーブルシステムの第1形態を示すブロック図である。 本発明の一実施例により構築された分散ワークフローイネーブルシステムの第2形態を示すブロック図である。 本発明の一実施例により構築された分散ワークフローイネーブルシステムの第2形態を示すブロック図である。 本発明の一実施例により構築された分散ワークフローイネーブルシステムの第2形態を示すブロック図である。 本発明の一実施例により構築された分散ワークフローイネーブルシステムの第2形態を示すブロック図である。 本発明の一実施例により構築された更に複雑な分散ワークフローイネーブルシステムの第3形態を示すブロック図である。 クライアント及びプロバイダを詳細に示す分散ワークフローイネーブルシステムの第1形態のブロック図である。 クライアント及びプロバイダを詳細に示す分散ワークフローイネーブルシステムの第2形態のブロック図である。 本発明によるワークフローイネーブルプロバイダの第1形態のブロック図である。 本発明によるワークフローイネーブルプロバイダの第2形態のブロック図である。 本発明によるワークフローイネーブルクライアントの第1形態のブロック図である。 本発明によるワークフローイネーブルクライアントの第2形態のブロック図である。 本発明によるワークフローイネーブルクライアントの第3形態のブロック図である。 本発明によるワークフローマネジャの一例を示すブロック図である。 本発明による通信マネジャの第1形態を示すブロック図である。 本発明による通信マネジャの第2形態を示すブロック図である。 本発明による通信マネジャの第3形態を示すブロック図である。 本発明によるプロバイダのプロセス制御モジュールの一例を示すブロック図である。 本発明の実施例によるクライアントのプロセス制御モジュールの一例を示すブロック図である。 本発明によるユーザインタフェースモジュール例のブロック図である。 本発明の一実施例による分散ワークフロー処理の方法例を示すフローチャートである。 本発明の一実施例による分散ワークフロー処理の方法例を示すフローチャートである。 本発明の一実施例によるプロバイダ及びクライアント間の通信方法を示すフローチャートである。 本発明の一実施例によるプロセス制御モジュールの動作方法を示すフローチャートである。 本発明の一実施例によるユーザインタフェースを生成及び提示する方法のフローチャートである。 本発明の一実施例によるワークフローイネーブルシステムと共にスキャン動作を実行する方法を示す図である。 本発明の一実施例によるワークフローイネーブルシステムと共にスキャン動作を実行する方法を示す図である。 本発明の一実施例によるワークフローイネーブルシステムのクライアントでプロセスを抽出及びイネーブルにする方法を示すフローチャートである。 本発明の第1形態によるワークフローイネーブルシステムと共にロック印刷処理を行う方法のフローチャートである。 本発明の第1形態によるワークフローイネーブルシステムと共にロック印刷処理を行う方法のフローチャートである。 本発明の第2形態によるワークフローイネーブルシステムと共にロック印刷処理を行う方法のフローチャートである。 本発明によるクライアント用のユーザインタフェース例を示す図である。 本発明によるスキャン処理用のクライアントユーザインタフェース例を示す図である。 本発明によるプロバイダのユーザインタフェース例を示す図である。 本発明によるユーザインタフェース例のフローを示す図である。 本発明によるスキャン処理のユーザインタフェース例のフローを示す図である。 本発明によるロック印刷処理のユーザインタフェース例のフローを示す図である。 本発明により日々のニュースコンテンツの印刷を実行する例を示す図である。 本発明により日々のニュースコンテンツの印刷を実行する例を示す図である。 本発明によりスキャン及び印刷を処理する例を示す図である。 本発明によるプロバイダの追加的なユーザインタフェース例を示す図である。 本発明によるプロバイダの追加的なユーザインタフェース例を示す図である。 本発明によるプロバイダの追加的なユーザインタフェース例を示す図である。
符号の説明
100 分散ワークフローイネーブルシステム
102 ワークフローイネーブルプロバイダ
104 ネットワーク
106 ワークフローイネーブルクライアント
108 ワークフローマネジャ
110 ライトウェイトクライアント
112 ヘビーウェイトクライアント
120,122,124 信号線
126,420,422,428 信号線
458,460,462 信号線
520,522,528 信号線
150,152 装置
302 通常のプロバイダ
304 プロバイダワークフローユニット
352 プロバイダワークフローインタフェース(WIF)ユニット
402 ユーザインタフェースモジュール
404 プロセス制御モジュール
406 通信マネジャ
452 ユーザインタフェースモジュール
454 プロセス制御モジュール
456 通信マネジャ
502 ユーザインタフェースモジュール
504 プロセス制御モジュール
506 通信マネジャ
522 ユーザインタフェースモジュール
554 プロセス制御モジュール
556 通信マネジャ
564 通知マネジャ
602 登録モジュール
604 クライアント情報ディレクトリ
606 クライアント応答モジュール
608 通知モジュール
612 プロバイダ応答モジュール
614 応答データストレージ
616 ワークフロープロセッサ
618 ワークフローストレージ
620 セキュリティモジュール
702 データ伝送モジュール
704 接続及びディスカバリモジュール
706 通知及び登録モジュール
708 プロセッサ制御インタフェースモジュール
720 通知モニタ
722 リクエストモジュール
724 応答モジュール
740 登録ユニット
742 ポーリングモジュール
802 状態マシーン
804 トランスレータ
806 ストレージ
808 プロバイダインタフェースモジュール
810 通信インタフェースモジュール
812 データプロセッサ
814 プロセスマネジャ
902 ダイナミックユーザインタフェースユニット
904 ユーザインタフェース配送モジュール
906 ユーザインタフェースコンフィギュレーションストレージ
908 プロセス制御インタフェースモジュール
1600 ユーザインタフェース
1602 アイコン
1700 ユーザインタフェース
1702 名称変更ボタン
1704,1706,1708 ボタン
1800 ユーザインタフェース
1802,1804,1806 アイコン
1902,1904,1906,1908,1910 ユーザインタフェース
1912,1914,1916 ボタン
1918,1920 オーバーレイパネル
2002,2004,2006,2008,2010,2012 ユーザインタフェース
2014,2016,2018,2020 オーバーレイパネル
2102,2104,2106,2108,2110 ユーザインタフェース
2112,2114,2116,2118 オーバーレイパネル
2400 ユーザインタフェース
2410−2420 ボタン
2500 ユーザインタフェース
2502 メニューバー
2504,2506 プルダウンメニュー
2508 スクロールボタン
2600 ユーザインタフェース
2602 チェックボックス

Claims (18)

  1. ワークフローイネーブルシステムでタスクを実行する方法であって、
    第1のワークフローイネーブルクライアントをワークフローマネジャに登録するステップと、
    ロケーション識別子を受信するステップと、
    前記ロケーション識別子を用いてデータを取得するステップと、
    を有し、前記第1のワークフローイネーブルクライアントを登録するステップは、ネットワークリクエストを生成及び送信するステップを含み、
    前記ネットワークリクエストは、前記第1のワークフローイネーブルクライアントの名前及びユーザ名を含む
    ようにした方法。
  2. 前記ネットワークリクエストは、スキャン要求、印刷要求、パーシステント論理、認証情報、印刷データ、印刷データの場所、及び前記ワークフローイネーブルプロバイダの条件を含む群中の何れかを含むようにした請求項1記載の方法。
  3. ファイルリストを伴うレスポンスを受信するステップを有する請求項1記載の方法。
  4. 前記ロケーション識別子を用いてデータを取得するステップが、前記ロケーション識別子を用いてポーリングを行うステップを含むようにした請求項1記載の方法。
  5. 前記ポーリングを行うステップが、
    前記ロケーション識別子を含むHTTPリクエストを前記ワークフローマネジャに送信するステップと、
    前記データを含むレスポンスを受信するステップと、
    を含むようにした請求項4記載の方法。
  6. 前記ロケーション識別子を用いてポーリングを行い、ポーリングされた情報を取得するステップを有し、該データを取得する際、該ポーリングされた情報及び前記ロケーション識別子を使用するようにした請求項1記載の方法。
  7. 前記ロケーション識別子で指定される場所にリクエストを送ることで、前記第1のワークフローイネーブルクライアントの登録を前記ワークフローマネジャから抹消するステップを更に有する請求項1記載の方法。
  8. 受信したデータに基づいて、第2のワークフローイネーブルクライアントの登録を開始するステップと、
    前記第2のワークフローイネーブルクライアントを前記ワークフローマネジャに登録するステップと、
    前記第2のワークフローに関する第2のロケーション識別子を受信するステップと、
    前記第2のロケーション識別子を用いてデータを取得するステップと、
    を有する請求項1記載の方法。
  9. 前記第1のワークフローイネーブルクライアントを活性化することがスキャン処理を行うことを含み、取得したデータは、ワークフローイネーブルプロバイダによるスキャンにより生成されたデータであるようにした請求項8記載の方法。
  10. 前記第2のワークフローイネーブルクライアントを活性化することは、印刷、ファクシミリ送信又は電子メールによる送信を含む群中の何れかを含むようにした請求項8記載の方法。
  11. 前記第1のワークフローイネーブルクライアントを活性化することがスキャン処理を行うことを含み、取得したデータは、ワークフローイネーブルプロバイダによるスキャンにより生成されたデータであり、前記第2のワークフローイネーブルクライアントを活性化することは、フォーマット変換を行うことを含む請求項8記載の方法であって、
    前記第2のロケーション識別子を用いて、取得したデータに基づいて、第3のワークフローイネーブルクライアントの登録を始めるステップと、
    前記第3のワークフローイネーブルクライアントを前記ワークフローマネジャに登録するステップと、
    前記第3のワークフローに関する第3のロケーション識別子を受信するステップと、
    前記第3のロケーション識別子を用いてデータを受信するステップと、
    を有し、前記第3のワークフローイネーブルクライアントを活性化することは、印刷、ファクシミリ送信又は電子メールによる送信を含む群中の何れかを含むようにした請求項8記載の方法。
  12. 前記第1のワークフローイネーブルクライアントの活性化が、スキャン処理を行うことを含み、取得したデータはワークフローイネーブルプロバイダによるスキャンにより生成されたデータであるようにした請求項1記載の方法。
  13. 前記第1のワークフローイネーブルクライアントでデータの取得を処理するステップを有し、該処理は、該取得したデータをデータベースに格納すること、該取得したデータについて光文字認識を実行すること、取得したデータを電子メールで送信すること、取得したデータをファクシミリ送信すること、取得したデータからウェブページを作成すること、取得したデータを選別すること、及び取得したデータを集めることを含む群中の何れかを含むようにした請求項1記載の方法。
  14. 前記第1のワークフローイネーブルクライアントの活性化が、印刷処理を行うことを含み、前記登録するステップは印刷可能なファイルを送信するステップを含み、該印刷はワークフローイネーブルプロバイダにより実行され、
    該登録は認証の条件及びコードを指定し、前記ワークフローイネーブルプロバイダは、入力される前記コードを要求し、前記印刷可能なファイルを印刷前に確認するようにした請求項1記載の方法。
  15. ワークフローイネーブルシステムにおけるタスクの実行を制御する装置であって、
    規定の機能を実行する通常クライアントモジュールと、
    前記通常クライアントモジュール及びネットワークと通信するように適合したワークフローインタフェースと、
    を有し、前記ワークフローインタフェースユニットは、前記ワークフローイネーブルクライアントをワークフローマネジャに登録し、情報を取得するようにした装置。
  16. ワークフローイネーブルシステムにおけるタスクの実行を制御する方法であって、
    通信に備えてワークフローイネーブルクライアントをネットワークに接続するステップと、
    ワークフローサービスを提供するワークフローイネーブルクライアントに識別子を割り当てるステップと、
    前記ワークフローイネーブルクライアントの前記識別子及び前記ワークフローサービスの他のパラメータを告知するステップと、
    前記ワークフローイネーブルクライアントにて、ワークフローイネーブルプロバイダからのリクエストを受信及び処理するステップと、
    を有する方法。
  17. 請求項1乃至14又は16の何れか1項に記載の方法をコンピュータに実行させるコンピュータプログラムを記録した記憶媒体。
  18. 請求項1乃至14又は16の何れか1項に記載の方法をコンピュータに実行させるコンピュータプログラム。
JP2008235413A 2007-09-14 2008-09-12 タスクを実行する方法、タスクの実行を制御する装置、記録媒体及びプログラム。 Pending JP2009070386A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97256207P 2007-09-14 2007-09-14
US12/135,735 US8838760B2 (en) 2007-09-14 2008-06-09 Workflow-enabled provider
US12/135,725 US8171117B2 (en) 2007-09-14 2008-06-09 Workflow manager for a distributed system
US12/135,715 US8713144B2 (en) 2007-09-14 2008-06-09 Workflow-enabled client
US12/135,706 US9734465B2 (en) 2007-09-14 2008-06-09 Distributed workflow-enabled system

Publications (1)

Publication Number Publication Date
JP2009070386A true JP2009070386A (ja) 2009-04-02

Family

ID=40455731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008235413A Pending JP2009070386A (ja) 2007-09-14 2008-09-12 タスクを実行する方法、タスクの実行を制御する装置、記録媒体及びプログラム。

Country Status (2)

Country Link
US (4) US8838760B2 (ja)
JP (1) JP2009070386A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141688A (ja) * 2010-01-06 2011-07-21 Ricoh Co Ltd 情報管理装置、情報管理方法、及び情報管理システム
JP2012068834A (ja) * 2010-09-22 2012-04-05 Canon Inc 情報処理装置、情報処理装置の制御方法、及びプログラム
US8488170B2 (en) 2009-12-21 2013-07-16 Ricoh Company, Ltd. Print job management apparatus, system, and method
US8786887B2 (en) 2011-07-14 2014-07-22 Ricoh Company, Ltd. Apparatus, system, and method of log management, and recording medium storing log management program

Families Citing this family (301)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
ITFI20010199A1 (it) 2001-10-22 2003-04-22 Riccardo Vieri Sistema e metodo per trasformare in voce comunicazioni testuali ed inviarle con una connessione internet a qualsiasi apparato telefonico
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
JP5393059B2 (ja) * 2008-06-04 2014-01-22 キヤノン株式会社 ワークフロー処理装置及びワークフロー処理方法
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
WO2009156988A1 (en) * 2008-06-23 2009-12-30 Double Verify Ltd. Automated monitoring and verification of internet based advertising
US20100016019A1 (en) * 2008-07-17 2010-01-21 Harris Scott C Communication and Operation Using Wireless Peripherals
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
JP5347498B2 (ja) * 2008-12-26 2013-11-20 株式会社リコー 画像形成装置、印刷制御方法、及びプログラム
US8862252B2 (en) * 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
JP5293288B2 (ja) * 2009-03-10 2013-09-18 株式会社リコー 画像形成装置、情報処理装置、情報処理方法、及びプログラム
BRPI1009137A2 (pt) 2009-03-13 2016-03-08 Ricoh Co Ltd aparelho de processamento de informações, método de processamento de informações e aparelho de formação de imagem
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
JP5402650B2 (ja) * 2009-06-09 2014-01-29 株式会社リコー 表示制御装置、情報処理システム、及び表示制御方法
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
JP5333008B2 (ja) 2009-07-27 2013-11-06 株式会社リコー 課金管理システム、画像形成装置、課金管理装置、課金情報記録方法、及びプログラム
JP5310357B2 (ja) * 2009-07-27 2013-10-09 株式会社リコー 画像形成装置、課金情報記録方法、及びプログラム
JP5282693B2 (ja) * 2009-07-27 2013-09-04 株式会社リコー 画像形成装置、表示制御方法、及びプログラム
JP5326922B2 (ja) * 2009-08-17 2013-10-30 株式会社リコー 通信装置、通信方法、及びプログラム
JP5712487B2 (ja) 2009-09-04 2015-05-07 株式会社リコー 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP5413077B2 (ja) * 2009-09-14 2014-02-12 株式会社リコー 情報処理システム、画像形成装置、情報処理装置、情報処理方法、及びプログラム
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US9922063B2 (en) * 2009-12-29 2018-03-20 International Business Machines Corporation Secure storage of secret data in a dispersed storage network
JP5413203B2 (ja) * 2010-01-06 2014-02-12 株式会社リコー 機器管理システム、機器管理装置、及び機器管理方法
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
JP2011145386A (ja) * 2010-01-13 2011-07-28 Fuji Xerox Co Ltd 表示制御装置、表示装置及びプログラム
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
JP5636701B2 (ja) * 2010-03-11 2014-12-10 株式会社リコー 情報処理装置、情報処理システム、及び情報処理方法
JP5699437B2 (ja) * 2010-03-15 2015-04-08 株式会社リコー 情報処理システム、情報処理方法、情報処理装置、及びプログラム
US9223529B1 (en) * 2010-03-26 2015-12-29 Open Invention Network, Llc Method and apparatus of processing information in an environment with multiple devices and limited resources
WO2021220058A1 (en) 2020-05-01 2021-11-04 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
JP5593854B2 (ja) 2010-06-01 2014-09-24 株式会社リコー 画像形成装置、画像処理方法、及び画像処理システム
JP5644194B2 (ja) 2010-06-10 2014-12-24 株式会社リコー 情報保護装置及び情報保護プログラム
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US20120039537A1 (en) * 2010-08-10 2012-02-16 Keys Gregory C Method, apparatus, and system for workflow participation of an imaging device
US20120060155A1 (en) * 2010-09-02 2012-03-08 Keys Gregory C Method, system, and computer readable medium for workflow communication wherein instructions to a workflow application are written by the workflow application
JP5541001B2 (ja) 2010-08-26 2014-07-09 ブラザー工業株式会社 立案デバイス
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US9973398B1 (en) * 2011-10-31 2018-05-15 Reality Analytics, Inc. System and method for discriminating remote site origination of communication signals transmitted through a network based on envelope characteristics
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
WO2013185109A2 (en) 2012-06-08 2013-12-12 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
WO2014046694A1 (en) * 2012-09-24 2014-03-27 Empire Technology Development Llc Decentralized cloud workflows
US9258355B2 (en) 2012-09-24 2016-02-09 Empire Technology Development Llc Decentralized cloud workflows
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
US8804177B2 (en) * 2012-12-12 2014-08-12 Ricoh Company, Ltd Validation of branching print workflows
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
EP3611627A1 (en) * 2013-03-13 2020-02-19 INTEL Corporation Device resource management based on contextual planning
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
EP2973002B1 (en) 2013-03-15 2019-06-26 Apple Inc. User training by intelligent digital assistant
KR102057795B1 (ko) 2013-03-15 2019-12-19 애플 인크. 콘텍스트-민감성 방해 처리
MX355745B (es) * 2013-03-15 2018-04-27 Spectrum Brands Inc Sistema de restriccion de acceso inalambrico con antena integrada, activacion tactil y metodo de comunicacion de luz.
KR101759009B1 (ko) 2013-03-15 2017-07-17 애플 인크. 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
JP6123472B2 (ja) * 2013-05-13 2017-05-10 株式会社リコー 機器管理装置、機器管理システム、機器管理方法及びプログラム
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101959188B1 (ko) 2013-06-09 2019-07-02 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
WO2014200731A1 (en) 2013-06-13 2014-12-18 Apple Inc. System and method for emergency calls initiated by voice command
KR101749009B1 (ko) 2013-08-06 2017-06-19 애플 인크. 원격 디바이스로부터의 활동에 기초한 스마트 응답의 자동 활성화
US9177166B2 (en) * 2013-08-21 2015-11-03 Systel Business Equipment Co., Inc. System and method for authentication
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
WO2015105483A1 (en) 2014-01-08 2015-07-16 Hewlett-Packard Development Company, L.P. Service discovery management
US9665240B2 (en) 2014-01-27 2017-05-30 Groupon, Inc. Learning user interface having dynamic icons with a first and second visual bias
US9633128B2 (en) * 2014-03-13 2017-04-25 Go Daddy Operating Company, LLC Lightweight web page generation
US9413707B2 (en) 2014-04-11 2016-08-09 ACR Development, Inc. Automated user task management
US8942727B1 (en) 2014-04-11 2015-01-27 ACR Development, Inc. User Location Tracking
JP2015215853A (ja) * 2014-05-13 2015-12-03 株式会社リコー システム、画像処理装置、画像処理方法およびプログラム
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US10698767B1 (en) 2014-12-22 2020-06-30 Amazon Technologies, Inc. Decentralized management of multi-service workflows
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US11580472B2 (en) * 2015-05-14 2023-02-14 Palantir Technologies Inc. Systems and methods for state machine management
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10866865B1 (en) 2015-06-29 2020-12-15 Amazon Technologies, Inc. Storage system journal entry redaction
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10866968B1 (en) 2015-06-29 2020-12-15 Amazon Technologies, Inc. Compact snapshots of journal-based storage systems
US11609890B1 (en) 2015-06-29 2023-03-21 Amazon Technologies, Inc. Schema management for journal-based storage systems
US10324905B1 (en) 2015-08-21 2019-06-18 Amazon Technologies, Inc. Proactive state change acceptability verification in journal-based storage systems
US9990391B1 (en) 2015-08-21 2018-06-05 Amazon Technologies, Inc. Transactional messages in journal-based storage systems
US10108658B1 (en) 2015-08-21 2018-10-23 Amazon Technologies, Inc. Deferred assignments in journal-based storage systems
US10346434B1 (en) 2015-08-21 2019-07-09 Amazon Technologies, Inc. Partitioned data materialization in journal-based storage systems
US10031935B1 (en) 2015-08-21 2018-07-24 Amazon Technologies, Inc. Customer-requested partitioning of journal-based storage systems
US10235407B1 (en) 2015-08-21 2019-03-19 Amazon Technologies, Inc. Distributed storage system journal forking
DE102015216284A1 (de) * 2015-08-26 2017-03-02 Robert Bosch Gmbh Verfahren zum Betreiben eines Gateways
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10331657B1 (en) 2015-09-28 2019-06-25 Amazon Technologies, Inc. Contention analysis for journal-based databases
US10133767B1 (en) 2015-09-28 2018-11-20 Amazon Technologies, Inc. Materialization strategies in journal-based databases
US10198346B1 (en) 2015-09-28 2019-02-05 Amazon Technologies, Inc. Test framework for applications using journal-based databases
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10621156B1 (en) 2015-12-18 2020-04-14 Amazon Technologies, Inc. Application schemas for journal-based databases
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10726032B2 (en) 2015-12-30 2020-07-28 Palantir Technologies, Inc. Systems and methods for search template generation
US9817655B1 (en) 2016-03-09 2017-11-14 Google Inc. Managing software assets installed in an integrated development environment
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10671800B2 (en) * 2016-09-15 2020-06-02 Oracle International Corporation Providing way to store process data object state as snapshots at different points of process
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10735210B2 (en) * 2017-05-05 2020-08-04 Sap Se Dynamic binding for software components
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10839022B1 (en) 2017-07-24 2020-11-17 Palantir Technologies Inc. System to manage document workflows
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US11128627B2 (en) * 2018-03-13 2021-09-21 Microsoft Technology Licensing, Llc Triggering and controlling workflows across applications and services used in cloud computing systems
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US11412035B2 (en) * 2018-06-14 2022-08-09 Jpmorgan Chase Bank, N.A. Methods for providing unified control and management of tasks in a multi-platform environment and devices thereof
US11080068B2 (en) * 2018-06-28 2021-08-03 Microsoft Technology Licensing, Llc Adaptive user-interface assembling and rendering
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US10896329B2 (en) * 2018-10-22 2021-01-19 Ohio State Innovation Foundation Method for performing and visualizing analytics operations over data using augmented reality
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US10911307B2 (en) 2019-01-29 2021-02-02 Dell Products L.P. System and method for out of the box solution-level configuration and diagnostic logging and reporting
US10740023B1 (en) 2019-01-29 2020-08-11 Dell Products L.P. System and method for dynamic application access-based mapping
US10901641B2 (en) 2019-01-29 2021-01-26 Dell Products L.P. Method and system for inline deduplication
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US10764135B2 (en) 2019-01-29 2020-09-01 Dell Products L.P. Method and system for solution integration labeling
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US10972343B2 (en) 2019-01-29 2021-04-06 Dell Products L.P. System and method for device configuration update
US10979312B2 (en) * 2019-01-29 2021-04-13 Dell Products L.P. System and method to assign, monitor, and validate solution infrastructure deployment prerequisites in a customer data center
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
CN111684766A (zh) * 2019-05-23 2020-09-18 深圳市大疆创新科技有限公司 分布式系统中通信协议版本号的更新
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
CN110222093A (zh) * 2019-06-12 2019-09-10 中国神华能源股份有限公司 处理列车数据的方法、装置及存储介质
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US10963345B2 (en) 2019-07-31 2021-03-30 Dell Products L.P. Method and system for a proactive health check and reconstruction of data
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US20210150135A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for integrated graphs in cells of collaborative work system tables
EP4062313A1 (en) 2019-11-18 2022-09-28 Monday.com Ltd. Collaborative networking systems, methods, and devices
US11544720B2 (en) 2019-11-25 2023-01-03 Bank Of America Corporation Client manager and router
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11175842B2 (en) 2020-03-06 2021-11-16 Dell Products L.P. Method and system for performing data deduplication in a data pipeline
US11119858B1 (en) 2020-03-06 2021-09-14 Dell Products L.P. Method and system for performing a proactive copy operation for a spare persistent storage
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
JP2021182311A (ja) * 2020-05-20 2021-11-25 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
US11397847B1 (en) 2021-01-14 2022-07-26 Monday.com Ltd. Digital processing systems and methods for display pane scroll locking during collaborative document editing in collaborative work systems
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647432B1 (en) 1996-08-19 2003-11-11 Geoquest, A Division Of Schlumberger Technology Corporation Distributed framework for intertask communication between workstation applications
US6687018B1 (en) * 1997-11-07 2004-02-03 Xerox Corporation System and method for distributing print jobs
US6583888B1 (en) 1998-03-02 2003-06-24 Xerox Corporation System for managing service access in a multifunctional printing system
US6636891B1 (en) * 1998-11-06 2003-10-21 Seiko Epson Corporation Methods and apparatus for controlling an input or output device over the internet
AU781503B2 (en) 1999-10-25 2005-05-26 Altana Pharma Ag Phthalazinone derivatives as PDE 4 inhibitors
US7937655B2 (en) * 2000-12-22 2011-05-03 Oracle International Corporation Workflows with associated processes
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US6678064B2 (en) * 2001-02-14 2004-01-13 Hewlett-Packard Development Company, L.P. Printer document viewer
US6459860B1 (en) * 2001-03-08 2002-10-01 Hewlett-Packard Company Replaceable printer component including memory device that defines printing capabilities
US20030078965A1 (en) 2001-08-22 2003-04-24 Cocotis Thomas A. Output management system and method for enabling printing via wireless devices
US8204992B2 (en) * 2002-09-26 2012-06-19 Oracle America, Inc. Presence detection using distributed indexes in peer-to-peer networks
US7191237B2 (en) 2002-10-15 2007-03-13 Hewlett-Packard Development Company, L.P. Automatic registration of receiving device on a remote printing application
US7254608B2 (en) * 2002-10-31 2007-08-07 Sun Microsystems, Inc. Managing distribution of content using mobile agents in peer-topeer networks
KR100965437B1 (ko) * 2003-06-05 2010-06-24 인터트러스트 테크놀로지즈 코포레이션 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
US20050055583A1 (en) * 2003-09-05 2005-03-10 Matsushita Electric Industrial Co., Ltd. Data management apparatus, data management method and program thereof
CA2442796A1 (en) 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Binding a workflow engine to a data model
US7519698B2 (en) 2003-09-26 2009-04-14 Ricoh Co., Ltd. Method and system for extracting information from networked devices in a multi-protocol remote monitoring system
EP1530139A1 (en) 2003-11-05 2005-05-11 Sap Ag Method and computer system for workflow management
JP4572324B2 (ja) * 2003-12-12 2010-11-04 セイコーエプソン株式会社 デバイス識別情報管理システムおよびデバイス識別情報管理方法
KR100636148B1 (ko) * 2004-06-25 2006-10-19 삼성전자주식회사 Ieee 802.11 기반의 무선 프린팅 시스템 및 방법
US7672003B2 (en) 2004-09-01 2010-03-02 Eric Morgan Dowling Network scanner for global document creation, transmission and management
US20060288110A1 (en) * 2005-06-16 2006-12-21 Rhett Alden Dynamically Configurable Web Services
JP4345721B2 (ja) 2005-07-14 2009-10-14 コニカミノルタビジネステクノロジーズ株式会社 管理システム
US20070038946A1 (en) 2005-08-15 2007-02-15 Grieshaber Charles E Systems, methods and devices for controlling a multifunctional product using a scriptable user interface
US7752614B2 (en) * 2006-03-23 2010-07-06 International Business Machines Corporation Dynamic workflow documentation system
US7778875B2 (en) 2006-09-05 2010-08-17 Appfolio, Inc. Systems and methods for generating advertiser recommendations from users of workflow software
AU2008272894B2 (en) * 2007-07-02 2012-06-14 Pharos Systems International, Inc. Print management system and related methods
US8843387B2 (en) 2007-08-08 2014-09-23 International Business Machines Corporation Managing business process calendars

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8488170B2 (en) 2009-12-21 2013-07-16 Ricoh Company, Ltd. Print job management apparatus, system, and method
JP2011141688A (ja) * 2010-01-06 2011-07-21 Ricoh Co Ltd 情報管理装置、情報管理方法、及び情報管理システム
JP2012068834A (ja) * 2010-09-22 2012-04-05 Canon Inc 情報処理装置、情報処理装置の制御方法、及びプログラム
US8786887B2 (en) 2011-07-14 2014-07-22 Ricoh Company, Ltd. Apparatus, system, and method of log management, and recording medium storing log management program

Also Published As

Publication number Publication date
US20090077164A1 (en) 2009-03-19
US20090077217A1 (en) 2009-03-19
US8713144B2 (en) 2014-04-29
US8171117B2 (en) 2012-05-01
US20090077216A1 (en) 2009-03-19
US9734465B2 (en) 2017-08-15
US20090077165A1 (en) 2009-03-19
US8838760B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
JP2009070386A (ja) タスクを実行する方法、タスクの実行を制御する装置、記録媒体及びプログラム。
US20160328189A1 (en) Apparatus, system, and method of controlling electronic data and recording medium storing data control program
JP5754128B2 (ja) 画像形成装置、情報処理システム、情報処理方法、及びプログラム
KR101238364B1 (ko) 화상 형성 장치의 커스터마이즈 방법 및 시스템
US11599308B2 (en) Server acquires identification information from a current device among plurality of devices and sends user information corresponding to all users to the current device
US20110090535A1 (en) Print intermediary server and print intermediary method
JP5462610B2 (ja) 情報処理システム、情報処理装置、それらの制御方法、及びプログラム
JP5665423B2 (ja) 画像形成装置、サービス連携方法、及びプログラム
EP2241967A2 (en) Information processing apparatus, control method, and program
US20080195590A1 (en) Network device, image forming device, and data searching method
CN103116478A (zh) 信息处理系统、信息处理设备及按钮处理方法
EP2040165B1 (en) Workflow-enabled client
JP6202137B2 (ja) 画像形成装置、情報処理方法、及びプログラム
CN101827185B (zh) 信息处理系统及其控制方法
JP5939336B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2004133926A (ja) 連携情報生成装置、連携情報生成方法及びプログラム、並びに文書処理システム
JP6265745B2 (ja) 情報処理端末
JP5693095B2 (ja) 複合機、システム、情報処理方法及びプログラム
JP2009033731A (ja) 画像形成装置、文書管理方法およびプログラム
JP2010055559A (ja) 文書管理装置、文書管理方法、及びプログラム
JP5935384B2 (ja) 印刷装置の管理装置、印刷装置管理システムおよびプログラム
US11792183B2 (en) Authentication system, user information extraction apparatus, and user information migration method
JP2016173817A (ja) 印刷制御システム、印刷制御方法、情報処理装置および制御システム