(57)【特許請求の範囲】
【請求項１】
画面を表示するアプリケーションプログラムを実行するアプリケーション実行装置において、
画面の構成要素となる複数の部品を提供するサーバから部品を取得して前記アプリケーションプログラムで表示される画面に追加する複数の部品呼出タスクを順次実行することにより、前記アプリケーションプログラムで表示される画面を更新するタスク実行部と、
前記複数の部品呼出タスクを含む複数のタスクを実行するフローを画面ごとに定義する定義情報を提供するサーバから、前記アプリケーションプログラムで表示される画面が遷移する度に、遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、前記複数のタスクを前記タスク実行部に処理装置により実行させるフロー処理部と、
を備えることを特徴とするアプリケーション実行装置。
【請求項２】
前記タスク実行部は、前記複数のタスクに含まれるタスクとして、第１形式のデータを出力するデータ出力タスクを実行し、
前記アプリケーション実行装置は、
前記タスク実行部が実行したデータ出力タスクによって出力されたデータを第２形式のデータに処理装置により変換するデータ変換部をさらに備え、
前記タスク実行部は、前記複数のタスクに含まれるタスクとして、前記データ変換部が変換したデータを利用した処理を行うデータ利用タスクを実行することを特徴とする請求項１のアプリケーション実行装置。
【請求項３】
前記タスク実行部は、前記複数の部品呼出タスクに含まれ、前記データ利用タスクに該当する部品呼出タスクとして、画面の構成要素となる複数の部品を提供するサーバから前記データ変換部が変換したデータを表示する部品と当該データを利用した処理を行う部品とのいずれかを取得して前記アプリケーションプログラムで表示される画面に追加する部品呼出タスクを実行することを特徴とする請求項２のアプリケーション実行装置。
【請求項４】
前記タスク実行部は、前記データ利用タスクとして、前記データ変換部が変換したデータが所定の条件を満たしているかどうかに応じて次のタスクを決定するフロー制御タスクを実行し、実行したフロー制御タスクによって決定されたタスクを次に実行することを特徴とする請求項２又は３のアプリケーション実行装置。
【請求項５】
前記タスク実行部は、前記複数のタスクに含まれるタスクとして、前記アプリケーションプログラムで表示中の画面に対するユーザの操作を検出する操作検出待ちタスクを実行し、実行した操作検出待ちタスクによって当該操作が検出されてから次のタスクを実行することを特徴とする請求項１から４のいずれかのアプリケーション実行装置。
【請求項６】
画面を表示するアプリケーションプログラムを実行するコンピュータで実行されるプログラムにおいて、
画面の構成要素となる複数の部品を提供するサーバから部品を取得して前記アプリケーションプログラムで表示される画面に追加する複数の部品呼出タスクを順次実行することにより、前記アプリケーションプログラムで表示される画面を更新するタスク実行処理と、
前記複数の部品呼出タスクを含む複数のタスクを実行するフローを画面ごとに定義する定義情報を提供するサーバから、前記アプリケーションプログラムで表示される画面が遷移する度に、遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、前記複数のタスクを前記タスク実行処理に処理装置により実行させるフロー処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション実行装置及びプログラムに関するものである。本発明は、特に、フロー処理型アプリケーション実行装置に関するものである。
【背景技術】
【０００２】
従来のアプリケーション開発方法では、画面が一枚のソースコードで構成される。このためアプリケーションの画面をカスタマイズする場合、画面全体を改修しなければならなく、また、画面で使用するロジックも画面ごとに改修しなければならなく、開発者の負担が大きかった。画面とロジックを部品単位に分解した上で、それらの部品を連携させてアプリケーションを実行させることができれば、画面のカスタマイズを簡単にすることができる。上記を実現するためには、部品の実行順序の制御や部品間でのデータの受け渡しを可能にする必要があった。
【０００３】
従来技術として、データの受け渡しと実行順序の制御を同時に行う方法が開示されている（例えば、特許文献１参照）。この方法では、アプリケーションが共有のデータ領域を監視することで、データの変更をトリガーとして、各部品（画面部品、ロジック部品）へのデータの受け渡し、及び、起動のタイミングを制御している。また、部品間で予めデータへの共通の入出力仕様を定義しておくことで、部品の組み換えを可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２１６４２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の方法では、画面の一部の表示内容を更新するだけでも、画面全体を更新しなければならない、あるいは、画面の一部の表示内容を更新する手順をカスタマイズしにくいという課題があった。
【０００６】
また、上記の従来技術では、以下のような課題があった。
・処理の流れがデータに依存するため、部品の設計時にデータの更新タイミングを考慮しなければならない。部品を呼び出すためにはデータの更新を行わなければならないため、処理の流れを設計する際にはデータの更新タイミングも考慮しなければならなくなるため、設計が複雑になり開発者の負荷が高くなる。
・部品間でやり取りするデータ形式を予め定義しておかなければ部品の交換ができない。予め定義されていない場合には部品を修正して部品間のインタフェースを合わせる必要があり、カスタマイズを実行する度に上記の作業が発生するため、開発者への負荷が高くなる。
【０００７】
本発明は、例えば、画面の一部の表示内容を更新する手順をカスタマイズしやすくすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一の態様に係るアプリケーション実行装置は、
画面を表示するアプリケーションプログラムを実行するアプリケーション実行装置であり、
前記アプリケーションプログラムで表示される画面を更新するための処理を行う複数のタスクを処理装置により実行するタスク実行部と、
前記複数のタスクを実行するフローを画面ごとに定義する定義情報を提供するサーバから、前記アプリケーションプログラムで表示される画面が遷移する度に、遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、前記複数のタスクを前記タスク実行部に処理装置により実行させるフロー処理部と、
を備えることを特徴とする。
【発明の効果】
【０００９】
本発明の一の態様では、アプリケーション実行装置が、アプリケーションプログラムで表示される画面が遷移する度に、サーバから遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、画面を更新するための処理を行う複数のタスクを実行する。このため、定義情報を変更するだけで、画面を更新する処理のフローを簡単にカスタマイズすることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るシステムの一構成例を示すブロック図。
【図２】実施の形態１に係るクライアント・コンピュータのハードウェア構成の一例を示す図。
【図３】実施の形態１に係るブラウザとアプリケーション・サーバの詳細な構成の例を示すブロック図。
【図４】実施の形態１に係る動作フロー定義情報で定義される処理の流れの一例を示す図。
【図５】実施の形態１に係るフロー処理部の詳細な構成の例を示す図。
【図６】実施の形態１に係るブラウザの処理の流れを示すフローチャート。
【図７】実施の形態１に係る実行エンジンの初期化処理の流れを示すフローチャート。
【図８】実施の形態１に係るフロー処理部の処理の流れを示すフローチャート。
【図９】実施の形態１に係るタスク実行部の処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。
【００１２】
実施の形態１．
図１は、本実施の形態に係るシステムの一構成例を示すブロック図である。
【００１３】
この構成では、クライアント・コンピュータ１００とサーバ・コンピュータ２００が、例えば、イーサネット（登録商標）・プロトコルにより、通信回線３００に接続されている。通信回線３００はさらに、プロキシ・サーバ４００（サーバ・コンピュータ）を介して、インターネット５００に接続され、インターネット５００を介して複数のサーバ・コンピュータ６００にアクセスすることができる。
【００１４】
クライアント・コンピュータ１００は、ハードディスク１４０と、イーサネット（登録商標）・プロトコルに対応する通信インタフェース１６０（Ｉ／Ｆ）を備え、ハードディスク１４０には、オペレーティング・システムやブラウザ１２０等を有する。オペレーティング・システムとしては、例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｍａｃ・ＯＳ（登録商標）等を使用することができるが、ここに挙げたオペレーティング・システムには限定されない。ブラウザ１２０としては、例えば、マイクロソフト社のＩｎｔｅｒｎｅｔ・Ｅｘｐｌｏｒｅｒ（登録商標）、ＦｉｒｅＦｏｘ（登録商標）等が使用可能であるが、ここに挙げたブラウザには限定されない。
【００１５】
クライアント・コンピュータ１００は、画面を表示するアプリケーションプログラムを実行するアプリケーション実行装置の一例である。上記のように、本実施の形態において、クライアント・コンピュータ１００は、アプリケーションプログラムの例として、ウェブページの画面を表示するブラウザ１２０を実行する。
【００１６】
サーバ・コンピュータ２００は、ハードディスク２４０と、イーサネット（登録商標）・プロトコルに対応する通信インタフェース２６０を備え、ハードディスク２４０には、オペレーティング・システムやアプリケーション・サーバ２２０等を有する。オペレーティング・システムとしては、例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｍａｃ・ＯＳ（登録商標）等を使用することができるが、ここに挙げたオペレーティング・システムには限定されない。アプリケーション・サーバ２２０としては、例えば、Ａｐａｃｈｅ・Ｔｏｍｃａｔ、Ｉｎｔｅｒｎｅｔ・Ｉｎｆｏｒｍａｔｉｏｎ・Ｓｅｒｖｅｒ等、任意のものが使用可能であるが、ここに挙げたアプリケーション・サーバには限定されない。
【００１７】
サーバ・コンピュータ６００は、サーバ・コンピュータ２００と同様に、ハードディスク６４０と、任意のネットワーク・プロトコルに対応する通信インタフェース６６０を備え、ハードディスク６４０には、オペレーティング・システムやアプリケーション・サーバ６２０等を有する。
【００１８】
サーバ・コンピュータ２００，６００（特に、アプリケーション・サーバ２２０，６２０）は、画面の構成要素となる複数の部品を提供するサーバの一例である。後述するように、本実施の形態において、サーバ・コンピュータ２００，６００は、複数の部品の例として、ＧＵＩ（Ｇｒａｐｈｉｃａｌ・Ｕｓｅｒ・Ｉｎｔｅｒｆａｃｅ）部品、ＧＵＩロジック部品等を提供する。
【００１９】
ハードディスク１４０，２４０，６４０は、記憶装置の一例である。図示していないが、クライアント・コンピュータ１００、サーバ・コンピュータ２００，６００は、記憶装置以外にも、処理装置、入力装置、出力装置等のハードウェアを備える。ハードウェアは、後述するクライアント・コンピュータ１００、サーバ・コンピュータ２００，６００の各部によって利用される。例えば、処理装置は、各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。
【００２０】
図２は、クライアント・コンピュータ１００のハードウェア構成の一例を示す図である。なお、サーバ・コンピュータ２００，６００についても、以下と同様のハードウェア構成を採用することができる。
【００２１】
この例において、クライアント・コンピュータ１００は、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００２２】
クライアント・コンピュータ１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ハードディスク１４０と接続され、これらのハードウェアデバイスを制御する。ハードディスク１４０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
【００２３】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ハードディスク１４０は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置の一例である。
【００２４】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等の通信回線３００に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネット５００に接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネット５００は、ネットワークの一例である。
【００２５】
ハードディスク１４０には、オペレーティング・システム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティング・システム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やハードディスク１４０等の記憶媒体に記憶される。ＲＡＭ９１４やハードディスク１４０等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２６】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ハードディスク１４０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００２７】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００２８】
図３は、ブラウザ１２０とアプリケーション・サーバ２２０の詳細な構成の例を示すブロック図である。なお、アプリケーション・サーバ２２０を、アプリケーション・サーバ６２０に置き換えてもよい。
【００２９】
アプリケーション・サーバ２２０は、実行エンジン１２１と、アプリケーション定義情報２２５と、部品サービス実行部２３０と、部品リポジトリ２３５を有する。
【００３０】
実行エンジン１２１は、クライアント上から部品の呼び出しを制御しアプリケーションを実行する基盤であり、ブラウザ１２０側からの要求でダウンロードされ、ブラウザ１２０上で実行される。
【００３１】
アプリケーション定義情報２２５は、実行エンジン１２１でアプリケーションを実行するために必要な情報を定義したもの（ファイル等）であり、画面定義情報２２６、動作フロー定義情報２２７、操作検出定義情報２２８を含む。
【００３２】
画面定義情報２２６は、ブラウザ１２０上で表示される画面の構成を定義したもの（ファイル等）であり、ブラウザ１２０上に表示する画面の数、及び、それぞれの画面の大きさ、位置等が記述されている。動作フロー定義情報２２７は、ブラウザ１２０上で実行される処理の流れを定義したもの（ファイル等）である。操作検出定義情報２２８は、ユーザがブラウザ１２０を操作した際に検出する操作の内容を定義したもの（ファイル等）である。なお、本実施の形態では、画面定義情報２２６、動作フロー定義情報２２７、操作検出定義情報２２８はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ・Ｍａｒｋｕｐ・Ｌａｎｇｕａｇｅ）の形式で書かれているものとする。
【００３３】
部品サービス実行部２３０は、部品リポジトリ２３５に格納されている各部品に対応した実行結果を出力する。部品の種類としては、ＧＵＩ部品２３６、ＧＵＩロジック部品２３７、ロジック部品２３８がある。
【００３４】
ＧＵＩ部品２３６は、クライアント・コンピュータ１００側のブラウザ１２０で処理される表示用の部品であり、例えば、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ・Ｍａｒｋｕｐ・Ｌａｎｇｕａｇｅ）形式のソースコードが記述されている。ＧＵＩロジック部品２３７は、クライアント・コンピュータ１００側のブラウザ１２０で処理される部品であり、ＧＵＩ部品２３６の加工や、ブラウザ１２０上で実行される演算処理等を行うためのソースコードが記述されている。本実施の形態では、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述されているものとする。ロジック部品２３８は、アプリケーション・サーバ２２０で実行されるプログラムであり、ビジネスロジック等が実装されている。ＧＵＩ部品２３６、ＧＵＩロジック部品２３７に対する部品サービス実行部２３０の出力結果はソースコードであるが、ロジック部品２３８に対する部品サービス実行部２３０の出力結果はロジック部品２３８を実行したときの出力結果である。
【００３５】
ブラウザ１２０は、アプリケーション・サーバ２２０から実行エンジン１２１をダウンロードしてきて実行する。実行エンジン１２１は、画面構成部１２２、操作検出部１２３、フロー処理部１２４、部品呼出部１２５、データ変換部１２６、データバス１２７を有する。
【００３６】
画面構成部１２２は、アプリケーション・サーバ２２０から画面定義情報２２６を（直接又はブラウザ１２０本体を介して）取得し、画面定義情報２２６に基づき、ブラウザ１２０上に表示する画面の構成を設定する。操作検出部１２３は、アプリケーション・サーバ２２０から操作検出定義情報２２８を（直接又はブラウザ１２０本体を介して）取得し、操作検出定義情報２２８に基づき、ブラウザ１２０上で行われたユーザの操作を検出する。フロー処理部１２４は、アプリケーション・サーバ２２０から動作フロー定義情報２２７を（直接又はブラウザ１２０本体を介して）取得し、動作フロー定義情報２２７に基づき、部品の呼び出し等を行う。部品呼出部１２５は、アプリケーション・サーバ２２０上の部品サービス実行部２３０を呼び出して、部品サービスの実行結果（出力結果）を取得する。データ変換部１２６は、データバス１２７からデータを入力したり、データバス１２７にデータを出力したりする際に、データ形式の変換を行う。データバス１２７は、部品サービス実行部２３０の実行結果や、フローで共通して利用されるデータを保持する。
【００３７】
図４は、動作フロー定義情報２２７で定義される処理の流れの一例を示す図である。
【００３８】
動作フロー定義情報２２７では、ブラウザ１２０で表示される画面を更新するための処理を行う複数のタスクを実行するフローが、画面ごとに定義される。この例では、動作フロー定義情報２２７の処理フロー記述領域に、アプリケーション・サーバ２２０上の部品サービス実行部２３０を呼び出す部品呼出タスク１２１１、ユーザからの操作を検出する操作検出待ちタスク１２１２、フローの分岐や画面遷移等を制御するフロー制御タスク１２１３の処理の順序が記載されている。また、動作フロー定義情報２２７のデータバス記述領域に、部品呼出タスク１２１１やフロー制御タスク１２１３の入出力で使われるデータバス１２７上のデータ１２３１との関係、及び、必要なデータ変換の方法が属性情報１２２１としてフローに記述されている。
【００３９】
図５は、フロー処理部１２４の詳細な構成の例を示す図である。
【００４０】
フロー処理部１２４は、実行待ちタスク・リスト１３１と、実行管理部１３２と、タスク実行部１３３と、タスク・リスト１３４を有する。
【００４１】
タスク・リスト１３４は、フロー処理部１２４がアプリケーション・サーバ２２０から取得した動作フロー定義情報２２７で定義されたフローに含まれるタスク１３６を格納している。実行待ちタスク・リスト１３１は、タスク・リスト１３４にあるタスク１３６のうち、フロー処理部１２４が実行対象とする（実行待ちの）タスク１３５を格納している。それぞれのタスク１３５は、例えば、タスクＩＤ、種類、処理内容、データ、次タスクＩＤ（次に実行されるタスク１３５のタスクＩＤ）といったフォーマット１３８で実行待ちタスク・リスト１３１に格納される。
【００４２】
実行管理部１３２は、一定間隔で実行待ちタスク・リスト１３１を監視しており、タスク１３５が追加された場合（実行待ちタスク・リスト１３１にタスク１３５がある場合）に、タスク実行部１３３に対して、（例えば、実行待ちタスク・リスト１３１にあるタスク１３５のうち、実行順序が最先となっている）タスク１３５の実行指示を行う。
【００４３】
タスク実行部１３３は、複数のタスク１３５を実行する機能をもち、部品呼出タスク１２１１、操作検出待ちタスク１２１２、フロー制御タスク１２１３をそれぞれ実行する。
【００４４】
タスク１３５が部品呼出タスク１２１１の場合、タスク実行部１３３は、部品呼出部１２５を利用して、アプリケーション・サーバ２２０側のＧＵＩ部品２３６、ＧＵＩロジック部品２３７、ロジック部品２３８の実行結果を得る。このとき、呼び出す部品がＧＵＩ部品２３６、ＧＵＩロジック部品２３７の場合、タスク実行部１３３は、ブラウザ１２０が画面表示を行うために参照しているＨＴＭＬデータにソースコードをそれぞれ追加する。ＧＵＩロジック部品２３７の場合、タスク実行部１３３は、さらに、ブラウザ１２０上で追加されたＧＵＩロジック処理を実行し、その出力結果を得る。ロジック部品２３８の場合、タスク実行部１３３は、部品サービス実行部２３０の実行結果を得る。タスク実行部１３３は、部品呼出タスク１２１１を実行する際、データバス１２７からデータ１２８を入力したり、データバス１２７にデータ１２８を出力したりする場合にデータ形式の変換が必要である場合は、データ変換部１２６を使ってデータ変換を行う。
【００４５】
タスク１３５が操作検出待ちタスク１２１２の場合、タスク実行部１３３は、検出対象の操作を操作検出部１２３に登録し、操作検出が可能な状態にする。操作検出部１２３では、検出対象の操作が行われた場合、実行待ちタスク・リスト１３１へのタスク１３５（次に実行されることが動作フロー定義情報２２７で定義されているタスク１３５）の追加が行われる。
【００４６】
タスク１３５がフロー制御タスク１２１３の場合、タスク実行部１３３は、その種類に応じてフローの制御を実施する。フロー制御タスク１２１３の種類には、分岐、結合等の一般的なフロー処理のほかに、画面遷移を用意する。フロー処理の場合、タスク実行部１３３は、条件判定を実施した際に、真であれば、実行したフロー制御タスク１２１３の次のタスク１３５（条件が真の場合に次に実行されることが動作フロー定義情報２２７で定義されているタスク１３５）を実行待ちタスク・リスト１３１に追加する等の処理を行う。偽であれば、別の処理を行うか、あるいは、別のタスク１３５（条件が偽の場合に次に実行されることが動作フロー定義情報２２７で定義されているタスク１３５）を実行待ちタスク・リスト１３１に追加する等の処理を行う。画面遷移の場合、タスク実行部１３３は、条件判定が真であれば画面遷移を行い、偽であれば行わない等の処理を行う。
【００４７】
図４に示した例において、フロー処理部１２４は、動作フロー定義情報２２７に基づき、複数のタスクＴ１１〜１６をタスク・リスト１３４に追加する。これにより、フロー処理部１２４は、動作フロー定義情報２２７で定義されたフローに従って、タスクＴ１１〜１６をタスク実行部１３３に処理装置により実行させる。なお、フロー処理部１２４は、ブラウザ１２０で表示される画面が遷移する度に、遷移先の画面の定義情報として動作フロー定義情報２２７を取得するものとする。
【００４８】
まず、フロー処理部１２４は、タスクＴ１１，Ｔ１２を順番に実行待ちタスク・リスト１３１に追加する。
【００４９】
実行管理部１３２は、実行待ちタスク・リスト１３１にタスクＴ１１が追加されたことを検知すると、タスク実行部１３３にタスクＴ１１を実行するよう処理装置により命令する。この命令に従い、タスク実行部１３３は、タスクＴ１１を処理装置により実行する。部品呼出タスク１２１１であるタスクＴ１１は、部品呼出部１２５を利用して、アプリケーション・サーバ２２０から所定の部品を取得する。例えば、タスクＴ１１は、ＧＵＩ部品２３６としてＨＴＭＬのソースコード等を取得し、取得したＨＴＭＬのソースコード等を、ブラウザ１２０で表示中の画面（ウェブページ）に追加して当該画面を更新する。また、例えば、タスクＴ１１は、アプリケーション・サーバ２２０からＧＵＩロジック部品２３７としてＪａｖａＳｃｒｉｐｔ（登録商標）等のスクリプトのソースコード等を取得し、取得したスクリプトのソースコード等を、ブラウザ１２０で表示中の画面（ウェブページ）に追加して当該画面を更新する。このとき、タスクＴ１１は、スクリプトを実行し、その実行結果を第１形式のデータとして出力してもよい（この場合、タスクＴ１１はデータ出力タスクでもある）。また、例えば、タスクＴ１１は、ロジック部品２３８の実行結果として所定のデータベースからの抽出データ等を取得し、第１形式のデータとして出力する（この場合、タスクＴ１１はデータ出力タスクでもある）。図４の例のように、タスクＴ１１によって第１形式のデータが出力される場合、この第１形式のデータは、属性情報１２２１に基づきデータ変換部１２６によって処理装置により第２形式のデータ１２３１に変換され、データバス１２７に格納される。
【００５０】
実行管理部１３２は、続けて、タスク実行部１３３にタスクＴ１２を実行するよう処理装置により命令する。この命令に従い、タスク実行部１３３は、タスクＴ１２を処理装置により実行する。操作検出待ちタスク１２１２であるタスクＴ１２は、ブラウザ１２０で表示中の画面に対するユーザの特定の操作（例えば、所定のボタンの押下、所定のテキストボックスへの文字入力）を検出する。タスク実行部１３３は、操作検出待ちタスク１２１２を実行した場合、下記のように、その操作検出待ちタスク１２１２によってユーザの特定の操作が検出されてから次のタスクを実行する。
【００５１】
タスクＴ１２によってユーザの特定の操作が検出されると、フロー処理部１２４は、タスクＴ１３，１４を実行待ちタスク・リスト１３１に追加する。
【００５２】
実行管理部１３２は、実行待ちタスク・リスト１３１にタスクＴ１３が追加されたことを検知すると、タスク実行部１３３にタスクＴ１３を実行するよう処理装置により命令する。この命令に従い、タスク実行部１３３は、タスクＴ１３を処理装置により実行する。部品呼出タスク１２１１であるタスクＴ１３の処理については、タスクＴ１１と略同様であるが、タスクＴ１３は、さらに、データバス１２７から、データ変換部１２６が変換したデータ１２３１を取得し、取得したデータ１２３１を利用した処理を行う（この場合、タスクＴ１３はデータ利用タスクでもある）。タスクＴ１３は、例えば、データ１２３１を入力パラメータとして、ＧＵＩロジック部品２３７のスクリプトを実行したり、アプリケーション・サーバ２２０にロジック部品２３８を実行させたりする。このとき、タスクＴ１３は、さらに、その実行結果を第１形式のデータとして出力してもよい（この場合、タスクＴ１３はデータ出力タスクでもある）。
【００５３】
実行管理部１３２は、続けて、タスク実行部１３３にタスクＴ１４を実行するよう処理装置により命令する。この命令に従い、タスク実行部１３３は、タスクＴ１４を処理装置により実行する。フロー制御タスク１２１３であるタスクＴ１４は、データバス１２７から、データ変換部１２６が変換したデータ１２３１を取得し、取得したデータ１２３１が所定の条件を満たしているかどうかに応じて次のタスクを決定する（この場合、タスクＴ１４はデータ利用タスクでもある）。具体的には、タスクＴ１４は、タスクＴ１５，Ｔ１６のいずれかを選択する。タスク実行部１３３は、フロー制御タスク１２１３を実行した場合、下記のように、そのフロー制御タスク１２１３によって決定されたタスクを次に実行する。
【００５４】
タスクＴ１４によって次のタスクがタスクＴ１５に決定されると、フロー処理部１２４は、タスクＴ１５を実行待ちタスク・リスト１３１に追加する。一方、タスクＴ１４によって次のタスクがタスクＴ１６に決定されると、フロー処理部１２４は、タスクＴ１６を実行待ちタスク・リスト１３１に追加する。
【００５５】
実行管理部１３２は、実行待ちタスク・リスト１３１にタスクＴ１５又はタスクＴ１６が追加されたことを検知すると、タスク実行部１３３に当該タスクを実行するよう処理装置により命令する。この命令に従い、タスク実行部１３３は、当該タスクを処理装置により実行する。
【００５６】
以下、本実施の形態に係るシステムの動作について説明する。
【００５７】
図６は、ブラウザ１２０の処理の流れを示すフローチャートである。
【００５８】
ステップＳ１０１において、ブラウザ１２０は初期化処理を行いユーザがブラウザ１２０を利用可能な状態にする。ブラウザ１２０の起動は、ユーザがクライアント・コンピュータ１００上にて行う。
【００５９】
ステップＳ１０２において、ブラウザ１２０はアプリケーション・サーバ２２０に対してリクエストを送信する。リクエストを送信するためのＵＲＬ（Ｕｎｉｆｏｒｍ・Ｒｅｓｏｕｒｃｅ・Ｌｏｃａｔｏｒ）等は、ユーザから与えられるものとする。
【００６０】
ステップＳ１０３において、ブラウザ１２０はアプリケーション・サーバ２２０上にある実行エンジン１２１をダウンロードする。
【００６１】
ステップＳ１０４において、ブラウザ１２０はアプリケーション定義情報２２５をダウンロードしてハードディスク２４０に保存する。アプリケーション定義情報２２５には、画面定義情報２２６、動作フロー定義情報２２７、操作検出定義情報２２８が含まれる。
【００６２】
ステップＳ１０５において、ブラウザ１２０は実行エンジン１２１を初期化する。実行エンジン１２１は、ステップＳ１０４にて取得したアプリケーション定義情報２２５を参照し、実行エンジン１２１を実行するために必要な処理を実行する。
【００６３】
ステップＳ１０６において、ブラウザ１２０は実行エンジン１２１でフロー処理を実行する。フロー処理部１２４は、動作フロー定義情報２２７に定義された順序で各タスクを実行する。
【００６４】
ステップＳ１０７において、ブラウザ１２０は、実行エンジン１２１の実行結果が画面遷移であるかを判断し、画面遷移であった場合には、ステップＳ１０４へ戻る。画面遷移でない場合には、ステップＳ１０８に移動する。
【００６５】
ステップＳ１０８において、ブラウザ１２０はユーザによる閉じるボタンの押下等により終了される。
【００６６】
図７は、実行エンジン１２１の初期化処理の流れを示すフローチャートである。
【００６７】
ステップＳ１２１において、画面構成部１２２は前述のステップＳ１０４で取得した画面定義情報２２６をハードディスク２４０から読み込む。即ち、画面構成部１２２はブラウザ１２０本体を介して画面定義情報２２６を取得する。画面定義情報２２６には、画面ＩＤ、ブラウザ１２０上での画面の位置、画面の大きさに関する情報が記載されているものとする。また、そのほかに、画面を装飾するための情報が、ＣＳＳ（Ｃａｓｃａｄｉｎｇ・Ｓｔｙｌｅ・Ｓｈｅｅｔｓ）等のレイアウト表記方法で記載されていてもよいものとする。
【００６８】
ステップＳ１２２において、画面構成部１２２はステップＳ１２１で読み込んだ画面定義情報２２６を基に、画面レイアウトを処理装置により生成する。本実施の形態では、具体的にはＨＴＭＬとＣＳＳのファイルを生成する。例えば、ステップＳ１２１で取得した画面ＩＤに相当する画面は、例えば、＜ｄｉｖ＞タグでＨＴＭＬファイルに出力される。また、ステップＳ１２１で取得した画面の位置、大きさ、そのほかのレイアウト属性については、ＣＳＳファイルに出力される。
【００６９】
ステップＳ１２３において、操作検出部１２３はステップＳ１０４で取得した操作検出定義情報２２８をハードディスク２４０から読み込む。即ち、操作検出部１２３はブラウザ１２０本体を介して操作検出定義情報２２８を取得する。操作検出定義情報２２８には、操作検出ＩＤ、検出するイベント（ユーザの操作）の種類、検出するイベントが発生する位置（例えば、ＧＵＩ部品２３６）に関する情報が記載されているものとする。また、イベントが発生したときにＨＴＭＬファイルから取得する内容に関する記載がなされていてもよいものとする。
【００７０】
ステップＳ１２４において、操作検出部１２３はステップＳ１２３で読み込んだ操作検出定義情報２２８を基に、ユーザの操作イベントを検出するためのスクリプトを生成しＨＴＭＬファイルに追加し、ブラウザ１２０上から利用可能な状態とする。
【００７１】
ステップＳ１２５において、フロー処理部１２４はステップＳ１０４で取得した動作フロー定義情報２２７をハードディスク２４０から読み込む。即ち、フロー処理部１２４はブラウザ１２０本体を介して動作フロー定義情報２２７を取得する。動作フロー定義情報２２７には、フロー処理部１２４が実行するタスクの実行順序と実行内容に関する情報が記載されている。図５に示したように、各タスクには、タスクＩＤ、タスクの種類、タスクの内容、保持するデータ、次タスクＩＤが記載されている。タスクの種類には、部品呼出タスク１２１１、操作検出待ちタスク１２１２、フロー制御タスク１２１３がある。部品呼出タスク１２１１の場合、呼び出す部品の種類（ＧＵＩ部品２３６、ＧＵＩロジック部品２３７、ロジック部品２３８）と、リクエスト先の部品サービスのＵＲＬ、呼出時に入力とするデータバス１２７上のデータ、呼び出し完了時に出力結果を格納するためのデータバス１２７上の格納先等が記載されているものとする。操作検出待ちタスク１２１２の場合には、操作検出定義情報２２８に記載されている操作検出ＩＤが記載されているものとする。フロー制御タスク１２１３の場合には、フローを次に進めるための条件式、条件一致時・不一致時の次タスクＩＤ等が記載されているものとする。本実施の形態の変形例として、その他、例外発生時に例外処理等を行うタスク等を用意してもよい。
【００７２】
ステップＳ１２６において、フロー処理部１２４は、ステップＳ１２５で読み込んだ動作フロー定義情報２２７から全てのタスクに対応するオブジェクトを生成し、タスク・リスト１３４を処理装置により生成する。
【００７３】
ステップＳ１２７において、フロー処理部１２４は、タスク・リスト１３４に含まれるフロー開始のタスク１３６をインスタンス化し、実行待ちタスク・リスト１３１に処理装置により投入する。
【００７４】
図８は、フロー処理部１２４の処理の流れを示すフローチャートである。
【００７５】
ステップＳ１４１において、実行管理部１３２は、実行待ちタスク・リスト１３１にタスク１３５があるかどうかを処理装置により判断し、ある場合には、ステップＳ１４２に移動する。ない場合は、ステップＳ１４５に移動し、一定時間待った後、再びステップＳ１４１に移動する。
【００７６】
ステップＳ１４２において、実行管理部１３２は、実行待ちタスク・リスト１３１から、タスク１３５を処理装置により取得する。
【００７７】
ステップＳ１４３において、実行管理部１３２はタスク実行部１３３を用いて、ステップＳ１４２で取得したタスク１３５を実行する。
【００７８】
ステップＳ１４４において、実行管理部１３２は、ステップＳ１４３の結果、フローが終了したかどうか、又は、画面遷移が発生したかどうかを処理装置により判断し、フローが終了した場合、画面遷移が発生した場合にはフローを終了する。フローが終了していなおらず、画面遷移も発生していない場合は、ステップＳ１４１へと戻る。
【００７９】
図９は、タスク実行部１３３の処理の流れを示すフローチャートである。
【００８０】
ステップＳ１６１において、タスク実行部１３３は、タスク１３５が部品呼出タスク１２１１であるかどうかを処理装置により判断し、部品呼出タスク１２１１である場合には、ステップＳ１６２に移動する。そうでない場合はステップＳ１７１に移動する。
【００８１】
ステップＳ１６２において、タスク実行部１３３は、部品呼出部１２５を使って部品の呼び出しを行う。以下のように、部品呼出部１２５を使って実行される処理は、呼び出す部品の種類に応じて異なる処理となる。
【００８２】
ＧＵＩ部品２３６の場合、タスク実行部１３３は、リクエスト先の部品サービスから該当する部品のＨＴＭＬのソースコードを取得する。取得したソースコードは指定された格納先に格納する。ＧＵＩ部品２３６の場合には、格納先には画面ＩＤが設定されているものとする。また、格納する際、既に表示されている画面の内容を消して新たに格納するか、もしくは、追記するかの設定がされているものとする。ＨＴＭＬのソースコードは、静的なＨＴＭＬだけでなく、アプリケーション・サーバ２２０側のサーブレットやＪＳＰ（登録商標）により生成された動的なＨＴＭＬでも構わない。
【００８３】
ＧＵＩロジック部品２３７の場合、タスク実行部１３３は、リクエスト先の部品サービスから該当する部品のＪａｖａＳｃｒｉｐｔ（登録商標）のソースコードを取得する。タスク実行部１３３は、取得したソースコードをＨＴＭＬファイルに追加し、ブラウザ１２０上から利用可能にする。次いで、タスク実行部１３３は、追加されたＪａｖａＳｃｒｉｐｔ（登録商標）のソースコードから、呼び出し対象のメソッドを呼び出して実行する。なお、ＧＵＩロジック部品２３７の場合には、実行するメソッド名、入力パラメータ、出力結果の格納先が設定されているものとする。入力パラメータとしては、設定段階で直接値を入力してもよいし、データバス１２７上にあるデータを参照してもよい。出力結果の格納先にはデータバス１２７上にあるデータのデータＩＤを指定しておく。また、このとき、データバス１２７からデータを入出力する際に、データ変換部１２６を用いてデータの形式を変換してもよい。
【００８４】
ロジック部品２３８の場合、タスク実行部１３３は、リクエスト先の部品サービスから該当する部品の演算結果を取得する。次いで、タスク実行部１３３は、取得した結果をデータバス１２７に格納する。出力結果の格納先にはデータバス１２７上にあるデータのデータＩＤを指定しておく。また、このとき、データバス１２７からデータを入出力する際に、データ変換部１２６を用いてデータの形式を変換してもよい。
【００８５】
ステップＳ１６４において、タスク実行部１３３は、タスク１３５の実行が完了したことをフロー処理部１２４本体に通知する。これに応じて、フロー処理部１２４は、次のタスク１３６のインスタンスを生成し、実行待ちタスク・リスト１３１に処理装置により追加する。
【００８６】
ステップＳ１６５において、フロー処理部１２４本体（あるいは、タスク実行部１３３）は、ステップＳ１６２で実行したタスク１３５を、実行待ちタスク・リスト１３１から除去する。
【００８７】
ステップＳ１７１において、タスク実行部１３３は、タスク１３５が操作検出待ちタスク１２１２であるかどうかを処理装置により判断し、操作検出待ちタスク１２１２である場合には、ステップＳ１７２に移動する。そうでない場合はステップＳ１８１に移動する。
【００８８】
ステップＳ１７２において、タスク実行部１３３は、該当する操作検出ＩＤに対応するユーザの操作を検出対象の操作として登録する。操作検出部１２３では、ユーザが登録された操作を実行した場合に、その旨をフロー処理部１２４に通知する。これに応じて、フロー処理部１２４は、このタスク１３５の次のタスク１３６のインスタンスを生成し、実行待ちタスク・リスト１３１に処理装置により格納する。そして、フロー処理部１２４は、ステップＳ１６５に移動し、ステップＳ１７２で実行したタスク１３５を、実行待ちタスク・リスト１３１から除去する。
【００８９】
ステップＳ１８１において、タスク実行部１３３は、タスク１３５がフロー制御タスク１２１３であるかどうかを処理装置により判断し、フロー制御タスク１２１３である場合には、ステップＳ１８２に移動する。そうでない場合はフローを抜ける。
【００９０】
ステップＳ１８２において、タスク実行部１３３は、フロー制御タスク１２１３に記載されている条件式を実行し、条件判定を処理装置により行う。フロー制御タスク１２１３の種類には、分岐、合流、判断、フロー開始、フロー終了、画面遷移等があるため、これらの制御を行うために、データバス１２７上のデータや、タスク１３５が持っているデータを要素として条件判定する。
【００９１】
ステップＳ１８３において、ステップＳ１８２の条件判定の結果、条件に一致していた場合は、ステップＳ１８４に移動する。そうでない場合は、何もせずにフローを抜ける。
【００９２】
ステップＳ１８４において、フロー制御タスク１２１３が“フロー終了”であった場合、フローを終了させる。そうでない場合は、ステップＳ１８５に移動する。
【００９３】
ステップＳ１８５において、フロー制御タスク１２１３が“画面遷移”であった場合、ステップＳ１８６に移動する。そうでない場合は、ステップＳ１６４に移動し、フロー処理部１２４に通知する。これに応じて、フロー処理部１２４は、次のタスク１３５のインスタンスを生成し、実行待ちタスク・リスト１３１に処理装置により追加する。
【００９４】
ステップＳ１８６において、画面遷移をするための準備として、タスク実行部１３３は、画面遷移先のアプリケーション定義情報２２５が置いてあるＵＲＬ等（即ち、アプリケーション・サーバ２２０の特定の格納場所を示す情報）を保持し、フローを抜ける。このＵＲＬ等は、実行エンジン１２１本体に渡され、ステップＳ１０４で利用される。
【００９５】
このように、本実施の形態においては、アプリケーションで行う処理の部品をフローで定義し、そのフローを実行することで、任意のアプリケーションを即座に構築できる構成とした。また、これにより、処理の流れとデータの依存関係を分離することができ、部品の設計者はデータの更新タイミングを考慮しなくてもよく、開発者の負荷を軽減することができる。また、部品間の入出力結果を変換することにより、やり取りするデータの形式を意識する必要がなくなり、部品改修時に部品のインタフェースを改修する必要がなく、開発者の負荷を軽減できる。
【００９６】
また、既に部品が用意されている状態であれば、設定情報の組み合わせだけでアプリケーションを実行できるため、アプリケーションの開発効率、及び、改修効率が向上する。
【００９７】
クライアント側で、処理を実行する際にアプリケーション定義情報２５５を読み込む構成のため、アプリケーション定義情報２５５の変更内容が、次回のブラウザ１２０の画面更新時には即座に反映されているため、アプリケーション改修までの期間が短く、開発作業を効率化することができる。
【００９８】
なお、本実施の形態では、同一のアプリケーション・サーバ２２０上にある部品のみを用いて説明しているが、これに限らず、インターネット５００外部にある複数のアプリケーション・サーバ６２０上にある部品等も使ってもよい。これにより、クライアント側には意識させずに使用できる部品の追加・拡張が容易にできる。また、共有することができる部品を拡充することにより、再利用性を高め、開発を効率化することができる。
【００９９】
また、従来はブラウザ１２０上の画面の一部の表示内容を更新するだけでも、画面全体を更新しなければならず、サーバとの通信が発生していたが、この方法では、必要なときに必要な箇所のみ画面更新することができるので、重複した通信量を削減できる、また、サーバサイドで実行する処理を最低限にでき、ユーザへのレスポンスを高速化することができる。また、画面の一部の表示内容を更新する手順をカスタマイズしやすくなる。
【０１００】
また、表示する画面の内容、使用する部品、及びその処理順序等をＧＵＩでグラフィカルに定義し、アプリケーション定義情報２５５を生成する開発支援用のツールを用意することで、より一層開発効率を向上させることができる。
【０１０１】
また、例えば、クライアント側にはＪａｖａＳｃｒｉｐｔ（登録商標）が実行できる環境があればよく、一般的なブラウザ以外、アプリケーションを実行するために必要なドライバをクライアント側にインストールする必要がないため、ユーザが利用する上での敷居を低くすることができる。
【０１０２】
また、異なるシステムが持つ機能を部品化しておくことにより、複数のシステムの機能を持つような統合アプリケーションの開発が容易になる。
【０１０３】
以上説明したように、本実施の形態は、アプリケーション開発の効率化に関するものであり、特に、アプリケーション画面、及び、画面を利用する上で必要なロジックのカスタマイズ方法に関するものである。
【０１０４】
本実施の形態では、イベント駆動で部品を呼び出す、部品呼出時にデータ形式を変換することを特徴とする、アプリケーション実行方法を提供することで、開発者の負荷低減を得ることができる。
【０１０５】
本実施の形態に係るアプリケーション実行装置は、アプリケーションの実行順序をフローで制御しイベント駆動で部品を呼び出す実行エンジン１２１、部品呼出時にデータ形式を変換し部品間のインタフェースの違いを吸収するデータ変換部１２６、を備えることを特徴とする。
【０１０６】
本実施の形態に係る実行エンジン１２１、及び、フロー制御方法は、部品呼出タスク１２１１、操作検出待ちタスク１２１２、フロー制御タスク１２１３を組み合わせて記述されたフローを、クライアント上で解釈して実行制御することを特徴とする。
【０１０７】
また、実行エンジン１２１は、ＧＵＩ部品２３６、クライアント上で処理を実行するＧＵＩロジック部品２３７、サーバ上で処理を実行するロジック部品２３８を組み合わせて処理を実行することを特徴とする。
【０１０８】
また、実行エンジン１２１は、クライアント側で、アプリケーションの実行時にアプリケーション定義情報２２５を読み込むことで、設定変更を即座に反映することができることを特徴とする。
【符号の説明】
【０１０９】
１００  クライアント・コンピュータ、１２０  ブラウザ、１２１  実行エンジン、１２２  画面構成部、１２３  操作検出部、１２４  フロー処理部、１２５  部品呼出部、１２６  データ変換部、１２７  データバス、１２８  データ、１３１  実行待ちタスク・リスト、１３２  実行管理部、１３３  タスク実行部、１３４  タスク・リスト、１３５，１３６  タスク、１３８  フォーマット、１４０，２４０，６４０  ハードディスク、１６０，２６０，６６０  通信インタフェース、２００，６００  サーバ・コンピュータ、２２０，６２０  アプリケーション・サーバ、２２５  アプリケーション定義情報、２２６  画面定義情報、２２７  動作フロー定義情報、２２８  操作検出定義情報、２３０  部品サービス実行部、２３５  部品リポジトリ、２３６  ＧＵＩ部品、２３７  ＧＵＩロジック部品、２３８  ロジック部品、３００  通信回線、４００  プロキシ・サーバ、５００  インターネット、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２１  オペレーティング・システム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、１２１１  部品呼出タスク、１２１２  操作検出待ちタスク、１２１３  フロー制御タスク、１２２１  属性情報、１２３１  データ。
【図１】
0005409529.tif 000002
【図２】
0005409529.tif 000003
【図３】
0005409529.tif 000004
【図４】
0005409529.tif 000005
【図５】
0005409529.tif 000006
【図６】
0005409529.tif 000007
【図７】
0005409529.tif 000008
【図８】
0005409529.tif 000009
【図９】
0005409529.tif 000010