JPH10207722A - Method and device for dividedly executing program - Google Patents

Method and device for dividedly executing program

Info

Publication number
JPH10207722A
JPH10207722A JP9316816A JP31681697A JPH10207722A JP H10207722 A JPH10207722 A JP H10207722A JP 9316816 A JP9316816 A JP 9316816A JP 31681697 A JP31681697 A JP 31681697A JP H10207722 A JPH10207722 A JP H10207722A
Authority
JP
Japan
Prior art keywords
computer
api function
program
stack
server
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
JP9316816A
Other languages
Japanese (ja)
Inventor
Katsuyoshi Kitai
克佳 北井
Shigekazu Inohara
茂和 猪原
Hideki Murahashi
英樹 村橋
Hisamitsu Furukawa
寿光 古川
Yoshimasa Masuoka
義政 増岡
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP9316816A priority Critical patent/JPH10207722A/en
Publication of JPH10207722A publication Critical patent/JPH10207722A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To execute efficient load dispersion by providing a server computer with a recognition program for checking whether an API function is a function having a result related to a client computer or not. SOLUTION: When an application program 43 executes an API function in a library 44, the API function is sent to a program 48 for discriminating the type of the API function in the library 44. When it is judged that the received function is an API function having a result related to the client computer, the program 48 sends the API function to an window client 46. In the other case such as system service, the API function is executed on an AP stack. When the API function related to man-machine interface processing is selected and executed by access terminals 10, 20, the function can be executed so as to be automatically divided on two computers.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、複数の低価格のマ
ルチメディア対応クライアント計算機が複数のサーバ計
算機を共有する計算機システムに関し、特に、単一のプ
ログラムを2つに分割して各々をクライアント計算機と
サーバ計算機の上で実行するプログラムの分割実行とサ
ーバ計算機の負荷分散に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system in which a plurality of low-cost multimedia-compatible client computers share a plurality of server computers, and in particular, divides a single program into two programs, each of which is a client computer. And divided execution of a program executed on the server computer and load distribution of the server computer.

【0002】[0002]

【従来の技術】クライアント計算機とサーバ計算機のプ
ログラムの実行方法として、「Xウィンドウ」を用いた
方法が知られている (Adrian Nye著,"Xlib Programmin
g Manual for Version II, Volume One," O'Reilly & A
ssociates, Inc., pp. 3-51)。
2. Description of the Related Art As a method of executing programs of a client computer and a server computer, a method using an "X window" is known (Adrian Nye, "Xlib Programmin").
g Manual for Version II, Volume One, "O'Reilly & A
ssociates, Inc., pp. 3-51).

【0003】Xウィンドウを用いたプログラム実行方法
では、ユーザの手元にあるクライアント計算機(X端
末)とサーバ計算機を用いる。サーバ計算機は、ネット
ワークを介してX端末と接続される。サーバ計算機では
プログラムのデータ処理部分が実行され、X端末ではプ
ログラムのマン・マシン・インタフェース処理部分が実
行される。サーバ計算機上のプログラムはXライブラリ
(Xlib)を用いて、X端末上で実行されているXサ
ーバと通信を行うことによって、マン・マシン・インタ
フェース処理を行う。X端末上のマウスやキーボードな
どの入力装置から入力されたデータは、Xサーバがサー
バ計算機へ送信し、サーバ計算機上で実行されているプ
ログラムに入力されたデータを渡す。サーバ上で実行さ
れているプログラムは、プログラムの実行結果をX端末
へ送信して、X端末上のXサーバが実行結果をモニタな
どの出力装置に出力する。このようにしてプログラム
は、X端末とサーバ計算機の両者を用いて実行される。
なお、プログラムが使用するファイルは、サーバ計算機
のディスクなどの補助記憶装置に格納される。
In a program execution method using an X window, a client computer (X terminal) and a server computer at hand of a user are used. The server computer is connected to the X terminal via a network. The server computer executes the data processing part of the program, and the X terminal executes the man-machine interface processing part of the program. The program on the server computer performs man-machine interface processing by communicating with the X server running on the X terminal using the X library (Xlib). The X server transmits data input from an input device such as a mouse or a keyboard on the X terminal to the server computer, and passes the input data to a program executed on the server computer. The program running on the server transmits the execution result of the program to the X terminal, and the X server on the X terminal outputs the execution result to an output device such as a monitor. In this way, the program is executed using both the X terminal and the server computer.
Note that files used by the program are stored in an auxiliary storage device such as a disk of the server computer.

【0004】サーバ計算機の負荷分散方法としてHP社
のTask Brokerが知られている。Task Brokerはクライア
ント計算機からプログラムの実行を依頼されると、プロ
グラムを一旦待ち行列に入れる。次に、ネットワーク上
の計算機の中から負荷の小さい計算機を選択して、待ち
行列の先頭のプログラムをその計算機上で実行させる。
[0004] As a method of distributing the load of a server computer, a Task Broker of HP is known. When requested to execute a program from a client computer, the task broker temporarily places the program in a queue. Next, a computer with a small load is selected from the computers on the network, and the program at the head of the queue is executed on the computer.

【0005】また、サーバ計算機の負荷分散方法として
IBM社のLoad Levellerも知られている。複数の計算
機を用いて並列処理を行う場合、通常、プログラムは複
数のプロセスやスレッドを生成して異なる計算機上でプ
ロセスやスレッドを実行させることによって並列処理を
実現する。Load Levellerは負荷の軽い複数個の計算機
を選択し、それらの計算機上でプロセスやスレッドを並
列実行させる。
[0005] Also, as a load distribution method of a server computer, a Load Leveller of IBM Corporation is known. When parallel processing is performed using a plurality of computers, a program usually realizes the parallel processing by generating a plurality of processes and threads and executing the processes and threads on different computers. Load Leveller selects multiple computers with a light load and runs processes and threads in parallel on those computers.

【0006】[0006]

【発明が解決しようとする課題】Xウィンドウを用いた
上記従来技術によると、クライアント計算機上のXサー
バがサーバ計算機から送られてくるデータを出力するた
めには、サーバ計算機上のプログラムがXライブラリ
(Xlib)を使ってデータをクライアント計算機へ送
る必要がある。例えば、サーバ計算機上にある動画ファ
イルをX端末で表示するためには、サーバ計算機上のプ
ログラムが動画ファイルを読みだし、そのファイルから
動画の各コマのビットマップ・データを作り、X端末に
送付する必要がある。そのため、サーバ計算機では、フ
ァイルを読み出す時とビットマップ・データをX端末に
送る時の2回、オペレーティング・システムのメモリ空
間とアプリケーション・プログラムのメモリ空間との間
でデータ・コピーが発生し、性能が低下するという問題
がある。また、現在のXライブラリで画像を送る場合に
は、ビットマップ・データを送る必要があるため、X端
末とサーバ計算機との間のネットワーク・トラフィック
が増大する、という問題がある。
According to the above-mentioned conventional technique using an X window, in order for an X server on a client computer to output data sent from a server computer, a program on the server computer needs to execute an X library. It is necessary to send data to the client computer using (Xlib). For example, to display a moving image file on a server computer on an X terminal, a program on the server computer reads the moving image file, creates bitmap data of each frame of the moving image from the file, and sends it to the X terminal. There is a need to. Therefore, in the server computer, data copy occurs between the memory space of the operating system and the memory space of the application program twice when reading the file and when sending the bitmap data to the X terminal. Is reduced. In addition, when transmitting an image using the current X library, it is necessary to transmit bitmap data, which causes a problem that network traffic between the X terminal and the server computer increases.

【0007】Task BrokerやLoad Levellerを用いた上記
従来技術によると、バッチ処理や並列処理が対象となっ
ている。そのため、PCのようにGUIを用いたインタ
ラクティブな処理には利用することができない、という
問題がある。
[0007] According to the above-mentioned conventional technology using Task Broker or Load Leveller, batch processing and parallel processing are targeted. Therefore, there is a problem that it cannot be used for interactive processing using a GUI like a PC.

【0008】本発明の目的は、上記課題を解決し、動画
や音声のようなマルチメディア・データを高性能に出力
できるようなクライアント計算機とサーバ計算機のプロ
グラムの分割実行方法を提供することと、インタラクテ
ィブな処理に適したサーバ計算機の負荷分散方法を提供
することにある。
An object of the present invention is to solve the above-mentioned problems and to provide a method of dividing and executing a program of a client computer and a server computer capable of outputting multimedia data such as a moving image or audio with high performance; An object of the present invention is to provide a load balancing method of a server computer suitable for interactive processing.

【0009】[0009]

【課題を解決するための手段】上記目的を達成するため
に、この発明に従ったプログラムの分割実行と負荷分散
方法では、API関数が、例えば、マン−マシンインタ
フェース処理、マルチメディア処理、クライアント計算
機での表示処理、または、圧縮データ処理のようなクラ
イアント計算機に関係する結果を持つ関数であるか否か
をチェックするための認識プログラムを、サーバ計算機
が備える。また、サーバ計算機は、API関数がクライ
アント計算機に関係する結果を持つ関数であるならば、
API関数をクライアント計算機へ送るウィンドウクラ
イアントプログラムを有する。更に、サーバ計算機は、
サーバ計算機のCPU負荷、CPU性能、及びメモリ容
量等を管理するサーバ計算機管理テーブルを有する。ま
た、クライアント計算機は、サーバ計算機から送付され
るAPI関数を受信して、オペレーティング・システム
で実行するウィンドウ・サーバ・プログラムを有する。
In order to achieve the above object, according to the method of dividing and executing a program and distributing a load according to the present invention, the API function is, for example, a man-machine interface process, a multimedia process, a client computer, or the like. The server computer is provided with a recognition program for checking whether or not the function has a result related to the client computer, such as the display processing in the above or the compressed data processing. Also, if the API function is a function having a result related to the client computer,
It has a window client program that sends API functions to the client computer. Further, the server computer
It has a server computer management table for managing the CPU load, CPU performance, memory capacity, etc. of the server computer. Further, the client computer has a window server program that receives an API function sent from the server computer and executes the API function on the operating system.

【0010】[0010]

【発明の実施の形態】以下、本発明の詳細な実施例を説
明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed embodiment of the present invention will be described.

【0011】図2は、本発明のプログラムの分割実行方
法と負荷分散方法が対象とする計算機システムの一実施
例を示す。
FIG. 2 shows an embodiment of a computer system to which the method of executing a program division and the method of distributing load according to the present invention are applied.

【0012】図2において、10および20は本発明の
プログラムの分割実行方法が適用されるアクセス端末、
12および22はMicrosoft社のWindowsのようなオペレ
ーティング・システム(OS)、14および24はMicros
oft社のWin32サブシステムのようなライブラリ、16お
よび26は本発明のプログラムの分割実行方法の一実施
例の構成要素であるウィンドウ・サーバ、17および2
7はRPC(Remote Procedure Call)を実行する通信ラ
イブラリ、18および28はアクセス端末10および2
0の初期化を行うための初期化ルーチンを示す。11a
および21aは入力装置であるマウス、11bおよび2
1bは入力装置であるキーボード、11cおよび21c
は表示装置であるモニタ、11dおよび21dはスピー
カーを示す。同様に、図2に示していないマン・マシン
・インタフェースに関わるその他の入力装置ないし出力
装置は、アクセス端末10,20に接続される。
In FIG. 2, reference numerals 10 and 20 denote access terminals to which the method of executing a program according to the present invention is applied;
12 and 22 are operating systems (OS) such as Microsoft's Windows, and 14 and 24 are Micros
Libraries 16 and 26, such as oft's Win32 subsystem, are window servers, 17 and 2 which are components of one embodiment of the method of the present invention for dividing and executing programs.
7 is a communication library for executing RPC (Remote Procedure Call), 18 and 28 are access terminals 10 and 2
7 shows an initialization routine for initializing 0. 11a
And 21a are mouses as input devices, 11b and 2
1b is a keyboard as an input device, 11c and 21c
Denotes a monitor as a display device, and 11d and 21d denote speakers. Similarly, other input devices or output devices related to the man-machine interface not shown in FIG. 2 are connected to the access terminals 10 and 20.

【0013】70はアクセス端末10ないし20と対に
なって本発明のプログラムの分割実行方法が適用される
アプリケーション・エンジン、30はアプリケーション
・エンジン70を管理するシステム管理スタック、40
および50はアプリケーション・プログラムを実行する
AP(Application Program)用スタック、60はシステ
ム管理スタック30およびAP用スタック40,50を
接続するネットワーク、62はアクセス端末10,20
をアプリケーション・エンジン70と接続するネットワ
ークを示す。
Reference numeral 70 denotes an application engine to which the method for executing a program according to the present invention is applied in combination with the access terminals 10 to 20, 30 denotes a system management stack for managing the application engine 70, 40
And 50, an AP (Application Program) stack for executing an application program; 60, a network connecting the system management stack 30 and AP stacks 40, 50; 62, access terminals 10, 20;
Shows a network that connects to the application engine 70.

【0014】システム管理スタック30とAP用スタッ
ク40とAP用スタック50において、32,42,5
2はMicrosoft社のWindowsのようなOSであり、34,
44,54はMicrosoft社のWin32サブシステムのような
ライブラリであり、35,45,55はディスク装置で
ある。ディスク装置35,45,55上のファイルは、
OS12,22,32,42,52のファイル共有機能
によって1つのファイル・システムに見える。
In the system management stack 30, the AP stack 40, and the AP stack 50, 32, 42, 5
2 is an OS such as Microsoft's Windows,
Reference numerals 44 and 54 denote libraries such as the Microsoft Win32 subsystem, and reference numerals 35, 45 and 55 denote disk units. The files on the disk devices 35, 45, 55 are
The file sharing function of the OS 12, 22, 32, 42, 52 makes it appear as one file system.

【0015】尚、マイクロソフト社のWindowsやWin32に
関する機能や関数については、Jeffrey Richter著,"Ad
vanced Windows(tm)-The Developers Guide to the Win
32(R) API for Windows NT(tm) 3.5 and Windows 95, M
icrosoft Press, 1995 (ISBN1-55625-677-4)に説明があ
る。
The functions and functions related to Microsoft's Windows and Win32 are described in Jeffrey Richter, "Ad
vanced Windows (tm) -The Developers Guide to the Win
32 (R) API for Windows NT (tm) 3.5 and Windows 95, M
It is described in icrosoft Press, 1995 (ISBN1-55625-677-4).

【0016】システム管理スタック30において、27
はアプリケーション・エンジン70の初期化のためのラ
イブラリ、100はAP用スタックのハードウェア情報
や負荷状況を管理するスタック管理テーブル、150は
アクセス端末10ないし20がどのAP用スタックを使
用しているかを管理するアクセス端末管理テーブルを示
す。
In the system management stack 30, 27
Is a library for initializing the application engine 70, 100 is a stack management table for managing hardware information and load status of the AP stack, and 150 is an AP stack used by the access terminals 10 to 20. 4 shows an access terminal management table to be managed.

【0017】AP用スタック40,50において、46
および56は本発明のプログラムの分割実行方法の一実
施例の構成要素であるウィンドウ・クライアントであ
り、47および57はRPCを実行する通信ライブラリ
であり、48および58はライブラリ34,44,54
の種類を識別するプログラムであり、49および59は
AP用スタックにプログラムをロードするときに呼ばれ
るプログラム・ローダである。
In the AP stacks 40 and 50, 46
And 56 are window clients which are components of one embodiment of the method for dividing and executing a program of the present invention, 47 and 57 are communication libraries for executing RPC, and 48 and 58 are libraries 34, 44 and 54.
, And 49 and 59 are program loaders that are called when the program is loaded on the AP stack.

【0018】なお、図2ではシステム管理スタック30
とAP用スタック40ないし50を便宜上分けて図示し
ているが、AP用スタックの中にシステム管理スタック
30におけるスタック管理テーブル100、アクセス端
末管理テーブル150、初期化ライブラリ27が存在し
ても構わない。このように、アプリケーション・エンジ
ンの処理能力がアクセス端末からの要求に対して余裕が
ある場合、AP用スタックにシステム管理スタックの機
能を入れることで経済的な構成を得ることができる。ア
クセス端末10、20、システム管理スタック30、A
P用スタック40、50は、通常のコンピュータ等で実
現できる。コンピュータとしては、CPU、メモリ、内
部バス、キーボードやマウスやモニタ等のI/Oデバイ
ス、通信装置、FDやCDROMやハードディスク等の
ディスクドライバ等を持つものが考えられる。OS、Wi
n32、アプリケーション、RPC、認識用プログラム等
のプログラムは、メモリやハードディスク上に記憶さ
れ、CPUによって実行される。
In FIG. 2, the system management stack 30
And the AP stacks 40 to 50 are separately illustrated for convenience, but the stack management table 100, the access terminal management table 150, and the initialization library 27 in the system management stack 30 may exist in the AP stack. . As described above, when the processing capacity of the application engine has room for the request from the access terminal, an economical configuration can be obtained by incorporating the function of the system management stack into the AP stack. Access terminals 10, 20, system management stack 30, A
The stacks 40 and 50 for P can be realized by an ordinary computer or the like. As the computer, a computer having a CPU, a memory, an internal bus, I / O devices such as a keyboard, a mouse, and a monitor, a communication device, a disk driver such as an FD, a CDROM, and a hard disk can be considered. OS, Wi
Programs such as n32, application, RPC, and recognition program are stored in a memory or a hard disk and executed by the CPU.

【0019】今、図2に示す計算機システムにおいてア
プリケーション・プログラムを起動し、実行する場合に
ついて、本発明の一実施例を説明する。
Now, an embodiment of the present invention will be described for a case where an application program is started and executed in the computer system shown in FIG.

【0020】図2において、アプリケーション・エンジ
ン70はアプリケーション・プログラムを実行し、その
アプリケーション・プログラムのマン・マシン・インタ
フェース処理はアクセス端末10または20が行う。ア
プリケーション・エンジン70とアクセス端末10,2
0は、ネットワーク60,62を介してマン・マシン・
インタフェース処理に関する情報を交換することによっ
て、アクセス端末とアプリケーション・エンジンの両者
でプログラムを分割実行したり、アプリケーション・エ
ンジン内部でプログラムの実行の負荷分散を行う。以
下、初めに、アプリケーション・プログラムの起動、次
に、アプリケーション・プログラムの実行の順で説明す
る。
In FIG. 2, an application engine 70 executes an application program, and the access terminal 10 or 20 performs man-machine interface processing of the application program. Application engine 70 and access terminals 10, 2
0 is a man-machine
By exchanging information regarding the interface processing, the program is divided and executed by both the access terminal and the application engine, and the load of program execution is distributed within the application engine. Hereinafter, the description will be made in the order of starting the application program and then executing the application program.

【0021】(a)アプリケーション・プログラムの起
動 まず、図3と図2を用いて、アプリケーション・プログ
ラムを起動する場合における本発明の一実施例を詳細に
説明する。
(A) Start of Application Program First, an embodiment of the present invention in the case of starting an application program will be described in detail with reference to FIGS.

【0022】図3において、ステップ200からステッ
プ212はアクセス端末で実行されるプログラムの処理
フローを示し、ステップ220からステップ248はア
プリケーション・エンジンで実行されるプログラムの処
理フローを示す。
In FIG. 3, steps 200 to 212 show the processing flow of the program executed by the access terminal, and steps 220 to 248 show the processing flow of the program executed by the application engine.

【0023】アクセス端末10において、利用者が、ア
クセス端末のモニタ11cに表示されているアプリケー
ション・プログラムのアイコンをクリックして当該アプ
リケーション・プログラムを起動すると(200)、ア
クセス端末上の初期化ルーチン18は、アプリケーショ
ン・エンジン70の中のシステム管理スタック30に対
してAPスタックの割り当てを要求する(202)。ア
プリケーション・エンジン70の中のシステム管理スタ
ック30は、スタック管理テーブル100を用いて未使
用のAP用スタックを検索する(220)。
In the access terminal 10, when a user clicks an application program icon displayed on the monitor 11c of the access terminal and starts the application program (200), an initialization routine 18 on the access terminal is started. Requests the system management stack 30 in the application engine 70 to allocate an AP stack (202). The system management stack 30 in the application engine 70 searches for an unused AP stack using the stack management table 100 (220).

【0024】今、図4にスタック管理テーブル100の
一実施例を示す。図4において、102はAP用スタッ
クを識別するための情報であるID番号(番号に限定さ
れず、識別するための情報で有ればよい)、104は当
該AP用スタックのネットワーク上でのホスト名および
ネットワーク・アドレス、106は当該AP用スタック
がいずれかのアクセス端末によって使用されているか否
かを示す使用中/空きフラグ、108は当該AP用スタ
ックの動的なCPU負荷の大きさを保持する。108の
負荷は、システム管理スタック30が各AP用スタック
のCPU負荷の値を、例えば1秒ごとに調べて更新す
る。なお、負荷値を調べる方法については様々な方法が
知られているため、ここでは特には説明しない。110
ないし116は当該AP用スタックのハードウェア性能
を示す。110は当該AP用スタックに搭載されている
CPUの種類が、例えばPentiumで動作周波数が150MHz
というようなCPU性能を示す。112は搭載メモリ容
量、114は内蔵ディスク容量を示し、116は3次元
グラフィックス処理やMPEG2のエンコーダなど、どのよ
うなハードウェア・アクセラレータが搭載されているか
を示す。このように、スタック管理テーブル100の各
エントリに、アプリケーション・エンジンに搭載されて
いる各AP用スタックの情報が登録されている。
FIG. 4 shows an embodiment of the stack management table 100. In FIG. 4, reference numeral 102 denotes an ID number that is information for identifying an AP stack (the information is not limited to a number and may be information for identification), and 104 denotes a host of the AP stack on a network. Name and network address; 106, a busy / empty flag indicating whether the AP stack is used by any access terminal; 108, the dynamic CPU load of the AP stack I do. The load of 108 is updated by the system management stack 30 checking the value of the CPU load of each AP stack, for example, every second. Since various methods are known for checking the load value, they are not particularly described here. 110
Reference numerals 116 show the hardware performance of the AP stack. 110 indicates that the type of CPU mounted on the AP stack is, for example, Pentium and the operating frequency is 150 MHz.
Such CPU performance is shown. Reference numeral 112 denotes a mounted memory capacity, 114 denotes a built-in disk capacity, and 116 denotes what kind of hardware accelerator such as three-dimensional graphics processing and MPEG2 encoder is mounted. As described above, information of each AP stack mounted on the application engine is registered in each entry of the stack management table 100.

【0025】図3に戻り、システム管理スタック30
は、AP用スタックのID番号102の若番から順番
に、スタック管理テーブル100の使用中/空きフラグ
106を調べ、空き状態のAP用スタックがあるか否か
を検索する(222)。空き状態のAP用スタックが見
つかったときには、当該AP用スタックのエントリに登
録されているホスト名もしくはネットワーク・アドレス
(104)を求める(230)。空き状態のAP用スタ
ックが見つからなかったときには、アクセス端末管理テ
ーブル150を用いて、AP用スタックの割り当てを要
求したアクセス端末が現在使用している全てのAP用ス
タックのID番号を調べる(224)。
Returning to FIG. 3, the system management stack 30
Checks the in-use / empty flag 106 of the stack management table 100 in order from the lowest number of the ID number 102 of the AP stack, and searches for an empty AP stack (222). When an empty AP stack is found, the host name or network address (104) registered in the entry of the AP stack is obtained (230). If no empty AP stack is found, the access terminal management table 150 is used to check the ID numbers of all AP stacks currently used by the access terminal that has requested the AP stack allocation (224). .

【0026】図5にアクセス端末管理テーブル150の
一実施例を示す。図5において、152はアクセス端末
管理テーブル150の各エントリのリストのヘッダ、1
54ないし156はアクセス端末管理テーブル150の
各エントリを示す。エントリ154において、154a
はアクセス端末のネットワーク上でのホスト名もしくは
ネットワーク・アドレス、104bは次のエントリへの
ポインタ、154cは当該アクセス端末が使用している
AP用スタックの個数、154dないし154eはAP
用スタックのID番号を示す。このように1台のアクセ
ス端末が複数個のAP用スタックを使用してもよい。
FIG. 5 shows an embodiment of the access terminal management table 150. In FIG. 5, reference numeral 152 denotes a header of a list of each entry of the access terminal management table 150;
Reference numerals 54 to 156 denote each entry of the access terminal management table 150. In entry 154, 154a
Is the host name or network address of the access terminal on the network, 104b is a pointer to the next entry, 154c is the number of AP stacks used by the access terminal, and 154d to 154e are APs.
Indicates the ID number of the application stack. Thus, one access terminal may use a plurality of AP stacks.

【0027】図3に戻り、システム管理スタック30
は、アクセス端末管理テーブル150を調べることによ
って、当該アクセス端末が現在使用している全てのAP
用スタックのID番号を調べる(226)。使用中のA
P用スタックがある場合には、アクセス端末管理テーブ
ル150から求めたAP用スタックのID番号をキーに
してスタック管理テーブル100を検索し、当該AP用
スタックのCPU負荷108を調べる。この手順を繰り
返すことによって、当該アクセス端末が使用している全
てのAP用スタックに関してCPU負荷108を調べ、
CPU負荷が最小のAP用スタックを選択する(23
2)。選択したAP用スタックのエントリに登録されて
いるホスト名もしくはネットワーク・アドレス(10
4)を求める(234)。使用中のAP用スタックがな
い場合には、スタック管理テーブル100において、A
P用スタックのID番号102の若番から順番にCPU
負荷108を調べ、CPU負荷が最小のAP用スタック
を選択する(228)。選択したAP用スタックのエン
トリに登録されているホスト名もしくはネットワーク・
アドレス(104)を求める(234)。
Returning to FIG. 3, the system management stack 30
Examines the access terminal management table 150 to find all APs currently used by the access terminal.
The ID number of the application stack is checked (226). A in use
If there is a stack for P, the stack management table 100 is searched using the ID number of the AP stack obtained from the access terminal management table 150 as a key, and the CPU load 108 of the stack for AP is checked. By repeating this procedure, the CPU load 108 is checked for all AP stacks used by the access terminal,
Select the AP stack with the smallest CPU load (23
2). The host name or network address (10) registered in the entry of the selected AP stack
4) is obtained (234). If there is no AP stack in use, A
CPUs in order from the youngest ID number 102 of the stack for P
The load 108 is checked, and the AP stack with the minimum CPU load is selected (228). The host name or network registered in the entry of the selected AP stack
An address (104) is obtained (234).

【0028】システム管理スタック30は、得られたホ
スト名もしくはネットワーク・アドレスのAP用スタッ
クをアクセス端末に割り当て、当該AP用スタックを起
動する(236)。起動されたAP用スタックは、当該
AP用スタック内のプログラム・ローダを用いてウィン
ドウ・クライアントをブートする(240)。ブートが
完了すると、当該AP用スタックはシステム管理スタッ
ク30にブートの完了を通知する。システム管理スタッ
ク30は、割り当てたAP用スタックのネットワーク上
でのホスト名もしくはネットワーク・アドレスと、AP
用スタックとの通信に使用するAP用スタックのポート
番号を、AP用スタックの割り当てを要求してきたアク
セス端末に通知する(238)。通知が完了すると、シ
ステム管理スタック30は、スタック管理テーブル10
0における使用中フラグ106を使用中に更新し、さら
に、アクセス端末管理テーブル150におけるアクセス
端末が使用中のAP用スタック数(154c)を更新
し、アクセス端末が使用中のAP用スタックのAP用ス
タックのID番号のエントリを追加する(239)。一
方、当該AP用スタックは、アクセス端末からの通信路
の確立要求を待つ(242)。
The system management stack 30 allocates the AP stack having the obtained host name or network address to the access terminal, and activates the AP stack (236). The activated AP stack boots the window client using the program loader in the AP stack (240). When the boot is completed, the AP stack notifies the system management stack 30 of the completion of the boot. The system management stack 30 determines the host name or network address of the assigned AP stack on the network,
The port number of the AP stack used for communication with the AP stack is notified to the access terminal that has requested allocation of the AP stack (238). When the notification is completed, the system management stack 30 sets the stack management table 10
0 is updated to “in use”, the number of AP stacks used by the access terminal in the access terminal management table 150 (154c) is updated, and the AP for the AP stack used by the access terminal is updated. An entry of the stack ID number is added (239). On the other hand, the AP stack waits for a communication channel establishment request from the access terminal (242).

【0029】アクセス端末は、AP用スタックの割り当
てを要求した後(202)、当該アクセス端末内の初期
化ルーチン18を用いて、ウィンドウ・サーバをブート
する(204)。さらに、割り当てられたAP用スタッ
クのネットワーク上でのホスト名もしくはネットワーク
・アドレスと、AP用スタックとの通信に使用するAP
用スタックのポート番号を受信する(206)。これら
を受信すると、アクセス端末は受信したホスト名のAP
用スタックに対して、受信したポート番号を用いて通信
路の確立を要求する(208)。当該AP用スタック
は、確立要求を受けると、通信路確立のACK信号を返
す(244)。その結果、当該アクセス端末と当該AP
用スタックとの間で、RPCなどを用いて通信を行うた
めに必要な通信路が確立する。通信路が確立すると、ア
クセス端末は、利用者がクリックしたアプリケーション
・プログラムのファイル名をアプリケーション・エンジ
ン(APエンジン)に送信する(210)。AP用スタ
ックはアプリケーション・プログラムのファイル名を受
け取ると、当該AP用スタック内のプログラム・ローダ
を用いて、当該ファイル名のアプリケーション・プログ
ラムをブートする(246)。さらに、アプリケーショ
ン・プログラムのリソース・ファイルをアクセス端末へ
送信する(248)。ここでリソース・ファイルとは、
ウィンドウの上部に表示されるメニュー・バーや、メニ
ュー・バーをドラッグしたときに表示されるダイアログ
・ボックスに関する情報を保持するファイルを指す。ア
クセス端末は、受信したリソース・ファイルをウィンド
ウ・サーバに登録する(212)。その結果、アクセス
端末においてウィンドウを正しく表示することができ
る。
After requesting the allocation of the AP stack (202), the access terminal boots the window server by using the initialization routine 18 in the access terminal (204). Further, the host name or network address of the assigned AP stack on the network and the AP used for communication with the AP stack
The port number of the application stack is received (206). Upon receiving these, the access terminal sends the AP of the received host name.
It requests the communication stack to establish a communication path using the received port number (208). Upon receiving the establishment request, the AP stack returns an ACK signal for establishing a communication path (244). As a result, the access terminal and the AP
A communication path necessary for performing communication using the RPC or the like is established with the communication stack. When the communication path is established, the access terminal transmits the file name of the application program clicked by the user to the application engine (AP engine) (210). Upon receiving the file name of the application program, the AP stack boots the application program having the file name by using the program loader in the AP stack (246). Further, the resource file of the application program is transmitted to the access terminal (248). Here, the resource file is
A file that holds information about the menu bar that appears at the top of the window and the dialog boxes that appear when you drag the menu bar. The access terminal registers the received resource file with the window server (212). As a result, the window can be correctly displayed on the access terminal.

【0030】以上のように、アプリケーション・プログ
ラムを起動する時に、スタック管理テーブル100およ
びアクセス端末管理テーブル150を用いることによっ
て、アプリケーション・エンジン70内のAP用スタッ
クのCPU負荷に応じて動的にAP用スタックを割り当
てることができるため、AP用スタック間の負荷分散を
実現でき、アプリケーション・エンジン全体の処理効率
が向上する。
As described above, when the application program is started, by using the stack management table 100 and the access terminal management table 150, the AP can be dynamically changed according to the CPU load of the AP stack in the application engine 70. Since the application stack can be allocated, load distribution between the AP stacks can be realized, and the processing efficiency of the entire application engine improves.

【0031】上記、図3に示した本発明の一実施例で
は、AP用スタックのCPU負荷に応じてAP用スタッ
クを割り当てたが、図6に示す本発明の別の実施例によ
ると、起動するアプリケーション・プログラムが必要と
するCPU性能やメモリ容量も考慮して、AP用スタッ
クを割り当てることができる。以下、図6を用いて詳細
に説明する。
In the embodiment of the present invention shown in FIG. 3 described above, the AP stack is allocated according to the CPU load of the AP stack. However, according to another embodiment of the present invention shown in FIG. The AP stack can be allocated in consideration of the CPU performance and memory capacity required by the application program to be executed. Hereinafter, this will be described in detail with reference to FIG.

【0032】図6において、ステップ300からステッ
プ306はアクセス端末で実行されるプログラムの処理
フローを示し、ステップ320からステップ340はア
プリケーション・エンジンで実行されるプログラムの処
理フローを示す。
In FIG. 6, steps 300 to 306 show the processing flow of the program executed by the access terminal, and steps 320 to 340 show the processing flow of the program executed by the application engine.

【0033】アクセス端末10において、利用者が、ア
クセス端末のモニタ11cに表示されているアプリケー
ション・プログラムのアイコンをクリックして当該アプ
リケーション・プログラムを起動すると(300)、ア
クセス端末上の初期化ルーチン18は、まずクリックさ
れたアプリケーション・プログラムに関する情報を調
べ、当該アプリケーション・プログラムが必要とするC
PU性能やメモリ容量を調べる(301)。次にこれら
をパラメタとして、アプリケーション・エンジン70の
中のシステム管理スタック30に対してAP用スタック
の割り当てを要求する(302)。
In the access terminal 10, when the user starts the application program by clicking the icon of the application program displayed on the monitor 11c of the access terminal (300), the initialization routine 18 on the access terminal is started. First looks up information about the clicked application program and finds the C
The PU performance and memory capacity are checked (301). Next, using these as parameters, the system management stack 30 in the application engine 70 is requested to allocate an AP stack (302).

【0034】アプリケーション・エンジン70の中のシ
ステム管理スタック30は、スタック管理テーブル10
0を用いて未使用のAP用スタックを検索する(32
0、322)。
The system management stack 30 in the application engine 70 has a stack management table 10
0 to search for an unused AP stack (32
0, 322).

【0035】空き状態のAP用スタックが見つかったと
きには、スタック管理テーブル100を用いて、全ての
空き状態のAP用スタックのCPU性能110と主記憶
容量112を調べ、アプリケーション・プログラムが必
要とするCPU性能やメモリ容量を上回るAP用スタッ
クを検索する(331、333)。条件を満たすAP用
スタックが見つかった場合には、その中から1つを選
び、当該AP用スタックのホスト名もしくはネットワー
ク・アドレス(104)を求める(335)。条件を満
たすAP用スタックが見つからなかった場合には、最も
条件に近いAP用スタックを選択し、当該AP用スタッ
クのホスト名もしくはネットワーク・アドレス(10
4)を求める(330)。
When an empty AP stack is found, the CPU management 110 and the main storage capacity 112 of all empty AP stacks are checked using the stack management table 100, and the CPU required by the application program is checked. An AP stack that exceeds the performance and memory capacity is searched (331, 333). If an AP stack that satisfies the condition is found, one of them is selected, and the host name or network address (104) of the AP stack is obtained (335). If no AP stack that satisfies the condition is found, the AP stack that is closest to the condition is selected, and the host name or network address (10
4) is obtained (330).

【0036】空き状態のAP用スタックが見つからなか
ったときには、アクセス端末管理テーブル150を用い
て、AP用スタックの割り当てを要求したアクセス端末
が現在使用している全てのAP用スタックのID番号を
調べる(324、326)。使用中のAP用スタックが
ある場合には、アクセス端末管理テーブル150から求
めたAP用スタックのID番号をキーにしてスタック管
理テーブル100を検索し、当該AP用スタックのCP
U負荷108、CPU性能110、主記憶容量112を
調べる。この手順を繰り返すことによって、当該アクセ
ス端末が使用している全てのAP用スタックに関してC
PU負荷108、CPU性能110、主記憶容量112
を調べ、アプリケーション・プログラムが必要とするC
PU性能やメモリ容量を上回るAP用スタックの中で、
CPU負荷が最小のAP用スタックを選択する(33
2)。CPU性能、主記憶容量の条件を満たすAP用ス
タックが見つからなかった場合には、CPU負荷が最小
のAP用スタックを選択する(332)。さらに、スタ
ック管理テーブル100を用いて、選択したAP用スタ
ックのホスト名もしくはネットワーク・アドレス(10
4)を求める(334)。
When no empty AP stack is found, the access terminal management table 150 is used to check the ID numbers of all AP stacks currently used by the access terminal that has requested the AP stack allocation. (324, 326). If there is an AP stack in use, the stack management table 100 is searched using the AP stack ID number obtained from the access terminal management table 150 as a key, and the CP of the AP stack is searched.
The U load 108, the CPU performance 110, and the main storage capacity 112 are checked. By repeating this procedure, C is obtained for all AP stacks used by the access terminal.
PU load 108, CPU performance 110, main storage capacity 112
To find the C required by the application program
In the AP stack that exceeds PU performance and memory capacity,
Select the AP stack with the smallest CPU load (33
2). If an AP stack satisfying the conditions of the CPU performance and the main storage capacity is not found, an AP stack with the minimum CPU load is selected (332). Further, using the stack management table 100, the host name or the network address (10
4) is obtained (334).

【0037】使用中のAP用スタックがない場合には、
スタック管理テーブル100において、AP用スタック
のID番号102の若番から順番にCPU負荷108、
CPU性能110、主記憶容量112を調べ、アプリケ
ーション・プログラムが必要とするCPU性能やメモリ
容量を上回るAP用スタックの中で、CPU負荷が最小
のAP用スタックを選択する(328)。CPU性能、
主記憶容量の条件を満たすAP用スタックが見つからな
かった場合には、CPU負荷が最小のAP用スタックを
選択する(328)。さらに、スタック管理テーブル1
00を用いて、選択したAP用スタックのホスト名もし
くはネットワーク・アドレス(104)を求める(33
4)。
If there is no AP stack in use,
In the stack management table 100, the CPU load 108,
The CPU performance 110 and the main storage capacity 112 are checked, and an AP stack with the smallest CPU load is selected from the AP stacks exceeding the CPU performance and the memory capacity required by the application program (328). CPU performance,
If no AP stack that satisfies the condition of the main storage capacity is found, an AP stack with the minimum CPU load is selected (328). Further, the stack management table 1
Using 00, the host name or network address (104) of the selected AP stack is determined (33
4).

【0038】システム管理スタック30は、得られたホ
スト名もしくはネットワーク・アドレスのAP用スタッ
クをアクセス端末に割り当て、当該AP用スタックを起
動する(336)。起動されたAP用スタックは、当該
AP用スタック内のプログラム・ローダを用いてウィン
ドウ・クライアントをブートする(340)。ブートが
完了すると、当該AP用スタックはシステム管理スタッ
ク30にブートの完了を通知する(340)。システム
管理スタック30は、割り当てたAP用スタックのネッ
トワーク上でのホスト名もしくはネットワーク・アドレ
スと、AP用スタックとの通信に使用するAP用スタッ
クのポート番号を、AP用スタックの割り当てを要求し
てきたアクセス端末に通知する(338)。なお、これ
以降の処理は、図3と同じのため省略する。
The system management stack 30 allocates the AP stack having the obtained host name or network address to the access terminal, and activates the AP stack (336). The activated AP stack boots the window client using the program loader in the AP stack (340). When the boot is completed, the AP stack notifies the system management stack 30 of the completion of the boot (340). The system management stack 30 has requested allocation of the AP stack with the host name or network address of the allocated AP stack on the network and the port number of the AP stack used for communication with the AP stack. The access terminal is notified (338). The subsequent processing is the same as in FIG.

【0039】アクセス端末は、AP用スタックの割り当
てを要求した後(302)、当該アクセス端末内の初期
化ルーチン18を用いて、ウィンドウ・サーバをブート
する(304)。ステップ304では、後で述べるウィ
ンドウハンドル対応表が生成される。さらに、割り当て
られたAP用スタックのネットワーク上でのホスト名も
しくはネットワーク・アドレスと、AP用スタックとの
通信に使用するAP用スタックのポート番号を受信する
(306)。なお、これ以降の処理は、図3と同じのた
め省略する。
After requesting the AP stack allocation (302), the access terminal boots the window server using the initialization routine 18 in the access terminal (304). In step 304, a window handle correspondence table described later is generated. Further, it receives the host name or network address of the assigned AP stack on the network and the port number of the AP stack used for communication with the AP stack (306). The subsequent processing is the same as in FIG.

【0040】以上のように、アプリケーション・プログ
ラムを起動する時に、スタック管理テーブル100およ
びアクセス端末管理テーブル150を用いることによっ
て、アプリケーション・エンジン70内のAP用スタッ
クのCPU負荷だけではなく、起動するアプリケーショ
ン・プログラムが必要とするCPU性能やメモリ容量も
考慮して、動的にAP用スタックを割り当てることがで
きるため、AP用スタック間の負荷分散を実現できるだ
けではなく、アプリケーション・プログラムの実行効率
を向上させることができる。
As described above, by using the stack management table 100 and the access terminal management table 150 when starting an application program, not only the CPU load of the AP stack in the application engine 70 but also the application to be started -AP stacks can be dynamically allocated in consideration of the CPU performance and memory capacity required by the program, so not only can load distribution between AP stacks be realized, but also application program execution efficiency can be improved. Can be done.

【0041】(b)アプリケーション・プログラムの実
行 (b1)アプリケーション・プログラムの実行方法の概
要 図1を用いて、アクセス端末とAP用スタックを用いて
アプリケーション・プログラムを実行する本発明の一実
施例について、その手順の概要を説明する。
(B) Execution of Application Program (b1) Outline of Method for Executing Application Program Referring to FIG. 1, an embodiment of the present invention for executing an application program using an access terminal and an AP stack will be described. The outline of the procedure will be described.

【0042】図3または図6に示した手順によると、ア
プリケーション・プログラムが起動されるたびに、図2
において、アクセス端末10ないし20にAP用スタッ
ク40ないし50を割り当てられた。また、AP用スタ
ック上にはウィンドウ・クライアント46ないし56、
アプリケーション・プログラムがブートされ、アクセス
端末上にはウィンドウ・サーバ16ないし26がブート
された。さらに、RPCプログラム17,27,47,
57を用いてアクセス端末上のウィンドウ・サーバとA
P用スタック上のクライアント・サーバとの間の通信路
が確立された。その結果、アクセス端末とAP用スタッ
クとを用いてアプリケーションを実行することができ
る。
According to the procedure shown in FIG. 3 or FIG. 6, every time the application program is started, FIG.
In, AP stacks 40 to 50 were allocated to access terminals 10 to 20. Window clients 46 to 56 on the AP stack,
The application program was booted and the window servers 16 to 26 were booted on the access terminal. Further, the RPC programs 17, 27, 47,
A window server on the access terminal using A and A
A communication path with the client server on the P stack has been established. As a result, the application can be executed using the access terminal and the AP stack.

【0043】今、図1において、図2と同じ図番の手段
は、図1においても同じ手段であることを示す。図1に
おいて、10および20はアクセス端末であり、12お
よび22はMicrosoft社のWindowsのようなOSであり、
14および24はMicrosoft社のWin32サブシステムのよ
うなライブラリであり、15a、15bおよび25は対
応するアプリケーション・プログラムのリソース・ファ
イルであり、16a、16bおよび26はウィンドウ・
サーバであり、17a、17bおよび27はRPCを実
行する通信ライブラリであり、18および28は初期化
ルーチンである。また、40および50はAP用スタッ
クであり、42および52はMicrosoft社のWindowsのよ
うなOSであり、44および54はMicrosoft社のWin32
サブシステムのようなライブラリであり、43、53a
および53bはアプリケーション・プログラムであり、
46、56aおよび56bはウィンドウ・クライアント
であり、47、57aおよび57bはRPCを実行する
通信ライブラリであり、48、58aおよび58bはラ
イブラリ44および54の種類を識別するプログラムで
ある。
Now, in FIG. 1, means having the same reference numerals as those in FIG. 2 indicate the same means in FIG. In FIG. 1, 10 and 20 are access terminals, 12 and 22 are OSs such as Microsoft Windows,
14 and 24 are libraries such as Microsoft's Win32 subsystem, 15a, 15b and 25 are resource files of corresponding application programs, and 16a, 16b and 26 are window files.
A server, 17a, 17b and 27 are communication libraries for executing RPC, and 18 and 28 are initialization routines. Reference numerals 40 and 50 denote stacks for the AP, reference numerals 42 and 52 denote OSs such as Microsoft Windows, and reference numerals 44 and 54 denote Microsoft Win32s.
Libraries like subsystems, 43, 53a
And 53b are application programs,
46, 56a and 56b are window clients, 47, 57a and 57b are communication libraries for executing RPC, and 48, 58a and 58b are programs for identifying the types of libraries 44 and 54.

【0044】図1に示す本発明の一実施例では、アクセ
ス端末10が2台のAP用スタック40および50を用
いてアプリケーション・プログラム1(43)とアプリ
ケーション・プログラム2(53a)を実行していた時
に、アクセス端末20が新たにアプリケーション・プロ
グラム3(53b)を起動し、その結果AP用スタック
50が割り当てられ、アクセス端末20とAP用スタッ
ク50がアプリケーション・プログラム3(53b)を
実行している場合について示している。
In the embodiment of the present invention shown in FIG. 1, the access terminal 10 executes the application program 1 (43) and the application program 2 (53a) by using two AP stacks 40 and 50. At this time, the access terminal 20 newly starts the application program 3 (53b), and as a result, the AP stack 50 is allocated, and the access terminal 20 and the AP stack 50 execute the application program 3 (53b). Is shown.

【0045】図1において、アプリケーション・プログ
ラム1(43)が、Win32サブシステムのようなライブ
ラリのAPI関数を実行すると、そのAPI関数は、ラ
イブラリ中においてAPI関数がどの種類(タイプ)の
ものであるかを識別するプログラム48へ送られる。プ
ログラム48は、受け取った関数が、ライブラリの中
で、ウィンドウ管理、描画、マルチメディアデータの再
生等のマンマシンインタフェース処理のような、クライ
アント計算機に関係する結果を持つAPI関数であるこ
とが判明したとき、当該API関数をウィンドウ・クラ
イアント46へ送る。システム・サービスのようなその
他の場合には、AP用スタック上のライブラリ44へ当
該API関数を送り、AP用スタック上で実行する。そ
の識別は、API関数のコードと、これらAPI関数が
クライアント計算機に関係する結果を持つタイプのもの
であるか否かを登録した様なテーブルとを用いることで
行われる。なお、特定関数を見つける識別において、A
PI関数の引数が、API関数のコードと共に使用され
る場合がある。ウィンドウ・クライアント46は、当該
API関数の引数を抽出し、API関数と引数を通信ラ
イブラリ47に渡す。通信ライブラリ47はAPI関数
と引数のマーシャリング処理を行った後、RPCによっ
てアクセス端末10の通信ライブラリ17aにAPI関
数と引数を送る。通信ライブラリ17aは、受け取った
API関数と引数をアンマーシャリング処理を行い、ウ
ィンドウ・サーバ16aにAPI関数と引数を渡す。ウ
ィンドウ・サーバ16aは、Win32サブシステムのよう
なライブラリ14を呼出し、マン・マシン・インタフェ
ース処理を行う。
In FIG. 1, when an application program 1 (43) executes an API function of a library such as the Win32 subsystem, the type of the API function in the library is determined. Is sent to the program 48 for identifying The program 48 has determined that the received function is an API function having a result related to the client computer in the library, such as man-machine interface processing such as window management, drawing, and reproduction of multimedia data. At this time, the API function is sent to the window client 46. In other cases, such as system services, the API function is sent to the library 44 on the AP stack and executed on the AP stack. The identification is performed by using an API function code and a table in which whether or not these API functions are of a type having a result related to the client computer is registered. In the identification for finding a specific function, A
The arguments of the PI function may be used with the code of the API function. The window client 46 extracts the argument of the API function, and passes the API function and the argument to the communication library 47. After performing the marshalling process of the API function and the argument, the communication library 47 sends the API function and the argument to the communication library 17a of the access terminal 10 by RPC. The communication library 17a performs an unmarshalling process on the received API function and argument, and passes the API function and argument to the window server 16a. The window server 16a calls a library 14 such as the Win32 subsystem to perform man-machine interface processing.

【0046】ここで、マーシャリング処理とは、遠隔手
続呼出しRPCにおいて、API関数の名前及びその引
数を通信パケットに設定する処理である。API関数の
名前は、クライアント計算機とサーバ計算機が互いに同
意した番号である。その名前は上記通信パケットの中に
設定される。関数の引数は、APスタック中のメモリ内
の何処かにか、または、ポインタによって指定されるメ
モリ上の何処かにか記録される。それで、引数は、AP
スタック内のメモリから集められた後で通信パケットに
設定される。アンマーシャリングは、API関数とその
引数を通信パケットから入手し、(本実施例では、アク
セス端末内の)メモリに設定する手順である。
Here, the marshalling process is a process of setting the name of an API function and its argument in a communication packet in the remote procedure call RPC. The name of the API function is a number mutually agreed between the client computer and the server computer. The name is set in the communication packet. The function argument is recorded somewhere in memory in the AP stack or somewhere in memory specified by the pointer. So the argument is AP
Set in the communication packet after being collected from the memory in the stack. Unmarshalling is a procedure in which an API function and its arguments are obtained from a communication packet and set in a memory (in the access terminal in this embodiment).

【0047】API関数を実行した時の戻り値は、ライ
ブラリ14からウィンドウ・サーバ16aに渡される。
ウィンドウ・サーバ16aは戻り値を通信ライブラリ1
7aに渡す。通信ライブラリ17aは渡された戻り値を
RPCの戻り値として、AP用スタック40上の通信ラ
イブラリ47に送る。通信ライブラリ47は、戻り値を
アプリケーション・プログラム1(43)に返す。
The return value upon execution of the API function is passed from the library 14 to the window server 16a.
The window server 16a returns the return value to the communication library 1
7a. The communication library 17a sends the passed return value to the communication library 47 on the AP stack 40 as a return value of the RPC. The communication library 47 returns a return value to the application program 1 (43).

【0048】なお、アプリケーション・プログラム2
(53a)、アプリケーション・プログラム3(53
b)も同様に実行される。
The application program 2
(53a), application program 3 (53
b) is performed similarly.

【0049】以上のようにWin32サブシステムのような
API関数(ライブラリ)を、API関数の種類を識別
するプログラムを設け、マン・マシン・インタフェース
処理に関するAPI関数を選択して、これをアクセス端
末で実行することによって、もともとは1台の計算機上
で実行されていたプログラムであっても、自動的に2台
の計算機上で分割実行することができる。その結果、マ
ン・マシン・インタフェース処理の機能に特化した低価
格のアクセス端末を実現できる。
As described above, an API function (library) such as the Win32 subsystem is provided with a program for identifying the type of API function, an API function relating to man-machine interface processing is selected, and this is transmitted to the access terminal. By executing, even if a program was originally executed on one computer, it can be automatically divided and executed on two computers. As a result, a low-cost access terminal specialized in the man-machine interface processing function can be realized.

【0050】(b2)マルチメディア・ファイルのオー
プン、再生 図7、図8、図9を用いて、マルチメディア・データの
再生処理における、本発明のプログラムの分割実行方法
の一実施例について説明する。
(B2) Opening and Playback of Multimedia File An embodiment of the method for executing a program division according to the present invention in multimedia data playback processing will be described with reference to FIGS. 7, 8 and 9. .

【0051】図7において、図2と同じ図番の手段は、
図7においても同じ手段であることを示す。図7におい
て、10はアクセス端末、12はMicrosoft社のWindows
のようなOSを示す。12aはOS12の1構成要素で
あるファイル・システムを示し、AP用スタック40内
のファイル・システムとファイルを共有する。12bは
OS12の1構成要素であるデバイス・ドライバを示
し、11aはマウス、11bはキーボード、11cはモ
ニタ、11dはスピーカーを示す。14はMicrosoft社
のWin32サブシステムのようなライブラリ、16はウィ
ンドウ・サーバ、15はリソース・ファイル、17はR
PCを実行する通信ライブラリ、18は初期化ルーチン
を示す。40はAP用スタック、42はMicrosoft社のW
indowsのようなOS、44はMicrosoft社のWin32サブシ
ステムのようなライブラリ、43はアプリケーション・
プログラム、45はディスク、46はウィンドウ・クラ
イアント、47はRPCを実行する通信ライブラリ、4
8はライブラリ44の種類を識別するプログラムを示
す。43aおよび43bはアプリケーション・プログラ
ム43に含まれるライブラリの種類を示す。
In FIG. 7, means having the same reference numbers as in FIG.
FIG. 7 shows the same means. In FIG. 7, 10 is an access terminal, and 12 is Microsoft Windows.
Is shown. Reference numeral 12a denotes a file system which is one component of the OS 12, and shares a file with the file system in the AP stack 40. Reference numeral 12b denotes a device driver which is one component of the OS 12, 11a denotes a mouse, 11b denotes a keyboard, 11c denotes a monitor, and 11d denotes a speaker. 14 is a library such as Microsoft's Win32 subsystem, 16 is a window server, 15 is a resource file, 17 is R
A communication library for executing the PC, 18 indicates an initialization routine. 40 is a stack for AP, 42 is W of Microsoft Corporation
OS like Windows, 44 is a library like Microsoft's Win32 subsystem, 43 is an application
45, a disk, 46, a window client, 47, a communication library for executing RPC,
Reference numeral 8 denotes a program for identifying the type of the library 44. 43a and 43b indicate types of libraries included in the application program 43.

【0052】まず、図8と図7を用いて、マルチメディ
ア・ファイルをオープンする場合について、本発明の一
実施例を詳細に説明する。
First, an embodiment of the present invention for opening a multimedia file will be described in detail with reference to FIGS. 8 and 7. FIG.

【0053】図8において、アプリケーション・プログ
ラム43がマルチメディア・ファイルをオープンするA
PI関数を実行すると(400)、ライブラリの種類を
識別するプログラム48は、そのAPI関数がマルチメ
ディア再生に関する関数であることを判断し(40
2)、ウィンドウ・クライアント46にあるマルチメデ
ィア・ファイルをオープンするAPI関数を呼び出す
(404)。ウィンドウ・クライアント46は、当該A
PI関数を実行したスレッドのID番号を調べ(40
6)、当該API関数の名前、ファイル名称など当該A
PI関数の引数、およびスレッドのID番号を通信ライ
ブラリ47に渡す。通信ライブラリ47は、当該API
関数の名前、当該API関数の引数、およびスレッドI
D番号をマーシャリング処理して、RPCによりアクセ
ス端末10の中の通信ライブラリ17を呼び出す(40
8)。通信ライブラリ17はAP用スタックから送られ
てきた内容をアンマーシャリング処理して、API関数
の名前、API関数の引数、およびスレッドID番号を
ウィンドウ・サーバ16に渡す。ウィンドウ・サーバ1
6は、スレッドID対応表700を用いて、AP用スタ
ックで実行されているスレッドのID番号を、アクセス
端末で実行されているスレッドのID番号に変換する
(410)。
In FIG. 8, the application program 43 opens a multimedia file A
When the PI function is executed (400), the program 48 for identifying the type of the library determines that the API function is a function related to multimedia reproduction (40).
2) Call an API function to open the multimedia file in the window client 46 (404). The window client 46 determines that A
Check the ID number of the thread that executed the PI function (40
6), such API name, file name, etc.
The argument of the PI function and the ID number of the thread are passed to the communication library 47. The communication library 47 uses the API
Function name, arguments of the API function, and thread I
The D number is marshaled, and the communication library 17 in the access terminal 10 is called by RPC (40).
8). The communication library 17 performs an unmarshalling process on the content sent from the AP stack, and passes the API function name, the API function argument, and the thread ID number to the window server 16. Window server 1
6 uses the thread ID correspondence table 700 to convert the ID number of the thread executed on the AP stack into the ID number of the thread executed on the access terminal (410).

【0054】今、図12にスレッドID対応表700の
一実施例を示す。図12において、702はAP用スタ
ック上でのスレッドのID番号を示し、704はアクセ
ス端末上でのスレッドのID番号を示す。スレッドID
対応表のエントリの追加処理は、AP用スタック上での
スレッドのID番号をキーとしてスレッドID対応表7
00を検索したときに、一致するエントリがなかった場
合に行う。一致するエントリがなかった場合には、アク
セス端末上で新たにスレッドを作成し、作成したスレッ
ドのID番号をスレッドID対応表700に登録する。
スレッドID対応表のエントリの削除処理は、AP用ス
タックで実行中のアプリケーション・プログラムが終了
したときに行う。
FIG. 12 shows an embodiment of the thread ID correspondence table 700. In FIG. 12, 702 indicates the ID number of the thread on the AP stack, and 704 indicates the ID number of the thread on the access terminal. Thread ID
The process of adding an entry in the correspondence table is performed using the thread ID number on the AP stack as a key.
This is performed when there is no matching entry when 00 is searched. If there is no matching entry, a new thread is created on the access terminal, and the ID number of the created thread is registered in the thread ID correspondence table 700.
The process of deleting the entry of the thread ID correspondence table is performed when the application program running on the AP stack ends.

【0055】図8に戻り、ウィンドウ・サーバ16は、
変換されたスレッドのID番号に対応するスレッドに対
してAPI関数の名前とAPI関数の引数を渡す(41
2)。このスレッドが、ライブラリ14を呼び出して、
マルチメディア・ファイルをオープンするAPI関数を
実行する(414)。この時、OS12のファイル・シ
ステム12aは、AP用スタック40上のOS42のフ
ァイル・システム42aとファイル共有を行っているた
め、アクセス端末10からディスク45の上のファイル
を直接オープンすることができる(414)。ライブラ
リ14はAPI関数の実行結果を示すファイル識別子な
どの戻り値をウィンドウ・サーバ16に戻す(41
6)。ウィンドウ・サーバ16は、戻り値を通信ライブ
ラリ17に戻す。通信ライブラリ17は戻り値をRPC
の戻り値として、AP用スタック上の通信ライブラリ4
7に戻し、通信ライブラリ47は戻り値をウィンドウ・
クライアント46へ戻す(418)。ウィンドウ・クラ
イアント46は、戻り値をアプリケーション・プログラ
ム43へ戻す(420)。
Returning to FIG. 8, the window server 16
The name of the API function and the argument of the API function are passed to the thread corresponding to the ID number of the converted thread (41
2). This thread calls library 14,
An API function for opening the multimedia file is executed (414). At this time, since the file system 12a of the OS 12 performs file sharing with the file system 42a of the OS 42 on the AP stack 40, the file on the disk 45 can be directly opened from the access terminal 10 ( 414). The library 14 returns a return value such as a file identifier indicating the execution result of the API function to the window server 16 (41
6). The window server 16 returns a return value to the communication library 17. The communication library 17 returns the return value to RPC
Of the communication library 4 on the AP stack
7 and the communication library 47 returns the return value to the window
Return to the client 46 (418). The window client 46 returns a return value to the application program 43 (420).

【0056】以上のように、本発明の一実施例に示した
上記の手順によって、マルチメディア・ファイルをオー
プンするAPI関数が実行される。このようにして、A
P用スタック40のディスク45にあるマルチメディア
・ファイルがアクセス端末10からオープンされた結
果、OSのファイル共有機能を組み合わせることによっ
て、アクセス端末10からAP用スタック40のディス
ク45にある当該マルチメディア・ファイルを直接読み
出すことが可能になる。
As described above, the API function for opening a multimedia file is executed by the above-described procedure shown in one embodiment of the present invention. Thus, A
As a result of the multimedia file on the disk 45 of the P stack 40 being opened from the access terminal 10, the access terminal 10 combines the multimedia file on the disk 45 of the AP stack 40 by combining the file sharing function of the OS. Files can be read directly.

【0057】次に、図9と図7を用いて、マルチメディ
ア・ファイルを読み出して再生する場合について、本発
明の一実施例を詳細に説明する。
Next, with reference to FIGS. 9 and 7, an embodiment of the present invention for reading and reproducing a multimedia file will be described in detail.

【0058】図9において、アプリケーション・プログ
ラム43がマルチメディア・ファイルを読み出して再生
するAPI関数を実行すると(450)、ライブラリの
種類を識別するプログラム48は、そのAPI関数がマ
ルチメディア再生に関する関数であることを判断し(4
52)、ウィンドウ・クライアント46にあるAPI関
数を呼び出す(454)。ウィンドウ・クライアント4
6は、当該API関数を実行したスレッドのID番号を
調べ(456)、当該API関数の名前、ファイル識別
子のような当該API関数の引数、およびスレッドのI
D番号を通信ライブラリ47に渡す。通信ライブラリ4
7は、当該API関数の名前、当該API関数の引数、
およびスレッドID番号をマーシャリング処理して、R
PCによりアクセス端末10の中の通信ライブラリ17
を呼び出す(458)。通信ライブラリ17はAP用ス
タックから送られてきた内容をアンマーシャリング処理
して、API関数の名前、API関数の引数、およびス
レッドのID番号をウィンドウ・サーバ16に渡す。ウ
ィンドウ・サーバ16は、スレッドID対応表700を
用いて、AP用スタックで実行されているスレッドのI
D番号を、アクセス端末で実行されているスレッドのI
D番号に変換する(460)。さらに、ウィンドウ・ハ
ンドル対応表720を用いて、AP用スタックで実行さ
れているウィンドウ・ハンドルを、アクセス端末で実行
する場合のウィンドウ・ハンドルに変換する。
Referring to FIG. 9, when the application program 43 executes an API function for reading and reproducing a multimedia file (450), the program 48 for identifying the type of the library recognizes that the API function is a function relating to multimedia reproduction. Judge that there is (4
52), calls the API function in the window client 46 (454). Window client 4
6 checks the ID number of the thread that has executed the API function (456), and determines the name of the API function, arguments of the API function such as a file identifier, and the thread ID.
The D number is passed to the communication library 47. Communication library 4
7 is the name of the API function, the argument of the API function,
And the thread ID number are marshaled, and R
Communication library 17 in access terminal 10 by PC
Is called (458). The communication library 17 performs an unmarshalling process on the contents transmitted from the AP stack, and passes the API function name, the API function argument, and the thread ID number to the window server 16. The window server 16 uses the thread ID correspondence table 700 to determine the I of the thread being executed on the AP stack.
D number is the I of the thread running on the access terminal.
It is converted to a D number (460). Further, using the window handle correspondence table 720, the window handle executed on the AP stack is converted into the window handle for execution on the access terminal.

【0059】ここで、ウィンドウ・ハンドルは、モニタ
に表示されるウィンドウを識別するID番号であり、ウ
ィンドウOS上でグラフィカル・ユーザ・インタフェー
スを使用するプログラムによって保持される。ウィンド
ウ・ハンドルは、プログラムを起動する際に、そのプロ
グラムに1つ与えられる。APスタックのアプリケーシ
ョン・プログラムのためのウィンドウ・ハンドルは、A
Pスタックの中に生成される。一方、アクセス端末のウ
ィンドウサーバのためのウィンドウ・ハンドルは、アク
セス端末の中に生成される。APスタックのアプリケー
ション・プログラムのためのウィンドウ・ハンドルは、
アクセス端末へ送られれ、ウィンド・ウハンドル対応表
のために使用される。
Here, the window handle is an ID number for identifying a window displayed on the monitor, and is held by a program using a graphical user interface on the window OS. One window handle is given to a program when the program is started. The window handle for the AP stack application program is A
Generated in the P stack. Meanwhile, a window handle for the window server of the access terminal is created in the access terminal. The window handle for the AP stack application program is:
Sent to the access terminal and used for the window / handle correspondence table.

【0060】今、図17にウィンドウ・ハンドル対応表
720の一実施例を示す。図17において、722はA
P用スタック上でのウィンドウ・ハンドルを示し、72
4はアクセス端末上でのウィンドウ・ハンドルを示す。
ウィンドウ・ハンドル対応表のエントリの生成処理は、
AP用スタック上でアプリケーション・プログラムがウ
ィンドウ生成のAPI関数を実行したときに行う。ウィ
ンドウ・ハンドル対応表のエントリの削除処理は、AP
用スタック上でアプリケーション・プログラムがウィン
ドウ消去のAPI関数を実行したときに行う。
FIG. 17 shows an embodiment of the window / handle correspondence table 720. In FIG. 17, 722 is A
Indicates the window handle on the P stack, 72
4 indicates a window handle on the access terminal.
The process of generating an entry in the window handle correspondence table is as follows:
This is performed when the application program executes an API function for generating a window on the AP stack. Deletion of an entry in the window handle correspondence table is performed by the AP
This is performed when the application program executes an API function for window erasure on the stack for use.

【0061】図9に戻り、ウィンドウ・サーバ16は、
変換されたスレッドのID番号に対応するスレッドに対
してAPI関数の名前とAPI関数の引数を渡す(46
2)。このスレッドが、ライブラリ14を呼び出して、
マルチメディア・ファイルを読み出して再生するAPI
関数を実行する(464)。この時、OS12のファイ
ル・システム12aは、AP用スタック40上のOS4
2のファイル・システム42aとファイル共有を行って
いるため、AP用スタック40上のディスク45に格納
されているマルチメディア・ファイルを直接読み出し、
アクセス端末10で再生することができる(464)。
マルチメディア・ファイルはデバイス・ドライバ12b
を通して、モニタ11cやスピーカー11dで再生され
る(464)。ライブラリ14はマルチメディア・ファ
イルを再生するAPI関数の実行結果をウィンドウ・サ
ーバ16に戻す(466)。ウィンドウ・サーバ16
は、戻り値を通信ライブラリ17に戻す。通信ライブラ
リ17は戻り値をRPCの戻り値として、AP用スタッ
ク上の通信ライブラリ47に戻し、通信ライブラリ47
は戻り値をウィンドウ・クライアント46へ戻す(46
8)。ウィンドウ・クライアント46は、戻り値をアプ
リケーション・プログラム43へ戻す(470)。
Returning to FIG. 9, the window server 16
The name of the API function and the argument of the API function are passed to the thread corresponding to the ID number of the converted thread (46).
2). This thread calls library 14,
API for reading and playing multimedia files
Execute the function (464). At this time, the file system 12 a of the OS 12 stores the OS 4 on the AP stack 40.
2, the multimedia file stored in the disk 45 on the AP stack 40 is directly read out,
The data can be reproduced by the access terminal 10 (464).
Multimedia file is device driver 12b
Is reproduced on the monitor 11c and the speaker 11d (464). The library 14 returns the execution result of the API function for reproducing the multimedia file to the window server 16 (466). Window server 16
Returns a return value to the communication library 17. The communication library 17 returns the return value to the communication library 47 on the AP stack as the return value of the RPC.
Returns the return value to the window client 46 (46
8). The window client 46 returns a return value to the application program 43 (470).

【0062】以上のように、本発明の一実施例に示した
上記の手順によって、OSのファイル共有機構を組み合
わせて用いることで、アクセス端末10からAP用スタ
ック40のディスク45にあるマルチメディア・ファイ
ルを直接読み出して、アクセス端末10でローカルに再
生することができるようになった。言い換えると、ディ
スク45上のマルチメディア・ファイルを一旦アプリケ
ーション・プログラム43が読み出して、アプリケーシ
ョン・プログラム43がアクセス端末10へファイルを
送信する必要がなくなった。その結果、アクセス端末1
0とAP用スタック40の間でプログラムを分割実行す
る場合においても、動画ファイルなどのマルチメディア
・ファイルの再生処理を高速に行える。
As described above, according to the above-described procedure shown in one embodiment of the present invention, by using the file sharing mechanism of the OS in combination, the access terminal 10 can access the multimedia media stored in the disk 45 of the AP stack 40. The file can be read directly and played back locally on the access terminal 10. In other words, the application program 43 once reads the multimedia file on the disk 45, and the application program 43 does not need to transmit the file to the access terminal 10. As a result, the access terminal 1
Even when a program is divided and executed between the stack 0 and the AP stack 40, a multimedia file such as a moving image file can be reproduced at a high speed.

【0063】(b3)マウスやキーボードからのメッセ
ージ処理 図11と図10を用いて、利用者がマウスやキーボード
を用いてアプリケーション・プログラムにメッセージを
送る場合について、本発明の一実施例を詳細に説明す
る。
(B3) Message Processing from Mouse and Keyboard Referring to FIGS. 11 and 10, one embodiment of the present invention will be described in detail for a case where a user sends a message to an application program using a mouse or keyboard. explain.

【0064】図10において、図7と同じ図番の手段
は、図10においても同じ手段であることを示す。図1
0において、10はアクセス端末、12はMicrosoft社
のWindowsのようなOSを示す。12aはOS12の1
構成要素であるファイル・システムを示し、AP用スタ
ック40内のファイル・システムとファイルを共有す
る。12bはOS12の1構成要素であるデバイス・ド
ライバを示し、11aはマウス、11bはキーボード、
11cはモニタ、11dはスピーカーを示す。14はMi
crosoft社のWin32サブシステムのようなライブラリ、1
6はウィンドウ・サーバ、17はRPCを実行する通信
ライブラリ、18は初期化ルーチンを示す。40はAP
用スタック、42はMicrosoft社のWindowsのようなO
S、44はMicrosoft社のWin32サブシステムのようなラ
イブラリ、43はアプリケーション・プログラム、45
はディスク、46はウィンドウ・クライアント、47は
RPCを実行する通信ライブラリ、48はライブラリ4
4の種類を識別するプログラムを示す。43aおよび4
3bはアプリケーション・プログラム43に含まれるラ
イブラリの種類を示す。
In FIG. 10, means having the same reference numerals as those in FIG. 7 indicate the same means in FIG. FIG.
At 0, 10 indicates an access terminal, and 12 indicates an OS such as Microsoft's Windows. 12a is one of OS12
A file system as a constituent element is shown, and a file is shared with the file system in the AP stack 40. Reference numeral 12b denotes a device driver that is one component of the OS 12, 11a denotes a mouse, 11b denotes a keyboard,
11c indicates a monitor, and 11d indicates a speaker. 14 is Mi
libraries like the crosoft Win32 subsystem, 1
6 is a window server, 17 is a communication library for executing RPC, and 18 is an initialization routine. 40 is AP
Stack, 42 is O like Microsoft's Windows
S and 44 are libraries such as Microsoft's Win32 subsystem; 43 is an application program;
Is a disk, 46 is a window client, 47 is a communication library for executing RPC, 48 is a library 4
4 shows a program for identifying four types. 43a and 4
3b indicates the type of library included in the application program 43.

【0065】図11において、アプリケーション・プロ
グラム43がキーボードやマウスなどの入力装置からの
メッセージを受け取るAPI関数(getmessage())を実行
すると(500)、ライブラリの種類を識別するプログ
ラム48は、そのAPI関数がウィンドウ管理などのマ
ン・マシン・インタフェース処理に関する関数であるこ
とを判断し(502)、ウィンドウ・クライアント46
にあるAPI関数(getmessage())を呼び出す(50
4)。ウィンドウ・クライアント46は、当該API関
数を実行したスレッドのID番号を調べ(506)、当
該API関数の名前、当該API関数の引数、およびス
レッドのID番号を通信ライブラリ47に渡す。通信ラ
イブラリ47は、当該API関数の名前、当該API関
数の引数、およびスレッドID番号をマーシャリング処
理して、RPCによりアクセス端末10の中の通信ライ
ブラリ17を呼び出す(508)。通信ライブラリ17
はAP用スタックから送られてきた内容をアンマーシャ
リング処理して、API関数の名前、API関数の引
数、およびスレッドID番号をウィンドウ・サーバ16
に渡す。ウィンドウ・サーバ16は、スレッドID対応
表700を用いて、AP用スタックで実行されているス
レッドのID番号を、アクセス端末で実行されているス
レッドのID番号に変換する(510)。さらに、ウィ
ンドウ・ハンドル対応表720を用いて、AP用スタッ
クで実行されているウィンドウ・ハンドルを、アクセス
端末で実行する場合のウィンドウ・ハンドルに変換す
る。ウィンドウ・サーバ16は、変換されたスレッドの
ID番号に対応するスレッドに対してAPI関数の名前
とAPI関数の引数を渡す(512)。このスレッド
が、ライブラリ14を呼び出してAPI関数(getmessag
e())を実行する。その結果、アクセス端末は入力装置か
らのメッセージ待ちとなる(514)。アプリケーショ
ン・プログラムが実行されているウィンドウ上でマウス
がクリックされたり、メニューがドラッグされるなどの
イベントが発生すると(516)、OS12はイベント
をライブラリ14へ伝え、ライブラリ14はどのような
イベントが発生したかを示すメッセージを発生させ、ウ
ィンドウ・サーバにメッセージを伝える(518)。ウ
ィンドウ・サーバ16は、メッセージを通信ライブラリ
17に戻す(520)。通信ライブラリ17はメッセー
ジをRPCの戻り値として、AP用スタック上の通信ラ
イブラリ47に戻し、通信ライブラリ47はメッセージ
をウィンドウ・クライアント46へ戻す(522)。ウ
ィンドウ・クライアント46は、メッセージをアプリケ
ーション・プログラム43へ戻す(524)。アプリケ
ーション43は、受け取ったメッセージの内容に応じた
処理を行う(526)。
In FIG. 11, when the application program 43 executes an API function (getmessage ()) for receiving a message from an input device such as a keyboard or a mouse (500), the program 48 for identifying the type of library executes the API function. It is determined that the function is a function relating to man-machine interface processing such as window management (502), and the window client 46 is determined.
Calls the API function (getmessage ()) in
4). The window client 46 checks the ID number of the thread that has executed the API function (506), and passes the name of the API function, the argument of the API function, and the ID number of the thread to the communication library 47. The communication library 47 performs a marshalling process on the name of the API function, the argument of the API function, and the thread ID number, and calls the communication library 17 in the access terminal 10 by RPC (508). Communication library 17
Performs an unmarshalling process on the contents sent from the AP stack, and stores the name of the API function, the argument of the API function, and the thread ID number in the window server 16.
Pass to. Using the thread ID correspondence table 700, the window server 16 converts the ID number of the thread executed on the AP stack into the ID number of the thread executed on the access terminal (510). Further, using the window handle correspondence table 720, the window handle executed on the AP stack is converted into the window handle for execution on the access terminal. The window server 16 passes the name of the API function and the argument of the API function to the thread corresponding to the ID number of the converted thread (512). This thread calls the library 14 and executes the API function (getmessag
Execute e ()). As a result, the access terminal waits for a message from the input device (514). When an event such as a mouse click or a menu drag occurs on a window in which an application program is executed (516), the OS 12 transmits the event to the library 14, and the library 14 determines what kind of event has occurred. Then, a message indicating whether the message has been sent is generated, and the message is transmitted to the window server (518). Window server 16 returns the message to communication library 17 (520). The communication library 17 returns the message to the communication library 47 on the AP stack as a return value of the RPC, and the communication library 47 returns the message to the window client 46 (522). Window client 46 returns the message to application program 43 (524). The application 43 performs a process according to the content of the received message (526).

【0066】以上のように、本発明の一実施例に示した
上記の手順によって、アクセス端末10の入力装置で発
生したイベントをAP用スタック40で実行中のアプリ
ケーション・プログラムへ伝達することができる。
As described above, according to the above-described procedure shown in one embodiment of the present invention, an event generated in the input device of the access terminal 10 can be transmitted to the application program running on the AP stack 40. .

【0067】(b4)AP用スタックとアクセス端末間
の通信処理の削減方法 上記に示した本発明の一実施例によれば、アプリケーシ
ョン・プログラム43がAPI関数を1つ実行するたび
に、当該API関数がアクセス端末10に送られるた
め、通信処理が膨大になることがある。
(B4) Method of Reducing Communication Processing Between AP Stack and Access Terminal According to the above-described embodiment of the present invention, each time the application program 43 executes one API function, Since the function is sent to the access terminal 10, communication processing may be enormous.

【0068】しかし、図14および図15に示す、ウィ
ンドウ・クライアント46の本発明の一実施例によれ
ば、複数のAPI関数をまとめてAP用スタック40か
らアクセス端末10へ送信するため、マーシャリング処
理やアンマーシャリング処理などのRPCに関する通信
処理を削減することができる。
However, according to an embodiment of the present invention of the window client 46 shown in FIGS. 14 and 15, since a plurality of API functions are transmitted together from the AP stack 40 to the access terminal 10, a marshalling process is performed. It is possible to reduce communication processing related to RPC, such as the RPC and unmarshalling processing.

【0069】図14および図15において、ウィンドウ
・クライアント46は、API関数を複数個保持するこ
とができるキュー620とタイマ622を持つ。まず、
ウィンドウ・クライアント46は、タイマ622に上限
値を設定する(600)。タイマ622の値は一定時間
ごとに1ずつ減じられる。次に、ウィンドウ・クライア
ント46は、ライブラリの種類を識別するプログラム4
8によって呼び出されるのを待つ(601)。ライブラ
リの種類を識別するプログラム48によって呼び出され
ると、呼び出したAPI関数とその引数をキュー620
に挿入する(604)。グラフィックスの描画用API
関数のように挿入したAPI関数の戻り値がVOIDの
場合には、キュー620が満杯であるか否かを調べる
(608)。キューが満杯でなければ、タイマ622の
値がゼロ以下になっているか否かを調べる(610)。
タイマの値がゼロ以下になっていなければ601へ戻
り、アプリケーション・プログラム43が次のAPI関
数を実行するのを待つ。
Referring to FIGS. 14 and 15, the window client 46 has a queue 620 and a timer 622 capable of holding a plurality of API functions. First,
The window client 46 sets an upper limit value on the timer 622 (600). The value of the timer 622 is decremented by one at regular intervals. Next, the window client 46 executes the program 4 for identifying the type of the library.
8 (601). When called by the program 48 for identifying the type of library, the called API function and its argument are stored in a queue 620.
(604). API for drawing graphics
If the return value of the API function inserted as a function is a VOID, it is checked whether the queue 620 is full (608). If the queue is not full, it is checked whether the value of the timer 622 is equal to or less than zero (610).
If the timer value is not less than zero, the process returns to 601 and waits for the application program 43 to execute the next API function.

【0070】挿入したAPI関数の戻り値がVOIDで
ない場合には、アプリケーション・プログラム43がそ
の戻り値をプログラム中で使用するため、キュー620
内にあるAPI関数を一括してマーシャリング処理を行
い、RPCによってアクセス端末10へ送る(61
2)。これにより、戻り値を必要とするプログラムの遅
延を防げる。また、キュー620が満杯の場合や、タイ
マ622の値がゼロ以下になった場合にも、キュー62
0内にあるAPI関数を一括してアクセス端末10へ送
る(612)。その後、600へ戻る。
If the return value of the inserted API function is not a VOID, the application program 43 uses the return value in the program.
Performs a marshalling process for the API functions in the batch and sends them to the access terminal 10 by RPC (61).
2). This can prevent a program that requires a return value from being delayed. Also, when the queue 620 is full or when the value of the timer 622 becomes zero or less, the queue 62
The API functions in the number 0 are sent to the access terminal 10 in a lump (612). Thereafter, the flow returns to 600.

【0071】以上のように、上記本発明の一実施例によ
れば、複数のAPI関数をまとめてAP用スタック40
からアクセス端末10へ送信するため、通信ライブラリ
47におけるマーシャリング処理やアンマーシャリング
処理などのRPCに関する通信処理を削減することがで
き、AP用スタック40やアクセス端末10のCPU負
荷を軽減することができる。
As described above, according to the embodiment of the present invention, a plurality of API functions are put together to form the AP stack 40.
, The communication processing related to RPC such as marshalling processing and unmarshalling processing in the communication library 47 can be reduced, and the CPU load of the AP stack 40 and the access terminal 10 can be reduced.

【0072】また、上記に示した本発明の一実施例によ
れば、利用者がアクセス端末10のマウス11aやキー
ボード11bから入力メッセージを発生させるたびに、
当該メッセージがAP用スタック40に送られるため、
通信処理が膨大になることがある。
Further, according to the embodiment of the present invention described above, each time the user generates an input message from the mouse 11a or the keyboard 11b of the access terminal 10,
Since this message is sent to the AP stack 40,
The communication processing may be enormous.

【0073】しかし、図16に示すウィンドウ・サーバ
16の本発明の一実施例によれば、アプリケーション・
プログラム43が処理するメッセージだけをAP用スタ
ック40へ送信するため、マーシャリング処理やアンマ
ーシャリング処理などのRPCに関する通信処理を削減
することができる。
However, according to one embodiment of the present invention of the window server 16 shown in FIG.
Since only the message processed by the program 43 is transmitted to the AP stack 40, communication processing relating to RPC such as marshalling processing and unmarshalling processing can be reduced.

【0074】まず、図13にメッセージ登録テーブル7
50の詳細を示す。752はAP用スタックへ送信する
メッセージの番号が登録されるエントリを示す。このメ
ッセージ登録テーブルは、アクセス端末のウィンドウサ
ーバによって保持され、ウィンドウサーバが起動される
ときに生成される(図6のステップ304)。メッセー
ジ番号は、アプリケーションプログラムが受け取るメッ
セージの種類(タイプ)を表すので、すなわち、メッセ
ージ登録テーブルの内容はAPスタックのアプリケーシ
ョン・プログラムの種類により変わる。APスタック
は、アプリケーション・プログラムを起動する際にメッ
セージ登録テーブルにメッセージの番号を登録する。そ
して、メッセージ登録テーブルの内容は、ウィンドウサ
ーバの終了まで保持される。
First, FIG. 13 shows the message registration table 7
50 shows details. Reference numeral 752 denotes an entry in which the number of the message to be transmitted to the AP stack is registered. This message registration table is held by the window server of the access terminal, and is generated when the window server is started (step 304 in FIG. 6). The message number represents the type (type) of the message received by the application program, that is, the content of the message registration table changes depending on the type of the application program of the AP stack. The AP stack registers a message number in a message registration table when activating an application program. Then, the contents of the message registration table are held until the window server ends.

【0075】図16において、ウィンドウ・サーバ16
がライブラリ14からメッセージを受け取ると(65
0)、ウィンドウ・サーバ16は、受け取ったメッセー
ジの番号をキーにしてメッセージ登録テーブル750を
検索する(652)。検索した結果、メッセージ登録テ
ーブル750に登録されていた場合には、上記に述べた
方法と同じ手順で、当該メッセージをAP用スタック4
0へ送る(656)。登録されていない場合には、アク
セス端末10の中でローカルにライブラリ14が持って
いるデフォルト処理を実行する(658)。
In FIG. 16, the window server 16
Receives a message from the library 14 (65
0), the window server 16 searches the message registration table 750 using the received message number as a key (652). As a result of the search, if the message is registered in the message registration table 750, the message is stored in the AP stack 4 in the same procedure as the method described above.
Send to 0 (656). If not registered, the default processing that the library 14 has locally in the access terminal 10 is executed (658).

【0076】本発明の機能は、上述した機能を持つプロ
グラムをコンピュータ上で実行することによって実現す
ることができる。プログラムは、コンピュータが読むこ
とができる記憶媒体に記録された形で、コンピュータに
提供される。コンピュータは、この記録媒体に記憶され
たプログラムを実行する。アクセス端末用のプログラム
と、アプリケーション・エンジン用のプログラムは一つ
の記録媒体に記録されて供給されるか、または、別の記
録媒体に記録されて供給されるかもしれない。記録媒体
としては、FD(フロッピディスク)、CD(コンパク
トディスク)ROM、DVD等が可能である。コンピュ
ータはこれを記録媒体リーダを用いて、記憶媒体のプロ
グラム(ソフトウェア)を読み、本機能を実行する。
The functions of the present invention can be realized by executing a program having the above functions on a computer. The program is provided to the computer in a form recorded on a computer-readable storage medium. The computer executes the program stored in the recording medium. The program for the access terminal and the program for the application engine may be recorded and supplied on one recording medium, or may be recorded and supplied on another recording medium. As a recording medium, an FD (floppy disk), a CD (compact disk) ROM, a DVD, and the like can be used. The computer reads the program (software) in the storage medium using the storage medium reader and executes this function.

【0077】以上のように、上記本発明の一実施例によ
れば、メッセージ登録テーブル750に登録されている
メッセージだけをアクセス端末10からAP用スタック
40へ送信できるため、通信ライブラリ47におけるマ
ーシャリング処理やアンマーシャリング処理などのRP
Cに関する通信処理を削減することができ、AP用スタ
ック40やアクセス端末10のCPU負荷を軽減するこ
とができる。
As described above, according to the embodiment of the present invention, only the message registered in the message registration table 750 can be transmitted from the access terminal 10 to the AP stack 40. For RP and unmarshalling
Communication processing related to C can be reduced, and the CPU load on the AP stack 40 and the access terminal 10 can be reduced.

【0078】図18は、従来技術において、ビットマッ
プデータをクライアント端末の表示デバイス上に表示す
る場合のデータと制御の流れを示す。(1)圧縮された
マルチメディアデータがディスクから読み出される。
(2)圧縮されたマルチメディアデータがアプリケーシ
ョンによって解凍(伸張)される。すなわち、圧縮され
ない状態のデータに戻される。それから、表示のための
ビットマップデータがマルチメディアデータから作られ
る。(3)ビットマップデータがXライブラリへ送られ
る。それから、Xライブラリは、サーバコンピュータ上
のOSへビットマップデータを送る。(4)サーバコン
ピュータ上のOSは、ビットマップデータをクライアン
トコンピュータ上のOSへ送る。(5)クライアントコ
ンピュータ上のOSは、クライアント側のディスプレイ
を制御するウィンドウサーバへビットマップデータを送
る。(6)ビットマップデータはディスプレイ上に表示
される。
FIG. 18 shows the data and the flow of control when bitmap data is displayed on a display device of a client terminal in the prior art. (1) The compressed multimedia data is read from the disk.
(2) The compressed multimedia data is decompressed (expanded) by the application. That is, the data is returned to the uncompressed state. Then, bitmap data for display is created from the multimedia data. (3) The bitmap data is sent to the X library. The X library then sends the bitmap data to the OS on the server computer. (4) The OS on the server computer sends the bitmap data to the OS on the client computer. (5) The OS on the client computer sends the bitmap data to the window server that controls the display on the client side. (6) The bitmap data is displayed on a display.

【0079】一方、図19は、本発明における制御の流
れとデータの流れを示す。(1)サーバ上のアプリケー
ションは、マルチメディアデータを再生するAPI関数
を発行する。それから、関数種別を認識するプログラム
とウィンドウクライアントプログラムは、アクセス端末
へAPI関数を送ることを決定する。(2)OSは、ア
クセス端末へAPI関数を転送する。(3)アクセス端
末上のウィンドウサーバがサーバのOSからAPI関数
を受け取る。(4)ウィンドウサーバが、アクセス端末
上のOSはAPI関数を発行する。ここで、API関数
によって処理される対象は、アクセス端末とサーバによ
ってファイル共有されるマルチメディアファイルであ
る。(5)サーバ計算機のOSは、ファイル共用プロト
コルによってアクセス端末のOSから呼び出される。
(6)サーバ計算機のOSが二次記憶(ディスク)をア
クセスする。(7)OSが、ディスクから圧縮されたマ
ルチメディアデータを読み出す。(8)ディスクから読
み出された圧縮されたマルチメディアデータがサーバか
らアクセス端末へ転送される。(9)アクセス端末上の
OSが、ウィンドウサーバへ、マルチメディアデータを
渡す。(10)ウィンドウサーバが、圧縮されたマルチ
メディアデータを解凍(伸張)する。すなわち、圧縮さ
れない状態のマルチメディアデータとする。それから、
ウィンドウサーバは、解凍されたマルチメディアデータ
からビットマップデータを作成し、ディスプレイ装置に
送る。
FIG. 19 shows a control flow and a data flow in the present invention. (1) An application on a server issues an API function for reproducing multimedia data. Then, the function type recognizing program and the window client program decide to send the API function to the access terminal. (2) The OS transfers the API function to the access terminal. (3) The window server on the access terminal receives the API function from the server OS. (4) The window server issues an API function to the OS on the access terminal. Here, the target processed by the API function is a multimedia file that is shared by the access terminal and the server. (5) The OS of the server computer is called from the OS of the access terminal by the file sharing protocol.
(6) The OS of the server computer accesses the secondary storage (disk). (7) The OS reads the compressed multimedia data from the disk. (8) The compressed multimedia data read from the disk is transferred from the server to the access terminal. (9) The OS on the access terminal passes the multimedia data to the window server. (10) The window server decompresses (expands) the compressed multimedia data. That is, the multimedia data is not compressed. then,
The window server creates bitmap data from the decompressed multimedia data and sends it to the display device.

【0080】従来技術では、サーバとアクセス端末間の
ネットワーク上のデータはビットマップデータである
が、本発明ではそのデータは圧縮されたマルチメディア
データである。ネットワーク上の本発明のデータ量は従
来技術のデータ量より少ない。このため、本発明はネッ
トワークのデータ転送負荷を減少させるのに効果的であ
る。
In the prior art, the data on the network between the server and the access terminal is bitmap data, but in the present invention, the data is compressed multimedia data. The amount of data of the present invention on the network is less than that of the prior art. Therefore, the present invention is effective in reducing the data transfer load of the network.

【0081】また、従来技術においては、サーバ計算機
において、アプリケーション・プログラムとOSとの間
で、マルチメディアデータのコピーが2回発生(そのう
ち1回はビットマップデータである。)する。一方、本
発明では、サーバ計算機においては、マルチメディアデ
ータのコピーは発生しない。従って、本発明は、サーバ
コンピュータの負荷を削減するのに効果的である。ま
た、本発明は、従来サーバコンピュータで行っていたビ
ットマップデータの作成をアクセス端末で行うので、サ
ーバコンピュータとアクセス端末間の負荷のバランスを
取るのに効果的である。
In the prior art, the multimedia data is copied twice between the application program and the OS in the server computer (one of which is bitmap data). On the other hand, in the present invention, multimedia data is not copied in the server computer. Therefore, the present invention is effective in reducing the load on the server computer. Further, the present invention creates the bitmap data conventionally performed by the server computer at the access terminal, so that it is effective to balance the load between the server computer and the access terminal.

【0082】[0082]

【発明の効果】アプリケーション起動時に、アプリケー
ションが必要とするCPU性能やメモリ容量に応じて、
計算資源(AP用スタック)を割り当てることにより、
効率のよい負荷分散を実現する。
According to the present invention, when the application is started, the CPU performance and the memory capacity required by the application are determined according to the following:
By allocating computing resources (stack for AP),
Achieve efficient load distribution.

【0083】また、OSが提供するAPIがマン・マシ
ン・インタフェース処理やマルチメディア処理の場合に
は、AP用スタックではなく、アクセス端末で当該処理
を実行することにより、NCやPDAなどのような低価
格PCでも、通常のデスクトップPCと同様に、既存の
マルチメディア対応のアプリケーションを効率良く実行
できる。
When the API provided by the OS is a man-machine interface process or a multimedia process, the process is executed not by the AP stack but by the access terminal, so that an NC or PDA can be used. Even with a low-cost PC, an existing multimedia-compatible application can be executed efficiently, similarly to a normal desktop PC.

【0084】本発明の実施例によれば、動画や音声のよ
うなマルチメディア・データを高性能に出力できるよう
にクライアント計算機とサーバ計算機の間でプログラム
を分割実行したり、インタラクティブなアプリケーショ
ン・プログラムであってもサーバ計算機の負荷を分散さ
せることができる。
According to the embodiment of the present invention, a program is divided and executed between a client computer and a server computer so that multimedia data such as a moving image and an audio can be output with high performance, and an interactive application program can be executed. Even in this case, the load on the server computer can be distributed.

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

【図1】本発明のプログラムの分割実行方法の一実施例
を示す図である。
FIG. 1 is a diagram showing an embodiment of a method for dividing a program according to the present invention.

【図2】本発明が対象とする計算機システムの構成の一
実施例を示す図である。
FIG. 2 is a diagram showing an embodiment of a configuration of a computer system targeted by the present invention.

【図3】本発明の負荷分散方法に係わるアプリケーショ
ン・プログラムの起動処理の一実施例を示すフローチャ
ート図である。
FIG. 3 is a flowchart illustrating an embodiment of an application program starting process according to the load distribution method of the present invention.

【図4】本発明の負荷分散方法に係わるスタック管理テ
ーブルを示す図である。
FIG. 4 is a diagram showing a stack management table according to the load distribution method of the present invention.

【図5】本発明の負荷分散方法に係わるアクセス端末管
理テーブルを示す図である。
FIG. 5 is a diagram showing an access terminal management table according to the load distribution method of the present invention.

【図6】本発明の負荷分散方法に係わるアプリケーショ
ン・プログラムの起動処理の別の一実施例を示すフロー
チャート図である。
FIG. 6 is a flowchart showing another embodiment of an application program starting process according to the load distribution method of the present invention.

【図7】本発明のプログラムの分割実行方法に係わるマ
ルチメディア・ファイルの処理の一実施例を示す図であ
る。
FIG. 7 is a diagram showing an embodiment of processing of a multimedia file according to the method of dividing a program according to the present invention.

【図8】本発明のプログラムの分割実行方法に係わるマ
ルチメディア・ファイルのオープン処理の一実施例を示
すフローチャート図である。
FIG. 8 is a flowchart showing an embodiment of a multimedia file opening process according to the program division execution method of the present invention.

【図9】本発明のプログラムの分割実行方法に係わるマ
ルチメディア・ファイルの読み出し、再生処理の一実施
例を示すフローチャート図である。
FIG. 9 is a flowchart showing one embodiment of a process of reading and reproducing a multimedia file according to the method of dividing a program according to the present invention.

【図10】本発明のプログラムの分割実行方法に係わる
メッセージ処理の一実施例を示す図である。
FIG. 10 is a diagram showing an embodiment of message processing according to the method of dividing a program according to the present invention.

【図11】本発明のプログラムの分割実行方法に係わる
メッセージ処理の一実施例を示すフローチャート図であ
る。
FIG. 11 is a flowchart illustrating an example of message processing according to the method of dividing a program according to the present invention.

【図12】本発明のプログラムの分割実行方法に係わる
スレッドID対応表を示す図である。
FIG. 12 is a diagram showing a thread ID correspondence table according to the method of dividing and executing a program of the present invention.

【図13】本発明のプログラムの分割実行方法に係わる
メッセージ登録テーブルを示す図である。
FIG. 13 is a diagram showing a message registration table according to the method of dividing a program according to the present invention.

【図14】本発明のプログラムの分割実行方法に係わる
ウィンドウ・クライアントの一実施例を示すフローチャ
ート図である。
FIG. 14 is a flowchart showing an embodiment of a window client according to the program division execution method of the present invention.

【図15】本発明のプログラムの分割実行方法に係わる
ウィンドウ・クライアントの一実施例を示す図である。
FIG. 15 is a diagram showing an embodiment of a window client according to the method of dividing a program according to the present invention.

【図16】本発明のプログラムの分割実行方法に係わる
ウィンドウ・サーバの一実施例を示すフローチャート図
である。
FIG. 16 is a flowchart showing one embodiment of a window server according to the program division execution method of the present invention.

【図17】本発明のプログラムの分割実行方法に係わる
ウィンドウ・ハンドル対応表を示す図である。
FIG. 17 is a diagram showing a window-handle correspondence table according to the program division execution method of the present invention.

【図18】従来技術におけるシステムのデータ及び制御
の流れを示す。
FIG. 18 shows the data and control flow of the system in the prior art.

【図19】本発明におけるシステムのデータ及び制御の
流れを示す。
FIG. 19 shows a data and control flow of the system according to the present invention.

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

10,20:アクセス端末、30:システム管理スタッ
ク、40,50:AP用スタック、70:アプリケーシ
ョン・エンジン、16,16a,16b,26:ウィン
ドウ・サーバ、46,56,56a,56b:ウィンド
ウ・クライアント、17,17a,17b,27,4
7,57,57a,57b:通信用ライブラリ、48,
58,58a,58b:APIの種類(ライブラリの種
類)の識別プログラム、100:スタック管理テーブ
ル、150:アクセス端末管理テーブル、700:スレ
ッドID対応表、720:ウィンドウ・ハンドル対応
表。
10, 20: access terminal, 30: system management stack, 40, 50: stack for AP, 70: application engine, 16, 16a, 16b, 26: window server, 46, 56, 56a, 56b: window client , 17, 17a, 17b, 27, 4
7, 57, 57a, 57b: communication library, 48,
58, 58a, 58b: API type (library type) identification program, 100: stack management table, 150: access terminal management table, 700: thread ID correspondence table, 720: window handle correspondence table.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 古川 寿光 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 増岡 義政 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 ──────────────────────────────────────────────────の Continuing on the front page (72) Inventor Toshimitsu Furukawa 1-280 Higashi Koigakubo, Kokubunji-shi, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd. Central Research Laboratory

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】第2のオペレーティング・システムを有す
る第2の計算機とネットワークを介して接続され、か
つ、第1のオペレーティング・システムを有し、かつ、
該第1と該第2のオペレーティング・システムの機能を
API関数によってアプリケーション・プログラムに提
供する第1の計算機であって、 上記API関数の特定の関数を識別する識別手段と、 上記API関数を該第2の計算機へ送付する送付手段と
を有し、 上記API関数が特定の機能であると上記識別手段が識
別したとき、当ファイAPI関数を上記第2の計算機へ
上記送付手段により送付すること特徴とする第1の計算
機。
1. A computer connected to a second computer having a second operating system via a network, having a first operating system, and
A first computer for providing the functions of the first and second operating systems to an application program by an API function, wherein the identification means for identifying a specific function of the API function; Sending means for sending to the second computer, when the identification means identifies that the API function is a specific function, sending the file function to the second computer by the sending means. A first computer characterized by the following.
【請求項2】上記第1のオペレーティング・システム
は、上記第2のオペレーティング・システムとの間では
ファイル共有機構を備えていることを特徴とする請求項
1記載の第1の計算機。
2. The first computer according to claim 1, wherein the first operating system has a file sharing mechanism with the second operating system.
【請求項3】上記特定関数は、マルチメディア処理に関
するAPI関数であることを特徴とする請求項2記載の
第1の計算機。
3. The first computer according to claim 2, wherein said specific function is an API function related to multimedia processing.
【請求項4】上記特定関数は、マン・マシン・インタフ
ェース処理に関するAPI関数であることを特徴とする
請求項2記載の第1の計算機。
4. The first computer according to claim 2, wherein said specific function is an API function relating to man-machine interface processing.
【請求項5】上記第1の計算機はサーバ計算機であり、
上記第2の計算機はクライアント計算機であることを特
徴とする請求項3ないし請求項4記載の第1の計算機。
5. The computer according to claim 1, wherein the first computer is a server computer,
5. The first computer according to claim 3, wherein the second computer is a client computer.
【請求項6】ディスクと第1のオペレーティング・シス
テムとを有する第1の計算機とネットワークを介して接
続され、かつ、第2のオペレーティング・システムを有
し、かつ、該第1と該第2のオペレーティング・システ
ムの機能をAPI関数によってアプリケーション・プロ
グラムに提供する第2の計算機であって、 該第1の計算機から送付された上記API関数を受信す
る手段と、 上記第1のオペレーティング・システムとの間のファイ
ル共有手段と、 上記第2のオペレーティング・システムが直接、上記フ
ァイル共有機構を用いて、該ディスクに格納されている
上記マルチメディア・ファイルを読み出し再生する手段
とを有していることを特徴とする第2の計算機。
6. A computer which is connected via a network to a first computer having a disk and a first operating system, has a second operating system, and has said first and second operating systems. A second computer that provides an application program with an operating system function by an API function, wherein the second computer receives the API function sent from the first computer; File sharing means, and means for directly reading and reproducing the multimedia file stored on the disk by using the file sharing mechanism. A second computer characterized by the following.
【請求項7】第1の計算機(サーバ)と第2の計算機
(クライアント)がネットワークを介して通信し、該第
1と該第2の計算機には、それぞれ第1と第2のオペレ
ーティング・システムが存在し、該第1と該第2のオペ
レーティング・システムは、該第1と該第2のオペレー
ティング・システムの機能をAPI関数によってアプリ
ケーション・プログラムに提供するような計算機システ
ムにおいて、 該第1の計算機は、 上記アプリケーション・プログラムが上記API関数を
実行した時に、上記識別プログラムが、当該API関数
がマン・マシン・インタフェース処理またはマルチメデ
ィア処理に関するAPI関数であるかを識別し、 そうである場合には、上記ウィンドウ・クライアント・
プログラムは、当該API関数を上記ネットワークを介
して、上記第2の計算機へ送付することを特徴とするプ
ログラムの分割実行方法。
7. A first computer (server) and a second computer (client) communicate via a network, and the first and second computers have first and second operating systems, respectively. Wherein the first and second operating systems provide the functions of the first and second operating systems to an application program by an API function. The computer, when the application program executes the API function, the identification program identifies whether the API function is an API function related to man-machine interface processing or multimedia processing. Is the window client
A method for dividing a program, wherein the program sends the API function to the second computer via the network.
【請求項8】該第2の計算機は、該第1の計算機から送
付される該API関数を受信し、上記API関数を上記
第2のオペレーティング・システムで実行することを特
徴とする請求項7記載のプログラムの分割実行方法。
8. The computer according to claim 7, wherein said second computer receives said API function sent from said first computer, and executes said API function in said second operating system. How to divide the described program.
【請求項9】上記第1の計算機はさらにディスクを備
え、上記計算機システムの上記第1と第2のオペレーテ
ィング・システムはファイル共有機構を備えており、 該第2の計算機は、上記受信したAPI関数が、上記第
1の計算機の該ディスクに格納されているマルチメディ
ア・ファイルを読み出して再生する場合には、上記第2
のオペレーティング・システムが直接、上記ファイル共
有機構を用いて、上記第1の計算機の該ディスクに格納
されている上記マルチメディア・ファイルを読み出して
再生することを特徴とする請求項8記載のプログラムの
分割実行方法。
9. The first computer further includes a disk, the first and second operating systems of the computer system include a file sharing mechanism, and the second computer receives the received API. If the function reads and plays the multimedia file stored on the disc of the first computer, the second
9. The program according to claim 8, wherein the operating system directly reads and reproduces the multimedia file stored on the disk of the first computer using the file sharing mechanism. Split execution method.
【請求項10】該第1の計算機は上記API関数を上記
第2の計算機へ送付する時に、上記アプリケーション・
プログラムを実行している上記第1の計算機のスレッド
のスレッドIDも上記第2の計算機へ送付し、 該第2の計算機は、該受信したスレッドIDを上記AP
I関数を実行するスレッドの該第2の計算機でのスレッ
ドIDに変換し、上記API関数を上記第2のオペレー
ティング・システムで実行することを特徴とする請求項
8記載のプログラムの分割実行方法。
10. The first computer transmits the API function to the second computer when sending the API function to the second computer.
The thread ID of the thread of the first computer that is executing the program is also sent to the second computer, and the second computer sends the received thread ID to the AP.
9. The method according to claim 8, wherein the thread executing the I function is converted into a thread ID in the second computer, and the API function is executed in the second operating system.
【請求項11】複数のサーバ計算機と1台ないしそれ以
上のクライアント計算機がネットワークを介して接続さ
れ、該サーバ計算機と該クライアント計算機には、それ
ぞれオペレーティング・システムが存在し、該オペレー
ティング・システムは、該オペレーティング・システム
の機能をAPI関数によってアプリケーション・プログ
ラムに提供するような計算機システムにおいて、 該複数のサーバ計算機の何れか1台には、該複数のサー
バ計算機の各々のCPU負荷を記載したサーバ計算機管
理テーブルを有し、該複数のサーバ計算機の各々には、
上記API関数の機能を識別する識別プログラムと、上
記API関数を該クライアント計算機へ送付するウィン
ドウ・クライアント・プログラムを備え、 上記クライアント計算機が、アプリケーション・プログ
ラムの実行を起動したとき、 上記複数のサーバ計算機の中から、上記サーバ計算機管
理テーブルに記載されている該CPU負荷が最少のサー
バ計算機を選択し、 該アプリケーション・プログラムを該選択されたサーバ
計算機上にブートし、 該選択されたサーバ計算機において、上記アプリケーシ
ョン・プログラムが上記API関数を実行した時に、上
記識別プログラムが、当該API関数がマン・マシン・
インタフェース処理またはマルチメディア処理に関する
API関数であると識別した場合には、上記ウィンドウ
・クライアント・プログラムは、当該API関数を上記
ネットワークを介して、上記アプリケーション・プログ
ラムの実行を起動したクライアント計算機へ送付するこ
とを特徴とするプログラムの分割実行方法と負荷分散方
法。
11. A plurality of server computers and one or more client computers are connected via a network. Each of the server computers and the client computers has an operating system, and the operating system comprises: In a computer system that provides the functions of the operating system to an application program by an API function, any one of the plurality of server computers includes a server computer in which a CPU load of each of the plurality of server computers is described. A management table, and each of the plurality of server computers has:
An identification program for identifying the function of the API function; and a window client program for sending the API function to the client computer. When the client computer starts executing an application program, the plurality of server computers From among the server computers, the server computer with the minimum CPU load described in the server computer management table is selected, the application program is booted on the selected server computer, and in the selected server computer, When the application program executes the API function, the identification program determines that the API function is a man-machine
If it is determined that the API function is an API function related to interface processing or multimedia processing, the window client program sends the API function to the client computer that has started the execution of the application program via the network. A program split execution method and a load distribution method characterized by the above-mentioned.
【請求項12】上記サーバ計算機管理テーブルには、さ
らに各サーバ計算機のCPU性能およびメモリ容量など
のハードウェア性能が記載されており、 上記クライアント計算機が、アプリケーション・プログ
ラムの実行を起動したとき、 上記複数のサーバ計算機の中から、上記サーバ計算機管
理テーブルに記載されている該CPU性能と該メモリ容
量が、該アプリケーション・プログラムが必要とするC
PU性能とメモリ容量を上回るサーバ計算機で、かつ、
上記サーバ計算機管理テーブルに記載されている該CP
U負荷が最少のサーバ計算機を選択することを特徴とす
る、請求項11記載のプログラムの分割実行方法と負荷
分散方法。
12. The server computer management table further describes hardware performance such as CPU performance and memory capacity of each server computer. When the client computer starts execution of an application program, Among the plurality of server computers, the CPU performance and the memory capacity described in the server computer management table correspond to the C required by the application program.
A server computer that exceeds PU performance and memory capacity, and
The CP described in the server computer management table
12. The method according to claim 11, wherein a server computer having a minimum U load is selected.
【請求項13】該複数のサーバ計算機の何れか1台に
は、さらに上記アプリケーション・プログラムの実行を
起動したクライアント計算機が使用している全てのサー
バ計算機を登録するクライアント計算機管理テーブルを
備え、 上記クライアント計算機が、アプリケーション・プログ
ラムの実行を起動したとき、上記複数のサーバ計算機の
中から、上記クライアント計算機管理テーブルに記載さ
れているサーバ計算機を選択することを特徴とする請求
項11記載のプログラムの分割実行方法と負荷分散方
法。
13. One of the plurality of server computers further includes a client computer management table for registering all server computers used by the client computers that have started the execution of the application program. 12. The program according to claim 11, wherein when the client computer starts execution of the application program, a server computer described in the client computer management table is selected from the plurality of server computers. Split execution method and load distribution method.
JP9316816A 1996-11-21 1997-11-18 Method and device for dividedly executing program Pending JPH10207722A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9316816A JPH10207722A (en) 1996-11-21 1997-11-18 Method and device for dividedly executing program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-310379 1996-11-21
JP31037996 1996-11-21
JP9316816A JPH10207722A (en) 1996-11-21 1997-11-18 Method and device for dividedly executing program

Publications (1)

Publication Number Publication Date
JPH10207722A true JPH10207722A (en) 1998-08-07

Family

ID=26566293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9316816A Pending JPH10207722A (en) 1996-11-21 1997-11-18 Method and device for dividedly executing program

Country Status (1)

Country Link
JP (1) JPH10207722A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451181B2 (en) 1998-09-24 2008-11-11 Fujitsu Limited Apparatus for controlling a shared screen
US10924576B2 (en) 2016-11-15 2021-02-16 Nec Corporation Relay apparatus, client apparatus, data relay method, and program storage medium in which computer-readable program is stored

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451181B2 (en) 1998-09-24 2008-11-11 Fujitsu Limited Apparatus for controlling a shared screen
US10924576B2 (en) 2016-11-15 2021-02-16 Nec Corporation Relay apparatus, client apparatus, data relay method, and program storage medium in which computer-readable program is stored

Similar Documents

Publication Publication Date Title
JP3853592B2 (en) Distributed web application server
US8103760B2 (en) Dynamic provisioning of service components in a distributed system
US10095419B2 (en) Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US5721876A (en) Sockets application program mechanism for proprietary based application programs running in an emulation environment
JP5214473B2 (en) Virtual machine migration system with resources such as hardware devices
US7805736B2 (en) Process and implementation for dynamically determining probe enablement using out of process correlating token
JP3364587B2 (en) System and method for controlling transmission of relatively large data objects in a communication system
KR100322716B1 (en) Method and apparatus of a collaborative proxy system for distributed deployment of object rendering
US7426546B2 (en) Method for selecting an edge server computer
US8166473B2 (en) Method and system for a resource negotiation between virtual machines
US6976258B1 (en) Providing quality of service guarantees to virtual hosts
CA2576267C (en) Facilitating access to input/output resources via an i/o partition shared by multiple consumer partitions
US20020103996A1 (en) Method and system for installing an operating system
JP2000507428A (en) Client management flow control method and apparatus on finite memory computer system
US20070198243A1 (en) Virtual machine transitioning from emulating mode to enlightened mode
US6748436B1 (en) System, method and program for management of users, groups, servers and resources in a heterogeneous network environment
JPH11312153A (en) Method and device for managing work load between object servers
US8381227B2 (en) System and method of inter-connection between components using software bus
JP2002505471A (en) Method and apparatus for interrupting and continuing remote processing
KR20100008363A (en) Physical network interface selection
US6757904B1 (en) Flexible interface for communicating between operating systems
KR20210027338A (en) Virtual desktop system providing an environment at specific time and method thereof
US6668279B1 (en) User level web server in-kernel network I/O accelerator
JPH10207722A (en) Method and device for dividedly executing program
US7827194B2 (en) Access to shared disk device on storage area network