JPWO2006051967A1 - データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法 - Google Patents

データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法 Download PDF

Info

Publication number
JPWO2006051967A1
JPWO2006051967A1 JP2006545038A JP2006545038A JPWO2006051967A1 JP WO2006051967 A1 JPWO2006051967 A1 JP WO2006051967A1 JP 2006545038 A JP2006545038 A JP 2006545038A JP 2006545038 A JP2006545038 A JP 2006545038A JP WO2006051967 A1 JPWO2006051967 A1 JP WO2006051967A1
Authority
JP
Japan
Prior art keywords
module
data processing
asp
local
unit
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
JP2006545038A
Other languages
English (en)
Inventor
祐介 藤巻
祐介 藤巻
Original Assignee
株式会社ジャストシステム
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 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
Publication of JPWO2006051967A1 publication Critical patent/JPWO2006051967A1/ja
Pending 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

ASPサーバの負荷を軽減する技術を提供する。ユーザ端末6に、ASPサーバ3内で実行されるアプリケーションをインストールする。ユーザ端末6にインストールされたアプリケーションは、サテライトASP5として機能し、ASPサーバ3と同様の機能を実現する。ユーザがASPサーバ3のASPサービスを受けるために、ASPサーバ3へリクエストを送信しようとすると、サテライトASP5がそのリクエストを受け取って、ASPサーバ3の代わりにアプリケーションを実行する。

Description

本発明は、データ処理技術に関し、特に、アプリケーションサービスを提供するデータ処理装置に関する。
パーソナルコンピュータや携帯電話端末が広く普及し、誰もがインターネットを利用できる環境が整いつつある。インターネットを介したウェブサービスも広く利用されるようになっている。
アプリケーションサービスプロバイダ(ASP)のサーバが各種のサービスを提供している。ASPサーバでは、サービスを提供するためのアプリケーションが実行されるが、ASPサーバに対するアクセスが集中すると、負荷により動作速度が低下したり、システムダウンを起こす恐れがある。理想的には、一時的なアクセスの極大にも耐えうるようにシステムを構築すべきであるが、費用対効果の面からは効率的とはいえない。
本発明はこうした状況に鑑みてなされたものであり、その主たる目的は、アプリケーションサービスを提供するサーバの負荷を軽減し、サーバクライアントモデルにおいて効率的にアプリケーションを制御するための技術を提供することにある。
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、サーバがサービスを提供するために実行するアプリケーションと同等又は一部の機能を有するアプリケーションをネットワークを介してサーバから取得し、インストールする手段と、前記サーバへのリクエストを取得し、前記サーバの代わりに前記アプリケーションを実行する手段と、を備えることを特徴とする。
前記アプリケーションは、クライアントの端末の内部にインストールされてもよい。前記アプリケーションは、クライアントの端末と前記サーバとの間に接続された装置にインストールされてもよい。
本発明の別の態様もデータ処理装置である。
この装置は、アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードするモジュール取得部と、ユーザからの操作入力を受け付けるための入力画面を表示させる入力画面表示部と、入力画面に対するユーザの操作入力を検出する操作検出部と、操作入力に応じたデータ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させるローカル実行制御部と、実行主体としてリモートモジュールが選択されたとき、外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させる結果表示部と、を備える。
実行主体選択部は、入力画面に対するユーザの操作入力が受け付けられるときに、データ処理の実行主体としてリモートモジュールとローカルモジュールのいずれかを特定するための情報が入力されなくても、ローカルモジュールかリモートモジュールの少なくともいずれかを選択する。
この装置において、ローカルモジュールとしてダウンロードの対象となる機能モジュールのうちの少なくとも一部の機能モジュールは、外部装置と自装置のいずれにおいても実行可能であってもよい。
入力画面表示部は、外部装置に処理要求情報を送信するための画面として入力画面を表示させ、実行主体選択部は、入力画面を介してその処理要求情報を取得し、その処理要求情報に応じたデータ処理を実行可能なローカルモジュールが存在するときには、そのローカルモジュールを実行主体として選択してもよい。
実行主体選択部は、外部装置に対する通信状態がオフラインとなっているときには、実行主体としてローカルモジュールを優先的に選択してもよい。
入力画面表示部は、リモートモジュールに対する操作入力を受け付けるための入力画面とローカルモジュールに対する操作入力を受け付けるための入力画面を、実質的に同一の入力画面として表示してもよい。
この装置は、実行対象となるべきアプリケーションソフトウェアを選択するためのユーザによる入力を検出するアプリケーション選択部を更に備えてもよい。このとき、モジュール取得部は、選択されたアプリケーションソフトウェアに含まれる機能モジュールを外部装置からのダウンロード対象としてもよい。
この装置は、アプリケーションソフトウェアに含まれる複数の機能モジュールのうち、ダウンロード対象となる機能モジュールを選択するためのユーザによる入力を検出するモジュール選択部を更に備えてもよい。このとき、モジュール取得部は、選択された機能モジュールを外部装置からのダウンロード対象としてもよい。
この装置は、外部装置においてリモートモジュールが更新された旨を示す更新情報を受信する更新情報受信部を更に備えてもよい。このとき、モジュール取得部は、更新情報の受信を契機として、更新後のリモートモジュールを外部装置から新たにダウンロードしてもよい。
本発明の更に別の態様は、データ処理システムである。
このデータ処理システムは、上記したようなデータ処理装置とサーバ装置を備える。
サーバ装置は、アプリケーションソフトウェアを構成する複数の機能モジュールを保持するモジュール保持部と、データ処理装置に保持されるべきローカルモジュールとして、それら複数の機能モジュールのうち、少なくとも一部の機能モジュールをデータ処理装置に送信するモジュール送信部と、データ処理装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、保持されている機能モジュールに指示されたデータ処理を実行させる実行制御部と、データ処理の結果を処理結果情報としてデータ処理装置に送信する処理結果送信部と、を含む。
本発明の更に別の態様は、データ処理中継装置である。
この装置は、アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを第1の外部装置からダウンロードするモジュール取得部と、第2の外部装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、データ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、第1の外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、実行主体としてローカルモジュールが選択されたとき、指示されたデータ処理をローカルモジュールに実行させるローカル実行制御部と、実行主体としてリモートモジュールが選択されたとき、第1の外部装置に対して、指示されたデータ処理の実行を指示するための処理要求情報を送信し、第1の外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を処理結果情報として第2の外部装置に送信する処理結果送信部と、を備える。
この装置は、アプリケーションソフトウェアの一部の機能を第2の外部装置において実行可能とするために、第1の外部装置からダウンロードされた機能モジュールのうちの少なくとも一部の機能モジュールを第2の外部装置に送信するモジュール送信部を更に備えてもよい。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、アプリケーションサービスを提供するサーバの負荷を軽減する技術を提供することができる。
第1の実施の形態に係るデータ処理システムの構成を示す図である。 第2の実施の形態に係るデータ処理システムの構成を示す図である。 第1の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。 ASPサーバの機能ブロック図である。 ユーザサテライトASPの機能ブロック図である。 ユーザサテライトASPにインストールされた路線検索アプリケーションについての路線検索入力画面を示す画面図である。 ユーザサテライトASPにインストールすべきアプリケーションを選択するためのアプリケーション選択画面を示す画面図である。 ユーザサテライトASPにインストールすべきモジュールを選択するためのモジュール選択画面を示す画面図である。 第1の実施の形態において、ユーザサテライトASPにおけるデータ処理過程を示すフローチャートである。 第1の実施の形態において、ユーザサテライトASPがローカルモジュールを更新する過程を示すシーケンス図である。 第2の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。 中継サテライトASPの機能ブロック図である。 第2の実施の形態において、中継サテライトASPにおけるデータ処理過程を示すフローチャートである。 第2の実施の形態において、中継サテライトASPやユーザサテライトASPがモジュールを更新する過程を示すシーケンス図である。
符号の説明
1 データ処理システム、2 インターネット、3 ASPサーバ、4 ルータ装置、5 サテライトASP、6 ユーザ端末、8 中継サテライトASP、9 ユーザサテライトASP、100 ダウンロード処理部、102 ダウンロード要求受信部、104 モジュール送信部、106 更新情報送信部、110 データ処理制御部、112 実行指示受信部、114 処理結果送信部、116 実行部、120 モジュール保持部、130 ダウンロード処理部、132 ダウンロード要求送信部、134 モジュール受信部、136 更新情報受信部、140 ユーザインタフェース処理部、142 入力部、144 表示部、150 データ処理制御部、152 実行主体選択部、154 ローカル実行部、156 リモート実行部、158 通信状態検出部、160 アプリケーション選択部、162 モジュール選択部、170 モジュール保持部、240 ダウンロード処理部、242 ダウンロード要求送信部、244 ダウンロード要求受信部、246 モジュール送信部、248 モジュール受信部、250 更新情報受信部、252 更新情報送信部、260 データ処理制御部、262 実行指示受信部、264 実行主体選択部、268 ローカル実行部、270 リモート実行部、272 通信状態検出部、274 処理結果送信部、280 モジュール保持部。
(第1の実施の形態)
図1は、第1の実施の形態に係るデータ処理システムの構成を示す。データ処理システム1は、ASPサーバ3およびユーザ端末6を備える。ASPサーバ3とユーザ端末6は、インターネット2を介して接続されており、ASPサーバ3は、ユーザ端末6に対して、通販システム、アクセスログ解析などのASPサービスを提供する。
本実施の形態では、ユーザ端末6に、ASPサーバ3内で実行されるアプリケーションをインストール可能とする。たとえば、ASPサーバ3が提供するウェブページに、アプリケーションをユーザ端末6にインストールするためのUIを用意し、ユーザがアプリケーションのインストールを要求すると、ASPサーバ3がユーザ端末6にアプリケーションを送信してインストールさせる。ユーザ端末6にインストールされたアプリケーションは、ASPサーバ3と同様の機能を実現することができる。これを、以下、サテライトASP5とよぶ。
ユーザがASPサーバ3のASPサービスを受けるために、ASPサーバ3へリクエストを送信すると、サテライトASP5がそのリクエストを受け取って、ASPサーバ3の代わりにアプリケーションを実行する。すなわち、サテライトASP5は、アプリケーションのプロキシサーバとして機能する。従来のプロキシサーバは、HTML文書や画像などのコンテンツをキャッシュしていたが、サテライトASP5は、言わばアプリケーションのローカルキャッシュとして機能する。
このような構成により、ASPサーバ3の機能をユーザのローカルな環境に移すことができるので、ASPサーバ3の負荷を軽減することができる。また、ASPサーバ3に障害が発生した場合や、ユーザ端末6とASPサーバ3との間の通信が遮断されている場合であっても、ユーザ端末6はASPサービスの提供を受けることができる。また、ASPサーバ3のセキュリティ性を向上させることができる。サテライトASP5のセキュリティ性や信頼性を向上させるために、制限された領域内で完全にアプリケーションを実行させるサンドボックス技術、アプリケーションの出自や非改竄を証明する電子署名技術を利用してもよい。サテライトASP5では、アプリケーションがユーザ端末6内で動作するので、ASPサーバ3とは異なり、アプリケーションがユーザ端末6内の構成やユーザ端末6に接続された構成などにアクセスすることも可能であるという効果もある。たとえば、ユーザ端末6にUSB接続されたデジタルカメラにアクセスして、デジタルカメラの写真を取得するようなアプリケーションをインストールすることもできる。
アプリケーションのインストールは、ユーザが行う以外にも、ASPサーバ3又はユーザ端末6のシステムが自動で行ってもよい。
(第2の実施の形態)
図2は、第2の実施の形態に係るデータ処理システムの構成を示す。本実施の形態のデータ処理システム1では、サテライトASP5が、ユーザ端末6内ではなくルータ装置4内にインストールされている。これにより、ルータ装置4に接続されている複数のユーザ端末6がサテライトASP5を利用することができる。
以下、実施の形態1および2に関連して、更に付言する。
(第1の実施の形態)
図3は、第1の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。
ここでは、モジュールA〜Dの4つのモジュールによって構成されるアプリケーションについて説明する。これら複数のモジュールが協働することにより、アプリケーション全体としての機能が発揮される。たとえば、出発地から目的地までの路線を検索するアプリケーションには、入力された地名の場所を検索するためのモジュール、入力された地名に応じて好適な路線を特定するモジュール、特定された路線における所要時間を計算するモジュールなど、さまざまなモジュールが含まれている。そして、ユーザからの入力に応じて、1以上のモジュールがさまざまなデータ処理を実行することにより、最終的なアウトプットが生成される。
モジュール自体は、ライブラリ形式にて提供されてもよいし、実行ファイル形式にて提供されてもよい。また、モジュールは複数のアプリケーションによって共有されてもよい。
アプリケーションを構成するモジュールA〜Dのデータは、ASPサーバ3に保持されている。ユーザ端末6には、ユーザサテライトASP9というソフトウェアが導入されている。ここでいうユーザサテライトASP9は、図1においては、サテライトASP5に相当するソフトウェアである。ユーザサテライトASP9は、ASPサーバ3に保持されるモジュールのうち、モジュールAとモジュールBを保持している。ユーザサテライトASP9は、ASPサーバ3からこれらのモジュールをインターネット2を介して取得する。同図に示す態様においては、基本的に、ユーザサテライトASP9のモジュールA、BおよびASPサーバ3のモジュールC、Dによって、このアプリケーションソフトウェアが実行される。
なお、ユーザサテライトASP9からみて、自装置に保持されているモジュールであるか、外部装置に保持されているモジュールであるかを区別するために、ユーザサテライトASP9が保持するモジュールA、Bのようなモジュールを「ローカルモジュール」、ASPサーバ3が保持するモジュールA〜Dのようなモジュールを「リモートモジュール」とよぶ。
同図におけるモジュールA〜Dのうち、モジュールAは、ユーザサテライトASP9でのみ実行可能なモジュールである。そのため、ユーザサテライトASP9は、このアプリケーションを実行するためにモジュールAを必ずダウンロードする。このような、ユーザサテライトASP9でのみ実行可能なモジュールのことを、「端末専用モジュール」とよぶ。ASPサーバ3は、ユーザサテライトASP9に対するダウンロードのために、モジュールAを保持している。そのため、ASPサーバ3自体がモジュールAを実行することはない。従来のASPモデルと異なり、このモジュールAによってユーザ端末6のリソースにアクセスすることが可能となっている。
モジュールBとCは、ASPサーバ3とユーザサテライトASP9のどちらでも実行可能なモジュールである。そのため、ユーザサテライトASP9は、モジュールBやCをダウンロードしてもよいし、しなくてもよい。このような、ASPサーバ3とユーザサテライトASP9のどちらでも実行可能なモジュールのことを、「共用モジュール」とよぶ。
モジュールDは、ASPサーバ3でのみ実行可能なモジュールである。ASPサーバ3において一元的に管理されるべきデータは、モジュールDによって管理される。このようなASPサーバ3でのみ実行可能なモジュールのことを、「サーバ専用モジュール」とよぶ。
なお、ASPサーバ3は単一である必要はなく、複数のASPサーバ3によって、各リモートモジュールが実行されてもよい。モジュールAやDなどは、このデータ処理システム1を実現するにあたって必須の構成要素ではないことも付言しておく。
図4は、ASPサーバの機能ブロック図である。
ここに示す各ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。図5および図12に示す機能ブロック図についても同様である。
ここでは、主として各ブロックの発揮すべき機能について述べ、その具体的な作用については、図6以降に関連して説明する。
ASPサーバ3は、ダウンロード処理部100、データ処理制御部110およびモジュール保持部120を含む。
モジュール保持部120は、各モジュールを保持する。図3の例にしたがえば、モジュール保持部120は、モジュールA〜Dの各データを保持する。ダウンロード処理部100は、ユーザサテライトASP9に対してモジュールのデータを送信するためのダウンロード処理を担当する。データ処理制御部110は、ユーザサテライトASP9からの実行指示に応じたデータ処理を実行する。
ダウンロード処理部100は、ダウンロード要求受信部102、モジュール送信部104および更新情報送信部106を含む。
ダウンロード要求受信部102は、ユーザサテライトASP9からモジュールのダウンロードを要求するためのダウンロード要求情報を受信する。ダウンロード要求情報は、ユーザ端末6を特定するための端末IDと、モジュールを特定するためのモジュールIDが含まれている。モジュール送信部104は、ダウンロード要求情報において指定されたモジュールをモジュール保持部120から読み出し、ユーザサテライトASP9に送信する。更新情報送信部106は、モジュール保持部120におけるモジュールのデータが更新されたときには、その更新された旨を示す更新情報をユーザサテライトASP9に送信する。更新情報には、更新対象となったモジュールのモジュールIDが含まれている。モジュール保持部120のモジュールは、バージョンアップや、バグの修正にともなって適宜更新されてもよい。更新情報送信部106は、このようにモジュールのデータが変更されたときに、更新情報をユーザサテライトASP9に送信する。
データ処理制御部110は、実行指示受信部112、処理結果送信部114および実行部116を含む。
実行指示受信部112は、ユーザサテライトASP9からモジュールによりタスク実行を指示するための処理要求情報を受信する。ユーザサテライトASP9において、ユーザによる操作入力にともなって実行されるべきデータ処理は、1以上のタスクによって構成される。タスクは、各モジュールのメソッド(method)に対するアクセスを単位として定義されてもよい。タスクは、いずれかのモジュールによって実行される。たとえば、ある操作入力によって実行されるべきデータ処理は、モジュールAのメソッド1、モジュールBのメソッド3、モジュールCのメソッド5、モジュールAのメソッド2に対する一連のアクセスによって実現されるかもしれない。モジュール、メソッド、および、メソッドに渡すパラメータの指定に応じて、タスクが実行される。そのため、処理要求情報には、端末ID、アプリケーションを特定するアプリケーションID、タスクの実行主体となるべきモジュールのモジュールIDや、タスク実行のためのメソッド、タスク実行に必要なパラメータなどが含まれる。実行部116は、処理要求情報にしたがって、モジュール保持部120の該当モジュールにタスクを実行させる。処理結果送信部114は、その処理結果を示す処理結果情報をユーザサテライトASP9に送信する。
実行指示受信部112は、ユーザサテライトASP9から連続的に複数の処理要求情報を受信してもよい。また、実行部116は、可能であればこれら複数の処理要求情報による書くタスクを受信順序とは異なる順序にて実行してもよい。
図5は、ユーザサテライトASPの機能ブロック図である。
ユーザサテライトASP9は、ダウンロード処理部130、ユーザインタフェース処理部140、データ処理制御部150およびモジュール保持部170を含む。
ダウンロード処理部130は、ASPサーバ3から所望のモジュールをダウンロードするための処理を担当する。モジュール保持部170は、ダウンロードされたモジュールを保持する。図3の例の場合、ユーザサテライトASP9のモジュール保持部170は、モジュールA、Bの各データを保持しているといえる。ユーザインタフェース処理部140は、ユーザ端末6におけるユーザとのユーザインタフェース処理を担当する。データ処理制御部150は、ユーザからの指示に応じて、各種データ処理を実行する。また、データ処理制御部150は、ダウンロード処理部130、ユーザインタフェース処理部140およびモジュール保持部170の間におけるインタフェースとしての役割も果たす。
ユーザインタフェース処理部140は、入力部142と表示部144を含む。
入力部142は、ユーザからの操作入力を検出する。表示部144は、ユーザに対して各種画面を表示する。
ダウンロード処理部130は、ダウンロード要求送信部132、モジュール受信部134および更新情報受信部136を含む。
ダウンロード要求送信部132は、ASPサーバ3に対してモジュールのダウンロードを要求するためのダウンロード要求情報を送信する。モジュール受信部134は、ASPサーバ3からモジュールのデータをダウンロードする。ダウンロードされたモジュールは、モジュール保持部170に保持される。更新情報受信部136は、ASPサーバ3から更新情報を受信する。
データ処理制御部150は、実行主体選択部152、ローカル実行部154、リモート実行部156、通信状態検出部158、アプリケーション選択部160およびモジュール選択部162を含む。
実行主体選択部152は、入力部142がユーザからの操作入力を検出したときに、その操作入力に応じたデータ処理の実行主体となるべきモジュールを特定する。実行主体選択部152は、ユーザ端末6にインストールされている通常のブラウザのネットワークアクセスをインターセプトすることにより、実行主体となるべきモジュールを特定してもよい。データ処理は1以上のタスクによって構成される。そのため、実行主体として特定されるモジュールは1つである必要はない。たとえば、モジュールAに所定のタスクを実行させたあと、モジュールBに別のタスクを実行させてもよいし、あるいは、これらのタスクは非同期的に実行されてもよい。通信状態検出部158は、ユーザ端末6とASPサーバ3の通信状態を検出する。詳しくは後述するが、実行主体選択部152は、通信状態が好適でないときには、実行主体としてリモートモジュールよりもローカルモジュールを優先的に選択する。
ローカル実行部154は、実行主体選択部152によってローカルモジュールが選択されたときに、モジュール保持部170において該当するモジュールにタスクを実行させる(以下、ローカルモジュールによりタスクを実行させることを「ローカル実行」とよぶ)。リモート実行部156は、実行主体選択部152によってリモートモジュールが選択されたときに、ASPサーバ3に処理要求情報を送信し、ASPサーバ3から処理結果情報を受信する(以下、リモートモジュールによりタスクを実行させることを「リモート実行」とよぶ)。アプリケーション選択部160は、ユーザの選択に応じて、ダウンロード対象となるアプリケーションを選択する。モジュール選択部162は、ユーザの選択に応じて、ダウンロード対象となるモジュールを選択する。詳しくは、図7および図8に関連して後述する。
ユーザサテライトASP9は、OS(オペレーティングシステム)上におけるプラットフォームとして、インストールされる。この、プラットフォームとしてのユーザサテライトASP9上に必要なモジュールなど各種のソフトウェアがインストールされる。これらのモジュールやローカルインストールされるソフトウェアがURLなどの通信アドレスを指定して外部装置にアクセスしようとするときには、ユーザサテライトASP9は、そのURLをインターセプトする。ASPサーバ3のURLが指定されているときには、実行主体選択部152がローカルモジュールかリモートモジュールを選択する。ASPサーバのURLでなければ、OSなどにそのまま処理を移管する。ASPサーバ3は、複数種類あってもよいので、インターセプトすべきURLも複数種類設定されてもよい。
図6は、ユーザサテライトASPにインストールされた路線検索アプリケーションについての路線検索入力画面を示す画面図である。
ここでは、ユーザサテライトASP9において、出発地から目的地までの路線を検索するためのアプリケーションである路線検索ソフトAがインストールされているとする。ここで、ASPサーバ3のURLは、仮に「http://www.ASP-A.com」であるとする。また、このASPサーバ3にインストールされている路線検索ソフトAのアドレスは、仮に、「http://www.ASP-A.com/route」であるとする。アドレス入力領域182において、同図に示すように「http://www.ASP-A.com/route/home.html」が指定されると、ASPサーバ3における路線検索ソフトAが提供する路線検索入力画面180が表示される。なお、本明細書中に示すURLはすべて説明のための仮のアドレスであることを付言しておく。
月指定領域184は、到着日時のうち、月を指定するための領域である。日指定領域186は、日付を指定するための領域であり、時刻指定領域188は時刻を指定するための領域である。出発地指定領域190は、出発地を指定するための領域であり、到着地指定領域192は目的地を指定するための領域である。ユーザは、これらの検索条件を各領域に入力する。
ユーザが路線検索ボタン194をオンすると、指定された条件にて路線検索が実行される。同図に示す検索条件の場合、電車や航空機などの交通機関による「横浜」から「西明石」までの路線情報が画面表示される。このとき、横浜から西明石までの移動に要する時間や費用なども計算される。この路線検索に関わる処理を構成する各タスクの実行主体は、ローカルモジュールであってもよいし、リモートモジュールであってもよい。ユーザが路線検索ボタン194をオンすると、ユーザサテライトASP9の実行主体選択部152は、1以上のタスクの実行主体となるべき各モジュールを特定する。そして、ローカル実行部154によるローカル実行、または、リモート実行部156によるリモート実行がなされ、最終的な処理結果は表示部144によって画面表示されることになる。
実行主体がローカルモジュールとリモートモジュールのいずれであっても、路線検索入力画面180として表示される画面の入力インタフェースに特段の差違はない。ユーザは、路線検索入力画面180において、ローカルモジュールとリモートモジュールのいずれがデータ処理を実行するのかを意識する必要がない。
アドレス入力領域182において、ASPサーバ3のURLが指定されていても、実際のデータ処理はローカルモジュールによって実行されるかもしれない。すなわち、ユーザが実行主体となるモジュールの所在を指定しなくても、ユーザサテライトASP9の実行主体選択部152は、自動的に実行主体を選択する。実行主体選択部152による実行主体の選択ポリシについては、図9等に関連して後に詳述する。
図7は、ユーザサテライトASPにインストールすべきアプリケーションを選択するためのアプリケーション選択画面を示す画面図である。
ユーザはこのアプリケーション選択画面200においてサービスを受けたいアプリケーションを選択することになる。アドレス入力領域202において、同図に示すように「http://www.ASP-A.com/download.htm」が指定されると、アプリケーション選択画面200が表示される。同図によれば、ASPサーバ3は、路線検索ソフトA、地図検索ソフトB、シミュレーションゲームソフトC、書店発注ソフトDおよび数学計算ソフトEの5つのアプリケーションを提供可能であることがわかる。このうち、導入済アプリケーション表示領域204に示す路線検索ソフトAと地図検索ソフトBのモジュールは、ユーザサテライトASP9に既にインストールされている。一方、導入可能アプリケーション表示領域206に示すシミュレーションゲームソフトC、書店発注ソフトDおよび数学計算ソフトEは、ユーザサテライトASP9にインストールされていない。
導入済アプリケーション表示領域204において、ユーザはアンインストール対象のアプリケーションを選択できる。選択後、削除ボタン208がオンされると、そのアプリケーションについてインストールされているローカルモジュールのうち、ユーザサテライトASP9から削除すべきモジュールを選択する画面(図示せず)が表示される。この画面において、ユーザはローカルモジュールの一部をユーザサテライトASP9のモジュール保持部170から削除できる。たとえば、インストール済みの路線検索ソフトAについて端末専用モジュールが削除指示されると、路線検索ソフトAはユーザサテライトASP9から完全にアンインストールされる。このため、次回から路線検索ソフトAは導入可能アプリケーション表示領域206の欄に表示されることになる。
導入可能アプリケーション表示領域206において、ユーザは新規インストールの対象となるアプリケーションを選択できる。選択後、ダウンロードボタン210がオンされると、その選択されたアプリケーションをユーザサテライトASP9にインストールするための入力画面が表示される。この画面については、次の図8に関連して説明する。
図8は、ユーザサテライトASPにインストールすべきモジュールを選択するためのモジュール選択画面を示す画面図である。
ユーザサテライトASP9の表示部144は、アプリケーション選択画面200においてダウンロードボタン210がオンされたときにモジュール選択画面220を表示させる。ユーザは、モジュール選択画面220において、ダウンロード対象のモジュールを選択する。ここでは、アプリケーション選択画面200に示した書店発注ソフトDを新たにダウンロードするときのモジュール選択画面220について説明する。
アドレス表示領域222は、ASPサーバ3において書店発注ソフトDのモジュール選択画面220を表示させるためのURL「http://www.ASP-A.com/bookshop/modules.htm」が表示されている。書店発注ソフトDは、図3に関連して説明したタイプのアプリケーションと同様に、モジュールA〜Dの4つのモジュールによって構成されている。サーバ専用モジュール表示領域224に示すモジュールDは、サーバ専用モジュールであるため、ダウンロード不可である。端末専用モジュール表示領域226に示すモジュールAは、端末専用モジュールであるため、書店発注ソフトDをインストールする場合には、必ず、ダウンロードの対象となる。共用モジュール表示領域228に示すモジュールBとモジュールCは、ASPサーバ3とユーザサテライトASP9のいずれにおいても実行可能な共用モジュールである。ユーザは、ユーザ端末6の処理能力や記憶容量、通信容量などの処理環境に応じて、共用モジュール表示領域228からダウンロードすべき共用モジュールを選択する。
選択後、OKボタン230がオンされると、共用モジュール表示領域228にて選択されたモジュールがASPサーバ3からユーザサテライトASP9にダウンロードされる。一方、キャンセルボタン232がオンされると、ダウンロード処理が実行されることなくアプリケーション選択画面200に戻る。
図9は、第1の実施の形態において、ユーザサテライトASPにおけるデータ処理過程を示すフローチャートである。
ユーザサテライトASP9の入力部142は、路線検索入力画面180などに示した各種入力画面に対するユーザからの入力を検出する(S10)。このとき、ユーザサテライトASP9の実行主体選択部152は、アドレス入力領域182などにおいて指定されているURLが、ASPサーバ3のURLであるかを判定する(S12)。ASPサーバ3のURLが指定されていなければ(S12のN)、通常のデータ処理が実行される(S32)。ここでいう通常のデータ処理とは、ユーザサテライトASP9によりASPサーバ3と協働しない一般的な処理である。一方、ASPサーバ3のURLが指定されていれば(S12のY)、ユーザサテライトASP9の実行主体選択部152は実行対象となるアプリケーションを特定する(S14)。たとえば、図6に関連して説明したように、URLが「http://www.ASP-A.com/route」であれば、路線検索ソフトAが特定される。
実行主体選択部152は、特定されたアプリケーションにおいてデータ処理の実行主体となるモジュールを特定する(S16)。入力にともなってデータ処理が実行される場合、S16からS30に示す各処理は、指定されたデータ処理を構成するすべてのタスクについて実行される。各タスクは、基本的に順番に実行されるとして説明する。
まず、最初のタスクの実行主体が特定されたあと(S16)、ユーザサテライトASP9の通信状態検出部158は、ASPサーバ3との通信が可能な状態にあるかを検出する(S18)。通信可能な状態にあれば(S18のY)、実行主体選択部152はタスクの実行主体として特定されたモジュールがローカルモジュールとして存在するかを判定する(S20)。ローカルモジュールとして保持されていれば(S20のY)、ローカル実行部154は該当するローカルモジュールにタスクをローカル実行させる(S22)。保持されていなければ(S20のN)、リモート実行部156は、ASPサーバ3に処理要求情報を送信することによりタスクをリモート実行させる(S24)。
S24において、ASPサーバ3の実行指示受信部112が、処理要求情報を受信すると、ASPサーバ3の実行部116は該当モジュールによりタスクを実行する。そして、ASPサーバ3の処理結果送信部114は、処理結果情報をユーザサテライトASP9に送信する。ユーザサテライトASP9のリモート実行部156は、この処理結果情報を受信する。こうして、リモートモジュールによりタスクが実行される。
一方、S18において通信可能な状態になければ(S18のN)、ユーザサテライトASP9の実行主体選択部152は実行主体として特定されたモジュールがローカルモジュールとして保持されているか判定する(S26)。保持されていれば(S26のY)、処理はS22に移行してローカル実行される。保持されていなければ(S26のN)、実行待機となる(S28)。この場合、通信可能となるまでタスクの実行が待機されるとしてもよい。あるいは、このタスクの実行順序を後回しにして、別のタスクを先に実行してもよい。通信状態に応じて、リモート実行対象となるタスクとローカル実行対象となるタスクの処理順序を入れ替えることにより、通信可能な状態にないときにはローカル実行を優先できるため、全体としてデータ処理がより効率的に実行されることになる。
S10の操作入力にともなう一連のタスクが実行され、データ処理が完了していなければ(S30のN)、処理はS16に戻り、更にタスクの実行主体が特定される。このとき、たとえば、S28において実行待機とされ、後回しとなっていたリモート実行対象のタスクが再試行されてもよい。データ処理が完了していれば(S30のY)、表示部144はその処理結果を画面表示させる(S34)。こうして、複数のタスクが順次実行されることにより、入力にともなうデータ処理が実行されることになる。
図10は、第1の実施の形態において、ユーザサテライトASPがローカルモジュールを更新する過程を示すシーケンス図である。
ASPサーバ3が保持するモジュールは、バージョンアップなどにより適宜更新される(S40)。このとき、ASPサーバ3の更新情報送信部106は、更新がなされたモジュールのモジュールIDを含む更新情報をユーザサテライトASP9に送信する(S42)。ユーザサテライトASP9の更新情報受信部136は、更新情報を受信し、更新の対象となったモジュールがローカルモジュールとして保持されているかを判定する(S44)。保持されていなければ(S44のN)、ローカルモジュールの更新は実行されない。保持されていれば(S44のY)、ユーザサテライトASP9のダウンロード要求送信部132は、ASPサーバ3に対して更新後のモジュールのダウンロードを要求するためのダウンロード要求情報を送信する(S46)。ASPサーバ3のダウンロード要求受信部102がダウンロード要求情報を受信すると、モジュール送信部104は要求されたモジュールのデータをユーザサテライトASP9に送信する(S48)。ユーザサテライトASP9のモジュール受信部134は、モジュールデータを受信し、モジュール保持部120における該当モジュールをこの新たに受信されたデータにて更新する(S50)。
このようにして、ASPサーバ3におけるモジュールの更新が、ユーザサテライトASP9のモジュールに反映される。
(第2の実施の形態)
図11は、第2の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。
第1の実施の形態と異なり、ASPサーバ3とユーザ端末6を仲介するためのルータ装置4が構成として追加されている。第2の実施の形態においては、ルータ装置4には中継サテライトASP8、ユーザ端末6にはユーザサテライトASP9が導入される。そして、ASPサーバ3、中継サテライトASP8、ユーザサテライトASP9の協働によりアプリケーションが実行される。
アプリケーションを構成するモジュールA〜Dのデータは、ASPサーバ3に保持されている。このうち、ルータ装置4に導入されるソフトウェアである中継サテライトASP8は、モジュールA、B、CをASPサーバ3からダウンロードしている。更に、ユーザサテライトASP9は、中継サテライトASP8が保持するモジュールA、B、Cのうち、モジュールAとモジュールBをダウンロードしている。同図に示す態様においては、基本的に、ユーザサテライトASP9のモジュールA、B、中継サテライトASP8のモジュールC、ASPサーバ3のモジュールDによって、このアプリケーションソフトウェアが実行される。
ここでは、モジュールA〜Dのうち、モジュールAは、ユーザサテライトASP9でのみ実行可能な端末専用モジュールである。モジュールBとCは、ASPサーバ3、中継サテライトASP8、ユーザサテライトASP9のどこでも実行可能な共用モジュールである。また、モジュールDは、ASPサーバ3でのみ実行可能なサーバ専用モジュールである。ASPサーバ3において一元的に管理されるべきデータは、モジュールDによって管理される。
なお、単一のASPサーバ3ではなく、複数のASPサーバ3によって、各モジュールが実行されてもよいことは、第1の実施の形態と同様である。また、単一のルータ装置4ではなく、複数のルータ装置4によって、各モジュールが実行されてもよい。
図12は、中継サテライトASPの機能ブロック図である。
中継サテライトASP8は、ダウンロード処理部240、データ処理制御部260およびモジュール保持部280を含む。
モジュール保持部280は、各モジュールを保持する。図11の例にしたがえば、モジュール保持部280は、モジュールA、B、Cの各データを保持する。ダウンロード処理部240は、ASPサーバ3やユーザサテライトASP9とのモジュールデータの送受信を担当する。データ処理制御部260は、ユーザサテライトASP9からのデータ処理実行要求に応じてデータ処理を実行する。
なお、ここでは、中継サテライトASP8からみて、中継サテライトASP8が保持するモジュールのことを「ローカルモジュール」、中継サテライトASP8の上位にあたるASPサーバ3が保持するモジュールのことを「リモートモジュール」とよぶ。
ダウンロード処理部240は、ダウンロード要求送信部242、ダウンロード要求受信部244、モジュール送信部246、モジュール受信部248、更新情報受信部250および更新情報送信部252を含む。
ダウンロード要求送信部242は、ASPサーバ3に対してダウンロード要求情報を送信する。ダウンロード要求受信部244は、ユーザサテライトASP9からのルータ装置4に対するダウンロード要求情報を受信する。モジュール送信部246は、ユーザサテライトASP9に対してダウンロード要求されたモジュールを送信する。モジュール受信部248は、ASPサーバ3からモジュールを受信する。更新情報受信部250は、ASPサーバ3から更新情報を受信する。更新情報送信部252は、ASPサーバ3から受信された更新情報をユーザサテライトASP9に転送する。
データ処理制御部260は、実行指示受信部262、実行主体選択部264、ローカル実行部268、リモート実行部270、通信状態検出部272および処理結果送信部274を含む。
実行指示受信部262は、ユーザサテライトASP9から処理要求情報を受信する。実行主体選択部264は、この処理要求情報により、タスクの実行主体となるべきモジュールを選択する。ローカル実行部268は、ローカルモジュールが実行主体として選択されたときに、モジュール保持部280のローカルモジュールにタスクを実行させる。リモート実行部270は、リモートモジュールが実行主体として選択されたときに、ASPサーバ3に保持されるリモートモジュールに対して、処理要求情報によって指示されたタスクを実行させ、その処理結果を処理結果情報として受信する。通信状態検出部272は、ルータ装置4とASPサーバ3が通信可能な状態にあるかを検出する。処理結果送信部274は、ローカル実行部268またはリモート実行部270によるタスク実行の結果を処理結果情報としてユーザサテライトASP9に送信する。
なお、第2の実施の形態においても、ASPサーバ3やユーザサテライトASP9の機能ブロックは図4や図5に関連して説明した内容と同様である。
図13は、第2の実施の形態において、中継サテライトASPにおけるデータ処理過程を示すフローチャートである。
ユーザサテライトASP9は、図9に関連して説明したように、ユーザサテライトASP9に保持されるモジュールによってデータ処理が実行可能であれば、ユーザサテライトASP9だけですべての処理を実行することも可能である。一方、ユーザサテライトASP9に保持されているモジュールだけでは、所望のデータ処理が実行できないときには、ルータ装置4に対して適宜処理要求情報が送信される。第2の実施の形態においても、データ処理は、1以上のタスクによって構成される。各タスクは、いずれかのモジュールによって実行される。
中継サテライトASP8の実行指示受信部262は、まず、ユーザサテライトASP9から処理要求情報を受信する(S60)。実行主体選択部264は実行対象のアプリケーションを特定する(S62)。次に、実行主体選択部264は、特定されたアプリケーションにおいて指定されたタスクの実行主体となるモジュールを特定する(S64)。
中継サテライトASP8のリモート実行部270は、ASPサーバ3との通信が可能な状態にあるかを検出する(S66)。通信可能な状態にあれば(S66のY)、実行主体選択部264は実行主体として特定されたモジュールがローカルモジュールとして保持されているかを判定する(S68)。保持されていれば(S68のY)、ローカル実行部268は該当するローカルモジュールにタスクのローカル実行を指示する(S72)。保持されていなければ(S68のN)、リモート実行部270は、ASPサーバ3に処理要求情報を送信することによりリモートモジュールの実行を指示する(S70)。
ここでいうリモート実行の処理過程は、図9のS24に関連して説明した内容と同様である。すなわち、ASPサーバ3の実行指示受信部112は、この処理要求情報を受信すると、実行部116はASPサーバ3の該当モジュールによりタスクを実行する。ASPサーバ3の処理結果送信部114は、処理結果情報を中継サテライトASP8に送信する。中継サテライトASP8のリモート実行部270は、この処理結果情報を受信する。こうして、リモート実行が実現される。
一方、S66において通信可能な状態になければ(S66のN)、実行主体選択部264は実行主体として特定されたモジュールがローカルモジュールとして保持されているか判定する(S74)。保持されていれば(S74のY)、処理はS72に移行する。保持されていなければ(S74のN)、実行待機となる(S76)。
この場合も、通信が回復するまで実行待機としてもよいし、可能であれば、このタスクの実行順序を後回しにしてもよい。処理結果送信部274は、処理結果情報をユーザサテライトASP9に送信する(S80)。
図14は、第2の実施の形態において、中継サテライトASPやユーザサテライトASPがモジュールを更新する過程を示すシーケンス図である。
ASPサーバ3が保持するモジュールが更新されると(S90)、ASPサーバ3の更新情報送信部106は、更新情報を中継サテライトASP8に送信する(S92)。中継サテライトASP8は更新情報を受信すると、更新の対象となったモジュールがローカルモジュールとして保持されているかを判定する(S94)。保持されていなければ(S94のN)、ローカルモジュールの更新は実行されない。保持されていれば(S94のY)、中継サテライトASP8のダウンロード要求受信部244は、ASPサーバ3に対して更新後のモジュールについてのダウンロード要求情報を送信する(S96)。ASPサーバ3のダウンロード要求受信部102が、このダウンロード要求情報を受信すると、モジュール送信部104は要求されたモジュールのデータをモジュール保持部120から読み出して中継サテライトASP8に送信する(S98)。中継サテライトASP8のモジュール受信部248は、このモジュールデータを受信すると、中継サテライトASP8のモジュール保持部280における該当モジュールをこの新たに受信されたデータにて更新する(S100)。
次に、中継サテライトASP8の更新情報送信部252は、S92において受信された更新情報をユーザサテライトASP9に送信する(S102)。以降におけるS104〜S110に示す処理は、図10に関連して説明した内容と同様である。すなわち、更新の対象となるモジュールをユーザサテライトASP9が保持していれば(S104のY)、中継サテライトASP8にその更新後のモジュールのダウンロードを要求する(S106)。ユーザサテライトASP9は、中継サテライトASP8から該当モジュールのデータを受信し(S108)、保持するモジュールデータを更新する(S110)。該当モジュールがなければ(S104のN)、モジュールの更新は実行されない。
以上のような処理過程を経て、ASPサーバ3におけるモジュールの更新が、中継サテライトASP8やユーザサテライトASP9のモジュールに反映される。
以上の実施の形態において、中継サテライトASP8やユーザサテライトASP9は、ASPサーバ3に対する代理(proxy)として機能する。アプリケーション全体としての処理負荷は、ASPサーバ3、ルータ装置4、ユーザ端末6という複数の装置に分散されることになるため、ASPサーバ3の処理負荷を、従来のASPモデルと比べて軽減できる。
図6の路線検索入力画面180に示したように、ユーザはASPサーバ3のURLを指定することにより、ASPサーバ3が提供するアプリケーションとアクセスする。このとき、実際のデータ処理がASPサーバ3やルータ装置4、ユーザ端末6のどこで実行されるかは、中継サテライトASP8やユーザサテライトASP9によって判定される。ユーザは、実行主体の場所を意識せずに、単一の入力画面から複数の装置にアクセスできることになる。
ASPサーバ3のURLによりアプリケーションにアクセスするという手法には、更に有利な点がある。
ここで、仮に、データ処理の実行主体がローカルモジュールであることを示すために、「http://www.localhost/App-2/」といったローカルアドレスをユーザが指定する場合、ユーザ端末Aの処理をユーザ端末Bに引き継ぐ上で不都合を生じる場合がある。
たとえば、ユーザ端末AにはモジュールA、Bが導入され、ユーザ端末BにはモジュールAだけが導入されているとする。ここで、ユーザ端末AにおいてローカルモジュールであるモジュールBを使用するためのマクロプログラムを作成したとする。このマクロプログラムにおいては、ローカルアドレス付きでモジュールBに対するタスクの実行のための関数が作成されることになる。このマクロプログラムをユーザ端末Bで実行する場合、ユーザ端末BにとってモジュールBはローカルモジュールとして存在しないため、プログラムが実行不可となる。
これに対して、上記各実施の形態にて示したユーザサテライトASP9は、ローカル実行かリモート実行かに関わらず、ASPサーバ3のURLによってアプリケーションにアクセスする。そのため、ユーザ端末Aで作成されたマクロプログラムをそのままユーザ端末Bで実行しやすくなる。ASPサーバ3のURLを検出することにより、ユーザサテライトASP9の実行主体選択部152がローカル実行かリモート実行かをユーザサテライトASP9の状態に応じて自動的に選択するからである。
同じ内容のソフトウェアであっても、ユーザ端末6へのローカルインストールを前提としたローカル版のソフトウェアと、ASPサーバ3によるASPとしての提供を前提としたASP版のソフトウェアで、別々のユーザインタフェースが提供されることが多い。たとえば、ローカル版のユーザインタフェースは、ダイアログボックス、メニューバーやツールバーのようなウィジェットを使って提供され、ASP版のユーザインタフェースは、ウェブブラウザとして提供されるといった具合である。このため、同じ内容のソフトウェアでありながら、ユーザは2種類のユーザインタフェースに慣れなくてはならない。
これに対して、上記各実施の形態におけるユーザサテライトASP9は、ローカル実行かリモート実行かに関わらず統一した画面、好ましくは、ウェブブラウザ画面としてユーザインタフェース画面を提供するので、このようなユーザの負担が軽減される。ユーザサテライトASP9は、図6等に示したような画面を表示させる機能を有してもよいし、既存のウェブブラウザに指示して画面表示させてもよい。
ユーザサテライトASP9は、ASPサーバ3のすべてのモジュールをダウンロードする必要がない。さまざまなモジュールのうち、高い応答性が必要であったり、使用頻度が高いモジュールをダウンロードの対象とすることにより、ユーザからみた処理パフォーマンスが向上する。
仮にユーザサテライトASP9から一部のローカルモジュールがアンインストールされても、リモートモジュールによって、アプリケーションの実行を継続できる。
あるアプリケーションに対するアクセスは、URL「http://www.ASP-A.com/app-1」に対するアクセスのみに限定し、このアプリケーションによりアクセス可能なローカルストレージを「d\app-A/data」というフォルダに限定してもよい。いいかえれば、このアプリケーションは、「d\app-A/data」というフォルダにしかアクセス許可されない。このようにローカルとリモートのアクセス可能領域を限定することにより、いわゆるサンドボックス(sandbox)モデルによるセキュリティの向上が可能となる。
従来のASPモデルの場合、通信が切れるとサービスも提供できなくなるという弱点がある。これに対し、上記各実施の形態に示したデータ処理システム1の場合、ローカルモジュールがデータ処理の一部を代行するので、通信が切れたときに即時にサービスが提供できなくなるという事態を回避しやすくなる。このような仕組みは、ユーザ端末がモバイル端末であるときには特に有効である。
従来のASPの場合、クライアントリソースへのアクセスが制限されがちであったが、上記実施の形態に示すデータ処理システム1の場合、クライアントリソースとサーバリソースをより効果的に協働させることができる。
上記各実施の形態においては、ASPサーバ3とユーザサテライトASP9、中継サテライトASP8の各モジュールが協調することによりアプリケーションが実行されるとして示したが、無論、ASPサーバ3においてメインのモジュールが実行されるとしてもよい。たとえば、ユーザ端末6において、ウェブブラウザに対するユーザの操作入力は、そのまま、ASPサーバ3に送信されてもよい。そして、ASPサーバ3は従来のASPと同じように操作入力の内容に応じたデータ処理を実行し、その処理結果を表示させてもよい。
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
なお、請求項に記載の第1の外部装置は、第2の実施の形態におけるASPサーバ3によってその機能が実現される。同様に第2の外部装置は、第2の実施の形態におけるユーザ端末6によってその機能が実現される。
これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
本発明によれば、アプリケーションサービスを提供するサーバの負荷を軽減する技術を提供することができる。

Claims (16)

  1. サーバがサービスを提供するために実行するアプリケーションと同等又は一部の機能を有するアプリケーションをネットワークを介してサーバから取得し、インストールする手段と、
    前記サーバへのリクエストを取得し、前記サーバの代わりに前記アプリケーションを実行する手段と、
    を備えることを特徴とするデータ処理装置。
  2. 前記アプリケーションは、クライアントの端末の内部にインストールされることを特徴とする請求項1に記載のデータ処理装置。
  3. 前記アプリケーションは、クライアントの端末と前記サーバとの間に接続された装置にインストールされることを特徴とする請求項1に記載のデータ処理装置。
  4. アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードするモジュール取得部と、
    ユーザからの操作入力を受け付けるための入力画面を表示させる入力画面表示部と、
    入力画面に対するユーザの操作入力を検出する操作検出部と、
    操作入力に応じたデータ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、
    実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させるローカル実行制御部と、
    実行主体としてリモートモジュールが選択されたとき、前記外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、前記外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、
    ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させる結果表示部と、を備え、
    前記実行主体選択部は、入力画面に対するユーザの操作入力が受け付けられるときに、データ処理の実行主体としてリモートモジュールとローカルモジュールのいずれかを特定するための情報が入力されなくても、ローカルモジュールかリモートモジュールの少なくともいずれかを選択することを特徴とするデータ処理装置。
  5. ローカルモジュールとしてダウンロードの対象となる機能モジュールのうちの少なくとも一部の機能モジュールは、前記外部装置と自装置のいずれにおいても実行可能であることを特徴とする請求項4に記載のデータ処理装置。
  6. 前記入力画面表示部は、前記外部装置に処理要求情報を送信するための画面として入力画面を表示させ、
    前記実行主体選択部は、入力画面を介してその処理要求情報を取得し、その処理要求情報に応じたデータ処理を実行可能なローカルモジュールが存在するときには、そのローカルモジュールを実行主体として選択することを特徴とする請求項4に記載のデータ処理装置。
  7. 前記実行主体選択部は、前記外部装置に対する通信状態がオフラインとなっているときには、実行主体としてローカルモジュールを優先的に選択することを特徴とする請求項4から6のいずれかに記載のデータ処理装置。
  8. 前記入力画面表示部は、リモートモジュールに対する操作入力を受け付けるための入力画面とローカルモジュールに対する操作入力を受け付けるための入力画面を、実質的に同一の入力画面として表示することを特徴とする請求項4から7のいずれかに記載のデータ処理装置。
  9. 実行対象となるべきアプリケーションソフトウェアを選択するためのユーザによる入力を検出するアプリケーション選択部を更に備え、
    前記モジュール取得部は、選択されたアプリケーションソフトウェアに含まれる機能モジュールを前記外部装置からのダウンロード対象とすることを特徴とする請求項4から8のいずれかに記載のデータ処理装置。
  10. アプリケーションソフトウェアに含まれる複数の機能モジュールのうち、ダウンロード対象となる機能モジュールを選択するためのユーザによる入力を検出するモジュール選択部を更に備え、
    前記モジュール取得部は、選択された機能モジュールを前記外部装置からのダウンロード対象とすることを特徴とする請求項4から9のいずれかに記載のデータ処理装置。
  11. 前記外部装置においてリモートモジュールが更新された旨を示す更新情報を受信する更新情報受信部を更に備え、
    前記モジュール取得部は、更新情報の受信を契機として、更新後のリモートモジュールを前記外部装置から新たにダウンロードすることを特徴とする請求項4から10のいずれかに記載のデータ処理装置。
  12. 請求項4から11のいずれかに記載のデータ処理装置と、
    請求項4から11のいずれかに記載の外部装置としてのサーバ装置と、を備え、
    前記サーバ装置は、
    アプリケーションソフトウェアを構成する複数の機能モジュールを保持するモジュール保持部と、
    前記データ処理装置に保持されるべきローカルモジュールとして、それら複数の機能モジュールのうち、少なくとも一部の機能モジュールを前記データ処理装置に送信するモジュール送信部と、
    前記データ処理装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、
    保持されている機能モジュールに指示されたデータ処理を実行させる実行制御部と、
    データ処理の結果を処理結果情報として前記データ処理装置に送信する処理結果送信部と、
    を含むことを特徴とするデータ処理システム。
  13. アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを第1の外部装置からダウンロードするモジュール取得部と、
    第2の外部装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、
    データ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記第1の外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、
    実行主体としてローカルモジュールが選択されたとき、指示されたデータ処理をローカルモジュールに実行させるローカル実行制御部と、
    実行主体としてリモートモジュールが選択されたとき、前記第1の外部装置に対して、指示されたデータ処理の実行を指示するための処理要求情報を送信し、前記第1の外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、
    ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を処理結果情報として前記第2の外部装置に送信する処理結果送信部と、
    を備えることを特徴とするデータ処理中継装置。
  14. アプリケーションソフトウェアの一部の機能を前記第2の外部装置において実行可能とするために、前記第1の外部装置からダウンロードされた機能モジュールのうちの少なくとも一部の機能モジュールを前記第2の外部装置に送信するモジュール送信部を更に備えることを特徴とする請求項13に記載のデータ処理中継装置。
  15. アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードするステップと、
    ユーザからの操作入力を受け付けるための入力画面を表示させるステップと、
    入力画面に対するユーザの操作入力を検出するステップと、
    操作入力に応じたデータ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択するステップと、
    実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させるステップと、
    実行主体としてリモートモジュールが選択されたとき、前記外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、前記外部装置からデータ処理の結果を示す結果情報を受信するステップと、
    ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させるステップと、を備え、
    入力画面に対するユーザの操作入力が受け付けられるときに、データ処理の実行主体としてリモートモジュールとローカルモジュールのいずれかを特定するための情報が入力されなくても、ローカルモジュールかリモートモジュールの少なくともいずれかを選択することを特徴とするデータ処理方法。
  16. アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードする機能と、
    ユーザからの操作入力を受け付けるための入力画面を表示させる機能と、
    入力画面に対するユーザの操作入力を検出する機能と、
    操作入力に応じたデータ処理の実行主体として、実行主体を特定するための情報がユーザにより入力されていなくても、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する機能と、
    実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させる機能と、
    実行主体としてリモートモジュールが選択されたとき、前記外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、前記外部装置からデータ処理の結果を示す結果情報を受信する機能と、
    ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させる機能と、
    をコンピュータに発揮させることを特徴とするデータ処理プログラム。
JP2006545038A 2004-11-12 2005-11-14 データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法 Pending JPWO2006051967A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004329833 2004-11-12
JP2004329833 2004-11-12
PCT/JP2005/020894 WO2006051967A1 (ja) 2004-11-12 2005-11-14 データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法

Publications (1)

Publication Number Publication Date
JPWO2006051967A1 true JPWO2006051967A1 (ja) 2008-05-29

Family

ID=36336632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006545038A Pending JPWO2006051967A1 (ja) 2004-11-12 2005-11-14 データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法

Country Status (3)

Country Link
US (1) US20080005230A1 (ja)
JP (1) JPWO2006051967A1 (ja)
WO (1) WO2006051967A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009139426A1 (ja) * 2008-05-14 2009-11-19 日本電気株式会社 情報処理システムと情報処理方法
US20110066681A1 (en) * 2008-05-14 2011-03-17 Naoki Shiota Client device, control method thereof, program, server device, control method thereof, communication system, and control method thereof
JP5482353B2 (ja) * 2009-07-06 2014-05-07 株式会社リコー 中継機器、中継方法およびプログラム
US20140095695A1 (en) * 2012-09-28 2014-04-03 Ren Wang Cloud aware computing distribution to improve performance and energy for mobile devices
CN106415491B (zh) * 2015-03-20 2020-01-21 华为技术有限公司 一种应用保护方法、服务器以及终端

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0218631A (ja) * 1988-07-06 1990-01-22 Hokuriku Nippon Denki Software Kk リモート保守プログラム管理方式
JPH10177510A (ja) * 1996-12-18 1998-06-30 Casio Comput Co Ltd クライアント・サーバ・システム
US6141759A (en) * 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6446109B2 (en) * 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
JP2000099337A (ja) * 1998-09-21 2000-04-07 Hitachi Information Systems Ltd 分散アプリケーションシステムおよびダウンローディング方法
JP2000112900A (ja) * 1998-09-30 2000-04-21 Toshiba Corp ワークフローシステム
JP2001051839A (ja) * 1999-08-12 2001-02-23 Nippon Telegr & Teleph Corp <Ntt> クライアント・サーバシステム及びその制御方法並びにクライアント端末
US6854009B1 (en) * 1999-12-22 2005-02-08 Tacit Networks, Inc. Networked computer system
AU2001233111A1 (en) * 2000-02-04 2001-08-14 America Online Incorporated Optimized delivery of web application code
JP2001236232A (ja) * 2000-02-25 2001-08-31 Ntt Data Corp Icカードシステム、icカード、icカード処理方法及び記録媒体
US6457047B1 (en) * 2000-05-08 2002-09-24 Verity, Inc. Application caching system and method
JP2002175237A (ja) * 2000-12-05 2002-06-21 Mitsubishi Electric Corp 中継方式及びプログラム中継システム及び中継方法及び中継プログラムを記録したコンピュータで読み取り可能な記録媒体
JP2003316741A (ja) * 2002-04-22 2003-11-07 G & G Pharma Kk 通信プログラム及びそれを記録したコンピュータ読取可能な記録媒体
JP2004280398A (ja) * 2003-03-14 2004-10-07 Toshiba Corp サービス提供側プログラム、利用側プログラム及び方法
JP2005115717A (ja) * 2003-10-09 2005-04-28 Dainippon Printing Co Ltd 情報処理システム及び情報処理方法、並びにサーバ装置等

Also Published As

Publication number Publication date
US20080005230A1 (en) 2008-01-03
WO2006051967A1 (ja) 2006-05-18

Similar Documents

Publication Publication Date Title
US11354080B2 (en) Relay apparatus, information processing apparatus, information processing system, and recording medium storing information processing program
US9081641B2 (en) Communication device, update method, and computer-readable storage medium
JP4698756B2 (ja) ウェブベースアプリケーションのオフライン実行
US9146731B2 (en) Information processing apparatus, relay server, information relay method, non-transitory computer-readable medium storing information relay program, and communication system
JP5448542B2 (ja) 情報処理装置、制御方法、及びプログラム
KR101203280B1 (ko) 주위 장치들에 기초한 장치 동작
US8959434B2 (en) Add-in program for upload, auxiliary program for upload and upload method
JP2004086895A (ja) 任意のネットワーク上のコンポーネントを通信可能にするためのシステムと方法
JP2016038692A (ja) 情報処理装置、ブラウザプログラムおよび情報処理方法
JP5197351B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JPWO2006051967A1 (ja) データ処理装置、データ処理システム、データ処理中継装置およびデータ処理方法
JP2007287162A (ja) 情報処理装置、ドライバ処理方法、プログラム
EP3007470B1 (en) Performance improvement method in instance hosting environment and service system therefor
JP2011175461A (ja) 通信システム及びサーバ及び端末装置及び通信システムの通信方法及びサーバ用プログラム及び端末用プログラム
KR101482149B1 (ko) 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
JP2005352996A (ja) 移動通信端末及びアプリケーション制御方法
JP2007108952A (ja) コンテンツ移動システム及びコンテンツ移動プログラム
JP6158667B2 (ja) サーバ装置、端末装置、通信方法およびコンピュータプログラム
JP6369607B2 (ja) 情報処理装置、ブラウザプログラムおよび情報処理方法
US7937441B2 (en) Data-control device and method of controlling same
EP3229453A1 (en) Image forming device for serving a web service and method thereof
KR20040080421A (ko) 이동 단말간 및 이동 단말과 고정 단말간의 멀티미디어 자원을 공유하여 사용할 수 있게 하는 이동 단말 장치 및 자원 공유 기술
JP3775198B2 (ja) 画像サーバーおよび画像サーバーシステム
JP2008015658A (ja) アプリケーション提供システム及びアプリケーション提供方法
JP2007028184A (ja) 文書登録システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090512

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100309