JP4205323B2 - 配信システム、配信サーバとその配信方法、配信プログラム - Google Patents
配信システム、配信サーバとその配信方法、配信プログラム Download PDFInfo
- Publication number
- JP4205323B2 JP4205323B2 JP2001247208A JP2001247208A JP4205323B2 JP 4205323 B2 JP4205323 B2 JP 4205323B2 JP 2001247208 A JP2001247208 A JP 2001247208A JP 2001247208 A JP2001247208 A JP 2001247208A JP 4205323 B2 JP4205323 B2 JP 4205323B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- user terminal
- program code
- user
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、通信ネットワークを介した配信に関し、特に、利用者からの要求に応じて利用者端末へアプリケーションを配信する配信システム、配信サーバとその配信方法、配信プログラムに関する。
【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の本発明の利用者端末は、通信ネットワークを介して、請求項9から請求項12のいずれか1項に記載の配信サーバからアプリケーションの配信を受け付けて実行する端末装置であって、前記配信サーバから前記アプリケーションのプログラムコード、前記実行データと前記利用者データを取得し、取得した前記プログラムコードを、前記実行データに示される当該アプリケーションの実行状況に基づいて実行させる実行データ処理部と、実行中の前記アプリケーションの前記実行データと前記利用者データを取得して、前記配信サーバに送信するアプリケーション管理部とを備え、前記配信サーバからの前記アプリケーションの配信時には、当該アプリケーションのプログラムコードと、当該端末装置における当該アプリケーションの実行データと、当該端末装置において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて受信し、前記アプリケーション管理部は、実行中の前記アプリケーションの前記実行データ及び前記利用者データを取得して、前記配信サーバに送信し、前記実行データ処理部は、前記配信サーバから配信された前記アプリケーションのプログラムコードを、当該アプリケーションの前記実行データによって示される当該アプリケーションの実行状況に基づいて実行させることを特徴とする。
【0027】
請求項14の本発明の利用者端末は、当該端末装置の情報である利用者端末情報を取得する情報公開部を備え、前記情報公開部が取得した当該端末装置の前記利用者端末情報を、前記配信サーバに送信することを特徴とする。
【0028】
請求項15の本発明の配信方法は、通信ネットワークを介して、配信サーバから利用者端末ヘアプリケーションを配信する配信方法において、前記配信サーバは、各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、各前記利用者端末における前記アプリケーションの実行状況を示す実行データを保存する実行データ管理部と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理部と、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部を備え、前記利用者端末は、前記配信サーバから前記アプリケーションのプログラムコード、前記実行データと前記利用者データを取得し、取得した前記プログラムコードを、前記実行データによって示される当該アプリケーションの実行状況に基づいて実行させる実行データ処理部と、実行中の前記アプリケーションの前記実行データと前記利用者データを取得して、前記配信サーバに送信するアプリケーション管理部とを備え、前記アプリケーションの前記利用者端末への配信時に、プログラムコード管理部から当該アプリケーションのプログラムコードを読み出し、実行データ管理部から当該利用者端末における当該アプリケーションの実行データを読み出し、利用者データ管理部から当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データを読み出し、まとめて当該利用者端末に送信する手順と、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して、それぞれ実行データ管理部と利用者データ管理部へ登録する手順を備え、前記配信サーバにおいて、各前記利用者端末の利用者を認証する利用者認証手順と、前記配信サーバにおいて、前記実行データに基づいて、コード最適化部が前記アプリケーションのプログラムコードを最適化する手順と、前記配信サーバが前記利用者端末に対して最適化したアプリケーションを配信する手順をからなり、前記プログラムコードを最適化する手順は、前記プログラムコード管理部に管理された前記最適化前のアプリケーションのプログラムコードを取得し、前記実行データ管理部により保存された当該アプリケーションの配信先の利用端末における前記実行データを取得し、取得された実行データにより示された実行状況に基づいて、取得された前記最適構えのプログラムコードから配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手順と、前記コード抽出手順が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手順とからなり前記コード圧縮手順において生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして生成することによってプログラムコードを最適化することを特徴とする。
【0029】
請求項16の本発明の配信方法は、前記配信サーバが、前記コード最適化手順において生成した最適化されたプログラムコードを一時保存するキャッシュ手順を備えることを特徴とする。
【0030】
請求項17の本発明の配信方法は、前記配信サーバが、前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析手順を備えることを特徴とする。
【0031】
請求項18の発明の配信方法は、前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記配信サーバが、前記情報解析手順において、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする。
【0032】
請求項19の本発明のプログラムは、各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、各前記利用者端末における前記アプリケーションの実行状況を示す実行データを保存する実行データ管理部と、各前記利用者端末における前記アプリケーションの利用者データを管理する利用者データ管理部と、前記実行データに基づいて前記アプリケーションの前記最適化前のプロゲラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部を備えるコンピュータを制御することにより、配信サーバから通信ネットワークを介して利用者端末ヘアプリケーションを配信する配信プログラムであって、利用者認証部が各前記利用者端末の利用者を認証する処理と、前記アプリケーションの前記利用者端末への配信時に、プログラムコード管理部から当該アプリケーションのプログラムコードを読み出し、実行データ管理部から当該利用者端末における当該アプリケーションの実行データを読み出し、利用者データ管理部から当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データを読み出し、まとめて当該利用者端末に送信する処理と、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して、それぞれ実行データ管理部と利用者データ管理部へ登録する処理と、前記実行データに基づいて、コード最適化部が前記アプリケーションのプログラムコードを最適化する処理と、前記利用者端末に対して最適化したアプリケーションを配信する処理を実行させ、前記プログラムコードを最適化する処理は、前記プログラムコード管理部に管理された前記最適化前のプログラムコードを取得し、前記実行データ管理部により保存された当該アプリケーションの配信先の利用端末における前記実行データを取得し、取得された実行データにより示された実行状況に基づいて、取得された前記最適化前のプログラムコードから配信先の利用端末において実行されることの無い部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出処理と、前記コード抽出処理が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮処理と、前記コード圧縮処理において生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして生成することによってプログラムコードを最適化することを特徴とする。
【0033】
本発明の請求項20のプログラムは、前記コード最適化処理において生成した最適化されたプログラムコードを一時保存するキャッシュ処理を実行させることを特徴とする。
【0034】
本発明の請求項21のプログラムは、前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析処理を実行させることを特徴とすることを特徴とする。
【0035】
請求項22の本発明のプログラムは、前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析処理において、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除する処理を実行させることを特徴とする。
【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の実施の形態によれば、配信サーバにキャッシュ部を備えることにより、効率的に最適化されたプログラムコードの配信ができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態による配信システムの構成を示すブロック図である。
【図2】 本発明の第1の実施の形態による配信サーバの構成を示すブロック図である。
【図3】 本発明の第1の実施の形態による配信サーバの処理を説明するためのフローチャートである。
【図4】 本発明の第1の実施の形態のコード最適化部の処理を説明するためのフローチャートである。
【図5】 本発明の第1の実施の形態による利用者端末の処理を説明するためのフローチャートである。
【図6】 本発明の第1の実施の形態による配信サーバの、利用者データと実行データの受信処理を説明するためのフローチャートである。
【図7】 本発明の第1の実施の形態のアプリケーションのデータ構成の一例を示す図である。
【図8】 本発明の第2の実施の形態による配信システムの構成を示すブロック図である。
【図9】 本発明の第2の実施の形態による配信サーバの構成を示すブロック図である。
【図10】 本発明の第3の実施の形態による配信システムの構成を示すブロック図である。
【図11】 従来のアプリケーション配信システムの構成の一例を示すブロック図である。
【図12】 従来のサーバの処理の流れの一例を示すフローチャートである。
【符号の説明】
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 通信ネットワーク
Claims (22)
- 通信ネットワークを介して、配信サーバから利用者端末ヘ配信されたアプリケーションを、前記利用者端末において再開する際に、前記利用者端末からの前記アプリケーションの転送要求に応答して、配信サーバが前記アプリケーションの最新の実行状況を示す実行データに基づいて、前記アプリケーションを最適化して前記利用者端末に配信することで前記利用者端末において最新の実行状況から前記アプリケーションを再開する配信システムにおいて、
前記配信サーバは、
各前記利用者端末の利用者を認証する利用者認証部と、
前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、
各前記利用者端末における前記アプリケーションの実行状況を示す実行データを保存する実行データ管理部と、
各前記利用者端末において前記アプリケーションが用いる設定ファイル及びデータファイルである利用者データを管理する利用者データ管理部と、
前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して、それぞれ実行データ管理部と利用者データ管理部へ登録する手段と、
前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部であって、
前記コード最適化部は、前記プログラムコード管理部に管理された前記最適化前のプログラムコードを取得し、前記実行データ管理部により保存された当該アプリケーションの配信先の利用端末における前記実行データを取得し、取得された実行データにより示された前記アプリケーションの最新の実行状況に基づいて、取得された前記最適化前のプログラムコードから配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、
前記コード抽出手段が生成した、前記アブリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段と、
前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして生成する手段とを備えるコード最適化部と、
前記利用者端末から、前記アプリケーションの転送要求を受け付け、コード最適化部が生成した前記アプリケーションの最適化されたプログラムコードと、実行データ管理部から読み出した当該利用者端末における当該アプリケーションの最新の実行状況を示す実行データと、利用者データ管理部から読み出した当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する手段とを備え
前記利用者端末は、 前記アプリケーションの実行状況を示す実行データと前記利用者データを取得して、前記配信サーバに送信するアプリケーション管理部と、
前記アプリケーションを再開する際に、前記配信サーバに対して、前記アプリケーションの転送要求を送信する送信手段と、
前記転送要求に応答して前記配信サーバから配信される前記アプリケーションの最適化されたプログラムコード、前記アプリケーションの最新の実行状況を示す実行データと前記利用者データを取得し、取得した前記プログラムコードを、前記実行データにより示される当該アプリケーションの最新の実行状況に基づいて再開させる実行データ処理部とを備えることを特徴とする配信システム。 - 前記実行データが、前記アプリケーションの実行中における、プログラムカウンタ、ヒープ、スタックの情報を含むことを特徴とする請求項1に記載の配信システム。
- 前記実行データが、前記アプリケーションの実行時にメモリ上に生成される、各オブジェクトのインスタンス変数の値の情報を含むことを特徴とする請求項1又は請求項2に記載の配信システム。
- 前記配信サーバは、前記コード最適化部が生成した最適化されたプログラムコードを一時保存するキャッシュ部を備えることを特徴とする請求項1から請求項3のいずれか1つに記載の配信システム。
- 前記利用者端末は、当該利用者端末の情報である利用者端末情報を取得する情報公開部を備え、 前記配信サーバは、前記情報公開部が取得した、前記利用者端末の利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析部を備えることを特徴とする請求項1から請求項4のいずれか1つに記載の配信システム。
- 前記利用者端末情報が.当該利用者端末に格納されているクラスライブラリの情報を含み、前記配信サーバの前記情報解析部は、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする請求項5に記載の配信システム。
- 前記配信サーバと前記通信ネットワークとを接続し、前記配信サーバと各前記利用者端末との通信を中継する情報転送装置を備えることを特徴とする請求項1から請求項6のいずれか1つに記載の配信システム。
- 前記通信ネットワークをインターネットとし、前記情報転送装置は、ウェブサーバの機能を備え、前記配信サーバとの間でサーブレットを用いて通信することを特徴とする請求項7に記載の配信システム。
- 通信ネットワークを介して、配信サーバから利用者端末ヘ配信されたアプリケーションを、前記利用者端末において再開する際に、前記利用者端末からの前記アプリケーションの転送要求に応答して、前記アプリケーションの最新の実行状況を示す実行データに基づいて、前記アプリケーションを最適化して前記利用者端末に配信することで前記利用者端末において最新の実行状況から前記アプリケーションを再開させる配信サーバであって、
前記配信サーバは、 各前記利用者端末の利用者を認証する利用者認証部と、
前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、
各前記利用者端末における前記アプリケーションの実行状況を示す実行データを保存する実行データ菅理部と、
各前記利用者端末における前記アプリケーションが用いる設定ファイル及びデータファイルである利用者データを管理する利用者データ管理部と、
前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部であって、
前記プログラムコード管理部に管理された前記最適化前のプログラムコードを取得し、前記実行データ管理部により保存された当該アプリケーションの配信先の利用端末における前記実行データを取得し、取得された実行データにより示された前記アプリケーションの最新の実行状況に基づいて、取得された前記最適化前のプログラムコードから配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、
前記コード抽出手段が生成した、前記アプリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段と、
前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして生成する手段とを備えるコ ード最適化部と
前記アプリケーションの前記利用者端末への配信時に、プログラムコード管理部から当該アプリケーションのプログラムコードを読み出し、前記利用者端末から、前記アプリケーションの転送要求を受け付け、コード最適化部が生成した前記アプリケーションの最適化されたプログラムコードと、実行データ管理部から読み出した当該利用者端末における当該アプリケーションの最新の実行状況を示す実行データと、利用者データ管理部から読み出した当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する手段と
前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して、それぞれ実行データ管理部と利用者データ管理部へ登録する手段を備え、
前記利用者端末へ前記アプリケーションを配信し、前記利用者端末から前記アプリケーションの実行データを取得、保存し、前記実行データに基づいて、コード最適化部が前記アプリケーションのプログラムコードを最適化し、前記利用者端末に対して最適化したアプリケーションを配信することを特徴とする配信サーバ。 - 前記コード最適化部が生成した最適化されたプログラムコードを一時保存するキャッシュ部を備えることを特徴とする請求項9に記載の配信サーバ。
- 前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析部を備えることを特徴とする請求項9から請求項10のいずれか1つに記載の配信サーバ。
- 前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析部は、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする請求項11に記載の配信サーバ。
- 通信ネットワークを介して、請求項9から請求項12のいずれか1項に記載の配信サーバからアプリケーションの配信を受け付けて実行する利用者端末であって、
前記配信サーバから前記アプリケーションの最適化されたプログラムコード、前記アプリケーションの最新の実行状況を示す実行データと前記利用者データを取得し、取得した前記プログラムコードを、前記実行データに示される当該アプリケーションの最新の実行状況に基づいて再開させる実行データ処理部と、
実行中の前記アプリケーションの前記実行データと前記利用者データを取得して、前記配信サーバに送信するアプリケーション管理部と
前記アプリケーションを再開する際に、前記配信サーバに対して、前記アプリケーションの転送要求を送信する送信手段とを備え、
前記配信サーバからの前記アプリケーションの配信時には、当該アプリケーションのプログラムコードと、当該端末装置における当該アプリケーションの実行データと、当該端末装置において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて受信し、
前記アプリケーション管理部は、
実行中の前記アプリケーションの前記実行データ及び前記利用者データを取得して、前記配信サーバに送信し、
前記実行データ処理部は、
前記転送要求に応答して前記配信サーバから配信される前記アプリケーションの最適化されたプログラムコードを、当該アプリケーションの前記実行データによって示される当該アプリケーションの最新の実行状況に基づいて再開させることを特徴とする利用者端末。 - 当該端末装置の情報である利用者端末情報を取得する情報公開部を備え、 前記情報公開部が取得した当該端末装置の前記利用者端末情報を、前記配信サーバに送信することを特徴とする請求項13に記載の利用者端末。
- 通信ネットワークを介して、配信サーバから利用者端末ヘ配信されたアプリケーションを、前記利用者端末において再開する際に、前記利用者端末からの前記アプリケーションの転送要求に応答して、配信サーバが前記アプリケーションの最新の実行状況を示す実行データに基づいて、前記アプリケーションを最適化して前記利用者端末に配信することで前記利用者端末において最新の実行状況から前記アプリケーションを再開する配信方法において、
前記配信方法は、
前記配信サーバが、各前記利用者端末の利用者を認証する利用者認証手順と、 前記配信サーバが、前記アプリケーションの最適化前のプログラムコードをプログラムコード管理記憶手段に管理するプログラムコード管理手順と、 前記配信サーバが、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの実行状況を示す実行データを取得して実行データ記憶手段に保存する実行データ管理手順と、
前記配信サーバが、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションが用いる設定ファイル及びデータファイルである利用者データを取得して利用者データ記憶手段に管理する利用者データ管理手順と、 前記配信サーバが、前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して、それぞれ前記実行データ記憶手段と前記利用者データ記憶手段へ登録する手順と、 前記配信サーバが、前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化手順であって、
前記コード最適化手順は、前記配信サーバが、前記プログラムコード管理記憶手段で管理された前記最適化前のプログラムコードを取得し、前記実行データ管理記憶手段により保存された当該アプリケーションの配信先の利用端末における前記実行データを取得し、取得された実行データにより示された前記アプリケーションの最新の実行状況に基づいて、取得された前記最適化前のプログラムコードから配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手順と、
前記配信サーバが、前記コード抽出手順において生成された、前記アブリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手順と、
前記配信サーバが、前記コード圧縮手順において生成された、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして生成する手順とから構成されるコード最適化手順と、
前記配信サーバが、前記利用者端末から、前記アプリケーションの転送要求を受け付け、前記アプリケーションの前記利用者端末への配信時に、前記コード最適化手順で生成された前記アプリケーションの最適化されたプログラムコードと、前記実行データ記憶手段から読み出した当該利用者端末における当該アプリケーションの最新の実行状況を示す実行データと、前記利用者データ管理部から読み出した当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する手順と、
前記利用者端末が、前記アプリケーションの前記実行データと前記利用者データを取得して、前記配信サーバに送信するアプリケーション管理手順と、
前記利用者端末が、前記アプリケーションを再開する際に、前記配信サーバに対して、前記アプリケーションの転送要求を送信する送信手順と、
前記利用者端末が、前記転送要求に応答して前記配信サーバから配信される前記アプリケーションの最適化されたプログラムコード、前記アプリケーションの最新の実行状況を示す実行データと前記利用者データを取得し、取得した前記プログラムコードを、前記実行データによって示される当該アプリケーションの最新の実行状況に基づいて再開する実行データ処理手順と、から構成されることを特徴とする配信方法。 - 前記配信サーバが、 前記コード最適化手順において生成した最適化されたプログラムコードを一時保存するキャッシュ手順を備えることを特徴とする請求項15に記載の配信方法。
- 前記配信サーバが、 前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析手順を備えることを特徴とする請求項15又は請求項16に記載の配信方法。
- 前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、 前記配信サーバが、前記情報解析手順において、 前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除することを特徴とする請求項17に記載の配信方法。
- 通信ネットワークを介して、配信サーバから利用者端末ヘ配信されたアプリケーションを、前記利用者端末において再開する際に、前記利用者端末からの前記アプリケーションの転送要求に応答して、配信サーバが前記アプリケーションの最新の実行状況を示す実行データに基づいて、前記アプリケーションを最適化して前記利用者端末に配信することで前記利用者端末において最新の実行状況から前記アプリケーションを再開させるための配信プログラムであって、
前記配信プログラムは、 前記配信サーバに、 各前記利用者端末の利用者を認証する利用者認証部と、前記アプリケーションの最適化前のプログラムコードを管理するプログラムコード管理部と、 各前記利用者端末における前記アプリケーションの実行状況を示す実行データを保存する実行データ管理部と、 各前記利用者端末において前記アプリケーションが用いる設定ファイル及びデータファイルである利用者データを管理する利用者データ管理部と、 前記利用者端末から、前記通信ネットワークを介して、前記アプリケーションの前記実行データ及び前記利用者データを取得して、それぞれ実行データ管理部と利用者データ管理部へ登録する手段と、
前記実行データに基づいて前記アプリケーションの前記最適化前のプログラムコードを最適化し、最適化されたプログラムコードを生成するコード最適化部であって、
前記コード最適化部は、前記プログラムコード管理部に管理された前記最適化前のプログラムコードを取得し、前記実行データ管理部により保存された当該アプリケーションの配信先の利用端末における前記実行データを取得し、取得された実行データにより示された前記アプリケーションの最新の実行状況に基づいて、取得された前記最適化前のプログラムコードから配信先の利用端末において実行されることのない部分を特定して削除することにより、実行される可能性のあるコードのみを含んだ当該アプリケーションのプログラムコードを新規に生成するコード抽出手段と、
前記コード抽出手段が生成した、前記アブリケーションの新規のプログラムコードを圧縮することにより、当該アプリケーションの圧縮された新規のプログラムコードを生成するコード圧縮手段と、
前記コード圧縮手段が生成した、前記アプリケーションの新規のプログラムコードを、当該アプリケーションの最適化されたプログラムコードとして生成する手段とを備えるコード最適化部と、
前記利用者端末から、前記アプリケーションの転送要求を受け付け、コード最適化部が生成した前記アプリケーションの最適化されたプログラムコードと、実行データ管理部から読み出した当該利用者端末における当該アプリケーションの最新の実行状況を示す実行データと、利用者データ管理部から読み出した当該利用者端末において当該アプリケーションが用いる設定ファイル及びデータファイルである利用者データとを、まとめて当該利用者端末に送信する手段として機能させるためのプログラムと、
前記利用者端末に、
前記アプリケーションの実行状況を示す実行データと前記利用者データを取得して、前記配信サーバに送信するアプリケーション管理部と、
前記アプリケーションを再開する際に、前記配信サーバに対して、前記アプリケーションの転送要求を送信する送信手段と、
前記転送要求に応答して前記配信サーバから配信される前記アプリケーションの最適化されたプログラムコード、前記アプリケーションの最新の実行状況を示す実行データと前記利用者データを取得し、取得した前記プログラムコードを、前記実行データにより示される当該アプリケーションの最新の実行状況に基づいて再開させる実行データ処理部として機能させるためのプログラムとから構成されることを特徴とする配信プログラム。 - 前記配信サーバに、前記コード最適化手段によって生成された最適化されたプログラムコードを一時保存するキャッシュ処理手段として機能させることを特徴とする請求項19に記載の配信プログラム。
- 前記配信サーバに、前記利用者端末から、当該利用者端末の情報である利用者端末情報を取得し、前記利用者端末情報に基づいて、当該利用者端末に対し配信するアプリケーションのプログラムコードを選別する情報解析処理手段として機能させることを特徴とする請求項19又は請求項20に記載の配信プログラム。
- 前記利用者端末情報が、当該利用者端末に格納されているクラスライブラリの情報を含み、前記情報解析処理手段において、
前記配信サーバに、前記利用者端末情報において示される、配信先の利用者端末に格納されているクラスライブラリを、当該利用者端末に配信する前記アプリケーションのプログラムコードから削除する処理手段として機能させることを特徴とする請求項21に記載の配信プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001247208A JP4205323B2 (ja) | 2001-08-16 | 2001-08-16 | 配信システム、配信サーバとその配信方法、配信プログラム |
US10/217,541 US7237235B2 (en) | 2001-08-16 | 2002-08-14 | Application distribution system, and distribution server and distribution method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001247208A JP4205323B2 (ja) | 2001-08-16 | 2001-08-16 | 配信システム、配信サーバとその配信方法、配信プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003058376A JP2003058376A (ja) | 2003-02-28 |
JP4205323B2 true JP4205323B2 (ja) | 2009-01-07 |
Family
ID=19076593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001247208A Expired - Fee Related JP4205323B2 (ja) | 2001-08-16 | 2001-08-16 | 配信システム、配信サーバとその配信方法、配信プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7237235B2 (ja) |
JP (1) | JP4205323B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101382078B1 (ko) * | 2012-07-31 | 2014-04-17 | 강성원 | 개발자 동작에 기반한 문맥적인 코드 목록 추천 방법 및 이를 이용하는 코드 목록 추천 장치 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050125524A1 (en) * | 2003-12-08 | 2005-06-09 | Chandrasekhar Babu K. | Cache system in factory server for software dissemination |
US8219807B1 (en) * | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US8352935B2 (en) | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
US20070261090A1 (en) * | 2006-03-24 | 2007-11-08 | Miller Eric B | Interactive television application distribution, control, and communication system and methods |
DE102006051187A1 (de) * | 2006-10-30 | 2008-05-08 | Siemens Ag | Verteilte Taskflow-Architektur |
US20110087692A1 (en) * | 2009-10-13 | 2011-04-14 | Google Inc. | Application whitelisting in a cloud-based computing device |
KR101650376B1 (ko) * | 2010-09-30 | 2016-09-06 | 삼성전자주식회사 | 사용자 단말 장치 및 그 서비스 제공 방법 |
JP5216128B2 (ja) * | 2011-09-06 | 2013-06-19 | 株式会社ソニー・コンピュータエンタテインメント | クラウドコンピューティングシステムおよびアプリケーション提供方法 |
WO2016064930A1 (en) | 2014-10-21 | 2016-04-28 | Proofpoint, Inc. | Systems and methods for application security analysis |
EP4155984B1 (en) * | 2014-10-31 | 2024-08-28 | Proofpoint, Inc. | Systems and methods for privately performing application security analysis |
US10768925B2 (en) * | 2015-06-01 | 2020-09-08 | Microsoft Technology Licensing, Llc | Performing partial analysis of a source code base |
US9990400B2 (en) * | 2015-10-26 | 2018-06-05 | Salesforce.Com, Inc. | Builder program code for in-memory cache |
US10013501B2 (en) | 2015-10-26 | 2018-07-03 | Salesforce.Com, Inc. | In-memory cache for web application data |
US9984002B2 (en) | 2015-10-26 | 2018-05-29 | Salesforce.Com, Inc. | Visibility parameters for an in-memory cache |
US10846196B1 (en) | 2017-06-09 | 2020-11-24 | Azul Systems, Inc. | Code optimization for connected managed runtime environments |
US10515013B2 (en) | 2017-11-15 | 2019-12-24 | Salesforce.Com, Inc. | Techniques for handling requests for data at a cache |
US10642745B2 (en) | 2018-01-04 | 2020-05-05 | Salesforce.Com, Inc. | Key invalidation in cache systems |
US10742712B2 (en) * | 2018-10-30 | 2020-08-11 | Citrix Systems, Inc. | Web adaptation and hooking for virtual private integration systems and methods |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463581B1 (en) * | 1996-10-03 | 2002-10-08 | International Business Machines Corporation | Method for determining reachable methods in object-oriented applications that use class libraries |
US6393569B1 (en) * | 1996-12-18 | 2002-05-21 | Alexander S. Orenshteyn | Secured system for accessing application services from a remote station |
US6212564B1 (en) * | 1998-07-01 | 2001-04-03 | International Business Machines Corporation | Distributed application launcher for optimizing desktops based on client characteristics information |
US6230312B1 (en) * | 1998-10-02 | 2001-05-08 | Microsoft Corporation | Automatic detection of per-unit location constraints |
US6263491B1 (en) * | 1998-10-02 | 2001-07-17 | Microsoft Corporation | Heavyweight and lightweight instrumentation |
US6158010A (en) * | 1998-10-28 | 2000-12-05 | Crosslogix, Inc. | System and method for maintaining security in a distributed computer network |
US6324578B1 (en) * | 1998-12-14 | 2001-11-27 | International Business Machines Corporation | Methods, systems and computer program products for management of configurable application programs on a network |
JP2001092671A (ja) * | 1999-09-24 | 2001-04-06 | Hitachi Ltd | プログラム実行最適化方法、プログラム管理装置およびプログラム実行装置 |
US6711619B1 (en) * | 1999-12-15 | 2004-03-23 | Hewlett-Packard Development Company, L.P. | Method, system, and apparatus for distributing and using computer-based applications over a network |
US7596784B2 (en) * | 2000-09-12 | 2009-09-29 | Symantec Operating Corporation | Method system and apparatus for providing pay-per-use distributed computing resources |
US20020069263A1 (en) * | 2000-10-13 | 2002-06-06 | Mark Sears | Wireless java technology |
US20020087593A1 (en) * | 2001-01-02 | 2002-07-04 | Rank Paul J. | Method for dynamic function loading in spreadsheets on small devices |
-
2001
- 2001-08-16 JP JP2001247208A patent/JP4205323B2/ja not_active Expired - Fee Related
-
2002
- 2002-08-14 US US10/217,541 patent/US7237235B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101382078B1 (ko) * | 2012-07-31 | 2014-04-17 | 강성원 | 개발자 동작에 기반한 문맥적인 코드 목록 추천 방법 및 이를 이용하는 코드 목록 추천 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20030037107A1 (en) | 2003-02-20 |
US7237235B2 (en) | 2007-06-26 |
JP2003058376A (ja) | 2003-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4205323B2 (ja) | 配信システム、配信サーバとその配信方法、配信プログラム | |
US10776159B2 (en) | Distributed storage-based filed delivery system and method using calculated dependencies between tasks to ensure consistancy of files | |
US8463867B2 (en) | Distributed storage network | |
JP2002501254A (ja) | ネットワークを介したコンテンツをアドレス可能なデータに対するアクセス | |
JPH10312350A (ja) | リソース命名方法及び機構 | |
CN110263001B (zh) | 文件管理方法、装置、系统、设备及计算机可读存储介质 | |
US20180189315A1 (en) | Method and device for calling a distributed file system | |
JPH11328066A (ja) | ネットワ―ク管理演算のトランザクション支援のための装置、方法及びコンピュ―タプログラム製品 | |
US7716678B2 (en) | Processing messages in a message queueing system | |
CN109947081B (zh) | 网联车辆控制方法及装置 | |
CN102891863A (zh) | 数据读写方法 | |
CN113177179B (zh) | 数据请求连接管理方法、装置、设备及存储介质 | |
JP5354768B2 (ja) | ソフトウェア自動配布システム | |
CN116974948A (zh) | 业务系统测试方法、系统、设备和介质 | |
CN111245949A (zh) | 文件归档传输方法、装置及设备 | |
JP2004302564A (ja) | ネームサービス提供方法及びその実施装置並びにその処理プログラム | |
JP4129353B2 (ja) | 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム | |
CN106936643A (zh) | 一种设备联动方法以及终端设备 | |
CN111913732A (zh) | 一种服务更新方法、装置及管理服务器、存储介质 | |
US8301800B1 (en) | Message processing for distributed computing environments | |
CN115103039B (zh) | 一种报文数据处理方法、装置、智能设备及存储介质 | |
JP5178734B2 (ja) | P2pシステムにおけるピア管理サーバー及びピア管理方法 | |
CN115250269B (zh) | 一种文件分配方法及装置、存储介质及电子设备 | |
CN114172945B (zh) | 一种模拟实现全双工即时通信方法与设备 | |
CN111404979B (zh) | 业务请求处理的方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050719 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050920 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051122 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20051222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20051222 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060131 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060224 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070117 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20080604 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080905 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081016 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111024 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |