JP2006502457A - ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム - Google Patents

ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム Download PDF

Info

Publication number
JP2006502457A
JP2006502457A JP2003540810A JP2003540810A JP2006502457A JP 2006502457 A JP2006502457 A JP 2006502457A JP 2003540810 A JP2003540810 A JP 2003540810A JP 2003540810 A JP2003540810 A JP 2003540810A JP 2006502457 A JP2006502457 A JP 2006502457A
Authority
JP
Japan
Prior art keywords
program
execution
resources
offloading
exceed
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.)
Granted
Application number
JP2003540810A
Other languages
English (en)
Other versions
JP4216722B2 (ja
JP2006502457A5 (ja
Inventor
メッサー,アラン
グリーンバーグ,アイラ
ミロイチック,デジャン
ベルナダ・フィリップ
フ,グアングルイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2006502457A publication Critical patent/JP2006502457A/ja
Publication of JP2006502457A5 publication Critical patent/JP2006502457A5/ja
Application granted granted Critical
Publication of JP4216722B2 publication Critical patent/JP4216722B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

リソースが制約された装置から実行負荷をオフロードして該装置がリソース集約的なソフトウェアプログラムを実行できるようにする方法。該方法は、第1の装置を使用してプログラムにアクセスし、プログラムの実行により第1の装置のリソースを超過することになるか否かを判定する、という各ステップを含む。実行により第1の装置のリソースを超過することになる場合、プログラムの負荷分割が決定され、プログラムが第1の部分及び第2の部分に分割される。プログラムの第1の部分を第1の装置に残し、プログラムの第2の部分は第2の装置にオフロードされる。第1の部分及び第2の部分は第1の装置と第2の装置の間のネットワーク接続を介して通信する。完全なプログラム機能が第1の装置を使用して提供され、機能は、第1の部分及び第2の部分がそれぞれ第1の装置及び第2の装置上で協働して実行されることによって提供される。

Description

本発明は、一般にディジタルコンピュータシステムでのデータ処理、及びクライアント装置を使用することによる情報へのアクセス及びソフトウェアサービスの取得に関し、特に、装置のリソース上の制約、及びネットワーク接続された様々な電子装置間の多様性を軽減させることを目的としてコンピュータシステムのリソースを共有するための方法及びシステムに関する。
電子商取引及び情報検索のためのインターネットの使用は、今日の近代的な世界で急速に普及してきた。何百万ものユーザが常にワールドワイドウェブを介して情報、ニュース、エンターテイメント等を得るために何百ものインターネットサイト及びウェブポータルにアクセスしている。ビジネス及び商取引の多くの局面で、連絡及び調整のためにインターネットが利用されている。更に、毎日の生活の多くの局面が電子的な情報を基にしたものになってきており、多種多様な電子装置の使用を介してかかる電子情報のアクセス、制御、及び利用を行うことはそう遠いことではない。例えば、デスクトップコンピュータにより、バンキング機能(例えば、小切手発行、支払い等)、ショッピング(例えば、食料雑貨品、洋服等)、天気、及び他のあらゆる個人のニーズに事実上アクセスすることができる。マルチプレーヤネットワークゲーム又はオンラインゲーム等、コンピュータベースのエンターテイメントの人気のある形態は、インターネットの通信機能を使用している。
多くのユーザは、各自の基本的な毎日の生活でのニーズを全て満たすために、インターネット上の何百万ものウェブサイト等、ネットワーク接続された情報リソースへの容易なアクセスにますます頼るようになっている。例えば、ユーザは、各自が必要とするビジネス又は楽しみが何であれ、その実現に役立つインターネット上の目的サイトに精通するようになった。これらインターネット上の目的サイトはますます、モバイル埋込装置(mobile embedded device)を介してアクセスされるようになっている。かかる装置の例として、個人情報端末(PDA)、携帯電話、時計、埋込マイクロコントローラ等が挙げられる。インターネットにアクセスして有用なタスクを実行することのできる装置が次第に普及するにつれて、ユーザの志向は、装置の特定の機能に対して低くなり、かかる装置及びそれに関連するコンピュータインフラ(例えばネットワーク接続された装置)を介して提供されるパーベイシブサービス(pervasive service)の有用性に対して高くなる。モバイル埋込装置(例えば、パームトップコンピュータ、セルラー電話等の個人情報装置)により、情報へのアクセスが常にすぐ手の届くものになっている。
今日使用されているモバイル埋込装置は、計算能力を提供するが、デスクトップ又はサーバと比較してリソース上の制約が多い中で動作するものである。デスクトップコンピュータシステムは多くの場合、1GHz以上のクロック周波数で動作するマイクロプロセッサを使用し、256MB以上のRAMが装備されるが、典型的なハンドヘルドコンピュータ装置は、かかる能力のほんの一部しか有していない。かかるリソース上の制約の結果として、モバイル埋込装置は、実行することのできるソフトウェアプログラムの複雑性及び提供することのできる機能の豊富さが大幅に限定されたものとなる。
モバイル埋込装置はまた、典型的なデスクトップ又はサーバコンピュータシステムと比較して、ローカルの永続性記憶装置が少ないという傾向を有する。適度な大きさの記憶装置が存在しないということは、大部分のモバイル埋込装置が、例えば永続性記憶装置(例えばハードディスクドライブ)に一時的にデータを配置するといった従来技術によってリソース上の制約を克服することができないことを意味している。
更なる問題は、モバイル埋込装置が、例えばデスクトップコンピュータシステムと比較して、遥かに広範なシステム製造業者から提供されていることである。モバイル埋込装置が普及するにつれ、製造業者数ひいては市場で入手可能な異なるシステムアーキテクチャの数が増大する。その結果として、様々な装置のアーキテクチャが大きく相違することになる。この相違により、所望の機能を提供する装置の組み合わせに適したソフトウェアを構築することが次第に困難になっていく。
よって、必要なのは、モバイル埋込装置のリソースの制約を補償する方策である。必要なのは、モバイル埋込装置に適度な大きさのローカル永続性記憶装置が存在しないことを補償する方策である。該必要とされる方策は、モバイル埋込装置のコンピュータシステムリソースが限られているにも関わらず該モバイル埋込装置が一層大きくて一層リソースを集約的なソフトウェアアプリケーションを実行することを可能にするものであるべきである。更に必要なのは、市場に存在する様々な異なるモバイル埋込装置の異なるアーキテクチャの大きな相違をサポートする方策である。本発明は、これら要求に対して新規の方策を提供するものである。
本発明は、ネットワーク接続されたリソース上の制約を有する装置のために実行及びリソースをオフロードする方法及びシステムである。本発明は、モバイル埋込装置のリソースの制約を補償する方策を提供する。本発明は、モバイル埋込装置に適度な大きさのローカル永続性記憶装置が存在しないことを補償する方策を提供する。本発明は、モバイル埋込装置が、装置のコンピュータシステムリソースが限られているにも関わらず一層大きくて一層リソース集約的なソフトウェアアプリケーションを実行することを可能にする。更に、本発明は、市場に存在する様々な異なるモバイル埋込装置の異なるアーキテクチャの大きな相違をサポートする方策を提供する。
一実施形態において、本発明は、ネットワーク接続された装置に関連して実施され、この場合、リソース上の制約を有する装置がリソース集約的なソフトウェアプログラムを実行することを可能にするために、リソース集約的なソフトウェアプログラムは、その実行負荷及び/又はリソース要件の一部を、リソース上の制約を有する装置から別の装置(例えばホスト装置)へとオフロードさせる。リソース上の制約を有する装置は典型的には、携帯用ハンドヘルド装置(例えば、PDA、セルラー電話等の埋込装置)である。
本方法は、第1の装置(例えばリソース上の制約を有する装置)を使用してプログラムにアクセスし、該プログラムの実行に第1の装置のリソースよりも多くのリソースが必要であるか否かを判定する、という各ステップを含む。該プログラムの実行に第1の装置のリソースよりも多くのリソースが必要である場合には、該プログラムに関する負荷分割を決定して、該プログラムを第1の部分と第2の部分とに分割する。該プログラムの第2の部分を第2の装置(例えばホスト装置)にオフロードする一方、該プログラムの第1の部分を第1の装置に残す。該第1の部分及び第2の部分は、第1の装置と第2の装置との間のネットワーク接続(例えば無線LANリンク)を介して通信する。完全なプログラム機能は第1の装置を使用して提供され、この場合、該機能は、前記第1の部分及び前記第2の部分がそれぞれ前記第1の装置及び前記第2の装置上で互いに協働して実行されることにより提供される。第1の装置と第2の装置との間でのリソースのオフロード及びそれに続くプログラムの負荷分担は、ユーザに対してトランスペアレント(透過的)な態様で行われる。
本書に組み込み本書の一部をなす図面は、本発明の実施形態を示し、及び以下の解説と併せて本発明の原理を説明する役割を果たすものとなる。
ここで、図面に幾つかの例を示した本発明の実施形態を詳細に参照する。好適な実施形態に関連して本発明を解説するが、本発明をかかる実施形態に限定する意図はないことが理解されよう。本発明は、特許請求の範囲に規定する本発明の思想及び範囲内に包含されうる代替、変更、及び等価物を包含することを意図したものである。更に、以下の本発明の詳細な説明では、本発明の完全な理解を提供するために多くの特定の詳細が述べられる。しかし、本発明はかかる特定の詳細なしでも実行し得ることが当業者には明らかであろう。一方、本発明の態様を不必要に曖昧にしないように、既知の方法、手順、構成要素、及び回路については詳細に説明しなかった。
本発明の実施形態は、ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステムに関するものである。本発明は、モバイル埋込装置のリソース上の制約を補償する方策を提供する。本発明は、モバイル埋込装置に適度な大きさのローカルの永続性記憶装置が存在しないことを補償する方策を提供する。本発明は、モバイル埋込装置が、その装置の限られたコンピュータシステムリソースにも関わらず、一層大きく一層リソース集約的なソフトウェアアプリケーションを実行できるようにする。更に、本発明は、市場に存在する様々な異なるモバイル埋込装置の異なるアーキテクチャの大きな相違をサポートする方策を提供する。本発明の実施形態及びその利点について以下更に述べる。
表記及び名称
以下の詳細な説明の幾つかの部分は、手順、ステップ、論理ブロック、処理、及びコンピュータメモリ内のデータビットについての演算の他の象徴的な表現に関して提示される。これら説明及び表現は、データ処理分野の当業者が自分の作業の実体を他の当業者に最も効果的に伝えるために使用する手段である。手順、コンピュータ実行ステップ、論理ブロック、プロセスなどは、本書において、また一般に、所望の結果に導く自己矛盾のない一連のステップ又は命令であると考えられる。該ステップは、物理量の物理的な操作を必要とするものである。必ずではないが、通常は、かかる量は、格納、転送、結合、比較、また他の場合はコンピュータシステムで処理することが可能な電気信号又は磁気信号という形をとる。折に触れて、これらの信号をビット、値、要素、シンボル、キャラクタ、用語、数などと呼ぶことが、主に慣用の理由で都合がよいことが証明されている。
しかし、これら及び同様の用語は全て、適当な物理量に関連付けられるべきものであり、かかる量に適用される都合のよいラベルにすぎないことを念頭におかれたい。特記しない限り、又は以下の考察から明らかな場合を除き、本発明を介して、「実行」、「受信」、「アクセス」、「編集」、「提供」、「伝送」、「格納」などの用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)な量として表されるデータを、コンピュータシステムのレジスタ、メモリ、又は他のかかる情報記憶装置、伝送装置、又は表示装置(例えば図5のコンピュータシステム512)内の物理的な量として同様に表される他のデータに処理・変換する、コンピュータシステム又は同様の電子計算装置のアクション及びプロセスを指すものであることが理解されよう。
本発明の方法及びシステム
図1は、本発明の一実施形態によるリソース及び実行をオフロードするシステム100の図を示す。図1に示すように、システム100は、第1のリソース上の制約を有する装置(本実施形態では個人情報端末(PDA)110)及び第2のより強力なホスト装置(本実施形態ではデスクトップコンピュータシステム(例えばPC又はワークステーション)120)を備える。PDA110及びデスクトップコンピュータシステム120は、ネットワークリンク130を介して通信可能に接続される。PDA110はまた、ソフトウェアベースのサービスリポジトリ150(例えば、建物のLANやインターネット等に接続された1つ又は2つ以上のサーバ等)からソフトウェアベースのサービス(本実施形態ではリソース集約的なソフトウェアプログラム140)を受信するよう接続される。
引き続きシステム100を参照すると、本実施形態はネットワーク接続された装置に関連して機能し、この場合には、リソースが制約された装置がリソース集約的なソフトウェアプログラムを実行できるようにするために、リソース集約的なソフトウェアプログラムが、その実行負荷及び/又はリソース要件の一部をリソース上の制約を有する装置から別の装置(例えばホスト装置)にオフロードさせる。PDA110は、典型的なリソース上の制約を有する装置である。したがって、PDA110のプロセッサ能力及びメモリリソースは、デスクトップコンピュータシステム120と比較して、ソフトウェアベースのサービスを実行するには限られたものである。図1に示すリソース上の制約を有する装置は、携帯用ハンドヘルドPDAであるが、リソース上の制約を有する装置110は、複数の異なる種類のリソース上の制約を有する装置(例えば、セル電話、ページャ、腕時計等の埋込装置)とすることが可能であることを理解されたい。同様に、図1に示すホスト装置は、デスクトップコンピュータシステムであるが、ホスト装置120は、複数の異なる種類の一層高性能のディジタルコンピュータシステム装置(例えば大型サーバ等)とすることが可能であることを理解されたい。
システム100の一つの目的は、リソース上の制約を有するPDA110が、サービスリポジトリ150から受容したリソース集約的なソフトウェアプログラム140を実行すること、及びユーザに完全な機能を提供することを可能にすることである。この目的を達成するために、PDA110(例えばリソース上の制約を有する装置)を使用してソフトウェアプログラム140にアクセスし、ソフトウェアプログラム140がまずPDA110上で実行され、該プログラム140の実行にとってPDA110がリソース不足であるか否かが判定される。該実行により第1の装置のリソース不足となる場合、該プログラムの負荷分割が決定され、該プログラムが第1の部分及び第2の部分へと分割される。プログラムの第2の部分は、ネットワークリンク130を介してホスト装置120へオフロードされ、一方、プログラム140の第1の部分はPDA110上に残す。
該第1の部分及び第2の部分は、第1の装置と第2の装置の間でネットワーク接続130(例えば無線LANリンク)を介して通信する。ユーザから見ると、完全なプログラムの機能はPDA110を使用して提供される。ソフトウェアプログラム140は、ユーザからはPDA110内で完全に実行されているように見える。リソースのオフロード及びそれに続く負荷分担は、ユーザに対してトランスペアレントな態様で行われる。プログラム140の機能は、PDA110及びホスト120上でそれぞれが協働して実行されている第1の部分及び第2の部分によって提供される。
本実施形態はPDA110とホスト120との間でトランスペアレントな態様で負荷分担を実行するが、本発明の実施形態は、非トランスペアレントな態様で負荷分担を実施するよう構成することが可能であることに留意されたい。例えば、GUI確認ダイアログボックスをユーザ(例えばPDA110の)に提示して、負荷分担動作が開始しようとしていることを示すことが可能である。同様に、GUIアイコンを表示して負荷分担の状態を示すことが可能である。
図2は、本発明の一実施形態によるシステム200を示している。システム100の場合のように、該システム200もまた、本実施形態では埋込装置210と呼ばれるリソース上の制約を有する装置及びより強力なホスト装置220を示している。埋込装置210及びホスト装置220は通信リンク230を介して互いに接続される。
上述したように、本発明の実施形態は、リソース集約的な大きなソフトウェアプログラムの実行を目的として、埋込装置210がホスト装置220のコンピュータシステムリソースを「利用」することを可能にするリソース及び実行オフロードシステムに向けられたものである。通常であれば埋込装置210のコンピュータシステムリソースではリソース集約的なプログラムを処理しきれない(overwhelm)場合であっても、該埋込装置210がリソース集約的なソフトウェアプログラムの完全な機能を提供することを可能とするために、プログラムの実行及びリソース要件が埋込装置210からホスト装置220にオフロードされる。
本実施形態の負荷分担機能を実現するために、専用の負荷分担ランタイムプラットフォームを使用して、ネットワーク接続されたリソース上の制約を有する装置(例えば埋込装置210)がそのローカルなリソース上の制約(例えば、メモリ、ディスク容量、及び処理能力)を克服するのを助ける。本実施形態では、前記プラットフォームは専用の負荷分担仮想マシン(VM)であるが、他のコード実行構成要素(例えば分散型プラットフォーム等)を使用して負荷分担機能を実施することが可能であることに留意されたい。同様に、図2は埋込装置210及びホスト装置220でそれぞれ使用される第1及び第2のJava互換負荷分担仮想マシン211,221を示しているが、他の種類のプラットフォーム又は仮想マシンを使用することが可能であることも留意されたい。
仮想マシンプラットフォーム211,221は、当業界で周知のようにコードを実行する。更に、仮想マシン211,221は、本実施形態の負荷分担機能を提供するために、特別の機能、すなわち、1)実行監視、2)リソース監視、3)負荷分割、4)オフロードを実行する。
実行監視とは、実行モニタ212,222が、仮想マシン211,221上で実行されることになり又は実行されたソフトウェアプログラムのコードの構造及び実行を追跡するという事実を指す。実行監視は、実行機能間の対話の数、並びにソフトウェアプログラム内の他のコード及びデータへの参照の数を監視することを含む。これを行う際に、実行モニタ212,222は、実行の局所性及び各実行部分の参照に関する情報を収集する。
リソース監視とは、リソースモニタ213,223がシステムリソースの現在及び過去の使用量を測定して、ソフトウェアプログラムがシステム及び環境において実行されることにより現在制約のあるリソースが受ける負荷を求めるという事実を指す。
負荷分割とは、上記2種類の情報(実行監視及びリソース監視により提供される情報)を使用して、負荷分割エンジン215,225が、特定のポリシーを介して2種類の分割のうちの一方が可能であるか該2種類の分割の組み合わせが可能であるかを判定するという事実を指す。第1の種類の分割は、装置から比較的独立しており又は十分に利用されていない記憶リソースを埋込装置210からネットワークリンク230を介してホスト装置220へと移動することを含む。第2の種類の分割は、比較的独立したコードセグメント(例えばソフトウェアプログラムの構成要素)を埋込装置210からネットワーク230を介してホスト装置220へと移すことを含む。
最後に、オフローダ214,224は、負荷分割器215,225ならびにリソースモニタ213,223により提供される情報を使用することによって、及び現在のリソース消費量が与えられた場合に、ソフトウェアプログラムを分割する様式の変更を考慮すべきとき、及び実行処理又はリソースをオフロードするのに最適な場所、を決定することによって、機能する。ユーザのプリファレンス(すなわち嗜好)を負荷分割の決定に用いることも可能であり、例えば、装置のGUI又はプログラムヒントを介してユーザにプリファレンスダイアログボックスを提示することにより、これを行うことが可能である。
負荷分担及び負荷分割は両方向に進めることができることを理解されたい。例えば、負荷分割が埋込装置210からホスト装置220に行われた際に、再平衡化(re-balancing)を実施して、負荷を元の埋込装置に転送することが可能である。再平衡化は、例えばソフトウェアプログラムの実行負荷の低下や(例えば他のプロセスによる)ホスト装置220の過負荷といった幾つかの理由で行うことができる。
図3は、本発明の一実施形態による負荷分割及び負荷分担操作を示す図である。図3に示すように、ホスト装置220の実行環境が左側に示され、埋込装置210の実行環境が右側に示されている。図3の最も右端に、データアイテム、実行ユニット、及び依存性の表現に使用されるシンボルを示す説明的なキャプションが示されている。
本実施形態では、動作中、ソフトウェアプログラムのコードは、埋込装置210のリソースモニタ213によりコードの実行が装置210で利用可能なリソースを上回り始めたことが示されるまでは通常通り実行される。プログラムは、幾つかの理由により装置210のリソースを上回る可能性がある。これは例えば、プログラムコードサイズの増大、プログラムヒープの増大、実行時の実行キューの長さが長いままであって高レベルのプリエンプションが必要であること、又は他のプロセッサ負荷の尺度に起因して発生し得る。負荷分割は、装置210の電力消費を制御するためにも実施される場合がある。例えば、ソフトウェアプログラムにより過度の電力消費が生じる(例えば計算集約的なもの)場合、負荷分割を開始して特定のコードセグメントを装置210からホスト装置220に移すことができる。したがって、一般に、本発明の実施形態は、負荷分割機能を実行して、様々な尺度(例えば、パフォーマンス、電力消費、フットプリント等)に従ってコードセグメントを有利にオフロードするものとなる。
リソースモニタ213は続けて、アプリケーションに適した分割を考えるように負荷分割器215に要求する。通常、これは、リソースのみのオフロード(例えば「プログラムデータがホストにプッシュされる」タイプのオフロード)、実行オフロード(例えばプログラムコードセグメントがホストにプッシュされる)、又は(最も可能性の高い)これら2つの組み合わせ(何れか一方を移動させると実行及びメモリアクセスの両方のコストが変わるため)の何れかとなる。例えば、線315は、埋込装置210からネットワーク230を介してホスト装置220にオフロードされているソフトウェアプログラムの一部301aを示し、これはホスト装置220において部分301bとして実行される。
本実施形態では、上述したように、埋込装置210の負荷分割器215は、リソースモニタ213及び実行モニタ212からの情報を使用してどの分割タイプを使用するかを決定する。ソフトウェアプログラムのオフロード部分が決定されると、リソースモニタ213はオフローダ214を呼び出して、そのホストにおける相手方であるオフローダ224と協働してプログラムのJava VM 211の知識を、参照されるデータと共にホストJava VM221に移す。これより、ソフトウェアプログラムの残りの部分の実行では、ネットワーク230を介してトランスペアレントにソフトウェアプログラムのオフロード部分(例えば、リソース、実行等)が参照され、リソースに対する重圧が埋込装置210から軽減される。
本発明の他の実施形態によれば、このオフロードは、多段環境にわたって再帰的に行うことができることに留意されたい。例えば、埋込装置からホスト装置への単一レベルのオフロード(例えば図2及び図3に示す2段様式の場合)に加えて、複数レベルのオフロードを実施することが可能であり、この場合、例えば、オフロードは、埋込装置から第1のホストへ、次いで該第1のホストから第2、第3、又は他のホストへと行われる。多段構成に加えて又は多段構成に代えて、複数のホストをピアタイプ構成で同時に使用することも可能である。
更に、各Java VMは、リソースを共有する複数のソフトウェアアプリケーションを実行することも可能であることに留意されたい。このように複数のソフトウェアアプリケーションを実行すると、埋込装置210及びホスト220の負荷が増大し、及び考え得るオフロードの組み合わせが増える。例えば、計算集約的なアプリケーションを殆どリモートにプッシュする一方で、対話式アプリケーション(例えば、応答性が高くて待ち時間の短いユーザからの入出力を必要とするもの)を殆どローカルに保持することが可能である。
同様に、本発明の実施形態は、ユーザに提示される応答性及び/又はパフォーマンスを向上させるために、はるかに強力なホスト装置コンピュータシステムプラットフォームを使用するよう構成することも可能である。例えば、要求の厳しいソフトウェアプログラムを実行するにあたり、埋込装置210のリソースモニタ213は、そのプログラムの計算集約的な部分がはるかに強力なホスト装置220にオフロードされれば該プログラムが「より良好に」実行されると判定することができる。かかるオフロードは、埋込装置210がソフトウェアプログラムをそれ自体ローカルに実行するに足る計算リソースを備えている場合であっても埋込装置210によって実施可能である。
したがって、本発明の実施形態は複数の利点を提供する。例えば、本発明の負荷分割機能によりコード、データ、及び実行を何れもリソース上の制約を有する装置からオフロードすることができ、これにより該装置により実行することが可能なプログラムの数(及びかかるプログラムのルックアンドフィール)が向上する。本発明の実施形態は、良好な実行及びメモリ局所性クラスタを呈するサービス(例えば複数の互いに独立しかつ内部的に緊密に結合した実行パターンを含むもの)のトランスペアレントなオフロードを可能にする。本発明の実施形態では、パフォーマンスを維持するためにリソース及び実行の配置を動的に考慮することができる。更に、本発明のリソースモニタ及び機能は、何らかの固定の柔軟性に欠けるアルゴリズムに従って盲目的に遠隔リソースを使用するのではなく、遠隔リソースを使用するコスト(例えば、ネットワーク帯域幅、フットプリント等)を考慮するものである。
図4を参照して、本発明の一実施形態によるプロセス400のステップのフローチャートを示す。図4に示すように、プロセス400は、本発明の一実施形態によるリソース監視及び負荷分割方法に含まれる各ステップを示している。
プロセスはステップ401で始まり、リソース上の制約を有する装置が実行のためにリソース集約的なソフトウェアプログラムにアクセスする。上述したように、本発明による代表的なリソース上の制約を有する装置としては、セル電話、PDA、腕時計、ページャ等を挙げることができる。代表的なリソース集約的なソフトウェアプログラムとしては、例えば、ビデオアプリケーション、カレンダ及び/又はスケジューリングアプリケーション等を挙げることができる。
ステップ402で、ソフトウェアプログラムの実行が埋込装置上で開始される。該ソフトウェアプログラムには、例えば、大学内のLAN又は企業内のLANを介してアクセスすることができる。埋込装置は通常、ソフトウェアプログラムの実行をローカルで開始する。代替的に、ソフトウェアアプリケーションのタイプが既知である場合には、プロセス400は、随意選択的に直接ステップ406に飛び、ソフトウェアプログラムの分割を決定することが可能であり、又は随意選択的にステップ407に飛び、分割を直接実施することが可能である(ソフトウェアプログラムについての事前知識により分割の性質が予め決定されている場合)ことに留意されたい。
ステップ403で、ソフトウェアプログラムの実行が開始されると、埋込装置はその実行によりローカルリソースを超過することになるか否かを判定する。上述したように、埋込装置のローカルリソースは監視されている。プログラムがローカルリソースを超過しないように見える場合にはプロセス400はステップ404に進む。プログラムがローカルリソースを超過することになるように見える場合にはプロセス400はステップ406に進む。
ステップ404で、ソフトウェアプログラムの実行により埋込装置のリソースを超過しないかもしれない場合であっても、埋込装置がより性能の高いホスト装置を使用して、実行がより応答性の高いものになるか、又は他の尺度に関して高いパフォーマンスを有することになるか否かを判定する。そうなる場合、プロセス400はステップ406に進む。他の場合には、ソフトウェアプログラムの実行は、ステップ405に示すように、埋込装置のリソースを使用してローカルで続行される。
引き続き図4を参照すると、ステップ406で、リソース集約的なソフトウェアプログラムの実行により埋込装置のリソースを超過することになる場合、又はソフトウェアプログラムの実行がホスト装置を呼び出すことによってより応答性の高いものになる(又は他の尺度に関して高いパフォーマンスを有することになる)場合、ソフトウェアプログラムの負荷分割が決定される。
ステップ407で、負荷分割によって決定されたソフトウェアプログラムの部分が埋込装置からホスト装置にオフロードされる。既述のように、この部分は埋込装置からネットワーク通信リンクを介してホスト装置に転送される。代替的には、既述のように、全体的な負荷により示されるようにソフトウェアプログラムの一部をホスト装置から元の埋込装置に転送して戻すことが可能である(例えば再平衡化)。
ステップ408で、ソフトウェアプログラムが協働的に実行され、その一部は埋込装置上で実行され、別の部分はホスト装置上で実行される。ソフトウェアプログラムの両方の部分の協働的な実行は、ユーザ及びソフトウェアプログラムに対してトランスペアレントに行われる。しかし、既述のように、代替的に、協働的実行は非トランスペアレントに(例えば確認ボックス等)実施することが可能である。
本実施形態では、プロセス400の負荷分割及び協働的な実行は動的に続行され、この場合、協働的な実行及び各リソースの利用が追跡される。これにより、状況的に必要になった際に調整を実施することが可能となる。これは、プロセス400がステップ405,408の後にステップ403に戻ることで示される。
このように、本発明は、ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステムを提供する。本発明は、モバイル埋込装置のリソース制約を補償する方策を提供する。本発明は、モバイル埋込装置に何れの大容量ローカル永続性記憶装置もないことを補償する方策を提供する。本発明は、モバイル埋込装置が、装置の限られたコンピュータシステムリソースにも関わらず、より大きくよりリソース集約的なソフトウェアアプリケーションを実行できるようにする。更に、仮想マシン構造を使用することによって、本発明の実施形態は、市場に存在する様々な異なるモバイル埋込装置の異なる構造の高い多様性に対応した方策を提供する。
コンピュータシステム環境
図5を参照してコンピュータシステム512を示す。本発明の解説では、一実施形態で、システム512のコンピュータ可読メモリユニット内に常駐し、システム512のプロセッサによって実行される一連の命令(例えば、ソフトウェアプログラム)として実現される特定のプロセス及びステップが考察される。命令は、実行されると、特定のアクションを実行させ、コンピュータシステム512に上記で詳述した特定のアクションを実行させる。
本発明の特定の態様は、埋込装置、デスクトップ装置、サーバ装置等として機能することのできるプログラムコンピュータシステム内で動作可能である。本発明の要素を実施するように動作可能なかかるコンピュータシステムの一般化した例を図5に示す。一般に、本発明のコンピュータシステムは、情報をやりとりするためのアドレス/データバス500,バス500に接続され情報及び命令を処理する1つ又は2つ以上の中央演算処理装置501,バス500に接続され中央演算処理装置501のために情報及び命令を格納するコンピュータ可読揮発性メモリユニット502(例えば、ランダムアクセスメモリ、スタティックRAM、ダイナミックRAM等)、バス500に接続され演算処理装置501のために静的な情報及び命令を格納するコンピュータ可読不揮発性メモリユニット503(例えば、読み取り専用メモリ、プログラマブルROM、フラッシュメモリ、EPROM、EEPROM等)を備える。システム512は、随意選択的に、磁気又は光学のディスク及びディスクドライブ等、バス500に接続され情報及び命令を格納する大記憶容量コンピュータ可読データ記憶装置504を備えることができる。随意選択的に、システム512は、バス500に接続されコンピュータユーザに情報を表示する表示装置505、英数字キー及び機能キーを含みバス500に接続され情報及びコマンド選択を中央演算処理装置501に伝達する英数字入力装置506、バス500に接続されユーザ入力情報及びコマンド選択を中央演算処理装置501に伝達するカーソル制御装置507、及びバス500に接続され演算処理装置501との間でメッセージ、コマンド選択、データ等を伝達する信号入力/出力装置508も備えることができる。
本発明の特定の実施形態についての上記説明は、例示及び説明を目的として提示されたものである。上記説明は、網羅的であったり、又は本発明を開示された厳密な形態に限定する意図はなく、明らかに、上記教示を鑑みて多くの変更及び変形が可能である。実施形態は本発明の原理及びその実際の適用について最良の説明を提供するために選択され説明されたものであり、それによって当業者は、意図する特定の用途に適した各種実施形態で、又は各種変更を行って本発明を最良に利用することができる。本発明の範囲は特許請求の範囲及びその等価物によって規定されることを意図する。
本発明の一実施形態によるリソース及び実行をオフロードするシステムの図を示している。 本発明の一実施形態によるシステムの図を示している。 本発明の一実施形態による負荷分割動作及び負荷分担動作を表す図を示している。 本発明の一実施形態によるプロセスの各ステップのフローチャートを示している。 本発明の一実施形態によるコンピュータシステムプラットフォームを示している。
符号の説明
210 埋込装置
211,221 Java仮想マシン
212,222 実行モニタ
213,223 リソースモニタ
214,224 オフローダ
215,225 負荷分割器
220 ホスト装置
230 ネットワーク通信リンク

