(57)【要約】      （修正有）【課題】Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を容易に生成する情報処理装置、その処理方法及びプログラムを提供する。【解決手段】プログラム開発装置は、Ｗｅｂアプリケーションとして用いられるプログラムを生成する情報処理装置であって、Ｗｅｂアプリケーションの画面を介して入力される入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する。Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付け、受け付けた生成指示に従って、管理されている入力定義情報と出力定義情報とを用いて、Ｗｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成する。【選択図】図３
2020170530.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂアプリケーションとして用いられるプログラムを生成する情報処理装置であって、
前記Ｗｅｂアプリケーションの画面を介して入力される入力定義情報と、前記画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する入出力定義管理手段と、
Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付ける指示受付手段と、
前記指示受付手段により受け付けた生成指示に従って、前記入出力定義管理手段により管理されている入力定義情報と出力定義情報とを用いて、前記Ｗｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成するプログラム生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記プログラム生成手段は、
前記入出力定義管理手段により管理されている入力定義情報と出力定義情報のうち、前記Ｗｅｂサービスに必要な情報を用いて、前記Ｗｅｂサービスに用いられるプログラムを生成すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記入出力定義管理手段により管理されている入力定義情報と出力定義情報とを用いて、前記Ｗｅｂサービスに用いられるプログラムを生成するか否かを判定する判定手段を更に備え、
前記プログラム生成手段は、
前記判定手段により、前記Ｗｅｂサービスに用いられるプログラムを生成すると判定した場合は、前記Ｗｅｂアプリケーションに用いられるプログラムと前記Ｗｅｂサービスに用いられるプログラムとを生成し、前記Ｗｅｂサービスに用いられるプログラムを生成しないと判定した場合は、前記Ｗｅｂアプリケーションに用いられるプログラムを生成すること
を特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記入出力定義管理手段により管理されている入出力定義情報の設定を受け付ける設定受付手段を更に備え、
前記設定受付手段により設定を受け付けた入力定義情報は、前記Ｗｅｂサービスを利用するユーザによって画面から入力される値を表す文字列を含み、
前記設定受付手段により設定を受け付けた出力定義情報は、前記Ｗｅｂサービスを利用した結果、取得される値を表す文字列を含むこと
を特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記Ｗｅｂサービスに用いられるプログラムを生成するルールを記憶する記憶手段を更に備え、
前記プログラム生成手段は、
前記設定受付手段により設定を受け付けた入力定義情報に含まれる前記Ｗｅｂサービスを利用するユーザによって画面から入力される値を表す文字列、および前記設定受付手段により設定を受け付けた出力定義情報に含まれる前記Ｗｅｂサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、前記記憶手段に記憶されているルールを用いて、前記Ｗｅｂサービスの利用に必要なインタフェースとなるメッセージを生成し、当該メッセージを含むＸＭＬファイルを生成すること
を特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記入出力定義管理手段により管理されている入出力定義情報に基づき、新たな入出力定義情報を生成する入出力定義生成手段と、
前記入出力定義生成手段により生成された入出力定義情報と、当該入出力定義情報の生成の基となった入出力定義情報とを関連付けて管理する対応付管理手段と、
前記入出力定義管理手段により管理されている入出力定義情報の設定の変更を受け付ける設定変更受付手段と、
前記設定変更受付手段により設定の変更を受け付けた入出力定義情報が前記対応付管理手段により他の入出力定義情報と対応付けて管理されている場合、ユーザに通知する通知手段と
を備えることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記入出力定義管理手段は、
管理する入出力定義情報について、前記Ｗｅｂサービスに用いられるプログラムの生成時に用いる入出力定義情報か否かのフラグを持ち、
前記プログラム生成手段は、
前記入出力定義管理手段により管理されている入出力定義情報のうち、前記フラグに従って、前記Ｗｅｂサービスに用いられるプログラムの生成時に用いる入出力定義であると判定した入出力定義情報を用いて、前記Ｗｅｂサービスに用いられるプログラムを生成すること
を特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
Ｗｅｂアプリケーションとして用いられるプログラムを生成する情報処理装置における処理方法であって、
前記情報処理装置が、
前記Ｗｅｂアプリケーションの画面を介して入力される入力定義情報と、前記画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する入出力定義管理ステップと、
Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付ける指示受付ステップと、
前記指示受付ステップにより受け付けた生成指示に従って、前記入出力定義管理ステップにより管理されている入力定義情報と出力定義情報とを用いて、前記Ｗｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成するプログラム生成ステップと
を実行することを特徴とする処理方法。
【請求項９】
Ｗｅｂアプリケーションとして用いられるプログラムを生成する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記Ｗｅｂアプリケーションの画面を介して入力される入力定義情報と、前記画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する入出力定義管理手段と、
Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付ける指示受付手段と、
前記指示受付手段により受け付けた生成指示に従って、前記入出力定義管理手段により管理されている入力定義情報と出力定義情報とを用いて、前記Ｗｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成するプログラム生成手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを生成するための情報処理装置と、その処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、入出力定義やデータモデル定義などを設定し、Ｗｅｂアプリケーションのプログラムを生成するＷｅｂアプリケーション開発ツールが存在する。
【０００３】
そのＷｅｂアプリケーション開発ツールによって生成されたＷｅｂアプリケーションのビジネスロジックを外部アプリケーションから利用させるために、当該ＷｅｂアプリケーションをＷｅｂサービス化したいという要望があった。また、当該Ｗｅｂアプリケーションのビジネスロジックと当該Ｗｅｂアプリケーション開発ツール以外で作成した画面レイアウトとを組み合わせてシステムを構築するために、当該ＷｅｂアプリケーションをＷｅｂサービス化したいという要望もあった。
【０００４】
なお、Ｗｅｂサービスとして公開するためには、Ｗｅｂサービス定義情報（Ｗｅｂサービスの利用に必要なインタフェースの定義情報。例えば、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されたファイル。以下、ＷＳＤＬファイルと記す。）を生成する必要があり、ＷＳＤＬの記載方法に不慣れな開発者にとっては、ＷＳＤＬファイルを生成することが難しかった。
【０００５】
特許文献１には、Ｗｅｂコンテンツの編集作業により生成されたＸＭＬファイルを用いて、ＷＳＤＬファイルを生成する仕組みが示されている。また、特許文献２には、Ｗｅｂアプリケーションのプログラムを自動生成するツールにおいて、ＧＵＩレイアウト画面と呼ばれるレイアウトエディタを用いて、Ｗｅｂアプリケーションの画面の入力項目（検索条件テキストボックスや検索ボタン等）及び出力項目（検索結果等）の配置レイアウト及び属性を定義し、その入出力定義情報に基づいてＷｅｂアプリケーションのプログラムを生成する仕組みが示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２７２８７１号公報
【特許文献２】特開２０１５−９９５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１の仕組みは、Ｗｅｂコンテンツを用いてＷＳＤＬファイルを生成するのみである。よって、特許文献１の仕組みでは、Ｗｅｂアプリケーション開発ツールによって生成されたＷｅｂアプリケーションをＷｅｂサービス化したい場合、Ｗｅｂアプリケーション用の入出力定義情報を用いてＷＳＤＬファイルを生成することができないという問題がある。つまり、Ｗｅｂアプリケーション用の入出力定義情報とは別に、Ｗｅｂサービス用の入出力定義情報を新たに設定し、ＷＳＤＬファイルを生成しなければならないため、開発作業が繁雑という問題がある。
【０００８】
また、特許文献２の仕組みは、Ｗｅｂアプリケーションの画面の入出力定義情報を用いて、Ｗｅｂアプリケーションとして用いられるプログラムを生成する仕組みである。よって、特許文献２の仕組みでは、Ｗｅｂアプリケーションの画面の入出力定義情報を用いたとしても、Ｗｅｂサービス定義情報を生成することができないという問題がある。
【０００９】
また、通常、入出力定義情報には複数の定義項目が存在するため、Ｗｅｂサービスの開発者がそれらを誤りなく設定しなければならないため設定ミスが生じやすく、Ｗｅｂアプリケーションとの整合性も取りづらいため、Ｗｅｂサービスの開発及び管理が大変という問題もある。
【００１０】
また、ＷｅｂアプリケーションとＷｅｂサービスとの両方から同じビジネスロジックを使用する場合、入出力定義情報も同じとなるケースが多く、Ｗｅｂアプリケーションの画面の入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成することにより、Ｗｅｂアプリケーションを容易にＷｅｂサービス化したいという課題もある。
【００１１】
そこで、本発明の目的は、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を容易に生成する仕組みを提供することである。
【課題を解決するための手段】
【００１２】
Ｗｅｂアプリケーションとして用いられるプログラムを生成する情報処理装置であって、前記Ｗｅｂアプリケーションの画面を介して入力される入力定義情報と、前記画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する入出力定義管理手段と、Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付ける指示受付手段と、前記指示受付手段により受け付けた生成指示に従って、前記入出力定義管理手段により管理されている入力定義情報と出力定義情報とを用いて、前記Ｗｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成するプログラム生成手段とを備えることを特徴とする情報処理装置。
【発明の効果】
【００１３】
本発明によれば、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービスの定義情報を容易に生成する仕組みを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係るプログラム開発装置、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント、アプリケーションサーバの構成の一例を示すシステム構成図である。
【図２】本発明に係るプログラム開発装置、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント、アプリケーションサーバとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【図４】本発明に係るプログラム開発装置の構成図である。
【図５】第１の実施形態に係るＷｅｂアプリケーション／Ｗｅｂサービス生成のフローチャートの一例を示す図である。
【図６】第１の実施形態に係るソースコード生成のフローチャートの一例を示す図である。
【図７】第１の実施形態に係るＷｅｂサービスソースコード生成のフローチャートの一例を示す図である。
【図８】第１の実施形態に係るＷＳＤＬ生成のフローチャートの一例を示す図である。
【図９】第１の実施形態に係るｇｅｔＤａｔａリクエスト生成のフローチャートの一例を示す図である。
【図１０】第１の実施形態に係るｇｅｔＤａｔａリクエストＷＳＤＬ１０００の一例を示す図である。
【図１１】第１の実施形態に係るｇｅｔＤａｔａレスポンス生成のフローチャートの一例を示す図である。
【図１２】第１の実施形態に係るｇｅｔＤａｔａレスポンスＷＳＤＬ１２００の一例を示す図である。
【図１３】第１の実施形態に係るＢＰリクエスト生成のフローチャートの一例を示す図である。
【図１４】第１の実施形態に係るＢＰリクエストＷＳＤＬ１４００の一例を示す図である。
【図１５】第１の実施形態に係るＢＰレスポンス生成のフローチャートの一例を示す図である。
【図１６】第１の実施形態に係るＢＰレスポンスＷＳＤＬ１６００の一例を示す図である。
【図１７】第１の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（入出力）１７００の一例を示す図である。
【図１８】第１の実施形態に係るＷｅｂサービス用の入出力定義画面（項目一覧）１８００の一例を示す図である。
【図１９】第１の実施形態に係るＷｅｂサービス用の入出力定義画面（入出力）１９００の一例を示す図である。
【図２０】第１の実施形態に係るデータモデル定義画面の一例を示す図である。
【図２１】第１の実施形態に係るＷｅｂサービス利用のフローチャートの一例を示す図である。
【図２２】第１の実施形態に係るＷｅｂサービスを利用する外部アプリケーションのＩＮＰＵＴ画面２２００の一例を示す図である。
【図２３】第１の実施形態に係るＷｅｂサービスサーバに送信するリクエスト２３００の一例を示す図である。
【図２４】第１の実施形態に係るＷｅｂサービスサーバから送信されるレスポンス２４００の一例を示す図である。
【図２５】第１の実施形態に係るＷｅｂサービスを利用する外部アプリケーションのＯＵＴＰＵＴ画面２５００の一例を示す図である。
【図２６】第１の実施形態に係る商品マスタテーブル２６００の一例を示す図である。
【図２７】第１の実施形態に係る入出力定義画面の一例を示す図である。
【図２８】第１の実施形態に係るＷｅｂサービスインタフェースコードの一例を示す図である。
【図２９】第１の実施形態に係る入出力定義作成のフローチャートの一例を示す図である。
【図３０】第１の実施形態に係る入出力定義編集のフローチャートの一例を示す図である。
【図３１】第１の実施形態に係る確認メッセージの一例を示す図である。
【図３２】第１の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（項目一覧）３２００の一例を示す図である。
【図３３】第２の実施形態に係るソースコード生成のフローチャートの一例を示す図である。
【図３４】第２の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（入出力）３３００の一例を示す図である。
【図３５】第３の実施形態に係るソースコード生成のフローチャートの一例を示す図である。
【図３６】第３の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（入出力）３５００の一例を示す図である。
【図３７】第４の実施形態に係るソースコード生成のフローチャートの一例を示す図である。
【図３８】第４の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（項目一覧）３８００の一例を示す図である。
【図３９】第５の実施形態に係るソースコード生成のフローチャートの一例を示す図である。
【図４０】第５の実施形態に係るソースコード生成時の確認メッセージの一例を示す図である。
【図４１】第６の実施形態に係る入出力定義編集のフローチャートの一例を示す図である。
【図４２】第６の実施形態に係る入出力定義編集時の確認メッセージの一例を示す図である。
【図４３】第１〜６の実施形態に係る定義ファイル一覧画面の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を、図面を参照して詳細に説明するが、本発明の特徴の一例を表している箇所は、図３３〜図３５、図３６、図３７である。
〔第１の実施形態〕
図１は、本発明に係わるプログラム開発装置（開発者がＷｅｂアプリケーション生成のために使用する情報処理装置）、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント（クライアント装置）、アプリケーションサーバの構成の一例を示すシステム（情報処理システム）構成図である。
【００１６】
プログラム開発装置１０１は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。プログラム開発装置１０１単体では、開発者の入力受付を行い、後述するプログラム開発サーバ１０２に実際のプログラム生成処理、アプリケーション生成処理をさせてもよいし、プログラム開発装置１０１単体でプログラム生成、アプリケーション生成まで処理してもよい。
【００１７】
なお、この実施形態においては、プログラム開発装置１０１で生成するアプリケーションはＷｅｂアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Ｗｅｂ技術による通信を利用したアプリケーションでなくてもよい。
【００１８】
プログラム開発サーバ１０２ａ〜１０２ｂ（情報処理装置）は、プログラム開発装置１０１により入力された開発者の指示に従って、プログラムを開発する。プログラム開発サーバ１０２ａはＬＡＮなどのネットワーク１０６内に配置されてもよいし、プログラム開発サーバ１０２ｂはインターネット上やクラウド上に配置されてもよい。
【００１９】
データベースサーバ１０３ａ〜１０３ｂ（情報処理装置）は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ１０３は、プログラム開発装置１０１と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０６内に配置されてもよい（データベースサーバ１０３ａ）。またインターネット上やクラウド上に配置されてもよい（データベースサーバ１０３ｂ）。また、プログラム開発装置１０１が、プログラム開発サーバ１０２と協調する場合には、プログラム開発サーバ１０２とデータベースサーバ１０３が同一の装置内に構成されていてもよい。
【００２０】
アプリケーションサーバ１０５ａ〜１０５ｂ（情報処理装置）は、プログラム開発装置１０１で開発されたアプリケーションを実行する。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションサーバ１０５ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションサーバ１０５ｂ）。また、ネットワーク１０６、インターネット、クラウド上のデータベースサーバ１０３と接続して動作する可能である。
【００２１】
アプリケーションクライアント１０４ａ〜１０４ｂ（情報処理装置）は、アプリケーションサーバ１０５と協調してプログラム開発装置１０１で開発したアプリケーションプログラムを動作させる、ユーザの入力端末である。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションクライアント１０４ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションクライアント１０４ｂ）。携帯端末などの情報処理装置であってもよい。
【００２２】
図２は、本発明に係わるプログラム開発装置１０１、プログラム開発サーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４、アプリケーションサーバ１０５として適用可能な各ハードウェア構成の一例を示すブロック図である。
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。
【００２３】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【００２４】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。
【００２５】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、情報処理装置では、キーボード、マウス等のポインティングデバイスが挙げられる。
【００２６】
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶ディスプレイ等が挙げられる。
【００２７】
外部メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。加えて、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
【００２８】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器との通信制御処理を実行する。
【００２９】
本発明を実現するためのプログラム２１２は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３０】
図３は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
プログラム開発装置１０１は、以下の機能部を備える。
【００３１】
入出力定義管理部３０１は、プログラムへ引数として入力される項目を定義する入力定義情報と、プログラムから処理結果として出力する項目を定義する出力定義情報とを入出力定義情報として管理する機能部である。
【００３２】
入出力定義管理部３０１は、Ｗｅｂアプリケーションの画面を介して入力される項目を定義する入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する機能部である。
【００３３】
実行形態設定部３０２は、プログラムが実行される形態を設定する機能部である。
【００３４】
選択受付部３１３は、プログラムをＷｅｂサービスとして用いるかの選択を受け付ける機能部である。
【００３５】
プログラム生成制御部３０３は、実行形態設定部３０２により設定された実行形態に従って、入出力定義管理部３０１により管理されている入出力定義情報を用いて、Ｗｅｂアプリケーションとして用いられるプログラムを生成するかＷｅｂサービスとして用いられるプログラムを生成するかを制御する機能部である。
【００３６】
プログラム生成制御部３０３は、入出力定義管理部３０１により管理されている入出力定義情報を用いて、選択受付部３１３により受け付けた選択に従って、Ｗｅｂアプリケーションとして用いられるプログラム及び当該Ｗｅｂアプリケーションの処理結果を表示するための画面を出力するプログラムを生成するか又はＷｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成するかを制御する機能部である。
【００３７】
設定受付部３０４は、入出力定義管理部３０１により管理されている入出力定義情報の設定を受け付ける機能部である。
【００３８】
設定受付部３０４により設定を受け付けた入力定義情報は、Ｗｅｂサービスを利用するユーザによって画面から入力される値を表す文字列を含む。
【００３９】
設定受付部３０４により設定を受け付けた出力定義情報は、Ｗｅｂサービスを利用した結果、取得される値を表す文字列を含む。
【００４０】
記憶部３０５は、Ｗｅｂアプリケーションに用いられるプログラムおよびＷｅｂサービスに用いられるプログラムを生成するルールを記憶する機能部である。
【００４１】
記憶部３０５は、Ｗｅｂアプリケーションとして用いられるプログラム及びＷｅｂサービスとして用いられるプログラムを生成するルールを記憶する機能部である。
【００４２】
プログラム生成制御部３０３は、実行形態設定部３０２により設定された実行形態がＷｅｂサービスである場合に、設定受付部３０４により設定を受け付けた入力定義情報に含まれるＷｅｂサービスを利用するユーザによって画面から入力される値を表す文字列、及び設定受付部３０４により設定を受け付けた出力定義情報に含まれるＷｅｂサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶部３０５に記憶されているルールを用いて、Ｗｅｂサービスの利用に必要なインタフェースとなるメッセージを生成し、当該メッセージを含むＸＭＬファイルを生成する機能部である。
【００４３】
プログラム生成制御部３０３は、選択受付部３１３により受け付けた選択に従って、設定受付部３０４により設定を受け付けた入力定義情報に含まれるＷｅｂサービスを利用するユーザによって画面から入力される値を表す文字列、及び設定受付部３０４により設定を受け付けた出力定義情報に含まれるＷｅｂサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶部３０５に記憶されているルールを用いて、Ｗｅｂサービスの利用に必要なインタフェースの定義情報を生成する機能部である。
【００４４】
プログラム生成制御部３０３は、入出力定義管理部３０１により管理されている入力定義情報と出力定義情報のうち、Ｗｅｂサービスに必要な情報を用いて、Ｗｅｂサービスとして用いられるプログラムを生成する機能部である。
【００４５】
プログラム生成制御部３０３は、入出力定義管理部３０１により管理されている入力定義情報と出力定義情報のうち、Ｗｅｂサービスに必要な情報を用いて、Ｗｅｂサービスの利用に必要なインタフェースの定義情報を生成する機能部である。
【００４６】
入出力定義生成部３０６は、入出力定義管理部３０１により管理されている入出力定義情報に基づき、新たな入出力定義情報を生成する機能部である。
【００４７】
対応付管理部３０７は、入出力定義生成部３０６により生成された入出力定義情報と、当該入出力定義情報の生成の基となった入出力定義情報とを関連付けて管理する機能部である。
【００４８】
設定変更受付部３０８は、入出力定義管理部３０１により管理されている入出力定義情報の設定の変更を受け付ける機能部である。、
通知部３０９は、設定変更受付部３０８により設定の変更を受け付けた入出力定義情報が対応付管理部３０７により他の入出力定義情報と対応付けて管理されている場合、ユーザに通知する機能部である。
【００４９】
指示受付部３１０は、Ｗｅｂサービスに用いられるプログラムの生成指示を受け付ける機能部である。、
指示受付部３１０は、Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付ける機能部である。、
プログラム生成部３１１は、指示受付部３１０により受け付けた生成指示に従って、入出力定義管理部３０１により管理されている入力定義情報と出力定義情報とを用いて、Ｗｅｂサービスとして用いられるプログラムを生成する機能部である。
【００５０】
プログラム生成部３１１は、指示受付部３１０により受け付けた生成指示に従って、入出力定義管理部３０１により管理されている入力定義情報と出力定義情報とを用いて、Ｗｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成する機能部である。
【００５１】
判定部３１２は、入出力定義管理部３０１により管理されている入力定義情報と出力定義情報とを用いて、Ｗｅｂサービスとして用いられるプログラムを生成するか否かを判定する機能部である。
プログラム生成部３１１は、判定部３１２により、Ｗｅｂサービスとして用いられるプログラムを生成すると判定した場合は、Ｗｅｂアプリケーションとして用いられるプログラムとＷｅｂサービスとして用いられるプログラムとを生成し、Ｗｅｂサービスとして用いられるプログラムを生成しないと判定した場合は、Ｗｅｂアプリケーションとして用いられるプログラムを生成する機能部である。
【００５２】
図４は、プログラム開発装置１０１の構成図である。プログラム開発装置１０１は、Ｗｅｂアプリケーションを開発する開発者が定義した定義ファイルをもとにＷｅｂアプリケーションを自動生成することを目的とした装置である。プログラム開発装置１０１は、リポジトリ定義部４００、アプリケーション生成部４１０、Ｗｅｂアプリケーションコード生成部４２０、Ｗｅｂサービスコード生成部４３０、ソースコードコンパイル部４４０により構成される。
【００５３】
リポジトリ定義部４００は、データベース定義４０１、アプリケーション定義４０２、データモデル定義４０３、入出力定義４０４、ビジネスプロセス定義４０５、Ｗｅｂサービス入出力定義４０６（以下、Ｗｅｂサービス用の入出力定義４０６と記す）を備える。これらのファイルは、Ｗｅｂアプリケーション開発ツールを介して開発者によって入力され、作成される。
【００５４】
すなわち、リポジトリ定義部４００は、プログラムへ引数として入力される項目を定義する入力定義情報と、プログラムから処理結果として出力する項目を定義する出力定義情報とを入出力定義情報として管理する手段の一例である。
【００５５】
なお、この入力定義情報は、生成されたＷｅｂアプリケーションの画面を介して当該Ｗｅｂアプリケーションのユーザが入力する入力項目を定義した情報であり、出力定義情報は、生成されたＷｅｂアプリケーションの画面として出力する出力項目を定義した情報である、と言い換えることができる。
【００５６】
よって、リポジトリ定義部４００は、生成されたプログラムの実行によって表示されるＷｅｂアプリケーションの画面を介して入力される項目を定義する入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する手段の一例である。
【００５７】
そのため、Ｗｅｂアプリケーションの画面における入出力定義情報を、Ｗｅｂサービスとして用いられるプログラムにおける入出力定義情報として利用することができる。
【００５８】
これにより、Ｗｅｂアプリケーションの開発フェーズにおいてよくある、画面項目の追加・変更・削除は、Ｗｅｂアプリケーション開発ツールのレイアウトエディタ等を介して、Ｗｅｂアプリケーション画面の入出力項目を直感的に追加・変更・削除することで、Ｗｅｂアプリケーションとして用いられるプログラムだけでなく、Ｗｅｂサービスとして用いられるプログラムにも反映されるため、Ｗｅｂサービスとして用いられるプログラムを容易に生成することができる。
【００５９】
また、Ｗｅｂアプリケーションの開発においては、Ｗｅｂアプリケーション画面を介してエンドユーザによって入力された値のクライアント端末におけるバリデーションチェック処理（例：ＪａｖａＳｃｒｉｐｔ（登録商標））、その入力値をサーバが受信した際のバリデーションチェック処理（例：サーバサイドＪａｖａ（登録商標））のように、２回チェック処理を行わなくてはならないケースが多い。
【００６０】
次に、Ｗｅｂアプリケーションコード生成部４２０について説明する。リポジトリ定義解析部４２１は、リポジトリ定義部４００からデータベース定義４０１、アプリケーション定義４０２、データモデル定義４０３、入出力定義４０４、ビジネスプロセス定義４０５を読み込み解析する。Ｗｅｂアプリケーションコード生成部４２２は、外部メモリ２１１に記憶されているコード生成ルールと、リポジトリ定義解析部４２１によって解析された内容とを用いて、ソースコードコンパイル部４４０を介し、Ｗｅｂアプリケーションモジュール４５４を生成する。すなわち、Ｗｅｂアプリケーションコード生成部４２２は、Ｗｅｂアプリケーションとして用いられるプログラムを生成するルールを記憶する手段の一例である。
【００６１】
次に、Ｗｅｂサービスコード生成部４３０について説明する。Ｗｅｂサービス入出力定義解析部４３１は、リポジトリ定義部４００からデータベース定義４０１、アプリケーション定義４０２、データモデル定義４０３、ビジネスプロセス定義４０５、Ｗｅｂサービス用の入出力定義４０６を読み込み解析する。Ｗｅｂサービスインタフェースコード生成部４３２は、外部メモリ２１１に記憶されているコード生成ルールと、Ｗｅｂサービス入出力定義解析部４３１によって解析された内容とを用いて、ソースコードコンパイル部４４０を介し、Ｗｅｂアプリケーションモジュール４５４を生成する。また、ＷＳＤＬ生成部４３３は、Ｗｅｂサービス入出力定義解析部４３１によって解析された内容を用いて、Ｗｅｂサービスモジュール４５１を生成する。
すなわち、Ｗｅｂサービスコード生成部４３０は、Ｗｅｂサービスとして用いられるプログラムを生成するルールを記憶する手段の一例である。
【００６２】
図５は、Ｗｅｂアプリケーション／Ｗｅｂサービス生成のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のＣＰＵ２０１が実行する。
ステップＳ５０１において、プログラム開発装置１０１は、ユーザによるＷｅｂアプリケーション／Ｗｅｂサービス生成指示を受け付けると、外部メモリ２１１に記憶されているリポジトリ定義部４００のアプリケーション定義４０２をＲＡＭ２０２に読み込む。すなわち、ステップＳ５０１は、Ｗｅｂサービスとして用いられるプログラムの生成指示を受け付ける処理の一例を示すステップである。
【００６３】
ステップＳ５０２において、プログラム開発装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部４００のデータモデル定義４０３をＲＡＭ２０２に読み込む。
【００６４】
ステップＳ５０３において、プログラム開発装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部４００の入出力定義４０４をＲＡＭ２０２に読み込む。
【００６５】
ステップＳ５０４において、プログラム開発装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部４００のビジネスプロセス定義４０５をＲＡＭ２０２に読み込む。
【００６６】
ステップＳ５０５において、プログラム開発装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部４００のデータベース定義４０１をＲＡＭ２０２に読み込む。
【００６７】
ステップＳ５０６において、プログラム開発装置１０１は、ＲＡＭ２０２に読み込んだリポジトリ定義部４００の各定義・各ファイルから情報を取得し、ソースコードを生成する。
【００６８】
なお、生成されたソースコードにはプログラミング言語が記載されたファイルに加え、ＨＴＭＬ、ＪＳＰ、ＪａｖａＳｃｒｉｐｔ（登録商標）等のＷｅｂアプリケーションやＷｅｂサービスの提供に利用されるファイルも含まれる。ソースコード生成処理については、図６にて詳細を説明する。
【００６９】
ステップＳ５０７において、プログラム開発装置１０１は、ステップＳ５０６にて生成したソースコードをアプリケーションサーバ１０５に配置（デプロイ）する。これにより、アプリケーションサーバ１０５上でＷｅｂアプリケーション又はＷｅｂサービスが動作するようになる。
【００７０】
以上で、図５の説明を終了する。
【００７１】
図６は、ソースコード生成のフローチャートの一例を示す図である。
ステップＳ６０１において、プログラム開発装置１０１は、ＲＡＭ２０２から、Ｗｅｂアプリケーション又はＷｅｂサービスの生成を指示されたアプリケーション定義４０２に対応付けられている入出力定義４０４又はＷｅｂサービス用の入出力定義４０６を取得し、取得した入出力定義４０４又はＷｅｂサービス用の入出力定義４０６について、それぞれステップＳ６０２〜ステップＳ６０４を繰り返す。
【００７２】
ステップＳ６０２において、プログラム開発装置１０１は、取得した入出力定義４０４又はＷｅｂサービス用の入出力定義４０６の実行形態（図１７の入出力タイプ１７０１の値、又は図１９の入出力タイプ１９０１の値）を判定し、入出力タイプ１７０１のように値が“ＩＯ”の場合はＷｅｂアプリケーション用の入出力定義４０４であると捉えてステップＳ６０３に進み、入出力タイプ１９０１のように値が“ＷＥＢ  ＳＥＲＶＩＣＥ”の場合はＷｅｂサービス用の入出力定義４０６であると捉えてステップＳ６０４に進む。
【００７３】
すなわち、入出力タイプ１７０１は、プログラムが実行される形態を設定する手段の一例である。また、プログラムをＷｅｂサービスとして用いるかの選択を受け付ける手段の一例である。
【００７４】
また、ステップＳ６０２は、設定された実行形態に従って、入出力定義情報を用いて、Ｗｅｂアプリケーションに用いられるプログラムを生成するかＷｅｂサービスに用いられるプログラムを生成するかを制御する処理の一例を示すステップである。
【００７５】
また、ステップＳ６０２は、入出力定義情報を用いて、受け付けた選択に従って、Ｗｅｂアプリケーションとして用いられるプログラム及び当該Ｗｅｂアプリケーションの処理結果を表示するための画面を出力するプログラムを生成するか又はＷｅｂサービスの利用に必要なインタフェースの定義情報及び当該Ｗｅｂサービスとして用いられるプログラムを生成するかを制御する処理の一例を示すステップである。
【００７６】
また、図１７〜図１９の入出力定義画面は、入出力定義情報の設定を受け付ける手段の一例である。
【００７７】
ステップＳ６０３において、プログラム開発装置１０１は、入出力定義４０４を用いて、Ｗｅｂアプリケーション用の入出力定義ソースコードを生成する。具体的には、入出力定義４０４から、入出力項目（図３２の項目タイプ３２０１＝ＩＯ（入出力）又はＩ（入力）の項目）、画面表示に必要なパラメータ（図３２の初期値３２０２）、検索対象（図１７の対象データモデル１７０２）、検索条件（図１７の対象条件１７０３）を取得し解析し、図２８の２８０１、２８０２のようなＷｅｂアプリケーション用の入出力定義ソースコードを生成する。
【００７８】
なお、２８０１のメソッドの戻り値を、入出力定義コード名３２０３＋“Ｄｉｓｐ”とする。また、入出力項目（図３２の項目タイプ３２０１＝ＩＯ（入出力）又はＩ（入力）の項目）は、２８０１のｐａｒａｍＬｉｓｔ及び２８０２のｆｏｒｍに含まれることになる。よって、入出力定義４０４の項目タイプ３２０１の各設定は、ＡｃｔｉｏｎＦｏｒｍクラスのｇｅｔｔｅｒ／ｓｅｔｔｅｒメソッド、ＪＳＰファイル内の対応する画面項目のＩＤやＮＡＭＥなどに反映されて、Ｗｅｂアプリケーション用の入出力定義ソースコードが生成される。
【００７９】
なお、図３２は、Ｗｅｂアプリケーション用の入出力定義画面（項目一覧）３２００の一例を示す図であり、ユーザによって表示タブ「入出力（図３２の３２０４）」が押下されると、図１７のＷｅｂサービス用の入出力定義画面（入出力）１７００を表示する。
【００８０】
ステップＳ６０４において、プログラム開発装置１０１は、Ｗｅｂサービス用の入出力定義４０６を用いて、Ｗｅｂサービス用の入出力定義ソースコードを生成する。すなわち、ステップＳ６０４は、受け付けたプログラム生成指示に従って、入力定義情報と出力定義情報とを用いて、Ｗｅｂサービスとして用いられるプログラムを生成する処理の一例を示すステップである。この処理については、後述する図７にて詳細を説明する。
【００８１】
以上により、設定した入出力定義情報を用いて、ＷｅｂアプリケーションやＷｅｂサービスなど開発者が所望する形態に応じたプログラムファイルを容易に生成することができるようになる。特に、アプリケーションかＷｅｂサービスを容易に切り替えさせ、所望の形態のプログラムファイルを生成することができるようになる。
【００８２】
以上で、図６の説明を終了する。
【００８３】
図７は、Ｗｅｂサービスソースコード生成のフローチャートの一例を示す図である。
ステップＳ７０１において、プログラム開発装置１０１は、Ｗｅｂサービス用の入出力定義４０６を解析する。具体的には、入出力定義４０４から、入出力項目（図１８の項目タイプ１８０１＝ＩＯ（入出力）又はＩ（入力）の項目）、画面表示に必要なパラメータ（図１８の初期値１８０２）、検索対象（図１９の対象データモデル１９０２）、検索条件（図１９の対象条件１９０３）を取得し解析する。
【００８４】
なお、図１８は、Ｗｅｂサービス用の入出力定義画面（項目一覧）１８００の一例を示す図であり、ユーザによって表示タブ「入出力（図１８の１８０４）」が押下されると、図１９のＷｅｂサービス用の入出力定義画面（入出力）１９００を表示する。
【００８５】
なお、図１７と図１９、図１８と図３２の画面構成は同じであり、図２９で後述するが、入出力定義４０４は、既存の入出力定義をコピーして作成することができる。よって、Ｗｅｂサービス用の入出力定義４０６には、画面表示上の装飾等（例えば、ラジオボタンやセレクトボックス等、どのような画面部品を用いて表示するか等）、Ｗｅｂサービスに不要な設定も含まれる。そのため、ステップＳ７０１では、Ｗｅｂサービス用の入出力定義４０６の解析を行う際に、Ｗｅｂサービスに不要な設定を除き、解析を行う。これにより、解析処理をより短い時間で行うことができるようになる。
【００８６】
すなわち、ステップＳ７０１は、入力定義情報と出力定義情報のうち、Ｗｅｂサービスに必要な情報を用いて、Ｗｅｂサービスとして用いられるプログラムを生成する処理の一例を示すステップである。また、ステップＳ７０１は、入力定義情報と出力定義情報のうち、Ｗｅｂサービスに必要な情報を用いて、Ｗｅｂサービスの利用に必要なインタフェースの定義情報を生成する処理の一例を示すステップである。
【００８７】
ステップＳ７０２において、プログラム開発装置１０１は、取得した入出力定義４０４の情報を基にして、図２８の２８０３のようなデータ取得のＷｅｂサービスインタフェースコードを生成する。具体的には、図１８の入出力定義コード名１８０３を用いて、戻り値を“ＷＳＩｏ”＋  入出力定義コード名１８０３  ＋“ＧｅｔＤａｔａＲｅｓｕｌｔ”とし、メソッド名を  入出力定義コード名１８０３＋“＿ｇｅｔＤａｔａ”として出力し、パラメータ（初期値１８０２及び対象条件１９０３に含まれる
【００８８】
の個数分だけ）を引数とする。
【００８９】
なお、このメソッドは、アプリケーションサーバ１０５から、ｇｅｔＤａｔａのＷｅｂサービスが呼び出されたときに実行される（図２１のステップＳ２１０２〜ステップＳ２１０４）。
【００９０】
また、アクション項目（図２７の２７０１）にＢＰ（ビジネスプロセス）定義（加工式２７０３の“
【００９１】
数字”を含む文字列）がある場合は、図２８の２８０４のようなビジネスプロセスを呼び出すＷｅｂサービスインタフェースコードを生成する。具体的には、図１８の入出力定義コード名１８０３を用いて、戻り値を“ＷＳＩｏＡｃｔｉｏｎＲｅｓｕｌｔ”、メソッド名を  入出力定義コード名１８０３  ＋“＿ｅｘｅｃ”＋  アクションのコード名（加工式２７０３から
【００９２】
を除いた文字列）として出力し、パラメータを引数とする。
【００９３】
なお、このメソッドは、アプリケーションサーバ１０５から、ＢＰ（ビジネスプロセス）のＷｅｂサービスが呼び出されたときに実行される（図２１のステップＳ２１０２〜ステップＳ２１０４）。
【００９４】
ステップＳ７０３において、プログラム開発装置１０１は、ステップＳ７０１にて解析したＷｅｂサービス用の入出力定義４０６を用いて、ＷＳＤＬ生成（図８）を行う。この処理については、図８にて詳細を説明する。
【００９５】
すなわち、ステップＳ７０２及びステップＳ７０３は、設定された実行形態がＷｅｂサービスである場合に、設定を受け付けた入力定義情報に含まれるＷｅｂサービスを利用するユーザによって画面から入力される値を表す文字列及び設定を受け付けた出力定義情報に含まれるＷｅｂサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶されているルールを用いて、Ｗｅｂサービスの利用に必要なインタフェースとなるメッセージを生成し、当該メッセージを含むＸＭＬファイルを生成する処理の一例を示すステップである。
【００９６】
また、ステップＳ７０２及びステップＳ７０３は、受け付けた選択に従って、設定を受け付けた入力定義情報に含まれるＷｅｂサービスを利用するユーザによって画面から入力される値を表す文字列及び設定を受け付けた出力定義情報に含まれるＷｅｂサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶されているルールを用いて、Ｗｅｂサービスの利用に必要なインタフェースの定義情報を生成する処理の一例を示すステップである。
【００９７】
以上で、図７の説明を終了する。
【００９８】
図８は、ＷＳＤＬ生成のフローチャートの一例を示す図である。
ステップＳ８０１において、プログラム開発装置１０１は、ｇｅｔＤａｔａリクエスト生成（図９）を行う。この処理については、図９にて詳細を説明する。
【００９９】
ステップＳ８０２において、ｇｅｔＤａｔａレスポンス生成（図１１）を行う。この処理については、図１１にて詳細を説明する。
【０１００】
なお、ｇｅｔＤａｔａリクエスト／ｇｅｔＤａｔａレスポンスは対になっており、主に画面情報を取得するために利用される。
【０１０１】
ステップＳ８０３において、ＢＰリクエスト生成（図１３）を行う。この処理については、図１３にて詳細を説明する。
【０１０２】
ステップＳ８０４において、ＢＰレスポンス生成（図１５）を行う。この処理については、図１５にて詳細を説明する。
【０１０３】
なお、ＢＰリクエスト／ＢＰレスポンスは対になっており、それぞれアクション実行とアクション結果取得のために利用される。
【０１０４】
以上で、図８の説明を終了する。
【０１０５】
図９は、ｇｅｔＤａｔａリクエスト生成のフローチャートの一例を示す図である。
ステップＳ９０１において、プログラム開発装置１０１は、入出力定義４０４に対象条件１９０３の設定があるか否かを判定し、ある場合はステップＳ９０２に進み、ない場合は図９の処理を終了する。
【０１０６】
ステップＳ９０２において、プログラム開発装置１０１は、ＷＳＤＬにデータ取得処理のリクエストの記述を出力する（図１０の１００１）。具体的には、入出力定義コード名１８０３を用いて、  ｏｐｅｒａｔｉｏｎ  ｎａｍｅ＝  入出力定義コード名１８０３＋“＿ｇｅｔＤａｔａ”、ｍｅｓｓａｇｅ＝  入出力定義コード名１８０３＋“＿ｇｅｔＤａｔａＲｅｑｕｅｓｔ”  のように出力する。これにより、「ＩＯ００２＿ＷＳＤＬ＿ｇｅｔＤａｔａ」という検索処理がＷｅｂサービスとして公開され、外部アプリケーションから利用することができるようになる。
【０１０７】
ステップＳ９０３において、プログラム開発装置１０１は、入出力定義４０４にパラメータがあるか否かを判定し、ある場合はステップＳ９０４に進み、ない場合は図９の処理を終了する。具体的には、対象条件１９０３又は初期値１８０２に“
【０１０８】
数字”を含む文字列が含まれる場合は、図１０の１００２の記述を出力し、ステップＳ９０４に進む。１００２の記述は、具体的には、入出力定義コード名１８０３を用いて、  ｅｌｅｍｅｎｔ＝“ｎｓ：”＋  入出力定義コード名１８０３  ＋“＿ｇｅｔＤａｔａ”  とする。これにより、検索処理「ＩＯ００２＿ＷＳＤＬ＿ｇｅｔＤａｔａ」を呼び出す際に、パラメータを送ることができるようになる。
【０１０９】
ステップＳ９０４において、ＷＳＤＬに図１０の１００３のような記述をパラメータ数だけ出力する。具体的に、１００３の記述は、パラメータの通し番号Ｎ（
【０１１０】
数字の数字部）を用いて、  ｎａｍｅ＝“ｐａｒａｍ”＋Ｎ  とする。
【０１１１】
以上で、図９の説明を終了する。
【０１１２】
図１０は、ｇｅｔＤａｔａリクエストＷＳＤＬ１０００の一例を示す図である。図１０は、入出力定義４０４に対象条件１９０３の設定があり、かつ入出力定義４０４にパラメータがある場合のリクエストＷＳＤＬの一例である。
図１１は、ｇｅｔＤａｔａレスポンス生成のフローチャートの一例を示す図である。
【０１１３】
ステップＳ１１０１において、プログラム開発装置１０１は、ステップＳ９０１と同様、入出力定義４０４に対象条件１９０３の設定があるか否かを判定し、ある場合はステップＳ１１０２に進み、ない場合は図１１の処理を終了する。
【０１１４】
ステップＳ１１０２において、プログラム開発装置１０１は、ＷＳＤＬにデータ取得処理のレスポンスの記述を出力する（図１２の１２０１）。具体的には、入出力定義コード名１８０３を用いて、  ｏｐｅｒａｔｉｏｎ  ｎａｍｅ＝  入出力定義コード名１８０３＋“＿ｇｅｔＤａｔａ”、  ｍｅｓｓａｇｅ＝  入出力定義コード名１８０３＋“＿ｇｅｔＤａｔａＲｅｓｐｏｎｓｅ”  のように出力する。これにより、Ｗｅｂサービスとして公開された検索処理「ＩＯ００２＿ＷＳＤＬ＿ｇｅｔＤａｔａ」の戻り値を公開することができるようになる。
【０１１５】
ステップＳ１１０３において、プログラム開発装置１０１は、Ｗｅｂサービス用の入出力定義４０６から、入出力項目（図１８の項目タイプ１８０１＝ＩＯ（入出力）又はＯ（出力）の項目）を取得し、ＷＳＤＬに項目定義を出力する（図１２の１２０２）。具体的には、入出力定義画面（入出力）１９００の対象データモデル１９０２に設定されたデータモデルの項目コード２００１（図２０）を用いて、  ｎａｍｅ＝項目コード２００１  とし、データタイプ２００２（図２０）に従ってデータの型名を決定し、  ｔｙｐｅ＝“ｘｓ：”＋型名  とする。図１２の１２０２の記述から、検索処理の結果として、Ｓｔｒｉｎｇ型の「ｉｔｅｍ＿ｋｅｙ」と、Ｓｔｒｉｎｇ型の「ｉｔｅｍ＿ｖａｌｕｅ」という項目が出力されることがわかる。これにより、Ｗｅｂサービスの実行結果の戻り値に含まれる項目ＩＤと型情報を公開できるようになる。
【０１１６】
なお、図２０は、Ｗｅｂアプリケーション開発ツールによって生成されたＷｅｂアプリケーション及びＷｅｂサービスが利用するデータモデル定義画面の一例を示す図である。この画面で定義する各項目はＷｅｂアプリケーション及びＷｅｂサービスが接続するデータベースのテーブルのカラム名と一致する。
【０１１７】
以上で、図１１の説明を終了する。
【０１１８】
図１２は、ｇｅｔＤａｔａレスポンスＷＳＤＬ１２００の一例を示す図である。図１２は、入出力定義４０４に対象条件１９０３の設定があり、かつ出力項目が存在する場合のレスポンスＷＳＤＬの一例である。
図１３は、ＢＰ（ビジネスプロセス）リクエスト生成のフローチャートの一例を示す図である。
【０１１９】
ステップＳ１３０１において、プログラム開発装置１０１は、図２７の項目タイプ２７０１の定義を取得し、項目タイプ２７０１＝「Ａ：アクション」の項目にビジネスプロセス（図２７の加工式２７０３）の定義があるか否か判定する。ある場合はステップＳ１３０２に進み、ない場合は図１３の処理を終了する。
【０１２０】
ステップＳ１３０２において、プログラム開発装置１０１は、ＷＳＤＬにビジネスプロセス定義を出力する（図１４の１４０１）。具体的には、入出力定義コード名１８０３とアクションの項目コード名２７０２を用いて、ｏｐｅｒａｔｉｏｎ  ｎａｍｅ＝  入出力定義コード名１８０３  ＋“＿ｅｘｅｃ”＋  アクションの項目コード名２７０２  ＋ｍｅｓｓａｇｅ＝  入出力定義コード名１８０３  ＋“＿ｅｘｅｃ”＋  アクションの項目コード名２７０２  ＋“Ｒｅｑｕｅｓｔ”  とする。これにより、「ＩＯ００２＿ＷＳＤＬ＿ｅｘｅｃＩＮＳＥＲＴ」という登録処理がＷｅｂサービスとして公開され、外部アプリケーションから利用することができるようになる。
【０１２１】
ステップＳ１３０３において、プログラム開発装置１０１は、Ｗｅｂサービス用の入出力定義４０６に、入出力項目（図１８の項目タイプ１８０１＝ＩＯ（入出力）又はＩ（入力）の項目）の有無を判定する。ある場合はステップＳ１３０４に進み、ない場合は図１３の処理を終了する。
【０１２２】
ステップＳ１３０４において、プログラム開発装置１０１は、ＷＳＤＬにビジネスプロセスへのパラメータを出力する（図１４の１４０２）。具体的には、入出力定義コード名１８０３とアクションの項目コード名２７０２を用いて、ｅｌｅｍｅｎｔ＝入出力定義コード名１８０３  ＋“＿ｅｘｅｃ”＋  アクションの項目コード名２７０２  とする。これにより、登録処理「ＩＯ００２＿ＷＳＤＬ＿ｅｘｅｃＩＮＳＥＲＴ」の呼出し時に、外部アプリケーションからパラメータを与えることができるようになる。
【０１２３】
ステップＳ１３０５において、プログラム開発装置１０１は、Ｗｅｂサービス用の入出力定義４０６から、入出力項目（図１８の項目タイプ１８０１＝ＩＯ（入出力）又はＩ（入力）の項目）を取得し、ＷＳＤＬに項目定義を出力する（図１４の１４０３）。具体的には、入出力定義画面（入出力）１９００の対象データモデル１９０２に設定されたデータモデルの項目コード２００１（図２０）を用いて、  ｎａｍｅ＝項目コード２００１  とし、データタイプ２００２（図２０）に従ってデータの型名を決定し、  ｔｙｐｅ＝“ｘｓ：”＋型名  とする。図１４の１４０３の記述から、登録処理のパラメータは、Ｓｔｒｉｎｇ型の「ｉｔｅｍ＿ｋｅｙ」、Ｓｔｒｉｎｇ型の「ｉｔｅｍ＿ｐａｒａｍ」、Ｓｔｒｉｎｇ型の「ｉｔｅｍ＿ｖａｌｕｅ」であるということがわかる。これにより、Ｗｅｂサービスの実行時のパラメータを公開できるようになる。
【０１２４】
以上で、図１３の説明を終了する。
【０１２５】
図１４は、ＢＰリクエストＷＳＤＬ１４００の一例を示す図である。図１４は、入出力定義４０４にビジネスプロセスが定義されたアクション項目があり、かつ入出力項目にＩＯ又はＩ項目が存在する場合のＢＰリクエストＷＳＤＬの一例である。
図１５は、ＢＰレスポンス生成のフローチャートの一例を示す図である。
【０１２６】
ステップＳ１５０１において、プログラム開発装置１０１は、図２７の項目タイプ２７０１の定義を取得し、項目タイプ２７０１＝「Ａ：アクション」の項目にビジネスプロセス（図２７の加工式２７０３）の定義があるか否か判定する。ある場合はステップＳ１５０２に進み、ない場合は図１５の処理を終了する。
【０１２７】
ステップＳ１５０２において、プログラム開発装置１０１は、ＷＳＤＬにビジネスプロセス定義を出力する（図１６の１６０１）。具体的には、入出力定義コード名１８０３とアクションの項目コード名２７０２を用いて、ｏｐｅｒａｔｉｏｎ  ｎａｍｅ＝  入出力定義コード名１８０３  ＋“＿ｅｘｅｃ”＋アクションの項目コード名２７０２  ＋ｍｅｓｓａｇｅ＝  入出力定義コード名１８０３  ＋“＿ｅｘｅｃ”＋  アクションの項目コード名２７０２  ＋“Ｒｅｓｐｏｎｓｅ”  とする。これにより、登録処理「ＩＯ００２＿ＷＳＤＬ＿ｅｘｅｃＩＮＳＥＲＴ」を外部アプリケーションから利用した時の戻り値を公開できるようになる。
【０１２８】
ステップＳ１５０３において、プログラム開発装置１０１は、図２７の次入出力２７０４の定義を取得し、ＷＳＤＬに次画面情報を出力する（図１６の１６０２）。具体的には、ｎｅｘｔＩｏの値が空の場合は、画面遷移を行わずに自画面に遷移することを表すものとする。これにより、登録処理「ＩＯ００２＿ＷＳＤＬ＿ｅｘｅｃＩＮＳＥＲＴ」を利用した後に遷移する入出力を公開できるようになる。
【０１２９】
ステップＳ１５０４において、プログラム開発装置１０１は、図２７の次入出力パラメータ２７０５の定義を取得し、次入出力パラメータ２７０５に設定されている変数の数だけ、ＷＳＤＬに次入出力パラメータ定義を出力する（図１６の１６０３）。これにより、登録処理「ＩＯ００２＿ＷＳＤＬ＿ｅｘｅｃＩＮＳＥＲＴ」を利用した結果、次の画面へどのような引数が渡されるかを公開できるようになる。
【０１３０】
以上で、図１５の説明を終了する。
【０１３１】
以上の図９〜図１５の処理によってＷＳＤＬファイルを生成することにより、プログラムへ引数として入力される項目を定義する入力定義情報やプログラムから処理結果として出力する項目を定義する出力定義情報を管理する必要があるＷｅｂアプリケーション開発ツールにおいて、それらの入出力定義情報を用いたＷＳＤＬファイルを生成することができないという問題を解決することができる。
つまり、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を容易に生成することができるようになる。
【０１３２】
図１６は、ＢＰレスポンスＷＳＤＬ１６００の一例を示す図である。図１６は、入出力定義４０４にビジネスプロセスが定義されたアクション項目があり、かつ次入出力パラメータ２７０５が設定されている場合のＢＰレスポンスＷＳＤＬの一例である。
【０１３３】
図２１は、外部アプリケーションを実行している外部アプリケーションクライアントが、図５の処理により生成されたＷｅｂサービスを利用するフローチャートの一例を示す図である。図２２は、Ｗｅｂサービスを利用する外部アプリケーションのＩＮＰＵＴ画面２２００の一例を示す図である。図２５は、Ｗｅｂサービスを利用する外部アプリケーションのＯＵＴＰＵＴ画面２５００の一例を示す図である。
【０１３４】
ステップＳ２１０１において、外部アプリケーションクライアントは、外部アプリケーションのユーザによる検索条件（図２２の商品コード２２０１）の入力を受け付け、検索ボタン２２０２の押下による処理実行指示を受け付ける。
【０１３５】
ステップＳ２１０２において、外部アプリケーションクライアントは、外部アプリケーションサーバにリクエストを送信する。
【０１３６】
ステップＳ２１０３において、外部アプリケーションサーバは、リクエストを受信する。
【０１３７】
ステップＳ２１０４において、外部アプリケーションサーバは、Ｗｅｂサービスサーバ（図１のアプリケーションサーバ１０５。つまり、図５の処理により生成されたＷｅｂサービスをデプロイしたサーバ。）にて公開されているｇｅｔＤａｔａ処理（図１０の１００１）を利用すべく、Ｗｅｂサービスサーバに図２３のようなリクエストを送信する。具体的には、ステップＳ２１０１にて入力を受け付けた検索条件（商品コード２２０１）の値を用いたパラメータ２３０１を含むリクエストを送信する。
【０１３８】
ステップＳ２１０５において、Ｗｅｂサービスサーバは、リクエストを受信する。
【０１３９】
ステップＳ２１０６において、Ｗｅｂサービスサーバは、受信したリクエストに含まれるパラメータを用いて、図２０のデータモデル定義２０００で定義されるテーブルを検索する。具体的には、Ｗｅｂサービスのプログラムに含まれる、Ｗｅｂサービス用の入出力定義画面（入出力）１９００の対象データモデル１９０２と対象条件１９０３を用いて、検索処理を行う。
【０１４０】
なお、検索対象となるテーブルのカラムは、Ｗｅｂサービスのプログラムに含まれる、データモデル定義２０００（図２０）に定義されている項目コード２００１であり、テーブル（商品マスタテーブル２６００）には図２６のようなデータが記憶されているものとする。ここでは、対象条件１９０３に従って、ＩＴＥＭ＿ＫＥＹ＝“Ｃ１０１”という検索条件で商品マスタテーブル２６００を検索することにより、検索結果としてレコード２６０３を取得したとする。
【０１４１】
ステップＳ２１０７において、Ｗｅｂサービスサーバは、外部アプリケーションサーバへ図２４のようなレスポンス２４００を送信する。具体的には、レスポンス２４００には、ステップＳ２１０６の検索処理にて取得した検索結果である、ｉｔｅｍ＿ｋｅｙ２４０１とｉｔｅｍ＿ｖａｌｕｅ２４０２の値が含まれる。
【０１４２】
ステップＳ２１０８において、外部アプリケーションサーバは、レスポンス２４００を受信する。
【０１４３】
ステップＳ２１０９において、外部アプリケーションサーバは、受信したレスポンスを用いて、Ｗｅｂサービスの利用結果を表示する画面情報（例えば、ＨＴＭＬ等）を生成し、外部アプリケーションクライアントへ画面情報を送信する。具体的には、画面情報には、レスポンス２４００に含まれる検索結果が含まれる。
【０１４４】
ステップＳ２１１０において、外部アプリケーションクライアントは、画面情報を受信する。
【０１４５】
ステップＳ２１１１において、外部アプリケーションクライアントは、画面情報を用いて、Ｗｅｂサービスの利用結果を表示する。具体的には、Ｗｅｂサービスの利用した結果、取得できたｉｔｅｍ＿ｖａｌｕｅ２４０２の値を外部アプリケーションのＯＵＴＰＵＴ画面２５００（図２５）の商品名２５０１に表示する。
【０１４６】
また、外部アプリケーションクライアントは、図２５の登録ボタン２５０２の押下を受け付けることにより、外部アプリケーションサーバにリクエストを送信し、外部アプリケーションサーバはＷｅｂサービスサーバにて公開されているｅｘｅｃＩＮＳＥＲＴ処理（図１４の１４０１）を利用すべく、Ｗｅｂサービスサーバにリクエストを送信する。この処理は、図２１のフローチャートと同様の流れである。
【０１４７】
以上により、外部アプリケーションを実行している外部アプリケーションクライアントが、図５の処理により生成されたＷｅｂサービスを利用することができる。
【０１４８】
以上で、図２１の説明を終了する。
【０１４９】
図２９は、入出力定義作成のフローチャートの一例を示す図である。この処理は、図１７や図１９のような入出力定義４０４を作成する処理である。
ステップＳ２９０１において、プログラム開発装置１０１は、入出力定義作成の指示を受け付け、その指示のタイプを判定する（不図示）。新規に作成する場合はステップＳ２９０２に進み、既存の入出力定義をコピーして作成する場合はステップＳ２９０３に進む。
【０１５０】
ステップＳ２９０２において、プログラム開発装置１０１は、入出力定義４０４を新規に作成する。ここでは、図１７のような入出力タイプ＝“ＩＯ”の入出力定義４０４が作成されたとする。
【０１５１】
ステップＳ２９０３において、プログラム開発装置１０１は、コピー元となる既存の入出力定義４０４の指示を受け付ける。ここでは、Ｗｅｂアプリケーション用の入出力定義４０４が選択されたとする。Ｗｅｂアプリケーション用の入出力定義４０４とは、図１７のように入出力タイプ＝“ＩＯ”の入出力定義４０４である。
【０１５２】
ステップＳ２９０４において、プログラム開発装置１０１は、コピー元として指示された既存の入出力定義４０４の内容をコピーして、新規の入出力定義４０４を作成する。すなわち、ステップＳ２９０４は、入出力定義情報に基づき、新たな入出力定義情報を生成する処理の一例を示すステップである。
【０１５３】
ステップＳ２９０５において、プログラム開発装置１０１は、ステップＳ２９０３にて指示を受け付けたコピー元の入出力定義４０４と、ステップＳ２９０４にて作成したコピー先の入出力定義４０４とを関連付けて、外部メモリ２１１に記憶する。すなわち、ステップＳ２９０５は、生成された入出力定義情報と、当該入出力定義情報の生成の基となった入出力定義情報とを関連付けて管理する処理の一例を示すステップである。
【０１５４】
ステップＳ２９０６において、プログラム開発装置１０１は、Ｓ２９０２又はＳ２９０４にて作成した入出力定義４０４の設定について、ユーザによる入力を受け付ける。ここでは、Ｗｅｂサービス用の入出力定義４０６に設定が変更されたとする。Ｗｅｂサービス用の入出力定義４０６とは、図１９のように入出力タイプ１９０１＝“ＷＥＢ  ＳＥＲＶＩＣＥ”の入出力定義４０４である。
【０１５５】
ステップＳ２９０７において、プログラム開発装置１０１は、ユーザによる入出力定義４０４の記憶指示を受け付ける。
【０１５６】
ステップＳ２９０８において、プログラム開発装置１０１は、入出力定義４０４の設定を外部メモリ２１１に記憶する。
【０１５７】
以上で、図２９の説明を終了する。
【０１５８】
図３０は、入出力定義編集のフローチャートの一例を示す図である。この処理は、図２９にて作成した入出力定義４０４の設定を編集する処理である。
ステップＳ３００１において、プログラム開発装置１０１は、入出力定義４０４の編集を受け付ける。具体的には、図１７〜図１９の各項目の値について、ユーザの編集を受け付ける。すなわち、ステップＳ３００１は、入出力定義情報の設定の変更を受け付ける処理の一例を示すステップである。
【０１５９】
ステップＳ３００２において、プログラム開発装置１０１は、ステップＳ３００１にて編集を受け付けた入出力定義４０４の実行形態（入出力タイプ）の値を判定する。入出力タイプ＝“ＩＯ”（Ｗｅｂアプリケーション用の入出力定義４０４を意味する）の場合はステップＳ３００３に進み、入出力タイプ＝“ＷＥＢ  ＳＥＲＶＩＣＥ”（Ｗｅｂサービス用の入出力定義４０６を意味する）の場合はステップＳ３００４に進む。
【０１６０】
ステップＳ３００３において、プログラム開発装置１０１は、ステップＳ３００１にて編集を受け付けた入出力定義４０４に、コピー元又はコピー先として入出力タイプ＝“ＷＥＢ  ＳＥＲＶＩＣＥ”の入出力定義４０６との関連付けがあるか否かを判定する。ある場合はステップＳ３００５に進み、ない場合は図３０の処理を終了する。
【０１６１】
ステップＳ３００４において、プログラム開発装置１０１は、ステップＳ３００１にて編集を受け付けた入出力定義４０６に、コピー元又はコピー先として入出力タイプ＝“ＩＯ”の入出力定義４０４が関連付けられているかを判定する。関連付けがある場合はステップＳ３００６に進み、関連付けがない場合は図３０の処理を終了する。
【０１６２】
ステップＳ３００５において、プログラム開発装置１０１は、確認メッセージ３１１１（図３１）又は確認メッセージ３１１２（図３１）を表示し、ステップＳ３００３にて関連付けられていると判定されたＷｅｂサービス用の入出力定義４０６を更新するか否かの指示を受け付ける。「ＯＫ」の場合はステップＳ３００７に進み、「キャンセル」の場合は図３０の処理を終了する。
【０１６３】
ステップＳ３００６において、プログラム開発装置１０１は、確認メッセージ３１２１（図３１）又は確認メッセージ３１２２（図３１）を表示し、ステップＳ３００４にて関連付けられていると判定されたＷｅｂアプリケーション用の入出力定義４０４を更新するか否かの指示を受け付ける。「ＯＫ」の場合はステップＳ３００８に進み、「キャンセル」の場合は図３０の処理を終了する。
【０１６４】
すなわち、ステップＳ３００５及びステップＳ３００６は、設定の変更を受け付けた入出力定義情報が他の入出力定義情報と対応づけて管理されている場合、ユーザに通知する処理の一例を示すステップである。
【０１６５】
ステップＳ３００７において、プログラム開発装置１０１は、ステップＳ３００３にて関連付けられていると判定されたＷｅｂサービス用の入出力定義４０６の設定を、ステップＳ３００１にて受け付けた編集内容で更新し、外部メモリ２１１に記憶する。
【０１６６】
ステップＳ３００８において、プログラム開発装置１０１は、ステップＳ３００４にて関連付けられていると判定されたＷｅｂアプリケーション用の入出力定義４０４の設定を、ステップＳ３００１にて受け付けた編集内容で更新し、外部メモリ２１１に記憶する。
【０１６７】
以上により、Ｗｅｂアプリケーション用の入出力定義４０４をコピーしてＷｅｂサービス用の入出力定義４０６を作成した場合、その一方の編集内容をもう一方に反映させることができる。
以上により、Ｗｅｂアプリケーション開発ツールにおいて、Ｗｅｂサービスとして用いられるプログラムを容易に生成する仕組みを提供することができる。
【０１６８】
また、Ｗｅｂアプリケーション開発ツールに慣れ親しんでいた開発者にとって、これまでのＷｅｂアプリケーション開発と同様にレイアウトエディタ等を介してＷｅｂアプリケーション画面の入出力項目を直感的に追加・変更・削除した後、Ｗｅｂアプリケーション用の入出力定義４０４をコピーしてＷｅｂサービス用の入出力定義４０６を作成することで、Ｗｅｂサービスとして用いられるプログラムを容易に生成することができるため、Ｗｅｂサービスの開発又はＷＳＤＬの記載方法に不慣れな開発者にとってはメリットが大きい。
【０１６９】
〔第２の実施形態〕
第１の実施形態は、入出力定義情報の実行形態に従って、Ｗｅｂアプリケーションの入出力定義情報又はＷｅｂサービスの入出力定義情報を生成することによって、Ｗｅｂアプリケーション開発ツールにおいて、Ｗｅｂサービスとして用いられるプログラムを容易に生成する仕組みであり、第２の実施形態は、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成することによって、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成する仕組みである。
【０１７０】
図３３〜図３４を用いて、第２の実施形態を説明する。なお、第２の実施形態では、第１の実施形態における図６のフローチャートを図３３に置き換え、第１の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
図３３は、第２の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図３４は、第２の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（入出力）３４００の一例を示す図である。
【０１７１】
ステップＳ３３０１において、プログラム開発装置１０１は、この入出力定義４０４を用いて、Ｗｅｂアプリケーション用の入出力定義ソースコードを生成したことを示すフラグをＯＮにし、外部メモリ２１１に記憶する。
【０１７２】
ステップＳ３３０２において、プログラム開発装置１０１は、この入出力定義４０４を用いて、Ｗｅｂサービス用の入出力定義ソースコードを生成するか否かを判定する。すなわち、ステップＳ３３０２は、入力定義情報と出力定義情報とを用いて、Ｗｅｂサービスとして用いられるプログラムを生成するか否かを判定する処理の一例を示すステップである。また、ステップＳ３３０２は、Ｗｅｂサービスとして用いられるプログラムを生成すると判定した場合は、Ｗｅｂアプリケーションとして用いられるプログラムとＷｅｂサービスとして用いられるプログラムとを生成し、Ｗｅｂサービスとして用いられるプログラムを生成しないと判定した場合は、Ｗｅｂアプリケーションとして用いられるプログラムを生成する処理の一例を示すステップである。
【０１７３】
生成する場合はステップＳ６０４に進み、生成しない場合は図３３の処理を終了する。なお、この判定は、図３４のＷｅｂサービスを生成するチェックボックス３４０２がＯＮであれば、生成すると判定する。
【０１７４】
また、チェックボックス３４０２は、入出力タイプ３４０１＝“ＩＯ”（Ｗｅｂアプリケーション用の入出力定義４０４）の場合のみ表示するようにして、Ｗｅｂアプリケーション用の入出力定義４０４を用いて、Ｗｅｂサービス定義情報を生成できるようにしてもよい。また、入出力タイプ３４０１＝“ＩＯ”以外の場合であっても、入出力定義４０４を用いてＷｅｂサービス定義情報を生成できるものがあれば、チェックボックスを表示するようにしてもよい。
【０１７５】
なお、本実施形態においては、チェックボックス３４０２＝ＯＮの場合、Ｗｅｂサービス用の入出力定義４０６を生成することなく、入出力定義４０４を用いてＷｅｂサービス用の入出力定義ソースコードを生成するとしたが、これに限定するものではなく、入出力定義４０４をコピーしてＷｅｂサービス用の入出力定義４０６を生成し、Ｗｅｂサービス用の入出力定義ソースコードを生成するとしてもよい。これにより、図２９のステップＳ２９０３〜ステップＳ２９０６のように、コピー元となる既存の入出力定義４０４の指示を受け付け、入出力タイプ＝“ＷＥＢ  ＳＥＲＶＩＣＥ”に変更するといった手間を省くことができる。
【０１７６】
ステップＳ３３０３において、プログラム開発装置１０１は、この入出力定義４０４を用いて、Ｗｅｂサービス用の入出力定義ソースコードを生成したことを示すフラグをＯＮにし、外部メモリ２１１に記憶する。
【０１７７】
以上で、図３３の説明を終了する。
【０１７８】
以上により、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成する仕組みを提供することができる。つまり、Ｗｅｂアプリケーションの画面の入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成することができないという問題を解決することができる。つまり、Ｗｅｂアプリケーションの画面の入出力定義情報を用いて、Ｗｅｂサービス定義情報又はＷｅｂサービスとして用いられるプログラムを生成することにより、Ｗｅｂアプリケーションを容易にＷｅｂサービス化したいという課題を解決することができる。
【０１７９】
また、Ｗｅｂアプリケーションの開発フェーズにおいてよくある、画面項目の追加・変更・削除は、Ｗｅｂアプリケーション開発ツールのレイアウトエディタ等を介して、Ｗｅｂアプリケーション画面の入出力項目を直感的に追加・変更・削除することで、Ｗｅｂアプリケーションとして用いられるプログラムだけでなく、Ｗｅｂサービスとして用いられるプログラムにも反映されるため、Ｗｅｂサービスとして用いられるプログラムを容易に生成することができる。
【０１８０】
〔第３の実施形態〕
第２の実施形態は、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成することによって、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成する仕組みであり、第３の実施形態は、入出力定義情報から、Ｗｅｂアプリケーションの入出力定義情報又はＷｅｂサービス定義情報を生成することによって、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成する仕組みである。
【０１８１】
図３５〜図３６を用いて、第３の実施形態を説明する。なお、第３の実施形態では、第２の実施形態における図３３のフローチャートを図３５に置き換え、第２の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
図３５は、第３の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図３６は、第３の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（入出力）３６００の一例を示す図である。
【０１８２】
ステップＳ３５０１において、プログラム開発装置１０１は、既存の入出力定義４０４に対するユーザの指示を受け付ける。具体的には、図３６のＷｅｂアプリケーション用の入出力定義名３６０１の部分で右クリック等の操作を受け付ける。
【０１８３】
ステップＳ３５０２において、プログラム開発装置１０１は、コンテキストメニュー３６０２を表示し、ユーザによる選択を受け付けて判定する。
「Ｗｅｂアプリケーションソースコードを生成する」３６０３が選択された場合はステップＳ６０３に進み、「Ｗｅｂサービスソースコードを生成する」３６０４が選択された場合はステップＳ６０４に進む。
【０１８４】
以上で、図３６の説明を終了する。
【０１８５】
以上により、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を容易に生成する仕組みを提供することができる。つまり、Ｗｅｂアプリケーションの画面の入出力定義情報を用いてＷｅｂサービス定義情報又はＷｅｂサービスとして用いられるプログラムを生成することにより、Ｗｅｂアプリケーションを容易にＷｅｂサービス化したいという課題を解決することができる。
【０１８６】
〔第４の実施形態〕
第４の実施形態は、１つの入出力定義情報を、Ｗｅｂアプリケーション用とＷｅｂサービス用のように複数の目的のために用いることによって、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を生成する仕組みである。
図３７〜図３８を用いて、第４の実施形態を説明する。なお、第４の実施形態では、第２の実施形態における図３３のフローチャートを図３７に置き換え、第１の実施形態及び第２の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
【０１８７】
図３７は、第４の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図３８は、第４の実施形態に係るＷｅｂアプリケーション用の入出力定義画面（項目一覧）３８００の一例を示す図である。第４の実施形態では、図３８の３８０１のように、Ｗｅｂサービスに利用する項目にはチェックを入れ、Ｗｅｂサービスに利用せずＷｅｂアプリケーションにのみ利用する項目にはチェックを入れないようにする。
【０１８８】
ステップＳ３７０１において、プログラム開発装置１０１は、ステップＳ６０１にて取得した入出力定義４０４に、Ｗｅｂサービスとして利用する項目があるか否かを判定する。Ｗｅｂサービスとして利用する項目がある場合は、ステップＳ６０４（図３７）に進み、ステップＳ７０１（図７）にてＷｅｂサービスに利用する項目（図３８の３８０１）を特定し、ステップＳ７０２（図７）にてその特定した項目を用いてＷｅｂサービスのインターフェースコードを生成する。Ｗｅｂサービスとして利用する項目がない場合は、ステップＳ６０１（図３７）に進み、次の入出力定義４０４を取得する。
【０１８９】
すなわち、ステップＳ３７０１は、入出力定義情報のうち、Ｗｅｂサービスとして用いられるプログラムの生成時に用いる入出力定義であると判定した入出力定義情報を用いて、Ｗｅｂサービスとして用いられるプログラムを生成する処理の一例を示すステップである。
【０１９０】
以上で、図３７、図３８の説明を終了する。
【０１９１】
以上により、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を容易に生成する仕組みを提供することができる。つまり、Ｗｅｂアプリケーションの画面の入出力定義情報を用いてＷｅｂサービス定義情報又はＷｅｂサービスとして用いられるプログラムを生成することにより、Ｗｅｂアプリケーションを容易にＷｅｂサービス化したいという課題を解決することができる。
【０１９２】
また、１つの入出力定義情報を、Ｗｅｂアプリケーション用とＷｅｂサービス用のように複数の目的のために用いることができるようになるため、Ｗｅｂアプリケーション用の入出力定義情報に項目を追加した場合、対応するＷｅｂサービス用の入出力定義情報にも同じ項目を追加しなければならない、といったＷｅｂアプリケーションの定義情報とＷｅｂサービスの定義情報の管理の煩雑さを解消することができる。よって、Ｗｅｂサービスの開発及び管理が大変という問題を解決することができる。
【０１９３】
〔第５の実施形態〕
第１の実施形態は、入出力定義情報の実行形態に従って、Ｗｅｂアプリケーションの入出力定義情報又はＷｅｂサービス定義情報を生成することによって、Ｗｅｂアプリケーション開発ツールにおいて、Ｗｅｂサービス定義情報を容易に生成する仕組みであり、第５の実施形態は、複数の入出力定義情報をまとめたリポジトリ（以下、プロジェクトと記す）の実行形態に従って、Ｗｅｂアプリケーションとして用いられるプログラムを生成するか、Ｗｅｂサービスとして用いられるプログラムを生成するかを制御することにより、Ｗｅｂサービスとして用いられるプログラムを容易に生成する仕組みである。
図３９〜図４０を用いて、第５の実施形態を説明する。なお、第５の実施形態では、第２の実施形態における図３３のフローチャートを図３９に置き換え、第１の実施形態及び第２の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
【０１９４】
図３９は、第５の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図４０は、第５の実施形態に係るソースコード生成時の確認メッセージの一例を示す図である。
ステップＳ３９０１において、プログラム開発装置１０１は、ソースコード生成の指示を受け付ける。具体的には、ＷｅｂアプリケーションとＷｅｂサービスのどちらのソースコードを生成するかの選択（図４０の４００１）及びソースコード生成ボタン（図４０の４００２）の押下を受け付け、「Ｗｅｂアプリケーション」が選択された場合はステップＳ３９０２に進み、「Ｗｅｂサービス」が選択された場合はステップＳ３９０３に進む。
【０１９５】
ステップＳ３９０２において、プログラム開発装置１０１は、ＲＡＭ２０２から入出力定義４０４を取得し、取得した入出力定義４０４について、それぞれステップＳ６０３及びステップＳ３３０１を繰り返すことにより、入出力定義４０４を用いてＷｅｂアプリケーション用入出力定義のソースコードを生成する。
【０１９６】
ステップＳ３９０３において、プログラム開発装置１０１は、ＲＡＭ２０２から入出力定義４０４を取得し、取得した入出力定義４０４について、それぞれステップＳ６０４及びステップＳ３３０３を繰り返すことにより、Ｗｅｂサービス用入出力定義のソースコードを生成する。
【０１９７】
なお、本実施形態においては、図４０の４００１でＷｅｂアプリケーションとＷｅｂサービスのどちらのソースコードを生成するかの選択と受け付けるとしたが、これに限定するものではなく、例えば、ＷｅｂアプリケーションとＷｅｂサービスの両方のソースコードを生成するという選択肢があってもよい。この場合、ステップＳ３９０２及びステップＳ３９０３の両方の処理を実行することより、ＷｅｂアプリケーションとＷｅｂサービスの両方のソースコードを生成する。
【０１９８】
以上で、図３９、図４０の説明を終了する。
以上により、プロジェクトの実行形態に従って、Ｗｅｂアプリケーションとして用いられるプログラムを生成するか、Ｗｅｂサービスとして用いられるプログラムを生成するかを制御することにより、Ｗｅｂサービスとして用いられるプログラムを容易に生成することができる。
【０１９９】
つまり、第１の実施形態のような個々の入出力定義情報の実行形態に従って、Ｗｅｂアプリケーションの入出力定義情報又はＷｅｂサービス定義情報を生成する方法と比べて、第５の実施形態は、プロジェクトの実行形態に従って、プロジェクト全体の入出力定義情報を用いてＷｅｂアプリケーションの入出力定義情報又はＷｅｂサービス定義情報を一括して生成することが可能であるため、入出力定義情報の管理の煩雑さを解消することができる。
よって、入出力定義情報には複数の定義項目が存在するため、Ｗｅｂサービスの開発者がそれらを誤りなく設定しなければならないため設定ミスが生じやすく、Ｗｅｂアプリケーションとの整合性も取りづらいため、Ｗｅｂサービスの開発及び管理が大変という問題を解決することができる。
【０２００】
〔第６の実施形態〕
第１の実施形態（特に、図３０及び図３１）は、Ｗｅｂアプリケーション用の入出力定義４０４をコピーしてＷｅｂサービス用の入出力定義４０６を作成した場合、その一方の編集内容をもう一方に反映させることによって、Ｗｅｂアプリケーション開発ツールにおいて、Ｗｅｂサービス定義情報を容易に生成する仕組みであり、第６の実施形態は、Ｗｅｂアプリケーション用の入出力定義４０４又はＷｅｂサービス用の入出力定義４０６を編集した場合に、同じプロジェクト内の他の入出力定義にその編集内容を反映させることにより、Ｗｅｂサービスとして用いられるプログラムを容易に生成する仕組みである。
【０２０１】
図４１〜図４２を用いて、第６の実施形態を説明する。
図４１は、第６の実施形態に係る入出力定義編集のフローチャートの一例を示す図である。図４２は、第６の実施形態に係る入出力定義編集時の確認メッセージの一例を示す図である。
【０２０２】
ステップＳ４１０１において、プログラム開発装置１０１は、入出力定義４０４の編集を受け付ける。具体的には、図３８の各項目の値について、ユーザの編集を受け付ける。すなわち、ステップＳ４１０１は、入出力定義情報の設定の変更を受け付ける処理の一例を示すステップである。
【０２０３】
ステップＳ４１０２において、プログラム開発装置１０１は、ステップＳ４１０１にて受け付けた編集内容が「Ｗｅｂサービスとして利用する」チェックボックス３８０１の値変更か否かを判定し、ＯＦＦからＯＮに変更された場合はステップＳ４１０３に進み、ＯＮからＯＦＦに変更された場合はステップＳ４１０４に進み、変更されなかった場合は図４１の入出力定義編集を終了する。
【０２０４】
ステップＳ４１０３において、プログラム開発装置１０１は、ステップＳ４１０２にて「Ｗｅｂサービスとして利用する」チェックボックス３８０１の値をＯＦＦからＯＮに変更された入出力項目が同プロジェクト内の他の入出力定義４０４に「Ｗｅｂサービスとして利用する」チェックボックス３８０１＝ＯＦＦとして存在するか否かを判定し、存在する場合はステップＳ４１０５に進み、存在しない場合は図４１の入出力定義編集を終了する。
【０２０５】
例えば、図３８の項目コード＝“ＩＴＥＭ＿ＫＥＹ”の入出力項目の「Ｗｅｂサービスとして利用する」チェックボックス３８０１の値をＯＦＦからＯＮに変更された場合、同プロジェクト内の他の入出力定義４０４に項目コード＝“ＩＴＥＭ＿ＫＥＹ”＆「Ｗｅｂサービスとして利用する」チェックボックス３８０１＝“ＯＦＦ”の入力項目が存在するか否かを判定する。
【０２０６】
ステップＳ４１０４において、プログラム開発装置１０１は、ステップＳ４１０４にて「Ｗｅｂサービスとして利用する」チェックボックス３８０１の値をＯＮからＯＦＦに変更された入出力項目が同プロジェクト内の他の入出力定義４０４に「Ｗｅｂサービスとして利用する」チェックボックス３８０１＝ＯＮとして存在するか否かを判定し、存在する場合はステップＳ４１０６に進み、存在しない場合は図４１の入出力定義編集を終了する。
【０２０７】
例えば、図３８の項目コード＝“ＩＴＥＭ＿ＶＡＬＵＥ”の入出力項目の「Ｗｅｂサービスとして利用する」チェックボックス３８０１の値をＯＮからＯＦＦに変更された場合、同プロジェクト内の他の入出力定義４０４に項目コード＝“ＩＴＥＭ＿ＶＡＬＵＥ”＆「Ｗｅｂサービスとして利用する」チェックボックス３８０１＝“ＯＮ”の入力項目が存在するか否かを判定する。
【０２０８】
ステップＳ４１０５において、プログラム開発装置１０１は、確認メッセージ４２００（図４２）を表示し、ステップＳ４１０３にて存在すると判定された他の入出力定義４０４を更新するか否かの指示を受け付ける。「ＯＫ」の場合はステップＳ４１０７に進み、「キャンセル」の場合は図３０の処理を終了する。
【０２０９】
ステップＳ４１０６において、プログラム開発装置１０１は、確認メッセージ４２００（図４２）を表示し、ステップＳ４１０４にて存在すると判定された他の入出力定義４０４を更新するか否かの指示を受け付ける。「ＯＫ」の場合はステップＳ４１０８に進み、「キャンセル」の場合は図３０の処理を終了する。
【０２１０】
すなわち、ステップＳ４１０５及びステップＳ４１０６は、設定の変更を受け付けた入出力定義情報の入出力定義が他の入出力定義情報に存在する場合、ユーザに通知する処理の一例を示すステップである。
【０２１１】
ステップＳ４１０７において、プログラム開発装置１０１は、ステップＳ４１０３にて存在すると判定された他の入出力定義４０４の入出力定義を、ステップＳ４１０１にて受け付けた編集内容で更新し、外部メモリ２１１に記憶する。
【０２１２】
ステップＳ４１０８において、プログラム開発装置１０１は、ステップＳ４１０４にて存在すると判定された他の入出力定義４０４の入出力定義をステップＳ４１０１にて受け付けた編集内容で更新し、外部メモリ２１１に記憶する。
【０２１３】
以上で、図４１の説明を終了する。
【０２１４】
なお、本実施形態においては、入出力項目の編集内容の例として「Ｗｅｂサービスとして利用する」チェックボックス３８０１の値変更を挙げたが、これに限定するものではなく、入出力項目の他の項目値の変更であってもよい。
【０２１５】
以上により、Ｗｅｂアプリケーション用の入出力定義４０４のＷｅｂサービスに係る設定を編集した場合、他の入出力定義４０４に対して、その編集内容を容易に反映させることができる。
つまり、Ｗｅｂアプリケーションの要件変更に伴い、Ｗｅｂアプリケーションの画面項目の編集する（例えば、Ｗｅｂアプリケーションの画面における既存の入出力項目を新たにＷｅｂサービスとしても利用したい）場合、Ｗｅｂアプリケーションの「登録画面」の入出力定義だけでなく、「更新画面」「検索画面」「検索結果画面」など他の画面の入出力定義に対してもＷｅｂサービスの入出力定義として利用できるよう反映させなければならず、編集作業が繁雑であるという問題を解決することができる。
【０２１６】
また、Ｗｅｂアプリケーションの画面において新たな入出力項目を追加し、その入出力項目をＷｅｂサービスとしても利用したい場合も、同様の問題を解決することができる。
【０２１７】
よって、Ｗｅｂアプリケーション用の入出力定義情報に項目を追加した場合、対応するＷｅｂサービス用の入出力定義情報にも同じ項目を追加しなければならない、といったＷｅｂアプリケーションの定義情報とＷｅｂサービスの定義情報の管理の煩雑さを解消することができる。よって、Ｗｅｂサービスの開発及び管理が大変という問題を解決することができる。
【０２１８】
以上により、Ｗｅｂアプリケーション開発ツールにおいて、Ｗｅｂサービスとして用いられるプログラムを容易に生成することができる。また、Ｗｅｂアプリケーションの入出力定義情報を用いて、Ｗｅｂサービス定義情報を容易に生成することができる。つまり、Ｗｅｂアプリケーションの画面の入出力定義情報を用いて、Ｗｅｂサービス定義情報又はＷｅｂサービスとして用いられるプログラムを生成することにより、Ｗｅｂアプリケーションを容易にＷｅｂサービス化したいという課題を解決することができる。
【０２１９】
図４３は、第１〜６の実施形態に係る定義ファイル一覧画面の一例を示す図である。
定義ファイル一覧４３１０は、第１の実施形態に係る定義ファイル一覧画面である。第１の実施形態では、Ｗｅｂアプリケーション用の入出力定義４０４をコピーしてＷｅｂサービス用の入出力定義４０６を作成するため、入出力定義ファイルを４３１１のようにＷｅｂアプリケーション用の場合は“Ａ”、Ｗｅｂサービス用の場合は“Ｓ”と表示する。
【０２２０】
定義ファイル一覧４３２０は、第２〜６の実施形態に係る定義ファイル一覧画面である。第２〜６の実施形態では、Ｗｅｂアプリケーション用の入出力定義４０４をＷｅｂサービス用の入出力定義４０６として利用するため、入出力定義ファイルを４３２１のようにＷｅｂアプリケーション用の場合は“Ａ”、Ｗｅｂアプリケーション・Ｗｅｂサービスで共用する場合は“ＡＳ”と表示する。
【０２２１】
これにより、第１〜６の実施形態において、入出力定義を「Ｗｅｂアプリケーション用」、「Ｗｅｂサービス用」及び「Ｗｅｂアプリケーション・Ｗｅｂサービス共用」で容易に識別することができるため、Ｗｅｂアプリケーション又はＷｅｂサービスの開発者による入出力定義の設定ミスや設定不整合による、Ｗｅｂサービスの開発及び管理が大変という問題を解決することができる。
以上で、図４３の説明を終了する。
【０２２２】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０２２３】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０２２４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０２２５】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２７】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２２８】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０２２９】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０２３０】
１０１  プログラム開発装置
１０２  プログラム開発サーバ
１０３  データベースサーバ
１０４  アプリケーションクライアント
１０５  アプリケーションサーバ
１０６  ネットワーク
【図１】
2020170530.tif 000003
【図２】
2020170530.tif 000004
【図３】
2020170530.tif 000005
【図４】
2020170530.tif 000006
【図５】
2020170530.tif 000007
【図６】
2020170530.tif 000008
【図７】
2020170530.tif 000009
【図８】
2020170530.tif 000010
【図９】
2020170530.tif 000011
【図１０】
2020170530.tif 000012
【図１１】
2020170530.tif 000013
【図１２】
2020170530.tif 000014
【図１３】
2020170530.tif 000015
【図１４】
2020170530.tif 000016
【図１５】
2020170530.tif 000017
【図１６】
2020170530.tif 000018
【図１７】
2020170530.tif 000019
【図１８】
2020170530.tif 000020
【図１９】
2020170530.tif 000021
【図２０】
2020170530.tif 000022
【図２１】
2020170530.tif 000023
【図２２】
2020170530.tif 000024
【図２３】
2020170530.tif 000025
【図２４】
2020170530.tif 000026
【図２５】
2020170530.tif 000027
【図２６】
2020170530.tif 000028
【図２７】
2020170530.tif 000029
【図２８】
2020170530.tif 000030
【図２９】
2020170530.tif 000031
【図３０】
2020170530.tif 000032
【図３１】
2020170530.tif 000033
【図３２】
2020170530.tif 000034
【図３３】
2020170530.tif 000035
【図３４】
2020170530.tif 000036
【図３５】
2020170530.tif 000037
【図３６】
2020170530.tif 000038
【図３７】
2020170530.tif 000039
【図３８】
2020170530.tif 000040
【図３９】
2020170530.tif 000041
【図４０】
2020170530.tif 000042
【図４１】
2020170530.tif 000043
【図４２】
2020170530.tif 000044
【図４３】
2020170530.tif 000045