(57)【特許請求の範囲】
【請求項１】
サーバと連携して一連のプログラムを実行するアプリケーション実行装置であり、
アプリケーション実行装置で動作するプログラムであるクライアント側プログラムと、サーバで動作するプログラムであるサーバ側プログラムとを含む一連のプログラムの実行順序が定義されたロジックフローをサーバから取得するロジックフロー取得部と、
前記ロジックフロー取得部が取得したロジックフローに定義された実行順序の順に各プログラムがクライアント側プログラムであるか、サーバ側プログラムであるかを処理装置により判定する判定部と、
前記判定部がクライアント側プログラムであると判定した場合、そのクライアント側プログラムを取得して処理装置により実行する実行部と、
前記判定部がサーバ側プログラムであると判定した場合、前記判定部が次にクライアント側プログラムであると判定するまでの一連のサーバ側プログラムを、前記ロジックフローに定義された実行順序の順に実行するように定義したサーバ側ロジックフローを処理装置により生成するサーバ側ロジックフロー生成部と、
前記サーバ側ロジックフロー生成部が生成したサーバ側ロジックフローを前記サーバへ送信して、サーバ側プログラムを前記サーバに実行させるサーバ呼出部と
を備えることを特徴とするアプリケーション実行装置。
【請求項２】
前記アプリケーション実行装置は、複数のサーバと連携して一連のプログラムを実行し、
前記ロジックフロー取得部は、前記クライアント側プログラムと、前記複数のサーバのいずれかのサーバで動作するサーバ側プログラムとを含む一連のプログラムの実行順序が定義されたロジックフローを取得し、
前記判定部は、プログラムがサーバ側プログラムであると判定した場合、さらにそのサーバ側プログラムがどのサーバで動作するプログラムであるかを判定し、
前記サーバ側ロジックフロー生成部は、前記判定部がサーバ側プログラムであると判定した場合、前記判定部が次にクライアント側プログラムであると判定するか、又は、前記判定部が次に他のサーバが実行するサーバ側プログラムであると判定するまでの一連のサーバ側プログラムを、前記ロジックフローに定義された実行順序の順に実行するように定義したサーバ側ロジックフローを生成し、
前記サーバ呼出部は、前記サーバ側ロジックフロー生成部が生成したサーバ側ロジックフローを、前記判定部がそのプログラムが動作すると判定したサーバへ送信して、そのサーバで動作するサーバ側プログラムをそのサーバに実行させる
ことを特徴とする請求項１に記載のアプリケーション実行装置。
【請求項３】
サーバと連携して一連のプログラムを実行するアプリケーション実行方法であり、
クライアントが、クライアントで動作するプログラムであるクライアント側プログラムと、サーバで動作するプログラムであるサーバ側プログラムとを含む一連のプログラムの実行順序が定義されたロジックフローをサーバから取得するロジックフロー取得ステップと、
クライアントが、前記ロジックフロー取得ステップで取得したロジックフローに定義された実行順序の順に各プログラムがクライアント側プログラムであるか、サーバ側プログラムであるかを判定する判定ステップと、
クライアントが、前記判定ステップでクライアント側プログラムであると判定した場合、そのクライアント側プログラムを取得して実行する実行ステップと、
クライアントが、前記判定ステップでサーバ側プログラムであると判定した場合、前記判定ステップで次にクライアント側プログラムであると判定するまでの一連のサーバ側プログラムを、前記ロジックフローに定義された実行順序の順に実行するように定義したサーバ側ロジックフローを生成するサーバ側ロジックフロー生成ステップと、
クライアントが、前記サーバ側ロジックフロー生成ステップで生成したサーバ側ロジックフローを前記サーバへ送信して、サーバ側プログラムを前記サーバに実行させるサーバ呼出ステップと
を備えることを特徴とするアプリケーション実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のプログラムを有するアプリケーション（アプリケーションプログラム）の構築技術、及びアプリケーションの実行技術に関する。
【背景技術】
【０００２】
複数のプログラムで構成されるアプリケーションは、非常に複雑であり、アプリケーションの構築には多くの時間と費用が必要となる。
ここで、新規に構築されるアプリケーションの中には、既存のアプリケーションが持つ機能と同じ機能や似た機能を有するものが多い。したがって、新規のアプリケーションを構築する際、既存のアプリケーションの情報を有効に利用できれば、構築にかかる時間と費用を抑えることができる。
【０００３】
特許文献１には、各業務処理を実行する個々のプログラム部品である業務処理部品及び制御対象部品のインタフェースを規定し規格化することについての記載がある。特許文献１では、これにより、業務処理部品及び制御対象部品の汎用性を高め、再利用性を高めている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３４２０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のように、個々のプログラム部品のインタフェースを規格化して、再利用性を高めたとしても、再利用されるのはプログラム部品単位である。つまり、新たなアプリケーションを構築する場合、画面レイアウトと、その画面操作に対応する処理の流れとは新たに作成する必要があり、作業を省略できるのは、画面操作に対応する処理で呼び出される個々のプログラムの作成作業だけである。
この発明は、既存のアプリケーションの情報を有効に利用可能とし、アプリケーション構築の生産性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るアプリケーション構築装置は、
表示装置に所定の表示情報を表示する表示部品と、前記表示部品が表示する表示情報が操作された場合に動作する一連のプログラムの実行順序が規定されたロジックフローとの組を１つのソフトウェア部品として、複数のソフトウェア部品を記憶装置に記憶するソフトウェア部品記憶部と、
前記ソフトウェア部品記憶部が記憶した複数のソフトウェア部品に含まれる複数の表示部品から任意の１つ以上の表示部品を選択させ、アプリケーションプログラムの画面レイアウトを定義した画面レイアウト定義情報を生成する画面レイアウト生成部と、
前記画面レイアウト生成部が画面レイアウト定義情報を生成する際に選択された表示部品と組をなすロジックフローを編集させて、前記アプリケーションプログラムの動作を規定した新しいロジックフローを生成するロジックフロー編集部と、
前記画面レイアウト生成部が生成した画面レイアウト定義情報と、前記ロジックフロー編集部が生成した新しいロジックフローとをアプリケーションプログラムを定義したアプリケーション定義として出力するアプリケーション出力部と
を備えることを特徴とする。
【発明の効果】
【０００７】
この発明に係るアプリケーション構築装置では、表示部品とその表示部品に紐づいた一連のプログラムの実行順序を規定したロジックフローとを１つのソフトウェア部品とし、ソフトウェア部品を使ってアプリケーションを構築する。そのため、表示部品を並べて画面レイアウトを規定するのに伴って、各表示部品に紐づく処理の大枠が規定される。その結果、アプリケーション構築の生産性が向上する。
また、ソフトウェア部品を既存のアプリケーションから抽出して生成することも可能であり、既存のアプリケーションの情報を有効利用することもできる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るアプリケーション構築装置１００の構成図。
【図２】ソフトウェア部品３０の構成図。
【図３】各プログラムの定義例を示す図。
【図４】実施の形態１に係るアプリケーション実行システム４００の構成図。
【図５】アプリケーション実行システム４００の動作を示すフローチャート。
【図６】図５における処理（Ｓ１０６）の詳細な動作を示すフローチャート。
【図７】ロジックフロー２０が実行される様子を説明する図。
【図８】アプリケーション実行システム４００がクライアント２００と複数台のサーバ３００とで構成されており、サーバ側ロジック部品５０毎に実行されるサーバ３００が異なる場合における図５の（Ｓ１０６）の詳細な動作を示すフローチャート。
【図９】アプリケーション構築装置１００、クライアント２００、サーバ３００のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、図に基づき、発明の実施の形態を説明する。
以下の説明において、処理装置は後述するＣＰＵ９１１等である。記憶装置は後述するＲＯＭ９１３、ＲＡＭ９１４、磁気ディスク９２０等である。入力装置はキーボード９０２、マウス９０３等である。出力装置は後述するＬＣＤ９０１、通信ボード９１５、ＲＯＭ９１３、ＲＡＭ９１４、磁気ディスク９２０等である。つまり、処理装置、記憶装置、入力装置、出力装置はハードウェアである。
【００１０】
実施の形態１．
図１は、実施の形態１に係るアプリケーション構築装置１００の構成図である。
アプリケーション構築装置１００は、ソフトウェア部品３０に基づき、アプリケーション７０を構築する（構築を支援する）装置である。なお、ここでは、アプリケーション７０はＷｅｂアプリケーションであるとして説明する。
図１に示すように、アプリケーション構築装置１００は、ソフトウェア部品記憶部１１０、プログラム記憶部１２０、画面レイアウト生成部１３０、ロジックフロー編集部１４０、プログラム編集部１５０、アプリケーション出力部１６０を備える。
【００１１】
ソフトウェア部品記憶部１１０は、複数のソフトウェア部品３０を記憶した記憶装置である。ソフトウェア部品３０には、所定の情報を表示装置に表示するプログラムであるＧＵＩ部品１０（表示部品）と、ＧＵＩ部品１０が表示する表示情報が操作された場合に動作する一連のプログラムの実行順序を規定した処理フロー情報であるロジックフロー２０とが含まれる。
例えば、ＧＵＩ部品１０は、既存のＷｅｂアプリケーションの表示画面に表示された情報の一部を切り出すことにより生成される。また、ロジックフロー２０は、切り出された表示情報が操作された場合に動作する一連のプログラムを、前記既存のＷｅｂアプリケーションから切り出して、その一連のプログラムの実行順序を抽出することにより生成される。
つまり、ＧＵＩ部品１０は、切り出した表示情報を示すＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等である。また、ロジックフロー２０は、そのＨＴＭＬに関連して記述されたＪａｖａｓｃｒｉｐｔ（登録商標）等のクライアントサイドスクリプトや、Ｊａｖａ（登録商標）等のサーバサイドスクリプトの実行順序を規定した処理フローである。
【００１２】
プログラム記憶部１２０は、ロジックフロー２０で実行順序が規定されたプログラムを記憶した記憶装置である。
ロジックフロー２０で実行順序が規定されたプログラムには、クライアント側で実行されるプログラム（クライアントサイドスクリプト）とサーバ側で実行されるプログラム（サーバサイドスクリプト）とが含まれる。そこで、プログラム記憶部１２０は、クライアント側で実行されるプログラムを所定の単位（例えば、関数毎）に部品化したクライアント側ロジック部品４０と、サーバ側で実行されるプログラムを所定の単位に部品化したサーバ側ロジック部品５０とをそれぞれを記憶している。
なお、クライアント側ロジック部品４０には、所定のイベント（ＧＵＩ部品１０が表示する表示情報に対する所定の操作等）を待つイベント待ち部品が含まれる。
【００１３】
図２は、ソフトウェア部品３０の構成図である。
図２に示すように、ソフトウェア部品３０には、ＧＵＩ部品１０と、ＧＵＩ部品１０に紐付けられたロジックフロー２０とが含まれる。ロジックフロー２０は、ＧＵＩ部品１０に所定の操作がされた場合に実行される一連のプログラムの実行順序を規定している。ここでは、矢印によりプログラムの実行順序を示している。
図２では、ロジックフロー２０は、初めにクライアント側ロジック部品１が実行され、続いてクライアント側ロジック部品２，３，４と、イベント待ち部品１、サーバ側ロジック部品１，２、クライアント側ロジック部品５とが並列に順に実行されることを表す。
【００１４】
図３は、各プログラムの定義例を示す図である。図３において、（ａ）はクライアント側ロジック部品４０の例であり、（ｂ）はサーバ側ロジック部品５０の例であり（ｃ）はイベント待ち部品の例である。
図３に示すように、各部品の定義には、部品ＩＤ、部品名、部品種別、部品ＵＲＬ、実行コマンド、パラメータ等の項目が規定されている。ここで、部品種別は、そのプログラムがクライアント側ロジック部品４０であるか、サーバ側ロジック部品５０であるか、イベント待ち部品であるかを示す。また、部品ＵＲＬは、そのプログラムがどこに在るかを示す。
【００１５】
画面レイアウト生成部１３０は、ソフトウェア部品記憶部１１０が記憶した複数のソフトウェア部品３０に含まれるＧＵＩ部品１０を表示装置に表示して、そこから任意の１つ以上のＧＵＩ部品１０を開発者に入力装置を介して選択させ、任意のレイアウトに並べさせる。そして、画面レイアウト生成部１３０は、アプリケーション７０の画面レイアウトを定義したＧＵＩレイアウト定義６０（画面レイアウト定義情報）を処理装置により生成する。なお、画面レイアウト生成部１３０は、ＧＵＩレイアウト定義６０を、ＧＵＩレイアウト定義６０を生成する際に選択されたＧＵＩ部品１０とともに出力する。
【００１６】
ロジックフロー編集部１４０は、画面レイアウト生成部１３０がＧＵＩレイアウト定義６０を生成する際に、開発者によって選択された表示部品と同じソフトウェア部品３０として記憶されたロジックフロー２０を、必要に応じて開発者に入力装置を介して編集させる。そして、ロジックフロー編集部１４０は、アプリケーション７０の動作を規定した新しいロジックフロー２０を処理装置により生成し、出力する。
例えば、ロジックフロー編集部１４０は、編集対象のロジックフロー２０に、ソフトウェア部品３０に含まれる他のロジックフロー２０を直列あるいは並列に接続させたり、プログラムの実行順序を変更したり、プログラム間のパラメータ渡しのために新しいプログラムの呼び出しを追加したりする。
【００１７】
プログラム編集部１５０は、ロジックフロー２０によって実行順序が規定されたクライアント側ロジック部品４０及びサーバ側ロジック部品５０を、必要に応じて開発者に入力装置を介して編集させる。そして、プログラム編集部１５０は、アプリケーション７０を構成するクライアント側ロジック部品４０とサーバ側ロジック部品５０とを生成する。
例えば、プログラム編集部１５０は、ロジックフロー２０に新たなプログラムの呼び出しが追加された場合に、そのプログラムを新規作成させたり、処理内容の変更が必要なプログラムを修正させたりする。
【００１８】
アプリケーション出力部１６０は、画面レイアウト生成部１３０が生成したＧＵＩレイアウト定義６０と、ロジックフロー編集部１４０が生成した新しいロジックフロー２０とをアプリケーション定義８０として、ＧＵＩレイアウト定義６０で用いられるＧＵＩ部品１０と、ロジックフロー２０で呼び出されるクライアント側ロジック部品４０及びサーバ側ロジック部品５０とともに、アプリケーション７０として出力装置へ出力する。
【００１９】
つまり、アプリケーション構築装置１００では、ＧＵＩ部品１０とロジックフロー２０とを１つのソフトウェア部品３０として、複数のソフトウェア部品３０を予めソフトウェア部品記憶部１１０に記憶しておく。また、併せて、対応するクライアント側ロジック部品４０及びサーバ側ロジック部品５０をプログラム記憶部１２０に記憶しておく。
そして、画面レイアウト生成部１３０がＧＵＩ部品１０を選択させ並べさせて、ＧＵＩレイアウト定義６０を生成する。選択されたＧＵＩ部品１０にはロジックフロー２０が紐づいているため、ＧＵＩレイアウト定義６０を生成しただけで、アプリケーション７０の動作を規定したロジックフロー２０の大枠が完成する。
また、必要に応じて、ロジックフロー編集部１４０、プログラム編集部１５０が、ロジックフロー２０、クライアント側ロジック部品４０、サーバ側ロジック部品５０を編集させる。
これにより、アプリケーション構築装置１００は、アプリケーション７０を構築する。
【００２０】
アプリケーション構築装置１００によれば、ＧＵＩ部品１０を並べただけで、ＧＵＩレイアウト定義６０だけでなく、アプリケーション７０の動作を規定したロジックフロー２０の大枠が完成する。したがって、アプリケーション７０を構築する効率がよい。
また、ソフトウェア部品３０は、既存のＷｅｂアプリケーションから容易に抽出することができる。したがって、構築するアプリケーション７０に既存のアプリケーションと同じ機能、あるいは似た機能が含まれる場合、既存のアプリケーションのプログラムを容易に利用することが可能であり、アプリケーション７０を構築する効率がよい。
また、ロジックフロー２０は単にプログラムの実行順序が規定されたものであるから、プログラムのインタフェースに修正があったとしても、ロジックフロー２０を修正する必要はない。
【００２１】
次に、アプリケーション構築装置１００で構築されたアプリケーション７０を実行するアプリケーション実行システム４００について説明する。
図４は、実施の形態１に係るアプリケーション実行システム４００の構成図である。図５は、アプリケーション実行システム４００の動作を示すフローチャートである。図６は、図５における処理（Ｓ１０６）の詳細な動作を示すフローチャートである。
【００２２】
図４に示すように、アプリケーション実行システム４００は、クライアント２００（アプリケーション実行装置）、サーバ３００を備える。
クライアント２００は、アプリケーション７０（Ｗｅｂアプリケーション）を操作する計算機であり、クライアント２００ではＷｅｂブラウザが動作する。クライアント２００は、Ｗｅｂブラウザにおいて動作する機能として、取得部２１０（ロジックフロー取得部）、ＧＵＩレイアウト制御部２２０、クライアント側フローエンジン２３０、データ保持部２４０を備える。また、クライアント側フローエンジン２３０は、判定部２３１、実行部２３２、サーバ側ロジックフロー生成部２３３、サーバ呼出部２３４を備える。
サーバ３００は、アプリケーション定義記憶部３１０、部品リポジトリ３２０、サーバ側フローエンジン３３０（実行部）、データ保持部３４０を備える。
【００２３】
図４に示す各機能の動作について、図５、図６に基づき説明する。
まず、図５に示す処理の前提として、アプリケーション構築装置１００のアプリケーション出力部１６０が出力したアプリケーション７０のうち、アプリケーション定義８０がアプリケーション定義記憶部３１０に格納され、その他のＧＵＩ部品１０、クライアント側ロジック部品４０、サーバ側ロジック部品５０が部品リポジトリ３２０に格納される。
【００２４】
図５に示す処理について説明する。
取得部２１０は、サーバ３００のアプリケーション定義記憶部３１０からアプリケーション定義８０をネットワークを介して取得する（Ｓ１０１）。上述したように、アプリケーション定義８０には、ＧＵＩレイアウト定義６０とロジックフロー２０とが含まれる。次に、ＧＵＩレイアウト制御部２２０は、（Ｓ１０１）で取得したＧＵＩレイアウト定義６０を読込み（Ｓ１０２）、ＧＵＩレイアウト定義６０に定義されたＧＵＩ部品１０をサーバ３００の部品リポジトリ３２０からネットワークを介して取得する（Ｓ１０３）。そして、ＧＵＩレイアウト制御部２２０は、取得したＧＵＩ部品１０を処理装置により実行して、ＧＵＩレイアウト定義６０に従ったレイアウトで表示情報を表示装置に表示する（Ｓ１０４）。
続いて、表示装置に表示した表示情報が操作されると、クライアント側フローエンジン２３０は、操作に応じたロジックフロー２０を読み込む（Ｓ１０５）。操作に応じたロジックフロー２０とは、操作された表示情報を表示するＧＵＩ部品１０に紐づいたロジックフロー２０ということである。そして、クライアント側フローエンジン２３０は、読み込んだロジックフロー２０を処理装置により実行する（Ｓ１０６）。
【００２５】
図６に基づき、（Ｓ１０６）の詳細な動作について説明する。
まず、判定部２３１は、次の（実行されていない）ロジック部品が存在するか否かを処理装置により判定する（Ｓ２０１）。次のロジック部品が存在すると判定した場合（Ｓ２０１でＹＥＳ）、判定部２３１は、次のロジック部品を読込み（Ｓ２０２）、そのロジック部品の部品種別（図３参照）を取得する（Ｓ２０３）。そして、判定部２３１は、取得した部品種別がクライアント側ロジック部品４０か否かを処理装置により判定する（Ｓ２０４）。
【００２６】
（Ｓ２０４）でサーバ側ロジック部品５０であると判定した場合（Ｓ２０４でＮＯ）、判定部２３１は、未実行のサーバ側ロジックフロー９１があるか否かを処理装置により判定する（Ｓ２０５）。
未実行のサーバ側ロジックフロー９１がない場合（Ｓ２０５でＮＯ）、新たにサーバ側ロジックフロー９１を含むサーバ側ロジック呼出部品９０を生成し（Ｓ２０６）、サーバ側ロジックフロー生成部２３３は、生成したサーバ側ロジックフロー９１に（Ｓ２０２）で読込んだサーバ側ロジック部品５０の呼び出しを追加する。
一方、未実行のサーバ側ロジックフロー９１がある場合（Ｓ２０５でＹＥＳ）、サーバ側ロジックフロー生成部２３３は、未実行のサーバ側ロジックフロー９１に（Ｓ２０２）で読込んだサーバ側ロジック部品５０の呼び出しを追加する。
そして、処理を（Ｓ２０１）へ戻す。
【００２７】
（Ｓ２０４）でクライアント側ロジック部品４０であると判定した場合（Ｓ２０４でＹＥＳ）、判定部２３１は、未実行のサーバ側ロジックフロー９１があるか否かを処理装置により判定する（Ｓ２０８）。
未実行のサーバ側ロジックフロー９１がある場合（Ｓ２０８でＹＥＳ）、サーバ呼出部２３４は、未実行のサーバ側ロジックフロー９１を含むサーバ側ロジック呼出部品９０を処理装置により実行する。なお、サーバ側ロジック呼出部品９０が実行されると、サーバ側ロジックフロー９１がサーバ３００へ送信される。サーバ側フローエンジン３３０は、送信されたサーバ側ロジックフロー９１に含まれるサーバ側ロジック部品５０を順次部品リポジトリ３２０から取得して、処理装置により実行する。そして、サーバ側フローエンジン３３０がサーバ側ロジックフロー９１に含まれるサーバ側ロジック部品５０を実行し終えると、実行部２３２は、（Ｓ２０２）で読込んだクライアント側ロジック部品４０を処理装置により実行する（Ｓ２１０）。
一方、未実行のサーバ側ロジックフロー９１がない場合（Ｓ２０８でＮＯ）、（Ｓ２０９）は実行されず、実行部２３２は、（Ｓ２０２）で読込んだクライアント側ロジック部品４０を処理装置により実行する（Ｓ２１０）。
そして、処理を（Ｓ２０１）へ戻す。
【００２８】
また、（Ｓ２０１）で次のロジック部品が存在しないと判定した場合（Ｓ２０１でＮＯ）、判定部２３１は、未実行のサーバ側ロジックフロー９１があるか否かを処理装置により判定する（Ｓ２１１）。そして、未実行のサーバ側ロジックフロー９１がある場合（Ｓ２１１でＹＥＳ）、（Ｓ２０９）と同様に、サーバ呼出部２３４は、未実行のサーバ側ロジックフロー９１を含むサーバ側ロジック呼出部品９０を処理装置により実行して（Ｓ２１２）、処理を終了する。一方、未実行のサーバ側ロジックフロー９１がない場合（Ｓ２１１でＮＯ）、（Ｓ２１２）は実行されず、処理を終了する。
【００２９】
以上のように、クライアント２００は、ロジックフロー２０に規定された順にロジック部品を読込む。そして、読込んだロジック部品がサーバ側ロジック部品５０の場合、次にクライアント側ロジック部品４０が読込まれるまでの一連のサーバ側ロジック部品５０の呼び出しを１つのサーバ側ロジックフロー９１として作成する。一方、読込んだロジック部品がクライアント側ロジック部品４０の場合、未実行のサーバ側ロジックフロー９１があれば、そのサーバ側ロジックフロー９１を実行した上で、なければすぐにクライアント側ロジック部品４０を実行する。
【００３０】
図７は、ロジックフロー２０が実行される様子を説明する図である。なお、図７は、図２に示すロジックフロー２０を実行する場合の例である。
上述したように、図２に示すロジックフロー２０は、初めにクライアント側ロジック部品１が実行され、続いてクライアント側ロジック部品２，３，４と、イベント待ち部品１、サーバ側ロジック部品１，２、クライアント側ロジック部品５とが並列に順に実行されることを表す。
この場合、連続して実行されるサーバ側ロジック部品１，２の呼び出しが１つのサーバ側ロジックフロー１として生成される。また、ロジックフロー２０は、サーバ側ロジック部品１，２が、１つのサーバ側ロジック呼出部品１に置き換えられる。そして、クライアント２００は、サーバ側ロジック部品１，２がサーバ側ロジック呼出部品１に置き換えられた後のロジックフロー２０に従い、処理を順次実行する。
【００３１】
なお、図６の（Ｓ２１０）でクライアント側ロジック部品４０が実行された場合の出力値等は、データ保持部２４０に蓄積される。そして、その後に実行されるクライアント側ロジック部品４０で、データ保持部２４０に蓄積された値は利用される。また、（Ｓ２０９）や（Ｓ２１２）でサーバ３００へサーバ側ロジックフロー９１が送信される際、併せてデータ保持部２４０に蓄積された値がサーバ３００に送信され、データ保持部３４０に蓄積され、サーバ側ロジック部品５０によって利用される。
同様に、サーバ側ロジック部品５０の出力値等はデータ保持部３４０に蓄積され、サーバ側ロジックフロー９１に含まれるサーバ側ロジック部品５０を実行し終えると、データ保持部３４０に蓄積された値が返り値としてクライアント２００へ送信され、データ保持部２４０に蓄積される。
【００３２】
以上のように、連続して実行されるサーバ側ロジック部品５０の呼び出しを１つのサーバ側ロジックフロー９１にするため、クライアント２００とサーバ３００との間の通信回数を減らすことができ、効率的に処理を実行することができる。
【００３３】
上記説明では、アプリケーション実行システム４００は、クライアント２００と１台のサーバ３００とで構成されるものとして説明した。しかし、アプリケーション実行システム４００は、クライアント２００と複数台のサーバ３００とで構成されており、サーバ側ロジック部品５０毎に実行されるサーバ３００が異なるとしてもよい。
図８は、この場合における図５の（Ｓ１０６）の詳細な動作を示すフローチャートである。なお、図６の（Ｓ２０１）から（Ｓ２０４）と、（Ｓ２０８）から（Ｓ２１２）との処理は図６に示す通りであるため、図８では図６における（Ｓ２０５）から（Ｓ２０７）の処理に対応する部分のみを示す。
【００３４】
図６の（Ｓ２０４）でサーバ側ロジック部品５０であると判定した場合（Ｓ２０４でＮＯ）、判定部２３１は、（Ｓ２０２）で読込んだサーバ側ロジック部品５０の部品ＵＲＬ（図３参照）を取得する（Ｓ３０１）。そして、判定部２３１は、取得した部品ＵＲＬのホスト名から、そのサーバ側ロジック部品５０がどのサーバ３００で実行されるかを処理装置により特定する。
そして、判定部２３１は、特定したサーバ３００と異なるサーバ３００で実行される、未実行のサーバ側ロジックフロー９１があるか否かを処理装置により判定する（Ｓ３０３）。異なるサーバ３００で実行される、未実行のサーバ側ロジックフロー９１がある場合（Ｓ３０３でＹＥＳ）、サーバ呼出部２３４は、未実行のサーバ側ロジックフロー９１を含むサーバ側ロジック呼出部品９０を処理装置により実行して（Ｓ３０４）、処理を（Ｓ３０５）へ進める。一方、異なるサーバ３００で実行される、未実行のサーバ側ロジックフロー９１がない場合（Ｓ３０３でＮＯ）、直接処理を（Ｓ３０５）へ進める。
次に、判定部２３１は、特定したサーバ３００と同一のサーバ３００で実行される、未実行のサーバ側ロジックフロー９１があるか否かを処理装置により判定する（Ｓ３０５）。同一のサーバ３００で実行される、未実行のサーバ側ロジックフロー９１がない場合（Ｓ３０５でＮＯ）、新たに、特定したサーバ３００で実行されるサーバ側ロジックフロー９１を含むサーバ側ロジック呼出部品９０を生成し（Ｓ３０６）、サーバ側ロジックフロー生成部２３３は、生成したサーバ側ロジックフロー９１に（Ｓ２０２）で読込んだサーバ側ロジック部品５０の呼び出しを追加する。
一方、同一のサーバ３００で実行される、未実行のサーバ側ロジックフロー９１がある場合（Ｓ３０５でＹＥＳ）、サーバ側ロジックフロー生成部２３３は、未実行のサーバ側ロジックフロー９１に（Ｓ２０２）で読込んだサーバ側ロジック部品５０の呼び出しを追加する。
そして、処理を（Ｓ２０１）へ戻す。
【００３５】
つまり、アプリケーション実行システム４００がクライアント２００と複数台のサーバ３００とで構成されており、サーバ側ロジック部品５０毎に実行されるサーバ３００が異なる場合、連続して同一のサーバで実行されるサーバ側ロジック部品５０の呼び出しを１つのサーバ側ロジックフロー９１にする。この場合にも、クライアント２００とサーバ３００との間の通信回数を減らすことができ、効率的に処理を実行することができる。
【００３６】
次に、実施の形態におけるアプリケーション構築装置１００、クライアント２００、サーバ３００のハードウェア構成について説明する。
図９は、アプリケーション構築装置１００、クライアント２００、サーバ３００のハードウェア構成の一例を示す図である。
図９に示すように、アプリケーション構築装置１００、クライアント２００、サーバ３００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００３７】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００３８】
プログラム群９２３には、上記の説明において「画面レイアウト生成部１３０」、「ロジックフロー編集部１４０」、「プログラム編集部１５０」、「アプリケーション出力部１６０」、「取得部２１０」、「ＧＵＩレイアウト制御部２２０」、「クライアント側フローエンジン２３０」、「サーバ側フローエンジン３３０」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「ソフトウェア部品記憶部１１０」、「プログラム記憶部１２０」、「データ保持部２４０」、「アプリケーション定義記憶部３１０」、「部品リポジトリ３２０」、「データ保持部３４０」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００３９】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００４０】
１０  ＧＵＩ部品、２０  ロジックフロー、３０  ソフトウェア部品、４０  クライアント側ロジック部品、５０  サーバ側ロジック部品、６０  ＧＵＩレイアウト定義、７０  アプリケーション、８０  アプリケーション定義、９０  サーバ側ロジック呼出部品、９１  サーバ側ロジックフロー、１００  アプリケーション構築装置、１１０  ソフトウェア部品記憶部、１２０  プログラム記憶部、１３０  画面レイアウト生成部、１４０  ロジックフロー編集部、１５０  プログラム編集部、１６０  アプリケーション出力部、２００  クライアント、２１０  取得部、２２０  ＧＵＩレイアウト制御部、２３０  クライアント側フローエンジン、２３１  判定部、２３２  実行部、２３３  サーバ側ロジックフロー生成部、２３４  サーバ呼出部、２４０  データ保持部、３００  サーバ、３１０  アプリケーション定義記憶部、３２０  部品リポジトリ、３３０  サーバ側フローエンジン、３４０  データ保持部、４００  アプリケーション実行システム。
【図１】
0005414633.tif 000002
【図２】
0005414633.tif 000003
【図３】
0005414633.tif 000004
【図４】
0005414633.tif 000005
【図５】
0005414633.tif 000006
【図６】
0005414633.tif 000007
【図７】
0005414633.tif 000008
【図８】
0005414633.tif 000009
【図９】
0005414633.tif 000010