Claims (31)

  1. リソースが制約された装置から実行負荷をオフロードして該装置がリソース集約的なソフトウェアプログラムを実行しを可能にする方法であって、
    第1の装置を使用してプログラムにアクセスし、
    前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定し、
    前記プログラムの負荷分割を決定して該プログラムを第1の部分及び第2の部分に分割し、
    該プログラムの前記第2の部分を第2の装置にオフロードすると共に、該プログラムの前記第1の部分を前記第1の装置に保持し、
    前記第1の装置を使用して前記プログラムの機能を提供し、該機能が、前記第1の部分及び前記第2の部分がそれぞれ前記第1の装置及び前記第2の装置上で協働して実行されることによって提供される、
    という各ステップを含む方法。
  2. 実行により前記第1の装置の前記リソースを超過するまで該第1の装置を使用して前記ソフトウェアプログラムを実行するステップ含む、請求項1に記載の方法。
  3. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かをリソースモニタを使用して判定するステップを含む、請求項1に記載の方法。
  4. 前記リソースモニタが前記第1の装置上で実行されるソフトウェアルーチンである、請求項3に記載の方法。
  5. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するために実行キューの長さが所定の長さを越えるか否かを判定するステップを含む、請求項1に記載の方法。
  6. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するためにプログラムのヒープサイズが所定のサイズを越えるか否かを判定するステップを含む、請求項1に記載の方法。
  7. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するために前記プログラムが消費するメモリ量が所定量を越えるか否かを判定するステップを含む、請求項1に記載の方法。
  8. 前記プログラムの前記第2の部分をオフロードする前記ステップが、前記第2の装置への前記プログラムのメモリリソースのオフロードを含む、請求項1に記載の方法。
  9. 前記プログラムの前記第2の部分をオフロードする前記ステップが、前記第2の装置への前記プログラムの実行のオフロードを含む、請求項1に記載の方法。
  10. 前記プログラムがJavaプログラミング言語に準拠する、請求項1に記載の方法。
  11. 第1の装置及び第2の装置という各コンピュータシステムにより実行された際に、該第1の装置から実行負荷をオフロードして該第1の装置がリソース集約的なソフトウェアプログラムを実行することを可能にする方法を前記装置に実施させる、コンピュータ可読コードを有するコンピュータ可読媒体であって、前記方法が、
    前記第1の装置を使用してプログラムにアクセスし、
    該プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定し、
    前記プログラムの負荷分割を決定して該プログラムを第1の部分及び第2の部分に分割し、
    前記プログラムの前記第2の部分を第2の装置にオフロードすると共に該プログラムの前記第1の部分を前記第1の装置に保持し、
    前記第1の装置を使用して前記プログラムの機能を提供し、該機能が、前記第1の部分及び前記第2の部分がそれぞれ前記第1の装置及び前記第2の装置上で協働して実行されることにより提供される、
    という各ステップを含むものである、コンピュータ可読媒体。
  12. 実行により前記第1の装置の前記リソースを超過するまで該第1の装置を使用して前記ソフトウェアプログラムを実行するステップを含む、請求項11に記載のコンピュータ可読媒体。
  13. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かをリソースモニタを使用して判定するステップを含む、請求項11に記載のコンピュータ可読媒体。
  14. 前記リソースモニタが前記第1の装置上で実行されるソフトウェアルーチンである、請求項13に記載のコンピュータ可読媒体。
  15. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するためにランタイム実行キューの長さが所定の長さを越えるか否かを判定するステップを含む、請求項11に記載のコンピュータ可読媒体。
  16. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するためにプログラムのヒープサイズが所定のサイズを越えるか否かを判定するステップを含む、請求項11に記載のコンピュータ可読媒体。
  17. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するために前記プログラムが消費するメモリ量が所定量を越えるか否かを判定するステップを含む、請求項11に記載のコンピュータ可読媒体。
  18. 前記プログラムの前記第2の部分をオフロードする前記ステップが、前記第2の装置への前記プログラムのメモリリソースのオフロードを含む、請求項11に記載のコンピュータ可読媒体。
  19. 前記プログラムの前記第2の部分をオフロードする前記ステップが、前記第2の装置への前記プログラムの実行のオフロードを含む、請求項11に記載のコンピュータ可読媒体。
  20. 前記プログラムがJavaプログラミング言語に準拠するものである、請求項11に記載のコンピュータ可読媒体。
  21. リソースが制約された装置から実行負荷をオフロードするシステムであって、
    第1の装置のための第1のコンピュータシステムと、
    第2の装置のための第2のコンピュータシステムと、
    を備え、前記第1の装置及び前記第2の装置の各コンピュータシステムが、前記第1の装置から実行負荷をオフロードして前記第1の装置がリソース集約的なソフトウェアプログラムを実行することを可能にする方法を前記装置に実施させるコンピュータ可読コードを実行し、前記方法が、
    第1の装置を使用してプログラムにアクセスし、
    前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定し、
    前記プログラムの負荷分割を決定して、前記プログラムを第1の部分及び第2の部分に分割し、
    前記プログラムの前記第2の部分を第2の装置にオフロードすると共に前記プログラムの前記第1の部分を前記第1の装置に保持し、この場合に前記第1の部分及び前記第2の部分が前記第1の装置と前記第2の装置の間でネットワーク接続を介して通信し、
    前記第1の装置を使用して前記プログラムの機能を提供し、該機能が、前記第1の部分及び前記第2の部分がそれぞれ前記第1の装置及び前記第2の装置上で協働して実行されることにより提供される、
    という各ステップを含む、システム。
  22. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するためにランタイム実行キューの長さが所定の長さを越えるか否かを判定することを更に含む、請求項21に記載のシステム。
  23. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するためにプログラムのヒープサイズが所定のサイズを越えるか否かを判定することを更に含む、請求項21に記載のシステム。
  24. 前記プログラムの実行により前記第1の装置のリソースを超過することになるか否かを判定するために前記プログラムが消費するメモリ量が所定量を越えるか否かを判定することを更に含む、請求項21に記載のシステム。
  25. 前記プログラムの前記第2の部分をオフロードする前記ステップが、前記第2の装置への前記プログラムのメモリリソースのオフロードを含む、請求項21に記載のシステム。
  26. 前記プログラムの前記第2の部分をオフロードする前記ステップが、前記第2の装置への前記プログラムの実行のオフロードを含む、請求項21に記載のシステム。
  27. 前記プログラムの負荷分割の決定に負荷分割器が使用され、該負荷分割器が、リソース利用情報及び実行負荷情報を使用して前記負荷分割を決定するよう構成される、請求項21に記載のシステム。
  28. 協働的な実行の最中に前記第1の部分が前記第2の部分を参照するようにオフローダを使用して前記プログラムの前記第2の部分をオフロードする、請求項21に記載のシステム。
  29. 前記オフロードの実行及び前記プログラム機能の提供が、前記第1の装置のユーザに対してトランスペアレントに行われる、請求項21に記載のシステム。
  30. 前記オフロードの実行及び前記プログラム機能の提供が、前記第1の装置のユーザに対する指示で生じる、請求項21に記載のシステム。
  31. 前記プログラムの実行により前記第1の装置のリソースが超過することになるか否かの判定に前記プログラムのコードセグメントサイズが使用される、請求項21に記載のシステム。
JP2003540810A 2001-10-31 2002-10-29 ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム Expired - Fee Related JP4216722B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/001,074 US6990662B2 (en) 2001-10-31 2001-10-31 Method and system for offloading execution and resources for resource-constrained networked devices
PCT/US2002/034444 WO2003038616A2 (en) 2001-10-31 2002-10-29 A method and system for offloading execution and resources for resource-constrained networked devices

Publications (3)

Publication Number Publication Date
JP2006502457A true JP2006502457A (ja) 2006-01-19
JP2006502457A5 JP2006502457A5 (ja) 2006-03-02
JP4216722B2 JP4216722B2 (ja) 2009-01-28

Family

ID=21694247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003540810A Expired - Fee Related JP4216722B2 (ja) 2001-10-31 2002-10-29 ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム

Country Status (4)

Country Link
US (1) US6990662B2 (ja)
EP (1) EP1449078B1 (ja)
JP (1) JP4216722B2 (ja)
WO (1) WO2003038616A2 (ja)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010527057A (ja) * 2007-04-25 2010-08-05 クゥアルコム・インコーポレイテッド アプリケーションをローカルで起動すべきかまたはリモートでウェブアプとして起動すべきかを決定する装置
JP2011096247A (ja) * 2009-10-28 2011-05-12 Internatl Business Mach Corp <Ibm> 並列計算の親和性駆動分散スケジューリングのための装置、方法、およびコンピュータ・プログラム(並列計算の親和性駆動分散スケジューリングのためのシステムおよび方法)
JP2012523038A (ja) * 2009-04-01 2012-09-27 ハネウェル・インターナショナル・インコーポレーテッド 工業自動化及び生産システム用クラウドコンピューティング
JP2013061845A (ja) * 2011-09-14 2013-04-04 Ricoh Co Ltd 携帯機器及びその制御方法
JP2014059783A (ja) * 2012-09-19 2014-04-03 Fujitsu Ltd 制御装置、処理システム、制御プログラム、及び制御方法
JP2014102841A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスによる遠隔電子デバイスの制御
JP2014102837A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスからのプロセッシングの委任
JP2015514253A (ja) * 2012-04-16 2015-05-18 インテル コーポレイション スケーラブルでセキュアな実行
US9313292B2 (en) 2012-06-14 2016-04-12 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for display control
US20160164960A1 (en) 2013-07-31 2016-06-09 International Business Machines Corporation Running software application with dynamic action delegation
JP2016527596A (ja) * 2013-05-31 2016-09-08 アイトロン インコーポレイテッド プラットフォームを通じた分散アプリケーション
JP2017504088A (ja) * 2013-12-20 2017-02-02 インテル・コーポレーション 実行オフロード
JP2017168139A (ja) * 2011-09-21 2017-09-21 アマゾン テクノロジーズ インコーポレイテッド 遠隔プロセス実行管理
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US10194060B2 (en) 2012-11-20 2019-01-29 Samsung Electronics Company, Ltd. Wearable electronic device
US10198254B2 (en) 2013-05-31 2019-02-05 Itron, Inc. Surfacing cross platform applications
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US11328344B2 (en) 2013-05-31 2022-05-10 Itron, Inc. Utility application delivery platform
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US20030182414A1 (en) 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7367027B1 (en) 2002-08-22 2008-04-29 Hewlett-Packard Development Company, L.P. System for generating efficient and compact update packages
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
DE60316783T2 (de) * 2003-06-24 2008-07-24 Research In Motion Ltd., Waterloo Erkennung von Speichermangel und Feinabschaltung
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7716286B2 (en) * 2003-12-10 2010-05-11 Heins Douglas B Method and apparatus for utility computing in ad-hoc and configured peer-to-peer networks
US7587712B2 (en) * 2003-12-19 2009-09-08 Marvell International Ltd. End-to-end architecture for mobile client JIT processing on network infrastructure trusted servers
US7490325B2 (en) 2004-03-13 2009-02-10 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8286157B2 (en) * 2005-02-28 2012-10-09 International Business Machines Corporation Method, system and program product for managing applications in a shared computer infrastructure
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US20060227804A1 (en) * 2005-04-07 2006-10-12 International Business Machines Corporation Method for enablement for offloading functions in a single LAN adapter
US8117611B2 (en) * 2006-03-01 2012-02-14 International Business Machines Corporation Method, system, and program product for deploying a platform dependent application in a grid environment
DE602006014360D1 (de) * 2006-04-13 2010-07-01 Microsoft Corp Virtuelles Ausführungssystem für ressourcen-beschränkte Geräte
US8260924B2 (en) * 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
US8056082B2 (en) * 2006-05-31 2011-11-08 Bluetie, Inc. Capacity management and predictive planning systems based on trended rate change of monitored factors and methods thereof
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US9244672B2 (en) * 2006-11-30 2016-01-26 Red Hat, Inc. Optimization utility for developing embedded systems
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US7966039B2 (en) * 2007-02-02 2011-06-21 Microsoft Corporation Bidirectional dynamic offloading of tasks between a host and a mobile device
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
US8838817B1 (en) 2007-11-07 2014-09-16 Netapp, Inc. Application-controlled network packet classification
US8219595B2 (en) * 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8566833B1 (en) * 2008-03-11 2013-10-22 Netapp, Inc. Combined network and application processing in a multiprocessing environment
US8355711B2 (en) * 2008-07-25 2013-01-15 Zerotouchdigital Collaborative computing for mobile devices
US9239740B2 (en) * 2009-06-16 2016-01-19 Microsoft Technology Licensing, Llc Program partitioning across client and cloud
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8495129B2 (en) * 2010-03-16 2013-07-23 Microsoft Corporation Energy-aware code offload for mobile devices
EP2450794B1 (en) * 2010-10-22 2018-08-29 Orange Method for allowing distributed running of an application and related device and inference engine
EP2450792B1 (en) 2010-10-22 2020-01-15 Orange Method for allowing distributed running of an application and related pre-processing unit
US8739175B2 (en) * 2010-12-21 2014-05-27 Adobe Systems Incorporated System and method for rerouting a request between virtualization services
US9451012B1 (en) * 2011-08-30 2016-09-20 CSC Holdings, LLC Heterogeneous cloud processing utilizing consumer devices
US20130073601A1 (en) * 2011-09-21 2013-03-21 Jonathan A. Jenkins Remote process execution management
US9176841B2 (en) * 2011-12-28 2015-11-03 Microsoft Technology Licensing, Llc Estimating application energy usage in a target device
US9183396B2 (en) * 2012-05-21 2015-11-10 Carnegie Mellon University Detecting exploitable bugs in binary code
US8972956B2 (en) * 2012-08-02 2015-03-03 International Business Machines Corporation Application deployment in heterogeneous environments
EP2696632A3 (en) * 2012-08-09 2014-04-09 Samsung Electronics Co., Ltd System and method of power savings for mobile device using cloud service
US10311014B2 (en) * 2012-12-28 2019-06-04 Iii Holdings 2, Llc System, method and computer readable medium for offloaded computation of distributed application protocols within a cluster of data processing nodes
US9298511B2 (en) 2013-03-15 2016-03-29 International Business Machines Corporation Resolving deployment conflicts in heterogeneous environments
US9292349B2 (en) 2013-03-15 2016-03-22 International Business Machines Corporation Detecting deployment conflicts in heterogenous environments
US9164810B2 (en) * 2013-04-16 2015-10-20 Dell Products L.P. Allocating an application computation between a first and a second information handling system based on user's context, device battery state, and computational capabilities
US9378063B2 (en) * 2013-10-15 2016-06-28 Qualcomm Incorporated Mobile coprocessor system and methods
US10447813B2 (en) 2014-03-10 2019-10-15 Intel Corporation Mobile application acceleration via fine-grain offloading to cloud computing infrastructures
US9232476B1 (en) 2014-06-11 2016-01-05 Empire Technology Development Llc Task management across low-power wireless communications
US9934019B1 (en) * 2014-12-16 2018-04-03 Amazon Technologies, Inc. Application function conversion to a service
US10228930B2 (en) * 2016-01-28 2019-03-12 Microsoft Technology Licensing, Llc Offloading network connectivity and execution tasks to an assistant device
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains
EP3340534B1 (en) * 2016-12-20 2021-01-20 Alcatel Lucent A local sdn controller and corresponding method of performing network control and management functions
US11271994B2 (en) * 2018-12-28 2022-03-08 Intel Corporation Technologies for providing selective offload of execution to the edge
DK3703390T3 (da) 2019-02-27 2024-02-05 Sonova Ag Distribution af software mellem høreapparater
US11294702B2 (en) 2019-05-01 2022-04-05 EMC IP Holding Company LLC Method and system for processing data using a processing pipeline and processing units
US11119802B2 (en) 2019-05-01 2021-09-14 EMC IP Holding Company LLC Method and system for offloading parallel processing of multiple write requests
US11119803B2 (en) * 2019-05-01 2021-09-14 EMC IP Holding Company LLC Method and system for offloading parity processing
US11689637B2 (en) * 2019-10-14 2023-06-27 Qualcomm Incorporated Local cache management in edge networks
US11204711B2 (en) 2019-10-31 2021-12-21 EMC IP Holding Company LLC Method and system for optimizing a host computing device power down through offload capabilities
US11659028B2 (en) * 2021-09-22 2023-05-23 Toyota Motor Engineering & Manufacturing North America, Inc. Data offloading rate determination using mean field games
US11941442B1 (en) * 2022-09-29 2024-03-26 International Business Machines Corporation Operating system based on dual system paradigm

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590395A (en) * 1993-11-10 1996-12-31 Motorola, Inc. Satellite cellular network resource management method and apparatus
CA2137488C (en) 1994-02-18 1998-09-29 Richard I. Baum Coexecuting method and means for performing parallel processing in conventional types of data processing systems
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method
US6179489B1 (en) 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
US6078942A (en) * 1996-04-25 2000-06-20 Microsoft Corporation Resource management for multimedia devices in a computer
US6601083B1 (en) * 1996-08-29 2003-07-29 Frederick John Reznak Multitasking data processing system and method of controlling allocation of a shared resource
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6212562B1 (en) * 1997-03-28 2001-04-03 Honeywell International Inc. Criticality and quality of service (QoS) based resource management
US6128642A (en) * 1997-07-22 2000-10-03 At&T Corporation Load balancing based on queue length, in a network of processor stations
US5923892A (en) * 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
US6151709A (en) * 1998-02-13 2000-11-21 Novell, Inc. Processes and apparatuses for uploading instructions to a computer
US6141705A (en) 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6728961B1 (en) * 1999-03-31 2004-04-27 International Business Machines Corporation Method and system for dynamically load balancing a process over a plurality of peer machines
US6539445B1 (en) * 2000-01-10 2003-03-25 Imagex.Com, Inc. Method for load balancing in an application server system
US6704489B1 (en) * 1999-05-06 2004-03-09 Matsushita Electric Industrial Co., Ltd. Resource management system and digital video reproducing/recording apparatus
US6775830B1 (en) * 1999-09-24 2004-08-10 Hitachi, Ltd. Computer system and a program install method thereof
US6782527B1 (en) * 2000-01-28 2004-08-24 Networks Associates, Inc. System and method for efficient distribution of application services to a plurality of computing appliances organized as subnets
US6539464B1 (en) * 2000-04-08 2003-03-25 Radoslav Nenkov Getov Memory allocator for multithread environment
US6718438B2 (en) * 2000-12-13 2004-04-06 Sun Microsystems, Inc. Using feedback to determine the size of an object cache

Cited By (30)

* Cited by examiner, † Cited by third party
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
JP2013152732A (ja) * 2007-04-25 2013-08-08 Qualcomm Inc アプリケーションをローカルで起動すべきかまたはリモートでウェブアプとして起動すべきかを決定する装置
JP2010527057A (ja) * 2007-04-25 2010-08-05 クゥアルコム・インコーポレイテッド アプリケーションをローカルで起動すべきかまたはリモートでウェブアプとして起動すべきかを決定する装置
JP2012523038A (ja) * 2009-04-01 2012-09-27 ハネウェル・インターナショナル・インコーポレーテッド 工業自動化及び生産システム用クラウドコンピューティング
US8959525B2 (en) 2009-10-28 2015-02-17 International Business Machines Corporation Systems and methods for affinity driven distributed scheduling of parallel computations
JP2011096247A (ja) * 2009-10-28 2011-05-12 Internatl Business Mach Corp <Ibm> 並列計算の親和性駆動分散スケジューリングのための装置、方法、およびコンピュータ・プログラム(並列計算の親和性駆動分散スケジューリングのためのシステムおよび方法)
JP2013061845A (ja) * 2011-09-14 2013-04-04 Ricoh Co Ltd 携帯機器及びその制御方法
JP2017168139A (ja) * 2011-09-21 2017-09-21 アマゾン テクノロジーズ インコーポレイテッド 遠隔プロセス実行管理
JP2015514253A (ja) * 2012-04-16 2015-05-18 インテル コーポレイション スケーラブルでセキュアな実行
US9536100B2 (en) 2012-04-16 2017-01-03 Intel Corporation Scalable secure execution
US9313292B2 (en) 2012-06-14 2016-04-12 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for display control
JP2014059783A (ja) * 2012-09-19 2014-04-03 Fujitsu Ltd 制御装置、処理システム、制御プログラム、及び制御方法
JP2014102837A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスからのプロセッシングの委任
JP2014102841A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスによる遠隔電子デバイスの制御
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US10194060B2 (en) 2012-11-20 2019-01-29 Samsung Electronics Company, Ltd. Wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US10205769B2 (en) 2013-05-31 2019-02-12 Itron, Inc. Distributed applications across platforms
US10198254B2 (en) 2013-05-31 2019-02-05 Itron, Inc. Surfacing cross platform applications
JP2016527596A (ja) * 2013-05-31 2016-09-08 アイトロン インコーポレイテッド プラットフォームを通じた分散アプリケーション
US11328344B2 (en) 2013-05-31 2022-05-10 Itron, Inc. Utility application delivery platform
US10257267B2 (en) 2013-07-31 2019-04-09 International Business Machines Corporation Running software application with dynamic action delegation
JP2016528624A (ja) * 2013-07-31 2016-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・アプリケーションを動作させるための方法、コンピュータ・プログラム、およびシステム(動的なアクション委譲によるソフトウェア・アプリケーションの動作)
US20160164960A1 (en) 2013-07-31 2016-06-09 International Business Machines Corporation Running software application with dynamic action delegation
JP2017504088A (ja) * 2013-12-20 2017-02-02 インテル・コーポレーション 実行オフロード
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display

