JP2009087093A - アプリケーション開発支援装置及びプログラム - Google Patents
アプリケーション開発支援装置及びプログラム Download PDFInfo
- Publication number
- JP2009087093A JP2009087093A JP2007256600A JP2007256600A JP2009087093A JP 2009087093 A JP2009087093 A JP 2009087093A JP 2007256600 A JP2007256600 A JP 2007256600A JP 2007256600 A JP2007256600 A JP 2007256600A JP 2009087093 A JP2009087093 A JP 2009087093A
- Authority
- JP
- Japan
- Prior art keywords
- program
- variable
- storage area
- user interface
- tool
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】UIを実現する第1プログラム及びウェブサービスを実現する第2プログラムを含むアプリケーション・プログラムの開発で、第1プログラムから第2プログラムを呼び出すプログラムのコーディング作業を省略可能とする。
【解決手段】第1のツールを用いて第1プログラムを生成する前に、第2のツールを用いて生成したウェブサービス提供プログラムによって提供可能な複数種のウェブサービスにおける入力変数及び出力変数の格納領域を1つずつ設けた(重複する変数は共通化)変数格納領域を生成し(50,52)、個々のウェブサービス毎に、対応するプログラムを呼び出すためのボタンと、対応するプログラムを起動しかつ当該プログラムと変数格納領域の間でデータの受け渡しを行う呼出プログラムを生成し、生成した呼出プログラムをボタンに付加する処理(54〜74))を行う。生成したボタンは第1のツールを用いたUIの構築に利用される。
【選択図】図3
【解決手段】第1のツールを用いて第1プログラムを生成する前に、第2のツールを用いて生成したウェブサービス提供プログラムによって提供可能な複数種のウェブサービスにおける入力変数及び出力変数の格納領域を1つずつ設けた(重複する変数は共通化)変数格納領域を生成し(50,52)、個々のウェブサービス毎に、対応するプログラムを呼び出すためのボタンと、対応するプログラムを起動しかつ当該プログラムと変数格納領域の間でデータの受け渡しを行う呼出プログラムを生成し、生成した呼出プログラムをボタンに付加する処理(54〜74))を行う。生成したボタンは第1のツールを用いたUIの構築に利用される。
【選択図】図3
Description
本発明はアプリケーション開発支援装置及びプログラムに係り、特に、複数種のツールを用いて行われるアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置、及び、コンピュータを前記アプリケーション開発支援装置として機能させるためのアプリケーション開発支援プログラムに関する。
最近、ビジネスプロセスをワークフローとして記述可能な規格(言語)としてBPEL(Business Process Execution Language)が普及してきている。BPELに関しては、互いに異なる処理に対応する複数種の部品の中から所望の部品を選択して組み合わせる操作を行うことで所望のワークフローを視覚的に記述可能で、かつ作成されたワークフローからBPELに準拠したプログラムを自動的に生成可能なツールが用意されており、当該ツールによって自動生成されたプログラムをコンピュータによって実行させる実行環境も構築可能とされている。このため、上記ツールを利用することで、所望のワークフロー(ビジネスプロセス)をコンピュータによって実現させるためのプログラムの開発を、プログラミング言語に関する知識が必要なコーディング作業を行うことなく容易かつ短時間で行うことができる。
一方、ウェブアプリケーション向けのユーザインタフェースを構築するための規格としてJSF(Java(登録商標) Server Faces) が知られている。このJSFに関しても、ユーザインタフェース画面の構成要素として使用可能な複数種のシンボルの中から所望のシンボルを選択・配置する等の操作を行うことで、ユーザインタフェース画面の設計やユーザインタフェース画面の遷移の定義等のユーザインタフェースの構築が可能で、構築されたユーザインタフェースを実現するプログラムを自動的に生成可能なツールが用意されており、このツールを利用することで、所望のユーザインタフェースを実現するプログラムを、コーディング作業を行うことなく容易かつ短時間で得ることができる。このため、アプリケーションの開発にあたり、当該アプリケーションのうち、ユーザインタフェースの部分のプログラムをJSFのツールを用いて自動生成すると共に、ワークフローの部分のプログラムをBPELのツールを用いて自動生成するようにすれば、一切のコーディング作業が不要となることで開発期間の大幅な短縮を実現できるものと期待される。
しかしながら、JSFの規格は、JSFを用いて自動生成したプログラム(ユーザインタフェースを実現するプログラム)をBPELを用いて自動生成したプログラム(ワークフローを実現するプログラム)と連動させることが考慮されておらず(他のプログラムを呼び出す処理が規格として定義されていない)、例えばユーザインタフェース画面をディスプレイに表示している状態(JSFを用いて自動生成したプログラムが実行されている状態)で、当該ユーザインタフェース画面を介して所定の操作が行われたことを契機として特定のワークフローを実現させる(BPELを用いて自動生成した特定のワークフローを実現する特定プログラムを起動・実行させる)場合、前記所定の操作が行われたことを契機として特定プログラムを起動すると共に、当該特定プログラムに対して入力情報等を引数として引き渡す処理を行うプログラムをコーディング作業によって別途作成する必要がある。従って、開発対象のアプリケーションのうち、ユーザインタフェースの部分のプログラムをJSFのツールを用いて自動生成すると共に、ワークフローの部分のプログラムをBPELのツールを用いて自動生成したとしても、結局はコーディング作業が必要になるために開発期間を大幅に短縮することは困難であった。
上記に関連して特許文献1には、クライアントとのインタフェースを行う第1の仮想マシンと、各種ビジネスオブジェクトを実行する第2の仮想マシンを有するアプリケーションサーバにおいて、ビジネスオブジェクトの処理に必要なデータの識別名を各ビジネスオブジェクト毎に格納しておき、第1の仮想マシンは、クライアントに任意の画面を表示させて任意のデータ入力を行わせ、フォームデータを含むリクエストを受け取り、受け取ったリクエストに応じたビジネスオブジェクトを呼び出す際に、呼び出すビジネスオブジェクトが必要とする各データの識別名を取得し、フォームデータに含まれる各データのうち識別名が前記取得した識別名と一致するデータのみを第2の仮想マシンへ転送することで、第2の仮想マシン側で必要なデータを抽出する処理のためのコーディングを不要とする技術が開示されている。
特開2006−268121号公報
しかしながら、上記の特許文献1に記載の技術において、第1の仮想マシンが準拠している規格が、前述したJSFの規格のように他のプログラムを呼び出す処理が定義されていない規格である場合は、第1の仮想マシン側で動作するプログラムの開発にあたり、第2の仮想マシン側で動作するプログラムを呼び出す処理を行うためにコーディング作業を行う必要がある。プログラムの開発にあたって多少なりともコーディング作業が必要とされる場合、開発担当者がプログラミング言語に関する知識を有している人に限られると共に、コーディング作業で作成したプログラムに対してはデバッグ作業も必要となるので、コーディング作業を省略できる場合と比較して開発期間が大幅に長期化するという問題がある。
また、特許文献1に記載の技術は、受け取ったリクエストに応じたビジネスオブジェクトを呼び出す際に、フォームデータに含まれる各データのうち、呼び出すビジネスオブジェクトが必要とするデータと識別名が一致するデータを検索して抽出する処理が行われるので、プログラム実行時の処理に時間が掛るという問題もあり、改善の余地がある。
更に、前述したJSFの規格では、設計したユーザインタフェース画面内に配置した個々のテキストフィールド(テキスト入力欄やテキスト表示欄)を、複数の変数について格納領域を各々設けたマネージド・ビーン(Managed Bean)と称する変数格納領域内の何れかの格納領域と関連付ける(バインドする)ことが可能とされており、バインドされたテキストフィールドと格納領域に対してはプログラム実行時に同期処理が行われる(詳しくは、テキスト入力欄に入力されたデータは当該テキスト入力欄とバインドされた格納領域に格納され、格納領域に格納されたデータは当該格納領域とバインドされたテキスト表示欄に表示される)。このため、JSFのツールを用いて自動生成したユーザインタフェースの部分の第1プログラムと、BPELのツール等を用いて自動生成したワークフローの部分の第2プログラムを連動させる場合、第2プログラムが実行可能な複数種の処理の各々を単位として、各処理における入力変数及び出力変数に対応する格納領域を各々設けた変数格納領域(マネージド・ビーン)を用い、当該変数格納領域を経由して第1プログラムと第2プログラムの間のデータの受け渡しを行うことが考えられる。
しかし、JSFの規格では、単一のテキストフィールドと関連付けることが可能な格納領域の数が1個に制限されている。このため、例えば第2プログラムによって行われる第1処理の出力変数をユーザインタフェース画面内の特定テキストフィールドに表示させることは、第1処理の出力変数に対応する格納領域を特定テキストフィールドと関連付けておき、第1処理の出力変数を対応する格納領域に格納する処理を行うことで実現できるものの、更に、特定テキストフィールドに表示されたデータ(第1処理の出力変数)に対し、必要に応じて利用者による変更設定を行わせ、必要に応じて変更設定が行われたデータを第2プログラムによる第2処理の入力変数として用いることは、特定テキストフィールドを、第1処理の出力変数に対応する格納領域に加えて、第2処理の入力変数に対応する格納領域とも関連付けておく必要があるので実現できない。
このように、第1の規格に準拠しユーザインタフェースを実現する第1プログラムと、第2の規格に準拠しワークフローを実現する第2プログラムを連動させるにあたり、第1プログラムが準拠する第1の規格に、ユーザインタフェース画面内の個々の情報入力/表示欄と関連付けることが可能な変数の格納領域の数に制限がある場合には、構築可能なユーザインタフェースが制約を受けるという問題もある。なお、特許文献1に記載の技術は上記事項について何ら考慮されていない。
本発明は上記事実を考慮して成されたもので、第1のツールによって生成可能な第1プログラム及び第2のツールによって生成可能な第2プログラムを含むアプリケーション・プログラムの開発において、第1プログラムから第2プログラムを呼び出すプログラムを作成するコーディング作業を省略可能なアプリケーション開発支援装置及びアプリケーション開発支援プログラムを得ることが目的である。
上記目的を達成するために請求項1記載の発明に係るアプリケーション開発支援装置は、ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力/表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第1の操作、設計したユーザインタフェース画面内に配置した個々の情報入力/表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第2の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第3の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第1プログラムを生成する第1のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第2プログラムを生成する第2のツールを用いて行われる、前記第1プログラム及び前記第2プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置であって、前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記第2のツールを用いて生成されたn種類の前記第2プログラムによって実行可能なm(m≧n)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段と、前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記n種類の前記第2プログラムのうちの何れかを呼び出して前記m種類の処理のうちの互いに異なる処理を行わせるためのm種類の起動シンボルを各々生成するシンボル生成手段と、ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記m種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記n種類の前記第2プログラムのうち前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第2プログラムによる前記対応する処理の実行が完了すると、前記特定の第2プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第3プログラムを生成し、生成した第3プログラムを前記特定の起動シンボルに付加することを、前記m種類の起動シンボルに対して各々行うプログラム付加手段と、を備えたことを特徴としている。
請求項1記載の発明において、第1のツールは、ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力/表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第1の操作、設計したユーザインタフェース画面内に配置した個々の情報入力/表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第2の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第3の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第1プログラムを生成する。また第2のツールは、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第2プログラムを生成する。なお、請求項4に記載したように、第1のツールとしては第1の規格に準拠したツールを、第2のツールとしては第2の規格に準拠したツールを適用することができ、より詳しくは、例えば請求項5に記載したように、第1の規格としてはJSFを、第2の規格としてはBPELを適用することができる。
なお、請求項1記載の発明において、第1のツールによって生成される第1プログラムとしては、例えば請求項3に記載したように、第1プログラムを実行するためのプラットフォームとして機能する所定のプログラムを実行しているコンピュータ上で実行され、当該コンピュータによる第1プログラムの実行時には、所定のプログラムにより、表示画面内に表示されているユーザインタフェース画面内に配置され情報の入力が可能な特定の情報入力/表示欄内に新たに情報が入力された場合には、入力された情報を、変数格納領域内の各格納領域のうち特定の情報入力/表示欄と関連付けられた特定の格納領域にも格納し、変数格納領域内の特定の格納領域に新たに情報が格納された場合には、格納された情報を、表示画面内に表示されているユーザインタフェース画面内に配置され特定の格納領域と関連付けられかつ情報の表示が可能な特定の情報入力/表示欄内にも表示させる同期処理が行われるプログラムが好適である。
ここで、請求項1記載の発明に係るアプリケーション開発支援装置は、上記の第1のツール及び第2のツールを用いて行われる、第1プログラム及び第2プログラムを含むアプリケーション・プログラムの開発を支援する装置であり、変数格納領域生成手段は、第1のツールに対して第1〜第3の操作が行われる前に、第2のツールを用いて生成されたn種類の第2プログラムによって実行可能なm(m≧n)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、変数格納領域として、変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する。これにより、変数定義情報に重複定義されている変数を含め、変数定義情報に定義されている変数に対応する格納領域が1つずつ設けられた変数格納領域(m種類の処理の実行に共通に用いられる変数格納領域)が生成される。
また、請求項1記載の発明において、シンボル生成手段は、第1のツールに対して第1〜第3の操作が行われる前に、ユーザインタフェース画面の構成要素として使用可能なシンボルとして、n種類の第2プログラムのうちの何れかを呼び出してm種類の処理のうちの互いに異なる処理を行わせるためのm種類の起動シンボルを各々生成し、プログラム付加手段は、ユーザインターフェース画面内に表示されている、シンボル生成手段によって生成されたm種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、変数格納領域内の各格納領域のうち、特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、n種類の前記第2プログラムのうち前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、特定の第2プログラムによる前記対応する処理の実行が完了すると、特定の第2プログラムから引き渡された出力変数を、変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第3プログラムを生成し、生成した第3プログラムを特定の起動シンボルに付加することを、m種類の起動シンボルに対して各々行う。
これにより、開発者が第1のツールを用いて第1〜第3の操作を行うことで構築対象のユーザインタフェースを規定する作業を行う際には、シンボル生成手段によって生成されたm種類の起動シンボルも、第1のツールにより、ユーザインタフェース画面の構成要素として使用可能なシンボルとして表示画面に表示され、第1の操作を行うことで、m種類の起動シンボルのうちの所望の起動シンボル(m種類の処理のうち実行を所望している処理に対応する起動シンボル)を、設計中のユーザインタフェース画面内に配置することが可能となる。また、上記のユーザインタフェース画面が表示されている状態で、利用者が上記の起動シンボルを選択すると、当該起動シンボルに付加されている第3プログラムが実行され、変数格納領域内の各格納領域のうち、前記起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、特定の第2プログラムによる前記対応する処理の実行が完了すると、特定の第2プログラムから引き渡された出力変数を、変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理が行われる。
このように、請求項1記載の発明では、第1のツールに対して第1〜第3の操作が行われる前に、プログラム付加手段により、第1プログラムから第2プログラムを呼び出す第3プログラムが生成されて起動シンボルに付加されるので、第1のツールによって生成可能な第1プログラム及び第2のツールによって生成可能な第2プログラムを含むアプリケーション・プログラムの開発において、第1プログラムから第2プログラムを呼び出すプログラムを作成するコーディング作業を省略することができる。また、開発者は、第1のツールによって表示画面に表示されている起動シンボルを画面内の所望の位置に配置する第1の操作を行うのみで、第2プログラムを起動可能なユーザインタフェース画面を設計することができるので、上記のコーディング作業を行う必要が無くなったことと相俟って、構築対象のユーザインタフェースを規定する作業に要する期間、ひいてはアプリケーション・プログラムの開発期間を短縮することが可能となる。
また、請求項1記載の発明において、第1のツールに対して第1〜第3の操作が行われる前にプログラム付加手段によって生成される第3プログラムは、ユーザインターフェース画面内に表示されている特定の起動シンボルが選択された場合に、変数格納領域内の各格納領域のうち、特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、n種類の第2プログラムのうち前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、特定の第2プログラムによる前記対応する処理の実行が完了すると、特定の第2プログラムから引き渡された出力変数を、変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行うプログラムであり、第3プログラムによる処理における処理対象の格納領域(格納されているデータを引数として用いたり、引き渡された出力変数を格納する格納領域)は第3プログラムの生成時に設定されている。従って、請求項1記載の発明では、第3プログラムの実行時に処理対象の格納領域を検索・抽出する処理を行う必要が無いので、第3プログラムが実行される際の処理時間を短縮することができる。
更に、請求項1記載の発明は、変数格納領域生成手段により、変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域が生成されるので、一例として、第2プログラムによって実行される第1処理の出力変数をユーザインタフェース画面内の特定の情報入力/表示欄に表示させると共に、特定の情報入力/表示欄に表示されたデータ(第1処理の出力変数)に対し、必要に応じて利用者による変更設定を行わせ、必要に応じて変更設定が行われた特定の情報入力/表示欄内のデータを第2プログラムによって第2処理の入力変数として用いるユーザインタフェースを構築する等の場合にも、上記の特定の情報入力/表示欄と関連付ける必要の有る変数格納領域内の格納領域の数は1個で済む。これにより、例えば請求項2に記載したように、第1のツールにおいて、個々の情報入力/表示欄と関連付けることが可能な変数格納領域内の格納領域の数が各々1個に制限されている場合にも、上記のようなユーザインタフェースを構築することが可能となり、第1プログラムによって実現されるユーザインタフェースの設計の自由度を向上させることができる。
請求項6記載の発明に係るアプリケーション開発支援プログラムは、コンピュータを、ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力/表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第1の操作、設計したユーザインタフェース画面内に配置した個々の情報入力/表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第2の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第3の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第1プログラムを生成する第1のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第2プログラムを生成する第2のツールを用いて行われる、前記第1プログラム及び前記第2プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置として機能させるためのアプリケーション開発支援プログラムであって、前記コンピュータを、前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記第2のツールを用いて生成されたn種類の前記第2プログラムによって実行可能なm(m≧n)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段、前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記n種類の前記第2プログラムのうちの何れかを呼び出して前記m種類の処理のうちの互いに異なる処理を行わせるためのm種類のシンボルを各々生成するシンボル生成手段、及び、ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記m種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記n種類の前記第2プログラムのうち前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第2プログラムによる前記対応する処理の実行が完了すると、前記特定の第2プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第3プログラムを生成し、生成した第3プログラムを前記特定の起動シンボルに付加することを、前記m種類の起動シンボルに対して各々行うプログラム付加手段として機能させることを特徴としている。
請求項6記載の発明に係るアプリケーション開発支援プログラムは、コンピュータを、上記の変数格納領域生成手段、シンボル生成手段及びプログラム付加手段として機能させるためのプログラムであるので、コンピュータが請求項6記載の発明に係るアプリケーション開発支援プログラムを実行することで、コンピュータが請求項1に記載のアプリケーション開発支援装置として機能することになり、請求項1記載の発明と同様に、第1のツールによって生成可能な第1プログラム及び第2のツールによって生成可能な第2プログラムを含むアプリケーション・プログラムの開発において、第1プログラムから第2プログラムを呼び出すプログラムを作成するコーディング作業を省略することができる。
以上説明したように本発明は、開発者によって構築対象のユーザインタフェースが規定され、当該ユーザインタフェースを実現するための第1プログラムが第1のツールによって生成される前に、開発者によって作成されたフローチャートに基づき第2のツールによって生成されたn種類の第2プログラムによって実行可能なm(m≧n)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、当該変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成し、ユーザインタフェース画面の構成要素として使用可能なシンボルとして、n種類の第2プログラムのうちの何れかを呼び出してm種類の処理のうちの互いに異なる処理を行わせるためのm種類の起動シンボルを各々生成し、ユーザインターフェース画面内に表示されている特定の起動シンボルが選択された場合に、特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、特定の第2プログラムによる前記対応する処理の実行が完了すると、特定の第2プログラムから引き渡された出力変数を当該出力変数に対応する変数の格納領域に格納する処理を行う第3プログラムを生成し、生成した第3プログラムを特定の起動シンボルに付加することを、m種類の起動シンボルに対して各々行うので、第1のツールによって生成可能な第1プログラム及び第2のツールによって生成可能な第2プログラムを含むアプリケーション・プログラムの開発において、第1プログラムから第2プログラムを呼び出すプログラムを作成するコーディング作業を省略できる、という優れた効果を有する。
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には本実施形態に係る第1のコンピュータ・システム10が示されている。本実施形態に係る第1のコンピュータ・システム10は、所定のウェブサイトにアクセスした利用者に対して所定のサービス(ウェブサービス)を提供するためのアプリケーション・プログラムを開発する際に使用されるコンピュータ・システムであり、サーバ・コンピュータ12がイントラネット14を介して多数台のクライアント端末16と各々接続されて構成されている。個々のクライアント端末16は、上記のアプリケーション・プログラムを開発する開発者によって操作される端末であり、例えばパーソナル・コンピュータ(PC)等から成り、CPU16A、RAM等から成るメモリ16B、HDD(Hard Disk Drive)等から成る記憶部16C、ネットワークインタフェース(I/F)部16Dを備えている。個々のクライアント端末16には、表示手段としてのディスプレイ18、入力手段としてのキーボード20及びマウス22が各々接続されており、ネットワークI/F部16Dを介してイントラネット14に接続されている。
また、上記のアプリケーション・プログラムは、所定のウェブサイトにおけるユーザインタフェース(UI)の部分を実現するための画面制御プログラム(本発明における第1プログラム)と、利用者に所定のウェブサービスを提供するためのウェブサービス提供プログラム(本発明における第2プログラム)に大別される。クライアント端末16の記憶部16Cには、上記の画面制御プログラムを開発するためのUI構築ツールのプログラムと、上記のウェブサービス提供プログラムを開発するためのウェブサービス作成ツールのプログラムが各々インストールされており、更に、クライアント端末16で後述するボタン生成処理を行うためのボタン生成プログラムもインストールされている。このボタン生成プログラムは請求項6に記載のアプリケーション開発支援プログラムに対応しており、クライアント端末16は、CPU16Aが上記のボタン生成プログラムを実行することで、本発明に係るアプリケーション開発支援装置として機能する。
なお、UI構築ツールは本発明に係る第1のツールに、ウェブサービス作成ツールは本発明に係る第2のツールに各々対応している。UI構築ツールとしてはJSF(Java(登録商標) Server Faces)の規格に準拠したツールが好適であるが、他の規格に準拠したツールであってもよい。また、ウェブサービス作成ツールとしてはBPEL(Business Process Execution Language)の規格に準拠したツールが好適であるが、他の規格に準拠したツールであってもよい。
一方、サーバ・コンピュータ12は、CPU12A、RAM等から成るメモリ12B、HDD等から成る記憶部12C、ネットワークI/F部12Dを備えており、ネットワークI/F部12Dを介してイントラネット14に接続されている。前述のウェブサービス作成ツールを用いたウェブサービス提供プログラムの開発では、個々のウェブサービス(例えば、後述する「書籍検索」や「書籍購入」等)を単位としてプログラムが開発されるが、開発されたウェブサービス提供プログラムは、他のウェブサイトにおける同一ウェブサービスの提供にも利用可能である。このため、サーバ・コンピュータ12の記憶部12Cには、開発されたウェブサービス提供プログラムを登録するためのウェブサービス・ライブラリが記憶されており、このウェブサービス・ライブラリに登録されたウェブサービス提供プログラムは、互いに異なるクライアント端末16を操作する複数の開発者が各々使用可能とされている。
次に図7を参照し、第1のコンピュータ・システム10によって開発されたアプリケーション・プログラムの実行環境としての第2のコンピュータ・システム30の構成について説明する。第2のコンピュータ・システム30は特定ウェブサイトを運営するためのウェブサイト運営システム32を備えている。ウェブサイト運営システム32は、アプリケーション・サーバ34、ウェブサービス提供サーバ36及びDB(データベース)サーバ38を備え、ウェブサービス提供サーバ36及びDBサーバ38が通信回線を介してアプリケーション・サーバ34に各々接続されて構成されている。
アプリケーション・サーバ34は、CPU34A、RAM等から成るメモリ34B、HDD等から成る記憶部34C、ネットワークI/F部34Dを備えており、記憶部34Cには、先に説明した第1のコンピュータ・システム10を利用して開発されたアプリケーション・プログラムのうち前述の画面制御プログラムがインストールされている。アプリケーション・サーバ34のネットワークI/F部34Dは、多数台のウェブサーバが通信回線を介して相互に接続されて成るコンピュータ・ネットワーク(インターネット)40に接続されており、インターネット40には、CPU42A、RAM等から成るメモリ42B、HDD等から成る記憶部42C、ネットワークI/F部42Dを備え、記憶部34Cにブラウザ(ウェブ閲覧ソフト)のプログラムがインストールされていると共に、表示手段としてのディスプレイ44、入力手段としてのキーボード46及びマウス48が各々接続されたクライアント端末42が多数台接続されている。
また、ウェブサービス提供サーバ36はCPU36A、RAM等から成るメモリ36B、HDD等から成る記憶部36C、ネットワークI/F部36Dを備えており、HDD36Cには、先に説明した第1のコンピュータ・システム10を利用して開発されたアプリケーション・プログラムのうち前述のウェブサービス提供プログラムがインストールされている。
次に本実施形態の作用として、まず、ウェブサービス作成ツールを用いて行われるウェブサービス提供プログラムの開発について説明する。ウェブサービス提供プログラムを開発するために、開発者がクライアント端末16上でウェブサービス作成ツールのプログラムを起動すると、クライアント端末16のディスプレイ18には、例として図2(A)に示すような作成画面が表示される。ウェブサービス作成ツールは、提供対象のウェブサービスを実現する処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するためのウェブサービス提供プログラムを生成する機能を備えたツールであり、図2(A)に示す作成画面には、開発者がフローチャートを作成するための作業領域と、フローチャートの作成に利用可能で互いに異なる処理を表す複数種の部品(シンボル)が表示されたパレットが設けられている。
上記の作成画面が表示されると、開発者は、マウス22やキーボード20を介し、パレット内に表示されている複数の部品の中から所望の部品を選択して作業領域に配置し、必要に応じて、配置した部品が表す処理の内容を規定する情報を入力すると共に、配置した部品と作業領域に既に配置した部品との接続関係(各部品が表す処理の実行順序)を規定する操作を繰り返すことで、例として図2(B)に示すように、提供対象のウェブサービスを実現する処理を規定するフローチャートを作成する。フローチャートの作成が完了すると、開発者は、作成したフローチャートに対応するプログラムの生成を指示する操作を行う。パレット内に表示されている個々の部品には、個々の部品が表す処理を実現するためのプログラムが付加されており、ウェブサービス作成ツールは、プログラムの生成が指示されると、作成されたフローチャートを構成する個々の部品に付加されているプログラムを、開発者によって入力された処理内容を規定する情報に基づいて修正し、作成されたフローチャートにおける個々の部品の接続関係に応じて並べ替える等の処理を行うことで、作成されたフローチャートが表す処理を実行するためのプログラム(ウェブサービス提供プログラム)を生成する。これにより開発者は、コーディング作業を行うことなく、所望のウェブサービスを提供するウェブサービス提供プログラムを得ることができる。
また、ウェブサービス作成ツールは、生成したウェブサービス提供プログラムを実行する際の入力変数及び出力変数の名称等を記述した変数定義情報も生成する。この変数定義情報は、より詳しくはウェブサービス提供プログラムによって実現されるウェブサービスを単位として生成され、例えば個々のウェブサービスを実現するための処理に共通部分が多い等の理由で、複数種のウェブサービスを実現するフローチャートが作成され、当該フローチャートに基づいて複数種のウェブサービスを実現するウェブサービス提供プログラムが生成された場合、ウェブサービス作成ツールにより、前記複数種のウェブサービスのうちの互いに異なるウェブサービスに対応する複数の変数定義情報が各々生成される。
複数種のウェブサービスを実現するウェブサービス提供プログラムが生成された場合、ウェブサービス提供プログラムの種類数nは提供可能なウェブサービスの種類数mよりも少なくなる(n<m)が、個々のウェブサービス提供プログラムが各々ウェブサービスを実現するプログラムである場合は、ウェブサービス提供プログラムの種類数nは提供可能なウェブサービスの種類数mと同数(n=m)となる。なお、上記の変数定義情報は、例えばBPELの規格ではWSDL(Web Service Description Language)と称される。また本実施形態では「個々の変数に一定の名称を用いる」という開発ルールが存在しており、同一の変数を用いるウェブサービスは、当該ウェブサービスの内容に拘わらず、対応する変数定義情報に規定されている前記変数の名称が同一とされている。
複数種のウェブサービスを実現するウェブサービス提供プログラムが生成された場合、ウェブサービス提供プログラムの種類数nは提供可能なウェブサービスの種類数mよりも少なくなる(n<m)が、個々のウェブサービス提供プログラムが各々ウェブサービスを実現するプログラムである場合は、ウェブサービス提供プログラムの種類数nは提供可能なウェブサービスの種類数mと同数(n=m)となる。なお、上記の変数定義情報は、例えばBPELの規格ではWSDL(Web Service Description Language)と称される。また本実施形態では「個々の変数に一定の名称を用いる」という開発ルールが存在しており、同一の変数を用いるウェブサービスは、当該ウェブサービスの内容に拘わらず、対応する変数定義情報に規定されている前記変数の名称が同一とされている。
上記のようにしてウェブサービス作成ツールによるウェブサービス提供プログラム及び変数定義情報の生成が完了すると、開発者は、生成されたウェブサービス提供プログラム及び変数定義情報をクライアント端末16からサーバ・コンピュータ12へアップロードさせる。サーバ・コンピュータ12へアップロードされたウェブサービス提供プログラム及び変数定義情報はウェブサービス・ライブラリに登録され、他の開発者が使用することが可能となる。
次に、UI構築ツールを用いて画面制御プログラムの開発を行うに先立って開発者が行う準備作業について説明する。UI構築ツールを用いて画面制御プログラムの開発を行う場合、開発者は、これから開発する画面制御プログラムによって実現されるUIを通じて利用者への提供を予定しているウェブサービスを全てリストアップし、リストアップした個々のウェブサービスに対応するウェブサービス提供プログラム及び変数定義情報を、例えばサーバ・コンピュータ12のウェブサービス・ライブラリからダウンロードしたり、必要に応じてウェブサービス作成ツールを起動し、前述のフローチャート作成作業を行った後にウェブサービス作成ツールによってウェブサービス提供プログラム及び変数定義情報を生成させる等によって取得する(メモリ16A又は記憶部16Aに記憶させる)。そして、利用者への提供を予定している全てのウェブサービスについて、対応するウェブサービス提供プログラム及び変数定義情報を取得すると、クライアント端末16上でボタン生成プログラムを起動させる。
以下、起動されたボタン生成プログラムがCPU16Aによって実行されることでクライアント端末16によって行われるボタン生成処理について、図3を参照して説明する。ボタン生成処理では、まずステップ50において、メモリ16A又は記憶部16Aに記憶されている、利用者への提供を予定している個々のウェブサービスに対応する変数定義情報(例えばBPELの規格ではWSDL)を各々参照し、個々の変数定義情報に記述されている入力変数及び出力変数を全て抽出する。例えば利用者への提供を予定しているウェブサービスの種類数がmである場合、m個の変数定義情報から入力変数及び出力変数が各々抽出される。次のステップ52では、ステップ50で抽出した入力変数及び出力変数のうち重複している変数(名称が同一、すなわち同一の変数)を1つに纏め、各変数の格納領域が設けられた変数格納領域(例えばJSFの規格ではマネージドビーン)を生成する。
例として図5(A)に示すように、利用者への提供を予定しているウェブサービスが「書籍検索サービス」及び「書籍購入サービス」であり、「書籍検索サービス」の入力変数が「書籍名」、出力変数が「書籍ID」であり、「書籍購入サービス」の入力変数が「書籍ID」及び「購入者」、出力変数が「結果」である場合、重複している「書籍ID」が1つに纏められることで、「書籍名」「書籍ID」「購入者」及び「結果」の各変数の格納領域が1個ずつ設けられた変数格納領域が生成されることになる。なお、ステップ50,52は本発明に係る変数格納領域生成手段に対応している。
ステップ54では利用者への提供を予定しているウェブサービスの中から単一のウェブサービスを処理対象として選択し、次のステップ56では、処理対象のウェブサービスをウェブページ上で呼び出すためのボタン(の情報)を生成する。詳細は後述するが、UI構築ツールでは、UI画面の構成要素として使用可能な情報入力/表示欄や各種のボタン等のシンボルが作成画面(図4も参照)のパレット内に表示され、開発者により、所望のシンボルを選択して所望の位置に配置する操作が繰り返されることでUI画面の設計が行われる。ステップ56では、処理対象のウェブサービスをウェブページ上で呼び出すためのボタンとして、UI構築ツールと同一の規格(例えばJSF)に準拠したボタン(の情報)を生成する。これにより、生成したボタンはUI構築ツールの作成画面のパレット内に表示することが可能となる。なお、ステップ56は本発明に係るシンボル生成手段に対応している。
次のステップ58以降の処理は本発明に係るプログラム付加手段に対応しており、まずステップ58では、処理対象のウェブサービスに対応する変数定義情報に記述されてる入力変数及び出力変数の中から単一の変数を選択し、次のステップ60では、ステップ52で生成した変数格納領域をステップ58で選択した変数の名称をキーとして検索することで、ステップ58で選択した変数に対応する格納領域を変数格納領域から抽出する。ステップ62では、ステップ58で選択した変数が入力変数か否か判定する。判定が肯定された場合はステップ64へ移行し、変数格納領域からステップ60で抽出した格納領域に格納されているデータを、ステップ58で選択した変数(入力変数)として処理対象のウェブサービスへ引き渡す代入文(プログラム)を作成する。また、ステップ58で選択した変数が出力変数であれば、ステップ62の判定が否定されてステップ66へ移行し、処理対象のウェブサービスによる処理終了時に処理対象のウェブサービスから引き渡される出力変数のうち、ステップ58で選択した出力変数を、変数格納領域からステップ60で抽出した格納領域内に格納させる代入文(プログラム)を作成する。
次のステップ68では、処理対象のウェブサービスに対応する変数定義情報に記述されてる全ての変数に対して上記の処理を行ったか否か判定する。判定が否定された場合はステップ58に戻り、ステップ68の判定が肯定される迄ステップ58〜ステップ68を繰り返す。これにより、処理対象のウェブサービス(を提供するプログラム)の起動時には、処理対象のウェブサービスにおける入力変数に対応するデータを変数格納領域から処理対象のウェブサービスへ入力変数として引き渡す処理を行い(例として図5(B)に破線で示す右向きの矢印を参照)、処理対象のウェブサービス(を提供するプログラム)の終了時には、処理対象のウェブサービスから引き渡された出力変数を変数格納領域に格納する処理を行う(例として図5(B)に破線で示す左向きの矢印を参照)プログラムが自動的に生成されることになる。
ステップ68の判定が肯定されるとステップ70へ移行し、処理対象のウェブサービスを呼び出す呼出文(プログラム)を作成する。そしてステップ72では、上述した処理で作成した呼出プログラム(ステップ64、66で作成した代入文とステップ70で作成した呼出文を含むプログラム:本発明に係る第3プログラムに相当)を、先のステップ56で生成した処理対象のウェブサービスに対応するボタン(の情報)に付加し、メモリ16B又は記憶部16Cの所定の記憶領域に記憶させる。次のステップ74では、利用者への提供を予定している全てのウェブサービスに対して上記の処理を行ったか否か判定する。判定が否定された場合はステップ54に戻り、ステップ74の判定が肯定される迄ステップ54〜ステップ74を繰り返す。これにより、利用者への提供を予定している全てのウェブサービスについて、上記の呼出プログラムが付加されたボタン(の情報)が各々生成される。そしてステップ74の判定が肯定されるとボタン生成処理を終了する。
このボタン生成処理の終了により準備作業は完了し、続いて開発者は、ウェブサービスを提供する所定のウェブサイトにおけるUIの構築(画面制御プログラムの開発)を行うためにクライアント端末16上でUI構築ツールのプログラムを起動する。これにより、クライアント端末16のディスプレイ18には、例として図4に示すような作成画面が表示される。
UI構築ツールは、UIを構築するための操作を開発者に行わせ、開発者による操作が完了すると、構築されたUIを実現する画面制御プログラムを生成する機能を備えたツールであり、図4に示す作成画面には、開発者がUI画面(ウェブページ)を作成するためのUI画面作成領域と、UI画面の構成要素として使用可能な情報入力/表示欄や各種のボタン等のシンボルが表示されたパレットと、UI画面作成領域で作成された複数のUI画面の間の遷移を定義するための画面遷移定義領域が各々設けられている。本実施形態では、UI構築ツールの起動に先立って前述のボタン生成処理が実行されるので、UI構築ツールの起動時には、ボタン生成処理によって生成されて所定の記憶領域に記憶されているボタンの情報も読み込まれ、例として図4にハッチングで示すように、ボタン生成処理によって生成されたボタン(利用者への提供を予定している個々のウェブサービスを呼び出すためのボタン)もUI画面の作成に使用可能なシンボルの1つとしてパレット内に表示される。
UI構築ツールの作成画面が表示されると、開発者は構築対象のUIを規定するための操作を行う。すなわち開発者は、マウス22やキーボード20を介し、パレット内に表示されている複数のシンボルの中から所望のシンボルを選択してUI画面作成領域内の所望の位置に配置し、必要に応じて、UI画面内に表示すべきテキスト情報を入力する操作(第1の操作)を繰り返すことで、所定のウェブサイトを構成する複数のUI画面(ウェブページ)を順に作成(設計)する。なお、個々のUI画面の作成において、作成しているUI画面が、利用者へ特定のウェブサービスを提供する契機となる画面である場合、開発者は、パレット内に表示されているシンボルの中から特定のウェブサービスを呼び出すためのボタンも選択し、当該ボタンもUI画面内に配置する操作を行う。また、作成したUI画面が、利用者による情報の入力又は情報の表示を行うための情報入力/表示欄が設けられている画面である場合、開発者は、画面内の個々の情報入力/表示欄を、先のボタン生成処理によって生成された変数格納領域のうち、情報入力/表示欄を介して入力される情報又は情報入力/表示欄に表示する情報に対応する格納領域と関連付ける(UIバインドともいう)操作(第2の操作)を行う。更に、ウェブサイトを構成する全てのUI画面(ウェブページ)を作成すると、開発者は、作成した各UI画面の遷移を画面遷移定義領域内で規定する操作(第3の操作)を行う。
開発者による操作について具体例を挙げて説明すると、図5(B)に示すように、開発対象のウェブサイトを通じて利用者への提供を予定しているウェブサービスのプログラムとして、書籍検索サービス及び書籍購入サービスのプログラムが既に開発されており、上記ウェブサイトのUIとして、利用者が検索対象の書籍名を入力して検索を指示するための書籍検索画面、上記検索によって抽出された書籍IDを利用者が確認し、必要に応じて書籍IDを変更した後、購入者情報を入力して購入を指示するための書籍購入画面、及び、利用者が購入処理の結果を確認するための結果表示画面へ順に遷移するUIを構築する場合、開発者は、書籍検索画面については、書籍名を入力するための情報入力/表示欄及び書籍検索サービスを呼び出すためのボタンを画面内に各々配置する操作を行うことで書籍検索画面を作成し、当該書籍検索画面内の情報入力/表示欄を、変数格納領域のうち書籍名の格納領域と関連付ける操作を行う。
また開発者は、書籍購入画面については、書籍IDの表示及び入力を行うための情報入力/表示欄、購入者の情報を入力するための情報入力/表示欄及び書籍購入サービスを呼び出すためのボタンを画面内に各々配置する操作を行うことで書籍購入画面を作成し、当該書籍購入画面内のうち書籍IDの表示及び入力を行うための情報入力/表示欄を、変数格納領域のうち書籍IDの格納領域と関連付けると共に、購入者情報を入力するための情報入力/表示欄を、変数格納領域のうち購入者情報の格納領域と関連付ける操作を行う。また開発者は、結果表示画面については、結果情報を表示するための情報入力/表示欄及び画面の消去を指示するためのボタン(図5(B)に示す「OK」と表記したボタン)を画面内に各々配置する操作を行うことで結果表示画面を作成し、当該結果表示画面内の情報入力/表示欄を、変数格納領域のうち結果情報の格納領域と関連付ける操作を行う。
更に開発者は、書籍検索画面が表示されている状態で当該画面内のボタンが選択されると書籍検索画面から書籍購入画面へ遷移し、書籍購入画面が表示されている状態で当該画面内のボタンが選択されると書籍購入画面から結果表示画面へ遷移するように、各画面の遷移を規定する操作を行う。以上の操作により図5(B)に示すUIを規定することができる。
なお、利用者への提供を予定している個々のウェブサービスを単位として変数格納領域を設ける従来方式で上記のUIを構築しようとした場合、例として図6に示すように、書籍購入画面内に設けられ書籍IDの表示及び入力を行うための情報入力/表示欄を、書籍検索サービスに対応する変数格納領域内の書籍IDの格納領域、及び、書籍購入サービスに対応する変数格納領域内の書籍IDの格納領域と各々関連付ける必要がある。しかしながら、UI構築ツールが準拠しているJSF等の規格では、個々の情報入力/表示欄と関連付けることが可能な変数格納領域内の格納領域の数が各々1個に制限されており、上記のように書籍IDの表示及び入力のための書籍購入画面内の情報入力/表示欄を複数の格納領域と関連付けることができないので、図5(B)に示すようなUIは構築できない。これに対して本実施形態では、先に説明したボタン生成処理において、変数定義情報に重複定義されている変数の格納領域を共通化した変数格納領域を生成しているので、図5(B)に示すように、書籍IDの表示及び入力のための書籍購入画面内の情報入力/表示欄を単一の格納領域と関連付けるのみで図5(B)に示すUIを構築することができ、実現可能なUIの設計の自由度を向上させることができる。
UIを規定する操作が完了すると、開発者はUI構築ツールに対し、前記UIを実現するプログラムの生成を指示する。これによりUI構築ツールは、開発者によって構築されたUIを実現する(クライアント端末42(図7参照)からの要求に応じて、クライアント端末42のディスプレイ44に各UI画面を順に表示させる)画面制御プログラムを生成する。この画面制御プログラムは、個々のUI画面を規定するデータと、利用者により個々のUI画面を介して各種の操作が行われた場合の処理を規定するプログラムを含んで構成されるが、各種のウェブサービスを呼び出すためのボタンが設けられたUI画面については、先に説明したボタン生成処理によって生成されて前記ボタンに付加されている呼出プログラムが読み出され、読み出された呼出プログラムが、前記ボタンが利用者によって選択された場合の処理を規定するプログラムとして用いられる(画面制御プログラムに組み込まれる)。
以上の操作・処理により、画面制御プログラム及びウェブサービス提供プログラムを含むアプリケーション・プログラムの開発が完了する。このように、本実施形態では、ウェブサービス提供プログラムについては、ウェブサービス作成ツールを利用することでコーディング作業を行うことなく開発することができ、画面制御プログラムについても、事前にボタン生成処理を行い、利用者への提供を予定している個々のウェブサービスの変数定義情報に重複定義されている変数の格納領域を共通化した変数格納領域を生成しておくと共に、利用者への提供を予定している個々のウェブサービスを呼び出す呼出プログラムを付加したボタンを生成しておくことで、開発者は、UI構築ツールを利用し、UI構築ツールの作成画面のパレット内に表示される前記ボタンを画面内に配置する操作を含む各種の操作を行うことで、コーディング作業を行うことなく所望のUIの構築(画面制御プログラムの開発)を行うことができる。従って、画面制御プログラム及びウェブサービス提供プログラムを含むアプリケーション・プログラムを非常に短い期間で開発することが可能となる。
次に、アプリケーション・プログラムの実行時(ウェブサイトの稼働時)の動作について説明する。アプリケーション・プログラムの実行時には、図7に示すように、開発したアプリケーション・プログラムのうち、画面制御プログラムがアプリケーション・サーバ34の記憶部34Cにインストールされ、ウェブサービス提供プログラムがウェブサービス提供サーバ36の記憶部36Cにインストールされる。
なお、図示は省略するが、アプリケーション・サーバ34では画面制御プログラムを実行するためのプラットフォームとして機能する所定のプログラム(以下、プラットフォーム・プログラムと称する)が実行されており、画面制御プログラムは上記のプラットフォーム上で実行される(例えばUI構築ツールがJSFの規格に準拠している場合、UI構築ツールによって生成された画面制御プログラムはJSFエンジンと称されるプラットフォーム上で実行される)。また、ウェブサービス提供サーバ36ではウェブサービス提供プログラムを実行するためのプラットフォームとして機能する所定のプログラムが実行されており、ウェブサービス提供プログラムは上記のプラットフォーム上で実行される(例えばウェブサービス作成ツールがBPELの規格に準拠している場合、ウェブサービス作成ツールによって生成されたウェブサービス提供プログラムはBPELエンジンと称されるプラットフォーム上で実行される)。
アプリケーション・サーバ34で実行される画面制御プログラムは、クライアント端末42を介して利用者からUI画面の配信が要求される毎に、配信が要求されたUI画面のデータを要求元のクライアント端末42へ送信することで、配信が要求されたUI画面を要求元のクライアント端末42のディスプレイ44に表示させる。また、利用者がキーボード46等を操作することでディスプレイ44に表示されたUI画面内の情報入力/表示欄内に入力された情報は、クライアント端末42のメモリ42B等に一旦記憶された後に、所定のタイミング(例えば次のUI画面への遷移のトリガとなるボタンが選択された等のタイミング)でアプリケーション・サーバ34へ転送される。
アプリケーション・サーバ34上で動作しているプラットフォーム・プログラムは、利用者によってUI画面内の情報入力/表示欄内に入力された情報をアプリケーション・サーバ34がクライアント端末42から受信すると、受信した情報を、アプリケーション・サーバ34のメモリ34B上に設けられた変数格納領域のうち、情報が入力された情報入力/表示欄と予め関連付けされた格納領域に格納させる(図5(B)に「バインドによる自動代入」と表記した実線の矢印のうち右向きの矢印に相当する処理:請求項3に記載の同期処理に相当)。
また、UI画面内のうち任意のウェブサービスを呼び出すためのボタンが利用者によって選択された場合には、前記ボタンに付加されている呼出プログラムにより、対応するウェブサービスのプログラムがウェブサービス提供サーバ36上で起動されると共に、変数格納領域のうち起動されたプログラムにおける入力変数に対応する格納領域(予め設定された格納領域)内のデータが変数格納領域から読み出され、読み出されたデータが起動されたプログラムへ入力変数として引き渡される(図5(B)に「呼出プログラムによる代入」と表記した破線の矢印のうち右向きの矢印に相当する処理)。これにより、利用者によって選択されたボタンに対応するウェブサービスを実現するための処理がウェブサービス提供サーバ36上で実行される。なお、ウェブサービスを実現するための処理がDBへのアクセスを含んでいる場合、アプリケーション・サーバ34経由でウェブサービス提供サーバ36からDBサーバ38へDBへのアクセスが指示されることでDBへのアクセスが実現される。
また、ウェブサービス提供サーバ36上で起動されたプログラムによる処理が終了すると、ウェブサービス提供サーバ36からアプリケーション・サーバ34へ出力変数に相当するデータが引き渡され、呼出プログラムにより、引き渡されたデータを変数格納領域のうちの出力変数に対応する格納領域(予め設定された格納領域)内に格納する処理(図5(B)に「呼出プログラムによる代入」と表記した破線の矢印のうち左向きの矢印に相当する処理)がアプリケーション・サーバ34上で行われる。また、上記処理によって新たにデータが格納された格納領域が何れかのUI画面内の情報入力/表示欄と関連付けられている場合には、アプリケーション・サーバ34上で動作しているプラットフォーム・プログラムにより、上記格納領域に新たに格納されたデータをUI画面内の関連付けられた情報入力/表示欄に表示させる処理が行われる(図5(B)に「バインドによる自動代入」と表記した実線の矢印のうち左向きの矢印に相当する処理:請求項3に記載の同期処理に相当)。これにより、ウェブサイトを通じて各種のウェブサービスが利用者に提供されることになる。
一例として、図5(B)に示す各UI画面から成るウェブサイトが利用者によってアクセスされた場合、まず利用者が操作しているクライアント端末42のディスプレイ44に書籍検索画面が表示される。また、利用者が書籍検索画面内の書籍名の入力/表示欄内に検索対象の書籍名を入力した後に、「検索」と表記されたボタン(書籍検索サービスを呼び出すためのボタン)を選択すると、書籍名の入力/表示欄内に入力された書籍名は、プラットフォーム・プログラムによって変数格納領域の書籍名の格納領域に一旦格納された後に、呼出プログラムによって起動された書籍検索サービスのプログラムに入力変数として引き渡される。また、クライアント端末42のディスプレイ44に表示されているUI画面は、「検索」と表記されたボタンが選択されたことに伴って書籍購入画面に切り替わるが、書籍検索サービスの出力変数としての書籍IDは呼出プログラムによって変数格納領域の書籍IDの格納領域に一旦格納された後に、プラットフォーム・プログラムによって書籍購入画面内の書籍IDの入力/表示欄に表示される。
また利用者は、ディスプレイ44に書籍購入画面が表示されると、当該画面内の書籍IDの入力/表示欄に表示された書籍IDを確認し、必要に応じて書籍IDを上書き入力すると共に、購入者情報の入力/表示欄内に購入者情報を入力した後に、「購入」と表記されたボタン(書籍購入サービスを呼び出すためのボタン)を選択する。これにより、購入者情報の入力/表示欄内に入力された購入者情報は、プラットフォーム・プログラムによって変数格納領域の購入者情報の格納領域に格納され(利用者によって書籍IDの上書き入力が行われた場合は、上書き入力後の書籍IDも対応する格納領域に格納される)、その後、変数格納領域内に格納されている書籍ID及び購入者情報は、呼出プログラムによって起動された書籍購入サービスのプログラムに入力変数として引き渡される。更に、クライアント端末42のディスプレイ44に表示されているUI画面は、「購入」と表記されたボタンが選択されたことに伴って結果表示画面に切り替わるが、書籍購入サービスの出力変数としての結果情報は呼出プログラムによって変数格納領域の結果情報の格納領域に一旦格納された後に、プラットフォーム・プログラムによって結果表示画面内の結果情報の情報入力/表示欄に表示される。
なお、上記では本発明に係る第1プログラムに相当する画面制御プログラムと、本発明に係る第2プログラムに相当するウェブサービス提供プログラムが、異なるコンピュータ(アプリケーション・サーバ34及びウェブサービス提供サーバ36)で実行される態様を説明したが、これに限定されるものではなく、第1プログラム及び第2プログラムを同一のコンピュータで実行させるようにしてもよい。
また、上記ではインターネット40を通じてウェブサイト(アプリケーション・サーバ34)へアクセスした利用者に対して所定のウェブサービスを提供する態様を説明したが、これに限定されるものではなく、インターネット40に代えてイントラネットを用い、当該イントラネットに接続可能な利用者(例えば特定企業の従業員)に所定のウェブサービスを提供する等の態様にも適用可能である。
また、上記では本発明に係るアプリケーション開発支援プログラムに対応するボタン生成プログラムがクライアント端末16の記憶部16Cに予め記憶(インストール)されている態様を説明したが、本発明に係るアプリケーション開発支援プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。
10 コンピュータ・システム
12 サーバ・コンピュータ
16 クライアント端末
30 コンピュータ・システム
34 アプリケーション・サーバ
36 ウェブサービス提供サーバ
42 クライアント端末
12 サーバ・コンピュータ
16 クライアント端末
30 コンピュータ・システム
34 アプリケーション・サーバ
36 ウェブサービス提供サーバ
42 クライアント端末
Claims (6)
- ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力/表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第1の操作、設計したユーザインタフェース画面内に配置した個々の情報入力/表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第2の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第3の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第1プログラムを生成する第1のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第2プログラムを生成する第2のツールを用いて行われる、前記第1プログラム及び前記第2プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置であって、
前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記第2のツールを用いて生成されたn種類の前記第2プログラムによって実行可能なm(m≧n)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段と、
前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記n種類の前記第2プログラムのうちの何れかを呼び出して前記m種類の処理のうちの互いに異なる処理を行わせるためのm種類の起動シンボルを各々生成するシンボル生成手段と、
ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記m種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記n種類の前記第2プログラムのうち前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第2プログラムによる前記対応する処理の実行が完了すると、前記特定の第2プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第3プログラムを生成し、生成した第3プログラムを前記特定の起動シンボルに付加することを、前記m種類の起動シンボルに対して各々行うプログラム付加手段と、
を備えたことを特徴とするアプリケーション開発支援装置。 - 前記第1のツールでは、個々の前記情報入力/表示欄と関連付けることが可能な前記変数格納領域内の格納領域の数が各々1個に制限されていることを特徴とする請求項1記載のアプリケーション開発支援装置。
- 前記第1プログラムは、前記第1プログラムを実行するためのプラットフォームとして機能する所定のプログラムを実行しているコンピュータ上で実行され、当該コンピュータによる前記第1プログラムの実行時には、前記所定のプログラムにより、表示画面内に表示されているユーザインタフェース画面内に配置され情報の入力が可能な特定の情報入力/表示欄内に新たに情報が入力された場合には、入力された情報を、前記変数格納領域内の各格納領域のうち前記特定の情報入力/表示欄と関連付けられた特定の格納領域にも格納し、前記変数格納領域内の特定の格納領域に新たに情報が格納された場合には、格納された情報を、表示画面内に表示されているユーザインタフェース画面内に配置され前記特定の格納領域と関連付けられかつ情報の表示が可能な特定の情報入力/表示欄内にも表示させる同期処理が行われることを特徴とする請求項1記載のアプリケーション開発支援装置。
- 前記第1のツールは第1の規格に準拠したツールであり、前記第2のツールは第2の規格に準拠したツールであることを特徴とする請求項1記載のアプリケーション開発支援装置。
- 前記第1の規格はJSFであり、前記第2の規格はBPELであることを特徴とする請求項4記載のアプリケーション開発支援装置。
- コンピュータを、
ユーザインタフェース画面の構成要素として使用可能な、情報の入力及び表示の少なくとも一方が可能な情報入力/表示欄を含む複数種のシンボルを表示画面に表示させると共に、開発者により、前記複数種のシンボルのうちの所望のシンボルを画面内の所望の位置に配置することでユーザインタフェース画面を設計する第1の操作、設計したユーザインタフェース画面内に配置した個々の情報入力/表示欄を、変数格納領域内に格納領域が設けられている複数の変数のうち対応する変数の格納領域と各々関連付ける第2の操作、及び、設計した複数のユーザインタフェース画面の遷移を規定する第3の操作が行われることで構築対象のユーザインタフェースが規定されると、前記ユーザインタフェースを実現するための第1プログラムを生成する第1のツール、及び、所望の処理を規定するフローチャートが開発者によって作成されると、作成されたフローチャートが表す処理を実行するための第2プログラムを生成する第2のツールを用いて行われる、前記第1プログラム及び前記第2プログラムを含むアプリケーション・プログラムの開発を支援するアプリケーション開発支援装置として機能させるためのアプリケーション開発支援プログラムであって、
前記コンピュータを、
前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記第2のツールを用いて生成されたn種類の前記第2プログラムによって実行可能なm(m≧n)種類の処理における入力変数及び出力変数を各々定義する変数定義情報に基づき、前記変数格納領域として、前記変数定義情報に定義されている各変数の格納領域が各々設けられ、かつ前記変数定義情報に重複定義されている変数の格納領域が共通化された変数格納領域を生成する変数格納領域生成手段、
前記第1のツールに対して前記第1〜第3の操作が行われる前に、前記ユーザインタフェース画面の構成要素として使用可能なシンボルとして、前記n種類の前記第2プログラムのうちの何れかを呼び出して前記m種類の処理のうちの互いに異なる処理を行わせるためのm種類の起動シンボルを各々生成するシンボル生成手段、
及び、ユーザインターフェース画面内に表示されている、前記シンボル生成手段によって生成された前記m種類の起動シンボルのうちの特定の起動シンボルが選択された場合に、前記変数格納領域内の各格納領域のうち、前記特定の起動シンボルに対応する処理における入力変数に対応する変数の格納領域に格納されているデータを引数として、前記n種類の前記第2プログラムのうち前記対応する処理を実行可能な特定の第2プログラムを起動させて前記対応する処理を実行させると共に、前記特定の第2プログラムによる前記対応する処理の実行が完了すると、前記特定の第2プログラムから引き渡された出力変数を、前記変数格納領域内の各格納領域のうち前記引き渡された出力変数に対応する変数の格納領域に格納する処理を行う第3プログラムを生成し、生成した第3プログラムを前記特定の起動シンボルに付加することを、前記m種類の起動シンボルに対して各々行うプログラム付加手段
として機能させることを特徴とするアプリケーション開発支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007256600A JP4714199B2 (ja) | 2007-09-28 | 2007-09-28 | アプリケーション開発支援装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007256600A JP4714199B2 (ja) | 2007-09-28 | 2007-09-28 | アプリケーション開発支援装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009087093A true JP2009087093A (ja) | 2009-04-23 |
JP4714199B2 JP4714199B2 (ja) | 2011-06-29 |
Family
ID=40660423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007256600A Expired - Fee Related JP4714199B2 (ja) | 2007-09-28 | 2007-09-28 | アプリケーション開発支援装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4714199B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011033644A1 (ja) | 2009-09-17 | 2011-03-24 | 株式会社三菱東京Ufj銀行 | アプリケーション開発支援装置、プログラム及び記録媒体 |
JP2012164177A (ja) * | 2011-02-08 | 2012-08-30 | Root42 Inc | プログラム自動生成システム |
JP2015095134A (ja) * | 2013-11-13 | 2015-05-18 | 株式会社エクサ | 画面連携プログラム、画面連携システム |
JP2016518634A (ja) * | 2013-02-13 | 2016-06-23 | サンドヒルズ パブリッシング カンパニー | ビジネスプロセスワークフローシステム |
JP2017515179A (ja) * | 2014-02-27 | 2017-06-08 | アビニシオ テクノロジー エルエルシー | 複合コントロール |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005149332A (ja) * | 2003-11-19 | 2005-06-09 | Hitachi Ltd | ワークフロー管理システム及びそのプログラム |
JP2006139583A (ja) * | 2004-11-12 | 2006-06-01 | Hitachi Software Eng Co Ltd | 画面作成方法及び装置並びにプログラム |
JP2006163855A (ja) * | 2004-12-08 | 2006-06-22 | Hitachi Software Eng Co Ltd | Webアプリケーション開発支援装置及び開発支援方法 |
JP2006268121A (ja) * | 2005-03-22 | 2006-10-05 | Fuji Electric Systems Co Ltd | Webアプリケーションシステム、そのプログラム |
-
2007
- 2007-09-28 JP JP2007256600A patent/JP4714199B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005149332A (ja) * | 2003-11-19 | 2005-06-09 | Hitachi Ltd | ワークフロー管理システム及びそのプログラム |
JP2006139583A (ja) * | 2004-11-12 | 2006-06-01 | Hitachi Software Eng Co Ltd | 画面作成方法及び装置並びにプログラム |
JP2006163855A (ja) * | 2004-12-08 | 2006-06-22 | Hitachi Software Eng Co Ltd | Webアプリケーション開発支援装置及び開発支援方法 |
JP2006268121A (ja) * | 2005-03-22 | 2006-10-05 | Fuji Electric Systems Co Ltd | Webアプリケーションシステム、そのプログラム |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011033644A1 (ja) | 2009-09-17 | 2011-03-24 | 株式会社三菱東京Ufj銀行 | アプリケーション開発支援装置、プログラム及び記録媒体 |
JP5128673B2 (ja) * | 2009-09-17 | 2013-01-23 | 株式会社三菱東京Ufj銀行 | アプリケーション開発支援装置、プログラム及び記録媒体 |
JPWO2011033644A1 (ja) * | 2009-09-17 | 2013-02-07 | 株式会社三菱東京Ufj銀行 | アプリケーション開発支援装置、プログラム及び記録媒体 |
JP2012164177A (ja) * | 2011-02-08 | 2012-08-30 | Root42 Inc | プログラム自動生成システム |
JP2016518634A (ja) * | 2013-02-13 | 2016-06-23 | サンドヒルズ パブリッシング カンパニー | ビジネスプロセスワークフローシステム |
JP2015095134A (ja) * | 2013-11-13 | 2015-05-18 | 株式会社エクサ | 画面連携プログラム、画面連携システム |
JP2017515179A (ja) * | 2014-02-27 | 2017-06-08 | アビニシオ テクノロジー エルエルシー | 複合コントロール |
JP2020042828A (ja) * | 2014-02-27 | 2020-03-19 | アビニシオ テクノロジー エルエルシー | 複合コントロール |
Also Published As
Publication number | Publication date |
---|---|
JP4714199B2 (ja) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5087133B2 (ja) | アプリケーション開発支援装置、プログラム及び記録媒体 | |
JP4185159B1 (ja) | アプリケーション開発支援装置及びプログラム | |
JP5128673B2 (ja) | アプリケーション開発支援装置、プログラム及び記録媒体 | |
CN102591928A (zh) | 表现包括从跳转列表任务和项目访问的内容的内容 | |
JP5069794B2 (ja) | アプリケーション開発支援装置、プログラム及び記録媒体 | |
JP4714199B2 (ja) | アプリケーション開発支援装置及びプログラム | |
JP2007048009A (ja) | 作業支援システム、そのデータベースサーバ、作成管理装置、プログラム | |
JP5716108B2 (ja) | オンラインシステム、プログラム生成装置および画面制御プログラム生成装置 | |
JP2013164861A (ja) | オンラインシステム、プログラム生成装置および画面制御プログラム生成装置 | |
JP2005070831A (ja) | プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体 | |
JP4927041B2 (ja) | アプリケーション開発支援装置及びプログラム | |
JP5318977B2 (ja) | オンラインシステム、プログラム生成装置および画面制御プログラム生成装置 | |
JP6646222B2 (ja) | 情報処理装置、情報処理システム、その制御方法及びプログラム | |
JP2010055559A (ja) | 文書管理装置、文書管理方法、及びプログラム | |
JP4220507B2 (ja) | ウェブサイト更新支援装置、方法及びプログラム | |
JP6572679B2 (ja) | 情報処理装置およびプログラム | |
JP2021015336A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP6264399B2 (ja) | 情報処理装置と、その処理方法及びプログラム | |
JP6256535B2 (ja) | 情報処理装置と、その処理方法及びプログラム | |
JP2013228958A (ja) | ワークフローシステム、ワークフローシステムの制御方法、プログラムおよび記録媒体 | |
JP6697168B2 (ja) | 情報処理装置と、その処理方法及びプログラム | |
JP2020170376A (ja) | 情報処理装置およびプログラム | |
JP2019008391A (ja) | 情報処理装置、情報処理システム、その制御方法及びプログラム | |
JP2008015600A (ja) | オブジェクト管理システム及びオブジェクト管理方法、並びにコンピュータ・プログラム | |
JP2017097480A (ja) | 情報処理システム、情報処理装置、その制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101228 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110325 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |