JP4555000B2 - アプリケーションの適応的レプリケーションをサーバサイドコードユニットを用いて実行する方法および装置 - Google Patents
アプリケーションの適応的レプリケーションをサーバサイドコードユニットを用いて実行する方法および装置 Download PDFInfo
- Publication number
- JP4555000B2 JP4555000B2 JP2004180181A JP2004180181A JP4555000B2 JP 4555000 B2 JP4555000 B2 JP 4555000B2 JP 2004180181 A JP2004180181 A JP 2004180181A JP 2004180181 A JP2004180181 A JP 2004180181A JP 4555000 B2 JP4555000 B2 JP 4555000B2
- Authority
- JP
- Japan
- Prior art keywords
- server
- client
- replica
- replication
- attribute
- 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.)
- Expired - Lifetime
Links
- 230000010076 replication Effects 0.000 title claims description 193
- 238000000034 method Methods 0.000 title claims description 107
- 230000003044 adaptive effect Effects 0.000 title description 23
- 230000006870 function Effects 0.000 claims description 108
- 238000012545 processing Methods 0.000 claims description 90
- 230000004044 response Effects 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 23
- 230000004913 activation Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 60
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 230000036961 partial effect Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 239000000523 sample Substances 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 235000014510 cooky Nutrition 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 229920001690 polydopamine Polymers 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
サーバからクライアントへ、サーバサイドコードユニットの実行をその状態とともに移行させる技術について、以下、具体的に説明する。この技術により、サーバにおける負荷が少なくなり、サーバとクライアントとの間で不必要な通信を行わなくて済むようになる。本発明においては、クライアント装置の機能の多様性や、サーバの負荷および無線通信環境の時間的変動により、コードユニットをサーバまたはクライアントのどちらの側でコードユニット実行すべきかを正確に決定することが可能となり、また、この決定を、サーバ負荷や無線接続状態に応じて動的に変更することも可能である。
以下、システムの各部について更に詳細な説明を行う。しかしながら、本発明は以下の記載に限定されるものではない。なお、本発明の説明が茫漠となるのを避けるため、既知の構造や装置にあっては、その詳細は明示せず、ブロック図の形式で表現することとする。
(1)リプレットモデル
本発明に係るリプレットモデルは、サーバサイドコードユニットを用いるアプリケーションに適用可能である。リプレットモデルは、サーブレットを用いたウェブサーバ拡張技術に基づいて構成されてもよい。この場合、リプレットは、モビリティおよびレプリケーションのための拡張機能を備えたサーブレットとして捉えることもできる。リプレットとは、複製可能なオブジェクトであって、サーバに実装される複製可能なサービスの一部である。複製可能なサービスは、一または複数のリプレットから構成されるが、複製不可能なオブジェクトを含んでいても構わない。
複製可能なサービスに係るリプレットの各々は、当該複製可能なサービスの一つのサービスインタフェースを表す。リプレットは、クライアントからの要求を処理し、当該要求に応じた結果を出力する。各リプレットは、サーバに存在するレプリカ(以下、「プライマリレプリカ」または「サーバレプリカ」という)と、クライアント装置に存在するその他のレプリカ(以下、「クライアントレプリカ」という)の複数のレプリカから構成される。一見すると、リプレットはサーブレットと同じのように思えるが、クライアント装置に自身の複製を置き、要求をローカルに処理することができる点において両者は異なる。なお、サーブレット技術の詳細については、サン・マイクロシステムズ社のホームページ「 HYPERLINK "http://java.sun.com/products/servlet/" http://java.sun.com/products/servlet/」等に解説がある。
リプレットは、機能属性情報を用いて、レプリケーション処理を指示する。ここで機能とは、実行時に収集若しくは推定される状態情報の集合である。状態情報とは、例えば、使用可能なメモリ領域や推定応答時間である。一方、属性とはプロパティの集合である。属性情報は、アプリケーションサーバ、ユーザ、あるいはアプリケーションによって予め特定される設定項目から構成される。例えば、要求されるメモリ量、所望の応答時間である。リプレットマネージャは、属性情報と機能情報とを比較し、どのレプリカを使用するべきか、あるいはレプリカをサーバからダウンロードすべきか否かを決定する。なお、機能属性管理とは、機能管理と属性管理をまとめた概念である。
属性は、複数のパーティ(エンティティ)によって定義され使用される。好ましい態様において、3つのエンティティ(「役割」または「ロール」ともいう)、すなわちクライアント、サーバ、アプリケーションが、共同して属性を決定する。ここで「役割」とは、アクセス権に関して同一の属性を有する複数のエンティティの集合のことである。各エンティティの有する属性は、一般的には、他のエンティティのそれとは競合するか、または一部のみ整合する。例えば、あるユーザは、アプリケーションに関して10秒以内にサービス応答を要求する一方、当該アプリケーションは許容応答時間を15秒であると見積もっている、という場合である。この属性管理においては、属性マネージャによって実行され、異なる「役割」から、本質的に競合する一部の属性を統合して、一つのグローバル属性を生成する。なお、レプリケーションマネージャ501に属性マネージャの機能を持たせてもよい。
リプレットアリーナの機能サービスは、クライアント、サーバおよびアプリケーションの機能情報およびプロファイリング情報を保持する。機能情報は、機能プロファイラによって保持される。機能プロファイラは、デバイス機能、デバイス環境、およびアプリケーション状態(例えば、同期コスト)の検出判定手段としての役割を有し、サービス要求の処理応答時間およびトータル応答時間を予測する。
リプレットの動的な移行は、当該リプレットに係る一または複数のレプリカの、インストール、アンインストール、アクティブ化若しくは非アクティブ化の時期及び場所を決定し、要求に対して呼び出すべきレプリカを決定する処理である。リプレットの適応レプリケーションは、通信接続状態が貧弱な移動端末ユーザに対しても有効であることが好ましい。このようなユーザは、サービス応答時間が長く、また応答時間ごとのばらつきも大きい。リプレットをローカルにクライアント端末へ移行することにより、応答時間および応答時間のばらつきは著しく減少し、これによりユーザの利便性が向上する。断続的な接続状態にあるクライアント端末に対し、リプレットレプリカをインストールすることができる。クライアント端末の接続が途切れたとき、ローカルなクライアントレプリカが起動されて使用される。クライアント端末がネットワークに再接続したとき、ローカルレプリカは終了し、オーナレプリカが使用される。このような処理の間、クライアント端末はネットワークへの接続が切れなかったものとして仮想的に取り扱われる。
上述した選択段階において、クライアント側およびサーバ側のリプレットアレーナに係るレプリケーションマネージャは、互いに協力して、そのクライアント端末が、サーバにインストールされたアプリケーションをレプリケ−ションすべき端末であるか否かを決定する。
送信段階においては、まず、クライアントが、サーバに、ダウンロードしたプローブフラグを付加したサービス要求を送信する。なお、この送信段階の開始時期は、上述した選択段階の最後と、クライアントIDの有効期間との間の時間であるならば、任意である。クライアントは、この自由度を利用して、レプリケーションのための十分なリソースが確保された後、またはサーバに負荷がかからなくなった(レプリケーション実行可能になった)後、この送信段階を開始することができる。
送信段階の最後において、リプレットのクライアントレプリカが生成され、その状態はクライアント同期状態(すなわち、レプリカのクライアント固有の書換え可能データが最新である状態)に設定される。好ましい態様において、このクライアント同期状態にあるクライアントレプリカは、公開データをサーバに同期させることなく、クライアント非公開データにのみアクセスするサービス要求を処理することができる。
レプリケーション処理には、複数のレプリカ間におけるデータ同期が含まれる。レプリケーションシステムによって提供されるデフォルトの同期方法とは別に、アプリケーションに自身の同期方法を定義する許可を与えてもよい。ここでデフォルトの同期方法とは、サーバレプリカをロックし、クライアントがレプリケーション処理を終了したときに、(変更された)MARファイルをクライアント端末へ送信する方法である。リプレットのレプリケーションによって、アプリケーションには、どのレプリカを同期処理の対象とするのか、どのレプリカを同期相手とするか、いつ同期を行うか、また、将来発生が想定される、更新に起因したレプリカ間の競合の問題をどのように取り扱うか、についての決定権が与えられる。
・リプレットは、クライアントレプリカがグローバルアプリケーション状態に書き込むときに、高頻度更新(eager update)または低頻度更新(lazy update)のいずれかを選択する。
・リプレットのサーバレプリカは、クライアント装置への更新の通知に関し、プッシュ型もしくはプル型のいずれかを選択する。
・サーバからの更新通知においてプッシュ型が用いられた場合、クライアントレプリカは、プッシュ型同期を行うか否かを選択する。
リプレットシステムは、サービスオブジェクトとしてのサーブレットを用いたウェブアプリケーション用のJavaに実装されても良い。(アパッチ・ジャカルタプロジェクト(Apache Jakarta Project)のトムキャットサーブレットコンテナを、サービスエンジンとして用いてもよい。
好ましい態様において、レプリケーション処理は、クライアントおよびサーバの両者に対して非イントルーシブである。介入性を生じさせる原因の一つは、送信段階にある。送信段階においては、リプレットシステムが、関連するコードおよびデータをサーバ側において収集し、これをコードおよびデータをクライアントに送信し、そのようなコードおよびデータをクライアント側で適切にインストールする必要があるからである。
サーバ負荷を的確に予測するために用いる、変化するサーバ負荷情報の表現は、本発明に係るリプレットシステムにおいては重要である。それは、低コストでシステムのパフォーマンスを向上させることができるからである。これには、多項式回帰法を用いることができる。ここでサーバ負荷情報は、クライアントへの応答に付加することにより行うことができる。
セッションの移行は、クライアントセッションの途中でレプリケーションを実行するために必要であり、クライアント固有書換え可能データをクライアント端末へ送信する形態をデフォルトとする。これには、クッキーを用いたHTTPセッションを利用してもよい。セッションの移行中は、クライアント側のリプレットアリーナは、ローカルセッションクッキーおよび新たなセッションオブジェクトを生成する。この新たなセッションオブジェクトは、サーバセッションにおける元のセッションからコンテンツに提供され、当該新たに生成したクッキーはクライアントに返される。
好ましい態様において、XML形式の外部命令を用いて、リプレットのGETメソッドおよびPOSTメソッドが、公開データの読出しおよび書き込みを行うことを示すことができる。しかしながら、リプレットは異なる種類のリクエストに対して用いられ得る。このようなリクエストには、公開データへのアクセスを要求するものもあれば要求しないものもある。このようなリクエストを区別するために、J2EEサーブレットマッピングと同様な方法を採用する。各リクエストの種類は、仮想リプレットに割り当てられる。これらの仮想リプレットが、同一の実際のリプレットへマッピングしている間、公開データアクセス命令が各仮想リプレットに対して生成される。例えば、ウェブカレンダーアプリケーションにおいて、アポイントメントの閲覧中には、アポイントメントアクセス公開データは生成されない。同一のリプレットは、これらの生成処理および閲覧処理の2つの処理を行うことができるが、好ましい態様において、URIは、異なるアクセス命令によって異なる仮想リプレットへのマッピングを行う。これにより、閲覧処理を常にクライアントレプリカ関しローカルに実行することが可能となる。
レプリケーションマネージャは、リプレットアリーナに存在する全てのリプレットレプリカについての、インストールおよびアンインストール、起動(アクティベーション)および終了(ディアクティベーション)、呼出しを制御する。レプリケーションマネージャは、例えば、以下のいずれかの条件が満たされたときに呼び出されてもよい。すなわち、タイムアウトが生じたとき、他のレプリケーションマネージャから送信されたメッセージを受信したとき、サービス要求を受信したとき、サービス応答を受信したとき、プロファイリングデータを収集したとき、ポリシ基準項目が更新されたとき、および状態の同期が行われたとき、である。
好ましい態様において、レプリケ−ションマネージャ間プロトコルは、クライアント側レプリケーションマネージャとサーバ側レプリケーションマネージャとの間の通信プロトコルを規定するものである。具体的には、このプロトコルは、下位層のトランスポートプロトコルとしてHTTPを用いる。レプリケーションマネージャ間プロトコルメッセージは、HTTPヘッダフィールドとして送信される。図13は、レプリケーションマネージャ間プロトコルを用いて、クライアントレプリケーションマネージャとサーバレプリケーションマネージャとの間の通信における5つのパターンを示したものである。
好ましい態様において、クライアントがブラウザからの要求を受信すると、クライアントには2つの選択肢が与えられる。すなわち、その要求を直ちにローカルに処理するか、またはサービス要求メッセージをサーバに送信するか、である。クライアントは、リプレットにおいて起動されているレプリカがある場合であって、このローカルに起動されているレプリカを使用することを決定した場合にのみ、当該要求を直ちにローカルに処理することができる。これ以外の場合は全て(すなわち、クライアントがローカルに実行することを決定した場合であっても)、クライアントはサービス要求をサーバに送信する。サービス要求メッセージは、例えば、以下に示す情報を格納するフィールドを有する。
2.セッションID(クライアントが複数のセッションをサポートしてる場合に限る)(オプション項目)
3.クライアント側の決定およびクライアント側ヘルパの信頼度(オプション項目)
4.クライアント機能およびユーザ属性(オプション項目)
5.クライアント側レプリカの状態(オプション項目)
6.クライアントが把握している、サーバ機能、サーバ属性、およびアプリケーション属性(オプション項目)
7.アプリケーション同期データ(オプション項目)
8.セッション同期データ(オプション項目)
9.クライアントがサーバのプッシュを許可するか否かについて(オプション項目;ただし、デフォルトでは「許可しない」に設定される)
ローカルに起動しているレプリカを有するクライアントは、事前に(すなわち、要求をブラウザから受信するとともに)、そのレプリカの状態をサーバに同期させてもよい。好ましい態様において、これは以下の条件を充足した時に行われる。
・条件1:クライアントによるローカル処理が完了している
・条件2:クライアントレプリカが破棄されるようとしている(すなわち、インスタンス化状態から非インスタンス化状態へ遷移するとき)
・条件3:アプリケーションが自ら同期状態を要求したとき
・条件4:サーバが、状態同期を行うために「同期用プル」を用いたとき
サービス要求に対する応答とは、具体的には、サービス要求メッセージの応答として、サーバからクライアントに送信されたメッセージのことである。このメッセージの内容は、リプレットのサーバレプリカの実行結果であってもよいし、クライアントレプリカが、そのローカルレプリカを起動し要求をローカルに処理するために必要な情報を含んでいてもよい。
1.このメッセージが実際のサービス応答であるか否かについて(必須項目)
2.実際のサービス応答(オプション項目)
3.サーバ機能(オプション項目)
4.アプリケーション属性およびサーバ属性(オプション項目)
5.同期データ(オプション項目)
なお、フィールド3、4、5は、フィールド2と併存可能である。
サーバは、クライアントに対し、最新の状態情報を要求する。この際に用いられるメッセージは、例えば、以下の情報を格納するためのフィールドを有する。
1.サーバがアプリケーションに関する同期データに加え、セッション固有同期データを要求しているか否かを示すフラグ(必須項目)
2.サーバの動的機能(オプション項目)
3.サ−バ属性およびアプリケーション属性の更新(オプション項目)
サーバは、同期データをクライアントへプッシュする。この際に用いるメッセージには、例えば、以下の情報を格納するためのフィールドが含まれる。
1.アプリケーションに関する同期データ
2.サーバの動的機能(オプション項目)
3.サ−バ属性およびアプリケーション属性の更新(オプション項目)
サーバは、アクティブなレプリカを有しサーバのプッシュを許可しているクライアントに対し、新たなCPI情報をプッシュする。この際に用いられるメッセージには、例えば、以下の情報を格納するためのフィールドが含まれる。
1.サーバの動的機能(オプション項目)
2.サ−バ属性およびアプリケーション属性の更新(オプション項目)
図22に、適応コンサルタントインタフェースの一例を示す。
図14は、移動端末、インターネット、およびサーバから構成される通信環境を示す図である。図14に示すように、この通信環境においては、移動端末1401が、通信インタフェース1420を用いて、サーバ1403およびインターネット1402を介して接続する。他のソフトウェア1410、例えば、移動端末のウェブブラウザは、サービス呼出しインタフェース1401Aおよびユーザ属性インタフェース1401Bを用いて、移動端末側レプリケーションシステム1430と情報の授受を行う。同様に、サーバ側においても、他のサーバ用ソフトウェア1411、例えばサーバ設定プログラムは、アプリケーションインタフェース1403Aおよびサーバ属性インタフェース1403Bを介して、サーバ側レプリケーションシステム1431と情報の授受を行う。サーバ1403は、さらに、通信インタフェース1421を有しており、サーバ側レプリケーションシステム1431および他のサーバソフトウェア1421と情報の授受を行う。図示は省略しているが、移動端末1401およびサーバ1403は、必要なハードウェアおよびソフトウェアを備えて構成される。レプリケーションシステムに必要なハードウェア構成の一例を図21に示しておく。
図17は、レプリケーション場所選択プロトコルにおける、レプリケーション場所の処理シーケンスを例示した図である。移動端末側のレプリケーションシステムにおいては、サービス要求を生成し(ステップS1701)、サーバ側レプリケーションシステムに送信される。この後、移動端末側のレプリケーションシステムは応答を待つ(ステップS1710)。サーバ側のレプリケーションシステムは、このサービス要求に応じてレプリケーションの許可を示す指示を生成し、サービス応答を移動端末側レプリケーションシステムに送信する(ステップS1711、S1702)。この後、移動体側のレプリケーションシステムは、当該移動端末でレプリケーションが可能サービスであることを確認し(ステップS1712)、レプリケーション要求をサーバ側のレプリケーションシステムに送信する(ステップS1703)、応答を待つ(ステップS1714)。移動端末側のレプリケーションシステムが応答を待っている間、サーバ側レプリケーションシステムは、レプリケーション場所となるべき移動端末を選択し、レプリケーション応答を生成して移動端末側のレプリケーションシステムへ送信する(ステップS1704)。
図23に、メッセージおよびデータの種類の定義を示す。
Claims (14)
- サーバ装置およびクライアント装置が、実行可能なコードで構成されるアプリケーションサービスオブジェクトに関し、(i)レプリケーション実行時における、(a)前記アプリケーションサービスオブジェクトが要求するハードウェア構成を表すアプリケーション機能情報と、(b)クライアント装置のハードウェア環境を表すクライアント機能情報と、(c)前記サーバ装置のハードウェア環境を表すサーバ機能情報と、(ii)前記サーバ、前記クライアント装置のユーザ、および前記アプリケーションの少なくともいずれかによって予め定められた属性情報とを取得するステップと、
前記サーバ装置が、前記クライアント装置に対し、前記クライアント機能情報と前記サーバ機能情報と前記アプリケーション機能情報と前記属性情報とに基づいて、少なくとも一のアプリケーションサービスオブジェクトのレプリケーションの実行を許可する旨の実行指示を送信するステップと、
前記クライアント装置が、前記実行指示に基づいて、前記アプリケーションサービスオブジェクトのレプリケーションを実行する実行ステップと
を有し、
前記実行ステップにおいて、前記クライアント装置が、クライアントレプリカまたはサーバレプリカのいずれを用いるべきかを表す候補情報と当該候補情報の信頼度とを取得し、該取得された信頼度と前記属性から決定される閾値とを比較することにより、サーバレプリカまたはクライアントレプリカのうち前記レプリケーションにおいて使用する一つのレプリカを決定する
ことを特徴とするレプリケーション実行方法。 - サーバ装置のコンピュータに、
実行可能なコードで構成されるアプリケーションサービスオブジェクトに関し、(i)レプリケーション実行時における、(a)前記アプリケーションサービスオブジェクトが要求するハードウェア構成を表すアプリケーション機能情報と、(b)クライアント装置のハードウェア環境を表すクライアント機能情報と、(c)サーバ装置のハードウェア環境を表すサーバ機能情報と、(ii)前記サーバ装置、前記クライアント装置のユーザ、および前記アプリケーションの少なくともいずれかによって予め定められた属性情報とを取得するステップと、
前記クライアント装置に対し、前記クライアント機能情報と前記サーバ機能情報と前記アプリケーション機能情報と前記属性情報とに基づいて、少なくとも一のアプリケーションサービスオブジェクトのレプリケーションの実行を許可する旨の実行指示を送信するステップと、
前記クライアント装置が、クライアントレプリカまたはサーバレプリカのいずれを用いるべきかを表す候補情報と当該候補情報の信頼度とを取得し該取得された信頼度と前記属性から決定される閾値とを比較した結果として前記サーバ装置へ要求を送信した場合に、当該要求に基づいてサーバレプリカまたはクライアントレプリカのうち前記レプリケーションにおいて使用する一つのレプリカを決定するステップと
を実行させるプログラム。 - 一または複数のクライアント装置と通信を行うための通信インタフェースと、
実行可能なコードで構成されるアプリケーションサービスオブジェクトに関し、(i)レプリケーション実行時における、(a)前記アプリケーションサービスオブジェクトが要求するハードウェア構成を表すアプリケーション機能情報と、(b)クライアント装置のハードウェア環境を表すクライアント機能情報と、(c)サーバ装置のハードウェア環境を表すサーバ機能情報と、(ii)前記サーバ装置、前記クライアント装置のユーザ、および前記アプリケーションの少なくともいずれかによって予め定められた属性情報とを取得する手段と、
前記クライアント装置に対し、前記クライアント機能情報と前記サーバ機能情報と前記アプリケーション機能情報と前記属性情報とに基づいて、少なくとも一のアプリケーションサービスオブジェクトのレプリケーションの実行を許可する旨の実行指示を送信する送信手段と、
前記クライアント装置の要求に基づき、クライアントレプリカまたはサーバレプリカのいずれを用いるべきかを表す候補情報と当該候補情報の信頼度を取得し、該取得された信頼度と前記属性から決定される閾値とを比較することにより、サーバレプリカまたはクライアントレプリカのうち前記レプリケーションにおいて使用する一つのレプリカを決定する手段と
を有するサーバ装置。 - サーバ装置と通信を行うための通信インタフェースと、
実行可能なコードで構成されるアプリケーションサービスオブジェクトに関し、(i)レプリケーション実行時における、(a)前記アプリケーションサービスオブジェクトが要求するハードウェア構成を表すアプリケーション機能情報と、(b)クライアント装置のハードウェア環境を表すクライアント機能情報と、(c)サーバ装置のハードウェア環境を表すサーバ機能情報と、(ii)前記サーバ装置、前記クライアント装置のユーザ、および前記アプリケーションの少なくともいずれかによって予め定められた属性情報とを取得する手段と、
前記クライアント機能情報と前記サーバ機能情報と前記アプリケーション機能情報とに基づいて、少なくとも一のアプリケーションサービスオブジェクトのレプリケーションについての実行許可の要求を、前記サーバ装置に送信する手段と、
クライアントレプリカまたはサーバレプリカのいずれを用いるべきかを表す候補情報と当該候補情報の信頼度とを取得し、該取得された信頼度と前記属性から決定される閾値とを比較することにより、サーバレプリカまたはクライアントレプリカのうち前記レプリケーションにおいて使用する一つのレプリカを決定する手段と
を有するクライアント装置。 - 前記サーバ装置、前記クライアント装置のユーザ、および前記アプリケーションの少なくともいずれかによって予め定められた属性情報とを取得する属性マネージャと、
実行可能なコードで構成されるアプリケーションサービスオブジェクトに関し、(i)レプリケーション実行時における、(a)前記アプリケーションサービスオブジェクトが要求するハードウェア構成を表すアプリケーション機能情報と、(b)クライアント装置のハードウェア環境を表すクライアント機能情報と、(c)前記サーバ装置のハードウェア環境を表すサーバ機能情報を取得する機能プロファイラと、
前記クライアント機能情報と前記サーバ機能情報と前記アプリケーション機能情報と前記属性情報とに基づいて、少なくとも一のアプリケーションサービスオブジェクトのレプリケーションの実行を前記クライアント装置に指示するレプリケーションマネージャと
を有し、
前記レプリケーションマネージャは、前記クライアント装置に対し、前記実行指示に基づいて前記アプリケーションサービスオブジェクトのレプリケーションを実行する場合に、クライアントレプリカまたはサーバレプリカのいずれを用いるべきかを表す候補情報と当該候補情報の信頼度とを取得し、該取得された信頼度と前記属性から決定される閾値とを比較することにより、サーバレプリカまたはクライアントレプリカのうち前記レプリケーションにおいて使用する一つのレプリカを決定させる
ことを特徴とするレプリケーションシステム。 - 前記クライアント機能情報には、記憶容量、利用可能な記憶装置、CPUの処理能力、利用する通信網の帯域幅、および前記サーバ装置までのラウンドトリップタイムの少なくともいずれか一つが含まれ、
前記サーバ機能情報には、前記サーバ装置のCPUの処理能力または負荷状態が含まれ、
前記アプリケーション機能情報には、メモリ要求量、前記クライアント装置におけるコスト変動幅、クライアントレプリカの数、およびソフトウェア環境に関する情報の少なくともいずれか一つが含まれる
ことを特徴とする請求項1に記載のレプリケーション実行方法。 - 前記属性を構成する項目のうち、前記アプリケーションサービスオブジェクト、前記サーバ装置、前記クライアント装置のいずれかによって定められた属性項目が複数存在し、各属性項目の属性値が異なる場合は、各属性項目に設けられた優先度に基づいて当該属性項目についての一つの属性値を決定する
ことを特徴とする請求項1に記載のレプリケーション実行方法。 - 前記クライアント装置の無線接続状態に応じて、該選択されたクライアントレプリカの起動を指示するステップを更に備える
ことを特徴とする請求項1に記載のレプリケーション方法。 - 前記無線接続状態が回復したとき、当該クライアントレプリカを終了してオーナレプリカを起動させる指示を行うステップを更に有する
ことを特徴とする請求項8に記載のレプリケーション方法。 - 前記クライアント装置の無線接続状態に応じて、該選択されたクライアントレプリカの起動を指示する
ことを特徴とする請求項3に記載のサーバ装置。 - 前記無線接続状態が回復したとき、当該クライアントレプリカを終了してオーナレプリカを起動させる
ことを特徴とする請求項10に記載のサーバ装置。 - 当該クライアントレプリカの起動中は前記無線接続状態が切断されなかったものとみなして以後の処理を行うことを特徴とする請求項3に記載のサーバ装置。
- 前記クライアント装置の無線接続状態に応じて、該選択されたクライアントレプリカの起動を指示するステップを更に実行させる
ことを特徴とする請求項2に記載のプログラム。 - 前記無線接続状態が回復したとき、当該クライアントレプリカを終了してオーナレプリカを起動させる指示を行うステップを更に実行させる
ことを特徴とする請求項13に記載のプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48058303P | 2003-06-20 | 2003-06-20 | |
US10/797,772 US7444337B2 (en) | 2004-03-09 | 2004-03-09 | Framework and associated apparatus for the adaptive replication of applications with server side code units |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005011346A JP2005011346A (ja) | 2005-01-13 |
JP2005011346A5 JP2005011346A5 (ja) | 2007-07-26 |
JP4555000B2 true JP4555000B2 (ja) | 2010-09-29 |
Family
ID=34118647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004180181A Expired - Lifetime JP4555000B2 (ja) | 2003-06-20 | 2004-06-17 | アプリケーションの適応的レプリケーションをサーバサイドコードユニットを用いて実行する方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4555000B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838797B2 (en) | 2009-07-10 | 2014-09-16 | Empire Technology Development Llc | Dynamic computation allocation |
JP5569269B2 (ja) * | 2010-09-06 | 2014-08-13 | ソニー株式会社 | 端末装置、情報処理システム、依頼先選択方法、及びプログラム |
JP5751711B2 (ja) * | 2012-01-24 | 2015-07-22 | 日本電信電話株式会社 | コンテキスト・アウェアに分散処理可能な処理装置、方法、及びプログラム |
JP5847744B2 (ja) * | 2013-02-26 | 2016-01-27 | 日本電信電話株式会社 | 処理装置、分散処理方法および分散処理プログラム |
CN111228797B (zh) * | 2020-01-13 | 2021-05-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机以及可读存储介质 |
JP7051958B2 (ja) * | 2020-09-09 | 2022-04-11 | Kddi株式会社 | 通信端末、通信システム及び制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002014813A (ja) * | 1999-02-25 | 2002-01-18 | Sony Electronics Inc | 分散適応実行時プラットホーム用のアプリケーションプログラム開発方法及びコンピュータ装置 |
JP2002517818A (ja) * | 1998-06-01 | 2002-06-18 | エスアールアイ インターナショナル | 低帯域幅クライアント/サーバオブジェクト指向システムにおいて情報を更新する方法および装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928323A (en) * | 1996-05-30 | 1999-07-27 | Sun Microsystems, Inc. | Apparatus and method for dynamically generating information with server-side software objects |
JPH11296455A (ja) * | 1998-04-06 | 1999-10-29 | Toshiba Corp | 分散ネットワークコンピューティングシステム、同システムに用いられる情報交換装置、情報交換方法、及び記憶媒体 |
-
2004
- 2004-06-17 JP JP2004180181A patent/JP4555000B2/ja not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002517818A (ja) * | 1998-06-01 | 2002-06-18 | エスアールアイ インターナショナル | 低帯域幅クライアント/サーバオブジェクト指向システムにおいて情報を更新する方法および装置 |
JP2002014813A (ja) * | 1999-02-25 | 2002-01-18 | Sony Electronics Inc | 分散適応実行時プラットホーム用のアプリケーションプログラム開発方法及びコンピュータ装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2005011346A (ja) | 2005-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7444337B2 (en) | Framework and associated apparatus for the adaptive replication of applications with server side code units | |
Jing et al. | Client-server computing in mobile environments | |
CN102349062B (zh) | 浏览器缓存与远程仓库同步的方法和系统 | |
US7370075B2 (en) | Method and apparatus for managing web services within a computer network system | |
JP5611059B2 (ja) | ウェブベースのマルチユーザコラボレーション | |
EP1620808B1 (en) | Accessing data based on user identity | |
US7509393B2 (en) | Method and system for caching role-specific fragments | |
US20040215826A1 (en) | Accessing data stored in multiple locations | |
US20090240698A1 (en) | Computing environment platform | |
EP1623558B1 (en) | Accessing data in a computer network | |
US20030188009A1 (en) | Method and system for caching fragments while avoiding parsing of pages that do not contain fragments | |
US20060106807A1 (en) | System and method for transferring a file in advance of its use | |
KR20040101055A (ko) | 포스트 캐시 치환 | |
Fox | A framework for separating server scalability and availability from Internet application functionality | |
US9363335B2 (en) | Method and apparatus that enables a web-based client-server application to be used offline | |
JP4555000B2 (ja) | アプリケーションの適応的レプリケーションをサーバサイドコードユニットを用いて実行する方法および装置 | |
US20040205068A1 (en) | Unified platform for building and operating connected and disconnected mobile applications | |
US7987420B1 (en) | System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices | |
Beck et al. | Enabling full service surrogates using the portable channel representation | |
Li et al. | On demand synchronization and load distribution for database grid-based Web applications | |
Zhou et al. | Flexible on-device service object replication with replets | |
Fjellheim | Over-the-air deployment of applications in multi-platform environments | |
JP5481845B2 (ja) | 情報処理システム、サービス提供方法、装置及びプログラム | |
Islam et al. | AOE: a mobile operating environment for Web-based applications | |
Ahamad et al. | Scalable information sharing in large scale distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070611 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070611 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100312 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100531 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100713 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100715 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130723 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4555000 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |