JP2004272317A - プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 - Google Patents
プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 Download PDFInfo
- Publication number
- JP2004272317A JP2004272317A JP2003057936A JP2003057936A JP2004272317A JP 2004272317 A JP2004272317 A JP 2004272317A JP 2003057936 A JP2003057936 A JP 2003057936A JP 2003057936 A JP2003057936 A JP 2003057936A JP 2004272317 A JP2004272317 A JP 2004272317A
- Authority
- JP
- Japan
- Prior art keywords
- program
- change
- wsdl file
- error
- access request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】クライアントプログラムが、サーバプログラムを提供している所定URLへアクセス要求を送付して、エラーが発生したとき、このエラーの発生原因を解析するためのプログラムを起動し、インタフェース定義情報の変更によるエラーか否かを判定し、インタフェース定義情報の変更によるエラーの場合は、上記クライアントプログラムの変更箇所を解析するプログラムを起動し、変更箇所の特定を行い、所定手続きに基づいて上記クライアントプログラムの上記変更箇所を変更して、上記クライアントプログラムを実行する。
【選択図】 図1
Description
【発明の属する技術分野】本発明は、プログラムの変更管理に関する。
【従来の技術】近年、クライアント/サーバプログラムは分散オブジェクト技術を利用し、資源の有効利用、部品化が進んできている。インターネットを用い、ローカルなネットワークを超えた分散オブジェクト技術として、David A. Cbappell他著「Java Web Services」(出版社:O’Reilly & Associates,Inc., 2002.3)(JavaおよびJava関連の商標およびロゴは、米国もしくはその他のSun Microsystems,Inc.の商標または登録商標です)に記載されているWebサービスがある。本文献では、Webサービスの基礎技術として3つの技術を挙げており、SOAP(Simple Object Access Protocol)、WSDL(Web Service Description Language)、UDDI(Universal Description Discovery, and Integration)について記述している。
【0002】
本文献によれば、SOAPは構造化文書交換に使う封筒構造の定義であり、この定義にしたがって記述した構造化文書をSOAPメッセージと呼んでいる。Webサービスを用いたクライアント/サーバプログラムではこのSOAPメッセージを用いて通信を行う。このような技術は本文献 P.25〜P53に開示されている。
次にWSDLとは、Webサービスのインタフェースを定義するための構造化文書フォーマットである。Webサービスを用いたクライアント/サーバプログラムでは、このWSDLフォーマットにしたがい記述したWSDLファイルをインタフェースとし、SOAPメッセージを用い通信を行う。このような技術は本文献P.72〜P95に開示されている。
最後に、UDDIとは、Webサービスに対するグローバルレジストリと標準仕様を提供しており、インターネットで共通に利用できるレジストリとして公開されている。したがって、Webサービスを用いたクライアント/サーバプログラムでは、サーバプログラムのWebサービスをこのUDDIレジストリに登録しておき、クライアントプログラムはこのUDDIレジストリに登録されているWebサービスを見つけることにより、サーバプログラムのWebサービスが利用できるようになる。このような技術は本文献 P.98〜P139に開示されている。
【0003】
【非特許文献1】
David A. Cbappell他著「Java Web Services」(出版社:O’Reilly & Associates,Inc., 2002.3)
【0004】
【発明が解決しようとする課題】
分散技術におけるアクセス要求送付先のインタフェース定義情報が変更されて、クライアントプログラムを変更し、作成する場合を考えてみる。保守作業者は、クライアントプログラムがエラーメッセージを受け付けた原因がインタフェース定義情報の変更によるものであることをわかっており、それをもとにクライアントプログラムを修正するものとする。
【0005】
上記のようなクライアントプログラムの保守作業に際しては、エラーを発生させた送付メッセージが、改定前のインタフェース定義情報にしたがって、生成されたメッセージかどうかを確認し、生成されたメッセージが正しい場合は、改訂後のインタフェース定義情報を取得し、改訂後のインタフェース定義情報にしたがったメッセージを送付するようにクライアントプログラムを修正する。
【0006】
しかしながら、従来の方式によるクライアントプログラムの生成は、インタフェース定義情報と雛型からクライアントプログラムを生成するものにすぎない。そのため、実行中のクライアントプログラムに発生したエラーがインタフェース定義情報の変更によるエラーであると原因がわかっていても、保守作業者は、一旦クライアントプログラムを停止させ、改訂後のインタフェース定義情報を取得し、それにそったクライアントプログラムの雛型の作成を再度行い、インタフェース定義情報の変更箇所とプログラムの修正個所の対応関係を判断しながら作業を行う手間のかかる作業となってしまう。
【0007】
本発明の目的は、実行中クライアントプログラムにおける、サーバプログラムの変更による修正と実行を動的に行うようにすることにある。
【0008】
【課題を解決するための手段】
前記課題を改善するため、クライアントプログラムが、サーバプログラムを提供している所定URLへアクセス要求を送付して、エラーが発生したとき、このエラーの発生原因を解析するためのプログラムを起動し、インタフェース定義情報の変更によるエラーか否かを判定し、インタフェース定義情報の変更によるエラーの場合は、上記クライアントプログラムの変更箇所を解析するプログラムを起動し、変更箇所の特定を行い、所定手続きに基づいて上記クライアントプログラムの上記変更箇所を変更して、上記クライアントプログラムを実行する。
【0009】
【発明の実施の形態】
以下、本発明の第一の実施例を図面に基づいて説明する。
図1は本実施例のシステム構成を示す。ネットワーク5に接続されたコンピュータ1はプログラム管理機能を備えたクライアントプログラムサーバであり、コンピュータ2はネットワークを介してクライアントプログラムサーバのプログラムを利用する一般ユーザである。ネットワークに接続されたコンピュータ3はwebサービスを提供するプログラムを格納したwebサービスサーバである。またコンピュータ4はwebサービスを登録管理するデータベースを格納したUDDIレジストリである。本実施例はサーバ−クライアント間の通信手段について特定するものではないが、インターネット上でのHTTPプロトコルによる通信を前提として説明する。すなわち、クライアントプログラムサーバ1はHTTPサーバとしての機能を備え、一般ユーザ2はwebブラウザを介してクライアントプログラムサーバ1と通信するものとする。webサービスサーバ3はHTTPサーバとしての機能を備え、クライアントプログラムサーバ1とSOAPメッセージを用いて通信するものとする。また、UDDIレジストリ4はHTTPサーバとしての機能を備え、クライアントプログラムサーバ1とSOAPメッセージを用いて通信するものとする。従ってクライアントプログラムサーバ1は、ディプレイ6とキーボード等のデータ入力装置7と、CPU8と、メモリ9と、改定前後のWSDLファイルを蓄積するデータベース10から構成され、メモリ9には、変更管理プログラム72が保持される。この変更管理プログラム72には、開発環境70と実行環境71とが含まれる。実行環境71にはHTTPサーバプログラム24と、クライアントプログラム25と、クライアントプログラム実行プログラム26と、アクセス要求エラー検出プログラム27と、プログラムエラー発生個所特定プログラム28が含まれる。開発環境70には、エラー回避クライアントプログラム生成プログラム29が含まれる。また、一般ユーザ2は、ディスプレイ11と、入力装置12と、CPU13と、メモリ14から構成され、メモリ14にはwebブラウザプログラム31が保持される。webサービスサーバ3は、ディスプレイ15と、入力装置16と、CPU17と、メモリ18とデータベース30から構成され、メモリ18には、HTTPサーバプログラム32と、webサービスプログラム33が保持される。また、webサービスサーバ3は、改定前WSDLファイル36と改定後WSDLファイル37をデータベース30に保持している。UDDIレジストリ4は、ディスプレイ19と、入力装置20と、CPU21と、メモリ22と、データベース23から構成され、メモリ22には、HTTPサーバプログラム34と、UDDIプログラム35が保持される。また、UDDIレジストリ4は、データベース68に改訂後WSDLファイル保存場所情報51を保持している。
【0010】
図2は本実施例で実行されるクライアントプログラム25の構成を示す。図に示すように、制御機能38、業務処理機能39、表示機能40、アダプタプログラム41、SOAPクライアントプログラム42、WSDLスタブプログラム43から構成される。
一般ユーザクライアント2がクライアントプログラム25にリクエストを送付し、クライアントプログラム25がwebサービスサーバ3にアクセス要求を送付、処理結果を受け取り、一般ユーザクライアントに処理結果を表示する。
Webサービスサーバ3は住民基礎情報である住民の名前、住所、年齢等の情報を登録管理するサーバプログラムであり、アクセス要求を受け付けるメッセージとしてSOAPメッセージを用い、インタフェース定義情報の記述にはWSDLを用いる。WSDLを用いて記述した改訂前WSDLファイル36のmessageタグ部分を図3に示す。101はmessageタグであり、アクセス要求を受け付けるメソッド名の定義としてname属性にsetJukiListを指定している。102はpartタグであり、setJukiListメソッドの引数の定義としてname属性にNameを指定し、この型定義としてtype属性にstringを指定している。103、104も同様にstring型で、Address変数とAge変数を指定している。
【0011】
図4に改訂後WSDLファイル37のmessageタグ部分を示す。改訂前WSDLファイル36に105のpartタグが付加され改訂されている。105はpartタグのname属性としてBirthdayを指定し、type属性にstringを指定している。
【0012】
以下、webサービスサーバ3の管理者が住民基礎情報の内容充実化をはかるために、登録関数の引数一つを増やし、生年月日を追加することにしたものとして、説明を行う。したがって、UDDIレジストリに登録する自サービスのインタフェースである改訂前WSDLファイル36の保存場所情報を改訂後WSDLファイル37の保存場所情報に入れ替えを行った。この時の改定後WSDLファイル37のmessageタグ部分は図4に示す。
【0013】
クライアントプログラム25の表示機能40は、図5に示すHTMLを記述した改訂前のファイルであり、201はhtmlタグであり、202はheadタグ、203はtitleタグであり「住民基礎情報入力」をwebブラウザタイトルに表示するように定義している。204はbodyタグであり、ここからwebブラウザに表示される内容であることを示している。したがって205の文字列「住民基礎情報入力」の記述でwebブラウザに文字列「住民基礎情報入力」が表示される。206は一般ユーザクライアント2が入力するFORMタグであり、httpリクエストのPOSTメソッド実行を定義している。また、このときのアクションタイプとして、SETJUKIを定義している。
【0014】
207から209はこのFORMタグで送信される内容を定義している。テキスト入力項目として207のName、208のAddress、209のAgeと、このテキスト入力項目207、208、209の情報を送信するためのsubmitタグ210と、テキスト入力項目の内容を消去するresetタグ211から構成される。この改訂前JSPファイルが一般ユーザクライアント2のwebブラウザに表示される画面を図7に示す。
【0015】
改訂後のJSPファイルの内容を図6に示す。改訂前JSPファイルにテキスト入力項目212のBirthdayが付加され改訂されている。この改訂後JSPファイルが一般ユーザクライアント2のwebブラウザに表示される画面を図8に示す。
【0016】
次にテキスト入力項目とWSDLファイルのpartタグとの関係を説明する。図5の改訂前JSPファイルのテキスト入力項目は、図3に示す改定前WSDLファイル36のmessageタグの子要素であるpartタグで記述された引数と同一の項目である。つまり、partタグで記述された102のName、103のAddress、104のAgeが図5のJSPファイルのテキスト入力項目である207のName、208のAddress、209のAgeとなる。
次に、このテキスト入力項目がクライアントプログラム25で処理される手順を説明する。
【0017】
図2において一般ユーザクライアント2がwebブラウザプログラム31から入力したテキスト入力項目の内容は25_1のHTTPリクエストでクライアントプログラム25へ送られ、制御機能38がリクエストを受け付ける。このリクエストは25_2で業務処理機能39へ処理要求が行われる。25_3で業務処理機能39はアダプタプログラム41へ、リクエストを引数として処理を依頼する。アダプタプログラム41はリクエストのテキスト入力項目の内容を取り出し、SOAPクライアントプログラム42のメソッドを実行し、WSDLスタブプログラム43を使用し、webサービスサーバ3にアクセス要求を送付し、webサービスを利用する。webサービスサーバ3はアクセス要求を受け付けた場合、25_4で結果として戻り値を返却する。返却された戻り値は、WSDLスタブ43、SOAPクライアントプログラム42、アダプタプログラム41を通じて業務処理機能39に格納される。25_6で制御機能38は業務処理機能39の処理終了の通知を受けて、25_7の表示機能40に出力要求を行う。25_8で表示機能40では業務処理機能39に格納されている戻り値を取得し、25_9で結果を受け取る。25_9で受け取った結果をレスポンスとして一般ユーザクライアント2のwebブラウザプログラム31に表示する。
【0018】
次に、クライアントプログラム25で動作する各プログラムについて説明する。
WSDLスタブプログラム43は図3の改定前WSDLファイル36から生成される。図9に改定前WSDLファイル36から生成されたWSDLスタブプログラムのソースコードを示す。2010はWSDLスタブプログラムのパッケージ宣言である。ここでは、パッケージとしてjp.co.Ohtake.wsdlというパッケージ名称とし各クラスはこのパッケージに生成されることを意味する。2020はJukiList_Serviceのインタフェース宣言であり、メソッドとして2030のsetJukiListを持つことを宣言している。また、この2030では、このメソッドの引数としてString型のName、Address、Ageを持ち、戻り値としてboolean型を返すことを定義している。2040は2020の定義の終わりを表している。
【0019】
2050は2010と同様にパッケージ宣言である。2060はregistry.Registryクラスのインポート宣言をしている。2070ではregistry.RegistryExceptionクラスのインポート宣言をしている。2080から2150ではJukiList_ServiceHelperクラスを定義しており、2090と2120にこのクラスが持つメソッドを定義している。2100では2090で宣言されたメソッドbind()の戻り値を定義している。2110は2090の定義の終わりである。2130では2120で宣言されたメソッドbind(String url)の戻り値を定義している。
【0020】
図10は図4に示す改訂後WSDLファイル37から生成されるWSDLスタブプログラムのソースコードである。図9に示すソースコードとの違いは、2030に示すsetJukiListメソッドの引数にString型Birthdayが追加されたことである。これを図10の2160に示す。
【0021】
次に、改訂前WSDLファイル36から生成された図9のWSDLスタブプログラムを利用するSOAPクライアントプログラム42のソースコードを図11に示す。3010はパッケージ宣言である。3020から3070でInvoke_jukiListクラスを定義している。3030はこのInvoke_jukiListクラスのメソッドの宣言であり、引数としてString型のName、Address、Ageと戻り値としてboolean型を定義している。3040は2090から2110で定義されたJukiList_ServiceHelperクラスのメソッドbind()を用いてJukiList_Serviceクラスのインスタンスを得ている。次に3050では、JukiList_Serviceクラスのインスタンスを用いて2030で定義されたメソッドsetJukiListを使用し、結果を得ている。
【0022】
図12に図11のSOAPクライアントプログラムを利用するアダプタプログラム41のソースコードを示す。アダプタプログラム41は4010でjp.co.Ohtake.adapterパッケージ宣言をしている。4020ではjp.co.Ohtake.wsdlパッケージ全てをインポートし、4030ではjavax.servlet.httpパッケージ全てをインポートしている。4040から4150では、adp_Invoke_jukiListクラスの定義を行っている。4050から4140ではこのクラスのメソッド定義をしている。このメソッドadp_setjukiは戻り値がBoolean型で引数がHttpServletRequest型requestである。
【0023】
4060では戻り値用の変数adp_rtnの初期化をfalseで行っている。次に4070から4090ではrequest変数が保持している値をそれぞれ取り出し、adp_name、adp_addreess、adp_ageへと代入している。4100では3020で定義されたクラスのインスタンスを生成している。4120ではこのインスタンスでメソッドsetjukiを実行し、結果をadp_rtnに代入している。
【0024】
図13は図10に示す改訂後WSDLファイル37から生成されるWSDLスタブプログラムのソースコードを利用するSOAPクライアントプログラムのソースコードである。図11との違いは、3080のメソッドの引数にString型のBirthdayが増加している事と、3090のメソッドの引数にString型のBirthdayが増加している事である。
【0025】
図14は図13に示すSOAPクライアントプログラムを利用するためのアダプタプログラムのソースコードである。図12との違いは、4160と4170である。4160では、String型の変数adp_birthdayにrequest変数から値を取り出し、代入している。4170では、実行するメソッドsetjukiの引数adp_birthdayが増加している。
次に、webサービスサーバ3のwebサービスプログラム33のインタフェースが、改訂前WSDLファイル36から改訂後WSDLファイル37へ変更された場合における変更管理プログラム72の処理概要を図15に示す。
【0026】
Faultメッセージ44を、クライアントプログラム25が受け取り、アクセス要求エラーの検出プログラム27が実行され、プログラムエラー発生個所特定プログラム28が実行され、エラー回避クライアントプログラム生成プログラム29が実行され、クライアントプログラム実行プログラム26が実行される。
【0027】
クライアントプログラム25が、改訂後webサービスプログラム33を有するwebサービスサーバ3にアクセス要求を送付した結果、Faultメッセージ44を取得した時、クライアントプログラム25では、WSDLスタブプログラム43がFaultメッセージ44を取得し、SOAPクライアント42へ返信する。SOAPクライアント42はアダプタプログラム41へFaultメッセージ44を返信する。アダプタプログラム41がFaultメッセージ44を受け取ると、Faultメッセージ取得通知プログラム45を実行する。Faultメッセージ取得通知プログラム45を実行したアダプタプログラム41は完全停止フラグまたは、一時停止フラグに基づき処理結果を業務処理機能39に返却する。アダプタプログラム41から結果フラグを受け取った業務処理機能39は処理終了を制御機能38に伝える。処理終了を伝えられた制御機能38は表示機能40に出力要求を行う。出力要求を受けた表示機能40は業務処理機能39の処理結果を取得し、一般ユーザクライアント2のwebブラウザプログラムにレスポンスを返す。
【0028】
図15に示した処理概要の詳細を以下に示す。
まず、アクセス要求エラー検出プログラム27の手順を図16に示す。アクセス要求エラー検出プログラム27は、Faultメッセージ取得通知プログラム45、Faultメッセージ解析プログラム46から構成される。
Faultメッセージ取得通知プログラム45の処理フローを図19に示す。Faultメッセージ取得通知プログラム45はFaultメッセージを受け取る(300)。次にFaultメッセージ解析プログラム46を実行し、Faultメッセージ44を送る(301)。Faultメッセージ解析プログラム46の戻り値を判定する(302)。Faultメッセージ解析プログラム46の戻り値がClientフラグの場合、アダプタプログラム41へ一時停止フラグを返信し(303)、Clientフラグ以外の場合、完全停止フラグをアダプタプログラム41へ返信する(304)。
Faultメッセージ解析プログラム46の処理フローを図20に示す。Faultメッセージ解析プログラム46は受け取ったFaultメッセージ44を解析する(400)。このメッセージに記述されている全てのタグについて以下の判定を行う(401)。
全てのタグの中からfaultCodeタグを見つけ出し(402)、このタグの値がClientエラーを表すエラーコードかどうかを判断する(403)。Clientエラーを表すエラーコードの場合、既存メッセージ確認プログラム47を実行する(404)。既存メッセージ確認プログラム47の戻り値がClientフラグの場合(405)、ClientフラグをFaultメッセージ取得通知プログラム45に返信し(406)、Clientフラグ以外の場合、Clientフラグ以外を返信する(407)。403でClientエラーを表すエラーコードでない場合、Faultメッセージ取得通知プログラム45へClientフラグ以外を返信する(408)。
プログラムエラー発生個所検出プログラム28の手順を図17に示す。プログラムエラー発生個所検出プログラム28は、既存メッセージ確認プログラム47、UDDI検索プログラム48、WSDLファイル取得プログラム52、WSDLファイル比較プログラム53から構成される。
【0029】
既存メッセージ確認プログラム47の処理フローを図21に示す。既存メッセージ確認プログラム47は、webサービスサーバ3にアクセス要求を送付したリクエストメッセージ49を受け取る(500)。次に、改訂前WSDLファイル36をデータベース10から取得し(501)、改訂前WSDLファイル36から確認用リクエストメッセージ67を生成する(502)。リクエストメッセージ49の全てのタグについて(503)、生成した確認用リクエストメッセージ67のタグと同一かどうか判定する(504)。
改訂前WSDLファイル36から生成されたメッセージである場合、UDDI検索プログラム48を実行する(505)。改訂前のWSDLファイル36から生成されたメッセージではない場合、改定前のWSDLファイル36をWSDLスタブ生成プログラム54へ送る(509)。505で実行したUDDI検索プログラム48の戻り値を判定する(506)。戻り値がClientフラグの場合、Faultメッセージ解析プログラム46へClientフラグを返信し(507)、Clientフラグ以外の場合、Clientフラグ以外を返信する(508)。
UDDI検索プログラム48の処理フローを図22に示す。UDDI検索プログラム48は改訂前webサービス取得条件50をデータベース10から取得し(600)、この条件に基づき、UDDIレジストリ4でwebサービスの検索を行う。全てのwebサービスについて検索し(601)、改訂前webサービス取得条件50に一致するwebサービスを見つけることができた場合(602)、WSDLファイル保存場所情報が改訂されているか判定する(603)。
【0030】
WSDLファイル保存場所情報が改訂されている場合、UDDIレジストリ4に登録されている改訂後WSDLファイル保存場所情報49を取得し(604)、WSDLファイル取得プログラム52へ送る。WSDLファイル取得プログラム52の戻り値を判定し(605)、Clientフラグの場合、既存メッセージ確認プログラム47へClientフラグを返信し(606)、Clientフラグ以外の場合、Clientフラグ以外を返信する(607)。603でWSDLファイル保存場所情報が改訂されていない場合、既存メッセージ確認プログラム47へWSDL改訂なしエラーを返信する(608)。602で改訂前webサービス取得条件50に一致するwebサービスを見つけることができなかった場合、既存メッセージ確認プログラム47へwebサービス未検出エラーを返信する(609)。
【0031】
WSDLファイル取得プログラム52の処理フローを図23に示す。WSDLファイル取得プログラム52は、改訂後WSDLファイル保存場所情報51を受け取り(700)、改訂後WSDLファイル保存場所情報51にしたがい、改訂後WSDLファイル37を取得する(701)。次に、改訂後WSDLファイル37が取得できたかどうかを判定し(702)、取得できた場合、取得した改訂後WSDLファイル37をWSDLファイル比較プログラム53へ送り、実行する(703)。実行したWSDLファイル比較プログラム53の戻り値について判定し(704)、戻り値がpartタグ変更である場合、UDDI検索プログラム48へClientフラグを返信し(705)、partタグ変更以外の場合、Clientフラグ以外を返信する(706)。702で改訂後WSDLファイル37を取得できなかった場合、UDDI検索プログラム48へ、取得失敗エラーを返す(707)。
【0032】
WSDLファイル比較プログラム53の処理フローを図24に示す。初めに、WSDLファイル比較プログラム53は改定後WSDLファイル37を取得し(800)、次に改定前WSDLファイル36を取得する(801)。
取得した改定前後のWSDLファイルの比較を行い(802)、抽出された相違部分がWSDLファイル中のmessageタグの子要素であるpartタグの増減であれば、WSDLスタブ生成プログラム54を実行し、改定後のWSDLファイル37を送る(803)。その後、WSDLファイル取得プログラム52へpartタグ変更を返信する(804)。802での判定がpartタグ増減以外の変更の場合、partタグ以外変更エラーをWSDLファイル取得プログラム52へ返信する(805)。
【0033】
図18に示すエラー回避クライアントプログラム生成プログラム29の手順を以下に示す。エラー回避クライアントプログラム生成プログラム29は、WSDLスタブ生成プログラム54、SOAPクライアント生成プログラム56、アダプタ生成プログラム58、JSP生成プログラム60、クライアントプログラム生成プログラム62から構成される。
WSDLスタブ生成プログラム54の処理フローを図25に示す。WSDLスタブ生成プログラム54は改定後WSDLファイル37を受け取り(900)、WSDLスタブソース55を生成するコマンドを実行する(901)。このWSDLスタブソース55をSOAPクライアント生成プログラム56へ送り実行する(902)。次に、JSP生成プログラム60へ改訂後WSDLファイル37を送り、実行する(903)。
【0034】
次に、SOAPクライアント生成プログラム56の処理フローを図26に示す。SOAPクライアント生成プログラム56はWSDLスタブソース55を受け取る(1000)。次に、WSDLスタブソース55を用いて、SOAPクライアントプログラムソース57を生成する(1001)。SOAPクライアントプログラムソース57の生成の詳細は1002から1007で行われ、生成結果を図13に示す。生成したSOAPクライアントプログラムソース57をアダプタ生成プログラム58へ送る(1008)。
【0035】
次に、アダプタ生成プログラム58の処理フローを図27に示す。アダプタ生成プログラム58は受け取ったSOAPクライアントプログラムソース57から(1100)、アダプタプログラムソース59を生成する(1101)。アダプタプログラムソース59の生成は1102から1108で行われ、生成した結果を図14に示す。次に図25の903で実行されたJSP生成プログラム60の処理が終了しているかどうかを判断し(1109)、アダプタプログラムソース59をクライアントプログラム生成プログラム62へ送り実行する(1110)。
【0036】
JSP生成プログラム60の処理フローを図28に示す。JSP生成プログラム60は改訂後WSDLファイル37を受け取る(1200)。この改訂後WSDLファイル37のmessageタグの引数部分を入力項目とするJSPファイル61を生成する(1201)。1202から1204にJSPファイル生成の詳細を示す。生成されたJSPファイル61の内容を図6に示す。次に、生成したJSPファイル61をクライアントプログラム生成プログラム62へ送り、実行する(1205)。
【0037】
クライアントプログラム生成プログラム62の処理を以下に説明する。クライアントプログラム生成プログラム62は、WSDLスタブソース55とSOAPクライアントプログラムソース57とアダプタソース59とJSPファイル61を受け取る。次に受け取ったWSDLスタブソース55とSOAPクライアントプログラムソース57とアダプタソース59をjavacコマンドによりコンパイルし、classファイルを生成する。生成された各classファイルをjarコマンドによりjarファイル形式のファイルJARファイル68にする。次に、JARファイル68とJSPファイル61をjarコマンドの−warオプションにてwarファイル形式のファイルWARファイル73にする。最後にこのWARファイル73をクライアントプログラム実行プログラム26へ送り、クライアントプログラム実行プログラム26を実行する。
【0038】
クライアントプログラム実行プログラム26は、改定前のWSDLファイル36に基づいたWARファイルを使用したクライアントプログラム25を停止し、クライアントプログラム生成プログラム62から受け取ったWARファイル73を使用したクライアントプログラムを配置し、実行する。
【0039】
【発明の効果】
本発明によれば、実行中のクライアントプログラムについて、インタフェースの変更による対応変更管理が動的に行えるため、サービス停止期間を短縮することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したシステム構成を示す図である。
【図2】本発明に適用されるクライアントプログラムの構成を示す図である。
【図3】本発明に適用される改定前WSDLファイルのメッセージ定義を示す図である。
【図4】本発明に適用される改定後WSDLファイルのメッセージ定義を示す図である。
【図5】本発明に適用されるクライアントプログラムの改訂前の表示機能を示す図である。
【図6】本発明に適用されるクライアントプログラムの改訂後の表示機能を示す図である。
【図7】本発明に適用される改訂前の一般ユーザクライアントに表示される画面を示す図である。
【図8】本発明に適用される改訂後の一般ユーザクライアントに表示される画面を示す図である。
【図9】本発明に適用される改訂前のWSDLスタブプログラムコードを示す図である。
【図10】本発明に適用される改訂後のWSDLスタブプログラムコードを示す図である。
【図11】本発明に適用される改訂前のSOAPクライアントプログラムコードを示す図である。
【図12】本発明に適用される改訂前のアダプタプログラムコードを示す図である。
【図13】本発明に適用される改訂後のSOAPクライアントプログラムコードを示す図である。
【図14】本発明に適用される改訂後のアダプタプログラムコードを示す図である。
【図15】本発明の実行形態の概略を示す図である。
【図16】アクセス要求エラーを検出し、Faultメッセージの解析ステップを示す図である。
【図17】改定後WSDLファイルを取得し、プログラムエラー発生個所検出ステップを示す図である。
【図18】プログラムエラー発生個所検出ステップで検出された変更部分について、クライアントプログラムを生成するエラー回避クライアントプログラムの生成巣ステップを示す図である。
【図19】本発明に適用されるFaultメッセージ取得通知プログラムの処理フローを示す図である。
【図20】本発明に適用されるFaultメッセージ解析プログラムの処理フローを示す図である。
【図21】本発明に適用される既存メッセージ確認プログラムの処理フローを示す図である。
【図22】本発明に適用されるUDDI検索プログラムの処理フローを示す図である。
【図23】本発明に適用されるWSDLファイル取得プログラムの処理フローを示す図である。
【図24】本発明に適用されるWSDLファイル比較プログラムの処理フローを示す図である。
【図25】本発明に適用されるWSDLスタブ生成処理プログラムの処理フローを示す図である。
【図26】本発明に適用されるSOAPクライアント生成プログラムの処理フローを示す図である。
【図27】本発明に適用されるアダプタ生成プログラムの処理フローを示す図である。
【図28】本発明に適用されるJSP生成プログラムの処理フローを示す図である。
【符号の説明】
1…クライアントプログラム変更管理サーバ
2…一般ユーザクライアント
3…webサービスサーバ
4…UDDIレジストリサーバ
5…ネットワーク
Claims (13)
- 所定URLへアクセス要求を送付して、エラーが発生したとき、WSDLファイルの変更によるエラーか否かを判定し、WSDLファイルの変更によるエラーの場合は、上記プログラムの変更箇所を決定し、所定手続きに基づいて、上記変更箇所を変更して、上記プログラムを実行するWebアクセス方法および装置並びにその処理プログラム。
- 前記アクセス要求送付のエラーの検出は、エラーが発生した場合に受け取るfaultメッセージにより起動され、faultメッセージの内容を解析し、その種類に応じて、送付したアクセス要求メッセージのエラーかどうかを判断するように構成したことを特徴とする請求項1記載のプログラム管理方法。
- 前記プログラムの変更箇所の検出は、請求項2記載のアクセス要求送付エラー検出の判断により起動され、エラーが生じたアクセス要求メッセージの解析を行い、その結果により改訂前WSDLファイルと改訂後WSDLファイルを比較することにより、発生したエラーがWSDLファイルの変更によるエラーかどうかを判断し、その結果によりプログラムの変更箇所を検出するように構成したことを特徴とする請求項1記載のプログラム管理方法。
- 前記プログラムの変更箇所の変更は、請求項3記載の変更箇所検出の判断により起動され、プログラムの変更箇所を変更するように構成したことを特徴とする請求項1記載のプログラム管理方法。
- 前記プログラム変更箇所変更後の実行は、請求項4記載の変更箇所変更の判断により起動され、変更したプログラムを実行するように構成したことを特徴とする請求項1記載のプログラム管理方法。
- 前記アクセス要求送付のエラー検出は、受け取ったfaultメッセージの種類が、送付したアクセス要求メッセージのエラーであることを解析するように構成したことを特徴とした請求項2記載のプログラム管理方法。
- 前記プログラムの変更箇所の検出は、エラーが発生したアクセス要求メッセージをプログラムから取得し、そのメッセージがプログラム作成時に取得保存した改訂前WSDLファイルにしたがって作成されているかを解析し、その結果により変更箇所を検出するように構成したことを特徴とした請求項3記載のプログラム管理方法。
- 前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認により、改訂前WSDLファイルから生成された送付アクセス要求メッセージであることを確認できた場合に、プログラム作成時に取得保存した改訂前WSDLファイルの取得条件から改訂後WSDLファイルの保存場所情報を取得するように構成したことを特徴とした請求項3記載のプログラム管理方法。
- 前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認の判断結果により取得した改訂後WSDLファイルの保存場所情報から、改訂後WSDLファイルを取得するように構成したことを特徴とした請求項3記載のプログラム管理方法。
- 前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認の判断結果により取得した改訂後WSDLファイルの保存場所情報から、改訂後WSDLファイルを取得し、改訂前WSDLファイルと改訂後WSDLファイルを比較し、WSDLファイルの変更の種類を解析するように構成したことを特徴とした請求項3記載のプログラム管理方法。
- 前記プログラムの変更箇所の検出は、送付アクセス要求メッセージの正否確認の判断結果により取得した改訂後WSDLファイルの保存場所情報から、改訂後WSDLファイルを取得保存し、WSDLファイル変更の種類の解析結果から、プログラムの変更箇所を検出するように構成したことを特徴とした請求項3記載のプログラム管理方法。
- 前記プログラムの変更箇所の変更は、請求項3記載のプログラム変更箇所の検出により、検出された変更内容に従い、プログラムの変更箇所の生成を行うように構成したことを特徴とする請求項4記載のプログラム管理方法。
- 前記プログラムの変更箇所変更後の実行は、請求項12記載の変更により生成したプログラムを実行するように構成したことを特徴とする請求項5記載のプログラム管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003057936A JP2004272317A (ja) | 2003-03-05 | 2003-03-05 | プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 |
US10/715,121 US7426733B2 (en) | 2003-03-05 | 2003-11-18 | Automatic program changing method for client program interface |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003057936A JP2004272317A (ja) | 2003-03-05 | 2003-03-05 | プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004272317A true JP2004272317A (ja) | 2004-09-30 |
Family
ID=33121172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003057936A Pending JP2004272317A (ja) | 2003-03-05 | 2003-03-05 | プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7426733B2 (ja) |
JP (1) | JP2004272317A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2144162A1 (en) | 2008-07-07 | 2010-01-13 | Ricoh Company, Ltd. | Image forming apparatus, information processing method, and image forming system |
CN113535832A (zh) * | 2021-06-10 | 2021-10-22 | 杭州未名信科科技有限公司 | 云服务数据的获取方法、装置、电子设备及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7711832B1 (en) * | 2003-09-22 | 2010-05-04 | Actional Corporation | Enabling existing desktop applications to access web services through the use of a web service proxy |
US7593930B2 (en) * | 2004-12-14 | 2009-09-22 | Sap Ag | Fast channel architecture |
US7917629B2 (en) * | 2004-12-29 | 2011-03-29 | Sap Ag | Interface for external system management |
US7591006B2 (en) * | 2004-12-29 | 2009-09-15 | Sap Ag | Security for external system management |
US8024743B2 (en) | 2004-12-30 | 2011-09-20 | Sap Ag | Connection of clients for management of systems |
US7593917B2 (en) * | 2004-12-30 | 2009-09-22 | Sap Ag | Implementation of application management operations |
US9253020B2 (en) * | 2009-06-11 | 2016-02-02 | International Business Machines Corporation | Web service interaction in a dynamically extensible business application |
US8019864B2 (en) * | 2009-06-19 | 2011-09-13 | Microsoft Corporation | Using transport-independent resource status |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185609B1 (en) * | 1997-10-24 | 2001-02-06 | Sun Microsystems, Inc. | Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system |
US6782475B1 (en) * | 1999-01-15 | 2004-08-24 | Terence E. Sumner | Method and apparatus for conveying a private message to selected members |
EP1075108A1 (en) * | 1999-07-23 | 2001-02-07 | BRITISH TELECOMMUNICATIONS public limited company | Cryptographic data distribution |
JP2001159978A (ja) | 1999-12-02 | 2001-06-12 | Nec Corp | 分散オブジェクトプログラム実行支援システム |
US20020099738A1 (en) * | 2000-11-22 | 2002-07-25 | Grant Hugh Alexander | Automated web access for back-end enterprise systems |
FR2823044B1 (fr) * | 2001-03-30 | 2004-05-21 | France Telecom | Dispositif et procede d'echange de flux entre un dispositif client et un serveur bases sur un protocole d'adapatation de contenu de fichiers internet de type icap |
GB0109726D0 (en) * | 2001-04-20 | 2001-06-13 | Koninkl Philips Electronics Nv | Service access system |
GB2375926B (en) * | 2001-05-24 | 2004-09-22 | 3G Lab Ltd | Method of browser-server communication |
CA2369797A1 (en) * | 2002-01-31 | 2003-07-31 | Bridgewater Systems Corporation | System and method for web service management |
US7127700B2 (en) * | 2002-03-14 | 2006-10-24 | Openwave Systems Inc. | Method and apparatus for developing web services using standard logical interfaces to support multiple markup languages |
US7549153B2 (en) * | 2002-07-22 | 2009-06-16 | Amberpoint, Inc. | Apparatus and method for content and context processing of web service traffic |
US20040133633A1 (en) * | 2002-12-05 | 2004-07-08 | Neopost Inc. | Method and apparatus for adaptive client communications |
US7689430B2 (en) * | 2002-12-16 | 2010-03-30 | International Business Machines Corporation | Access to web services |
US7356562B2 (en) * | 2003-04-30 | 2008-04-08 | International Business Machines Corporation | Dynamic generator for fast-client static proxy from service interface definition document |
US7308475B1 (en) * | 2003-05-06 | 2007-12-11 | F5 Networks, Inc. | Method and system for accessing network services |
-
2003
- 2003-03-05 JP JP2003057936A patent/JP2004272317A/ja active Pending
- 2003-11-18 US US10/715,121 patent/US7426733B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2144162A1 (en) | 2008-07-07 | 2010-01-13 | Ricoh Company, Ltd. | Image forming apparatus, information processing method, and image forming system |
US8363238B2 (en) | 2008-07-07 | 2013-01-29 | Ricoh Company, Ltd. | Image forming apparatus having a management unit and a shared processing unit, information processing method using the image forming apparatus, and image forming system having the image forming apparatus |
CN113535832A (zh) * | 2021-06-10 | 2021-10-22 | 杭州未名信科科技有限公司 | 云服务数据的获取方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US7426733B2 (en) | 2008-09-16 |
US20040205144A1 (en) | 2004-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7797400B2 (en) | Computer-implemented methods and systems for testing the interoperability of web services | |
Tao et al. | A reusable software component for integrated syntax and semantic validation for services computing | |
US7689665B2 (en) | Dynamically loading scripts | |
US7587425B2 (en) | Method and system for generating and employing a dynamic web services invocation model | |
US7694282B2 (en) | Mapping breakpoints between web based documents | |
US8645916B2 (en) | Crunching dynamically generated script files | |
US20040199818A1 (en) | Automated testing of web services | |
US20040039964A1 (en) | Programmatically serializing complex objects using self-healing techniques | |
US20040090458A1 (en) | Method and apparatus for previewing GUI design and providing screen-to-source association | |
US20030220993A1 (en) | Method and apparatus for dynamically determining information for deploying a web service | |
US20100281357A1 (en) | System and method for processing a widget at a web browser | |
US20140258877A1 (en) | Method and Computer Readable Medium for Providing, via Conventional Web Browsing, Browsing Capability Between Remote/Virtual Windows and From Remote/Virtual Windows to Conventional Hypertext Documents | |
US7500251B2 (en) | Method and system for managing programs for web service system | |
US7533114B2 (en) | Mobile device having extensible software for presenting server-side applications, software and methods | |
US20070255719A1 (en) | Method and system for generating and employing a generic object access model | |
US9934029B2 (en) | Annotation driven representational state transfer (REST) web services | |
WO2007068175A1 (fr) | Systeme et procede permettant de declencher un systeme de regles | |
JP2004362000A (ja) | ウェブアプリケーション開発支援装置、コンポーネント呼び出し監視装置、データ処理方法及びプログラム | |
JP2006195979A (ja) | ウェブアプリケーションアーキテクチャ | |
US8140575B2 (en) | Apparatus, method, and program product for information processing | |
JP2004272317A (ja) | プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 | |
JP2004178263A (ja) | Webサーバ、Javaサーブレットの機能を有するWebサーバ、およびコンピュータプログラム | |
US20040088304A1 (en) | Method, system and program product for automatically creating managed resources | |
JP4114873B2 (ja) | サーバ装置、サービス方法、プログラム及び記録媒体 | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060216 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080729 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090518 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090818 |