説明

プログラムの実行システムおよび実行方法

本発明は、アプリケーションとアプリケーションコンポーネントとを実行する場合に、ソフトウェアアプリケーション内の異なるコンポーネントの類似の機能を使用する方法およびシステムに関する。一実施形態では、所定の構造がコンポーネントタイプごとに作成され、ここで、各コンポーネントタイプは、実行される場合に類似の機能を有する。パラメータ情報は、クライアントにおいて受信され、前記所定の構造とリンクされて、スクリプト固有の所定の構造を提供する。このスクリプト固有の所定の構造を実行することによって前記コンポーネントが実行される。ユーザが前記コンポーネントを終了した後に、該スクリプト固有の所定の構造は自動的に削除される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にソフトウェアプログラムの分野に関する。特に、本発明は、プログラムのコンポーネントを実行するためのシステムおよび方法に関する。
【背景技術】
【0002】
クライアント−サーバおよびスタンドアローン環境の両方でプログラムを実行するのに使用される複数の方法およびシステムがある。すべてのものが、プラットフォーム依存性の問題や、サーバおよびネットワークの帯域幅への負荷や、ガーベジコレクションや、耐障害性や、低実行速度および他の問題などの複数の欠点を有している。
【0003】
クライアントが小さく設計されており、データ処理の多くがサーバ上で生じるクライアント/サーバ環境がある。これらのクライアントは通常シンクライアントと称されており、これらは、ネットワークコンピュータ上で実行するJava(登録商標)ベースシンクライアントをサポートするNetscape社およびSun Microsystems社などの企業によって推奨されている。他方、Microsoft社およびIntel社は、デスクトップコンピュータ上でローカルに実行されるより大きなアプリケーションを奨励している。
【0004】
ソフトウェアプログラムは、通常、C、Java(登録商標)、C++、VB、Perlなどの多数のハイレベル言語のうちの1つを使用して展開される。ソースコードは、プログラムを実行するためにプロセッサが理解および使用可能なマシーンコードにコンパイルされる。一般的に、プログラムは3つの異なる方法を使用してコンパイルおよび実行される。(a)プラットフォーム依存性実行ファイル(exe)または動的リンクライブラリ(dll)と、(b)バーチャルマシーンによって実行されるプラットフォーム独立バイトコードと、(c)ラインごとに解釈および実行されるプラットフォーム独立バイトコードとのいずれかにプログラムをコンパイルすることによって、ハイレベル言語はマシーンコードにコンパイルされる。
【0005】
ソフトウェアプログラムを準備する間にいずれのハイレベル言語およびプログラム実行方法を利用するかについての選択は、展開の容易性や、コンポーネントの再利用性や、(プラットフォーム依存性に関する)メンテナンスの容易性や、(メモリおよびネットワークの帯域幅負荷に関する)最小限のリソースでの高速プログラム実行などの多数の要因に左右される。記述言語およびバイトコードのオプションは、通常、実行速度よりもむしろ(オペレーティングシステムおよびプロセッサ独立性という)プログラムメンテナンスの容易性ゆえに使用される。
【0006】
C言語/C++言語により記述されたプログラムは、コンパイルされた場合にマシーン読み取り可能なプラットフォーム依存性実行ファイルを形成する。クライアント−サーバ環境において、クライアントのユーザがプログラムの実行を望む場合には、クライアントはサーバにリクエストを送り、実行ファイル全体がクライアントに転送される、つまり、実行ファイルのコピーがサーバからクライアントに転送されてクライアントコンピュータ上で実行される。このことは、クライアントとサーバコンピュータとの間で情報を送受信するために相当量のネットワーク帯域幅を使用することを伴う。処理の多くがクライアントコンピュータで実行されるが、必要とされる情報は常時送信される必要がある。
【0007】
別の欠点は、プログラムのプラットフォーム依存性である。Windows(登録商標)オペレーティングシステムにコンパイルされたプログラムはLinuxオペレーティングシステム上では実行不可能であり、逆もまた同様である。結果として、サーバは、異なるオペレーティングシステムを実行するクライアントにサービス提供するために複数の実行ファイルのバージョンを管理する。
【0008】
これらの欠点の一部に対処するように、Sun Microsystems社がJava(登録商標)を作成した。Java(登録商標)により記述されたプログラムはプラットフォーム独立性である。Java(登録商標)コンパイラはJava(登録商標)ソースコードをバイトコードに変換し、これはJava(登録商標) Virtual Machine(以下、「JVM」とよぶ)によって理解される。JVMは、プラットフォーム依存性であり、プログラムをマシーン読み取り可能なフォームに変換して実行する。しかしながら、バイトコードは高密度であり、サーバからクライアントに送信されなければならないため、ネットワーク帯域幅のクラッターを引き起こす。さらに、Java(登録商標)により記述されたプログラムの多くは、必要な処理がサーバコンピュータで実行されるようにプログラミングされている。これは、サーバによって一度にサービス提供可能なクライアント数を制限する。
【0009】
Java(登録商標)Scriptおよび他の類似の言語はインタープリタ型言語である。このような言語では、クライアント側にインタープリタがあり、クライアントはテキスト形態のスクリプトを受信する。クライアント側のインタープリタは、プログラムを実行するために一度に1つ以上のラインを解釈する。プログラムスクリプトの実際のテキストが送られるため、C/C++の実行ファイルやJava(登録商標)バイトコードが送られる場合に課されるよりもネットワーク帯域幅の負担は軽い。帯域幅の負担が軽いことの理由は、実行ファイルおよびバイトコードファイルがより高密度であるためである。しかしながら、Java(登録商標)Scriptは、スクリプト全体がサーバからクライアントに送られることを要する。多くの場合スクリプト全体は送信される必要はないため、このことは必ずしもネットワーク帯域幅を停滞させるわけではない。
【0010】
SQLおよびOracleのデータベースなどのクライアント−サーバ環境において使用されるデータベースでは、クライアントはサーバにクエリーを送り、サーバはリクエストされた情報をクライアントに送る。情報を表示するために必要なインテリジェンス(intelligence:知能または情報)はクライアントに常駐しているため、ユーザインタフェースに関する処理はクライアントコンピュータで実行される。しかしながら、式を解く必要がある場合には、サーバにコンタクトをとる必要がある。このような場合には、サーバは、データベースから情報を検索して、式の結果を算出し、情報をクライアントに送り返す。このことは、サーバプロセッサが結果を算出することを必要とするため、スローダウンし、サーバにおいてサービスが提供されている他のクライアントを制限する。
【0011】
サーバが、定期的なメンテナンス手順、クラッシュ、または不具合を経験する場合には、クライアントは、接続解除され、サーバが固定された場合のみサーバにアクセス可能である。小企業では、不具合のあるサーバコンピュータが固定されている間にクライアントの負荷を転送するための複数のサーバの余裕がないため、この問題は特に小企業に影響を与える。
【0012】
ガーベジコレクションは、スタンドアローン環境およびクライアント−サーバ環境における当該分野におけるもう1つの問題である。ランダムアクセスメモリ(RAM)に割り当てられたメモリは、メモリのクラッターを回避するために使用された後に割り当て解除される必要がある。プログラムがC/C++言語により記述されている場合には、プログラマーはマニュアルでメモリを割り当て解除しなければならない。プログラマーは、スペースを割り当てるために「malloc」コマンドを使用し、スペースを開放するために割り当て解除コマンドを使用する。しかしながら、プログラマーは、ソフトウェアプログラムを記述するときにメモリスペースの割り当て解除をしばしば無視するため、メモリクラッターを招く。
【0013】
Java(登録商標)は、そのようなJVMにおける上記の問題に対処することを意図している。JVMは、一定期間参照されていないメモリのトラックを保持し、そのメモリを自動的に割り当て解除する。しかしながら、JVMを備えたデバイスは、参照されていないオブジェクトを定期的に検索して削除するための貴重な処理電力を内蔵しなければならない。さらに、参照されていないオブジェクトは、使用されずにメモリに記憶されている間に貴重なメモリを使い果たしている。
【0014】
ネットワーク帯域幅およびサーバ処理の負荷や、プラットフォーム独立性や、ガーベジコレクションや、耐障害性などのプログラム実行に関連する問題に対処する必要がある。
【0015】
本発明の目的および利点の多くが、以下の詳細な説明および添付の図面を閲覧した後に、当業者には明らかになるであろう。
【発明の開示】
【0016】
本発明は、複数の形態、構造および方法により具現化されうる。以下に提供される説明および図面は、クライアント−サーバ環境における本発明の例示的実施形態を示す。当業者は、スタンドアローン環境を含む、以下に示されていない他の形態、構造および方法により本発明が具現化できることを理解するであろう。本発明は、請求項の全範囲を有することになろうが、以下に示される実施形態によって制限されるべきではない。
【0017】
本発明は、一般に、プログラムおよびプログラムコンポーネントを実行するための方法およびシステムに関する。1つ以上のプログラムの多数のコンポーネントは、実行される場合に、同一の意図された機能、つまりコンポーネントの機能を有する。例えば、フォームが実行される場合には、このフォームは、グラフィカルユーザインタフェースと、データ入力用フィールドと、このフォームを他のフォームやコンポーネントにリンクさせるボタンと、フォームに入力されたデータが他のフォームやコンポーネントに影響する様子を示す相関情報と、式を計算する式解答能力とを有するという機能をもつ。多くのフォームは、同一の意図された機能をもつ。1つ以上のプログラムの多数のコンポーネントは同一の意図された機能をもつ。
【0018】
本発明の実施形態によると、複数のコンポーネントタイプのうちの1つの意図された機能を有する所定の構造(predetermined structure:以下、「PDS」とよぶ)が作成される。従って、フォーム例では、PDSは、ユーザインタフェースとフィールドとボタンと相関と式との意図された機能を備えた一般的な構造を含む。
【0019】
本発明の一実施形態では、PDSはクライアントのメモリに記憶されており、他の実施形態では、PDSはクライアントおよびサーバの両方に記憶されている。クライアントは特定のコンポーネントをサーバからリクエストしてもよく、ユーザはこのコンポーネントを実行する、例えばビジネスプログラム用フォームを実行することができる。一実施形態では、サーバは、コンポーネントに関するパラメータ情報のみをクライアントに送る。パラメータ情報は、例えば、クライアントが実行予定の特定のコンポーネントに関する特定の情報を含む。例えば、フォーム例では、パラメータ情報は、ユーザインタフェースと、フィールド名およびタイプと、フォーム間およびフォーム内のフィールドへと挿入される事前入力されたユーザデータへのリンクと、例えばコストフォームが異なる利益(profit)フォームのデータに影響する様子を示す情報などの、フォームに入力されたデータが別のフォームのデータに影響する様子を示す相関情報と、例えばプロセッサに複数のサブコストを合計してトータルコストを算出するように命令する情報などの式解答情報とに関する特定の情報を含みうる。
【0020】
ユーザはこの情報をクライアントにおいて受信し、これを対応する所定の構造にリンクさせて、スクリプト固有の所定の構造を提供し、またはクライアントはスクリプト固有の所定の構造を実行する。フォームの意図された機能のすべてがクライアントメモリにPDSとして記憶されているため、パラメータ情報のみが、クライアントでの処理のためにクライアントに送信されていればよい。スクリプトフォーマットのパラメータ情報のみを送信することによって、多くの高密度バイトやマシーンコードを送信したり、フォームの基本構造を含むスクリプト全体を送信したりするのに比べて多くのネットワーク帯域幅が保存される。
【0021】
別の実施形態では、ユーザがコンポーネントを終了した後、例えば、ユーザがコンポーネントを閉じた後、クライアントは自動的にコンポーネントを削除する。結果として、メモリ利用の改良が達成され、ガーベジコレクションに関連する問題が緩和される。他のシステムでは、プログラマーがシステム上で実行されるプログラムごとにメモリを割り当て解除するコマンドをマニュアルで含める必要があるか、プロセッサがメモリを定期的にスキャンして未使用コンポーネントを削除する必要がある。プログラマーの怠慢および定期的なスキャンは、メモリクラッターおよび処理電力消費をもたらす。
【発明を実施するための最良の形態】
【0022】
図1は、クライアント−サーバ環境における本発明の一実施形態を示す。各クライアント102、104、106は、通信ネットワーク111を介してサーバ108と通信しており、これは、例えば、インターネットなどのワイドエリアネットワーク、ローカルエリアネットワーク、または基地局および移動局を含む無線ネットワークでありうる。
【0023】
図1aは、本発明の実施形態に従ったサーバ108を示す。図1aの実施形態では、サーバ108は、長期間メモリ114と短期間メモリ112とプロセッサ110とトランシーバー116とを有するコンピュータを含む。サーバの長期間メモリ114は、データを記憶しており、コンピュータのハードディスクドライブを含みうる。一実施形態では、サーバの長期間メモリ114は、プログラムスクリプト128とユーザデータベース127とランタイムエンジン120とをその中に記憶して含む。ランタイムエンジン120は、パーサー122と、PDS125およびリンカー124を備える実行エンジン126とを含む。短期間メモリ112は、コンピュータのランダムアクセスメモリを備えてもよく、これは、プログラムまたはプログラムコンポーネントがサーバ108によって実行される場合に使用される。
【0024】
プロセッサ110は、コンピュータのマイクロプロセッサを備えてもよく、複数の機能を実行するのに使用される。ランタイムエンジンは、プロセッサ110に対し種々の手順の実行を命令してもよい。一実施形態では、サーバパーサー122はプロセッサ110に対し、クライアント102によってリクエストされたコンポーネントの検索を命令し、サーバ実行エンジン126はサーバトランシーバー116にパラメータ情報を有するコンポーネントスクリプトをクライアント102に送信することを命令する。他の実施形態では、サーバ実行エンジン126は、プロセッサ110に対し、リクエストされたコンポーネントに関連してユーザデータベース127に記憶されている事前入力されたユーザ定義データのパラメータ情報をクライアント102に送信することも命令する。別の実施形態では、サーバリンカー124は、サーバプロセッサ110に対し、コンポーネントスクリプトをPDS125にリンクさせて、スクリプト固有PDSを提供することを命令し、そして、サーバ実行エンジン126は、サーバプロセッサに対し、スクリプト固有PDSをサーバの短期間メモリ112に一時的に記憶して実行し、終了後にスクリプト固有PDSを削除することを命令する。
【0025】
サーバプロセッサ110は、ランタイムエンジン120、スクリプト128、またはユーザデータベース127からのデータなどの情報を、長期間メモリ114から短期間メモリ112に一時的に移動させる。サーバ108のトランシーバー116は、スクリプトをクライアントに送信し、ユーザからリクエストを受信するなど、情報を送受信するのに使用される。
【0026】
図1bは、本発明の実施形態に従ったクライアントを示す。クライアント102は、例えば、モバイル電話や携帯情報端末(PDA)などのコンピュータや携帯デバイスを含みうる。クライアント102は、クライアントの長期間メモリ136および短期間メモリ132と、クライアントプロセッサ130と、クライアントトランシーバー146とを含む。クライアントの長期間メモリ136は、情報を記憶するように構成されており、コンピュータのハードディスクドライブや携帯デバイスのメモリチップを含みうる。クライアントの長期間メモリ136は、その中に記憶されたランタイムエンジン138を含み、ランタイムエンジン138は、パーサー140と、PDS143およびリンカー142を備える実行エンジン144とを含む。クライアントの短期間メモリ132は、コンピュータのランダムアクセスメモリや、携帯デバイスで使用される類似のチップを含みうる。クライアントプロセッサ130は、コンピュータや携帯デバイスのチップをそれぞれ含む。
【0027】
一実施形態では、クライアントパーサー140は、クライアントプロセッサ130に対し、コンポーネントスクリプトおよび所定の構造143内の(以下により詳細に説明される)識別子の検索を命令し、クライアントリンカー142は、クライアントプロセッサ130に対し、リクエストされたコンポーネントのパラメータ情報を対応するPDS143にリンクさせてスクリプト固有PDSを提供することを命令し、クライアント実行エンジン144は、クライアントプロセッサ130に対し、スクリプト固有PDSをクライアントの短期間メモリ132に一時的に記憶して実行することを命令する。ユーザがリクエストされたコンポーネントを終了する場合には、クライアント実行エンジン144は、クライアントプロセッサ130に対し、スクリプト固有PDSを自動的に削除することを命令する。
【0028】
クライアントプロセッサ130は、ランタイムエンジン138などの情報を長期間メモリ136から短期間メモリ132に一時的に移動させるためにも使用されてもよい。クライアントトランシーバー146は、情報を送受信する、例えばリクエストをサーバ108に送信し、サーバ108からスクリプトを受信するのに使用されてもよい。
【0029】
クライアントランタイムエンジン138は、クライアントとサーバとの一方または両方に記憶されうる。従って、ランタイムエンジン138は、クライアント102、サーバ108、または、ピアツーピアあるいはオフラインアプリケーションとして作用するように構成可能である。サーバ108とクライアント102との両方が同量のインテリジェンスを有していれば、これらは、サーバまたはクライアントとしての役割を交換可能である。交換はシステムの耐障害性を増大させるため、マシーンの不具合があれば、ネットワークの他のマシーンが、システムを混乱させることなく不具合のあるマシーンの動作負荷を効率的にサポート可能である。耐障害性に加えて、このアーキテクチャは、各マシーンが自己の処理を実行可能であるために、ネットワークトラヒックを削減する。従って、クライアントとサーバとの間の連続通信は必要とされない場合もある。
【0030】
本発明は、図1のクライアント−サーバ環境により示されているが、本発明は他の形態により具現化できる点に注目すべきである。例えば、本発明は、長期間メモリおよび短期間メモリとプロセッサとを備えるスタンドアローンコンピュータにより具現化されうる。他の実施形態では、本発明は、例えば、磁気テープや、磁気ディスクおよび光学ディスクを含むディスクや、メモリチップなどの任意の媒体に記憶されうる。そして、本発明は、コンピュータや携帯デバイスなどの処理能力を有する他のデバイス上に媒体からロードされうる。
【0031】
コンポーネントタイプごとにPDSがあり、図2はPDSを作成するための本発明の実施形態を示す。ステップ210において、所望のコンポーネントタイプおよびその意図された機能が識別される。多くのソフトウェアプログラムは、複数のコンポーネントを含み、これらは、実行される場合に特定の機能を示す1つ以上のスクリプトラインを含む。スクリプトは、例えば、C、Fortran、Java(登録商標)、または、以下により詳細に説明される本発明の好ましい実施形態であるVscriptなどの任意のプログラミング言語でありうる。
【0032】
コンポーネントは、その意図された機能、実行される場合にコンポーネントが示す機能に基づいたコンポーネントタイプへと分割されて、コンポーネントは、通常、プロセッサによって実行される。プログラムに見られるいくつかのコンポーネントタイプは、プログラマー定義データタイプと、プログラマー定義オブジェクトと、フォームと、ビューと、レポートと、プログラマー定義機能と、メニューと、第三者実行ファイルとを含む。
【0033】
上記のように、各コンポーネントは、(例えばサインおよびシンボルがユーザインタフェース上のどこに配置されているかなどの)ユーザインタフェースが現れる様子と、コンポーネントの構造およびコンポーネント間の相関関係などのアプリケーションモデルと、式解答能力などの類似の意図された機能とを有する。例えば、多くのフォームは、グラフィカルユーザインタフェースと、データ入力用フィールドと、フォームを他のフォームやコンポーネントとリンクさせるボタンと、フォームに入力されたデータが他のフォームやコンポーネントに影響する様子を示す相関関係情報と、式を計算する式解答能力とを有するこれらの機能のうちの1つ以上を、これらが実行される場合に示す。例えば、メニューコンポーネントタイプは、特定のグラフィカル表示を示し、ドロップダウンメニューと、実行される場合に種々の他のコンポーネントタイプにリンクするドロップダウンメニュー選択とを含む。当業者は、他の意図された機能を有する他のコンポーネントタイプがあることと、これらの他のコンポーネントタイプが本発明の範囲内にあることを理解するであろう。
【0034】
ステップ220において、PDSはコンポーネントタイプごとに作成される。PDSは、その対応するコンポーネントタイプの意図された機能を有するように記述されたスクリプトを含む。従って、PDSの構成は、その対応するコンポーネントタイプにより左右される。フォームおよびメニューコンポーネントタイプのPDSの例が以下に提供されており、Cプログラミング言語により記述されている。しかしながら、他の実施形態では、PDSは、例えばFortranおよびJava(登録商標)などの他の言語により記述される場合があることに注目すべきである。PDSがクライアントおよび/またはサーバにおいてマシーンコードにより記憶されることにも注目すべきである。PDSは、PDSがロードされているクライアントやサーバにおいて使用される特定のオペレーティングシステムおよびプロセッサタイプに従ってプリコンパイルされる。従って、クライアントに送られるパラメータ情報はプラットフォーム独立的であり、異なるタイプのスクリプトやコードは異なるオペレーティングシステムやプロセッサには必要ではない。
【0035】
フォーム用PDSは、そのフォームの意図された機能を有するべきである。以下に示される実施形態では、フォームPDSは、(以下に「struct tag_VQL_FormInfo」とラベリングされた)一般的タイトル部分と、(以下に「struct tag_VQL_Form」とラベリングされた)一般的構造部分と、(以下に「struct tag_VQL_FieldInfo」とラベリングされた)フィールド構造部分と、(以下に「struct tag_VQL_ForeignLink」とラベリングされた)外部リンク部分と、(以下に「struct tag_VQL_Grid」とラベリングされた)グリッド構造部分と、(以下に「struct tag_VQL_BoundInfo」とラベリングされた)グリッドフィールドプロパティ部分とを含む。これらの部分はフォームの意図された機能を含む。以下に示されるフォームPDSはPDS内の特定のラインへの矢印を含むことに注目する。矢印は、PDSがコンポーネントにリンクされる場合に特定のフォーム用スクリプトがPDSに挿入されることになる場所を示す。1つのプログラムからのフォームスクリプトの一例を提供し、リンクプロセスについて説明する。
【0036】
[フォームPDS、タイトル部分−スクリプト1]
フォームPDSの一般的タイトル部分は、フォームのタイトルが現れる様子を示す情報を含み、このようなタイトル部分の一例を以下に示す。タイトルおよびオブジェクトの情報に関するPDSスクリプトは、矢印によって以下にマーキングされる。さらに、フォームスクリプト(Script9)により提供されるようなタイトルが示される。このフォーム構造および/または他のフォーム構造は、フォームにおけるラベルおよびフィールドのすべてにおいて使用されるスクリーンサイズや表示座標や背景色やフォントなどのフォームの追加特性を捕捉するように拡張可能である。この情報は、以下により詳細に説明されるリンクステップ中に使用される。
【0037】
【数1】

