JP5737082B2 - Pointer position correction method, pointer position correction program, and server apparatus - Google Patents
Pointer position correction method, pointer position correction program, and server apparatus Download PDFInfo
- Publication number
- JP5737082B2 JP5737082B2 JP2011189651A JP2011189651A JP5737082B2 JP 5737082 B2 JP5737082 B2 JP 5737082B2 JP 2011189651 A JP2011189651 A JP 2011189651A JP 2011189651 A JP2011189651 A JP 2011189651A JP 5737082 B2 JP5737082 B2 JP 5737082B2
- Authority
- JP
- Japan
- Prior art keywords
- cursor
- pointer
- input event
- unit
- changed
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/08—Cursor circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Debugging And Monitoring (AREA)
- Position Input By Displaying (AREA)
Description
本発明は、ポインタ位置補正方法等に関する。 The present invention relates to a pointer position correction method and the like.
近年、セキュリティの強化やTCO(Total Cost of Ownership)の削減の観点等からシンクライアント(thin client)システムが注目されている。シンクライアントシステムでは、ネットワークで相互に接続されたサーバとクライアントから構成される。そして、クライアントで操作した内容がネットワーク経由でサーバへ転送され、操作結果がサーバからクライアントへ転送されてクライアントの画面に表示される。 In recent years, a thin client system has attracted attention from the viewpoint of strengthening security and reducing TCO (Total Cost of Ownership). The thin client system includes a server and a client connected to each other via a network. Then, the contents operated by the client are transferred to the server via the network, and the operation result is transferred from the server to the client and displayed on the client screen.
シンクライントシステムのサーバとクライアント間の通信プロトコルは、大きく分けると2種類に分類される。1つ目は、Windows(登録商標)標準のリモートデスクトップ(RDP:Remote Desktop Protocol)で採用されているコマンド転送方式である。コマンド転送方式は、サーバのデスクトップ画面に対する描画コマンドをクライアントへ転送し、描画コマンドを受信したクライアントでこの描画コマンドを実行することで画面描画を行う。2つ目は、VNC(Virtual Network Computing)等で採用されている画面転送方式である。画面転送方式は、サーバのデスクトップ画面の内容をビットマップやJPEG等の画像でクライアントへ転送し、転送した画像をクライアントの画面へ表示させる。 The communication protocol between the server and the client of the syncline system is roughly classified into two types. The first is a command transfer method adopted in the Windows (registered trademark) standard remote desktop protocol (RDP). In the command transfer method, a drawing command for the desktop screen of the server is transferred to the client, and the drawing command is executed by the client that has received the drawing command to perform screen drawing. The second is a screen transfer method adopted in VNC (Virtual Network Computing) and the like. In the screen transfer method, the contents of the server desktop screen are transferred to the client as an image such as a bitmap or JPEG, and the transferred image is displayed on the client screen.
CAD等のように大量のオブジェクトを表示する場合、コマンド転送方式では、オブジェクト数に比例して描画コマンド数が増大し操作遅延が大きくなる。したがって、この場合、コマンド転送方式より画面転送方式の方が向いている。しかしながら、画面転送方式においては、マウス操作によるマウスカーソルの描画速度が使いやすさを決める重要なポイントとなる。 When displaying a large number of objects such as CAD, the command transfer method increases the number of drawing commands in proportion to the number of objects and increases the operation delay. Therefore, in this case, the screen transfer method is more suitable than the command transfer method. However, in the screen transfer method, the drawing speed of the mouse cursor by the mouse operation is an important point that determines usability.
マウスカーソルの描画方式として、画面転送方式におけるサーバ描画方式とコマンド転送方式におけるローカルエコー方式とがある。サーバ描画方式は、サーバのデスクトップ画面に描画されたマウスカーソルの内容をそのままクライアントへ送信し、送信したマウスカーソルの内容をクライアントの画面に描画する。図23は、マウスカーソルの描画方式であるサーバ描画方式を説明する図である。図23に示すように、クライアントが入力イベントをサーバへ送信する。そして、サーバは、送信された入力イベントを受信し、受信した入力イベントを処理し、処理後のマウスカーソルの内容をそのままクライアントへ送信する。クライアントは、送信されたマウスカーソルの内容を受信し、受信したマウスカーソルの内容でマウスカーソルの移動結果を画面に表示する。 As a mouse cursor drawing method, there are a server drawing method in a screen transfer method and a local echo method in a command transfer method. In the server drawing method, the contents of the mouse cursor drawn on the server desktop screen are sent to the client as they are, and the sent mouse cursor contents are drawn on the client screen. FIG. 23 is a diagram for explaining a server drawing method that is a drawing method of a mouse cursor. As shown in FIG. 23, the client transmits an input event to the server. Then, the server receives the transmitted input event, processes the received input event, and transmits the content of the processed mouse cursor as it is to the client. The client receives the content of the transmitted mouse cursor and displays the movement result of the mouse cursor on the screen based on the received content of the mouse cursor.
一方、ローカルエコー方式は、クライアントから入力イベントをサーバへ送信するとともに、クライアント側でマウスカーソルを描画する。図24は、マウスカーソルの描画方式であるローカルエコー方式を説明する図である。図24に示すように、クライアントが入力イベントをサーバへ送信するとともに、マウスカーソルの移動結果を画面に描画する。したがって、クライアントからサーバへ送信してからその入力イベントの処理結果を待つサーバ描画方式より入力イベントの処理結果を待たないローカルエコー方式の方が、マウスカーソルの応答性能は良い。 On the other hand, the local echo method transmits an input event from the client to the server and draws a mouse cursor on the client side. FIG. 24 is a diagram for explaining a local echo method which is a drawing method of a mouse cursor. As shown in FIG. 24, the client transmits an input event to the server and draws the movement result of the mouse cursor on the screen. Therefore, the response performance of the mouse cursor is better in the local echo method that does not wait for the processing result of the input event than the server drawing method that transmits the processing result of the input event after transmitting from the client to the server.
また、画面転送方式におけるサーバ描画方式において、マウスカーソルの移動に伴う通信頻度を削減する技術が開示されている。かかる技術では、サーバが、クライアントからサーバへの入力イベントに応じた表示用描画データを生成すると、当該描画データに含まれるオブジェクトの領域情報にカーソルIDを関係付けて記述したテーブルを生成する。そして、サーバは、作成したテーブルを当該描画データとともにクライアントへ送信する。クライアントは、入力イベントに応じた描画データを表示した状態でカーソルを移動させる。すると、クライアントは、当該カーソルの移動位置に対応したオブジェクト領域におけるカーソルIDをテーブルから判断し、当該カーソルIDに対応するカーソルの形状を移動後のカーソル位置に描画する。 In addition, in the server drawing method in the screen transfer method, a technique for reducing the communication frequency associated with the movement of the mouse cursor is disclosed. In this technique, when the server generates display drawing data corresponding to an input event from the client to the server, a table is generated in which the cursor ID is associated with the area information of the object included in the drawing data. Then, the server transmits the created table to the client together with the drawing data. The client moves the cursor while drawing data corresponding to the input event is displayed. Then, the client determines from the table the cursor ID in the object area corresponding to the movement position of the cursor, and draws the shape of the cursor corresponding to the cursor ID at the moved cursor position.
しかしながら、画面転送方式において、マウスカーソルの描画方式をローカルエコー方式とすると、サーバでマウスカーソルの位置や形状が自動的に変わった場合に、クライアント側は対応できないという問題がある。すなわち、クライアント側は、自身で入力イベントに応じた位置にマウスカーソルを描画するとともに、入力イベントをサーバへ送信する。したがって、クライアント側は、サーバのマウスカーソルの位置が例えばアプリケーションによって自動的に移動したような場合、移動したサーバのマウスカーソルの位置を把握できないので、移動した位置に対応できない。サーバのマウスカーソルの形状が自動的に変わった場合であってもクライアント側が対応できないのは同様である。 However, in the screen transfer method, if the drawing method of the mouse cursor is the local echo method, there is a problem that the client side cannot cope when the position and shape of the mouse cursor are automatically changed on the server. That is, the client side draws a mouse cursor at a position corresponding to the input event by itself and transmits the input event to the server. Accordingly, when the position of the mouse cursor of the server is automatically moved by an application, for example, the client side cannot grasp the position of the moved mouse cursor of the server, and therefore cannot cope with the moved position. Similarly, even if the server mouse cursor shape automatically changes, the client side cannot respond.
また、サーバ描画方式における開示された技術であっても、クライアントがカーソルを移動させると、それに応じて当該カーソルの移動位置に対応したオブジェクト領域に基づいてカーソルの形状を描画する。したがって、サーバのマウスカーソルの形状が自動的に変わった場合にクライアント側が対応できないのは同様である。 Even in the disclosed technique in the server drawing method, when the client moves the cursor, the shape of the cursor is drawn based on the object area corresponding to the movement position of the cursor accordingly. Therefore, it is the same that the client side cannot respond when the shape of the mouse cursor of the server automatically changes.
開示の技術は、画面転送方式において、ローカルエコー方式のマウスカーソルの応答性能を維持しつつ、サーバのマウスカーソルの変化をクライアントに対応させることができることを目的とする。 An object of the disclosed technique is to allow a client mouse to respond to a change in the mouse cursor of the server while maintaining the response performance of the local echo mouse cursor in the screen transfer method.
1つの側面では、ポインタ位置補正方法は、サーバが実行するポインタ位置補正方法であって、前記サーバとネットワーク経由で接続されたクライアントで入力された、ポインタの移動を伴うイベントおよび移動後のポインタの位置を含むイベント情報を当該クライアントから受信し、受信したイベント情報をイベント履歴に記憶し、前記イベント情報に基づいて処理した結果、処理前後でポインタの位置に変化があったとき、変化があったポインタの位置が前記イベント履歴に記憶されているいずれかのイベント情報のポインタの位置と一致しているか否かを判定し、前記判定する処理の結果、該変化があったポインタの位置が前記イベント履歴に記憶されているいずれのイベント情報のポインタの位置とも一致していないと判定した場合に、該変化があったポインタの位置を前記クライアントに通知する各処理を含む。 In one aspect, the pointer position correction method is a pointer position correction method executed by a server, and includes an event accompanying movement of a pointer and a pointer after movement input by a client connected to the server via a network. When the event information including the position is received from the client, the received event information is stored in the event history, and processing is performed based on the event information, there is a change in the position of the pointer before and after the processing. It is determined whether or not the pointer position matches the pointer position of any event information stored in the event history, and as a result of the determination process, the pointer position that has changed is the event When it is determined that it does not match the pointer position of any event information stored in the history Includes each process of notifying the position of the pointer that was a said change in said client.
本願の開示するポインタ位置補正方法の一つの態様によれば、ローカルエコー方式のマウスカーソルの応答性能を維持しつつ、サーバのマウスカーソルの変化をクライアントに対応させることができる。 According to one aspect of the pointer position correcting method disclosed in the present application, a change in the mouse cursor of the server can be made to correspond to the client while maintaining the response performance of the local echo mouse cursor.
以下に、本願の開示するポインタ位置補正方法、ポインタ位置補正プログラムおよびサーバ装置の実施例を図面に基づいて詳細に説明する。なお、実施例では、ポインタをマウス操作に伴い移動するカーソルとして説明する。また、実施例によりこの発明が限定されるものではない。 Hereinafter, embodiments of a pointer position correcting method, a pointer position correcting program, and a server device disclosed in the present application will be described in detail with reference to the drawings. In the embodiment, the pointer is described as a cursor that moves in accordance with a mouse operation. Further, the present invention is not limited to the embodiments.
[シンクライアントシステムに含まれる各装置の構成]
図1は、実施例1に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。図1に示すシンクライアントシステム9は、クライアント装置1が表示するデスクトップ画面をリモートでサーバ装置2に制御させるものである。つまり、シンクライアントシステム9は、実際にはサーバ装置2が実行した処理結果等をクライアント装置1に表示させつつも、あたかもクライアント装置1が主体となって処理を実行したかのように振る舞う。
[Configuration of each device included in the thin client system]
FIG. 1 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the first embodiment. A
図1に示すように、シンクライアントシステム9は、クライアント装置1と、サーバ装置2とを有する。なお、図1の例では、1つのサーバ装置2に対し、1つのクライアント装置1を接続する場合を図示したが、任意の数のクライアント装置1を接続できる。
As shown in FIG. 1, the
クライアント装置1およびサーバ装置2は、ネットワーク3を介して相互に通信可能に接続される。かかるネットワークには、有線または無線を問わず、インターネット、LAN(Local Area Network)やVPN(Virtual Private Network)等の任意の種類の通信網を採用できる。なお、サーバ装置2およびクライアント装置1間の通信プロトコルには、一例として、VNCにおける画面転送方式を採用する。すなわち、サーバ装置2のデスクトップ画面の内容をビットマップやJPEG等の画像でクライアントへ転送し、転送した画像をクライアント装置1のデスクトップ画面へ表示させる。
The
サーバ装置2は、クライアント装置1に表示させる画面をリモートで制御するサービスを提供するコンピュータである。クライアント装置1は、サーバ装置2によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント装置1の一例としては、パーソナルコンピュータ等固定端末のほか、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistant)等の移動体端末を適用することもできる。
The
[クライアント装置の構成]
クライアント装置1は、OS(Operating System)10と、入力イベント処理部11と、画面描画部12とを有する。OS10は、マウスやキーボードからの入力および画面への出力を含む入出力機能等を提供し、クライアント装置1の全体を管理する。かかるOS10の一例としては、Windows(登録商標)であるが、UNIX(登録商標)等の別のOSであっても良い。入力イベント処理部11は、マウスやキーボードの操作により発生する入力イベントを処理する。さらに、入力イベント処理部11は、入力イベント取得部111と、入力イベント送信部112と、カーソル描画部113とを有する。また、画面描画部12は、サーバ装置2から受信した、カーソル位置を補正する情報(カーソル位置補正情報)に応じてカーソル位置を補正したりサーバ装置2から受信した画面情報に応じて画面を描画したりする。さらに、画面描画部12は、カーソル位置補正情報受信部121と、カーソル位置補正部122と、画面情報受信部123と、画像展開処理部124と、画面情報描画部125とを有する。
[Configuration of client device]
The
入力イベント取得部111は、クライアント装置1に接続されたキーボードやマウス等の入出力デバイスから入力イベントを取得する。入力イベントは、例えばマウスの移動操作によりカーソルを移動させるイベントを指す。入力イベントの一例として、「MOUSE_MOVE マウスのX座標、マウスのY座標、ホイールの移動量」がある。「MOUSE_MOVE」は、マウスの操作内容であり、ここではマウスの移動操作を示す。マウスのX座標およびマウスのY座標は、それぞれマウスの移動先のX座標の位置およびY座標の位置を示す。ホイールの移動量は、移動にホイールを用いた場合の移動量を示す。具体的な一例として、マウスのX座標が800、マウスのY座標が600、ホイールの移動量が0である「MOUSE_MOVE 800、600、0」がある。
The input
また、入力イベント取得部111は、取得した入力イベントについて、後述する入力イベント送信部112によりサーバ装置2へ送信させるとともに、後述するカーソル描画部113によりイベント処理後の位置にマウスカーソルを描画させる。入力イベント送信部112は、入力イベント取得部111によって取得された入力イベントをサーバ装置2へ送信する。
The input
カーソル描画部113は、クライアント装置1のデスクトップ画面へマウスカーソルを再描画する。例えば、カーソル描画部113は、入力イベント取得部111によって取得された入力イベントに含まれるマウスカーソルの移動先の位置を抽出する。そして、カーソル描画部113は、自装置のデスクトップ画面の、抽出したマウスカーソルの位置に当該マウスカーソルを描画する。すなわち、入力イベント処理部11は、ローカルエコー方式のように、発生した入力イベントをサーバ装置2へ送信するとともに、発生した入力イベントに対応するマウスカーソルを自装置で再描画する。
The
また、カーソル描画部113は、後述するカーソル位置補正部122からマウスカーソルの補正位置を取得し、自装置のデスクトップ画面の、取得したマウスカーソルの補正位置に当該マウスカーソルを描画する。
Further, the
カーソル位置補正情報受信部121は、カーソル位置補正情報をサーバ装置2から受信する。ここで、カーソル位置補正情報とは、サーバ装置2によって補正されるカーソルの位置情報である。つまり、サーバ装置2では、クライアント装置1から送信された入力イベントを処理した結果、処理後のマウスカーソルの位置がOSによって自動的に変更される場合がある。例えば、OSの操作によっては、自動的に特定のボタンに移動するように設定されているような場合がある。かかる場合に、カーソル位置補正情報受信部121は、カーソル位置補正情報をサーバ装置2から受信し、受信したカーソル位置補正情報を用いてカーソル位置を補正させてサーバ装置2のカーソル位置と対応させる。
The cursor position correction
カーソル位置補正部122は、カーソル位置補正情報受信部121によって受信されたカーソル位置補正情報からマウスカーソルの補正位置を抽出する。また、カーソル位置補正部122は、カーソル描画部113によって、抽出したマウスカーソルの補正位置に再描画させる。
The cursor
画面情報受信部123は、サーバ装置2から圧縮後の画面表示データを受信する。画像展開処理部124は、画面情報受信部123によって受信された圧縮後の画面表示データを展開する。画面情報描画部125は、画像展開処理部124によって展開された画面表示データを用いて、画面内容を再描画する。なお、実施例では、マウスカーソル以外の画像処理は、画面転送方式に従うため、簡単に記載するものとする。
The screen
[サーバ装置の構成]
サーバ装置2は、OS20と、入力イベント履歴保持部21と、入力イベント処理部22と、カーソル位置補正部23と、画面情報転送部24とを有する。OS20は、入力イベント等のイベントの処理機能等を提供し、サーバ装置2の全体を管理する。かかるOS20の一例としては、Windows(登録商標)であるが、UNIX(登録商標)等の別のOSであっても良い。入力イベント履歴保持部21は、クライアント装置1から受信した入力イベントのイベント情報をイベント履歴としてキューに保持する。
[Configuration of server device]
The
ここで、入力イベント履歴保持部21のデータ構造について、図2を参照して説明する。図2は、入力イベント履歴保持部のデータ構造の一例を示す図である。図2に示すように、入力イベント履歴保持部21は、入力イベント毎にX座標21aとY座標21bとを対応付けて、入力イベントの履歴として保持する。X座標21aは、入力イベントに含まれる移動先のX座標の位置である。Y座標21bは、入力イベントに含まれる移動先のY座標の位置である。入力イベントの履歴は、クライアント装置1からサーバ装置2へ入力イベントが送信された順に保持される。一例として、一段目に最も古い入力イベントの履歴として、X座標が「797」、Y座標が「603」が保持されている。四段目に最も新しい入力イベントの履歴として、X座標が「800」、Y座標が「600」が保持されている。
Here, the data structure of the input event
図1に戻って、入力イベント処理部22は、クライアント装置1から入力イベントを受信し、受信した入力イベントを処理する。さらに、入力イベント処理部22は、入力イベント受信部221と、入力イベント保存部222と、入力イベント実行部223とを有する。カーソル位置補正部23は、入力イベント履歴保持部21を用いてクライアント装置1のカーソル位置を補正する。さらに、カーソル位置補正部23は、カーソル位置変更チェック部231と、カーソル位置履歴チェック部232と、カーソル位置補正情報送信部233とを有する。画面情報転送部24は、画面情報をクライアント装置1に転送する。さらに、画面情報転送部24は、画面情報取得部241と、画面更新判定部242と、画像圧縮処理部243と、画面情報送信部244とを有する。
Returning to FIG. 1, the input
入力イベント受信部221は、クライアント装置1から送信された入力イベントを受信する。入力イベント保存部222は、入力イベント受信部221によって受信された入力イベントを入力イベントの履歴として入力イベント履歴保持部21に保存する。
The input
入力イベント実行部223は、入力イベント受信部221によって受信された入力イベントを実行する。例えば、入力イベント実行部223は、入力イベント受信部221によって受信された入力イベントをOS20へ受け渡して処理させる。
The input
カーソル位置変更チェック部231は、入力イベント実行部223によって入力イベントが実行された結果、実行前後でカーソルの位置に変化があったか否かを判定する。例えば、カーソル位置変更チェック部231は、OS20に入力イベントを処理させた結果、OS20から処理に対応したマウスカーソルの位置を取得する。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの位置が入力イベントを処理させる前のマウスカーソルの位置と一致しているか否かを判定する。なお、カーソル位置変更チェック部231は、1フレームの画面表示データの更新の都度、例えば後述する画面更新判定部242を実施後にチェックするようにする。
The cursor position
カーソル位置履歴チェック部232は、実行前後でカーソルの位置に変化があったとカーソル位置変更チェック部231によって判定された場合、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。
If the cursor position
カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、保持されていると判定した入力イベントの履歴および当該履歴以前の履歴を削除する。すなわち、カーソル位置履歴チェック部232は、OS20によって処理された結果のマウスカーソルの位置がOS20によって自動的に変更されていないので、処理された入力イベントの履歴以前の履歴を削除する。一方、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていないと判定した場合、変化があったマウスカーソルの位置をカーソル位置補正情報送信部233に通知する。すなわち、カーソル位置履歴チェック部232は、OS20によって処理された結果であるマウスカーソルの位置がOS20によって自動的に変更されたと判断し、変更されたマウスカーソルの位置をカーソル位置補正情報送信部233に通知する。
When the cursor position
カーソル位置補正情報送信部233は、カーソル位置履歴チェック部232によって通知されたカーソルの位置を含むカーソル位置補正情報をクライアント装置1に送信する。これによって、OS20によって自動的に変更されたマウスカーソルの位置をクライアント装置1に補正させることができる。
The cursor position correction
画面情報取得部241は、OS20を介して画面表示データを取得する。画面更新判定部242は、画面情報取得部241によって、前回取得した画面表示データと今回取得した画面表示データとを比較し、画面表示データに更新があったか否かを判定する。画像圧縮処理部243は、画面更新判定部242によって画面表示データに更新があったと判定された場合、更新があった領域の画面表示データを圧縮する。画面情報送信部244は、画像圧縮処理部243によって圧縮された圧縮後の画面表示データをクライアント装置1に送信する。
The screen
[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図3を参照して説明する。図3は、実施例1に係るカーソル位置補正の具体例を説明する図である。
[Specific example of cursor position correction]
Next, a specific example of cursor position correction will be described with reference to FIG. FIG. 3 is a diagram illustrating a specific example of cursor position correction according to the first embodiment.
図3に示すように、クライアント装置1では、入力イベント取得部111が、クライアント装置1に接続されたマウスから入力イベントを取得する(ステップS1)。ここでは、入力イベントは、マウスの移動操作によりマウスの移動先が(x2、y2)となるイベントであるものとする。
As shown in FIG. 3, in the
入力イベント取得部111は、取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された入力イベントをサーバ装置2に送信し、カーソル描画部113は、引き渡された入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP2にカーソルを描画する。
The input
サーバ装置2では、入力イベント受信部221が、クライアント装置1から送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P2をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。
In the
そして、カーソル位置変更チェック部231は、OS20に処理させた結果であるマウスカーソルの座標を取得する(ステップS4)。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの座標P2が処理前のマウスカーソルの座標と一致していない、すなわちマウスカーソルが移動したと判定する。そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P2が入力イベント履歴として保持されているか否かを判定する(ステップS5)。ここでは、処理後のマウスカーソルの座標P2が入力イベント履歴として保持されているので、座標P2以前の履歴を削除する(ステップS6)。このように例えばマウスの移動先が座標P2となる入力イベントの場合には、処理後のマウスカーソルの座標P2がOS20によって自動的に変更されていないので、クライアント装置1に対して座標の補正をしないで、処理を終了することとなる。この結果、クライアント装置1およびサーバ装置2のそれぞれのマウスカーソルの座標は、P2に描画されている。
Then, the cursor position
次に、マウスの移動先が座標P3(x3、y3)となる入力イベントの場合について説明する。クライアント装置1では、入力イベント取得部111は、マウスから取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された入力イベントをサーバ装置2に送信し、カーソル描画部113は、引き渡された入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP3にカーソルを描画する。
Next, the case of an input event in which the mouse destination is the coordinate P3 (x3, y3) will be described. In the
サーバ装置2では、入力イベント受信部221が、クライアント装置1から送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P3をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。
In the
そして、カーソル位置変更チェック部231は、OS20に処理させた後のマウスカーソルの座標を取得する(ステップS4)。ここでは、OS20によってマウスカーソルの位置が自動的にP3からP4(x4、y4)に変更したものとする。すると、カーソル位置変更チェック部231は、取得したマウスカーソルの座標P4が処理前のマウスカーソルの座標P2と一致していないと判定する。そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P4が入力イベント履歴として保持されているか否かを判定する(ステップS5)。ここでは、処理後のマウスカーソルの座標P4がOS20によって入力イベントに含まれる移動先の座標P3から自動的に変更されたので、座標P4は入力イベント履歴として保持されていない。そこで、カーソル位置履歴チェック部232は、変更されたマウスカーソルの座標P4をカーソル位置補正情報送信部233に通知させる(ステップS7)。
Then, the cursor position
クライアント装置1では、カーソル位置補正情報受信部121が、変更されたマウスカーソルの座標P4を受信する。そして、カーソル位置補正部122は、カーソル描画部113によって、変更されたマウスカーソルの座標P4にマウスカーソルを再描画させる。このように、サーバ装置2がクライアント装置1から送信された入力イベントを処理した結果、処理後のマウスカーソルの座標がOS20によって自動的に変更されても、変更された座標をクライアント装置1に対応させることができる。
In the
[クライアント装置における入力イベント処理の手順]
次に、クライアント装置1における入力イベント処理の手順について、図4を参照して説明する。図4は、実施例1に係るクライアント装置における入力イベント処理の手順を示すフローチャートである。
[Input event processing procedure in client device]
Next, the procedure of input event processing in the
まず、入力イベント取得部111は、未処理の入力イベントが存在するか否かを判定する(ステップS11)。未処理の入力イベントが存在しないと判定した場合(ステップS11;No)、入力イベント取得部111は、未処理の入力イベントが存在すると判定するまで、判定処理を繰り返す。
First, the input
一方、未処理の入力イベントが存在すると判定した場合(ステップS11;Yes)、入力イベント取得部111は、入力イベントを取得する(ステップS12)。そして、カーソル描画部113は、入力イベント取得部111によって取得された入力イベントに基づいて、自装置のデスクトップ画面へマウスカーソルを再描画する(ステップS13)。例えば、カーソル描画部113は、入力イベントに含まれる移動先のマウスカーソルの位置を抽出し、抽出したマウスカーソルの位置に当該マウスカーソルを再描画する。
On the other hand, when it is determined that there is an unprocessed input event (step S11; Yes), the input
そして、入力イベント送信部112は、入力イベント取得部111によって取得された入力イベントをサーバ装置2へ送信する(ステップS14)。そして、入力イベント処理部11は、次のイベントが発生するのを待つべく、ステップS11に移行する。
Then, the input
[クライアント装置における画面描画処理の手順]
次に、クライアント装置1における画面描画処理の手順について、図5を参照して説明する。図5は、実施例1に係るクライアント装置における画面描画処理の手順を示すフローチャートである。
[Procedure for screen drawing processing on client device]
Next, the procedure of the screen drawing process in the
まず、画面描画部12は、サーバ装置2から画面転送方式に関するデータを受信したか否かを判定する(ステップS21)。画面転送方式に関するデータを受信していないと判定した場合(ステップS21;No)、画面描画部12は、画面転送方式に関するデータを受信するまで、判定処理を繰り返す。
First, the
画面転送方式に関するデータを受信したと判定した場合(ステップS21;Yes)、カーソル位置補正情報受信部121がカーソル位置補正情報を受信したか否かを判定する(ステップS22)。カーソル位置補正情報を受信したと判定した場合(ステップS22;Yes)、カーソル位置補正情報受信部121は、カーソル位置補正情報を受信する(ステップS23)。
If it is determined that data related to the screen transfer method has been received (step S21; Yes), it is determined whether the cursor position correction
続いて、カーソル位置補正部122は、受信したカーソル位置補正情報から補正位置を抽出し、抽出した補正位置にマウスカーソルの位置を補正する(ステップS24)。そして、カーソル描画部113は、補正された位置にマウスカーソルを再描画する(ステップS25)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
Subsequently, the cursor
ステップS22において、カーソル位置補正情報を受信しなかったと判定した場合(ステップS22;No)、画面情報受信部123は、画面情報を受信したか否かを判定する(ステップS26)。画面情報を受信したと判定した場合(ステップS26;Yes)、画面情報受信部123は、圧縮後の画面表示データを受信する(ステップS27)。
If it is determined in step S22 that the cursor position correction information has not been received (step S22; No), the screen
続いて、画像展開処理部124は、圧縮後の画面表示データを展開する(ステップS28)。そして、画面情報描画部125は、展開して得られた画面表示データを使用してデスクトップ画面を再描画する(ステップS29)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
Subsequently, the image
ステップS26において、画面情報を受信しなかったと判定した場合(ステップS26;No)、画面情報受信部123は、画面転送方式とは無関係のデータを受信したので、ここでは何もしない(ステップS30)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
If it is determined in step S26 that screen information has not been received (step S26; No), the screen
[サーバ装置における入力イベント処理の手順]
次に、サーバ装置2における入力イベント処理の手順について、図6を参照して説明する。図6は、実施例1に係るサーバ装置における入力イベント処理の手順を示すフローチャートである。
[Procedure for input event processing in server device]
Next, the procedure of input event processing in the
まず、サーバ装置2の入力イベント受信部221は、クライアント装置1から入力イベントを受信したか否かを判定する(ステップS31)。入力イベントを受信していないと判定した場合(ステップS31;No)、入力イベント受信部221は、入力イベントを受信するまで、判定処理を繰り返す。
First, the input
一方、入力イベントを受信したと判定した場合(ステップS31;Yes)、入力イベント受信部221は、入力イベントを受信する(ステップS32)。そして、入力イベント保存部222は、受信した入力イベントを、入力イベントの履歴として入力イベント履歴保持部21へ保存する(ステップS33)。
On the other hand, when it determines with having received the input event (step S31; Yes), the input
続いて、入力イベント実行部223は、入力イベントをOS20へ受け渡してOS20に処理させる(ステップS34)。そして、入力イベント処理部22は、次のイベントを受信するのを待つべく、ステップS31に移行する。
Subsequently, the input
[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置2におけるカーソル位置補正処理の手順について、図7を参照して説明する。図7は、実施例1に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。
[Procedure for cursor position correction processing in server device]
Next, the procedure of the cursor position correction process in the
カーソル位置変更チェック部231は、所定の時間経過したか否かを判定する(ステップS41)。所定の時間経過していないと判定した場合(ステップS41;No)、カーソル位置変更チェック部231は、所定の時間が経過するまで、判定処理を繰り返す。
The cursor position
一方、所定の時間経過したと判定した場合(ステップS41;Yes)、カーソル位置変更チェック部231は、マウスカーソルが移動したかどうかをチェックする(ステップS42)。例えば、カーソル位置変更チェック部231は、OS20に入力イベントを処理させた結果、OS20から処理に対応したマウスカーソルの位置を取得する。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの位置が入力イベントを処理させる前のマウスカーソルの位置と一致しているか否かを判定する。ここで、所定の時間とは、例えば1フレームの画面表示データの更新時間を示し、一例として33msである。
On the other hand, when it is determined that a predetermined time has elapsed (step S41; Yes), the cursor position
そして、マウスカーソルが移動していないと判定した場合(ステップS42;No)、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。一方、マウスカーソルが移動したと判定した場合(ステップS42;Yes)、カーソル位置履歴チェック部232は、移動後のマウスカーソルの位置に対応する入力イベントが存在するか否かを判定する(ステップS43)。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。
If it is determined that the mouse cursor has not moved (step S42; No), the cursor
そして、対応する入力イベントが存在すると判定した場合(ステップS43;Yes)、カーソル位置履歴チェック部232は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
If it is determined that the corresponding input event exists (step S43; Yes), the cursor position
一方、対応する入力イベントが存在しないと判定した場合(ステップS43;No)、カーソル位置履歴チェック部232は、カーソルの位置がOS20によって自動的に変更されたと判断する。そして、カーソル位置履歴チェック部232は、カーソル位置補正情報送信部233にカーソル位置補正情報をクライアント装置1へ送信させる(ステップS45)。例えば、カーソル位置補正情報送信部233は、変更されたカーソルの位置を含むカーソル位置補正情報をクライアント装置1へ送信する。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
On the other hand, when it is determined that there is no corresponding input event (step S43; No), the cursor position
[サーバ装置における画面情報転送処理の手順]
次に、サーバ装置2における画面情報転送処理の手順について、図8を参照して説明する。図8は、実施例1に係るサーバ装置における画面情報転送処理の手順を示すフローチャートである。
[Procedure for screen information transfer processing in server device]
Next, the procedure of the screen information transfer process in the
画面情報取得部241は、OS20を介して画面表示データを取得する(ステップS51)。そして、画面更新判定部242は、取得した画面表示データと前回に取得した画面表示データとを比較して、画面更新があったか否かを判定する(ステップS52)。画面更新がなかったと判定した場合(ステップS52;No)、画面情報転送部24は、カーソル位置補正処理に移行すべく、ステップS41に遷移する。
The screen
一方、画面更新があったと判定した場合(ステップS52;Yes)、画像圧縮処理部243は、更新があった領域の画面表示データを圧縮する(ステップS53)。そして、画面情報送信部244は、圧縮済みの画面表示データをクライアント装置1へ送信する(ステップS54)。そして、画面情報転送部24は、カーソル位置補正処理に移行すべく、ステップS41に遷移する。
On the other hand, when it is determined that the screen has been updated (step S52; Yes), the image
[実施例1の効果]
上記実施例1によれば、シンクライアントシステム9のサーバ装置2は、クライアント装置1から受信した、マウスカーソルの移動を伴う入力イベントについて、移動後のカーソルの位置を含むイベント情報を入力イベント履歴保持部21に保存する。そして、サーバ装置2は、入力イベントに基づいて処理した結果、処理前後でカーソルの位置に変化があったとき、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致しているか否かを判定する。そして、サーバ装置2は、判定の結果、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置とも一致していない場合に、変化があったカーソルの位置をクライアント装置1に通知する。かかる構成によれば、サーバ装置2は、クライアント装置1から受信した入力イベントに基づく処理により処理前後で変化があったカーソルの位置が処理によって自動的に移動してしまう場合であっても、移動後のカーソルの位置をクライアント装置1に対応させることができる。
[Effect of Example 1]
According to the first embodiment, the
また、上記実施例1によれば、サーバ装置2が、判定の結果、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致した場合に、一致したカーソルの位置に係るイベント以前のイベント情報を削除する。かかる構成によれば、サーバ装置2は、入力イベントに関する次回の処理で、入力イベント履歴保持部21に保持されているカーソルの位置との比較回数を減らすことができるので、処理効率を上げることができる。
Further, according to the first embodiment, when the
ところで、実施例1に係るサーバ装置2では、入力イベントの処理前後で変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、保持されていると判定した入力イベントの履歴以前の履歴を削除する場合を説明した。しかしながら、サーバ装置2は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、履歴を削除する前に保持されているキューの長さが長い場合には画面転送方式の処理間隔を調整するようにしても良い。
By the way, in the
つまり、サーバ装置2では、画面転送方式における処理負荷が高くなる場合がある。かかる場合には、サーバ装置2は、クライアント装置1から送信された入力イベントの処理時間が長くなり、入力イベント履歴保持部21に保持される入力イベントのキュー長が長くなることがある。このため、サーバ装置2は、キュー長が閾値より大きい場合には画面転送方式の処理間隔を調整して、処理負荷を低減するようにしても良い。
That is, in the
そこで、実施例2では、入力イベント履歴保持部21に保持される入力イベントのキュー長が閾値より大きい場合には画面転送方式の処理間隔を調整するサーバ装置2について説明する。
Therefore, in the second embodiment, a description will be given of the
[シンクライアントシステムに含まれる各装置の構成]
図9は、実施例2に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。なお、図1に示すシンクライアントシステム9と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、サーバ装置2Aのカーソル位置補正部23に入力イベント履歴保持数チェック部301を追加した点にある。
[Configuration of each device included in the thin client system]
FIG. 9 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the second embodiment. In addition, about the same structure as the
カーソル位置履歴チェック部232は、入力イベントの実行前後でカーソルの位置に変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。
The cursor position
入力イベント履歴保持数チェック部301は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されている場合、入力イベント履歴保持部21に保持されている入力イベントのキュー長が閾値以上であるか否かを判定する。例えば、入力イベント履歴保持数チェック部301は、入力イベント履歴保持部21に保持されている入力イベントの履歴の中で変化があったマウスカーソルの位置と一致した座標位置に関する入力イベント以前の入力イベントの数を数える。また、入力イベント履歴保持数チェック部301は、数えた入力イベントの数が閾値よりも大きいか否かを判定する。そして、入力イベント履歴保持数チェック部301は、数えた入力イベントの数が閾値よりも大きいと判定した場合には、処理負荷が高いと判断し、画面転送方式の処理間隔を現在の処理間隔より大きくする。一方、入力イベント履歴保持数チェック部301は、数えた入力イベントの数が閾値以下であると判定した場合には、処理負荷が低いと判断し、画面転送方式の処理間隔を現在の処理間隔より小さくするか、現在の処理間隔のままにする。そして、入力イベント履歴保持数チェック部301は、一致した座標位置に関する入力イベントの履歴以前の履歴を削除する。
When the position of the mouse cursor that has changed is held in the input event
なお、入力イベントの数と比較する閾値は、例えば3であるが、CPUの処理性能に応じて変更すれば良く、処理負荷が高くなると判定される値であれば良い。また、画面転送方式の処理間隔とは、画面の更新間隔(更新頻度)を指す。すなわち、カーソル位置変更チェック部231が、マウスカーソルが移動したか否かをチェックする時間間隔である所定の時間と一致する。つまり、画面転送方式の処理間隔が大きくなれば、所定の時間も大きくなり、画面転送方式の処理間隔が小さくなれば、所定の時間も小さくなる。
The threshold value to be compared with the number of input events is, for example, 3. However, it may be changed according to the processing performance of the CPU, and may be a value determined to increase the processing load. The processing interval of the screen transfer method refers to a screen update interval (update frequency). That is, the cursor position
[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図10を参照して説明する。図10は、実施例2に係るカーソル位置補正の具体例を説明する図である。
[Specific example of cursor position correction]
Next, a specific example of cursor position correction will be described with reference to FIG. FIG. 10 is a diagram illustrating a specific example of cursor position correction according to the second embodiment.
図10に示すように、クライアント装置1Aでは、入力イベント取得部111が、クライアント装置1に接続されたマウスから入力イベントを取得する(ステップS1)。ここでは、入力イベントは、マウスの移動操作によりマウスの移動先が時系列に(x1、y1)、(x2、y2)および(x3、y3)と移動する3つのイベントとする。
As illustrated in FIG. 10, in the
入力イベント取得部111は、各入力イベントを時系列に取得し、取得した都度、取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された各入力イベントをサーバ装置2Aに送信し、カーソル描画部113は、引き渡された各入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP1にカーソルを描画した後、引き続きP2およびP3にカーソルを描画する。
The input
サーバ装置2Aでは、入力イベント受信部221が、クライアント装置1Aから送信された各入力イベントを時系列に受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された各入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、各入力イベントに含まれる移動先の座標P1、P2およびP3をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された各入力イベントをOS20に処理させる(ステップS3)。
In the server device 2A, the input
そして、カーソル位置変更チェック部231は、OS20に処理させた結果であるマウスカーソルの座標を取得する(ステップS4)。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの座標P1が処理前のマウスカーソルの座標と一致していない、すなわちマウスカーソルが移動したと判定する。そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P1が入力イベント履歴として保持されているか否かを判定する。ここでは、処理後のマウスカーソルの座標P1が入力イベント履歴として保持されていると判定される。そこで、入力イベント履歴保持数チェック部301は、入力イベント履歴の中で対応する入力イベント以前のキュー長をチェックし、キュー長が閾値よりも大きいか否かを判定する(ステップS5A)。ここでは、P1に対応する入力イベント以前の入力イベント(P1、Px、Py、Pzに対応)が4個あるので、キュー長が4となる。閾値を3とした場合、キュー長(4)が閾値(3)よりも大きいと判定される。
Then, the cursor position
そして、入力イベント履歴保持数チェック部301は、キュー長が閾値よりも大きいと判定したので、処理負荷が高いと判断し、画面転送方式の処理間隔を大きくする。そして、入力イベント履歴保持数チェック部301は、処理後のマウスカーソルの座標P1に関する入力イベントの履歴以前の履歴を削除する(ステップS6)。ここでは、P1、Px、Py、Pzに関する入力イベントの履歴が削除される。そして、引き続き、画面情報転送部24の処理が実行される。このように、サーバ装置2Aは、入力イベント履歴のキュー長が長い場合には処理負荷が高いと判断し、画面転送方式の処理間隔を大きくするようにして処理負荷を低減することで、操作性を向上させることができる。
Since the input event history retention
[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置2Aにおけるカーソル位置補正処理の手順について、図11を参照して説明する。図11は、実施例2に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。なお、図7に示す実施例1に係るサーバ装置におけるカーソル位置補正処理と同一の処理については同一符号を示す。
[Procedure for cursor position correction processing in server device]
Next, the procedure of the cursor position correction process in the server device 2A will be described with reference to FIG. FIG. 11 is a flowchart illustrating the procedure of the cursor position correction process in the server apparatus according to the second embodiment. In addition, the same code | symbol is shown about the process same as the cursor position correction process in the server apparatus based on Example 1 shown in FIG.
カーソル位置変更チェック部231は、所定の時間経過したか否かを判定する(ステップS41)。所定の時間経過していないと判定した場合(ステップS41;No)、カーソル位置変更チェック部231は、所定の時間が経過するまで、判定処理を繰り返す。
The cursor position
一方、所定の時間経過したと判定した場合(ステップS41;Yes)、カーソル位置変更チェック部231は、マウスカーソルが移動したかどうかをチェックする(ステップS42)。例えば、カーソル位置変更チェック部231は、OS20に入力イベントを処理させた結果、OS20から処理に対応したマウスカーソルの位置を取得する。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの位置が入力イベントを処理させる前のマウスカーソルの位置と一致しているか否かを判定する(ステップS42)。ここで、所定の時間とは、例えば1フレームの画面表示データの更新時間を示す。
On the other hand, when it is determined that a predetermined time has elapsed (step S41; Yes), the cursor position
そして、マウスカーソルが移動していないと判定した場合(ステップS42;No)、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。一方、マウスカーソルが移動したと判定した場合(ステップS42;Yes)、カーソル位置履歴チェック部232は、移動後のマウスカーソルの位置に対応する入力イベントが存在するか否かを判定する(ステップS43)。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。
If it is determined that the mouse cursor has not moved (step S42; No), the cursor
そして、対応する入力イベントが存在すると判定した場合(ステップS43;Yes)、入力イベント履歴保持数チェック部301は、対応する入力イベント以前の入力イベントの数(キュー長)を数える(ステップS401)。例えば、入力イベント履歴保持数チェック部301は、入力イベント履歴保持部21に保持されている入力イベントの履歴の中で変化があったマウスカーソルの位置と一致した座標位置に関する入力イベント以前の入力イベントの数を数える。
If it is determined that there is a corresponding input event (step S43; Yes), the input event history retention
そして、入力イベント履歴保持数チェック部301は、キュー長が閾値よりも大きいか否かを判定する(ステップS402)。キュー長が閾値よりも大きいと判定した場合(ステップS402;Yes)、入力イベント履歴保持数チェック部301は、処理負荷が高いと判断し、画面転送方式の処理間隔を大きくする(ステップS403)。
Then, the input event history retention
一方、キュー長が閾値以下であると判定した場合(ステップS402;No)、入力イベント履歴保持数チェック部301は、処理負荷が低いと判断し、画面転送方式の処理間隔を小さくする(ステップS404)。そして、入力イベント履歴保持数チェック部301は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
On the other hand, when it is determined that the queue length is equal to or smaller than the threshold (step S402; No), the input event history retention
ステップS43に戻って、対応する入力イベントが存在しないと判定した場合(ステップS43;No)、カーソル位置履歴チェック部232は、カーソルの位置がOS20によって自動的に変更されたと判断する。そして、カーソル位置履歴チェック部232は、カーソル位置補正情報送信部233にカーソル位置補正情報をクライアント装置1Aへ送信させる(ステップS45)。例えば、カーソル位置補正情報送信部233は、変更されたカーソルの位置を含むカーソル位置補正情報をクライアント装置1Aへ送信する。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
Returning to step S43, if it is determined that the corresponding input event does not exist (step S43; No), the cursor position
[実施例2の効果]
上記実施例2によれば、シンクライアントシステム9のサーバ装置2Aは、クライアント装置1Aから受信した、マウスカーソルの移動を伴う入力イベントについて、移動後のカーソルの位置を含むイベント情報を入力イベント履歴保持部21に保存する。そして、サーバ装置2Aは、入力イベントに基づいて処理した結果、処理前後でカーソルの位置に変化があったとき、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致しているか否かを判定する。そして、サーバ装置2Aは、判定の結果、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致した場合に、一致したカーソルの位置に係るイベント以前のイベントの数が閾値より大きいか否かを判定する。そして、サーバ装置2Aは、一致したカーソルの位置に係るイベント以前のイベントの数が閾値より大きいと判定した場合、画面転送方式の処理間隔を現在の処理間隔より大きくする。かかる構成によれば、サーバ装置2Aは、入力イベント履歴保持部21に保持されている該当するイベントの数が閾値より大きい場合には、カーソルの位置の移動を伴う入力イベント処理の間隔が長くなっているので、自装置の処理負荷が高いと想定される。このため、サーバ装置2は、画面転送方式の処理間隔を大きくすることで、処理負荷を低減することができる。この結果、サーバ装置2Aは、シンクライアントシステム9の操作性を向上させることができる。
[Effect of Example 2]
According to the second embodiment, the server apparatus 2A of the
ところで、実施例1に係るサーバ装置2では、入力イベントの処理でマウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置をクライアント装置1に送信する場合を説明した。しかしながら、サーバ装置2は、これに限定されず、マウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置と形状とをクライアント装置1に送信するようにしても良い。これは、マウスカーソルの位置が自動的に移動した場合に、移動後の位置によってはマウスカーソルの形状も変化する場合があるためである。
By the way, in the
そこで、実施例3では、マウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置と形状とをクライアント装置1に送信するサーバ装置2について説明する。
Thus, in the third embodiment, a description will be given of the
[シンクライアントシステムに含まれる各装置の構成]
図12は、実施例3に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。なお、図1に示すシンクライアントシステム9と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例1と実施例3とが異なるところは、サーバ装置2Bのカーソル位置補正部23にカーソル形状チェック部401およびカーソル形状補正情報送信部402を追加した点にある。また、実施例1と実施例3とが異なるところは、クライアント装置1Bの画面描画部12にカーソル形状補正情報受信部403およびカーソル形状補正部404を追加した点にある。
[Configuration of each device included in the thin client system]
FIG. 12 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the third embodiment. In addition, about the same structure as the
カーソル位置履歴チェック部232は、入力イベントの実行前後でカーソルの位置に変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。
The cursor position
カーソル形状チェック部401は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていない場合、さらにマウスカーソルの形状が変化したか否かをチェックする。例えば、カーソル形状チェック部401は、OS20を用いて、マウスカーソルの形状が変化したか否かを判定する。そして、カーソル形状チェック部401は、マウスカーソルの形状が変化した場合、変化後のマウスカーソルの形状をカーソル形状補正情報送信部402に通知する。すなわち、カーソル形状チェック部401は、OS20によって自動的に変更されたマウスカーソルの位置に伴い形状も変化した場合に、変化した形状をカーソル形状補正情報送信部402に通知する。
When the position of the mouse cursor that has changed is not held in the input event
カーソル形状補正情報送信部402は、カーソル形状チェック部401によって通知されたカーソルの形状を含むカーソル形状補正情報をクライアント装置1Bに送信する。これによって、サーバ装置2Bは、OS20によって自動的に変更されたマウスカーソルの位置に伴い変化したマウスカーソルの形状をクライアント装置1Bに補正させることができる。
The cursor shape correction
カーソル形状補正情報受信部403は、カーソル形状情報をサーバ装置2Bから受信する。ここで、カーソル形状補正情報とは、サーバ装置2Bによって補正されるカーソルの形状情報である。つまり、サーバ装置2Bでは、クライアント装置1Bから送信された入力イベントを処理した結果、処理後のマウスカーソルの位置および形状がOS20によって自動的に変更される場合がある。かかる場合に、カーソル形状補正情報受信部403は、カーソル形状補正情報をサーバ装置2Bから受信し、受信したカーソル形状補正情報を用いてカーソルの形状を補正させてサーバ装置2Bのカーソルの形状と対応させる。
The cursor shape correction
カーソル形状補正部404は、カーソル形状補正情報受信部403によって受信されたカーソル形状補正情報からマウスカーソルの補正形状を抽出する。また、カーソル形状補正部404は、カーソル描画部113に、抽出した補正形状のマウスカーソルを再描画させる。
The cursor shape correction unit 404 extracts the correction shape of the mouse cursor from the cursor shape correction information received by the cursor shape correction
[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図13を参照して説明する。図13は、実施例3に係るカーソル位置補正の具体例を説明する図である。なお、図13では、サーバ装置2Bは、マウスの移動操作によりマウスの表示位置が移動する入力イベントをクライアント装置1Bから受信する。そして、入力イベントの中でP1およびP2に移動先が移動する各入力イベントについて、処理後のカーソルの位置がOS20によって自動的に移動しない例とする。さらに、入力イベントの中でP2からP3に移動先が移動する入力イベントについて、処理後のカーソルの位置がOS20によってP3からP4に自動的に移動するとともにカーソルの形状も矢印形状から三角形状に変化する例とする。以降では、P2からP3に移動先が移動する入力イベントの場合について説明する。
[Specific example of cursor position correction]
Next, a specific example of cursor position correction will be described with reference to FIG. FIG. 13 is a diagram illustrating a specific example of cursor position correction according to the third embodiment. In FIG. 13, the
図13に示すように、クライアント装置1Bでは、入力イベント取得部111が、クライアント装置1Bに接続されたマウスから入力イベントを取得する(ステップS1)。ここでは、入力イベント取得部111は、マウスの移動操作によりマウスの移動先が(x3、y3)となる入力イベントを取得する。
As illustrated in FIG. 13, in the
入力イベント取得部111は、取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された入力イベントをサーバ装置2Bに送信し、カーソル描画部113は、引き渡された入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP3にカーソルを描画する。
The input
サーバ装置2Bでは、入力イベント受信部221が、クライアント装置1Bから送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P3をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。
In the
そして、カーソル位置変更チェック部231は、OS20に処理させた後のマウスカーソルの座標を取得する(ステップS4)。ここでは、OS20によってマウスカーソルの位置が自動的にP3からP4(x4、y4)に変更する。すると、カーソル位置変更チェック部231は、変更された座標P4が処理前のマウスカーソルの座標P2と一致していないと判定する。そこで、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P4が入力イベント履歴として保持されているか否かを判定する(ステップS5)。ここでは、処理後のマウスカーソルの座標P4がOS20によって座標P3から自動的に変更されたので、入力イベント履歴として保持されていない。そこで、カーソル位置履歴チェック部232は、変更されたマウスカーソルの座標P4をカーソル位置補正情報送信部233に通知させる(ステップS7)。
Then, the cursor position
さらに、カーソル形状チェック部401は、マウスカーソルの形状が変化したか否かを、OS20を用いて判定する。ここでは、処理後のマウスカーソルの形状が矢印形状から三角形状に変化している。そこで、カーソル形状チェック部401は、変化したマウスカーソルの三角形状をカーソル形状補正情報送信部402に通知させる(ステップS8)。
Furthermore, the cursor
クライアント装置1Bでは、カーソル位置補正情報受信部121が、変更されたマウスカーソルの座標P4を受信する。そして、カーソル位置補正部122は、カーソル描画部113によって、変更されたマウスカーソルの座標P4にマウスカーソルを再描画させる。続いて、カーソル形状補正情報受信部403が、変化したマウスカーソルの形状を受信する。そして、カーソル形状補正部404は、カーソル描画部113によって、変化したマウスカーソルを再描画させる。
In the
このように、サーバ装置2Bがクライアント装置1Bから送信された入力イベントを処理した結果、処理後のマウスカーソルの形状が変化した場合であっても、変化したマウスカーソルの形状をクライアント装置1Bに対応させることができる。
As described above, even when the shape of the mouse cursor after processing is changed as a result of processing the input event transmitted from the
[クライアント装置における画面描画処理の手順]
次に、クライアント装置1Bにおける画面描画処理の手順について、図14を参照して説明する。図14は、実施例3に係るクライアント装置における画面描画処理の手順を示すフローチャートである。なお、図5に示す実施例1に係るサーバ装置における画面描画処理と同一の処理については同一符号を示す。
[Procedure for screen drawing processing on client device]
Next, the procedure of the screen drawing process in the
まず、画面描画部12は、サーバ装置2から画面転送方式に関するデータを受信したか否かを判定する(ステップS21)。画面転送方式に関するデータを受信していないと判定した場合(ステップS21;No)、画面描画部12は、画面転送方式に関するデータを受信するまで、判定処理を繰り返す。
First, the
画面転送方式に関するデータを受信したと判定した場合(ステップS21;Yes)、カーソル位置補正情報受信部121がカーソル位置補正情報を受信したか否かを判定する(ステップS22)。カーソル位置補正情報を受信したと判定した場合(ステップS22;Yes)、カーソル位置補正情報受信部121は、カーソル位置補正情報を受信する(ステップS23)。
If it is determined that data related to the screen transfer method has been received (step S21; Yes), it is determined whether the cursor position correction
続いて、カーソル位置補正部122は、受信したカーソル位置補正情報から補正位置を抽出し、抽出した補正位置にマウスカーソルの位置を補正する(ステップS24)。そして、カーソル描画部113は、補正された位置にマウスカーソルを再描画する(ステップS25)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
Subsequently, the cursor
ステップS22において、カーソル位置補正情報を受信しなかったと判定した場合(ステップS22;No)、カーソル形状補正情報受信部403がカーソル形状補正情報を受信したか否かを判定する(ステップS61)。カーソル形状補正情報を受信したと判定した場合(ステップS61;Yes)、カーソル形状補正情報受信部403は、カーソル形状補正情報を受信する(ステップS62)。
If it is determined in step S22 that the cursor position correction information has not been received (step S22; No), it is determined whether or not the cursor shape correction
続いて、カーソル形状補正部404は、受信したカーソル形状補正情報から補正形状を抽出し、抽出した補正形状にマウスカーソルの形状を補正する(ステップS63)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
Subsequently, the cursor shape correction unit 404 extracts a correction shape from the received cursor shape correction information, and corrects the shape of the mouse cursor to the extracted correction shape (step S63). Then, the
ステップS61において、カーソル形状補正情報を受信しなかったと判定した場合(ステップS61;No)、画面情報受信部123は、画面情報を受信したか否かを判定する(ステップS26)。画面情報を受信したと判定した場合(ステップS26;Yes)、画面情報受信部123は、圧縮後の画面表示データを受信する(ステップS27)。
If it is determined in step S61 that the cursor shape correction information has not been received (step S61; No), the screen
続いて、画像展開処理部124は、圧縮後の画面表示データを展開する(ステップS28)。そして、画面情報描画部125は、展開して得られた画面表示データを使用してデスクトップ画面を再描画する(ステップS29)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
Subsequently, the image
ステップS26において、画面情報を受信しなかったと判定した場合(ステップS26;No)、画面情報受信部123は、画面転送方式とは無関係のデータを受信したので、ここでは何もしない(ステップS30)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。
If it is determined in step S26 that screen information has not been received (step S26; No), the screen
[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置2Bにおけるカーソル位置補正処理の手順について、図15を参照して説明する。図15は、実施例3に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。なお、図7に示す実施例1に係るサーバ装置におけるカーソル位置補正処理と同一の処理については同一符号を示す。
[Procedure for cursor position correction processing in server device]
Next, the procedure of the cursor position correction process in the
カーソル位置変更チェック部231は、所定の時間経過したか否かを判定する(ステップS41)。所定の時間経過していないと判定した場合(ステップS41;No)、カーソル位置変更チェック部231は、所定の時間が経過するまで、判定処理を繰り返す。
The cursor position
一方、所定の時間経過したと判定した場合(ステップS41;Yes)、カーソル位置変更チェック部231は、マウスカーソルが移動したかどうかをチェックする(ステップS42)。例えば、カーソル位置変更チェック部231は、OS20に入力イベントを処理させた結果、OS20から処理に対応したマウスカーソルの位置を取得する。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの位置が入力イベントを処理させる前のマウスカーソルの位置と一致しているか否かを判定する。ここで、所定の時間とは、例えば1フレームの画面表示データの更新時間を示す。
On the other hand, when it is determined that a predetermined time has elapsed (step S41; Yes), the cursor position
そして、マウスカーソルが移動していないと判定した場合(ステップS42;No)、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。一方、マウスカーソルが移動したと判定した場合(ステップS42;Yes)、カーソル位置履歴チェック部232は、移動後のマウスカーソルの位置に対応する入力イベントが存在するか否かを判定する(ステップS43)。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。
If it is determined that the mouse cursor has not moved (step S42; No), the cursor
そして、対応する入力イベントが存在すると判定した場合(ステップS43;Yes)、カーソル位置履歴チェック部232は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
If it is determined that the corresponding input event exists (step S43; Yes), the cursor position
一方、対応する入力イベントが存在しないと判定した場合(ステップS43;No)、カーソル位置履歴チェック部232は、カーソルの位置がOS20によって自動的に変更されたと判断する。そして、カーソル位置履歴チェック部232は、カーソル位置補正情報送信部233にカーソル位置補正情報をクライアント装置1へ送信させる(ステップS45)。例えば、カーソル位置補正情報送信部233は、変更されたカーソルの位置を含むカーソル位置補正情報をクライアント装置1へ送信する。
On the other hand, when it is determined that there is no corresponding input event (step S43; No), the cursor position
続いて、カーソル形状チェック部401は、マウスカーソルの形状が変化したか否かを判定する。マウスカーソルの形状が変化していないと判定した場合(ステップS71;No)、カーソル形状チェック部401は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
Subsequently, the cursor
一方、マウスカーソルの形状が変化したと判定した場合(ステップS71;Yes)、カーソル形状補正情報送信部402は、カーソル形状補正情報送信部402にカーソル形状補正情報をクライアント装置1Bへ送信させる(ステップS72)。例えば、カーソル形状補正情報送信部402は、変化後のカーソルの形状を含むカーソル形状補正情報をクライアント装置1Bへ送信する。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
On the other hand, if it is determined that the shape of the mouse cursor has changed (step S71; Yes), the cursor shape correction
[実施例3の効果]
上記実施例3によれば、シンクライアントシステム9のサーバ装置2Bは、マウスカーソルの移動を伴う入力イベントをクライアント装置1Bから受信する。そして、サーバ装置2Bは、受信した入力イベントについて移動後のカーソルの位置を含むイベント情報を入力イベント履歴保持部21に保存する。そして、サーバ装置2Bは、入力イベントに基づいて処理した結果、処理前後でカーソルの位置に変化があったとき、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致しているか否かを判定する。そして、サーバ装置2Bは、判定の結果、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置とも一致していない場合に、変化があったカーソルの位置をクライアント装置1Bに通知する。さらに、サーバ装置2Bは、入力イベントに基づいて処理した結果、処理前後でカーソルの形状に変化があったとき、変化があったカーソルの形状をクライアント装置1Bに通知する。かかる構成によれば、サーバ装置2Bは、クライアント装置1Bから受信した入力イベントに基づく処理により処理前後でカーソルの形状に変化があった場合であっても、変化後のカーソルの形状をクライアント装置1Bに対応させることができる。
[Effect of Example 3]
According to the third embodiment, the
ところで、実施例1に係るサーバ装置2では、入力イベントの処理でマウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置をクライアント装置1に補正する場合を説明した。しかしながら、サーバ装置2では、マウスカーソルの移動領域が制限される場合がある。かかる場合に、クライアント装置1では、ローカルエコー方式で描画するマウスカーソルの位置がサーバ装置2で移動が制限された領域内であると、サーバ装置2から補正される位置を再描画すると、移動軌跡が不自然になる。
By the way, in the
このローカルエコー方式における問題について、図16を参照して説明する。図16は、ローカルエコー方式における問題を説明する図である。図16に示すように、サーバ装置2Cのデスクトップ画面の領域G1について、マウスカーソルの移動が制限されている。すなわち、サーバ装置2Cのデスクトップ画面では、制限領域G1以外の領域G2について、マウスカーソルの移動が許可されている。このような状況下で、クライアント装置1C側では、制限領域G1に対応する領域G1´方向に移動する入力イベントが繰り返し発生するとする。すると、サーバ装置2C側は、クライアント装置1C側で発生した入力イベントを受信する都度、制限領域G1と許可領域G2との境界にカーソル位置を補正することになり、補正したカーソル位置をクライアント装置1Cに送信することになる。そうすると、クライアント装置1C側では、入力イベントが発生した時点でローカルエコーによりカーソルを一旦描画しても、サーバ装置2Cから送信される、補正されたカーソル位置を再描画するので、マウスカーソルの移動軌跡が不自然となってしまう。図16の例では、サーバ装置2C側では、マウスカーソルの移動軌跡が制限領域G1と許可領域G2との境界のX軸方向(横方向)のみとなっている。一方、クライアント装置1C側では、マウスカーソルの移動軌跡が上下方向にぎざぎざとなり、不自然な軌跡となっている。 The problem in the local echo method will be described with reference to FIG. FIG. 16 is a diagram for explaining a problem in the local echo method. As shown in FIG. 16, the movement of the mouse cursor is restricted in the area G1 on the desktop screen of the server apparatus 2C. That is, on the desktop screen of the server device 2C, the movement of the mouse cursor is permitted in the area G2 other than the restricted area G1. Under such circumstances, it is assumed that an input event that moves in the direction of the region G1 ′ corresponding to the restricted region G1 repeatedly occurs on the client device 1C side. Then, each time the input event generated on the client device 1C side is received, the server device 2C side corrects the cursor position at the boundary between the restriction region G1 and the permission region G2, and the corrected cursor position is set to the client device 1C. Will be sent to. Then, on the client device 1C side, even if the cursor is once drawn by local echo when the input event occurs, the corrected cursor position transmitted from the server device 2C is redrawn. Becomes unnatural. In the example of FIG. 16, on the server device 2C side, the movement locus of the mouse cursor is only the X-axis direction (lateral direction) of the boundary between the restriction area G1 and the permission area G2. On the other hand, on the client device 1C side, the movement locus of the mouse cursor is jagged in the vertical direction, which is an unnatural locus.
そこで、実施例4では、サーバ装置2Cでマウスカーソルの移動領域が制限される場合であっても、クライアント装置1Cのマウスカーソルの移動軌跡が不自然になることを防止するサーバ装置2Cについて説明する。 Thus, in the fourth embodiment, the server apparatus 2C that prevents the movement locus of the mouse cursor of the client apparatus 1C from becoming unnatural even when the movement area of the mouse cursor is limited by the server apparatus 2C will be described. .
[シンクライアントシステムに含まれる各装置の構成]
図17は、実施例4に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。なお、図1に示すシンクライアントシステム9と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例1と実施例4とが異なるところは、サーバ装置2Cのカーソル位置補正部23にカーソル移動方向判定部501およびカーソル移動方向通知部502を追加した点にある。また、実施例1と実施例4とが異なるところは、クライアント装置1Cの入力イベント処理部11にカーソル移動方向限定処理部50を追加し、カーソル移動方向限定処理部50にカーソル移動方向受信部503を追加した点にある。さらに、実施例1と実施例4とが異なるところは、クライアント装置1の入力イベント処理部11にカーソル移動方向限定部504を追加した点にある。
[Configuration of each device included in the thin client system]
FIG. 17 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the fourth embodiment. In addition, about the same structure as the
カーソル位置変更チェック部231は、入力イベント実行部223によって入力イベントが実行された結果、実行前後でカーソルの位置に変化があったか否かを判定する。
The cursor position
カーソル移動方向判定部501は、実行前後でカーソルの位置に変化があった場合に、マウスカーソルの移動方向を判定する。カーソル移動方向判定部501は、マウスカーソルの移動方向がX軸方向のみに移動したと判定した場合、X軸方向をカーソル移動の限定方向と決定する。また、カーソル移動方向判定部501は、マウスカーソルの移動方向がY軸方向のみに移動したと判定した場合、Y軸方向をカーソル移動の限定方向と決定する。
The cursor movement
カーソル移動方向通知部502は、カーソル移動方向判定部501によって決定されたカーソル移動の限定方向をクライアント装置1Cに通知する。
The cursor movement direction notifying unit 502 notifies the client device 1C of the limited direction of cursor movement determined by the cursor movement
カーソル位置履歴チェック部232は、実行前後で変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。ここで、カーソル位置履歴チェック部232は、カーソル移動の限定方向が決定されている場合には、決定された限定方向のみでチェックする。例えば、カーソル位置履歴チェック部232は、カーソル移動の限定方向がX軸方向である場合、変化があったマウスカーソルのX軸の座標が入力イベント履歴保持部21のいずれかのX軸の座標と一致しているか否かを判定する。
The cursor position
カーソル位置履歴チェック部232は、変化があったカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、保持されていると判定した入力イベントの履歴以前の履歴を削除する。一方、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていないと判定した場合、変化があったマウスカーソルの位置をカーソル位置補正情報送信部233に通知する。
When the cursor position
カーソル移動方向受信部503は、カーソル移動の限定方向をサーバ装置2Cから受信する。カーソル移動方向限定部504は、自装置側でのマウスカーソルの移動方向を、カーソル移動方向受信部503によって受信されたカーソル移動の限定方向に限定する。
The cursor movement
[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図18を参照して説明する。図18は、実施例4に係るカーソル位置補正の具体例を説明する図である。なお、サーバ装置2Cのデスクトップ画面において、マウスカーソルの移動可能な領域が、Y軸の座標位置「100」以上(ここでは下方向)の場合とする。すなわち、図18の例では、クライアント装置1Cのデスクトップ画面において、マウスカーソルがY軸の座標位置「100」未満(ここでは上方向)に移動すると、Y軸の座標位置「100」に補正されるものとする。
[Specific example of cursor position correction]
Next, a specific example of cursor position correction will be described with reference to FIG. FIG. 18 is a diagram illustrating a specific example of cursor position correction according to the fourth embodiment. It is assumed that the area where the mouse cursor can move on the desktop screen of the server device 2C is the coordinate position “100” or more (downward here) on the Y axis. That is, in the example of FIG. 18, when the mouse cursor moves below the Y-axis coordinate position “100” (upward here) on the desktop screen of the
図18に示すように、クライアント装置1Cは、マウスの移動先を図示しないP1´(205、95)とした入力イベントを取得したとき、ローカルエコーを行った後に、サーバ装置2CによりY軸の値が補正された補正位置P1(205、100)に再描画する。 As illustrated in FIG. 18, when the client apparatus 1C acquires an input event in which the mouse destination is P1 ′ (205, 95) (not shown), the local echo is performed, and then the server apparatus 2C performs the Y-axis value. Is redrawn at the corrected position P1 (205, 100).
次に、入力イベント取得部111は、マウスの移動先をP2(210、100)とした入力イベントを取得する(ステップS1)。入力イベント取得部111は、取得した入力イベントを入力イベント送信部112およびカーソル移動方向限定部504に引き渡す。そして、カーソル移動方向限定部504は、マウスカーソルの移動方向が限定されている場合は、引き渡された入力イベントについてマウスカーソルの移動方向を限定する。そして、カーソル描画部113は直前の座標から限定された移動方向のみに移動させた座標でローカルエコーを行う。一方、カーソル移動方向限定部504は、マウスカーソルの移動方向が限定されていない場合は、カーソル描画部113を介して入力イベントの座標にカーソルを描画する。それと同時に、入力イベント送信部112は、引き渡された入力イベントをそのままサーバ装置2Cに送信する(ステップS2C)。ここでは、マウスカーソルの移動方向が限定されていないので、カーソル描画部113は、P2(210、100)の位置にそのままカーソルを描画する。
Next, the input
サーバ装置2では、入力イベント受信部221が、クライアント装置1Cから送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P2をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。
In the
そして、カーソル位置変更チェック部231は、OS20に処理させた結果であるマウスカーソルの座標を取得する(ステップS4)。そして、カーソル移動方向判定部501は、取得したマウスカーソルの座標が処理前のマウスカーソルの座標と一致していない、すなわちマウスカーソルが移動したので、マウスカーソル移動の限定方向を決定する(ステップS5C)。ここでは、カーソル移動方向判定部501は、前回の座標が(205、100)、今回の座標が(210、100)であるのでX軸方向をカーソル移動の限定方向と決定する。そこで、カーソル移動方向判定部501は、カーソル移動方向通知部502を介して、カーソル移動の限定方向(X軸)をクライアント装置1Cに通知する(ステップS6C)。
Then, the cursor position
そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P2が入力イベント履歴として保持されているか否かを、決定されたカーソル移動の限定方向を用いて判定する(ステップS7C)。ここでは、決定されたカーソル移動の限定方向がX軸方向であるので、処理後のマウスカーソルの座標P2のうちX軸の座標値「210」が入力イベント履歴として保持されているので、座標P2以前の履歴を削除する(ステップS8C)。このようにマウスの移動先が座標P2となる入力イベントの場合には、処理後のマウスカーソルの座標P2がOS20によって自動的に変更されていないので、クライアント装置1Cに対して座標の補正をしないで、処理を終了することとなる。なお、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標のうちカーソル移動の限定方向の座標値が入力イベント履歴として保持されていない場合、処理後のマウスカーソルの座標をクライアント装置1Cに送信する(ステップS9C)。
Then, the cursor position
クライアント装置1Cでは、入力イベント取得部111は、次の入力イベントを取得する(ステップS1)。ここでは、マウスの移動先が、例えばP3´(215、95)となる入力イベントを取得するものとする。入力イベント取得部111は、取得した入力イベントを入力イベント送信部112およびカーソル移動方向限定部504に引き渡す。そして、カーソル移動方向限定部504は、マウスカーソルの移動方向がX軸方向に限定されているので、引き渡された入力イベントについてマウスカーソルの移動方向であるX軸方向を限定する。そして、カーソル描画部113は直前の座標P2から限定されたX軸方向のみに移動させた座標P3(215、100)でローカルエコーを行う。それと同時に、入力イベント送信部112は、引き渡された入力イベントをそのままサーバ装置2Cに送信する(ステップS2C)。
In the client device 1C, the input
以降、サーバ装置2Cおよびクライアント装置1Cでは、クライアント装置1C側で発生した入力イベントについて、引き続き処理が行われる。このようにして、サーバ装置2C側でマウスカーソルの移動領域が制限された場合であっても、サーバ装置2Cは、クライアント装置1Cのマウスカーソルの移動軌跡が不自然になることを防止できる。 Thereafter, the server device 2C and the client device 1C continue to process the input event that has occurred on the client device 1C side. In this way, even when the movement area of the mouse cursor is limited on the server apparatus 2C side, the server apparatus 2C can prevent the movement locus of the mouse cursor of the client apparatus 1C from becoming unnatural.
[クライアント装置における入力イベント処理の手順]
次に、クライアント装置1Cにおける入力イベント処理の手順について、図19を参照して説明する。図19は、実施例4に係るクライアント装置における入力イベント処理の手順を示すフローチャートである。なお、図4に示す実施例1に係るクライアント装置における入力イベント処理と同一の処理については同一符号を示す。
[Input event processing procedure in client device]
Next, the procedure of input event processing in the client device 1C will be described with reference to FIG. FIG. 19 is a flowchart illustrating a procedure of input event processing in the client device according to the fourth embodiment. In addition, the same code | symbol is shown about the process same as the input event process in the client apparatus based on Example 1 shown in FIG.
まず、入力イベント取得部111は、未処理の入力イベントが存在するか否かを判定する(ステップS11)。未処理の入力イベントが存在しないと判定した場合(ステップS11;No)、入力イベント取得部111は、未処理の入力イベントが存在すると判定するまで、判定処理を繰り返す。一方、未処理の入力イベントが存在すると判定した場合(ステップS11;Yes)、入力イベント取得部111は、入力イベントを取得する(ステップS12)。
First, the input
続いて、カーソル移動方向限定部504は、マウスカーソルの移動方向を限定しているか否かを判定する(ステップS81)。マウスカーソルの移動方向を限定していると判定した場合(ステップS81;Yes)、カーソル移動方向限定部504は、限定中の移動方向と入力イベントからマウスカーソルの座標を算出する(ステップS82)。一方、マウスカーソルの移動方向を限定していないと判定した場合(ステップS81;No)、カーソル移動方向限定部504は、入力イベントからマウスカーソルの座標を抽出する(ステップS83)。
Subsequently, the cursor movement
そして、カーソル描画部113は、算出または抽出したマウスカーソルの座標に基づいて、自装置のデスクトップ画面へマウスカーソルを再描画する(ステップS13)。
Then, the
そして、入力イベント送信部112は、入力イベント取得部111によって取得された入力イベントをそのままサーバ装置2へ送信する(ステップS14)。そして、入力イベント処理部11は、次のイベントが発生するのを待つべく、ステップS11に移行する。
Then, the input
[クライアント装置におけるカーソル移動方向限定処理の手順]
次に、クライアント装置1Cにおけるカーソル移動方向限定処理の手順について、図20を参照して説明する。図20は、実施例4に係るクライアント装置におけるカーソル移動方向限定処理の手順を示すフローチャートである。
[Procedure for cursor movement direction restriction processing in client device]
Next, the procedure of the cursor movement direction limiting process in the client device 1C will be described with reference to FIG. FIG. 20 is a flowchart illustrating the procedure of the cursor movement direction limiting process in the client device according to the fourth embodiment.
まず、カーソル移動方向受信部503は、カーソル移動方向に関する通知をサーバ装置2Cから受信したか否かを判定する(ステップS91)。カーソル移動方向に関する通知を受信していないと判定した場合(ステップS91;No)、カーソル移動方向受信部503は、当該通知を受信するまで、判定処理を繰り返す。
First, the cursor movement
一方、カーソル移動方向に関する通知を受信したと判定した場合(ステップS91;Yes)、カーソル移動方向受信部503は、マウスカーソルの移動方向に関する通知を受信する(ステップS92)。
On the other hand, when it determines with having received the notification regarding a cursor movement direction (step S91; Yes), the cursor movement
ここで、カーソル移動方向受信部503が、マウスカーソル移動の限定方向に関する通知を受信したか否かを判定する(ステップS93)。マウスカーソル移動の限定方向通知を受信したと判定した場合(ステップS93;Yes)、カーソル移動方向限定部504は、クライアント側でのマウスカーソルの移動方向を限定するように制御する(ステップS94)。そして、カーソル移動方向限定処理部50は、次のカーソル移動方向に関する通知を待つべく、ステップS91に移行する。
Here, it is determined whether the cursor movement
一方、マウスカーソル移動の限定方向に関する通知を受信していないと判定した場合(ステップS93;No)、カーソル移動方向受信部503は、マウスカーソル移動の限定解除通知を受信したか否かを判定する(ステップS95)。マウスカーソル移動の限定解除通知を受信していないと判定した場合(ステップS95;No)、カーソル移動方向限定処理部50は、次のカーソル移動方向に関する通知を待つべく、ステップS91に移行する。
On the other hand, when it is determined that a notification regarding the limited direction of mouse cursor movement has not been received (step S93; No), the cursor movement
一方、マウスカーソル移動の限定解除通知を受信したと判定した場合(ステップS95;Yes)、カーソル移動方向限定部504は、クライアント側でのマウスカーソルの移動方向を限定しないように制御する(ステップS96)。そして、カーソル移動方向限定処理部50は、次のカーソル移動方向に関する通知を待つべく、ステップS91に移行する。
On the other hand, when it is determined that the mouse cursor movement limitation release notification has been received (step S95; Yes), the cursor movement
[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置2Cにおけるカーソル位置補正処理の手順について、図21を参照して説明する。図21は、実施例4に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。なお、図7に示す実施例1に係るサーバ装置におけるカーソル位置補正処理と同一の処理については同一符号を示す。
[Procedure for cursor position correction processing in server device]
Next, the procedure of the cursor position correction process in the server device 2C will be described with reference to FIG. FIG. 21 is a flowchart illustrating the procedure of the cursor position correction process in the server apparatus according to the fourth embodiment. In addition, the same code | symbol is shown about the process same as the cursor position correction process in the server apparatus based on Example 1 shown in FIG.
カーソル位置変更チェック部231は、所定の時間経過したか否かを判定する(ステップS41)。所定の時間経過していないと判定した場合(ステップS41;No)、カーソル位置変更チェック部231は、所定の時間が経過するまで、判定処理を繰り返す。
The cursor position
一方、所定の時間経過したと判定した場合(ステップS41;Yes)、カーソル位置変更チェック部231は、マウスカーソルが移動したかどうかをチェックする(ステップS42)。
On the other hand, when it is determined that a predetermined time has elapsed (step S41; Yes), the cursor position
そして、マウスカーソルが移動していないと判定した場合(ステップS42;No)、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。一方、マウスカーソルが移動したと判定した場合(ステップS42;Yes)、カーソル移動方向判定部501は、マウスカーソルが移動した方向を判定する(ステップS101)。ここで、カーソル移動方向判定部501は、マウスカーソルがX軸方向のみに移動したか否かを判定する(ステップS102)。
If it is determined that the mouse cursor has not moved (step S42; No), the cursor
マウスカーソルがX軸方向のみに移動したと判定した場合(ステップS102;Yes)、カーソル移動方向判定部501は、1回以上マウスカーソル移動の限定方向(X軸方向)を通知済みであるか否かを判定する(ステップS103)。1回以上通知済みであると判定した場合(ステップS103;Yes)、カーソル移動方向判定部501は、通知は不要と判断し、ステップS110に移行する。一方、1回以上通知済みでないと判定した場合(ステップS103;No)、カーソル移動方向通知部502は、X軸方向をカーソル移動の限定方向としてクライアント装置1Cへ通知し(ステップS104)、ステップS110に移行する。
When it is determined that the mouse cursor has moved only in the X-axis direction (step S102; Yes), the cursor movement
一方、マウスカーソルがX軸方向のみに移動していないと判定した場合(ステップS102;No)、カーソル移動方向判定部501は、マウスカーソルがY軸方向のみに移動したか否かを判定する(ステップS105)。
On the other hand, when it is determined that the mouse cursor has not moved only in the X-axis direction (step S102; No), the cursor movement
マウスカーソルがY軸方向のみに移動したと判定した場合(ステップS105;Yes)、カーソル移動方向判定部501は、1回以上マウスカーソル移動の限定方向(Y軸方向)を通知済みであるか否かを判定する(ステップS106)。1回以上通知済みであると判定した場合(ステップS106;Yes)、カーソル移動方向判定部501は、通知は不要と判断し、ステップS110に移行する。一方、1回以上通知済みでないと判定した場合(ステップS106;No)、カーソル移動方向通知部502は、Y軸方向をカーソル移動の限定方向としてクライアント装置1Cへ通知し(ステップS107)、ステップS110に移行する。
When it is determined that the mouse cursor has moved only in the Y-axis direction (step S105; Yes), the cursor movement
一方、マウスカーソルがY軸方向のみに移動していないと判定した場合(ステップS105;No)、カーソル移動方向判定部501は、マウスカーソルの移動方向の限定解除を通知したか否かを判定する(ステップS108)。マウスカーソルの移動方向の限定解除を通知したと判定した場合(ステップS108;Yes)、カーソル移動方向判定部501は、通知は不要と判断し、ステップS110に移行する。一方、マウスカーソルの移動方向の限定解除を通知していないと判定した場合(ステップS108;No)、カーソル移動方向通知部502は、カーソル移動の限定解除をクライアント装置1Cへ通知し(ステップS109)、ステップS110に移行する。
On the other hand, when it is determined that the mouse cursor has not moved only in the Y-axis direction (step S105; No), the cursor movement
カーソル位置履歴チェック部232は、移動後のマウスカーソルの位置に対応する入力イベントが存在するか否かを判定する(ステップS110)。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。このとき、カーソル位置履歴チェック部232は、カーソル移動方向が限定中である場合には、限定されている座標軸方向の座標値のみをチェックすれば良い。
The cursor position
そして、対応する入力イベントが存在すると判定した場合(ステップS110;Yes)、カーソル位置履歴チェック部232は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
If it is determined that the corresponding input event exists (step S110; Yes), the cursor position
一方、対応する入力イベントが存在しないと判定した場合(ステップS110;No)、カーソル位置履歴チェック部232は、カーソルの位置がOS20によって自動的に変更されたと判断する。そして、カーソル位置履歴チェック部232は、カーソル位置補正情報送信部233にカーソル位置補正情報をクライアント装置1Cへ送信させる(ステップS45)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。
On the other hand, when it is determined that there is no corresponding input event (step S110; No), the cursor position
[実施例4の効果]
上記実施例4によれば、シンクライアントシステム9のサーバ装置2Cは、入力イベントに基づいて処理した結果、処理前後でカーソルの位置に変化があったとき、処理前後のカーソルの位置が1つの軸方向のみに変化があったか否かを判定する。そして、サーバ装置2Cは、1つの軸方向のみに変化があったと判定した場合、変化があった軸方向について変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致しているか否かを判定する。かかる構成によれば、サーバ装置2Cは、入力イベント履歴保持部21に保持されているカーソルの位置との比較に変化があった軸方向についてのカーソルの位置を用いることにより比較処理のコストを低減することができる。
[Effect of Example 4]
According to the fourth embodiment, when the server apparatus 2C of the
また、サーバ装置2Cは、1つの軸方向のみに変化があったと判定した場合、変化があった軸方向にカーソルの移動を限定する旨をクライアント装置1Cに通知する。かかる構成によれば、サーバ装置2Cは、仮にカーソルの移動領域が制限されている場合であっても、クライアント装置1Cにおけるカーソルの移動軌跡を自然な動きとなるように制御できる。 Further, when it is determined that there is a change in only one axial direction, the server apparatus 2C notifies the client apparatus 1C that the movement of the cursor is limited to the changed axial direction. According to such a configuration, the server device 2C can control the cursor movement trajectory in the client device 1C to be a natural movement even if the cursor movement region is limited.
[プログラムなど]
なお、実施例1〜4では、入力イベントの処理前後でカーソルの位置がOS20によって自動的に変更された場合について説明した。しかしながら、これに限定されず、OS20に代えてドライバとしても良いし、アプリケーションソフトとしても良く、入力イベントの処理前後でカーソルの位置が自動的に変更されるソフトウェアまたはハードウェアであれば良い。
[Programs]
In the first to fourth embodiments, the case where the cursor position is automatically changed by the
また、サーバ装置2は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した入力イベント処理部22と、カーソル位置補正部23と、画面情報転送部24等の各機能を搭載することによって実現することができる。また、クライアント装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した入力イベント処理部11と、画面描画部12等の各機能を搭載することによって実現することができる。
In addition, the
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、カーソル位置変更チェック部231とカーソル位置履歴チェック部232とを1個の部として統合しても良い。一方、カーソル位置履歴チェック部232を、カーソルの位置が履歴に保持されているか否かを判定するする判定部と、保持されている場合に履歴を削除する削除部等とに分散しても良い。また、入力イベント履歴保持部21等の記憶部をサーバ装置2の外部装置としてネットワーク経由で接続するようにしても良い。
In addition, each component of each illustrated apparatus does not necessarily need to be physically configured as illustrated. That is, the specific mode of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the cursor position
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したサーバ装置2と同様の機能を実現するカーソル位置補正プログラムを実行するコンピュータの一例を説明する。図22は、カーソル位置補正プログラムを実行するコンピュータの一例を示す図である。
The various processes described in the above embodiments can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. Therefore, in the following, an example of a computer that executes a cursor position correction program that realizes the same function as the
図22に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207を有する。そして、各装置201〜207は、バス208に接続される。
As illustrated in FIG. 22, the
ハードディスク装置207は、カーソル位置補正プログラム207a、カーソル位置補正関連情報207bを記憶する。CPU201は、カーソル位置補正プログラム207aを読み出して、RAM206に展開する。カーソル位置補正プログラム207aは、カーソル位置補正プロセス206aとして機能する。
The
例えば、カーソル位置補正プロセス206aは、入力イベント処理部22、カーソル位置補正部23および画面情報転送部24に対応する。カーソル位置補正関連情報207bは、入力イベント履歴保持部21に対応する。
For example, the cursor
なお、カーソル位置補正プログラム207aについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからカーソル位置補正プログラム207aを読み出して実行するようにしても良い。
The cursor
1 クライアント装置
10、20 OS
11 入力イベント処理部
12 画面描画部
111 入力イベント取得部
112 入力イベント送信部
113 カーソル描画部
121 カーソル位置補正情報受信部
122 カーソル位置補正部
123 画面情報受信部
124 画像展開処理部
125 画面情報描画部
2 サーバ装置
21 入力イベント履歴保持部
22 入力イベント処理部
23 カーソル位置補正部
24 画面情報転送部
221 入力イベント受信部
222 入力イベント保存部
223 入力イベント実行部
231 カーソル位置変更チェック部
232 カーソル位置履歴チェック部
233 カーソル位置補正情報送信部
241 画面情報取得部
242 画面更新判定部
243 画像圧縮処理部
244 画面情報送信部
1
DESCRIPTION OF
Claims (8)
前記サーバとネットワーク経由で接続されたクライアントで入力された、ポインタの移動を伴うイベントおよび移動後のポインタの位置を含むイベント情報を当該クライアントから受信し、受信したイベント情報をイベント履歴に記憶し、
前記イベント情報に基づいて処理した結果、処理前後でポインタの位置に変化があったとき、変化があったポインタの位置が前記イベント履歴に記憶されているいずれかのイベント情報のポインタの位置と一致しているか否かを判定し、
前記判定する処理の結果、該変化があったポインタの位置が前記イベント履歴に記憶されているいずれのイベント情報のポインタの位置とも一致していないと判定した場合に、該変化があったポインタの位置を前記クライアントに通知する
各処理を実行するポインタ位置補正方法。 A pointer position correction method executed by a server,
Received from the client the event information including the event accompanied by the movement of the pointer and the position of the pointer after the movement, which is input by the client connected to the server via the network, and stores the received event information in the event history,
As a result of processing based on the event information, when the position of the pointer has changed before and after the processing, the position of the pointer that has changed matches the position of the pointer of any event information stored in the event history. Determine whether or not
As a result of the determination process, when it is determined that the position of the pointer that has changed does not match the position of the pointer of any event information stored in the event history, the pointer of the pointer that has changed A pointer position correction method for notifying the client of the position and executing each process.
処理を前記サーバがさらに実行することを特徴とする請求項1に記載のポインタ位置補正方法。 As a result of the determination process, when it is determined that the position of the pointer that has changed corresponds to the position of the pointer of any event information stored in the event history, the position of the matched pointer is included. The pointer position correcting method according to claim 1, wherein the server further executes a process of deleting event information and event information received before the event information.
処理を前記サーバが実行することを特徴とする請求項2に記載のポインタ位置補正方法。 As a result of the determination process, when it is determined that the position of the pointer that has changed matches the position of the pointer of any event information stored in the event history, the matched event information and The server executes a process of setting a processing interval based on the event to be larger than a current processing interval when the number of event information received before the event information is larger than a threshold value. The pointer position correction method described in 1.
処理を前記サーバがさらに実行する
ことを特徴とする請求項1から請求項3のいずれか1つに記載のポインタ位置補正方法。 The server further executes a process of notifying the client of the changed pointer shape when the pointer shape changes before and after the processing as a result of processing based on the event. The pointer position correction method according to any one of claims 1 to 3.
処理を前記サーバが実行することを特徴とする請求項1から請求項4のいずれか1つに記載のポインタ位置補正方法。 As a result of processing based on the event, when the position of the pointer has changed before and after processing, the position of the pointer before and after processing changes only in one of the coordinate axes representing the position. If it is determined whether or not there is a change in only one axial direction, the position of the pointer that has changed in the changed axial direction is stored in the event history. The pointer position correcting method according to any one of claims 1 to 4, wherein the server executes a process of determining whether or not the position of the pointer matches the position of the pointer.
処理を前記サーバがさらに実行する
ことを特徴とする請求項5に記載のポインタ位置補正方法。 In the determination process, when it is determined that there is a change in only one axial direction, the server further executes a process of notifying the client that the movement of the pointer is limited to the changed axial direction. The pointer position correcting method according to claim 5, wherein
前記サーバとネットワーク経由で接続されたクライアントで入力された、ポインタの移動を伴うイベントおよび移動後のポインタの位置を含むイベント情報を当該クライアントから受信し、受信したイベント情報をイベント履歴に記憶し、
前記イベント情報に基づいて処理した結果、処理前後でポインタの位置に変化があったとき、変化があったポインタの位置が前記イベント履歴に記憶されているいずれかのイベント情報のポインタの位置と一致しているか否かを判定し、
前記判定する処理の結果、該変化があったポインタの位置が前記イベント履歴に記憶されているいずれのイベント情報のポインタの位置とも一致していないと判定した場合に、該変化があったポインタの位置を前記クライアントに通知する
各処理を実行させることを特徴とするポインタ位置補正プログラム。 On the server,
Received from the client the event information including the event accompanied by the movement of the pointer and the position of the pointer after the movement, which is input by the client connected to the server via the network, and stores the received event information in the event history,
As a result of processing based on the event information, when the position of the pointer has changed before and after the processing, the position of the pointer that has changed matches the position of the pointer of any event information stored in the event history. Determine whether or not
As a result of the determination process, when it is determined that the position of the pointer that has changed does not match the position of the pointer of any event information stored in the event history, the pointer of the pointer that has changed A pointer position correction program for executing each process for notifying the client of a position.
自装置とネットワーク経由で接続されたクライアントで入力された前記イベントのイベント情報を当該クライアントから受信し、受信したイベント情報を前記記憶部に保存する保存部と、
前記イベント情報に基づいて処理した結果、処理前後でポインタの位置に変化があったとき、変化があったポインタの位置が前記記憶部に記憶されているいずれかのイベント情報のポインタの位置と一致しているか否かを判定部と、
前記判定部による判定の結果、該変化があったポインタの位置が前記記憶部に記憶されているいずれのイベント情報のポインタの位置とも一致していないと判定した場合に、該変化があったポインタの位置を前記クライアントに通知する通知部と
を有することを特徴とするサーバ装置。 A storage unit for storing event information including an event involving movement of the pointer and a position of the pointer after the movement;
A storage unit that receives event information of the event input from a client connected to the own device via a network from the client, and stores the received event information in the storage unit;
As a result of processing based on the event information, when the position of the pointer has changed before and after the processing, the position of the pointer that has changed matches the position of the pointer of any event information stored in the storage unit. A determination unit for determining whether or not
As a result of determination by the determination unit, when it is determined that the position of the pointer that has changed does not match the position of the pointer of any event information stored in the storage unit, the pointer that has changed And a notification unit for notifying the client of the location of the server.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011189651A JP5737082B2 (en) | 2011-08-31 | 2011-08-31 | Pointer position correction method, pointer position correction program, and server apparatus |
US13/530,680 US20130050275A1 (en) | 2011-08-31 | 2012-06-22 | Pointer position correction method, storage medium storing pointer position correction program and server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011189651A JP5737082B2 (en) | 2011-08-31 | 2011-08-31 | Pointer position correction method, pointer position correction program, and server apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013050921A JP2013050921A (en) | 2013-03-14 |
JP5737082B2 true JP5737082B2 (en) | 2015-06-17 |
Family
ID=47743036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011189651A Active JP5737082B2 (en) | 2011-08-31 | 2011-08-31 | Pointer position correction method, pointer position correction program, and server apparatus |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130050275A1 (en) |
JP (1) | JP5737082B2 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213515B2 (en) * | 2012-09-24 | 2015-12-15 | At&T Intellectual Property I, L.P. | On-demand multi-screen computing |
RU2530210C2 (en) * | 2012-12-25 | 2014-10-10 | Закрытое акционерное общество "Лаборатория Касперского" | System and method for detecting malware preventing standard user interaction with operating system interface |
CN103616989B (en) * | 2013-12-12 | 2017-05-24 | 北京星网锐捷网络技术有限公司 | Method and device for automatically adjusting position of cursor and mobile terminal |
JP6280435B2 (en) * | 2014-04-28 | 2018-02-14 | 富士通コンポーネント株式会社 | Program, relay device, and information processing device |
US11750674B2 (en) * | 2015-05-05 | 2023-09-05 | Penguin Computing, Inc. | Ultra-low latency remote application access |
JP6488903B2 (en) * | 2015-06-16 | 2019-03-27 | 富士通株式会社 | Screen transfer control system, screen transfer control program, and screen transfer control method |
JP6515787B2 (en) * | 2015-11-02 | 2019-05-22 | 富士通株式会社 | Virtual desktop program, virtual desktop processing method, and virtual desktop system |
JP2017169001A (en) * | 2016-03-15 | 2017-09-21 | 富士通株式会社 | Transmission device, transmission method and transmission program for display screen data |
JP2019046394A (en) * | 2017-09-06 | 2019-03-22 | 株式会社アイ・エル・シー | GUI screen remote display device, GUI screen remote display system, GUI screen remote display method, and GUI screen remote display program |
US11114060B2 (en) * | 2019-08-08 | 2021-09-07 | Adlink Technology Inc. | Cursor image detection comparison and feedback status determination method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995102A (en) * | 1997-06-25 | 1999-11-30 | Comet Systems, Inc. | Server system and method for modifying a cursor image |
US20010034770A1 (en) * | 2000-04-21 | 2001-10-25 | O'brien Terry | Method and device for implementing networked terminals in graphical operating environment |
JP5077272B2 (en) * | 2009-03-12 | 2012-11-21 | カシオ計算機株式会社 | Client device, server-based computing system, and client control program |
US9106696B2 (en) * | 2009-04-15 | 2015-08-11 | Wyse Technology L.L.C. | Method and apparatus for portability of a remote session |
JP2011028530A (en) * | 2009-07-27 | 2011-02-10 | Hitachi Consumer Electronics Co Ltd | Server device and coordinate correction program |
JP5241030B2 (en) * | 2009-09-01 | 2013-07-17 | 富士フイルム株式会社 | Image transmission apparatus, method and program, image output apparatus, and image transmission system |
US8972563B2 (en) * | 2010-11-30 | 2015-03-03 | Red Hat, Inc. | Updating changes to caches |
-
2011
- 2011-08-31 JP JP2011189651A patent/JP5737082B2/en active Active
-
2012
- 2012-06-22 US US13/530,680 patent/US20130050275A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2013050921A (en) | 2013-03-14 |
US20130050275A1 (en) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5737082B2 (en) | Pointer position correction method, pointer position correction program, and server apparatus | |
EP2449550B1 (en) | Method and apparatus for providing mobile device interoperability | |
EP2490406A1 (en) | Image transmission from a server to a thin client | |
US20120005630A1 (en) | Highly Responsive Screen Output Device, Screen Output System, and Screen Output Method | |
JP4316295B2 (en) | Thin client system, thin client terminal, relay device, server device, and thin client terminal screen display method | |
EP2403251A1 (en) | Transmission of image updates from a server to a thin client | |
JP4444239B2 (en) | Server device, control command processing method thereof, control command processing program, and terminal device | |
JP4775069B2 (en) | Server apparatus and server control program in computer system | |
JP2016009023A (en) | Information processing device, display control device, control methods therefor, system, and program | |
JP5696563B2 (en) | Information processing apparatus, screen update method, screen update program, and information processing system | |
JP5430491B2 (en) | Information processing apparatus, display apparatus, display system, information processing apparatus control method, and display apparatus control method | |
JP6834118B2 (en) | Terminal device, screen update program, screen update method and information processing system | |
JP4854797B2 (en) | Programs and electronics | |
JP5223802B2 (en) | Server-based computing system, server device, client device, and program | |
JP2010157083A (en) | Server device, client device, server base computing system and program | |
JP4900955B2 (en) | Remote operation system, control method and program | |
JP3506421B2 (en) | Mobile communication document processing apparatus and screen display method performed by the apparatus | |
US10511701B2 (en) | Information processing apparatus, and control method and control program thereof | |
JP5347271B2 (en) | Terminal device and program | |
JP6135266B2 (en) | Screen data transfer apparatus, screen display system, processing load reduction method, and processing load reduction program | |
JP6146440B2 (en) | Display terminal device and program | |
JP5895978B2 (en) | Terminal device and program | |
JP5177034B2 (en) | Client device, server-based computing system, and client control program | |
JP2013123231A (en) | Display terminal device and program | |
JP6330179B2 (en) | Multi-window display device, relay device, control method for multi-window display device, control method for relay device, and control method for information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140508 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150324 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5737082 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |