(57)【要約】【課題】クライアントを登録し、データをポーリングし、他クライアントを参入させる新規な方法を提供すること。【解決手段】ワークフローイネーブルクライアント(WEC)は、クライアント及びワークフローマネジャ(WM)インタフェース(IF)ユニットを有する。WM-IFユニットは、クライアントをWMに結合し、自動的な発見、分散処理、ダイナミックユーザIF生成等の本発明による機能を提供する。WECの通信マネジャは、名前、データ及び他のコマンドを用意することで、WMに対するクライアントの登録／登録抹消を行う登録ユニットを有する。ポーリングモジュールは、WMから受信したロケーションを使ってデータを取得する。プロセス制御モジュール(PCM)は、複数の処理機能(例えば、ポーリングしたデータを処理し、格納する又はそれを他のクライアントに提供すること)を実行する。PCMは他のクライアントを参入させることもできる。【選択図】図１Ａ
2009070386.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローイネーブルシステムでタスクを実行する方法であって、
第1のワークフローイネーブルクライアントをワークフローマネジャに登録するステップと、
ロケーション識別子を受信するステップと、
前記ロケーション識別子を用いてデータを取得するステップと、
を有し、前記第１のワークフローイネーブルクライアントを登録するステップは、ネットワークリクエストを生成及び送信するステップを含み、
前記ネットワークリクエストは、前記第１のワークフローイネーブルクライアントの名前及びユーザ名を含む
ようにした方法。
【請求項２】
前記ネットワークリクエストは、スキャン要求、印刷要求、パーシステント論理、認証情報、印刷データ、印刷データの場所、及び前記ワークフローイネーブルプロバイダの条件を含む群中の何れかを含むようにした請求項１記載の方法。
【請求項３】
ファイルリストを伴うレスポンスを受信するステップを有する請求項１記載の方法。
【請求項４】
前記ロケーション識別子を用いてデータを取得するステップが、前記ロケーション識別子を用いてポーリングを行うステップを含むようにした請求項１記載の方法。
【請求項５】
前記ポーリングを行うステップが、
前記ロケーション識別子を含むHTTPリクエストを前記ワークフローマネジャに送信するステップと、
前記データを含むレスポンスを受信するステップと、
を含むようにした請求項４記載の方法。  
【請求項６】
前記ロケーション識別子を用いてポーリングを行い、ポーリングされた情報を取得するステップを有し、該データを取得する際、該ポーリングされた情報及び前記ロケーション識別子を使用するようにした請求項１記載の方法。
【請求項７】
前記ロケーション識別子で指定される場所にリクエストを送ることで、前記第１のワークフローイネーブルクライアントの登録を前記ワークフローマネジャから抹消するステップを更に有する請求項１記載の方法。
【請求項８】
受信したデータに基づいて、第２のワークフローイネーブルクライアントの登録を開始するステップと、
前記第２のワークフローイネーブルクライアントを前記ワークフローマネジャに登録するステップと、
前記第２のワークフローに関する第２のロケーション識別子を受信するステップと、
前記第２のロケーション識別子を用いてデータを取得するステップと、
を有する請求項１記載の方法。
【請求項９】
前記第１のワークフローイネーブルクライアントを活性化することがスキャン処理を行うことを含み、取得したデータは、ワークフローイネーブルプロバイダによるスキャンにより生成されたデータであるようにした請求項８記載の方法。
【請求項１０】
前記第２のワークフローイネーブルクライアントを活性化することは、印刷、ファクシミリ送信又は電子メールによる送信を含む群中の何れかを含むようにした請求項８記載の方法。
【請求項１１】
前記第１のワークフローイネーブルクライアントを活性化することがスキャン処理を行うことを含み、取得したデータは、ワークフローイネーブルプロバイダによるスキャンにより生成されたデータであり、前記第２のワークフローイネーブルクライアントを活性化することは、フォーマット変換を行うことを含む請求項８記載の方法であって、
前記第２のロケーション識別子を用いて、取得したデータに基づいて、第３のワークフローイネーブルクライアントの登録を始めるステップと、
前記第３のワークフローイネーブルクライアントを前記ワークフローマネジャに登録するステップと、
前記第３のワークフローに関する第３のロケーション識別子を受信するステップと、
前記第３のロケーション識別子を用いてデータを受信するステップと、
を有し、前記第３のワークフローイネーブルクライアントを活性化することは、印刷、ファクシミリ送信又は電子メールによる送信を含む群中の何れかを含むようにした請求項８記載の方法。
【請求項１２】
前記第１のワークフローイネーブルクライアントの活性化が、スキャン処理を行うことを含み、取得したデータはワークフローイネーブルプロバイダによるスキャンにより生成されたデータであるようにした請求項１記載の方法。
【請求項１３】
前記第１のワークフローイネーブルクライアントでデータの取得を処理するステップを有し、該処理は、該取得したデータをデータベースに格納すること、該取得したデータについて光文字認識を実行すること、取得したデータを電子メールで送信すること、取得したデータをファクシミリ送信すること、取得したデータからウェブページを作成すること、取得したデータを選別すること、及び取得したデータを集めることを含む群中の何れかを含むようにした請求項１記載の方法。
【請求項１４】
前記第１のワークフローイネーブルクライアントの活性化が、印刷処理を行うことを含み、前記登録するステップは印刷可能なファイルを送信するステップを含み、該印刷はワークフローイネーブルプロバイダにより実行され、
該登録は認証の条件及びコードを指定し、前記ワークフローイネーブルプロバイダは、入力される前記コードを要求し、前記印刷可能なファイルを印刷前に確認するようにした請求項１記載の方法。
【請求項１５】
ワークフローイネーブルシステムにおけるタスクの実行を制御する装置であって、
規定の機能を実行する通常クライアントモジュールと、
前記通常クライアントモジュール及びネットワークと通信するように適合したワークフローインタフェースと、
を有し、前記ワークフローインタフェースユニットは、前記ワークフローイネーブルクライアントをワークフローマネジャに登録し、情報を取得するようにした装置。
【請求項１６】
ワークフローイネーブルシステムにおけるタスクの実行を制御する方法であって、
通信に備えてワークフローイネーブルクライアントをネットワークに接続するステップと、
ワークフローサービスを提供するワークフローイネーブルクライアントに識別子を割り当てるステップと、
前記ワークフローイネーブルクライアントの前記識別子及び前記ワークフローサービスの他のパラメータを告知するステップと、
前記ワークフローイネーブルクライアントにて、ワークフローイネーブルプロバイダからのリクエストを受信及び処理するステップと、
を有する方法。
【請求項１７】
請求項１乃至１４又は１６の何れか１項に記載の方法をコンピュータに実行させるコンピュータプログラムを記録した記憶媒体。
【請求項１８】
請求項１乃至１４又は１６の何れか１項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散型コンピュータシステムに関連する。より具体的には、本発明はプロバイダ装置及びクライアント装置間で処理を分散するシステム及び方法に関連する。更に具体的には、自動ディスカバリ機能を提供し、プロバイダ及びクライアント間で予め決められたインタフェースを提供し、ユーザによりカスタマイズ可能であり、且つプロバイダ及びクライアント間で処理を割り当てるようにした分散ワークフローイネーブルシステムに本発明は特に関連する。
【背景技術】
【０００２】
多くのオフィス環境に様々な周辺装置が普及しており、周辺装置の各々は特定の機能を発揮する。例えば、プリンタ、スキャナ、ファクシミリ、コピー機、複合機(MFP)又はこれらの装置のバリエーションのような事務機器の1つ以上を、多くのオフィスは備えている。ネットワークで共に結合されたこれらのいくつもの装置をオフィス環境が備えていることは良く知られている。通信ネットワークは多種多様な形式をとってよく、例えば、ローカルエリアネットワーク、広域ネットワーク、3Gネットワーク又は無線ネットワーク等であるが、これらに限定されない。しかしながら、これらの装置の既存の構成に伴う問題は、ネットワークで各装置を使用する際、ユーザは装置の存在を知る必要があること、各装置と通信するには別のソフトウエア又は多の装置を負担しなければならないこと、そして装置とやりとりする方法が柔軟でないこと等である。従ってユーザは典型的にはネットワーク上の少数の装置としかやりとりを行わず、ネットワークに用意されている多くのリソースを利用していない。
【０００３】
これらの周辺装置に関連して使用されるコンピュータ装置の状況は、デスクトップコンピュータのような同種の少数のコンピュータ装置群から、非常に様々な機能及び演算能力を備えた大規模な異種のコンピュータ装置群へと変わってきた。例えば、限定ではないが、パーソナルコンピュータ、パーソナルディジタルアシスタント、スマートフォン、ラップトップコンピュータ及びディジタルカメラ等のようなコンピュータ装置(周辺装置と共に使用するように結合されるもの)は、幾つ存在してもよい。これらの多くの装置は、有線又は無線でネットワークを介して通信する機能を有するが、周辺装置とやりとりする機能(インタフェース)はかなり制限されている。なぜなら、各周辺装置は、様々なデータ通信プロトコルに従う必要があり、自身のアプリケーションインタフェースを有する必要があり、データをその周辺装置に特有のフォーマットにしなければならないからである(しばしば他の周辺装置のフォーマットと異なる)。
【０００４】
周辺装置を伴うコンピュータ装置を利用する現在の環境に付随する或る特別な問題は、新たな周辺装置が使用環境の中に加えられる毎に、その新たな周辺装置と通信を希望する既存の装置各々が、一般的には、修正を要する或いはそれを加える新たなソフトウエアを要することである。例えば、新たなプリンタがネットワークに追加される場合、その新たなプリンタを使いたいコンピュータ装置各々は、ソフトウエアドライバをダウンロードして追加しなければならず、そのソフトウエアドライバは、コンピュータ装置がデータ及び制御コマンドをその新たなプリンタと通信できるようにする。更に、使用環境に追加される何らかの新たな装置にとって、ネットワーク上の他の装置と相互作用する手段が一つも無いことが間々ある。
【０００５】
ネットワーク上の新たな装置と通信することよりも更に基本的でさえある別の問題は、利用可能な周辺装置の存在を発見することである。ネットワーク上の装置を自動的に検出し、やりとりに備えてコンピュータ装置及び周辺装置を自動的に設定する手段は、多くのネットワークの場合存在しない。同様に、周辺装置の処理機能が何であるか(例えば、走査、印刷、製本等)を自動的に決定する手段が１つもないことも間々ある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、新たな周辺装置が使用環境の中に加えられる際、既存の装置各々が新たな周辺装置と簡易に通信できるようにすることである。
【課題を解決するための手段】
【０００７】
＜Ｉ．全体システム＞
本発明は分散ワークフローイネーブルシステムに伴う従来の欠点を克服する。本システムは、コンピュータ装置及び周辺装置が共によりいっそう効率的に機能できる点で特に優れている。特に、本発明ではそれらの演算能力にそれぞれ依存して、演算処理負担が周辺装置及びコンピュータ装置の間で分けられる。例えば、移動電話機のようにコンピュータ装置が限られた演算能力しか持っていなかった場合、プリンタ又はMFPが演算の責務をより多く請け負う。これに対して、例えばスタンドアローンプリンタと通信するデスクトップコンピュータのように、コンピュータ装置がより大きな又は未使用の能力を持っていた場合、そのコンピュータ装置はより多くの演算の責務を請け負う。
【０００８】
一実施例では、本発明のシステムは、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアントをネットワークで通信可能に結合して含んでいる。ネットワークイネーブルプロバイダ及びネットワークイネーブルクライアントは、ワークフローユニットを含む。ワークフローユニットは、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアントが、通信を行い、処理を分散し且つユーザインタフェースを提示することを可能にする。一実施例では、ワークフローユニットは、通信マネジャ、処理制御モジュール及びユーザインタフェースモジュールを有する。通信マネジャはネットワークに結合され、他のワークフローユニットとのリンクを確立し、他のワークフローユニットとデータ及びコマンドを通信することを促す。プロセス制御モジュールは、通信マネジャ及び各自のプロバイダ又はクライアントに結合される。プロセス制御モジュールは、複数の処理機能の内の１つを実行する。ユーザインタフェースモジュールは、プロセス制御モジュールに結合され、ユーザインタフェースを動的に生成し、関連するプロバイダ又はクライアントによる表示に備える。他の実施例では、本システムはワークフローマネジャを含み、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアント間の通信を促す。
【０００９】
本発明は、通信方法、プロセス制御モジュールによる処理方法、ユーザインタフェースの作成及び提示方法、プロセス制御モジュールで実行可能な検索処理方法等を含む多数の新規な方法を含む。
【００１０】
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
【００１１】
＜II．ＭＦＰ装置＞
本発明は、ワークフローイネーブルプロバイダを有する分散ワークフローイネーブルシステムにおける従来の欠点を克服する。ワークフローイネーブルプロバイダは、サービスプロバイダ及びワークフローマネジャインタフェースユニットを含む。サービスプロバイダは、複合プリンタ、プリンタ、スキャナ又はウェブサービス等のような既存のタイプのどれでもよい。ワークフローマネジャインタフェースユニットは、サービスプロバイダをワークフローマネジャに結合し、自動発見、分散処理、ダイナミックユーザインタフェース生成等の本発明による機能を提供する。ワークフローマネジャインタフェースユニットは、通信マネジャ、プロセス制御モジュール及びユーザインタフェースモジュールを含む。通信マネジャは、通知モニタ、要求モジュール及び応答モジュールを有する。通知モニタは、新たなクライアントに関するワークフローマネジャからのブロードキャストを聴く(監視する)。要求モジュール及び応答モジュールは、ワークフローマネジャ及びサービスプロバイダ間でのデータ及び制御信号の伝送を処理する。プロセス制御モジュールは、通信マネジャ及びサービスプロバイダに結合される。プロセス制御モジュールは複数の処理機能を実行し、その処理機能は、クライアントからのリクエストを収集すること、サービス可能なリクエストを選択すること、ユーザインタフェースを提示すること、プロバイダを介して入力を処理すること及びサービスプロバイダを制御すること等を含む。ユーザインタフェースモジュールは、プロセス制御モジュールに結合され、サービスプロバイダによる表示に備えてユーザインタフェースを動的に生成する。
【００１２】
ユーザインタフェース提示方法、監視及び起動方法、認証方法等の新規な多数の方法を本発明は含んでいる。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
【００１３】
＜III．クライアント／ウィジェット＞
本発明はワークフローイネーブルクライアントを有する分散ワークフローイネーブルシステムに伴う従来の欠点を克服する。ワークフローイネーブルクライアントは、クライアント及びワークフローマネジャインタフェースユニットを有する。クライアントは何らかのロジック又はルーチンであり、スキャントゥミー(scan-to-me)、ロック印刷、レシートのスキャン、日々のニュースを印刷すること等を行う。ワークフローマネジャインタフェースユニットは、クライアントをワークフローマネジャに結合し、自動発見、分散処理及びユーザインタフェースの動的な生成等の本発明による機能を発揮する。ワークフローマネジャインタフェースユニットは、通信マネジャ、プロセス制御モジュール及びユーザインタフェースモジュールを含む。通信マネジャは登録ユニット及びポーリングユニットを有する。登録ユニットは、例えば、名前、日付及び他のコマンドを用意することで、ワークフローマネジャと共にクライアントを登録及び登録抹消する。これに応じて、登録ユニットは、ワークフローマネジャから或るロケーションを受信し、そのロケーションはデータを引き出すためにモジュールをポーリングするのに使用可能である。プロセス制御モジュールは、通信マネジャ及びクライアントに結合されている。プロセス制御モジュールは、ポーリングデータの処理、その格納、それを他のクライアントに提供すること等の複数の処理機能を実行する。一実施例では、プロセス制御モジュールを介してユーザは他のクライアントを参加させる。ユーザインタフェースモジュールは、プロセス制御モジュールに結合され、分散ワークフローイネーブルシステムの動作設定の際、クライアントの使用するユーザインタフェースを動的に生成する。
【００１４】
クライアントを登録する方法、データをポーリングする方法、他のクライアントを参加させる方法等の新規な多数の方法を本発明は含んでいる。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
【００１５】
＜IV．ウィジェットマネジャ＞
本発明はワークフローマネジャを有する分散ワークフローイネーブルシステムに伴う従来の問題を克服する。ワークフローマネジャは、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアント間の通信を処理する。ワークフローマネジャは、クライアントのディレクトリを維持し、プロバイダによる処理を、クライアントにとって静的な複数のトランザクションに変換し、セキュリティを管理する。一実施例では、ワークフローマネジャは、登録によりワークフローイネーブルクライアントと接続し、通知及び起動によりワークフローイネーブルプロバイダと接続する。ワークフローマネジャ、ワークフローイネーブルプロバイダ及びワークフローイネーブルクライアント間の以後の通信は、要求／応答プロトコルと共に行われる。ワークフローマネジャは、登録モジュール、クライアント応答モジュール、通知モジュール、プロバイダ応答モジュール、データストレージ、ワークフローストレージ及び他の情報のディレクトリを含む。登録に応じて、ワークフローマネジャの登録モジュールは、通信用のロケーションをクライアントに提供し、クライアント応答モジュールはクライアントからのポーリング要求に応じる。プロバイダ応答モジュールは、登録に対応するワークフローサービスを実行することを提案しているプロバイダに応答する。データストレージは、ワークフローイネーブルクライアント又はワークフローイネーブルプロバイダに送信するデータを格納し、ワークフローストレージは登録されたクライアントに関連する情報を格納する。
【００１６】
クライアントを登録する方法及びプロバイダをアクティブにする方法を含む新規な多数の方法を本発明は含んでいる。
本願で説明される特徴及び利点は網羅的なものではなく、多くの追加的な特徴や利点が以下の説明及び図面を参照することで当業者に明らかになるであろう。更に、明細書で使用されている言葉は、原則として、理解及び説明の目的で選ばれており、本発明の範囲を限定することを意図しているわけではないことに留意すべきである。
【発明を実施するための最良の形態】
【００１７】
本発明は非限定的な実施例により添付図面と共に説明され、図中同様な参照番号は同様な要素を指す。  
【実施例１】
【００１８】
分散ワークフローイネーブルシステム100が説明される。以下の説明では、説明の便宜上多くの具体的詳細が述べられ、本発明の十分な理解を図る。しかしながら本発明がそのような具体的詳細によらず実施可能であることは、当業者にとって明らかであろう。また、本発明を曖昧にすることを避けるため、構造や装置はブロック図で示される。例えば本発明は以下の実施例ではジャバ(Java(登録商標))、HTTP要求／応答プロトコル、ユーザインタフェース及び特定のハードウエアに関連して説明される。しかしながら、データ及びコマンドを受信することができる如何なるタイプのコンピュータ装置にも及びサービスを提供する如何なる周辺装置にも、本発明は適用可能である。
【００１９】
本明細書における「一実施例」又は「実施例」は、その実施例に関して説明される特定の特質、構造又は特徴が、本発明の少なくとも１つの実施例に含まれることを意味する。本明細書の様々な場所で「一実施例」なる用語が使用されていることは、全て同じ実施例であることを必ずしも意味しているわけではない。特に本発明は２つの別個のアーキテクチャのコンテンツに関して以下で説明され、或る構成要素は双方のアーキテクチャで使用されるが別の構成要素はそうではない。
【００２０】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現で与えられる。これらのアルゴリズムの説明及び表現は、データ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
【００２１】
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、その動作や処理は、コンピュータシステムのレジスタ及びメモリの中で物理的な（電子的な）量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
【００２２】
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよいし、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
【００２３】
最後に、ここで説明されるアルゴリズム及び表示は、特定のコンピュータその他の装置のどれにも固有に関連するものではない。様々な汎用システムがここで教示するものによるプログラムと共に使用されてよく、或いは、必要な方法ステップを実行するように、よりいっそう特化した装置を構築することが便利なことが分かるかもしれない。これら様々なシステムに必要な構造は以下の説明から明らかになるであろう。更に、本発明は特定のプログラミング言語のどれにも依存しない。ここで説明される本発明の教示内容を実現するのに様々なプログラミング言語が使用されてよいことが分かるであろう。
【００２４】
＜システム概要＞
図１Ａ−Ｅは、本発明の一実施例により構築された分散ワークフローイネーブルシステム100A-100Eの様々な形態を示す。ここで図１Ａを参照するに、第１形態の分散ワークフローイネーブルシステムは：ワークフローイネーブルプロバイダ102、ネットワーク104及びワークフローイネーブルクライアント106を有する。図１Ａは、１つのワークフローイネーブルプロバイダ102及び１つのワークフローイネーブルクライアント106と共に、本発明による分散ワークフローイネーブルシステム100の最小限の構成を示す。ワークフローイネーブルプロバイダ102は、信号線120を介してネットワーク104に通信可能に結合される。ワークフローイネーブルクライアント106は、信号線122を介してネットワーク104に通信可能に結合される。ワークフローイネーブルプロバイダ102は、そのハードウエア、ソフトウエア及び接続に応じて、様々な如何なるサービス処理をも実行できる。ワークフローイネーブルプロバイダ102のサービス処理は、スキャニング、印刷、撮影、複写、ファクシミリ伝送、光文字認識、画像捕捉、画像生成、画像処理等を含むがこれらに限定されない。ワークフローイネーブルプロバイダ102は、そこで動作するソフトウエアを伴う装置(又はその一部として統合されたハードウエア)であって本発明によるユーザインタフェース及び通信機能を提供する何らかの装置である。ワークフローイネーブルプロバイダ102は、ワークフローイネーブルクライアント106と通信、相互作用及び協調するように適合させられている。ワークフローイネーブルクライアント106は、通信装置で動作するソフトウエアであり、如何なるレベルのコンピュータ機能を備えていてもよい。ワークフローイネーブルクライアント106は、本発明による方法を使って特定のタスクを実行し且つ通信を行う何らかのクライアントソフトウエアである。ワークフローイネーブルクライアント106及びワークフローイネーブルプロバイダ102は、互いに通信を行い、プロセス及びワークフローを分散し、ユーザインタフェースを生成及び用意する。
【００２５】
本発明による分散ワークフローイネーブルシステム100は、多数の恩恵をもたらす点で特に優れている。第１に、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106は、より効率的に動作可能になる。特に、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の間で、本発明は作業負担(ワークロード)を分割可能にする。この作業負担の分割は、ワークフローイネーブルプロバイダ102の能力(機能及び利用可能な演算力の双方)、ワークフローイネーブルクライアント106の能力及びワークフローイネーブルプロバイダ102における他者による要請等に基づく。第２に、本発明は、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106間の通信に関する通信標準仕様を作成する。これは作業負担の分割を可能にするが、複数のワークフローイネーブルプロバイダ102の中で情報を処理するために新たなワークフローを制御及び生成する手段をもたらす。第３に、本発明は例えばグラフィックユーザインタフェース(GUI)のようなユーザインタフェースの作成及び提示を可能にし、ユーザインタフェースは、そのユーザに対して特化され、ワークフロー、ワークフローイネーブルクライアント106の能力及びワークフローイネーブルプロバイダ102の能力に適合させられる。より具体的には、一実施例の場合、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の双方に共通するGUIが、異なるプロバイダ及び異なるクライアントを使用する場合でさえ、共通のインタフェース又は経験をもたらすために使用可能である。
【００２６】
図１Ｂ−１Ｅを参照するに、本発明による第２形態の分散ワークフローイネーブルシステム100B-100Eの様々な構成が示されている。分散ワークフローイネーブルシステム100B-100Eの第２形態では、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106間の通信は、通知／ディスカバリ(advertisement/discovery)プロトコルを使用し、ワークフローマネジャ108も含み、ワークフローマネジャはワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106間の通信を支援する。一実施例では、ワークフローマネジャ108は、ワークフローイネーブルクライアント106のディレクトリ、ワークフローイネーブルクライアントをアクティブにしたワークフローイネーブルプロバイダ102のIPアドレスのリスト及び他の情報を維持し；利用可能性に関する通知と共にワークフローイネーブルクライアント106を支援し；ワークフローイネーブルプロバイダ102からのトランザクションをワークフローイネーブルクライアント106に適した複数のトランザクションに変換し；セキュリティ及び認証を処理する。ワークフローマネジャ108の機能については、後に図６を参照しながら詳細に説明される。自身の利用可能性を通知するワークフローイネーブルクライアント106及び通知を発見するワークフローイネーブルプロバイダ102と共に本発明は説明されるが、他の実施例の場合、それらの役割は逆でもよく、自身の利用可能性を通知するワークフローイネーブルプロバイダ102及び通知を発見するワークフローイネーブルクライアント106が利用されてもよいことを、当業者は認識するであろう。
【００２７】
図１Ｂは、第２形態の分散ワークフローイネーブルシステム100Bの第１の好ましい構成を示し、システム100Bの構成要素は複数の装置におけるソフトウエア手段である。この第１の構成例の場合、例えばMFPである第１装置150はワークフローイネーブルプロバイダ102を含む一方、例えばパーソナルコンピュータである第２装置152はワークフローイネーブルクライアント106を含む。ワークフローイネーブルクライアント106は、ワークフローマネジャ108及びライトウェイト(lightweight)クライアント110を更に含む。ワークフローイネーブルプロバイダ102は信号セイン120によりネットワーク104に結合される。ワークフローイネーブルクライアント106は、特にワークフローマネジャ108は、信号線122によりネットワーク104に結合される。そしてワークフローマネジャ108は信号線124によりライトウェイトクライアント110に結合される。ワークフローイネーブルクライアント106はパーソナルコンピュータ上で動作可能である。１つのライトウェイトクライアント110しか示されていないが、第２装置152はそのようなライトウェイトクライアントを複数個含み(110A-110N)、それら総ては図１Ｅの第５構成例100Eに示されるようにワークフローマネジャ108に結合されることを、当業者は認識するであろう。更に、第１装置150及び第２装置152は、如何なるコンピュータ装置及びMFPでもよく、パーソナルコンピュータは単なる一例として使用されているに過ぎない。
【００２８】
図１Ｃは、第２形態の分散ワークフローイネーブルシステム100Cの第２構成例を示す。この構成例の場合、第1装置150は、図１Ｂを参照しながら上述したようにワークフローイネーブルプロバイダ102を含む。しかしながらこの第２構成例は第２装置152を有し、その第２装置はライトウェイトクライアント110だけを含み、ワークフローマネジャ108は第３装置154の一部として含まれ動作する。ワークフローマネジャ108は、信号線126によりネットワーク104に結合される。ライトウェイトクライアント110は信号線128により通信に備えてネットワーク104に結合される。この例は有利である。なぜなら、第２装置152は、ライトウェイトクライアント110をダウンロードしてインストールすることだけを必要とし、ネットワーク104にアクセスし、本発明による機能を可能にするからである。この例におけるライトウェイトクライアント110は、図１Ｂで直結されていたのとは異なり、ネットワーク104を介してワークフローマネジャ108と通信する。即ち、ネットワーク104に結合された別個の第３装置154(サーバ)にワークフローマネジャ108を設けることは、そのワークフローマネジャ108が、小さなライトウェイトクライアント110を含むいくつかの装置で共用されることを可能にする。
【００２９】
図１Ｄは、第２形態の分散ワークフローイネーブルシステムの第３構成例を示す。この構成例の場合、第１装置150がワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の双方を含む。ワークフローイネーブルプロバイダ102が信号線132によりワークフローマネジャ108に結合され、ワークフローマネジャ108は信号線130によりネットワーク104に結合されるように、結合が変更されている。第２構成例と同様に、第３構成例も第２装置152にライトウェイトクライアント110しか必要としていない。第２形態のこれらの様々な構成例は、ワークフローマネジャ108が、分散ワークフローイネーブルシステム100の何らかの装置の一部として動作してよいことを示す。
【００３０】
図１Ｅは、第２形態の分散ワークフローイネーブルシステム100Dの第４構成例を示す。この構成例の場合、第1装置150はワークフローイネーブルプロバイダ102を含む一方、第２装置152はワークフローマネジャ108及び複数のライトウェイトクライアント110A-110Nを含む。ワークフローイネーブルプロバイダ102は、信号線120によりネットワーク104に結合される。ワークフローマネジャ108は、信号線122によりネットワーク104に結合される。ワークフローマネジャ108は通信用に信号線124A-124Nによりライトウェイトクライアント110A-110Nにそれぞれ結合される。ワークフローマネジャ108及び複数のライトウェイトクライアント110A-110Nは、パーソナルコンピュータ152で動作可能である。この構成例は、いくつであってもライトウェイトクライアント110A-110Nが１つのコンピュータ装置でどのようにして同時に使用されるかを示す。
【００３１】
図１Ｂ−１Ｅは本発明を実現する単なる例に過ぎず、別の構成例が幾つでも可能なことを当業者は認識するであろう。例えば、他の例の場合に、ワークフローマネジャ108を配置する様々な変形例の総てが、複数のワークフローマネジャ108と共に或る構成例の中で同時に存在してもよい。同様に、他の構成例は或るワークフローイネーブルプロバイダ102、或るワークフローイネーブルクライアント106、或るライトウェイトクライアント110及び或るワークフローマネジャ108を、特定のオフィス設定の要請に従って選択することができる。
【００３２】
図２は、本発明の第３形態により構築された更に複雑な分散ワークフローイネーブルシステム200のブロック図である。図２は分散ワークフローイネーブルシステムの更に別の例を示し、複数のワークフローイネーブルプロバイダ102a-102n及び複数のワークフローイネーブルクライアント106a-106nが存在する。
【００３３】
図２を参照するに、ネットワーク104は信号線120によって複数のワークフローイネーブルプロバイダ102a-102nに結合される。一実施例では、本発明はソフトウエアとして実現され、既存の複数のプロバイダ装置にインストールされてもよい。他の実施例では、本発明はハードウエアとして実現され、既存の複数のプロバイダ装置にないに組み込まれてもよい。本発明によるソフトウエアと共にそのような装置がいったんイネーブルにされると、それらはワークフローイネーブルプロバイダ102a-102nになる。本実施例における複数のワークフローイネーブルプロバイダ102a-102nは、ワークフローイネーブルプリンタ102a、ワークフローイネーブルコピー機102b、ワークフローイネーブルウェブサービス102c、ワークフローイネーブル複合機102d、ワークフローイネーブルサーバ102e及び他のワークフローイネーブルオフィス機器102nを含む。本発明による複雑に分散したワークフローイネーブルシステム200は、ワークフローイネーブルプロバイダ102a-102nを幾つ含んでもよいこと、及びワークフローイネーブルプロバイダ102a-102nの各々は異なる性能を持っていてよいこと等を、図２は示している。
【００３４】
複合的に分散したワークフローイネーブルシステム200のこの例は、信号線122を介してネットワーク104に結合された複数のワークフローイネーブルクライアント106a-106nも含んでいる。複合的に分散したワークフローイネーブルシステム200はワークフローイネーブルクライアント106a-106nを幾つ含んでもよいこと、及びワークフローイネーブルクライアント106a-106n各々は異なる性能を有するだけでなく異なる媒体で通信してよいことを、この複数のワークフローイネーブルクライアント106a-106nは示している。この特定の実施例の場合、ワークフローイネーブルクライアント106a-106nは、ワークフローイネーブルパーソナルコンピュータ106a、ワークフローイネーブルラップトップコンピュータ106b、ワークフローイネーブルスマートフォン106c及びワークフローイネーブルパーソナルディジタルアシスタント(PDA)106nを含む。一実施例では、本発明はソフトウエアとして実現され、通常の如何なるクライアント装置にインストールされてもよい。図２に示されるような複合的な分散ワークフローイネーブルシステム200のアーキテクチャに基づいて、当業者は多種多様なワークフローを認識でき、ワークフローの様々な部分は様々なプロバイダ102a-102n及び様々なワークフローイネーブルクライアント106a-106nにより実行され、ワークフローに対する入力及び出力は、様々なプロバイダ102a-102n及び様々なワークフローイネーブルクライアント106a-106nにより送受信される。
【００３５】
実施例に依存して、システム200はワークフローマネジャ108を含んでもよい。ワークフローマネジャ108は、複数のプロバイダ102a-102n及び複数のワークフローイネーブルクライアント106a-106n間の通信を促す。図２には１つのワークフローマネジャ108しか示されていないが、他の実施例は複数のワークフローマネジャ108を含んでもよい。代替実施例は1つ以上のワークフローマネジャ108を含んでもよく、その全部又は一部は、図１Ｃに示されるようなスタンドアローンでもよいし、図１Ｄのようにワークフロープロバイダ102と共にまとめられてもよいし、図１Ｂのようにライトウェイトクライアント110と共にまとめられてもよい。
【００３６】
＜システム実施例＞
図３Ａを参照するに、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106を詳細に示す分散ワークフローイネーブルシステムの第１形態が示されている。
【００３７】
図３Ａに示されているように、ワークフローイネーブルプロバイダ102は、通常のプロバイダ302及びプロバイダワークフローユニット304を含む。本願における通常のプロバイダ302は、スキャン、コピー、印刷、ページ順に並べること(collating)、フォーマット変換、光文字認識、製本、ファクシミリ送信、電子メール送信等のような１つ以上の何らかの処理(例示のものに限定されない)を実行可能な何らかの装置を一般的に指すように使用される。コピー、スキャン、ファクシミリ及び印刷等のようなオフィス環境の複合機で実行される処理に関連して、本発明は主に説明されているが、様々な他の文書又は画像処理に本発明が使用されてよいことを当業者は認識するであろう。更に、一実施例では、通常のプロバイダ302はそのような他の文書又は画総処理にアクセスするウェブサービスであってもよい。プロバイダワークフローユニット304は、通常のプロバイダ302と通信するように結合及び適合している。プロバイダワークフローユニット304は、他のワークフローユニット304,308と通信し；通常のプロバイダ302から受信した又は信号線120を介してワークフローイネーブルプロバイダ102により外部から受信したデータ及び情報を処理し；通常のプロバイダ302への入力を制御及び提供し；ユーザインタフェースを生成し、それを通常のプロバイダ302に提示する。一実施例のプロバイダワークフローユニット304は、図４を参照しながら後に詳細に図示及び説明される。
【００３８】
ワークフローイネーブルクライアント106は、通常のクライアント306及びワークフローユニット308を含む。通常のクライアント306は、何らかのコンピュータ装置で動作するような通常のタイプのものである。通常のクライアント306は、情報を表示し、入力を受信し、演算を実行することのできる何らかのコンピュータ装置を一般的に言及している。例えば、通常のクライアント306は、通常のパーソナルコンピュータ、通常のスマートフォン、通常のラップトップコンピュータ、通常のパーソナルディジタルアシスタント、通常の携帯通信装置及び通常のセルラ電話機等のような如何なるものでもよい。通常のクライアント306は、クライアントワークフローユニット308との通信に適合して結合されている。クライアントワークフローユニット308は、プロバイダワークフローユニット304に関して説明されたのと同様な機能を有する。クライアントワークフローユニット308は、他のワークフローユニット304と通信し；通常のクライアント306から受信した又は信号線122を介してワークフローイネーブルクライアント106により外部から受信したデータ及び情報を処理し；ユーザインタフェースを生成し；それらを通常のクライアント306に提示する。一実施例のクライアントワークフローユニット308は、図５Ａを参照しながら後に詳細に図示及び説明される。
【００３９】
ネットワーク104は通常の有線又は無線のタイプであり、スターコンフィギュレーション、トークンリングコンフィギュレーションその他の当業者に既知のコンフィギュレーション等のようなコンフィギュレーションを幾つ含んでいてもよい。更に、ネットワーク104は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)(例えば、インターネット)及び／又は他の何らかの相互接続データパス(そのデータパスを介して複数の装置が通信する)を有する。更に別の実施例では、ネットワーク104はピアトゥピアネットワークでもよい。
【００４０】
図３Ｂを参照するに、第２形態の分散ワークフローイネーブルシステム100Cは、ワークフローイネーブルプロバイダ102及びライトウェイトクライアント110を詳細に示している。第２形態では、ワークフローイネーブルプロバイダ102は通常のプロバイダ302及びプロバイダワークフローインタフェース(WIF)ユニット352を有する。ライトウェイトクライアント110は、通常のクライアント306及びクライアントワークフローインタフェース（WIF）ユニット354を有する。通常のプロバイダ302及び通常のクライアント306は、図３Ａに関して説明されているので、ここで重複的には説明しない。ワークフローマネジャ108は、図１Ｂ−１Ｅを参照しながら説明されており、図6を参照しながら以下で詳細に説明される。以下の図３Ｂの説明は、ワークフローマネジャ108に登録されたライトウェイトクライアント110の観点からのやりとりを説明しているが、ワークフローイネーブルクライアント106又はヘビーウェイトクライアントでもよいことを当業者は認識するであろう(この点については、図５Ｃに関連して後に詳細に説明される)。
【００４１】
プロバイダワークフローインタフェース(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の一例は、図４Ｂを参照しながら詳細に図示及び説明される。
【００４２】
クライアントワークフローインタフェース(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の一例は、図５Ｂを参照しながら詳細に図示及び説明される。
【００４３】
図４Ａを参照するに、本発明によるワークフローイネーブルプロバイダの第１形態が、詳細に示されている。特に、図４Ａはプロバイダワークフローユニット304だけでなく、通常のプロバイダ302及び他の外部装置(図示せず)との結合関係も示している。この例では、プロバイダワークフローユニット304は、ユーザインタフェースモジュール402、プロセス制御モジュール404及び通信マネジャ406を含む。
【００４４】
ユーザインタフェースモジュール402は、信号線428を介してプロセス制御モジュール404に結合される。ユーザインタフェースモジュール402は、ユーザインタフェースを動的に生成し、プロセス制御モジュール404とやりとりを行い、動的に生成されたユーザインタフェースを通常のプロバイダ302が表示することを引き起こす。他の実施例では、ユーザインタフェースモジュール402は通常のプロバイダ302に直接的に結合され、通常のプロバイダ302の表示を直接的に制御し、ユーザインタフェースを望まれるように生成する。ユーザインタフェースモジュール402及びその動作は、図９及び１２を参照しながら後に詳細に説明される。一実施例では、ユーザインタフェースモジュール402はオプションであり、このため図４では破線で示されている。
【００４５】
プロセス制御モジュール404は、プロバイダワークフローユニット304の動作を制御し、信号線420を介して通常のプロバイダ302と通信するように結合され、信号線422を介して通信マネジャ406と通信するように結合され、信号線424を介して1つ以上の外部装置(図示せず)と(選択的に)結合される。プロセス制御モジュール404は、通信マネジャ406からコマンド及びデータを受信し、それらのコマンド及びデータを通常のプロバイダ302用の入力に変換する。一実施例では、プロセス制御モジュール404は、通常のプロバイダ302のアプリケーションインタフェースを組み込む。従ってプロセス制御モジュール404は、通常のプロバイダ302が理解できる方法で信号線420を介して通信することができる。別の実施例では、プロセス制御モジュール404は、通常のプロバイダ302にデータを渡す前にそのデータについて処理を施す。更に別の実施例では、プロセス制御モジュール404は、コマンド及びデータを通常のプロバイダ302のような別のリソースに又は信号線424を用いて外部リソース(図示せず)に送信することで、ワークフローを管理する。プロセス制御モジュール404は、図８Ａを参照しながら以下で詳細に説明される。
【００４６】
通信マネジャ406は、信号線422を介してプロセス制御モジュール404と及び信号線120を介してネットワーク104と通信するように適合させられている。通信マネジャ406は、他のワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106との通信及びデータ交換を取り扱う。多くの場合、通信マネジャは１つのワークフローイネーブルクライアント106と通信を行うが、複数のワークフローイネーブルプロバイダ102及び複数のワークフローイネーブルクライアント106と通信してもよい。通信マネジャ406の動作は、図７Ａ及び１１Ａを参照しながら後に詳細に説明される。一実施例では、通信マネジャ406は標準化されたプロトコルを使用し、通信マネジャ各々が互いに通信するようにする。この標準的なプロトコルは、自動発見、自動登録、サービスの通知、制御コマンド及びデータの転送等を含む。完全を期するため、通常のプロバイダ302は信号線120に結合した入力／出力を選択的に有し、ある実施例の通常のプロバイダ302に関して一般に理解されているように、通常のプロバイダ302との直接的な通信を行ってよいことが理解されるべきである。従って通常のプロバイダ302は、信号線120により直接的に又は通信マネジャ406を用いて、他の装置と通信してよい。
【００４７】
図４Ｂは、本発明によるワークフローイネーブルプロバイダ102の第２形態を示す。第２形態のワークフローイネーブルプロバイダ102は、通常のプロバイダ302及びプロバイダWIFユニット352を含み、プロバイダWIFユニット352は、ユーザインタフェースモジュール452、プロセス制御モジュール454及び通信マネジャ456を含む。通信マネジャ456は信号線120を介してネットワーク104に結合される。プロセス制御モジュール454は、信号線460により通信マネジャ456に、信号線458によりユーザインタフェース452に、信号線464により通常のプロバイダ302に結合されている。ユーザインタフェースモジュール452及びプロセス制御モジュール454は、図４Ａを参照しながら説明されたユーザインタフェースモジュール402及びプロセス制御モジュール404と同様な機能をそれぞれ有する。本実施例の場合、プロバイダWIFユニと352は、通信マネジャ456を介して、ワークフローイネーブルプロバイダ102及びワークフローマネジャ108間の通信をネットワーク104を用いて制御することに、留意すべきである。通信マネジャ456は図７Ｂを参照しながら以下で詳細に説明される。他の主な相違は、プロセス制御モジュール454がワークフローマネジャ108と共に適切にやりとりするのに必要なアクションを実行することである。
【００４８】
別の実施例では、第２形態のワークフローイネーブルプロバイダ102は、デバイスプロバイダプロキシ(図示せず)を含んでもよい。従来の通常のプロバイダ302は、ネットワーク104を介して通信し、リクエストを発し、及び／又はワークフローイネーブルプロバイダ102であるのに必要なメニューをコンソール上に提示する能力を備えていないかもしれない。そのような従来の通常のプロバイダ302の場合、デバイスプロキシがプロバイダWIFユニット354に加えて追加され、そのグループがワークフローイネーブルプロバイダ102をなすようにする。デバイスプロキシは、実際のスキャンや印刷の機能を除いて装置機能の総てを実行するサーバである。一実施例では、デバイスプロキシは或る装置であり、その装置は、LPRのような又はUSBを介する従来のプロトコルを用いてスキャナ又はプリンタバックエンドとたまたま通信している装置である。デバイスプロキシは、ワークフローイネーブルクライアント106のメニューを維持し、DNS−ベースのサービスディスカバリ(DNS-SD)を介して自ら告知を行い、ワークフローイネーブルクライアント106を選択及び活性化するユーザインタフェースを提供する。それは従来の通常のプロバイダが適切にスキャン又は印刷することを制御し、スキャンした文書をワークフローイネーブルクライアント106にリクエスト(例えば、HTTP  POSTリクエスト)に応じて与える。ワークフローマネジャ108とは異なり、デバイスプロキシは、スキャナやプリンタのような特定のタイプの装置に特有であるが、複数のスキャナ又は複数のプリンタが同じデバイスプロキシによって支援されてもよい。
【００４９】
図５Ａは、本発明によるワークフローイネーブルクライアント106の第１形態を示す。図５Ａは、ワークフローイネーブルクライアント106のクライアントワークフローユニット308に関する追加的な情報を提供する。この実施例の場合、クライアントワークフローユニット308は、ユーザインタフェースモジュール502、プロセス制御モジュール504及び通信マネジャ506を有する。
【００５０】
ユーザインタフェースモジュール502は、図４Ａを参照しながら説明したユーザインタフェースモジュール402と同様な機能を有する。しかしながら、ユーザインタフェースモジュール502は、通常のプロバイダ302とは異なり、通常のクライアント306でのユーザインタフェースの生成に備えて、ユーザインタフェースを動的に生成し、プロセス制御モジュール504とやりとりを行う。再びユーザインタフェースモジュール502はオプションであり、それ故に図５Ａでは破線で示されている。ユーザインタフェースモジュール502は図５Ａでは示されていないが、通常のクライアント306におけるユーザインタフェースの生成及び制御に備えて、通常のクライアント306に直接的に結合されてもよい。ユーザインタフェースモジュール502は、信号線528を介してプロセス制御モジュール504に結合されている。ユーザインタフェースモジュール502は、図９及び１２を参照しながら後に説明される。
【００５１】
プロセス制御モジュール504は、信号線520を介して通常のクライアント306に及び信号線522を介して通信マネジャ506に結合される。プロセス制御モジュール504は、全体的なワークフロープロセスを制御するのに使用される。様々な実施例でプロセス制御モジュール504は通常のクライアント306の動作を制御する。プロセス制御モジュール504は、通信マネジャ506を介して得られるルーチンの処理を実行するモジュールを含んでもよいし、或いはプロセス制御モジュール504の一部として格納されてもよい。これらのルーチンは、一般的なワークフローのコマンド及び制御を含むだけでなく、データの独立な処理をも含む。プロセス制御モジュール504をクライアントワークフローユニット308の一部として含めることは有利である。なぜなら、プロセス制御モジュール504は通常のクライアントのリソースを割り当てて使用し、全体的なワークフローの一部を処理するからである。例えば、プロセス制御モジュール504がワークフローイネーブルプロバイダ102の特殊なサービスを使用しつつ、それと同時に、その処理を実行するために通常のクライアント306の利用可能な帯域を使うことは、演算コストが高くなる。これは、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106の間で作業を効果的に分割し、双方の装置のパフォーマンスを向上させるよう最適化する。プロセス制御モジュール504の動作は、図８Ｂ及び１１Ｂを参照しながら更に詳細に説明される。
【００５２】
通信マネジャ506は、通信マネジャ406を参照しながら説明されたものと同様な機能を有する。通信マネジャ506は、図７Ａ及び１１Ａを参照しながら以下で更に詳細に説明される。通信マネジャ406との主な相違は、通信マネジャ506が信号線122によりネットワーク104に結合され、信号線522によりプロセス制御モジュール504に結合されている点である。
【００５３】
図５Ｂは、本発明によるライトウェイトクライアント110の第２形態を示す。第２形態のライトウェイトクライアント110は、通常のクライアント306及びクライアントWIFユニット354を含み、クライアントWIFユニット354は、ユーザインタフェースモジュール522、プロセス制御モジュール554及び通信マネジャ556を有する。通信マネジャ556は信号線122によりネットワーク104に結合される。プロセス制御モジュール554は、信号線560により通信マネジャ556に、信号線558によりユーザインタフェースモジュール552に、信号線562により通常のクライアント306に結合される。ユーザインタフェースモジュール552及びプロセス制御モジュール554は、図５Ａを参照しながら説明されたユーザインタフェースモジュール502及びプロセス制御モジュール504と同様な機能をそれぞれ有する。本実施例では、通信マネジャ556を介するクライアントWIFユニット354は、ライトウェイトクライアント110及びワークフローマネジャ108間の通信をネットワーク104を用いて制御することに、留意すべきである。通信マネジャ556は図７Ｃを参照しながら以下で更に詳細に説明される。他の主な相違は、プロセス制御モジュール554が、ワークフローマネジャ108との適切なやりとりに必要なアクション(処理)を実行することである。ワークフローイネーブルクライアント106は、通常のクライアント306とやりとりを行い、ライトウェイトクライアント110のユーザコンフィギュレーションを受信及び使用する。
【００５４】
図５Ｃは、本発明によるヘビーウェイト(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と通信する。図６と共に当業者に理解されるように、ヘビーウェイトクライアント112の通知マネジャ564は、通知モジュール608、プロバイダ応答モジュール612、応答データストレージ614、ワークフロープロセッサ616、ワークフローストレージ618、セキュリティ及びロギングモジュール620に類似するワークフローマネジャ108の機能を有する。これは、ヘビーウェイトクライアント112が、図１Ｂのワークフローイネーブルクライアント106と同じ方法で、ワークフローイネーブルプロバイダ102とやりとりできるようにする。
【００５５】
図６は、本発明によるワークフローマネジャ108の一例を示す。ワークフローマネジャ108は、登録モジュール602、クライアント情報ディレクトリ604、クライアント応答モジュール606、通知モジュール608、プロバイダ応答モジュール612、応答データストレージ614、ワークフロープロセッサ616、ワークフローストレージ618、セキュリティモジュール620を有する。一実施例では、ワークフローマネジャ108はソフトウエアライブラリであり、通信機能を実行し、ユーザの代わりに一群のクライアントを管理する。図１Ｂを参照しながら説明されたように、他の実施例では、ワークフローマネジャ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を告知し、(スキャン又は印刷のような)指定された１つ以上の機能を実行できる如何なるワークフローイネーブルプロバイダ102も、そのライトウェイトクライアント110を発見できるようにする。そしてワークフローイネーブルプロバイダ102はユーザインタフェースを生成し、そのユーザインタフェースは、ライトウェイトクライアント110の利用可能性をワークフローイネーブルプロバイダ102のユーザに表示する。
【００５９】
一実施例では、登録コマンドを受信すると、登録モジュール602はそのライトウェイトクライアント110に２つの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へ送信される。そのようなリクエストのフォーマット例は、以下の表１の何らかのパラメータを伴うHTTP  POSTリクエストである。
【００６２】
【表１】
2009070386.tif 000003
表１のパラメータは単なる一例に過ぎず、ワークフローイネーブルプロバイダ102及びライトウェイトクライアント110に従って様々な他のパラメータが追加されてもよいことを、当業者は認識するであろう。登録モジュール602は、ライトウェイトクライアント110に関して割り当てられた名前及び他の情報を、クライアント情報ディレクト604に格納する。例えば、ライトウェイトクライアント110の２つの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通知を送信することを含む。第１の通知は、トップレベルのユーザ／メニュー名を予約する目的でなされ、その名前の下に、１つ以上のワークフローイネーブルクライアント106はワークフローイネーブルプロバイダ102についてリスト化される。これは、例えば２人のユーザがたまたま同じ名前を共用していた場合に、２つの別々のワークフローマネジャ108が同じメニュー名でクライアントをリスト化しないことを保証する。第２の通知は、ワークフローイネーブルクライアント106自身を通知し、ワークフローイネーブルプロバイダ102により監視される通知である。これらのメッセージは以下の表２及び表３に示されるようなフォーマット例を使用してもよい。
【００６７】
【表２】
2009070386.tif 000004
【００６８】
【表３】
2009070386.tif 000005
プロバイダ応答モジュール612は、ワークフローイネーブルプロバイダ102からのリクエストを監視し、それらに応答するソフトウエア及びルーチンである。プロバイダ応答モジュール612は、活性化に続くリクエストを処理する。一実施例では、プロバイダ応答モジュール612は、登録されたワークフローイネーブルクライアント106の活性化に備えて、ワークフローイネーブルプロバイダ102からのHTTPリクエストを監視する。一実施例では、プロバイダ応答モジュール612は「ハロー(Hello)」コマンドのような第１コマンドを監視する。別の実施例の場合、プロバイダ応答モジュール612は、そのワークフローイネーブルクライアント106を活性化するのに或いは既に入力されているPINを有効にするのに、認証(ワークフローイネーブルプロバイダ102からの信用証明)又はPINが必要であるか否かを確認する。PINが一切不要であった場合又は適切な認証が与えられていた場合、プロバイダ応答モジュール612は、HTTP応答を生成及び送信することでワークフローイネーブルプロバイダ102と共にやりとりを行い、ライトウェイトクライアント110により指定されているタスクを実行する。これらの生成された応答の具体例は、本発明による方法の説明(後述)の際に説明される。
【００６９】
PINが要求され、ハローコマンドがPINを一切含んでいなかった場合又は有効でないPINしか含んでいなかった場合、プロバイダ応答モジュール612はそのリクエストが承認されないことを応答し、ワークフローイネーブルプロバイダ102は、そのユーザからの有効なPINを要求し、包含され与えられているPINと共にハローコマンドを反復すべきことを指示する。一実施例では、有効なPINが要求されるPINの有効化及び応答の後に、RFC2617インターネット標準仕様に記載されているようなHTTP認証法が続く。プロバイダ応答モジュール612は、第２のコマンドである「活性化(Activation)」コマンドを監視する。この第２のコマンドに応答して、プロバイダ応答モジュール612は、ライトウェイトクライアント110に後に配布するために、ワークフローイネーブルプロバイダ102からのリクエストの一部として受信したファイル及びデータを、応答データストレージ614に格納する。プロバイダ応答モジュール612は、ワークフローイネーブルプロバイダ102に送信される応答の中にファイル及びデータを含める。例えば、ハローコマンドに応答するプロバイダ応答モジュール612により生成された応答は、UI要素と共に表示される文字を含む活性化フォーム(Activation  form)を含むことができ、UI要素は、アクティブコマンドリクエストの一部として、プロバイダ応答モジュール612に返す情報をユーザが提示することを可能にする。このフォームは、アクティブコマンドリクエストと共に包含されるべき何らかのスキャンを指定するのに使用される。これらのUI要素を通じて入力された値及び生成された何らかのスキャンデータは、アクティブコマンドリクエストの一部としてプロバイダ応答モジュール612に送信される。このデータは、以下で詳細に説明されるように、クライアント応答モジュール606によりワークフローイネーブルクライアント106に利用可能にされる。プロバイダ応答モジュール612により生成された応答(レスポンス)は、ワークフローイネーブルプロバイダ102による出力等のための他のファイル又はデータを含んでよい。他の具体例として、アクティブコマンドに応答してプロバイダ応答モジュール612により生成された応答は、ワークフローイネーブルプロバイダ102により印刷されるべきファイルを含んでもよい。プロバイダ応答モジュール612に降り生成される応答は：１）ファイルを伴う応答、２）データを伴わない応答、３）ファイルを取り出すアドレスを伴う応答、４）有効なPINが供給されなければならない応答又は５）他の何らかのエラー状態が生じている応答かもしれない。
【００７０】
応答データストレージ614は、ワークフローイネーブルプロバイダ102から受信した情報を格納するメモリ又はストレージである。応答データストレージ614は、データが受信側のライトウェイトクライアント110に送信されるまで、そのデータを格納する。メモリは通常のタイプのものであり、例えば、ワークフロープロセッサ616により使用するために割り当てられた作業メモリの一部、又はハードドライブのような磁気メモリ等でもよい。代替実施例では、スキャンされたファイル、ワークフローイネーブルクライアント自身の印刷ファイル、及び他の形式のデータが、ワークフローマネジャ108により、クライアント情報ディレクトリ604内のライトウェイトクライアント110のファイル及びサブディレクトリの形式で利用可能にされる。登録中にライトウェイトクライアント110により印刷ファイルが指定されていた場合、そのファイルは、登録リクエストで指定されているファイル名と共にベースワークフローイネーブルクライアントURIに現れる。１つの活性化の間に生成された総ての情報は、yyyMMdd’T’HHmmss’Z’.a.b.c.dの形式のサブディレクトリの名前と共に、ワークフローイネーブルクライアントの基本ウィジェット(widget)URIのサブディレクトリにより、ライトウェイトクライアント110に利用可能にされ、この場合におけるyyyMMdd’T’HHmmss’Z’は活性化がなされた際のタイムスタンプであり(インターネットタイムフォーマットにおけるもの、除去される句読点を除く)、a.b.c.dは活性化を実行したワークフローイネーブルプロバイダ102のIPアドレスにおけるものである。スキャンされたファイルは自身のスキャンサブディレクトリ内に現れ、活性化フォームで指定されているファイル名と同じ名前を有する。１つのスキャンで複数のファイルが生成されていた場合、複数ページ文書の場合と同様に、複数のファイルがそのスキャンディレクトリに用意される。ワークフローイネーブルプロバイダ102により提供されたオリジナルのファイル名及びコンテンツファイルは、可能であれば保存されるべきである。ワークフローイネーブルプロバイダ102の活性化が、サポートしている何らかの代替プロトコルを指定していた場合(例えば、IPP又はLPD)、これらのプロトコルを介してワークフローイネーブルプロバイダ102にアクセスするためのURLは、活性化サブディレクトリ内のファイルalt.uriに現れる。ファイルは、text/uri-list  の形式であり、CRLFにより分離された１つ以上の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)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の各々は、各自自身のロギングを有し、各々がデータを送受信し、ログエントリを生成し、そのログエントリは：１）送信した又は受信した何らかのデータのハッシュ(ID)、及び２）過去のログエントリのハッシュ(ID)で構成され、ログエントリは通信の一部分として送信される(ログに「関わりをもたせる(entangling)」及び同期させるのに使用される)。
【００７５】
＜通信モジュール＞
図７Ａを参照するに、本発明による通信マネジャの第１形態が示されている。概して通信マネジャ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は様々な能力を有するかもしれない。例えば、第１ワークフローイネーブルプロバイダ102は図形ディスプレイを備えておらず、印刷できるだけであり；第２ワークフローイネーブルプロバイダ102はスキャンも印刷も可能であり、図形ディスプレイを備えており；第３ワークフローイネーブルプロバイダ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に対して通信リンクを提供する。
【００８０】
図７Ｂ及び図４Ｂ及び６を参照するに、通信マネジャ456の第２形態が示されている。第２形態の通信マネジャ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を介する通信に適合している。
【００８４】
図７Ｃに加えて図５Ｂ及び図６を参照するに、通信マネジャ556の第３形態が示されている。第３形態の通信マネジャ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による何らかの処理結果は、そのようなディレクトリに格納される。例えば、複数のファイルが１回のスキャンで生成された場合、例えば複数ページの文書の場合、複数のファイルがこのスキャンディレクトリに用意される。ワークフローイネーブルプロバイダ102により提供されるオリジナルのファイル名及びコンテンツタイプは、可能ならば予約される。データを予測しているワークフローイネーブルクライアント106は、それらのワークフローイネーブルクライアントURIをポーリングし、最後にポーリングして以来、何らかの新たなサブディレクトリが作成されたか否かを確認し、発見された如何なる新規ファイルをも取得する。一実施例では、ポーリングモジュール742は、IF-Modified-SinceHTTPリクエストヘッダを利用して、ポーリングにより生成されるトラフィックを制限する。
【００８７】
＜プロセス制御モジュール＞
図８Ａを参照するに、本発明によるワークフローイネーブルプロバイダのプロセス制御モジュール404の一例が示されている。プロセス制御モジュール404は、状態マシーン802、トランスレータ804、機能及びルーチン用のストレージ806、プロバイダインタフェースモジュール808及び通信インタフェースモジュール810を有する。
【００８８】
状態マシーン802は、トランスレータ804、ストレージ806、プロバイダインタフェースモジュール808及び通信インタフェースモジュール810と通信するように適合している。状態マシーン802は、プロセス制御モジュール404の全体的な動作を制御する。一実施例では、状態マシーン802は３つの状態を含む。第１の状態では、状態マシーン802は入力を受信する。入力は、プロバイダインタフェースモジュール808又は通信インタフェースモジュール810からのものでよい。第２状態では、状態マシーン802は入力を処理する。状態マシーン802はストレージ806に結合され、ストレージは状態マシーン802により実行可能な様々な機能又はルーチンを含む。プロバイダインタフェースモジュール808及び通信インタフェースモジュール810から受信したデータを用いて、状態マシーン802は、入力に応答して、機能又はルーチンの１つをストレージ806から選択及び実行する。一実施例では、ストレージ806における機能及びルーチンは、ワークフローイネーブルプロバイダ102により通知されたサービスに対応する。例えばMFPの場合、状態マシーン802は、印刷、コピー、スキャン、ユーザインタフェースの表示、又はそれらの組み合わせ等のようなルーチンを実行できる。第３状態の場合、状態マシーン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の間の通信リンクを提供する。
【００９３】
図８Ｂを参照するに、本発明の実施例によるワークフローイネーブルクライアント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)のようなウェブサーバに格納する。
【００９６】
＜ユーザインタフェースモジュール＞
図９を参照するに、本発明によるユーザインタフェースモジュール例402,502が示されている。以下、ワークフローイネーブルプロバイダ102の第１形態のユーザインタフェースモジュール402に関連して、ユーザインタフェースモジュール402,502が説明される。これは理解の簡明化を図るためであるが、当業者は、他のユーザインタフェースモジュール502,452,552も同一又は類似する機能を有することを理解するであろう。ユーザインタフェースモジュール402は、ダイナミックユーザインタフェースユニット902、ユーザインタフェース配送モジュール904、ユーザインタフェースコンフィギュレーションストレージ906及びプロセス制御インタフェースモジュール908を有する。
【００９７】
ダイナミックユーザインタフェースユニット902は、ユーザインタフェースを動的に生成するソフトウエア及びルーチンである。ダイナミックユーザインタフェースユニット902は、プロセス制御インタフェースモジュール908と通信し、プロセス制御インタフェースモジュール404から制御信号及び入力を受信することに適している。ダイナミックユーザインタフェースユニット902は、ユーザインタフェースコンフィギュレーションストレージ906にも結合され、ユーザインタフェースの生成を必要とするユーザに関連するアプリケーション及びユーザに関する情報を抽出する。例えば、スキャン処理及び印刷処理を実行するために、第１ユーザはクライアントを活性化している。これに対して、第２ユーザはそれらのクライアントを活性化しているが、文書フォーマット変換及びPDF生成を行うクライアントも活性化している。従ってダイナミックユーザインタフェースユニット902は、ユーザ、プロバイダ302及びクライアント306に応じて異なるユーザインタフェースを生成する。更に、ダイナミックユーザインタフェースユニット902は複数のユーザで使用可能な1つのインタフェースを生成し、各ユーザは自身の複数のアプリケーションを有し、そのインタフェースは複数の異なるプロバイダ302及びクライアント306に提示される。例示的なユーザインタフェースは、図１６乃至２１を参照しながら以下で説明される。ダイナミックユーザインタフェースユニット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が１つのモデルを提供することを理解するであろう。そのモデルでは、表示するUIはハローリクエストに応じて返されることで得た起動形式によって記述され、ダイナミックユーザインタフェースユニット902はその起動形式で情報を提示し、プロセス制御インタフェースモジュール908はその起動形式で記述されているように動的に生成されたユーザインタフェースの表示を制御する。
【０１０２】
代替実施例では、ユーザインタフェースモジュール402,502,452,552の要素の全部又は何れかが、プロセス制御モジュール404,405,454,554にそれぞれ組み込まれてよいことに留意すべきである。
【０１０３】
＜方法＞
図１０Ａ及び１０Ｂは、本発明の２つの実施例による分散ワークフロー処理の一般的な方法例を示すフローチャートである。第１形態の分散ワークフローイネーブルシステム100A(ワークフローマネジャ108のないもの)と共に実行する際の一般的な方法を図１０Ａは示す。ワークフローマネジャ108を伴う第２形態の分散ワークフローイネーブルシステム100Bで実行する際の一般的な方法を図１０Ｂは示す。
【０１０４】
図１０Ａを参照しながら第１の一般的方法1000を説明する。本方法は、パーソナルコンピュータのようなコンピュータ装置がワークフローイネーブルクライアント106をダウンロードすることから始まる1002。次に、ユーザはワークフローイネーブルクライアント106をパーソナルコンピュータ上で走らせ、ワークフローイネーブルクライアント106を構築する1004。ユーザID、アカウント番号、サーバロケーション、好みのインタフェース等の基本的なコンフィギュレーション情報を、ユーザは入力する。ワークフローイネーブルクライアント106はネットワーク104と接続し、ネットワーク104上でサービスを提供している何らかのワークフローイネーブルプロバイダ102を発見する1006。ワークフローイネーブルクライアント106が実行するタスク及びそれが必要とする機能に依存して、ワークフローイネーブルクライアント106は１つ以上のワークフローイネーブルプロバイダ102に登録し1008、そのプロバイダ102はワークフローイネーブルクライアント106の機能条件を満たすことができる。次に、ワークフローイネーブルプロバイダ102は、実行されるタスクに従って、ワークフローイネーブルクライアント106により指定されているようにユーザインタフェース(UI)を表示する1010。ワークフローイネーブルプロバイダ102はユーザから入力を受信する1012。ワークフローイネーブルプロバイダ102は入力を処理する1014。必要ならば、ワークフローイネーブルプロバイダ102は、追加的な処理に関するワークフローイネーブルクライアント106に情報を送信してよい。このプロセスは、結果をワークフローイネーブルクライアント106に転送すること、ワークフローイネーブルプロバイダ102により印刷することを含んでもよい。ワークフローイネーブルプロバイダ102及び／又はワークフローイネーブルクライアント106による処理の後、本方法は、ワークフローイネーブルクライアント106により指定されたタスクを完了するために、追加的な入力が必要であるか否かを確認する。例えば、ワークフロープロセスを始めることに加えて、追加的な認証又は情報(例えば、PIN)が要求されてもよい。追加的な入力が要求される場合、本方法はステップ1010に戻り、適切な情報を求めるためにGUIを提示する。追加的な入力が一切必要なかった場合、本方法は完了し、終了する。特定のタスクに関する本方法の例は、図１３Ａ，１５Ａ及び１５Ｂを参照しながら以下で詳細に説明される。
【０１０５】
図１０Ｂを参照しながら第２の一般的方法1050を説明する。本方法はワークフローイネーブルクライアント106のダウンロード1002及び構築1004により始まる。そして本方法はワークフローイネーブルクライアント106をワークフローマネジャ108に登録する。ワークフローマネジャ108は登録されたワークフローイネーブルクライアント106をネットワーク104上で告知する。1つ以上のワークフローイネーブルプロバイダ102がその告知を受信し、それらが告知で列挙されている総てのサービスを提供できるか否かを確認する1055。あるワークフローイネーブルプロバイダが列挙されているサービスを提供できる場合、そのワークフローイネーブルクライアントをプロバイダ302で利用可能であるとして追加する1056。ワークフローイネーブルプロバイダ102は、登録済みのワークフローイネーブルクライアント106に特有のユーザインタフェースを提示する1058。ユーザインタフェースと共にユーザが情報を入力すると、ワークフローイネーブルプロバイダ102はそのユーザ入力を受け取る1060。ワークフローイネーブルプロバイダ102及び／又はワークフローイネーブルクライアント106で、受信した入力が処理される1062。特定のタスクに関する本方法の例は、図１３Ｂ，１５Ｃ，２２Ａ，２２Ｂ及び２３を参照しながら以下で詳細に説明される。
【０１０６】
図１１Ａを参照しながら、ワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106(ワークフローマネジャ108を伴わない)間の本発明の一実施例による通信方法を説明する。より具体的には、図１１Ａに示される方法は、通信マネジャ406,506で実行されるステップを示す。本方法はネットワーク104に通信マネジャ506が参加することから始まる1102。次に、通信マネジャ506はサービス提供信号を監視する。上述したように、ワークフローイネーブルプロバイダ102は、ハートビート信号(heartbeat  signal)を使ってサービスの利用可能性又は提供性を周期的に告知する1104。そして通信マネジャ406は、利用可能なサービスのリストを作成し、ネットワーク104上のワークフローイネーブルプロバイダ102の１つ以上の告知を選択する1106。一実施例では、通信マネジャ506は、プロセス制御モジュール504に情報を送信し、発見して接続するワークフローイネーブルプロバイダ102に関するユーザ入力を受信する。別の実施例では、通信マネジャ506は、デフォルト設定を有し、そのデフォルト設定に合うワークフローイネーブルプロバイダ102を自動的に発見して接続する。次に、ネットワーク104で現在利用可能な発見されたワークフローイネーブルプロバイダ102のリスト中のサービスを登録することで1108、通信マネジャ506は、接続及び発見プロセスを完了する。これはサービスを利用可能にし、登録されたワークフローイネーブルクライアント106によりアクセス可能にする。
【０１０７】
特定のワークフローイネーブルクライアント106がワークフローイネーブルプロバイダ102に接続及び登録されると1108、個々のユーザも特定のサービスについて登録されなければならない。ステップ1110では、ネットワーク104の現在の様子に従って(言い換えれば、どのワークフローイネーブルプロバイダ102が接続されているか及びワークフローイネーブルクライアント106によりアクセス可能であるかに依存して)、ワークフローイネーブルプロバイダ102で提供されているサービスを個々のユーザが登録することで、登録プロセスは完了する。個々のユーザが登録されると1110、通信マネジャ506は、ワークフローイネーブルプロバイダ102に対するメッセージ及びデータを送信及び受信する1112。
【０１０８】
図１１Ｂを参照するに、本発明の一実施例によるプロセス制御モジュール404,504の動作方法が示されている。本プロセスはプロセスを特定して1152イネーブルにすることから始まる。この場合において、プロセスは内蔵アプリケーション又はウィジェットを指す。プロセスが特定されると、プロセスを実行するための論理コード又はプログラムコードが取得される1154。このプロセスの一例は、図１４を参照しながら以下で詳細に説明される。一般に、内蔵アプリケーションはソースから取り出され、プロセス制御モジュール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。一実施例では、図１１Ｂで実行される全体的なプロセスがプロセスマネジャ814によって管理される。そのような例の場合、プロセスの異なる部分について、内部の、外部の又はクライアントのリソースを特定のプロセスが使用してもよい。そして本方法は、プロセスを完了するために、より多くのリソースへのアクセスが必要か否かを確認することに続く1168。必要であった場合、本方法はプロセスの残りの部分を行うためにステップ1156に戻る。必要でなかった場合、本方法は完了し、終了する。
【０１０９】
図１２を参照するに、本発明の一実施例によるユーザインタフェースを生成及び提示する方法が示されている。本プロセスはユーザインタフェースモジュール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で実行されるような場合に、通常のプロバイダにとって遠隔的に実行される。
【０１１０】
図１３Ａを参照するに、本発明の第１形態の分散ワークフローイネーブルシステム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。
【０１１１】
図１３Ａに関連して説明されたプロセスは、(協同して最終結果に到達できるように、ワークフローイネーブルクライアント106及びワークフローイネーブルプロバイダ102にロードされてよい)内蔵アプリケーションのほんの一例であることを、当業者は認識するであろう。様々な他のアプリケーションが存在することが理解されるべきであり、その一部は他の内蔵アプリケーションと共に以下で説明される。例えば、１）何らかのワークフローイネーブル装置で印刷すること、２）文書をスキャンし、電子メールを生成すること、３）文書をスキャンし、PDFファイルを生成すること、４）文書をスキャンし、ファイル、フォルダ又は外部ロケーションにそれを保存すること、５）文書をスキャンし、それを財務システムに与えること、６）文書をスキャンし、光文字認識を実行すること等に備えて、内蔵アプリケーションが生成されてもよい。
【０１１２】
図１３Ｂを参照するに、本発明の第２形態の分散ワークフローイネーブルシステム100B(例えば、ワークフローマネジャ108を伴う)と共にスキャン動作を実行する方法が示されている。図１３Ｂは、スキャン処理を実行するステップ及び要素のトレース図を示す。ライトウェイトクライアント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を指定する。スキャンは１ページでもよいし、何ページでもよい。代替実施例では、スキャン処理は、クライアントがスキャンデータとして選択する前に既に捕捉済みのデータを指定することを含み、例えば、ワークフローイネーブルクライアント106がカメラであり、ワークフローイネーブルクライアント106の選択が、画像の撮影された後に実行されるような場合である。次に、ワークフローイネーブルプロバイダ102は、スキャンデータと共に起動信号をワークフローマネジャ108に送信する1374。一実施例では、起動信号はHTTPリクエストにおけるものである（必須フィールド“op=active”と、任意フィールドalt=<プロバイダのサービスを表す代替プロトコルのリストを含むファイル>と、ワークフローマネジャ108により返されたフォームのスキャンリクエストセクションで指定されているようなフィールド名と共にスキャニング中に捕捉されたファイルとを伴うHTTP  POSTである）。ワークフローマネジャ108は確認応答信号を送信する。  ライトウェイトクライアント110は、ワークフローマネジャ108を周期的にポーリングすることで、ワークフローマネジャ108からデータを取得し、ワークフローマネジャ108はライトウェイトクライアント110用に指定された如何なるデータも有する。
【０１１４】
図１３Ｂに示されるように、ライトウェイトクライアント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を反復する。
【０１１５】
他の実施例では、図１３Ｂの上記のステップの一部は省略されてもよいし、或いは他の新たなステップが加わってもよいことを、当業者は認識するであろう。例えば、図１３Ｂは、レシートをスキャンし、レシートの捕捉画像をライトウェイトクライアント110へ送信し、ライトウェイトクライアント110でそれらを処理する（例えば、それらを立て替え払いフォームの一部として格納する）ように修正可能である。
【０１１６】
図１４を参照するに、本発明の分散ワークフローイネーブルシステム100のワークフローイネーブルクライアント106でプロセスを抽出及びイネーブルにする方法が示されている。本方法はワークフローイネーブルクライアント106がプロセスキット(process  kit)を取り出すことから始まる1412。一実施例では、ユーザはウェブブラウザを使ってウェブサイトを探し、そのプロセスキットをダウンロードする。プロセスキットはプロセスマネジャ814及びプロセスを含む。次に、ワークフローイネーブルクライアント106はプロセスマネジャ814をインストールし、プロセスマネジャ814はプロセスをインストールするのに使用される。次に、プロセスマネジャ814は、ダウンロードするだけのようなローカルなプロセスを特定する1406。そしてプロセスマネジャ814は、ワークフローイネーブルクライアント106におけるローカルプロセス(ウィジェット)をイネーブルにする。一実施例では、プロセスマネジャ814は、ワークフローイネーブルプロバイダ102を自動的に発見し、ユーザにインストールを促す。他の実施例では、プロセスマネジャ814は新たなワークフローイネーブルプロバイダ102及びワークフローイネーブルクライアント106を周期的に検査し、それらのインストールをユーザに促す。更に、プロセスマネジャ814は、ワークフローイネーブルクライアント106をインストール、アンインストール、イネーブル及びディセーブルにすることに関し、ワークフローイネーブルクライアントの管理を実行する。
【０１１７】
図１５Ａ及び１５Ｂを参照するに、本発明の第１形態による分散ワークフローイネーブルシステム100Aと共にロック印刷処理を行う方法が示されている。プロセスは、ワークフローイネーブルクライアント106が、ロック印刷処理用のウィジェット又は論理(ロジック)をダウンロード及びインストールすることで始まる1502。ロック印刷ロジックは、ワークフローイネーブルクライアント106で処理可能であるように処理される1504。ロック印刷ロジックの処理は、処理を求めるユーザリクエストに応答して実行される。本方法は次にユーザからパスワードを受信し、格納する1506。一実施例では、パスワードはそのユーザ及び文書に関連している。他の実施例では、パスワードはユーザにのみ関連している。更に別の実施例では、そのステップは省略され、ユーザにより事前に入力され記憶済みのデフォルトのパスワードが使用される。次に、ワークフローイネーブルクライアント106は、出力用のプリンタ(ワークフローイネーブルプロバイダ102)を発見及び選択する1508。一実施例では、ワークフローイネーブルクライアント106は、利用可能なプリンタ(ワークフローイネーブルプロバイダ102)のリストを表示し、リスト中のプリンタの1つを指す選択をユーザが入力できるようにする。そして、ワークフローイネーブルクライアント106は、ID及び印刷ジョブアクションを、選択されたワークフローイネーブルプロバイダ102に送信する。ワークフローイネーブルクライアント106及びワークフローイネーブルプロバイダ102は、互いに登録しているので、ワークフローイネーブルプロバイダ102は初期のユーザインタフェースを提示する1512。例えば、図１８に示されるものに似たユーザインタフェースが提示されてもよい。ユーザインタフェースの提示に応じて、ワークフローイネーブルプロバイダ102はユーザから入力を受信する1514。ワークフローイネーブルプロバイダ102は、その入力をワークフローイネーブルクライアント106に送信する。図１５Ｂに示されるように、ワークフローイネーブルクライアント106は入力を受信し、印刷ジョブに対応するパスワードと比較する1518。パスワードがユーザ及び／又は文書のパスワードに対応しているか否かを、ワークフローイネーブルクライアント106は確認する1520。パスワードが合致すると、ワークフローイネーブルクライアント106はTRUEメッセージをワークフローイネーブルプロバイダ102に送信する1524。パスワードが一致しなかった場合、ワークフローイネーブルクライアント106はFALSEメッセージをワークフローイネーブルプロバイダ102に送信する1522。ワークフローイネーブルプロバイダ102はそのメッセージを受信し1526、それがTRUEメッセージであるか否かを確認する1528。メッセージがTRUEメッセージでなかった場合、ワークフローイネーブルプロバイダ102は、入力パスワードが合致せず終了したことを示すエラーメッセージを表示するステップに進む1530。メッセージがTRUEメッセージであった場合、ワークフローイネーブルプロバイダ102はその文書を印刷し、本方法は完了する。
【０１１８】
図１５Ｃを参照するに、本発明の第２形態による分散ワークフローイネーブルシステム100B(ワークフローマネジャ108を伴う)と共にロック印刷処理を行う方法が示されている。図１５Ｃは「ロック印刷」処理を実行する際のステップ及び要素(ライトウェイトクライアント110、ワークフローマネジャ108及びワークフローイネーブルプロバイダ102)のトレース図を示す。「ロック印刷」処理では、印刷する特定の装置にユーザが文書を送信した場合、その印刷装置が印刷文書を表現及び出力する前に、ユーザは或るコードを印刷装置に入力することを要する。本方法は、ライトウェイトクライアント110を登録し1352,1354、それを告知し1356、ワークフローイネーブルクライアントリストを更新し1358、GUIを表示し1360、ユーザ入力を受信することで1362、本方法は始まる。一実施例では、登録1352は「no」に設定された上述のパーシステントフラグを含み、これは、起動されてもはや自動的には告知されなくなるまで、ロック印刷クライアントが告知されることを意味する。これらのステップは図１３Ｂを参照しながら説明したものと同様である。ライトウェイトクライアント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を更新し、チェックボックスの選択及び／又は印刷ボタンの選択のようなユーザ入力を、図１３Ｂで説明したのと同様に受信する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を用いるそのような処理は、図１５Ｃのステップの多くを含む。しかしながら、そのような実施例は、以下の点で図１５Ｃと異なる：１）認証リクエスト1550の代わりに、ＵＩで表示する文字が返され；２）ステップ1552は文字を表示すること；３）ステップ1554は“Print4Me”処理及びスタートボタンをユーザが選択することを含み；及び４）ステップ1556,1558,1368及び1370は省略される。更に、“Print4Me”の基本動作は、ワークフローイネーブルプロバイダ102又はライトウェイトクライアント110による他の処理と組み合わされ、「日々のニュースの印刷(print  daily  news)」のような更に進んだ処理を提供でき、ワークフローイネーブルプロバイダ102又はライトウェイトクライアント110は、ニュースコンテンツを提供するウェブサービスにアクセスし、ワークフローイネーブルプロバイダ102はそのコンテンツを印刷する。
【０１２０】
更に、図１３Ｂ及び１５Ｃ双方を参照するに、これらのプロセス中の選択されたステップが結合され、“Locked  Scan2Me”ワークフローイネーブルクライアント106を作成できることを、当業者は認識するであろう。“Locked  Scan2Me”は“Scan2Me”と似ているが、“Locked  Scan2Me”を利用するにはユーザはPINを入力しなければならない。一実施例では、図１３Ｂの基本的な“Scan2Me”プロセスが、ステップ1366を図１５Ｂのステップ1550，1552，1554，1556，1558で置換するように修正され、PINの要求をユーザに提示し、PINを受け入れ、PIN又は認証をワークフローマネジャ108に送信する。
【０１２１】
図２２Ａ及び２２Ｂを参照しながら、(例えば、ワークフローマネジャ108を伴う)第２形態の分散ワークフローイネーブルシステム100Bを使って日々のニュースコンテンツを印刷する例を説明する。
【０１２２】
図２２Ａは、日々のニュースコンテンツを印刷する第１の方法例を示す。デイリーニュースコンテンツ印刷処理は、ニュースに関するいくつかのオンラインプロバイダから取得されるようなその日のニュース情報をライトウェイトクライアント110が提供する処理である。この情報はファイルにまとめられ(パッケージされ)、印刷文書を生成するために、そのファイルは何らかの印刷装置に送信される。本方法は、ワークフローイネーブルクライアント106がニュースコンテンツを取得し、そのニュースコンテンツを含む印刷可能なファイルを作成する。そして本方法は、ライトウェイトクライアント110を登録し1352,1354、それを告知し1356、ワークフローイネーブルクライアントリストを更新し1358、GUIを表示し1360、ユーザ入力を受信し1362、GUIを更新し1368、ユーザ入力を受信する1370。これらのステップは図１３Ｂを参照しながら説明されたものと同様である。しかしながら、ワークフローイネーブルクライアント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はその日のニュースのコピーを印刷する。
【０１２３】
図２２Ｂは、個人識別番号も要求される場合に、日々のニュースコンテンツを印刷する第２の方法例を示す。日々のニュースを印刷する第２の方法例は、第１の方法例と同様なステップを多く含み、それ故に同様な参照番号が、同一又は類似する処理を有するステップに使用されている。日々のニュースを印刷する第２の方法例は、図２２Ａに関連して説明されたのと同様な方法で通知1364を介して登録ステップ1352を実行する。しかしながら、日々のニュースを印刷する第２方法例は、日々のニュースが印刷される前に、個人識別番号が要求され、第２方法例のデイリーニュース印刷処理は、図１５Ｃのロック印刷処理で説明したのと同様な方法で認証を実行して確認応答を要求する。特に、ワークフローマネジャ108は、認証がワークフローイネーブルプロバイダ102に要求されること示す通知を送信する1550。ワークフローイネーブルプロバイダ102はUIを更新し1552、ユーザ入力を受信し1554、認証情報をリクエストでワークフローマネジャ108に送信する1556。ワークフローマネジャ108は確認相当を送信し1558、ワークフローイネーブルプロバイダ102がそのUIで更新することを可能にし1368、スタートボタンを表示し、ユーザがそのボタンを選択することを受け入れる1554。これに応答して、ワークフローイネーブルプロバイダ102は、PINのような認証情報を含む起動リクエストを送信する2208。認証情報はワークフローマネジャ108によって処理され、有効であったならば、ワークフローマネジャはそのデータを印刷するために送信する2204。そして、受信したアイルを印刷することで本方法は終了する2206。
【０１２４】
図２３は、分散ワークフローイネーブルシステム100Bを用いて“スキャン印刷(Scan  and  Print)”処理を実行する方法を示す。この方法はスキャンされたものに基づいて印刷を行う。例えば、オンラインリポジトリの文書をスキャンし、スキャンした文書のサムネイル画像と、後の取得に備えてその文書を識別するのに使用される２次元(2D)バーコードとを含むレシートを印刷する。このプロセスは、登録し1352、告知し1356、通知し1364、スキャンし1372、活性化し(アクティブにし)1374、ファイルと共に応答する1392ことで、図２３に示されるような“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。
【０１２５】
＜ユーザインタフェース＞
図１６−２１を参照するに、様々なユーザインタフェース及びユーザインタフェースの流れ図が示されている。これらのユーザインタフェースは例示としてのみ与えられており、様々な他の表示形式及び表示内容が、ユーザインタフェースモジュール402,502,452,552により生成されるユーザインタフェースモジュールに含まれてよい。
【０１２６】
図１６は本発明によるワークフローイネーブルクライアント106用のユーザインタフェース例1600を示す図である。ユーザインタフェース1600は、ブラウザに表示される要に示され、利用可能なワークフローイネーブルクライアント106のアイコン1602を含む。ユーザインタフェース1600は様々なアプリケーションを提供し、それらの中からユーザは実行するものを選択できる。図示されているように、各処理が区別できるように各アイコン1602について異なる色が使用されている。更に、アイコン1602の各々は選択可能なエリアを表し、そのエリアをダブルクリックすることで特定のアプリケーションを開始する。ユーザインタフェース1600は、どのワークフローイネーブルクライアント106がダウンロードされ、それが存在することによってワークフローイネーブルクライアント106で実行可能にされるかを固有に示す。ワークフローイネーブルプロバイダ102のディスプレイパネルは、同様な形式でユーザインタフェース1600を表示してもよい。そのような実施例の場合、ディスプレイパネルはユーザがアイコン1602を選択することを可能にするタッチスクリーンでもよい。
【０１２７】
図１７は、本発明によるワークフローイネーブルクライアント106の別のユーザインタフェース例1700を示す図である。ユーザインタフェース1700は、図１６のユーザインタフェース1600でアイコン1602を選択した後に表示されるインタフェースを表す。ユーザインタフェース1700は、Scan2Me処理に対応し、情報を提示するだけでなく、対応するワークフローイネーブルクライアント106のワークフローを修正するいくつもの領域も提示している。例えばユーザは名称変更ボタン(Rename)1702を利用して、ワークフローイネーブルクライアント106の名前を、そのユーザにとって更に関連のある何らかの特定の名前に仕立てることができる。この処理は、グループ化ボタン1704を用いることでユーザの望む他の処理とネスト化(nested)又はグループ化されてもよい。更に、文書をスキャンしてそれをワークフローイネーブルクライアント106に単に送るだけでなく、ユーザはボタン1706を利用してそのスキャンについて実行される追加的な処理を指定することができる。ユーザインタフェース1700を利用して、ユーザはボタン1708を使うことで出力が保存される場所を指定できる。最後に、ユーザインタフェースは処理をアクティブにする又はそれを取り消す通常のボタン1710を含む。
【０１２８】
図１８は、本発明によるワークフローイネーブルプロバイダ102のユーザインタフェース例を示す図である。ユーザインタフェース1800は３つの部分を含む。第１の部分では、ユーザインタフェース1800はいくつかのアイコン1802を提示し、その各々は異なるユーザを表現する。アイコン1802は同様な形状をしているが、ユーザを識別する異なる色又はラベルを有していてもよいことに留意すべきである。ユーザインタフェース1800の第２部分では、別のグループのアイコン1804があり、その各々は、ワークフローイネーブルプロバイダ102によりイネーブルにされ且つ登録されているワークフローイネーブルクライアント106に対応する。一実施例では、ユーザインタフェース1800の第２部分に示されているアイコン1804は、選択されたユーザについてイネーブルにされ且つ登録されているものに対してだけ特有である。別の実施例では、ユーザインタフェース1800の第２部分に示されているアイコン1804は、どのユーザに対しても利用可能なワークフローイネーブルクライアント106総てを含む。更に別の実施例では、アイコン1804が示されるが、ユーザが選択されるので、対応するアイコン1804は、例えば異なる色で強調された方法で示され、そのユーザに利用可能なワークフローイネーブルクライアント106を表現するアイコン1804は、ユーザインタフェース1800の第２部分に示されている。特定のワークフローイネーブルクライアント106に対応するアイコン1804をユーザが選択した後、アイコン1804は、ユーザのアイコン1802のものに合う色のような強調された方法で表示される。この特定の具体例が図１８に示されている。最後に、ユーザインタフェース1800の第３部分は、ユーザインタフェース1800で選択されたワークフローイネーブルクライアント106の実行を開始するように選択可能なアイコン1806を含む。一実施例では、ユーザが特定のワークフローイネーブルクライアント106に対応するアイコン1804を選択するまで、アイコン1806は現れない。
【０１２９】
図１９を参照するに、ユーザインタフェース例の流れ図1900が示されている。図１９は本発明による一般的な処理に関するユーザインタフェースを示す。本発明により生成されたユーザインタフェース例1902,1904,1906,1908,1910及びそれらの遷移の様子がフローチャート1900に示されている。ダイナミックユーザインタフェースユニット902は、先ずメインスクリーン1902を生成する。このメインスクリーン1902では、ワークフローイネーブルプロバイダ102はワークフローイネーブルクライアント106をポーリングし、利用可能なユーザ名のアルファベット順のリストをボタン1912として表示する。この例の場合、ボタン1912は、表示領域に対してユーザ名が多すぎた場合、スクロール矢印と共に縦向きに揃えられている。選択がなされるまで、ボタン1912は同じ視覚的な属性と共に示されるが、ユーザ名に対応する異なる識別ラベルを伴う。ユーザインタフェース1902でユーザが或るボタンを選択すると、ダイナミックユーザインタフェースユニット902はユーザインタフェース1904を表示するように更新し、それは選択されたユーザに利用可能なワークフローイネーブルクライアント106のリストを含む。利用可能なワークフロークライアント106のリストは、第２列目の追加的なボタン列1914として示されている。ワークフローイネーブルプロバイダ102は、選択されたユーザ名を強調し、アプリケーションボタン1914をユーザボタン同様な方法で整理する。他の実施例は、ユーザ名の上に追加的なメニューを含み、例えばユーザ名の最初の文字に基づいてユーザを個々のメニューに分割し、或いはユーザ及びアプリケーション名の間に追加的なメニューを含み、例えば、アプリケーションを「仕事のため」及び「楽しみのため」に分割する。他の実施例は、ユーザ名のメニューを全体的に異なる階層組織で置換し、例えば部署やアプリケーションタイプで置換し、或いはアプリケーション数が少なかった場合、第１レベルのカテゴリを伴わないアプリケーションボタンをリスト化することさえ可能である。ユーザがアプリケーションを選択すると、ユーザインタフェースはインタフェース1904をインタフェース1906に移す。ユーザインタフェース1906の場合、ワークフローイネーブルプロバイダ102はワークフローイネーブルクライアント106の名前を強調し、スタートボタン1916と共に、そのワークフローイネーブルクライアント106にとって利用可能なオプションのリストを表示する。ユーザがオプション及びスタートボタン1916を選択すると、ワークフローイネーブルプロバイダ102は、ユーザインタフェース1908を処理していることを表示するものに移る。ユーザインタフェース1908を処理している際、ワークフローイネーブルプロバイダ102はオーバーレイパネル1918を進行する動画と共に表示する。処理が完了すると、オーバーレイパネル1918は完了メッセージを表示し、完了メッセージはそのアプリケーション及びOKボタンに特有でもよい。一実施例では、完了メッセージは所定の時間の後に時間切れになり、メイン画面のインタフェース1902に戻る。処理中にエラーが生じた場合、表示はユーザインタフェース1910に更新され、エラーメッセージを伴う新たなオーバーレイパネル1920がOKボタンと共に表示される。OKボタンを選択した後、プロバイダはメイン画面インタフェ���ス1902を表示する。
【０１３０】
図２０は、本発明によるScan2Me処理のユーザインタフェース例2002，2004，2006，2008，2010，2012のフローを示す図である。更に、図１９を参照しながら既に説明されたユーザインタフェースのいくつかも使用されているが、理解及び簡明化を単に図る観点から、特に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を表示するように移り変わる。
【０１３１】
図２１は、本発明によるロック印刷処理のユーザインタフェース例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が提示される。
【０１３２】
図２４は、本発明によるワークフローイネーブルプロバイダ102のユーザインタフェース例2400を示す図である。ユーザインタフェース2400は、動的に生成され、ユーザ2402，2404及び2406に対応する複数の領域(エリア)を含む。各々のエリアの中で、ユーザインタフェース2400はいくつものアイコン又はボタン2410−2420を提示する。アイコンの各々2410−2420は、そのエリアに対応するユーザに利用可能な様々なワークフローイネーブルクライアント106に対応する。例えば、第１ユーザ2402−ブラッド(Brad)−は、アイコン2410，2412及び2414で表現されているように利用可能な３つのワークフローイネーブルクライアント106を有する。有利なことに各アイコンは、ボタン2410，2412及び2414として与えるだけでなくそれらのラベルによって利用可能な機能も識別し、対応するワークフローイネーブルクライアント106を参入させる。同様に、第２ユーザ2404−Ed−は利用可能な２つのワークフローイネーブルクライアント106を有する一方、第３ユーザ−アンドレア(Andrea)は、自身のエリアに利用可能なワークフローイネーブルクライアント106を１つ有する。ユーザインタフェース2400は、利用可能なワークフローイネーブルクライアント106の通知及びグループに基づいて、識別及び選択を簡易にするようにユーザにより動的に生成されるので、ユーザインタフェース2400は特に有利である。
【０１３３】
図２５は、本発明によるワークフローイネーブルプロバイダ102の別のユーザインタフェース例2400を示す図である。ユーザインタフェース2500も動的に生成され、メニューバー2502に列挙されている複数のユーザのプルダウンメニューバー2502を含む。表示スペースは限られているかもしれないので、追加的なユーザはスクロールバー2508でアクセスされてもよい。特定のユーザEdについて示されているように、初期プルダウンメニュー2504及びその初期プルダウンメニュー2504での選択に基づく第２メニュー2506がある。初期プルダウンメニュー2504は、機能タスクの広範囲に及ぶカテゴリを示し、如何なるタイプの仕組みが使用されてよい。この例はトップレベルのメニュー項目としてユーザ名を他のメニュー名よりも優先して使用しているが、例えば機能タスクの概略的な分類がトップレベルのメニュー名に使用されてもよい。
【０１３４】
図２６は他のユーザインタフェース例2600を示す図である。図１９−２１のユーザインタフェースと同様に、３つのワークフローイネーブルクライアント106が示されている。図２６は追加的なチェックボックスがユーザインタフェース2600でどのように用意できるかを示す。これらの追加的なチェックボックス2602は、選択されたワークフローイネーブルクライアント106に特有なパラメータを、ユーザが入力できるようにする。これは本発明に更なる柔軟性をもたらし、ワークフローをユーザの望みや要請に的確に合わせるように修正できる。例えば、ユーザインタフェース2600は、トランスレーションワークフローイネーブルクライアント106が選択された場合に、所望の変換形式をユーザが選択できるようにする。本発明によれば、チェックボックスは動的であり、選択されたワークフローイネーブルクライアント106に依存して変わり、選択された時点でのワークフローイネーブルクライアント106によって動的に生成される。
【０１３５】
以上本発明の実施例の説明は、説明及び図示を意図してなされてきた。説明が網羅的であることは意図されておらず、説明された厳密な形態に本発明を限定することは意図されていない。多くの修正及び変形が、上記の教示に照らして可能になる。本発明の範囲はこの詳細な説明に限定されず、本願の特許請求の範囲によって規定されることが意図される。当業者に理解されるように、本発明の精神又は本質的特徴から逸脱せずに、本発明は他の形態で実現されてもよい。同様に、モジュール、ルーチン、特徴、属性、方法及び他の形態の特定の名称及び区分けは、必須でもなく重要でもない。本発明又はその特徴を実現する手段は様々な名称、区分け及び／又は形式を持ってよい。更に、当業者に明らかなように、本発明に関するモジュール、ルーチン、特徴、属性、方法及び他の形態は、ソフトウエア、ハードウエア、ファームウエア又はそれらの如何なる組み合わせで実現されてもよい。モジュールの一例である本発明の構成要素がソフトウエアとして実現される場合、その構成要素は、スタンドアローンプログラムとして、大規模なプログラムの一部として、複数の分離したプログラムとして、固定的に又は動的にリンクしたライブラリとして、カーネルローダブルモジュールとして、デバイスドライバとして実現されてもよく、及び／又はコンピュータプログラミング業界の当業者に現在既知の又は将来知られる如何なる方法によって実現されてもよい。更に、本発明はどの特定のプログラミング言語で実現されてもよいし、どの特定のオペレーティングシステム又は環境で実現されてもよい。更に、本願説明は例示を意図しており、本発明の範囲を限定するものではなく、本発明の範囲は添付の特許請求の範囲で規定される。
【０１３６】
＜関連出願のクロスリファレンス＞
本願は35U.S.C§119(e)の下に2007年9月14日付けで出願された“Distributed  Workflow  Enabled  System”と題する米国仮出願第60/972,562号の利益を享受し、仮出願の内容全体が組み入れられる。
【図面の簡単な説明】
【０１３７】
【図１Ａ】本発明の一実施例により構築された分散ワークフローイネーブルシステムの第１形態を示すブロック図である。
【図１Ｂ】本発明の一実施例により構築された分散ワークフローイネーブルシステムの第２形態を示すブロック図である。
【図１Ｃ】本発明の一実施例により構築された分散ワークフローイネーブルシステムの第２形態を示すブロック図である。
【図１Ｄ】本発明の一実施例により構築された分散ワークフローイネーブルシステムの第２形態を示すブロック図である。
【図１Ｅ】本発明の一実施例により構築された分散ワークフローイネーブルシステムの第２形態を示すブロック図である。
【図２】本発明の一実施例により構築された更に複雑な分散ワークフローイネーブルシステムの第３形態を示すブロック図である。
【図３Ａ】クライアント及びプロバイダを詳細に示す分散ワークフローイネーブルシステムの第１形態のブロック図である。
【図３Ｂ】クライアント及びプロバイダを詳細に示す分散ワークフローイネーブルシステムの第２形態のブロック図である。
【図４Ａ】本発明によるワークフローイネーブルプロバイダの第１形態のブロック図である。
【図４Ｂ】本発明によるワークフローイネーブルプロバイダの第２形態のブロック図である。
【図５Ａ】本発明によるワークフローイネーブルクライアントの第１形態のブロック図である。
【図５Ｂ】本発明によるワークフローイネーブルクライアントの第２形態のブロック図である。
【図５Ｃ】本発明によるワークフローイネーブルクライアントの第３形態のブロック図である。
【図６】本発明によるワークフローマネジャの一例を示すブロック図である。
【図７Ａ】本発明による通信マネジャの第１形態を示すブロック図である。
【図７Ｂ】本発明による通信マネジャの第２形態を示すブロック図である。
【図７Ｃ】本発明による通信マネジャの第３形態を示すブロック図である。
【図８Ａ】本発明によるプロバイダのプロセス制御モジュールの一例を示すブロック図である。
【図８Ｂ】本発明の実施例によるクライアントのプロセス制御モジュールの一例を示すブロック図である。
【図９】本発明によるユーザインタフェースモジュール例のブロック図である。
【図１０Ａ】本発明の一実施例による分散ワークフロー処理の方法例を示すフローチャートである。
【図１０Ｂ】本発明の一実施例による分散ワークフロー処理の方法例を示すフローチャートである。
【図１１Ａ】本発明の一実施例によるプロバイダ及びクライアント間の通信方法を示すフローチャートである。
【図１１Ｂ】本発明の一実施例によるプロセス制御モジュールの動作方法を示すフローチャートである。
【図１２】本発明の一実施例によるユーザインタフェースを生成及び提示する方法のフローチャートである。
【図１３Ａ】本発明の一実施例によるワークフローイネーブルシステムと共にスキャン動作を実行する方法を示す図である。
【図１３Ｂ】本発明の一実施例によるワークフローイネーブルシステムと共にスキャン動作を実行する方法を示す図である。
【図１４】本発明の一実施例によるワークフローイネーブルシステムのクライアントでプロセスを抽出及びイネーブルにする方法を示すフローチャートである。
【図１５Ａ】本発明の第１形態によるワークフローイネーブルシステムと共にロック印刷処理を行う方法のフローチャートである。
【図１５Ｂ】本発明の第１形態によるワークフローイネーブルシステムと共にロック印刷処理を行う方法のフローチャートである。
【図１５Ｃ】本発明の第２形態によるワークフローイネーブルシステムと共にロック印刷処理を行う方法のフローチャートである。
【図１６】本発明によるクライアント用のユーザインタフェース例を示す図である。
【図１７】本発明によるスキャン処理用のクライアントユーザインタフェース例を示す図である。
【図１８】本発明によるプロバイダのユーザインタフェース例を示す図である。
【図１９】本発明によるユーザインタフェース例のフローを示す図である。
【図２０】本発明によるスキャン処理のユーザインタフェース例のフローを示す図である。
【図２１】本発明によるロック印刷処理のユーザインタフェース例のフローを示す図である。
【図２２Ａ】本発明により日々のニュースコンテンツの印刷を実行する例を示す図である。
【図２２Ｂ】本発明により日々のニュースコンテンツの印刷を実行する例を示す図である。
【図２３】本発明によりスキャン及び印刷を処理する例を示す図である。
【図２４】本発明によるプロバイダの追加的なユーザインタフェース例を示す図である。
【図２５】本発明によるプロバイダの追加的なユーザインタフェース例を示す図である。
【図２６】本発明によるプロバイダの追加的なユーザインタフェース例を示す図である。
【符号の説明】
【０１３８】
１００  分散ワークフローイネーブルシステム
１０２  ワークフローイネーブルプロバイダ
１０４  ネットワーク
１０６  ワークフローイネーブルクライアント
１０８  ワークフローマネジャ
１１０  ライトウェイトクライアント
１１２  ヘビーウェイトクライアント
１２０，１２２，１２４  信号線
１２６，４２０，４２２，４２８  信号線
４５８，４６０，４６２  信号線
５２０，５２２，５２８  信号線
１５０，１５２  装置
３０２  通常のプロバイダ
３０４  プロバイダワークフローユニット
３５２  プロバイダワークフローインタフェース(WIF)ユニット
４０２  ユーザインタフェースモジュール
４０４  プロセス制御モジュール
４０６  通信マネジャ
４５２  ユーザインタフェースモジュール
４５４  プロセス制御モジュール
４５６  通信マネジャ
５０２  ユーザインタフェースモジュール
５０４  プロセス制御モジュール
５０６  通信マネジャ
５２２  ユーザインタフェースモジュール
５５４  プロセス制御モジュール
５５６  通信マネジャ
５６４  通知マネジャ
６０２  登録モジュール
６０４  クライアント情報ディレクトリ
６０６  クライアント応答モジュール
６０８  通知モジュール
６１２  プロバイダ応答モジュール
６１４  応答データストレージ
６１６  ワークフロープロセッサ
６１８  ワークフローストレージ
６２０  セキュリティモジュール
７０２  データ伝送モジュール
７０４  接続及びディスカバリモジュール
７０６  通知及び登録モジュール
７０８  プロセッサ制御インタフェースモジュール
７２０  通知モニタ
７２２  リクエストモジュール
７２４  応答モジュール
７４０  登録ユニット
７４２  ポーリングモジュール
８０２  状態マシーン
８０４  トランスレータ
８０６  ストレージ
８０８  プロバイダインタフェースモジュール
８１０  通信インタフェースモジュール
８１２  データプロセッサ
８１４  プロセスマネジャ
９０２  ダイナミックユーザインタフェースユニット
９０４  ユーザインタフェース配送モジュール
９０６  ユーザインタフェースコンフィギュレーションストレージ
９０８  プロセス制御インタフェースモジュール
１６００  ユーザインタフェース
１６０２  アイコン
１７００  ユーザインタフェース
１７０２  名称変更ボタン
１７０４，１７０６，１７０８  ボタン
１８００  ユーザインタフェース
１８０２，１８０４，１８０６  アイコン
１９０２，１９０４，１９０６，１９０８，１９１０  ユーザインタフェース
１９１２，１９１４，１９１６  ボタン
１９１８，１９２０  オーバーレイパネル
２００２，２００４，２００６，２００８，２０１０，２０１２  ユーザインタフェース
２０１４，２０１６，２０１８，２０２０  オーバーレイパネル
２１０２，２１０４，２１０６，２１０８，２１１０  ユーザインタフェース
２１１２，２１１４，２１１６，２１１８  オーバーレイパネル
２４００  ユーザインタフェース
２４１０−２４２０  ボタン
２５００  ユーザインタフェース
２５０２  メニューバー
２５０４，２５０６  プルダウンメニュー
２５０８  スクロールボタン
２６００  ユーザインタフェース
２６０２  チェックボックス
【図１Ａ】
2009070386.tif 000006
【図１Ｂ】
2009070386.tif 000007
【図１Ｃ】
2009070386.tif 000008
【図１Ｄ】
2009070386.tif 000009
【図１Ｅ】
2009070386.tif 000010
【図２】
2009070386.tif 000011
【図３Ａ】
2009070386.tif 000012
【図３Ｂ】
2009070386.tif 000013
【図４Ａ】
2009070386.tif 000014
【図４Ｂ】
2009070386.tif 000015
【図５Ａ】
2009070386.tif 000016
【図５Ｂ】
2009070386.tif 000017
【図５Ｃ】
2009070386.tif 000018
【図６】
2009070386.tif 000019
【図７Ａ】
2009070386.tif 000020
【図７Ｂ】
2009070386.tif 000021
【図７Ｃ】
2009070386.tif 000022
【図８Ａ】
2009070386.tif 000023
【図８Ｂ】
2009070386.tif 000024
【図９】
2009070386.tif 000025
【図１０Ａ】
2009070386.tif 000026
【図１０Ｂ】
2009070386.tif 000027
【図１１Ａ】
2009070386.tif 000028
【図１１Ｂ】
2009070386.tif 000029
【図１２】
2009070386.tif 000030
【図１３Ａ】
2009070386.tif 000031
【図１３Ｂ】
2009070386.tif 000032
【図１４】
2009070386.tif 000033
【図１５Ａ】
2009070386.tif 000034
【図１５Ｂ】
2009070386.tif 000035
【図１５Ｃ】
2009070386.tif 000036
【図１６】
2009070386.tif 000037
【図１７】
2009070386.tif 000038
【図１８】
2009070386.tif 000039
【図１９】
2009070386.tif 000040
【図２０】
2009070386.tif 000041
【図２１】
2009070386.tif 000042
【図２２Ａ】
2009070386.tif 000043
【図２２Ｂ】
2009070386.tif 000044
【図２３】
2009070386.tif 000045
【図２４】
2009070386.tif 000046
【図２５】
2009070386.tif 000047
【図２６】
2009070386.tif 000048