【数2】

【0038】
[フォームPDS、一般的構造部分−スクリプト2]
フォームPDSの一般的構造部分は、ウィジェット(widgets)に関する情報とグリッド手段と他の情報とを含み、このような一般的構造部分の一例を以下に示す。フィールドリストと、フォームにおいてフィールドが使用される様子との間の間隔に関する情報を示すPDSスクリプトが矢印によって以下にマーキングされる。
【0039】
【数3】

【0040】
[フォームPDS、フィールド構造部分−スクリプト3]
フォームPDSのフィールド構造部分はフォーム内の各フィールドに関する情報を含み、このようなフィールド構造部分の一例が以下に示される。フォーム内で使用されるフィールドの名称、識別およびサイズに関する情報を示すPDSスクリプトが矢印によって以下にマーキングされる。さらに、フォームスクリプト(Script9)により提供されるようなフィールドの名称と識別とサイズとが示される。この情報は、以下により詳細に説明されるリンクステップ中に使用される。
【0041】
【数4】

【0042】
[フォームPDS、外部リンク部分−スクリプト4]
フォームが別のコンポーネントへのリンクを含む場合には、これは外部リンクを有しており、本発明の実施形態に従って、フォームPDSの外部リンク部分が存在することになり、これは、このフォームから他のコンポーネントへのリンクに関する情報を含む。このような外部リンク部分の一例を以下に示す。
【0043】
【数5】

【数6】

【0044】
[フォームPDS、グリッド構造部分−スクリプト5]
フォームがグリッドを含む場合には、本発明の実施形態に従って、フォームPDSのグリッド構造部分が存在することになり、これは行列のグリッドサイズに関する情報および他のグリッド情報を含む。このようなグリッド構造部分の一例を以下に示す。
【0045】
【数7】

【0046】
[フォームPDS、グリッドフィールド構造部分−スクリプト6]
フォームがグリッドを含む場合、本発明の実施形態に従って、フォームPDSのグリッドフィールド構造部分が存在することになり、これは、フィールドと列IDおよび列サイズなどの、グリッド内のフィールドに関する情報を含む。このようなグリッド構造部分の一例を以下に示す。
【0047】
【数8】

【数9】

【0048】
従って、以下に示される実施形態では、フォームPDSは、表示される場合にタイトルがどのように見えるか、フォームが実行される場合にフォームのグラフィカル表示がどのように現れるかに関する情報や、フォーム内のフィールドに関する情報や、フォーム上のリンク(つまりボタン)があれば、リンクによるフォームの接続先に関する情報や、フォームに入力されたデータが他のフォームやコンポーネントに如何に影響するかに関する情報や、フォームがグリッドを含んでいれば、グリッドおよびグリッド内のフィールドに関する情報などのように、フォームの意図された機能を含む。
【0049】
[メニューPDS、メニュー構造部分−スクリプト7]
メニュー用PDSは、メニューの意図された機能を有するべきである。以下に示される実施形態では、メニューPDSは(以下に「Struct_tag_VQL_MenuInfo」とラベリングされた)メニュー構造部分を含む。メニュー構造部分は、メニューグラフィカル表示と、ドロップダウンメニューと、ドロップダウンメニューが含むリンクに関する情報とを含む。
【0050】
【数10】

【0051】
従って、上記PDSは、(例えばサインおよびシンボルがユーザインタフェース上に配置される場所などの)ユーザインタフェースが現れる様子と、コンポーネントの構造およびコンポーネント間の相関関係などのアプリケーションモデルと、式解答に関する情報とを含む。2つのPDSの例が上記に提供されており、限られた数のコンポーネントタイプが上記に提供されているが、当業者は、異なる機能を有する他のコンポーネントタイプと、他のコンポーネントタイプの意図された機能を含むように作成された他のPDSと、対応する実行エンジンとに、本発明が適用できることを理解するであろう。
【0052】
本発明の実施形態では、ランタイムエンジン120、138は、媒体に保持されて、プロセッサ110、130を含むデバイスへとロードされる。デバイスのプロセッサ110、130は、PDS125、143をパラメータ情報にリンクさせて、スクリプト固有PDSを提供し、このスクリプト固有PDSを実行する。他の実施形態では、プロセッサは、スクリプト固有PDSを一時的に記憶し、ユーザがコンポーネントを終了した後にスクリプト固有PDSを自動的に削除する。
【0053】
本発明の実施形態によると、PDSは、サーバ108とクライアント102とのいずれかもしくは両方によって、または、他の実施形態ではスタンドアローンコンピュータによって、対応するコンポーネントスクリプトにリンクされる。図3は、クライアントのリクエストに応答してスクリプトをクライアント102に送るサーバ108の実施形態を示す。
【0054】
ステップ310において、サーバ108は、プログラムに対するクライアントリクエストを受信する。通常、サーバ108のトランシーバーは、クライアントトランシーバー146によって送信されたリクエストを受信する。ステップ320において、サーバ108はユーザアクセスレベルに基づいてユーザ315を認証する。サーバプロセッサ110は、ユーザによって送信されたユーザIDおよびパスワード情報を、ユーザデータベースに記憶されているアクセスレベル情報と比較してもよい。他の方法のユーザ識別は、バイオメトリクスやハードウェアロックなどを含む。
【0055】
ステップ330において、セッション番号が作成される。セッション番号は、しばしば、ワールドワイドウェブなどのWAN環境において使用される。セッション番号は、クライアントとサーバとの間の特定の通信を識別する。通信の識別によってクライアントまたはサーバのいずれかが、後に通信を参照して返すことができ、多数のインスタンスにおいて特別に保存された通信トランクの必要性を回避する。本発明の態様によると、セッション番号の使用は、LAN環境に適用されて、無接続通信プロトコルの使用を容易にすることによってクライアント−サーバセッション管理を支援する。
【0056】
ステップ340において、サーバ108は、ユーザリクエストに従ってプログラムスクリプトをロードする。一実施形態では、サーバプロセッサ110は、プログラムスクリプト128を長期間メモリ114から短期間メモリ112に転送する。ステップ350において、サーバ108は適切なコンポーネントを検索する。サーバパーサー122からの命令ごとに、サーバプロセッサ110はランタイムエンジン120を長期間メモリ114から短期間メモリ112に転送し、スクリプトにおける適切なコンポーネントを検索する。他の実施形態では、事前入力されたユーザデータが適切なコンポーネントにおいて参照されると、サーバプロセッサは事前入力されたユーザデータをユーザデータベース127から検索する。通常、検索された第1のコンポーネントは、クライアントに送られるメニューである。他のコンポーネントもクライアントリクエストに応じて検索されることがある。Vscript言語のメニューおよびフォームスクリプトの例を以下に提供する。
【0057】
本発明の代替実施形態では、PDS125、143は、パラメータ情報にリンクされて、テストや他の目的でサーバにおいてスクリプト固有の所定の構造を提供し、このような場合には、サーバ実行エンジン126は、サーバプロセッサに対し、スクリプト固有の所定の構造を実行するように命令することもある。代替実施形態では、ステップ360において、コンポーネントは、コンポーネントと同じ機能を有する対応するPDSにリンクされて、スクリプト固有PDSを提供する。サーバリンカー124からの命令ごとに、サーバプロセッサ110は、ユーザデータベース127およびコンポーネントスクリプト128から事前入力された関連ユーザデータを含むパラメータ情報をPDSにリンクさせる(リンクプロセスは、サーバおよびクライアントにおいて同じであり、以下により詳細に論じる)。
【0058】
ステップ370において、適切なスクリプトが、通常、サーバプロセッサ110およびトランシーバー116によってクライアント102に送信される。上記提供された例において、実際のコンポーネントのスクリプトがVscriptにより記述され、これは本発明のランタイムエンジン120、138と併用するために作成されたスクリプトである点に注目すべきである。他のプログラミング言語によってコンポーネントを記述するのに必要とされるよりも少ないスクリプトにより記述されるコンポーネントを許容しているために、VScriptが使用される。結果として、サーバからクライアントに送信されるスクリプト量が削減され、本発明は、より様々なサーバ108と、クライアント102、104、106と、通信ネットワークとにおいて具現化されうる。本発明の他の実施形態では、C言語とFortranとJava(登録商標)と他の言語とを含む他のプログラミング言語がコンポーネントに使用されうると思われる。
【0059】
本発明の一実施形態では、クライアントは、パラメータ情報と、クライアント102に事前入力された関連ユーザデータなどの他のパラメータ情報とを含むコンポーネントスクリプトの送信をサーバに促進するリクエストをサーバ108に送信する。クライアントはスクリプト内の(以下に説明される)識別子を検索し、コンポーネントをPDS143にリンクさせて、図4に示されるようにスクリプト固有PDSを形成し、このスクリプト固有PDSを実行する。
【0060】
ステップ405において、通常、リクエストを形成するクライアントプロセッサ110と、リクエストをサーバ108に送信するクライアントトランシーバー146とによって、クライアント102は、サーバ108にリクエストを送信する。上記に提供されるように、サーバ108は、ユーザにアクセス情報の入力をリクエストすることによってクライアントのアクセスレベルを照合し、ステップ410において、ユーザはユーザアクセス情報を入力し、これは例えばユーザIDおよびパスワード情報でありうる。そして、サーバ108は、コンポーネントに関するパラメータ情報と、コンポーネントスクリプトにおいて参照される事前入力された関連ユーザデータに関するパラメータ情報とを含むリクエストされたコンポーネントスクリプト128を、ステップ415においてユーザに送信する。
【0061】
[メニューコンポーネントスクリプト−スクリプト8]
特定のメニューのドロップダウンメニューと、このドロップダウンメニュー内のリンクとに関する情報を示すメニューコンポーネントスクリプトの一例を以下に提供する。
【0062】
【数11】

【0063】
[フォームコンポーネントスクリプト−スクリプト9]
フォームのタイトルおよびフォーム内の種々のフィールドに関する情報を示すフォームコンポーネントスクリプトの一例を以下に提供する。
【0064】
【数12】

【数13】

【0065】
[フォームスクリプトのトークンオブジェクト−スクリプト10]
Script9に示されるフォームは、トークンおよび結果オブジェクトなどの、フォーム内で参照される複数のオブジェクトを含む。以下、(Script10および11に)トークンおよび結果オブジェクトの例示的スクリプトを提供する。
【0066】
【数14】

【数15】

【0067】
[フォームスクリプトの結果オブジェクト−スクリプト11]
【数16】

【0068】
ステップ425において、スクリプトおよびPDSは、スクリプトにおける識別子およびPDSにおける対応する識別子の使用によってリンクされる。例えば、フォームスクリプトにおいて、「#SETFORM.TITLE」は、フォームの対応するタイトル(「TOKENISSUE」)が「*formTitle」に隣接して配置されるべきであることを示す識別子であり、これはフォームPDSにおける対応する識別子である。ステップ420において、クライアント102は送信されたパラメータ情報内の識別子を検索する。一実施形態では、クライアントプロセッサ130はクライアントランタイムエンジン138を長期間メモリ136から短期間メモリ132に転送し、クライアントパーサー140はクライアントプロセッサ130に、送信されたコンポーネントスクリプトにおける識別子を検索するように命令する。クライアントパーサー140はまたクライアントプロセッサに、リクエストされたコンポーネントにリンクされているいずれかのコンポーネントを検索するように命令し、もしあれば、サーバからそのようなコンポーネントをリクエストして、ステップ415に進み、もしなければ、クライアントはステップ425に進む。
【0069】
ステップ425において、コンポーネントに関するパラメータ情報と、事前アクセスされた関連ユーザデータに関するパラメータ情報とを含むパラメータ情報134は対応するPDS143にリンクされて、スクリプト固有PDSを提供する。上記提供された例において、トークンスクリプト(および関連オブジェクト)(Script9〜11)は、適切なトークンPDS(Script1〜6)にリンクされて、フォーム固有PDSを提供するであろう。
【0070】
ステップ430において、スクリプト固有PDSが実行される。一実施形態では、クライアント実行エンジン144は、クライアントプロセッサ130に対し、スクリプト固有PDSを実行するように命令する。メニュースクリプト固有PDSおよびフォームスクリプト固有PDSを実行することによって実行されるメニューおよびフォームコンポーネントの例は、図5および6にそれぞれ示される。
【0071】
上記に提供されたように、PDSは、コンポーネントユーザインタフェースが現れ、PDSのグラフィカル表示機構が利用される様子に関する意図された機能を含む。本発明の一実施形態では、実行エンジン144がコンポーネントスクリプトに隣接する座標を読み取り、実行エンジン144がスクリプトに関する特定情報をディスプレイ上に表示すべき場所を認識する座標グラフィカル表示機構が利用される。
【0072】
本発明の別の実施形態では、自動グラフィカル表示機構が利用される。例えば、自動グラフィカル表示機構を使用してフォームを表示する場合には、実行エンジン144は、スクリプトが記述される方法に応じて情報の挿入場所を判断する。図6は、自動グラフィカル表示機構を用いる実行エンジン144によって実行される例示的フォームを示す。Script9のトークンを実行する場合には、「Bill No」はスクリプトに提供されている第1のフィールドであるため、実行エンジン144は、「Bill No」フィールドを、ディスプレイの左上角に第1のフィールドとして提供する。このフィールドは、Script9に提供されるように、6個の文字長である。「Date」フィールドは「Bill No」フィールドと同じライン上にあるため、6文字の「Date」フィールドは「Bill No」フィールドの次に配置される。「Patient Name」フィールドは、Script9に提供されるように次のライン上に提供されるため、48文字の「Patient Name」は次のライン上に配置される。スクリプトがPDSにリンクされた後にスクリプト構造の一体性が保存されるため、自動グラフィカル表示機構が適切にコンポーネントを実行可能である。他の実施形態では、自動グラフィック表示機構が、他のプログラムのニーズを満たすように異なって構成されうる点に留意する。
【0073】
またステップ430において、実行エンジン144は、クライアントプロセッサ130に対し、PDSの式解答意図された機能を利用して、コンポーネントを実行する場合にコンポーネントスクリプトの式を解くように命令する。クライアント102は、スクリプトを実行する場合に式を解く。式解答器によって解かれるであろう式の一例は、Script9において「Charges=(TEST.Charges*5.0)」とラベリングされる。加えて、ステップ430において、スクリプト固有PDSと他のコンポーネント間の相関関係は、PDSのアプリケーションモデル機能に基づいて管理される。
【0074】
PDSは、ユーザインタフェースと式解答とアプリケーションモデルとに関する意図された機能を含むため、パラメータ情報のみがサーバからクライアントに送信されていればよい。コンポーネントは、パラメータ情報をPDSと結合させてスクリプト固有PDSを提供し、このスクリプト固有PDSを実行することによって実行されてもよい。結果として、ネットワーク帯域幅およびサーバ処理負荷が削減される。従来のシステムは、サーバがユーザインタフェースを形成し、コンポーネント構造を判断し、コンポーネント相関関係を判断し、あるいは式を解いたり、このような機能のすべてを実行したりすることのいずれかを必要としていた。従って、高密度実行ファイル、高密度バイトコード、または場合によっては大きなソースコードファイルのいずれかが、コンポーネント実行のためにネットワーク全体に送信されて、システムがネットワーク帯域幅および/またはサーバ処理ひずみによって妨害されていた。
【0075】
本発明の一実施形態では、ステップ435において、クライアント102は、追加コンポーネントが必要か否かを判断し、必要な場合には、追加コンポーネントがステップ415で受信されなければリクエストされる。そして、ステップ420〜425が反復される。追加コンポーネントが必要でない場合には、ステップ440において、クライアント102はコンポーネントの使用が終了しているか否かを判断する。ユーザがコンポーネントを終了またはこれを閉じていなければ、クライアント102はコンポーネントの使用を終了しておらず、ステップ450においてコンポーネントの使用を係属する。ユーザがコンポーネントを閉じるか、終了している場合には、クライアントはコンポーネントの使用を終了しており、ステップ440またはステップ450のいずれかの後に、クライアントはステップ445に進み、クライアント102は全スクリプト134およびスクリプト固有PDSをクライアントの短期間メモリ132から自動的に削除する。
【0076】
通常、クライアント102がパラメータ情報を備えるサーバ108からスクリプトを受信する場合には、クライアントはパラメータ情報を対応する所定の構造143にリンクさせて、スクリプト固有PDSを提供する。スクリプトおよびスクリプト固有PDSはクライアントの短期間メモリ132に記憶される。クライアント102がプログラムの使用を完了した後、スクリプトおよびスクリプト固有PDSはクライアントの短期間メモリ132から自動的に削除される。スクリプトおよびスクリプト固有PDSを自動的に削除することによって、削除するファイルを定期的にスキャンする必要があるメモリおよびプロセッサの割り当て解除を無視するプログラマーに関する問題が緩和される。
【0077】
上記に提供されるように、図3および図4はクライアント−サーバ環境に適用された本発明の実施形態を示すことに留意する。当業者であれば、本発明はスタンドアローン環境にも適用されうることを理解するであろう。本発明の範囲は、上記の実施形態に制限されるものではなく、添付の請求項に従ってその全範囲に付与されるべきものである。
【図面の簡単な説明】
【0078】
【図1】クライアント−サーバ環境における本発明の実施形態のブロック図を示す。
【図1a】図1に示されたサーバのブロック図を示す。
【図1b】図1に示されたクライアントのブロック図を示す。
【図2】本発明の実施形態に従ったランタイムエンジンの一部を作成するためのステップのフロー図を示す。
【図3】本発明の実施形態においてサーバによって実行されるステップのフロー図を示す。
【図4】本発明の実施形態においてクライアントによって実行されるステップのフロー図を示す。
【図5】本発明の実施形態に従ってコンポーネントメニューが実行された後のメニューのグラフィカル表示を示す。
【図6】本発明の実施形態に従ってコンポーネントフォームが実行された後のフォームのグラフィカル表示を示す。

