(57)【要約】【課題】ＷＥＢサービスを順次実行させるための情報を記述した文書に従ってＷＥＢサービスを実行するにおいて、逐次処理よりも柔軟に文書の記述に対応でき、構造モデルとして展開する手法よりも少ないメモリでＷＥＢサービスの実行を可能にする。【解決手段】分割処理部３０３は、ＷＥＢサービスを順次実行させるための情報を記述した元文書からＷＥＢサービスの呼び出し処理に関連する部分を抽出し、抽出された部分に基づいて子文書を生成し、元文書において抽出された部分を子文書の実行指示の記述に置換して親文書を生成する。順次処理部３０４とサービス化処理部３０５は、親文書を実行していく過程で子文書の実行指示を検出すると、子文書の記述によるサービスを実行できるようにそのサービス化情報をメモリ上に展開して当該サービスを実行する。そして、この子文書に対応したサービスの実行が終了すると、メモリ上に展開されたサービス化情報が削除される。【選択図】    図３
2007323443.tif 000002
【特許請求の範囲】
【請求項１】
ＷＥＢサービスを順次実行させるための情報を記述した文書を解釈し、ＷＥＢサービスを利用した処理を実行するＷＥＢサービス実行方法であって、
実行すべき文書からＷＥＢサービスの呼び出し処理に関連する部分を抽出し、抽出された部分に基づいて子文書を生成し、前記実行すべき文書において前記抽出された部分を前記子文書の実行指示の記述に置換して親文書を生成する分割工程と、
前記親文書を実行していく過程で、前記子文書の実行指示が検出されると、当該子文書の記述によるサービスを実行できるように前記子文書の記述内容をサービス化してメモリ上にサービス化情報を展開し、前記サービス化情報により当該サービスを実行する処理工程と、
前記処理工程で前記子文書に対応したサービスの実行が終了した場合に、前記メモリ上に展開されたサービス化情報を削除する削除工程とを備えることを特徴とするＷＥＢサービス実行方法。
【請求項２】
前記分割工程は、前記実行すべき文書を、逐次処理手法によって上層部から順に読み込み、ＷＥＢサービスを呼び出すために必要な情報が記述された部分毎に、子文書を生成することを特徴とする請求項１に記載のＷＥＢサービス実行方法。
【請求項３】
前記逐次処理手法としてＳＡＸ（Simple API for XML）手法を用いることを特徴とする請求項２に記載のＷＥＢサービス実行方法。
【請求項４】
前記サービス化情報は、前記子文書の記述内容に対応した構造化モデルであることを特徴とする請求項１に記載のＷＥＢサービス実行方法。
【請求項５】
前記処理工程は、ＤＯＭ（Document Object Model）手法によって、前記子文書の記述内容に対応した構造化モデルを前記メモリに展開することを特徴とする請求項４に記載のＷＥＢサービス実行方法。
【請求項６】
ＷＥＢサービスを順次実行させるための情報を記述した文書を解釈し、ＷＥＢサービスを利用した処理を実行する情報処理装置であって、
実行すべき文書からＷＥＢサービスの呼び出し処理に関連する部分を抽出し、抽出された部分に基づいて子文書を生成し、前記実行すべき文書において前記抽出された部分を前記子文書の実行指示の記述に置換して親文書を生成する分割手段と、
前記親文書を実行していく過程で、前記子文書の実行指示が検出されると、当該子文書の記述によるサービスを実行できるように前記子文書の記述内容をサービス化してメモリ上にサービス化情報を展開し、前記サービス化情報により当該サービスを実行する処理手段と、
前記処理手段で前記子文書に対応したサービスの実行が終了した場合に、前記メモリ上に展開されたサービス化情報を削除する削除手段とを備えることを特徴とする情報処理装置。
【請求項７】
前記分割手段は、前記実行すべき文書を、逐次処理手法によって上層部から順に読み込み、ＷＥＢサービスを呼び出すために必要な情報が記述された部分毎に、子文書を生成することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記逐次処理手法としてＳＡＸ（Simple API for XML）手法を用いることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記サービス化情報は、前記子文書の記述内容に対応した構造化モデルであることを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記処理手段は、ＤＯＭ（Document Object Model）手法によって、前記子文書の記述内容に対応した構造化モデルを前記メモリに展開することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
請求項１乃至５のいずれかに記載のＷＥＢサービス実行方法をコンピュータに実行させるための制御プログラム。
【請求項１２】
請求項１１に記載の制御プログラムを格納したことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷＥＢサービスを順次実行させる為の記述を持つ構造化文書を読み込んで、その記述内容に従ってＷＥＢサービスを実行する技術に関する。
【背景技術】
【０００２】
一般に、ＷＥＢサービスを順次実行させる為の記述がなされた構造化文書（以下、順次処理記述文書という）を読み込み、その記述内容に従ってＷＥＢサービスを順次実行させる技術が知られている。順次処理記述文書は、例えばＢＰＥＬ（Business Process Execution Language）に従って記述されている。情報処理装置が順次処理記述文書を読み込んでＷＥＢサービスを実行するための方法としては、文書をイベントストリームとして扱う逐次処理型のＳＡＸ（Simple API for XML）や、文書を木構造として扱うＤＯＭ（Document Object Model）等の技術が用いられる。
【０００３】
上記のようなＷＥＢサービスに関しては、複数のＷＥＢサービスの実行手順をいかにして効率的に生成するかを課題とした開発がなされている。特許文献１には、比較的小さな処理を行うための単位フローを柔軟に組み合わせて、全体として論理的な１つのＷＥＢサービスフローを動的に組み立て実行させることが記載されている。又、特許文献２には、個々のサービスの手順が記述された複数の指示書から、どのような組み合わせで処理を実行させるかを指示する指示書を生成する技術が開示されている。
【特許文献１】特開２００４−３６１９９３号公報
【特許文献２】特開２００５−１７３８９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のＷＥＢサービスを利用する手順が記述された順次処理記述文書を用いてＷＥＢサービスを実行する段階に関しては、格別な工夫はなされていない。即ち、順次処理記述文書に基づいてＷＥＢサービスを実行する際には、単に、上述したＳＡＸやＤＯＭ等が利用されるのみである。
【０００５】
ＳＡＸに代表される、構造化文書の内容を上層部から順に読み込んでいく逐次処理では、読み込んだ文書内容の位置よりも前の位置にある文書内容を参照すること、即ち、文書内の前方参照等が困難であるという課題がある。即ち、順次処理記述文書の構造が複雑になるほどＳＡＸによる対応が困難になる。これは、ＳＡＸ手法のみを使用して前方参照を行うとなると、参照したい記述内容をどのように保存しておくか（データ保持の為の構造化設計）、またそれをどのように参照するか（Ｉ／Ｆ設計）等の設計を行わなければならいためである。又、ＤＯＭに代表される、順次処理記述文書に示される構造全体を構造モデルとしてメモリに展開してから処理を行う方法では、処理対象の文書内容が膨大になるとメモリ容量を圧迫してしまうという課題がある。
【０００６】
本発明は上記の課題に鑑みてなされたものであり、文書に従ってＷＥＢサービスを実行するにおいて、逐次処理よりも柔軟に文書の記述に対応でき、構造モデルとして展開する手法よりも少ないメモリでＷＥＢサービスの実行を可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明の一態様によるＷＥＢサービス実行方法は、
ＷＥＢサービスを順次実行させるための情報を記述した文書を解釈し、ＷＥＢサービスを利用した処理を実行するＷＥＢサービス実行方法であって、
実行すべき文書からＷＥＢサービスの呼び出し処理に関連する部分を抽出し、抽出された部分に基づいて子文書を生成し、前記実行すべき文書において前記抽出された部分を前記子文書の実行指示の記述に置換して親文書を生成する分割工程と、
前記親文書を実行していく過程で、前記子文書の実行指示が検出されると、当該子文書の記述によるサービスを実行できるように前記子文書の内容に基づいてサービス化情報をメモリ上に展開し、前記サービス化情報により当該サービスを実行する処理工程と、
前記処理工程で前記子文書によるサービスの実行が終了した場合に、前記メモリ上に展開されたサービス化情報を削除する削除工程とを備える。
【発明の効果】
【０００８】
本発明によれば、文書に従ってＷＥＢサービスを実行するにおいて、逐次処理よりも柔軟に文書の記述に対応でき、構造モデルとして展開する手法よりも少ないメモリでＷＥＢサービスを実行することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
まず、図１を参照して、ＷＥＢサービスを順次呼び出して処理をさせるための構成の概略を説明する。
【００１０】
図１において、ＷＥＢサービスＴＯＰ１０１は、順次処理の中心的な役割を担うＷＥＢサービスである。ＷＥＢサービスＴＯＰ１０１は、クライアント１０２から順次処理の指示を受けると、ＷＥＢサービスの実行手順を記述した順次処理記述文書１０３を読み込む。そして、ＷＥＢサービスＴＯＰ１０１は、順次処理装置１０４を利用して、順次処理記述文書１０３に記述してある通りに、例えば、ＷＥＢサービスＡ１０５、Ｂ１０６、Ｃ１０７（以下、ＷＥＢサービスＡ，Ｂ，Ｃと記述する）を呼び出して処理をさせていく。ＷＥＢサービスＡ〜Ｃのそれぞれは、サービスの所在地（アドレス）、サービスを呼び出す為のインターフェース（Ｉ／Ｆ）を記述したＩ／Ｆ記述文書１０８〜１１０（以下、Ｉ／Ｆ記述文書Ａ〜Ｃと記述する）を有する。尚、Ｉ／Ｆ記述文書は、例えば、例えばＷＳＤＬ（Web Service Description Language）で記述される。ＷＥＢサービスＴＯＰ１０１は予めこれらのＩ／Ｆ記述文書を読み込み、他の呼び出すＷＥＢサービスの情報を保持している。
【００１１】
クライアント１０２は、順次処理記述文書１０３の内容を実行させるリクエストを発行し、処理対象となるメッセージを送る（１１１）。ＷＥＢサービスＴＯＰ１０１の順次処理装置１０４は、メッセージに従って実行すべき順次処理記述文書１０３を取得し、順次処理記述文書１０３の全体構造及び情報等を読み込み、全体の記述内容を解釈する。そして、順次処理装置１０４は解釈された記述内容に従ってＷＥＢサービスを実行させていく。順次処理記述文書１０３がＷＥＢサービスＡ，Ｂ，Ｃの順に実行するよう記述されていたとすると、順次処理装置１０４は以下のように動作する。
【００１２】
まず、順次処理装置１０４は、クライアント１０２から受け取ったメッセージをＷＥＢサービスＡ１０５に送り（１１２）、ＷＥＢサービスＡでメッセージを処理させ、その処理結果のメッセージを受け取る（１１３）。同様にして、１１４〜１１７に示すように、ＷＥＢサービスＢ、Ｃを順番に呼び出してメッセージを処理させる。例えば、ＷＥＢサービスＢ１０６を実行させるために、それまでの処理結果であるＷＥＢサービスＡ１０５のレスポンスを用いることもできる。最後のサービスであるＷＥＢサービスＣ１０７からのレスポンス（１１７）によって取得された処理結果のメッセージをクライアント１０２に返し（１１８）、クライアントからのリクエストに対する処理が完結する。
【００１３】
上記の処理において、順次処理装置１０４が例えばＤＯＭに従って順次処理記述文書を処理する場合は、順次処理装置１０４は内部のメモリに当該順次処理記述文書の全体構造及び情報を保持してから処理を実行する。このため、順次処理記述文書の記述内容が膨大であると、順次処理装置１０４内のメモリ容量が圧迫されてしまう。この結果、ＷＥＢサービスＴＯＰ１０１となる機器のリソースが十分でない場合等においては対応しきれなくなるなど、様々な不具合が生じる可能性がある。一方、ＳＡＸに従った逐次処理を用いれば、メモリリソースの課題は解消できる。しかしながら、当該順次処理記述文書が、ＷＥＢサービスの実行に際して前方参照を含む場合、ＳＡＸに従った逐次処理では対応が困難である。そこで、本実施形態の順次処理装置１０４は、以下で詳述するように、順次処理記述文書に記述されている順次処理をＷＥＢサービス単位で分割し、処理していく。
【００１４】
図２は、順次処理記述文書１０３のデータ構成例及び具体的な記述例を示した図である。記述構成例２０１は、順次処理記述文書１０３におけるデータ構成例を示している。記述構成例２０１は２０２〜２１２の記述部分を有する。記述部分２０２には呼び出し先ＷＥＢサービスのＩ／Ｆ情報が記述される。記述部分２０３には、各ＷＥＢサービスに対応したメッセージ変数の型情報が記述される。記述部分２０４には、クライアントからリクエストメッセージを受信できるようにする為に必要な情報が記述される。
【００１５】
記述部分２０５には、メッセージの中身からデータを抜き出して、他のメッセージ型へマッピングする等のメッセージ変数操作が記述される。記述部分２０６には、ＷＥＢサービスＡを呼び出すために必要な情報が記述される。従って、記述部分２０５に記述されるメッセージ変換操作は、ＷＥＢサービスＡに関連する部分を抜き出し、これをＷＥＢサービスＡに対応したメッセージ型へマッピングするメッセージ変換操作となる。記述部分２０７〜２１０には、ＷＥＢサービスＡと同様に、ＷＥＢサービスＢ、Ｃに対応したメッセージ変換操作とＷＥＢサービスＢ、Ｃを呼び出すために必要な情報が記述される。
【００１６】
記述部分２１１には、各ＷＥＢサービスを呼び出して処理が行われた最終結果のレスポンスメッセージをクライアントのメッセージ型へマッピングするメッセージ変換操作が記述される。そして、記述部分２１２には、メッセージ変換操作されたレスポンスメッセージをクライアントへ返信するために必要な情報が記述される。
【００１７】
記述構成例２０１に基づく具体的な順次処理記述文書の例を２１３（以下、順次処理記述文書１３という）に示す。本例の順次処理記述文書２１３は、ＷＳＢＰＥＬ（Web Services Business Process Execution Language）というＷＥＢサービスの処理フローをＸＭＬ（eXtensible Markup Language）文書で記述するための標準仕様になっている方式で記述されている。以下、記述構成例２０１に示したデータ構成と順次処理記述文書２１３を比較する。
【００１８】
図２において、記述部分２１４は記述部分２０２に対応し、呼び出し先のＷＥＢサービスに関する情報、例えばＷＳＤＬ等のＩ／Ｆ情報を特定するためのネームスペース等の情報が記述されている。記述部分２１５は記述部分２０３に対応し、メッセージ変数の型情報が〈variables〉タグで記述されている。記述部分２１５では呼び出し先のＷＥＢサービスに対応するＷＳＤＬに記述されているメッセージの型情報などの場所を指し示す記述等がされている。順次処理を実行するときは、この部分の情報を参照しながら処理を行っていく。記述部分２１６は記述部分２０４に対応し、クライアントからのリクエストメッセージを受信するために必要な情報が〈receive〉タグで記述されている。
【００１９】
記述部分２１７は記述部分２０５に対応し、メッセージの中身からデータを抜き出して、他のメッセージ型へマッピングする、或は、メッセージをそのまま異なる変数に格納する等、メッセージ変数の操作が〈assign〉等のタグで記述されている。記述部分２１８は記述部分２０６に対応し、ＷＥＢサービスＡを呼び出す為に必要な情報、例えば、メソッド名やメッセージ変数への参照などが〈invoke〉タグで記述されている。記述部分２１９は記述部分２１１に対応し、記述部分２１７と同様な形態でメッセージ変数の操作が〈assign〉等のタグで記述されている。記述部分２２０は記述部分２１２に対応し、各ＷＥＢサービスを呼び出して処理が行われた最終結果のレスポンスメッセージをクライアントへ返信するために必要な情報が〈reply〉タグで記述されている。
【００２０】
以上のように、ＷＥＢサービスを順次呼び出しながら処理をさせる為のフローを、ＸＭＬ文書で記述することが可能である。そして、このＸＭＬ文書を上層部からパースしていき、文書内容を解釈していくことで、記述通りの順番にＷＥＢサービスを呼び出し、実行させることが可能となる。尚、順次処理記述文書２１３はあくまでもＷＳＢＰＥＬ文書の具体例なので、本実施形態では、記述構成例２０１のデータ構成例を利用して、処理の内容を説明していくことにする。
【００２１】
図３は、本実施形態による情報処理装置である順次処理装置１０４の全体構成を示すブロック図である。以下、図３を参照してクライアントから受信したリクエストに応じた処理の流れを説明する。尚、順序処理装置１０４がクライアントから受け付けるリクエストには、以下の２つがある。
（ｉ）順次処理記述文書（１０３）及びＷＥＢサービス用のＩ／Ｆ記述文書（１０８〜１１０）の登録／削除のリクエスト、
（ii）順次処理の実行のリクエスト、である。
まず順次処理記述文書及びＷＥＢサービス用のＩ／Ｆ記述文書の登録、削除をクライアントからリクエストされた場合の処理を説明する。
【００２２】
図３において、登録処理部３０２は順次処理記述文書１０３及びＩ／Ｆ記述文書１０８〜１１０をファイル格納領域３０６へ登録する処理を行なう。登録処理部３０２は、クライアント１０２から登録リクエストを受け付けると、順次処理記述文書（例えばＷＳＢＰＥＬ）１０３及びＩ／Ｆ記述文書（例えばＷＳＤＬ）１０８〜１１０が記述されたファイルを受信する（３０９）。そして、ファイル格納領域３０６に、受信した順次処理記述文書１０３及びＩ／Ｆ記述文書１０８〜１１０を登録する（３１０）。
【００２３】
又、受信された順次処理記述文書１０３は、登録処理部３０２から分割処理部３０３へも提供される（３１１）。分割処理部３０３は、提供された順次処理記述文書の記述内容を、外部ＷＥＢサービス（図１の例ではＷＥＢサービスＡ，Ｂ，Ｃ）を呼び出す部分の単位で抽出する。そして、分割処理部３０３は、抽出した部分を子文書とし、順次処理記述文書１０３を親文書と親文書から呼び出される子文書の形態に分割し、それら親文書と子文書をファイル格納領域３０６に登録（３１２）する。更に、分割処理部３０３は、登録した順次処理記述文書の処理内容を開始するためのリクエストを受け付けるために、サービス化処理部３０５に順次処理記述文書の内容をサービス化する指示を出す（３１３）。この指示を受け付けたサービス化処理部３０５は、対象となる親の順次処理記述文書と、Ｉ／Ｆ記述文書をファイル格納領域３０６から取得する。詳細は、後述する。そして、内容をそれぞれパースして、オブジェクトとしてまとめ、メモリ領域３０７に書き込む（３１５）。尚、本実施形態では、ＤＯＭ（Document Object Model）仕様に従って記述文書をサービス化し、サービス化情報（構造モデル）がメモリ領域３０７に展開されることになる。順次処理部３０４は、メモリ領域３０７から情報を読み込む（３１６）ことで、リクエストをいつでも受け付けることが可能となる。尚、上記ではＷＥＢサービス毎に子文書を作成したが、連続する複数のＷＥＢサービスを含む子文書（例えば、ＷＥＢサービスＡとＢ）を作成するようにしてもよい。要は、ＷＥＢサービスの呼び出しに関連する部分（例えばメッセージ変数操作とＷＥＢサービスの呼び出しの記述）に基づいて子文書を作成することである。
【００２４】
次に、順次処理の実行がクライアント１０２からリクエストされた場合の処理を説明する。クライアント１０２から順次処理の実行リクエストが順次処理部３０４に受信されると（３１７）、順次処理部３０４は、メモリ領域３０７に格納された、当該リクエストに対応する順次処理（親の順次処理）を実行する。そして、親の順次処理が子の順次処理を呼び出す時に、順次処理部３０４はサービス化処理部３０５に呼び出すべき子の順次処理に関してのサービス化を指示する（３１８）。指示を受けたサービス化処理部３０５は、指定された子の順次処理に関して必要な順次処理記述文書及びＩ／Ｆ記述文書を、ファイル格納領域３０６から取得する（３１４）。そして、サービス化処理部３０５は、取得した文書をそれぞれパースし、オブジェクトとしてまとめ、メモリ領域３０７に書き込む（３１５）。こうして、子のサービスとしてリクエストを受け付けられる状態にする。
【００２５】
順次処理部３０４から指示された子の順次処理に関してサービス化処理部３０５によるサービス化が完了すると、順次処理部３０４は、サービス化された子にリクエストメッセージを送る。この結果、子の処理が行われ、順次処理部３０４はその処理結果であるレスポンスメッセージを受け取る。順次処理部３０４はレスポンスメッセージを受け取ると、サービス化処理部３０５に、メモリ領域３０７内に書き込まれている呼び出した子の情報を削除する指示を出す。サービス化処理部３０５は、指示された子に関する情報をメモリ領域３０７から削除し、メモリを解放する。以上のような、子のサービス化及び子の削除の処理を親が子を呼び出す度に行いながら処理を実行し、最終的な処理結果であるレスポンスメッセージをクライアント１０２に返すことで一連の処理が終了する。
【００２６】
図４は、上記の分割処理部３０３における分割処理をより具体的に説明するための図である。図４において、情報４０１は順次処理を実行させていくために必要な情報であり、上述した順次処理記述文書４０２やＩ／Ｆ記述文書４０３〜４０６を含む。登録処理部３０２は情報４０１をファイル格納領域３０６へ格納することになる。順次処理記述文書４０２は、図２において示した順次処理記述文書２０１に対応している。又、Ｉ／Ｆ記述文書４０３は順次処理ＷＥＢサービス用のＩ／Ｆ記述文書（例えばＷＳＤＬ）であり、順次処理記述文書に記述された順次処理をＷＥＢサービス化するために必要な文書である。Ｉ／Ｆ記述文書４０４〜４０６は、それぞれ順次処理の実行中に呼び出されるＷＥＢサービスＡ〜Ｃ用のＩ／Ｆ記述文書である。Ｉ／Ｆ記述文書４０４〜４０６は、Ｉ／Ｆ記述文書１０８〜１１０に対応する。尚、順次処理記述文書４０２は記述内容の構成が示されているが、図２により上述したように、実際にはＷＳＢＰＥＬのようなＸＭＬ文書で記述されており、要素のタグや属性によって文書内のどこにどのような情報が記述されているかを判断することができる。
【００２７】
さて、分割処理部３０３は、順次処理記述文書４０２を例えばＳＡＸ手法によってパースしていく。そして、外部ＷＥＢサービスの呼び出し部分とその直前に記述されているメッセージ変数操作部分（４０７〜４０９）をそれぞれ１つの「子の順次処理記述」として抽出し、抽出した部分を独立してサービス化できる部分として判断し、元の文書から分割する。即ち、順次処理記述文書４０２は、ＷＥＢサービスの呼び出し数に応じた数分の「子のサービス」に対応した「子の順次処理記述」と、それら「子のサービス」の呼び出しを含む「親の順次処理記述」に分割される。
【００２８】
情報４１０は、情報４０１に含まれる順次処理記述文書４０２に対して分割処理を行なった後の状態を示している。親の順次処理記述文書４１１は、順次処理記述文書４０２において、子の順次処理記述文書になる記述部分（子の順次処理記述）の内容を子のサービスを呼び出す為の記述（４１２〜４１４）に置き換えたものとなる。子サービスＡに関する情報４１５は、子の順次処理記述文書４１６と、当該文書を子サービスＡとしてＷＥＢサービス化するための子サービスＡ用Ｉ／Ｆ記述文書４１７と、ＷＥＢサービスＡを呼び出すためのＷＥＢサービスＡ用Ｉ／Ｆ記述文書４０４等を含む。
【００２９】
子の順次処理記述文書４１６では、元の順次処理記述文書４０２内に存在していた記述部分４０７の記述内容が、子の順次処理記述文書４１６の記述部分４２１、４２２に記述される。そしてこれらの記述を上下に挟む形で、記述部分４２０と４２３が設けられる。記述部分４２０には、親からのリクエストメッセージを受信するために必要な情報が記述される。又、記述部分４２３には、当該子サービスによる処理結果のレスポンスメッセージを親へ返すために必要な情報が記述される。更に、記述部分４１８には、順次処理記述部４０２に記述されている「呼び出し先ＷＥＢサービスの情報」から抽出されたＷＥＢサービスＡに必要な情報（ＷＥＢサービスＡに関する呼び出し先ＷＥＢサービスの情報）が記述される。記述部分４１９には、順次処理記述部４０２の「メッセージ変数の型情報」から当該子サービスＡで必要な情報を抽出して記述したメッセージ変数の型情報が記述される。尚、子サービスＡ用Ｉ／Ｆ記述文書４１７は、順次処理記述文書４０２から子サービスＡに必要な情報を抽出し、それらの内容を利用して子サービスＡをＷＥＢサービスとして呼び出す為に、新たに自動的に作成（例えばＷＳＤＬとして）される。子サービスＡに関する情報４１５と同様に、子サービスＢ、子サービスＣに関する情報４２４，４２５が生成される。
【００３０】
サービス化処理部３０５は、例えば順次処理部３０４からの順次記述文書４０２の実行指示に応じて、Ｉ／Ｆ記述文書４０３と親の順次処理記述文書４１１に基づいてサービス化を実行し、メモリ３０７に親サービスを生成する。順次処理部３０４は親サービスを実行していく過程で、子サービスの呼び出し（４１２〜４１４）を実行する。子サービスの呼び出しにおいて、順次処理部３０４は、サービス化処理部３０５に対応する子サービスのサービス化を指示する。サービス化処理部３０５は、順次処理部３０４から例えば子サービスＡのサービス化の指示を受信すると、ファイル格納領域３０６から情報４１５を読み込み、内容をパースして、オブジェクトとして（サービス化して）メモリ３０７に格納する。又、順次処理部３０４から削除指示を受信した場合は、例えば、情報４１５に関してサービス化した内容をメモリ３０７から削除する。
【００３１】
図５は、順次処理部３０４の処理内容を示すフローチャートである。ステップＳ５０１において、クライアント１０２から順次処理実行のリクエストメッセージを受信（３１７）すると、ステップＳ５０２において、当該リクエストに対応する順次処理をメモリ領域３０７に書き込まれている情報（親サービス）を用いて（３１６）実行する。
【００３２】
親サービスの順次処理を実行していく過程で子呼び出し処理の有無が判断される（ステップＳ５０３）。子サービスを呼び出す処理が有れば（子文書の実行指示が検出されると）、ステップＳ５０３からステップＳ５０４へ進み、サービス化処理部３０５に対して、呼び出し先の子の順次処理記述文書をサービス化するべく指示を出す。例えばサービスＡ呼び出しを実行する場合は、情報４１５を指定してサービス化を指示する。呼び出し先の子サービスがサービス化され、サービス化情報がメモリ領域３０７に展開されると、ステップＳ５０５において、当該子サービスに対して処理の実行を依頼するためのリクエストメッセージを送信する。その後、呼び出し先の子サービスでＷＥＢサービスが実行され、その処理結果が当該子サービスからレスポンスメッセージとして親サービスに返信される。順次処理部３０４は、ステップＳ５０６においてレスポンスメッセージを受信する。レスポンスメッセージ、即ち処理結果が受信されると、当該呼び出し先の子サービスは不要となるので、ステップＳ５０７において、サービス化処理部３０５に対して当該子サービス（呼び出された子サービス）に関する情報の削除を指示する。サービス化処理部３０５は、指定された子サービスのサービス化情報をメモリ３０７から削除する。なお、この削除は、次の子サービスの展開前に実行しても良い。すなわち、他の実施形態では、子サービスの展開前に、以前実行した子サービス情報がメモリ３０７上に残っていたら、その以前の子サービス情報を削除する。その後、ステップＳ５０３に戻り、次の子呼び出し処理の有無を判断する。
【００３３】
以上のように、順序処理（親サービス）の実行において、呼び出すべき子サービスの数だけ上記のステップＳ５０４〜Ｓ５０７の処理が繰り返される。例えば、順次処理記述文書４０２（＝親の順次処理記述文書４１１）の場合、ステップＳ５０４〜Ｓ５０７の処理がＷＥＢサービスＡ，Ｂ，Ｃの３回繰り返されることになる。そして、ステップＳ５０３で呼び出すべき子サービスが存在しないと判断されると、処理はステップＳ５０８へ進む。ステップＳ５０８では、リクエストを発行したクライアント１０２へ最終処理結果レスポンスメッセージを送信して、本処理を終了する。
【００３４】
図６は、サービス化処理部３０５の処理内容を示すフローチャートである。ステップＳ６０１において、サービス化処理部３０５は、子サービスの登録（サービス化）の指示、或は、子サービスに関するサービス化情報の削除の指示を受信する。ステップＳ６０２では、ステップＳ６０１で受信した指示が登録の指示か削除の指示かを判断する。登録の指示であった場合、処理はステップＳ６０２からステップＳ６０３へ進む。ステップＳ６０３において、サービス化処理部３０５は、ファイル格納領域３０６から登録対象となる子サービスに関する情報（本実施形態では、情報４１５，４２４，４２５のいずれか）を取得する。尚、対象となる子サービスの識別は、順次処理部３０４からの子サービスの登録の指示に含まれている。上述したように、サービスに関する情報（４１５）には、順次処理記述文書（４１６）及びＩ／Ｆ記述文書（４０４，４１７）のファイルが含まれている。そして、ステップＳ６０４において、順次処理記述文書及びＩ／Ｆ記述文書の内容をＤＯＭ手法によってサービス化し、構造を保持したまま子サービスとしてメモリ領域内に格納する。そして、ＷＥＢサービスとしてリクエストを受け付けられる状態に子サービスを設定する。一方、ステップＳ６０２において削除の指示と判断された場合は、ステップＳ６０５へ進み、メモリ領域３０７から対象となる情報（子サービス）を削除してメモリを解放する。尚、削除対象となるサービス化情報の識別は、順次処理部３０４からの削除指示に含まれている。以上のようにして、サービス化及び削除処理が行われる。
【００３５】
以上、本実施形態による順次処理装置１０４の内部処理（登録処理部３０２、分割処理部３０３、順次処理部３０４、サービス化処理部３０５）について具体的に説明した。次に、上述のような順次処理装置１０４の適用例を図７を用いて説明する。図７は、ＷＥＢサービスから取得したデータを、まとめてレイアウトし、レンダリングし、紙に印刷出力することが可能な複写機の内部構成を示したブロック図である。
【００３６】
図７において、複写機７０１はコピー、スキャン、プリントなどの処理を行うことができ、順次処理装置７０２（図１の順次処理装置１０４と同様の機能、構成を有する）を搭載している。複写機７０３に付随するＵＩ画面７０３（例えば液晶等）がクライアント１０２としての役割を果たす。このＵＩ画面７０３から順次処理開始のリクエストが出力（７０４）されると、順次処理装置７０２は、メモリ領域７０５（ファイル格納領域３０６及びメモリ領域３０７に対応する）からそのリクエストに対応する順次処理記述文書を取得する。そして、順次処理記述文書の内容に従って、例えば、ＷＥＢサービスＡ〜Ｃ（７０６〜７０８）を順に呼び出す処理を行い、最終的な処理結果データをメモリ領域７０５に格納し、データマージ処理部７０９に処理の実行指示を出す。ここで、順次処理装置７０２は、実行すべきＷＥＢサービスを単位として順次処理記述文書を分割しており、子サービスに対応するサービス化情報は、実行に応じてメモリ領域７０５に展開され、実行後に消去される。
【００３７】
指示を受けたデータマージ処理部７０９は、メモリ領域７０５内の上記処理結果データを、次の処理を行うレイアウト処理部７１０が解釈できる形態のデータにまとめ、まとめたデータをメモリ領域７０５に格納する。レイアウト処理部７１０は、データマージ処理部７０９によって格納されたデータを用いてレイアウト処理を行い、その処理結果をメモリ領域７０５に格納する。レンダリング処理部７１１は、レイアウト処理されたデータに基づいてレンダリングを行い、レンダリング結果をメモリ領域７０５に格納する。プリント出力処理部７１２は、レンダリング結果を紙に印刷し、得られた印刷結果７１３を出力する。その後、ＷＥＢサービス順次処理分割処理部７０２は、処理終了レスポンスをＵＩ画面７０３（クライアント）へ返す（７１４）。
【００３８】
以上のようにＷＥＢサービスから取得したデータを複写機内でまとめて印刷する系において、順次処理装置７０２を用いることにより、以下のような効果が得られる。即ち、
（ｉ）それぞれのＷＥＢサービスに対応したモジュールを作成することなく、使用する順次処理記述文書を切り替えるだけでデータ取得先のＷＥＢサービスを簡単に切り替えることができる、
（ii）順次処理装置７０２以外の処理系でもメモリ領域７０５を使用することから利用可能なメモリ容量が制限されるような場合においても、順次処理記述文書が分割実行されるので、メモリ使用量を最小限に押さえることができる。このため、ＷＥＢサービスを利用する構成を少リソース機器へ搭載することが可能となる。
【００３９】
以上説明したように、本実施形態によれば、順次処理記述文書がＷＥＢサービスの実行に対応した子サービスに対応する文書と、クライアントと通信したり、子サービスを順次実行したりするための親サービスに対応する文書とに分割される。即ち、複数のＷＥＢサービスを順番に呼び出す為に記述された順次処理記述文書（例えばＢＰＥＬ文書）を読み込み、逐次処理型の手法（例えばＳＡＸ）を用いて、文書内のＷＥＢサービスを呼び出す部分と、その部分に関連する変数の操作の部分を抽出する。そして、抽出された部分を１つにまとめて子の順次処理記述文書とする。このような、子の順次処理記述文書がＷＥＢサービス毎に生成される。又、元の順次処理記述文書では、抽出された部分を子の順次処理記述文書による処理を実行させるための記述に置換され、子の順次処理記述文書を順番に呼び出す親の順次処理記述文書が作成される。
【００４０】
そして、処理の実行においては、親サービスと実行対象の子サービスのみがメモリに展開されるように制御される。即ち、実行すべきＷＥＢサービスを実行するのに必要な変数操作の部分と当該ＷＥＢサービスを呼び出す部分の情報を子サービスとしてメモリに展開し、不必要になった子サービスをメモリから削除する。より具体的には、親の文書をまずＤＯＭ展開して親サービスとして登録しておき、実行指示によって親の内容を実行させる。そして、親サービスから子サービスを呼び出す時点で、その対象となる子の文書をＤＯＭ展開してサービスとして登録し、子サービスにメッセージを送り、結果を受け取ったら子サービスのサービス化情報を削除する。このように、子サービスの為にＤＯＭ展開した内容をメモリから解放させながら（子サービスのサービス化情報を削除しながら）順次処理を行う。
【００４１】
以上のように、本実施形態は、逐次型処理と構造モデル化による処理の両者の手法を組み合わせた処理を実現させることにより、メモリを解放しながら順次処理を実行させることを可能としている。例えば、順次処理記述文書内の変数操作とＷＥＢサービスを呼び出す処理において、処理を実行させる時点で必要な情報だけをメモリ展開し、不必要になったら削除してメモリを解放していきながら実行させることが可能となる。この結果、リソースの少ない機器で実行させる場合でも、容量が大きい順次処理記述文書の処理を読み込んで実行することができ、様々な少リソースの機器に本実施形態のＷＥＢサービス実行装置を搭載可能となる。又、実行すべきＷＥＢサービスを単位として構造モデルがメモリに展開されるので、順次記述文書に前方参照が存在しても、これに対応できる。
【００４２】
＜他の実施形態＞
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４３】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００４４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される場合に限らない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も本発明に含まれる。
【００４５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００４６】
【図１】実施形態による順次処理装置の概要を説明する図である。
【図２】順次処理記述文書を説明する図である。
【図３】実施形態の順次処理装置の詳細な構成を示すブロック図である。
【図４】実施形態の順次処理装置の分割処理部による順次処理記述文書の分割処理を説明する図である。
【図５】実施形態の順次処理装置における順次処理部の処理を説明するフローチャートである。
【図６】実施形態の順次処理装置におけるサービス化処理部の処理を説明するフローチャートである。
【図７】実施形態の順次処理装置が適用された複写機の構成例を示すブロック図である。
【図１】
2007323443.tif 000003
【図２】
2007323443.tif 000004
【図３】
2007323443.tif 000005
【図４】
2007323443.tif 000006
【図５】
2007323443.tif 000007
【図６】
2007323443.tif 000008
【図７】
2007323443.tif 000009