Also Published As

Publication number Publication date
US20030084435A1 (en) 2003-05-01
WO2003038616A2 (en) 2003-05-08
EP1449078A2 (en) 2004-08-25
WO2003038616A3 (en) 2004-06-24
JP4216722B2 (ja) 2009-01-28
EP1449078B1 (en) 2017-03-22
US6990662B2 (en) 2006-01-24

Similar Documents

Publication Publication Date Title
JP4216722B2 (ja) ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム
Ou et al. An effective offloading middleware for pervasive services on mobile devices
US10432701B2 (en) Delivery of instructions in host applications
US9887873B2 (en) Custom rendering of web pages based on web page requests
US9052958B2 (en) Extending the capability of computing devices by using dynamically scalable external resources
US7080100B2 (en) Install processing apparatus, processing method, storage medium, and program
JP4909591B2 (ja) コンポーネントベースの無線アプリケーションを作成して同アプリケーションと通信するためのシステム及び方法
US8065679B2 (en) System and method for flexible application hosting on a wireless device
CN112257135B (zh) 一种基于多线程的模型加载方法、装置、存储介质及终端
Lawton Moving Java into mobile phones
US7747683B2 (en) Method and system for operating applications for remote terminal devices
IL155804A (en) Distribution according to the identity of computer resources for calculation
US20020002605A1 (en) Server/client system and program for implementing application distribution in this server/client system
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
KR20110044210A (ko) 컨텍스트 트리거형 배포 방법, 장치 및 컴퓨터 판독 가능한 저장매체
Savidis et al. Distributed interface bits: dynamic dialogue composition from ambient computing resources
CN1520551A (zh) 代理系统、计算机网络以及用于把代理系统从主计算机装载到计算机网络的客户计算机上的方法
CN112769945A (zh) 分布式服务调用方法及装置
JP2003216434A (ja) 小型情報機器において、ユーザプロファイルデータの活用により、ダウンロードプログラムの最適化を図る方法およびシステム。
US10042521B1 (en) Emulation of control resources for use with converted content pages
Taconet et al. Context aware deployment for mobile users
KR20040029337A (ko) 공통 데이터 모듈을 이용하여 네트워크 부하를 최소화하는블로그 서비스 제공 방법 및 그 시스템
Krikelis Mobile multimedia: shaping the Infoverse
Islam From smart to autonomous phones
Chu et al. Mobile OGSI .NET: Grid Computing on Mobile Devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051025

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080304

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080603

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: 20081007

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: 20081106

R150 Certificate of patent or registration of utility model

Ref document number: 4216722

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees