JP2014123347A - クライアント端末、サーバ、及び分散処理方法 - Google Patents

クライアント端末、サーバ、及び分散処理方法 Download PDF

Info

Publication number
JP2014123347A
JP2014123347A JP2013221199A JP2013221199A JP2014123347A JP 2014123347 A JP2014123347 A JP 2014123347A JP 2013221199 A JP2013221199 A JP 2013221199A JP 2013221199 A JP2013221199 A JP 2013221199A JP 2014123347 A JP2014123347 A JP 2014123347A
Authority
JP
Japan
Prior art keywords
application
load
client terminal
unit
processing mode
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.)
Pending
Application number
JP2013221199A
Other languages
English (en)
Inventor
Keiichi Tanaka
敬一 田中
Hidetaka Oto
英隆 大戸
Tomonori Nakamura
智典 中村
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2013221199A priority Critical patent/JP2014123347A/ja
Publication of JP2014123347A publication Critical patent/JP2014123347A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】クライアント端末での電力消費量を抑制すると同時に、アプリケーションを円滑に実行する。
【解決手段】モード切替部312は、実行対象となるアプリケーションがクライアント端末101にとって高負荷のアプリケーションである場合、単体処理モードから分散処理モードに切り替える。一方、モード切替部312は、サーバ102から単体処理モードへの切替通知を受信すると、分散表示処理部311によるアプリケーションの表示処理を停止させ、アプリケーションの実行方式を単体処理モードに設定する。
【選択図】図3

Description

本発明は、サーバとクライアント端末とが互いに連携して処理を行うことで、様々なアプリケーションに対する処理を効率的に実行する分散処理技術に関するものである。
特許文献1には、シンクライアントシステムにおいて、サーバからクライアント端末に送信される処理結果のデータ量の削減を目的として、以下の技術が開示されている。すなわち、端末装置に画像を送信する第1送信部と、フレーム間での変化が閾値を超える領域を画像から抽出し、抽出した領域の画像を第1送信部よりも高いフレームレートで圧縮して送信する第2送信部とを備え、第1送信部で送信される画像と第2送信部で送信される画像とを同期表示させる。
特開2012−15868号公報
しかしながら、特許文献1では、画面更新がされる毎に通信が発生するため、例えばユーザにより画像をスクロールさせる操作が頻繁に入力された場合、通信されるデータ量が膨大となり、クライアント端末の電力消費量が増大するという課題がある。特に、クライアント端末が据え置き機器ではなくモバイル端末(例えばタブレット端末)の場合、バッテリー容量に制限があるため、通信されるデータ量が膨大になると、直ぐに電池切れになるという課題がある。
本発明の目的は、クライアント端末での電力消費量を抑制すると同時に、アプリケーションを円滑に実行することができる分散処理の技術を提供することである。
本発明の一態様によるクライアント端末は、ネットワークを介して通信可能に接続されたサーバと連携してアプリケーションを実行するクライアント端末であって、前記アプリケーションの実行結果である画像データを表示する表示部と、前記クライアント端末に前記アプリケーションを実行させる単体処理モードと、前記サーバに前記アプリケーションを実行させる分散処理モードとのいずれかにアプリケーションの実行方式を切り替えるモード切替部と、前記単体処理モードにおいて、前記アプリケーションを実行するアプリケーション実行部と、前記分散処理モードにおいて、前記アプリケーションの実行結果を示す画像データを前記サーバから受信し、前記表示部に表示する分散表示処理部とを備え、前記モード切替部は、前記クライアント端末にとって前記アプリケーションが高負荷のアプリケーションである場合、前記実行方式を前記分散処理モードに切り替える。
本発明によれば、クライアント端末での電力消費量を抑制すると同時に、アプリケーションを円滑に実行することができる。
本発明の実施の形態1におけるクライアント端末及びサーバの利用形態の一例を示す図である。 (A)分散処理モードにおいてアプリケーションが実行される様子の一例を示す図である。(B)単体処理モードにおいてアプリケーションが実行される様子の一例を示す図である。 実施の形態1におけるクライアント端末及びサーバの機能構成の一例を示すブロック図である。 負荷判定部による判定処理の概要の説明図である。 負荷判定部による判定処理の詳細の説明図である。 実施の形態1において、クライアント端末及びサーバがアプリケーションを起動する際の処理の一例を示すフローチャートである。 記録負荷情報に基づく判定処理の一例を示すフローチャートである。 メモリに記録された負荷情報が纏められた記録負荷情報のデータ構成の一例を示す図である。 分散処理モードの処理の一例を示すフローチャートである。 単体処理モードの処理の一例を示すフローチャートである。 クライアント端末及びサーバ間で実行されるアプリケーションの実行状態の引き継ぎを示す図である。 単体処理モードの実行中において、実行方式が分散処理モードに切り替えられる際にユーザに通知されるメッセージ画像の一例を示した図である。 実施の形態2におけるクライアント端末及びサーバの機能構成の一例を示すブロック図である。 実施の形態2において、クライアント端末及びサーバがアプリケーションを起動する際の処理の一例を示すフローチャートである。 実施の形態2における単体処理モードの処理の一例を示すフローチャートである。 実施の形態2において、単体処理モードの実行中にクライアント端末の負荷が高負荷になった場合に、そのことをユーザに通知するための通知画像の一例を示した図である。 図15に示すフローチャートの変形例のフローチャートである。 クライアント端末及びサーバのそれぞれを実現するコンピュータのハードウェア構成の一例を示す図である。
(実施の形態による分散処理システムに至った経緯)
クライアント端末からの操作要求に基づき、サーバが、アプリケーションを実行してその実行結果を示す画像データをクライアント端末に送信し、クライアント端末が、その画像データを表示するリモートデスクトップ技術が知られている。このリモートデスクトップ技術によれば、ユーザは手元のクライアント端末を用いてネットワークに存在するサーバを操作することができる。
しかしながら、リモートデスクトップ技術では、サーバからクライアント端末に送信される画像データが膨大になると、処理結果の送信遅延が発生し、ユーザにストレスを与える可能性がある。
一方、サーバ及びクライアント端末間の通信を避けるために、すべてのアプリケーションをモバイル端末上で実行することも考えられる。しかしながら、モバイル端末では発熱の問題からCPUの性能に制約があり、サーバほど高速にアプリケーションを実行することができない。そのため、高負荷なアプリケーションを円滑に動作させることができないという問題が発生する。
そこで、本実施の形態では、クライアント端末及びサーバ間で通信されるデータ量を削減してクライアント端末での電力消費量を抑制すると同時に、アプリケーションを円滑に実行することができる分散処理システムを提供することを目的とする。以下、詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1の分散処理システムに適用されるクライアント端末101及びサーバ102の利用形態の一例を示す図である。クライアント端末101は、例えば、タブレット端末、スマートフォン、或いはノートPC等のディスプレイ付き携帯端末により構成される。また、クライアント端末としては、例えば通信機能を有する白物家電(例えば冷蔵庫、洗濯機、電子レンジなど)であってディスプレイを搭載するものをクライアント端末101としても良い。サーバ102は、インターネット上の様々なWEB(World Wide Web)サービスやWEBアプリケーション(以下、単にアプリケーションと記述する。)を仲介するサーバである。クライアント端末101はサーバ102を介してインターネット上のWEBサービスやアプリケーションを実行する。
図2(A)、(B)は、クライアント端末101及びサーバ102が連携して、アプリケーションを実行する様子の一例を示した図である。アプリケーションの実行主体は、アプリケーションの負荷に応じて異なる。
図2(A)は、分散処理モードにおいてアプリケーションが実行される様子の一例を示す図である。図2(A)では、高負荷のアプリケーションが連携して実行されている。高負荷のアプリケーションとしては、例えば、レンダリングが多用される3次元のコンピュータグラフィックスのアプリケーションや、複数の動画を同時に再生するアプリケーション等が挙げられる。
アプリケーションが高負荷である場合、アプリケーションはサーバ102で実行される。クライアント端末101は、サーバ102からアプリケーションの実行結果を示す画像データを受信し、表示部に表示する。この場合、クライアント端末101は、アプリケーションのパースやロードを行う必要はなく、単にサーバ102から送信される画像データを表示するディスプレイ端末として機能する。
図2(B)は、単体処理モードにおいてアプリケーションが実行される様子の一例を示す図である。図2(B)では低負荷のアプリケーションが実行されている。低負荷のアプリケーションとしては、例えば、テキスト及び静止画のみを表示するアプリケーションや、2つ以上の動画を同時再生しないアプリケーション等が挙げられる。
アプリケーションが低負荷である場合、アプリケーションはクライアント端末101により実行される。この場合、クライアント端末101は、アプリケーションのパースやロードが必要となり、自身で実行したアプリケーションの実行結果を示す画像を表示部に表示する。一方、サーバ102は、アプリケーションを実行せず、単にクライアント端末101にアプリケーションを転送するだけの転送サーバとして機能する。なお、本実施の形態では、アプリケーションとしては、例えば、HTML5や、JAVASCRIPT(登録商標)等のマークアップ言語で記述されたものが採用される。
図3は、実施の形態1におけるクライアント端末101及びサーバ102の機能構成の一例を示すブロック図である。図3に示すように、クライアント端末101は、分散表示処理部311、低負荷アプリ実行部310(アプリケーション実行部の一例)、モード切替部312、通知部316、表示部318、及び操作部319を含む。
分散表示処理部311は、分散処理モードにおいて、アプリケーションの実行結果を示す画像データをサーバ102から受信し、表示部318に表示する機能と、分散処理モードにおいて、クライアント端末101に対してユーザが行った操作をサーバ102に通知する機能とを含む。具体的には、分散表示処理部311は、画像受信部314、画像表示部315、UO(ユーザオペレーション)イベント配信部313を含む。
画像受信部314は、サーバ102から実行結果として送信される画像データを受信し、受信した画像データをデコードする。サーバ102から送信される画像データのフォーマットとしては、無圧縮画像のフォーマットや、圧縮画像のフォーマットがある。無圧縮画像のフォーマットとしては、例えばビットマップ形式がある。圧縮画像のフォーマットとしては、フレームのそれぞれが圧縮された連続する画像データにより構成されるフォーマット(例えば、MotionJPEG形式)や、フレーム間で圧縮されたデータから構成される動画データのフォーマット(例えば、H.264形式)がある。したがって、画像受信部314は、サーバ102から送信される画像データのフォーマットに応じたデコード方式で画像データをデコードすればよい。
また、画像受信部314は、サーバ102から送信される実行結果に音声データが含まれていれば、更に音声データをデコードする。サーバ102から送信される音声データのフォーマットとしては、無圧縮音声データ(例えば、PCM;Pulse Code Modulation形式)のフォーマットや、圧縮音声データ(例えば、AAC;Advanced Audio Coding形式)のフォーマット等がある。したがって、画像受信部314は、送信される音声データのフォーマットに応じたデコード方式で音声データをデコードすればよい。なお、画像受信部314は、クライアント端末101がスピーカを保有していない場合や、サーバ102から送信される実行結果に音声データが含まれていない場合、音声データをデコードする処理をスキップすればよい。
画像表示部315は、画像受信部314でデコードされた画像データをフレームバッファ(図略)に書き込み、表示部318に表示する。また、画像表示部315は、実行結果に音声データが含まれる場合は、画像受信部314でデコードされた音声データが示す音声をスピーカ(図略)から出力させる。
UOイベント配信部313は、ユーザが操作部319を操作することで入力されたアプリケーションに対するユーザ操作を検知し、検知したユーザ操作の内容を示すUOイベントをサーバ102へ送信する。ユーザ操作としては、例えば画面のタッチ、マウスのクリック、及びキーボードのキーを押す操作等が挙げられる。
UOイベント配信部313は、例えば、ユーザ操作がタッチ又はクリックの場合、タッチ又はクリックされた画面上の座標を含むUOイベントをサーバ102に送信する。また、UOイベント配信部313は、ユーザ操作がキー操作であれば、押されたキーを示すUOイベントをサーバ102へ送信する。サーバ102は、UOイベント配信部313から送信されたUOイベントが示すユーザ操作に基づいてアプリケーションの処理を進行させる。
低負荷アプリ実行部310は、例えば、HTMLブラウザ等のアプリケーション実行エンジンにより構成される。そして、低負荷アプリ実行部310は、単体処理モードにおいて、アプリケーションを取得し、取得したアプリケーションをパースし、アプリケーションを実行する。ここで、実行対象となるアプリケーションはクラウド又はWEBサーバ上に存在し、低負荷アプリ実行部310は、アプリケーションをダウンロードして取得する。
ここで、低負荷アプリ実行部310は、クラウド又はWEBサーバから直接、アプリケーションをダウンロードするのではなく、サーバ102を経由してアプリケーションをダウンロードする。アプリケーションは、サーバ102を経由することで、サーバ102により、クライアント端末101にとって、高負荷又は低負荷であるかが判定される。サーバ102により、アプリケーションがクライアント端末101にとって低負荷と判定されれば、低負荷アプリ実行部310にアプリケーションのデータが送信され、低負荷アプリ実行部310でアプリケーションが実行される。一方、サーバ102により、アプリケーションがクライアント端末101にとって高負荷と判定されれば、低負荷アプリ実行部310にアプリケーションのデータが送信されない。この場合、サーバ102からモード切替部312に分散処理モードに切り替える切替通知が送信され、分散表示処理部311が起動され、分散処理モードでアプリケーションが実行される。
モード切替部312は、実行対象となるアプリケーションがクライアント端末101にとって高負荷のアプリケーションである場合、単体処理モードから分散処理モードに切り替える。ここで、モード切替部312は、サーバ102から実行方式の切替通知を受け取り、切替通知が示す内容に応じて、分散処理モードと単体処理モードとの切り替えを行う。
分散処理モードとは、アプリケーションの実行処理がサーバ102に割り当てられ、アプリケーションの表示処理がクライアント端末101に割り当てられたモードである。分散処理モードでは、実行処理及び表示処理を行う機器が分散しており、複数の機器間で連携しながらアプリケーションが処理される。
単体処理モードとは、実行処理及び表示処理の両方が1つの機器に割り当てられたモードである。単体処理モードでは、1つの機器が単体でアプリケーションを処理する。
モード切替部312は、サーバ102から分散処理モードへの切替通知を受信すると、低負荷アプリ実行部310によるアプリケーションの実行処理を停止させ、現在のアプリケーションの実行状態を示す実行状態情報を低負荷アプリ実行部310からサーバ102に送信させる。そして、モード切替部312は、分散表示処理部311を起動させ、アプリケーションの実行方式を分散処理モードに切り替える。
一方、モード切替部312は、サーバ102から単体処理モードへの切替通知を受信すると、分散表示処理部311によるアプリケーションの表示処理を停止させる。そして、モード切替部312は、サーバ102から送信された実行状態情報から、現在のアプリケーションの実行状態を低負荷アプリ実行部310に引き継がせ、アプリケーションの実行方式を単体処理モードに設定する。
アプリケーションの実行状態の引き継ぎは、低負荷アプリ実行部310及び高負荷アプリ実行部304間で実行状態情報が送受されることで行われる。実行状態情報としては、実行中のアプリケーションの保存先を示す情報(例えば、URL;Uniform Resource Locator)や、アプリケーションの現在の実行状態を示す情報(例えば、HTTPCookie)や、アプリケーションに関するストレージデータ等が挙げられる。
通知部316は、負荷判定部301がアプリケーションの負荷が高負荷であるか否かを判定するために必要となる端末情報を高負荷アプリ実行部304に通知する。端末情報は性能情報及び負荷情報を含む。性能情報は、クライアント端末101の性能を示す静的な情報であり、例えば、クライアント端末101が使用するOS(Operating System)のバージョン、クライアント端末101のCPUのクロック数、及びクライアント端末101が搭載するメモリ容量等を含む。負荷情報は、動的に変化するクライアント端末101の負荷を示す情報であり、例えば、現在のCPU利用率、メモリ消費量、及び描画フレームレート等を含む。
表示部318は、液晶パネルや有機ELパネル等の表示装置により構成され、アプリケーションの実行結果である画像データを表示する。具体的には、表示部318は、分散処理モードにおいては、分散表示処理部311により受信された画像データを表示し、単体処理モードにおいては、低負荷アプリ実行部310によるアプリケーションの実行結果である画像データを表示する。
操作部319は、タッチパネル、キーボード、マウス等の操作装置により構成され、ユーザ操作を受け付ける。
以上がクライアント端末101の機能構成である。
サーバ102は、負荷判定部301、切替通知部302、分散処理実行部303、及びメモリ317を含む。分散処理実行部303は、高負荷アプリ実行部304(サーバ側アプリケーション実行部の一例)、スクリーンキャプチャ305、音声レコーダ306、エンコーダ307、画像配信部308、及びUOイベント受信部309を含む。
負荷判定部301は、実行対象となるアプリケーションがクライアント端末101にとって高負荷のアプリケーションであるか、低負荷のアプリケーションであるかを判定する。
ここで、負荷判定部301は、通知部316から通知される端末情報と、アプリケーションにより規定されたアプリ情報とに基づいて高負荷であるか否かを判定する。
具体的には、負荷判定部301は、端末情報に含まれる性能情報がアプリ情報に含まれる性能条件を満たす場合、実行対象のアプリケーションがクライアント端末101にとって低負荷のアプリケーションと判定し、性能情報が性能条件を満たさない場合、実行対象のアプリケーションがクライアント端末101にとって高負荷のアプリケーションと判定する。そして、負荷判定部301は、高負荷のアプリケーションと判定した場合、分散処理モードに切り替える切替通知を、切替通知部302を介してモード切替部312に通知し、低負荷のアプリケーションと判定した場合、単体処理モードに切り替える切替通知を切替通知部302を介してモード切替部312に通知する。
また、負荷判定部301は、単体処理モードにおいて、クライアント端末101の負荷を監視し、負荷が規定値を超えた場合、分散処理モードへの切替通知を、切替通知部302を介してモード切替部312に通知する。ここで、負荷判定部301は、通知部316から定期的に送信される負荷情報を受信することで、クライアント端末101の負荷を監視すればよい。なお、通知部316は、クライアント端末101のOSから負荷情報を取得すればよい。
アプリケーションによっては性能条件が規定されていないものも存在する。この場合、負荷判定部301は、まず、単体処理モードに切り替える切替通知を切替通知部302を介してモード切替部312に通知し、実行方式を単体処理モードに設定しておく。そして、負荷判定部301は、クライアント端末101の負荷を監視し、負荷が規定値を超えた場合、分散処理モードへの切替通知を、切替通知部302を介してモード切替部312に通知すればよい。
また、負荷判定部301は、実行対象のアプリケーションの負荷の監視結果をメモリ317に記録しておく。そして、負荷判定部301は、アプリケーションの起動時にメモリ317を参照し、該当するアプリケーションの監視結果として高負荷を示す監視結果が記録されていれば、該当するアプリケーションは高負荷のアプリケーションであると判定する。そして、負荷判定部301は、分散処理モードへの切替通知を、切替通知部302を介してモード切替部312に通知すればよい。
一方、実行対象となるアプリケーションがクライアント端末101によって初めて実行される場合、メモリ317に監視結果が記録されていない。この場合、負荷判定部301は、まず、単体処理モードに切り替える切替通知を、切替通知部302を介してモード切替部312に通知し、実行方式を単体処理モードに設定しておく。そして、負荷判定部301は、クライアント端末101の負荷を監視し、負荷が規定値を超えた場合、分散処理モードに切り替える切替通知を、切替通知部302を介してモード切替部312に通知すればよい。
切替通知部302は、負荷判定部301により実行対象のアプリケーションが高負荷のアプリケーションであると判定された場合、分散処理モードに切り替える切替通知をモード切替部312に通知する。一方、切替通知部302は、負荷判定部301により実行対象のアプリケーションが低負荷のアプリケーションであると判定された場合、単体処理モードに切り替える切替通知をモード切替部312に通知する。
高負荷アプリ実行部304は、例えば、HTMLブラウザ等のアプリケーション実行エンジンにより構成され、負荷判定部301により実行対象のアプリケーションが高負荷のアプリケーションであると判定された場合、当該アプリケーションをパースし、当該アプリケーションを実行する。
なお、高負荷アプリ実行部304の基本的な機能は、低負荷アプリ実行部310と同じである。但し、サーバ102の方がクライアント端末101に比べ、CPU、メモリ等の性能が高いのが一般的である。そのため、高負荷アプリ実行部304は、高負荷のアプリケーションを実行することができる。
スクリーンキャプチャ305は、高負荷アプリ実行部304がアプリケーションを実行することでグラフィックメモリ(図略)に書き込んだ画像データをエンコードバッファ(図略)にキャプチャする。
通常、グラフィックメモリに書き込まれたレンダリングされた画像データは、処理を行った機器に直接接続された表示機器に出力される。しかしながら、本実施の形態では、画像データは、遠隔にあるクライアント端末101の表示部318に表示される。そのため、スクリーンキャプチャ305は、エンコーダ307に画像データをエンコードさせるために、画像データをエンコードバッファ(図略)にキャプチャしている。なお、画像データのキャプチャ間隔は、短くなるにつれて、クライアント端末101で表示されるアニメーションや動画が滑らかになるため好ましいが、キャプチャ間隔を過度に短くするとクライアント端末101に送信する画像データのデータ量が増大するため好ましくない。そこで、キャプチャ間隔としては、サーバ102の性能及びネットワーク帯域幅に余裕があれば60fps程度が好ましい。
音声レコーダ306は、高負荷アプリ実行部304がアプリケーションを実行することでサウンドメモリ(図略)に書き込んだ音声データをエンコードバッファ(図略)にキャプチャする。
通常、サウンドメモリに書き込まれた音声データは、処理を行った機器に直接接続されているスピーカに出力される。しかしながら、本実施の形態では、音声データは、遠隔にあるクライアント端末101のスピーカから出力される。そのため、音声レコーダ306は、エンコーダ307に音声データをエンコードさせるために、サウンドメモリ上の音声データをエンコードバッファ(図略)にキャプチャしている。なお、クライアント端末101がスピーカを保持していない、或いは実行対象のアプリケーションが音声を出力しない場合、音声データのキャプチャ及びエンコードは省略されてもよい。この場合、画像データのみがクライアント端末101に送信される。
エンコーダ307は、スクリーンキャプチャ305でキャプチャされた画像データ及び音声レコーダ306でキャプチャされた音声データをエンコードする。画像データ及び音声データが、エンコードされずに非圧縮のままクライアント端末101に送信されと、クライアント端末101に送信されるデータ量が膨大になり、ネットワーク負荷が増大する。そこで、エンコーダ307は、クライアント端末101及びサーバ102間のネットワークが許容するビットレートとなるように画像データ及び音声データをエンコードすればよい。
画像配信部308は、エンコーダ307でエンコードされた画像データ及び音声データをクライアント端末101に送信する。画像データ及び音声データを送信する際に使用する通信プロトコルは、遅延を極力少なくするために、TCPではなくUDPを用いるのが好ましい。
UOイベント受信部309は、クライアント端末101から送信されたUOイベントを受信し、高負荷アプリ実行部304に通知する。高負荷アプリ実行部304は、UOイベント受信部309から通知されるUOイベントを実行中のアプリケーションに渡し、UOイベントに応じた処理をアプリケーションに行わせる。高負荷アプリ実行部304にて実行中のアプリケーションは、あたかもサーバ102に接続されたタッチパネル、マウス、キーボード等で操作されているように振る舞うが、実際には、遠隔にあるクライアント端末101の操作部319により操作されている。
例えば、操作部319のエンターキーがユーザにより押されると、エンターキーが押されたことを示すUOイベントがUOイベント配信部313からUOイベント受信部309に通知される。そして、UOイベント受信部309は、そのUOイベントを高負荷アプリ実行部304に通知し、高負荷アプリ実行部304は、そのUOイベントを実行中のアプリケーションに通知する。
これにより、アプリケーションは、遠隔にある操作部319の例えばエンターキーが押されたにもかかわらず、サーバ102に直接接続されているキーボードのエンターキーが押された場合と同様に振る舞う。つまり、アプリケーションの振る舞いは単体処理モード及び分散処理モードで違いはなく、ユーザは単体処理モード及び分散処理モードの違いを意識することなくアプリケーションを操作することができる。
なお、図3において、分散表示処理部311、低負荷アプリ実行部310、モード切替部312、及び通知部316は、通信装置1808(図18参照)と通信装置1808を制御するプログラムを記憶する記憶装置(図18のROM1802、RAM1804、及び外部記憶装置1805等)とにより構成され、クライアント端末101のCPU1803(図18参照)がこのプログラムを実行することで実現される。このプログラムはコンピュータをクライアント端末101として機能させるクライアントプログラムを構成し、コンピュータ読み取り可能な記録媒体に記録されてユーザに提供される。あるいは、クライアントプログラムは、インターネット上に設けられたダウンロードサーバからダウンロードされてユーザに提供されてもよい。また、分散表示処理部311、低負荷アプリ実行部310、モード切替部312、及び通知部316を専用のハードウェア回路により構成してもよい。この場合、分散表示処理部311、低負荷アプリ実行部310、モード切替部312、及び通知部316を1チップ化して集積回路により構成してもよい。
また、図3において、分散処理実行部303、負荷判定部301、及び切替通知部302は、通信装置1808(図18参照)と通信装置1808を制御するプログラムを記憶する記憶装置(図18のROM1802、RAM1804、及び外部記憶装置1805等)とにより構成され、サーバ102のCPU1803(図18参照)がこのプログラムを実行することで実現される。このプログラムはコンピュータをサーバ102として機能させるサーバプログラムを構成し、コンピュータ読み取り可能な記録媒体に記録されてユーザに提供される。あるいは、サーバプログラムは、インターネット上に設けられたダウンロードサーバからダウンロードされてユーザに提供されてもよい。
また、分散処理実行部303、負荷判定部301、及び切替通知部302を専用のハードウェア回路により構成してもよい。この場合、分散処理実行部303、負荷判定部301、及び切替通知部302を1チップ化して集積回路により構成してもよい。また、メモリ317は、ハードディスクドライブやFERAM等の書き換え可能な不揮発性の記憶装置により構成される。
また、図3において、UOイベント配信部313を省いてもよい。この場合、高負荷アプリ実行部304がUOイベントを直接受信すればよい。また、通知部316を省いてもよい。この場合、低負荷アプリ実行部310、分散表示処理部311、或いはモード切替部312が負荷判定部301にデータを送信すればよい。また、音声データ及び画像データを圧縮しない場合、エンコーダ307、スクリーンキャプチャ305、音声レコーダ306を省いてもよい。また、画像配信部308を省いてもよい。この場合、高負荷アプリ実行部304が実行結果をクライアント端末101に送信すればよい。また、切替通知部302を省いてもよい。この場合、負荷判定部301が直接、切替通知を送信すればよい。
図4は、負荷判定部301による判定処理の概要の説明図である。負荷判定部301は、クライアント端末101から得られる端末情報、実行対象のアプリケーションに付随するアプリ情報、及び過去に同じアプリケーションを実行したときのクライアント端末101の負荷の監視結果に基づいて、実行対象のアプリケーションがクライアント端末101にとって、高負荷のアプリケーションか否かを判定する。
図5は、負荷判定部301による判定処理の詳細の説明図である。アプリ情報には、実行対象のアプリケーションを実行するために必要なクライアント端末101の性能を示す性能条件が含まれている。性能条件としては、例えば、OSのバージョン、CPUのクロック数、及びメモリ容量等が含まれる。
一方、端末情報には、性能情報及び負荷情報が含まれる。性能情報には、クライアント端末101のOSのバージョン、CPUのクロック数、及びメモリ容量等が含まれる。負荷情報には、現在のCPU利用率、メモリ消費量、及びフレームレートなどの動的に変化する情報が含まれる。性能情報は常に固定であるが、負荷情報は刻々と値が変化する。
まず、負荷判定部301は、アプリ情報に含まれる性能条件と、取得した端末情報に含まれる性能情報とを比較し、クライアント端末101の性能情報が実行対象となるアプリケーションの性能条件を満たしているか否かを判定する。
図5の例では、性能条件として、例えばOSのバージョンが4.0以上、CPUのクロック数が1.2GHz以上、メモリ容量が1GB以上であることが規定されている。一方、性能情報は、OSのバージョンが4.0、CPUのクロック数が1.5GHz、メモリ容量が1GBを示している。したがって、負荷判定部301は、性能情報が性能条件の全項目を満たしているため、クライアント端末101は性能条件を満たすと判定する。なお、負荷判定部301は、性能情報が、性能条件の全項目を満たしていなくても、いずれか1又は複数の項目を満たしていれば、クライアント端末101は性能条件を満たしていると判定してもよい。また、性能条件として、図5に示した項目は一例にすぎず、他の項目を採用してもよいし、いずれかの項目を省いてもよい。
クライアント端末101がアプリケーションの性能条件を満たしていれば、アプリケーションは、単体処理モードで起動され、クライアント端末101がアプリケーションの性能条件を満たしていなければ、アプリケーションは分散処理モードで起動される。
単体処理モードでアプリケーションが起動された場合、負荷判定部301はクライアント端末101の負荷情報を定期的に取得し、クライアント端末101の負荷に余裕があるか否かを監視する。
図5の例では、負荷情報としてCPU利用率、メモリ消費量、及びフレームレートが採用されている。したがって、負荷判定部301は、CPU利用率、メモリ消費量、及びフレームレートが規定値を超えた場合、実行対象のアプリケーションはクライアント端末101にとって高負荷のアプリケーションであると判定すればよい。
ここで、規定値としては、単体処理モードでアプリケーションを起動させると、クライアント端末101がアプリケーションを円滑に処理することができなくなる数値を採用することができる。例えば、CPU利用率及びメモリ消費量であれば90%というような高負荷であることを示す数値が採用される。この場合、負荷判定部301は、CPU利用率又はメモリ消費量が例えば90%を超えていた場合、クライアント端末101の負荷が規定値を超えたと判定すればよい。図5の例では、クライアント端末101の現在のCPU利用率が70%であり、規定値である90%以下であるため、負荷判定部301は、負荷が規定値を超えていないと判定する。
負荷情報に含まれるフレームレートは、現在、クライアント端末101が単位時間あたりに何枚の画像データを描画できているかを示す数値である。そのため、フレームレートは、数値が高いほど、クライアント端末101の負荷に余裕があることを示す。したがって、負荷判定部301は、フレームレートに関しては、負荷情報に含まれるフレームレートが規定値以下になった場合、クライアント端末101の負荷が規定値を超えたと判定すればよい。
なお、負荷判定部301は、負荷情報に含まれる全ての項目が規定値を超えた場合に、実行対象のアプリケーションが高負荷であると判定してもよいし、いずれか1つ又は複数の項目が規定値を超えた場合に、実行対象のアプリケーションが高負荷であると判定してもよい。また、図5では、負荷情報はCPU利用率、メモリ消費量、フレームレートが示されているがこれは一例であり、他の項目を採用してもよいし、一部の項目を省いてもよい。
また、図5に示すように、負荷判定部301は、クライアント端末101の負荷情報をメモリ317に記録している。メモリ317に記録された負荷情報は、次回、同じアプリケーションを起動する際に負荷判定部301により参照される。例えば、実行対象となるアプリケーションを起動する際に該当するアプリケーションのCPU利用率として規定値(90%)以上のCPU利用率がメモリ317に記録されていたとする。この場合、負荷判定部301は、クライアント端末101の性能情報が性能条件を満たしていたとしても、該当するアプリケーションはクライアント端末101にとっと高負荷のアプリケーションであると判定し、最初から分散処理モードで該当するアプリケーションを起動する。
図6は、実施の形態1において、クライアント端末101及びサーバ102がアプリケーションを起動する際の処理の一例を示すフローチャートである。まず、負荷判定部301は、クライアント端末101からアプリケーションの起動要求を受信すると、クラウド又はWEBサーバからアプリケーションをダウンロードし(S101)、アプリケーションがクライアント端末101にとって高負荷のアプリケーションであるか否かを判定する判定処理を開始する。
ここで、クライアント端末101において、操作部319がユーザからアプリケーションを起動するためのユーザ操作を受け付けると、通知部316がその起動要求を負荷判定部301に送信する。これにより、負荷判定部301は、起動要求を受信する。そして、負荷判定部301は、起動要求に含まれるアプリケーションのURLにアクセスしてアプリケーションをダウンロードすればよい。
次に、負荷判定部301は、アプリケーションにアプリ情報が含まれているか否かを判定する(ステップS102)。そして、アプリ情報が含まれている場合(S102でYES)、負荷判定部301は、通知部316から端末情報を受信し、アプリ情報に含まれる性能条件を性能情報が満たすか否かを判定する(ステップS103)。
性能条件を性能情報が満たす場合(S103でYES)、負荷判定部301は、単体処理モードに切り替える切替通知を、切替通知部302を介してモード切替部312に通知し、アプリケーションを単体処理モードで起動させる単体処理モードの処理が実行される(ステップS105)。
一方、性能条件を性能情報が満たしていない場合(S103でNO)、負荷判定部301は、分散処理モードに切り替える切替通知を、切替通知部302を介してモード切替部312に通知し、アプリケーションを分散処理モードで起動させる分散処理モードの処理が実行される(ステップS104)。
一方、S102において、アプリケーションにアプリ情報が含まれていない場合(S102でNO)、アプリ情報に基づく判定処理ができないため、負荷判定部301は、メモリ317を参照し、メモリ317に記録された記録負荷情報に基づく判定処理を行う(S106)。
図7は、記録負荷情報に基づく判定処理の一例を示すフローチャートである。まず、負荷判定部301は、メモリ317を参照し、実行対象のアプリケーションの負荷情報が記録されているか否かを判定する(S201)。
図8は、メモリ317に記録された負荷情報が纏められた記録負荷情報のデータ構成の一例を示す図である。記録負荷情報は、アプリID、CPU利用率、メモリ消費量、及びフレームレートの欄を含む。アプリIDは、アプリケーションを一意に識別するための識別子である。CPU利用率は、該当するアプリケーションをクライアント端末101が前回実行したときのCPU利用率の最大値を示す。メモリ消費量は、該当するアプリケーションをクライアント端末101が前回実行したときのメモリ消費量の最大値を示す。フレームレートは、該当するアプリケーションをクライアント端末101が前回実行したときのフレームレートの最低値を示す。
なお、該当するアプリケーションにアプリ情報が含まれていれば、このアプリ情報に記載されているID(図8の例では、”appid:”の次に記載された記号列)がアプリIDとして記録負荷情報に記録される。一方、該当するアプリケーションにアプリ情報が含まれていなければ、URL(図8の例では、”url:”の次に記載された記号列)がアプリIDとして記録負荷情報に記録される。
したがって、負荷判定部301は、該当するアプリケーションにアプリ情報が含まれている場合、このアプリ情報に記載されたIDと同じIDが記録負荷情報に記録されていれば、S201でYESと判定すればよい。一方、負荷判定部301は、該当するアプリケーションにアプリ情報が含まれていない場合、このアプリケーションのURLと同じURLが記録負荷情報に記録されていれば、S201でYESと判定すればよい。
図7に戻り、負荷判定部301は、記録負荷情報に記載された実行対象のアプリケーションの負荷情報からこのアプリケーションがクライアント端末101にとって高負荷のアプリケーションであるか否かを判定する(S202)。ここで、負荷判定部301は、記録負荷情報に記載された実行対象のアプリケーションの負荷情報が規定値を超えている場合、高負荷のアプリケーションと判定する(S202でYES)。一方、負荷判定部301は、記録負荷情報に記録された実行対象のアプリケーションの負荷情報が規定値を超えていない場合、低負荷のアプリケーションと判定する(S202でNO)。
例えば、CPU利用率の規定値が85%であるとすると、負荷判定部301は、記録負荷情報に実行対象のアプリケーションのCPU利用率として、85%以上の数値が記載されていれば、高負荷と判定する。
また、メモリ消費量の規定値が85%であるとすると、負荷判定部301は、記録負荷情報に実行対象のアプリケーションのメモリ消費量として85%以上の数値が記載されていれば、高負荷であると判定する。
フレームレートが60fpsであれば、クライアント端末101は非常に滑らかに画像を描画できている。一方、フレームレートが数fpsであれば、クライアント端末101は、画面更新が遅く、滑らかに画像を描画できていない。例えば、フレームレートの規定値が5fpsであるとすると、負荷判定部301は、記録負荷情報に実行対象のアプリケーションのフレームレートとして5%以下の数値が記載されていれば、高負荷であると判定する。
なお、図8の例では、CPU利用率、メモリ消費量、及びフレームレートのワースト値が記録されており、負荷判定部301は、ワースト値から高負荷であるか否かを判定しているが、これは一例にすぎない。例えば、記録負荷情報に、CPU利用率、メモリ消費量、及びフレームレートの平均値も記録してもよい。この場合、負荷判定部301は、平均値も判定材料にして、判定処理を行えばよい。
例えば、ワースト値は規定値を超えているが、平均値は規定値を充分に下回っていることもある。この場合、高負荷状態になるのはアプリケーション実行中の短い区間のみである。そして、一時的に高負荷になることを許容できるユーザであれば、単体処理モードを設定しても問題はない。
そこで、負荷判定部301は、ワースト値が規定値を超えているが平均値が規定値を一定の値以上、下回っている場合、一時的に高負荷となるが単体処理モードを設定してもよいかをユーザに問い合わせる問合画像をクライアント端末101に表示させる。そして、ユーザがその問い合わせに同意するユーザ操作を行った場合、負荷判定部301は、単体処理モードに切り替える切替通知を切替通知部302を介してモード切替部312に通知すればよい。なお、この問い合わせに同意するか否かのユーザ操作を示す信号は、例えば、通知部316から負荷判定部301に送信される。
図7に戻り、S202でNOと判定されると、単体処理モードの処理が実行され(S203)、S202でYESと判定されると、分散処理モードの処理が実行される(S204)。
このように、図7のフローチャートによれば、実行対象のアプリケーションの負荷情報がメモリ317に記録されていない場合、或いは、実行対象のアプリケーションの負荷情報がメモリ317に記録されていても、その負荷情報が規定値を超えていない場合、単体処理モードの処理が実行される。一方、メモリ317に記録されている負荷情報が規定値を超えていれば、分散処理モードの処理が実行される。
図9は、分散処理モードの処理の一例を示すフローチャートである。まず、負荷判定部301は、実行対象のアプリケーションを高負荷アプリ実行部304にロードし、高負荷アプリ実行部304にそのアプリケーションを起動させる(S301)。
次に、スクリーンキャプチャ305は、アプリケーションによりグラフィックメモリ(図略)に書き込まれた画像データをエンコードバッファ(図略)にキャプチャすると共に、音声レコーダ306は、アプリケーションによりサウンドメモリに書き込まれた音声データをエンコードバッファ(図略)にキャプチャする(S302)。
次に、エンコーダ307は、エンコードバッファ(図略)にキャプチャされた画像データ及び音声データをエンコードする(S303)。これにより、画像データ及び音声データは、ネットワークにおいて、送信可能なビットレートで送信できるように圧縮される。
次に、画像配信部308は、圧縮された画像データ及び音声データをクライアント端末101へネットワークを介して送信する(S304)。
クライアント端末101は、画像配信部308から送信された画像データ及び音声データを画像受信部314で受信し(S305)、受信した画像データ及び音声データをデコードする。次に、画像表示部315は、デコードされた画像データを表示部318に表示すると共に、デコードされた音声データをスピーカに出力する(S306)。
次に、表示部318に表示された画像を見たユーザにより何らかのユーザ操作が行われ、UOイベント配信部313によりそのユーザ操作が検知されると(S307でYES)、検知されたユーザ操作がUOイベントとして、サーバ102に送信される(S308)。一方、UOイベントが検知されない場合(S307でNO)、処理がS311に進められる。
次に、サーバ102のUOイベント受信部309は、UOイベント配信部313から配信されたUOイベントを受信し(S309)、高負荷アプリ実行部304に通知する。これにより、現在実行中のアプリケーションにUOイベントが通知される(S310)。
アプリケーションは、通知されたUOイベントに対応する動作を行い、例えば新しい画像を描画する、クリック音の音声を出力する等の処理を行う。
そして、処理がS302に戻され、アプリケーションによって新たに生成された画像データ及び音声データに対して、S302〜S306の処理が実行され、画像データ及び音声データが表示部318及びスピーカに出力される。
なお、ステップS307において、UOイベントが検知されなかったとしても(S307でNO)、高負荷アプリ実行部304によりアプリケーションの終了が検知されなければ(S311でNO)、処理がS302に戻され、アプリケーションにより新たに生成された画像データ及び音声データに対する処理が継続される。
例えば、アプリケーションが動画を視聴するアプリケーションである場合、ユーザ操作はほとんど検知されないが、画像データ及び音声データの更新は継続的に行われる。そのため、S302〜S306の処理はアプリケーションが終了するまでは継続して実行される。
一方、S311において、高負荷アプリ実行部304がアプリケーションの終了を検知すると(S311でYES)、処理が終了される。
図10は、単体処理モードの処理の一例を示すフローチャートである。まず、低負荷アプリ実行部310は、負荷判定部301から実行対象のアプリケーションがロードされ、そのアプリケーションを起動する(S401)。
次に、負荷判定部301は、通知部316から負荷情報を取得する(S402)。なお、単体処理モードによりアプリケーションが起動されると、通知部316は、負荷情報を負荷判定部301に定期的に送信する。これにより、負荷判定部301は、クライアント端末101の負荷を監視することができる。
次に、負荷判定部301は、取得した負荷情報をメモリ317に記録する(S403)。これにより図8に示す記録負荷情報に、CPU利用率、メモリ消費量、フレームレート等の負荷情報が書き込まれる。
次に、負荷判定部301は、負荷情報が規定値を超えるか否かにより、クライアント端末101の現在の負荷が高負荷であるか否かを判定する(S404)。負荷情報が規定値を超えていない場合、負荷判定部301は低負荷と判定し(S404でNO)、単体処理モードを継続させる(S405)。
次に、低負荷アプリ実行部310によりアプリケーションの終了が検知されない場合(S406でNO)、処理がS402に戻され、S402以降の処理が繰り返し実行され、クライアント端末101の負荷が監視される。
一方、ステップS404において、負荷情報が規定値を超えた場合、負荷判定部301は高負荷と判定し(S404でYES)、高負荷アプリ実行部304は、現在のアプリケーションの実行状態を示す実行状態情報を低負荷アプリ実行部310から取得する(S407)。
これにより、高負荷アプリ実行部304は、現在のアプリケーションの状態を引き継ぐことができる。その結果、単体処理モードから分散処理モードに切り替えられても、アプリケーションは、実行状態がリセットされず、途中から処理を開始することができる。
次に、負荷判定部301は、切替通知部302を介して、分散処理モードに切り替える切替通知をモード切替部312に通知する(S408)。
次に、モード切替部312は、サーバの切替通知部302から分散処理モードへの切替通知を受信すると、低負荷アプリ実行部310にアプリケーションの実行を停止させ、分散表示処理部311を起動させる。これにより、クライアント端末101は、分散処理モードの処理を開始する(S409)。
図11は、クライアント端末101及びサーバ102間で実行されるアプリケーションの実行状態の引き継ぎを示す図である。実行状態の引き継ぎは、低負荷アプリ実行部310及び高負荷アプリ実行部304間で行われる。
低負荷アプリ実行部310は、アプリ状態通知部401を含む。高負荷アプリ実行部304は、アプリ状態受信部402を含む。
アプリ状態通知部401は、アプリケーションの現在の実行状態を示す実行状態情報をアプリ状態受信部402に送信する。アプリ状態受信部402は、アプリ状態通知部401から送信された実行状態情報を受信する。これにより、クライアント端末101におけるアプリケーションの現在の実行状態がサーバ102に引き継がれる。
図12は、単体処理モードの実行中において、実行方式が分散処理モードに切り替えられる際にユーザに通知されるメッセージ画像の一例を示した図である。分散処理モードでは、クライアント端末101はサーバ102と常時接続状態となるため、単体処理モードに比べ通信のデータ量が増大する。ユーザに何も通知せずに、自動的に単体処理モードから分散処理モードへの切り替えを行うと、ユーザはクライアント端末101及びサーバ102間で通信が発生していることを認識することができない。この場合、ユーザは、クライアント端末101及びサーバ102間で通信が発生していないと考えて、アプリケーションを長時間起動させる可能性がある。
しかしながら、これでは、クライアント端末101及びサーバ102間で大量のデータが送受され、通信プロバイダとユーザとの契約内容によっては、ユーザに想定外の通信費が請求されるといった問題が発生する。そこで、本実施の形態では、単体処理モードの起動中において、実行方式を分散処理モードに切り替える際、図12に示すメッセージ画像をクライアント端末101に表示し、通信が発生することをユーザに通知している。
具体的には、サーバ102の負荷判定部301は、分散処理モードへの切り替えの要否をユーザに問い合わせるための問い合わせ依頼を切替通知部302を介してモード切替部312に通知する。そして、モード切替部312は、図12に示すメッセージ画像を表示部318に表示する。
図12に示すメッセージ画像には、「クラウドアクセラレーションを利用しますか?」と記載されている。ここで、クラウドアクセラレーションは、上記の分散処理モードに相当している。図12のメッセージ画像の上側の説明欄1203には、クラウドアクセサレーションを利用すれれば、動作が改善されるが、通信が発生することが記載されている。これにより、ユーザはアプリケーションの動作を改善した場合、サーバ102との通信が発生することを認識することができる。
また、図12には、「はい」と記載されたボタン1201と、「いいえ」と記載されたボタン1202とが表示されている。ユーザは、サーバ102との通信が発生しても動作の改善を希望する場合、ボタン1201を選択する。一方、ユーザは、サーバ102との通信の発生を希望しない場合、ボタン1202を選択する。
そして、ユーザによりボタン1201が選択され、操作部319がその選択操作を受け付けると、モード切替部312は、ユーザが分散処理モードへの切り替えを了承したことを示す了承通知を低負荷アプリ実行部310から負荷判定部301に通知する。これにより、負荷判定部301は、分散処理モードに切り替える切替通知をモード切替部312に切替通知部302を介して通知し、実行方式が分散処理モードに切り替えられる。
一方、ユーザによりボタン1202が選択され、その選択操作を操作部319が受け付けると、低負荷アプリ実行部310は、ユーザが分散処理モードへの切り替えに了承しないことを示す非了承通知を低負荷アプリ実行部310を介して負荷判定部301に通知する。これにより、負荷判定部301は、単体処理モードを継続してよいと判定し、低負荷アプリ実行部310にアプリケーションを継続して実行させる。
但し、通信プロバイダと定額契約をしているユーザは通信のデータ量を気にしないため、単体処理モードにおいて、クライアント端末101の負荷が高負荷になる都度、図12に示すメッセージ画像をクライアント端末101に表示させると、ユーザに煩わしさを与えてしまう。
そこで、図12に示すメッセージ画像にはチェックボックス1204が設けられている。このチェックボックス1204にユーザがチェックマークを入力した場合、負荷判定部301は、以降、チェックマーク入力時でのユーザの選択結果に応じて、分散処理モードに切り替える、或いは、単体処理モードを継続させるかを選択する。
具体的には、チェックマーク入力時において、ユーザがボタン1201を選択したとする。この場合、負荷判定部301は、単体処理モードにおいて該当するアプリケーションの負荷が規定値を超えたとしてもメッセージ画像を表示することなく、自動的に、分散処理モードに切り替える。一方、チェックマークの入力時において、ユーザがボタン1202を選択したとする。この場合、負荷判定部301は、単体処理モードにおいて該当するアプリケーションの負荷が規定値を超えたとしても、メッセージ画像を表示することなく、単体処理モードを継続させる。
このように、本実施の形態によれば、実行対象のアプリケーションがクライアント端末101にとって高負荷のアプリケーションであると判定された場合、分散処理モードに切り替えられる。そのため、クライアント端末101にとって高負荷のアプリケーションがクライアント端末101で実行されることが回避され、アプリケーションを円滑に実行することができる。
一方、実行対象のアプリケーションがクライアント端末101にとって低負荷のアプリケーションであると判定された場合、単体処理モードに切り替えられる。そのため、クライアント端末101で十分に処理することができる低負荷のアプリケーションが分散処理され、通信のデータ量が増大することを防止することができる。その結果、通信のデータ量の増大に伴うクライアント端末101のバッテリー消費を極小化することができる。
(実施の形態2)
実施の形態1では、サーバ102側で実行対象のアプリケーションがクライアント端末101にとって高負荷のアプリケーションであるか否かが判定されていたが、実施の形態2では、クライアント端末101側でこの判定が行われる。なお、実施の形態2では、実施の形態1と同じ部分は説明を省略し、相違点のみ説明する。
図13は、実施の形態2におけるクライアント端末101及びサーバ102の機能構成の一例を示すブロック図である。実施の形態2では、クライアント端末101は、サーバ102を経由せず、直接、クラウド又はWEBサーバからアプリケーションを取得する。また、実施の形態1では、負荷判定部301及びメモリ317はサーバ102に設けられていたが、実施の形態2では、負荷判定部301及びメモリ317は負荷判定部501及びメモリ502として、クライアント端末101に設けられている。また、負荷判定部501がクライアント端末101側に設けられたことに伴い、切替通知部302、通知部316は省かれている。
負荷判定部501は、実施の形態1と同様、実行対象となるアプリケーションがクライアント端末101にとって高負荷のアプリケーションであるか、低負荷のアプリケーションであるかを判定する。なお、負荷判定部501による判定処理は負荷判定部301による判定処理と基本的には同じである。
但し、負荷判定部501は、クライアント端末101に設けられている。そのため、負荷判定部501は、低負荷アプリ実行部310がアプリケーションを実行している際のクライアント端末101の負荷を監視し、高負荷と判定した場合は、実行中のアプリケーションのURLをメモリ502に記録する。
メモリ502には、高負荷と判定されたアプリケーションのURLのリストが記録されている。
図14は、実施の形態2において、クライアント端末101及びサーバ102がアプリケーションを起動する際の処理の一例を示すフローチャートである。まず、低負荷アプリ実行部310は、実行対象となるアプリケーションを取得する前に、アプリケーションのURLを負荷判定部501に通知し、負荷判定部501に、該当するURLがメモリ502に記録されているか否かを判定させる(S1401)。
そして、低負荷アプリ実行部310から通知されたURLがメモリ502に記録されていれば(S1401でYES)、負荷判定部501は、該当するアプリケーションは低負荷又は未実行であると判定し、単体処理モードの処理を開始する(S1402)。
一方、低負荷アプリ実行部310から通知されたURLがメモリ502に記録されていなければ(S1401でNO)、負荷判定部501は、該当するアプリケーションは高負荷であると判定し、分散処理モードの処理を開始させる(S1403)。この場合、負荷判定部501は、低負荷アプリ実行部310から通知されたURLを高負荷アプリ実行部304に送信すると共に、モード切替部312に分散処理モードに切り替える切替通知を通知する。一方、サーバ102側では、高負荷アプリ実行部304が、通知されたURLにアクセスして実行対象のアプリケーションを取得し、取得したアプリケーションを起動する。なお、実施の形態2において分散処理モードの処理は実施の形態1と同じであるため、説明を省略する。
図15は、実施の形態2における単体処理モードの処理の一例を示すフローチャートである。まず、低負荷アプリ実行部310は、実行対象のアプリケーションのURLにアクセスしてアプリケーションを取得し、取得したアプリケーションを起動する(S1501)。
次に、負荷判定部501は、例えば、負荷情報を定期的に取得し、負荷情報が規定値を超えるか否かにより、クライアント端末101の現在の負荷が高負荷であるか否かを判定する(S1502)。ここで、負荷判定部501は、例えばクライアント端末101のOSから負荷情報を取得すればよい。
負荷情報が規定値を超えていない場合、負荷判定部501は低負荷と判定し(S1502でNO)、処理をS1504に進める。一方、負荷判定部501は、負荷情報が規定値を超えた場合、高負荷と判定し(S1502でYES)、実行対象となるアプリケーションのURLをメモリ502に記録し(S1503)、処理をS1504に進める。
S1504において、負荷判定部501は、S1502の判定結果によらず、低負荷アプリ実行部310にアプリケーションを継続して実行させる。つまり、ステップS1502において、クライアント端末101が高負荷になったとしても、アプリケーションは単体処理モードでの実行が継続される。但し、S1503において、高負荷となったアプリケーションのURLがメモリ502に記録されるため、負荷判定部501は、次回、該当するアプリケーションを起動する際に、S1401の処理により該当するアプリケーションを分散処理モードで起動させる。
次に、低負荷アプリ実行部310によりアプリケーションの終了が検知されない場合(S1505でNO)、処理がS1502に戻され、再びクライアント端末101の負荷が継続して監視される。一方、低負荷アプリ実行部310によりアプリケーションの終了が検知された場合(S1505でYES)、処理が終了される。
なお、図15のフローチャートでは、単体処理モードにおいて、クライアント端末101の負荷が高負荷となった場合、次回の起動時に分散処理モードで起動させる態様を採用したが、今回の起動中に分散処理モードに移行する態様を採用してもよい。以下、この態様について説明する。
図16は、実施の形態2において、単体処理モードの実行中にクライアント端末101の負荷が高負荷になった場合に、そのことをユーザに通知するための通知画像の一例を示した図である。
単体処理モードにおいて、アプリケーションの実行中にクライアント端末101の負荷が高負荷になった場合、そのアプリケーションをサーバ102がリロードすれば分散処理モードに移行することが可能である。
しかしながら、強制的にリロードすると、入力途中の状態が消去されるおそれがあり、また、高負荷状態によるクライアント端末101のパフォーマンスの劣化を許容できるユーザもいると想定される。そのため、アプリケーションをリロードするか否かはユーザの判断に委ねることが好ましい。
そこで、本実施の形態では、単体処理モードの実行中にクライアント端末101の負荷が高負荷になった場合、図16に示す通知画像を表示して、アプリケーションをリロードすれば、アプリケーションを高速化できる可能性があることをユーザに通知する。
図16に示す通知画像には、リロードと記載されたリロードボタン1601が設けられている。また、リロードボタン1601の右側には、「リロードしてクラウドアクセサレーションを利用」と記載されている。これにより、ユーザは、リロードボタン1601を押せば、アプリケーションがリロードされ、アプリケーションの処理が高速化できることを認識することができる。
リロードボタン1601の表示態様としては、例えば、リロードボタン1601の全域をハイライト表示させる、或いは、リロードボタン1601を点滅させるといった表示態様を採用することが好ましい。これにより、リロードボタン1601の存在をユーザにより確実に知らせることができる。
但し、アプリケーションをリロードすることを煩わしいと感じるユーザも存在する。そこで、このようなユーザに対処するために、単体処理モードにおいてクライアント端末101の負荷が高負荷になった場合、自動的にアプリケーションをリロードすることを予めユーザに設定させる構成を採用してもよい。なお、図16において、リロードをキャンセルするボタンを設け、リロードしないことをユーザに選択させてもよい。
図17は、図15に示すフローチャートの変形例のフローチャートである。図16の説明で述べたように、アプリケーションの実行中にクライアント端末101の負荷が高負荷になった場合、アプリケーションをリロードすることで分散処理モードに移行することができる。しかしながら、分散処理モードへの切り替え時に、サーバ102にアプリケーションのURLを通知し、サーバ102にアプリケーションを取得する処理を開始させるとなると、取得する処理が完了するまでの待ち時間が発生することになる。
そこで、本実施の形態では、単体処理モードにおいて、アプリケーションが高負荷になる可能性が高い場合、サーバ102にURLを通知してサーバ102に事前にアプリケーションを取得させておく。これにより、単体処理モードから分散処理モードへの移行を速やかに行うことができる。
まず、低負荷アプリ実行部310は、S1501と同様にして、アプリケーションを起動する(S1701)。次に、負荷判定部501は、定期的に取得した負荷情報から、高負荷の状態が1秒(第1時間の一例)、継続されたか否かを判定する(S1702)。なお、高負荷であるか否かの判定は、実施の形態1で示したように、負荷情報が規定値を超えるか否かにより判定すればよい。
高負荷の状態が1秒未満であれば(S1702でNO)、負荷判定部501は、アプリケーションは低負荷と判定し、単体処理モードを継続させる(S1710)。
一方、高負荷の状態が1秒継続されれば(S1702でYES)、負荷判定部501は、実行中のアプリケーションが高負荷のアプリケーションである可能性が高いと判定し、実行中のアプリケーションのURLをサーバ102に送信する(S1703)。サーバ102はURLを受信すると、分散処理モードに移行される可能性があるため、高負荷アプリ実行部304にアプリケーションを事前に取得させる(S1704)。
次に、負荷判定部501は、S1702の判定から継続して、更に2秒、高負荷の状態が続き、高負荷の状態が合計3秒(第2時間の一例)継続されたか否かを判定する(S1704)。そして、高負荷の状態が3秒継続されると(S1705でYES)、実行中のアプリケーションは高負荷であると判定し、実行中のアプリケーションのURLをメモリ502に記録する(S1706)。
次に、低負荷アプリ実行部310は、リロードすることでアプリケーションが高速化されることをユーザに通知する(S1707)。この場合、低負荷アプリ実行部310は、図16に示す通知画像を表示部318に表示する。そして、ユーザによりリロードボタン1601が押す操作が入力され(S1708でYES)、その操作を操作部319が受け付けると、低負荷アプリ実行部310は、モード切替部312に分散処理モードへの切替通知を通知する。これにより、分散処理モードの処理が開始される(S1709)。
ステップS1704に示すように、サーバ102は、実行中のアプリケーションが高負荷である可能性が高い場合、アプリケーションを事前に取得している。したがって、S1708において、ユーザによりリロードボタン1601が押された場合、サーバ102はアプリケーションを取得する処理が不要となり、その処理の時間分、分散処理モードへの切り替えに要する時間を短縮化することができる。
一方、ユーザによりリロードボタン1601が押す操作が行われず(S1708でNO)、その操作を操作部319が受け付けない場合、単体処理モードが継続される(S1710)。
S1711において、低負荷アプリ実行部310は、アプリケーションの終了を検知した場合(S1711でYES)、アプリケーションを終了させ、アプリケーションの終了を検知しなかった場合(S1711でNO)、処理がS1702に戻される。
図17に示す処理は、実施の形態1の負荷判定部301がサーバ102に設けられている構成においても適用可能である。
なお、実施の形態1、2において、サーバ102は、ネットワークに設けられていたが、これは一例であり、ローカルネットワークに設けられてもよい。ローカルネットワークとしては、無線LAN、有線LAN、或いはこれらが混在するネットワークを採用すればよい。
サーバ102がH.264等のフレーム間で圧縮されたデータから構成される動画データのフォーマットで画像データを圧縮する場合、MotionJPEGに比べてデータ量が少なくなる。この場合、サーバ102をインターネットに設けても問題はない。
一方、サーバがMotionJPEG等のフレームのそれぞれが圧縮された連続する画像データにより構成されるフォーマットで画像データを圧縮する場合、H.264に比べてデータ量が多くなる。そのため、サーバ102をローカルネットワークに設けることが好ましい。サーバ102をローカルネットワークに設ける場合、サーバ102をホームサーバに実装すればよい。
図18は、クライアント端末101及びサーバ102のそれぞれを実現するコンピュータのハードウェア構成の一例を示す図である。
コンピュータは、入力装置1801、ROM(リードオンリメモリ)1802、CPU(中央演算処理装置)1803、RAM(ランダムアクセスメモリ)1804、外部記憶装置1805、表示装置1806、記録媒体駆動装置1807、及び通信装置1808を備える。各ブロックは内部のバスに接続され、このバスを介して種々のデータ等が入出され、CPU1803の制御の下、種々の処理が実行される。
入力装置1801は、キーボード、マウス等から構成され、ユーザが種々のデータを入力するために使用される。ROM1802には、BIOS(Basic Input/Output System)等のシステムプログラムが記憶される。外部記憶装置1805は、ハードディスクドライブ等から構成され、所定のOS(Operating System)、コンピュータをクライアント端末101機能させるクライアントプログラム又はサーバ102として機能させるサーバプログラム等が記憶される。CPU1803は、外部記憶装置1805からOSを読み出し、各ブロックの動作を制御する。RAM1804は、CPU1803の作業領域等として用いられる。
表示装置1806は、例えば液晶ディスプレイや有機ELディスプレイにより構成され、CPU1803の制御の下に種々の画像を表示する。記録媒体駆動装置1807は、DVD−ROMドライブ、フレキシブルディスクドライブ等から構成される。
なお、クライアントプログラム及びサーバプログラムは、DVD−ROM等のコンピュータ読み取り可能な記録媒体1809に格納されてユーザに提供される。ユーザはこの記録媒体1809を記録媒体駆動装置1807に読み込ませることで、クライアントプログラム又はサーバプログラムをコンピュータにインストールする。また、クライアントプログラム及びサーバプログラムをインターネット上のWEBサーバに格納し、このWEBサーバからダウンロードすることで、クライアントプログラム又はサーバプログラムをコンピュータにインストールしてもよい。
通信装置1808は、例えば、コンピュータをLANやインターネットに接続するための通信装置により構成され、CPU1803の制御の下、インターネットを介して他の機器との間でデータを送受する。
また、図3又は図13の各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現されるが、集積回路であるLSIで実現してもよい。これらの各機能ブロックは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI又はウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
また、実施の形態におけるクライアント端末101及びサーバ102が備える構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。
システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、RAM(Ramdom Access Memory)等を含んで構成されるコンピュータシステムである。前記ROMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
なお、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、あるいはLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(実施の形態のまとめ)
(1)本実施の形態によるクライアント端末は、ネットワークを介して通信可能に接続されたサーバと連携してアプリケーションを実行するクライアント端末であって、前記アプリケーションの実行結果である画像データを表示する表示部と、前記クライアント端末に前記アプリケーションを実行させる単体処理モードと、前記サーバに前記アプリケーションを実行させる分散処理モードとのいずれかにアプリケーションの実行方式を切り替えるモード切替部と、前記単体処理モードにおいて、前記アプリケーションを実行するアプリケーション実行部と、前記分散処理モードにおいて、前記アプリケーションの実行結果を示す画像データを前記サーバから受信し、前記表示部に表示する分散表示処理部とを備え、前記モード切替部は、前記クライアント端末にとって前記アプリケーションが高負荷のアプリケーションである場合、前記実行方式を前記分散処理モードに切り替える。
この構成によれば、クライアント端末単体では処理することが困難な高負荷のアプリケーションはサーバ側で実行され、クライアント端末はサーバの処理結果を受信して表示するだけで済む。一方、クライアント端末単体で十分に処理することができる低負荷のアプリケーションは、分散処理されずクライアント端末単体で実行される。そのため、アプリケーションを円滑に動作させることができる。
また、アプリケーションが高負荷又は低負荷であるかを問わず、クライアント端末にかかる負荷を常に低い状態に維持することができ、クライアント端末の電力消費量を抑制することができる。更に、高負荷のアプリケーションを実行した場合のみ、サーバ及びクライアント端末間で通信が発生するため、通信されるデータ量が抑制され、クライアント端末の電力消費量を抑制することができる。特に、クライアント端末がバッテリーの容量に制限のあるモバイル端末である場合、バッテリーの消費量を抑制し、クライアント端末を長時間使用することができる。
更に、サーバとの連携処理が高負荷のアプリケーションのみに限定されている。そのため、連携処理のためにクライアント端末がサーバを利用する頻度が低減され、クライアント端末のみならず、サーバにかかる負荷も低下させることができる。
(2)前記クライアント端末の性能を示す性能情報と、前記アプリケーションが規定する性能条件とに基づき、前記アプリケーションが前記クライアント端末にとって高負荷のアプリケーションであるか否かを判定し、高負荷のアプリケーションと判定した場合、前記分散処理モードに切り替える切替通知を前記モード切替部に通知し、低負荷のアプリケーションと判定した場合、前記単体処理モードに切り替える切替通知を前記モード切替部に通知する負荷判定部を更に備えてもよい。
この構成によれば、アプリケーションが要求する性能条件をクライアント端末の性能情報が満たせば、実行対象のアプリケーションが低負荷であると判定され、クライアント端末でアプリケーションが実行される。そのため、実行対象のアプリケーションがクライアント端末にとって低負荷であるか高負荷であるか正確に判断することができる。
(3)前記負荷判定部は、前記単体処理モードにおいて、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記モード切替部に通知してもよい。
この構成によれば、クライアント端末がアプリケーションを実行している際に、クライアント端末の負荷が規定値を超えると、単体処理モードから分散処理モードに実行方式が切り替えられる。そのため、起動時にはクライアント端末にとって低負荷であると判定され、単体処理モードに設定したが、実際に実行させてみると高負荷であった場合に、分散処理モードに切り替えることができる。よって、クライアント端末にとって高負荷のアプリケーションがクライアント端末で実行され続けることを防止することができる。
(4)前記負荷判定部は、前記単体処理モードにおいて、前記クライアント端末の負荷が前記規定値を超えた時間が所定の第1時間継続した場合、前記サーバに前記アプリケーションを事前に取得させ、前記負荷が前記規定値を超えた時間が更に所定の第2時間(>前記第1時間)継続した場合、前記分散処理モードへの切替通知を前記モード切替部に通知してもよい。
この構成によれば、クライアント端末にとってアプリケーションの負荷が高くなる可能性が高い場合、サーバにより事前にアプリケーションが取得される。そのため、実際に負荷が高いと判定され、単体処理モードから分散処理モードに切り替える際に、サーバがアプリケーションを取得する処理を行う必要がなく、単体処理モードから分散処理モードへの切り替えを短時間で行うことができる。
(5)前記負荷判定部は、前記単体処理モードにおいて、前記分散処理モードへの切替通知を前記モード切替部に通知する場合、前記分散処理モードへの切り替えの要否をユーザに問い合わせ、ユーザにより前記分散処理モードへの切り替えを了承するユーザ操作が行われた場合、前記モード切替部に前記切替通知を通知してもよい。
この構成によれば、アプリケーションの実行速度の低下を許容するユーザや、通信コストの増大を嫌うユーザ等の要望に応じて、適切な実行方式でアプリケーションを実行することができる。
(6)前記負荷判定部は、前記アプリケーションにより前記性能条件が規定されていない場合、前記単体処理モードに切り替える切替通知を前記モード切替部に通知し、その後、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記モード切替部に通知してもよい。
この構成によれば、アプリケーションに性能条件が記載されていない場合、とりあえず、単体処理モードでアプリケーションを起動させておく。その後、クライアント端末の負荷が高負荷になった場合、実行方式が単体処理モードから分散処理モードに切り替えられる。よって、アプリケーションに性能条件が記載されていない場合であっても、アプリケーションを適切な実行方式で実行させることができる。
(7)前記クライアント端末は、前記負荷の監視結果を記録するメモリを更に備え、前記負荷判定部は、前記アプリケーションの起動時に、前記メモリを参照し、高負荷を示す監視結果が記録されていた場合、前記アプリケーションは高負荷のアプリケーションであると判定し、前記分散処理モードへの切替通知を前記モード切替部に通知してもよい。
この構成によれば、クライアント端末がアプリケーションを実行したときの負荷の監視結果がメモリに記録されているため、この監視結果を参照することで、該当するアプリケーションが次に実行される際に、そのアプリケーションがクライアント端末にとって高負荷であるか否かを高速且つ正確に判定することができる。
(8)前記負荷判定部は、前記メモリに監視結果が記録されていない場合、前記単体処理モードに切り替える切替通知を前記モード切替部に通知し、その後、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードに切り替える切替通知を前記モード切替部に通知してもよい。
この構成によれば、実行対象となるアプリケーションがクライアント端末で初めて実行される場合、とりあえず、単体処理モードで起動され、その後、クライアント端末の負荷が高負荷になった場合、分散処理モードに切り替えられる。そのため、クライアント端末にとって高負荷のアプリケーションがクライアント端末で実行され続けることが防止され、適切な実行方式でアプリケーションを実行することができる。
(9)前記アプリケーションに対するユーザ操作を受け付ける操作部を更に備え、前記分散表示処理部は、前記分散処理モードにおいて、前記ユーザ操作を検知して、検知したユーザ操作の内容を示すUOイベントを前記サーバに送信してもよい。
この構成によれば、分散処理モードにおいて、ユーザがアプリケーションに対して操作を行うと、そのことがサーバに通知され、操作に応じた処理がサーバによって行われ、実行結果がクライアント端末に返される。そのため、分散処理モードであっても、クライアント端末とサーバとの間でデータの送受が行われていることをユーザに意識させることなく、円滑にアプリケーションを実行させることができる。
(10)本実施の形態によるサーバは、ネットワークを介して通信可能に接続されたクライアント端末と連携してアプリケーションを実行するサーバであって、分散処理モードにおいて前記アプリケーションを実行するサーバ側アプリケーション実行部と、前記サーバ側アプリケーション実行部による前記アプリケーションの実行結果を示す画像データを前記クライアント端末に送信する画像配信部と、前記アプリケーションが前記クライアント端末にとって低負荷のアプリケーションと判定した場合、前記クライアント端末に前記アプリケーションを実行させる単体処理モードに切り替える切替通知を前記クライアント端末に通知する負荷判定部とを備える。
この構成によれば、(1)で述べた効果を得るためのサーバを提供することができる。
(11)前記負荷判定部は、前記クライアント端末の性能を示す性能情報と、前記アプリケーションが規定する性能条件とに基づき、前記アプリケーションが前記クライアント端末にとって低負荷のアプリケーションであるか否かを判定し、低負荷のアプリケーションと判定した場合、前記単体処理モードに切り替える切替通知を前記クライアント端末に通知し、高負荷のアプリケーションと判定した場合、前記分散処理モードに切り替える切替通知を前記クライアント端末に通知してもよい。
この構成によれば、負荷判定部をサーバに設けた構成において、(2)で述べた効果と同様の効果が得られる。
(12)前記負荷判定部は、前記単体処理モードにおいて、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記クライアント端末に通知してもよい。
この構成によれば、負荷判定部をサーバに設けた構成において、(3)で述べた効果と同様の効果が得られる。
(13)前記負荷判定部は、前記単体処理モードにおいて、前記分散処理モードへの切替通知を前記クライアント端末に通知する場合、前記分散処理モードへの切り替えの要否をユーザに問い合わせるための問い合わせ依頼を前記クライアント端末に送信し、前記クライアント端末からユーザが前記分散処理モードへの切り替えを了承したことを示す了承通知を受信した場合、前記クライアント端末に前記切替通知を通知してもよい。
この構成によれば、負荷判定部をサーバに設けた構成において、(5)で述べた効果と同様の効果が得られる。
(14)前記負荷判定部は、前記アプリケーションにより前記性能条件が規定されていない場合、前記単体処理モードに切り替える切替通知を前記クライアント端末に通知し、その後、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記クライアント端末に通知してもよい。
この構成によれば、負荷判定部をサーバに設けた構成において、(6)で述べた効果と同様の効果が得られる。
(15)前記サーバは、前記負荷の監視結果を記録するメモリを更に備え、前記負荷判定部は、前記アプリケーションの起動時に、前記メモリを参照し、高負荷を示す監視結果が記録されていた場合、前記アプリケーションは高負荷のアプリケーションであると判定し、前記分散処理モードへの切替通知を前記クライアント端末に通知してもよい。
この構成によれば、負荷判定部をサーバに設けた構成において、(7)で述べた効果と同様の効果が得られる。
(16)フレーム間で圧縮されたデータから構成されるフォーマットに前記画像データを圧縮するエンコーダと、前記エンコーダにより圧縮された画像データを前記クライアント端末に送信する画像配信部とを更に備え、前記サーバ及び前記クライアント端末はインターネットを介して接続されていてもよい。
この構成によれば、フレーム間で圧縮されるデータから構成されるフォーマットで画像データが圧縮されてサーバからクライアント端末に送信されている。そのため、サーバ及びクライアント端末間をインターネットを介して接続しても、アプリケーションを円滑に実行させることができる。
(17)フレームのそれぞれが圧縮された連続する画像データにより構成されるフォーマットに前記画像データを圧縮するエンコーダと、前記エンコーダにより圧縮された画像データを前記クライアント端末に送信する画像配信部とを更に備え、前記サーバ及び前記クライアント端末はローカルネットワークを介して接続されていてもよい。
この構成によれば、フレームのそれぞれが圧縮された連続する画像データにより構成されるフォーマットに画像データが圧縮されてサーバからクライアント端末に送信されている。そして、サーバ及びクライアント端末間がローカルネットワークを介して接続されている。そのため、アプリケーションを円滑に実行させることができる。
本発明によれば、製造産業において継続的に製造し、販売することができる。特に、本
発明は、分散処理を利用したクラウドサービスの制作及び実行に携わる民生機器産業に利用できる。
101 クライアント端末
102 サーバ
301 負荷判定部
302 切替通知部
303 分散処理実行部
304 高負荷アプリ実行部
309 UOイベント受信部
310 低負荷アプリ実行部
311 分散表示処理部
312 モード切替部
313 UOイベント配信部
316 通知部
317 メモリ
318 表示部
319 操作部
501 負荷判定部
502 メモリ

Claims (18)

  1. ネットワークを介して通信可能に接続されたサーバと連携してアプリケーションを実行するクライアント端末であって、
    前記アプリケーションの実行結果である画像データを表示する表示部と、
    前記クライアント端末に前記アプリケーションを実行させる単体処理モードと、前記サーバに前記アプリケーションを実行させる分散処理モードとのいずれかにアプリケーションの実行方式を切り替えるモード切替部と、
    前記単体処理モードにおいて、前記アプリケーションを実行するアプリケーション実行部と、
    前記分散処理モードにおいて、前記アプリケーションの実行結果を示す画像データを前記サーバから受信し、前記表示部に表示する分散表示処理部とを備え、
    前記モード切替部は、前記クライアント端末にとって前記アプリケーションが高負荷のアプリケーションである場合、前記実行方式を前記分散処理モードに切り替えるクライアント端末。
  2. 前記クライアント端末の性能を示す性能情報と、前記アプリケーションが規定する性能条件とに基づき、前記アプリケーションが前記クライアント端末にとって高負荷のアプリケーションであるか否かを判定し、高負荷のアプリケーションと判定した場合、前記分散処理モードに切り替える切替通知を前記モード切替部に通知し、低負荷のアプリケーションと判定した場合、前記単体処理モードに切り替える切替通知を前記モード切替部に通知する負荷判定部を更に備える請求項1記載のクライアント端末。
  3. 前記負荷判定部は、前記単体処理モードにおいて、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記モード切替部に通知する請求項2記載のクライアント端末。
  4. 前記負荷判定部は、前記単体処理モードにおいて、前記クライアント端末の負荷が前記規定値を超えた時間が所定の第1時間継続した場合、前記サーバに前記アプリケーションを事前に取得させ、前記負荷が前記規定値を超えた時間が更に所定の第2時間(>前記第1時間)継続した場合、前記分散処理モードへの切替通知を前記モード切替部に通知する請求項3記載のクライアント端末。
  5. 前記負荷判定部は、前記単体処理モードにおいて、前記分散処理モードへの切替通知を前記モード切替部に通知する場合、前記分散処理モードへの切り替えの要否をユーザに問い合わせ、ユーザにより前記分散処理モードへの切り替えを了承するユーザ操作が行われた場合、前記モード切替部に前記切替通知を通知する請求項3記載のクライアント端末。
  6. 前記負荷判定部は、前記アプリケーションにより前記性能条件が規定されていない場合、前記単体処理モードに切り替える切替通知を前記モード切替部に通知し、その後、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記モード切替部に通知する請求項2記載のクライアント端末。
  7. 前記負荷の監視結果を記録するメモリを更に備え、
    前記負荷判定部は、前記アプリケーションの起動時に、前記メモリを参照し、高負荷を示す監視結果が記録されていた場合、前記アプリケーションは高負荷のアプリケーションであると判定し、前記分散処理モードへの切替通知を前記モード切替部に通知する請求項6記載のクライアント端末。
  8. 前記負荷判定部は、前記メモリに監視結果が記録されていない場合、前記単体処理モードに切り替える切替通知を前記モード切替部に通知し、その後、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードに切り替える切替通知を前記モード切替部に通知する請求項7記載のクライアント端末。
  9. 前記アプリケーションに対するユーザ操作を受け付ける操作部を更に備え、
    前記分散表示処理部は、前記分散処理モードにおいて、前記ユーザ操作を検知して、検知したユーザ操作の内容を示すUOイベントを前記サーバに送信する請求項1記載のクライアント端末。
  10. ネットワークを介して通信可能に接続されたクライアント端末と連携してアプリケーションを実行するサーバであって、
    分散処理モードにおいて前記アプリケーションを実行するサーバ側アプリケーション実行部と、
    前記サーバ側アプリケーション実行部による前記アプリケーションの実行結果を示す画像データを前記クライアント端末に送信する画像配信部と、
    前記アプリケーションが前記クライアント端末にとって低負荷のアプリケーションと判定した場合、前記クライアント端末に前記アプリケーションを実行させる単体処理モードに切り替える切替通知を前記クライアント端末に通知する負荷判定部とを備えるサーバ。
  11. 前記負荷判定部は、前記クライアント端末の性能を示す性能情報と、前記アプリケーションが規定する性能条件とに基づき、前記アプリケーションが前記クライアント端末にとって低負荷のアプリケーションであるか否かを判定し、低負荷のアプリケーションと判定した場合、前記単体処理モードに切り替える切替通知を前記クライアント端末に通知し、高負荷のアプリケーションと判定した場合、前記分散処理モードに切り替える切替通知を前記クライアント端末に通知する請求項10記載のサーバ。
  12. 前記負荷判定部は、前記単体処理モードにおいて、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記クライアント端末に通知する請求項11記載のサーバ。
  13. 前記負荷判定部は、前記単体処理モードにおいて、前記分散処理モードへの切替通知を前記クライアント端末に通知する場合、前記分散処理モードへの切り替えの要否をユーザに問い合わせるための問い合わせ依頼を前記クライアント端末に送信し、前記クライアント端末からユーザが前記分散処理モードへの切り替えを了承したことを示す了承通知を受信した場合、前記クライアント端末に前記切替通知を通知する請求項11記載のサーバ。
  14. 前記負荷判定部は、前記アプリケーションにより前記性能条件が規定されていない場合、前記単体処理モードに切り替える切替通知を前記クライアント端末に通知し、その後、前記クライアント端末の負荷を監視し、前記負荷が規定値を超えた場合、前記分散処理モードへの切替通知を前記クライアント端末に通知する請求項11記載のサーバ。
  15. 前記負荷の監視結果を記録するメモリを更に備え、
    前記負荷判定部は、前記アプリケーションの起動時に、前記メモリを参照し、高負荷を示す監視結果が記録されていた場合、前記アプリケーションは高負荷のアプリケーションであると判定し、前記分散処理モードへの切替通知を前記クライアント端末に通知する請求項14記載のサーバ。
  16. フレーム間で圧縮されたデータから構成されるフォーマットに前記画像データを圧縮するエンコーダと、
    前記エンコーダにより圧縮された画像データを前記クライアント端末に送信する画像配信部とを更に備え、
    前記サーバ及び前記クライアント端末はインターネットを介して接続されている請求項10記載のサーバ。
  17. フレームのそれぞれが圧縮された連続する画像データにより構成されるフォーマットに前記画像データを圧縮するエンコーダと、
    前記エンコーダにより圧縮された画像データを前記クライアント端末に送信する画像配信部とを更に備え、
    前記サーバ及び前記クライアント端末はローカルネットワークを介して接続されている請求項10記載のサーバ。
  18. ネットワークを介して通信可能に接続されたクライアント端末と連携してアプリケーションを実行するサーバによる分散処理方法であって、
    分散処理モードにおいて前記アプリケーションを実行するサーバ側アプリケーション実行ステップと、
    前記サーバ側アプリケーション実行ステップによる前記アプリケーションの実行結果を示す画像データを前記クライアント端末に送信する画像配信ステップと、
    前記アプリケーションが前記クライアント端末にとって低負荷のアプリケーションと判定した場合、前記クライアント端末に前記アプリケーションを実行させる単体処理モードに切り替える切替通知を前記クライアント端末に通知する負荷判定ステップとを備える分散処理方法。
JP2013221199A 2012-11-22 2013-10-24 クライアント端末、サーバ、及び分散処理方法 Pending JP2014123347A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013221199A JP2014123347A (ja) 2012-11-22 2013-10-24 クライアント端末、サーバ、及び分散処理方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012256365 2012-11-22
JP2012256365 2012-11-22
JP2013221199A JP2014123347A (ja) 2012-11-22 2013-10-24 クライアント端末、サーバ、及び分散処理方法

Publications (1)

Publication Number Publication Date
JP2014123347A true JP2014123347A (ja) 2014-07-03

Family

ID=50728978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013221199A Pending JP2014123347A (ja) 2012-11-22 2013-10-24 クライアント端末、サーバ、及び分散処理方法

Country Status (2)

Country Link
US (1) US9374413B2 (ja)
JP (1) JP2014123347A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020038643A (ja) * 2018-09-05 2020-03-12 林保成 パーソナルクラウドシステム及び関連する局所化方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109479227B (zh) 2016-09-07 2022-02-08 Oppo广东移动通信有限公司 确定终端设备状态的方法和装置
US20180157629A1 (en) * 2016-12-01 2018-06-07 Raja Singh Tuli Method for reducing data transfer from a server to a portable device
KR102648102B1 (ko) 2019-01-18 2024-03-18 삼성전자주식회사 전자 장치와 외부 서버 간에 어플리케이션 프로그램에 관한 작업 환경을 제공하는 방법 및 장치
US11625806B2 (en) * 2019-01-23 2023-04-11 Qualcomm Incorporated Methods and apparatus for standardized APIs for split rendering

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4341616B2 (ja) * 2005-12-02 2009-10-07 ソニー株式会社 ネットワークカメラシステムおよびネットワークカメラ制御プログラム
JP5685840B2 (ja) 2010-07-01 2015-03-18 富士通株式会社 情報処理装置、画像送信プログラム及び画像表示方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020038643A (ja) * 2018-09-05 2020-03-12 林保成 パーソナルクラウドシステム及び関連する局所化方法
JP7039533B2 (ja) 2018-09-05 2022-03-22 林保成 パーソナルクラウドシステム及び関連する局所化方法

Also Published As

Publication number Publication date
US9374413B2 (en) 2016-06-21
US20140143313A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
KR101882399B1 (ko) 액티비티 협력을 위한 동반 애플리케이션
CN103201759A (zh) 用于监视与内容封装的可选部分的用户交互的方法和设备
JP2014123347A (ja) クライアント端末、サーバ、及び分散処理方法
US10942735B2 (en) Distributed cross-platform user interface and application projection
EP3193270B1 (en) Output function dividing system
US20130283151A1 (en) Dynamic Webpage Image
KR20160069443A (ko) 웹 어플리케이션 서비스 제공 장치 및 방법, 그리고 이를 위한 사용자 장치
CN103338401A (zh) 用于移动终端浏览器中的视频播放控制方法、装置和系统
CN108337127B (zh) 应用性能监控方法、系统、终端及计算机可读存储介质
US20180376209A1 (en) Video player framework for a media distribution and management platform
CN103699635B (zh) 信息处理方法和装置
CN103428582B (zh) 播放视频的方法、装置和客户端
CN104346256A (zh) 应用程序耗电信息的获取方法、装置和移动终端
CN111913884A (zh) 分布式测试方法、装置、设备、系统和可读存储介质
WO2018086454A1 (zh) 页面数据处理方法和装置
CN108810132B (zh) 动画显示方法、装置、终端、服务器及存储介质
CN105122818A (zh) 计算机系统、分发控制系统、分发控制方法和计算机可读存储介质
CN102804177A (zh) 提供自适应上下文模型框架的方法、装置和计算机程序产品
CN104615622A (zh) 打开文件的方法、装置及移动终端
CN110928547A (zh) 公共文件的提取方法、装置、终端和存储介质
CN114880604A (zh) 数据处理、数据发送和数据获取方法及装置
JP2008040347A (ja) 画像表示装置、画像表示方法および画像表示プログラム
CN114339419A (zh) 一种视频流拉流处理的方法、装置及存储介质
CN110309454B (zh) 一种界面显示方法、装置、设备及存储介质
KR20210133229A (ko) 클라우드 스트리밍 서비스에서의 사용자 인터페이스 세션 복구 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140606