JP2003140912A - Data processing system, data processing method, and storage medium - Google Patents

Data processing system, data processing method, and storage medium

Info

Publication number
JP2003140912A
JP2003140912A JP2001331509A JP2001331509A JP2003140912A JP 2003140912 A JP2003140912 A JP 2003140912A JP 2001331509 A JP2001331509 A JP 2001331509A JP 2001331509 A JP2001331509 A JP 2001331509A JP 2003140912 A JP2003140912 A JP 2003140912A
Authority
JP
Japan
Prior art keywords
data
reference information
data processing
processing system
processing method
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
JP2001331509A
Other languages
Japanese (ja)
Other versions
JP2003140912A5 (en
Inventor
Tsutomu Gamo
勉 蒲生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2001331509A priority Critical patent/JP2003140912A/en
Publication of JP2003140912A publication Critical patent/JP2003140912A/en
Publication of JP2003140912A5 publication Critical patent/JP2003140912A5/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To optimize data transfer amount and data transfer frequency in moving the data by dividing the data not to be predicated on a specific using environment. SOLUTION: Reference information on each basic component element included in the data in using the data is generated, and then, based on the reference information, a new component element is constituted as a set of the basic component elements having adjacent references in the view of using the data. Methods and data even in the same class are divided as different new component elements when mutual reference relations are not adjacent to each other, Therefore, the data transfer amount can be optimized.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、命令や関数呼出し
などのシンボル、変数などの複数の基本構成要素からな
るプログラムを処理するデータ処理システム及びデータ
処理方法、並びに記憶媒体に係り、特に、プログラムの
構造を最適化するデータ処理システム及びデータ処理方
法、並びに記憶媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing system and a data processing method for processing a program including a plurality of basic constituent elements such as symbols such as instructions and function calls, variables, etc., and a storage medium, and more particularly to a program. The present invention relates to a data processing system, a data processing method, and a storage medium for optimizing the structure of the.

【0002】更に詳しくは、本発明は、ダウンロードな
ど所定の媒体を介してシステム間を移動するプログラム
を処理するデータ処理システム及びデータ処理方法、並
びに記憶媒体に係り、特に、システム間の移動のために
プログラムの構造を最適化するとともに移動先のシステ
ムにおけるメモリの使用量の最適化を行うデータ処理シ
ステム及びデータ処理方法、並びに記憶媒体に関する。
More specifically, the present invention relates to a data processing system and a data processing method for processing a program that moves between systems via a predetermined medium such as download, and a storage medium, and more particularly, for moving between systems. The present invention relates to a data processing system, a data processing method, and a storage medium for optimizing the structure of a program and optimizing the amount of memory used in a destination system.

【0003】[0003]

【従来の技術】昨今、情報処理や情報通信などのコンピ
ューティング技術が飛躍的に向上し、コンピュータ・シ
ステムが広汎に普及してきている。さらに、コンピュー
タどうしを相互接続するネットワーク・コンピューティ
ング技術に対する要望も高まってきている。ネットワー
ク接続環境下では、コンピュータ資源の共有や、情報の
共有・流通・配布・交換などの協働的作業を円滑に行うこ
とができる。
2. Description of the Related Art In recent years, computing technologies such as information processing and information communication have been dramatically improved, and computer systems have become widespread. Furthermore, there is an increasing demand for network computing technology for interconnecting computers. In a network connection environment, collaborative work such as sharing of computer resources and sharing, distribution, distribution, and exchange of information can be smoothly performed.

【0004】現在、多くのコンピュータ同士は、LAN
(Local Area Network)やインターネットなどのネット
ワークにより相互接続されている。コンテンツやプログ
ラムなどのデータをシステム間で移動させたい場合、従
来はフロッピー(登録商標)・ディスクやCD(Compac
t Disc)などの可搬型の記憶媒体を利用していたが、最
近ではネットワーク経由で行われることが多くなってき
ている。
Currently, many computers use LAN
They are interconnected by a network such as (Local Area Network) or the Internet. When you want to move data such as contents and programs between systems, it is traditional to use a floppy (registered trademark) disk or CD (Compac
t Disc) was used as a portable storage medium, but recently, it is often performed via a network.

【0005】本明細書中では、データ移動のうち、プロ
グラムを保管するデータ管理装置(サーバなど)からプ
ログラムを利用するデータ利用装置(クライアントな
ど)に移動して利用することを「ダウンロード」と呼ぶ
ことにする。ダウンロードの方法として、一括転送方
法、クラス単位の転送方法、ページ単位の転送方法等が
ある。
In the present specification, among data movements, moving and using from a data management device (server or the like) that stores a program to a data utilization device (client or the like) that uses the program is called "download". I will decide. As the download method, there are a batch transfer method, a class-based transfer method, a page-based transfer method, and the like.

【0006】一括転送方法 プログラムの一括転送を提供しているものの例として、
SunMicrosystems,Incにより開発さ
れた"JavaApplet"が挙げられる。
Batch Transfer Method As an example of one that provides batch transfer of programs,
"JavaApplet" developed by Sun Microsystems, Inc. may be mentioned.

【0007】通常はHTML(Hyper Text Markup Lang
uage)で記述されるWebページにJavaApple
tを組み合わせることで、その機能を拡張することがで
きる。JavaAppletは、複数のJavaクラス
・ファイル、又は、それらを1つにまとめたJARファ
イルによって構成される。これらは、サーバで保存、管
理される。一括転送方法の場合は、JARファイルを利
用する場合に相当する。JARファイルには、通常、J
avaAppletの実行に必要なすべてのクラス・フ
ァイルが格納されている。
Normally, HTML (Hyper Text Markup Lang)
uAge) to the Web page described in Java Apple
The function can be expanded by combining t. The Java Applet is composed of a plurality of Java class files or a JAR file in which they are combined. These are stored and managed by the server. The batch transfer method corresponds to using a JAR file. JAR files are usually J
Contains all the class files needed to run avaApplet.

【0008】JavaAppletの実行は、通常、W
ebブラウザが備えているJavaVM(仮想マシン)
によって行われる。但し、JavaVMは、HTMLに
記述されたJavaAppletを実行する際に参照し
たJavaクラスがJavaVM上に存在しないと、参
照したJavaクラスを含むJARファイルをサーバか
らダウンロードする。そして、ダウンロードが完了する
と、JavaVMはJavaAppletの実行を開始
する。
[0008] JavaApplet execution is usually performed by W
Java VM (virtual machine) included in the eb browser
Done by However, Java VM downloads a JAR file including the referenced Java class from the server if the Java class referred to when executing the Java Applet described in HTML does not exist on the Java VM. Then, when the download is completed, the Java VM starts executing the Java Applet.

【0009】しかし、この方法では、JavaAppl
etの実行に先立ってJARファイルのダウンロードを
すべて完了する必要がある。このため、プログラムのダ
ウンロード実行には非常に時間がかかるという問題があ
る。
However, in this method, JavaAppl is used.
All JAR file downloads must be completed prior to running et. Therefore, there is a problem that it takes a very long time to download and execute the program.

【0010】クラス単位の転送方法 また、JavaApplet は、クラスのダウンロー
ド単位として、Javaクラス・ファイルを用いること
もできる。この場合、Javaクラス・ファイルのダウ
ンロードとJavaAppletの実行は交互に行われ
ることになる。すなわち、HTMLに記述されたJav
aAppletを実行する際に参照したJavaクラス
がJavaVM上に存在しないと、JavaVMは、J
avaAppletの実行を一時停止し、参照したJa
vaクラスに対応するJavaクラス・ファイルのダウ
ンロードを行う。そして、ダウンロードが完了すると、
JavaVMは、JavaAppletの実行を再開す
る。このような動作は、JavaApplet実行中に
JavaVMに存在しないJavaクラスが検出される
毎に行われる。
Transfer Method in Class Unit Java Applet can also use a Java class file as a class download unit. In this case, the download of the Java class file and the execution of Java Applet are performed alternately. That is, the Java described in HTML
If the Java class referenced when executing aApplet does not exist in JavaVM, JavaVM
Ja that referred to by suspending the execution of avaApplet
Download the Java class file corresponding to the va class. And when the download is complete,
JavaVM restarts the execution of JavaApplet. Such an operation is performed each time a Java class that does not exist in the Java VM is detected during execution of Java Applet.

【0011】このようなクラス単位の転送方法は、プロ
グラムの一括ダウンロードと比較して転送量を削減でき
るという利点はあるものの、クラス内には使用されない
メソッドやデータが含まれるため効率的ではないという
問題がある。また、ダウンロード回数が増えるという問
題がある。
[0011] Although such a class-by-class transfer method has the advantage that the transfer amount can be reduced as compared with batch download of programs, it is not efficient because it contains methods and data that are not used in the class. There's a problem. There is also a problem that the number of downloads increases.

【0012】ダウンロード要求の処理は、ダウンロード
に利用するネットワークの遅延とサーバの負荷に依存す
る。この遅延のことを、以下では「リクエスト・レイテ
ンシ」と呼ぶことにする。クラス単位の転送手法は、ダ
ウンロード回数が増加するため、リクエスト・レイテン
シが大きくなり、結果としてダウンロード実行に時間が
かかってしまうという問題がある。さらに、クラス単位
の転送方法は特定の言語を前提としているため、異なる
言語で記述されたプログラムに対して適用できないとい
う問題もある。
The processing of the download request depends on the delay of the network used for the download and the load of the server. This delay will be referred to as "request latency" below. The transfer method on a class-by-class basis has a problem in that the number of downloads increases, the request latency increases, and as a result, it takes time to execute the download. Further, since the transfer method in units of classes is based on a specific language, there is a problem that it cannot be applied to programs written in different languages.

【0013】また、JavaAppletの転送方法に
対しては、幾つかの研究や開発がなされている。
Further, some researches and developments have been made on the transfer method of Java Applet.

【0014】このうち1つの手法として、プログラムの
振る舞いを示すプロファイル・データやプログラムの構
造を解析した結果を用いて、Javaクラスを高い頻度
で利用される部分と低い頻度で利用される2つのクラス
に分割を行い、Javaクラスのダウンロード要求がJ
avaVMによりなされた場合には、高い頻度で利用さ
れるクラスのみをダウンロードすることで、転送量を削
減し起動時間の短縮を行っている。
As one of these methods, the profile data showing the behavior of the program and the result of analysis of the structure of the program are used, and the Java class is used in a high frequency part and in two low frequency classes. The Java class download request to J
In the case of avaVM, only the frequently used class is downloaded to reduce the transfer amount and shorten the boot time.

【0015】この改良手法は、クラス内の不要なメソッ
ドやデータをある程度削減できるという効果はあるもの
の、2分割であるため、プログラムの終了時に必要であ
るメソッドやデータであっても使用頻度が高いと判断さ
れれば、そのクラスが参照された際には初期動作時であ
ってもダウンロードされるため、データ削減が不十分で
あるという問題がある。また、ダウンロード回数の増加
と特定の言語を前提とする点に関しては改善されていな
い。
This improved method has the effect of reducing unnecessary methods and data in the class to some extent, but since it is divided into two, even the methods and data required at the end of the program are frequently used. If so, there is a problem that the data reduction is insufficient because the class is referenced and is downloaded even during the initial operation. In addition, there is no improvement in terms of increasing the number of downloads and assuming a specific language.

【0016】また、別の手法として、プロファイル・デ
ータやプログラムの構造解析の結果を用いて、Java
クラス内のメソッドを予測される使用順序に並べ替え
る。Javaクラスは、あらかじめ決められたタイミン
グでサーバ側からのダウンロードが開始される。そし
て、JavaVMは、Javaクラスが完全にダウンロ
ードするのを待たずに、必要とされるメソッドやデータ
のダウンロードが終了した時点で実行を開始すること
で、ダウンロードとプログラム実行を並列化し、ダウン
ロード実行遅延の改善を行う。
As another method, the profile data and the result of the structural analysis of the program are used to execute Java.
Arrange the methods in the class into the expected usage order. The Java class is downloaded from the server side at a predetermined timing. Then, JavaVM does not wait for the Java class to be completely downloaded, but starts execution when the required methods and data have been downloaded, thereby parallelizing the download and program execution, and delaying the execution of the download. Make improvements.

【0017】この改良手法によれば、クラス内の不要な
メソッドやデータを削減できるという効果がある。ま
た、この改良手法によれば、サーバからデータを一方的
に送りつける方法をとることにより、リクエスト・レイ
テンシは小さくなる。しかしながら、ダウンロード回数
がメソッドの個数になるため、非常に大きくなってしま
うという問題がある。また、特定の言語を前提とする点
に関しては改善されていない。
According to this improved method, there is an effect that unnecessary methods and data in the class can be reduced. Further, according to this improved method, the request latency is reduced by adopting the method of unidirectionally sending the data from the server. However, there is a problem that the number of downloads becomes the number of methods, which makes it extremely large. In addition, there is no improvement regarding the assumption of a specific language.

【0018】ページ単位の転送方法 ページ単位のダウンロード機能を提供しているものの例
として、UNIX(登録商標)系オペレーティング・シ
ステム(OS)などが持つ仮想記憶機構がある。ここ
で、「ページ」とは、仮想記憶機構が利用するメモリ管
理装置や仮想記憶機構自身の構成によって決定する固定
長のメモリ単位のことであり、例えば4Kバイトの大き
さがページとして利用される。
Transfer method in page units As an example of providing the download function in page units, there is a virtual memory mechanism possessed by a UNIX (registered trademark) type operating system (OS). Here, the "page" is a fixed-length memory unit determined by the configuration of the memory management device used by the virtual memory mechanism or the virtual memory mechanism itself, and for example, a size of 4 Kbytes is used as a page. .

【0019】仮想記憶機構では、プログラムが配置され
るメモリをページ単位で区切り、各ページに仮想アドレ
スと実際の物理アドレスを割り当てる。プログラムの実
行によりある仮想アドレスを参照する。参照は、メモリ
管理装置によってチェックが行われる。参照されたペー
ジが既にメモリにロードされている場合には、参照はそ
のまま継続される。また、参照されたページが未だメモ
リにロードされていない場合には、参照の実行を一時停
止させて、対応する物理アドレスを使い参照されたペー
ジをハード・ディスクなどの2次記憶装置からロードを
行う。そして、メモリへのロード完了後にプログラムの
ページに対する参照を継続実行させることで、プログラ
ムの起動時にすべてのプログラムを2次記憶装置からロ
ードする必要性をなくしている。
In the virtual memory mechanism, the memory in which the program is arranged is divided into pages, and a virtual address and an actual physical address are assigned to each page. Refers to a virtual address by executing the program. The reference is checked by the memory management device. If the referenced page is already loaded in memory, the reference continues. If the referenced page is not yet loaded in memory, the reference execution is suspended and the referenced page is loaded from the secondary storage device such as a hard disk using the corresponding physical address. To do. Then, by continuously executing the reference to the page of the program after the completion of the loading into the memory, it is not necessary to load all the programs from the secondary storage device at the time of starting the program.

【0020】このページ単位の転送方法の主目的は、拡
張可能なメモリ空間の提供とその保護機能の提供にあ
り、ダウンロードの最適化は副次的な効果である。
The main purpose of this page-by-page transfer method is to provide an expandable memory space and its protection function, and the optimization of download is a secondary effect.

【0021】ダウンロードの最適化という観点でみる
と、ページ単位の転送方法は、Java言語など特定の
言語を前提としないという点で汎用的ではある。しかし
ながら、規則的にページ単位でプログラムの分割を行う
ことになるため、1つのページ内には現在のプログラム
の実行には不要なプログラム・コードやデータが含まれ
るため、効率的ではないという問題がある。また、プロ
グラムの起動時に複数の異なるページへのアクセスが発
生する傾向があり、プログラム起動時のダウンロード回
数が増加するという問題がある。
From the viewpoint of optimizing download, the page-by-page transfer method is versatile in that it does not require a specific language such as Java language. However, since the program is regularly divided into pages, there is a problem that it is not efficient because one page contains program code and data that are unnecessary for executing the current program. is there. In addition, there is a tendency that a plurality of different pages are accessed at the time of starting the program, and the number of downloads at the time of starting the program increases.

【0022】[0022]

【発明が解決しようとする課題】プログラムなどのデー
タをサーバなどのデータ管理装置からクライアントなど
のデータ利用装置に移動して利用する(すなわちプログ
ラムを実行する)にはデータ移動の完了を待つ必要があ
る。このため、システムの処理速度が低下するという問
題がある。この解決方法として、データをその構成要素
に分割して、データの利用に応じて適宜構成要素を単位
として移動を行うという方法がある。
In order to move and use data such as a program from a data management device such as a server to a data use device such as a client (that is, execute a program), it is necessary to wait for the completion of the data movement. is there. Therefore, there is a problem that the processing speed of the system is reduced. As a solution to this problem, there is a method in which data is divided into its constituent elements and the constituent elements are appropriately moved as a unit according to the use of the data.

【0023】しかしながら、従来の手法は、データの分
割が効率的ではなく、その時点では不要な要素が含まれ
ているという問題がある。また、分割が最適に行われな
いことにより、データの移動回数が増加し過ぎて、リク
エスト・レイテンシを増加させるという問題がある。さ
らに、特定の利用環境を前提としているため、一般に適
用することが困難であるという問題がある。
However, the conventional method has a problem that the division of data is not efficient and unnecessary elements are included at that time. Further, since the division is not performed optimally, there is a problem that the number of times data is moved excessively increases and the request latency increases. Further, it is difficult to apply it in general because it is premised on a specific usage environment.

【0024】本発明は、このような技術的課題を勘案し
たものであり、命令や関数呼出しなどのシンボル、変数
などの複数の基本構成要素からなるプログラムの構造を
最適化することができる、優れたデータ処理システム及
びデータ処理方法、並びに記憶媒体を提供することを目
的とする。
The present invention takes these technical problems into consideration, and is excellent in that it can optimize the structure of a program consisting of a plurality of basic constituent elements such as symbols such as instructions and function calls and variables. Another object of the present invention is to provide a data processing system, a data processing method, and a storage medium.

【0025】本発明の更なる目的は、ダウンロードなど
所定の媒体を介してシステム間を移動させるためにプロ
グラムの構造を最適化するとともに移動先のシステムに
おけるメモリの使用量の最適化を行うことができる、優
れたデータ処理システム及びデータ処理方法、並びに記
憶媒体を提供することにある。
A further object of the present invention is to optimize the structure of a program for moving between systems via a predetermined medium such as download and to optimize the amount of memory used in the destination system. An object of the present invention is to provide an excellent data processing system, a data processing method, and a storage medium that can be performed.

【0026】本発明の更なる目的は、特定の利用環境を
前提としないようにデータ分割を行うことにより、デー
タの移動に際しデータ転送量とデータ転送回数の最適化
を実現するようにプログラムを再構成することができ
る、優れたデータ処理システム及びデータ処理方法、並
びに記憶媒体を提供することにある。
A further object of the present invention is to perform a program division so as to optimize the data transfer amount and the number of data transfers when moving data by dividing the data so as not to assume a specific usage environment. An object is to provide an excellent data processing system, data processing method, and storage medium that can be configured.

【0027】[0027]

【課題を解決するための手段及び作用】本発明は、上記
課題を参酌してなされたものであり、その第1の側面
は、複数の基本構成要素によって構成されるデータを処
理するデータ処理システム又はデータ処理方法であっ
て、データ利用時においてデータに含まれる各基本構成
要素についての参照情報を生成する参照情報生成手段又
はステップと、該参照情報を基に各基本構成要素間の関
連性を考慮して、関連性のある複数の基本構成要素を1
つの新規構成要素としてデータを新規構成要素の集合と
して再構成するデータ再構成手段又はステップと、を具
備することを特徴とするデータ処理システム又はデータ
処理方法である。
The present invention has been made in view of the above problems, and a first aspect thereof is a data processing system for processing data constituted by a plurality of basic constituent elements. Alternatively, in the data processing method, reference information generating means or step for generating reference information about each basic constituent element included in the data at the time of using the data, and the relationship between each basic constituent element based on the reference information, Considering multiple related basic components,
A data processing system or a data processing method, comprising: a data reconstructing unit or a step of reconstructing data as one new component as a set of new components.

【0028】但し、ここで言う「システム」とは、複数
の装置(又は特定の機能を実現する機能モジュール)が
論理的に集合した物のことを言い、各装置や機能モジュ
ールが単一の筐体内にあるか否かは特に問わない。
However, the term "system" as used herein refers to a logical assembly of a plurality of devices (or functional modules that realize a specific function), and each device and functional module have a single housing. It does not matter whether it is in the body or not.

【0029】ここで言うデータとは、例えばコンピュー
タ可読形式で記述された命令列からなるプログラムのこ
とである。また、基本構成要素は、関数と変数などのシ
ンボルであってもよいし、ベーシック・ブロックであっ
てもよいし、シンボル・テーブルやリロケーション・エ
ントリなどのプログラムの管理情報要素を含んでいても
よい。
The data referred to here is, for example, a program including an instruction sequence described in a computer-readable format. Further, the basic constituent elements may be symbols such as functions and variables, may be basic blocks, and may include program management information elements such as symbol tables and relocation entries. .

【0030】また、参照情報は、データ毎に累積され一
般化した情報である。例えば、データ利用時において基
本構成要素が最初に利用される時刻情報、データ利用時
に基本構成要素が利用される頻度情報、基本構成要素が
利用された装置に関する情報などを参照情報として用い
ることができる。このような参照情報は、プログラムの
実行時に、関数や変数などの基本構成要素がどのような
頻度でアクセスされるか、あるいは、どのような時刻又
は時間間隔でアクセスされるかなどという、プログラム
実行時の特性に関する情報を得る「トレース処理」を行
うことによって生成することができる。
The reference information is information that is accumulated and generalized for each data. For example, the time information when the basic component is first used when using the data, the frequency information when the basic component is used when using the data, the information about the device in which the basic component is used, etc. can be used as the reference information. . Such reference information is used for program execution, such as how often basic components such as functions and variables are accessed during program execution, or at what time or time interval. It can be generated by performing "trace processing" to obtain information about characteristics of time.

【0031】また、本発明の第1の側面に係るデータ処
理システム又はデータ処理方法は、新規構成要素を単位
として装置間でデータの移動を行うデータ移動手段又は
ステップをさらに備えていてもよい。データの「移動」
とは、ネットワークを利用したダウンロードであっても
よいし、あるシステムに接続されているデバイスからの
移動であってもよいし、あるシステム内の同一メモリか
らの移動であってもよい。
Further, the data processing system or the data processing method according to the first aspect of the present invention may further include a data moving means or step for moving data between devices in units of a new component. "Move" data
The term may be download using a network, movement from a device connected to a certain system, or movement from the same memory in a certain system.

【0032】また、本発明の第1の側面に係るデータ処
理システム又はデータ処理方法は、新規構成要素単位で
プログラムの動的リンクを行う動的リンク手段又はステ
ップをさらに備えていてもよい。
Further, the data processing system or the data processing method according to the first aspect of the present invention may further comprise a dynamic linking means or step for dynamically linking the program in units of new components.

【0033】本発明の第1の側面に係るデータ処理シス
テム又はデータ処理方法によれば、まず基本構成要素の
集合として構成されるデータに関して参照情報生成手段
又はステップにより基本構成要素毎の参照情報を得る。
次に、データ再構成手段又はステップは、1つ又は複数
の参照情報と1つのデータを入力とし、参照情報を利用
して関連する複数の基本構成要素を1つの新規構成要素
として構成し、データを新規構成要素の集合として再構
成を行う。再構成が行われたデータはデータを保管する
データ管理装置に置かれる。
According to the data processing system or the data processing method of the first aspect of the present invention, first, the reference information for each basic component is obtained by the reference information generating means or step with respect to the data configured as a set of basic components. obtain.
Next, the data reconstructing means or step inputs one or more pieces of reference information and one piece of data, and uses the reference information to form a plurality of related basic constituent elements as one new constituent element. Is reconstructed as a set of new components. The reconstructed data is placed in the data management device that stores the data.

【0034】参照情報は、データ毎に累積され一般化し
た情報であり、例えば、データ利用時において基本構成
要素が最初に利用される時刻情報、データ利用時に基本
構成要素が利用される頻度情報、基本構成要素が利用さ
れた装置に関する情報などである。例えば、基本構成要
素が最初に利用される時刻情報を参照情報として用いた
場合、参照時刻が近い基本構成要素はプログラム実行時
に連続的に呼び出される可能性が高く、逆に、参照時刻
が隔たった基本構成要素の間には、プログラム実行時
に、ユーザ入力待ちやディスク・アクセスなどが含まれ
ているなど関連性が低いと思料される。
The reference information is information that is accumulated and generalized for each data, such as time information when the basic component is first used when using the data, frequency information when the basic component is used when using the data, Information about the device in which the basic components are used is included. For example, when the time information when the basic component is first used is used as the reference information, the basic component whose reference time is close is likely to be continuously called when the program is executed, and conversely, the reference time is separated. It is considered that the basic components are not related to each other, such as waiting for user input and disk access, when the program is executed.

【0035】したがって、データ再構成手段又はステッ
プは、参照情報を基にして、データの利用の観点から参
照が近接している基本構成要素の集合として新規構成要
素を構成することができる。例えばデータがプログラム
の場合であれば、新規構成要素はデータの参照情報を基
に決定されるので、たとえ同じクラス内のメソッドやデ
ータであっても、互いの参照関係が近接していない場合
には異なる新規構成要素として分割される。また、たと
え異なるクラスに属するメソッドであっても、互いに近
接して参照されているメソッドやデータは1つの新規構
成要素として構成される。
Therefore, the data reconstructing means or step can construct a new constituent element as a set of basic constituent elements whose references are close to each other from the viewpoint of data usage, based on the reference information. For example, if the data is a program, the new component is determined based on the reference information of the data, so even if the methods and data in the same class do not have close reference relationships with each other. Are split as different new components. Further, even if the methods belong to different classes, the methods and data that are referred to in close proximity to each other are configured as one new component.

【0036】本発明の第1の側面に係るデータ処理シス
テム又はデータ処理方法によれば、データをサーバなど
のデータ管理装置からクライアントなどのデータ利用装
置に移動(例えば、ダウンロード)して利用する際に
は、新規構成要素を単位としてダウンロードを行う。し
たがって、たとえ同じクラス内のメソッドやデータであ
っても、互いの参照関係が近接していない場合には異な
る新規構成要素として分割されるので、データ転送量を
最適化することができる。また、たとえ異なるクラスに
属するメソッドであっても、互いに近接して参照されて
いるメソッドやデータは1つの新規構成要素として構成
されるので、1回の転送で移動が行え、移動回数を最適
化することができる。
According to the data processing system or the data processing method of the first aspect of the present invention, when data is moved (for example, downloaded) from a data management device such as a server to a data utilization device such as a client and used. In this case, the new component is downloaded as a unit. Therefore, even if the methods and data in the same class are divided as different new components if the reference relationships are not close to each other, the data transfer amount can be optimized. In addition, even if the methods belong to different classes, the methods and data that are referred to in close proximity to each other are configured as one new component, so they can be moved by one transfer, and the number of moves can be optimized. can do.

【0037】また、データ利用装置にあるデータ移動手
段は、データの利用(すなわちプログラムの実行)と並
行して、新規構成要素を単位としてデータの移動(すな
わちダウンロード)を行うことができる。データ利用装
置側では、幾つかの新規構成要素のみを移動すればデー
タの利用が可能となるので、データ移動の最適化が可能
となる。
Further, the data moving means in the data using device can move (that is, download) the data in units of a new component in parallel with the use of the data (that is, the execution of the program). On the side of the data utilizing apparatus, the data can be utilized by moving only some of the new components, so that the data movement can be optimized.

【0038】また、本発明は、データが基本構成要素の
集合として構成されること、基本構成要素に対して参照
情報を得ることが可能であること、及び、データ移動手
段を仲介としてデータ利用装置上でデータが利用できる
こと、という条件を満たすすべてのデータに対して適用
できるため広範な適用範囲とすることができる。データ
が特定の言語で記述されているなどの制約がない。
Further, according to the present invention, the data is configured as a set of basic constituent elements, it is possible to obtain reference information for the basic constituent elements, and the data utilizing apparatus is mediated by the data moving means. Since it can be applied to all data satisfying the condition that data can be used above, it can be applied in a wide range. There are no restrictions such as data being written in a specific language.

【0039】なお、前記参照情報生成手段又はステップ
は、再構成されたデータを利用するデータ利用装置内に
配置されていてもよい。このような場合、前記データ利
用装置において参照情報の取得の指示が行われたことに
応答して参照情報の取得を行うようにしてもよいし、自
動的に参照情報の取得を行うようにしてもよいし、常に
参照情報の取得を行うようにしてもよい。
The reference information generating means or step may be arranged in a data utilization device that utilizes the reconstructed data. In such a case, the reference information may be acquired in response to an instruction to acquire the reference information in the data utilizing device, or the reference information may be automatically acquired. Alternatively, the reference information may be always acquired.

【0040】あるいは、前記参照情報生成手段又はステ
ップは、再構成されたデータを利用するデータ利用装置
以外に配置されていてもよい。このような場合、前記デ
ータ利用装置におけるデータ利用を模擬して参照情報の
取得を行うようにしてもよいし、データを解析して参照
情報の取得を行うようにしてもよい。
Alternatively, the reference information generating means or step may be arranged in a device other than the data using device that uses the reconstructed data. In such a case, the reference information may be acquired by simulating the use of data in the data use device, or the reference information may be acquired by analyzing the data.

【0041】また、データ再構成手段又はステップは、
データの移動に先立ってデータの再構成を行うようにし
てもよいし、あるいは、データの移動が完了した後にデ
ータの再構成を行うようにしてもよい。
The data reconstructing means or steps are
The data may be reconstructed prior to the data movement, or the data may be reconstructed after the data movement is completed.

【0042】データ再構成手段又はステップは、参照情
報を基に基本構成要素間の利用関係を定義して、該定義
を基にして新規構成要素を生成するが、基本構成要素が
利用される参照時刻から計算される参照間隔を利用関係
として定義するようにしてもよい。
The data reconstructing means or step defines the usage relationship between the basic constituent elements based on the reference information and generates a new constituent element based on the definition. The reference interval calculated from the time may be defined as the usage relationship.

【0043】例えば、利用関係が特定の参照間隔閾値と
なる基本構成要素をまとめて1つの新規構成要素を生成
するようにしてもよい。この場合、すべての又は特定の
複数のデータの複数の利用関係から参照間隔閾値を決定
するようにしてもよい。例えば、複数の参照情報から得
られる参照間隔の平均値に標準偏差を加算した値を参照
情報閾値として決定するようにしてもよい。
For example, basic constituent elements whose usage relationship is a specific reference interval threshold may be combined to generate one new constituent element. In this case, the reference interval threshold may be determined from a plurality of usage relationships of all or specific plurality of data. For example, a value obtained by adding the standard deviation to the average value of the reference intervals obtained from a plurality of pieces of reference information may be determined as the reference information threshold value.

【0044】また、本発明の第2の側面は、複数の基本
構成要素によって構成されるデータの処理をコンピュー
タ・システム上で実行するように記述されたコンピュー
タ・ソフトウェアをコンピュータ可読形式で物理的に格
納した記憶媒体であって、前記コンピュータ・ソフトウ
ェアは、データ利用時においてデータに含まれる各基本
構成要素についての参照情報を生成する参照情報生成ス
テップと、該参照情報を基に各基本構成要素間の関連性
を考慮して、関連性のある複数の基本構成要素を1つの
新規構成要素として生成して、データを新規構成要素の
集合として再構成するデータ再構成ステップと、を具備
することを特徴とする記憶媒体である。
The second aspect of the present invention is to physically execute computer software written in a computer-readable format so as to execute processing of data constituted by a plurality of basic components on a computer system. A storage medium storing the computer software, wherein the computer software includes a reference information generating step of generating reference information about each basic constituent element included in the data when the data is used, and an inter-basic constituent element based on the reference information. Data reconstruction step of generating a plurality of related basic constituent elements as one new constituent element and reconstructing the data as a set of the new constituent elements in consideration of the relationship of It is a characteristic storage medium.

【0045】本発明の第2の側面に係る記憶媒体は、例
えば、さまざまなプログラム・コードを実行可能な汎用
コンピュータ・システムに対して、コンピュータ・ソフ
トウェアをコンピュータ可読な形式で提供する媒体であ
る。このような媒体は、例えば、CD(Compact Disc)
やFD(Floppy Disk)、MO(Magneto-Optical dis
c)などの着脱自在で可搬性の記憶媒体である。あるい
は、ネットワーク(ネットワークは無線、有線の区別を
問わない)などの伝送媒体などを経由してコンピュータ
・ソフトウェアを特定のコンピュータ・システムに提供
することも技術的に可能である。
The storage medium according to the second aspect of the present invention is a medium for providing computer software in a computer-readable format to a general-purpose computer system capable of executing various program codes, for example. Such a medium is, for example, a CD (Compact Disc).
And FD (Floppy Disk), MO (Magneto-Optical dis)
It is a removable and portable storage medium such as c). Alternatively, it is technically possible to provide computer software to a specific computer system via a transmission medium such as a network (whether the network is wireless or wired).

【0046】本発明の第2の側面に係る記憶媒体は、コ
ンピュータ・システム上で所定のコンピュータ・ソフト
ウェアの機能を実現するための、コンピュータ・ソフト
ウェアと記憶媒体との構造上又は機能上の協働的関係を
定義したものである。換言すれば、本発明の第2の側面
に係る記憶媒体を介して所定のコンピュータ・ソフトウ
ェアをコンピュータ・システムにインストールすること
によって、コンピュータ・システム上では協働的作用が
発揮され、本発明の第1の側面に係るデータ処理システ
ム又はデータ処理方法と同様の作用効果を得ることがで
きる。
The storage medium according to the second aspect of the present invention is a structural or functional cooperation between the computer software and the storage medium for realizing a predetermined computer software function on a computer system. It defines the physical relationship. In other words, by installing the predetermined computer software in the computer system via the storage medium according to the second aspect of the present invention, the cooperative action is exerted on the computer system, and the second aspect of the present invention is achieved. It is possible to obtain the same effects as the data processing system or the data processing method according to the first aspect.

【0047】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施形態や添付する図面に基づくより
詳細な説明によって明らかになるであろう。
Further objects, features and advantages of the present invention are as follows.
It will be apparent from the embodiments of the present invention described later and the more detailed description based on the accompanying drawings.

【0048】[0048]

【発明の実施の形態】以下、図面を参照しながら本発明
の実施形態について詳解する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below in detail with reference to the drawings.

【0049】図1には、本発明に係るデータ処理方法を
適用することができるシステム全体の構成を模式的に示
している。このシステムは、サーバ(Server)1
と、クライアント(Client)2,3…が、ネット
ワーク(Network)4によって相互接続されるこ
とによって構成されている。
FIG. 1 schematically shows the configuration of the entire system to which the data processing method according to the present invention can be applied. This system is a server 1
, And clients (Clients) 2, 3, ... Are interconnected by a network (Network) 4.

【0050】サーバ1やクライアント2,3…は、例え
ば、ワークステーション(WS)やパーソナル・コンピ
ュータ(PC)などの一般的なコンピュータ・システム
上でそれぞれサーバ・ソフトウェアやクライアント・ソ
フトウェアを起動するという形態で実現される。この種
のコンピュータは、中央コントローラとしてのCPU
(Central Processing Unit)と、RAMやROMなど
のメモリ装置、ハード・ディスクなどの外部記憶装置、
ディスプレイやキーボード/マウスなどのユーザ・イン
ターフェースを備え、オペレーティング・システムの制
御下でプログラムの実行が行われる。
The server 1 and the clients 2, 3 ... Start the server software and the client software on a general computer system such as a workstation (WS) or a personal computer (PC), for example. Will be realized in. This kind of computer has a CPU as a central controller
(Central Processing Unit), a memory device such as RAM or ROM, an external storage device such as a hard disk,
A user interface such as a display and a keyboard / mouse is provided, and the program is executed under the control of the operating system.

【0051】サーバ1は、プログラム1−1、プログラ
ム1−2などの複数のプログラムを持つ。サーバ1とク
ライアント2、クライアント3は、LAN(Local Area
Network)やインターネットなどのネットワーク4によ
って接続されている。クライアント2とクライアント3
は、プログラム1−1又はプログラム1−2を実行する
際には、サーバ1よりプログラムのダウンロードを行う
とともに、プログラムの実行するものとする。
The server 1 has a plurality of programs such as program 1-1 and program 1-2. The server 1, the client 2, and the client 3 are LAN (Local Area)
Network) and the network 4 such as the Internet. Client 2 and client 3
When executing the program 1-1 or the program 1-2, the program is downloaded from the server 1 and the program is executed.

【0052】本実施形態では、ネットワーク4を介して
サーバ1と各クライアント2,3が接続されているが、
それ以外の媒体を利用した接続又は構成でもあってもよ
い。例えば、プログラム1−1,1−2がハード・ディ
スクやDVD(Digital Versatile Disc)などの2次記
憶装置に格納され、クライアント2,3…と接続されて
いるとしてもよい。そして、各クライアント2,3…は
プログラムの実行に際して、それら2次記憶装置からプ
ログラムを読み出してメモリ上にロードし実行をするも
のとしてもよい。
In this embodiment, the server 1 and the clients 2 and 3 are connected via the network 4,
The connection or configuration using another medium may be used. For example, the programs 1-1 and 1-2 may be stored in a secondary storage device such as a hard disk or a DVD (Digital Versatile Disc) and connected to the clients 2, 3, .... Each client 2, 3, ... May read the program from the secondary storage device, load the program on the memory, and execute the program when executing the program.

【0053】図2には、図1で示したプログラムの内部
構成例を模式的に示している。ここでは、プログラムの
例として、マインスイーパー・ゲーム・プログラムであ
る"kmines"プログラム(kmines:the
KDE minesweeper;Copyright
(C)1996−97−98−99 NicolasH
ADACEK)を用いている。但し、図示のkmine
sプログラムは、米インテル社の80386アーキテク
チャのELFフォーマットで作成されるものとする。
FIG. 2 schematically shows an example of the internal structure of the program shown in FIG. Here, as an example of the program, a "kmines" program (kmines: the) which is a minesweeper game program.
KDE minesweeper; Copyright
(C) 1996-97-98-99 Nicolas H
ADACEK) is used. However, the illustrated kmine
It is assumed that the s program is created in ELF format of Intel Corporation 80386 architecture.

【0054】同図に示すように、プログラムの構成はテ
キスト(text)、データ(data)、ヘッダ(h
eader)の3つに大きく分類できる。このうちテキ
ストはプログラムの命令列であり、図2に示す例ではテ
キスト5−3で示されている。プログラムの命令列は、
関数を単位として、テキストを構成している。本実施形
態では、関数をテキストを構成する基本構成要素として
扱う。図2には、kminesを構成する関数を1部示
している。
As shown in the figure, the structure of the program is text (text), data (data), header (h).
It can be roughly classified into three types. Of these, the text is the instruction sequence of the program, and is shown as the text 5-3 in the example shown in FIG. The instruction sequence of the program is
The text is composed of functions. In this embodiment, the function is treated as a basic constituent element that constitutes text. FIG. 2 shows a part of the functions constituting kmines.

【0055】データは、プログラムにより参照される変
数や定数のことであり、図2ではデータ5−4で示され
ている。ここでは、変数や定数は実際のダウンロードが
必要なものに限定される。つまり、プログラムの実行時
にスタック上やヒープ領域に動的に配置される変数や定
数はプログラムより参照はされるが、ダウンロードを行
う必要はないので、データ5−4から除外される。ま
た、静的に配置される変数や定数であっても、その初期
値が0などの特定値である場合には、プログラム実行開
始前に実行環境によって配置と初期化を行うことが可能
であるので、ダウンロードを行う必要がない。したがっ
て、このような変数や定数もデータ5−4から除外され
る。データ5−4は、以上を除く変数や定数に分割する
ことができる。
Data is a variable or constant referred to by a program, and is shown as data 5-4 in FIG. Here, variables and constants are limited to those that actually need to be downloaded. That is, the variables and constants dynamically arranged on the stack or in the heap area when the program is executed are referred to by the program but need not be downloaded, so they are excluded from the data 5-4. Further, even if a variable or constant is statically allocated, if its initial value is a specific value such as 0, it is possible to perform allocation and initialization by the execution environment before starting program execution. So no need to download. Therefore, such variables and constants are also excluded from the data 5-4. The data 5-4 can be divided into variables and constants other than the above.

【0056】本実施形態では、これら変数と定数をデー
タを構成する基本構成要素として扱う。図2では、例と
してkminesを構成する関数を1部示している。以
降、本明細書中では、関数と変数、定数を総称して「シ
ンボル」と呼ぶ。
In the present embodiment, these variables and constants are treated as basic constituent elements that constitute data. In FIG. 2, as an example, a part of the functions forming kmines is shown. Hereinafter, in this specification, a function, a variable, and a constant are collectively referred to as a “symbol”.

【0057】ヘッダは、プログラム管理データであり、
図2ではヘッダ5−5として示されている。ここで、プ
ログラム管理データとは、プログラムの実行によって直
接参照されることはないが、その実行を実現するために
実行環境によって参照されるデータ構造のことである。
The header is program management data,
In FIG. 2, it is shown as a header 5-5. Here, the program management data is a data structure that is not directly referenced by the execution of the program, but is referenced by the execution environment in order to realize the execution.

【0058】図示のように、プログラム管理データは、
さらに複数の管理データにより構成される。ELFフォ
ーマットの場合多くの管理データを持つが、本明細書で
は簡便のため、再配置テーブルであるrelocati
on5−6と動的シンボル・テーブルであるdynsy
m5−7の2つより構成されるものとする。
As shown, the program management data is
Further, it is composed of a plurality of management data. The ELF format has a lot of management data, but for the sake of simplicity in this specification, relocation table which is a relocation table is used.
on5-6 and dynamic symbol table dyny
It is assumed to be composed of two m5-7.

【0059】再配置テーブルは、命令列やデータのどの
部分が実行環境で決定されるアドレスを参照するかとそ
の参照の解決方法を示しており、実行環境はこれを利用
して決定したアドレスをプログラム・コードやデータに
適用する。また、動的シンボル・テーブルはシンボル参
照のアドレス解決を行うために利用される。これら2つ
の管理データは、テーブル形式で構成されるため、複数
のエントリから構成されている。再配置テーブルは複数
の再配置エントリから構成され、動的シンボル・テーブ
ルはシンボル・エントリにより構成される。
The relocation table indicates which part of the instruction string or data refers to an address determined by the execution environment and a method of solving the reference. The execution environment uses the address determined by this program as a program.・ Apply to code and data. The dynamic symbol table is also used for address resolution of symbol references. Since these two management data are configured in a table format, they are composed of a plurality of entries. The relocation table is composed of a plurality of relocation entries, and the dynamic symbol table is composed of symbol entries.

【0060】本実施形態では、再配置エントリとシンボ
ル・エントリをそれぞれ再配置テーブルと動的シンボル
・テーブルの基本構成要素として扱っている。プログラ
ム管理領域中の管理領域の種類によっては、その大きさ
が十分に小さいものである場合や、基本構成要素への分
割が困難である場合がある。そのような場合には、それ
らを1つの基本構成要素として扱う。
In this embodiment, the relocation entry and the symbol entry are treated as the basic constituent elements of the relocation table and the dynamic symbol table, respectively. Depending on the type of management area in the program management area, its size may be sufficiently small or it may be difficult to divide it into basic constituent elements. In such cases, they are treated as one basic component.

【0061】図2には、例としてkminesのヘッダ
の1部分を示している。再配置テーブルRelocat
ion5−6の最初のエントリrel_Kmine
s::Kmines(Qwidget*,char c
onst*)は、関数Kmines::Kmines
(Qwidget*,char const*)への参
照を行う命令列又はデータの位置と参照の解決方法が記
述されているエントリであることを示している。また、
動的シンボル・テーブルdynsym5−7の最初のエ
ントリsym_mainは、関数mainのアドレスを
決める情報が記述されているエントリであることを示し
ている。実際のkminesとは異なるが、図2ではプ
ログラムの実行がmainから始まるものとし、mai
nを直接参照する命令列又はデータがkminesプロ
グラム内にないものとし、このためrel_mainが
存在しないようになっている。
FIG. 2 shows a part of the header of kmines as an example. Relocation table Relocat
First entry rel_Kmine of ion5-6
s :: Kmines (Qwidget *, char c
onst *) is the function Kmines :: Kmines
This indicates that it is an entry that describes the position of the instruction string or data that refers to (Qwidget *, char const *) and the resolution method of the reference. Also,
The first entry sym_main of the dynamic symbol table dynsym5-7 indicates that it is the entry in which the information for determining the address of the function main is described. Although it is different from the actual kmines, the execution of the program is assumed to start from main in FIG.
It is assumed that there is no instruction sequence or data that directly refers to n in the kmines program, so that rel_main does not exist.

【0062】次いで、本発明の手法に基づくプログラム
の再構成手順について説明する。
Next, a program restructuring procedure based on the method of the present invention will be described.

【0063】まず、プログラムの再構成に必要となる参
照情報について説明する。以下の表1には本実施形態で
使用する参照情報を示している。
First, the reference information necessary for reconfiguring the program will be described. Table 1 below shows reference information used in this embodiment.

【0064】[0064]

【表1】 [Table 1]

【0065】上表に示す参照情報は、kminesプロ
グラムを米インテル社のプロセッサCeleron46
6MHz上で実行したときの値を示している。なお、説
明の簡素化のため、kminesが使用する動的ライブ
ラリやkmines内部の定数については省略してい
る。
In the reference information shown in the above table, the kmines program is used for the processor Celeron46 of Intel Corp.
It shows the value when executed at 6 MHz. Note that, for simplification of description, the dynamic library used by kmines and constants inside kmines are omitted.

【0066】表1に示した参照情報の各エントリは、I
ndexとSymbolとTimestampで構成さ
れる。Indexは、各エントリを区別するために説明
の便宜上あるもので、実際には必要ではない。
Each entry of the reference information shown in Table 1 is I
It is composed of index, Symbol, and Timestamp. The Index is provided for convenience of description to distinguish each entry, and is not actually necessary.

【0067】Symbolはシンボルを識別するために
使用される。表1では分かり易さのため文字列で示して
いるが、実際にはシンボルを識別するIDや動的ライブ
ラリを区別するIDが使用される。このため、表1では
同じシンボル名のエントリが存在するが、それらはファ
イル・スコープの異なる変数であり実際にはIDによっ
て区別することができる。
Symbol is used to identify a symbol. In Table 1, a character string is shown for the sake of clarity, but in practice, an ID for identifying a symbol or an ID for distinguishing a dynamic library is used. Therefore, although there are entries with the same symbol name in Table 1, they are variables with different file scopes, and can be actually distinguished by the ID.

【0068】また、Timestampはシンボルがプ
ログラムの実行時に最初に参照された時刻を示してい
る。プログラムの実行時に1度も参照されなかったシン
ボルは参照情報に現れない。Timestampを最初
にそのシンボルが参照された時刻とするのは、最初の参
照でそのシンボルのダウンロードが必要となるためであ
る。それ以後の参照では、既にダウンロードは完了して
いるため、それらの参照情報は必要としない。表1で
は、kminesが起動するまでのエントリをその参照
順、つまりTimestamp順で示している。
Timestamp indicates the time when the symbol was first referenced when the program was executed. Symbols that have never been referenced during program execution do not appear in the reference information. The reason why Timestamp is the time when the symbol is first referred to is that the symbol needs to be downloaded at the first reference. For subsequent references, the reference information is not needed because the download has already been completed. In Table 1, the entries until kmines are activated are shown in the reference order, that is, the Timestamp order.

【0069】このような参照情報は、プログラムの実行
時に関数や変数がどのような頻度でアクセスされるか、
あるいは、どのような時刻又は時間間隔でアクセスされ
るかなどの、プログラム実行時の特性に関する情報を得
る「トレース処理」を行うことによって生成することが
できる。トレースを実現する手法としては、プログラム
の実行情報を得るためにプログラム・コードに情報取得
を行うコードの追加を行うCode Insertio
n方式や、プログラムの実行からは透過的に実行環境に
よって定期的にプログラムの実行を中断してその時点の
プログラムのコンテキスト情報からプログラムの実行情
報の収集を行うSampling方式を挙げることがで
きる。
Such reference information indicates how often a function or variable is accessed during program execution,
Alternatively, it can be generated by performing a "trace process" for obtaining information regarding characteristics at the time of program execution, such as what time or time interval is accessed. As a method for realizing the trace, Code Insertion for adding a code for obtaining information to the program code in order to obtain execution information of the program
Examples of the method include an n method and a Sampling method in which execution of a program is interrupted periodically by an execution environment transparently from execution of the program and execution information of the program is collected from context information of the program at that time.

【0070】次いで、本発明の手法に基づくプログラム
の再構成手順について、図3に示すフローチャートを参
照しながら説明する。
Next, a program restructuring procedure based on the method of the present invention will be described with reference to the flowchart shown in FIG.

【0071】再構成の前提として、参照情報生成手段に
より、再構成対象のプログラムを構成するモジュールに
ついての上記の表1に示すような参照情報が与えられて
いるものとする。
As a premise of the reconfiguration, it is assumed that the reference information generation means has given the reference information as shown in Table 1 above for the modules constituting the program to be reconfigured.

【0072】まず、Timestampをキーとして参
照情報のエントリを参照時刻順にソートする(ステップ
S1)。
First, the entries of the reference information are sorted in the order of reference time using Timestamp as a key (step S1).

【0073】次いで、1つ前のエントリのTimest
ampとの差分をとることで各シンボル間の参照時間間
隔を計算する(ステップS2)。
Next, the Timest of the previous entry
The reference time interval between each symbol is calculated by taking the difference from amp (step S2).

【0074】次いで、得られた参照時間間隔を入力とし
てシステムが管理する参照時間間隔分布データを更新す
る(ステップS3)。
Next, the reference time interval distribution data managed by the system is updated with the obtained reference time interval as an input (step S3).

【0075】ここで、参照時間間隔分布データとは、あ
る参照時間間隔が発生した回数をその参照時間間隔毎に
累計したものである。この累計はプログラム毎に累計を
行う方法や、プログラムを区別せずにすべてのプログラ
ムに対して累計を行う方法がある。本実施形態では、プ
ログラムを区別せずにすべてのプログラムに対して累計
を行うものとする。また、本実施形態においての参照時
間間隔分布データの更新では、参照時間間隔の回数が加
算された後に、参照時間間隔の期待値と標準偏差の値が
再計算される。
Here, the reference time interval distribution data is the cumulative number of times of occurrence of a certain reference time interval for each reference time interval. There are a method of performing the total for each program and a method of performing the total for all programs without distinguishing the programs. In the present embodiment, it is assumed that the programs are not distinguished and the total is calculated for all the programs. Further, in the update of the reference time interval distribution data in the present embodiment, the expected value of the reference time interval and the standard deviation value are recalculated after the number of times of the reference time interval is added.

【0076】参照時間間隔が短い基本構成要素はプログ
ラム実行時に連続的に呼び出される可能性が高く、逆
に、参照時間間隔が長い基本構成要素の間には、プログ
ラム実行時に、ユーザ入力待ちやディスク・アクセスな
どが含まれているなど関連性が低いと思料される。
Basic components having a short reference time interval are likely to be continuously called at the time of program execution. Conversely, basic components having a long reference time interval are provided between the basic components having a long reference time interval at the time of program execution, waiting for user input or disk.・ It is considered to have low relevance because it includes access.

【0077】次いで、更新された期待値と標準偏差の値
を加算して閾値とする(ステップS4)。
Next, the updated expected value and standard deviation value are added to obtain a threshold value (step S4).

【0078】次いで、参照時刻順にソートされた参照情
報を、前のステップで計算した閾値を用いて分割し、ワ
ーキング・セット(working set)を定義す
る。分割には、1つ前のエントリとの差分である参照時
間間隔が閾値以上である部分で分割を行う方法と、ワー
キング・セット定義を開始したエントリの参照時刻から
の差分が閾値以上である部分で分割を行う方法がある。
どちらの方法も、閾値未満の参照間隔である複数のシン
ボルを1つのワーキング・セットとして定義とする(ス
テップS5)。
Next, the reference information sorted in reference time order is divided using the threshold value calculated in the previous step to define a working set. The division is performed by a method in which the reference time interval, which is the difference from the previous entry, is greater than or equal to a threshold, and the difference from the reference time of the entry that started the working set definition is greater than or equal to the threshold. There is a method of dividing with.
In either method, a plurality of symbols having reference intervals less than the threshold value are defined as one working set (step S5).

【0079】参照が発生しないシンボルはプログラムの
構造解析により幾つかのワーキング・セットとして定義
することが可能であるが、本実施形態では簡便のために
まとめて1つのワーキング・セットを定義とする(ステ
ップS6)。
Symbols for which reference is not generated can be defined as several working sets by structural analysis of the program, but in the present embodiment, one working set is defined collectively for the sake of simplicity ( Step S6).

【0080】このようにして得られたワーキング・セッ
トの定義に従いプログラムのテキストとデータをワーキ
ング・セットとして分割する(ステップS7)。このと
き、参照が発生しなかったシンボルから構成されるワー
キング・セットには、プログラムの起動前にダウンロー
ドを行う必要があることを示すpreloadのマーク
を付ける。
According to the definition of the working set thus obtained, the text and data of the program are divided as a working set (step S7). At this time, the working set made up of the symbols for which no reference has occurred is marked as preload indicating that the download needs to be performed before the program is started.

【0081】そして、再配置テーブルを構成する再配置
エントリと動的シンボル・テーブルを構成するシンボル
・エントリのうちワーキング・セット定義に含まれるシ
ンボルに対応するエントリを該当するワーキング・セッ
トに追加していく(ステップS8)。
Then, among the relocation entries that make up the relocation table and the symbol entries that make up the dynamic symbol table, the entries corresponding to the symbols included in the working set definition are added to the relevant working set. Go (step S8).

【0082】より具体的には、再配置エントリは命令列
データのどの部分が実行環境で決定されるアドレスを参
照するかを示しているため、シンボルと対応付けが可能
である。また、一般的なトレーサは、ヘッダに対して参
照時刻をとることができないので、ヘッダをワーキング
・セット定義に従って分割することはできない。そこ
で、対応するシンボルが属するワーキング・セットに再
配置エントリを入れることで再配置テーブルを分割する
ようにする。
More specifically, since the relocation entry indicates which part of the instruction sequence data refers to the address determined by the execution environment, it can be associated with the symbol. Also, a general tracer cannot take a reference time for a header, so the header cannot be divided according to the working set definition. Therefore, the relocation table is divided by inserting a relocation entry in the working set to which the corresponding symbol belongs.

【0083】同様に、シンボル・エントリも対応するシ
ンボルが存在するため、対応するシンボルが属するワー
キング・セットにシンボル・エントリを入れることで動
的シンボル・テーブルを分割するようにする。
Similarly, since the symbol entry also has a corresponding symbol, the dynamic symbol table is divided by putting the symbol entry in the working set to which the corresponding symbol belongs.

【0084】ここで、図2及び表1に示したプログラム
を例にとって、上述のプログラム再構成の手順について
説明する。表1は、最初の参照時刻順すなわちTime
stampの順序に従って既に並べ替えられている。
Here, the procedure of the above-mentioned program reconfiguration will be described by taking the program shown in FIG. 2 and Table 1 as an example. Table 1 shows the order of the first reference time, that is, Time.
It has already been rearranged according to the order of stamp.

【0085】システムが管理する参照時間間隔分布デー
タにより、過去参照数25,212回のデータの参照時
間間隔の期待値が0.00611950077371、
そのときの標準偏差が0.1795597012295
5であったとすると、閾値は0.1856792020
0326が得られる。この閾値を利用して参照時間間隔
が閾値以上である部分で分割を行うと、表1のInde
x0−6,Index7−32,Index33−5
4,Index55−57,Index58の5つに分
割することができる。ここでは、これらをそれぞれワー
キング・セットとして定義する。
According to the reference time interval distribution data managed by the system, the expected value of the reference time interval of the data of the past reference count of 25,212 is 0.00611950077371,
The standard deviation at that time is 0.17955997012295
If the value is 5, the threshold is 0.1856792020
0326 is obtained. If division is performed using the threshold value at the portion where the reference time interval is equal to or greater than the threshold value,
x0-6, Index7-32, Index33-5
4, Index 55-57, Index 58 can be divided. Here, each of these is defined as a working set.

【0086】表1に示した参照情報の例では、KMin
esの起動までの部分しかないために、プログラム全体
を分割することはできないが、参照情報をプログラムの
さまざまな実行に対して得ることで、実際にはプログラ
ム全体の分割が可能となる。
In the example of the reference information shown in Table 1, KMin
Although it is not possible to divide the entire program because there is only the part up to the start of es, it is actually possible to divide the entire program by obtaining reference information for various executions of the program.

【0087】次いで、得られたワーキング・セットに対
応する再配置テーブルのエントリと動的シンボル・テー
ブルのエントリを対応する各ワーキング・セット定義に
追加を行う。例えば、関数mainがQArrayT
〈char〉virtualtableとQStrin
g virtual tableを参照するのであれば、
rel_QArrayT〈char〉virtual t
ableとrel_QString virtual t
ableがmainの属するワーキング・セット定義に
追加される。また、sym_mainもmainの属す
るワーキング・セット定義に追加される。
Next, the entry of the relocation table and the entry of the dynamic symbol table corresponding to the obtained working set are added to each corresponding working set definition. For example, the function main is QArrayT
<Char> virtualtable and QStrin
If you refer to g virtual table,
rel_QArrayT <char> virtual t
Able and rel_QString virtual t
The add is added to the working set definition to which main belongs. Also, sym_main is added to the working set definition to which main belongs.

【0088】以上の手順により、図2に示したKMin
esの1部は、図4に示すような複数のワーキング・セ
ットに再構成される。それぞれのワーキング・セット内
ではプログラム実行時に連続的に参照される可能性が高
く、これに対し、ワーキング・セット間ではユーザ入力
待ちやディスク・アクセスが存在するなどの原因で参照
時刻に隔たりがある、ということを充分理解されたい。
By the above procedure, KMin shown in FIG.
A part of es is reconstructed into a plurality of working sets as shown in FIG. In each working set, it is likely to be referred to continuously during program execution. On the other hand, there is a gap in reference time between working sets due to the presence of user input wait or disk access. Please fully understand that.

【0089】図3に示したような手順でプログラムの再
構成を行うことにより、短時間内に参照が発生したシン
ボルのみで各ワーキング・セットを構成することができ
る。また、再配置エントリやシンボル・エントリなどの
プログラム管理データもシンボルに対応して分割するこ
とにより、実行環境がワーキング・セットをプログラム
に対して利用可能にするために必要となる部分のみをダ
ウンロードすることができる。
By reconstructing the program in the procedure as shown in FIG. 3, each working set can be constructed only by the symbols in which the reference occurs within a short time. Also, by dividing the program management data such as relocation entries and symbol entries according to the symbols, only the part that the execution environment needs to make the working set available to the program is downloaded. be able to.

【0090】この結果、ダウンロードするプログラム量
の最適化が可能となる。また、プログラムを構成するシ
ンボルや各管理データを構成するエントリで分割再構成
を行い、クラスなどの特定の言語に依存した分類を行わ
ないので、異なる言語で記述されたモジュールであって
も、上述したプログラム再構成の処理を適用することが
できる。
As a result, the amount of programs to be downloaded can be optimized. In addition, since the division and reconfiguration are performed by the symbols that make up the program and the entries that make up each management data, and classification that does not depend on a specific language such as a class is not performed, even if the modules are written in different languages, It is possible to apply the processing of the program reconstruction described above.

【0091】また、本実施形態に係るプログラムの再構
成によれば。仮にC++などのクラスをサポートする言
語でプログラムが記述された場合であっても、短時間の
参照間隔のメソッドであれば、異なるクラスに属してい
ても1つのワーキング・セットとしてまとめることがで
きるので、データ転送量を最適化することができる。ま
た、その逆に、同じクラスに属していても、参照間隔が
開いている場合には、異なるワーキング・セットとして
分割されるので、ダウンロード回数を最適化することが
できる。
According to the reconfiguration of the program according to this embodiment. Even if a program is written in a language that supports classes such as C ++, methods with short reference intervals can be combined into one working set even if they belong to different classes. , The amount of data transfer can be optimized. On the contrary, even if they belong to the same class, if the reference interval is open, they are divided into different working sets, so the number of downloads can be optimized.

【0092】なお、本実施形態では実装していないが、
ワーキング・セット間の参照順序関係を新たな管理情報
として各ワーキング・セットに追加を行い、ダウンロー
ド時にそれを参照してプリフェッチを行うことも可能で
ある。
Although not implemented in this embodiment,
It is also possible to add the reference order relationship between working sets to each working set as new management information, and refer to it when downloading to perform prefetch.

【0093】図5には、図1で示したクライアント2
(又は3)の構成を詳細に示している。クライアント2
は、所定の通信プロトコルに従ってサーバ1とメッセー
ジをやり取りすることでプログラムのダウンロード実行
を行うことができる。
FIG. 5 shows the client 2 shown in FIG.
The configuration (or 3) is shown in detail. Client 2
Can download and execute the program by exchanging messages with the server 1 according to a predetermined communication protocol.

【0094】図5に示す構成例では、クライアント2は
複数の並行オブジェクトによって構成される。ここで、
オブジェクトとは、データとそのデータに対する処理手
続き(メソッド)とを一体化させたモジュール単位のこ
とである。また、並行オブジェクトは、外部に公開され
た複数のメソッドとオブジェクトの状態やメソッド本体
を保持するメモリとメソッドを実行するための単一のコ
ンテキストと未処理のメッセージを管理するメッセージ
・キューより構成される。並行オブジェクトは公開され
たメソッドに対するメッセージを受信して、1度に1つ
のメッセージを処理する。メッセージ処理中に受けたメ
ッセージはメッセージ・キューに保管される。
In the configuration example shown in FIG. 5, the client 2 is composed of a plurality of parallel objects. here,
An object is a module unit in which data and a processing procedure (method) for the data are integrated. A concurrent object consists of multiple methods exposed externally, memory that holds the state of the object and the method body, and a single context for executing the method and a message queue that manages unprocessed messages. It Concurrent objects receive messages for published methods and process one message at a time. Messages received during message processing are stored in the message queue.

【0095】図5に示すように、クライアント2は、E
xecSpace2−1と、Downloader2−
2と、Timer2−3という各オブジェクトで構成さ
れている。
As shown in FIG. 5, the client 2 uses E
xecSpace2-1 and Downloader2-
2 and Timer 2-3.

【0096】ExecSpace2−1は、プログラム
の実行環境を提供する。具体的にはJavaVMやオペ
レーティング・システムなどがこれに相当する。Exe
cSpace2−1は並行オブジェクトではないが、以
下では擬似的に並行オブジェクトとして説明をする。ま
た、サーバ1についても、同様に擬似的に並行オブジェ
クトとして説明をする。
The ExecSpace 2-1 provides a program execution environment. Specifically, JavaVM, an operating system, etc. correspond to this. Exe
Although cSpace 2-1 is not a parallel object, it will be described below as a pseudo parallel object. Similarly, the server 1 will be described as a pseudo concurrent object.

【0097】ExecSpace2−1は、プログラム
の実行に際して、まだダウンロードが行われていないプ
ログラム部分に実行や参照が発生すると、Downlo
ader2−2にダウンロード要求を発生するようにな
っている。Downloader2−2は、プログラム
の参照情報の生成と、サーバ1へのダウンロードの要求
を行う。Timer2−3は時刻情報の提供を行う。各
オブジェクトについて以下に詳細に説明をする。
The ExecSpace 2-1 downloads when the execution or reference occurs in the program portion that has not been downloaded yet when executing the program.
A download request is issued to ader 2-2. The Downloader 2-2 generates the reference information of the program and requests the server 1 for the download. Timer 2-3 provides time information. Each object will be described in detail below.

【0098】ExecSpace ExecSpace2−1は、プログラムの実行やさま
ざまなサービスを提供するオブジェクトである。実際に
はさまざまなオブジェクトやモジュールで構成される
が、ここでは説明の便宜上まとめて1つのオブジェクト
として扱う。
ExecSpace ExecSpace 2-1 is an object that provides program execution and various services. Actually, it is composed of various objects and modules, but here, for convenience of explanation, they are collectively treated as one object.

【0099】ExecSpace2−1は、ダウンロー
ド実行機能に関して、1つのメソッド"Resume"を
持つ。Resumeは、以下の動作を持つメソッドであ
る。
The ExecSpace 2-1 has one method "Resume" for the download execution function. Resume is a method that has the following operations.

【0100】(1)引数で指定されたプログラム部分
を、プログラムが利用可能に設定する。より具体的に
は、プログラムのメモリ空間への割り付けや登録などの
作業を行う。 (2)引数でIDが指定された場合には、対応するプロ
グラムの実行を再開する。IDの意味付けはExecS
pace2−1によって行われる。Resumeに指定
するIDは、ExecSpace2−1がReferを
発行したときに指定したIDがそのまま指定される。本
実施形態では、ExecSpace2−1はRefer
発行時にThreadIDを指定する。このためRes
umeメソッドの実行ではThreadIDに対応する
threadの実行再開を行う。
(1) The program portion specified by the argument is set to be usable by the program. More specifically, work such as allocation and registration of the program in the memory space is performed. (2) When the ID is specified by the argument, the execution of the corresponding program is restarted. The meaning of ID is ExecS
This is performed by Pace2-1. As the ID specified in the Resume, the ID specified when the ExecSpace 2-1 issues the Refer is specified as it is. In this embodiment, the ExecSpace 2-1 is the Refer
Specify ThreadID when issuing. Therefore Res
In the execution of the ume method, execution of thread corresponding to ThreadID is restarted.

【0101】なお、ExecSpace2−1は実際に
はResume以外の多くのメソッド又はサービスを持
つが、ダウンロード実行には直接関連しないので本明細
書では説明を省略する。
Note that the ExecSpace 2-1 actually has many methods or services other than Resume, but since they are not directly related to the execution of download, their explanation is omitted here.

【0102】Downloader Downloader2−2は、ExecSpace2
−1からの実行要求や参照を解決し、また、サーバ1に
対してダウンロード要求や参照情報の提供を行うことで
ダウンロード実行の実現を行う。Downloader
2−2には、Restructuring modeと
Download modeという2つの実行モードが
ある。
Downloader Downloader2-2 is an ExecSpace2.
The execution request and reference from -1 are resolved, and the download request and reference information are provided to the server 1 to realize the download execution. Downloader
2-2 has two execution modes, a Restructuring mode and a Download mode.

【0103】Downloader2−2は、その内部
にReferenceInfoを持つ。Referen
ceInfoは、シンボルの参照情報を保持する。本実
施形態では、シンボルの参照情報としてシンボルの参照
時刻のみを使う。ReferenceInfoは、シン
ボルを特定するための、ModuleID、Symbo
lIDの組と参照時刻で1つのエントリが構成される。
このエントリが参照されたすべてのシンボルに対して作
成される。
Downloader 2-2 has ReferenceInfo inside. Referen
ceInfo holds symbol reference information. In this embodiment, only the reference time of the symbol is used as the reference information of the symbol. ReferenceInfo is ModuleID, Symbol for identifying the symbol.
One entry is composed of the set of lID and the reference time.
This entry is created for every symbol referenced.

【0104】また、Downloader2−2は、ダ
ウンロードの実行に関して、Invoke、Refe
r、Finishというメソッドを持つ。各メソッドの
動作を以下にまとめておく。
Also, Downloader 2-2 has an Invoke and Ref regarding execution of download.
It has r and Finish methods. The operation of each method is summarized below.

【0105】Invoke (1)引数で指定されたProgramIDを指定し
て、サーバ1にLoadメッセージを送り、プログラム
を構成するすべてのモジュールをダウンロードする。 (2)ProgramIDに対してReference
Infoを初期化する。 (3)ExecSpace2−1にResumeを送り
<実行を再開させる。
Invoke (1) The ProgramID specified by the argument is specified, a Load message is sent to the server 1, and all modules constituting the program are downloaded. (2) Reference to ProgramID
Initialize Info. (3) Send Resume to ExecSpace 2-1 <restart execution.

【0106】Refer (1)Restructuring modeの場合に
は (1−1)Timer2−3オブジェクトにGetTi
meメッセージを送り現在の時刻を得る。 (1−2)時刻情報と引数で指定されたSymbolI
DをReferenceInfoにエントリとして追加
する。 (2)Download modeの場合には、サーバ
1にLoadメッセージを送り、シンボルを含むワーキ
ング・セットをダウンロードする。 (3)ExecSpace2−1にResumeを送
り、実行を再開させる。
Refer (1) In the case of Restoring mode, (1-1) Timer 2-3 GetTi is added to the object.
Send the me message to get the current time. (1-2) SymbolI specified by time information and argument
Add D as an entry to ReferenceInfo. (2) In the case of the download mode, the Load message is sent to the server 1 and the working set including the symbol is downloaded. (3) Send Resume to ExecSpace 2-1 to restart execution.

【0107】Finish Restructuring modeの場合には、 (1)ReferenceInfoを引数としてサーバ
1にConfigureメッセージを送る。 (2)現在実行中のプログラムに関するReferen
ceInfoの資源を削除する。
[0107] In the case of the Finish Restructuring mode sends a Configure message to the server 1 (1) ReferenceInfo as an argument. (2) Referen related to the program currently being executed
Delete the resource of ceInfo.

【0108】Timer Timer2−3は、システムの動作とは独立に動作し
時刻を得るオブジェクトである。時刻は特に外部時計と
同期している必要はないが、十分に精度のある時刻情報
を提供することができるものとする。CPUに内蔵され
ているfreerun counterなどをこの目的
に利用することが可能である。
Timer Timer 2-3 is an object that operates independently of the operation of the system to obtain time. The time does not need to be synchronized with an external clock, but it is possible to provide time information with sufficient accuracy. A freerun counter or the like built in the CPU can be used for this purpose.

【0109】Timer2−3は、GetTimeメソ
ッドを持つ。このGetTimeは現在の時刻を返す。
Timer 2-3 has a GetTime method. This GetTime returns the current time.

【0110】図6には、図1に示したサーバ1の構成を
詳細に示している。サーバ1は、所定の通信プロトコル
に従ってクライアント2又は3とメッセージのやり取り
をすることによって、プログラムのダウンロード実行を
行う。
FIG. 6 shows the configuration of the server 1 shown in FIG. 1 in detail. The server 1 downloads a program by exchanging messages with the client 2 or 3 according to a predetermined communication protocol.

【0111】図6に示す構成例では、サーバは、Res
tructuror1−3と、WorkingSetM
gr1−4という各オブジェクトにより構成される。R
estructuror1−3は、図3に示した処理手
順に従い、プログラムの再構成を行う。また、Work
ingSetMgr1−4は、Restructuro
r1−3により生成されたワーキング・セットの管理を
行い、クライアント2又は3からの要求に応じてワーキ
ング・セット単位で要求されたプログラムのダウンロー
ドを実行する。各オブジェクトについて以下に説明す
る。
In the configuration example shown in FIG. 6, the server is Res
tractor1-3 and WorkingSetM
It is composed of the respective objects gr1-4. R
The structurers 1-3 reconfigure the program according to the processing procedure shown in FIG. Also, Work
ingSetMgr1-4 is a Restructuro
The working set generated by r1-3 is managed, and the requested program is downloaded in working set units in response to a request from the client 2 or 3. Each object will be described below.

【0112】Restructuror Restructuror1−3は、Referenc
eInfoを利用してプログラムを再構成するオブジェ
クトである。Restructuror1−3は、その
内部に、過去の計算で得られた参照時間間隔を統計情報
として保持している。Restructuror1−3
は、Configureメソッドを持つ。Config
ureメソッドは以下の動作を行う。
The Restructor 1-3 are referred to as Reference.
It is an object that reconfigures a program using eInfo. The Restructurers 1-3 hold therein the reference time intervals obtained by past calculations as statistical information. Restorator 1-3
Has a Configure method. Config
The ure method performs the following operations.

【0113】(1)引数で指定されたProgramI
Dに対応するプログラムを構成するモジュールを得る。 (2)プログラムを再構成する(図3を参照のこと)。 (3)プログラムを分割して得られたワーキング・セッ
トをWorkingSetMgrにRegisterメ
ッセージを送ることで登録を行う。
(1) ProgramI specified by the argument
Obtain the modules that make up the program corresponding to D. (2) Reconfigure the program (see Figure 3). (3) The working set obtained by dividing the program is registered by sending a Register message to WorkingSetMgr.

【0114】WorkingSetMgr WorkingSetMgr1−4は、プログラムを再
構成して得られたワーキング・セットを管理し、クライ
アント2又は3からの要求に応じてダウンロードを行
う。WorkingSetMgr1−4は、ダウンロー
ド実行のために、Register及びLoadという
メソッドを持つ。
WorkingSetMgr WorkingSetMgr1-4 manages the working set obtained by reconfiguring the program, and downloads according to a request from the client 2 or 3. WorkingSetMgr1-4 has methods called Register and Load for executing download.

【0115】Registerは、引数で指定されたワ
ーキング・セットを内部に登録する動作を行う。
Register performs the operation of internally registering the working set designated by the argument.

【0116】また、Loadは、引数で指定されたPr
ogramID,ModuleID, SymbolI
Dに対応するワーキング・セットをクライアントに対し
て返す。また、ProgramIDが指定されていた場
合は、preloadのマークの付いたワーキング・セ
ットをクライアントに返す。
Load is Pr specified by the argument.
ogramID, ModuleID, SymbolI
Returns the working set corresponding to D to the client. If the ProgramID is specified, the working set marked with preload is returned to the client.

【0117】次いで、図1に示したシステム構成におい
て、プログラムを再構成するためのシナリオについて説
明する。
Next, a scenario for reconfiguring the program in the system configuration shown in FIG. 1 will be described.

【0118】図7には、ExecSpace2−1がプ
ログラムの起動要求を発行したときの処理の流れを示し
ている。
FIG. 7 shows a processing flow when the ExecSpace 2-1 issues a program activation request.

【0119】クライアント2側では、ユーザからのプロ
グラム起動要求を受け取ると、ExecSpace2−
1は、ProgramIDとそれを実行するThrea
dIDを指定して、InvokeメッセージをDown
loader2−2に送る。
On the client 2 side, when the program start request from the user is received, the ExecSpace2-
1 is ProgramID and Thread that executes it
Specify the dID to download the Invoke message
Send to loader2-2.

【0120】Downloader2−2は、Prog
ramIDを指定して、サーバ1のWorkingSe
tMgr1−4にLoadメッセージを送る。
Downloader2-2 is Prog
Specifying ramID, WorkingSe of server 1
Send a Load message to tMgr1-4.

【0121】WorkingSetMgr1−4は、引
数で指定されたProgramIDに対応するプログラ
ムを構成するすべてのモジュールをクライアント2のD
ownloader2−2に返す。
The WorkingSetMgr1-4 are all D modules of the client 2 for all the modules that make up the program corresponding to the ProgramID specified by the argument.
It returns to the downloader 2-2.

【0122】Downloader2−2は、Prog
ramIDに対してReferenceInfoを初期
化し、ThreadIDを指定して、Resumeメッ
セージをExecSpace2−1に送る。
Downloader2-2 is Prog
ReferenceInfo is initialized to ramID, ThreadID is specified, and a Resume message is sent to ExecSpace 2-1.

【0123】ExecSpace2−1は、プログラム
の実行を開始し、各シンボルが参照されると、Symb
olIDとThreadIDを指定して、Referメ
ッセージをDownloader2−2に送る。
The ExecSpace 2-1 starts execution of the program, and when each symbol is referred to, the Symb
olID and ThreadID are designated, and a Refer message is sent to Downloader 2-2.

【0124】Downloader2−2は、このシナ
リオではRestructuring modeで動作
しているため、TimerにGetTimeメッセージ
を送って時刻情報を得た後、Referで指定されたS
ymbolIDに対して得られた時刻情報とともにRe
ferenceInfoのエントリを作成する。
Since the Downloader 2-2 operates in the Restructuring mode in this scenario, after sending the GetTime message to the Timer to obtain the time information, the S specified by the Refer
Re with time information obtained for symbolID
Create an entry for fenceInfo.

【0125】本実施形態では、ExecSpace2−
1は、最初に参照されたシンボルに対してのみRefe
rメッセージを発行するようになっているので、Dow
nloader2−2側ではSymbolIDへのRe
ferが複数回発生していないかどうかのチェックは行
わない。
In the present embodiment, ExecSpace2-
1 is Refe only for the first referenced symbol
Since it is designed to issue r messages, Dow
On the side of nloader2-2, Re to SymbolID
It is not checked whether the fer has occurred more than once.

【0126】Downloader2−2は、Refe
renceInfoのエントリ作成後に、ExecSp
ace2−1にResumeメッセージを送り実行を再
開させる。以降、シンボルが参照される度にExecS
pace2−1はReferを発行し、Downloa
der2−2はReferenceInfoのエントリ
を作成してResumeを発行することを繰り返す。
Downloader2-2 is referred to as Refe
After creating the renceInfo entry, the ExecSp
A Resume message is sent to ace2-1 to restart execution. After that, every time the symbol is referenced, the ExecS
space 2-1 issues a Refer and Downa
der2-2 repeats creating an entry of ReferenceInfo and issuing Resume.

【0127】プログラムの実行が終了すると、Exec
Space2−1は、Downloader2−2にF
inishメッセージを送る。
When the execution of the program is completed, the Exec
Space2-1 is F to Downloader2-2
Send an inish message.

【0128】Downloader2−2は、Fini
shメッセージを受け取ると、作成されたRefere
nceInfoを、サーバ1のRestuructur
or1−3にConfigureメッセージとして送
る。
Downloader2-2 is a Fini
Referee created when receiving sh message
nceInfo is the Restructur of server 1.
It is sent as a Config message to or1-3.

【0129】Restructuror1−3は、Re
ferenceInfoを用いてプログラムの再構成を
行う(図3を参照のこと)。そして、得られた複数のワ
ーキング・セットを、Registerメッセージを使
ってWorkingSetMgr1−4に送る
Restructurer 1-3 is Re
Reconfigure the program using ferenceInfo (see FIG. 3). Then, the obtained plurality of working sets is sent to WorkingSetMgr1-4 using a Register message.

【0130】WorkingSetMgr1−4は、こ
れらのワーキング・セットを登録し管理を行う。
The WorkingSetMgr1-4 register and manage these working sets.

【0131】以上のような手続により、次回のプログラ
ムのダウンロードからはプログラムをワーキング・セッ
ト単位でダウンロードすることが可能となる。
With the above procedure, the program can be downloaded in working set units from the next program download.

【0132】次いで、上述したようなシナリオで再構成
されたプログラムをサーバ1からクライアント2又は3
にダウンロードするためのシナリオについて説明する。
Next, the program reconstructed in the above-mentioned scenario is transferred from the server 1 to the client 2 or 3.
Describe the scenario for downloading to.

【0133】図8には、ExecSpace2−1がプ
ログラムの起動要求を発行したときの処理の流れを示し
ている。
FIG. 8 shows the flow of processing when the ExecSpace 2-1 issues a program activation request.

【0134】クライアント2側で、ユーザからのプログ
ラム起動要求を受け取ると、ExecSpace2−1
は、ProgramIDとそれを実行するThread
IDを指定して、Downloader2−2にInv
okeメッセージを送る。
When the client 2 receives the program start request from the user, the ExecSpace 2-1
Is the ProgramID and Thread that executes it
Specify the ID and enter Inv in Downloader 2-2.
send an oke message.

【0135】Downloader2−2は、Prog
ramIDを指定して、サーバ1側のWorkingS
etMgr1−4にLoadメッセージを送る。
Downloader2-2 is Prog
Specifying ramID, WorkingS on the server 1 side
Send a Load message to etMgr1-4.

【0136】WorkingSetMgr1−4は、引
数で指定されたProgramIDに対応するワーキン
グ・セットのうちpreloadのマークが付いたワー
キング・セットをクライアント2側のDownload
er2−2に返す。
The WorkingSetMgr1-4 downloads the working set with the preload mark among the working sets corresponding to the ProgramID specified by the argument to the Client 2 side.
Return to er2-2.

【0137】Downloader2−2は、Thre
adIDを指定して、ExecSpace2−1にRe
sumeメッセージを送る。
Downloader2-2 is Thre
Specify adID, and then Re in ExecSpace 2-1.
Send a sum message.

【0138】ExecSpace2−1は、プログラム
の実行を開始し、各シンボルが参照され且つそのシンボ
ルがダウンロードされていないと、SymbolIDと
ThreadIDを指定してReferメッセージをD
ownloader2−2に送る。シンボルがダウンロ
ードされているかどうかは、各ワーキング・セットに含
まれるシンボル・エントリを使うことで、ExecSp
ace2−1が判断を行うことが可能である。
The ExecSpace 2-1 starts the execution of the program, and if each symbol is referred to and the symbol has not been downloaded, the Symbol message and the Thread ID are designated to send the Refer message to the D message.
Send to downloader 2-2. Whether a symbol is downloaded or not is determined by using the symbol entry included in each working set.
ace2-1 can make the judgment.

【0139】Downloader2−2は、このシナ
リオではDownload modeで動作しているた
め、サーバ1のWorkingSetMgr1−4にL
oadメッセージを送る。
Since the Downloader 2-2 is operating in the Download mode in this scenario, L is set in the WorkingSetMgr 1-4 of the server 1.
Send an oad message.

【0140】これに対し、WorkingSetMgr
1−4は、引数で指定されたSymbolIDに対応す
るワーキング・セットをクライアント2のDownlo
ader2−2に返す。
On the other hand, WorkingSetMgr
1-4, the working set corresponding to the SymbolID specified by the argument is the Download of the client 2.
Return to ader2-2.

【0141】Downloader2−2は、Thre
adIDを指定して、ResumeメッセージをExe
cSpace2−1に送る。以降、シンボルが参照され
且つそのシンボルがダウンロードされていない毎に、E
xecSpace2−1はReferメッセージを発行
し、また、DownloaderはLoadメッセージ
を使ってワーキング・セットをダウンロードした後Re
sumeを発行するという一連の動作を繰り返す。
Downloader2-2 is Thre
Specify the adID and execute the Resume message
Send to cSpace 2-1. After that, each time the symbol is referenced and the symbol is not downloaded, E
xecSpace 2-1 issues a Refer message, and Downloader uses the Load message to download the working set and then Re
A series of operations of issuing a sum is repeated.

【0142】プログラムの実行が終了すると、Exec
Space2−1は、Downloader2−2にF
inishメッセージを送る。
When the execution of the program ends, the Exec
Space2-1 is F to Downloader2-2
Send an inish message.

【0143】以上のような手順により、クライアント2
は、すべてのプログラムをダウンロードすることなく、
短時間内に参照が発生する複数のシンボルとそれに関連
するプログラム管理領域のエントリをダウンロードする
ことで、プログラムの実行が可能になり、ダウンロード
量とダウンロード回数の最適化が可能となる。また、デ
ータのダウンロードとプログラムの実行を並列化させる
ことができる。
With the above procedure, the client 2
Without downloading all the programs
By downloading a plurality of symbols that are referenced in a short time and the entries of the program management area related to the symbols, the program can be executed, and the download amount and the number of downloads can be optimized. In addition, data download and program execution can be parallelized.

【0144】上述した本発明の実施形態では、プログラ
ムを構成する基本構成要素に対応する参照情報を作成
し、ダウンロードに先立って参照情報を元に参照が近接
している複数の構成要素とそれらに対応するプログラム
管理情報のエントリを1つの新規構成要素としてまとめ
る再構成をプログラムに対して適用するようにした。こ
の結果、プログラムをその記述言語やクラス構成に依存
することなく分割することを可能とし、また、プログラ
ムを分割ダウンロードして実行を行うシステムにおい
て、ダウンロードするプログラム量とダウンロード回数
の最適化を実現することができる。
In the above-described embodiment of the present invention, reference information corresponding to the basic constituent elements that make up the program is created, and a plurality of constituent elements to which the reference is close based on the reference information prior to the download and those constituent elements. The reconfiguration that collects the corresponding program management information entries as one new component is applied to the program. As a result, it is possible to divide a program without depending on its description language or class structure, and to optimize the amount of download and the number of downloads in a system that downloads and executes programs in a divided manner. be able to.

【0145】[追補]以上、特定の実施形態を参照しな
がら、本発明について詳解してきた。しかしながら、本
発明の要旨を逸脱しない範囲で当業者が該実施形態の修
正や代用を成し得ることは自明である。すなわち、例示
という形態で本発明を開示してきたのであり、本明細書
の記載内容を限定的に解釈するべきではない。本発明の
要旨を判断するためには、冒頭に記載した特許請求の範
囲の欄を参酌すべきである。
[Supplement] The present invention has been described in detail with reference to the specific embodiments. However, it is obvious that those skilled in the art can modify or substitute the embodiments without departing from the scope of the present invention. That is, the present invention has been disclosed in the form of exemplification, and the contents of this specification should not be construed in a limited manner. In order to determine the gist of the present invention, the section of the claims described at the beginning should be taken into consideration.

【0146】[0146]

【発明の効果】以上詳記したように、本発明によれば、
命令や関数呼出しなどのシンボル、変数などの複数の基
本構成要素からなるプログラムの構造を最適化すること
ができる、優れたデータ処理システム及びデータ処理方
法、並びに記憶媒体を提供することができる。
As described above in detail, according to the present invention,
It is possible to provide an excellent data processing system and data processing method, and a storage medium capable of optimizing the structure of a program composed of a plurality of basic constituent elements such as symbols such as instructions and function calls and variables.

【0147】また、本発明によれば、ダウンロードなど
所定の媒体を介してシステム間を移動するためにプログ
ラムの構造を最適化するとともに移動先のシステムにお
けるメモリの使用量の最適化を行うことができる、優れ
たデータ処理システム及びデータ処理方法、並びに記憶
媒体を提供することができる。
Further, according to the present invention, it is possible to optimize the structure of a program for moving between systems via a predetermined medium such as download, and optimize the amount of memory used in the destination system. It is possible to provide an excellent data processing system, a data processing method, and a storage medium that can be performed.

【0148】また、本発明によれば、特定の利用環境を
前提としないようにデータ分割を行うことにより、デー
タの移動に際しデータ転送量とデータ転送回数の最適化
を実現するようにプログラムを再構成することができ
る、優れたデータ処理システム及びデータ処理方法、並
びに記憶媒体を提供することができる。
Furthermore, according to the present invention, the program is re-implemented so as to optimize the amount of data transfer and the number of times of data transfer when moving data by dividing the data so as not to assume a specific usage environment. An excellent data processing system, data processing method, and storage medium that can be configured can be provided.

【0149】本発明によれば、プログラムの各基本構成
要素毎の参照情報を基に新規構成要素を再構成させるこ
とで、プログラムの実行に必要な部分のみで新規構成要
素を作成することができ、この結果、ダウンロードする
プログラム量の最適化とダウンロード回数の最適化が可
能となりダウンロードの高速化を行うことが可能とな
る。
According to the present invention, by reconfiguring a new component based on the reference information for each basic component of the program, it is possible to create the new component only with the portion necessary for executing the program. As a result, the amount of programs to be downloaded and the number of downloads can be optimized, and the download speed can be increased.

【0150】また、新規構成要素をプログラムの記述言
語やクラスに依存しない基本構成要素を使い構成するこ
とで、プログラムを分割ダウンロードして実行する、す
なわちデータのダウンロードとプログラムの実行の並列
化を好適に実現することができる。
Further, by constructing the new component by using the basic component which does not depend on the description language or class of the program, the program is divided and downloaded and executed, that is, the data download and the program execution are parallelized. Can be realized.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明に係るデータ処理方法を適用することが
できるシステム全体の構成を模式的に示した図である。
FIG. 1 is a diagram schematically showing a configuration of an entire system to which a data processing method according to the present invention can be applied.

【図2】プログラムの内部構成例を模式的に示した図で
ある。
FIG. 2 is a diagram schematically showing an internal configuration example of a program.

【図3】本実施形態に係るプログラムの再構成手順を示
したフローチャートである。
FIG. 3 is a flowchart showing a program reconfiguration procedure according to the present embodiment.

【図4】再構成後のプログラムの構成を模式的に示した
図である。
FIG. 4 is a diagram schematically showing a configuration of a program after reconfiguration.

【図5】クライアントの構成を示した図である。FIG. 5 is a diagram showing a configuration of a client.

【図6】サーバの構成を示した図である。FIG. 6 is a diagram showing a configuration of a server.

【図7】プログラム再構成のシナリオを示したシーケン
ス図である。
FIG. 7 is a sequence diagram showing a scenario of program reconfiguration.

【図8】ダウンロード実行時のシナリオを示した図であ
る。
FIG. 8 is a diagram showing a scenario at the time of executing download.

【符号の説明】[Explanation of symbols]

1…サーバ 1−3…Restructuror 1−4…WorkingSetMgr 2,3…クライアント 2−1…ExecSpace 2−2…DownLoader 4…ネットワーク 1 ... server 1-3 ... Restructuror 1-4 ... WorkingSetMgr 2, 3 ... Client 2-1 ... ExecSpace 2-2 ... DownLoader 4 ... Network

Claims (51)

【特許請求の範囲】[Claims] 【請求項1】複数の基本構成要素によって構成されるデ
ータを処理するデータ処理システムであって、 データ利用時においてデータに含まれる各基本構成要素
についての参照情報を生成する参照情報生成手段と、 該参照情報を基に各基本構成要素間の関連性を考慮し
て、関連性のある複数の基本構成要素を1つの新規構成
要素として生成して、データを新規構成要素の集合とし
て再構成するデータ再構成手段と、を具備することを特
徴とするデータ処理システム。
1. A data processing system for processing data constituted by a plurality of basic constituent elements, comprising reference information generating means for generating reference information for each basic constituent element included in the data when the data is used. A plurality of related basic components are generated as one new component in consideration of the relationship between the respective basic components based on the reference information, and the data is reconfigured as a set of new components. A data processing system comprising: a data reconstructing unit.
【請求項2】データはコンピュータ可読形式で記述され
た命令列からなるプログラムである、ことを特徴とする
請求項1に記載のデータ処理システム。
2. The data processing system according to claim 1, wherein the data is a program including an instruction sequence described in a computer-readable format.
【請求項3】データは関数と変数などのシンボルであ
る、ことを特徴とする請求項1に記載のデータ処理シス
テム。
3. The data processing system according to claim 1, wherein the data is symbols such as functions and variables.
【請求項4】データはベーシック・ブロックである、こ
とを特徴とする請求項1に記載のデータ処理システム。
4. The data processing system according to claim 1, wherein the data is a basic block.
【請求項5】データはプログラムの管理情報要素であ
る。ことを特徴とする請求項1に記載のデータ処理シス
テム。
5. Data is a management information element of a program. The data processing system according to claim 1, wherein:
【請求項6】参照情報はデータ毎に累積され一般化した
情報である、ことを特徴とする請求項1に記載のデータ
処理システム。
6. The data processing system according to claim 1, wherein the reference information is information accumulated and generalized for each data.
【請求項7】参照情報はデータ利用時において基本構成
要素が最初に利用される時刻情報である、ことを特徴と
する請求項1に記載のデータ処理システム。
7. The data processing system according to claim 1, wherein the reference information is time information when the basic component is first used when the data is used.
【請求項8】参照情報はデータ利用時に基本構成要素が
利用される頻度情報である、ことを特徴とする請求項1
に記載のデータ処理システム。
8. The reference information is frequency information in which basic components are used when data is used.
The data processing system described in.
【請求項9】参照情報は、基本構成要素が利用された装
置に関する情報などを参照情報である、ことを特徴とす
る請求項1に記載のデータ処理システム。
9. The data processing system according to claim 1, wherein the reference information is reference information such as information regarding a device in which the basic component is used.
【請求項10】新規構成要素を単位として装置間でデー
タの移動を行うデータ移動手段をさらに備える、ことを
特徴とする請求項1に記載のデータ処理システム。
10. The data processing system according to claim 1, further comprising a data moving unit that moves data between devices in units of new components.
【請求項11】新規構成要素を単位として動的リンクを
行う動的リンク手段をさらに備える、ことを特徴とする
請求項1に記載のデータ処理システム。
11. The data processing system according to claim 1, further comprising a dynamic linking unit for dynamically linking the new component as a unit.
【請求項12】前記参照情報生成手段は再構成されたデ
ータを利用するデータ利用装置内に配置される、ことを
特徴とする請求項1に記載のデータ処理システム。
12. The data processing system according to claim 1, wherein the reference information generating means is arranged in a data utilization device that utilizes the reconstructed data.
【請求項13】前記参照情報生成手段は前記データ利用
装置において参照情報の取得の指示が行われたことに応
答して参照情報の取得を行う、ことを特徴とする請求項
12に記載のデータ処理システム。
13. The data according to claim 12, wherein the reference information generating unit acquires the reference information in response to an instruction to acquire the reference information given by the data utilizing apparatus. Processing system.
【請求項14】前記参照情報生成手段は自動的に参照情
報の取得を行う、ことを特徴とする請求項12に記載の
データ処理システム。
14. The data processing system according to claim 12, wherein the reference information generating means automatically acquires the reference information.
【請求項15】前記参照情報生成手段は常に参照情報の
取得を行う、ことを特徴とする請求項12に記載のデー
タ処理システム。
15. The data processing system according to claim 12, wherein the reference information generating means always acquires reference information.
【請求項16】前記参照情報生成手段は再構成されたデ
ータを利用するデータ利用装置以外に配置される、こと
を特徴とする請求項1に記載のデータ処理システム。
16. The data processing system according to claim 1, wherein the reference information generating means is arranged in a device other than a data using device that uses the reconstructed data.
【請求項17】前記参照情報生成手段は前記データ利用
装置におけるデータ利用を模擬して参照情報の取得を行
う、ことを特徴とする請求項16に記載のデータ処理シ
ステム。
17. The data processing system according to claim 16, wherein the reference information generating means acquires reference information by simulating data use in the data using device.
【請求項18】前記参照情報生成手段はデータを解析し
て参照情報の取得を行う、ことを特徴とする請求項16
に記載のデータ処理システム。
18. The reference information generating means analyzes the data to acquire the reference information.
The data processing system described in.
【請求項19】前記データ再構成手段はデータの移動に
先立ってデータの再構成を行う、ことを特徴とする請求
項1に記載のデータ処理システム。
19. The data processing system according to claim 1, wherein said data reconstructing means reconstructs data prior to data movement.
【請求項20】前記データ再構成手段はデータの移動が
完了した後にデータの再構成を行う、ことを特徴とする
請求項1に記載のデータ処理システム。
20. The data processing system according to claim 1, wherein the data reconstructing unit reconstructs data after the data movement is completed.
【請求項21】前記データ再構成手段は参照情報を基に
基本構成要素間の利用関係を定義して該定義を基に新規
構成要素を生成する、ことを特徴とする請求項1に記載
のデータ処理システム。
21. The data reconstructing means defines a use relationship between basic constituent elements based on reference information and generates a new constituent element based on the definition. Data processing system.
【請求項22】前記データ再構成手段は基本構成要素が
利用される参照時刻から計算される参照間隔を利用関係
として定義する、ことを特徴とする請求項21に記載の
データ処理システム。
22. The data processing system according to claim 21, wherein said data reconstructing means defines a reference interval calculated from a reference time when a basic component is used, as a use relationship.
【請求項23】前記データ再構成手段は利用関係が特定
の参照間隔閾値となる基本構成要素をまとめて1つの新
規構成要素を生成する、ことを特徴とする請求項21に
記載のデータ処理システム。
23. The data processing system according to claim 21, wherein the data reconstructing unit collects basic constituent elements whose usage relationship is a specific reference interval threshold value to generate one new constituent element. .
【請求項24】前記データ再構成手段はすべての又は特
定の複数のデータの複数の利用関係から参照間隔閾値を
決定する、ことを特徴とする請求項23に記載のデータ
処理システム。
24. The data processing system according to claim 23, wherein said data reconstructing means determines a reference interval threshold value from a plurality of usage relations of all or specific plurality of data.
【請求項25】前記データ再構成手段は複数の参照情報
から得られる参照間隔の平均値に標準偏差を加算した値
を参照情報閾値として決定する、ことを特徴とする請求
項25に記載のデータ処理システム。
25. The data according to claim 25, wherein the data reconstructing unit determines a value obtained by adding a standard deviation to an average value of reference intervals obtained from a plurality of reference information as a reference information threshold value. Processing system.
【請求項26】複数の基本構成要素によって構成される
データを処理するデータ処理方法であって、 データ利用時においてデータに含まれる各基本構成要素
についての参照情報を生成する参照情報生成ステップ
と、 該参照情報を基に各基本構成要素間の関連性を考慮し
て、関連性のある複数の基本構成要素を1つの新規構成
要素として生成して、データを新規構成要素の集合とし
て再構成するデータ再構成ステップと、を具備すること
を特徴とするデータ処理方法。
26. A data processing method for processing data composed of a plurality of basic constituent elements, comprising a reference information generating step of generating reference information about each basic constituent element included in the data when the data is used. A plurality of related basic components are generated as one new component in consideration of the relationship between the respective basic components based on the reference information, and the data is reconfigured as a set of new components. A data processing method comprising: a data reconstructing step.
【請求項27】データはコンピュータ可読形式で記述さ
れた命令列からなるプログラムである、ことを特徴とす
る請求項26に記載のデータ処理方法。
27. The data processing method according to claim 26, wherein the data is a program including an instruction sequence described in a computer-readable format.
【請求項28】データは関数と変数などのシンボルであ
る、ことを特徴とする請求項26に記載のデータ処理方
法。
28. The data processing method according to claim 26, wherein the data is symbols such as functions and variables.
【請求項29】データはベーシック・ブロックである、
ことを特徴とする請求項26に記載のデータ処理方法。
29. The data is a basic block,
27. The data processing method according to claim 26, wherein:
【請求項30】データはプログラムの管理情報要素であ
る。ことを特徴とする請求項26に記載のデータ処理方
法。
30. Data is a management information element of a program. 27. The data processing method according to claim 26, wherein:
【請求項31】参照情報はデータ毎に累積され一般化し
た情報である、ことを特徴とする請求項26に記載のデ
ータ処理方法。
31. The data processing method according to claim 26, wherein the reference information is information accumulated and generalized for each data.
【請求項32】参照情報はデータ利用時において基本構
成要素が最初に利用される時刻情報である、ことを特徴
とする請求項26に記載のデータ処理方法。
32. The data processing method according to claim 26, wherein the reference information is time information when the basic component is first used when the data is used.
【請求項33】参照情報はデータ利用時に基本構成要素
が利用される頻度情報である、ことを特徴とする請求項
26に記載のデータ処理方法。
33. The data processing method according to claim 26, wherein the reference information is frequency information in which a basic component is used when data is used.
【請求項34】参照情報は、基本構成要素が利用された
装置に関する情報などを参照情報である、ことを特徴と
する請求項26に記載のデータ処理方法。
34. The data processing method according to claim 26, wherein the reference information is reference information such as information regarding a device in which the basic component is used.
【請求項35】新規構成要素を単位として装置間でデー
タの移動を行うデータ移動ステップをさらに備える、こ
とを特徴とする請求項26に記載のデータ処理方法。
35. The data processing method according to claim 26, further comprising a data moving step of moving data between devices in units of a new component.
【請求項36】新規構成要素を単位として動的リンクを
行う動的リンクステップをさらに備える、ことを特徴と
する請求項26に記載のデータ処理方法。
36. The data processing method according to claim 26, further comprising a dynamic link step of dynamically linking the new component as a unit.
【請求項37】前記参照情報生成ステップは再構成され
たデータを利用するデータ利用装置内で実行される、こ
とを特徴とする請求項26に記載のデータ処理方法。
37. The data processing method according to claim 26, wherein the reference information generating step is executed in a data utilization device that utilizes the reconstructed data.
【請求項38】前記参照情報生成ステップは前記データ
利用装置において参照情報の取得の指示が行われたこと
に応答して参照情報の取得を行う、ことを特徴とする請
求項37に記載のデータ処理方法。
38. The data according to claim 37, wherein in the reference information generating step, the reference information is acquired in response to an instruction to acquire the reference information being given in the data utilizing apparatus. Processing method.
【請求項39】前記参照情報生成ステップは自動的に参
照情報の取得を行う、ことを特徴とする請求項37に記
載のデータ処理方法。
39. The data processing method according to claim 37, wherein the reference information generating step automatically acquires reference information.
【請求項40】前記参照情報生成ステップは常に参照情
報の取得を行う、ことを特徴とする請求項37に記載の
データ処理方法。
40. The data processing method according to claim 37, wherein the reference information generating step always acquires reference information.
【請求項41】前記参照情報生成ステップは再構成され
たデータを利用するデータ利用装置以外で実行される、
ことを特徴とする請求項26に記載のデータ処理方法。
41. The reference information generating step is executed by a device other than a data using device that uses reconstructed data.
27. The data processing method according to claim 26, wherein:
【請求項42】前記参照情報生成ステップでは前記デー
タ利用装置におけるデータ利用を模擬して参照情報の取
得を行う、ことを特徴とする請求項41に記載のデータ
処理方法。
42. The data processing method according to claim 41, wherein in the reference information generating step, reference information is acquired by simulating data use in the data use device.
【請求項43】前記参照情報生成ステップではデータを
解析して参照情報の取得を行う、ことを特徴とする請求
項41に記載のデータ処理方法。
43. The data processing method according to claim 41, wherein in the reference information generating step, the data is analyzed to obtain the reference information.
【請求項44】前記データ再構成ステップはデータの移
動に先立ってデータの再構成を行う、ことを特徴とする
請求項26に記載のデータ処理方法。
44. The data processing method according to claim 26, wherein in the data reconstructing step, the data is reconstructed prior to moving the data.
【請求項45】前記データ再構成ステップはデータの移
動が完了した後にデータの再構成を行う、ことを特徴と
する請求項26に記載のデータ処理方法。
45. The data processing method according to claim 26, wherein in the data restructuring step, the data reconfiguration is performed after the data migration is completed.
【請求項46】前記データ再構成ステップでは参照情報
を基に基本構成要素間の利用関係を定義して該定義を基
に新規構成要素を生成する、ことを特徴とする請求項2
6に記載のデータ処理方法。
46. In the data restructuring step, a use relationship between basic constituent elements is defined based on reference information, and a new constituent element is generated based on the definition.
The data processing method according to item 6.
【請求項47】前記データ再構成ステップでは基本構成
要素が利用される参照時刻から計算される参照間隔を利
用関係として定義する、ことを特徴とする請求項46に
記載のデータ処理方法。
47. The data processing method according to claim 46, wherein in the data restructuring step, a reference interval calculated from a reference time at which a basic component is used is defined as a usage relationship.
【請求項48】前記データ再構成ステップでは利用関係
が特定の参照間隔閾値となる基本構成要素をまとめて1
つの新規構成要素を生成する、ことを特徴とする請求項
46に記載のデータ処理方法。
48. In the data reconstructing step, the basic constituent elements whose usage relationship is a specific reference interval threshold value are collectively 1
The data processing method according to claim 46, wherein one new component is generated.
【請求項49】前記データ再構成ステップではすべての
又は特定の複数のデータの複数の利用関係から参照間隔
閾値を決定する、ことを特徴とする請求項48に記載の
データ処理方法。
49. The data processing method according to claim 48, wherein in the data reconstructing step, the reference interval threshold value is determined from a plurality of usage relationships of all or specific plurality of data.
【請求項50】前記データ再構成ステップでは複数の参
照情報から得られる参照間隔の平均値に標準偏差を加算
した値を参照情報閾値として決定する、ことを特徴とす
る請求項26に記載のデータ処理方法。
50. The data according to claim 26, wherein in the data reconstructing step, a value obtained by adding a standard deviation to an average value of reference intervals obtained from a plurality of reference information is determined as a reference information threshold value. Processing method.
【請求項51】複数の基本構成要素によって構成される
データの処理をコンピュータ・システム上で実行するよ
うに記述されたコンピュータ・ソフトウェアをコンピュ
ータ可読形式で物理的に格納した記憶媒体であって、前
記コンピュータ・ソフトウェアは、 データ利用時においてデータに含まれる各基本構成要素
についての参照情報を生成する参照情報生成ステップ
と、 該参照情報を基に各基本構成要素間の関連性を考慮し
て、関連性のある複数の基本構成要素を1つの新規構成
要素として生成して、データを新規構成要素の集合とし
て再構成するデータ再構成ステップと、を具備すること
を特徴とする記憶媒体。
51. A storage medium, which physically stores computer software in a computer-readable format, which is written so as to execute processing of data constituted by a plurality of basic components on a computer system, The computer software includes a reference information generating step of generating reference information about each basic constituent element included in the data when using the data, and a relationship between the basic constituent elements in consideration of the reference information based on the reference information. And a data reconstructing step of reconstructing data as a set of new constituent elements by generating a plurality of basic constituent elements having one property as one new constituent element.
JP2001331509A 2001-10-29 2001-10-29 Data processing system, data processing method, and storage medium Pending JP2003140912A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001331509A JP2003140912A (en) 2001-10-29 2001-10-29 Data processing system, data processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001331509A JP2003140912A (en) 2001-10-29 2001-10-29 Data processing system, data processing method, and storage medium

Publications (2)

Publication Number Publication Date
JP2003140912A true JP2003140912A (en) 2003-05-16
JP2003140912A5 JP2003140912A5 (en) 2005-06-02

Family

ID=19147075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001331509A Pending JP2003140912A (en) 2001-10-29 2001-10-29 Data processing system, data processing method, and storage medium

Country Status (1)

Country Link
JP (1) JP2003140912A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236998B2 (en) 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7392511B2 (en) 2001-03-22 2008-06-24 International Business Machines Corporation Dynamically partitioning processing across plurality of heterogeneous processors
US7415703B2 (en) 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7444632B2 (en) 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7921151B2 (en) 2003-09-25 2011-04-05 International Business Machines Corporation Managing a plurality of processors as devices
JP2015158809A (en) * 2014-02-24 2015-09-03 富士通株式会社 Distribution method, distribution device, terminal device, and distribution system
CN105308564A (en) * 2013-06-20 2016-02-03 博世尼克资讯股份有限公司 Method for downloading application

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392511B2 (en) 2001-03-22 2008-06-24 International Business Machines Corporation Dynamically partitioning processing across plurality of heterogeneous processors
US8091078B2 (en) 2001-03-22 2012-01-03 International Business Machines Corporation Dynamically partitioning processing across a plurality of heterogeneous processors
US7694306B2 (en) 2003-09-25 2010-04-06 International Business Machines Corporation Balancing computational load across a plurality of processors
US7748006B2 (en) 2003-09-25 2010-06-29 International Business Machines Corporation Loading software on a plurality of processors
US7415703B2 (en) 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7444632B2 (en) 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7236998B2 (en) 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7921151B2 (en) 2003-09-25 2011-04-05 International Business Machines Corporation Managing a plurality of processors as devices
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US8219981B2 (en) 2003-09-25 2012-07-10 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US8549521B2 (en) 2003-09-25 2013-10-01 International Business Machines Corporation Virtual devices using a plurality of processors
CN105308564A (en) * 2013-06-20 2016-02-03 博世尼克资讯股份有限公司 Method for downloading application
JP2016527607A (en) * 2013-06-20 2016-09-08 博世尼克資訊股▲ふん▼有限公司 How to download the program
JP2015158809A (en) * 2014-02-24 2015-09-03 富士通株式会社 Distribution method, distribution device, terminal device, and distribution system

Similar Documents

Publication Publication Date Title
Cheung et al. Automatic partitioning of database applications
Koshy et al. VMSTAR: synthesizing scalable runtime environments for sensor networks
Zhang et al. Refactoring android java code for on-demand computation offloading
Appavoo et al. Enabling autonomic behavior in systems software with hot swapping
Gay et al. Software design patterns for TinyOS
US6535903B2 (en) Method and apparatus for maintaining translated routine stack in a binary translation environment
Radhakrishnan et al. An object-oriented time warp simulation kernel
JP2000029714A (en) Packaging method for program component for execution in decentralized system and computer-readable storage medium with package program for program component stored execution therein and computer system
US10747638B2 (en) Computing memory health metrics
JP2003140912A (en) Data processing system, data processing method, and storage medium
Nozal et al. Load balancing in a heterogeneous world: CPU-Xeon Phi co-execution of data-parallel kernels
Zhang et al. Parallelizing the execution of sequential scripts
US20190294465A1 (en) Determining an age category for an object stored in a heap
Breg et al. Java virtual machine support for object serialization
Ensink et al. Program control language: a programming language for adaptive distributed applications
Bartzas et al. Software metadata: Systematic characterization of the memory behaviour of dynamic applications
Livshits et al. Doloto: Code splitting for network-bound Web 2.0 applications
Aversa et al. Performance prediction through simulation of a hybrid MPI/OpenMP application
US10802836B2 (en) Intelligently determining a virtual machine configuration during runtime based on garbage collection characteristics
Cabri et al. Enabling Java mobile computing on the IBM Jikes research virtual machine
Santos et al. Transaction policies for mobile networks
Quitadamo et al. Mobile JikesRVM: A framework to support transparent Java thread migration
Wirjawan et al. Balancing computation and code distribution costs: The case for hybrid execution in sensor networks
EP4083785B1 (en) Profiling and optimization of compiler-generated code
Gray et al. FPGA-based hardware acceleration for real-time big data systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080306

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080430