JP2000112759A - Static analyzing method and optimizing method of program in distributed object environment - Google Patents

Static analyzing method and optimizing method of program in distributed object environment

Info

Publication number
JP2000112759A
JP2000112759A JP10277251A JP27725198A JP2000112759A JP 2000112759 A JP2000112759 A JP 2000112759A JP 10277251 A JP10277251 A JP 10277251A JP 27725198 A JP27725198 A JP 27725198A JP 2000112759 A JP2000112759 A JP 2000112759A
Authority
JP
Japan
Prior art keywords
program
client
computer
annotation
environment
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
JP10277251A
Other languages
Japanese (ja)
Inventor
Mutsumi Komuro
睦 小室
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP10277251A priority Critical patent/JP2000112759A/en
Publication of JP2000112759A publication Critical patent/JP2000112759A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce a communicating amount between a client and a server by securely extracting an executable part only on a client side and also moving the executable part to the client side. SOLUTION: Concerning an object program arranged at a computer on the client side and an object program arranged at a computer on a side to be called, the part which can independently be executed by only the computer on the client side is judged by annotation and propagation with a static analyzing device 103. In addition to it, a part of the object program which can independently be executed by only the computer on the client side is moved to the computer on the client side.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、分散オブジェクト
環境でのプログラムの静的解析方法および最適化方法に
関するものである。
[0001] 1. Field of the Invention [0002] The present invention relates to a method for static analysis and optimization of a program in a distributed object environment.

【0002】[0002]

【従来の技術】従来、ネットワークを介して接続された
複数のコンピュータに分散配置されたオブジェクトプロ
グラムをクライアント側のコンピュータから呼び出し、
クライアント側コンピュータに配置されたオブジェクト
プログラムと共同して処理を進める分散オブジェクト環
境のコンピュータシステムが知られている。
2. Description of the Related Art Conventionally, a client computer calls object programs distributed on a plurality of computers connected via a network.
2. Description of the Related Art A computer system in a distributed object environment that performs processing in cooperation with an object program arranged on a client computer is known.

【0003】[0003]

【発明が解決しようとする課題】分散処理環境、特にC
ORBAに代表される分散オブジェクト環境では、クラ
イアント側が必要とするプログラムの所在場所等の問い
合わせをサーバ側に行うため、クライアント・サーバ間
の通信が通常のクライアントサーバシステムの場合と比
較して増大する傾向が顕著である。これがシステム全体
のパフォーマンスを低下させる要因となっている。この
ため、不要なクライアント・サーバ間通信を削減するこ
とが重要な課題になってきている。
SUMMARY OF THE INVENTION A distributed processing environment, in particular C
In a distributed object environment typified by ORBA, an inquiry about the location of a program required on the client side is made to the server side, so that the communication between the client and the server tends to increase as compared with a normal client-server system. Is remarkable. This is a factor that degrades the performance of the entire system. For this reason, reducing unnecessary client-server communication has become an important issue.

【0004】分散オブジェクト環境では、分散フレーム
ワークのライブラリを用いるが、これらのライブラリ中
ではNOP(何もしない処理)やメッセージを出力する
のみの簡単な処理が多用される。これはライブラリ中の
関係処理とのインターフェイス整合性や将来的な拡張性
を重視するためである。これらの処理の実行自体はサー
バ側で瞬時に行われるが、クライアント側からネットワ
ークを通して呼び出すことになるので、多用すればシス
テム全体としてみたときにオーバヘッドになる。
In the distributed object environment, libraries of the distributed framework are used, and in these libraries, simple processing such as outputting a NOP (processing that does nothing) and a message is frequently used. This is because emphasis is placed on interface consistency with relational processing in the library and expandability in the future. The execution itself of these processes is performed instantaneously on the server side, but is called from the client side through the network.

【0005】例えば、図10のようなクラス階層が定義
されている場合を考える。「クラスB」1001,「ク
ラスC」1002には「メソッドm」1003,100
4が定義されているとする。クラス設計者が「メソッド
m」はこのクラス階層に一般的に定義されるべきメソッ
ドであると判断したときには、「親クラスA」1005
にも「メソッドm」1006が仮想メソッドとして定義
されることになる。
For example, consider a case where a class hierarchy as shown in FIG. 10 is defined. “Class B” 1001, “Class C” 1002 have “method m” 1003, 100
4 is defined. When the class designer determines that “method m” is a method that should be generally defined in this class hierarchy, “parent class A” 1005
Also, “method m” 1006 is defined as a virtual method.

【0006】「クラスD」1007には、「メソッド
m」は必要ないが、「親クラス」1005とインターフ
ェイスを同一にする必要があるため、メソッド定義本体
のない「メソッドm」1008を与えている。また、
「クラスE」1009の作成では設計者が将来的には本
格的なメソッドを書きたいが、現在はまだサポートして
いないという趣旨で、“サポートしていません”という
文字列をメッセージとしてプリントするだけの簡単な
「メソッドm」1010が実装されている。
Although "method m" is not required for "class D" 1007, "method m" 1008 without a method definition body is provided because the interface must be the same as "parent class" 1005. . Also,
In the creation of "Class E" 1009, the designer wants to write a full-fledged method in the future, but prints a character string "Not supported" as a message to the effect that it is not yet supported. A simple “method m” 1010 is implemented.

【0007】いま、図11に示すように分散オブジェク
ト技術によるクライアントサーバシステムを構築してい
るとする。このようなシステムでは、クライアントとサ
ーバに位置を意識させない、ネットワーク透過的なオブ
ジェクトをもとにシステム構築が行われるため、ネット
ワークをまたがった呼び出しが多用され、しかも保守性
・拡張性に重点が置かれるため、前述のような定義本体
のないメソッド(1008)やメッセージを印刷する程
度の簡単なメソッド(1010)の必要性が生じる。
Now, it is assumed that a client server system based on the distributed object technology is constructed as shown in FIG. In such a system, since the system is constructed based on network-transparent objects that do not make the client and server aware of the location, calls across networks are frequently used, and emphasis is placed on maintainability and expandability. Therefore, there is a need for a method (1008) having no definition body as described above and a method (1010) as simple as printing a message.

【0008】例えば、図11の1101のような処理コ
ードがあったとき、「foo」1102,「bar」1
103,「baz」1104というメソッドが順に呼ば
れるが、これらはそれぞれサーバ側のメソッド「foo
_impl」1105,「bar_impl」110
6,「baz_impl」1107を呼び出して処理を
行っている。しかし、「foo_impl」1105は
実行本体のないメソッドであり、直ちにクライアント側
に制御が戻るだけである。従って、「foo」1102
から「foo_impl」1105へのネットワークを
経由した呼び出しのオーバヘッドの分、処理に時間がか
かることになる。
For example, when there is a processing code 1101 in FIG. 11, "foo" 1102, "bar" 1
103 and “baz” 1104 are sequentially called, and these are respectively called server-side methods “foo”.
_Impl ”1105,“ bar_impl ”110
6, “baz_impl” 1107 is called for processing. However, “foo_impl” 1105 is a method without an execution body, and the control is immediately returned to the client side. Therefore, “foo” 1102
The processing takes time because of the overhead of the call to the “foo_impl” 1105 via the network.

【0009】「bar」1103から「bar_imp
l」1106への呼び出しも同様で、単に決められた文
字列の印刷を行うためだけにサーバ・クライアント間通
信を行っている。
From “bar” 1103 to “bar_imp”
The same applies to the call to "1" 1106, in which server-client communication is performed merely to print a determined character string.

【0010】そこで、これらのメソッド定義「foo_
impl」1105,「bar_impl」1106の
定義本体ををクライアント側の「foo」1102,
「bar」1103に移動させて図12のような呼び出
しに書き換えれば「foo」1202、「bar」12
03ではサーバ側への呼び出しが生じず、「baz」1
204から「baz_impl」1205を呼び出すよ
うに、実際にサーバ側の処理が必要なときのみネットワ
ーク間通信を行うようにできる。
Therefore, these method definitions “foo_
“impl” 1105 and “bar_impl” 1106 to the client side “foo” 1102
If it is moved to “bar” 1103 and rewritten as a call as shown in FIG. 12, “foo” 1202, “bar” 12
In 03, no call to the server side occurs and “baz” 1
As in the case of calling “baz_impl” 1205 from 204, communication between networks can be performed only when processing on the server side is actually required.

【0011】このような書換えは、一般にサーバ側のメ
ソッドで具体的な処理内容が予めわかっているものがあ
れば行うことができる。そのためには、サーバ側のメソ
ッドのうち、どの部分が予め計算可能かを判定する必要
があるのであるが、従来においては実現されていなかっ
た。
In general, such rewriting can be performed if there is a server-side method whose specific processing content is known in advance. For this purpose, it is necessary to determine in advance which part of the server-side method can be calculated, but this has not been realized in the past.

【0012】本発明の第1の目的は、クライアント側で
のみ実行可能な部分を的確に抽出することができる分散
オブジェクト環境でのプログラムの静的解析解析方法を
提供することにある。本発明の第2の目的は、クライア
ント側でのみ実行可能な部分をクライアント側に移動し
てクライアント・サーバ間の通信量を削減し、システム
のスループットを向上させることができる分散オブジェ
クト環境でのプログラムの最適化方法を提供することに
ある。
A first object of the present invention is to provide a method for static analysis of a program in a distributed object environment in which a portion executable only on the client side can be accurately extracted. A second object of the present invention is to provide a program in a distributed object environment in which a portion that can be executed only on the client side is moved to the client side to reduce the amount of communication between the client and the server and improve the system throughput. To provide an optimization method.

【0013】[0013]

【課題を解決するための手段】上記目的を達成するため
に、本発明の分散オブジェクト環境でのプログラムの静
的解析法は、クライアント側コンピュータに配置された
オブジェクトプログラムと呼び出される側のコンピュー
タに配置されたオブジェクトプログラムについて、注釈
付けとそのプロパゲーションにより、クライアント側コ
ンピュータのみで独立に実行可能な部分を静的解析器に
より判定することを特徴とする。
In order to achieve the above object, a method for static analysis of a program in a distributed object environment according to the present invention comprises a method for locating an object program located on a client computer and a method for locating the object program on a called computer. With respect to the set object program, a part which can be independently executed only by the client computer is determined by a static analyzer by annotating and propagating the object program.

【0014】また、本発明の分散オブジェクト環境での
プログラムの最適化方法は、クライアント側コンピュー
タに配置されたオブジェクトプログラムと呼び出される
側のコンピュータに配置されたオブジェクトプログラム
について、注釈付けとそのプロパゲーションにより、ク
ライアント側コンピュータのみで独立に実行可能な部分
を静的解析器により判定した後、クライアント側コンピ
ュータのみで独立に実行可能なオブジェクトプログラム
の一部分をクライアント側コンピュータに移動すること
を特徴とする。
Further, the method of optimizing a program in a distributed object environment according to the present invention provides a method for optimizing an object program arranged on a client computer and an object program arranged on a called computer by annotating and propagating the annotation. After a part which can be independently executed only by the client computer is determined by the static analyzer, a part of the object program which can be independently executed only by the client computer is moved to the client computer.

【0015】[0015]

【発明の実施の形態】以下、図面を参照して本発明の実
施形態を詳細に説明する。図1は、本発明の基本的構成
を示す機能構成図であり、図示するように、クライアン
ト側のソースプログラム101とサーバ側のソースプロ
グラム102を静的解析器103にかけ、サーバ側ソー
スプログラム102のうち、クライアント側でのみ実行
可能な部分104とそれを呼び出しているクライアント
側の呼び出しを見つけ、これらの情報を注釈として含む
クライアント側プログラム105とサーバ側プログラム
106を生成した後、これらを振り分け器107にか
け、クライアント側で実行可能な部分104をクライア
ント側で呼び出しているメソッド側に移動するという構
成である。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a functional configuration diagram showing a basic configuration of the present invention. As shown in FIG. 1, a client-side source program 101 and a server-side source program 102 are applied to a static analyzer 103, and the server-side source program 102 Among them, a portion 104 that can be executed only on the client side and a call on the client side that calls the portion 104 are found, and a client side program 105 and a server side program 106 including these information as annotations are generated. , The part 104 executable on the client side is moved to the method side called on the client side.

【0016】次に、与えられたプログラムに対して、実
行(評価)可能な部分を判定するアルゴリズムについ
て、図2および図3、図4を参照して説明する。図2に
示すアルゴリズムの初期注釈付けのステップ201で
は、クライアント側の情報、すなわち、クライアント側
で定義されている変数、関数などはすべて評価可能とす
る。それ以外でも文字列、文字、数値などの直接値をも
つ部分は評価可能であると判定する。また、プログラム
に与える入力データ、実行環境等で最初から値が分かっ
ているものがあれば、それらの値を保持している変数等
も評価可能であると判定する。これら以外の変数、メソ
ッド呼び出しの結果等は初期段階では評価不可能と判定
する。
Next, an algorithm for determining a portion that can be executed (evaluated) with respect to a given program will be described with reference to FIG. 2, FIG. 3, and FIG. In the initial annotation step 201 of the algorithm shown in FIG. 2, information on the client side, that is, all variables and functions defined on the client side can be evaluated. In addition, it is determined that a portion having a direct value such as a character string, a character, or a numerical value can be evaluated. In addition, if there is input data given to the program, an execution environment, or the like whose values are already known from the beginning, it is determined that the variables holding those values can be evaluated. At the initial stage, it is determined that variables other than these, the result of the method call, and the like cannot be evaluated.

【0017】評価可能と判定されたプログラム断片には
s、評価不能と判定されたプログラム断片にはdという
注釈を付ける。このようにして、注釈付けの時の環境
「env」の初期値を決める(ステップ202)。
A program fragment determined to be evaluable is annotated with s, and a program fragment determined to be unevaluable is annotated with d. In this way, the initial value of the environment "env" at the time of annotation is determined (step 202).

【0018】次に、この初期環境を元にプログラム全体
の注釈付けを行う。この注釈付けは注釈付けがそれ以上
進まなくなるまで繰り返しつづける(ステップ20
3)。この繰り返しの終了判定を行うため、まず1段前
の注釈付けを「old_program」にとっておき
(ステップ204)、その後、サブルーチン「prop
agate」によりプログラム全体へ注釈付けを1段進
めさせる(ステップ205)。最終的に注釈付けられた
プログラムを返り値として返却する(ステップ50
6)。
Next, the entire program is annotated based on the initial environment. This annotation continues until no further annotations are made (step 20).
3). In order to determine the end of the repetition, the annotation of the previous stage is first set to “old_program” (step 204), and then the subroutine “prop”
"aggregate" to advance the annotation of the entire program one step (step 205). The finally annotated program is returned as a return value (step 50)
6).

【0019】サブルーチン「propagate」の定
義(207)は、図2(b)に示すように、「prop
agate」はプログラムpを引数にとり、pの各メソ
ッドに対し次の2つの処理を繰り返し行う(ステップ2
08)。まず、プログラム中のメソッド呼び出しを調
べ、引数のそれぞれがsの注釈を持つか、dの注釈を持
つかを調べる。このメソッド呼び出しの解析から、メソ
ッド定義の引数それぞれにsあるいはdの注釈をつけ
る。同一のメソッドに対する呼び出しが複数ある時には
常にsの注釈を持つ引数のみsと見做し、1つでもdの
注釈を持つ引数はdと見做す。また、オブジェクト指向
プログラムでは同一の名前のメソッドでも定義されてい
るクラスの型ごとに定義実体が異なる場合がある。この
ような場合には、定義されているクラスの型情報がsの
注釈を持つときのみ通常のメソッドと同様の注釈付けを
行い、それ以外の場合にはdの注釈付け行う。
The definition (207) of the subroutine "propagate" is, as shown in FIG.
"agate" takes a program p as an argument and repeatedly performs the following two processes for each method of p (step 2).
08). First, a method call in the program is examined to determine whether each argument has an annotation of s or d. From the analysis of this method call, an annotation of s or d is attached to each argument of the method definition. When there are a plurality of calls to the same method, only the argument having the annotation of s is regarded as s, and the argument having at least one annotation of d is regarded as d. Also, in an object-oriented program, the definition entity may be different for each type of class defined even for a method having the same name. In such a case, an annotation similar to a normal method is performed only when the type information of the defined class has an annotation of s, and otherwise, an annotation of d is performed.

【0020】このようにしてメソッドの引数の注釈付け
ができた後、メソッド定義本体を評価し、sまたはdの
注釈づけを行う(ステップ209)。このパラメータに
関する注釈付けの結果を元に新しい環境「env’」を
作る。次に、サブルーチン並びの注釈付けを呼び出し、
「env’」と元の環境「env」を合わせた環境「e
nv’Uenv」の基で、メソッド本体の注釈付けを行
う(ステップ210)。
After the method arguments have been annotated in this way, the method definition body is evaluated and s or d is annotated (step 209). A new environment "env '" is created based on the result of the annotation on this parameter. Then call the subroutine list annotation,
An environment "e" that combines "env '" and the original environment "env"
Based on "nv'Uenv", the method body is annotated (step 210).

【0021】並びの注釈付けは、図3(a)に示すよう
に、並びの各構成要素である実行文sに対し、別のサブ
ルーチン「注釈付け」を呼ぶことで実現される(ステッ
プ311、312)。
As shown in FIG. 3A, the annotation of the list is realized by calling another subroutine "annotation" for the execution statement s which is a component of the list (step 311; 312).

【0022】ステップ312のサブルーチン「注釈付
け」は、図3(b)に示すように、実行文sの種類に応
じそれぞれの注釈付けを行う(ステップ313、31
4、315、316)。特に、sが変数vのときには、
図4(b)に示すように、環境「env」中にvが出現
するか否かでsまたはdの注釈付けを行う(ステップ4
11、412、413)。なお、図4(a)は、図3
(b)のステップ316の詳細である。以上の処理で最
終的に、sの注釈を付けられた部分は評価可能である。
In the subroutine "annotation" of step 312, as shown in FIG. 3B, each annotation is performed according to the type of the execution statement s (steps 313 and 31).
4, 315, 316). In particular, when s is a variable v,
As shown in FIG. 4B, annotation of s or d is performed based on whether or not v appears in the environment “env” (step 4).
11, 412, 413). Note that FIG.
It is a detail of step 316 of (b). In the above processing, the part annotated with s can be finally evaluated.

【0023】ところで、以上の方法は原理的には簡単で
あるが、各段階でプログラム全体の解析を繰り返し行う
ため、効率が悪い。そこで、一旦、sの注釈がなされた
部分はdに変更されることはないことに着目して、より
効率のよいアルゴリズムとしたものを図5および図6に
示す。概略は図2〜図4のアルゴリズムと同様である
が、dからsへの注釈の変更があったかどうかを「fl
ag」に記憶させ、その「flag」がtrueになっ
たときのみpropagateさせるようにしている。
The above method is simple in principle, but is inefficient because the whole program is repeatedly analyzed at each stage. Therefore, focusing on the fact that the portion once annotated s is not changed to d, a more efficient algorithm is shown in FIGS. 5 and 6. The outline is similar to the algorithm of FIGS. 2 to 4, but it is determined whether or not the annotation has been changed from d to s by “fl”.
ag ”, and only when the“ flag ”becomes true, the data is propagated.

【0024】まず、最初に「flag」を「fals
e」に初期化する(ステップ501)。 次に、初期環
境を構築した後(ステップ502)ループに入る(ステ
ップ503)。ループの処理本体で「flag」が書き
換わればループが続行されるが、そうでなければループ
を抜け結果を返す(ステップ504)。このループの処
理本体で呼ばれているサブルーチンpropagate
の内部および各実行分に対する注釈付けの際に(ステッ
プ505)、「flag」のチェックを行ない(図6
(c)のステップ601)、「flag」がtrueの
ときのみ、実質的な処理が行われる。変数に対する注釈
付けの際、注釈付けがsに変わる可能性があり、このと
き「flag」の書換えが行われる(図6(d)のステ
ップ602)。
First, "flag" is changed to "falses".
e "(step 501). Next, after constructing an initial environment (step 502), a loop is entered (step 503). If "flag" is rewritten in the processing body of the loop, the loop is continued. Otherwise, the process exits the loop and returns a result (step 504). Subroutine propagate called in the processing body of this loop
At the time of annotating the inside and each execution part (step 505), a check of “flag” is performed (FIG. 6).
(Step 601 of (c)), only when “flag” is true, substantial processing is performed. When annotating a variable, the annotation may change to s, and at this time, “flag” is rewritten (step 602 in FIG. 6D).

