(57)【要約】【課題】  フロー処理記述文書に予め記述されていない他のフロー処理に切り替えて実行可能とする。【解決手段】  フロー処理実行装置２１０は、フロー処理サービス利用者２２０から、第１のフロー処理における分岐点位置の指定を受け付け、また、第１のフロー処理の分岐点位置に第２のフロー処理を結合する旨の要求を受け付ける。そして、フロー処理実行装置２１０は、第１のフロー処理の分岐点位置に第２のフロー処理を結合してフロー処理の再構築を行う。【選択図】  図１
2008305205.tif 000002
【特許請求の範囲】
【請求項１】
第１のフロー処理における分岐点位置の指定を受け付ける第１の受付手段と、
前記第１のフロー処理の前記分岐点位置に第２のフロー処理を結合させる要求を受け付ける第２の受付手段と、
前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合してフロー処理の再構築を行う再構築手段とを有することを特徴とするフロー処理構築装置。
【請求項２】
前記第２の受付手段は、前記第２のフロー処理として前記分岐点位置に結合させるフロー処理の指定を受け付けることを特徴とする請求項１に記載のフロー処理構築装置。
【請求項３】
予め前記分岐点位置を示す情報を含まない前記第１のフロー処理のフロー処理記述文書を用いて、前記分岐点位置を含む前記第１のフロー処理のフロー定義実体を生成する生成手段を有することを特徴とする請求項１又は２に記載のフロー処理構築装置。
【請求項４】
前記第１の受付手段は、前記第１のフロー処理の呼び出しメッセージに含まれる前記分岐点位置の指定を受け付けることを特徴とする請求項１乃至３の何れか１項に記載のフロー処理構築装置。
【請求項５】
前記第１のフロー処理が前記分岐点位置に至った場合に前記第１のフロー処理を一時停止する一時停止手段と、
前記第１のフロー処理が一時停止されている間に、前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合させるか否かを問い合わせる問合せ手段とを有することを特徴とする請求項１乃至４の何れか１項に記載のフロー処理構築装置。
【請求項６】
前記第２の受付手段によって受け付けられる要求は、前記第１のフロー処理で扱っているデータと前記第２のフロー処理で扱うデータとをマッピングするための情報を含むことを特徴とする請求項１乃至５の何れか１項に記載のフロー処理構築装置。
【請求項７】
前記第２のフローのフロー処理記述文書は、前記第２の受付手段により受け付けられる要求内に記述されることを特徴とする請求項１乃至６の何れか１項に記載のフロー処理構築装置。
【請求項８】
前記第２のフローのフロー処理記述文書は、前記第２の受付手段により受け付けされる要求内で指定され、前記再構築手段により取得されることを特徴とする請求項１乃至６の何れか１項に記載のフロー処理構築装置。
【請求項９】
フロー処理構築装置によるフロー処理構築方法であって、
第１のフロー処理における分岐点位置の指定を受け付ける第１の受付ステップと、
前記第１のフロー処理の前記分岐点位置に第２のフロー処理を結合させる要求を受け付ける第２の受付ステップと、
前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合してフロー処理の再構築を行う再構築ステップとを含むことを特徴とするフロー処理構築方法。
【請求項１０】
第１のフロー処理における分岐点位置の指定を受け付ける第１の受付ステップと、
前記第１のフロー処理の前記分岐点位置に第２のフロー処理を結合させる要求を受け付ける第２の受付ステップと、
前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合してフロー処理の再構築を行う再構築ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロー処理を動的に切り替えることが可能な技術に関するものである。
【背景技術】
【０００２】
業務や作業における一連の流れをワークフローという。また、ワークフローを逐次実行していく処理のことをフロー処理と呼ぶ。フロー処理は、コンピュータ及びコンピュータネットワークを用いて自動化され、情報や業務が円滑に流れるように業務支援を行ってきた。
【０００３】
例えば、企業内の特定部門及びメンバを巡回していた書類を電子化し、コンピュータネットワークを用いて情報を送受信することで、業務を効率化することが可能となる。また近年、フロー処理はコンピュータ及びコンピュータネットワークに加え、Ｗｅｂサービス技術も用いられるようになり、適用範囲を拡大している。
【０００４】
フロー処理では、情報がどのメンバに送信され処理されるのかを記述したフロー処理記述文書を事前に定義する必要がある。コンピュータ及びコンピュータネットワークを用いて自動化されたフロー処理では、フロー処理記述文書を解析可能なフロー処理実行装置に読み込ませることでフロー処理を実現している。
【０００５】
上述のフロー処理では、フロー処理記述文書を記述する言語として、ＢＰＥＬ４ＷＳ（Business Process Execution Language for Web Services）が広く用いられている。
【０００６】
ＢＰＥＬ４ＷＳは、拡張可能なマークアップ言語であるＸＭＬ（eXtensible Markup Language）によって記述されたフロー処理記述言語である。ＢＰＥＬ４ＷＳの仕様は、ＯＡＳＩＳ（Organization for the Advancement of Structured Information Standards）のＯＡＳＩＳ Ｗｅｂ Ｓｅｒｖｉｃｅｓ Ｂｕｓｉｎｅｓｓ Ｐｒｏｃｅｓｓ Ｅｘｅｃｕｔｉｏｎ Ｌａｎｇｕａｇｅ ＴＣで管理されている。
【０００７】
なお、ＢＰＥＬ４ＷＳでは、Ｗｅｂサービスを識別するインタフェースとして、ＷＳＤＬ（Web Services Description Language）を用いている。ＷＳＤＬは、Ｗｅｂサービスのインタフェースを記述するために用いる言語であり、仕様はｗｗｗコンソーシアム（Ｗ３Ｃ）によって公開されている。内容はｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｗｓｄｌにて参照可能である。
【０００８】
以降の説明において、フロー処理はコンピュータ、コンピュータネットワーク及びＷｅｂサービス技術を用いて自動化されたものとする。
【０００９】
フロー処理記述文書を用いてフロー処理を実行する場合、フロー処理実行装置は、フロー処理記述文書に記述されていない処理や、異なるフロー処理を結合させて一時的に実行することは不可能である。そのため、フロー処理記述文書に記述されていない処理や、異なるフロー処理を結合して実行したい場合、一時的であっても、フロー処理記述文書を記述しなおさなくてはならないという問題があった。また、様々な事態を想定してフロー処理記述文書に記述しようとした場合、条件判断を多用することとなり、フロー処理記述文書が複雑になってしまうという問題もあった。
【００１０】
上述した問題を解決するものとして、フロー処理の動的切り替え技術がある。フロー処理の動的切り替え技術が例えば特許文献１に開示されている。これは、フロー処理を予め意味的な処理の流れを定義した上位レベルでのフロー処理と、個々の処理の実現方法を定義した下位レベルでのフロー処理とに分割して定義している。そして、上位レベルのフロー処理が必要とする下位レベルのフロー処理を適宜呼び出して、全体のフロー処理を形成するというものである。
【００１１】
また、異なる例が特許文献２に開示されている。これは、フロー処理実行中に例外が発生した際に、実行中のフロー処理を定義したフロー処理記述文書内に該当する例外処理が記述されていない場合、フロー処理の動的切り替えを行うものである。具体的には、現在実行中のフロー処理実行装置で過去に実行された、異なるフロー処理の経験に基づき、実行すべき例外処理を推定し実行するというものである。
【００１２】
【特許文献１】特開２００４−３６１９９３号公報
【特許文献２】特開２００６−３０２０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、特許文献１に開示されるような従来方法では、動的に切り替えることを前提としたフロー処理記述文書が必要である。そのため、動的に切り替えることを前提としていない既存のフロー処理記述文書では、フロー処理の動的切り替えを利用できなかった。
【００１４】
また、特許文献２に開示されるような従来方法では、切り替え先のフロー処理を決定は、フロー処理実行装置が過去に実行したフロー処理の経験に基づいて自動的に行われる。そのため、利用者が意図したフロー処理へ切り替えることができなかった。
【００１５】
そこで、本発明の目的は、フロー処理記述文書に予め記述されていない他のフロー処理に切り替えて実行可能とすることにある。
【００１６】
また、本発明の他の目的は、利用者が意図した他のフロー処理に切り替えることを可能とすることにある。
【課題を解決するための手段】
【００１７】
本発明のフロー処理構築装置は、第１のフロー処理における分岐点位置の指定を受け付ける第１の受付手段と、前記第１のフロー処理の前記分岐点位置に第２のフロー処理を結合させる要求を受け付ける第２の受付手段と、前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合してフロー処理の再構築を行う再構築手段とを有することを特徴とする。
本発明のフロー処理構築方法は、フロー処理構築装置によるフロー処理構築方法であって、第１のフロー処理における分岐点位置の指定を受け付ける第１の受付ステップと、前記第１のフロー処理の前記分岐点位置に第２のフロー処理を結合させる要求を受け付ける第２の受付ステップと、前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合してフロー処理の再構築を行う再構築ステップとを含むことを特徴とする。
本発明のプログラムは、第１のフロー処理における分岐点位置の指定を受け付ける第１の受付ステップと、前記第１のフロー処理の前記分岐点位置に第２のフロー処理を結合させる要求を受け付ける第２の受付ステップと、前記第１のフロー処理の前記分岐点位置に前記第２のフロー処理を結合してフロー処理の再構築を行う再構築ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１８】
本発明においては、指定された第１のフロー処理の分岐点位置に第２のフロー処理を結合するように構成している。従って、本発明によれば、フロー処理記述文書に予め記述されていない他のフロー処理に切り替えて実行することが可能となる。
【００１９】
また、本発明においては、第２のフロー処理を指定することが可能であるため、利用者が意図した他のフロー処理に切り替えることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００２１】
＜第１の実施形態＞
先ず、本発明の第１の実施形態について説明する。
初めに、ＢＰＥＬ４ＷＳを用いたフロー処理記述文書について説明する。ＢＰＥＬ４ＷＳでは、フロー処理を定義する要素として、変数、プロセス識別子、変数及びプロセス識別子のカプセル化、Ｗｅｂサービスとの関係、イベント発生時の振る舞い、例外時の振る舞い、異常時の振る舞い等がある。また、ＢＰＥＬ４ＷＳでは、処理の単位をアクティビティとして定義する。アクティビティには、処理アクティビティと構造化アクティビティとが存在する。
【００２２】
フロー処理を定義する要素によって処理の流れを定義した後、実際に行う処理を処理アクティビティとして記述していく。処理アクティビティには、外部メッセージ受信、応答の返信、Ｗｅｂサービスの実行、データ処理、処理待ち、例外発生の通知、異常発生の通知、具体的な処理をしない空処理が定義されている。
また、処理の流れを構造化するための構造化アクティビティとして、順次処理、並行処理、繰り返し、外部入力による判断を定義している。なお、処理アクティビティは、構造化アクティビティの子要素として記述されるものである。
【００２３】
図２は、ＢＰＥＬ４ＷＳを用いたフロー処理記述文書の例を示す図である。
図２のフロー処理記述部は、フロー処理記述文書の全体を表し、＜ｐｒｏｃｅｓｓ＞要素がルート要素となっている。＜ｐｒｏｃｅｓｓ＞要素の属性であるｔａｒｇｅｔＮａｍｅｓｐａｓｅ属性は、フロー処理記述文書を一意に定義付けるための名前空間である。フロー処理記述部には、大きく分けてフロー処理定義記述部と実行処理記述部との２つの記述部が存在する。
【００２４】
フロー処理定義記述部では、各種フロー処理を定義する要素が記述される。本例では、Ｗｅｂサービスとの関連及び変数定義を記述している。Ｗｅｂサービス関連付け記述部では、フロー処理記述文書とフロー処理が実行する処理の外部関係とを記述している。記述方法としては、＜ｐａｒｔｎｅｒＬｉｎｋｓ＞要素を用いて定義する。変数定義記述部では、フロー処理内で用いる変数を＜ｖａｒｉａｂｌｅｓ＞要素を用いて定義している。
【００２５】
実行処理記述部では、構造化アクティビティと処理アクティビティとを用いて記述する。本例では、順次処理を表す構造化アクティビティである＜ｓｅｑｕｅｎｃｅ＞要素を用いて定義した。＜ｒｅｃｅｉｖｅ＞要素では、外部メッセージの受信の定義が記述されている。＜ａｓｓｉｇｎ＞要素では、データ処理の定義が記述されている。＜ｉｎｖｏｋｅ＞要素では、Ｗｅｂサービスの実行の定義が記述されている。＜ｒｅｐｌｙ＞要素では、応答の返信の定義が記述されている。
【００２６】
これら、＜ｒｅｃｅｉｖｅ＞要素、＜ａｓｓｉｇｎ＞要素、＜ｉｎｖｏｋｅ＞要素、＜ｒｅｐｌｙ＞要素は、＜ｓｅｑｕｅｎｃｅ＞要素の子要素として記述されていることにより、上から順次実行されていくと定義されていることとなる。
【００２７】
図１は、本実施形態に係るシステム構成を示す図である。
本実施形態に係るシステムでは、フロー処理実行装置２１０と、フロー処理サービス利用者が使用するＰＣ等の通信端末２２０と、フロー処理記述文書記憶部２３０とで構成され、それぞれがネットワークに接続されている。以下の説明においては、フロー処理サービスが使用するＰＣ等の通信端末２２０を、「フロー処理サービス利用者２２０」と称する。また、フロー処理実行装置２１０は、本発明のフロー処理構築装置の一適用例である。
【００２８】
フロー処理実行装置２１０は、フロー処理実行モジュール２１１、切り替え分岐点解析モジュール２１２、切り替え処理実行モジュール２１３を有している。
【００２９】
また、フロー処理実行装置２１０は、図１７で示すような構成を持つコンピュータ装置によって構成される。フロー処理実行装置２１０は、単一のコンピュータ装置で実現してもよいし、必要に応じた複数のコンピュータ装置に各機能を分散して実現するようにしてもよい。複数のコンピュータ装置で構成される場合は、互いに通信可能なようにＬＡＮ(Local Area Network)等で接続されている。
【００３０】
図１７において、１９０１は、コンピュータ装置１９００全体を制御するＣＰＵ（Central Processing Unit）である。１９０２は、変更を必要としないプログラムやパラメータを格納するＲＯＭ(Read Only Memory)である。１９０３は、外部装置等から供給されるプログラムやデータを一時記憶するＲＡＭ（Random Access Memory）である。１９０４は、コンピュータ装置１９００に固定して設置されたハードディスクやメモリカード等の外部記憶装置である。外部記憶装置の他の適用例としては、コンピュータ装置１９００から着脱可能なフレキシブルディスク（ＦＤ）やＣＤ（Compact Disc）等の光ディスク、磁気や光カード、ＩＣカード、メモリカード等がある。１９０５は、ユーザの操作を受け、データを入力するポインティングデバイスやキーボード１９０９等の入力デバイスとのインタフェースである。１９０６は、コンピュータ装置１９００の保持するデータや供給されたデータを表示するためのモニタ１９１０とのディスプレイインタフェースである。１９０７は、インターネット１９１１等のネットワーク回線に接続するためのネットワークインタフェイスである。１９０８は、１９０１〜１９０７の各ユニットを通信可能に接続するシステムバスである。
【００３１】
フロー処理実行モジュール２１１、切り替え分岐点解析モジュール２１２、切り替え処理実行モジュール２１３は、図１７で示すコンピュータ装置１９００におけるＣＰＵ１９０１上で動作するプログラムである。フロー処理実行モジュール２１１、切り替え分岐点解析モジュール２１２、切り替え処理実行モジュール２１３は、外部記憶装置１９０４に格納され、必要に応じてＲＡＭ１９０３にロードされてＣＰＵ１９０１により実行される。
【００３２】
フロー処理実行モジュール２１１は、フロー処理記述文書をＲＡＭ１９０３等のメモリ上に展開し、フロー処理定義実体を生成する機能と、フロー処理定義実体のフロー処理を順次実行する機能とを備える。その他にフロー処理実行モジュール２１１は、フロー処理の動的切り替えに対応するために、以下の機能を有している。
【００３３】
即ち、フロー処理実行モジュール２１１は、フロー処理の自動実行中にフロー処理における処理単位の任意の箇所でフロー処理を一時停止、再開する機能と、フロー処理を実行中にフロー処理定義実体を再構築する機能とを備える。またその他に、フロー処理実行モジュール２１１は、フロー処理における処理単位の任意の箇所で外部と切り替えを行うかを判断するメッセージを送受信する機能を備える。
【００３４】
切り替え分岐点解析モジュール２１２は、フロー処理記述文書をメモリ上に展開する際に、フロー処理実行開始時に指定される分岐点指定位置を解析し、フロー処理定義実体に分岐点情報を付加する機能を有している。また、切り替え分岐点解析モジュール２１２は、分岐点情報を含んだ状態で、メモリ上に展開されたフロー処理定義実体をフロー処理実行モジュール２１１に通知する機能を有する。
【００３５】
切り替え処理実行モジュール２１３は、後述する切り替え指示定義文書に基づき、切り替え先のフロー処理をメモリ上に展開し、フロー処理定義実体を生成する機能を有している。また、切り替え処理実行モジュール２１３は、切り替え元のフロー処理で扱っていたデータと切り替え先のフロー処理で扱うデータとのマッピングを行う機能と、切り替え先のフロー処理定義実体をフロー処理実行モジュール２１１に通知する機能とを有している。
【００３６】
上述したフロー処理サービス利用者２２０は、フロー処理実行モジュール２１１で実行されるフロー処理によって成されるサービス利用者の通信端末である。サービス利用者は、フロー処理が切り替え分岐点に至った際に、フロー処理の切り替えを行うかを判断する役割を担うものである。なお、サービス利用者は、フロー処理を実行する役割とフロー処理切り替え判断する役割とを分割して、２つに分けて実現することは構わない。
【００３７】
フロー処理記述文書記憶部２３０は、フロー処理記述文書を格納する機能を有している。フロー処理記述文書記憶部２３０は、フロー処理実行装置２１０の外部に存在し、フロー処理実行装置２１０に直接接続されていても、フロー処理実行装置２１０とネットワークを介して接続されていてもよい。また、フロー処理記述文書記憶部２３０は、フロー処理実行装置２１０の内部に存在していても構わない。また、フロー処理記述文書記憶部２３０は、図１７中の１９０４の外部記憶装置に該当するものである。
【００３８】
図３は、本実施形態に係るシステムの処理の流れを示す図である。図３を用いて本実施形態のシステムにおける処理の流れを説明する。
【００３９】
まず、フロー処理サービス利用者２２０がフロー処理実行装置２１０に後述する分岐点情報を付加したフロー処理呼び出しメッセージを送信する（３０１）。すると、フロー処理実行装置２１０がメッセージを受信し、３０１で送信されたメッセージの一部である分岐点情報を、フロー処理実行装置２１０上の切り替え分岐点解析モジュール２１２に送信する（３０２）。なお、３０１により送信されたメッセージをフロー処理実行装置２１０が受信する処理は、本発明の第１の受付手段の処理例である。
【００４０】
切り替え分岐点解析モジュール２１２は、３０２で受信した分岐点情報を基に、予め分岐点情報を含まないフロー処理記述文書に、分岐点情報を含めた状態でメモリ上へ展開してフロー定義実体を生成する（３０３）。この３０３の処理は、本発明の生成手段の処理例である。
【００４１】
切り替え分岐点解析モジュール２１２は、メモリ上に展開した後、フロー処理実行モジュール２１１に対して、３０３でメモリに展開した実行すべきフロー処理を通知する（３０４）。
【００４２】
その後、フロー処理実行モジュール２１１によってフロー処理が実行されていき（３０５）、フロー処理の実行を進めていくと、３０１で指定された切り替え分岐点に処理が至る。
【００４３】
切り替え分岐点に処理が到達した際、フロー処理実行モジュール２１１は、フロー処理を一時停止する（３０６）。その後、フロー処理実行モジュール２１１は、フロー処理サービス利用者２２０に対して、フロー切り替え処理を行うかどうかの判断を要求するメッセージを送信する（３０７）。３０６の処理は、本発明の一時停止手段の処理例であり、３０７の処理は、本発明の問合せ手段の処理例である。
【００４４】
上記メッセージを受信したフロー処理サービス利用者２２０は、フロー処理の切り替えを行う場合、切り替え指示及び後述する切り替え定義文書を切り替え処理実行モジュール２１３に送信する（３０８）。なお、この切り替え定義文書は、この切り替え指示、すなわち、切り替え元フロー処理に切り替え先フロー処理を結合させる要求内に記述されるか、その要求内で指定される。一方、フロー処理の切り替えを行わない場合、フロー処理サービス利用者２２０は、フロー処理を切り替えない指示のみを送信する。
【００４５】
切り替え指示及び切り替え定義文書を受信した切り替え処理実行モジュール２１３は、切り替え指示に従い、指定されたフロー処理記述文書からフロー処理をメモリ上に展開する（３０９）。この３０８の切り替え指示及び後述する切り替え定義文書を処理実行モジュール２１３が受信する処理は、本発明の第２の受付手段の処理例である。
【００４６】
その後、切り替え処理実行モジュール２１３は、３０８で受信した切り替え定義文書に基づき、切り替え元のフロー処理で扱っていたデータと切り替え先で扱うデータとのデータマッピングを行う（３１０）。これにより、切り替え先のフロー処理の準備が整ったので、フロー処理実行モジュール２１１に切り替え先のフロー処理を通知する（３１１）。
【００４７】
３１１での通知を受けたフロー処理実行モジュール２１１は、切り替え元フロー処理において一時停止される前に実行が終了しているメモリツリーに、切り替え先フロー処理のメモリツリーを結合することでフロー処理の再構築を行う（３１２）。すなわち、切り替え元フロー処理の切り替え分岐点位置に切り替え先フロー処理を結合して、フロー処理の再構築を行う。そして、フロー処理実行モジュール２１１は一時停止していたフロー処理を再開する（３１３）。これにより、フロー処理の動的切り替えが完了したこととなる。なお、３１２のフロー処理の再構築は、本発明の再構築手段の処理例である。
【００４８】
図４は、３０１でフロー処理サービス利用者２２０からフロー処理実行モジュール２１１に送信されたフロー処理呼び出しメッセージを示す図である。
【００４９】
フロー処理呼び出しメッセージは、ＳＯＡＰ（Simple Object Access Protocol）メッセージを用いる。ＳＯＡＰメッセージは、ＸＭＬで記述された文書であり、全体がエンベローブ部として構成されている。また、エンベローブ部の子要素として、ヘッダ部とボディ部が存在している。ＳＯＡＰの仕様は、ｗｗｗコンソーシアム（Ｗ３Ｃ）によって公開されている。内容はｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＳＯＡＰにて参照可能である。
【００５０】
フロー処理呼び出しメッセージでは、ＳＯＡＰメッセージのヘッダ部を用いて分岐点情報を記述し、ボディ部に実際にフロー処理を呼び出すためのパラメータを格納する。
【００５１】
ヘッダ部の分岐点情報は、ＸＰａｔｈ（XML Path Language）によって記述されている。ＸＰａｔｈは、ＸＭＬ文書中の任意の場所を指定するための言語である。そのため、ＸＭＬで記述されたフロー処理文書の任意の場所を指定することが可能である。なお、ＸＰａｔｈの仕様は、ｗｗｗコンソーシアム（Ｗ３Ｃ）によって公開されている。内容はｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｐａｔｈにて参照可能である。
【００５２】
図５は、分岐点解析結果を示す図である。分岐点解析方法は、ＳＯＡＰメッセージのヘッダ部に記述されてきた分岐点情報を抽出し、フロー処理記述文書に適用する。ＸＰａｔｈで記述された分岐点情報ｐｒｏｃｅｓｓ／ｓｅｑｕｅｎｃｅ／ｉｎｖｏｋｅ［ｐｏｓｉｔｉｏｎ（）＝２］は、ＸＭＬ文書の＜ｐｒｏｃｅｓｓ＞要素内の＜ｓｑｕｅｎｃｅ＞要素内の２番目の＜ｉｎｖｏｋｅ＞要素の位置を指し示すこととなる。結果、分岐点の位置は図５に示す位置となる。
【００５３】
図６は、切り替え定義文書の例を示す図である。切り替え定義文書は、独自に定義された構造を持つＸＭＬで記述された文書である。切り替え定義文書は、ルート要素は＜ｓｗｉｔｃｈ＞要素であり、＜ｓｗｉｔｃｈ＞要素は子要素を２つ持つ。
【００５４】
＜ｓｗｉｔｃｈ＞要素の１種類目の子要素は＜ｆｌｏｗ＞要素である。＜ｆｌｏｗ＞要素は、切り替え先のフロー処理記述文書を指定するための要素である。本例では、＜ｆｌｏｗ＞要素内に直接新規のフロー処理記述文書を記述することで、切り替え先のフロー処理記述文書を指定している。しかし、＜ｆｌｏｗ＞要素内にフロー処理記述文書を直接記述するのではなく、フロー処理記述文書記憶部２３０内にあるフロー処理記述文書をＵＲＩ等、フロー処理記述文書を一意に決定できる手法を用いて指定しても構わない。この場合、切り替え処理実行モジュール２１３は、ＵＲＩ等に基づいてフロー処理記述文書を取得する。なお、ＵＲＩは、Uniform Resource Identifierの略称である。
【００５５】
＜ｓｗｉｔｃｈ＞要素の２種類目の子要素は、＜ｄａｔａｄｅｌｉｖｅｒｙ＞要素である。＜ｄａｔａｄｅｌｉｖｅｒｙ＞要素は、切り替え元と切り替え先とで用いられている変数のデータマッピング情報を記述するための要素である。また、移行したい変数の数だけ＜ｄａｔａｄｅｌｉｖｅｒｙ＞要素は存在することになる。＜ｄａｔａｄｅｌｉｖｅｒｙ＞要素では、切り替え元と切り替え先の、フロー処理記述文書のｔａｒｇｅｔＮａｍｅｓｐａｃｅを属性として持つ。切り替え元と切り替え先のフロー処理記述文書のｔａｒｇｅｔＮａｍｅｓｐａｃｅを属性として持つことで、切り替え元、切り替え先のそれぞれのフロー処理記述文書で定義された変数を指定することが可能となる。＜ｄａｔａｄｅｌｉｖｅｒｙ＞要素は、＜ｓｏｕｒｃｅ＞要素と＜ｔａｒｇｅｔ＞要素の２つの子要素を持つ。＜ｓｏｕｒｃｅ＞要素によって切り替え元の変数を指定し、＜ｔａｒｇｅｔ＞要素によって切り替え先の変数を指定している。
【００５６】
切り替え定義文書を切り替え処理実行モジュールが読み込むことで、切り替え先のフロー処理記述文書を特定し、切り替え元と切り替え先のフロー処理の間でデータマッピングを可能としている。
【００５７】
図７は、フロー処理実行モジュール２１１で行うフロー処理の動的切り替えを行う際の処理を示すフローチャートである。
【００５８】
最初に、フロー処理実行モジュール２１１は、Ｓ７０１でフロー処理内の処理を実行する。フロー処理実行モジュール２１１は、１つの処理が終了する度にＳ７０２で分岐点かどうかの判断を行う。分岐点が存在しない場合、処理はＳ７０３に移る。Ｓ７０３では、フロー処理実行モジュール２１１は、フロー処理が終了かを判断する。判断の結果、フロー処理が終了であった場合、フロー処理を終了する。一方、フロー処理が終了でない場合、フロー処理実行モジュール２１１は次の処理を実行するためＳ７０１を実行する。
【００５９】
フロー処理実行モジュール２１１は、Ｓ７０２で分岐点があると判断した場合、Ｓ７１１でフロー処理を一時停止する。その後、フロー処理実行モジュール２１１は、Ｓ７１２にて、フロー処理サービス利用者２２０へフロー処理を切り替えるかを判断するメッセージを送信する。続いて、フロー処理実行モジュール２１１は、上記メッセージの返信に基づいて、実際にフロー処理の切り替えを行うかをＳ７１３で判断する。Ｓ７１３の判断の結果、切り替え指示があった場合、フロー処理実行モジュール２１１は、Ｓ７１４でフロー処理を再構築し、フロー処理を動的に切り替える。
【００６０】
その後、フロー処理実行モジュール２１１は、Ｓ７１１でフロー処理を一時停止した状態であったものをＳ７１５で再開する。一方、Ｓ７１３の判断の結果、切り替え指示がなかった場合、フロー処理実行モジュール２１１は、Ｓ７１４の処理を実行せずにＳ７１５でフロー処理を再開させる。Ｓ７１５でフロー処理を再開した後、Ｓ７０１へ戻り、フロー処理実行モジュール２１１は次の処理を実行する。
【００６１】
図８は、フロー処理記述文書の例を示す図である。８０１はＢＰＥＬ４ＷＳを用いて記述されたフロー処理記述文書である。８０２は、８０１のフロー処理記述文書をフローチャート化して示したものである。
【００６２】
図９は、切り替え定義文書の例を示す図である。９０１はＸＭＬ及び独自定義を用いて記述した切り替え定義文書である。９０２は切り替え定義文書内の切り替え先フロー処理を指定した部分である。切り替え先フロー処理９０２は直接ＢＰＥＬ４ＷＳを記述している。９０５は、９０２の切り替え先フロー処理記述文書をフローチャート化したものである。
【００６３】
図１０は、８０２で示したフロー処理から９０５で示したフロー処理に動的切り替えを行った後の処理を示すフローチャートである。
【００６４】
８０２で示したフローチャートに、分岐点情報／ｐｒｏｃｅｓｓ／ｓｅｑｕｅｎｃｅ／ｉｎｖｏｋｅ［ｐｏｓｉｔｉｏｎ（）＝２］を与えた結果、切り替え分岐点を付加したフローチャートが１０１０である。１０１０において、フロー処理実行モジュール２１１がＳＴＡＲＴから順次処理を行っていき、切り替え分岐点に処理が差し掛かる。その際に、フロー処理実行モジュール２１１が、フロー処理サービス利用者２２０に切り替え確認のメッセージを送信する。その応答として、フロー処理サービス利用者２２０から９０１で示した切り替え定義文書が送信される。すると、切り替え処理実行モジュールにて、９０５で示した切り替え先フロー処理記述文書が実体化される。これが１０１１である。その後、９０１の切り替え定義文書内の＜ｄａｔａｄｅｌｉｖｅｒｙ＞要素内で記述された、データマッピング情報を用いて、切り替え元と切り替え先とのデータマッピングを行う。具体的には、９０３と９０４とで示したデータマッピング情報を用いる。
【００６５】
９０３内の＜ｓｏｕｒｃｅ＞要素では、１０１０で利用していたｖａｒｉａｂｌｅ１１を指定し、＜ｔａｒｇｅｔ＞要素では、１０１１で利用するｖａｒｉａｂｌｅ２１を指定している。その結果、１０１０で利用していたｖａｒｉａｂｌｅ１１の値を、１０１１で利用するｖａｒｉａｂｌｅ２１の値にコピーすることとなる。同様に、９０４内の＜ｓｏｕｒｃｅ＞要素と＜ｔａｒｇｅｔ＞要素の情報を基に、１０１０で利用していたｖａｒｉａｂｌｅ１２の値を、１０１１で利用するｖａｒｉａｂｌｅ２２の値にコピーすることとなる。
【００６６】
その後、フロー処理実行装置２１０にて、１０１０と１０１１とのフロー処理から１０００のフロー処理を再構築する。その結果、１０１０に示すフロー処理を実行中に１０１１に示すフロー処理へと動的切り替えが行われることになる。
【００６７】
つまり、従来の方法では、Ｒｅｃｅｉｖｅ、Ａｓｓｉｇｎ１１、Ｉｎｖｏｋｅ１１、Ａｓｓｉｇｎ１２、Ｉｎｖｏｋｅ１２、Ｒｅｐｌｙの順で処理されていたフロー処理が、Ｒｅｃｅｉｖｅ、Ａｓｓｉｇｎ１１、Ｉｎｖｏｋｅ１１、Ａｓｓｉｇｎ１２、Ａｓｓｉｇｎ２１、Ｉｎｖｏｋｅ２１、Ａｓｓｉｇｎ２２、Ｉｎｖｏｋｅ２２、Ｒｅｐｌｙの順で処理されることとなる。
【００６８】
従来技術で処理される旅行予約システムの例を図１８に示す。また、本実施形態を旅行予約システムに適用した例を図１１に示す。
【００６９】
従来技術では、フロー処理を実行するために、フロー処理サービス利用者１１１０が、フロー処理記述文書１１４０に基づいたフロー処理を、フロー処理実行装置１１２０上で動作させるという方法であった。
【００７０】
具体的には、フロー処理サービス利用者１１１０は、旅行予約に必要なパラメータを含むフロー処理開始メッセージを、フロー処理実行装置１１２０に送信する。すると、フロー処理実行装置１１２０は、飛行機予約サービス１１３１を利用して飛行機の予約を行う。続いて、フロー処理実行装置１１２０は、フロー処理実行装置１１２０がホテル予約サービス１１３２を利用し、ホテルの予約を行う。最後にフロー処理実行装置１１２０は、飛行機の予約とホテルの予約との結果をフロー処理サービス利用者１１１０に送信する。
【００７１】
従来技術では、フロー処理記述文書１１４０にレンタカー予約サービス１１３３を呼び出す記述がない。そのため、フロー処理サービス利用者１１１０が新たにフロー処理の中でレンタカーの予約を希望した場合、レンタカー予約サービス１１３３を利用することをできなかった。従って、フロー処理の中でレンタカー予約サービス１１３３を利用するためには、フロー処理記述文書１１４０内にレンタカー予約サービス１１３３を利用する記述を追加する必要があった。
【００７２】
本実施形態を適用した旅行予約システムにおいて、フロー処理サービス利用者が新たにフロー処理の中でレンタカー予約を希望した場合について図１１を用いて説明する。
【００７３】
フロー処理サービス利用者１２１０が新たにレンタカー予約を希望する場合、フロー処理実行装置１２２０にフロー処理開始を指示する際、フロー処理記述文書１２４０の「３．結果送信」の位置を指す切り替え分岐点指定情報を同時に送信する。切り替え分岐点指定情報が含まれる開始メッセージを受信したフロー処理実行装置１２２０は、フロー処理記述文書１２４０をメモリ上に展開する際に、分岐点情報を含むフロー処理定義実体を生成する。その後、フロー処理実行装置１２２０はフロー処理記述文書１２４０に従ってフロー処理を実行していく。まず、飛行機予約サービス１２３１を利用して飛行機の予約を行い、次に、ホテル予約サービス１２３２を利用してホテルの予約を行う。すると、フロー処理実行装置１２２０が実行すべき処理が切り替え分岐点に至ったため、フロー処理実行装置１２２０はフロー処理サービス利用者１２１０にフロー処理を切り替えるかを確認するメッセージを送信する。
【００７４】
フロー処理サービス利用者１２１０は、切り替えを行うという情報と共に、フロー処理記述文書１２４０で扱っているデータとフロー処理記述文書１２４１で扱うデータとのデータマッピング情報を含む、切り替え定義文書を送信する。
【００７５】
切り替え定義文書を受信したフロー処理実行装置１２２０は、フロー処理記述文書１２４１のフロー処理定義実体を生成する。その後、フロー処理実行装置１２２０は、フロー処理記述文書１２４０に記述されているフロー処理を実行していた際のデータと、フロー処理記述文書１２４１に記述されているフロー処理を実行する際に必要なデータとのデータマッピングを行う。
【００７６】
そして、フロー処理実行装置１２２０は、フロー処理記述文書１２４０に記述されているフロー処理からフロー処理記述文書１２４１に記述されているフロー処理へ、１２５０で示すように、フロー処理の動的切り替えを行う。その結果、レンタカー予約サービス１２３３を利用してレンタカーの予約を行うことが可能となる。最後にフロー処理実行装置１２２０は、飛行機予約情報、ホテル予約情報と共にレンタカー予約の情報も含んだ旅行予約の結果を、フロー処理サービス利用者１２１０に送信する。
【００７７】
上記実施形態では、フロー処理記述文書を記述する言語に、サービス連携記述言語としてＢＰＥＬ４ＷＳを用いたが、ＷＳＣＩ（Web Service Choreography Interface）等、他のサービス連携記述言語を用いても構わない。なお、その際には、フロー処理記述言語としてＸＭＬが用いられていること、及びサービスの対象がＷｅｂサービスであるものを採用する。
【００７８】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
図１２は、本発明の第２の実施形態に係るシステム構成を示す図である。図１２に示すように、本実施形態によるシステム全体は、フロー処理サービス利用者１３００、多機能モノクロプリンタ１３１０、多機能カラープリンタ１３２０、データサーバ１３３０によって構成されている。多機能モノクロプリンタ１３１０は、フロー処理実行装置として用いた。
【００７９】
多機能モノクロプリンタ１３１０は、フロー処理実行モジュール１３１１、切り替え分岐点解析モジュール１３１２、切り替え処理実行モジュール１３１３、フロー処理記述文書記憶部１３１４、モノクロ出力実行部１３１５を備える。多機能カラープリンタ１３２０は、カラー出力実行部１３２１を備え、データサーバ１３３０はレイアウトデータ記憶部１３３１を備える。
【００８０】
次に、図１２に示すシステムを用いて、フロー処理の動的切り替えの例を説明する。図１２に示すシステムでは、通常時は図１３に示すようなフロー処理を実行可能な状態になっている。図１３に示したフロー処理は、前述のＢＰＥＬ４ＷＳを用いて記述されたフロー処理記述文書をフローチャート化したものである。通常時は、図１３のフロー処理に従い、フロー処理実行モジュール１３１１がＳＴＡＲＴから順次処理を行っていく。
【００８１】
まず、フロー処理実行モジュール１３１１は、Ｒｅｃｅｉｖｅ処理として、フロー処理サービス利用者１３００からのメッセージを受信する（Ｓ１４０１）。次に、フロー処理実行モジュール１３１１は、受信したメッセージに格納されたデータを変数に格納する（Ｓ１４０２）。
【００８２】
続いて、フロー処理実行モジュール１３１１は、データサーバ１３３０からレイアウトデータを取得し（Ｓ１４０３）、データサーバ１３３０から取得したデータを変数に格納する（Ｓ１４０４）。
【００８３】
続いて、フロー処理実行モジュール１３１１は、変数内のデータをページレイアウトする（Ｓ１４０５）。次に、フロー処理実行モジュール１３１１は、生成したページを多機能モノクロプリンタ１３１０上で画面出力し（Ｓ１４０６）、多機能モノクロプリンタ１３１０で印刷出力する（Ｓ１４０７）。最後に、フロー処理実行モジュール１３１１は、Ｒｅｐｌｙ処理として、フロー処理サービス利用者１３００へ応答を返す（Ｓ１４０８）。
【００８４】
通常は、要求の度に図１３に示したフロー処理を呼び出すことでサービスを実現するが、一時的に出力結果を多機能カラープリンタで出力するという要求があった場合を考える。
【００８５】
従来のフロー処理方法では、一時的な変更であったとしてもフロー処理記述文書に記述されていないフロー処理は実行することができなかった。そのため、一時的な変更にも拘わらず、図１３で示したフロー処理とは別に、新たに多機能カラープリンタで出力することを記述したフロー処理記述文書を新規作成するか、図１３に示したフロー処理自体を変更する必要があった。
【００８６】
本実施形態に係るシステムにおいては、一時的な変更を行う際には、多機能カラープリンタを組み込んだフロー処理記述文書を新規に作成する必要はない。また、図１３に示すフロー処理を変更する必要もない。以下、本実施形態に係るシステムにおいて、一時的にカラー出力にする方法について説明する。
【００８７】
本実施形態に係るシステムでは、まずフロー処理サービス利用者１３００が図１３に示したフロー処理を呼び出すフロー処理呼出メッセージを送信する際に、切り替え分岐点情報を同時に送信する。具体的には、今回の例では多機能モノクロプリンタ１３１０で出力する処理の前にフロー処理を切り替える必要がある。そのため、図１４で示すようなフロー処理呼出メッセージを送信する。分岐点情報記述部に記述されたｐｒｏｃｅｓｓ／ｓｅｑｕｅｎｃｅ／ｉｎｖｏｋｅ［ｐｏｓｉｔｉｏｎ＝４］を基に、前述の切り替え分岐点解析方法を用いて、図１５に示す切り替え分岐点１６００を指定する。なお、図１５において、図１３と同一符号の処理ステップでは、図１３と同じ内容の処理が実行される。
【００８８】
その後、多機能モノクロプリンタ１３１０上のフロー処理実行モジュール１３１１によって切り替え分岐点に差し掛かるまで順次処理が実行されていく。そして、切り替え分岐点１６００に処理が差し掛かると、フロー処理実行モジュール１３１１は、実行していたフロー処理を一時停止し、フロー処理サービス利用者１３００へフロー処理を切り替えるかどうかの確認を行う。
【００８９】
モノクロ出力からカラー出力へと一時的にフロー処理を切り替えたい場合、フロー処理サービス利用者１３００は、フロー処理の切り替え指示及びフロー処理切り替え定義文書を切り替え処理実行モジュール１３１２に送信する。フロー処理切り替え定義文書では、図６で示した切り替え先フロー処理情報記述部において、多機能カラープリンタで出力するステップと応答を返すステップとを含む処理フローを記述したフロー処理記述文書を指定する。その後、図６で示したフロー処理切り替え定義文書内のデータマッピング情報記述部を基に、切り替え元フロー処理文書と切り替え先フロー処理文書との間で前述のデータマッピング処理を行う。
【００９０】
その後、切り替え処理実行モジュール１３１２が切り替え先のフロー処理をフロー処理実行モジュール１３１１に通知する。通知されたフロー処理実行モジュール１３１１は、切り替え元フロー処理において一時停止される前に実行が終了しているメモリツリーに、切り替え先フロー処理のメモリツリーを結合することでフロー処理の再構築を行う。そして、フロー処理実行モジュール１３１１は、一時停止していたフロー処理を再開することで、フロー処理の動的切り替えを完了する。
【００９１】
図１６は、フロー処理の動的切り替えを実行した後の処理を示すフローチャートである。
【００９２】
フロー処理の動的切り替えを行ったことで、フロー処理実行モジュール１３１１は、Ｒｅｃｅｉｖｅ処理として、フロー処理サービス利用者１３００からのメッセージを受信する（Ｓ１８０１）。
【００９３】
続いて、フロー処理実行モジュール１３１１は、受信したメッセージに格納されたデータを変数に格納する（Ｓ１８０２）。次に、フロー処理実行モジュール１３１１は、データサーバからレイアウトデータを取得し（Ｓ１８０３）、データサーバから取得したデータを変数に格納する（Ｓ１８０４）。
【００９４】
続いて、フロー処理実行モジュール１３１１は、変数内のデータをページレイアウトし（Ｓ１８０５）、生成したページを多機能モノクロプリンタ１３１０上で画面出力する（Ｓ１８０６）。そして、フロー処理実行モジュール１３１１は、フロー処理の動的切り替え処理を行い（Ｓ１８０７）、多機能カラープリンタ１３２０で印刷出力する（Ｓ１８０８）。最後に、フロー処理実行モジュール１３１１は、Ｒｅｐｌｙ処理として、フロー処理サービス利用者１３００へ応答を返す（Ｓ１８０９）。以上のように、通常は多機能モノクロプリンタにしか出力できないフロー処理において一時的に多機能カラープリンタで出力することが可能となる。
【００９５】
上記実施形態では、フロー処理記述文書を記述する言語に、サービス連携記述言語としてＢＰＥＬ４ＷＳを用いた。その他に、ＷＳＣＩ（Web Service Choreography Interface）等、他のサービス連携記述言語を用いても構わない。なお、その際には、フロー処理記述言語としてＸＭＬが用いられていること、及びサービスの対象がＷｅｂサービスであるものを採用する。
【００９６】
上述した実施形態においては、フロー処理記述文書に予め記述されていない他のフロー処理についても、フロー処理を切り替えて実行することが可能となる。そのため、従来のように、フロー処理を全て一つのフロー処理記述文書に記述する必要がなくなる。その結果、いくつかの関係性が強い処理毎にフロー処理記述文書を作成することが可能となり、フロー処理の一部を再利用しやすくすることが可能となる。
【００９７】
また、フロー処理記述文書の記述者と利用者が異なり、フロー記述を変更できない場合も有効である。例えば、複数のフロー処理を連携させて実行する場合等が該当する。フロー処理の切り替え分岐点を後から設定可能且つ切り替え先を任意に指定可能なため、フロー処理記述文書を書き換えることなく、利用者がフロー処理自体を変更可能となり、フロー処理利用の幅が広がる。
【００９８】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。
【００９９】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１００】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１０１】
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきＣＰＵ等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。
【０１０３】
さらに、プログラムコードをインターネット等の通信媒体を介してコンピュータに供給される構成も本発明の範疇に含まれる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１の実施形態に係るシステム構成を示す図である。
【図２】ＢＰＥＬ４ＷＳを用いたフロー処理記述文書の例を示す図である。
【図３】本発明の第１の実施形態に係るシステムの処理の流れを示す図である。
【図４】フロー処理サービス利用者からフロー処理実行モジュールに送信されたフロー処理呼び出しメッセージを示す図である。
【図５】分岐点解析結果を示す図である。
【図６】切り替え先フロー処理情報記述部を示す図である。
【図７】フロー処理実行モジュールで行うフロー処理の動的切り替えを行う際の処理を示すフローチャートである。
【図８】フロー処理記述文書の例を示す図である。
【図９】切り替え定義文書の例を示す図である。
【図１０】図８の８０２で示したフロー処理から図９の９０５で示したフロー処理に動的切り替えを行った後の処理を示すフローチャートである。
【図１１】本発明の第１の実施形態を旅行予約システムに適用した例を示す図である。
【図１２】本発明の第２の実施形態に係るシステム構成を示す図である。
【図１３】本発明の第２の実施形態に係るシステムの通常時における処理の流れを示すフローチャートである。
【図１４】フロー処理呼出メッセージの例を示す図である。
【図１５】本発明の第２の実施形態に係るシステムの切り替え分岐点を含む処理の流れを示すフローチャートである。
【図１６】フロー処理の動的切り替えを実行した後の処理を示すフローチャートである。
【図１７】コンピュータ装置の構成を概略的に示す図である。
【図１８】従来技術で処理される旅行予約システムの例を示す図である。
【符号の説明】
【０１０５】
２１０、１２２０  フロー処理実行装置
２１１  フロー処理実行モジュール
２１２  切り替え分岐点解析モジュール
２１３  切り替え処理実行モジュール
２２０、１２１０  フロー処理サービス利用者
２３０  フロー処理記述文書記憶部
１２３１  飛行機予約サービス
１２３２  ホテル予約サービス
１２３３  レンタカー予約サービス
１２４０  フロー処理記述文書
１２４１  フロー処理記述文書
１２５０  フロー処理動的切り替え処理
【図１】
2008305205.tif 000003
【図２】
2008305205.tif 000004
【図３】
2008305205.tif 000005
【図４】
2008305205.tif 000006
【図５】
2008305205.tif 000007
【図６】
2008305205.tif 000008
【図７】
2008305205.tif 000009
【図８】
2008305205.tif 000010
【図９】
2008305205.tif 000011
【図１０】
2008305205.tif 000012
【図１１】
2008305205.tif 000013
【図１２】
2008305205.tif 000014
【図１３】
2008305205.tif 000015
【図１４】
2008305205.tif 000016
【図１５】
2008305205.tif 000017
【図１６】
2008305205.tif 000018
【図１７】
2008305205.tif 000019
【図１８】
2008305205.tif 000020