(57)【要約】【課題】タスク情報の定義が異なる複数のワークフロー管理システムに対し、ユーザがどちらのシステムからアクセスしても双方のシステムのタスク情報を閲覧・更新することのできるタスク同期システムを提供する。【解決手段】タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムであって、一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信手段と、受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信手段とを備える。【選択図】図１
2010066812.tif 000002
【特許請求の範囲】
【請求項１】
タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムであって、
一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信手段と、
受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信手段と
を備えたことを特徴とするタスク同期システム。
【請求項２】
請求項１に記載のタスク同期システムにおいて、
複数のワークフロー管理システム間におけるタスク書誌情報の対応付けを管理するタスク書誌情報マッピングＤＢと、
複数のワークフロー管理システム間におけるタスクを特定する情報の対応付けを管理するタスクマッピングＤＢと、
複数のワークフロー管理システム間におけるユーザ情報の対応付けを管理するユーザマッピングＤＢとを備え、
前記送信手段は、前記更新通知に伴うタスク情報に基づき、前記タスク書誌情報マッピングＤＢを検索して対応するタスク書誌情報を取得し、前記タスクマッピングＤＢを検索して対応するタスクを取得し、前記ユーザマッピングＤＢを検索して対応するユーザを取得し、該当する項目を置き換えることで属性変換を行う
ことを特徴とするタスク同期システム。
【請求項３】
請求項１または２のいずれか一項に記載のタスク同期システムにおいて、
前記更新通知にかかるタスクの情報更新を一時的に記録する更新情報蓄積ＤＢを備え、
各ワークフロー管理システムにおけるタスクの情報更新を非同期に実行する
ことを特徴とするタスク同期システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のタスク同期システムにおいて、
階層型ワークフローに対応した一方のワークフロー管理システムから前記更新通知を受信し、階層型ワークフローに対応していない他方のワークフロー管理システムに更新の反映の要求を送信する場合、
前記送信手段は、属性変換したタスク情報の書誌情報にタスクの親子関係を記録する
ことを特徴とするタスク同期システム。
【請求項５】
請求項１乃至３のいずれか一項に記載のタスク同期システムにおいて、
階層型ワークフローに対応した一方のワークフロー管理システムから前記更新通知を受信し、階層型ワークフローに対応していないもののタスク情報がフォルダ階層で管理される他方のワークフロー管理システムに更新の反映の要求を送信する場合、
前記送信手段は、新たに作成されたタスクを収容するフォルダの作成を他方のワークフロー管理システムに要求する
ことを特徴とするタスク同期システム。
【請求項６】
請求項１乃至３のいずれか一項に記載のタスク同期システムにおいて、
階層型ワークフローに対応していないもののタスク情報がフォルダ階層で管理される一方のワークフロー管理システムから前記更新通知を受信し、階層型ワークフローに対応した他方のワークフロー管理システムに更新の反映の要求を送信する場合、
前記送信手段は、新たに作成されたタスクを収容するフォルダに対応するタスクが他方のワークフロー管理システムに存在する場合には、新たに作成されたタスクに対応するタスクを同タスクの子タスクとして作成するよう他方のワークフロー管理システムに要求し、存在しない場合には、新たに作成されたタスクに対応するタスクを親タスクのないタスクとして作成するよう他方のワークフロー管理システムに要求する
ことを特徴とするタスク同期システム。
【請求項７】
タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムの制御方法であって、
一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信工程と、
受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信工程と
を備えたことを特徴とするタスク同期制御方法。
【請求項８】
タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムの制御プログラムであって、
前記タスク同期システムを構成するコンピュータを、
一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信手段、
受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信手段
として機能させるタスク同期制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー管理の技術に関する。
【背景技術】
【０００２】
従来のワークフロー管理システム（タスク管理システム）は、ワークフロー実行前にワークフローモデルを決定する必要があった。すなわち、ワークフローを構成する個々のタスクの順序関係や個々のタスクの詳細を決定する必要があった。
【０００３】
しかし、研究開発や一部のサービスなど、事前情報の完全性の低い分野では、先行的なワークフローモデルの策定が難しい。すなわち、業務を進める過程で新たなタスクを追加しなければならなくなったり、タスクの実行順序を変更しなければならなくなったり、想定していたタスクが不要になったりということがしばしば起こり、事前に固定的なワークフローモデルを決めることが困難である。
【０００４】
そこで、コンストラクティブワークフローと呼ばれる、ワークフロー実行時に動的にワークフローモデルを構成できる、すなわち動的にタスク構成を変更可能な手法が開発されてきた（特許文献１、２等を参照。）。
【０００５】
ユーザグループが既に他のワークフロー管理システムによるタスク管理機能を使用している環境へ、新規にコンストラクティブワークフローを導入し、段階的移行またはグループ内で一部のユーザに限定した新システムの導入を行う場合、ユーザは旧来システムのタスク管理機能も並行して使用する場合が多い。
【０００６】
その結果、ユーザは複数のワークフロー管理システムを使い分けて仕事をすることが必要となり、仕事に応じて異なるワークフロー管理システムを起動して作業することが必要となる。
【特許文献１】特開２００８−０７１０８３号公報
【特許文献２】特開２００８−０７７２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、複数のワークフロー管理システムを使い分けて仕事をする場合、実質的に重複する内容の閲覧や入力操作を行わなければならないため、使い勝手が悪いという問題があった。複数のワークフロー管理システムに発生するタスクを一元的に管理し、ユーザが一つのシステムですべての作業に必要なタスクを一覧し操作できることが望ましい。
【０００８】
また、携帯電話など機能の限定された端末において、限定された機能の範囲でコンストラクティブワークフローを使用したい場合、すでに携帯電話にて稼動している旧来のワークフロー管理システムとの間でタスクを同期することができれば、コンストラクティブワークフローシステムに携帯電話専用の操作手段を用意する必要がなくなり、開発コストを押さえることができる。
【０００９】
また、旧来のワークフロー管理システムとの間でタスクを同期することができた場合であっても、コンストラクティブワークフローによるタスク階層を実現するワークフロー管理システムと、従来型の階層構造を持たないワークフロー管理システムとの間ではタスク階層の情報を共有することができない。従来型のシステム側でも、限定された機能でもかまわないから何らかの形でタスク階層を扱いたいというユーザニーズが存在する。
【００１０】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、ユーザがどちらのシステムからアクセスしても双方のシステムのタスク情報を閲覧・更新することのできるタスク同期システムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムであって、一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信手段と、受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信手段とを備えるタスク同期システムを要旨としている。
【００１２】
また、請求項２に記載されるように、請求項１に記載のタスク同期システムにおいて、複数のワークフロー管理システム間におけるタスク書誌情報の対応付けを管理するタスク書誌情報マッピングＤＢと、複数のワークフロー管理システム間におけるタスクを特定する情報の対応付けを管理するタスクマッピングＤＢと、複数のワークフロー管理システム間におけるユーザ情報の対応付けを管理するユーザマッピングＤＢとを備え、前記送信手段は、前記更新通知に伴うタスク情報に基づき、前記タスク書誌情報マッピングＤＢを検索して対応するタスク書誌情報を取得し、前記タスクマッピングＤＢを検索して対応するタスクを取得し、前記ユーザマッピングＤＢを検索して対応するユーザを取得し、該当する項目を置き換えることで属性変換を行うようにすることができる。
【００１３】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載のタスク同期システムにおいて、前記更新通知にかかるタスクの情報更新を一時的に記録する更新情報蓄積ＤＢを備え、各ワークフロー管理システムにおけるタスクの情報更新を非同期に実行するようにすることができる。
【００１４】
また、請求項４に記載されるように、請求項１乃至３のいずれか一項に記載のタスク同期システムにおいて、階層型ワークフローに対応した一方のワークフロー管理システムから前記更新通知を受信し、階層型ワークフローに対応していない他方のワークフロー管理システムに更新の反映の要求を送信する場合、前記送信手段は、属性変換したタスク情報の書誌情報にタスクの親子関係を記録するようにすることができる。
【００１５】
また、請求項５に記載されるように、請求項１乃至３のいずれか一項に記載のタスク同期システムにおいて、階層型ワークフローに対応した一方のワークフロー管理システムから前記更新通知を受信し、階層型ワークフローに対応していないもののタスク情報がフォルダ階層で管理される他方のワークフロー管理システムに更新の反映の要求を送信する場合、前記送信手段は、新たに作成されたタスクを収容するフォルダの作成を他方のワークフロー管理システムに要求するようにすることができる。
【００１６】
また、請求項６に記載されるように、請求項１乃至３のいずれか一項に記載のタスク同期システムにおいて、階層型ワークフローに対応していないもののタスク情報がフォルダ階層で管理される一方のワークフロー管理システムから前記更新通知を受信し、階層型ワークフローに対応した他方のワークフロー管理システムに更新の反映の要求を送信する場合、前記送信手段は、新たに作成されたタスクを収容するフォルダに対応するタスクが他方のワークフロー管理システムに存在する場合には、新たに作成されたタスクに対応するタスクを同タスクの子タスクとして作成するよう他方のワークフロー管理システムに要求し、存在しない場合には、新たに作成されたタスクに対応するタスクを親タスクのないタスクとして作成するよう他方のワークフロー管理システムに要求するようにすることができる。
【００１７】
また、請求項７に記載されるように、タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムの制御方法であって、一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信工程と、受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信工程とを備えるタスク同期制御方法として構成することができる。
【００１８】
また、請求項８に記載されるように、タスク情報の定義が異なる複数のワークフロー管理システムの間に配置されるタスク同期システムの制御プログラムであって、前記タスク同期システムを構成するコンピュータを、一方のワークフロー管理システムからタスク更新もしくはタスク作成に基づく更新通知を受信する受信手段、受信した更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信する送信手段として機能させるタスク同期制御プログラムとして構成することができる。
【発明の効果】
【００１９】
本発明のタスク同期システムにあっては、複数のワークフロー管理システムで別々に管理されているタスクを相互に複製し、どちらか一方においてタスクが更新された場合、自動的に他方にその更新を反映することにより、ユーザがどちらのシステムからアクセスしても双方のシステムのタスク情報を閲覧・更新することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好適な実施形態につき説明する。
【００２１】
＜構成＞
図１は本発明の一実施形態にかかるシステムの構成例を示す図であり、第１のワークフロー管理システム１Ａと第２のワークフロー管理システム１Ｂとが、タスク同期システム２を介して接続された形態となっている。
【００２２】
タスク同期システム２は、一方のワークフロー管理システム（１Ａ、１Ｂ）からタスクの更新通知を受信する更新通知受信部２１と、受信したタスクの更新通知に基づき、所定の属性変換を行い、更新の反映の要求を他方のワークフロー管理システム（１Ｂ、１Ａ）に送信する更新反映送信部２２とを備えている。また、処理に必要な情報を保持するデータベース（ＤＢ）として、各ワークフロー管理システム（１Ａ、１Ｂ）におけるタスク書誌情報の対応付けを管理するタスク書誌情報マッピングＤＢ２３と、各ワークフロー管理システム（１Ａ、１Ｂ）におけるタスクを特定する情報の対応付けを管理するタスクマッピングＤＢ２４と、各ワークフロー管理システム（１Ａ、１Ｂ）におけるユーザ情報の対応付けを管理するユーザマッピングＤＢ２５と、タスク更新情報を蓄積する更新情報蓄積ＤＢ２６とを備えている。
【００２３】
図２はタスク書誌情報マッピングＤＢ２３のデータ構造例を示す図であり、タスク書誌情報マッピングＤＢ２３内における対応するレコードを識別する「ＭａｐＩＤ」の項目と、対応するワークフロー管理システム（１Ａ、１Ｂ）を示す「Ｓｙｓｔｅｍ」の項目と、属性名を示す「ＰｒｏｐｅｒｔｙＮａｍｅ」の項目と、属性名の種別を示す「Ｔｙｐｅ」の項目と、種別が「Ｅｎｕｍ（列挙型）」である場合に同じグループに属することを示す識別子である「ＥｎｕｍＩＤ」の項目と、種別が「Ｅｎｕｍ」である場合の値を示す「Ｖａｌｕｅ」の項目とを有している。
【００２４】
図３はタスクマッピングＤＢ２４のデータ構造例を示す図であり、タスクマッピングＤＢ２４内における対応するレコードを識別する「ＭａｐＩＤ」の項目と、対応するワークフロー管理システム（１Ａ、１Ｂ）を示す「Ｓｙｓｔｅｍ」の項目と、タスクＩＤの標記を示す「ＴａｓｋＩＤ」の項目と、タスクの種別を示す「Ｔｙｐｅ」の項目とを有している。
【００２５】
図４はユーザマッピングＤＢ２５のデータ構造例を示す図であり、ユーザマッピングＤＢ２５内における対応するレコードを識別する「ＭａｐＩＤ」の項目と、対応するワークフロー管理システム（１Ａ、１Ｂ）を示す「Ｓｙｓｔｅｍ」の項目と、ユーザＩＤの標記を示す「ＵｓｅｒＩＤ」の項目とを有している。
【００２６】
図５は更新情報蓄積ＤＢ２６のデータ構造例を示す図であり、更新情報を処理した日時を示す「Ｔｉｍｅ」の項目と、対応するワークフロー管理システム（１Ａ、１Ｂ）を示す「Ｓｙｓｔｅｍ」の項目と、更新の種別を示す「Ａｃｔｉｏｎ」の項目と、親タスクを示す「Ｐａｒｅｎｔ」の項目と、更新したタスク情報を示す「ＴａｓｋＩｎｆｏ」の項目とを有している。「ＴａｓｋＩｎｆｏ」は、少なくともタスクＩＤを含むタスクの書誌情報をデータベースに記録するために適した形式に変換したものである。
【００２７】
図６はシステム要素のハードウェア構成例を示す図であり、ワークフロー管理システム１Ａ、１Ｂ、タスク同期システム２が動作するサーバ等のコンピュータ装置１０のハードウェア構成例を示している。すなわち、システムバス１１に接続されたＣＰＵ（Central Processing Unit）１２、ＲＯＭ（Read Only Memory）１３、ＲＡＭ（Random Access Memory）１４、ＮＶＲＡＭ（Non-Volatile Random Access Memory）１５、Ｉ／Ｆ（Interface）１６と、Ｉ／Ｆ１６に接続された、キーボード、マウス、モニタ等のＩ／Ｏ（Input/Output Device）１７、ＨＤＤ（Hard Disk Drive）１８、ＮＩＣ（Network Interface Card）１９を備えている。
【００２８】
＜動作＞
以下においては、図１のシステム構成において、ワークフロー管理システム１Ａはコンストラクティブワークフローを扱うシステム、ワークフロー管理システム１Ｂは旧来のタスク管理機能を有するシステムとして説明を行う。
【００２９】
図７はタスク情報更新時の同期の処理例を示すシーケンス図である。
【００３０】
図７において、ワークフロー管理システム１Ａにおいてタスク情報の更新が行われると（ステップＳ１０１）、ワークフロー管理システム１Ａからタスク同期システム２に対してタスク情報を伴ったタスク情報更新通知が行われ、これを更新通知受信部２１が受信する（ステップＳ１０２）。
【００３１】
タスク情報更新通知を受信した更新通知受信部２１は更新情報蓄積ＤＢ２６に対してタスク更新情報の追記を行う（ステップＳ１０３）。
【００３２】
一方、更新反映送信部２２は更新通知受信部２１によるタスク情報更新通知の受信とは非同期に更新情報蓄積ＤＢ２６からタスク更新情報を取得し（ステップＳ１０４、Ｓ１０５）、属性変換処理を行う（ステップＳ１０６）。属性変換処理の詳細については後述するが、タスク書誌情報マッピングＤＢ２３からの属性対応情報の取得（ステップＳ１０７、Ｓ１０８）、タスクマッピングＤＢ２４からのタスク対応情報の取得（ステップＳ１０９、Ｓ１１０）およびユーザマッピングＤＢ２５からのユーザ情報の取得（ステップＳ１１１、Ｓ１１２）を伴う。
【００３３】
そして、更新反映送信部２２は属性変換したタスク情報に基づき、ワークフロー管理システム１Ｂに対してタスク更新を要求する（ステップＳ１１３）。ワークフロー管理システム１Ｂは更新反映送信部２２からの要求に応じてタスク更新を行う。
【００３４】
図８は更新反映送信部２２による属性変換処理（図７のステップＳ１０６）の例を示すフローチャートである。
【００３５】
図８において、属性変換処理は引数として同期元システムwffrom、同期先システムwfto、属性リストpropsを渡されて処理を開始する（ステップＳ１２１）。同期元システムwffromはタスク情報更新通知を行ってきたワークフロー管理システム（１Ａ）を示す値、同期先システムwftoは同期による更新対象のワークフロー管理システム（１Ｂ）を示す値、属性リストpropsはタスク情報に含まれる属性のリストである。図９（ａ）は引数として渡される属性変換前の属性リストpropsの例を示しており、PropertyNameとPropertyValueの項目を有している。また、図９（ｂ）は属性変換後の応答となる属性リストresの例を示しており、同じく、PropertyNameとPropertyValueの項目を有している。以下に説明する処理により、属性リストpropsの「URI」「タスク名」「タスク説明」「担当者」「状態」「期限」「優先度」は、属性リストresの「Task ID」「Subject」「Description」「Owner」「Status」「Due Date」「Priority」に変換される。なお、属性リストpropsの「開始日」はタスク書誌情報マッピングＤＢ２３に対応するエントリがないため属性リストresへは変換されていない（無視している）が、「タスク説明」に対応する「Description」に追記するようにしてもよい。
【００３６】
図８に戻り、先ず、属性リストresに空リストを設定する（ステップＳ１２２）。
【００３７】
次いで、属性リストpropsが空であるか否か判断し（ステップＳ１２３）、空である場合（ステップＳ１２３のＹ）には処理を終了する（ステップＳ１５０）。
【００３８】
属性リストpropsが空でない場合（ステップＳ１２３のＮ）には、属性リストpropsから属性を一つ取り出し、属性レコードpropに設定する（ステップＳ１２４）。
【００３９】
次いで、タスク書誌情報マッピングＤＢ２３を条件
（  System  ＝  wffrom  ）∧（  PropertyName  ＝  prop.PropertyName  ）
で検索し、検索結果をマッピング元レコードmapfromに設定する（ステップＳ１２５）。なお、prop.PropertyNameは属性レコードpropの属性であるPropertyNameの値を示す。
【００４０】
次いで、検索により該当するレコードが見つかったか否か判断し（ステップＳ１２６）、見つからなかった場合（ステップＳ１２６のＮ）は属性リストpropsが空であるか否かの判断（ステップＳ１２３）に戻る。
【００４１】
検索により該当するレコードが見つかった場合（ステップＳ１２６のＹ）は、タスク書誌情報マッピングＤＢ２３を条件
（  System  ＝  wfto  ）∧（  MapID  ＝  mapfrom.MapID  ）
で検索し、検索結果をマッピング先レコードmaptoに設定する（ステップＳ１２７）。
【００４２】
次いで、検索により該当するレコードが見つかったか否か判断し（ステップＳ１２８）、見つからなかった場合（ステップＳ１２８のＮ）は属性リストpropsが空であるか否かの判断（ステップＳ１２３）に戻る。
【００４３】
検索により該当するレコードが見つかった場合（ステップＳ１２８のＹ）は、新しい属性値を作成して属性レコードnpropとし、nprop.PropertyNameにmapto.PropertyNameを設定し、nprop.PropertyValueにnullを設定する（ステップＳ１２９）。
【００４４】
次いで、mapto.type  ＝  'TaskID'であるか否か判断する（ステップＳ１３０）。
【００４５】
mapto.type  ＝  'TaskID'である場合（ステップＳ１３０のＹ）は、タスクマッピングＤＢ２４を条件
（  System  ＝  wffrom  ）∧（  TaskID  ＝  prop.PropertyValue  ）
で検索し、検索結果を同期元タスクレコードtaskfromに設定する（ステップＳ１３１）。
【００４６】
次いで、検索により該当するタスクレコードが見つかったか否か判断する（ステップＳ１３２）。
【００４７】
検索により該当するタスクレコードが見つかった場合（ステップＳ１３２のＹ）は、タスクマッピングＤＢ２４を条件
（  System  ＝  wfto  ）∧（  MapID  ＝  taskfrom.MapID  ）
で検索し、検索結果を同期先タスクレコードtasktoに設定する（ステップＳ１３３）。
【００４８】
次いで、検索により該当するタスクレコードが見つかったか否か判断する（ステップＳ１３４）。
【００４９】
検索により該当するタスクレコードが見つかった場合（ステップＳ１３４のＹ）、nprop.PropertyValueにtaskto.TaskIDを設定する（ステップＳ１３５）。
【００５０】
その後、および、該当するタスクレコードが見つからなかった場合（ステップＳ１３２のＮ、ステップＳ１３４のＮ）は、属性レコードnpropを属性リストresに追加し（ステップＳ１４９）、属性リストpropsが空であるか否かの判断（ステップＳ１２３）に戻る。
【００５１】
一方、mapto.type  ＝  'TaskID'でない場合（ステップＳ１３０のＮ）は、mapto.type  ＝  'User'であるか否か判断する（ステップＳ１３６）。
【００５２】
mapto.type  ＝  'User'である場合（ステップＳ１３６のＹ）は、ユーザマッピングＤＢ２５を条件
（  System  ＝  wffrom  ）∧（  UserID  ＝  prop.PropertyValue  ）
で検索し、検索結果を同期元ユーザレコードuserfromに設定する（ステップＳ１３７）。
【００５３】
次いで、該当するユーザレコードが見つかったか否か判断する（ステップＳ１３８）。
【００５４】
該当するユーザレコードが見つかった場合（ステップＳ１３８のＹ）は、ユーザマッピングＤＢ２５を条件
（  System  ＝  wfto  ）∧（  MapID  ＝  userfrom.MapID  ）
で検索し、検索結果を同期先ユーザレコードusertoに設定する（ステップＳ１３９）。
【００５５】
次いで、該当するユーザレコードが見つかったか否か判断する（ステップＳ１４０）。
【００５６】
該当するユーザレコードが見つかった場合（ステップＳ１４０のＹ）は、nprop.PropertyValueにuserto.UserIDを設定する（ステップＳ１４１）。
【００５７】
その後、および、該当するユーザレコードが見つからなかった場合（ステップＳ１３８のＮ、ステップＳ１４０のＮ）は、属性レコードnpropを属性リストresに追加し（ステップＳ１４９）、属性リストpropsが空であるか否かの判断（ステップＳ１２３）に戻る。
【００５８】
一方、mapto.type  ＝  'User'でない場合（ステップＳ１３６のＮ）は、mapto.type  ＝  'Enum'であるか否か判断する（ステップＳ１４２）。
【００５９】
mapto.type  ＝  'Enum'である場合（ステップＳ１４２のＹ）は、タスク書誌情報マッピングＤＢ２３を条件
（  System  ＝  wffrom  ）∧（  MapID  ＝  mapfrom.MapID  ）
∧（  Value  ＝  prop.PropertyValue  ）
で検索し、検索結果を同期元列挙型レコードenumfromに設定する（ステップＳ１４３）。
【００６０】
次いで、該当する列挙型レコードが見つかったか否か判断する（ステップＳ１４４）。
【００６１】
該当する列挙型レコードが見つかった場合（ステップＳ１４４のＹ）は、タスク書誌情報マッピングＤＢ２３を条件
（  System  ＝  wfto  ）∧（  MapID  ＝  mapfrom.MapID  ）
∧（  EnumID    ＝  enumfrom.EnumID  ）
で検索し、検索結果を同期先列挙型レコードenumtoに設定する（ステップＳ１４５）。
【００６２】
次いで、該当する列挙型レコードが見つかったか否か判断する（ステップＳ１４６）。
【００６３】
該当する列挙型レコードが見つかった場合（ステップＳ１４６のＹ）は、nprop.PropertyValueにenumto.Valueを設定する（ステップＳ１４７）。
【００６４】
その後、および、該当する列挙型レコードが見つからなかった場合（ステップＳ１４４のＮ、ステップＳ１４６のＮ）は、属性レコードnpropを属性リストresに追加し（ステップＳ１４９）、属性リストpropsが空であるか否かの判断（ステップＳ１２３）に戻る。
【００６５】
一方、mapto.type  ＝  'Enum'でない場合（ステップＳ１４２のＮ）は、mapfrom.type、mapto.typeに対応して属性値の型変換Convert(prop.PropertyValue,mapfrom.type, mapto.type)を行い、nprop.PropertyValueに設定する（ステップＳ１４８）。例えば、数値を文字列に変換したり、文字列を日付に変換したりする。
【００６６】
そして、属性レコードnpropを属性リストresに追加し（ステップＳ１４９）、属性リストpropsが空であるか否かの判断（ステップＳ１２３）に戻る。
【００６７】
図１０はタスク情報の対応関係の例を示す図であり、ワークフロー管理システム１Ａのタスク情報とワークフロー管理システム１Ｂのタスク情報とが相互に変換される様子を示している。すなわち、「URI：http://wf1/viewtask?tid=25」は「Task ID:2931」、「タスク名：設計書レビュー」は「Subject:設計書レビュー」、「タスク説明：設計書spec1.docをレビュー」は「Description:設計書spec1.docをレビュー」、「担当者：前田  薫」は「Owner:kmaeda」、「状態：作業中」は「Status:In Progress」、「期限：２００７年３月２８日」は「Due Date:Mar 28, 2007」、「優先度：高」は「Priority:1」、の間でそれぞれ相互に変換される。
【００６８】
なお、属性変換の結果、対応するタスクがタスクマッピングＤＢ２４に記録されていない場合、図８の属性変換処理の実行結果ではタスクＩＤがnullとなる。この場合、同期先のワークフロー管理システム（１Ｂ）側では新規タスクとして登録し、割り当てられたタスクＩＤをタスクマッピングＤＢ２４に記録することになる。
【００６９】
図１１はタスク作成時の同期の処理例を示すシーケンス図である。
【００７０】
図１１において、ワークフロー管理システム１Ａにおいてタスクの作成が行われると（ステップＳ２０１）、ワークフロー管理システム１Ａからタスク同期システム２に対して作成されたタスクのタスク情報を伴ったタスク情報更新通知が行われ、これを更新通知受信部２１が受信する（ステップＳ２０２）。
【００７１】
タスク情報更新通知を受信した更新通知受信部２１は更新情報蓄積ＤＢ２６に対してタスク更新情報の追記を行う（ステップＳ２０３）。
【００７２】
一方、更新反映送信部２２は更新通知受信部２１によるタスク情報更新通知の受信とは非同期に更新情報蓄積ＤＢ２６からタスク更新情報を取得し（ステップＳ２０４、Ｓ２０５）、属性変換処理を行う（ステップＳ２０６）。属性変換処理の詳細は図８において説明したのと同様である。この属性変換処理においては、タスク書誌情報マッピングＤＢ２３からの属性対応情報の取得（ステップＳ２０７、Ｓ２０８）、タスクマッピングＤＢ２４からのタスク対応情報の取得（ステップＳ２０９、Ｓ２１０）およびユーザマッピングＤＢ２５からのユーザ情報の取得（ステップＳ２１１、Ｓ２１２）を伴う。
【００７３】
次いで、更新反映送信部２２は属性変換したタスク情報に基づき、ワークフロー管理システム１Ｂに対してタスク作成を要求し（ステップＳ２１３）、ワークフロー管理システム１Ｂはタスク作成を行い、作成したタスクのタスクＩＤを更新反映送信部２２に返す（ステップＳ２１４）。
【００７４】
ここで、ワークフロー管理システム１Ａは階層型ワークフローに対応しているのに対し、ワークフロー管理システム１Ｂは階層型ワークフローに対応していない場合、タスク作成要求（ステップＳ２１３）においてワークフロー管理システム１Ｂに渡すタスク情報として、書誌情報の一部であるタスク説明に親タスク（スーパータスク）および子タスク（サブタスク）の情報をリンクとして含めることにより、擬似的に階層型ワークフローに対応させることができる。
【００７５】
図１２（ａ）はタスクの階層構造の例を示しており、タスクtask1の子タスクとしてタスクtask2、task3、task4があり、タスクtask3の子タスクとしてタスクtask5、task6がある場合を示している。ここでタスクtask3の子タスクtask5、task6が新たに作成されたとすると、図１２（ｂ）に示すように、タスクtask3のタスク説明内の記述Ｄ１として、「親タスク：task1、子タスク：task5、task6」を入れ、task1、task5、task6を下線で示すように各タスク情報へのハイパーリンクとする。
【００７６】
図１１に戻り、更新反映送信部２２はタスク対応情報の作成を行い、タスクマッピングＤＢ２４に格納する（ステップＳ２１５）。タスク対応情報作成処理については次に説明する。
【００７７】
図１３はタスク対応情報作成処理（図１１のステップＳ２１５）の例を示すフローチャートである。
【００７８】
図１３において、タスク対応情報作成処理は引数として同期元システムwffrom、同期先システムwfto、同期元タスクレコードtaskfrom、同期先タスクレコードtasktoを渡されて処理を開始する（ステップＳ２２１）。
【００７９】
先ず、タスク書誌情報マッピングＤＢ２３を条件 
（  System = wffrom  ）∧（  Type = 'TaskID'  ) 
で検索し、検索結果を同期元ＩＤidfromに設定する（ステップＳ２２２）。
【００８０】
次いで、idfrom.PropertyNameで示される同期元タスクレコードtaskfromの属性を同期元タスクＩＤtaskidfromに設定する（ステップＳ２２３）。
【００８１】
次いで、タスク書誌情報マッピングＤＢ２３を条件
（  System = wfto  ）∧（  Type = 'TaskID'  ) 
で検索し、検索結果を同期先ＩＤidtoに設定する（ステップＳ２２４）。
【００８２】
次いで、idto.PropertyNameで示される同期先タスクレコードtasktoの属性を同期先タスクＩＤtaskidtoに設定する（ステップＳ２２５）。
【００８３】
次いで、タスクマッピングＤＢ２４上の新しいＩＤを生成し、マップＩＤmapidに設定する（ステップＳ２２６）。
【００８４】
次いで、タスクマッピングＤＢ２４にmapid、wffrom、taskidfrom、'Task'とmapid、wfto、taskidto、'Task'の新しいエントリを作成し（ステップＳ２２７）、処理を終了する（ステップＳ２２８）。
【００８５】
図１４はタスク作成時の同期の他の処理例を示すシーケンス図である。
【００８６】
図１４において、ワークフロー管理システム１Ａにおいてタスクの作成が行われると（ステップＳ２３１）、ワークフロー管理システム１Ａからタスク同期システム２に対して作成されたタスクのタスク情報を伴ったタスク情報更新通知が行われ、これを更新通知受信部２１が受信する（ステップＳ２３２）。
【００８７】
タスク情報更新通知を受信した更新通知受信部２１は更新情報蓄積ＤＢ２６に対してタスク更新情報の追記を行う（ステップＳ２３３）。
【００８８】
一方、更新反映送信部２２は更新通知受信部２１によるタスク情報更新通知の受信とは非同期に更新情報蓄積ＤＢ２６からタスク更新情報を取得し（ステップＳ２３４、Ｓ２３５）、属性変換処理を行う（ステップＳ２３６）。属性変換処理の詳細は図８において説明したのと同様である。この属性変換処理においては、タスク書誌情報マッピングＤＢ２３からの属性対応情報の取得（ステップＳ２３７、Ｓ２３８）、タスクマッピングＤＢ２４からのタスク対応情報の取得（ステップＳ２３９、Ｓ２４０）およびユーザマッピングＤＢ２５からのユーザ情報の取得（ステップＳ２４１、Ｓ２４２）を伴う。
【００８９】
次いで、更新反映送信部２２は属性変換したタスク情報に基づき、ワークフロー管理システム１Ｂに対してタスク分類フォルダ作成を要求し（ステップＳ２４３）、ワークフロー管理システム１Ｂはタスク分類フォルダ作成を行い、作成したフォルダのＩＤを更新反映送信部２２に返す（ステップＳ２４４）。
【００９０】
次いで、更新反映送信部２２は属性変換したタスク情報に基づき、ワークフロー管理システム１Ｂに対してタスク作成を要求し（ステップＳ２４５）、ワークフロー管理システム１Ｂはタスク作成を行い、作成したタスクのタスクＩＤを更新反映送信部２２に返す（ステップＳ２４６）。
【００９１】
次いで、更新反映送信部２２はタスク対応情報の作成を行い、タスクマッピングＤＢ２４に格納する（ステップＳ２４７）。タスク対応情報作成処理の詳細は図１３において説明したのと同様である。
【００９２】
すなわち、ワークフロー管理システム１Ａは階層型ワークフローに対応しているのに対し、ワークフロー管理システム１Ｂは階層型ワークフローに対応していないものの、タスク情報がフォルダ階層で管理されている場合、ワークフロー管理システム１Ｂにフォルダを動的に作成することで擬似的に階層型ワークフローに対応させることができる。
【００９３】
図１５（ａ）はタスクの階層構造の例を示しており、タスクtask1の子タスクとしてタスクtask2、task3、task4があり、タスクtask3の子タスクとしてタスクtask5、task6がある場合を示している。ここでタスクtask3の子タスクtask5、task6が新たに作成されたとすると、図１５（ｂ）に示すように、「task3中身」なるフォルダを作成し、そこにタスクtask5、task6を収容する。なお、フォルダ間の細線はワークフロー管理システム１Ｂで管理するフォルダ・サブフォルダ関係であり、フォルダとタスク間の太線はワークフロー管理システム１Ｂで管理するフォルダ・タスク関係である。また、フォルダとタスク間の破線はタスク同期システム２が管理するフォルダ・タスク対応関係である。このフォルダ・タスク対応関係についてワークフロー管理システム１Ｂは関知しない。
【００９４】
図１５（ｃ）はタスクマッピングＤＢ２４での記録例を示しており、ＭａｐＩＤ「1」、Ｓｙｓｔｅｍ「WF管理S#2」、ＴａｓｋＩＤ「http://wf2/task1」、Ｔｙｐｅ「Task」のレコードとＭａｐＩＤ「1」、Ｓｙｓｔｅｍ「WF管理S#2」、ＴａｓｋＩＤ「http://wf2/task1中身/」、Ｔｙｐｅ「Folder」のレコードによりフォルダ「task1中身」とタスクtask1の関係が管理され、ＭａｐＩＤ「3」、Ｓｙｓｔｅｍ「WF管理S#2」、ＴａｓｋＩＤ「http://wf2/task1中身/task3」、Ｔｙｐｅ「Task」のレコードとＭａｐＩＤ「3」、Ｓｙｓｔｅｍ「WF管理S#2」、ＴａｓｋＩＤ「http://wf2/task1中身/task3中身」、Ｔｙｐｅ「Folder」のレコードによりフォルダ「task3中身」とタスクtask3の関係が管理される。
【００９５】
図１６はタスク作成時の同期の他の処理例を示すシーケンス図であり、図１４の場合とは逆にワークフロー管理システム１Ｂでタスク作成が行われた場合の処理である。
【００９６】
図１６において、ワークフロー管理システム１Ｂにおいてタスクの作成が行われると（ステップＳ２５１）、ワークフロー管理システム１Ｂからタスク同期システム２に対して作成されたタスクのタスク情報を伴ったタスク情報更新通知が行われ、これを更新通知受信部２１が受信する（ステップＳ２５２）。
【００９７】
タスク情報更新通知を受信した更新通知受信部２１は更新情報蓄積ＤＢ２６に対してタスク更新情報の追記を行う（ステップＳ２５３）。
【００９８】
一方、更新反映送信部２２は更新通知受信部２１によるタスク情報更新通知の受信とは非同期に更新情報蓄積ＤＢ２６からタスク更新情報を取得し（ステップＳ２５４、Ｓ２５５）、属性変換処理を行う（ステップＳ２５６）。属性変換処理の詳細は図８において説明したのと同様である。この属性変換処理においては、タスク書誌情報マッピングＤＢ２３からの属性対応情報の取得（ステップＳ２５７、Ｓ２５８）、タスクマッピングＤＢ２４からのタスク対応情報の取得（ステップＳ２５９、Ｓ２６０）およびユーザマッピングＤＢ２５からのユーザ情報の取得（ステップＳ２６１、Ｓ２６２）を伴う。
【００９９】
次いで、更新反映送信部２２はフォルダへのタスク追加処理を行う（ステップＳ２６３）。タスク追加処理の詳細は後述する。このタスク追加処理において、更新反映送信部２２は属性変換したタスク情報に基づき、ワークフロー管理システム１Ａに対してタスク作成を要求し（ステップＳ２６４）、ワークフロー管理システム１Ｂはタスク作成を行い、作成したタスクのタスクＩＤを更新反映送信部２２に返す（ステップＳ２６５）。すなわち、更新反映送信部２２は、新たに作成されたタスクを収容するフォルダに対応するタスクがワークフロー管理システム１Ａに存在する場合には、新たに作成されたタスクに対応するタスクを同タスクの子タスクとして作成するようワークフロー管理システム１Ａに要求し、存在しない場合には、新たに作成されたタスクに対応するタスクを親タスクのないタスクとして作成するようワークフロー管理システム１Ａに要求する。
【０１００】
次いで、更新反映送信部２２はタスク対応情報の作成を行い、タスクマッピングＤＢ２４に格納する（ステップＳ２６６）。タスク対応情報作成処理の詳細は図１３において説明したのと同様である。
【０１０１】
図１７はタスク追加処理（図１６のステップＳ２６３）の例を示すフローチャートである。
【０１０２】
図１７において、タスク追加処理は引数として同期元システムwffrom、同期先システムwfto、フォルダfolder、タスクtaskを渡されて処理を開始する（ステップＳ２７１）。
【０１０３】
先ず、フォルダfolderのＩＤ（ＵＲＬ等）をフォルダＩＤfidに設定する（ステップＳ２７２）。
【０１０４】
次いで、タスクマッピングＤＢ２４を条件
（  System = wffrom  ）∧（  TaskID = fid  ）∧（  Type='Folder') 
で検索し、検索結果を同期元フォルダfolderfromに設定する（ステップＳ２７３）。
【０１０５】
次いで、検索により該当するフォルダが見つかったか否か判断する（ステップＳ２７４）。
【０１０６】
検索により該当するフォルダが見つからなかった場合（ステップＳ２７４のＮ）は、タスクtaskを親タスクのないタスクとして同期先システムwftoに追加し、追加されたタスクを同期先タスクtasktoに設定し（ステップＳ２７５）、処理を終了する（ステップＳ２７８）。
【０１０７】
また、検索により該当するフォルダが見つかった場合（ステップＳ２７４のＹ）は、タスクマッピングＤＢ２４を条件
（  System = wfto  ）∧（  MapID = folderfrom.MapID  ）∧（  Type='Task')
で検索し、検索結果を同期先親タスクptasktoに設定する（ステップＳ２７６）。
【０１０８】
次いで、同期先親タスクptasktoを親タスクとして、タスクtaskを同期先システムwftoの示すシステムに追加し、追加されたタスクを同期先タスクレコードtasktoに設定し（ステップＳ２７７）、処理を終了する（ステップＳ２７８）。
【０１０９】
＜総括＞
以上説明した実施形態によれば、次のような利点がある。
（１）あるワークフロー管理システム上で更新されたタスクの情報を別のワークフロー管理システムのタスクに反映することにより、一方向のタスク同期を提供することができる。
（２）双方向のタスク同期を提供することができる。
（３）タスク同期の更新作業をワークフロー上の情報更新と独立したタイミングで実施することにより、更新処理の待ち時間を短縮することができる。
（４）階層構造を表現するワークフロー管理システム上のタスク階層を、階層構造を持たないワークフロー管理システム上で閲覧する場合、階層関係があることをユーザに提示することができる。
（５）階層構造を表現するワークフロー管理システム上のタスク階層を、階層構造を持たないワークフロー管理システム上のタスク分類階層上で表現してユーザに提示することができる。
（６）階層構造を持たないワークフロー管理システム上のタスク追加作業によって、階層構造を表現するワークフロー上で子タスクを作成することができる。
【０１１０】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【０１１１】
【図１】本発明の一実施形態にかかるシステムの構成例を示す図である。
【図２】タスク書誌情報マッピングＤＢのデータ構造例を示す図である。
【図３】タスクマッピングＤＢのデータ構造例を示す図である。
【図４】ユーザマッピングＤＢのデータ構造例を示す図である。
【図５】更新情報蓄積ＤＢのデータ構造例を示す図である。
【図６】システム要素のハードウェア構成例を示す図である。
【図７】タスク情報更新時の同期の処理例を示すシーケンス図である。
【図８】属性変換処理の例を示すフローチャートである。
【図９】属性リストの例を示す図である。
【図１０】タスク情報の対応関係の例を示す図である。
【図１１】タスク作成時の同期の処理例を示すシーケンス図（その１）である。
【図１２】非階層型ワークフロー管理システムへのタスク階層構造のマッピングの例を示す図（その１）である。
【図１３】タスク対応情報作成処理の例を示すフローチャートである。
【図１４】タスク作成時の同期の処理例を示すシーケンス図（その２）である。
【図１５】非階層型ワークフロー管理システムへのタスク階層構造のマッピングの例を示す図（その２）である。
【図１６】タスク作成時の同期の処理例を示すシーケンス図（その３）である。
【図１７】タスク追加処理の例を示すフローチャートである。
【符号の説明】
【０１１２】
１Ａ、１Ｂ      ワークフロー管理システム
２              タスク同期システム
２１            更新通知受信部
２２            更新反映送信部
２３            タスク書誌情報マッピングＤＢ
２４            タスクマッピングＤＢ
２５            ユーザマッピングＤＢ
２６            更新情報蓄積ＤＢ
【図１】
2010066812.tif 000003
【図２】
2010066812.tif 000004
【図３】
2010066812.tif 000005
【図４】
2010066812.tif 000006
【図５】
2010066812.tif 000007
【図６】
2010066812.tif 000008
【図７】
2010066812.tif 000009
【図８】
2010066812.tif 000010
【図９】
2010066812.tif 000011
【図１０】
2010066812.tif 000012
【図１１】
2010066812.tif 000013
【図１２】
2010066812.tif 000014
【図１３】
2010066812.tif 000015
【図１４】
2010066812.tif 000016
【図１５】
2010066812.tif 000017
【図１６】
2010066812.tif 000018
【図１７】
2010066812.tif 000019