(57)【要約】【課題】  手作業によるコードの書き換えを不要にし、既存の単独システムを容易にＷｅｂサービスシステムとして再構築可能にすること。【解決手段】  データベースをアクセスする業務アプリケーションのソースコードを解析し、データベースのスキーマ情報を抽出し、該スキーマ情報からWebサービスのインタフェース記述情報を生成してインタフェース記述テーブルに登録するステップと、業務アプリケーションとデータベースとの間で通信するデータ構造と、業務アプリケーションとサーバ側に配置したデータベースとのデータ通信を仲介するＷｅｂサービスクライアントとＷｅｂサービスとがＳＯＡＰプロトコルで通信する際のデータ構造との相違を吸収するスタブおよびスケルトンを自動生成し、該スタブおよびスケルトンの仲介により単独の情報処理システムをＷｅｂサービスのクライアントとして再構築するステップとを備える。【選択図】      図１
2005092547.tif 000002
【特許請求の範囲】
【請求項１】
データベースアクセスを伴う単独の情報処理システムのＷｅｂサービスシステムへの再構築方法であって、
前記情報処理システムにおける前記データベースをアクセスする業務アプリケーションのソースコードを解析し、前記データベースのスキーマ情報を抽出し、該スキーマ情報からWebサービスのインタフェース記述情報を生成してインタフェース記述テーブルに登録する第１のステップと、
前記業務アプリケーションとデータベースとの間で通信するデータ構造と、前記業務アプリケーションとサーバ側に配置したデータベースとのデータ通信を仲介するＷｅｂサービスクライアントとＷｅｂサービスとがＳＯＡＰプロトコルで通信する際のデータ構造との相違を吸収するスタブおよびスケルトンを自動生成し、該スタブおよびスケルトンの仲介により前記単独の情報処理システムをＷｅｂサービスのクライアントとして再構築する第２のステップと
を備えることを特徴とする単独の情報処理システムのＷｅｂサービスシステムへの再構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセスを伴う単独の情報処理システムをＷｅｂサービスシステムへ再構築する方法に係り、特に、データベースをアクセスする業務アプリケーションのソースコードからデータベースのスキーマ情報を抽出し、該スキーマ情報からWebサービスのインタフェース記述情報を自動生成し、データベースアクセス部を自動的にWebサービス化する方法に関するものである。
【背景技術】
【０００２】
インターネットの普及により、単独の情報処理システムのWeb化が広まりつつある。しかし、データベースアクセスを伴う既存の情報処理システムの多くは、単独で動作する。単独で動作するシステムをWebサービス化するためには、大きく分けて２つの方法がある。
１番目の方法は、ユーザインタフェースをクライアントへ配置し、業務ロジック（業務アプリケーション）とデータベースをサーバへ配置し、クライアントとサーバ間をHTTPプロトコルで接続する方法である。
２番目の方法は、ユーザインタフェースと業務ロジックをクライアントへ配置し、データベースをサーバへ配置し、クライアントとサーバ間をSOAPプロトコルで接続する方法である。
SOAPプロトコル（Simple Object Access Protocol）は、Webサービスで使用するXML形式のプロトコルであり、W3C NOTE「Simple Object Access Protocol (SOAP) 1.1」（http://www.w3.org/TR/SOAP/）で規定されており、公開されている。SOAPプロトコルの実装は、Apache ProjectのApache Axis（http://ws.apache.org/axis/）などが公知である。
【０００３】
図３は、データベースアクセスを伴う単独の情報処理システム（以下、単独システムと略記）を示す図である。単独システム３０１は、ユーザインタフェース３０２、ユーザインタフェース３０２を操作したときに実行する業務ロジック３０３、データベース３０５で構成されている。業務ロジック３０３には、データベース３０５へアクセスするためのコードであるデータベースアクセス部３０４を含む。単独システム３０１は、１台のコンピュータ上で動作する。
【０００４】
図４は、図３のユーザインタフェース３０２と業務ロジック３０３をクライアント４０１へ配置し、データベース３０５をサーバ４０２へ配置し、クライアント４０１とサーバ４０２間をSOAPプロトコルで接続する方法によりWebサービス化したシステムを示す図である。Webサービス化したシステムは、ネットワーク４０３を介して、クライアント４０１とサーバ４０２で構成する。クライアント４０１の業務ロジック３０３中には、データベースアクセスを行うコードの代わりに、SOAPプロトコルでWebサービスを利用するためのWebサービスクライアント４０４を配置する。サーバ４０２には、データベース３０５へのアクセスをSOAPプロトコルで提供するためのWebサービス４０５を配置する。
図３のシステムをWebサービス化して、図４のシステムのようにするためには、データベースアクセス部３０４とWebサービス４０５とWebサービスクライアント４０４の間で通信するデータ構造とが整合するように、データベースアクセス部３０４のコードを手作業で書き換える必要があった。すなわち、ＳＯＡＰプロトコルのデータ構造がデータベース３０５をアクセス可能なデータ構造になるようにデータベースアクセス部３０４のコードを手作業で書き換える必要があった。
本発明に関連する公知技術としては下記文献が挙げられる。
【特許文献１】特開平６−６７８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、データベースアクセス部３０４とWebサービス４０５とWebサービスクライアント４０４の間で通信するデータ構造とが整合するように、データベースアクセス部３０４のコードを手作業で書き換える方法では、単独システムの規模が大きい場合には、コードの書き換えに要する工数が大きくなる問題がある。
また、既存の単独システムの設計ドキュメントに不備がある場合には、システム全体の再設計になり、Webサービス化に要する工数が大きくなる問題がある。
本発明の目的は、手作業によるコードの書き換えを不要にし、既存の単独システムを容易にＷｅｂサービスシステムとして再構築することができるＷｅｂサービスシステムへの再構築方法を提供することにある。
【課題を解決するための手段】
【０００６】
前記の目的を達成するため、本発明は、データベースアクセスを伴う単独の情報処理システムのＷｅｂサービスシステムへの再構築方法であって、
前記情報処理システムにおける前記データベースをアクセスする業務アプリケーションのソースコードを解析し、前記データベースのスキーマ情報を抽出し、該スキーマ情報からWebサービスのインタフェース記述情報を生成してインタフェース記述テーブルに登録する第１のステップと、前記業務アプリケーションとデータベースとの間で通信するデータ構造と、前記業務アプリケーションとサーバ側に配置したデータベースとのデータ通信を仲介するＷｅｂサービスクライアントとＷｅｂサービスとがＳＯＡＰプロトコルで通信する際のデータ構造との相違を吸収するスタブおよびスケルトンを自動生成し、該スタブおよびスケルトンの仲介により前記単独の情報処理システムをＷｅｂサービスのクライアントとして再構築する第２のステップとを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、
（１）データベースアクセス部のコードを手作業で書き換える必要がなくなり、Webサービス化のコストを低減できる。
（２）データ構造の相違は、スタブとスケルトンで自動的に整合させるため、コードの書き換えミスを防止できる。
（３）ドキュメントに不備がある既存の単独システムを容易にWebサービス化することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態について図面により詳しく説明する。
図１は、本発明を適用して、図３のデータベースアクセスを伴う単独システムを、自動的にWebサービス化した実施の形態を示すシステム構成図である。
Web化したシステムは、クライアント１０１とサーバ１０２で構成し、相互にネットワーク１０３を経由してSOAPプロトコルで通信を行う。
図３で示した既存の単独システムのうち、ユーザインタフェース３０２、業務ロジック３０３、業務ロジック３０３中に含まれるデータベースアクセス部３０４は、クライアント１０１内に配置する。また、単独システムのうち、データベース３０５は、サーバ１０２内に配置する。
【０００９】
Webサービス化を自動化するために、クライアント１０１内に、クライアント側機構１０４を配置する。また、サーバ１０２内に、サーバ側機構１０５を配置する。
クライアント側機構１０４は、データベースアクセスラッパー１０４１、Webサービスクライアント１０４２、インタフェース記述生成機構１０４３、レコードセット定義表１０４４、スタブ生成機構１０４５、スタブ１０４７で構成する。
インタフェース記述生成機構１０４３は、業務ロジック３０３のソースコードを入力して解析し、レコードセット定義表１０４４に変換する。次に、インタフェース記述生成機構１０４３は、レコードセット定義表１０４４から、インタフェース記述１０４６を生成する。
【００１０】
インタフェース記述１０４６は、公知のWSDL（Web Service Definition Language）で記述した文書である。スタブ生成機構１０４５は、インタフェース記述生成機構１０４３が生成したインタフェース記述１０４６を入力し、Webサービスクライアント１０４２がWebサービス１０５１へアクセスするためのスタブ１０４７を生成する。
スタブ１０４７は、Webサービスクライアント１０４２が、Webサービス１０５１とSOAPプロトコルで通信する際に、データベースアクセス部３０４が出力するデータ構造とSOAPプロトコルのデータ構造の違いを吸収する。詳しくは、データベースアクセス部３０４がデータベースアクセスラッパー１０４１を介して出力するデータ構造をSOAPプロトコルのデータ構造に整合させる。
データベースアクセスラッパー１０４１は、データベースアクセス部３０４が、データベース３０５にアクセスする場合と同じインタフェースをもつ。データベースアクセス部３０４が、データベース３０５へアクセスしようとすると、データベース３０５の代わりにデータベースアクセスラッパー１０４１へアクセスする。データベースアクセスラッパー１０４１は、Webサービスクライアント１０４２を呼び出し、スタブ１０４５を経由し、さらにネットワーク１０３を経由してSOAPプロトコルを使ってWebサービス１０５１へアクセスする。
【００１１】
サーバ側機構１０５は、データベースアクセス部１０５２、Webサービス１０５１、スケルトン生成機構１０５３、スケルトン１０５４で構成する。
データベースアクセス部１０５２は、業務ロジック３０３のデータベースアクセス部３０４と同等の機能をもつ。Webサービス１０５１は、データベースアクセス部１０５２へのアクセスをWebサービスとして提供する。
スケルトン生成機構１０５３は、インタフェース記述生成機構１０４３が生成したインタフェース記述１０４６を入力し、スケルトン１０５４を生成する。スケルトン１０５４は、Webサービス１０５１とWebサービスクライアント１０４２がSOAPプロトコルで通信する際に、Ｗｅｂサービス１０５１がクライアント１０１から受信したSOAPプロトコルのデータ構造とデータベースアクセス部１０５２データ構造の違いを吸収する。詳しくは、Ｗｅｂサービス１０５１が出力するデータ構造をデータベースアクセス部１０５２の入力インタフェースに整合するようにデータ構造を変換する。
【００１２】
図２は、インタフェース記述生成機構１０４３が使用するレコードセット定義表１０４４のデータ構造の例を示す図である。レコードセット定義表１０４４は、n個のフィールド名FLDiとデータ型TYPEiの組で構成する。各フィールド名FLDiには、レコードセットのフィールド名を格納する。各データ型TYPEiには、フィールド名FLDiのデータ型を格納する。
レコードセット定義コード２０１は、データベース３０５中のレコードセットのデータ構造を記述したソースコードであり、Visual C++言語で記述したものである。インタフェース記述生成機構１０４３は、レコードセット定義コード２０１を入力し、レコードセットのフィールド名とデータ型を取り出し、レコードセット定義表１０４４に格納する。レコードセット定義表１０４４に格納する各データ型TYPEiは、レコードセット定義コード２０１の記述言語に依存しない一般的なデータ型で記述する。
次に、インタフェース記述生成機構１０４３は、レコードセット定義表１０４４を入力し、インタフェース記述１０４６を生成する。インタフェース記述１０４６は、XMLベースのWSDLで記述する。
次に、スタブ生成機構１０４５は、インタフェース記述１０４６を入力し、スタブ１０４７を生成する。スタブ１０４７は、Webサービスクライアント１０４２がWebサービス１０５１とSOAPプロトコルで通信する際に、インタフェース記述１０４６に依存する処理を受け持つ。
次に、スケルトン生成機構１０５３は、インタフェース記述１０４６を入力し、スケルトン１０５４を生成する。スケルトン１０５４は、Webサービス１０５１が、Webサービスクライアント１０４２とSOAPプロトコルで通信する際に、インタフェース記述１０４６に依存する処理を受け持つ。
【００１３】
以上の構成により、データベースアクセス部３０４は、データベースアクセスラッパー１０４１をデータベース３０５とみなしてアクセスを行う。データベースアクセスラッパー１０４１は、Webサービスクライアント１０４２を経由して、サーバ１０２のWebサービス１０５１とSOAPプロトコルで接続し、データベース３０５をアクセスする。この場合、Webサービスクライアント１０４２とWebサービス１０５１は、スタブ１０４７およびスケルトン１０５４の仲介により、データベースをアクセスするためのデータ構造とSOAPプロトコルのデータ構造を業務ロジック３０３のソースコードから抽出したインタフェース記述１０４６に従って自動的に整合させる。これにより、業務ロジック３０３とデータベース３０５との間で通信するデータ構造と、SOAPプロトコルで通信する際のデータ構造との相違が自動的に吸収されることになり、データベースアクセスを伴う既存の単独システムを自動的にWebサービス化することができる。
【図面の簡単な説明】
【００１４】
【図１】既存の単独システムをWebサービス化した実施の形態を示すシステム構成図である。
【図２】レコードセット定義表のデータ構造図である。
【図３】データベースアクセスを伴う既存の単独システムを示す図である。
【図４】図３のシステムをWebサービス化した場合のシステム構成図である。
【符号の説明】
【００１５】
１０１    クライアント
１０２    サーバ
１０３    ネットワーク
１０４    クライアント側機構
１０５    サーバ側機構
３０２    ユーザインタフェース
３０３    業務ロジック
３０４    データベースアクセス部
３０５    データベース
１０４２  Webサービスクライアント
１０５１  Webサービス
１０５２  データベースアクセス部
１０４３  インタフェース記述生成機構
１０４４  レコードセット定義表
１０４１  データベースアクセスラッパー
１０４６  インタフェース記述
１０４５  スタブ生成機構
１０４７  スタブ
１０５３  スケルトン生成機構
１０５４  スケルトン
【図１】
2005092547.tif 000003
【図２】
2005092547.tif 000004
【図３】
2005092547.tif 000005
【図４】
2005092547.tif 000006