JP2005531061A - モバイルアプリケーションのための実行環境 - Google Patents
モバイルアプリケーションのための実行環境 Download PDFInfo
- Publication number
- JP2005531061A JP2005531061A JP2004515623A JP2004515623A JP2005531061A JP 2005531061 A JP2005531061 A JP 2005531061A JP 2004515623 A JP2004515623 A JP 2004515623A JP 2004515623 A JP2004515623 A JP 2004515623A JP 2005531061 A JP2005531061 A JP 2005531061A
- Authority
- JP
- Japan
- Prior art keywords
- application
- server
- mervlet
- client
- node
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
図1に示される本発明に係るアプリケーション環境において、アプリケーション開発者は、「Mervlet(マーブレット)」として知られるモバイルアプリケーションを形成する。Mervlet10は、モバイルコンピュータデバイスのための動的ウェブページを形成することができる実行可能アプリケーションプログラムである。Mervlet10は、解釈されていないコードおよびローカルスタティックデータを含んでいる。Mervletの解釈されていないコードは、ウェブページを形成するためのユーザインタフェースロジック、および、ウェブページのためのダイナミックコンテンツを生成するアプリケーションロジックの両方を含んでいても良い。また、Mervlet10は、ASCIIテキストファイル等の外部データファイルにアクセスすることもできる。更に、Mervlet10は、従来のアプリケーションプログラムとは異なり、それに関連付けられるアプリケーション属性の固有のセットを有している。これらの属性により、通信ネットワークにわたってMervlet10を動的にロードバランシングすることができる。また、Mervlet10はセキュリティ属性のセットを有しており、これらのセキュリティ属性により、Mervlet10は、ネットワーク内の様々なデバイス上において、それ自身のセキュリティコンテキスト内で実行する(動作する)ことができる。したがって、Mervlet10は、再配置可能なダイナミックウェブドキュメントの特徴を有している。
Mervlet10は、ウェブページのためのユーザインタフェースを規定して、動的に生成されたコンテンツをモバイルデバイス上に表示する。Mervlet10の構造が図4に示されている。特に、Mervlet10は、マークアップ言語命令等のプラットフォームインディペンデントなユーザインタフェースロジック40を使用して、フォーマッティングを制御するとともに、ウェブページを表示する。また、Mervletは、ウェブブラウザからの要求および応答を扱うこともできる。例えば、Mervlet10は、静的なHTML、DHTML、XHTML、XMLおよびウェブブラウザによって解釈できる同様のフォーマットタグを使用して、ウェブページをサポートすることができる。
図1に示されるように、Mervlet10は、Mervletエンジン12でコンパイルされて実行される。エンジン12は、ウェブブラウザ等のクライアントアプリケーションからMervlet10への要求を処理することができるとともに、Mervlet10からクライアントブラウザへの応答を生成することができる。特に、Mervletエンジン12は、アプリケーションロジック42のためのMervletタグを解釈する。その後、Mervletエンジンは、リソースまたはタグライブラリ14にアクセスして、Mervlet10のユーザインタフェースロジック40によって規定されるウェブページのための動的なコンテンツを生成する。タグライブラリ14は、デバイスに最初からあっても良く、あるいは、Mervlet10と共に再配置可能であっても良い。その後、エンジン12は、その結果を、HTMLまたはXMLの形態で、要求しているウェブブラウザに送り戻す。アプリケーションロジック42のための任意の静的なフォーマットタグは、要求しているウェブブラウザに対して直接に送られる。
・ServletExceptionと同じMervletException
・ServletInputStreamと同じMervletInputStream
・ServletOutputStreamと同じMervletOutputStream
・不変を維持するRequestDispatcher
・ServletConfigと同じMervletConfig
・Mervlet
・MervletContext
・MervletRequest
・MervletResponse
・SingleThreadModel
public void Init()は、「MervletException」を投入し;
public void Service()は、「MervletException」を投入し;
public void Destroy()は、「MervletException」を投入する。
public void Init(MervletConfig)は、「MervletException」を投入し;
public void Service(MervletRequest,MervletResponse)は、IOException,MervletExceptionを投入する。
Void Restore(MervletContext m)
Void Save()
Void Reliable_async_send(Endpoint to, Endpoint From, DataStream Data, Reliability Type, CallbackMethod cm)
このメソッドにおけるデータフォーマットは、HTTPマイムエンコードインタフェースにおけるそれと同じである。様々な交換フォーマットを用いた他の実行も考えられる。
ここで詳細に説明するMervletアプリケーション環境の1つの特徴により、Mervletエンジン12は、Mervlet10をロードバランシングして、Mervletの性能を最適化することができる。
Mervlet10をロードバランシングするために使用されるアプリケーション属性50は、2つの基準、すなわち、1)アプリケーションがどのようにインタラクティブであるか、2)アプリケーションが、どの程度コンピュータを駆使し、どのくらいデータ量が多いか、に基づいてMervletを特徴付ける性能属性52のセットを含んでいる。開発者は、本能的に、インタラクティブなアプリケーションをユーザにより近付ける能力と、データ量の多いアプリケーションをデータのソースにより近付ける能力と、コンピュータを駆使するアプリケーションをサーバクラスマシン等のより強力なデバイス上で実行させる能力と、をシステムに与えたいと考えている。一般に、開発者は、例えばJSPやServlet等のJ2EE上のサーバアプリケーションとして、あるいは、クライアントのためのアプレットとして、Javaアプリケーションを書き込む。例えば、ある開発者は、従来、ゲームをアプレットとして書き込み、また、銀行のアプリケーションをサーバベースのアプリケーションとして書き込む。一方、Mervletの開発者は、アプリケーションを1度書き込むだけで済み、その後、ポリシーMervlet66は、測定された性能属性52を使用して、ユーザの近くにMervlet10を再配置することができ、あるいは、アクセスネットワークを切換えて、Mervletのための良好な待ち時間の平均および分散を提供することができる。
特に、ユーザは、クライアントデバイス30とやりとりを行なってMervlet10から情報を要求する際、例えば、ウェブページ書式を送って情報のためのURLをクリックする際に、イベントを待つ。書式に必要事項を記入して応答を待つ行為およびリンクをクリックしてページを取得する(get)行為を含むこれらの行動は、ユーザインタフェースイベントと称される。Mervlet10がクライアントデバイス30上で実行する場合、待ち時間Wの全てがアプリケーションで費やされる。Mervlet10がサーバ32上でクライアントデバイス30から離れて実行している場合、待ち時間Wの一部Cは、要求しているクライアントとの通信に費やされ、待ち時間の残りSが、クライアント要求の処理のため、Mervlet自体において費やされる。
W=T2−T1
W=S+C
ここで、
S=サービス時間
C=通信時間
W=待ち時間
T1=第1のタイムスタンプ
T2=第2のタイムスタンプ
A(W)=A(C)+A(S)
V(W)=V(C)+V(S)+Cov(V,S)
V(W)=V(C)+V(S)
前述したように、クライアントアプリケーションからの1つの要求に対する応答をMervletが生成するための全サービス時間は、サーバ計算時間Sによって測定される。Mervletは、内部計算を行なって、及び、外部データファイルにアクセスして、サーバ計算時間Sを費やしても良い。例えば、
S=D+I
ここで、
S=サービス時間
D=データI/Oのために費やされた時間
I=内部計算のために費やされた時間
以下は、J2MEライブラリを使用してMervlet10のファイルI/OイベントおよびユーザインタフェースをインタセプトするためのAPIの典型的なセットである。これらのAPIは、ライブラリjava.net, java.io, java.utilに対して以下の変更を要求する。
void recordEvent(EventType et,Event e,TimeStamp t)
void_recordFileIO(AccessType type, int data,Timestamp time)
また、ポリシーMervlet66は、ロードバランシングおよびネットワーク切換えの決定のため、アプリケーション属性54に加えて、システム属性54を使用する。システム属性54は、一般に、Mervletアプリケーション環境によって使用されるコンピュータデバイスの処理能力およびリソースに関連している。特に、図8に示されるように、以下の属性、すなわち、MIPS等級、CPU稼動時間の平均および分散、メモリおよび固定記憶域の大きさ、ネットワーク待ち時間の平均および分散、当該デバイスで利用可能な各ネットワークタイプにおける帯域幅、が各クライアント30およびサーバ32毎に記録される。
システム属性54を測定するため、J2MEプラットフォーム、java.sys.perfのための新たなライブラリは、以下のメソッドを利用できるようになる。
void System_cpu_util(Util U)
void System_network_bandwidth(bandwidth b,accessnetwork a)
Void sys_network_load_latency(accessnetwork a,latency l)
Void Network_uptime(Netuptime nu,accesslink a)
ロードバランシング決定を行なうため、測定されたアプリケーション属性は、ロードバランシングアルゴリズムに利用可能とされなければならない。アプリケーション提供最適化がサーバによって実行される。サーバおよびクライアントによってネットワーク切換え最適化が実行され得る。クライアントおよびサーバが動的にアプリケーション属性をプロファイルできる様々な方法がある。
Mervletにおける性能属性値は、ユーザ毎に、あるいは、アプリケーション毎のユーザ毎に、あるいは、デバイス毎のアプリケーション毎のユーザ毎に、収集されても良い。デバイスがアプリケーション毎に性能属性を測定して記憶する場合、ロードバランシングアルゴリズムは、ユーザに関係無く、この情報を使用しても良い。また、デバイスは、ロードバランシングアルゴリズムが様々なユーザのプロファイルへと問い合わせすることができるように、アプリケーション毎のユーザ毎に、性能属性を測定して記憶しても良い。
Mervletアプリケーション環境は、そのアプリケーション属性およびシステム属性に基づく2つの異なる最適化、すなわち、アプリケーション提供およびネットワーク切換え、を使用して、アプリケーションロードタイムおよひランタイムで、Mervletをロードバランシングすることができる。具体的には、ユーザがMervletを要求すると、MervletエンジンのポリシーMervletモジュールは、Mervletを実行すべき場所および通信のために使用すべきアクセスネットワークを決定する。同様に、ランタイム中、Mervletエンジンは、ユーザに対する応答性能を向上させるために、Mervletを再配置すること、あるいは、アクセスネットワークを切換えること、を決定しても良い。
DispatchPolicy()
{
If(A(W)>Aglet_Threshold)then
Dispatch(URL);
}
次に、図9を参照すると、アプリケーション提供最適化の実施例が決定ツリーを使用して示されている。このアプリケーション提供アルゴリズムは、サーバによって実行されるとともに、Mervlet等のアプリケーションのロードタイムおよびランタイムで同様に適用可能である。
クライアントデバイス30からの要求がMervlet10のためのサーバ32で受けられる場合、当該要求は、以下の構造を有している。
URI
クライアントにおけるMIPS等級
クライアントにおけるCPU稼動時間の平均および分散
クライアントにおける利用可能なデバイスメモリおよび固定記憶域(所定の時間にわたって平坦化される)
{性能属性、アプリケーションにおけるデータサイズ}
サーバにおけるCPU稼動時間の平均および分散
各アクセスリンクにおける待ち時間並びにネットワーク帯域幅の平均および分散
サーバに付随する
{性能属性、アプリケーションにおけるデータサイズ}
現在実行しているMervletをロードバランシングするため、要求しているクライアント30は、その性能が特定の閾値を超えて低下したか否かを判断して、この情報をサーバ32に送る。具体的には、Mervlet10がサーバ32上で実行し、クライアント30がそれに遠隔的にアクセスしている間、クライアントは、クライアントからの全てのユーザインタフェースイベントに関する待ち時間の平均および分散を監視する。A(W)またはV(W)が所定の閾値に達すると、クライアント30は、以下の情報を含むメッセージをサーバ32に送る。
クライアントにおけるMIPS等級
クライアントにおけるCPU稼動時間の平均および分散
クライアントにおける利用可能なデバイスメモリおよび固定記憶域(所定の時間にわたって平坦化される)
{性能属性}
図10には、決定ツリーを使用して、ネットワーク切換えアルゴリズムの実施例が示されている。このネットワーク切換えアルゴリズムは、Mervletアプリケーション環境のクライアント30およびサーバ32によって実行することができる。クライアントおよびサーバが複数のアクセスネットワークを使用して通信できると仮定すると、ネットワーク切換えアルゴリズムは、待ち時間の平均および分散を下げるために、アクセスネットワークを切換えることができる。ユーザは、サーバ32から、あるいは、他のデバイスから、クライアントデバイス30上に様々なネットワーク切換えアルゴリズムをインストールすることができる。
稼動時間の平坦化(スムージング)は、ロードバランシング中においてスラッシングを防止できる技術である。特に、Mervletアプリケーション環境は、単に、期間T毎にN個のネットワーク切換えイベントを許容するだけである。これらのパラメータは、システムの個々の実施に伴って変化することができ、また、ネットワークのシステムアドミニストレータによって設定され得る。クライアントにおける以下のアルゴリズムを使用して、ネットワーク切換えアルゴリズムにおけるスムージングインターバルを決定することができる。
Mervletアプリケーション環境により、システムアドミニストレータは、2つのコンポーネント、すなわち、クラッシュから回復できるMervletエンジン10と、トランジット中のメッセージが少なくとも1度のセマンティクスで供給されることを保証する信頼できるメッセージングシステム20と、を使用して、システムが許容すべき故障のタイプを選択することができる。信頼できるメッセージングシステム20は、以下のように、すなわち、フォールトトレランスが無い、クライアントおよびネットワークの故障から回復することができる、クライアント、ネットワーク及びサーバの故障から回復することができる、というように構成され得る。
Mervletエンジン12は、現在実行している全てのMervlet10及びそれぞれにおける最近のMervletのcontextのリストを含むその状態を、固定記憶域に定期的に記憶する。また、リストには、各アプリケーションの優先順位が含まれていても良い。また、エンジン12は、そのアプリケーション状態を固定記憶域に保存するために、Mervlet10上でメソッドSave()を任意のタイミングで呼び出すことができる。
Mervletアプリケーション環境のメッセージングシステム20は、様々なメッセージングプロトコルを使用して、Mervlet間の通信およびネットワーク内でのMervlet自身の転送を容易にする。例えば、役に立つと見なされたメッセージングプロトコルのタイプには、同期可能または非同期可能な、一方向プロトコルおよび要求−応答プロトコルが含まれている。進行中のトランザクションが保存されることを保証するように、メッセージングシステム20がフォールトトレラントであっても良い。しかしながら、信頼できるメッセージングシステムは、デバイス故障後にMervlet自身を回復させることの責任は負わない。
void Reliable_async_send(Endpoint to, Endpoint From, MessageData Data, Reliability Type, CallbackMethod cm)
信頼できるメッセージングシステム70は、クライアントデバイス30とサーバ32との間の接続を管理する。システムは、定期的に起動して、以下のタスクを行なう。システムは、Bluetooth、802.11b(Wi−Fi)無線、IRDA、汎用パケットラジオサービス(GPRS)携帯電話ネットワーク802.11b等の任意のクライアントアクセスネットワークによってプライマリサーバ32が到達できるか否かを確認する。システムは、ICMP Pingをプライマリサーバ32に送ることにより、前記確認を行なう。クライアント30とサーバ32との間の更なる通信のため、最も適切と思われる第1のアクセスネットワークが使用される。また、信頼できるメッセージングシステム70は、そのバッファマネージメントスレッドを起動し、サーバ32と通信するために使用するべきプロトコルを前記スレッドに知らせる。
フォールトトレランスは、全てがディスクコストタイムおよびディスクスペースに書き込むため、コストがかかる。次に、図14を参照すると、信頼できるメッセージングシステム70を実行するための幾つかのコンフィギュレーションが示されている。第1列は、メッセージがサーバ32およびクライアント30に記録される技術を示しており、第2列は、メッセージがクライアント30だけに記憶されることを示しており、第3列は、メッセージが記録されない技術を示している。最初の2つの選択肢は、フォールトトレランスにおける以下の選択を与える。ユーザがランタイムコストを下げることを望み、アプリケーションの回復において時間を惜しみなく費やす場合には、第2の選択肢が考慮されても良い。第1の選択肢は、メッセージがクライアントおよびサーバに記録されるため、高いランタイムコストを有している。しかし、ユーザにとっての利点は、信頼できるメッセージングシステムを使用するアプリケーションの回復がより強力に成されるという点である。
サーバ32は、故障から回復すると、図13に示されるステップ106で記憶されたその固定記憶域にあるバッファリストを見る。信頼できるメッセージングシステム70は、デバイスの固定記憶域上のデータがデストロイされていない一方でデバイスのメインメモリ内のデータがデストロイされていると見なす。前記リストがクライアント30からのメッセージを含んでいる場合、信頼できるメッセージングシステム70は、要求が処理されなかったと見なし、メッセージをサーバ上の適当なMervletに供給することを試みる。同様に、クラッシュからの回復後に、サーバ32がバッファリングされた応答を見つけると、システムは、それを、適切な送信先のクライアント30に送る。
2)後述するキャッシング・インフラストラクチャを、一致した状態にする。
3)Mervletエンジン12を、一致した状態にする。
4)個々のMervlet10を、順次に一致した状態にする。
クライアントデバイス30は、例えばネットワーク帯域幅の利用を減らすため、2つの契機、すなわち、ネットワーク故障またはシステムアドミニストレータ或はユーザによる自発的な移動、により、サーバ32または他のデバイスから「切断され」ても良い。Mervletアプリケーション環境は、ネットワークから切断された状態での作業をサポートするために、2つの特徴、すなわち、信頼できる非同期のメッセージングおよびMervletキャッシングを提供する。
Void handle_cashe_miss()
Send(primary_server, hash_vector_diff, uri)
Receive(cache_objs, new_policy)
if(new_policy) load_class(new_policy);
return;
Claims (125)
- 少なくとも1つのアクセスネットワークの一部を形成するモバイルアプリケーション環境であって、
動的ウェブページを形成するための命令のセットを含むMervletアプリケーションであって、前記Mervletは、それぞれが前記少なくとも1つのアクセスネットワークに接続されるローカルノードおよびサーバノードのうちの少なくとも一方で実行することができ、これにより、前記ローカルノードで実行しているクライアントアプリケーションからの要求に応じて、前記動的ウェブページを前記ローカルノードに表示する、Mervletアプリケーションと、
前記Mervletのユーザ認識性能を特徴付けるための少なくとも1つの性能属性を含む、前記Mervletに関連付けられた少なくとも1つのアプリケーション属性と、
前記Mervletに関連付けられるとともに、前記少なくとも1つのアプリケーション属性に基づいて前記ローカルノードと前記サーバノードとの間で前記Mervletの実行を与えるようになっている命令の第1のセットを有するポリシーモジュールを含む、Mervletエンジンと、
を備えたことを特徴とするモバイルアプリケーション環境。 - 前記Mervletを実行するためのセキュリティコンテキストを規定するために前記Mervletに関連付けられた少なくとも1つのセキュリティ属性を更に備え、
前記Mervletエンジンは、前記セキュリティコンテキスト内で前記Mervletを実行するようになっているコアインタープリタモジュールを更に有している
ことを特徴とする請求項1に記載のアプリケーション環境。 - 動的ウェブページを形成するための前記命令のセットは、前記ウェブページのための動的なコンテンツを生成するアプリケーション命令のセット、および、前記ウェブページ上での表示のために前記動的なコンテンツをフォーマットするユーザインタフェース命令のセットのうちの少なくとも一方を含んでいる
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記アプリケーション命令のセットは、前記Mervletに関連付けられた少なくとも1つのMervletタグライブラリ内に存在するアプリケーションロジックをカプセル化する解釈されないプログラムコードを含んでいる
ことを特徴とする請求項3に記載のアプリケーション環境。 - 前記ユーザインタフェース命令のセットは、ウェブブラウザによって解釈可能な静的なフォーマットタグを含んでいる
ことを特徴とする請求項3に記載のアプリケーション環境。 - 前記Mervletエンジンは、前記ローカルノードおよびサーバノードのうちの少なくとも一方に記憶された前記Mervletを見つけ且つ前記Mervletが前記ローカルノードに記憶される時に前記クライアントアプリケーションから前記Mervletへの要求を処理するようになっているファインダモジュールを更に有している
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記Mervletエンジンは、前記Mervletが前記サーバノードに記憶される時に前記クライアントアプリケーションから前記Mervletへの要求を処理するようになっているインターセプティングモジュールを更に有している
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記少なくとも1つの性能属性は、前記アプリケーションにおけるユーザインタフェースイベントのための待ち時間に関する少なくとも1つのパラメータを含み、
前記待ち時間は、サーバ計算時間および通信時間を含んでいる
ことを特徴とする請求項1に記載のアプリケーション環境。 - 待ち時間に関する少なくとも1つの前記パラメータは、前記待ち時間、前記サーバ計算時間及び前記通信時間の平均と、前記待ち時間、前記サーバ計算時間及び前記通信時間の分散と、のうちの少なくとも一つを含んでいる
ことを特徴とする請求項8に記載のアプリケーション環境。 - 前記サーバ計算時間は、内部計算時間およびデータI/O時間を含んでいる
ことを特徴とする請求項9に記載のアプリケーション環境。 - 前記少なくとも1つの性能属性は、前記アプリケーションが終了まで実行する総使用時間を更に含んでいる
ことを特徴とする請求項9に記載のアプリケーション環境。 - 前記少なくとも1つの性能属性は、アプリケーション毎に測定される
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記少なくとも1つの性能属性は、デバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記少なくとも1つの性能属性は、ユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記少なくとも1つの性能属性は、アクセスネットワーク毎のユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記少なくとも1つのアプリケーション属性は、前記ローカルノード、前記サーバノード及び前記少なくとも1つのアクセスネットワーク、のうちの少なくとも1つの計算能力を特徴付けるための、少なくとも1つのシステム属性を更に含んでいる
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記ローカルノードの能力を特徴付けるためのシステム属性は、前記ローカルノードのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記ローカルノードにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項16に記載のアプリケーション環境。 - 前記サーバノードの能力を特徴付けるためのシステム属性は、前記サーバノードのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記サーバノードにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項16に記載のアプリケーション環境。 - 前記少なくとも1つのアクセスネットワークの能力を特徴付けるためのシステム属性は、ネットワーク帯域幅、ネットワーク待ち時間及びネットワーク状態、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項16に記載のアプリケーション環境。 - 前記ポリシーモジュールは、前記少なくとも1つのアプリケーション属性に基づいて、前記ローカルノードと前記サーバノードとの間で通信するためのアクセスネットワークを選択するようになっている命令の第2のセットを更に有している
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記Mervletエンジンは、実行しているMervletアプリケーションのリストと前記実行している各Mervlet毎のアプリケーションコンテキストとを含む前記エンジンの実行状態を保存して元の状態に戻すようになっている回復モジュールを有している
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記Mervletと前記クライアントアプリケーションとの間でメッセージを送信するとともに、前記Mervlet、前記少なくとも1つのアプリケーション属性、前記少なくとも1つのセキュリティ属性及び前記少なくとも1つのMervletタグライブラリをアクセスネットワークを介して前記ローカルノードと前記サーバノードとの間で移動させるようになっているメッセージングシステムを更に備えている
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記メッセージングシステムは、一方向同期メッセージングプロトコル、一方向非同期メッセージングプロトコル、要求−応答同期メッセージングプロトコル及び要求−応答非同期メッセージングプロトコル、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項22に記載のアプリケーション環境。 - 前記メッセージングシステムは、前記ローカルノードのローカルメッセージバッファと前記サーバノードのサーバメッセージバッファとの間でメッセージを供給するための非同期メッセージングプロトコルを含んでいる
ことを特徴とする請求項22に記載のアプリケーション環境。 - 前記ローカルメッセージバッファおよび前記サーバメッセージバッファは、対応する前記ローカルノードおよび前記サーバノード上の固定記憶域および揮発性メモリのうちの一方に選択的に記憶される
ことを特徴とする請求項24に記載のアプリケーション環境。 - 前記メッセージングシステムは、ネットワーク故障、ローカルノード故障及びサーバノード故障のうちの少なくとも1つの存在下で、メッセージングトランザクションを完了するように選択的に構成可能である
ことを特徴とする請求項22に記載のアプリケーション環境。 - 前記ローカルノードおよび前記サーバノードのうちの少なくとも一方のキャッシュメモリを管理するようになっているキャッシュマネージャエージェントを更に備えている
ことを特徴とする請求項1に記載のアプリケーション環境。 - 前記キャッシュマネージャエージェントは、前記クライアントノードおよび前記サーバノードのうちの少なくとも一方によって設定されるキャッシュ管理ポリシーを含んでいる
ことを特徴とする請求項27に記載のアプリケーション環境。 - 前記キャッシュマネージャエージェントは、前記キャッシュ管理ポリシーに従って前記キャッシュメモリから前記Mervletをプレフェッチする命令のセットを含んでいることを特徴とする請求項28に記載のアプリケーション環境。
- 前記キャッシュマネージャエージェントは、前記キャッシュ管理ポリシーに従い、前記クライアントノードにおけるキャッシュミスに応じて、前記サーバノードから前記Mervletを検索する命令のセットを含んでいる
ことを特徴とする請求項28に記載のアプリケーション環境。 - 前記キャッシュマネージャエージェントは、前記キャッシュ管理ポリシーに従って前記Mervletを含むデータを前記キャッシュメモリに書き込む命令のセットを含んでいる
ことを特徴とする請求項28に記載のアプリケーション環境。 - 少なくとも1つのアクセスネットワークの一部を形成するモバイルアプリケーション環境において動的ウェブページを形成する命令のセットを含むMervletアプリケーションを実行するための方法であって、
前記少なくとも1つのアクセスネットワークに接続されるローカルノードで実行するクライアントアプリケーションから、前記Mervletアプリケーションのための要求を発する工程と、
前記少なくとも1つのアクセスネットワークに接続されたサーバノードおよび前記ローカルノードのうちの少なくとも一方に記憶された前記Mervletを見つける工程と、
前記Mervletが前記ローカルノードで見つけられると、前記ローカルノードで前記Mervletを実行して、前記ローカルノード上に前記動的ウェブページを表示する工程と、
前記Mervletが前記サーバノードで見つけられると、少なくとも1つのアプリケーション属性に基づいて、前記ローカルノードと前記サーバノードとの間で前記Mervletの実行を与える工程と、
前記ローカルノード上で前記Mervletの実行を与えることに応じて、前記Mervletおよび前記少なくとも1つのアプリケーション属性を、前記サーバノードから前記ローカルノードへと移動させる工程と、
前記サーバノード上で前記Mervletの実行を与えることに応じて、前記Mervletを前記サーバノード上で実行して、前記ローカルノード上に前記動的ウェブページを表示する工程と、
を備えたことを特徴とする方法。 - 前記少なくとも1つのアプリケーション属性に基づいて、アクセスネットワークを選択する工程
を更に含むことを特徴とする請求項32に記載の方法。 - 前記Mervletは、少なくとも1つのセキュリティ属性によって規定されるセキュリティコンテキスト内で、前記ローカルノードおよび前記サーバノードを実行する
ことを特徴とする請求項32に記載の方法。 - 前記ローカルノード上での前記Mervletの実行を割り当てる前記決定に応じて、前記少なくとも1つのセキュリティ属性を前記サーバノードから前記ローカルノードに移動させる工程
を更に含むことを特徴とする請求項34に記載の方法。 - 前記Mervletの命令は、前記ウェブページのための動的なコンテンツを生成するアプリケーション命令のセット、および、前記ウェブページ上での表示のために前記動的なコンテンツをフォーマットするユーザインタフェース命令のセットのうちの少なくとも一方を含んでいる
ことを特徴とする請求項32に記載の方法。 - 前記ユーザインタフェース命令は、ウェブブラウザによって解釈可能な少なくとも1つの静的なフォーマットタグを含んでいる
ことを特徴とする請求項36に記載の方法。 - 前記アプリケーション命令は、少なくとも1つのMervletタグライブラリ内に存在するアプリケーションロジックをカプセル化する解釈されないプログラムコードを含んでいる
ことを特徴とする請求項36に記載の方法。 - 前記ローカルノード上での前記Mervletの実行を割り当てる前記決定に応じて、前記少なくとも1つのMervletタグライブラリを前記サーバノードから前記ローカルノードに移動させる工程
を更に含むことを特徴とする請求項38に記載の方法。 - 前記少なくとも1つのアプリケーション属性は、前記Mervletのユーザ認識性能を特徴付けるための少なくとも1つの性能属性と、前記ローカルノード、前記サーバノード及び前記少なくとも1つのアクセスネットワークのうちの少なくとも1つの計算能力を特徴付けるための少なくとも1つのシステム属性と、を含んでいる
ことを特徴とする請求項32に記載の方法。 - 前記少なくとも1つの性能属性は、前記アプリケーションにおけるユーザインタフェースイベントのための待ち時間に関する少なくとも1つの値を含み、
前記待ち時間は、サーバ計算時間および通信時間を含んでいる
ことを特徴とする請求項40に記載の方法。 - 前記少なくとも1つの性能属性は、前記待ち時間、前記サーバ計算時間及び前記通信時間の平均と、前記待ち時間、前記サーバ計算時間及び前記通信時間の変動と、のうちの少なくとも一つを含んでいる
ことを特徴とする請求項41に記載の方法。 - 前記サーバ計算時間は、内部計算時間およびデータI/O時間を含んでいる
ことを特徴とする請求項42に記載の方法。 - 前記少なくとも1つの性能属性は、前記Mervletが終了まで実行する総使用時間を更に含んでいる
ことを特徴とする請求項42に記載の方法。 - 前記少なくとも1つの性能属性は、アプリケーション毎に測定される
ことを特徴とする請求項40に記載の方法。 - 前記少なくとも1つの性能属性は、デバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項40に記載の方法。 - 前記少なくとも1つの性能属性は、ユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項40に記載の方法。 - 前記少なくとも1つの性能属性は、アクセスネットワーク毎のユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項40に記載の方法。 - 前記ローカルノードの能力を特徴付けるためのシステム属性は、前記ローカルノードのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記ローカルノードにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項40に記載の方法。 - 前記サーバノードの能力を特徴付けるためのシステム属性は、前記サーバノードのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記サーバノードにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項40に記載の方法。 - 前記少なくとも1つのアクセスネットワークの能力を特徴付けるためのシステム属性は、ネットワーク帯域幅、ネットワーク待ち時間及びネットワーク状態、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項40に記載の方法。 - 前記Mervletを実行するMervletエンジンの実行状態を保存して、前記実行状態を元の状態に戻す工程
を更に含むことを特徴とする請求項32に記載の方法。 - 前記Mervletエンジンの実行状態を保存する工程は、実行しているMervletアプリケーションのリストと前記実行している各Mervlet毎のアプリケーションコンテキストとを記憶する工程を含む
ことを特徴とする請求項52に記載の方法。 - 一方向同期メッセージングプロトコル、一方向非同期メッセージングプロトコル、要求−応答同期メッセージングプロトコル及び要求−応答非同期メッセージングプロトコル、のうちの少なくとも1つを使用して、前記少なくとも1つのアクセスネットワークを介して、前記Mervletと前記クライアントアプリケーションとの間でメッセージを送信する工程
を更に含むことを特徴とする請求項32に記載の方法。 - 前記ローカルノードのローカルメッセージバッファおよび前記サーバノードのサーバメッセージバッファのうちの少なくとも一方に前記メッセージを記録する工程
を更に含むことを特徴とする請求項54に記載の方法。 - 前記第1および第2のメッセージバッファの各々は、対応する前記ローカルノードおよび前記サーバノード上に固定記憶域を有している
ことを特徴とする請求項55に記載の方法。 - ネットワーク故障、ローカルノード故障及びサーバノード故障のうちの少なくとも1つの存在下で完了するようにメッセージングトランザクションを選択的に構成する工程
を更に含むことを特徴とする請求項54に記載の方法。 - 前記Mervletを記憶して検索するために、前記ローカルノードおよび前記サーバノードのうちの少なくとも一方のキャッシュメモリを管理する工程
を更に含むことを特徴とする請求項32に記載の方法。 - 前記クライアントノードおよび前記サーバノードのうちの少なくとも一方によって設定されるキャッシュ管理ポリシーを使用して、前記Mervletを記憶して検索するために前記ローカルノードおよび前記サーバノードのうちの少なくとも一方のキャッシュメモリを管理する工程
を更に含むことを特徴とする請求項58に記載の方法。 - 少なくとも1つのアクセスネットワークの一部を形成するモバイルアプリケーション環境であって、
前記少なくとも1つのアクセスネットワークに接続されるローカルノードに存在するクライアントアプリケーションから、Mervletアプリケーションのための要求を発する手段であって、前記Mervletは動的ウェブページを形成するようになっている、という手段と、
前記少なくとも1つのアクセスネットワークに接続されたサーバノードおよび前記ローカルノードのうちの少なくとも一方に記憶された前記Mervletを見つける手段と、
前記Mervletが前記ローカルノードで見つけられると、前記ローカルノードで前記Mervletを実行して、前記ローカルノード上に前記動的ウェブページを表示する手段と、
前記Mervletが前記サーバノードで見つけられると、少なくとも1つのアプリケーション属性に基づいて、前記ローカルノードと前記サーバノードとの間で前記Mervletの実行を与える手段であって、前記少なくとも1つのアプリケーション属性は前記Mervletのユーザ認識性能を特徴付けるための少なくとも1つの性能属性を含んでいる、という手段と、
前記ローカルノード上で前記Mervletの実行を与えることに応じて、前記Mervletを前記サーバノードから前記ローカルノードへと移動させる手段と、
前記サーバノード上で前記Mervletの実行を与えることに応じて、前記Mervletを前記サーバノード上で実行して、前記ローカルノード上に前記動的ウェブページを表示する手段と、
を備えたことを特徴とするアプリケーション環境。 - 前記ローカルノードと前記サーバノードとの間で通信を行なうために前記少なくとも1つのアプリケーション属性に基づいて第1のアクセスネットワークを選択する手段
を更に備えたことを特徴とする請求項60に記載のアプリケーション環境。 - 前記少なくとも1つのアプリケーション属性を測定する手段
を更に備えたことを特徴とする請求項60に記載のアプリケーション環境。 - 前記ローカルノードの故障、前記サーバノードの故障及び前記少なくとも1つのアクセスネットワークの故障のうちの少なくとも1つの後、前記Mervletの実行を回復する手段
を更に備えたことを特徴とする請求項60に記載のアプリケーション環境。 - 前記ローカルノードが前記サーバノードから切断される時に前記Mervletを実行する手段
を更に備えたことを特徴とする請求項60に記載のアプリケーション環境。 - デバイス間での通信のための少なくとも1つのアクセスネットワークに接続された複数のコンピュータデバイス間でアプリケーションをロードバランシングする方法であって、
前記少なくとも1つのアクセスネットワークに接続されたサーバデバイス上に前記アプリケーションを記憶する工程と、
前記アプリケーションのユーザ認識性能を特徴付けるための少なくとも1つの性能属性を含む、前記アプリケーションに関連付けられたアプリケーション属性のセットを測定する工程と、
前記少なくとも1つのアクセスネットワークに接続されたクライアントデバイスから、前記アプリケーションのための要求を発する工程と、
前記アプリケーション属性のセットに基づき、前記要求に応じて、前記クライアントデバイスおよび前記サーバデバイスの一方上で前記アプリケーションの実行を与える工程と、
前記実行を与える工程に応じて、前記クライアントデバイスおよび前記サーバデバイスの前記一方で前記アプリケーションを実行する工程と、
を備えたことを特徴とする方法。 - 前記アプリケーションを実行している間、前記アプリケーション属性のセットを監視する工程と、
前記アプリケーションを実行している間における前記監視されたアプリケーション属性のセットに基づいて、前記サーバデバイスから前記クライアントデバイスへ前記アプリケーションを再配置するか否かを決定する工程と、
を更に備えたことを特徴とする請求項65に記載の方法。 - アプリケーション属性の前記セットに基づいて、前記サーバデバイスと前記クライアントデバイスとの間で通信するための第1のアクセスネットワークを選択する工程
を更に備えたことを特徴とする請求項65に記載の方法。 - 前記アプリケーションを実行している間、前記アプリケーション属性のセットを監視する工程と、
前記アプリケーションを実行している間における前記監視されたアプリケーション属性のセットに基づいて、前記サーバデバイスと前記クライアントデバイスとの間で通信するための第2のアクセスネットワークに切換えるか否かを決定する工程と、
ことを更に備えたことを特徴とする請求項67に記載の方法。 - 前記少なくとも1つの性能属性は、前記アプリケーションにおけるユーザインタフェースイベントのための待ち時間に関する少なくとも1つのパラメータを含み、
前記待ち時間は、サーバ計算時間および通信時間を含んでいる
ことを特徴とする請求項65に記載の方法。 - 待ち時間に関する少なくとも1つの前記パラメータは、前記待ち時間、前記サーバ計算時間及び前記通信時間の平均と、前記待ち時間、前記サーバ計算時間及び前記通信時間の分散と、のうちの少なくとも一つを含んでいる
ことを特徴とする請求項69に記載の方法。 - 前記サーバ計算時間は、内部計算時間およびデータI/O時間を含んでいる
ことを特徴とする請求項70に記載の方法。 - 前記少なくとも1つの性能属性は、前記アプリケーションが終了まで実行する総使用時間を更に含んでいる
ことを特徴とする請求項70に記載の方法。 - 前記少なくとも1つの性能属性は、アプリケーション毎に測定される
ことを特徴とする請求項65に記載の方法。 - 前記少なくとも1つの性能属性は、デバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項65に記載の方法。 - 前記少なくとも1つの性能属性は、ユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項65に記載の方法。 - 前記少なくとも1つの性能属性は、アクセスネットワーク毎のユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項65に記載の方法。 - アプリケーション属性の前記セットは、前記クライアントデバイス、前記サーバデバイス及び前記少なくとも1つのアクセスネットワークのうちの少なくとも1つの性能を特徴付けるための、少なくとも1つのシステム属性を更に含んでいる
ことを特徴とする請求項65に記載の方法。 - 前記クライアントデバイスの性能を特徴付けるためのシステム属性は、前記クライアントデバイスのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記クライアントデバイスにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項77に記載の方法。 - 前記サーバデバイスの性能を特徴付けるためのシステム属性は、前記サーバデバイスのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記サーバデバイスにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項77に記載の方法。 - 前記少なくとも1つのアクセスネットワークの性能を特徴付けるためのシステム属性は、ネットワーク帯域幅、ネットワーク待ち時間及びネットワーク状態、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項77に記載の方法。 - 少なくとも1つのネットワークの一部を形成するアプリケーションをロードバランシングするためのシステムであって、
前記少なくとも1つのネットワークに接続され、前記アプリケーションのための様々な実行環境を与える複数の実行モジュールと、
前記少なくとも1つのネットワークに接続され、前記アプリケーションのユーザ認識性能を特徴付けるための少なくとも1つの性能属性を含む前記アプリケーションに関連付けられたアプリケーション属性のセットを測定する少なくとも1つの収集モジュールと、
前記少なくとも1つのネットワークに接続され、前記アプリケーション属性に基づいて前記アプリケーションの実行環境を決定するための少なくとも1つのポリシーを満たす第1の実行モジュールを決定する少なくとも1つのポリシーモジュールと、
前記第1の実行モジュール上に前記アプリケーションを割り当てる少なくとも1つのプログラム割り当てモジュールと、
を備えたことを特徴とするシステム。 - アプリケーション属性の前記セットに基づいて前記アプリケーションの通信環境を決定するための少なくとも1つのポリシーを満たすアクセスネットワークを選択する少なくとも1つのネットワーク割り当てモジュール
を更に備えたことを特徴とする請求項81に記載のシステム。 - 前記少なくとも1つの性能属性は、前記アプリケーションにおけるユーザインタフェースイベントのための待ち時間に関する少なくとも1つのパラメータを含み、
前記待ち時間は、サーバ計算時間および通信時間を含んでいる
ことを特徴とする請求項82に記載のシステム。 - 待ち時間に関する少なくとも1つの前記パラメータは、前記待ち時間、前記サーバ計算時間及び前記通信時間の平均と、前記待ち時間、前記サーバ計算時間及び前記通信時間の分散と、のうちの少なくとも一つを含んでいる
ことを特徴とする請求項83に記載のシステム。 - 前記サーバ計算時間は、内部計算時間およびデータI/O時間を含んでいる
ことを特徴とする請求項84に記載のシステム。 - 前記少なくとも1つの性能属性は、前記アプリケーションが終了まで実行する総使用時間を更に含んでいる
ことを特徴とする請求項85に記載のシステム。 - 前記少なくとも1つの性能属性は、アプリケーション毎に測定される
ことを特徴とする請求項81に記載のシステム。 - 前記少なくとも1つの性能属性は、デバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項81に記載のシステム。 - 前記少なくとも1つの性能属性は、ユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項81に記載のシステム。 - 前記少なくとも1つの性能属性は、アクセスネットワーク毎のユーザ毎のデバイス毎のアプリケーション毎に測定される
ことを特徴とする請求項81に記載のシステム。 - アプリケーション属性の前記セットは、前記クライアントデバイス、前記サーバデバイス及び前記少なくとも1つのアクセスネットワークのうちの少なくとも1つの性能を特徴付けるための、少なくとも1つのシステム属性を更に含んでいる
ことを特徴とする請求項81に記載のシステム。 - 前記クライアントデバイスの性能を特徴付けるためのシステム属性は、前記クライアントデバイスのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記クライアントデバイスにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項91に記載のシステム。 - 前記サーバデバイスの性能を特徴付けるためのシステム属性は、前記サーバデバイスのプロセッサの稼動時間の測定に関するパラメータ、前記プロセッサのMIPS等級、前記サーバデバイスにおける固定記憶域のメモリサイズおよび大きさ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項91に記載のシステム。 - 前記少なくとも1つのアクセスネットワークの性能を特徴付けるためのシステム属性は、ネットワーク帯域幅、ネットワーク待ち時間及びネットワーク状態、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項91に記載のシステム。 - デバイス間での通信のための少なくとも1つのアクセスネットワークに接続された複数のコンピュータデバイス間でアプリケーションをロードバランシングするシステムであって、
前記少なくとも1つのアクセスネットワークに接続されたサーバデバイス上に前記アプリケーションを記憶する手段と、
前記アプリケーションのユーザ認識性能を特徴付けるための少なくとも1つの性能属性を含むアプリケーション属性のセットを測定する手段と、
前記少なくとも1つのアクセスネットワークに接続されたクライアントデバイスから、前記アプリケーションのための要求を発する手段と、
前記アプリケーション属性のセットに基づき、前記要求に応じて、前記クライアントデバイスおよび前記サーバデバイスの一方上で前記アプリケーションの実行を与える手段と、
前記実行を与えることに応じて、前記クライアントデバイスおよび前記サーバデバイスの前記一方で前記アプリケーションを実行する手段と、
を備えたことを特徴とするシステム。 - 前記アプリケーションを実行している間、前記アプリケーション属性のセットを監視する手段と、
前記監視されたアプリケーション属性のセットに基づいて、前記サーバデバイス上での実行中、前記サーバデバイスから前記クライアントデバイスへ前記アプリケーションを再配置するか否かを決定する手段と、
を更に備えたことを特徴とする請求項95に記載のシステム。 - 前記サーバデバイスと前記クライアントデバイスとの間で通信するために、アプリケーション属性の前記セットに基づいて、第1のアクセスネットワークを選択する手段
を更に備えたことを特徴とする請求項95に記載のシステム。 - 前記アプリケーションの実行中、前記アプリケーション属性のセットを監視する手段と、
前記サーバデバイスと前記クライアントデバイスとの間で通信するため、前記監視されたアプリケーション属性のセットに基づいて、前記アプリケーションの実行中、第2のアクセスネットワークに切換えるか否かを決定する手段と、
を更に備えたことを特徴とする請求項97に記載のシステム。 - ネットワークに接続された複数のモジュール間で通信するための構成可能な信頼できるメッセージングシステムを備え、
当該メッセージングシステムは、
メッセージを生成し、且つ、前記ネットワークを介して前記メッセージに対する応答を受けるようになっているクライアントモジュールと、
前記ネットワークを介して、前記メッセージを受け、且つ、前記応答を生成するようになっているサーバモジュールと、
クライアントロギング信号に応じて前記クライアントモジュール上で選択的に実行するとともに、前記メッセージおよび前記応答を記憶するように且つ前記応答が受けられるまで前記メッセージを前記サーバモジュールに送信するようになっているクライアントロギングエージェントと、
サーバロギング信号に応じて前記サーバモジュール上で選択的に実行するとともに、前記メッセージおよび前記応答を記憶するように且つ前記応答を前記クライアントモジュールに送信するようになっているサーバロギングエージェントと、
前記クライアントモジュールおよび前記サーバモジュールのうちの少なくとも一方に関連付けられ、前記クライアントロギング信号および前記サーバロギング信号を生成するようになっているコンフィギュレーションエージェントと、
を含んでいる
ことを特徴とするフォールトトレランスシステム。 - アプリケーションを処理するために前記クライアントモジュールおよび前記サーバモジュールのうちの少なくとも一方で実行するとともに、実行状態を取得して、前記クライアントモジュールおよび前記サーバモジュールのうちの前記少なくとも一方に関連付けられた固定記憶域に当該実行状態を記憶するようになっている、回復可能なランタイムエンジンを更に備え、
前記ランタイムエンジンは、当該ランタイムエンジンを実行している前記クライアントモジュールおよび前記サーバモジュールのうちの前記少なくとも一方の一時的な故障後、前記実行状態に基づいて、実行を再開することができる
ことを特徴とする請求項99に記載のフォールトトレランスシステム。 - 前記クライアントモジュールは、前記メッセージを記憶するための第1の固定記憶域バッファを有している
ことを特徴とする請求項99に記載のフォールトトレランスシステム。 - 前記第1の固定記憶域バッファは、ユーザ構成可能なサイズを有している
ことを特徴とする請求項100に記載のフォールトトレランスシステム。 - 前記サーバモジュールは、前記応答を記憶するための第2の固定記憶域バッファを有している
ことを特徴とする請求項99に記載のフォールトトレランスシステム。 - 前記第2の固定記憶域バッファは、ユーザ構成可能なサイズを有している
ことを特徴とする請求項102に記載のフォールトトレランスシステム。 - 前記実行状態は、実行しているアプリケーションのリストおよび前記実行している各アプリケーションに関連付けられたアプリケーションコンテキストを含んでいる
ことを特徴とする請求項100に記載のフォールトトレランスシステム。 - 前記実行状態は、前記実行している各アプリケーションにおける優先順位の値を更に含んでいる
ことを特徴とする請求項105に記載のフォールトトレランスシステム。 - 前記アプリケーションコンテキストは、ハードウェアリソースに関連するパラメータ、外部ファイルに関連するパラメータ、性能属性に関連するパラメータ、及び、実行しているアプリケーションに関連付けられたリソース権利に関連するパラメータ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項105に記載のフォールトトレランスシステム。 - 前記性能属性は、前記実行しているアプリケーションのユーザインタフェースイベントにおける待ち時間の平均および待ち時間の分散のうちの少なくとも一方を含んでいる
ことを特徴とする請求項107に記載のフォールトトレランスシステム。 - 前記実行しているアプリケーションは、アプリケーション状態を保存するとともに、当該アプリケーション状態を使用して実行を再開するようになっている
ことを特徴とする請求項100に記載のフォールトトレランスシステム。 - 分散コンピュータシステムをフォールトトレラントにするための方法であって、
要求メッセージを生成し且つ応答メッセージを受けるようになっている第1のコンピュータデバイスと、前記要求メッセージを受け且つ前記要求メッセージに応じて前記応答メッセージを生成するようになっている第2のコンピュータデバイスと、を含むネットワークに接続された複数のコンピュータデバイス間で複数のメッセージを送る工程と、
前記第1のコンピュータデバイス上に前記要求メッセージを選択的に記憶する工程と、
前記第2のコンピュータデバイス上に前記要求メッセージを選択的に記憶する工程と、
前記第2のコンピュータデバイス上に前記応答メッセージを選択的に記憶する工程と、
前記第1のコンピュータデバイス上に前記応答メッセージを選択的に記憶する工程と、
を備えたことを特徴とする方法。 - 少なくとも1つのアプリケーションを処理するため、前記第1のコンピュータデバイスおよび前記第2のコンピュータデバイスのうちの少なくとも一方でランタイムエンジンを実行する工程と、
前記ランタイムエンジンの実行状態を取得して保存する工程と、
前記第1のコンピュータデバイスおよび前記第2のコンピュータデバイスのうちの前記少なくとも一方の一時的な故障の後、前記実行状態に基づいて、前記ランタイムエンジンの実行を再開する工程と、
を更に備えたことを特徴とする請求項110に記載の方法。 - 前記第2のコンピュータデバイスから前記応答メッセージを除去する工程と、
前記第2のコンピュータデバイスから前記要求メッセージを除去する工程と、
前記第1のコンピュータデバイスから前記要求メッセージを除去する工程と、
前記第1のコンピュータデバイスから前記応答メッセージを除去する工程と、
を更に備えたことを特徴とする請求項110に記載の方法。 - 前記第1のコンピュータデバイス上に前記要求メッセージを選択的に記憶する前記工程は、前記第1のコンピュータデバイスに関連付けられた第1の固定記憶域バッファに前記要求メッセージを選択的に記憶する工程を含んでいる
ことを特徴とする請求項110に記載の方法。 - 前記第1の固定記憶域バッファは、ユーザ構成可能なサイズを有している
ことを特徴とする請求項113に記載の方法。 - 前記第2のコンピュータデバイス上に前記応答メッセージを選択的に記憶する前記工程は、前記第2のコンピュータデバイスに関連付けられた第2の固定記憶域バッファに前記応答メッセージを選択的に記憶する工程を含んでいる
ことを特徴とする請求項110に記載の方法。 - 前記第2の固定記憶域バッファは、ユーザ構成可能なサイズを有している
ことを特徴とする請求項115に記載の方法。 - 前記ランタイムエンジンの実行状態を保存する工程は、実行しているアプリケーションのリストおよび当該実行している各アプリケーションに関連付けられたアプリケーションコンテキストを記憶する工程を含んでいる
ことを特徴とする請求項111に記載の方法。 - 前記ランタイムエンジンの実行状態を保存する工程は、前記少なくとも1つのアプリケーションにおける優先順位の値を記憶する工程を更に含んでいる
ことを特徴とする請求項117に記載の方法。 - 前記アプリケーションコンテキストは、ハードウェアリソースに関連するパラメータ、外部ファイルに関連するパラメータ、性能属性に関連するパラメータ、及び、実行しているアプリケーションに関連付けられたリソース権利に関連するパラメータ、のうちの少なくとも1つを含んでいる
ことを特徴とする請求項117に記載の方法。 - 性能属性に関連する前記パラメータは、前記少なくとも1つのアプリケーションのユーザインタフェースイベントにおける待ち時間の平均および待ち時間の分散のうちの少なくとも一方を含んでいる
ことを特徴とする請求項119に記載の方法。 - 前記少なくとも1つのアプリケーションに関連付けられたアプリケーション状態を取得して保存する工程と、
前記アプリケーション状態に基づいて、前記少なくとも1つのアプリケーションの実行を再開する工程と、
を更に備えたことを特徴とする請求項111に記載の方法。 - 要求メッセージを生成し且つ応答メッセージを受けるようになっている第1のコンピュータデバイスと、前記要求メッセージを受け且つ前記要求メッセージに応じて前記応答メッセージを生成するようになっている第2のコンピュータデバイスと、を含むネットワークに接続された複数のコンピュータデバイス間で複数のメッセージを送る手段と、
前記第1のコンピュータデバイス上に前記要求メッセージを選択的に記憶する手段と、
前記第2のコンピュータデバイス上に前記要求メッセージを選択的に記憶する手段と、
前記第2のコンピュータデバイス上に前記応答メッセージを選択的に記憶する手段と、
前記第1のコンピュータデバイス上に前記応答メッセージを選択的に記憶する手段と、
を備えたことを特徴とするフォールトトレラントな分散コンピュータシステム。 - アプリケーションを処理するため、前記第1のコンピュータデバイスおよび前記第2のコンピュータデバイスのうちの少なくとも一方でランタイムエンジンを実行する手段と、
前記ランタイムエンジンの実行状態を取得して保存する手段と、
前記第1のコンピュータデバイスおよび前記第2のコンピュータデバイスのうちの前記少なくとも一方の一時的な故障の後、前記実行状態に基づいて、前記ランタイムエンジンの実行を再開する手段と、
を更に備えたことを特徴とする請求項122に記載のシステム。 - 分散コンピュータシステムをフォールトトレラントにするための方法であって、
ネットワークに接続されたクライアントモジュールによりメッセージを生成する工程と、
前記クライアントモジュール上に前記メッセージを選択的に記憶する工程と、
前記ネットワークに接続されたサーバモジュールに前記メッセージを送る工程と、
前記サーバモジュール上に前記メッセージを受けて選択的に記憶する工程と、
前記サーバモジュールから先の応答を解放する工程と、
前記サーバモジュールにより、前記メッセージに対する応答を生成する工程と、
前記サーバモジュール上に前記応答を選択的に記憶する工程と、
前記応答を前記クライアントモジュールに送る工程と、
前記サーバモジュールから前記メッセージを除去する工程と、
前記クライアントモジュール上に前記応答を受けて選択的に記憶する工程と、
前記クライアントモジュールから前記メッセージを除去する工程と、
前記クライアントモジュールから前記応答を解放する工程と、
を備えたことを特徴とする方法。 - 少なくとも1つのアプリケーションを処理するために、前記クライアントモジュールおよび前記サーバモジュールのうちの少なくとも一方でランタイムエンジンを実行する工程と、
前記ランタイムエンジンの実行状態を取得して保存する工程と、
前記クライアントモジュールおよび前記サーバモジュールのうちの前記少なくとも一方の一時的な故障の後、前記実行状態に基づいて、前記ランタイムエンジンの実行を再開する工程と、
を更に備えたことを特徴とする請求項124に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/179,994 US20030236826A1 (en) | 2002-06-24 | 2002-06-24 | System and method for making mobile applications fault tolerant |
US10/179,910 US7454458B2 (en) | 2002-06-24 | 2002-06-24 | Method and system for application load balancing |
US10/179,929 US20040001476A1 (en) | 2002-06-24 | 2002-06-24 | Mobile application environment |
PCT/US2003/009934 WO2004001585A1 (en) | 2002-06-24 | 2003-03-31 | Mobile application environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005531061A true JP2005531061A (ja) | 2005-10-13 |
Family
ID=30003698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004515623A Withdrawn JP2005531061A (ja) | 2002-06-24 | 2003-03-31 | モバイルアプリケーションのための実行環境 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1516244A4 (ja) |
JP (1) | JP2005531061A (ja) |
CN (1) | CN1326035C (ja) |
AU (1) | AU2003230776A1 (ja) |
WO (1) | WO2004001585A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014506342A (ja) * | 2010-09-10 | 2014-03-13 | マイクロソフト コーポレーション | データセンタサービスの制御された自動復旧 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8355709B2 (en) * | 2006-10-23 | 2013-01-15 | Qualcomm Incorporated | Device that determines whether to launch an application locally or remotely as a webapp |
US8520535B2 (en) | 2007-05-31 | 2013-08-27 | International Business Machines Corporation | Optimization process and system for a heterogeneous ad hoc Network |
US7843861B2 (en) | 2007-05-31 | 2010-11-30 | International Business Machines Corporation | Coalition formation and service provisioning of bandwidth sharing AD HOC networks |
US7873019B2 (en) | 2007-05-31 | 2011-01-18 | International Business Machines Corporation | Systems and methods for establishing gateway bandwidth sharing ad-hoc networks |
US7817623B2 (en) | 2007-05-31 | 2010-10-19 | International Business Machines Corporation | Optimization process and system for non-multiplexed peer-to-peer architecture |
US7898993B2 (en) | 2007-05-31 | 2011-03-01 | International Business Machines Corporation | Efficiency and resiliency enhancements for transition states in ad hoc networks |
US10623998B2 (en) | 2007-05-31 | 2020-04-14 | International Business Machines Corporation | Price offerings for bandwidth-sharing ad hoc networks |
US8320414B2 (en) | 2007-05-31 | 2012-11-27 | International Business Machines Corporation | Formation and rearrangement of lender devices that perform multiplexing functions |
US7944878B2 (en) | 2007-05-31 | 2011-05-17 | International Business Machines Corporation | Filtering in bandwidth sharing ad hoc networks |
US10419360B2 (en) | 2007-05-31 | 2019-09-17 | International Business Machines Corporation | Market-driven variable price offerings for bandwidth-sharing ad hoc networks |
US8249984B2 (en) | 2007-05-31 | 2012-08-21 | International Business Machines Corporation | System and method for fair-sharing in bandwidth sharing ad-hoc networks |
US8620784B2 (en) | 2007-05-31 | 2013-12-31 | International Business Machines Corporation | Formation and rearrangement of ad hoc networks |
CN105164664B (zh) * | 2013-03-20 | 2018-06-15 | 英派尔科技开发有限公司 | 多核架构中的混合路由器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04138547A (ja) * | 1990-02-01 | 1992-05-13 | Internatl Business Mach Corp <Ibm> | アプリケーション間シフト方法および装置 |
US5832219A (en) * | 1994-02-08 | 1998-11-03 | Object Technology Licensing Corp. | Distributed object networking service |
JP3658420B2 (ja) * | 1994-04-14 | 2005-06-08 | 株式会社日立製作所 | 分散処理システム |
US6487607B1 (en) * | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
SE521209C2 (sv) * | 1998-06-05 | 2003-10-14 | Ericsson Telefon Ab L M | Anordning och förfarande för användning i en virtuell miljö |
US6195680B1 (en) * | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US6996599B1 (en) * | 2000-06-21 | 2006-02-07 | Microsoft Corporation | System and method providing multi-tier applications architecture |
JP3716753B2 (ja) * | 2001-03-21 | 2005-11-16 | 日本電気株式会社 | マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム |
US20030131075A1 (en) * | 2001-05-08 | 2003-07-10 | Narad Networks, Inc. | Language and interface for unified network service creation, provision and deployment |
US20020178262A1 (en) * | 2001-05-22 | 2002-11-28 | David Bonnell | System and method for dynamic load balancing |
US7293070B2 (en) * | 2001-09-17 | 2007-11-06 | Vignette Corporation | Method and system for deploying web components between portals in a portal framework |
US20030069918A1 (en) * | 2001-10-08 | 2003-04-10 | Tommy Lu | Method and apparatus for dynamic provisioning over a world wide web |
-
2003
- 2003-03-31 WO PCT/US2003/009934 patent/WO2004001585A1/en active Application Filing
- 2003-03-31 EP EP03723869A patent/EP1516244A4/en not_active Withdrawn
- 2003-03-31 AU AU2003230776A patent/AU2003230776A1/en not_active Abandoned
- 2003-03-31 CN CNB038099985A patent/CN1326035C/zh not_active Expired - Fee Related
- 2003-03-31 JP JP2004515623A patent/JP2005531061A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014506342A (ja) * | 2010-09-10 | 2014-03-13 | マイクロソフト コーポレーション | データセンタサービスの制御された自動復旧 |
Also Published As
Publication number | Publication date |
---|---|
CN1326035C (zh) | 2007-07-11 |
AU2003230776A1 (en) | 2004-01-06 |
EP1516244A4 (en) | 2007-08-08 |
CN1650255A (zh) | 2005-08-03 |
EP1516244A1 (en) | 2005-03-23 |
WO2004001585A1 (en) | 2003-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040001476A1 (en) | Mobile application environment | |
US7454458B2 (en) | Method and system for application load balancing | |
Puliafito et al. | MAP: Design and implementation of a mobile agents' platform | |
US7467389B2 (en) | System and methodology providing service invocation for occasionally connected computing devices | |
US7707573B1 (en) | Systems and methods for providing and installing software | |
Gu et al. | Adaptive offloading inference for delivering applications in pervasive computing environments | |
US6859834B1 (en) | System and method for enabling application server request failover | |
EP1449078B1 (en) | A method and system for offloading execution and resources for resource-constrained networked devices | |
KR100683820B1 (ko) | 자체-최적화를 위해 관찰된 리소스 요건을 이용한 자율적서비스 라우팅 | |
US10298469B2 (en) | Automatic asynchronous handoff identification | |
JP2003076560A (ja) | Asp.nethttpランタイム | |
JP2005531061A (ja) | モバイルアプリケーションのための実行環境 | |
WO2001013228A9 (en) | Graceful distribution in application server load balancing | |
US20150067146A1 (en) | Custom correlation of a distributed business transaction | |
CN112800017B (zh) | 分布式日志采集方法、装置、介质及电子设备 | |
US11281511B2 (en) | Predictive microservice systems and methods | |
US20030236826A1 (en) | System and method for making mobile applications fault tolerant | |
CN113079210A (zh) | 一种跨区数据自动同步的配置方法、终端设备及存储介质 | |
CN106550002B (zh) | 一种paas云托管系统及方法 | |
CN117642724A (zh) | 使用无服务器计算系统的流式分析 | |
da Silva e Silva et al. | Developing adaptive distributed applications: a framework overview and experimental results | |
JP2002505463A (ja) | 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ | |
Chowdhury et al. | A fault-tolerant approach to alleviate failures in offloading systems | |
JP2002505472A (ja) | 分散システムにおいてリモート・オブジェクトの状態を判断するための方法および装置 | |
Al-Bar et al. | Camel: a mobile applications framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051114 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20051114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20051114 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060221 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080213 |