(57)【要約】【課題】入力される文書セットの中から必要な文書データのみを取り出して処理することができるようなワークフローシステムを提供する。【解決手段】情報処理装置において、ワークフロー処理部は、第１ワークフローコンポーネント３１０の出力する文書セットの中の一つの出力文書データである文書_2と、第２ワークフローコンポーネント３２０に入力される文書セットの中の一つの入力文書データである文書_2とを関連付ける。そして、第２ワークフローコンポーネント３２０は、第１ワークフローコンポーネント３１０から出力される文書_2を、処理対象の文書データである文書_2として取得し、所定の処理を行う。【選択図】図３
2010102707.tif 000002
【特許請求の範囲】
【請求項１】
第１アクティビティと第２アクティビティとを含み、当該第１および第２アクティビティの処理をこの順で実行するワークフロー処理部を備えた情報処理装置であって、
上記ワークフロー処理部は、上記第１アクティビティを処理する第１処理部と、上記第２アクティビティを処理する第２処理部とを備え、
上記第１処理部は、複数の出力文書データを含む第１文書セットを出力し、
上記第２処理部は、複数の入力文書データを含む第２文書セットを処理対象として取得し、当該第２文書セットに対して所定の処理を行うものであり、
上記ワークフロー処理部は、上記第１文書セットの中の一部の出力文書データと、上記第２文書セットの中の一部または全ての入力文書データとを関連付ける関連付け情報を生成する関連付け生成部を備え、
上記第２処理部は、上記第１処理部から出力された第１文書セットの中の、上記関連付け情報で示される一部の出力文書データを、上記第２文書セットの中の、上記関連付け情報で示される一部の入力文書データとして取得し、上記所定の処理を行うことを特徴とする情報処理装置。
【請求項２】
上記関連付け生成部は、上記第１文書セットの中の一つの出力文書データと、上記第２文書セットの中の一つの入力文書データとを関連付ける関連付け情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
上記関連付け生成部は、上記第１文書セットの中の一部であり、複数の出力文書データからなる出力文書サブセットと、上記第２文書セットの中の一部であり、複数の入力文書データからなる入力文書サブセットとを関連付ける関連付け情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
上記関連付け生成部は、上記第１文書セットの中の一部であり、複数の出力文書データからなる出力文書サブセットと、上記第２文書セットの全体とを関連付ける関連付け情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
第１アクティビティと第２アクティビティとを含み、当該第１および第２アクティビティの処理をこの順で実行するワークフロー処理部を備えた情報処理装置の制御方法であって、
上記ワークフロー処理部は、上記第１アクティビティを処理する第１処理部と、上記第２アクティビティを処理する第２処理部とを備え、
上記第１処理部は、複数の出力文書データを含む第１文書セットを出力し、
上記第２処理部は、複数の入力文書データを含む第２文書セットを処理対象として取得し、当該第２文書セットに対して所定の処理を行うものであり、
上記ワークフロー処理部が、上記第１文書セットの中の一部の出力文書データと、上記第２文書セットの中の一部の入力文書データとを関連付ける関連付け情報を生成するステップと、
上記第２処理部が、上記第１処理部から出力された第１文書セットの中の、上記関連付け情報で示される一部の出力文書データを、上記第２文書セットの中の、上記関連付け情報で示される一部の入力文書データとして取得するステップとを含むことを特徴とする情報処理装置の制御方法。
【請求項６】
請求項１から４のいずれか１項に記載の情報処理装置を動作させるプログラムであって、コンピュータを上記各部として機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフローアーキテクチャにおけるデータ結合に関し、いくつかの実施形態により説明する。本発明は、特に、ワークフローコンポーネントの文書結合の技術に関する。
【背景技術】
【０００２】
従来、複数種類の処理ステップであるアクティビティ（例えば、スキャン、保存、送信の処理ステップ）を組み合わせて一連の処理を行う仕組みであるワークフローが構築されている。そして、ソフトウェアモジュールとして提供されるコンポーネントに基づいたワークフロー基盤におけるワークフローの構築では、ワークフローアクティビティ（例えば、データに対して何等かの処理を行う側（データ使用者）の第１のワークフローコンポーネントのアクティビティ）のプロパティは、別のワークフローアクティビティ（例えば、当該データを提供する側（データ提供者）の第２のワークフローコンポーネントのアクティビティ）のプロパティと密接な関係を持たせることができる。そのため、これら２つのプロパティを同じ値にして作成される。文書自動処理システム（ドキュメントオートメーションシステム）の中では、ファイルは、アクティビティを介して、互いに独立して処理されたり、複数の文書のグループとして、または、複数の文書を１セットとして処理される。
【０００３】
ここで、次のような作業が行われることを仮定する。すなわち、ある文書セットに含まれる全ての文書を、データ提供者として機能する単一のアクティビティから受け取る。そして、現在のアクティビティに従った処理が実行されると、処理が実行された出力文書が、データ使用者として機能する別の単一のアクティビティにより使用される。このような仮定に従えば、文書を含むワークフローアクティビティ（文書を処理対象とするアクティビティ、文書取扱いアクティビティ（document dealing activity））は、文書に対して設定された１または複数のプロパティとしての文書セットのプロパティを有することとなる。この文書セットのプロパティが、上述のアクティビティのプロパティとなる。一般的には、結合処理は、２以上のプログラム上の操作手続きの対象となるプログラミングオブジェクトや操作条件値を示すバリューアイテム（value item）を所定期間内で関連付ける処理である。そのため、上記のような仮定では、文書セットのプロパティを結合することにより、文書セットの全ての文書が同一に扱われるようになる。
【０００４】
あるワークフローコンポーネント、特に、文書に付属するアクティビティ（すなわち、入力された文書に対して、何等かの処理（例えば、参照、編集、データ検出など）を行い、処理後の文書を出力するアクティビティ）は、広範囲のタイプの文書（様々なタイプの文書）を共通に取り扱う。また別の文書に付属するアクティビティは、特定のタイプの文書のみを独占的に取り扱う。複数のワークフローコンポーネントで処理される文書タイプの相違は、プロパティが結合されるレベルでは現在では無視されており、当該相違は、文書自動処理システムの機能において不必要に複雑化、不便化させている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００５／０１５６１２５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１Ａは、従来のアーキテクテャ１００を示す図である。アーキテクテャ１００では、第１ワークフローは、第１ワークフローコンポーネント１１０と、第２ワークフローコンポーネント１２０とを含む。各コンポーネントは、第１文書と第２文章とを含む。そして、データ結合処理は、第１ワークフローコンポーネントの文書セットから、第２ワークフローコンポーネントの文書セットに対して行われる。つまり、この技術では、第２ワークフローコンポーネントのターゲットプロパティである「input document」を、第１ワークフローコンポーネントのソースプロパティである「output document」に結合する。この結合を示す擬似コードは、
input_document = bind(component=component1,property=output_document)
のように表される。なお、この擬似コードで「component1」は第１ワークフローコンポーネントを示している。
【０００７】
図１Ｂは、従来技術のフローチャート１５０を示す図である。ここでは、文書セットの結合処理において、第１ワークフローコンポーネントのプロパティ「input document」と、第２ワークフローコンポーネントのプロパティ「output document」とを関連付ける。文書セット内の各文書のフォーマットの違いのために、全ての文書セットを、特定の下流のアクティビティへの従来の結合のために利用することができない。さらに、従来の技術では、文書セット全体同士の結合が可能であるが、特定の下流のアクティビティを文書セットの一部のみと結合する方法を提供していない。
【０００８】
このように従来では、文書セット全体同士の結合のみが可能であったため、下流側のアクティビティは、上流側のアクティビティから受けた文書セットの中の全ての文書データを処理対象とすることとなり、場合によっては無駄な処理が発生していた。
【０００９】
本発明は、上記課題を解決するためになされたものであり、入力される文書セットの中から必要な文書データのみを取り出して処理することができるようなワークフローシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、第１アクティビティと第２アクティビティとを含み、当該第１および第２アクティビティの処理をこの順で実行するワークフロー処理部を備えた情報処理装置であって、上記ワークフロー処理部は、上記第１アクティビティを処理する第１処理部と、上記第２アクティビティを処理する第２処理部とを備え、上記第１処理部は、複数の出力文書データを含む第１文書セットを出力し、上記第２処理部は、複数の入力文書データを含む第２文書セットを処理対象として取得し、当該第２文書セットに対して所定の処理を行うものであり、上記ワークフロー処理部は、上記第１文書セットの中の一部の出力文書データと、上記第２文書セットの中の一部または全ての入力文書データとを関連付ける関連付け情報を生成する関連付け生成部を備え、上記第２処理部は、上記第１処理部から出力された第１文書セットの中の、上記関連付け情報で示される一部の出力文書データを、上記第２文書セットの中の、上記関連付け情報で示される一部の入力文書データとして取得し、上記所定の処理を行うことを特徴とする。
【００１１】
また、本発明の情報処理装置の制御方法は、第１アクティビティと第２アクティビティとを含み、当該第１および第２アクティビティの処理をこの順で実行するワークフロー処理部を備えた情報処理装置の制御方法であって、上記ワークフロー処理部は、上記第１アクティビティを処理する第１処理部と、上記第２アクティビティを処理する第２処理部とを備え、上記第１処理部は、複数の出力文書データを含む第１文書セットを出力し、上記第２処理部は、複数の入力文書データを含む第２文書セットを処理対象として取得し、当該第２文書セットに対して所定の処理を行うものであり、上記ワークフロー処理部が、上記第１文書セットの中の一部の出力文書データと、上記第２文書セットの中の一部の入力文書データとを関連付ける関連付け情報を生成するステップと、上記第２処理部が、上記第１処理部から出力された第１文書セットの中の、上記関連付け情報で示される一部の出力文書データを、上記第２文書セットの中の、上記関連付け情報で示される一部の入力文書データとして取得するステップとを含むことを特徴とする。
【００１２】
上記の構成によれば、第２処理部は、第１処理部から出力された第１文書セットの中の、関連付け情報で示される一部の出力文書データを、第２文書セットの中の、関連付け情報で示される一部の入力文書データとして取得することができる。そのため、第１処理部から出力される文書セット全体を取得する必要がない。つまり、第２処理部において必要なデータのみを取得することができる。このように、入力される文書セットの中から必要な文書データのみを取り出して処理することができるようなワークフローシステムを提供することができる。
【００１３】
なお、上記関連付け生成部は、上記第１文書セットの中の一つの出力文書データと、上記第２文書セットの中の一つの入力文書データとを関連付ける関連付け情報を生成してもよい。
【００１４】
もしくは、上記関連付け生成部は、上記第１文書セットの中の一部であり、複数の出力文書データからなる出力文書サブセットと、上記第２文書セットの中の一部であり、複数の入力文書データからなる入力文書サブセットとを関連付ける関連付け情報を生成してもよい。
【００１５】
さらに、上記関連付け生成部は、上記第１文書セットの中の一部であり、複数の出力文書データからなる出力文書サブセットと、上記第２文書セットの全体とを関連付ける関連付け情報を生成してもよい。
【００１６】
上記の構成によれば、第１処理部および第２処理部の処理内容に応じて、第１文書セットおよび第２文書セット内の文書データ同士を適宜関連付けさせることができる。
【００１７】
なお、上記情報処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各部として動作させることにより情報処理装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００１８】
本発明によれば、文書セット内の文書データ同士を結合することができるため、入力される文書セットの中から必要な文書データのみを取り出して処理することができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１Ａ】図１Ａは、従来のデータ結合の技術を示す図である。
【図１Ｂ】図１Ｂは、従来のデータ結合のフローチャートである。
【図２】図２は、本発明の一実施形態に係るコンピュータ装置を示す機能ブロック図である。
【図３】図３は、本発明の一実施形態に係るデータ結合の技術を示す図である。
【図４】図４は、図３に示すデータ結合のフローチャートである。
【図５】図５は、本発明の別の実施形態に係るデータ結合の技術を示す図である。
【図６】図６は、図５に示すデータ結合のフローチャートである。
【図７】図７は、本発明のさらに別の実施形態に係るデータ結合の技術を示す図である。
【図８】図８は、図７に示すデータ結合のフローチャートである。
【図９】図９は、本発明の一実施形態に係る情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
図１Ａおよび図１Ｂに示した従来技術の域を超えて、本発明では、異なる文書に対するフロントエンドのスキャン処理は、文書のタイプごとに対応したいくつかのスキャンアクティビティに分割されてもよい。ここでは、各スキャンアクティビティは、特定のタイプの文書をスキャンすることができ、スキャンした特定タイプ（または特定フォーマット）の文書を、特定の下流のアクティビティに供給する。本発明の一実施形態では、複数の文書セット（例えば、スキャンされた文書のセット）を分類する処理を行うワークフロープロセスをサポートする。例えば、アクティビティが関連する文書セットか否かに分類したり、文書フォーマットタイプが異なるが、共通する主題または共通する起源を含む文書セットごとに分類する。文書セットの分類処理に加えてさらに、本発明の実施形態では、文書セット全体のレベル、および、文書セットに含まれる各要素（文書）のレベルでの結合関係（集合体）を構築してもよい。
【００２１】
以下、本発明の具体的な実施形態について説明する。
本発明の一実施形態は、図２に示されるように、コンピュータ装置を介して実行されるものである。典型的なコンピュータ装置２００は、ＣＰＵ（central processing unit）のようなプロセッサ２１０と、アドレス指定することでデータの書き込みおよび読み出しが可能なメモリ２２０と、ユーザインターフェイス２３０とを備える。これらの構成は、互いにデータバス２４０を介して通信可能であればよい。オペレーティングシステム２５０を介して、プロセッサ２１０は、本発明の典型的な実施形態に従ったワークフロー環境２６０のステップを実行するために構成される。
【００２２】
本発明の一実施形態によれば、ワークフローは、当該ワークフローの言語構成物であるコンポーネントを備える実行可能なプログラムである。従って、ワークフローのフレームワークは、ある問題領域に特有の独立した複数のワークフローコンポーネントからワークフローを構築するための基盤を提供する。そして、ワークフローのフレームワークは、ワークフローを実行するためのランタイムの環境と、その他の多くのサポートサービス（例えば、デザインタイム技術（design-time experience）、持続性（persistence）、および、セキュリティ）を提供する。典型的なオペレーティング環境は、Microsoft(登録商標) Workflow Foundation（登録商標）で構築された文書管理システムである。これにより、１以上の現実のワークフローが構築され、アプリケーションの所望の機能の一部または全てを実行可能な上述のフレームワードを使用しながら実行される。その結果生じるアプリケーションは、ランタイムを実行する環境を受け入れ、ユーザインターフェイスをサポートする。
【００２３】
一般的にワークフローコンポーネントは、再利用可能なソフトウェアモジュールとして提供される。そして、再利用可能なソフトウェアモジュールをワークフローコンポーネントとしてパッケージ化する。なお、このパッケージ化される各ワークフローコンポーネントは、ワークフロー作成者が柔軟にカスタマイズできるようにいくつかのプロパティ設定を提供することができるようになっている。また、ワークフローのフレームワークにおいて、ワークフローを構成するためのメカニズムを提供している。一般的には、情報の共用や、フロー制御を容易に管理できるようにするため、全てのワークフローコンポーネントを、ワークフローホストなどの同一マシン上で実行している。また、ワークフローコンポーネントは、作業を連携させるためのライブラリや、インターフェースと連動するプログラム言語によって実装できる。このようなライブラリやインターフェースの例としてはマイクロソフト（登録商標）社製の「ＷＩＮＤＯＷＳ（登録商標）ＷＯＲＫＦＬＯＷ  ＦＯＵＮＤＡＴＩＯＮ」が挙げられる。
【００２４】
例えば、本発明のいくつかの実施形態は、次のような（ａ）〜（ｄ）の順で使用される。ただし、この順に限定されるものではない。
（ａ）文書セットの各要素への結合のセットアップ
（ｂ）全体として（つまり論理的データ入力として）の文書への結合のセットアップ
（ｃ）個々の文書のレベルで、編集のためのデータ参照の確立
（ｄ）単一の論理的データ入力として編集された文書の結合および分配（なお、論理的データ入力には編集されていない文書が含まれていてもよい）。
【００２５】
本発明の一実施形態は、次のような（ａ）〜（ｃ）の処理を行う文書管理ワークフローシステムであってもよい。
（ａ）データソース（例えば、スキャナー、電子メール機能、ＦＴＰサイトおよび共有フォルダを有する複合機（ＭＦＰ））から、入力された電子文書を取得する。
（ｂ）入力された電子文書に対する所定の処理を行う。例えば、フォーマットの変更処理、スタンプ処理、ＯＣＲ（optical character recognition）処理、データ抽出処理などの処理を行う。
（ｃ）処理された文書および／または処理されていない文書をデータの送信先に送信する。送信先としては、例えば、ＭＦＰプリンタ、電子メール、データベース、Microsoft（登録商標） Office Share Point（登録商標）、共有フォルダなどである。デザインタイムにおいて、複数の文書を含む２つのセット間の結合が実施されてもよいし、もしくは、ある文書セットの単一の文書から、別の文書セットの単一の文書への結合が実施されてもよい。
【００２６】
文書セットまたは文書グループの個々の要素への結合のセットアップのための機能は、文書セットへの結合を構築して、完全な論理的データ入力とする機能を維持するとともに、個々の文書からのデータの参照や編集、編集された文書または編集されていない文書をまとめたり配布したりして単一の論理的データ入力とするプロセッシングワークフローの機能も含んでいる。このような文書セットの一例としては、（ａ）複合機のスキャナーによりスキャンされた１以上の画像データ、（ｂ）データベースから取得された１以上のファイル、（ｃ）典型的なワークフローにより取得された電子メールの添付データとしての文書を含むセットがある。そして、これら全てのファイルは一つにまとめられて、単一のデータとして、下流のワークフローのアクティビティに更なる処理が行われるために渡される。
【００２７】
いくつかの実施形態では、ワークフロー処理は、複合機からスキャンされた画像やデータベース、サーバ上のファイルのような複数のソースからのファイルまたはデータ要素をある規則に沿って一つにまとめて、単一の論理的データとする。そして、アクティビティが単一の論理的データの全てまたは一部のデータを処理することが可能か否かに拘わらず、データおよびファイルがアクティビティに送られる。
【００２８】
文書自動ワークフローの機能では、様々なデータソースからデータを集め、そのデータを単一の論理的データとして一つのデータセットにまとめ、それから、プロセスフローに従って、そのデータを様々なアクティビティ／コンポーネントに送る。ワークフローアクティビティとしては、文書セットの一部の文書または全ての文書からのデータの参照、データの編集、文書からのデータの引出、文書へのデータの寄稿などがある。また、入力文書の全てを統合したものを出力する場合や、編集されたデータまたは文書、または、編集されていないデータまたは文書のセットを出力する場合もある。
【００２９】
図３は、本発明に係る典型的なアーキテクテャの実施形態を示す図である。この実施形態では、異なるワークフローコンポーネントの文書を１対１で結合する。第１ワークフローは、第１ワークフローコンポーネント３１０と、第２ワークフローコンポーネント３２０とを備える。そして、それぞれのコンポーネント３１０・３２０は、文書_1および文書_2を含む。この例では、第１ワークフローコンポーネント３１０は、２つの文書（文書_1、文書_2）に対して、文書セットプロパティタイプの一つのプロパティとして「output document」を有している。一方、第２ワークフローコンポーネント３２０は、２つの文書（文書_1、文書_2）に対して、文書セットプロパティタイプの一つのプロパティとして「input document」を有している。
【００３０】
図４は、図３に示す実施形態において、ターゲット文書（入力文書）についての結合処理のフローチャートを示している。具体的には、第２ワークフローコンポーネントの「input document」プロパティ（つまり、文書_2のターゲットプロパティ）を有する要素である、文書_2として特定（選択）される文書を、第１ワークフローコンポーネントの「output document」プロパティ（つまり、文書_2のソースプロパティ）を有する要素である、文書_2として特定（選択）される文書と結合する。
【００３１】
この実施形態の擬似コードは、例えば、
input_document.document2 =
bind(component=component1,property=output_document.document2)
であってもよく、もしくは、アレイまたはベクトルを用いた、
input_document[2] = 
bind(component=component1,property=output_document[2])
であってもよい。
【００３２】
図３および図４で示す実施形態について、さらに詳細に説明する。この実施形態では、第１ワークフローコンポーネント３１０と第２ワークフローコンポーネント３２０とがこの順で処理を実行する第１ワークフローが予めユーザ等により構築されている。そして、第１ワークフローコンポーネント３１０は、所定の処理を実行した後に、２つの文書（文書_1、文書_2、なお、ここでは文書データを単に文書という）を含む文書セットを出力する処理を行う。一方、第１ワークフローコンポーネント３１０の下流側のコンポーネントである第２ワークフローコンポーネント３２０は、２つの文書（文書_1、文書_2）を含む文書セットを入力データとして受け取り、当該２つの文書に対して所定の処理を行うものである。
【００３３】
そして、この実施形態では、第１ワークフローコンポーネント３１０が出力する予定である文書セットの中の一つであり、プロパティ「output_document[2]」が付けられている文書である文書_2と、第２ワークフローコンポーネント３２０の処理対象として受け取る予定である文書セットの中の一つであり、プロパティ「input_document[2]」が付けられている文書である文書_2とが関連付けされている（つまり、各コンポーネントの文書_2同士の結合関係が構築されている）。
【００３４】
このため、具体的には以下のような処理が実行される。すなわち、第１ワークフローコンポーネント３１０は、所定の処理を実行した後に、２つの文書を出力する。そして、当該２つの文書には、プロパティ「output_document[1]」が付与された文書_1と、プロパティ「output_document[2]」が付与された文書_2とが含まれる。なお、第１ワークフローコンポーネント３１０は、出力する２つの文書のうちどちらの文書にプロパティ「output_document[1]」を付与し、どちらの文書にプロパティ「output_document[2]」を付与するかを決定する基準を有しており、当該基準に従って２つの文書にプロパティを付与する。
【００３５】
一方、第２ワークフローコンポーネント３２０は、処理対象として２つの文書を受け取り、各文書に対して所定の処理を行うためのソフトウェアである。このとき、各文書に対して別々の処理が実行されてもよいし、同じ処理が実行されてもよい。各文書に対してどのような処理を実行するかについて予めプログラミングされている。そして、各文書を入れ違えて処理しないように、第２ワークフローコンポーネント３２０は、受け取る２つの文書に対してプロパティを付与する。すなわち、２つの文書の一方にプロパティ「input_document[1]」を付与し、他方にプロパティ「input_document[2]」を付与する。この付与は、上記の結合関係に基づいて行われる。上述したようにこの実施形態では、第１ワークフローコンポーネント３１０のプロパティ「output_document[2]」が付けられている文書_2と、第２ワークフローコンポーネント３２０のプロパティ「input_document[2]」が付けられている文書_2とが結合関係にある。そのため、この結合関係に従って、第２ワークフローコンポーネント３２０に従った処理を実行するプロセッサ２１０は、第１ワークフローコンポーネント３１０から出力されたプロパティ「output_document[2]」が付けられている文書_2に対して、プロパティ「input_document[2]」を付与する。そして、第２ワークフローコンポーネント３２０は、当該プロパティ「input_document[2]」が付与された文書_2に対して、当該プロパティに対応する処理を実行する。言い換えると、第２ワークフローコンポーネント３２０に従った処理を実行するプロセッサ２１０は、第１ワークフローコンポーネント３１０から出力されたプロパティ「output_document[2]」が付けられている文書_2を、プロパティ「input_document[2]」の入力文書として受け取り、受け取った文書_2に対して、プロパティ「input_document[2]」用に決定された処理を実行することとなる。
【００３６】
このように、この実施形態では、上流側のコンポーネントから出力される文書セットの中の一つの文書（要素）と、下流側のコンポーネントに入力される文書セットの中の一つの文書（要素）とを結合させることができる。その結果、下流側の第２ワークフローコンポーネント３２０は、上流側の第１ワークフローコンポーネント３１０から出力された文書セットの中のどの文書を処理対象として所定の処理を実行するかを容易に決定することができる。
【００３７】
例えば、第２ワークフローコンポーネント３２０が、ある特殊フォーマットの文書と別のフォーマットの文書との２つの文書を受け取り、特殊フォーマットの文書に対する第１処理と、別のフォーマットの文書に対する第２処理（第１処理とは異なる）とを行うアクティビティであるとする。一方、第１ワークフローコンポーネント３１０は、特殊フォーマットの文書と別のフォーマットの文書との２つの文書を出力するものとする。このとき、第１ワークフローコンポーネント３１０が特殊フォーマットの文書に対してプロパティ「output_document[2]」を付与し、第２ワークフローコンポーネント３２０における第１処理の処理対象となる文書に対してプロパティ「input_document[2]」が付与されるように設定しておく。これにより、第２ワークフローコンポーネント３２０に従って動作するプロセッサ２１０は、第１ワークフローコンポーネント３１０から出力された特殊フォーマットの文書に対して、第１処理を実行することができる。
【００３８】
図５は、別のアーキテクテャの実施形態を示す図である。この実施形態では、第１のワークフローコンポーネント５１０は、文書_1、文書_2、・・・、文書_5の５つの文書を出力文書として出力する。そして、第２ワークフローコンポーネント５２０のプロパティ「input document」の文書（ターゲットプロパティの文書）を、第１ワークフローコンポーネント５１０のサブセットであり、第１ワークフローコンポーネント５１０のプロパティ「output document」の文書（ソースプロパティの文書）である文書_1、文書_2および文書_3を含むサブセットと結合させる。当該結合処理のフローチャートは図６のように示される。
【００３９】
この実施形態の擬似コードは、例えば、
input_document_set = 
bind(component=component1,property=output_document.subset(document1,              document2, document3))
であってもよく、もしくは、アレイまたはベクトルを用いた、
input_document_set = 
bind(component=component1,property=output_document.subset(1,3))
であってもよい。
【００４０】
図５および図６で示す実施形態について、さらに詳細に説明する。この実施形態では、図３および図４で示す実施形態とは異なり、一方のコンポーネントの文書セット全体と、他方のコンポーネントの文書セットの中の要素である文書との結合関係を構築させている。
【００４１】
この実施形態では、第１ワークフローコンポーネント５１０は、所定の処理を実行した後に、５つの文書データ（文書_1〜文書_5）を含む文書セットを出力する処理を行う。一方、下流側の第２ワークフローコンポーネント５２０は、３つの文書データ（文書_1〜文書_3）を含む文書セットを入力データとして受け取り、当該３つの文書データに対して所定の処理を行うものである。
【００４２】
そして、この実施形態では、第１ワークフローコンポーネント５１０が出力する予定である文書セットの中の、プロパティ「output_document[1]」「output_document[2]」「output_document[3]」が付けられている文書データである文書_1〜文書_3と、第２ワークフローコンポーネント５２０の処理対象として受け取る予定である文書セット全体とが結合（関連付け）されている。
【００４３】
このため、第２ワークフローコンポーネント５２０に従ったプロセッサ２１０は、第１ワークフローコンポーネント５１０が出力する５つの文書データのうち、プロパティ「input_document[1]」「output_document[2]」「output_document[3]」が付けられている文書_1〜文書_3からなる文書サブセットを、処理対象の文書セット全体として受け取り、当該３つの文書データに対して、所定の処理を実行することとなる。
【００４４】
このように、この実施形態では、上流側のコンポーネントから出力される文書セットの中の複数の文書（要素）からなる文書サブセットと、下流側のコンポーネントに入力される文書セット全体とを結合させることができる。その結果、下流側の第２ワークフローコンポーネント５２０は、上流側の第１ワークフローコンポーネント５１０から出力された文書セットの中のどの文書を処理対象として所定の処理を実行するかを容易に決定することができる。
【００４５】
例えば、第１ワークフローコンポーネント５１０が、５つの文書データを順番に作成し、作成した５つの文書データを出力するソフトウェアとする。そして、作成順に「output_document[1]」〜「output_document[5]」のプロパティを文書データに付与するものとする。そして、第２ワークフローコンポーネント５２０に対して、第１ワークフローコンポーネント５１０によって１番目〜３番目に作成された文書データのみに対して同一の処理を行わせたいものとする。この場合、第２ワークフローコンポーネント５２０は、第１ワークフローコンポーネント５１０から出力される５つの文書データの中から処理対象となる３つの文書データを特定する必要がある。しかしながら、上記の構成によれば、第２ワークフローコンポーネント５２０は、容易に処理対象となる文書を特定することができる。
【００４６】
図７は、さらに別のアーキテクテャの実施形態を示す図である。この実施形態では、異なるワークフローコンポーネントの文書のサブセット同士を結合する。第１のワークフローコンポーネント７１０は、文書_1、文書_2、・・・、文書_5の５つの文書を出力文書として出力する。そして、第２ワークフローコンポーネント５２０のプロパティ「input document subset」の文書（ターゲットプロパティの文書）を、第１ワークフローコンポーネント５１０のサブセットであり、第１ワークフローコンポーネント５１０のプロパティ「output document」の文書（ソースプロパティの文書）である文書_1、文書_2および文書_3を含むサブセットと結合させる。当該結合処理のフローチャートは図８のように示される。
【００４７】
この実施形態の擬似コードは、例えば、
input_document_set[1] = 
bind(component=component1,property=                                               output_document.subset(document1,3))
および
input_document[2]= 
bind(component=component1,property=output_document.[4])
である。
【００４８】
図７および図８で示す実施形態について、さらに詳細に説明する。この実施形態では、図３・４で示す実施形態および図５・６で示す実施形態とは異なり、一方のコンポーネントの文書セットの中の複数の文書からなる文書サブセットと、他方のコンポーネントの文書セットの中の複数の文書からなる文書サブセットとの結合関係を構築させている。さらに、この実施形態では、図３・４の実施形態と同様に、文書を１対１で結合する。
【００４９】
この実施形態でも、第１ワークフローコンポーネント７１０は、所定の処理を実行した後に、５つの文書データ（文書_1〜文書_5）を含む文書セットを出力する処理を行う。一方、下流側の第２ワークフローコンポーネント５２０は、４つの文書データ（文書_1〜文書_4）を含む文書セットを入力データとして受け取り、当該４つの文書データに対して所定の処理を行うものである。
【００５０】
そして、この実施形態では、第１ワークフローコンポーネント５１０が出力する予定である文書セットの中の、プロパティ「output_document[1]」「output_document[2]」「output_document[3]」が付けられている文書データである文書_1〜文書_3と、第２ワークフローコンポーネント５２０の処理対象として受け取る予定である文書セットの中の文書サブセット（プロパティ「input_document[1]」「input_document[2]」「input_document[3]」が付与される文書_1〜文書_3）とが結合（関連付け）されている。さらに、第１ワークフローコンポーネント７１０が出力する予定である、プロパティ「output_document[4]」が付与された文書_4と、第２ワークフローコンポーネント７２０の処理対象として受け取る予定である文書セットの中の一つであり、プロパティ「input_document[4]」が付けられている文書である文書_4とが結合（関連付け）されている。
【００５１】
このため、第２ワークフローコンポーネント７２０に従ったプロセッサ２１０は、第１ワークフローコンポーネント７１０が出力する５つの文書データのうち、プロパティ「input_document[1]」「output_document[2]」「output_document[3]」が付けられている文書_1〜文書_3からなる文書サブセットを、処理対象の文書サブセット（文書_1〜文書_3）として受け取り、当該３つの文書データに対して、所定の処理を実行することとなる。
【００５２】
一方、第２ワークフローコンポーネント７２０に従ったプロセッサ２１０は、第１ワークフローコンポーネント７１０が出力する５つの文書データのうち、プロパティ「input_document[4]」が付けられている文書_4を、別の処理対象として受け取り、当該処理対象に対応する所定の処理を実行することとなる。
【００５３】
これにより、下流側の第２ワークフローコンポーネント７２０は、上流側の第１ワークフローコンポーネント５１０から出力された文書セットの中のどの文書を処理対象として所定の処理を実行するかを容易に決定することができる。
【００５４】
この実施形態は、第２ワークフローコンポーネント７２０における、文書サブセット（文書_1〜文書_3）に対して実行する処理と、文書_4に対して実行する処理とが異なる場合に有効である。例えば、文書_1〜文書_3に対して、文書_4に記載の特定文字を検索するというようなアクティビティである。このような場合、文書_4に対しては特定文字を抽出する処理を行い、文書_1〜文書_3に対しては特定文字を検索する処理を行い、異なる処理を行うこととなる。このような場合でも、この実施形態であれば、第２ワークフローコンポーネント７２０は、特定文字を抽出するための処理対象である文書_4と、検索対象となる文書_1〜文書_3とを容易に認識することができる。
【００５５】
上記の説明によれば、本発明により、第１文書セットの第１の要素を特定するステップと、第２文書セットの第１の要素を特定するステップと、上記第１文書セットおよび第２文書セットの上記第１の要素同士の結合関係（集合体）を構築するステップとによってワークフローを実行するためのシステム、方法およびコンピュータ読み出し可能な記録媒体が提供されることが理解できる。また、当業者なら、本明細書にて記載したモジュールおよび機能をさらに細分したり、組み合わせたり、あるいは本実施の形態の技術範囲において変更したりすることができることは理解できるであろう。加えて、いくつかの本発明のバリエーションでは、その詳細や他の変形例が示され、記述されているが、これらの記述は本発明の技術思想の範囲においてなされるものであり、これらの開示に基づく技術であることは当業者にとって容易に明らかであろう。例えば、明細書にて記述したフローチャートの一例や処理を、本発明の技術範囲において修正または変形することができる。また、本発明の技術思想の範囲で、実施形態の特別な特徴および態様の様々な組み合わせ、または小結合が検討される。開示された実施形態の様々な特徴および態様は、開示された発明の変形モードを形成するために、互いに結合したり、置き換えたりすることができることは理解できよう。このように、ここで開示した本発明の目的は、上述した実施形態によって限定されるものではない。
【００５６】
図９は、本発明の一実施形態に係る情報処理装置９００の内部構成を示す図である。情報処理装置９００は、ワークフロー処理部９１０と、記憶部９２０と、ユーザインターフェイス９３０とを備える。なお、記憶部９２０およびユーザインターフェイス９３０は、それぞれ図２に示すメモリ２２０およびユーザインターフェイス２３０と同じ構成である。また、ワークフロー処理部９１０は、図２に示すプロセッサにより構成される。
【００５７】
ワークフロー処理部９１０は、記憶部９２０に格納されるプログラムに従って処理を実行するものである。
【００５８】
ここで、記憶部９２０は、複数のコンポーネント（アプリケーションソフトウェア）を記憶している。そして、当該複数のコンポーネントの中には、第１ワークフローコンポーネントと、第２ワークフローコンポーネントとが含まれるものとする。
【００５９】
そして、図示しないワークフロー構築部が、ユーザ入力に従って、第１ワークフローコンポーネントと第２ワークフローコンポーネントとを含み、この順でコンポーネントを動作させるワークフローを構築したものとする。ワークフロー処理部９１０は、このようにして構築されたワークフローを実行するものである。
【００６０】
ワークフロー処理部９１０は、第１コンポーネント部（第１処理部）９１１と、第２コンポーネント部（第２処理部）９１２と、結合関係設定部（関連付け生成部）９１３とを備えている。
【００６１】
第１コンポーネント部９１１は、記憶部９２０に格納されている第１ワークフローコンポーネントに従った処理を実行するものである。第１コンポーネント部９１１は、入力された文書データに対して処理を施し、複数の文書データからなる文書セットを出力する。このとき、第１コンポーネント部９１１は、出力する文書セットに含まれる各要素（文書データ）に対して、他の要素と区別するためのプロパティを付与する。
【００６２】
プロパティの付与は、第１ワークフローコンポーネントに従って実行されてもよいし、結合関係設定部９１３に従って実行されてもよい。例えば、第１コンポーネント部９１１は、２つの文書データを出力する場合において、特定のフォーマットの一方の文書データに対してプロパティ「output_document[2]」を付与し、他方の文書データに対してプロパティ「output_document[1]」を付与してもよい。
【００６３】
第２コンポーネント部９１２は、記憶部９２０に格納されている第２ワークフローコンポーネントに従った処理を実行するものである。第２コンポーネント部９１２は、複数の文書データからなる文書セットを受け取り、当該文書セットを処理対象として所定の処理を施すものである。そして、処理結果である文書データを下流のアクティビティに送る。このとき、第２コンポーネント部９１２は、処理対象となる文書セットに含まれる各要素（文書データ）に対して、他の要素と区別するためのプロパティを付与する。そして、第２コンポーネント部９１２は、プロパティに従って各文書データの処理を行う。
【００６４】
プロパティの付与は、第２ワークフローコンポーネントに従って実行されてもよいし、結合関係設定部９１３に従って実行されてもよい。例えば、第２コンポーネント部９１２は、２つの文書データからなる文書セットを受け取り、一方の文書データに対してプロパティ「input_document[2]」を付与し、当該プロパティが付与された文書データに対して、他方の文書データとは異なる処理を施してもよい。
【００６５】
結合関係設定部９１３は、第１コンポーネント部９１１から出力される文書セットの中の要素と、第２コンポーネント部９１２に入力される文書セットの中の要素との結合関係を設定し、設定した結合関係を示す情報を生成するものである。
【００６６】
例えば、図３，４に示されるように、結合関係設定部９１３は、第１コンポーネント部９１１から出力される文書セットの中のプロパティ「output_document[2]」が付与された文書データと、第２コンポーネント部９１２に入力される文書セットの中のプロパティ「input_document[2]」が付与される文書データとの結合関係を示す情報を生成する。これにより、第１コンポーネント部９１１から出力されたプロパティ「output_document[2]」の文書データが、第２コンポーネント部９１２において、プロパティ「input_document[2]」が付与される文書データとなる。その結果、第２コンポーネント部９１２は、プロパティ「output_document[2]」の文書データに対して、プロパティ「input_document[2]」に対応する処理を施すこととなる。
【００６７】
なお、結合関係設定部９１３は、結合関係の設定をランタイムで設定してもよい。そして、結合関係設定部９１３は、スキャンワークフローアクティビティやget-from-folderワークフローアクティビティの結果に応じて、結合関係を示す情報を生成してもよい。
【００６８】
例えば、第１コンポーネント部９１１がget-from-folderワークフローアクティビティに従った処理であり、特定のフォーマットの文書データが格納されている第１フォルダから文書データを取得して出力する処理と、別のフォーマットの文書データが格納されている第２フォルダから文書データを取得して出力する処理を行うとともに、第２コンポーネント部９１２が当該特定のフォーマットの文書データに対して特定の処理を行う場合、結合関係設定部９１３は、以下のようにして結合関係を設定すればよい。すなわち、結合関係設定部９１３は、第１フォルダから取得した文書データのプロパティを「output_document[2]」とする。一方、結合関係設定部９１３は、第２コンポーネント部９１２において上記の特定の処理を実行する処理対象の文書データのプロパティを「input_document[2]」とする。そして、結合関係設定部９１３は、「output_document[2]」と「input_document[2]」との結合関係を設定すればよい。この場合、結合関係設定部９１３は、第１コンポーネント部９１１および第２コンポーネント部９１２の処理内容を確認することで結合関係を設定することができる。
【００６９】
もしくは、第２コンポーネント９１２が特定のフォーマットの文書データに対してのみ特定の処理を実行する場合、結合関係設定部９１３は、第１コンポーネント部９１１から出力される各文書データが当該特定のフォーマットを有するか否かを判定する。そして、当該特定のフォーマットを有する場合には、結合関係設定部９１３は、当該文書データに対してプロパティ「output_document[2]」を設定し、第２コンポーネント部９１２において上記の特定の処理を実行する処理対象の文書データのプロパティを「input_document[2]」としてもよい。そして、結合関係設定部９１３は、「output_document[2]」と「input_document[2]」との結合関係を設定すればよい。
なお、結合関係設定部９１３は、ユーザ入力に従って結合関係を設定してもよい。
【００７０】
なお、本発明は、以下のようにも表現できる。
【００７１】
本発明に係るコンピュータ装置は、プロセスユニットと、アドレス指定により読み出しおよび書き込みが可能なメモリとを備え、上記プロセスユニットは、第１文書セットから要素を選択する指示と、第２文書セットから要素を選択する指示と、上記第１文書セットの要素と上記第２文書セットの要素との結合関係を構築する指示とを実行するように構成されていることを特徴とする。
【００７２】
上記のコンピュータ装置において、上記第１文書セットの要素は文書データ要素であり、上記第２文書セットの要素は文書データ要素であることが好ましい。
【００７３】
本発明に係る装置で実行可能なワークフロー処理方法は、第１文書セットから要素を選択するステップと、第２文書セットから要素を選択するステップと、上記第１文書セットの要素と上記第２文書セットの要素との結合関係を構築するステップと、上記第２文書セットの要素と結合された第１文書セットの要素を有する第２文書セットを含むワークフローコンポーネントを出力するステップとを含む。
【００７４】
上記の方法において、上記第１文書セットの要素は文書データ要素であり、上記第２文書セットの要素は文書データ要素であることが好ましい。
【００７５】
本発明に係るコンピュータ読み取り可能な記録媒体は、コンピュータに対して、第１文書セットから要素を選択する指示と、第２文書セットから要素を選択する指示と、上記第１文書セットの要素と上記第２文書セットの要素との結合関係を構築する指示とを実行するようなコンピュータ読み取り可能な指示が格納された記録媒体である。
【００７６】
上記の記録媒体において、上記第１文書セットの要素は文書データ要素であり、上記第２文書セットの要素は文書データ要素であることが好ましい。
【００７７】
最後に、情報処理装置９００の各ブロック、特にワークフロー処理部９１０は、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【００７８】
すなわち、情報処理装置９００は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである情報処理装置９００の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記情報処理装置９００に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【００７９】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【００８０】
また、情報処理装置９００を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【００８１】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００８２】
本発明は、文書データを処理対象とするワークフローを実行する情報処理装置において利用することができる。
【符号の説明】
【００８３】
２００  コンピュータ装置
２１０  プロセッサ
２２０  メモリ
２３０  ユーザインターフェイス
２４０  データバス
２５０  オペレーティングシステム
２６０  ワークフロー環境
３１０  第１ワークフローコンポーネント
３１０・３２０  コンポーネント
３２０  第２ワークフローコンポーネント
５１０  第１のワークフローコンポーネント
５１０  第１ワークフローコンポーネント
５２０  第２ワークフローコンポーネント
７１０  第１のワークフローコンポーネント
７１０  第１ワークフローコンポーネント
７２０  第２ワークフローコンポーネント
９００  情報処理装置
９１０  ワークフロー処理部
９１１  第１コンポーネント部（第１処理部）
９１２  第２コンポーネント部（第２処理部）
９１３  結合関係設定部（関連付け生成部）
９２０  記憶部
９３０  ユーザインターフェイス
【図１Ａ】
2010102707.tif 000003
【図１Ｂ】
2010102707.tif 000004
【図２】
2010102707.tif 000005
【図３】
2010102707.tif 000006
【図４】
2010102707.tif 000007
【図５】
2010102707.tif 000008
【図６】
2010102707.tif 000009
【図７】
2010102707.tif 000010
【図８】
2010102707.tif 000011
【図９】
2010102707.tif 000012