(57)【要約】【課題】実行中のクライアントプログラムについて、インタフェースの変更による修正、再配置、停止、再実行等の変更管理を動的に行うことを可能とする。【解決手段】クライアントプログラムが、サーバプログラムを提供している所定ＵＲＬへアクセス要求を送付して、エラーが発生したとき、このエラーの発生原因を解析するためのプログラムを起動し、インタフェース定義情報の変更によるエラーか否かを判定し、インタフェース定義情報の変更によるエラーの場合は、上記クライアントプログラムの変更箇所を解析するプログラムを起動し、変更箇所の特定を行い、所定手続きに基づいて上記クライアントプログラムの上記変更箇所を変更して、上記クライアントプログラムを実行する。【選択図】  図１
2004272317.tif 000002
【特許請求の範囲】
【請求項１】
所定ＵＲＬへアクセス要求を送付して、エラーが発生したとき、ＷＳＤＬファイルの変更によるエラーか否かを判定し、ＷＳＤＬファイルの変更によるエラーの場合は、上記プログラムの変更箇所を決定し、所定手続きに基づいて、上記変更箇所を変更して、上記プログラムを実行するＷｅｂアクセス方法および装置並びにその処理プログラム。
【請求項２】
前記アクセス要求送付のエラーの検出は、エラーが発生した場合に受け取るｆａｕｌｔメッセージにより起動され、ｆａｕｌｔメッセージの内容を解析し、その種類に応じて、送付したアクセス要求メッセージのエラーかどうかを判断するように構成したことを特徴とする請求項１記載のプログラム管理方法。
【請求項３】
前記プログラムの変更箇所の検出は、請求項２記載のアクセス要求送付エラー検出の判断により起動され、エラーが生じたアクセス要求メッセージの解析を行い、その結果により改訂前ＷＳＤＬファイルと改訂後ＷＳＤＬファイルを比較することにより、発生したエラーがＷＳＤＬファイルの変更によるエラーかどうかを判断し、その結果によりプログラムの変更箇所を検出するように構成したことを特徴とする請求項１記載のプログラム管理方法。
【請求項４】
前記プログラムの変更箇所の変更は、請求項３記載の変更箇所検出の判断により起動され、プログラムの変更箇所を変更するように構成したことを特徴とする請求項１記載のプログラム管理方法。
【請求項５】
前記プログラム変更箇所変更後の実行は、請求項４記載の変更箇所変更の判断により起動され、変更したプログラムを実行するように構成したことを特徴とする請求項１記載のプログラム管理方法。
【請求項６】
前記アクセス要求送付のエラー検出は、受け取ったｆａｕｌｔメッセージの種類が、送付したアクセス要求メッセージのエラーであることを解析するように構成したことを特徴とした請求項２記載のプログラム管理方法。
【請求項７】
前記プログラムの変更箇所の検出は、エラーが発生したアクセス要求メッセージをプログラムから取得し、そのメッセージがプログラム作成時に取得保存した改訂前ＷＳＤＬファイルにしたがって作成されているかを解析し、その結果により変更箇所を検出するように構成したことを特徴とした請求項３記載のプログラム管理方法。
【請求項８】
前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認により、改訂前ＷＳＤＬファイルから生成された送付アクセス要求メッセージであることを確認できた場合に、プログラム作成時に取得保存した改訂前ＷＳＤＬファイルの取得条件から改訂後ＷＳＤＬファイルの保存場所情報を取得するように構成したことを特徴とした請求項３記載のプログラム管理方法。
【請求項９】
前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認の判断結果により取得した改訂後ＷＳＤＬファイルの保存場所情報から、改訂後ＷＳＤＬファイルを取得するように構成したことを特徴とした請求項３記載のプログラム管理方法。
【請求項１０】
前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認の判断結果により取得した改訂後ＷＳＤＬファイルの保存場所情報から、改訂後ＷＳＤＬファイルを取得し、改訂前ＷＳＤＬファイルと改訂後ＷＳＤＬファイルを比較し、ＷＳＤＬファイルの変更の種類を解析するように構成したことを特徴とした請求項３記載のプログラム管理方法。
【請求項１１】
前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認の判断結果により取得した改訂後ＷＳＤＬファイルの保存場所情報から、改訂後ＷＳＤＬファイルを取得保存し、ＷＳＤＬファイル変更の種類の解析結果から、プログラムの変更箇所を検出するように構成したことを特徴とした請求項３記載のプログラム管理方法。
【請求項１２】
前記プログラムの変更箇所の変更は、請求項３記載のプログラム変更箇所の検出により、検出された変更内容に従い、プログラムの変更箇所の生成を行うように構成したことを特徴とする請求項４記載のプログラム管理方法。
【請求項１３】
前記プログラムの変更箇所変更後の実行は、請求項１２記載の変更により生成したプログラムを実行するように構成したことを特徴とする請求項５記載のプログラム管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、プログラムの変更管理に関する。
【従来の技術】近年、クライアント／サーバプログラムは分散オブジェクト技術を利用し、資源の有効利用、部品化が進んできている。インターネットを用い、ローカルなネットワークを超えた分散オブジェクト技術として、Ｄａｖｉｄ  Ａ．  Ｃｂａｐｐｅｌｌ他著「Ｊａｖａ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ」（出版社：Ｏ’Ｒｅｉｌｌｙ  ＆  Ａｓｓｏｃｉａｔｅｓ，Ｉｎｃ．，  ２００２．３）（ＪａｖａおよびＪａｖａ関連の商標およびロゴは、米国もしくはその他のＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．の商標または登録商標です）に記載されているＷｅｂサービスがある。本文献では、Ｗｅｂサービスの基礎技術として３つの技術を挙げており、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＵＤＤＩ（Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｉｓｃｏｖｅｒｙ，  ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ）について記述している。
【０００２】
本文献によれば、ＳＯＡＰは構造化文書交換に使う封筒構造の定義であり、この定義にしたがって記述した構造化文書をＳＯＡＰメッセージと呼んでいる。Ｗｅｂサービスを用いたクライアント／サーバプログラムではこのＳＯＡＰメッセージを用いて通信を行う。このような技術は本文献  Ｐ．２５〜Ｐ５３に開示されている。
次にＷＳＤＬとは、Ｗｅｂサービスのインタフェースを定義するための構造化文書フォーマットである。Ｗｅｂサービスを用いたクライアント／サーバプログラムでは、このＷＳＤＬフォーマットにしたがい記述したＷＳＤＬファイルをインタフェースとし、ＳＯＡＰメッセージを用い通信を行う。このような技術は本文献Ｐ．７２〜Ｐ９５に開示されている。
最後に、ＵＤＤＩとは、Ｗｅｂサービスに対するグローバルレジストリと標準仕様を提供しており、インターネットで共通に利用できるレジストリとして公開されている。したがって、Ｗｅｂサービスを用いたクライアント／サーバプログラムでは、サーバプログラムのＷｅｂサービスをこのＵＤＤＩレジストリに登録しておき、クライアントプログラムはこのＵＤＤＩレジストリに登録されているＷｅｂサービスを見つけることにより、サーバプログラムのＷｅｂサービスが利用できるようになる。このような技術は本文献  Ｐ．９８〜Ｐ１３９に開示されている。
【０００３】
【非特許文献１】
Ｄａｖｉｄ  Ａ．  Ｃｂａｐｐｅｌｌ他著「Ｊａｖａ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ」（出版社：Ｏ’Ｒｅｉｌｌｙ  ＆  Ａｓｓｏｃｉａｔｅｓ，Ｉｎｃ．，  ２００２．３）
【０００４】
【発明が解決しようとする課題】
分散技術におけるアクセス要求送付先のインタフェース定義情報が変更されて、クライアントプログラムを変更し、作成する場合を考えてみる。保守作業者は、クライアントプログラムがエラーメッセージを受け付けた原因がインタフェース定義情報の変更によるものであることをわかっており、それをもとにクライアントプログラムを修正するものとする。
【０００５】
上記のようなクライアントプログラムの保守作業に際しては、エラーを発生させた送付メッセージが、改定前のインタフェース定義情報にしたがって、生成されたメッセージかどうかを確認し、生成されたメッセージが正しい場合は、改訂後のインタフェース定義情報を取得し、改訂後のインタフェース定義情報にしたがったメッセージを送付するようにクライアントプログラムを修正する。
【０００６】
しかしながら、従来の方式によるクライアントプログラムの生成は、インタフェース定義情報と雛型からクライアントプログラムを生成するものにすぎない。そのため、実行中のクライアントプログラムに発生したエラーがインタフェース定義情報の変更によるエラーであると原因がわかっていても、保守作業者は、一旦クライアントプログラムを停止させ、改訂後のインタフェース定義情報を取得し、それにそったクライアントプログラムの雛型の作成を再度行い、インタフェース定義情報の変更箇所とプログラムの修正個所の対応関係を判断しながら作業を行う手間のかかる作業となってしまう。
【０００７】
本発明の目的は、実行中クライアントプログラムにおける、サーバプログラムの変更による修正と実行を動的に行うようにすることにある。
【０００８】
【課題を解決するための手段】
前記課題を改善するため、クライアントプログラムが、サーバプログラムを提供している所定ＵＲＬへアクセス要求を送付して、エラーが発生したとき、このエラーの発生原因を解析するためのプログラムを起動し、インタフェース定義情報の変更によるエラーか否かを判定し、インタフェース定義情報の変更によるエラーの場合は、上記クライアントプログラムの変更箇所を解析するプログラムを起動し、変更箇所の特定を行い、所定手続きに基づいて上記クライアントプログラムの上記変更箇所を変更して、上記クライアントプログラムを実行する。
【０００９】
【発明の実施の形態】
以下、本発明の第一の実施例を図面に基づいて説明する。
図１は本実施例のシステム構成を示す。ネットワーク５に接続されたコンピュータ１はプログラム管理機能を備えたクライアントプログラムサーバであり、コンピュータ２はネットワークを介してクライアントプログラムサーバのプログラムを利用する一般ユーザである。ネットワークに接続されたコンピュータ３はｗｅｂサービスを提供するプログラムを格納したｗｅｂサービスサーバである。またコンピュータ４はｗｅｂサービスを登録管理するデータベースを格納したＵＤＤＩレジストリである。本実施例はサーバ−クライアント間の通信手段について特定するものではないが、インターネット上でのＨＴＴＰプロトコルによる通信を前提として説明する。すなわち、クライアントプログラムサーバ１はＨＴＴＰサーバとしての機能を備え、一般ユーザ２はｗｅｂブラウザを介してクライアントプログラムサーバ１と通信するものとする。ｗｅｂサービスサーバ３はＨＴＴＰサーバとしての機能を備え、クライアントプログラムサーバ１とＳＯＡＰメッセージを用いて通信するものとする。また、ＵＤＤＩレジストリ４はＨＴＴＰサーバとしての機能を備え、クライアントプログラムサーバ１とＳＯＡＰメッセージを用いて通信するものとする。従ってクライアントプログラムサーバ１は、ディプレイ６とキーボード等のデータ入力装置７と、ＣＰＵ８と、メモリ９と、改定前後のＷＳＤＬファイルを蓄積するデータベース１０から構成され、メモリ９には、変更管理プログラム７２が保持される。この変更管理プログラム７２には、開発環境７０と実行環境７１とが含まれる。実行環境７１にはＨＴＴＰサーバプログラム２４と、クライアントプログラム２５と、クライアントプログラム実行プログラム２６と、アクセス要求エラー検出プログラム２７と、プログラムエラー発生個所特定プログラム２８が含まれる。開発環境７０には、エラー回避クライアントプログラム生成プログラム２９が含まれる。また、一般ユーザ２は、ディスプレイ１１と、入力装置１２と、ＣＰＵ１３と、メモリ１４から構成され、メモリ１４にはｗｅｂブラウザプログラム３１が保持される。ｗｅｂサービスサーバ３は、ディスプレイ１５と、入力装置１６と、ＣＰＵ１７と、メモリ１８とデータベース３０から構成され、メモリ１８には、ＨＴＴＰサーバプログラム３２と、ｗｅｂサービスプログラム３３が保持される。また、ｗｅｂサービスサーバ３は、改定前ＷＳＤＬファイル３６と改定後ＷＳＤＬファイル３７をデータベース３０に保持している。ＵＤＤＩレジストリ４は、ディスプレイ１９と、入力装置２０と、ＣＰＵ２１と、メモリ２２と、データベース２３から構成され、メモリ２２には、ＨＴＴＰサーバプログラム３４と、ＵＤＤＩプログラム３５が保持される。また、ＵＤＤＩレジストリ４は、データベース６８に改訂後ＷＳＤＬファイル保存場所情報５１を保持している。
【００１０】
図２は本実施例で実行されるクライアントプログラム２５の構成を示す。図に示すように、制御機能３８、業務処理機能３９、表示機能４０、アダプタプログラム４１、ＳＯＡＰクライアントプログラム４２、ＷＳＤＬスタブプログラム４３から構成される。
一般ユーザクライアント２がクライアントプログラム２５にリクエストを送付し、クライアントプログラム２５がｗｅｂサービスサーバ３にアクセス要求を送付、処理結果を受け取り、一般ユーザクライアントに処理結果を表示する。
Ｗｅｂサービスサーバ３は住民基礎情報である住民の名前、住所、年齢等の情報を登録管理するサーバプログラムであり、アクセス要求を受け付けるメッセージとしてＳＯＡＰメッセージを用い、インタフェース定義情報の記述にはＷＳＤＬを用いる。ＷＳＤＬを用いて記述した改訂前ＷＳＤＬファイル３６のｍｅｓｓａｇｅタグ部分を図３に示す。１０１はｍｅｓｓａｇｅタグであり、アクセス要求を受け付けるメソッド名の定義としてｎａｍｅ属性にｓｅｔＪｕｋｉＬｉｓｔを指定している。１０２はｐａｒｔタグであり、ｓｅｔＪｕｋｉＬｉｓｔメソッドの引数の定義としてｎａｍｅ属性にＮａｍｅを指定し、この型定義としてｔｙｐｅ属性にｓｔｒｉｎｇを指定している。１０３、１０４も同様にｓｔｒｉｎｇ型で、Ａｄｄｒｅｓｓ変数とＡｇｅ変数を指定している。
【００１１】
図４に改訂後ＷＳＤＬファイル３７のｍｅｓｓａｇｅタグ部分を示す。改訂前ＷＳＤＬファイル３６に１０５のｐａｒｔタグが付加され改訂されている。１０５はｐａｒｔタグのｎａｍｅ属性としてＢｉｒｔｈｄａｙを指定し、ｔｙｐｅ属性にｓｔｒｉｎｇを指定している。
【００１２】
以下、ｗｅｂサービスサーバ３の管理者が住民基礎情報の内容充実化をはかるために、登録関数の引数一つを増やし、生年月日を追加することにしたものとして、説明を行う。したがって、ＵＤＤＩレジストリに登録する自サービスのインタフェースである改訂前ＷＳＤＬファイル３６の保存場所情報を改訂後ＷＳＤＬファイル３７の保存場所情報に入れ替えを行った。この時の改定後ＷＳＤＬファイル３７のｍｅｓｓａｇｅタグ部分は図４に示す。
【００１３】
クライアントプログラム２５の表示機能４０は、図５に示すＨＴＭＬを記述した改訂前のファイルであり、２０１はｈｔｍｌタグであり、２０２はｈｅａｄタグ、２０３はｔｉｔｌｅタグであり「住民基礎情報入力」をｗｅｂブラウザタイトルに表示するように定義している。２０４はｂｏｄｙタグであり、ここからｗｅｂブラウザに表示される内容であることを示している。したがって２０５の文字列「住民基礎情報入力」の記述でｗｅｂブラウザに文字列「住民基礎情報入力」が表示される。２０６は一般ユーザクライアント２が入力するＦＯＲＭタグであり、ｈｔｔｐリクエストのＰＯＳＴメソッド実行を定義している。また、このときのアクションタイプとして、ＳＥＴＪＵＫＩを定義している。
【００１４】
２０７から２０９はこのＦＯＲＭタグで送信される内容を定義している。テキスト入力項目として２０７のＮａｍｅ、２０８のＡｄｄｒｅｓｓ、２０９のＡｇｅと、このテキスト入力項目２０７、２０８、２０９の情報を送信するためのｓｕｂｍｉｔタグ２１０と、テキスト入力項目の内容を消去するｒｅｓｅｔタグ２１１から構成される。この改訂前ＪＳＰファイルが一般ユーザクライアント２のｗｅｂブラウザに表示される画面を図７に示す。
【００１５】
改訂後のＪＳＰファイルの内容を図６に示す。改訂前ＪＳＰファイルにテキスト入力項目２１２のＢｉｒｔｈｄａｙが付加され改訂されている。この改訂後ＪＳＰファイルが一般ユーザクライアント２のｗｅｂブラウザに表示される画面を図８に示す。
【００１６】
次にテキスト入力項目とＷＳＤＬファイルのｐａｒｔタグとの関係を説明する。図５の改訂前ＪＳＰファイルのテキスト入力項目は、図３に示す改定前ＷＳＤＬファイル３６のｍｅｓｓａｇｅタグの子要素であるｐａｒｔタグで記述された引数と同一の項目である。つまり、ｐａｒｔタグで記述された１０２のＮａｍｅ、１０３のＡｄｄｒｅｓｓ、１０４のＡｇｅが図５のＪＳＰファイルのテキスト入力項目である２０７のＮａｍｅ、２０８のＡｄｄｒｅｓｓ、２０９のＡｇｅとなる。
次に、このテキスト入力項目がクライアントプログラム２５で処理される手順を説明する。
【００１７】
図２において一般ユーザクライアント２がｗｅｂブラウザプログラム３１から入力したテキスト入力項目の内容は２５＿１のＨＴＴＰリクエストでクライアントプログラム２５へ送られ、制御機能３８がリクエストを受け付ける。このリクエストは２５＿２で業務処理機能３９へ処理要求が行われる。２５＿３で業務処理機能３９はアダプタプログラム４１へ、リクエストを引数として処理を依頼する。アダプタプログラム４１はリクエストのテキスト入力項目の内容を取り出し、ＳＯＡＰクライアントプログラム４２のメソッドを実行し、ＷＳＤＬスタブプログラム４３を使用し、ｗｅｂサービスサーバ３にアクセス要求を送付し、ｗｅｂサービスを利用する。ｗｅｂサービスサーバ３はアクセス要求を受け付けた場合、２５＿４で結果として戻り値を返却する。返却された戻り値は、ＷＳＤＬスタブ４３、ＳＯＡＰクライアントプログラム４２、アダプタプログラム４１を通じて業務処理機能３９に格納される。２５＿６で制御機能３８は業務処理機能３９の処理終了の通知を受けて、２５＿７の表示機能４０に出力要求を行う。２５＿８で表示機能４０では業務処理機能３９に格納されている戻り値を取得し、２５＿９で結果を受け取る。２５＿９で受け取った結果をレスポンスとして一般ユーザクライアント２のｗｅｂブラウザプログラム３１に表示する。
【００１８】
次に、クライアントプログラム２５で動作する各プログラムについて説明する。
ＷＳＤＬスタブプログラム４３は図３の改定前ＷＳＤＬファイル３６から生成される。図９に改定前ＷＳＤＬファイル３６から生成されたＷＳＤＬスタブプログラムのソースコードを示す。２０１０はＷＳＤＬスタブプログラムのパッケージ宣言である。ここでは、パッケージとしてｊｐ．ｃｏ．Ｏｈｔａｋｅ．ｗｓｄｌというパッケージ名称とし各クラスはこのパッケージに生成されることを意味する。２０２０はＪｕｋｉＬｉｓｔ＿Ｓｅｒｖｉｃｅのインタフェース宣言であり、メソッドとして２０３０のｓｅｔＪｕｋｉＬｉｓｔを持つことを宣言している。また、この２０３０では、このメソッドの引数としてＳｔｒｉｎｇ型のＮａｍｅ、Ａｄｄｒｅｓｓ、Ａｇｅを持ち、戻り値としてｂｏｏｌｅａｎ型を返すことを定義している。２０４０は２０２０の定義の終わりを表している。
【００１９】
２０５０は２０１０と同様にパッケージ宣言である。２０６０はｒｅｇｉｓｔｒｙ．Ｒｅｇｉｓｔｒｙクラスのインポート宣言をしている。２０７０ではｒｅｇｉｓｔｒｙ．ＲｅｇｉｓｔｒｙＥｘｃｅｐｔｉｏｎクラスのインポート宣言をしている。２０８０から２１５０ではＪｕｋｉＬｉｓｔ＿ＳｅｒｖｉｃｅＨｅｌｐｅｒクラスを定義しており、２０９０と２１２０にこのクラスが持つメソッドを定義している。２１００では２０９０で宣言されたメソッドｂｉｎｄ（）の戻り値を定義している。２１１０は２０９０の定義の終わりである。２１３０では２１２０で宣言されたメソッドｂｉｎｄ（Ｓｔｒｉｎｇ  ｕｒｌ）の戻り値を定義している。
【００２０】
図１０は図４に示す改訂後ＷＳＤＬファイル３７から生成されるＷＳＤＬスタブプログラムのソースコードである。図９に示すソースコードとの違いは、２０３０に示すｓｅｔＪｕｋｉＬｉｓｔメソッドの引数にＳｔｒｉｎｇ型Ｂｉｒｔｈｄａｙが追加されたことである。これを図１０の２１６０に示す。
【００２１】
次に、改訂前ＷＳＤＬファイル３６から生成された図９のＷＳＤＬスタブプログラムを利用するＳＯＡＰクライアントプログラム４２のソースコードを図１１に示す。３０１０はパッケージ宣言である。３０２０から３０７０でＩｎｖｏｋｅ＿ｊｕｋｉＬｉｓｔクラスを定義している。３０３０はこのＩｎｖｏｋｅ＿ｊｕｋｉＬｉｓｔクラスのメソッドの宣言であり、引数としてＳｔｒｉｎｇ型のＮａｍｅ、Ａｄｄｒｅｓｓ、Ａｇｅと戻り値としてｂｏｏｌｅａｎ型を定義している。３０４０は２０９０から２１１０で定義されたＪｕｋｉＬｉｓｔ＿ＳｅｒｖｉｃｅＨｅｌｐｅｒクラスのメソッドｂｉｎｄ（）を用いてＪｕｋｉＬｉｓｔ＿Ｓｅｒｖｉｃｅクラスのインスタンスを得ている。次に３０５０では、ＪｕｋｉＬｉｓｔ＿Ｓｅｒｖｉｃｅクラスのインスタンスを用いて２０３０で定義されたメソッドｓｅｔＪｕｋｉＬｉｓｔを使用し、結果を得ている。
【００２２】
図１２に図１１のＳＯＡＰクライアントプログラムを利用するアダプタプログラム４１のソースコードを示す。アダプタプログラム４１は４０１０でｊｐ．ｃｏ．Ｏｈｔａｋｅ．ａｄａｐｔｅｒパッケージ宣言をしている。４０２０ではｊｐ．ｃｏ．Ｏｈｔａｋｅ．ｗｓｄｌパッケージ全てをインポートし、４０３０ではｊａｖａｘ．ｓｅｒｖｌｅｔ．ｈｔｔｐパッケージ全てをインポートしている。４０４０から４１５０では、ａｄｐ＿Ｉｎｖｏｋｅ＿ｊｕｋｉＬｉｓｔクラスの定義を行っている。４０５０から４１４０ではこのクラスのメソッド定義をしている。このメソッドａｄｐ＿ｓｅｔｊｕｋｉは戻り値がＢｏｏｌｅａｎ型で引数がＨｔｔｐＳｅｒｖｌｅｔＲｅｑｕｅｓｔ型ｒｅｑｕｅｓｔである。
【００２３】
４０６０では戻り値用の変数ａｄｐ＿ｒｔｎの初期化をｆａｌｓｅで行っている。次に４０７０から４０９０ではｒｅｑｕｅｓｔ変数が保持している値をそれぞれ取り出し、ａｄｐ＿ｎａｍｅ、ａｄｐ＿ａｄｄｒｅｅｓｓ、ａｄｐ＿ａｇｅへと代入している。４１００では３０２０で定義されたクラスのインスタンスを生成している。４１２０ではこのインスタンスでメソッドｓｅｔｊｕｋｉを実行し、結果をａｄｐ＿ｒｔｎに代入している。
【００２４】
図１３は図１０に示す改訂後ＷＳＤＬファイル３７から生成されるＷＳＤＬスタブプログラムのソースコードを利用するＳＯＡＰクライアントプログラムのソースコードである。図１１との違いは、３０８０のメソッドの引数にＳｔｒｉｎｇ型のＢｉｒｔｈｄａｙが増加している事と、３０９０のメソッドの引数にＳｔｒｉｎｇ型のＢｉｒｔｈｄａｙが増加している事である。
【００２５】
図１４は図１３に示すＳＯＡＰクライアントプログラムを利用するためのアダプタプログラムのソースコードである。図１２との違いは、４１６０と４１７０である。４１６０では、Ｓｔｒｉｎｇ型の変数ａｄｐ＿ｂｉｒｔｈｄａｙにｒｅｑｕｅｓｔ変数から値を取り出し、代入している。４１７０では、実行するメソッドｓｅｔｊｕｋｉの引数ａｄｐ＿ｂｉｒｔｈｄａｙが増加している。
次に、ｗｅｂサービスサーバ３のｗｅｂサービスプログラム３３のインタフェースが、改訂前ＷＳＤＬファイル３６から改訂後ＷＳＤＬファイル３７へ変更された場合における変更管理プログラム７２の処理概要を図１５に示す。
【００２６】
Ｆａｕｌｔメッセージ４４を、クライアントプログラム２５が受け取り、アクセス要求エラーの検出プログラム２７が実行され、プログラムエラー発生個所特定プログラム２８が実行され、エラー回避クライアントプログラム生成プログラム２９が実行され、クライアントプログラム実行プログラム２６が実行される。
【００２７】
クライアントプログラム２５が、改訂後ｗｅｂサービスプログラム３３を有するｗｅｂサービスサーバ３にアクセス要求を送付した結果、Ｆａｕｌｔメッセージ４４を取得した時、クライアントプログラム２５では、ＷＳＤＬスタブプログラム４３がＦａｕｌｔメッセージ４４を取得し、ＳＯＡＰクライアント４２へ返信する。ＳＯＡＰクライアント４２はアダプタプログラム４１へＦａｕｌｔメッセージ４４を返信する。アダプタプログラム４１がＦａｕｌｔメッセージ４４を受け取ると、Ｆａｕｌｔメッセージ取得通知プログラム４５を実行する。Ｆａｕｌｔメッセージ取得通知プログラム４５を実行したアダプタプログラム４１は完全停止フラグまたは、一時停止フラグに基づき処理結果を業務処理機能３９に返却する。アダプタプログラム４１から結果フラグを受け取った業務処理機能３９は処理終了を制御機能３８に伝える。処理終了を伝えられた制御機能３８は表示機能４０に出力要求を行う。出力要求を受けた表示機能４０は業務処理機能３９の処理結果を取得し、一般ユーザクライアント２のｗｅｂブラウザプログラムにレスポンスを返す。
【００２８】
図１５に示した処理概要の詳細を以下に示す。
まず、アクセス要求エラー検出プログラム２７の手順を図１６に示す。アクセス要求エラー検出プログラム２７は、Ｆａｕｌｔメッセージ取得通知プログラム４５、Ｆａｕｌｔメッセージ解析プログラム４６から構成される。
Ｆａｕｌｔメッセージ取得通知プログラム４５の処理フローを図１９に示す。Ｆａｕｌｔメッセージ取得通知プログラム４５はＦａｕｌｔメッセージを受け取る（３００）。次にＦａｕｌｔメッセージ解析プログラム４６を実行し、Ｆａｕｌｔメッセージ４４を送る（３０１）。Ｆａｕｌｔメッセージ解析プログラム４６の戻り値を判定する（３０２）。Ｆａｕｌｔメッセージ解析プログラム４６の戻り値がＣｌｉｅｎｔフラグの場合、アダプタプログラム４１へ一時停止フラグを返信し（３０３）、Ｃｌｉｅｎｔフラグ以外の場合、完全停止フラグをアダプタプログラム４１へ返信する（３０４）。
Ｆａｕｌｔメッセージ解析プログラム４６の処理フローを図２０に示す。Ｆａｕｌｔメッセージ解析プログラム４６は受け取ったＦａｕｌｔメッセージ４４を解析する（４００）。このメッセージに記述されている全てのタグについて以下の判定を行う（４０１）。
全てのタグの中からｆａｕｌｔＣｏｄｅタグを見つけ出し（４０２）、このタグの値がＣｌｉｅｎｔエラーを表すエラーコードかどうかを判断する（４０３）。Ｃｌｉｅｎｔエラーを表すエラーコードの場合、既存メッセージ確認プログラム４７を実行する（４０４）。既存メッセージ確認プログラム４７の戻り値がＣｌｉｅｎｔフラグの場合（４０５）、ＣｌｉｅｎｔフラグをＦａｕｌｔメッセージ取得通知プログラム４５に返信し（４０６）、Ｃｌｉｅｎｔフラグ以外の場合、Ｃｌｉｅｎｔフラグ以外を返信する（４０７）。４０３でＣｌｉｅｎｔエラーを表すエラーコードでない場合、Ｆａｕｌｔメッセージ取得通知プログラム４５へＣｌｉｅｎｔフラグ以外を返信する（４０８）。
プログラムエラー発生個所検出プログラム２８の手順を図１７に示す。プログラムエラー発生個所検出プログラム２８は、既存メッセージ確認プログラム４７、ＵＤＤＩ検索プログラム４８、ＷＳＤＬファイル取得プログラム５２、ＷＳＤＬファイル比較プログラム５３から構成される。
【００２９】
既存メッセージ確認プログラム４７の処理フローを図２１に示す。既存メッセージ確認プログラム４７は、ｗｅｂサービスサーバ３にアクセス要求を送付したリクエストメッセージ４９を受け取る（５００）。次に、改訂前ＷＳＤＬファイル３６をデータベース１０から取得し（５０１）、改訂前ＷＳＤＬファイル３６から確認用リクエストメッセージ６７を生成する（５０２）。リクエストメッセージ４９の全てのタグについて（５０３）、生成した確認用リクエストメッセージ６７のタグと同一かどうか判定する（５０４）。
改訂前ＷＳＤＬファイル３６から生成されたメッセージである場合、ＵＤＤＩ検索プログラム４８を実行する（５０５）。改訂前のＷＳＤＬファイル３６から生成されたメッセージではない場合、改定前のＷＳＤＬファイル３６をＷＳＤＬスタブ生成プログラム５４へ送る（５０９）。５０５で実行したＵＤＤＩ検索プログラム４８の戻り値を判定する（５０６）。戻り値がＣｌｉｅｎｔフラグの場合、Ｆａｕｌｔメッセージ解析プログラム４６へＣｌｉｅｎｔフラグを返信し（５０７）、Ｃｌｉｅｎｔフラグ以外の場合、Ｃｌｉｅｎｔフラグ以外を返信する（５０８）。
ＵＤＤＩ検索プログラム４８の処理フローを図２２に示す。ＵＤＤＩ検索プログラム４８は改訂前ｗｅｂサービス取得条件５０をデータベース１０から取得し（６００）、この条件に基づき、ＵＤＤＩレジストリ４でｗｅｂサービスの検索を行う。全てのｗｅｂサービスについて検索し（６０１）、改訂前ｗｅｂサービス取得条件５０に一致するｗｅｂサービスを見つけることができた場合（６０２）、ＷＳＤＬファイル保存場所情報が改訂されているか判定する（６０３）。
【００３０】
ＷＳＤＬファイル保存場所情報が改訂されている場合、ＵＤＤＩレジストリ４に登録されている改訂後ＷＳＤＬファイル保存場所情報４９を取得し（６０４）、ＷＳＤＬファイル取得プログラム５２へ送る。ＷＳＤＬファイル取得プログラム５２の戻り値を判定し（６０５）、Ｃｌｉｅｎｔフラグの場合、既存メッセージ確認プログラム４７へＣｌｉｅｎｔフラグを返信し（６０６）、Ｃｌｉｅｎｔフラグ以外の場合、Ｃｌｉｅｎｔフラグ以外を返信する（６０７）。６０３でＷＳＤＬファイル保存場所情報が改訂されていない場合、既存メッセージ確認プログラム４７へＷＳＤＬ改訂なしエラーを返信する（６０８）。６０２で改訂前ｗｅｂサービス取得条件５０に一致するｗｅｂサービスを見つけることができなかった場合、既存メッセージ確認プログラム４７へｗｅｂサービス未検出エラーを返信する（６０９）。
【００３１】
ＷＳＤＬファイル取得プログラム５２の処理フローを図２３に示す。ＷＳＤＬファイル取得プログラム５２は、改訂後ＷＳＤＬファイル保存場所情報５１を受け取り（７００）、改訂後ＷＳＤＬファイル保存場所情報５１にしたがい、改訂後ＷＳＤＬファイル３７を取得する（７０１）。次に、改訂後ＷＳＤＬファイル３７が取得できたかどうかを判定し（７０２）、取得できた場合、取得した改訂後ＷＳＤＬファイル３７をＷＳＤＬファイル比較プログラム５３へ送り、実行する（７０３）。実行したＷＳＤＬファイル比較プログラム５３の戻り値について判定し（７０４）、戻り値がｐａｒｔタグ変更である場合、ＵＤＤＩ検索プログラム４８へＣｌｉｅｎｔフラグを返信し（７０５）、ｐａｒｔタグ変更以外の場合、Ｃｌｉｅｎｔフラグ以外を返信する（７０６）。７０２で改訂後ＷＳＤＬファイル３７を取得できなかった場合、ＵＤＤＩ検索プログラム４８へ、取得失敗エラーを返す（７０７）。
【００３２】
ＷＳＤＬファイル比較プログラム５３の処理フローを図２４に示す。初めに、ＷＳＤＬファイル比較プログラム５３は改定後ＷＳＤＬファイル３７を取得し（８００）、次に改定前ＷＳＤＬファイル３６を取得する（８０１）。
取得した改定前後のＷＳＤＬファイルの比較を行い（８０２）、抽出された相違部分がＷＳＤＬファイル中のｍｅｓｓａｇｅタグの子要素であるｐａｒｔタグの増減であれば、ＷＳＤＬスタブ生成プログラム５４を実行し、改定後のＷＳＤＬファイル３７を送る（８０３）。その後、ＷＳＤＬファイル取得プログラム５２へｐａｒｔタグ変更を返信する（８０４）。８０２での判定がｐａｒｔタグ増減以外の変更の場合、ｐａｒｔタグ以外変更エラーをＷＳＤＬファイル取得プログラム５２へ返信する（８０５）。
【００３３】
図１８に示すエラー回避クライアントプログラム生成プログラム２９の手順を以下に示す。エラー回避クライアントプログラム生成プログラム２９は、ＷＳＤＬスタブ生成プログラム５４、ＳＯＡＰクライアント生成プログラム５６、アダプタ生成プログラム５８、ＪＳＰ生成プログラム６０、クライアントプログラム生成プログラム６２から構成される。
ＷＳＤＬスタブ生成プログラム５４の処理フローを図２５に示す。ＷＳＤＬスタブ生成プログラム５４は改定後ＷＳＤＬファイル３７を受け取り（９００）、ＷＳＤＬスタブソース５５を生成するコマンドを実行する（９０１）。このＷＳＤＬスタブソース５５をＳＯＡＰクライアント生成プログラム５６へ送り実行する（９０２）。次に、ＪＳＰ生成プログラム６０へ改訂後ＷＳＤＬファイル３７を送り、実行する（９０３）。
【００３４】
次に、ＳＯＡＰクライアント生成プログラム５６の処理フローを図２６に示す。ＳＯＡＰクライアント生成プログラム５６はＷＳＤＬスタブソース５５を受け取る（１０００）。次に、ＷＳＤＬスタブソース５５を用いて、ＳＯＡＰクライアントプログラムソース５７を生成する（１００１）。ＳＯＡＰクライアントプログラムソース５７の生成の詳細は１００２から１００７で行われ、生成結果を図１３に示す。生成したＳＯＡＰクライアントプログラムソース５７をアダプタ生成プログラム５８へ送る（１００８）。
【００３５】
次に、アダプタ生成プログラム５８の処理フローを図２７に示す。アダプタ生成プログラム５８は受け取ったＳＯＡＰクライアントプログラムソース５７から（１１００）、アダプタプログラムソース５９を生成する（１１０１）。アダプタプログラムソース５９の生成は１１０２から１１０８で行われ、生成した結果を図１４に示す。次に図２５の９０３で実行されたＪＳＰ生成プログラム６０の処理が終了しているかどうかを判断し（１１０９）、アダプタプログラムソース５９をクライアントプログラム生成プログラム６２へ送り実行する（１１１０）。
【００３６】
ＪＳＰ生成プログラム６０の処理フローを図２８に示す。ＪＳＰ生成プログラム６０は改訂後ＷＳＤＬファイル３７を受け取る（１２００）。この改訂後ＷＳＤＬファイル３７のｍｅｓｓａｇｅタグの引数部分を入力項目とするＪＳＰファイル６１を生成する（１２０１）。１２０２から１２０４にＪＳＰファイル生成の詳細を示す。生成されたＪＳＰファイル６１の内容を図６に示す。次に、生成したＪＳＰファイル６１をクライアントプログラム生成プログラム６２へ送り、実行する（１２０５）。
【００３７】
クライアントプログラム生成プログラム６２の処理を以下に説明する。クライアントプログラム生成プログラム６２は、ＷＳＤＬスタブソース５５とＳＯＡＰクライアントプログラムソース５７とアダプタソース５９とＪＳＰファイル６１を受け取る。次に受け取ったＷＳＤＬスタブソース５５とＳＯＡＰクライアントプログラムソース５７とアダプタソース５９をｊａｖａｃコマンドによりコンパイルし、ｃｌａｓｓファイルを生成する。生成された各ｃｌａｓｓファイルをｊａｒコマンドによりｊａｒファイル形式のファイルＪＡＲファイル６８にする。次に、ＪＡＲファイル６８とＪＳＰファイル６１をｊａｒコマンドの−ｗａｒオプションにてｗａｒファイル形式のファイルＷＡＲファイル７３にする。最後にこのＷＡＲファイル７３をクライアントプログラム実行プログラム２６へ送り、クライアントプログラム実行プログラム２６を実行する。
【００３８】
クライアントプログラム実行プログラム２６は、改定前のＷＳＤＬファイル３６に基づいたＷＡＲファイルを使用したクライアントプログラム２５を停止し、クライアントプログラム生成プログラム６２から受け取ったＷＡＲファイル７３を使用したクライアントプログラムを配置し、実行する。
【００３９】
【発明の効果】
本発明によれば、実行中のクライアントプログラムについて、インタフェースの変更による対応変更管理が動的に行えるため、サービス停止期間を短縮することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用したシステム構成を示す図である。
【図２】本発明に適用されるクライアントプログラムの構成を示す図である。
【図３】本発明に適用される改定前ＷＳＤＬファイルのメッセージ定義を示す図である。
【図４】本発明に適用される改定後ＷＳＤＬファイルのメッセージ定義を示す図である。
【図５】本発明に適用されるクライアントプログラムの改訂前の表示機能を示す図である。
【図６】本発明に適用されるクライアントプログラムの改訂後の表示機能を示す図である。
【図７】本発明に適用される改訂前の一般ユーザクライアントに表示される画面を示す図である。
【図８】本発明に適用される改訂後の一般ユーザクライアントに表示される画面を示す図である。
【図９】本発明に適用される改訂前のＷＳＤＬスタブプログラムコードを示す図である。
【図１０】本発明に適用される改訂後のＷＳＤＬスタブプログラムコードを示す図である。
【図１１】本発明に適用される改訂前のＳＯＡＰクライアントプログラムコードを示す図である。
【図１２】本発明に適用される改訂前のアダプタプログラムコードを示す図である。
【図１３】本発明に適用される改訂後のＳＯＡＰクライアントプログラムコードを示す図である。
【図１４】本発明に適用される改訂後のアダプタプログラムコードを示す図である。
【図１５】本発明の実行形態の概略を示す図である。
【図１６】アクセス要求エラーを検出し、Ｆａｕｌｔメッセージの解析ステップを示す図である。
【図１７】改定後ＷＳＤＬファイルを取得し、プログラムエラー発生個所検出ステップを示す図である。
【図１８】プログラムエラー発生個所検出ステップで検出された変更部分について、クライアントプログラムを生成するエラー回避クライアントプログラムの生成巣ステップを示す図である。
【図１９】本発明に適用されるＦａｕｌｔメッセージ取得通知プログラムの処理フローを示す図である。
【図２０】本発明に適用されるＦａｕｌｔメッセージ解析プログラムの処理フローを示す図である。
【図２１】本発明に適用される既存メッセージ確認プログラムの処理フローを示す図である。
【図２２】本発明に適用されるＵＤＤＩ検索プログラムの処理フローを示す図である。
【図２３】本発明に適用されるＷＳＤＬファイル取得プログラムの処理フローを示す図である。
【図２４】本発明に適用されるＷＳＤＬファイル比較プログラムの処理フローを示す図である。
【図２５】本発明に適用されるＷＳＤＬスタブ生成処理プログラムの処理フローを示す図である。
【図２６】本発明に適用されるＳＯＡＰクライアント生成プログラムの処理フローを示す図である。
【図２７】本発明に適用されるアダプタ生成プログラムの処理フローを示す図である。
【図２８】本発明に適用されるＪＳＰ生成プログラムの処理フローを示す図である。
【符号の説明】
１…クライアントプログラム変更管理サーバ
２…一般ユーザクライアント
３…ｗｅｂサービスサーバ
４…ＵＤＤＩレジストリサーバ
５…ネットワーク
【図１】
2004272317.tif 000003
【図２】
2004272317.tif 000004
【図３】
2004272317.tif 000005
【図４】
2004272317.tif 000006
【図５】
2004272317.tif 000007
【図６】
2004272317.tif 000008
【図７】
2004272317.tif 000009
【図８】
2004272317.tif 000010
【図９】
2004272317.tif 000011
【図１０】
2004272317.tif 000012
【図１１】
2004272317.tif 000013
【図１２】
2004272317.tif 000014
【図１３】
2004272317.tif 000015
【図１４】
2004272317.tif 000016
【図１５】
2004272317.tif 000017
【図１６】
2004272317.tif 000018
【図１７】
2004272317.tif 000019
【図１８】
2004272317.tif 000020
【図１９】
2004272317.tif 000021
【図２０】
2004272317.tif 000022
【図２１】
2004272317.tif 000023
【図２２】
2004272317.tif 000024
【図２３】
2004272317.tif 000025
【図２４】
2004272317.tif 000026
【図２５】
2004272317.tif 000027
【図２６】
2004272317.tif 000028
【図２７】
2004272317.tif 000029
【図２８】
2004272317.tif 000030