(57)【特許請求の範囲】
【請求項１】
ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力／表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第１の操作、設計したユーザインタフェース画面内に配置した個々の情報入力／表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第２の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第３の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第１プログラムを生成する第１のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第２プログラムを生成する第２のツールを用いて行われる、前記第１プログラム及び前記第２プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置であって、
前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記第２のツールを用いて生成されたｎ種類の前記第２プログラムによって実行可能なｍ(ｍ≧ｎ)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段と、
前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記ｎ種類の前記第２プログラムのうちの何れかを呼び出して前記ｍ種類の処理のうちの互いに異なる処理を行わせるためのｍ種類の起動シンボルを各々生成するシンボル生成手段と、
ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記ｍ種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記ｎ種類の前記第２プログラムのうち前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第２プログラムによる前記対応する処理の実行が完了すると、前記特定の第２プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第３プログラムを生成し、生成した第３プログラムを前記特定の起動シンボルに付加することを、前記ｍ種類の起動シンボルに対して各々行うプログラム付加手段と、
を備えたことを特徴とするアプリケーション開発支援装置。
【請求項２】
前記第１のツールでは、個々の前記情報入力／表示欄と関連付けることが可能な前記変数格納領域内の格納領域の数が各々１個に制限されていることを特徴とする請求項１記載のアプリケーション開発支援装置。
【請求項３】
前記第１プログラムは、前記第１プログラムを実行するためのプラットフォームとして機能する所定のプログラムを実行しているコンピュータ上で実行され、当該コンピュータによる前記第１プログラムの実行時には、前記所定のプログラムにより、表示画面内に表示されているユーザインタフェース画面内に配置され情報の入力が可能な特定の情報入力／表示欄内に新たに情報が入力された場合には、入力された情報を、前記変数格納領域内の各格納領域のうち前記特定の情報入力／表示欄と関連付けられた特定の格納領域にも格納し、前記変数格納領域内の特定の格納領域に新たに情報が格納された場合には、格納された情報を、表示画面内に表示されているユーザインタフェース画面内に配置され前記特定の格納領域と関連付けられかつ情報の表示が可能な特定の情報入力／表示欄内にも表示させる同期処理が行われることを特徴とする請求項１記載のアプリケーション開発支援装置。
【請求項４】
前記第１のツールは第１の規格に準拠したツールであり、前記第２のツールは第２の規格に準拠したツールであることを特徴とする請求項１記載のアプリケーション開発支援装置。
【請求項５】
前記第１の規格はＪＳＦであり、前記第２の規格はＢＰＥＬであることを特徴とする請求項４記載のアプリケーション開発支援装置。
【請求項６】
コンピュータを、
ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力／表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第１の操作、設計したユーザインタフェース画面内に配置した個々の情報入力／表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第２の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第３の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第１プログラムを生成する第１のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第２プログラムを生成する第２のツールを用いて行われる、前記第１プログラム及び前記第２プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置として機能させるためのアプリケーション開発支援プログラムであって、
前記コンピュータを、
前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記第２のツールを用いて生成されたｎ種類の前記第２プログラムによって実行可能なｍ(ｍ≧ｎ)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段、
前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記ｎ種類の前記第２プログラムのうちの何れかを呼び出して前記ｍ種類の処理のうちの互いに異なる処理を行わせるためのｍ種類の起動シンボルを各々生成するシンボル生成手段、
及び、ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記ｍ種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記ｎ種類の前記第２プログラムのうち前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第２プログラムによる前記対応する処理の実行が完了すると、前記特定の第２プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第３プログラムを生成し、生成した第３プログラムを前記特定の起動シンボルに付加することを、前記ｍ種類の起動シンボルに対して各々行うプログラム付加手段
として機能させることを特徴とするアプリケーション開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアプリケーション開発支援装置及びプログラムに係り、特に、複数種のツールを用いて行われるアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置、及び、コンピュータを前記アプリケーション開発支援装置として機能させるためのアプリケーション開発支援プログラムに関する。
【背景技術】
【０００２】
最近、ビジネスプロセスをワークフローとして記述可能な規格（言語）としてＢＰＥＬ(Business Process Execution Language)が普及してきている。ＢＰＥＬに関しては、互いに異なる処理に対応する複数種の部品の中から所望の部品を選択して組み合わせる操作を行うことで所望のワークフローを視覚的に記述可能で、かつ作成されたワークフローからＢＰＥＬに準拠したプログラムを自動的に生成可能なツールが用意されており、当該ツールによって自動生成されたプログラムをコンピュータによって実行させる実行環境も構築可能とされている。このため、上記ツールを利用することで、所望のワークフロー（ビジネスプロセス）をコンピュータによって実現させるためのプログラムの開発を、プログラミング言語に関する知識が必要なコーディング作業を行うことなく容易かつ短時間で行うことができる。
【０００３】
一方、ウェブアプリケーション向けのユーザインタフェースを構築するための規格としてＪＳＦ(Java（登録商標） Server Faces) が知られている。このＪＳＦに関しても、ユーザインタフェース画面の構成要素として使用可能な複数種のシンボルの中から所望のシンボルを選択・配置する等の操作を行うことで、ユーザインタフェース画面の設計やユーザインタフェース画面の遷移の定義等のユーザインタフェースの構築が可能で、構築されたユーザインタフェースを実現するプログラムを自動的に生成可能なツールが用意されており、このツールを利用することで、所望のユーザインタフェースを実現するプログラムを、コーディング作業を行うことなく容易かつ短時間で得ることができる。このため、アプリケーションの開発にあたり、当該アプリケーションのうち、ユーザインタフェースの部分のプログラムをＪＳＦのツールを用いて自動生成すると共に、ワークフローの部分のプログラムをＢＰＥＬのツールを用いて自動生成するようにすれば、一切のコーディング作業が不要となることで開発期間の大幅な短縮を実現できるものと期待される。
【０００４】
しかしながら、ＪＳＦの規格は、ＪＳＦを用いて自動生成したプログラム（ユーザインタフェースを実現するプログラム）をＢＰＥＬを用いて自動生成したプログラム（ワークフローを実現するプログラム）と連動させることが考慮されておらず（他のプログラムを呼び出す処理が規格として定義されていない）、例えばユーザインタフェース画面をディスプレイに表示している状態（ＪＳＦを用いて自動生成したプログラムが実行されている状態）で、当該ユーザインタフェース画面を介して所定の操作が行われたことを契機として特定のワークフローを実現させる（ＢＰＥＬを用いて自動生成した特定のワークフローを実現する特定プログラムを起動・実行させる）場合、前記所定の操作が行われたことを契機として特定プログラムを起動すると共に、当該特定プログラムに対して入力情報等を引数として引き渡す処理を行うプログラムをコーディング作業によって別途作成する必要がある。従って、開発対象のアプリケーションのうち、ユーザインタフェースの部分のプログラムをＪＳＦのツールを用いて自動生成すると共に、ワークフローの部分のプログラムをＢＰＥＬのツールを用いて自動生成したとしても、結局はコーディング作業が必要になるために開発期間を大幅に短縮することは困難であった。
【０００５】
上記に関連して特許文献１には、クライアントとのインタフェースを行う第１の仮想マシンと、各種ビジネスオブジェクトを実行する第２の仮想マシンを有するアプリケーションサーバにおいて、ビジネスオブジェクトの処理に必要なデータの識別名を各ビジネスオブジェクト毎に格納しておき、第１の仮想マシンは、クライアントに任意の画面を表示させて任意のデータ入力を行わせ、フォームデータを含むリクエストを受け取り、受け取ったリクエストに応じたビジネスオブジェクトを呼び出す際に、呼び出すビジネスオブジェクトが必要とする各データの識別名を取得し、フォームデータに含まれる各データのうち識別名が前記取得した識別名と一致するデータのみを第２の仮想マシンへ転送することで、第２の仮想マシン側で必要なデータを抽出する処理のためのコーディングを不要とする技術が開示されている。
【特許文献１】特開２００６−２６８１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の特許文献１に記載の技術において、第１の仮想マシンが準拠している規格が、前述したＪＳＦの規格のように他のプログラムを呼び出す処理が定義されていない規格である場合は、第１の仮想マシン側で動作するプログラムの開発にあたり、第２の仮想マシン側で動作するプログラムを呼び出す処理を行うためにコーディング作業を行う必要がある。プログラムの開発にあたって多少なりともコーディング作業が必要とされる場合、開発担当者がプログラミング言語に関する知識を有している人に限られると共に、コーディング作業で作成したプログラムに対してはデバッグ作業も必要となるので、コーディング作業を省略できる場合と比較して開発期間が大幅に長期化するという問題がある。
【０００７】
また、特許文献１に記載の技術は、受け取ったリクエストに応じたビジネスオブジェクトを呼び出す際に、フォームデータに含まれる各データのうち、呼び出すビジネスオブジェクトが必要とするデータと識別名が一致するデータを検索して抽出する処理が行われるので、プログラム実行時の処理に時間が掛るという問題もあり、改善の余地がある。
【０００８】
更に、前述したＪＳＦの規格では、設計したユーザインタフェース画面内に配置した個々のテキストフィールド（テキスト入力欄やテキスト表示欄）を、複数の変数について格納領域を各々設けたマネージド・ビーン(Managed Bean)と称する変数格納領域内の何れかの格納領域と関連付ける（バインドする）ことが可能とされており、バインドされたテキストフィールドと格納領域に対してはプログラム実行時に同期処理が行われる（詳しくは、テキスト入力欄に入力されたデータは当該テキスト入力欄とバインドされた格納領域に格納され、格納領域に格納されたデータは当該格納領域とバインドされたテキスト表示欄に表示される）。このため、ＪＳＦのツールを用いて自動生成したユーザインタフェースの部分の第１プログラムと、ＢＰＥＬのツール等を用いて自動生成したワークフローの部分の第２プログラムを連動させる場合、第２プログラムが実行可能な複数種の処理の各々を単位として、各処理における入力変数及び出力変数に対応する格納領域を各々設けた変数格納領域（マネージド・ビーン）を用い、当該変数格納領域を経由して第１プログラムと第２プログラムの間のデータの受け渡しを行うことが考えられる。
【０００９】
しかし、ＪＳＦの規格では、単一のテキストフィールドと関連付けることが可能な格納領域の数が１個に制限されている。このため、例えば第２プログラムによって行われる第１処理の出力変数をユーザインタフェース画面内の特定テキストフィールドに表示させることは、第１処理の出力変数に対応する格納領域を特定テキストフィールドと関連付けておき、第１処理の出力変数を対応する格納領域に格納する処理を行うことで実現できるものの、更に、特定テキストフィールドに表示されたデータ（第１処理の出力変数）に対し、必要に応じて利用者による変更設定を行わせ、必要に応じて変更設定が行われたデータを第２プログラムによる第２処理の入力変数として用いることは、特定テキストフィールドを、第１処理の出力変数に対応する格納領域に加えて、第２処理の入力変数に対応する格納領域とも関連付けておく必要があるので実現できない。
【００１０】
このように、第１の規格に準拠しユーザインタフェースを実現する第１プログラムと、第２の規格に準拠しワークフローを実現する第２プログラムを連動させるにあたり、第１プログラムが準拠する第１の規格に、ユーザインタフェース画面内の個々の情報入力／表示欄と関連付けることが可能な変数の格納領域の数に制限がある場合には、構築可能なユーザインタフェースが制約を受けるという問題もある。なお、特許文献１に記載の技術は上記事項について何ら考慮されていない。
【００１１】
本発明は上記事実を考慮して成されたもので、第１のツールによって生成可能な第１プログラム及び第２のツールによって生成可能な第２プログラムを含むアプリケーション・プログラムの開発において、第１プログラムから第２プログラムを呼び出すプログラムを作成するコーディング作業を省略可能なアプリケーション開発支援装置及びアプリケーション開発支援プログラムを得ることが目的である。
【課題を解決するための手段】
【００１２】
上記目的を達成するために請求項１記載の発明に係るアプリケーション開発支援装置は、ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力／表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第１の操作、設計したユーザインタフェース画面内に配置した個々の情報入力／表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第２の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第３の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第１プログラムを生成する第１のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第２プログラムを生成する第２のツールを用いて行われる、前記第１プログラム及び前記第２プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置であって、前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記第２のツールを用いて生成されたｎ種類の前記第２プログラムによって実行可能なｍ(ｍ≧ｎ)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段と、前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記ｎ種類の前記第２プログラムのうちの何れかを呼び出して前記ｍ種類の処理のうちの互いに異なる処理を行わせるためのｍ種類の起動シンボルを各々生成するシンボル生成手段と、ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記ｍ種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記ｎ種類の前記第２プログラムのうち前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第２プログラムによる前記対応する処理の実行が完了すると、前記特定の第２プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第３プログラムを生成し、生成した第３プログラムを前記特定の起動シンボルに付加することを、前記ｍ種類の起動シンボルに対して各々行うプログラム付加手段と、を備えたことを特徴としている。
【００１３】
請求項１記載の発明において、第１のツールは、ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力／表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第１の操作、設計したユーザインタフェース画面内に配置した個々の情報入力／表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第２の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第３の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第１プログラムを生成する。また第２のツールは、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第２プログラムを生成する。なお、請求項４に記載したように、第１のツールとしては第１の規格に準拠したツールを、第２のツールとしては第２の規格に準拠したツールを適用することができ、より詳しくは、例えば請求項５に記載したように、第１の規格としてはＪＳＦを、第２の規格としてはＢＰＥＬを適用することができる。
【００１４】
なお、請求項１記載の発明において、第１のツールによって生成される第１プログラムとしては、例えば請求項３に記載したように、第１プログラムを実行するためのプラットフォームとして機能する所定のプログラムを実行しているコンピュータ上で実行され、当該コンピュータによる第１プログラムの実行時には、所定のプログラムにより、表示画面内に表示されているユーザインタフェース画面内に配置され情報の入力が可能な特定の情報入力／表示欄内に新たに情報が入力された場合には、入力された情報を、変数格納領域内の各格納領域のうち特定の情報入力／表示欄と関連付けられた特定の格納領域にも格納し、変数格納領域内の特定の格納領域に新たに情報が格納された場合には、格納された情報を、表示画面内に表示されているユーザインタフェース画面内に配置され特定の格納領域と関連付けられかつ情報の表示が可能な特定の情報入力／表示欄内にも表示させる同期処理が行われるプログラムが好適である。
【００１５】
ここで、請求項１記載の発明に係るアプリケーション開発支援装置は、上記の第１のツール及び第２のツールを用いて行われる、第１プログラム及び第２プログラムを含むアプリケーション・プログラムの開発を支援する装置であり、変数格納領域生成手段は、第１のツールに対して第１〜第３の操作が行われる前に、第２のツールを用いて生成されたｎ種類の第２プログラムによって実行可能なｍ(ｍ≧ｎ)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、変数格納領域として、変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する。これにより、変数定義情報に重複定義されている変数を含め、変数定義情報に定義されている変数に対応する格納領域が１つずつ設けられた変数格納領域（ｍ種類の処理の実行に共通に用いられる変数格納領域）が生成される。
【００１６】
また、請求項１記載の発明において、シンボル生成手段は、第１のツールに対して第１〜第３の操作が行われる前に、ユーザインタフェース画面の構成要素として使用可能なシンボルとして、ｎ種類の第２プログラムのうちの何れかを呼び出してｍ種類の処理のうちの互いに異なる処理を行わせるためのｍ種類の起動シンボルを各々生成し、プログラム付加手段は、ユーザインターフェース画面内に表示されている、シンボル生成手段によって生成されたｍ種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、変数格納領域内の各格納領域のうち、特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、ｎ種類の前記第２プログラムのうち前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、特定の第２プログラムによる前記対応する処理の実行が完了すると、特定の第２プログラムから引き渡された出力変数を、変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第３プログラムを生成し、生成した第３プログラムを特定の起動シンボルに付加することを、ｍ種類の起動シンボルに対して各々行う。
【００１７】
これにより、開発者が第１のツールを用いて第１〜第３の操作を行うことで構築対象のユーザインタフェースを規定する作業を行う際には、シンボル生成手段によって生成されたｍ種類の起動シンボルも、第１のツールにより、ユーザインタフェース画面の構成要素として使用可能なシンボルとして表示画面に表示され、第１の操作を行うことで、ｍ種類の起動シンボルのうちの所望の起動シンボル（ｍ種類の処理のうち実行を所望している処理に対応する起動シンボル）を、設計中のユーザインタフェース画面内に配置することが可能となる。また、上記のユーザインタフェース画面が表示されている状態で、利用者が上記の起動シンボルを選択すると、当該起動シンボルに付加されている第３プログラムが実行され、変数格納領域内の各格納領域のうち、前記起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、特定の第２プログラムによる前記対応する処理の実行が完了すると、特定の第２プログラムから引き渡された出力変数を、変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理が行われる。
【００１８】
このように、請求項１記載の発明では、第１のツールに対して第１〜第３の操作が行われる前に、プログラム付加手段により、第１プログラムから第２プログラムを呼び出す第３プログラムが生成されて起動シンボルに付加されるので、第１のツールによって生成可能な第１プログラム及び第２のツールによって生成可能な第２プログラムを含むアプリケーション・プログラムの開発において、第１プログラムから第２プログラムを呼び出すプログラムを作成するコーディング作業を省略することができる。また、開発者は、第１のツールによって表示画面に表示されている起動シンボルを画面内の所望の位置に配置する第１の操作を行うのみで、第２プログラムを起動可能なユーザインタフェース画面を設計することができるので、上記のコーディング作業を行う必要が無くなったことと相俟って、構築対象のユーザインタフェースを規定する作業に要する期間、ひいてはアプリケーション・プログラムの開発期間を短縮することが可能となる。
【００１９】
また、請求項１記載の発明において、第１のツールに対して第１〜第３の操作が行われる前にプログラム付加手段によって生成される第３プログラムは、ユーザインターフェース画面内に表示されている特定の起動シンボルが選択された場合に、変数格納領域内の各格納領域のうち、特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、ｎ種類の第２プログラムのうち前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、特定の第２プログラムによる前記対応する処理の実行が完了すると、特定の第２プログラムから引き渡された出力変数を、変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行うプログラムであり、第３プログラムによる処理における処理対象の格納領域（格納されているデータを引数として用いたり、引き渡された出力変数を格納する格納領域）は第３プログラムの生成時に設定されている。従って、請求項１記載の発明では、第３プログラムの実行時に処理対象の格納領域を検索・抽出する処理を行う必要が無いので、第３プログラムが実行される際の処理時間を短縮することができる。
【００２０】
更に、請求項１記載の発明は、変数格納領域生成手段により、変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域が生成されるので、一例として、第２プログラムによって実行される第１処理の出力変数をユーザインタフェース画面内の特定の情報入力／表示欄に表示させると共に、特定の情報入力／表示欄に表示されたデータ（第１処理の出力変数）に対し、必要に応じて利用者による変更設定を行わせ、必要に応じて変更設定が行われた特定の情報入力／表示欄内のデータを第２プログラムによって第２処理の入力変数として用いるユーザインタフェースを構築する等の場合にも、上記の特定の情報入力／表示欄と関連付ける必要の有る変数格納領域内の格納領域の数は１個で済む。これにより、例えば請求項２に記載したように、第１のツールにおいて、個々の情報入力／表示欄と関連付けることが可能な変数格納領域内の格納領域の数が各々１個に制限されている場合にも、上記のようなユーザインタフェースを構築することが可能となり、第１プログラムによって実現されるユーザインタフェースの設計の自由度を向上させることができる。
【００２１】
請求項６記載の発明に係るアプリケーション開発支援プログラムは、コンピュータを、ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力／表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第１の操作、設計したユーザインタフェース画面内に配置した個々の情報入力／表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第２の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第３の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第１プログラムを生成する第１のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第２プログラムを生成する第２のツールを用いて行われる、前記第１プログラム及び前記第２プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置として機能させるためのアプリケーション開発支援プログラムであって、前記コンピュータを、前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記第２のツールを用いて生成されたｎ種類の前記第２プログラムによって実行可能なｍ(ｍ≧ｎ)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段、前記第１のツールに対して前記第１〜第３の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記ｎ種類の前記第２プログラムのうちの何れかを呼び出して前記ｍ種類の処理のうちの互いに異なる処理を行わせるためのｍ種類のシンボルを各々生成するシンボル生成手段、及び、ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記ｍ種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記ｎ種類の前記第２プログラムのうち前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第２プログラムによる前記対応する処理の実行が完了すると、前記特定の第２プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第３プログラムを生成し、生成した第３プログラムを前記特定の起動シンボルに付加することを、前記ｍ種類の起動シンボルに対して各々行うプログラム付加手段として機能させることを特徴としている。
【００２２】
請求項６記載の発明に係るアプリケーション開発支援プログラムは、コンピュータを、上記の変数格納領域生成手段、シンボル生成手段及びプログラム付加手段として機能させるためのプログラムであるので、コンピュータが請求項６記載の発明に係るアプリケーション開発支援プログラムを実行することで、コンピュータが請求項１に記載のアプリケーション開発支援装置として機能することになり、請求項１記載の発明と同様に、第１のツールによって生成可能な第１プログラム及び第２のツールによって生成可能な第２プログラムを含むアプリケーション・プログラムの開発において、第１プログラムから第２プログラムを呼び出すプログラムを作成するコーディング作業を省略することができる。
【発明の効果】
【００２３】
以上説明したように本発明は、開発者によって構築対象のユーザインタフェースが規定され、当該ユーザインタフェースを実現するための第１プログラムが第１のツールによって生成される前に、開発者によって作成されたフローチャートに基づき第２のツールによって生成されたｎ種類の第２プログラムによって実行可能なｍ(ｍ≧ｎ)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、当該変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成し、ユーザインタフェース画面の構成要素として使用可能なシンボルとして、ｎ種類の第２プログラムのうちの何れかを呼び出してｍ種類の処理のうちの互いに異なる処理を行わせるためのｍ種類の起動シンボルを各々生成し、ユーザインターフェース画面内に表示されている特定の起動シンボルが選択された場合に、特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記対応する処理を実行可能な特定の第２プログラムを起動させて前記対応する処理を実行させると共に、特定の第２プログラムによる前記対応する処理の実行が完了すると、特定の第２プログラムから引き渡された出力変数を当該出力変数に対応する変数の格納領域に格納する処理を行う第３プログラムを生成し、生成した第３プログラムを特定の起動シンボルに付加することを、ｍ種類の起動シンボルに対して各々行うので、第１のツールによって生成可能な第１プログラム及び第２のツールによって生成可能な第２プログラムを含むアプリケーション・プログラムの開発において、第１プログラムから第２プログラムを呼び出すプログラムを作成するコーディング作業を省略できる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には本実施形態に係る第１のコンピュータ・システム１０が示されている。本実施形態に係る第１のコンピュータ・システム１０は、所定のウェブサイトにアクセスした利用者に対して所定のサービス（ウェブサービス）を提供するためのアプリケーション・プログラムを開発する際に使用されるコンピュータ・システムであり、サーバ・コンピュータ１２がイントラネット１４を介して多数台のクライアント端末１６と各々接続されて構成されている。個々のクライアント端末１６は、上記のアプリケーション・プログラムを開発する開発者によって操作される端末であり、例えばパーソナル・コンピュータ（ＰＣ）等から成り、ＣＰＵ１６Ａ、ＲＡＭ等から成るメモリ１６Ｂ、ＨＤＤ(Hard Disk Drive)等から成る記憶部１６Ｃ、ネットワークインタフェース（Ｉ／Ｆ）部１６Ｄを備えている。個々のクライアント端末１６には、表示手段としてのディスプレイ１８、入力手段としてのキーボード２０及びマウス２２が各々接続されており、ネットワークＩ／Ｆ部１６Ｄを介してイントラネット１４に接続されている。
【００２５】
また、上記のアプリケーション・プログラムは、所定のウェブサイトにおけるユーザインタフェース（ＵＩ）の部分を実現するための画面制御プログラム（本発明における第１プログラム）と、利用者に所定のウェブサービスを提供するためのウェブサービス提供プログラム（本発明における第２プログラム）に大別される。クライアント端末１６の記憶部１６Ｃには、上記の画面制御プログラムを開発するためのＵＩ構築ツールのプログラムと、上記のウェブサービス提供プログラムを開発するためのウェブサービス作成ツールのプログラムが各々インストールされており、更に、クライアント端末１６で後述するボタン生成処理を行うためのボタン生成プログラムもインストールされている。このボタン生成プログラムは請求項６に記載のアプリケーション開発支援プログラムに対応しており、クライアント端末１６は、ＣＰＵ１６Ａが上記のボタン生成プログラムを実行することで、本発明に係るアプリケーション開発支援装置として機能する。
【００２６】
なお、ＵＩ構築ツールは本発明に係る第１のツールに、ウェブサービス作成ツールは本発明に係る第２のツールに各々対応している。ＵＩ構築ツールとしてはＪＳＦ(Java（登録商標） Server Faces)の規格に準拠したツールが好適であるが、他の規格に準拠したツールであってもよい。また、ウェブサービス作成ツールとしてはＢＰＥＬ(Business Process Execution Language)の規格に準拠したツールが好適であるが、他の規格に準拠したツールであってもよい。
【００２７】
一方、サーバ・コンピュータ１２は、ＣＰＵ１２Ａ、ＲＡＭ等から成るメモリ１２Ｂ、ＨＤＤ等から成る記憶部１２Ｃ、ネットワークＩ／Ｆ部１２Ｄを備えており、ネットワークＩ／Ｆ部１２Ｄを介してイントラネット１４に接続されている。前述のウェブサービス作成ツールを用いたウェブサービス提供プログラムの開発では、個々のウェブサービス（例えば、後述する「書籍検索」や「書籍購入」等）を単位としてプログラムが開発されるが、開発されたウェブサービス提供プログラムは、他のウェブサイトにおける同一ウェブサービスの提供にも利用可能である。このため、サーバ・コンピュータ１２の記憶部１２Ｃには、開発されたウェブサービス提供プログラムを登録するためのウェブサービス・ライブラリが記憶されており、このウェブサービス・ライブラリに登録されたウェブサービス提供プログラムは、互いに異なるクライアント端末１６を操作する複数の開発者が各々使用可能とされている。
【００２８】
次に図７を参照し、第１のコンピュータ・システム１０によって開発されたアプリケーション・プログラムの実行環境としての第２のコンピュータ・システム３０の構成について説明する。第２のコンピュータ・システム３０は特定ウェブサイトを運営するためのウェブサイト運営システム３２を備えている。ウェブサイト運営システム３２は、アプリケーション・サーバ３４、ウェブサービス提供サーバ３６及びＤＢ（データベース）サーバ３８を備え、ウェブサービス提供サーバ３６及びＤＢサーバ３８が通信回線を介してアプリケーション・サーバ３４に各々接続されて構成されている。
【００２９】
アプリケーション・サーバ３４は、ＣＰＵ３４Ａ、ＲＡＭ等から成るメモリ３４Ｂ、ＨＤＤ等から成る記憶部３４Ｃ、ネットワークＩ／Ｆ部３４Ｄを備えており、記憶部３４Ｃには、先に説明した第１のコンピュータ・システム１０を利用して開発されたアプリケーション・プログラムのうち前述の画面制御プログラムがインストールされている。アプリケーション・サーバ３４のネットワークＩ／Ｆ部３４Ｄは、多数台のウェブサーバが通信回線を介して相互に接続されて成るコンピュータ・ネットワーク（インターネット）４０に接続されており、インターネット４０には、ＣＰＵ４２Ａ、ＲＡＭ等から成るメモリ４２Ｂ、ＨＤＤ等から成る記憶部４２Ｃ、ネットワークＩ／Ｆ部４２Ｄを備え、記憶部３４Ｃにブラウザ（ウェブ閲覧ソフト）のプログラムがインストールされていると共に、表示手段としてのディスプレイ４４、入力手段としてのキーボード４６及びマウス４８が各々接続されたクライアント端末４２が多数台接続されている。
【００３０】
また、ウェブサービス提供サーバ３６はＣＰＵ３６Ａ、ＲＡＭ等から成るメモリ３６Ｂ、ＨＤＤ等から成る記憶部３６Ｃ、ネットワークＩ／Ｆ部３６Ｄを備えており、ＨＤＤ３６Ｃには、先に説明した第１のコンピュータ・システム１０を利用して開発されたアプリケーション・プログラムのうち前述のウェブサービス提供プログラムがインストールされている。
【００３１】
次に本実施形態の作用として、まず、ウェブサービス作成ツールを用いて行われるウェブサービス提供プログラムの開発について説明する。ウェブサービス提供プログラムを開発するために、開発者がクライアント端末１６上でウェブサービス作成ツールのプログラムを起動すると、クライアント端末１６のディスプレイ１８には、例として図２(Ａ)に示すような作成画面が表示される。ウェブサービス作成ツールは、提供対象のウェブサービスを実現する処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するためのウェブサービス提供プログラムを生成する機能を備えたツールであり、図２(Ａ)に示す作成画面には、開発者がフローチャートを作成するための作業領域と、フローチャートの作成に利用可能で互いに異なる処理を表す複数種の部品（シンボル）が表示されたパレットが設けられている。
【００３２】
上記の作成画面が表示されると、開発者は、マウス２２やキーボード２０を介し、パレット内に表示されている複数の部品の中から所望の部品を選択して作業領域に配置し、必要に応じて、配置した部品が表す処理の内容を規定する情報を入力すると共に、配置した部品と作業領域に既に配置した部品との接続関係（各部品が表す処理の実行順序）を規定する操作を繰り返すことで、例として図２(Ｂ)に示すように、提供対象のウェブサービスを実現する処理を規定するフローチャートを作成する。フローチャートの作成が完了すると、開発者は、作成したフローチャートに対応するプログラムの生成を指示する操作を行う。パレット内に表示されている個々の部品には、個々の部品が表す処理を実現するためのプログラムが付加されており、ウェブサービス作成ツールは、プログラムの生成が指示されると、作成されたフローチャートを構成する個々の部品に付加されているプログラムを、開発者によって入力された処理内容を規定する情報に基づいて修正し、作成されたフローチャートにおける個々の部品の接続関係に応じて並べ替える等の処理を行うことで、作成されたフローチャートが表す処理を実行するためのプログラム（ウェブサービス提供プログラム）を生成する。これにより開発者は、コーディング作業を行うことなく、所望のウェブサービスを提供するウェブサービス提供プログラムを得ることができる。
【００３３】
また、ウェブサービス作成ツールは、生成したウェブサービス提供プログラムを実行する際の入力変数及び出力変数の名称等を記述した変数定義情報も生成する。この変数定義情報は、より詳しくはウェブサービス提供プログラムによって実現されるウェブサービスを単位として生成され、例えば個々のウェブサービスを実現するための処理に共通部分が多い等の理由で、複数種のウェブサービスを実現するフローチャートが作成され、当該フローチャートに基づいて複数種のウェブサービスを実現するウェブサービス提供プログラムが生成された場合、ウェブサービス作成ツールにより、前記複数種のウェブサービスのうちの互いに異なるウェブサービスに対応する複数の変数定義情報が各々生成される。
複数種のウェブサービスを実現するウェブサービス提供プログラムが生成された場合、ウェブサービス提供プログラムの種類数ｎは提供可能なウェブサービスの種類数ｍよりも少なくなる（ｎ＜ｍ）が、個々のウェブサービス提供プログラムが各々ウェブサービスを実現するプログラムである場合は、ウェブサービス提供プログラムの種類数ｎは提供可能なウェブサービスの種類数ｍと同数（ｎ＝ｍ）となる。なお、上記の変数定義情報は、例えばＢＰＥＬの規格ではＷＳＤＬ(Web Service Description Language)と称される。また本実施形態では「個々の変数に一定の名称を用いる」という開発ルールが存在しており、同一の変数を用いるウェブサービスは、当該ウェブサービスの内容に拘わらず、対応する変数定義情報に規定されている前記変数の名称が同一とされている。
【００３４】
上記のようにしてウェブサービス作成ツールによるウェブサービス提供プログラム及び変数定義情報の生成が完了すると、開発者は、生成されたウェブサービス提供プログラム及び変数定義情報をクライアント端末１６からサーバ・コンピュータ１２へアップロードさせる。サーバ・コンピュータ１２へアップロードされたウェブサービス提供プログラム及び変数定義情報はウェブサービス・ライブラリに登録され、他の開発者が使用することが可能となる。
【００３５】
次に、ＵＩ構築ツールを用いて画面制御プログラムの開発を行うに先立って開発者が行う準備作業について説明する。ＵＩ構築ツールを用いて画面制御プログラムの開発を行う場合、開発者は、これから開発する画面制御プログラムによって実現されるＵＩを通じて利用者への提供を予定しているウェブサービスを全てリストアップし、リストアップした個々のウェブサービスに対応するウェブサービス提供プログラム及び変数定義情報を、例えばサーバ・コンピュータ１２のウェブサービス・ライブラリからダウンロードしたり、必要に応じてウェブサービス作成ツールを起動し、前述のフローチャート作成作業を行った後にウェブサービス作成ツールによってウェブサービス提供プログラム及び変数定義情報を生成させる等によって取得する（メモリ１６Ａ又は記憶部１６Ａに記憶させる）。そして、利用者への提供を予定している全てのウェブサービスについて、対応するウェブサービス提供プログラム及び変数定義情報を取得すると、クライアント端末１６上でボタン生成プログラムを起動させる。
【００３６】
以下、起動されたボタン生成プログラムがＣＰＵ１６Ａによって実行されることでクライアント端末１６によって行われるボタン生成処理について、図３を参照して説明する。ボタン生成処理では、まずステップ５０において、メモリ１６Ａ又は記憶部１６Ａに記憶されている、利用者への提供を予定している個々のウェブサービスに対応する変数定義情報(例えばＢＰＥＬの規格ではＷＳＤＬ)を各々参照し、個々の変数定義情報に記述されている入力変数及び出力変数を全て抽出する。例えば利用者への提供を予定しているウェブサービスの種類数がｍである場合、ｍ個の変数定義情報から入力変数及び出力変数が各々抽出される。次のステップ５２では、ステップ５０で抽出した入力変数及び出力変数のうち重複している変数（名称が同一、すなわち同一の変数）を１つに纏め、各変数の格納領域が設けられた変数格納領域(例えばＪＳＦの規格ではマネージドビーン)を生成する。
【００３７】
例として図５(Ａ)に示すように、利用者への提供を予定しているウェブサービスが「書籍検索サービス」及び「書籍購入サービス」であり、「書籍検索サービス」の入力変数が「書籍名」、出力変数が「書籍ＩＤ」であり、「書籍購入サービス」の入力変数が「書籍ＩＤ」及び「購入者」、出力変数が「結果」である場合、重複している「書籍ＩＤ」が１つに纏められることで、「書籍名」「書籍ＩＤ」「購入者」及び「結果」の各変数の格納領域が１個ずつ設けられた変数格納領域が生成されることになる。なお、ステップ５０，５２は本発明に係る変数格納領域生成手段に対応している。
【００３８】
ステップ５４では利用者への提供を予定しているウェブサービスの中から単一のウェブサービスを処理対象として選択し、次のステップ５６では、処理対象のウェブサービスをウェブページ上で呼び出すためのボタン（の情報）を生成する。詳細は後述するが、ＵＩ構築ツールでは、ＵＩ画面の構成要素として使用可能な情報入力／表示欄や各種のボタン等のシンボルが作成画面（図４も参照）のパレット内に表示され、開発者により、所望のシンボルを選択して所望の位置に配置する操作が繰り返されることでＵＩ画面の設計が行われる。ステップ５６では、処理対象のウェブサービスをウェブページ上で呼び出すためのボタンとして、ＵＩ構築ツールと同一の規格（例えばＪＳＦ）に準拠したボタン（の情報）を生成する。これにより、生成したボタンはＵＩ構築ツールの作成画面のパレット内に表示することが可能となる。なお、ステップ５６は本発明に係るシンボル生成手段に対応している。
【００３９】
次のステップ５８以降の処理は本発明に係るプログラム付加手段に対応しており、まずステップ５８では、処理対象のウェブサービスに対応する変数定義情報に記述されてる入力変数及び出力変数の中から単一の変数を選択し、次のステップ６０では、ステップ５２で生成した変数格納領域をステップ５８で選択した変数の名称をキーとして検索することで、ステップ５８で選択した変数に対応する格納領域を変数格納領域から抽出する。ステップ６２では、ステップ５８で選択した変数が入力変数か否か判定する。判定が肯定された場合はステップ６４へ移行し、変数格納領域からステップ６０で抽出した格納領域に格納されているデータを、ステップ５８で選択した変数(入力変数)として処理対象のウェブサービスへ引き渡す代入文（プログラム）を作成する。また、ステップ５８で選択した変数が出力変数であれば、ステップ６２の判定が否定されてステップ６６へ移行し、処理対象のウェブサービスによる処理終了時に処理対象のウェブサービスから引き渡される出力変数のうち、ステップ５８で選択した出力変数を、変数格納領域からステップ６０で抽出した格納領域内に格納させる代入文（プログラム）を作成する。
【００４０】
次のステップ６８では、処理対象のウェブサービスに対応する変数定義情報に記述されてる全ての変数に対して上記の処理を行ったか否か判定する。判定が否定された場合はステップ５８に戻り、ステップ６８の判定が肯定される迄ステップ５８〜ステップ６８を繰り返す。これにより、処理対象のウェブサービス（を提供するプログラム）の起動時には、処理対象のウェブサービスにおける入力変数に対応するデータを変数格納領域から処理対象のウェブサービスへ入力変数として引き渡す処理を行い（例として図５(Ｂ)に破線で示す右向きの矢印を参照）、処理対象のウェブサービス（を提供するプログラム）の終了時には、処理対象のウェブサービスから引き渡された出力変数を変数格納領域に格納する処理を行う（例として図５(Ｂ)に破線で示す左向きの矢印を参照）プログラムが自動的に生成されることになる。
【００４１】
ステップ６８の判定が肯定されるとステップ７０へ移行し、処理対象のウェブサービスを呼び出す呼出文（プログラム）を作成する。そしてステップ７２では、上述した処理で作成した呼出プログラム（ステップ６４、６６で作成した代入文とステップ７０で作成した呼出文を含むプログラム：本発明に係る第３プログラムに相当）を、先のステップ５６で生成した処理対象のウェブサービスに対応するボタン（の情報）に付加し、メモリ１６Ｂ又は記憶部１６Ｃの所定の記憶領域に記憶させる。次のステップ７４では、利用者への提供を予定している全てのウェブサービスに対して上記の処理を行ったか否か判定する。判定が否定された場合はステップ５４に戻り、ステップ７４の判定が肯定される迄ステップ５４〜ステップ７４を繰り返す。これにより、利用者への提供を予定している全てのウェブサービスについて、上記の呼出プログラムが付加されたボタン（の情報）が各々生成される。そしてステップ７４の判定が肯定されるとボタン生成処理を終了する。
【００４２】
このボタン生成処理の終了により準備作業は完了し、続いて開発者は、ウェブサービスを提供する所定のウェブサイトにおけるＵＩの構築（画面制御プログラムの開発）を行うためにクライアント端末１６上でＵＩ構築ツールのプログラムを起動する。これにより、クライアント端末１６のディスプレイ１８には、例として図４に示すような作成画面が表示される。
【００４３】
ＵＩ構築ツールは、ＵＩを構築するための操作を開発者に行わせ、開発者による操作が完了すると、構築されたＵＩを実現する画面制御プログラムを生成する機能を備えたツールであり、図４に示す作成画面には、開発者がＵＩ画面（ウェブページ）を作成するためのＵＩ画面作成領域と、ＵＩ画面の構成要素として使用可能な情報入力／表示欄や各種のボタン等のシンボルが表示されたパレットと、ＵＩ画面作成領域で作成された複数のＵＩ画面の間の遷移を定義するための画面遷移定義領域が各々設けられている。本実施形態では、ＵＩ構築ツールの起動に先立って前述のボタン生成処理が実行されるので、ＵＩ構築ツールの起動時には、ボタン生成処理によって生成されて所定の記憶領域に記憶されているボタンの情報も読み込まれ、例として図４にハッチングで示すように、ボタン生成処理によって生成されたボタン（利用者への提供を予定している個々のウェブサービスを呼び出すためのボタン）もＵＩ画面の作成に使用可能なシンボルの１つとしてパレット内に表示される。
【００４４】
ＵＩ構築ツールの作成画面が表示されると、開発者は構築対象のＵＩを規定するための操作を行う。すなわち開発者は、マウス２２やキーボード２０を介し、パレット内に表示されている複数のシンボルの中から所望のシンボルを選択してＵＩ画面作成領域内の所望の位置に配置し、必要に応じて、ＵＩ画面内に表示すべきテキスト情報を入力する操作（第１の操作）を繰り返すことで、所定のウェブサイトを構成する複数のＵＩ画面（ウェブページ）を順に作成（設計）する。なお、個々のＵＩ画面の作成において、作成しているＵＩ画面が、利用者へ特定のウェブサービスを提供する契機となる画面である場合、開発者は、パレット内に表示されているシンボルの中から特定のウェブサービスを呼び出すためのボタンも選択し、当該ボタンもＵＩ画面内に配置する操作を行う。また、作成したＵＩ画面が、利用者による情報の入力又は情報の表示を行うための情報入力／表示欄が設けられている画面である場合、開発者は、画面内の個々の情報入力／表示欄を、先のボタン生成処理によって生成された変数格納領域のうち、情報入力／表示欄を介して入力される情報又は情報入力／表示欄に表示する情報に対応する格納領域と関連付ける（ＵＩバインドともいう）操作（第２の操作）を行う。更に、ウェブサイトを構成する全てのＵＩ画面（ウェブページ）を作成すると、開発者は、作成した各ＵＩ画面の遷移を画面遷移定義領域内で規定する操作（第３の操作）を行う。
【００４５】
開発者による操作について具体例を挙げて説明すると、図５(Ｂ)に示すように、開発対象のウェブサイトを通じて利用者への提供を予定しているウェブサービスのプログラムとして、書籍検索サービス及び書籍購入サービスのプログラムが既に開発されており、上記ウェブサイトのＵＩとして、利用者が検索対象の書籍名を入力して検索を指示するための書籍検索画面、上記検索によって抽出された書籍ＩＤを利用者が確認し、必要に応じて書籍ＩＤを変更した後、購入者情報を入力して購入を指示するための書籍購入画面、及び、利用者が購入処理の結果を確認するための結果表示画面へ順に遷移するＵＩを構築する場合、開発者は、書籍検索画面については、書籍名を入力するための情報入力／表示欄及び書籍検索サービスを呼び出すためのボタンを画面内に各々配置する操作を行うことで書籍検索画面を作成し、当該書籍検索画面内の情報入力／表示欄を、変数格納領域のうち書籍名の格納領域と関連付ける操作を行う。
【００４６】
また開発者は、書籍購入画面については、書籍ＩＤの表示及び入力を行うための情報入力／表示欄、購入者の情報を入力するための情報入力／表示欄及び書籍購入サービスを呼び出すためのボタンを画面内に各々配置する操作を行うことで書籍購入画面を作成し、当該書籍購入画面内のうち書籍ＩＤの表示及び入力を行うための情報入力／表示欄を、変数格納領域のうち書籍ＩＤの格納領域と関連付けると共に、購入者情報を入力するための情報入力／表示欄を、変数格納領域のうち購入者情報の格納領域と関連付ける操作を行う。また開発者は、結果表示画面については、結果情報を表示するための情報入力／表示欄及び画面の消去を指示するためのボタン(図５(Ｂ)に示す「ＯＫ」と表記したボタン)を画面内に各々配置する操作を行うことで結果表示画面を作成し、当該結果表示画面内の情報入力／表示欄を、変数格納領域のうち結果情報の格納領域と関連付ける操作を行う。
【００４７】
更に開発者は、書籍検索画面が表示されている状態で当該画面内のボタンが選択されると書籍検索画面から書籍購入画面へ遷移し、書籍購入画面が表示されている状態で当該画面内のボタンが選択されると書籍購入画面から結果表示画面へ遷移するように、各画面の遷移を規定する操作を行う。以上の操作により図５(Ｂ)に示すＵＩを規定することができる。
【００４８】
なお、利用者への提供を予定している個々のウェブサービスを単位として変数格納領域を設ける従来方式で上記のＵＩを構築しようとした場合、例として図６に示すように、書籍購入画面内に設けられ書籍ＩＤの表示及び入力を行うための情報入力／表示欄を、書籍検索サービスに対応する変数格納領域内の書籍ＩＤの格納領域、及び、書籍購入サービスに対応する変数格納領域内の書籍ＩＤの格納領域と各々関連付ける必要がある。しかしながら、ＵＩ構築ツールが準拠しているＪＳＦ等の規格では、個々の情報入力／表示欄と関連付けることが可能な変数格納領域内の格納領域の数が各々１個に制限されており、上記のように書籍ＩＤの表示及び入力のための書籍購入画面内の情報入力／表示欄を複数の格納領域と関連付けることができないので、図５(Ｂ)に示すようなＵＩは構築できない。これに対して本実施形態では、先に説明したボタン生成処理において、変数定義情報に重複定義されている変数の格納領域を共通化した変数格納領域を生成しているので、図５(Ｂ)に示すように、書籍ＩＤの表示及び入力のための書籍購入画面内の情報入力／表示欄を単一の格納領域と関連付けるのみで図５(Ｂ)に示すＵＩを構築することができ、実現可能なＵＩの設計の自由度を向上させることができる。
【００４９】
ＵＩを規定する操作が完了すると、開発者はＵＩ構築ツールに対し、前記ＵＩを実現するプログラムの生成を指示する。これによりＵＩ構築ツールは、開発者によって構築されたＵＩを実現する（クライアント端末４２（図７参照）からの要求に応じて、クライアント端末４２のディスプレイ４４に各ＵＩ画面を順に表示させる）画面制御プログラムを生成する。この画面制御プログラムは、個々のＵＩ画面を規定するデータと、利用者により個々のＵＩ画面を介して各種の操作が行われた場合の処理を規定するプログラムを含んで構成されるが、各種のウェブサービスを呼び出すためのボタンが設けられたＵＩ画面については、先に説明したボタン生成処理によって生成されて前記ボタンに付加されている呼出プログラムが読み出され、読み出された呼出プログラムが、前記ボタンが利用者によって選択された場合の処理を規定するプログラムとして用いられる（画面制御プログラムに組み込まれる）。
【００５０】
以上の操作・処理により、画面制御プログラム及びウェブサービス提供プログラムを含むアプリケーション・プログラムの開発が完了する。このように、本実施形態では、ウェブサービス提供プログラムについては、ウェブサービス作成ツールを利用することでコーディング作業を行うことなく開発することができ、画面制御プログラムについても、事前にボタン生成処理を行い、利用者への提供を予定している個々のウェブサービスの変数定義情報に重複定義されている変数の格納領域を共通化した変数格納領域を生成しておくと共に、利用者への提供を予定している個々のウェブサービスを呼び出す呼出プログラムを付加したボタンを生成しておくことで、開発者は、ＵＩ構築ツールを利用し、ＵＩ構築ツールの作成画面のパレット内に表示される前記ボタンを画面内に配置する操作を含む各種の操作を行うことで、コーディング作業を行うことなく所望のＵＩの構築（画面制御プログラムの開発）を行うことができる。従って、画面制御プログラム及びウェブサービス提供プログラムを含むアプリケーション・プログラムを非常に短い期間で開発することが可能となる。
【００５１】
次に、アプリケーション・プログラムの実行時（ウェブサイトの稼働時）の動作について説明する。アプリケーション・プログラムの実行時には、図７に示すように、開発したアプリケーション・プログラムのうち、画面制御プログラムがアプリケーション・サーバ３４の記憶部３４Ｃにインストールされ、ウェブサービス提供プログラムがウェブサービス提供サーバ３６の記憶部３６Ｃにインストールされる。
【００５２】
なお、図示は省略するが、アプリケーション・サーバ３４では画面制御プログラムを実行するためのプラットフォームとして機能する所定のプログラム（以下、プラットフォーム・プログラムと称する）が実行されており、画面制御プログラムは上記のプラットフォーム上で実行される（例えばＵＩ構築ツールがＪＳＦの規格に準拠している場合、ＵＩ構築ツールによって生成された画面制御プログラムはＪＳＦエンジンと称されるプラットフォーム上で実行される）。また、ウェブサービス提供サーバ３６ではウェブサービス提供プログラムを実行するためのプラットフォームとして機能する所定のプログラムが実行されており、ウェブサービス提供プログラムは上記のプラットフォーム上で実行される（例えばウェブサービス作成ツールがＢＰＥＬの規格に準拠している場合、ウェブサービス作成ツールによって生成されたウェブサービス提供プログラムはＢＰＥＬエンジンと称されるプラットフォーム上で実行される）。
【００５３】
アプリケーション・サーバ３４で実行される画面制御プログラムは、クライアント端末４２を介して利用者からＵＩ画面の配信が要求される毎に、配信が要求されたＵＩ画面のデータを要求元のクライアント端末４２へ送信することで、配信が要求されたＵＩ画面を要求元のクライアント端末４２のディスプレイ４４に表示させる。また、利用者がキーボード４６等を操作することでディスプレイ４４に表示されたＵＩ画面内の情報入力／表示欄内に入力された情報は、クライアント端末４２のメモリ４２Ｂ等に一旦記憶された後に、所定のタイミング（例えば次のＵＩ画面への遷移のトリガとなるボタンが選択された等のタイミング）でアプリケーション・サーバ３４へ転送される。
【００５４】
アプリケーション・サーバ３４上で動作しているプラットフォーム・プログラムは、利用者によってＵＩ画面内の情報入力／表示欄内に入力された情報をアプリケーション・サーバ３４がクライアント端末４２から受信すると、受信した情報を、アプリケーション・サーバ３４のメモリ３４Ｂ上に設けられた変数格納領域のうち、情報が入力された情報入力／表示欄と予め関連付けされた格納領域に格納させる（図５(Ｂ)に「バインドによる自動代入」と表記した実線の矢印のうち右向きの矢印に相当する処理：請求項３に記載の同期処理に相当）。
【００５５】
また、ＵＩ画面内のうち任意のウェブサービスを呼び出すためのボタンが利用者によって選択された場合には、前記ボタンに付加されている呼出プログラムにより、対応するウェブサービスのプログラムがウェブサービス提供サーバ３６上で起動されると共に、変数格納領域のうち起動されたプログラムにおける入力変数に対応する格納領域（予め設定された格納領域）内のデータが変数格納領域から読み出され、読み出されたデータが起動されたプログラムへ入力変数として引き渡される（図５(Ｂ)に「呼出プログラムによる代入」と表記した破線の矢印のうち右向きの矢印に相当する処理）。これにより、利用者によって選択されたボタンに対応するウェブサービスを実現するための処理がウェブサービス提供サーバ３６上で実行される。なお、ウェブサービスを実現するための処理がＤＢへのアクセスを含んでいる場合、アプリケーション・サーバ３４経由でウェブサービス提供サーバ３６からＤＢサーバ３８へＤＢへのアクセスが指示されることでＤＢへのアクセスが実現される。
【００５６】
また、ウェブサービス提供サーバ３６上で起動されたプログラムによる処理が終了すると、ウェブサービス提供サーバ３６からアプリケーション・サーバ３４へ出力変数に相当するデータが引き渡され、呼出プログラムにより、引き渡されたデータを変数格納領域のうちの出力変数に対応する格納領域（予め設定された格納領域）内に格納する処理（図５(Ｂ)に「呼出プログラムによる代入」と表記した破線の矢印のうち左向きの矢印に相当する処理）がアプリケーション・サーバ３４上で行われる。また、上記処理によって新たにデータが格納された格納領域が何れかのＵＩ画面内の情報入力／表示欄と関連付けられている場合には、アプリケーション・サーバ３４上で動作しているプラットフォーム・プログラムにより、上記格納領域に新たに格納されたデータをＵＩ画面内の関連付けられた情報入力／表示欄に表示させる処理が行われる（図５(Ｂ)に「バインドによる自動代入」と表記した実線の矢印のうち左向きの矢印に相当する処理：請求項３に記載の同期処理に相当）。これにより、ウェブサイトを通じて各種のウェブサービスが利用者に提供されることになる。
【００５７】
一例として、図５(Ｂ)に示す各ＵＩ画面から成るウェブサイトが利用者によってアクセスされた場合、まず利用者が操作しているクライアント端末４２のディスプレイ４４に書籍検索画面が表示される。また、利用者が書籍検索画面内の書籍名の入力／表示欄内に検索対象の書籍名を入力した後に、「検索」と表記されたボタン（書籍検索サービスを呼び出すためのボタン）を選択すると、書籍名の入力／表示欄内に入力された書籍名は、プラットフォーム・プログラムによって変数格納領域の書籍名の格納領域に一旦格納された後に、呼出プログラムによって起動された書籍検索サービスのプログラムに入力変数として引き渡される。また、クライアント端末４２のディスプレイ４４に表示されているＵＩ画面は、「検索」と表記されたボタンが選択されたことに伴って書籍購入画面に切り替わるが、書籍検索サービスの出力変数としての書籍ＩＤは呼出プログラムによって変数格納領域の書籍ＩＤの格納領域に一旦格納された後に、プラットフォーム・プログラムによって書籍購入画面内の書籍ＩＤの入力／表示欄に表示される。
【００５８】
また利用者は、ディスプレイ４４に書籍購入画面が表示されると、当該画面内の書籍ＩＤの入力／表示欄に表示された書籍ＩＤを確認し、必要に応じて書籍ＩＤを上書き入力すると共に、購入者情報の入力／表示欄内に購入者情報を入力した後に、「購入」と表記されたボタン（書籍購入サービスを呼び出すためのボタン）を選択する。これにより、購入者情報の入力／表示欄内に入力された購入者情報は、プラットフォーム・プログラムによって変数格納領域の購入者情報の格納領域に格納され（利用者によって書籍ＩＤの上書き入力が行われた場合は、上書き入力後の書籍ＩＤも対応する格納領域に格納される）、その後、変数格納領域内に格納されている書籍ＩＤ及び購入者情報は、呼出プログラムによって起動された書籍購入サービスのプログラムに入力変数として引き渡される。更に、クライアント端末４２のディスプレイ４４に表示されているＵＩ画面は、「購入」と表記されたボタンが選択されたことに伴って結果表示画面に切り替わるが、書籍購入サービスの出力変数としての結果情報は呼出プログラムによって変数格納領域の結果情報の格納領域に一旦格納された後に、プラットフォーム・プログラムによって結果表示画面内の結果情報の情報入力／表示欄に表示される。
【００５９】
なお、上記では本発明に係る第１プログラムに相当する画面制御プログラムと、本発明に係る第２プログラムに相当するウェブサービス提供プログラムが、異なるコンピュータ（アプリケーション・サーバ３４及びウェブサービス提供サーバ３６）で実行される態様を説明したが、これに限定されるものではなく、第１プログラム及び第２プログラムを同一のコンピュータで実行させるようにしてもよい。
【００６０】
また、上記ではインターネット４０を通じてウェブサイト（アプリケーション・サーバ３４）へアクセスした利用者に対して所定のウェブサービスを提供する態様を説明したが、これに限定されるものではなく、インターネット４０に代えてイントラネットを用い、当該イントラネットに接続可能な利用者（例えば特定企業の従業員）に所定のウェブサービスを提供する等の態様にも適用可能である。
【００６１】
また、上記では本発明に係るアプリケーション開発支援プログラムに対応するボタン生成プログラムがクライアント端末１６の記憶部１６Ｃに予め記憶（インストール）されている態様を説明したが、本発明に係るアプリケーション開発支援プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【図面の簡単な説明】
【００６２】
【図１】本実施形態においてアプリケーション・プログラムの開発環境としての第１のコンピュータ・システムの概略構成を示すブロック図である。
【図２】(Ａ)はウェブサービス作成ツールの作成画面の一例、(Ｂ)は当該ツールを用いて作成画面上で作成されたフローの一例を各々示すイメージ図である。
【図３】ボタン生成処理の内容を示すフローチャートである。
【図４】ＵＩ構築ツールの作成画面の一例を示すイメージ図である。
【図５】(Ａ)は変数定義情報からの変数格納領域の生成、(Ｂ)は画面内の情報入力／表示欄と格納領域のバインド、稼働時のデータ(変数)の代入を説明する概念図である。
【図６】従来方式で図５(Ｂ)と同一処理を行う場合の問題点を示す概念図である。
【図７】アプリケーション・プログラムの実行環境としての第２のコンピュータ・システムの概略構成を示すブロック図である。
【符号の説明】
【００６３】
１０  コンピュータ・システム
１２  サーバ・コンピュータ
１６  クライアント端末
３０  コンピュータ・システム
３４  アプリケーション・サーバ
３６  ウェブサービス提供サーバ
４２  クライアント端末
【図１】
0004714199.tif 000002
【図２】
0004714199.tif 000003
【図３】
0004714199.tif 000004
【図４】
0004714199.tif 000005
【図５】
0004714199.tif 000006
【図６】
0004714199.tif 000007
【図７】
0004714199.tif 000008