【特許請求の範囲】
【請求項1】
リクエストされたコンポーネントに関するパラメータ情報をサーバからクライアントに送信するステップと、
前記送信されたコンポーネントパラメータ情報を前記クライアントにおいて所定の構造にリンクさせて、スクリプト固有の所定の構造を提供するステップであって、該所定の構造は、前記リクエストされたコンポーネントの意図された機能に対応する意図された機能を有するものであるステップと、
前記スクリプト固有の所定の構造を実行して前記コンポーネントを実行するステップと
を含んでなる、あるスクリプトのリクエストされたコンポーネントを実行する方法。
【請求項2】
前記コンポーネントに対するリクエストを前記クライアントから前記サーバに送るステップをさらに含む請求項1に記載の実行方法。
【請求項3】
前記サーバにおいて前記スクリプトにおける前記リクエストされたコンポーネントを検索するステップをさらに含む請求項2に記載の実行方法。
【請求項4】
前記リンクステップが、前記パラメータ情報内の位置識別子を見出すステップと、前記所定の構造における対応する識別子に基づいて、該識別子と関連するスクリプトデータを前記所定の構造へと挿入するステップとをさらに含む請求項1に記載の実行方法。
【請求項5】
ユーザのアクセスレベルを判断するステップをさらに含み、前記送信するステップが、前記ユーザアクセスレベルに基づいて前記パラメータ情報を送信するステップをさらに含む請求項1に記載の実行方法。
【請求項6】
前記クライアントにおいて前記所定の構造を記憶するステップと、クライアントの所定の構造とサーバの所定の構造とが存在するように、前記所定の構造のコピーを前記サーバに記憶するステップとをさらに含む請求項1に記載の実行方法。
【請求項7】
ユーザが前記コンポーネントを終了した後に、前記スクリプト固有の所定の構造を自動的に削除するステップをさらに含む請求項1に記載の実行方法。
【請求項8】
前記クライアントが前記コンポーネントに対するリクエストを前記サーバに送って接続を確立するステップと、前記クライアントおよび前記サーバが無接続プロトコルに従うことができるように、前記サーバが前記接続に対するセッション識別番号を作成するステップとをさらに含む請求項1に記載の実行方法。
【請求項9】
相互に通信しているクライアントメモリとクライアントプロセッサとクライアントトランシーバーとを含むクライアントであって、前記クライアントメモリがサーバによって送信されるコンポーネントスクリプトを含み、該送信されるコンポーネントスクリプトが前記コンポーネントに関するパラメータ情報を含み、前記クライアントメモリが、前記コンポーネントの意図された機能に対応する意図された機能を有するクライアントの所定の構造をさらに含むものであるクライアントを含んでおり、前記プロセッサが、前記送信されたコンポーネントスクリプトの前記パラメータ情報を前記クライアントの所定の構造にリンクさせて、スクリプト固有の所定の構造を提供し、前記スクリプト固有の所定の構造を実行することによって前記コンポーネントを実行するように構成されている、あるスクリプトのコンポーネントを実行するためのシステム。
【請求項10】
前記クライアントと通信しているサーバであって、該サーバが相互に通信しているサーバメモリとサーバプロセッサとサーバトランシーバーとを含み、前記サーバメモリが前記スクリプトを含み、前記サーバトランシーバーが前記コンポーネントスクリプトを送信するように構成されているサーバをさらに含み、前記コンポーネントスクリプトはコンポーネントに関する前記パラメータ情報を含むものである請求項9に記載のシステム。
【請求項11】
前記サーバメモリが、複数のコンポーネントタイプのうちの1つの意図された機能に対応する意図された機能を有するサーバの所定の構造をさらに含み、前記コンポーネントが前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有している請求項9に記載のシステム。
【請求項12】
前記クライアントが、前記クライアントメモリに記憶されたクライアントランタイムエンジンをさらに含み、前記クライアントランタイムエンジンがクライアントパーサーおよびクライアント実行エンジンを含み、前記クライアント実行エンジンがクライアントリンカーと前記クライアントの所定の構造とを含み、前記クライアントパーサーが、前記送信されたコンポーネントスクリプトにおける識別子を検索するように前記プロセッサに命令するように構成されており、前記クライアントリンカーは、前記パラメータ情報を前記クライアントの所定の構造にリンクさせて、前記スクリプト固有の所定の構造を提供するように前記クライアントプロセッサに命令するように構成されている請求項9に記載のシステム。
【請求項13】
前記クライアントと通信しているサーバであって、前記サーバは相互に通信しているサーバメモリとサーバプロセッサとサーバトランシーバーとを含み、前記サーバメモリが前記スクリプトとサーバランタイムエンジンとを含み、該サーバランタイムエンジンがサーバパーサーとサーバ実行エンジンとを含み、該サーバ実行エンジンがサーバリンカーと複数のコンポーネントタイプのうちの1つの意図された機能に対応する意図された機能を有するサーバの所定の構造とを含むものであるサーバをさらに含み、前記コンポーネントが前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有しており、前記サーバパーサーが、前記スクリプトにおける前記コンポーネントを検索するように前記サーバプロセッサに命令するように構成されており、前記コンポーネントが、前記クライアントによってリクエストされ、前記コンポーネントに関する前記パラメータ情報を含む前記コンポーネントスクリプトを含み、前記サーバリンカーが、前記パラメータ情報を前記サーバの所定の構造にリンクさせて、サーバスクリプト固有の所定の構造を提供するように前記サーバプロセッサに命令するように構成されており、前記サーバトランシーバーが、前記コンポーネントスクリプトを送信するように構成されており、前記サーバおよび前記クライアントが、前記クライアントおよび前記サーバのランタイムエンジンについて同一のインテリジェンスを有している請求項12に記載のシステム。
【請求項14】
前記クライアントが前記コンポーネントスクリプトをリクエストする場合には、前記コンポーネントスクリプトが前記サーバから前記クライアントに送信され、前記クライアントメモリがクライアント長期間メモリおよびクライアント短期間メモリをさらに含み、前記クライアントが前記コンポーネントスクリプトをリクエストする前に前記ランタイムエンジンが前記クライアント長期間メモリに記憶されており、前記クライアントが前記コンポーネントスクリプトをリクエストする場合には、前記クライアントプロセッサが前記ランタイムエンジンを前記クライアント短期間メモリに転送して、前記スクリプト固有の所定の構造を前記クライアント短期間メモリに一時的に記憶し、前記クライアントが前記コンポーネントを終了する場合に前記スクリプト固有の所定の構造を前記クライアント短期間メモリから自動的に削除するように構成されている請求項9に記載のシステム。
【請求項15】
前記送信されたパラメータ情報がコンポーネント情報と関連した識別子を含み、前記所定の構造が対応する識別子を含む請求項9に記載のシステム。
【請求項16】
前記サーバが、各接続を一意に識別するために確立された各接続の一意のセッション識別番号を作成し、既に確立された前記セッションを再作成することによって無接続プロトコルを容易にするものである請求項9に記載のシステム。
【請求項17】
ユーザがあるスクリプトのコンポーネントをあるシステム上で実行する場合にそのコンポーネントを実行するためのアプリケーションであって、
所定の構造とリンカーとを備える実行エンジンを含む第1のランタイムエンジンであって、前記所定の構造が複数のコンポーネントタイプのうちの1つの意図された機能を有している第1のランタイムエンジンを含み、前記コンポーネントが前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有しており、前記ユーザが前記コンポーネントを実行する場合に、(a)前記リンカーが、前記コンポーネントに関するパラメータ情報を前記所定の構造にリンクさせて、スクリプト固有の所定の構造を提供するようにクライアントプロセッサに命令し、前記パラメータ情報は、サーバからクライアントに送信され、クライアントプロセッサ読み取り可能なメモリに記憶されており、(b)前記実行エンジンが、前記スクリプト固有の所定の構造を実行して、前記コンポーネントを実行するように前記クライアントプロセッサに命令し、前記第1のランタイムエンジンが媒体に記憶され、前記媒体がシステムと併用される場合には、前記第1のランタイムエンジンは、クライアントプロセッサ読み取り可能なメモリと前記クライアントプロセッサとを含む前記システムの前記クライアントプロセッサ読み取り可能なメモリに転送されるものであるアプリケーション。
【請求項18】
サーバランタイムエンジンが前記システムのサーバプロセッサ読み取り可能なメモリに転送され、前記サーバランタイムエンジンが前記第1のランタイムエンジンのコピーを含み、前記システムは、サーバプロセッサ読み取り可能なメモリとサーバトランシーバーとサーバプロセッサとを備えるサーバを含み、前記サーバはクライアントと通信しており、前記クライアントは前記クライアントプロセッサと前記クライアントプロセッサ読み取り可能なメモリとを含み、前記サーバランタイムエンジンはサーバパーサーおよびサーバ実行エンジンを含み、前記クライアントにおけるユーザは、コンポーネントを実行する前に前記サーバから前記コンポーネントをリクエストし、前記ユーザが前記コンポーネントをリクエストする場合には、(a)前記サーバパーサーは、前記リクエストされたコンポーネントの前記スクリプトを検索するように前記サーバプロセッサに命令し、前記スクリプトは前記サーバプロセッサ読み取り可能なメモリに記憶されており、(b)前記実行エンジンは、前記コンポーネントに関する前記パラメータ情報を含むコンポーネントスクリプトを前記サーバトランシーバーを介して前記クライアントに送信するように前記サーバプロセッサに命令するものである請求項17に記載のアプリケーション。
【請求項19】
前記サーバ実行エンジンがサーバの所定の構造をさらに含み、前記サーバの所定の構造は前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有しており、前記リクエストされたコンポーネントは前記複数のコンポーネントタイプのうちの前記1つの前記意図された機能を有するものである請求項18に記載のアプリケーション。
【請求項20】
前記クライアントが前記コンポーネントをリクエストする場合には、前記サーバ実行エンジンが、前記サーバプロセッサに対し、セッション番号を作成して該セッション番号を前記クライアントに送信するように命令するものである請求項19に記載のアプリケーション。
【請求項21】
前記実行エンジンが、前記クライアントプロセッサに対し、前記スクリプト固有の所定の構造を前記クライアントプロセッサ読み取り可能なメモリに記憶するように命令し、前記プロセッサに対し、前記ユーザが前記コンポーネントを終了した後に前記スクリプト固有の所定の構造を前記メモリから自動的に削除するように命令するものである請求項17に記載のアプリケーション。
【請求項22】
コンポーネントスクリプトを含むメモリであって、前記コンポーネントスクリプトはあるスクリプトの前記コンポーネントに関するパラメータ情報を含み、前記コンポーネントの意図された機能に対応する意図された機能を有する所定の構造をさらに含むものであるメモリと、
前記メモリと通信しているプロセッサと
を含んでなり、前記プロセッサは、前記コンポーネントスクリプトの前記パラメータ情報を前記所定の構造にリンクさせて、スクリプト固有の所定の構造を提供し、前記スクリプト固有の所定の構造を前記メモリに一時的に記憶し、前記スクリプト固有の所定の構造を実行することによって前記コンポーネントを実行し、前記ユーザが前記コンポーネントを終了する場合に前記スクリプト固有の所定の構造を自動的に削除するように構成されている、あるスクリプトのコンポーネントを実行するためのシステム。
【請求項23】
前記スクリプトがサーバから送信されたスクリプトをさらに含む請求項22に記載のシステム。
【請求項24】
前記クライアントと通信しているサーバをさらに含み、前記サーバは相互に通信しているサーバメモリとサーバプロセッサとサーバトランシーバーとを含み、前記サーバメモリは前記スクリプトを含み、前記サーバトランシーバーは前記コンポーネントスクリプトを送信するように構成されている請求項23に記載のシステム。
【請求項25】
前記サーバメモリは、複数のコンポーネントタイプのうちの1つの意図された機能に対応する意図された機能を有するサーバの所定の構造をさらに含み、前記コンポーネントは前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有するものである請求項24に記載のシステム。
【請求項26】
所定の構造をメモリに転送するステップであって、前記所定の構造が複数のコンポーネントタイプのうちの1つの意図された機能に対応する意図された機能を有するステップと、
コンポーネントスクリプトを前記所定の構造にリンクさせて、スクリプト固有の所定の構造を提供するステップであって、前記コンポーネントが前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有するステップと、
前記スクリプト固有の所定の構造を前記メモリに一時的に記憶するステップと、
前記スクリプト固有の所定の構造を実行することによって前記コンポーネントを実行するステップと、
前記プログラムが終了された後、前記スクリプト固有の所定の構造を前記メモリから自動的に削除するステップと
を含んでなる、プログラムのスクリプトのコンポーネントの実行方法。
【請求項27】
前記所定の構造を長期間メモリに記憶するステップをさらに含み、前記転送するステップが、ユーザがコンポーネントをリクエストする場合に、前記所定の構造を短期間メモリに転送することを含み、前記記憶するステップが、前記スクリプト固有の所定の構造を前記短期間メモリに記憶することを含み、前記自動的に削除するステップが、前記スクリプト固有の所定の構造を前記短期間メモリから自動的に削除することをさらに含むものである請求項26に記載の実行方法。
【請求項28】
コンポーネントスクリプトをサーバからクライアントに送信するステップをさらに含み、前記転送するステップが、前記所定の構造をクライアントメモリに転送することをさらに含み、前記記憶するステップが、前記スクリプト固有の所定の構造を前記クライアントメモリに記憶することをさらに含み、前記自動的に削除するステップが、前記スクリプト固有の所定の構造を前記クライアントメモリから自動的に削除することをさらに含むものである請求項26に記載の実行方法。
【請求項29】
ユーザがあるスクリプトのコンポーネントをあるシステム上で実行する場合にそのコンポーネントを実行するためのアプリケーションであって、
所定の構造およびリンカーを備える実行エンジンを含む第1のランタイムエンジンであって、前記所定の構造が複数のコンポーネントタイプのうちの1つの意図された機能を有する第1のランタイムエンジンを含み、前記コンポーネントが前記複数のコンポーネントタイプのうちの1つの前記意図された機能を有しており、前記ユーザが前記コンポーネントを実行する場合、(a)前記リンカーが、プロセッサに対し、前記コンポーネントに関するパラメータ情報を前記所定の構造にリンクさせて、スクリプト固有の所定の構造を提供するように命令し、(b)前記実行エンジンが、前記プロセッサに対し、前記スクリプト固有の所定の構造をプロセッサ読み取り可能なメモリに一時的に記憶するように命令し、(c)前記実行エンジンが、前記プロセッサに対し、前記スクリプト固有の所定の構造を実行して、前記コンポーネントを実行するように命令し、前記ユーザが前記アプリケーションを終了する場合には、前記実行エンジンは、前記プロセッサに対し、前記スクリプト固有の所定の構造を前記プロセッサ読み取り可能なメモリから自動的に削除するように命令し、前記第1のランタイムエンジンは媒体に記憶され、前記媒体がシステムと併用される場合には、前記第1のランタイムエンジンは、プロセッサ読み取り可能なメモリと前記プロセッサとを含む前記システムの前記プロセッサ読み取り可能なメモリに転送されるものであるアプリケーション。
【請求項30】
サーバランタイムエンジンが前記システムのサーバプロセッサ読み取り可能なメモリに転送され、前記サーバランタイムエンジンは前記第1のランタイムエンジンのコピーを含み、前記システムは、サーバプロセッサ読み取り可能なメモリとサーバトランシーバーとサーバプロセッサとを備えるサーバを含み、前記サーバはクライアントと通信しており、前記クライアントは前記プロセッサおよび前記プロセッサ読み取り可能なメモリを含み、前記サーバランタイムエンジンはサーバパーサーおよびサーバ実行エンジンを含み、ユーザはコンポーネントを実行する前に前記コンポーネントをリクエストし、前記ユーザが前記コンポーネントをリクエストする場合には、(a)前記サーバパーサーは、前記サーバプロセッサに対し、前記リクエストされたコンポーネントの前記スクリプトを検索するように命令し、前記スクリプトは前記サーバプロセッサ読み取り可能なメモリに記憶されており、(b)前記実行エンジンは、前記サーバプロセッサに対し、前記コンポーネントのパラメータ情報を前記サーバトランシーバーを介して前記クライアントに送信するように命令するものである請求項29に記載のアプリケーション。

【図1】
image rotate

【図1a−1b】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−531147(P2007−531147A)
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2007−505741(P2007−505741)
【出願日】平成17年3月16日(2005.3.16)
【国際出願番号】PCT/IN2005/000083
【国際公開番号】WO2005/096139
【国際公開日】平成17年10月13日(2005.10.13)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(506332502)ヴァークヤ・テクノロジーズ・プライヴェイト・リミテッド (2)
【Fターム(参考)】