(57)【特許請求の範囲】
【請求項１】
構造化データを構成する要素をノードとした木構造により前記要素間の関係を定義した構造定義、前記要素に対応するデータをノードとした木構造により前記構造定義に従った構造化データが表現されたインスタンス、前記インスタンスに含まれるノードに対応する処理内容が記述されたメソッド、および前記インスタンスに含まれるノードをロケータで指定した論理あて先とメッセージ名と前記メソッドを示すメソッド名との対応関係を定義した関係記述を有する管理オブジェクトを記憶しており、ノードの削除が行われた前記インスタンスに関しては削除が行われる前後の前記インスタンスを記憶している構造化データ保持手段と、
前記論理あて先と前記メッセージ名とを有するメッセージを受け取ると、ノード削除後の前記インスタンスの中から前記論理あて先で示されたノードを抽出し、該当するノードが無い場合、ノード削除前の前記インスタンスの木構造において前記論理あて先で示されたノードの親ノードを調べ、ノード削除後の前記インスタンスに前記親ノードが存在するかを判断し、存在する場合にはノード削除後の前記インスタンス内の前記親ノードを引継先に決定し、前記関係記述に基づいて抽出したノードまたは引継先のノードに対応するメソッドのうち前記メッセージ内の前記メッセージ名で示されるメソッドを選択する構造化データ管理手段と、
前記構造化データ管理手段で選択した前記メソッドを読み込み、読み込んだ前記メソッドに記述された処理内容を実行するスクリプトインタプリタと、
を有することを特徴とする構造化データ管理システム。
【請求項２】
コンピュータを、
構造化データを構成する要素をノードとした木構造により前記要素間の関係を定義した構造定義、前記要素に対応するデータをノードとした木構造により前記構造定義に従った構造化データが表現されたインスタンス、前記インスタンスに含まれるノードに対応する処理内容が記述されたメソッド、および前記インスタンスに含まれるノードをロケータで指定した論理あて先とメッセージ名と前記メソッドを示すメソッド名との対応関係を定義した関係記述を有する管理オブジェクトを記憶しており、ノードの削除が行われた前記インスタンスに関しては削除が行われる前後の前記インスタンスを記憶している構造化データ保持手段、
前記論理あて先と前記メッセージ名とを有するメッセージを受け取ると、ノード削除後の前記インスタンスの中から前記論理あて先で示されたノードを抽出し、該当するノードが無い場合、ノード削除前の前記インスタンスの木構造において前記論理あて先で示されたノードの親ノードを調べ、ノード削除後の前記インスタンスに前記親ノードが存在するかを判断し、存在する場合にはノード削除後の前記インスタンス内の前記親ノードを引継先に決定し、前記関係記述に基づいて抽出したノードまたは引継先のノードに対応するメソッドのうち前記メッセージ内の前記メッセージ名で示されるメソッドを選択する構造化データ管理手段、
前記構造化データ管理手段で選択した前記メソッドを読み込み、読み込んだ前記メソッドに記述された処理内容を実行するスクリプトインタプリタ、
として機能させることを特徴とする構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３】
構造化データを構成する要素をノードとした木構造により前記要素間の関係を定義した構造定義、前記要素に対応するデータをノードとした木構造により前記構造定義に従った構造化データが表現されたインスタンス、前記インスタンスに含まれるノードに対応する処理内容が記述されたメソッド、および前記インスタンスに含まれるノードをロケータで指定した論理あて先とメッセージ名と前記メソッドを示すメソッド名との対応関係を定義した関係記述を有する管理オブジェクトを記憶しており、ノードの削除が行われた前記インスタンスに関しては削除が行われる前後の前記インスタンスを記憶している構造化データ保持手段が設けられており、
構造化データ管理手段が、前記論理あて先と前記メッセージ名とを有するメッセージを受け取ると、ノード削除後の前記インスタンスの中から前記論理あて先で示されたノードを抽出し、該当するノードが無い場合、ノード削除前の前記インスタンスの木構造において前記論理あて先で示されたノードの親ノードを調べ、ノード削除後の前記インスタンスに前記親ノードが存在するかを判断し、存在する場合にはノード削除後の前記インスタンス内の前記親ノードを引継先に決定し、前記関係記述に基づいて抽出したノードまたは引継先のノードに対応するメソッドのうち前記メッセージ内の前記メッセージ名で示されるメソッドを選択し、
スクリプトインタプリタが、前記構造化データ管理手段で選択した前記メソッドを読み込み、読み込んだ前記メソッドに記述された処理内容を実行する、
ことを特徴とする構造化データ管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は構造化された電子データに関連する処理を行う構造化データ管理システム、そのような処理をコンピュータに行わせるための構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び構造化データ管理方法に関し、特に複数の構造化データ同士で関連し合った処理を支援するための構造化データ管理システム、そのような処理をコンピュータに行わせるための構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び構造化データ管理方法に関する。
【０００２】
【従来の技術】
従来、業務処理システムの開発においては、あまり変化しない定型の業務を対象にしてきた。ところが、どのような業務であっても時代の流れによって必ず変化し、利用者の要求も高度化していく。そのため、システムの開発期間が長期にわたると、業務内容を分析しモデル化した時と、実際にシステムが完成した時とで、システムへの要求が大幅に異なることになる。
【０００３】
また、それらの業務支援システムでは、業務の変更を考慮していないため、データの保存形式も、その振舞い（データに関連して行われる処理内容）の記述も、一緒のシステム機能としてアプリケーションに組み込まれていた。そのため、業務変更に伴い業務支援システムが変更され、今まで作成されてきた膨大なデータを、新しいデータ形式に変換しなければならなくなることが多かった。
【０００４】
これに対し、ＥＲＰ(Enterprise Resource Planning ）パッケージと呼ばれる業務統合型ソフトウェアパッケージでは、モデル化された業務内容について、パラメータによって振舞いを変化させることができる部品にして用意し、使う側の業務環境に応じて選択あるいはパラメータ設定をすることで、容易にシステムを構築することが可能となっている。
【０００５】
【発明が解決しようとする課題】
しかし、従来の業務統合型ソフトウェアパッケージでは、最初に全ての業務内容を把握分析し、設定しておかなければならず、ＥＲＰに関する相当量の知識と業務内容の把握が必要となり、システムを運用するまでに時間がかかるという問題点があった。そのため、実際にその業務支援システムを使いながら、逐一変化する各業務内容に合わせるために変更や拡張や整理をして、適時的に最適な技術を組み合わせて利用者を支援することができなかった。
【０００６】
また、部品として用意されているものがいかに一般的なものであっても、それぞれの業務には固有な部分がある。そのため、このようなシステムでは、その業務処理システムに業務内容を合わせないといけないという問題がある。
【０００７】
さらに、データモデルは基本部分が固定で、利用者が定義できる部分は限定される上に、どのデータ項目とどの処理が関連しているのかわからず、データ構造の変更は現実的には不可能である。
【０００８】
なお、ワークフローと呼ばれるパッケージでは、作業を利用者の用途に合わせてモデル化して、作業の流れを支援することが可能である。ところが、ＥＲＰ同様最初にほとんど全てを定義しないと実行出来ず、一旦実行され始めると途中でやり方を変更することは不可能か、あるいは非常に繁雑な手続きが必要となる。しかも、ワークフローパッケージの対象とする作業は、組織活動の一部を支援するに止まり、全般に適用することは現実的ではない。
【０００９】
また、ＥＲＰとワークフローに共通する問題として、利用者による業務プロセスや組織の定義がＧＵＩ(Graphical User Interface)を通して行われ、内部定義の持ち方が隠蔽されているため、利用者の要件を満たすための拡張、例えば、データ構造を追加したり、他システムとの連携を図ったりすることが困難であることが挙げられる。
【００１０】
従って、従来は変化の多い非定型業務を支援するシステムを開発および運用することは出来ず、システム化されていない隙間の業務を手作業で行ったり、既存のシステムに存在する情報を有効に利用できないため一度入力した情報を何度も入力しなければならないといった問題が生じていた。
【００１１】
本発明はこのような点に鑑みてなされたものであり、処理対象となる構造化データの変化に柔軟に対応することができる構造化データ管理システム、及び構造化データ管理方法を提供することを目的とする。
【００１２】
また、本発明の他の目的は、構造化データに関する処理を、処理対象となる構造化データの変化に柔軟に対応しながらコンピュータに実行させるための構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【００１３】
【課題を解決するための手段】
本発明では上記課題を解決するために、構造化データを構成する要素をノードとした木構造により前記要素間の関係を定義した構造定義、前記要素に対応するデータをノードとした木構造により前記構造定義に従った構造化データが表現されたインスタンス、前記インスタンスに含まれるノードに対応する処理内容が記述されたメソッド、および前記インスタンスに含まれるノードと前記メソッドとの対応関係を定義した関係記述を有する管理オブジェクトを記憶しており、ノードの削除が行われた前記インスタンスに関しては削除が行われる前後の前記インスタンスを記憶している構造化データ保持手段と、前記管理オブジェクトの前記インスタンスに含まれるノードをロケータで指定した論理あて先を有するメッセージを受け取ると、ノード削除後の前記インスタンスの中から前記論理あて先で示されたノードを抽出し、該当するノードが無い場合、ノード削除前の前記インスタンスの木構造において前記論理あて先で示されたノードの上位のノードに対応するノード削除後の前記インスタンス内のノードを引継先に決定し、前記関係記述に基づいて抽出したノードまたは引継先のノードに対応するメソッドを選択する構造化データ管理手段と、前記構造化データ管理手段で選択した前記メソッドを読み込み、読み込んだ前記メソッドに記述された処理内容を実行するスクリプトインタプリタと、を有することを特徴とする構造化データ管理システムが提供される。
【００１４】
このような構造化データ管理システムによれば、メッセージを受け取ると、ノード削除後のインスタンスの中から論理あて先で示されたノードが抽出され、該当するノードが無い場合、ノード削除前のインスタンスの木構造において論理あて先で示されたノードの上位のノードに対応するノード削除後のインスタンス内のノードが引継先に決定され、関係記述に基づいて抽出したノードまたは引継先のノードに対応するメソッドが選択される。そして、選択されたメソッドが読み込まれ、読み込まれたメソッドに記述された処理内容が実行される。
【００１５】
このように、構造化データが木構造で表現可能な形式で表現されており、各ノードに関係付けて処理記述が設けられているため、構造化データの内容が変更されても、木構造を解析することで対象ノードを特定することができ、構造化データの変更に柔軟に対応できる。
【００１６】
また、上記課題を解決するために、構造化データを構成する要素をノードとした木構造により前記要素間の関係を定義した構造定義、前記要素に対応するデータをノードとした木構造により前記構造定義に従った構造化データが表現されたインスタンス、および前記インスタンスに含まれるノードに対応する処理内容が記述されたメソッドを有する管理オブジェクトを記憶しており、ノードの削除が行われた前記インスタンスに関しては削除が行われる前後の前記インスタンスを記憶している構造化データ保持手段が設けられており、構造化データ管理手段が、前記管理オブジェクトの前記インスタンスに含まれるノードをロケータで指定した論理あて先を有するメッセージを受け取ると、ノード削除後の前記インスタンスの中から前記論理あて先で示されたノードを抽出し、該当するノードが無い場合、ノード削除前の前記インスタンスの木構造において前記論理あて先で示されたノードの上位のノードに対応するノード削除後の前記インスタンス内のノードを引継先に決定し、抽出したノードまたは引継先のノードに対応するメソッドを選択し、スクリプトインタプリタが、前記構造化データ管理手段で選択した前記メソッドを読み込み、読み込んだ前記メソッドに記述された処理内容を実行する、ことを特徴とする構造化データ管理方法が提供される。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の原理構成図である。この構造化データ管理システムは、入出力手段１、構造化データ保持手段２、及び構造化データ処理手段３を備える。
【００１８】
入出力手段１は、利用者および他システムとのデータ授受を制御する。
構造化データ保持手段２は、互いに関連づけられた複数の構造化データを保持する。この構造化データは、処理単位となるデータをノードとした木構造で表現することができる。そして、木構造を構成している個々のノードに対応した処理内容が処理記述として関係付けられている。処理記述は、コンピュータで実行可能な言語で記述されており、必要に応じて、他のノードへの処理要求（以後、この処理要求を「メッセージ」と呼ぶ）が含まれている。この構造化データ保持手段２は、不揮発性の記憶媒体、例えば磁気記憶装置などを用いることで、システムの電源が切れた際にもデータの一貫性を保つことができる。
【００１９】
構造化データ処理手段３は、入出力手段１からメッセージを受け取ると、そのメッセージで指定された構造化データ３ａを構造化データ保持手段２内から取得する。そして、メッセージで指定された構造化データ３ａの木構造を解析することで対象となるノードを特定し、そのノードに関係付けられた処理記述を実行する。処理記述の実行において、他のノードに対するメッセージがあれば、そのメッセージに基づいて該当するノードの処理記述を実行する。メッセージが他の構造化データ３ｂ中のノードを指定していれば、該当する構造化データ３ｂを構造化データ保持手段２から取得し、そのメッセージに基づく処理を実行する。このとき、メッセージの宛先となるノードが存在しない場合には、木構造を辿ることで、そのメッセージを受け取るべきノードを特定し、そのノードの処理記述を実行する。
【００２０】
このような構成によれば、各ノードはそのノードに必要な処理のみを記述でき、自木構造あるいは他木構造をたどりながら、処理を引き継ぐことができる。そして、構造が変化した場合には、ノードの位置の変更だけならば、何も変更しなくても該当するノードを検出できる。ノードの分離、併合、追加、削除といった変更が行われた場合には、旧構造と新構造で先祖ノードを自動または半自動で比較することにより、処理を引き継ぐべきノードを特定することができる。この場合、最悪でも根ノードが存在するため、張られたリンクが切れていても処理を中断することなく引き継ぐことができる。
【００２１】
例えば、メッセージの対象が構造化データ「組織図」のノードである場合には、新構造においてそのノードが存在しなくても、旧構造におけるノードの先祖ノード（つまり、上位組織）を求めて、新構造において存在することを確認した上で、メッセージの対象を変更することができる。
【００２２】
また、そのような上位ノードにメッセージを転送できない場合もある。例えばメッセージの対象が構造化データ「文書体系」や「部品構成」のノードである場合には、その上位ノードにメッセージを転送しても、正しく処理が引き継がれるとは考えられない。このような構造化データの新構造において、メッセージの対象となるノードが存在しない場合には、新旧両方のノードをユーザに提示し、メッセージの対象をどのノードにするかに関する指示の入力や、指示の選択をさせることで処理を続行させることができる。
【００２３】
また、自動処理やユーザの判断に任せられない場合、例えばメッセージの対象が構造化データ「費目」のノードである場合もある。このような構造化データにおいて、メッセージの対象ノードが存在しない場合には、そのメッセージ内容を管理者に転送するようにできる。
【００２４】
従って、本発明では、構造化された電子データがノード毎に処理記述と関係付けられているため、振舞い（処理内容）の変更や不具合の修正箇所を容易に特定することが可能となる。しかも、２つの構造化された電子データを関係付けた処理が可能となれば、業務全般の様々な構造化データを関連付けることで、業務活動の全般に渡って支援することができる。
【００２５】
図２は、業務活動におけるデータ群の関係付けを示す模式図である。図に示している１つの３角形が１つの木構造のデータ群を表している。図の例では、「業務プロセス」、「部品構成」、「費目」、「組織図」、及び「文書体系」の構造化データ４ａ〜４ｅが示されている。図中、各構造化データ４ａ〜４ｅを接続している線は、ノード間の関係の束を示している。
【００２６】
このように、２つの構造化データ間の関係付けができれば、その関係付けを様々な業務用の構造化データ間で行うことで、多数の構造化データを網の目のようにして関係付け、それらを統合した処理を行うことができる。すなわち、業務支援システムに必要な組織活動における互いに関連し合った複数の概念構造を同時にかつ柔軟な組み合わせで扱える。その結果、業務活動全般の支援を行うことが可能となる。
【００２７】
また、本発明を用いれば、運用中に頻繁にデータ構造が変更される場合においても、その変更に容易に対処することができる。それには、変更前の旧構造化データを保存しておき、変更後の構造化データとの間の関係付けを行う。
【００２８】
図３は、構造化データの変更への対応方法を示す図である。この図は、構造化データが変化する様子を示している。時刻Ｔ１において存在している構造化データ５〜７の変化の様子を示している。この例では、時刻Ｔ１において、「Ａ１」の構造化データ５、「Ｂ１」の構造化データ６、「Ｃ１」の構造化データ７が、互いに関連づけられている。「Ａ１」の構造化データ５には、「ノードＭ」の下位ノードとして「ノードＮ１」と「ノードＮ２」とがある。
【００２９】
ここで、「Ｂ１」の構造化データ６から「Ａ１」の構造化データ５の「ノードＮ１」を参照しているものとする。そして、「ノードＮ１」が削除された場合を考える。「ノードＮ１」が削除された構造化データ５は、「ノードＭ」の下位構造に「ノードＮ２」のみが存在するような「Ａ２」の構造化データ５ａとなる。
【００３０】
時刻Ｔ２において、「Ｂ１」の構造化データ６内の処理記述が実行され、「Ａ１」の構造化データ５の「ノードＮ１」の参照要求が出された場合には、「Ａ１」の構造化データ５と「Ａ２」の構造化データ５ａとの関係が既知であれば処理を続けることができる。
【００３１】
構造が変化した構造化データ同士の関係には、２つの場合がある。１つ目は、「新版−旧版」という関係のみを有する場合である。この場合を「暗黙の関係」と呼ぶ。２つ目は、新版のノードと旧版のノードの関係が具体的に明示されている場合である。この場合を「明確な関係」と呼ぶ。このような、新旧のデータ間の関係に応じて以下のような処理が行われる。
【００３２】
まず、「Ｂ１」の構造化データ６内のノードから「Ａ２」の「ノードＮ１」を参照する（Ｓ１）。すると、構造化データ処理手段３（図１に示す）は、参照先が存在しないことを認識し、旧版の「Ａ１」の構造化データ５を参照する（Ｓ２）。ここで、構造化データ処理手段３は、明確な関係か暗黙の関係かを判断する。
【００３３】
明確な関係がある場合には、明示されている関係に応じた処理を行う。例えば、「Ａ２ではノードＮ１に対応するノードが存在しない」ことが記述されていた場合には、構造化データ処理手段３は、ユーザに「Ａ１」と「Ａ２」との両方を表示して状況を提示し、指示を仰ぐ。また、「Ａ２内のノードＮ２がノードＮ１に対応する」ことが記述されていた場合には、構造化データ処理手段３が自動的に「ノードＮ２」に処理を引き継がせる（Ｓ３）。
【００３４】
暗黙の関係である場合には、「Ａ１」の構造化データ５を参照し、ノードＮ１の親ノードを調べる（Ｓ４）。その結果、「ノードＭ」が親ノードであることが判明する。そこで、新版の「Ａ２」の構造化データ５ａに「ノードＭ」が存在するか否かを判断する。この例では「ノードＭ」が存在するため、新版の構造化データ５ａの「ノードＭ」に処理を引き継がせる（Ｓ５）。このとき、ユーザに対して、処理の引継状況を提示する。ユーザは、引継状況を変更したければ、任意の引継先を指定する。引継先が決まったら、「Ｂ１」の構造化データ６内の「ノードＮ１」を参照する処理記述の内容が、引継先を参照する内容に変更され、新たな「Ｂ２」の構造化データ６ａが生成される。
【００３５】
このように、旧版の構造化データを保存しておくことにより、新旧間の明示された関係を辿ることや、新旧間の構造化データを比較することによって、処理を続けることが可能となる。即ち、一部の構造化データの構造が変化した場合にも、柔軟に対応することができる。上記の例では、単にノードが削除された場合を例にとって説明したが、ノードが分割された場合や併合された場合にも同様に処理を引き継がせることができる。
【００３６】
なお、暗黙の関係の場合において、参照すべきノードの親ノードも削除されていた場合には、さらにその親ノードを調べる。ここで、新旧関係にある構造化データであれば必ずルートノードは同じであるため、次々と親ノードを調べていくことで、必ず新版にも存在するノードが発見される。そのため、どのような変更が加えられたとしても、処理が途中で中断することはない。
【００３７】
このような処理は、従来人間が行っていた論理思考が、構造化データ処理手段３において実行されることを意味する。例えば、他の部署に処理を依頼する場合、担当者が不在であれば上司に依頼するとか、業務プロセスが変更されたために旧プロセスから後続作業を類推するといった処理が構造化データ処理手段３によって行われる。
【００３８】
また、本発明では、構造化データやその構造定義、及び構造化データに対する処理記述を基本システム（構造化データ処理手段３の行う処理内容）とは別に保持し、いつでも自由に変更できるように構成されているため、実際にシステムを運用しながらメンテナンスを行ったり、業務内容の変更に応じて適宜、振舞い（ノードに関連づけられた処理記述の内容）を変更することができる。例えば、業務の一部分から支援を開始し、段階的に全般を支援するように、支援範囲を拡大していくことができる。
【００３９】
さらに、データがツリー構造で表されているため、大まかなツリーで支援を開始し、その後ツリー構造の末端ノードを細分化し、詳細を徐々に付け加えていくことで、段階的にモデル化を行うことが可能となる。
【００４０】
また、本発明では、構造化されたデータがノード毎に処理記述と対応付けられているため、各ノードはそのノードに必要な処理のみを記述でき、振舞いの変更や不具合の修正個所を容易に特定することができる。
【００４１】
以下に、本発明の構造化データ管理システムを用いて業務支援を行う場合を例にとり、本発明の実施の形態を具体的に説明する。
図４は、業務支援システムの構成図である。この業務支援システムは、メッセージ転送系としてメッセージ処理部１０とタイマイベント処理部１１とがある。業務支援処理系として処理エンジン２０、構造化データ管理部２１、及びスクリプトインタプリタ２２がある。クライアント環境としてクライアント６１および編集ツール６２等の各種ソフトウェアツールがある。
【００４２】
システムを動作させるのに必要な記述には、業務プロセスモデル３０に関する記述、組織モデル４０に関する記述、文書体系モデル５０に関する記述、および処理エンジン２０を動作させるための管理制御用スクリプト７３が用意されている。これらは、ハードディスクなどの記録媒体に格納されており、処理エンジン２０により処理される際には、主記憶装置（半導体メモリ）にロードされる。
【００４３】
ここで、業務プロセスモデル３０に関する記述、組織モデル４０に関する記述、及び文書体系モデル５０に関する記述のそれぞれを管理オブジェクトと呼ぶことにする。各管理オブジェクトは、同様の記述仕様により構成されており、原理構成図（図１）における構造化データの記述および処理記述の組に対応している。管理オブジェクトは、データ構造を定義した文書型定義３１，４１，５１、文書型定義に従って作成されたインスタンス３２，４２，５２及び、文書型定義の要素、若しくは構造化データのノードに対応する処理記述が記載されたスクリプト３３，４３，５３からなる。
【００４４】
文書型定義３１，４１，５１及びインスタンス３２，４２，５２は、構造化電子文書の世界標準記述仕様であるＳＧＭＬ(Standard Generalized Markup Language)により記述するものとし、処理記述は、日本語表現の言語仕様をもつＭＩＰＳ(Micro Post Script) により記述するものとしている。ＳＧＭＬとＭＩＰＳという２つの言語仕様を用いるのは、データと処理を明確に分離する手段として有効なためである。また、ＳＧＭＬは文書処理に適しており、文書型定義（ＤＴＤ：Document Type Definition）と呼ばれるデータモデル記述が構造を自在かつ容易に表現できる。さらに、文書そのものを原理構成図（図１）の構造化データの１つとして取りあげることでＳＧＭＬ化された文書との整合性がよい。ＭＩＰＳは、処理を日本語で記述できるため、可読性がよい。
【００４５】
なお、本実施の形態ではＳＧＭＬを用いたが、同じＤＴＤを定義できるＸＭＬでも構わない。また、スクリプトは、インタプリタ言語であればＭＩＰＳ以外の言語を用いてもよい。
【００４６】
ところで、メッセージには以下のものがある。
（１）ユーザによるクライアント６１へのキーボード／マウス入力に応じて、クライアント６１により処理エンジン２０に対して送られるもの。
（２）他の系の処理エンジンから電子メールにより送られるもの。
（３）設定された時刻になると、タイマイベント処理部１１より送られるもの。（４）管理オブジェクトのスクリプトから他の管理オブジェクトのスクリプトを呼び出すために送られるもの。
【００４７】
ここで、ユーザによるクライアント６１へのキーボード／マウス入力に応じたメッセージでは、クライアント６１上のカーソル（あるいはマウスカーソル）の位置情報を元に、メッセージの宛先となるノードを特定する。
【００４８】
メッセージ転送系は、イベントを転送するための仕組みであり、メッセージ処理部１０を中心に構成されている。ここでは、メッセージ転送に電子メールシステムを用いるものとし、メッセージ処理部１０は、ＳＭＴＰサーバおよびＰＯＰサーバの機能を有している。メッセージ処理部１０は、処理エンジン２０との間で電子メールによってメッセージ７２をやりとりする。処理すべきメッセージ７２は、メッセージキュー７１に蓄えられており、順次処理される。なお、図に示したメッセージ処理部１０の機能は、遠隔地のサーバ間で業務アクティビティにまたがる通信を実現するために、既存のインフラを利用するもので、業務支援システムに必要なイベント情報を転送できる仕組みなら別の手段を用いてもよい。
【００４９】
メッセージキュー７１は、イベントとしてのメッセージを一時的に蓄えるためのはたらきを持つものと、イベントをロギングするためのはたらきを持つものがある。前者は、個人別や役割に応じたグループ別に仕分けされており、個人やグループのイベント処理状況を把握できる。後者は、システムの状態を把握あるいは管理するための情報として活用される。
【００５０】
タイマイベント処理部１１は、主に時刻指定のイベントを処理エンジン２０からの依頼を受けて発生させるものである。
業務支援処理系は、本実施形態の基幹部分である。
【００５１】
処理エンジン２０は、管理オブジェクトそれぞれの定義に基づいて動作実行するもので、業務支援に直接関係するデータや処理を一切内在しない。処理エンジン２０の処理は、メッセージ処理部１０若しくはクライアント６１からのメッセージ７２，７５の入力、若しくは、タイマイベント処理部１１からのイベントの入力により開始される。処理の内容によっては、ＨＴＭＬ(Hyper Text Markup language)で記述されたワークリスト７４がクライアント６１へ送られる。この処理エンジン２０は、ＷＷＷ(World Wide Web)サーバ内に構築される。このとき、クライアント６１とサーバが同一マシン上にあっても構わない。
【００５２】
構造化データ管理部２１は、処理エンジン２０の外部の実体である管理オブジェクトの構造化データに関する定義、すなわちＳＧＭＬ文書を読み込む受け皿で、スクリプトインタプリタ２２からのノード問い合わせに応じるサービスをし、繁雑な構造管理を提供するものである。
【００５３】
スクリプトインタプリタ２２は、管理オブジェクトの処理に関する定義、すなわちＭＩＰＳ記述によるスクリプトを解釈し実行する。実行される機能には、例えば、データベースへのアクセス、他システムとの連携、構造化データ管理部２１に対してＳＧＭＬインスタンスの読み書きを指示するためのものがあり、オペレータと呼ばれる。なお、オペレータを組み合わせて別のオペレータを作成することも可能である。
【００５４】
管理制御用スクリプト７３には、以下のものがある。
第１に、処理エンジンの制御を行うものがある。例えば、管理オブジェクトのＳＧＭＬ文書を構造化データ管理部２１に読み込んだり、管理オブジェクトのスクリプトをスクリプトインタプリタ２２に引き渡したり、管理オブジェクトのスクリプトに関する著作物保護を行うものなどである。
【００５５】
第２に、業務支援システムの管理に関するメッセージを処理するものがある。例えば、メッセージ転送系で受けた状態問い合わせに代理応答したり、メッセージ転送系で受けた管理オブジェクトの差分データを差し替えたり、定期的なレポーティングをタイマイベント処理部１１と連動して自動実行するものなどである。なお自動配信は、ネットワークを介して接続された他のコンピュータに対しても行うことができる。
【００５６】
第３に、処理エンジン２０の処理履歴を記録するものがある。例えば、その処理履歴を集めて処理の分析をしたり、監査証跡として整理したり、システムデバッグしたりするためにアプリケーションに対して基データを提供するものなどである。
【００５７】
このような制御のためのスクリプトは、処理エンジン２０の処理機能として組み込まれていてもよい。
また、スクリプトのアクセス制御や機密保護／著作権保護のために管理オブジェクトのスクリプトの暗号化や電子署名添付を行い、管理制御用スクリプト７３により復号化や電子署名の検証を行うこともできる。処理記述自身の著作物保護及び機密保護を処理エンジンに組み込むことで、ソース改変による組織活動上の混乱を回避することができる。
【００５８】
クライアント環境は、利用者とのインタラクティブな処理を制御するものであり、クライアント６１がＧＵＩ部分としてはたらく。クライアント６１は、具体的にはＷＷＷブラウザの機能である。編集ツール６２等の各種ソフトウェアツールには、例えば、エディタやビューア、表計算ツールや図形編集ツール、他システムのクライアント機能などがある。クライアント６１は、ユーザや編集ツール６２からの入力に応じて、処理エンジン２０に対してメッセージを出力する。また、処理エンジン２０からワークリスト７４が送られてきたら、その内容を表示装置の画面に表示する。クライアント６１と編集ツール６２とは、ユーザの利用環境内に設置されたコンピュータ上に構築されている。
【００５９】
このようなシステム構成は、ＭＶＣ(Model View Controller) アーキテクチャに合致しており、管理オブジェクトがＭｏｄｅｌに、処理エンジン２０と管理制御用スクリプト７３がＣｏｎｔｒｏｌｌｅｒに、クライアント環境やメッセージ転送系がＶｉｅｗにそれぞれ対応している。
【００６０】
さらに別の見方として、処理エンジン２０を人、管理オブジェクトを人の知識、メールのメッセージを作業指示と見れば、このシステム構成は、従来現実に行われている人による組織活動上の処理の模倣である。このシステムでは、処理エンジン２０が、利用者のすべき業務処理の一部を代行する代理人として位置付けられることがわかる。
【００６１】
したがって、人間が持つ概念と同じ概念で電子データの全体構成や構造と振舞いを持つため、見通しがよく、頑健でメンテナビリティが向上し、かつ代理人に知識を与えればそれだけ利用者の負担が軽減されるため、業務支援を徐々に高めることが可能となる。
【００６２】
さらに、図４の業務支援処理系はそのままの形態で、クライアント環境のクライアント６１にユーザの代理を行わせ、メッセージ転送系のメッセージ処理部１０には電子メールを擬似的に送るように変更することで、本業務支援システムのシミュレーションを行うことが可能である。
【００６３】
また、別のシミュレーション方法として、各管理オブジェクトのスクリプトを擬似動作させるように変更することにより、各管理オブジェクトのＤＴＤとＳＧＭＬインスタンスを用いてシミュレーションすることも可能である。
【００６４】
このように、外部機能の影響を受ける処理をコンピュータ上で擬似動作させることで、構造化データに関連する処理のシミュレーションを行うことができる。これにより、実時間よりも短い時間で処理結果を得ることができる。
【００６５】
図５は、管理オブジェクトを補足説明する図である。管理オブジェクト３０は、構造定義３１すなわちＤＴＤと、インスタンス３２すなわちＳＧＭＬインスタンスと、スクリプト３３ａ，３３ｂすなわちＭＩＰＳの関係を示している。
【００６６】
スクリプト３３は、原理構成図（図１）の処理記述に対応するメソッド３３ｃ（オペレータと同義）の集まりであり、原理構成図のノードにそれぞれ関係付けられている。ただし、本実施の形態では、構造定義３１の要素とインスタンス３２の要素とにそれぞれ関係付けることができる。すなわち、構造定義３１の要素にはスクリプト３３ａが関係付けられ、インスタンス３２には、スクリプト３３ｂが関係付けられる。ここで、前者をモデルスペシフィックなメソッド、後者をインスタンススペシフィックなメソッドと呼ぶことにする。
【００６７】
このような関係にすることにより、全インスタンスの同一種類のノードに共通な処理をモデルスペシフィックなメソッドとして共通定義できる。一方、特定のインスタンスの特定のノードの処理をインスタンススペシフィックなメソッドとして固有定義することが可能となり、処理の意味を明確にし、影響範囲を特定することができる。また、モデルスペシフィックなメソッドだけを定義することでシステムのデフォルトの動作を与えることができる。
【００６８】
例えば、構造化データ「業務プロセス」に関係付けたモデルスペシフィックなメソッドにより、どのような部署においてもほぼ共通するような支援を用意しておくことができる。そして、各部署で、その部署特有の支援を行うようにしたい場合には、インスタンススペシフィックなメソッドを用意すればよい。
【００６９】
また、あるＤＴＤに従うＳＧＭＬインスタンスの著作権保護のために、モデルスペシフィックなメソッドとして、ＳＧＭＬインスタンスの要素の属性として電子署名を記入するというオペレータを用意し、そのオペレータと要素を結びつけることにより、それぞれの作成者の著作権を守ることが可能となる。ある特定のＳＧＭＬインスタンスのみの著作権を保護したい場合には、そのＳＧＭＬインスタンスにインスタンススペシフィックなメソッドとして関係付けることで実現できる。
【００７０】
さらに本実施の形態では、関係付けを関係記述３４，３４ａ，３４ｂとしてテーブル形式のデータで管理している。関係記述３４ａ，３４ｂには、構造定義の要素に関係するメソッドや、インスタンスのノードに関係するメソッドを特定するための情報が登録されている。
【００７１】
図６は、関係記述の内容を示す図である。スクリプトの処理を単純化するために、関係記述３４ａ，３４ｂは論理あて先、メッセージ名、メソッド名の各項目で構成される。これは、全てのノードをオブジェクトとみなして、処理の順序が構造を渡り歩く仕組みを、外部からのトリガー要因としてのメッセージの扱いと同様の仕組みで実現するためである。ここに、論理あて先とは、管理オブジェクト名と、構造化データ管理部２１にノードを指定するためのロケータ（例えばＸＰｏｉｎｔｅｒ）とを組にしたもので、ノードを特定するための記述である。メッセージ名は、メッセージの種類を識別するためのもので、その種類によって必要なパラメータは異なる。メソッド名は、スクリプト中の実行すべきメソッドを指すものである。メッセージ８０には、論理あて先、論理発信元、メッセージ名及びメッセージ依存パラメータの情報が含まれる。
【００７２】
なお、関係記述は構造定義やインスタンスに埋め込まれてもよく、その場合はテーブルを作る必要はない。
次に図７〜図１４までを参照しながら、図４に示した組織モデル４０、文書体系モデル５０、業務プロセスモデル３０の定義内容を具体的に説明する。
【００７３】
本実施の形態では、業務プロセスモデルにＩＤＥＦ(Integrated Computer-Aided Manufacturing Definition Method) ０と呼ばれるモデル化記法を用い、それをＳＧＭＬで記述することにする。
【００７４】
図７は、ＩＤＥＦ０による業務プロセスモデルの例を示す図である。凡例に示すように、１つのプロセスはアクティビティとしてボックスで表現され、そのボックス９１の左から入るアローが入力情報、上から入るアローが制御情報、下から入るアローがメカニズム情報、右から出るアローが出力情報を表す。この基本単位を階層化とともにつなぎ合わせ、プロセスのフローが表現できる。
この例では、業務プロセス１００の最上位階層に「設計管理」のアクティビティ１１０があり、第２階層に「図面の品質管理」のアクティビティ１１１、「作業のコスト管理」のアクティビティ１１２、及び「作業の日程管理」のアクティビティ１１３がある。第２階層の各アクティビティ１１１〜１１３にも、さらに下位の階層が存在する。
【００７５】
図８は、第２階層のアクティビティの内部構造を示す図である。「図面の品質管理」のアクティビティ１１１の下位階層には、「検図」のアクティビティ１１１ａと「規格検査」のアクティビティ１１１ｂとがある。「作業のコスト管理」のアクティビティ１１２の下位構造には、「設計方法の標準化・規格化」のアクティビティ１１２ａと「作業工程の標準化」のアクティビティ１１２ｂとがある。「作業の日程管理」のアクティビティ１１３の下位構造には、「日程計画の作成」のアクティビティ１１３ａと「進捗度管理」のアクティビティ１１３ｂとがある。このような具合にアクティビティが階層化されている。
【００７６】
図９は、業務プロセスモデルの構造定義の詳細を示す図である。ＤＴＤで記述された業務プロセスの構造定義３１を概念的に示すと、木構造で表すことができる。図中、上段にＤＴＤによる記述内容を示し、下段に木構造を示している。この場合、「業務プロセス」という抽象的な概念の要素が根ノードとして定義され、その下位に各要素がノードとして定義されている。構造定義３１ではＩＤＥＦ０の構造を定義しており、ＩＤＥＦ０でいうメカニズムをここでは「資源」に限定している。そして、ノード３１ａ〜３１ｅに関連づけてオペレータ３３ａａ〜３３ａｅが定義されている。
【００７７】
図１０は、「アクティビティ」のノード３１ａに関連づけられたオペレータ３３ａａと構造定義に対応して設けられた関係記述３４ａとを示す図ある。この例によると、「アクティビティ」に「作業終了」というメソッド（オペレータ）がモデルスペシフィックに関係付けられているため、例えば「設計管理」や「作業の日程管理」など全ての「アクティビティ」ノードに共通の処理がデフォルトの動作として定義されている。
【００７８】
図１１は、業務プロセスモデルのインスタンスの例を示す図である。この図は、設計管理のインスタンス３２ａを示している。このインスタンス３２ａは、ＳＧＭＬによって記述されているが、その内容は木構造で表すことができる。図中、上段にＳＧＭＬによる記載内容を示し、下段に木構造を示す。
【００７９】
以下同様に、組織図モデルの詳細定義例、文書体系モデルの詳細定義例を説明する。
図１２は、組織図モデルの構造定義を示す図である。図中、左側にＤＴＤによる記述内容を示し、右側に木構造を示す。この構造定義４１では、「部」のノードと「課」のノードとに共通のオペレータ４３ａが関係付けられている。
【００８０】
図１３は、組織図モデルの部と課との双方に関連づけられたオペレータ４３ａと構造定義４１に対応して設けられた関係記述４４ａとを示す図ある。図に示す関係記述４４ａのように、要素名「部」、「課」の双方にメッセージ名「作業通知」、オペレータ「作業通知」が設定されている。そのため、作業通知のオペレータ４３ａは、「部」の要素と「課」の要素との両方に関係付けられる。
【００８１】
図１４は、組織モデルのインスタンスの例を示す図である。この例では、設計事務所のインスタンス４２ａを示している。図中、上段がＳＧＭＬで記述されたインスタンスであり、下段はその木構造である。
【００８２】
図１５は、文書体系モデルの構造定義、オペレータ及び関係記述を示す図である。図に示すように、文書体系モデルの構造定義５１の関係記述５４ａとして、「規格標準文書」の要素には、「文書参照」のオペレータ５３ｂが関連づけられており、「文書体系」の要素には、「新規文書作成」のオペレータ５３ａが関連づけられている。
【００８３】
図１６は、文書体系モデルのインスタンスの例を示す図である。この例では、設計文書体系のインスタンス５２ａを示している。図中、左側がＳＧＭＬで記述されたインスタンスであり、右側はその木構造である。
【００８４】
次に、図４〜図１６を適宜参照しながら、実施の形態の動作を説明する。
図１７は、処理エンジンによるメッセージ処理フローを示す図である。これは、処理エンジンのスクリプトインタプリタが、管理・制御用スクリプトをローディングした状態で、ユーザ認証処理やタイマイベント処理など外部からのメッセージを受け取ることにより、どうメッセージを処理するかをフローで示したものである。以下、このフローの処理を、図４の構成を参照しながら説明する。
【００８５】
まず、メッセージの論理あて先に記述された管理オブジェクトのＤＴＤとインスタンスを構造化データ管理部２１が読み込む（Ｓ１１）。次に、構造化データ管理部２１が、インスタンスと結びついた関係記述を読み込み、メッセージの論理あて先とメッセージ名から、対応するスクリプトのオペレータ名を調べる（Ｓ１２）。ここで、エントリがあればステップＳ１４に進み、エントリがなければステップＳ１３に進む。エントリがなければ、構造化データ管理部２１は、ＤＴＤと結びついた関係記述を読み込み、メッセージの論理あて先とメッセージ名から、対応するスクリプトのオペレータ名を調べる（Ｓ１３）。スクリプトインタプリタ２２は、ステップＳ１２かステップＳ１３の処理で調べたスクリプトのオペレータを読み込み、実行する（Ｓ１４）。オペレータを実行中に、他の要素に対するメッセージがあれば、そのメッセージを処理するための別のプロセスが生成され、同様の処理が行われる。これら一連の処理をメッセージがなくなるまで繰り返すことになる。
【００８６】
このような処理を行うと、このフローではインスタンススペシフィックなメソッドを優先し、存在しなければモデルスペシフィックなメソッドを実行することになる。そのため、デフォルトのノードの振舞いをモデルスペシフィックとして準備することが可能となっている。なお、このフローは単なる動作原理を示すものであり、実際には性能や安全性を考慮したものとなる。
【００８７】
図１８は、利用者と処理エンジンの間の対話処理のフローを示す図である。これは最も容易に実現できる業務支援例であり、モデルスペシフィックなメソッドによるデフォルトの動作を利用している。なお、この処理は、クライアント６１が、処理エンジン２０との間で情報交換を行いながら実行する処理である。以下この処理を、図４を参照しながら説明する。
【００８８】
まず、ユーザは、クライアント６１（ＷＷＷブラウザ）を起動し、処理エンジン２０（ＷＷＷサーバ）に対してログインする（Ｓ２１）。ログインには、ユーザ名とパスワードの入力が必要である。ログインが成功すると、処理エンジン２０からクライアント６１へワークリスト７４と呼ばれるユーザに関係するアクティビティ（ここではワークアイテム）の一覧が返される。
【００８９】
クライアント６１は、処理エンジン２０から受け取ったワークリスト７４を、ユーザの使用しているコンピュータの画面に表示する（Ｓ２２）。ここでは電子メールで運ばれたメッセージは全て画面上で確認できるよう、アクティビティに必要な情報が全て揃っていないものも表示する。ユーザは、表示されたワークアイテムから必要な作業を選択する。
【００９０】
ユーザがワークアイテムを選択すれば、以後、デフォルトの業務支援スクリプトが実行される。一方、ユーザが終了すべき旨の入力を行えば、処理が終了する。なお、デフォルトの業務支援スクリプトは、モデルスペシフィックとして準備しておく。
【００９１】
ユーザが任意のワークアイテムを選択すると、そのワークアイテムに該当するアクティビティに「作業内容表示」のメッセージ７５が送られる。このメッセージ７５に応じて、処理エンジン２０において作業内容表示オペレータが実行される。その結果、クライアント６１へ作業内容の情報が送り返される。クライアント６１は、送り返された作業内容の情報を画面に表示する（Ｓ２３）。ユーザは、表示された画面の中から、操作する文書を選択するか、若しくは他の通知を選択する。
【００９２】
ユーザが文書を選択すると、クライアント６１は、選択内容に該当するノードに、「文書内容表示」のような所定のメッセージを送る。そのメッセージに応じて、処理エンジン２０が該当するオペレータを実行する。実行結果が、クライアント６１に返されると、クライアント６１は、選択された文書の処理に必要な編集ツール６２を起動する（Ｓ２４）。編集ツール６２は、別のプロセスとして実行される。編集ツール６２としては、ビューア６２ａやエディタ６２ｂなどがある。
【００９３】
ユーザは、編集ツール６２での作業を終えると、ステップＳ２３におけるアクティビティ表示画面に戻り、作業が終了した旨の通知の指令する。
すると、クライアント６１は、出力文書完成／未完成通知の選択画面を表示する（Ｓ２５）。ここで、ユーザが完成を選択すれば、次のアクティビティに完了が通知される。一方、未完成を選択した場合には、原則として通知は行われないが、予めスクリプトに記述された一定の条件を満たしていれば、次のアクティビティに通知することも可能である。この処理が終了したらステップＳ２２に戻り、再度ワークアイテムが表示される。以後、ワークアイテムの表示画面で、終了すべき旨の指令が入力されるまで、ステップＳ２２〜Ｓ２５の処理が繰り返される。  以下に、利用者と処理エンジンの間の対話処理の詳細を、クライアント６１が表示する画面の例を示しながら説明する。
【００９４】
図１９は、対話処理のために表示される画面の例を示す図である。まず、ログインの処理（図１８のステップＳ２１）では、クライアント６１の画面にログイン画面２１０が表示される。ログイン画面には、ユーザ名入力部２１１とパスワード入力部２１２とがある。ユーザは、ユーザ名入力部２１１とパスワード入力部２１２とに、自己のユーザ名とパスワードとを入力する。そして、送信ボタン２１３をマウスでクリック（目的の位置にマウスポインタを移動し、マウスのボタンを押す動作）する。これにより、クライアント６１から処理エンジン２０へユーザ名とパスワードとが送られ、処理エンジン２０おいて、ユーザ認証が行われる。なお、ログイン画面２１０には、クリアボタン２１４が設けられており、このクリアボタン２１４をマウスでクリックすると、ユーザ名入力部２１１とパスワード入力部２１２とに入力された文字列が削除される。
【００９５】
処理エンジン２０でユーザ認証が正しく行われると、ワークリスト７４が返され、その内容が作業一覧画面２２０としてクライアント６１によって表示される。図に示す作業一覧画面２２０では、業務プロセスの「設計管理」のアクティビティ１１１（図７に示す）の中の、「図面の品質管理」のアクティビティ１１０（図７に示す）の中の、「検図」のアクティビティ１１１ａ（図８に示す）などの作業２２１，２２２が表示されている。表示されている作業名２２１，２２２の左側には、作業に必要な文書が揃っているか否かが、記号によって示されている。「○」は作業に必要な文書が揃っていることを示し、「△」は作業に必要な文書が揃っていないことを示している。
【００９６】
画面の下部には、「終了」の文字２２３が表示されており、この「終了」の文字２２３を選択することで、作業を終了することができる。なお、文字の選択とは、目的の文字をマウスでクリックすることである（他の画面においても同様）。
【００９７】
ここで、ユーザが「検図」の作業２２１を選択したとすると、クライアント６１から業務プロセスの「検図」のアクティビティ１１１ａ（図８に示す）で表されるノードに「作業内容表示」メッセージが送られる。「検図」ノードにはインスタンススペシフィックなメソッドがないとして、アクティビティ共通のメソッドである「作業内容表示」オペレータ（図１０の関係記述３４ａ参照）が実行され、利用者に作業内容が表示される（図１８のステップＳ２３）。
【００９８】
作業内容表示画面２３０では、入力文書名表示部２３１、制御文書名表示部２３２、及び出力文書名表示部２３３に、それぞれ、入力文書、制御文書、出力文書の名前が表示されている。各表示部には、その文書が作成済か否かが記号によって表示されている。記号が「○」であれば作成済であることを示し、「×」であれば未作成であることを示す。
【００９９】
作業内容表示画面２３０下部には、「別の人に委任」の文字２３４と、「作業終了／中断」の文字２３５が表示されている。「別の人に委任」の文字２３４を選択すれば、作業を別の人へ委任するための処理が行われる。「作業終了／中断」の文字２３５を選択すれば、図１８のステップＳ２５へ処理が移行する。
【０１００】
作業内容表示画面２３０において、ユーザが入力文書名表示部２３１の「図面」を選択したとすると、クライアント６１から業務プロセスの「検図」の「入力名」ノードに「文書内容表示」メッセージが送られる。すると、処理エンジン２０内のスクリプトインタプリタ２２において、入力名共通のメソッド「文書内容表示」オペレータが実行されるとともに、ユーザの使用している環境でビューアが起動され、当該「図面」の内容が表示される。なお、アクティビティの遂行には必ず出力を伴うので、出力文書を作成しないとアクティビティは完結しない。
【０１０１】
ユーザは作業を終えた際、作業内容表示画面２３０で、「作業終了/ 中断」の文字を選択する。すると、クライアント６１により、出力文書完成／未完成通知画面２４０が表示される。
【０１０２】
出力文書完成／未完成通知画面２４０には、完成と未完成とのチェックボックス２４１，２４２があり、ユーザは何れかのチェックボックスを指定する。完成のチェックボックス２４１を指定した場合には、検図結果のデータの格納先とファイル名を、テキストボックス２４３内に入力する。テキストボックス２４３の右側には、参照ボタン２４４が設けられている。参照ボタン２４４を押せば、クライアント６１が実行されているコンピュータのディレクトリ構造及び、ディレクトリ内のファイルのリストが画面に表示され、ユーザは画面内から目的のファイルを選択することができる。選択したファイルの格納場所と、ファイル名とは、自動的にテキストボックス２４３内に設定される。画面下部には、送信ボタン２４５が設けられており、この送信ボタン２４５を選択すると、完成若しくは未完成の通知が、クライアント６１から処理エンジン２０へ送られる。
【０１０３】
次に、「検図」のアクティビティ１１１ａ（図８に示す）が行われた後、「規格検査」のアクティビティ１１１ｂ（図８に示す）が行われるまでの一巡の動作を、関連するオペレータの起動順序に沿って説明する。
【０１０４】
図２０は、設計管理部の担当者がログインした時の処理を示すフローチャートである。以下の処理をステップ番号に沿って説明する。なお、凡例に示すように、図中実線の矢印は、スクリプトから送られるメッセージに基づく処理の遷移状況を示し、破線の矢印は、電子メール経由で送られるメッセージに基づく処理の遷移状況を示し、点線の矢印は、ユーザ入力によるメッセージに基づく処理の遷移状況を示す。また、図２０〜図２２の処理は、すべて処理エンジン２０によって実行される。
【０１０５】
以下に示すのは、「品質保証課」の課長が自らの判断で担当者に作業委任して、担当者がアクティビティ「規格検査」を行った場合の例である。
［Ｓ３１］業務プロセスの「アクティビティ」ノードの作業終了オペレータを実行する。作業終了オペレータを実行することにより、出力ノードへ完成通知メッセージが送られる。
［Ｓ３２］業務プロセスの「出力」ノードの完成通知オペレータを実行する。完成通知オペレータを実行することにより、出力名「検図結果」と同じ名前を持つ入力名ノードへ、完成通知受信メッセージが送られる。
［Ｓ３３］業務プロセスの「入力名」ノードの完成通知受信オペレータを実行する。完成通知受信オペレータを実行することにより、同じアクティビティの下にある資源名「品質保証課」と同じ名前を持つ組織図の課ノードへ、作業通知メッセージが送られる。
［Ｓ３４］組織の「課」ノードの作業通知オペレータを実行する。作業通知オペレータを実行することにより、課長「鈴木」宛の電子メール経由で、「アクティビティ」ノードへ開始条件メッセージが送られる。
【０１０６】
図２１は、品質保証課の課長がログインした時の処理を示すフローチャートである。
［Ｓ４１］ワークアイテム（管理・制御用スクリプトを実行する際の管理オブジェクト名）の「ワークアイテム」ノードのワークアイテム登録オペレータを実行する。登録オペレータを実行することにより、電子メールの受け取り、アクティビティノードの作成が行われ、その後、業務プロセスのアクティビティノードへ開始条件メッセージが送られる。
［Ｓ４２］業務プロセスの「アクティビティ」ノードの開始条件オペレータを実行する。開始条件オペレータを実行することにより、アクティビティ実行に必要な文書が揃っているかが判定され、ワークアイテムのアクティビティノードへ準備完了メッセージが送られる。
［Ｓ４３］ワークアイテムの「アクティビティ」ノードの準備完了オペレータを実行する。この準備完了オペレータを実行することにより、アクティビティノードの属性や状態の書き換えが行われ、「ワークアイテム」ノードへワークアイテムリスト表示メッセージが送られる。
［Ｓ４４］ワークアイテムの「ワークアイテム」ノードのワークアイテムリスト表示オペレータを実行する。このワークアイテムリスト表示オペレータを実行することにより、クライアントにワークアイテムのリストが表示される。
［Ｓ４５］業務プロセスの「アクティビティ」ノードの作業内容表示オペレータを実行する。この作業内容表示オペレータを実行することにより、クライアントにアクティビティの詳細が表示される。
［Ｓ４６］業務プロセスの「アクティビティ」ノードの作業委任オペレータを実行する。この作業委任オペレータを実行することにより、担当者の選択の受け付けが行われ、選択されると、電子メール経由で「アクティビティ」ノードへ開始条件メッセージが送られる。
【０１０７】
図２２は、品質保証課の担当者がログインした時の処理を示すフローチャートである。
［Ｓ５１］ワークアイテムの「ワークアイテム」ノードのワークアイテム登録オペレータを実行する。このワークアイテム登録オペレータを実行することにより、電子メールの受け取り、及びアクティビティノードの作成が行われ、業務プロセスの「アクティビティ」ノードへ開始条件メッセージが送られる。
［Ｓ５２］業務プロセスの「アクティビティ」ノードの開始条件オペレータを実行する。この開始条件オペレータを実行することにより、アクティビティ実行に必要な文書「品質基準」、「製品コスト基準」、「検図結果」が揃っているかどうかが判定され、ワークアイテムの「アクティビティ」ノードへ準備完了メッセージが送られる。
［Ｓ５３］ワークアイテムの「アクティビティ」ノードの準備完了オペレータを実行する。この準備完了オペレータを実行することにより、アクティビティノードの属性、状態の書き換えが行われ、「ワークアイテム」ノードへワークアイテムリスト表示メッセージが送られる。
［Ｓ５４］ワークアイテムの「ワークアイテム」ノードのワークアイテムリスト表示オペレータを実行する。このワークアイテムリスト表示オペレータを実行することにより、クライアントにワークアイテムのリストが表示される。
［Ｓ５５］業務プロセスの「アクティビティ」ノードの作業内容表示オペレータを実行する。作業内容表示オペレータを実行することにより、クライアントにアクティビティの詳細が表示される。
［Ｓ５６］業務プロセスの「アクティビティ. 入力. 入力名」ノードの文書内容表示オペレータを実行する。この文書内容表示オペレータを実行することにより、文書「検図結果」が表示される。
［Ｓ５７］業務プロセスの「アクティビティ. 制御. 制御名」ノードの文書内容表示オペレータを実行する。この文書内容表示オペレータを実行することにより、文書「品質基準」、「製品コスト基準」が表示される。
［Ｓ５８］業務プロセスの「アクティビティ. 出力. 出力名」ノードの文書作成オペレータを実行する。この文書作成オペレータを実行することにより、エディタで文書「設計規格」、「最終図面」の作成が行えるようになる。
［Ｓ５９］業務プロセスの「アクティビティ」ノードの作業終了オペレータを実行する。この作業終了オペレータを実行することにより、出力タグへ完成通知メッセージが送られる。
【０１０８】
図２０〜図２２の処理により、「検図」の「作業終了」オペレータが起動されてから、業務プロセスと組織の木構造をたどりながらメッセージが伝えられているのがわかる。
【０１０９】
次に、構造変化時の動作について説明する。
現実の組織活動では、組織構造、業務プロセス構造、文書体系や文書体系に組み込まれているルール構造や仕様書などの文書そのものの構造等は変化し続けている。
【０１１０】
図２３は、構造変化イメージを示す図である。この図では、図９から図１６に示した構造から出発して、組織変更、業務プロセスの詳細化、文書体系定義と文書体系の変更、業務プロセスが別の業務プロセスに枝別れするといった、変化の様子を時間軸にそって例示している。図中、丸の図形で示しているがスクリプトであり、四角の図形で示しているのが構造定義であり、三角の図形で示しているのがインスタンスである。また、業務プロセスに関するデータを記号「Ｐ」で表し、組織図に関するデータを記号「Ｏ」で表し、文書体系に関するデータを記号「Ｄ」で表している。記号の右肩には、同じ管理オブジェクトから派生した管理オブジェクトの識別記号が示されている。また、記号の右下には、そのデータの版数が示されている。
【０１１１】
図の例では、最初に、「業務プロセス−Ａ」の管理オブジェクト３１１、「組織図−Ａ」の管理オブジェクト３１４、「文書体系−Ａ」の管理オブジェクト３３６が設けられている。そして、実際に行われている特定の業務に応じて業務プロセスを詳細化し、管理オブジェクト３１１のスクリプトとインスタンスが変更され、新たな管理オブジェクト３１２が生成される。また、汎用的な業務に対して、引き続き管理オブジェクト３１１を使用するために、その複製を作成することで「業務プロセス−Ｂ」の管理オブジェクト３１３が生成される。
【０１１２】
同様に、社内の組織変更に伴って、「組織図−Ａ」の管理オブジェクト３１４のスクリプトとインスタンスが変更され、新たな管理オブジェクト３１５が生成される。さらに、「文書体系−Ａ」の管理オブジェクト３１６のスクリプト、構造定義、及びインスタンスが変更され、新たな管理オブジェクト３１７が生成される。
【０１１３】
以下、構造変化の例を示す。
図２４は、組織図の変更例を示す図である。この組織図の変更例では、変更前のインスタンス３３１で「品質保証課」であったノードが、変更後のインスタンス３３２では「品質保証部」になり、その配下に「第一品質保証課」と「第二品質保証課」が新設されている。このような場合、事前に「品質保証課」が現行の業務プロセスで割り当てられているアクティビティを業務プロセス構造から検索し、変更の影響を知ることや、旧ノードとなる「品質保証課」に固有のメソッドで例えば全てのメッセージを新ノードに転送しておくようにすれば、旧ノードを誤って参照されたり、既に旧ノードを論理あて先として発行されているメッセージにも影響することなしに処理が継続される。
【０１１４】
また、事後に手がかりが旧ノード「品質保証課」しかない処理をする際、その下位ノード例えば課長ノード「鈴木」をもとに新ノードを検索し、問い合わせることが可能となる。
【０１１５】
また、新設されたノードに対しては、事前に一度にメソッドを用意しなくても徐々に追加していくことが可能で、急激な環境の変化を緩和することができる。このように、組織変更に際してどこにどういう手段を講じておけばよいかが明確となり、変更は組織モデルと関連した少しの業務プロセスモデルと文書体系モデルを変更するだけでよく、この変更作業を支援するツールを作成してもよい。
【０１１６】
業務プロセスを詳細化する場合、図１１のＳＧＭＬインスタンスを変更することになる。
図２５は、業務プロセスの変更例を示す図である。この例では、変更前のインスタンス３４１において「作業の日程管理」という大まかに定義していたアクティビティを、変更後のインスタンス３４２では、「日程計画の作成」と「進捗度管理」の２つのアクティビティに分解している。このような場合、デフォルトのメソッドで構わないのなら、インスタンスの変更のみで、変更後の処理が反映される。もちろん、特有のメソッドを定義してもよい。また、既に旧ノードを論理あて先として発行されているメッセージも、上位ノード「作業の日程管理」に、下位ノードへの転送のための処理を記述しておけば移行できる。
【０１１７】
もし、論理あて先が消滅している場合、旧業務プロセスモデルを参照して、担当部門を調べて転送したり、手がかりが全くない場合には、発信元に返送するといったサービスを定義しておくことも可能である。
【０１１８】
このように、業務プロセスを大雑把に定義しておいて、段階的に詳細化することができ、また変更が容易で業務支援に直接反映されるため、変化に追随することができる。
【０１１９】
文書体系定義を変更する場合、文書体系にも影響するため、図１５のＤＴＤと図１６のＳＧＭＬインスタンスとを変更する必要がある。
図２６は、文書体系の構造定義の変更例を示す図である。この例では、変更前の構造定義３５１で「規格標準文書」のみから構成された文書体系定義を整理し、変更後の構造定義３５２において「規格標準」と「計画」に分類し、さらに内容に応じたデフォルトのメソッドを定義するため、「設計標準」や「設計計画」といった詳細分類を行っている。
【０１２０】
図２７は、文書体系のインスタンスの変更例を示す図である。これは、図２６の構造定義の変更に伴ってインスタンスを変更した場合の例である。この例では、変更前のインスタンス３６１の木構造が変化し、変更後のインスタンス３６２では、新たに「設計計画概要書」や下位に「機構設計計画書」といったノードが追加されている。このような場合、モデルスペシフィックなメソッドを準備しなければ、よいサービスを提供できないが、ほとんどの場合、文書体系という概念自体は同様に残っているので、以前のメソッドを流用することが可能である。
【０１２１】
ところでこのような構造定義の変化に対しても、旧文書体系モデルと新文書体系モデルは同一の記述仕様のため、処理エンジンは同じもので実行可能である。業務プロセスが別の業務プロセスに枝別れ、例えば分社化や新規プロジェクトの発生や部分プロセスを切り出すような場合、業務プロセスモデルを複製して、目的に合った定義に修正すればよい。
【０１２２】
図２８は、業務プロセスモデルを再利用する場合の例を示す第１の図である。これは、図２５の業務プロセスのインスタンス変更を行った場合を想定している。ここでは、業務プロセスの構造定義３７１に対応して設けられたスクリプト３８２では、関係記述３８１によって、「アクティビティ」のノードに対してモデルスペシフィックなメソッドが定義されている。このような構造定義３７１の複製を作成することで新たな構造定義３７２を生成する。
【０１２３】
図２９は、業務プロセスモデルを再利用する場合の例を示す第２の図である。構造定義の複製を作ったら、インスタンス３９１の複製も作成し、新たなインスタンス３９２とする。そして、特定のアクティビティ「進捗度管理」に関係記述４０１によって関連付けられたインスタンススペシフィックなメソッド「作業支援」オペレータを、スクリプト４０２内に追加定義している。このオペレータは、元の業務プロセスモデルから引き継いでいるアクティビティに関連付けられたモデルスペシフィックなメソッド「作業内容表示」オペレータを利用した上で、進捗遅れのアクティビティを求め、一覧にしてクライアントに表示するという固有のサービスを定義している。このオペレータが起動されるのは、関係記述にあるように「進捗度管理」という名前をもつアクティビティ宛に「作業内容表示」というメッセージが届いたときである。
【０１２４】
このように、他のアクティビティに影響なしに固有のサービスを提供することもでき、元の業務プロセスモデルに類似点が多い場合には、その定義資産をほとんど全て活用することが可能となる。さらに、完全に管理オブジェクトが別になっているため、元の業務プロセスモデルと新しい業務プロセスモデルは全く干渉しない上、同じ処理エンジンで実行可能である。
【０１２５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、データ管理システムが有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述しておく。そして、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場を流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory) やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【０１２６】
【発明の効果】
以上説明したように本発明の構造化データ管理システムでは、木構造で表せる構造化データの各ノードに処理記述を関係付けておき、各ノード毎の処理記述を実行することで構造化データに関係する処理を実行するため、構造化データの内容が変更されても、木構造を解析することで処理対象のノードを特定でき、構造の変化に容易に対応することができる。
【０１２７】
また、本発明の構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体では、記録されたプログラムをコンピュータで実行させれば、構造化データの内容の変更に柔軟に対応した処理がコンピュータによって実現される。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】業務活動におけるデータ群の関係付けを示す模式図である。
【図３】構造化データの変更への対応方法を示す図である。
【図４】業務支援システムの構成図である。
【図５】管理オブジェクトを補足説明する図である。
【図６】関係記述の内容を示す図である。
【図７】ＩＤＥＦ０による業務プロセスモデルの例を示す図である。
【図８】第２階層のアクティビティの内部構造を示す図である。
【図９】業務プロセスモデルの構造定義の詳細を示す図である。
【図１０】「アクティビティ」のノードに関連づけられたオペレータと構造定義に対応して設けられた関係記述とを示す図である。
【図１１】業務プロセスモデルのインスタンスの例を示す図である。
【図１２】組織図モデルの構造定義を示す図である。
【図１３】組織図モデルの部と課との双方に関連づけられたオペレータと構造定義に対応して設けられた関係記述とを示す図である。
【図１４】組織図モデルのインスタンスの例を示す図である。
【図１５】文書体系モデルの構造定義、オペレータ及び関係記述を示す図である。
【図１６】文書体系モデルのインスタンスの例を示す図である。
【図１７】処理エンジンによるメッセージ処理フローを示す図である。
【図１８】利用者と処理エンジンの間の対話処理のフローを示す図である。
【図１９】対話処理のために表示される画面の例を示す図である。
【図２０】設計管理部の担当者がログインした時の処理を示すフローチャートである。
【図２１】品質保証課の課長がログインした時の処理を示すフローチャートである。
【図２２】品質保証課の担当者がログインした時の処理を示すフローチャートである。
【図２３】構造変化イメージを示す図である。
【図２４】組織図の変更例を示す図である。
【図２５】業務プロセスの変更例を示す図である。
【図２６】文書体系の構造定義の変更例を示す図である。
【図２７】文書体系のインスタンスの変更例を示す図である。
【図２８】業務プロセスモデルを再利用する場合の例を示す第１の図である。
【図２９】業務プロセスモデルを再利用する場合の例を示す第２の図である。
【符号の説明】
１  入出力手段
２  構造化データ保持手段
３  構造化データ処理手段
３ａ，３ｂ  構造化データ
【図１】
0003912895.tif 000002
【図２】
0003912895.tif 000003
【図３】
0003912895.tif 000004
【図４】
0003912895.tif 000005
【図５】
0003912895.tif 000006
【図６】
0003912895.tif 000007
【図７】
0003912895.tif 000008
【図８】
0003912895.tif 000009
【図９】
0003912895.tif 000010
【図１０】
0003912895.tif 000011
【図１１】
0003912895.tif 000012
【図１２】
0003912895.tif 000013
【図１３】
0003912895.tif 000014
【図１４】
0003912895.tif 000015
【図１５】
0003912895.tif 000016
【図１６】
0003912895.tif 000017
【図１７】
0003912895.tif 000018
【図１８】
0003912895.tif 000019
【図１９】
0003912895.tif 000020
【図２０】
0003912895.tif 000021
【図２１】
0003912895.tif 000022
【図２２】
0003912895.tif 000023
【図２３】
0003912895.tif 000024
【図２４】
0003912895.tif 000025
【図２５】
0003912895.tif 000026
【図２６】
0003912895.tif 000027
【図２７】
0003912895.tif 000028
【図２８】
0003912895.tif 000029
【図２９】
0003912895.tif 000030