図面 (/)

この項目の情報は公開日時点(2003年2月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題

解決手段

通信ネットワーク100を介して、配信サーバ10から利用者端末20へアプリケーションを配信する配信システムにおいて、配信サーバ10は、利用者端末20に対してアプリケーションを、当該利用者端末20における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信し、利用者端末20は、配信サーバ10からアプリケーションのプログラムコードと実行データを取得し、取得したプログラムコードを、実行データに示される当該アプリケーションの実行状況に基づいて実行させる手段と、実行中のアプリケーションの実行データを取得して、配信サーバに送信する手段を備えることを特徴とする。

概要

背景

従来のアプリケーション配信システムの一例が、2000年12月、サンマイクロシステム発行ジャバネットワークラウンチングプロトコルアンドエイピイアイスペシフィケーション(ジェイ・エスアール-56)(Sun Microsystems発行、Java(TM) Networking Launching Protocol &API Specification(JSR-56))に記載されている。この種のアプリケーション配信システムは、複数のアプリケーションサーバで集中的に管理し、利用者からの要求に応じて利用者端末へアプリケーションを配信するシステムである。

図11は、従来のアプリケーション配信システムの構成例を示すブロック図である。全体の構成は、アプリケーションを配信する機能を備える配信サーバ40と、利用者端末50−1〜50−nと、配信サーバ40と各利用者端末50−1〜50−nとをネットワークを通して接続するWebサーバ等の情報転送装置60からなる。

配信サーバ40は、利用者の認証を行なう利用者認証部41と、配信するアプリケーションの(最適化する前の)プログラムコードを管理するプログラムコード管理部42と、アプリケーションの設定ファイルデータファイルを各利用者と対応付けて管理する利用者データ管理部43を備える。

各利用者端末50−1〜50−nは、同様の構成を備え、アプリケーションを配信サーバ40から取得し、実行する機能を持つアプリケーション管理部51を備える。

このような構成を有する従来のアプリケーション配信システムは、次のように動作する。図12は配信サーバ40の処理を示すフローチャート図である。この図12を参照して、利用者端末50−1からアプリケーション取得要求受け付けた場合の処理を説明する。

まず、配信サーバ40の利用者認証部41は、利用者端末50−1に含まれるアプリケーション管理部51から、アプリケーション取得要求を示すメッセージを受け付ける(ステップ1201)。このメッセージは、例えば、要求するアプリケーションの名前と、要求元である利用者の身元を証明するユーザ名とパスワード等の認証情報から構成される。

利用者認証部41は、先のメッセージに含まれる認証情報を用いて、利用者の認証を行なう(ステップ1202)。認証が失敗した場合(ステップ1202がNO)は、エラーを返す(ステップ1206)。認証が成功した場合(ステップ1202がYES)は、利用者認証部41は、先のメッセージにより指定されたアプリケーションのプログラムコードを、プログラムコード管理部42から取得する(ステップ1203)。

次に、利用者認証部41は、利用者データ管理部43から、認証した利用者が所有し、かつ、先のメッセージに含まれるアプリケーションに対応する設定ファイルやデータファイルなどの利用者データを取得する(ステップ1204)。

最後に、利用者認証部41は、ステップ1203とステップ1204より得られたプログラムコードと利用者データを一つのアプリケーションとして利用者端末50−1に配信する。

概要

通信ネットワークを介して利用者端末に配信するアプリケーションの、プログラムコード量を削減する。

通信ネットワーク100を介して、配信サーバ10から利用者端末20へアプリケーションを配信する配信システムにおいて、配信サーバ10は、利用者端末20に対してアプリケーションを、当該利用者端末20における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信し、利用者端末20は、配信サーバ10からアプリケーションのプログラムコードと実行データを取得し、取得したプログラムコードを、実行データに示される当該アプリケーションの実行状況に基づいて実行させる手段と、実行中のアプリケーションの実行データを取得して、配信サーバに送信する手段を備えることを特徴とする。

目的

本発明の第1の目的は、上記従来技術の欠点を解決し、利用者端末上で利用される可能性のない冗長な部分を取り除いてアプリケーションを配信することにより、アプリケーション配信時に発生する通信量の削減と、利用者端末で実行されるアプリケーションが消費するメモリ量の削減を実現する配信システム、配信サーバとその配信方法配信プログラムを提供することにある。

本発明の第2の目的は、上記従来技術の欠点を解決し、アプリケーションの利用者端末における実行状況を示す実行データに基づいて、転送するアプリケーションのプログラムコードから、利用者端末上で利用される可能性がない冗長な部分を自動的に取り除いて配信する配信システム、配信サーバとその配信方法、配信プログラムを提供することにある。

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

通信ネットワークを介して、配信サーバから利用者端末アプリケーションを配信する配信システムにおいて、前記配信サーバは、前記利用者端末における前記アプリケーションの実行状況を示す実行データに基づいて、前記アプリケーションのプログラムコードを最適化することにより、前記利用者端末に対して前記アプリケーションを配信することを特徴とする配信システム。

請求項2

前記利用者端末は、前記配信サーバから前記アプリケーションのプログラムコードと実行データを取得し、取得した前記プログラムコードを、前記実行データに示される当該アプリケーションの実行状況に基づいて実行させる実行データ処理部と、実行中の前記アプリケーションの前記実行データを取得して、前記配信サーバに送信するアプリケーション管理部とを備えることを特徴とする請求項1に記載の配信システム。

請求項3

前記配信サーバは、前記アプリケーションの前記利用者端末への配信時には、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信し、前記利用者端末の前記実行データ処理部は、前記配信サーバから配信された前記アプリケーションのプログラムコードを、当該アプリケーションの前記実行データ及び前記利用者データに基づいて実行し、前記利用者端末の前記アプリケーション管理部は、実行中の前記アプリケーションの前記実行データ及び前記利用者データを取得して、前記配信サーバに送信することを特徴とする請求項2に記載の配信システム。

請求項4

前記実行データが、前記アプリケーションの実行中における、プログラムカウンタヒープスタックの情報を含むことを特徴とする請求項1から請求項3のいずれか1つに記載の配信システム。

請求項5

前記実行データが、前記アプリケーションの実行時にメモリ上に生成される、各オブジェクトインスタンス変数の値の情報を含むことを特徴とする請求項1から請求項4のいずれか1つに記載の配信システム。

請求項6

前記配信サーバは、各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理部と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理部と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部を備えることを特徴とする請求項1から請求項5のいずれか1つに記載の配信システム。

請求項7

前記配信サーバの前記コード最適化部は、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、前記コード抽出手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段を備え、前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信することを特徴とする請求項6に記載の配信システム。

請求項8

前記配信サーバは、前記コード最適化部が生成した最適化されたプログラムコードを一時保存するキャッシュ部を備えることを特徴とする請求項6又は請求項7に記載の配信システム。

請求項9

前記利用者端末は、当該利用者端末の情報である利用者端末情報を取得する情報公開部を備え、前記配信サーバは、前記情報公開部が取得した、前記利用者端末の利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析部を備えることを特徴とする請求項1から請求項8のいずれか1つに記載の配信システム。

請求項10

前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記配信サーバの前記情報解析部は、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする請求項9に記載の配信システム。

請求項11

前記配信サーバと前記通信ネットワークとを接続し、前記配信サーバと各前記利用者端末との通信中継する情報転送装置を備えることを特徴とする請求項1から請求項10のいずれか1つに記載の配信システム。

請求項12

前記通信ネットワークをインターネットとし、前記情報転送装置は、ウェブサーバの機能を備え、前記配信サーバとの間でサーブレットを用いて通信することを特徴とする請求項11に記載の配信システム。

請求項13

通信ネットワークを介して、利用者端末へアプリケーションを配信する配信サーバにおいて、前記利用者端末に対して前記アプリケーションを、当該利用者端末における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信することを特徴とする配信サーバ。

請求項14

前記アプリケーションの前記利用者端末への配信時に、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する手段と、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して登録する手段を備えることを特徴とする請求項13に記載の配信サーバ。

請求項15

各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理部と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理部と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部を備えることを特徴とする請求項13又は請求項14に記載の配信サーバ。

請求項16

前記コード最適化部は、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の前記利用端末における前記実行データに基づいて、配信先の前記利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段を備えることを特徴とする請求項15に記載の配信サーバ。

請求項17

前記コード最適化部は、前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段を備えることを特徴とする請求項16に記載の配信サーバ。

請求項18

前記コード最適化部は、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、前記コード抽出手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段を備え、前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信することを特徴とする請求項15に記載の配信サーバ。

請求項19

前記コード最適化部が生成した最適化されたプログラムコードを一時保存するキャッシュ部を備えることを特徴とする請求項15から請求項18のいずれか1つに記載の配信サーバ。

請求項20

前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析部を備えることを特徴とする請求項13から請求項19のいずれか1つに記載の配信サーバ。

請求項21

前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析部は、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする請求項20に記載の配信サーバ。

請求項22

通信ネットワークを介して、配信サーバからのアプリケーションの配信を受け付けて実行する端末装置において、実行中の前記アプリケーションの実行状況を示す実行データを取得して、前記配信サーバに送信するアプリケーション管理部と、前記配信サーバから、前記アプリケーションのプログラムコードと、当該アプリケーションの前記実行データを取得し、取得した前記プログラムコードを、前記実行データに示される当該アプリケーションの実行状況に基づいて実行させる実行データ処理部を備えることを特徴とする端末装置。

請求項23

前記配信サーバからの前記アプリケーションの配信時には、当該アプリケーションのプログラムコードと、当該端末装置における当該アプリケーションの実行データと、当該端末装置において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて受信し、前記アプリケーション管理部は、前記配信サーバから配信された前記アプリケーションのプログラムコードを、当該アプリケーションの前記実行データ及び前記利用者データに基づいて実行させ、前記実行データ処理部は、実行中の前記アプリケーションの前記実行データ及び前記利用者データを取得して、前記配信サーバに送信することを特徴とする請求項22に記載の端末装置。

請求項24

当該端末装置の情報である利用者端末情報を取得する情報公開部を備え、前記情報公開部が取得した当該端末装置の前記利用者端末情報を、前記配信サーバに送信することを特徴とする請求項22又は請求項23に記載の端末装置。

請求項25

通信ネットワークを介して、利用者端末へアプリケーションを配信する配信方法において、前記利用者端末に対して前記アプリケーションを、当該利用者端末における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信することを特徴とする配信方法。

請求項26

前記アプリケーションの前記利用者端末への配信時に、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信するステップと、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して登録するステップを備えることを特徴とする請求項25に記載の配信方法。

請求項27

各前記利用者端末の利用者を認証する利用者認証ステップと、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理ステップと、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理ステップと、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理ステップと、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化ステップを備えることを特徴とする請求項25又は請求項26に記載の配信方法。

請求項28

前記コード最適化ステップにおいて、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出ステップと、前記コード抽出ステップが生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮ステップを備え、前記コード圧縮ステップにおいて生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信することを特徴とする請求項27に記載の配信方法。

請求項29

前記コード最適化ステップにおいて生成した最適化されたプログラムコードを一時保存するキャッシュステップを備えることを特徴とする請求項27又は請求項28に記載の配信方法。

請求項30

前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析ステップを備えることを特徴とする請求項25から請求項29のいずれか1つに記載の配信方法。

請求項31

前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析ステップにおいて、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする請求項30に記載の配信方法。

請求項32

コンピュータを制御することにより、通信ネットワークを介して利用者端末へアプリケーションを配信する配信プログラムにおいて、前記利用者端末に対して前記アプリケーションを、当該利用者端末における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信することを特徴とする配信プログラム。

請求項33

前記アプリケーションの前記利用者端末への配信時に、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する処理と、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して登録する処理を実行させることを特徴とする請求項32に記載の配信プログラム。

請求項34

各前記利用者端末の利用者を認証する利用者認証処理と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理処理と、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理処理と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理処理と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化処理を実行させることを特徴とする請求項32又は請求項33に記載の配信プログラム。

請求項35

前記コード最適化処理において、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出処理と、前記コード抽出処理が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮処理と、前記コード圧縮処理において生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信する処理を実行させることを特徴とする請求項34に記載の配信プログラム。

請求項36

前記コード最適化処理において生成した最適化されたプログラムコードを一時保存するキャッシュ処理を実行させることを特徴とする請求項34又は請求項35に記載の配信プログラム。

請求項37

前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析処理を実行させることを特徴とする請求項32から請求項36のいずれか1つに記載の配信プログラム。

請求項38

前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析処理において、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除する処理を実行させることを特徴とする請求項37に記載の配信プログラム。

技術分野

0001

本発明は、通信ネットワークを介した配信に関し、特に、利用者からの要求に応じて利用者端末アプリケーションを配信する配信システム配信サーバとその配信方法配信プログラムに関する。

背景技術

0002

従来のアプリケーション配信システムの一例が、2000年12月、サンマイクロシステム発行ジャバネットワークラウンチングプロトコルアンドエイピイアイスペシフィケーション(ジェイ・エスアール-56)(Sun Microsystems発行、Java(TM) Networking Launching Protocol &API Specification(JSR-56))に記載されている。この種のアプリケーション配信システムは、複数のアプリケーションをサーバで集中的に管理し、利用者からの要求に応じて利用者端末へアプリケーションを配信するシステムである。

0003

図11は、従来のアプリケーション配信システムの構成例を示すブロック図である。全体の構成は、アプリケーションを配信する機能を備える配信サーバ40と、利用者端末50−1〜50−nと、配信サーバ40と各利用者端末50−1〜50−nとをネットワークを通して接続するWebサーバ等の情報転送装置60からなる。

0004

配信サーバ40は、利用者の認証を行なう利用者認証部41と、配信するアプリケーションの(最適化する前の)プログラムコードを管理するプログラムコード管理部42と、アプリケーションの設定ファイルデータファイルを各利用者と対応付けて管理する利用者データ管理部43を備える。

0005

各利用者端末50−1〜50−nは、同様の構成を備え、アプリケーションを配信サーバ40から取得し、実行する機能を持つアプリケーション管理部51を備える。

0006

このような構成を有する従来のアプリケーション配信システムは、次のように動作する。図12は配信サーバ40の処理を示すフローチャート図である。この図12を参照して、利用者端末50−1からアプリケーション取得要求受け付けた場合の処理を説明する。

0007

まず、配信サーバ40の利用者認証部41は、利用者端末50−1に含まれるアプリケーション管理部51から、アプリケーション取得要求を示すメッセージを受け付ける(ステップ1201)。このメッセージは、例えば、要求するアプリケーションの名前と、要求元である利用者の身元を証明するユーザ名とパスワード等の認証情報から構成される。

0008

利用者認証部41は、先のメッセージに含まれる認証情報を用いて、利用者の認証を行なう(ステップ1202)。認証が失敗した場合(ステップ1202がNO)は、エラーを返す(ステップ1206)。認証が成功した場合(ステップ1202がYES)は、利用者認証部41は、先のメッセージにより指定されたアプリケーションのプログラムコードを、プログラムコード管理部42から取得する(ステップ1203)。

0009

次に、利用者認証部41は、利用者データ管理部43から、認証した利用者が所有し、かつ、先のメッセージに含まれるアプリケーションに対応する設定ファイルやデータファイルなどの利用者データを取得する(ステップ1204)。

0010

最後に、利用者認証部41は、ステップ1203とステップ1204より得られたプログラムコードと利用者データを一つのアプリケーションとして利用者端末50−1に配信する。

発明が解決しようとする課題

0011

しかし、従来の技術では、アプリケーションを構成するプログラムコードを、そのまま利用者端末へ転送する方式であり、このため、プログラムコードに含まれる利用者端末上で利用されることのないコードも同様に転送されることになり、その分の通信トラフィックが無駄に浪費されるという問題点がある。

0012

本発明の第1の目的は、上記従来技術の欠点を解決し、利用者端末上で利用される可能性のない冗長な部分を取り除いてアプリケーションを配信することにより、アプリケーション配信時に発生する通信量の削減と、利用者端末で実行されるアプリケーションが消費するメモリ量の削減を実現する配信システム、配信サーバとその配信方法、配信プログラムを提供することにある。

0013

本発明の第2の目的は、上記従来技術の欠点を解決し、アプリケーションの利用者端末における実行状況を示す実行データに基づいて、転送するアプリケーションのプログラムコードから、利用者端末上で利用される可能性がない冗長な部分を自動的に取り除いて配信する配信システム、配信サーバとその配信方法、配信プログラムを提供することにある。

課題を解決するための手段

0014

上記目的を達成するため本発明の配信システムは、通信ネットワークを介して、配信サーバから利用者端末へアプリケーションを配信する配信システムにおいて、前記配信サーバは、前記利用者端末における前記アプリケーションの実行状況を示す実行データに基づいて、前記アプリケーションのプログラムコードを最適化することにより、前記利用者端末に対して前記アプリケーションを配信することを特徴とする。

0015

請求項2の本発明の配信システムは、前記利用者端末は、前記配信サーバから前記アプリケーションのプログラムコードと実行データを取得し、取得した前記プログラムコードを、前記実行データに示される当該アプリケーションの実行状況に基づいて実行させる実行データ処理部と、実行中の前記アプリケーションの前記実行データを取得して、前記配信サーバに送信するアプリケーション管理部とを備えることを特徴とする。

0016

請求項3の本発明の配信システムは、前記配信サーバは、前記アプリケーションの前記利用者端末への配信時には、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信し、前記利用者端末の前記実行データ処理部は、前記配信サーバから配信された前記アプリケーションのプログラムコードを、当該アプリケーションの前記実行データ及び前記利用者データに基づいて実行し、前記利用者端末の前記アプリケーション管理部は、実行中の前記アプリケーションの前記実行データ及び前記利用者データを取得して、前記配信サーバに送信することを特徴とする。

0017

請求項4の本発明の配信システムは、前記実行データが、前記アプリケーションの実行中における、プログラムカウンタヒープスタックの情報を含むことを特徴とする。

0018

請求項5の本発明の配信システムは、前記実行データが、前記アプリケーションの実行時にメモリ上に生成される、各オブジェクトインスタンス変数の値の情報を含むことを特徴とする。

0019

請求項6の本発明の配信システムは、前記配信サーバは、各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理部と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理部と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部を備えることを特徴とする。

0020

請求項7の本発明の配信システムは、前記配信サーバの前記コード最適化部は、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、前記コード抽出手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段を備え、前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信することを特徴とする。

0021

請求項8の本発明の配信システムは、前記配信サーバは、前記コード最適化部が生成した最適化されたプログラムコードを一時保存するキャッシュ部を備えることを特徴とする。

0022

請求項9の本発明の配信システムは、前記利用者端末は、当該利用者端末の情報である利用者端末情報を取得する情報公開部を備え、前記配信サーバは、前記情報公開部が取得した、前記利用者端末の利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析部を備えることを特徴とする。

0023

請求項10の本発明の配信システムは、前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記配信サーバの前記情報解析部は、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする。

0024

請求項11の本発明の配信システムは、前記配信サーバと前記通信ネットワークとを接続し、前記配信サーバと各前記利用者端末との通信を中継する情報転送装置を備えることを特徴とする。

0025

請求項12の本発明の配信システムは、前記通信ネットワークをインターネットとし、前記情報転送装置は、ウェブサーバの機能を備え、前記配信サーバとの間でサーブレットを用いて通信することを特徴とする。

0026

請求項13の本発明の配信サーバは、通信ネットワークを介して、利用者端末へアプリケーションを配信する配信サーバにおいて、前記利用者端末に対して前記アプリケーションを、当該利用者端末における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信することを特徴とする。

0027

請求項14の本発明の配信サーバは、前記アプリケーションの前記利用者端末への配信時に、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する手段と、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して登録する手段を備えることを特徴とする。

0028

請求項15の本発明の配信サーバは、各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理部と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理部と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部を備えることを特徴とする。

0029

請求項16の本発明の配信サーバは、前記コード最適化部は、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の前記利用端末における前記実行データに基づいて、配信先の前記利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段を備えることを特徴とする。

0030

請求項17の本発明の配信サーバは、前記コード最適化部は、前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段を備えることを特徴とする。

0031

請求項18の本発明の配信サーバは、前記コード最適化部は、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、前記コード抽出手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段を備え、前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信することを特徴とする。

0032

請求項19の本発明の配信サーバは、前記コード最適化部が生成した最適化されたプログラムコードを一時保存するキャッシュ部を備えることを特徴とする。

0033

請求項20の本発明の配信サーバは、前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析部を備えることを特徴とする。

0034

請求項21の本発明の配信サーバは、前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析部は、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする。

0035

請求項22の本発明の端末装置は、通信ネットワークを介して、配信サーバからのアプリケーションの配信を受け付けて実行する端末装置において、実行中の前記アプリケーションの実行状況を示す実行データを取得して、前記配信サーバに送信するアプリケーション管理部と、前記配信サーバから、前記アプリケーションのプログラムコードと、当該アプリケーションの前記実行データを取得し、取得した前記プログラムコードを、前記実行データに示される当該アプリケーションの実行状況に基づいて実行させる実行データ処理部を備えることを特徴とする。

0036

請求項23の本発明の端末装置は、前記配信サーバからの前記アプリケーションの配信時には、当該アプリケーションのプログラムコードと、当該端末装置における当該アプリケーションの実行データと、当該端末装置において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて受信し、前記アプリケーション管理部は、前記配信サーバから配信された前記アプリケーションのプログラムコードを、当該アプリケーションの前記実行データ及び前記利用者データに基づいて実行させ、前記実行データ処理部は、実行中の前記アプリケーションの前記実行データ及び前記利用者データを取得して、前記配信サーバに送信することを特徴とする。

0037

請求項24の本発明の端末装置は、当該端末装置の情報である利用者端末情報を取得する情報公開部を備え、前記情報公開部が取得した当該端末装置の前記利用者端末情報を、前記配信サーバに送信することを特徴とする。

0038

請求項25の本発明の配信方法は、通信ネットワークを介して、利用者端末へアプリケーションを配信する配信方法において、前記利用者端末に対して前記アプリケーションを、当該利用者端末における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信することを特徴とする。

0039

請求項26の本発明の配信方法は、前記アプリケーションの前記利用者端末への配信時に、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信するステップと、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して登録するステップを備えることを特徴とする。

0040

請求項27の本発明の配信方法は、各前記利用者端末の利用者を認証する利用者認証ステップと、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理ステップと、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理ステップと、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理ステップと、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化ステップを備えることを特徴とする。

0041

請求項28の本発明の配信方法は、前記コード最適化ステップにおいて、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出ステップと、前記コード抽出ステップが生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮ステップを備え、前記コード圧縮ステップにおいて生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信することを特徴とする。

0042

請求項29の本発明の配信方法は、前記コード最適化ステップにおいて生成した最適化されたプログラムコードを一時保存するキャッシュステップを備えることを特徴とする。

0043

請求項30の本発明の配信方法は、前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析ステップを備えることを特徴とする。

0044

請求項31の本発明の配信方法は、前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析ステップにおいて、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする。

0045

請求項32の本発明の配信プログラムは、コンピュータを制御することにより、通信ネットワークを介して利用者端末へアプリケーションを配信する配信プログラムにおいて、前記利用者端末に対して前記アプリケーションを、当該利用者端末における当該アプリケーションの実行状況を示す実行データに基づいて、当該アプリケーションのプログラムコードを最適化して配信することを特徴とする。

0046

請求項33の本発明の配信プログラムは、前記アプリケーションの前記利用者端末への配信時に、当該アプリケーションのプログラムコードと、当該利用者端末における当該アプリケーションの実行データと、当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する処理と、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して登録する処理を実行させることを特徴とする。

0047

請求項34の本発明の配信プログラムは、各前記利用者端末の利用者を認証する利用者認証処理と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理処理と、各前記利用者端末における前記アプリケーションの実行データを管理する実行データ管理処理と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理処理と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化処理を実行させることを特徴とする。

0048

請求項35の本発明の配信プログラムは、前記コード最適化処理において、前記アプリケーションのプログラムコードから、当該アプリケーションの配信先の利用端末における前記実行データに基づいて、配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出処理と、前記コード抽出処理が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮処理と、前記コード圧縮処理において生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして、配信先の利用者端末に送信する処理を実行させることを特徴とする。

0049

請求項36の本発明の配信プログラムは、前記コード最適化処理において生成した最適化されたプログラムコードを一時保存するキャッシュ処理を実行させることを特徴とする。

0050

請求項37の本発明の配信プログラムは、前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析処理を実行させることを特徴とする。

0051

請求項38の本発明の配信プログラムは、前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析処理において、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除する処理を実行させることを特徴とする。

発明を実施するための最良の形態

0052

以下、本発明の実施の形態について図面を参照して詳細に説明する。

0053

図1は、本発明の第1の実施の形態による配信システムの構成を示すブロック図である。図1を参照すると本実施の形態の配信システムは、コード最適化を行ないアプリケーションを配信する機能を備える配信サーバ10と、各利用者が用いる端末装置である利用者端末20−1〜20−nとが、通信ネットワーク100を介して接続している。

0054

また、配信サーバ10は、通信ネットワーク100との接続のために情報転送装置30を用いている。情報転送装置30は、ウェブサーバ等の機能を備えることにより、利用者端末20−1〜20−nからの通信ネットワーク100を介した接続を受け付ける。また、通信ネットワーク100の種類は、特に限定する必要は無く、例えば、インターネットやLAN等のネットワークを用いることができる。又、利用者端末の台数nも特に限定する必要は無く、任意の台数としてよい。

0055

各利用者端末20−1〜20−nは、それぞれ同様の構成であり、配信サーバ10からアプリケーションを取得するアプリケーション管理部21と、アプリケーションの処理を実行させる実行データ処理部22を備える。実行データ処理部22は、配信サーバ10から取得したプログラムコードと、そのアプリケーションの当該利用者端末における実行状況を示す実行データとに基づいて、取得したプログラムの処理を再開させるのである。

0056

アプリケーション管理部21は、情報転送装置30を介して、配信サーバ10から、要求するアプリケーションを取得する。ここで本実施の形態の配信サーバ10が配信するアプリケーションは、例えば、最適化されたプログラムコードと、利用者データと、実行データ等により構成される。

0057

アプリケーション管理部21は、配信サーバ10から取得した最適化されたプログラムコードと実行データを実行データ処理部22に渡し、そのアプリケーションの計算を再開させる。また、アプリケーション管理部21は、実行データ処理部22から最新の実行データを取得して、利用者データと実行データを配信サーバ10の利用者認証部11へ転送し、配信サーバ10内に利用者データと実行データを保存させる。

0058

ここで、実行データは、アプリケーションの当該利用者端末における実行状況を示すデータとして、様々な情報を基に構成することができる。例えば、アプリケーションの実行中(の定められた時点)における、プログラムカウンタ、ヒープ、スタックの情報を用いて構成することや、アプリケーションの実行時にメモリ上に生成される全ての(又は、指定された一部の)オブジェクトのインスタンス変数の値を用いて構成すること等ができる。

0059

利用者データは、例えば、アプリケーションの設定ファイルや、文書データや画像データのようなデータファイル等である。利用者データは、この例の様に、アプリケーションがハードディスク等の不揮発性記憶媒体に書き込むデータである。利用者データは、一般に、アプリケーションの利用者毎に存在し、利用者が所有する。

0060

実行データ処理部22は、アプリケーション管理部21から、最適化されたプログラムコードと実行データを取得すると、その最適化されたプログラムコードと実行データを用いて、アプリケーションの計算を再開させる。アプリケーションは、必要に応じてアプリケーション管理部21から、利用者データを取得して処理を実行する。また、実行データ処理部22は、実行中のアプリケーションの実行データをそのアプリケーションから取得して、取得した実行データをアプリケーション管理部21に渡す。

0061

配信サーバ10は、プログラム制御されるCPU等で実現され、利用者の認証を行なう利用者認証部11と、配信するアプリケーションを管理するプログラムコード管理部12と、アプリケーションの設定ファイルやデータファイルを管理する利用者データ管理部13と、コードの最適化を行なうコード最適化部14と、アプリケーション・プログラムの計算の実行状況を示す情報を保存した実行データを管理する実行データ管理部15を備えている。

0062

利用者認証部11は、利用者を認証する機能を備える。利用者認証部11は、情報転送装置30を経由してアプリケーション管理部21からアプリケーション転送要求を受け付け、コード最適化部14から最適化されたプログラムコードを取得し、実行データ管理部15から実行データを取得し、利用者データ管理部13から利用者データを取得し、最適化されたプログラムコードと実行データと利用者データを一つのアプリケーションとしてアプリケーション管理部21に転送する。

0063

プログラムコード管理部12は、プログラムコードを、例えばアプリケーションの名前などと対応付けて管理する。コード最適化部14が、プログラムの名前を指定して、プログラムコード管理部12にプログラムコードを要求すると、プログラムコード管理部12は指定されたプログラムコードを返す。

0064

利用者データ管理部13は、プログラムコード管理部12が管理しているプログラムが利用する利用者データを、利用者の名前とアプリケーションの名前の対などと対応づけて管理する。利用者認証部11が各利用者端末20−i(i=1,…,n)の利用者を認証し、認証した利用者の名前と各利用者端末20−i(i=1,…,n)から要求されたアプリケーションの名前を用いて、利用者データ管理部13に利用者データを要求すると、利用者データ管理部13は指定された利用者データを返す。

0065

実行データ管理部15は、利用者端末20−1〜20−n上で作動していたアプリケーション・プログラムの計算の実行状況を示す情報を保存する実行データを管理する。実行データは、例えば、利用者の名前とアプリケーションの名前の対などと対応づけて管理される。

0066

実行データ管理部15は、コード最適化部14、又は利用者認証部11から、利用者の名前と利用者端末20−i(i=1,…,n)から要求されたアプリケーションの名前を用いて要求を受けると、指定された実行データを返す。尚、実行データは、利用者端末20−i(i=1,…,n)上で動作するアプリケーションの処理終了時に、実行データ処理部22によって作成され、作成された実行データは同じ利用者端末20−iのアプリケーション管理部21に渡され、アプリケーション管理部21は、実行データを、利用者認証部11経由で、実行データ管理部15に転送し、最終的に、実行データ管理部15によって保存される。

0067

コード最適化部14は、プログラムコードと実行データから、最適化されたプログラムコードを生成する機能を備える。コード最適化部14は、利用者認証部11から、認証した利用者の名前と利用者端末20−i(i=1...n)から要求されたアプリケーションの名前を受け取る。次に、コード最適化部14は、プログラムコード管理部12から要求されたアプリケーションの名前を用いてプログラムコードを取得し、実行データ管理部15から、認証した利用者の名前と要求されたアプリケーションの名前を用いて、実行データを取得する。次に、コード最適化部14は、実行データを用いてプログラムコードの最適化を行ない、最適化されたプログラムコードを利用者認証部11に返す。

0068

コード最適化部14について、更に詳細に構成を説明する。図2は、本実施の形態による配信サーバ10の構成の一例を示すブロック図であり、図2に示されるように本実施の形態のコード最適化部14は、コード圧縮部141と、コード抽出部142を備えている。

0069

コード抽出部142は、実行データを用いてプログラムコードから不必要な部分を取り除く機能を備える。利用者認証部11は、認証した利用者の名前と要求されたアプリケーションの名前を用いて、コード抽出部142に最適化コードの生成を要求する。コード抽出部142は、プログラムコード管理部12から要求されたアプリケーションの名前を用いてプログラムコードを取得し、実行データ管理部15から、認証した利用者の名前と要求されたアプリケーションの名前を用いて、実行データを取得する。コード抽出部142は、プログラムコードを解析し、実行データを利用して、前記実行データとプログラムコードを用いてアプリケーションの計算を再開した場合に実行されることが無い部分を特定し、実行される可能性のあるコードのみを含んだプログラムコードを新しく生成する。生成されたコードはコード圧縮部141に渡される。

0070

コード抽出部142は、実行データからプログラムコードを再開した場合に実行されることが無い部分を特定するために、例えば、実行データに示される特定のプログラムカウンタから、静的解析を行ない、関数呼び出しの木を作成し、実行データから制御文の条件が真かかがわかる場合、関数呼び出しの木から呼び出されない部分木切取り、最終的に得られた木から、利用されないフィールドや、関数オブジェクト指向言語であれば、クラス等を判別する方法を利用することができる。

0071

コード圧縮部141は、プログラムコードを圧縮する機能を備える。コード圧縮部141は、コード抽出部142からコード抽出処理のされたプログラムコードを受け取ると、受け取ったプログラムコードから圧縮したプログラムコードを新しく生成し、生成したプログラムコードを利用者認証部11に渡す。

0072

コード圧縮部141は、コードを圧縮するために、例えば、オブジェクト指向言語の場合、クラスやメソッドの名前を短くしたり、プログラムの元の意図を保持しつつ、クラス階層の変形や、クラスの融合等によりクラスの数を減らす、等の方法を利用することができる。

0073

通信ネットワーク100をインターネットとし、情報転送装置30がウェブサーバの機能を備える場合においては、各利用者端末のアプリケーション管理部21と情報転送装置30の間の通信は、例えば1999年6月、アール・エフ・シー2616、ハイパーテキストトランスファー・プロトコル--エイチ・ティ・ティ・ピィ/1.1(RFC2616, Hypertext Transfer Protocol--HTTP/1.1)記載の、エイチ・ティ・ ティ・ピィ(HTTP)を用いることで容易に実現できる。更にこの場合における、情報転送装置30と配信サーバ10の間の通信は、例えばWebサーバと、1999年12月、サン・マイクロシステムズ発行、ジャバ・サーブレット・スペシフィケーション、v2.2(Sun Microsystems発行、Java Servlet Specification, v2.2)に記載のサーブレット(Servlet)を利用することで容易に実現できる。

0074

次に、図3〜6のフローチャートと、図7データ構造を参照して第1の実施の形態の全体の動作について詳細に説明する。

0075

図3は、配信サーバ10が、利用者端末20−i(i=1...n)からアプリケーション取得要求を受け付け、最適化されたプログラムコードを含むアプリケーションを返すまでの処理の流れを示すフローチャートである。

0076

図4は、図3のステップ303における最適化されたプログラムコードの取得処理をより詳細に表したフローチャートであり、コード最適化部14がプログラムコードの最適化を行なう処理の流れを示す。

0077

図5は、利用者端末20−1〜20−nが、配信サーバ10からアプリケーションを取得して、アプリケーションを実行し、利用者データと実行データを配信サーバ10に転送するまでの処理の流れを示すフローチャートである。

0078

図6は、配信サーバ10が、利用者端末20−iから利用者データと実行データの保存要求を受け付け、データを格納する処理の流れを示すフローチャートである。

0079

図7は、配信サーバ10から利用者端末20−1〜20−nに転送されるアプリケーション80のデータ構成の一例を示す図であり、アプリケーション80はプログラムコード81と、実行データ82と、利用者データ83を含む。以後、アプリケーション80には、これらの情報を含むこととして説明する。

0080

まず、アプリケーション管理部21は、利用者端末20−iを利用するユーザからの要求があると、アプリケーション取得要求を配信サーバ10に送信する(図5、ステップ501)。アプリケーション管理部21は、利用者端末20−iを利用するユーザが設定するなどして、情報転送装置30が解釈する配信サーバ10の場所の情報を保持しているものとする。配信サーバ10の場所は、具体的には、例えば、ユニフォームリソースロケータ(Uniform Resource Locator; URL)を利用する。アプリケーション取得要求としてアプリケーション管理部21から配信サーバ10に送信する情報は、必ず、取得対象のアプリケーションの名前と、利用者端末20−iを利用しているユーザの身元を明らかにする認証情報を含む。認証情報は、例えば、ユーザ名とパスワードを利用する。

0081

配信サーバ10内の利用者認証部11は、アプリケーション管理部21からのアプリケーション取得要求を受け付ける(図3、ステップ301)。利用者認証部11は、アプリケーション取得要求に含まれる利用者端末20−iの利用者の認証情報と、アプリケーション管理部21が内部に保持する認証データベースを用いて、利用者端末20−iの利用者を認証する(図3、ステップ302)。認証に失敗した場合(図3、ステップ302がNO)、アプリケーション管理部21は、利用者端末20−iのアプリケーション管理部21にエラーを返す(図3、ステップ307)。認証に成功した場合(図3、ステップ302がYES)、利用者認証部11は、コード最適化部14から要求されたアプリケーションの最適化されたプログラムコードを取得する(図3、ステップ303)。

0082

図3のステップ303の処理を詳しく説明すると、次のようになる。コード最適化部14内のコート抽出部142は、利用者認証部11から、コード最適化要求を受け付ける(図4、ステップ401)。コード最適化要求は、アプリケーションの名前と、図3のステップ302の認証によって得られたユーザの情報を含む。前記ユーザの情報とは、例えばユーザの名前や、ユーザに対して一意割り当てられた識別子等を利用する。利用者データ管理部13と実行データ管理部15は、ユーザの情報、及びアプリケーションの名前と対応付けてデータ管理を行なう。本実施例では、ユーザの情報としてユーザの名前を利用する。次に、コート抽出部142は、コード最適化要求に含まれる、アプリケーションの名前を用いて、プログラムコード管理部12から、プログラムコードを取得する(図4、ステップ402)。次に、コート抽出部142は、コード最適化要求に含まれるアプリケーションの名前とユーザの名前を用いて、実行データ管理部15から実行データを取得する(図4、ステップ403)。コート抽出部142は、実行データとプログラムコードを用いてアプリケーションの計算を再開した場合に実行されることが無い部分を特定し、実行される可能性のあるコードのみを含んだプログラムコードを新しく生成する(図4、ステップ404)。コート抽出部142が新しく生成したプログラムコードは、コード圧縮部141に送られ、コード圧縮部141は送られてきたプログラムコードから、例えば、クラスの融合などを用いて、圧縮された新しいプログラムコードを生成する(図4、ステップ405)。最後に、コード圧縮部141は、抽出、及び、圧縮された、最適化されたプログラムコードを利用者認証部11に返す(図4、ステップ406)。

0083

利用者認証部11は、前述の処理により、最適化されたプログラムコードを取得すると、次に、要求されたアプリケーションの名前と認証したユーザの名前を用いて、利用者データ管理部13から、利用者データを取得する(図3、ステップ304)。同様に、利用者認証部11は、要求されたアプリケーションの名前と認証したユーザの名前を用いて、実行データ管理部15から実行データを取得する(図3、ステップ305)。利用者認証部11は、これまでの処理により得られた、最適化されたプログラムコードと、実行データと、利用者データより、アプリケーション80(図7)を構成し、アプリケーションの要求元である利用者端末20−iのアプリケーション管理部21に前述アプリケーション80を転送する(図3、ステップ306)。

0084

利用者端末20−iのアプリケーション管理部21は、認証の失敗等でアプリケーション取得に失敗した場合(図5、ステップ502がNO)、例えば、ユーザに失敗の旨を通知し、処理を終える(図5、ステップ506)。アプリケーション管理部21は、アプリケーションの取得に成功した場合(図5、ステップ502がYES)、アプリケーション80のプログラムコードと実行データを、実行データ処理部22に渡し、実行データ処理部22は、プログラムコードと実行データからアプリケーションの計算を再開させる(図5、ステップ503)。

0085

図5のステップ503とステップ504の間、利用者はアプリケーションを利用している。

0086

利用者端末20−iのユーザが明示的に保存を要求するか、又は実行データ処理部22が自動的に判断して、実行データ処理部22は実行中のアプリケーションの実行データを取得する(図5、ステップ504)。

0087

実行データ処理部22は取得した実行データをアプリケーション管理部21に渡すと、アプリケーション管理部21は配信サーバ10に利用者データと実行データの保存要求を送信する(図5、ステップ505)。保存要求は、利用者データと、実行データと、アプリケーションの名前と、利用者端末20−iを利用しているユーザの身元を明らかにする認証情報を含む。

0088

配信サーバ10内の利用者認証部11は、利用者データと実行データの保存要求を受け付け(図6、ステップ601)、要求元である利用者端末20−iのユーザの認証を行なう(図6、ステップ602)。認証に失敗した場合(図6、ステップ602がNO)、利用者認証部11は利用者端末20−iのアプリケーション管理部21にエラーを返す(図6、ステップ604)。認証に成功した場合(図6、ステップ602がYES)、利用者認証部11は、保存要求に含まれるアプリケーションの名前と利用者データと、認証により得られたユーザの名前を用いて、利用者データ管理部13に利用者データを格納し、保存要求に含まれるアプリケーションの名前と実行データと、認証により得られたユーザの名前を用いて、実行データ管理部15に実行データを格納する(図6、ステップ603)。

0089

以上説明したように、本実施の形態の配信システムによれば、アプリケーション配信時に、各利用者端末におけるそのアプリケーション・プログラムの計算の実行状況を示す実行データに基づいて、プログラムコードから配信先の利用者端末で利用される可能性がない冗長な部分を取り除くコード最適化を行ない、その最適化されたプログラムコードを利用者端末に配信することができる。

0090

これにより、配信するアプリケーションのプログラムコード量が削減できるため、アプリケーション配信時に発生する通信量の削減、及び利用者端末で実行されるアプリケーションが消費するメモリ量の削減を実現できる。

0091

次に、本発明の第2の実施の形態について詳細に説明する。図8は、本発明に係るコード最適化を行なった上でアプリケーションを配信する配信システムの、第2の実施の形態の構成例を示すブロック図である。本実施の形態は、配信サーバ10の代わりに、配信サーバ10aを備えている点、利用者端末20−1〜20−nの代わりに利用者端末20−1a〜20−naを備えている点が、図1に示した第1の実施の形態と相違している。

0092

利用者端末20−1aは、情報公開部23が追加されている点、アプリケーション管理部21の代わりにアプリケーション管理部21aを備えている点が、第1の実施の形態の利用者端末20−1と相違している。尚、他の利用者端末20−2a〜20−naも、利用者端末20−1aと同様の構成を備える。

0093

情報公開部23は、アプリケーション管理部21aからの要求に応じて、当該利用者端末の情報である利用者端末情報を取得して提供する。

0094

ここで、利用者端末情報とは、ハードウェア資源に関連する情報や、ソフトウェア資源に関連する情報等から構成される。ハードウェア資源に関連する情報とは、例えば、利用者端末20−1aの機器の名前や、画面の大きさ、利用可能な揮発性メモリの大きさ、利用可能な不揮発性の記憶領域の大きさ等であり、ソフトウェア資源に関連する情報とは、利用者端末20−1aの不揮発性の記憶領域に格納されたアプリケーションやクラスライブラリの名前等である。

0095

本実施の形態のアプリケーション管理部21aが、第1の実施の形態のアプリケーション管理部21と相違する点は、まず第1に、配信サーバ10aのサーバ利用者認証部11aに、アプリケーションを要求する前に(図5、ステップ501に相当)、情報公開部23により利用者端末情報を取得する点があり、第2に、アプリケーション取得要求として、アプリケーション管理部21aから配信サーバ10aに転送する情報に、取得対象のアプリケーションの名前と、利用者端末を利用しているユーザの身元を明らかにする認証情報の他に、更に前記利用者端末情報を含める点がある。

0096

本実施の形態の配信サーバ10aは、情報解析部16が追加されている点と、コード最適化部14の代わりにコード最適化部14aを備える点と、利用者認証部11の代わりに利用者認証部11aを備える点が、第1の実施の形態の配信サーバ10と相違している。

0097

本実施の形態の利用者認証部11aは、利用者端末情報を含んだアプリケーション取得要求をアプリケーション管理部21aから受け取り、情報解析部16にコード取得要求を出し、コード最適化部14aから最適化されたコードを取得する点が、第1の実施の形態の利用者認証部11と相違している。

0098

情報解析部16は、情報公開部23が生成した利用者端末情報を解釈し、コードの選別を行なう機能を備える。ここでは、利用者端末情報の具体例として、利用者端末にキャッシュされているクラスライブラリの名前を利用する。情報解析部16は、利用者端末情報からキャッシュされているクラスライブラリの名前を判別し、プログラムコード管理部12からプログラムコードを取得すると、キャッシュされているクラスライブラリに相当するコードを削除し、新しいプログラムコードを生成する。生成した新しいプログラムコードは、コード最適化部14aに渡される。

0099

図9は、本実施の形態のコード最適化部14aの構成例を示すブロック図である。本実施の形態のコード最適化部14aは、第1の実施の形態のコード抽出部142の代わりにコード抽出部142aを備える点が、第1の実施の形態のコード最適化部14と相違している。

0100

本実施の形態のコード抽出部142aは、情報解析部16からプログラムコードを取得する点が、第1の実施の形態のコード抽出部142と相違している。

0101

次に、本実施の形態の動作について説明する。尚ここでは、情報解析部16とコード最適化部14aの動作を中心に説明することとし、最適化されたコードを取得後の配信サーバ10の処理は、第1の実施の形態と同様であるため省略する。

0102

アプリケーション管理部21aは、情報公開部23から利用者端末情報を取得後、利用者認証部11aにアプリケーション取得要求を送る(図5、ステップ501に相当)。アプリケーション取得要求は、取得対象のアプリケーションの名前と、利用者端末を利用しているユーザの身元を明らかにする認証情報と、先に取得した利用者端末情報を含む。

0103

アプリケーション取得要求を受け取った利用者認証部11aは、情報解析部16に対して、要求されたアプリケーションの名前と、認証された利用者の名前と、利用者端末情報を渡し、プログラムコードの生成を要求する。

0104

情報解析部16は、利用者認証部11aから、要求されたアプリケーションの名前と、認証された利用者の名前と、利用者端末情報を受け取ると、まず、アプリケーションの名前を用いて、プログラムコード管理部12からプログラムコードを取得する。次に、情報解析部16は、利用者端末情報を解析し、利用者端末にキャッシュされているクラスライブラリを判別する。次に、情報解析部16は、取得したプログラムコードから、キャッシュされているクラスライブラリに相当するコードを取り除いた、新しいプログラムコードを生成し、コード抽出部142aに生成したプログラムコードと、アプリケーションの名前と、認証された利用者の名前を渡す。

0105

コード抽出部142aは、アプリケーションの名前と、認証された利用者の名前を用いて、実行データ管理部15から実行データを取得し、実行データを用いたコード抽出を行なって、新しいプログラムコードを生成する。生成したプログラムコードはコード圧縮部141に渡される。コード圧縮部141は渡されたプログラムコードを圧縮して、新しく圧縮されたプログラムコードを生成し、利用者認証部11aに渡す。

0106

以上説明したように、本実施の形態によれば、実行データからの情報だけでなく、利用者端末情報に基づいてプログラムコードを削減することができる。

0107

本実施の形態では、各利用者端末情報をその利用者端末の情報公開部23が保持し、毎回アプリケーション要求の度に利用者端末情報を、利用者端末から配信サーバ10aへ転送しているが、また別の実施の形態として、事前に利用者端末情報を配信サーバ10a側の情報解析部16が保持する方式も同様に実施することができる。この場合は、利用者端末情報を、アプリケーション要求の度に、利用者端末から配信サーバ10aに転送する必要はない。

0108

次に、本発明の第3の実施の形態について詳細に説明する。図10は、本発明に係るコード最適化を行なった上でアプリケーションを配信する配信システムの、第3の実施の形態の構成例を示すブロック図である。本実施の形態は、配信サーバ10の代わりに配信サーバ10bを備える点が、図1に示した第1の実施の形態と相違している。

0109

本実施の形態の配信サーバ10bは、キャッシュ部17が追加されている点と、利用者認証部11の代わりに利用者認証部11bを備える点が、第1の実施の形態の配信サーバ10と相違している。

0110

本実施の形態の利用者認証部11bは、キャッシュ部17に最適化されたプログラムコードを要求する点が、第1の実施の形態の利用者認証部11と相違している。

0111

キャッシュ部17は、利用者認証部11bの要求に応じてコード最適化部14が生成した最適化されたプログラムコードを、一時的に格納し、管理する機能を備える。一時的に格納した最適化されたプログラムコードをキャッシュしたプログラムコードと呼ぶ。利用者認証部11bから、最適化されたプログラムコードを要求された時、キャッシュしたプログラムコードが利用可能であれば、キャッシュしたプログラムコードを返し、そうでない場合は、コード最適化部14から最適化されたプログラムコードを取得し、取得したプログラムコードをキャッシュとして保存すると共に、利用者認証部11bに最適化されたプログラムコードを返す。

0112

次に、本実施の形態の動作について説明する。尚、ここでは、キャッシュ部17の動作を中心に説明する。最適化されたコードを取得後の配信サーバ10の処理は、第1の実施の形態と同様であるため省略する。

0113

アプリケーション管理部21からアプリケーション取得要求を受けると、利用者認証部11bは、認証を行なった後、キャッシュ部17に、前記取得要求に含まれるアプリケーションの名前と、認証により得られた利用者の名前を用いて、キャッシュ部17に最適化されたプログラムコードを要求する。

0114

キャッシュ部17は、現在、管理しているキャッシュしたプログラムコードの中から、利用可能なプログラムコードを探し出し、見つかれば、そのプログラムコードをアプリケーション管理部21に返す。見つからなければ、コード最適化部14から最適化されたプログラムコードを取得し、取得したプログラムコードをキャッシュとして保存すると共に、利用者認証部11bに最適化されたプログラムコードを返す。キャッシュしたコードが利用可能かどうかの判定は、例えば、キャッシュ部17が最適化されたコードを格納する時に、その時のアプリケーションの名前と、利用者の名前と、実行データのハッシュ値三種類の情報と関連付けて管理しておき、利用者認証部11bから要求が来ると、要求されたアプリケーション名と利用者の名前を用いて実行データ管理部15から実行データを取得し、要求されたアプリケーション名と、利用者の名前と、実行データからハッシュ値を算出し、この三点の情報と対応するキャッシュされたプログラムコードが存在するかどうかを調べることにより利用可能かどうかを判定する方法を利用する。

0115

以上説明したように、本実施の形態によれば、配信サーバ10bの最適化されたプログラムコードの生成処理を、キャッシュ部を用いて効率的に処理することができる。

0116

また、別の実施の形態として、利用者データを実行データの一部と見なし、利用者データを実行データに含めて、これを一つの実行データとして管理し利用することもできる。

0117

また、上記各実施の形態の配信システムは、互いに組み合わせて実施することができる。

0118

なお、上記各実施の形態の配信システムは、配信サーバ10、10a、10bにおける利用者認証部11、11a、11b、プログラムコード管理部12、利用者データ管理部13、コード最適化部14、14a、コード圧縮部141、コード抽出部142、142a、実行データ管理部15、情報解析部16、キャッシュ部17の機能や、利用者端末20−1〜20−n、20−1a〜20−naにおけるアプリケーション管理部21、21a、実行データ処理部22、情報公開部23の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムである配信プログラムを、コンピュータ処理装置のメモリにロードされることで実現することができる。このコンピュータプログラムは、磁気ディスク半導体メモリその他の記録媒体90、90a、90b、91、91a、91bに格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。

0119

以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。

発明の効果

0120

以上説明したように本発明の配信システム、配信サーバとその配信方法、配信プログラムによれば、以下のような効果が達成される。

0121

第1に、本発明によれば、アプリケーション配信時に、各利用者端末におけるそのアプリケーション・プログラムの計算の実行状況を示す実行データに基づいて、プログラムコードから配信先の利用者端末で利用される可能性がない冗長な部分を取り除くコード最適化を行ない、その最適化されたプログラムコードを利用者端末に配信することができる。

0122

これにより、配信するアプリケーションのプログラムコード量が削減できるため、アプリケーション配信時に発生する通信量の削減、及び利用者端末で実行されるアプリケーションが消費するメモリ量の削減を実現できる。

0123

また、本発明の第2の実施の形態によれば、利用者端末のハードディスクに格納されているクラスライブラリ等の、利用者端末の様々な情報に基づいて効率的なプログラムコードの最適化ができる。

0124

更に、本発明の第3の実施の形態によれば、配信サーバにキャッシュ部を備えることにより、効率的に最適化されたプログラムコードの配信ができる。

図面の簡単な説明

0125

図1本発明の第1の実施の形態による配信システムの構成を示すブロック図である。
図2本発明の第1の実施の形態による配信サーバの構成を示すブロック図である。
図3本発明の第1の実施の形態による配信サーバの処理を説明するためのフローチャートである。
図4本発明の第1の実施の形態のコード最適化部の処理を説明するためのフローチャートである。
図5本発明の第1の実施の形態による利用者端末の処理を説明するためのフローチャートである。
図6本発明の第1の実施の形態による配信サーバの、利用者データと実行データの受信処理を説明するためのフローチャートである。
図7本発明の第1の実施の形態のアプリケーションのデータ構成の一例を示す図である。
図8本発明の第2の実施の形態による配信システムの構成を示すブロック図である。
図9本発明の第2の実施の形態による配信サーバの構成を示すブロック図である。
図10本発明の第3の実施の形態による配信システムの構成を示すブロック図である。
図11従来のアプリケーション配信システムの構成の一例を示すブロック図である。
図12従来のサーバの処理の流れの一例を示すフローチャートである。

--

0126

10、10a、10b配信サーバ
11、11a、11b利用者認証部
12プログラムコード管理部
13利用者データ管理部
14、14aコード最適化部
141コード圧縮部
142、142a コード抽出部
15実行データ管理部
16情報解析部
17キャッシュ部
20−1〜20−n、20−1a〜20−na利用者端末
21、21aアプリケーション管理部
22 実行データ処理部
23情報公開部
30情報転送装置
40 配信サーバ
41 利用者認証部
42 プログラムコード管理部
43 利用者データ管理部
50−1〜50−n 利用者端末
51 アプリケーション管理部
60 情報転送装置
80アプリケーション
81 プログラムコード
82 実行データ
83 利用者データ
90、90a、90b、91、91a、91b記録媒体
100 通信ネットワーク

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