【0025】図7にメソッド定義の移動を図示してい
る。上述の手順によりsの注釈が付けられたメソッド呼
び出し「bar」701をクライアント側に移動し(7
03)、プログラムをクライアント側に埋め込み、「b
ar」702とする。これにより、クライアントからサ
ーバへのネットワーク経由のメソッド呼出しが消去され
た。
FIG. 7 illustrates the movement of the method definition. The method call “bar” 701 annotated with s is moved to the client side by the above procedure (7
03), embed the program on the client side,
ar ”702. This eliminated the method call from the client to the server via the network.

【0026】ここで、図7では、単純にクライアント側
にプログラムを移動するだけであったが、これだと複数
のクライアントに同じデータのコピーができる。結果と
して計算されたデータの大きさが小さいときにはこれで
もよいが、一定の大きさ以上になるとシステム全体とし
てのスペース効率を落とすことになる。例えば、図8に
示すように、「foo」801と「bar」802がサ
ーバ側の同一のメソッド「foobar」803を呼び
出しており、その処理実体が数100行もある場合に
は、クライアント側にこの数100行のコードのコピー
が2個所にできることになり、スペース効率が悪い。こ
の問題は図9のようにクライアントに近い場所に中間サ
ーバ901を設置し、そこに「foobar」902を
移すことにより解決できる。
Here, in FIG. 7, the program is simply moved to the client side, but this allows the same data to be copied to a plurality of clients. As a result, this may be used when the size of the calculated data is small. However, when the size of the calculated data exceeds a certain value, the space efficiency of the entire system is reduced. For example, as shown in FIG. 8, when “foo” 801 and “bar” 802 call the same method “foobar” 803 on the server side, and when there are hundreds of processing entities, the client side Copies of this several hundred lines of code can be made in two places, and space efficiency is poor. This problem can be solved by installing the intermediate server 901 near the client as shown in FIG. 9 and moving “foobar” 902 there.

【0027】このように中間サーバ901を設置する場
合には、さらに以下のような改良を実行する事ができ
る。まず、その中間サーバがサービスを分担しているク
ライアントをc1,..,cnとする。注釈付けアルゴ
リズムの初期注釈付けにおいて、単に1つのクライアン
トciで既知の情報をsと判定するのではなく、c
1,..,cnのどれかで既知であればsであると判定
し、図2〜図6で示したアルゴリズムを適用することに
より、効率的に複数のクライアントから成るクライアン
トグループでのみ実行可能な部分を中間サーバに移動
し、処理を効率化することが可能になる。
When the intermediate server 901 is installed as described above, the following improvement can be further performed. First, clients whose services are shared by the intermediate server are c1,. . , Cn. In the initial annotation of the annotation algorithm, instead of simply determining the information known by one client ci as s, c
1,. . , Cn if it is known, it is determined to be s, and by applying the algorithm shown in FIG. 2 to FIG. It is possible to move to the server and make the processing more efficient.

【0028】[0028]

【発明の効果】以上の説明から明らかなように、本発明
によれば、クライアント側でのみ実行可能な部分を的確
に抽出することができる。また、クライアント側でのみ
実行可能な部分をクライアント側に移動してクライアン
ト・サーバ間の通信量を削減し、システムのスループッ
トを向上させることができる。さらに、中間サーバの使
用により、スペース効率の低下を避けることができるな
どの効果がある。
As is apparent from the above description, according to the present invention, a portion that can be executed only on the client side can be accurately extracted. In addition, a portion that can be executed only on the client side is moved to the client side to reduce the amount of communication between the client and the server, thereby improving the system throughput. Further, the use of the intermediate server has an effect that a decrease in space efficiency can be avoided.

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

【図1】本発明の基本的構成を示す機能構成図である。FIG. 1 is a functional configuration diagram showing a basic configuration of the present invention.

【図2】注釈付けのアルゴリズムを示すPAD図であ
る。
FIG. 2 is a PAD diagram showing an annotation algorithm.

【図3】図2の続きのアルゴリズムを示すPAD図であ
る。
FIG. 3 is a PAD diagram showing the algorithm following FIG. 2;

【図4】図3の続きのアルゴリズムを示すPAD図であ
る。
FIG. 4 is a PAD diagram showing the algorithm following FIG. 3;

【図5】注釈付けアルゴリズムの他の例を示すPAD図
である。
FIG. 5 is a PAD diagram showing another example of an annotation algorithm.

【図6】図5の続きのアルゴリズムを示すPAD図であ
る。
FIG. 6 is a PAD diagram showing the algorithm following FIG. 5;

【図7】本発明によるプログラムコードの移動を示す説
明図である。
FIG. 7 is an explanatory diagram showing movement of a program code according to the present invention.

【図8】中間サーバを導入した例を示す説明図である。FIG. 8 is an explanatory diagram showing an example in which an intermediate server is introduced.

【図9】中間サーバ導入後のプログラム配置を示す説明
図である。
FIG. 9 is an explanatory diagram showing a program arrangement after the introduction of the intermediate server.

【図10】プログラムを移動すべき問題が生じる典型的
な状況を示すオブジェクト環境を示す図である。
FIG. 10 is a diagram illustrating an object environment showing a typical situation where a problem to move a program occurs.

【図11】従来のオブジェクト環境におけるプログラム
配置を示す説明図である。
FIG. 11 is an explanatory diagram showing a program arrangement in a conventional object environment.

【図12】プログラムの配置を移動した場合の説明図で
ある。
FIG. 12 is an explanatory diagram when the arrangement of programs is moved.

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

101…クライアント側のソースプログラム、10…2
サーバ側のソースプログラム、103…性的解析器、1
04…実行可能部分、107…振り分け器、901…中
間サーバ。
101: Client-side source program, 10: 2
Server-side source program, 103 ... sexual analyzer, 1
04: executable part, 107: distributor, 901: intermediate server.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 ネットワークを介して接続された複数の
コンピュータに分散配置されたオブジェクトプログラム
をクライアント側のコンピュータから呼び出し、クライ
アント側コンピュータに配置されたオブジェクトプログ
ラムと共同して処理を進める分散オブジェクト環境のコ
ンピュータシステムにおいて、 クライアント側コンピュータに配置されたオブジェクト
プログラムと呼び出される側のコンピュータに配置され
たオブジェクトプログラムについて、注釈付けとそのプ
ロパゲーションにより、クライアント側コンピュータの
みで独立に実行可能な部分を静的解析器により判定する
ことを特徴とする分散オブジェクト環境でのプログラム
の静的解析方法。
1. A distributed object environment in which an object program distributed on a plurality of computers connected via a network is called from a client computer and a process is performed in cooperation with the object program disposed on the client computer. In a computer system, static analysis of an object program located on the client computer and an object program located on the called computer by annotating and propagating the part that can be executed independently on the client computer only. A static analysis method of a program in a distributed object environment, characterized in that the determination is performed by a device.
【請求項2】 クライアント側コンピュータのみで独立
に実行可能な部分の注釈付けの変更とそのプロパゲーシ
ョンにより、クライアント側コンピュータのみで独立に
実行可能な部分を判定することを特徴とする請求項1記
載の分散オブジェクト環境でのプログラムの静的解析方
法。
2. The method according to claim 1, wherein the part which can be independently executed only by the client computer is determined by changing the annotation of the part which can be independently executed only by the client computer and propagating the annotation. Static analysis method of program in distributed object environment.
【請求項3】 ネットワークを介して接続された複数の
コンピュータに分散配置されたオブジェクトプログラム
をクライアント側のコンピュータから呼び出し、クライ
アント側コンピュータに配置されたオブジェクトプログ
ラムと共同して処理を進める分散オブジェクト環境のコ
ンピュータシステムにおいて、 クライアント側コンピュータに配置されたオブジェクト
プログラムと呼び出される側のコンピュータに配置され
たオブジェクトプログラムについて、注釈付けとそのプ
ロパゲーションにより、クライアント側コンピュータの
みで独立に実行可能な部分を静的解析器により判定した
後、クライアント側コンピュータのみで独立に実行可能
なオブジェクトプログラムの一部分をクライアント側コ
ンピュータに移動することを特徴とする分散オブジェク
ト環境でのプログラムの最適化方法。
3. A distributed object environment in which an object program distributed on a plurality of computers connected via a network is called from a client computer, and processing is performed in cooperation with the object program disposed on the client computer. In a computer system, static analysis of an object program located on the client computer and an object program located on the called computer by annotating and propagating the part that can be executed independently on the client computer only. A part of the object program that can be independently executed only by the client-side computer after the determination by the client-side computer is transferred to the client-side computer. Optimization method of the program in object environment.
【請求項4】 クライアントコンピュータとして複数の
コンピュータが指定された場合に、それらが保有するロ
ーカル情報のみで独立に実行可能な部分を静的解析器に
より判定した後、その実行可能部分のコードを、呼び出
される側のコンピュータと呼び出す側の複数のクライア
ント側コンピュータとの中間に配置されたコンピュータ
に移動することを特徴とする分散オブジェクト環境での
プログラムの最適化方法。
4. When a plurality of computers are designated as client computers, a part which can be independently executed by only the local information held by them is determined by a static analyzer, and the code of the executable part is replaced by A method of optimizing a program in a distributed object environment, comprising moving to a computer located between a called computer and a plurality of calling client computers.
JP10277251A 1998-09-30 1998-09-30 Static analyzing method and optimizing method of program in distributed object environment Pending JP2000112759A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10277251A JP2000112759A (en) 1998-09-30 1998-09-30 Static analyzing method and optimizing method of program in distributed object environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10277251A JP2000112759A (en) 1998-09-30 1998-09-30 Static analyzing method and optimizing method of program in distributed object environment

Publications (1)

Publication Number Publication Date
JP2000112759A true JP2000112759A (en) 2000-04-21

Family

ID=17580932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10277251A Pending JP2000112759A (en) 1998-09-30 1998-09-30 Static analyzing method and optimizing method of program in distributed object environment

Country Status (1)

Country Link
JP (1) JP2000112759A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507014A (en) * 2004-07-13 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Application partitioning for network edge computing
CN110417574A (en) * 2019-05-21 2019-11-05 腾讯科技(深圳)有限公司 A kind of topology analyzing method, device and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507014A (en) * 2004-07-13 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Application partitioning for network edge computing
CN110417574A (en) * 2019-05-21 2019-11-05 腾讯科技(深圳)有限公司 A kind of topology analyzing method, device and storage medium

Similar Documents

Publication Publication Date Title
US7065756B2 (en) Optimization of portable operations in a client-server environment
US20030105833A1 (en) Transparent optimization of network traffic in distributed systems
JP3461689B2 (en) Computer device and page request processing method
US6021416A (en) Dynamic source code capture for a selected region of a display
US6615235B1 (en) Method and apparatus for cache coordination for multiple address spaces
US7194683B2 (en) Representing and managing dynamic data content for web documents
US6292939B1 (en) Method of reducing unnecessary barrier instructions
US6651240B1 (en) Object-oriented software development support apparatus and development support method
US7363312B2 (en) Combining data descriptions
US20020143868A1 (en) Method and apparatus for managing internal caches and external caches in a data processing system
US9684640B2 (en) Methods and apparatus for processing markup language documents
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
KR20070015440A (en) Methods and systems for dynamically composing distributed interactive applications from high-level programming languages
US20070143254A1 (en) System and method for efficiently performing memory intensive computations including a bidirectional synchronization mechanism for maintaining consistency of data
US20080271004A1 (en) Computer-implemented method, system, and program product for optimizing a distributed application
US7571434B1 (en) Method and apparatus for transparent invocation of a characteristics extractor for pattern-based system design analysis
JP2002525744A (en) Compiling method and system for text object
JP2001282592A (en) Sequencing of relational database operation with referential integrity constraint
WO2024152665A1 (en) Code construction method and apparatus, and computer device and storage medium
US20090119641A1 (en) Programming language extensions in structured queries
US6510426B1 (en) Method and apparatus for compacting a metadatas stream in a data processing system
US5946493A (en) Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions
US20190361684A1 (en) Systems and methods for providing an application transformation tool
JP2000112759A (en) Static analyzing method and optimizing method of program in distributed object environment
US7225435B2 (en) Method and system for eliminating redundant execution sequences that appear in workloads during workload simulation on an e-business application server