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 PDF

Info

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
Application number
JP2011189651A
Other languages
Japanese (ja)
Other versions
JP2013050921A (en
Inventor
亮 宮本
亮 宮本
松井 一樹
一樹 松井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011189651A priority Critical patent/JP5737082B2/en
Priority to US13/530,680 priority patent/US20130050275A1/en
Publication of JP2013050921A publication Critical patent/JP2013050921A/en
Application granted granted Critical
Publication of JP5737082B2 publication Critical patent/JP5737082B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/08Cursor circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised 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.

特開2010−211724号公報JP 2010-2111724 A

しかしながら、画面転送方式において、マウスカーソルの描画方式をローカルエコー方式とすると、サーバでマウスカーソルの位置や形状が自動的に変わった場合に、クライアント側は対応できないという問題がある。すなわち、クライアント側は、自身で入力イベントに応じた位置にマウスカーソルを描画するとともに、入力イベントをサーバへ送信する。したがって、クライアント側は、サーバのマウスカーソルの位置が例えばアプリケーションによって自動的に移動したような場合、移動したサーバのマウスカーソルの位置を把握できないので、移動した位置に対応できない。サーバのマウスカーソルの形状が自動的に変わった場合であってもクライアント側が対応できないのは同様である。   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.

図1は、実施例1に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。FIG. 1 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the first embodiment. 図2は、入力イベント履歴保持部のデータ構造の一例を示す図である。FIG. 2 is a diagram illustrating an example of a data structure of the input event history holding unit. 図3は、実施例1に係るカーソル位置補正の具体例を説明する図である。FIG. 3 is a diagram illustrating a specific example of cursor position correction according to the first embodiment. 図4は、実施例1に係るクライアント装置における入力イベント処理の手順を示すフローチャートである。FIG. 4 is a flowchart illustrating the procedure of the input event process in the client device according to the first embodiment. 図5は、実施例1に係るクライアント装置における画面描画処理の手順を示すフローチャートである。FIG. 5 is a flowchart illustrating the procedure of the screen drawing process in the client device according to the first embodiment. 図6は、実施例1に係るサーバ装置における入力イベント処理の手順を示すフローチャートである。FIG. 6 is a flowchart illustrating the procedure of the input event process in the server apparatus according to the first embodiment. 図7は、実施例1に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。FIG. 7 is a flowchart illustrating the procedure of the cursor position correction process in the server apparatus according to the first embodiment. 図8は、実施例1に係るサーバ装置における画面情報転送処理の手順を示すフローチャートである。FIG. 8 is a flowchart illustrating the procedure of the screen information transfer process in the server apparatus according to the first embodiment. 図9は、実施例2に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。FIG. 9 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the second embodiment. 図10は、実施例2に係るカーソル位置補正の具体例を説明する図である。FIG. 10 is a diagram illustrating a specific example of cursor position correction according to the second embodiment. 図11は、実施例2に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。FIG. 11 is a flowchart illustrating the procedure of the cursor position correction process in the server apparatus according to the second embodiment. 図12は、実施例3に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。FIG. 12 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the third embodiment. 図13は、実施例3に係るカーソル位置補正の具体例を説明する図である。FIG. 13 is a diagram illustrating a specific example of cursor position correction according to the third embodiment. 図14は、実施例3に係るクライアント装置における画面描画処理の手順を示すフローチャートである。FIG. 14 is a flowchart illustrating the procedure of the screen drawing process in the client device according to the third embodiment. 図15は、実施例3に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。FIG. 15 is a flowchart illustrating the procedure of the cursor position correction process in the server device according to the third embodiment. 図16は、ローカルエコー方式における問題を説明する図である。FIG. 16 is a diagram for explaining a problem in the local echo method. 図17は、実施例4に係るシンクライアントシステムに含まれる各装置の構成を示す機能ブロック図である。FIG. 17 is a functional block diagram illustrating the configuration of each device included in the thin client system according to the fourth embodiment. 図18は、実施例4に係るカーソル位置補正の具体例を説明する図である。FIG. 18 is a diagram illustrating a specific example of cursor position correction according to the fourth embodiment. 図19は、実施例4に係るクライアント装置における入力イベント処理の手順を示すフローチャートである。FIG. 19 is a flowchart illustrating a procedure of input event processing in the client device according to the fourth embodiment. 図20は、実施例4に係るクライアント装置におけるカーソル移動方向限定処理の手順を示すフローチャートである。FIG. 20 is a flowchart illustrating the procedure of the cursor movement direction limiting process in the client device according to the fourth embodiment. 図21は、実施例4に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。FIG. 21 is a flowchart illustrating the procedure of the cursor position correction process in the server apparatus according to the fourth embodiment. 図22は、カーソル位置補正プログラムを実行するコンピュータの一例を示す図である。FIG. 22 is a diagram illustrating an example of a computer that executes a cursor position correction program. 図23は、マウスカーソルの描画方式であるサーバ描画方式を説明する図である。FIG. 23 is a diagram for explaining a server drawing method that is a drawing method of a mouse cursor. 図24は、マウスカーソルの描画方式であるローカルエコー方式を説明する図である。FIG. 24 is a diagram for explaining a local echo method which is a drawing method of a 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 thin client system 9 shown in FIG. 1 allows the server device 2 to remotely control the desktop screen displayed by the client device 1. In other words, the thin client system 9 behaves as if the client device 1 has executed the processing while displaying the processing result or the like executed by the server device 2 on the client device 1 in practice.

図1に示すように、シンクライアントシステム9は、クライアント装置1と、サーバ装置2とを有する。なお、図1の例では、1つのサーバ装置2に対し、1つのクライアント装置1を接続する場合を図示したが、任意の数のクライアント装置1を接続できる。   As shown in FIG. 1, the thin client system 9 includes a client device 1 and a server device 2. In the example of FIG. 1, the case where one client device 1 is connected to one server device 2 is illustrated, but any number of client devices 1 can be connected.

クライアント装置1およびサーバ装置2は、ネットワーク3を介して相互に通信可能に接続される。かかるネットワークには、有線または無線を問わず、インターネット、LAN(Local Area Network)やVPN(Virtual Private Network)等の任意の種類の通信網を採用できる。なお、サーバ装置2およびクライアント装置1間の通信プロトコルには、一例として、VNCにおける画面転送方式を採用する。すなわち、サーバ装置2のデスクトップ画面の内容をビットマップやJPEG等の画像でクライアントへ転送し、転送した画像をクライアント装置1のデスクトップ画面へ表示させる。   The client device 1 and the server device 2 are connected via a network 3 so that they can communicate with each other. For such a network, any type of communication network such as the Internet, a LAN (Local Area Network), a VPN (Virtual Private Network), or the like can be adopted regardless of wired or wireless. As an example, a screen transfer method in VNC is adopted as a communication protocol between server device 2 and client device 1. That is, the contents of the desktop screen of the server device 2 are transferred to the client as an image such as a bitmap or JPEG, and the transferred image is displayed on the desktop screen of the client device 1.

サーバ装置2は、クライアント装置1に表示させる画面をリモートで制御するサービスを提供するコンピュータである。クライアント装置1は、サーバ装置2によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント装置1の一例としては、パーソナルコンピュータ等固定端末のほか、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistant)等の移動体端末を適用することもできる。   The server device 2 is a computer that provides a service for remotely controlling a screen displayed on the client device 1. The client device 1 is a computer that receives a remote screen control service provided by the server device 2. As an example of the client device 1, a mobile terminal such as a mobile phone, a PHS (Personal Handyphone System), and a PDA (Personal Digital Assistant) can be applied in addition to a fixed terminal such as a personal computer.

[クライアント装置の構成]
クライアント装置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 client device 1 includes an OS (Operating System) 10, an input event processing unit 11, and a screen drawing unit 12. The OS 10 provides input / output functions including input from the mouse and keyboard and output to the screen, and manages the entire client device 1. An example of the OS 10 is Windows (registered trademark), but another OS such as UNIX (registered trademark) may be used. The input event processing unit 11 processes an input event generated by operating a mouse or a keyboard. Further, the input event processing unit 11 includes an input event acquisition unit 111, an input event transmission unit 112, and a cursor drawing unit 113. Further, the screen drawing unit 12 corrects the cursor position according to the information (cursor position correction information) received from the server device 2 and corrects the cursor position, or draws the screen according to the screen information received from the server device 2. To do. Furthermore, the screen drawing unit 12 includes a cursor position correction information receiving unit 121, a cursor position correcting unit 122, a screen information receiving unit 123, an image development processing unit 124, and a screen information drawing unit 125.

入力イベント取得部111は、クライアント装置1に接続されたキーボードやマウス等の入出力デバイスから入力イベントを取得する。入力イベントは、例えばマウスの移動操作によりカーソルを移動させるイベントを指す。入力イベントの一例として、「MOUSE_MOVE マウスのX座標、マウスのY座標、ホイールの移動量」がある。「MOUSE_MOVE」は、マウスの操作内容であり、ここではマウスの移動操作を示す。マウスのX座標およびマウスのY座標は、それぞれマウスの移動先のX座標の位置およびY座標の位置を示す。ホイールの移動量は、移動にホイールを用いた場合の移動量を示す。具体的な一例として、マウスのX座標が800、マウスのY座標が600、ホイールの移動量が0である「MOUSE_MOVE 800、600、0」がある。   The input event acquisition unit 111 acquires an input event from an input / output device such as a keyboard or a mouse connected to the client device 1. The input event refers to an event for moving the cursor by a mouse movement operation, for example. As an example of the input event, there is “MOUSE_MOVE mouse X coordinate, mouse Y coordinate, wheel movement amount”. “MOUSE_MOVE” is a mouse operation content, and here indicates a mouse movement operation. The X coordinate of the mouse and the Y coordinate of the mouse respectively indicate the X coordinate position and the Y coordinate position of the movement destination of the mouse. The amount of movement of the wheel indicates the amount of movement when the wheel is used for movement. As a specific example, there is “MOUSE_MOVE 800, 600, 0” in which the X coordinate of the mouse is 800, the Y coordinate of the mouse is 600, and the movement amount of the wheel is 0.

また、入力イベント取得部111は、取得した入力イベントについて、後述する入力イベント送信部112によりサーバ装置2へ送信させるとともに、後述するカーソル描画部113によりイベント処理後の位置にマウスカーソルを描画させる。入力イベント送信部112は、入力イベント取得部111によって取得された入力イベントをサーバ装置2へ送信する。   The input event acquisition unit 111 causes the input event transmission unit 112 described later to transmit the acquired input event to the server device 2 and causes the cursor drawing unit 113 described later to draw a mouse cursor at a position after the event processing. The input event transmission unit 112 transmits the input event acquired by the input event acquisition unit 111 to the server device 2.

カーソル描画部113は、クライアント装置1のデスクトップ画面へマウスカーソルを再描画する。例えば、カーソル描画部113は、入力イベント取得部111によって取得された入力イベントに含まれるマウスカーソルの移動先の位置を抽出する。そして、カーソル描画部113は、自装置のデスクトップ画面の、抽出したマウスカーソルの位置に当該マウスカーソルを描画する。すなわち、入力イベント処理部11は、ローカルエコー方式のように、発生した入力イベントをサーバ装置2へ送信するとともに、発生した入力イベントに対応するマウスカーソルを自装置で再描画する。   The cursor drawing unit 113 redraws the mouse cursor on the desktop screen of the client device 1. For example, the cursor drawing unit 113 extracts the movement destination position of the mouse cursor included in the input event acquired by the input event acquisition unit 111. Then, the cursor drawing unit 113 draws the mouse cursor at the position of the extracted mouse cursor on the desktop screen of the own device. That is, the input event processing unit 11 transmits the generated input event to the server device 2 as in the local echo method, and redraws the mouse cursor corresponding to the generated input event on its own device.

また、カーソル描画部113は、後述するカーソル位置補正部122からマウスカーソルの補正位置を取得し、自装置のデスクトップ画面の、取得したマウスカーソルの補正位置に当該マウスカーソルを描画する。   Further, the cursor drawing unit 113 acquires the correction position of the mouse cursor from a cursor position correction unit 122 described later, and draws the mouse cursor at the correction position of the acquired mouse cursor on the desktop screen of the own device.

カーソル位置補正情報受信部121は、カーソル位置補正情報をサーバ装置2から受信する。ここで、カーソル位置補正情報とは、サーバ装置2によって補正されるカーソルの位置情報である。つまり、サーバ装置2では、クライアント装置1から送信された入力イベントを処理した結果、処理後のマウスカーソルの位置がOSによって自動的に変更される場合がある。例えば、OSの操作によっては、自動的に特定のボタンに移動するように設定されているような場合がある。かかる場合に、カーソル位置補正情報受信部121は、カーソル位置補正情報をサーバ装置2から受信し、受信したカーソル位置補正情報を用いてカーソル位置を補正させてサーバ装置2のカーソル位置と対応させる。   The cursor position correction information receiving unit 121 receives cursor position correction information from the server device 2. Here, the cursor position correction information is cursor position information corrected by the server device 2. That is, in the server apparatus 2, as a result of processing the input event transmitted from the client apparatus 1, the position of the processed mouse cursor may be automatically changed by the OS. For example, depending on the operation of the OS, it may be set to automatically move to a specific button. In such a case, the cursor position correction information receiving unit 121 receives the cursor position correction information from the server apparatus 2 and corrects the cursor position using the received cursor position correction information to correspond to the cursor position of the server apparatus 2.

カーソル位置補正部122は、カーソル位置補正情報受信部121によって受信されたカーソル位置補正情報からマウスカーソルの補正位置を抽出する。また、カーソル位置補正部122は、カーソル描画部113によって、抽出したマウスカーソルの補正位置に再描画させる。   The cursor position correction unit 122 extracts the correction position of the mouse cursor from the cursor position correction information received by the cursor position correction information reception unit 121. In addition, the cursor position correction unit 122 causes the cursor drawing unit 113 to redraw at the correction position of the extracted mouse cursor.

画面情報受信部123は、サーバ装置2から圧縮後の画面表示データを受信する。画像展開処理部124は、画面情報受信部123によって受信された圧縮後の画面表示データを展開する。画面情報描画部125は、画像展開処理部124によって展開された画面表示データを用いて、画面内容を再描画する。なお、実施例では、マウスカーソル以外の画像処理は、画面転送方式に従うため、簡単に記載するものとする。   The screen information receiving unit 123 receives the compressed screen display data from the server device 2. The image expansion processing unit 124 expands the compressed screen display data received by the screen information receiving unit 123. The screen information drawing unit 125 redraws the screen contents using the screen display data developed by the image development processing unit 124. In the embodiment, the image processing other than the mouse cursor follows the screen transfer method, and is simply described.

[サーバ装置の構成]
サーバ装置2は、OS20と、入力イベント履歴保持部21と、入力イベント処理部22と、カーソル位置補正部23と、画面情報転送部24とを有する。OS20は、入力イベント等のイベントの処理機能等を提供し、サーバ装置2の全体を管理する。かかるOS20の一例としては、Windows(登録商標)であるが、UNIX(登録商標)等の別のOSであっても良い。入力イベント履歴保持部21は、クライアント装置1から受信した入力イベントのイベント情報をイベント履歴としてキューに保持する。
[Configuration of server device]
The server device 2 includes an OS 20, an input event history holding unit 21, an input event processing unit 22, a cursor position correction unit 23, and a screen information transfer unit 24. The OS 20 provides an event processing function such as an input event and manages the entire server device 2. An example of the OS 20 is Windows (registered trademark), but another OS such as UNIX (registered trademark) may be used. The input event history holding unit 21 holds event information of an input event received from the client device 1 in the queue as an event history.

ここで、入力イベント履歴保持部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 history holding unit 21 will be described with reference to FIG. FIG. 2 is a diagram illustrating an example of a data structure of the input event history holding unit. As illustrated in FIG. 2, the input event history holding unit 21 associates an X coordinate 21 a and a Y coordinate 21 b for each input event, and holds the input event history. The X coordinate 21a is the X coordinate position of the movement destination included in the input event. The Y coordinate 21b is the position of the Y coordinate of the movement destination included in the input event. The history of input events is held in the order in which the input events are transmitted from the client device 1 to the server device 2. As an example, as the history of the oldest input event in the first row, the X coordinate is “797” and the Y coordinate is “603”. As the newest input event history in the fourth row, the X coordinate is “800” and the Y coordinate is “600”.

図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 event processing unit 22 receives an input event from the client device 1 and processes the received input event. Further, the input event processing unit 22 includes an input event receiving unit 221, an input event storage unit 222, and an input event execution unit 223. The cursor position correction unit 23 corrects the cursor position of the client device 1 using the input event history holding unit 21. Furthermore, the cursor position correction unit 23 includes a cursor position change check unit 231, a cursor position history check unit 232, and a cursor position correction information transmission unit 233. The screen information transfer unit 24 transfers the screen information to the client device 1. Furthermore, the screen information transfer unit 24 includes a screen information acquisition unit 241, a screen update determination unit 242, an image compression processing unit 243, and a screen information transmission unit 244.

入力イベント受信部221は、クライアント装置1から送信された入力イベントを受信する。入力イベント保存部222は、入力イベント受信部221によって受信された入力イベントを入力イベントの履歴として入力イベント履歴保持部21に保存する。   The input event receiving unit 221 receives an input event transmitted from the client device 1. The input event storage unit 222 stores the input event received by the input event reception unit 221 in the input event history storage unit 21 as an input event history.

入力イベント実行部223は、入力イベント受信部221によって受信された入力イベントを実行する。例えば、入力イベント実行部223は、入力イベント受信部221によって受信された入力イベントをOS20へ受け渡して処理させる。   The input event execution unit 223 executes the input event received by the input event reception unit 221. For example, the input event execution unit 223 passes the input event received by the input event reception unit 221 to the OS 20 for processing.

カーソル位置変更チェック部231は、入力イベント実行部223によって入力イベントが実行された結果、実行前後でカーソルの位置に変化があったか否かを判定する。例えば、カーソル位置変更チェック部231は、OS20に入力イベントを処理させた結果、OS20から処理に対応したマウスカーソルの位置を取得する。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの位置が入力イベントを処理させる前のマウスカーソルの位置と一致しているか否かを判定する。なお、カーソル位置変更チェック部231は、1フレームの画面表示データの更新の都度、例えば後述する画面更新判定部242を実施後にチェックするようにする。   The cursor position change check unit 231 determines whether or not the cursor position has changed before and after execution as a result of the input event being executed by the input event execution unit 223. For example, as a result of causing the OS 20 to process the input event, the cursor position change check unit 231 acquires the position of the mouse cursor corresponding to the processing from the OS 20. Then, the cursor position change checking unit 231 determines whether or not the acquired position of the mouse cursor matches the position of the mouse cursor before the input event is processed. The cursor position change check unit 231 checks, for example, a screen update determination unit 242 (described later) after each frame of screen display data is updated.

カーソル位置履歴チェック部232は、実行前後でカーソルの位置に変化があったとカーソル位置変更チェック部231によって判定された場合、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。   If the cursor position change check unit 231 determines that the cursor position change has occurred before and after execution by the cursor position change check unit 231, whether the cursor position change has been held in the input event history holding unit 21. Check if. For example, the cursor position history check unit 232 determines whether or not the position of the mouse cursor that has changed matches any of the coordinate positions held as the input event history in the input event history holding unit 21. .

カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、保持されていると判定した入力イベントの履歴および当該履歴以前の履歴を削除する。すなわち、カーソル位置履歴チェック部232は、OS20によって処理された結果のマウスカーソルの位置がOS20によって自動的に変更されていないので、処理された入力イベントの履歴以前の履歴を削除する。一方、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていないと判定した場合、変化があったマウスカーソルの位置をカーソル位置補正情報送信部233に通知する。すなわち、カーソル位置履歴チェック部232は、OS20によって処理された結果であるマウスカーソルの位置がOS20によって自動的に変更されたと判断し、変更されたマウスカーソルの位置をカーソル位置補正情報送信部233に通知する。   When the cursor position history check unit 232 determines that the changed mouse cursor position is held in the input event history holding unit 21, the history of the input event determined to be held and the history before the history Is deleted. That is, the cursor position history check unit 232 deletes the history before the history of the processed input event because the position of the mouse cursor as a result of processing by the OS 20 has not been automatically changed by the OS 20. On the other hand, when the cursor position history check unit 232 determines that the changed mouse cursor position is not held in the input event history holding unit 21, the cursor position history check unit 232 indicates the changed mouse cursor position as the cursor position correction information transmission unit. 233 is notified. That is, the cursor position history check unit 232 determines that the position of the mouse cursor, which is the result processed by the OS 20, has been automatically changed by the OS 20, and sends the changed mouse cursor position to the cursor position correction information transmission unit 233. Notice.

カーソル位置補正情報送信部233は、カーソル位置履歴チェック部232によって通知されたカーソルの位置を含むカーソル位置補正情報をクライアント装置1に送信する。これによって、OS20によって自動的に変更されたマウスカーソルの位置をクライアント装置1に補正させることができる。   The cursor position correction information transmission unit 233 transmits the cursor position correction information including the cursor position notified by the cursor position history check unit 232 to the client device 1. Thereby, the position of the mouse cursor automatically changed by the OS 20 can be corrected by the client device 1.

画面情報取得部241は、OS20を介して画面表示データを取得する。画面更新判定部242は、画面情報取得部241によって、前回取得した画面表示データと今回取得した画面表示データとを比較し、画面表示データに更新があったか否かを判定する。画像圧縮処理部243は、画面更新判定部242によって画面表示データに更新があったと判定された場合、更新があった領域の画面表示データを圧縮する。画面情報送信部244は、画像圧縮処理部243によって圧縮された圧縮後の画面表示データをクライアント装置1に送信する。   The screen information acquisition unit 241 acquires screen display data via the OS 20. The screen update determination unit 242 uses the screen information acquisition unit 241 to compare the screen display data acquired last time with the screen display data acquired this time, and determines whether or not the screen display data has been updated. When the screen update determination unit 242 determines that the screen display data has been updated, the image compression processing unit 243 compresses the screen display data in the updated area. The screen information transmission unit 244 transmits the compressed screen display data compressed by the image compression processing unit 243 to the client device 1.

[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図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 client device 1, the input event acquisition unit 111 acquires an input event from the mouse connected to the client device 1 (step S1). Here, it is assumed that the input event is an event in which the movement destination of the mouse becomes (x2, y2) by the movement operation of the mouse.

入力イベント取得部111は、取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された入力イベントをサーバ装置2に送信し、カーソル描画部113は、引き渡された入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP2にカーソルを描画する。   The input event acquisition unit 111 passes the acquired input event to the input event transmission unit 112 and the cursor drawing unit 113. Then, the input event transmission unit 112 transmits the delivered input event to the server device 2, and the cursor drawing unit 113 draws the delivered input event on the desktop screen via the OS 10 (step S2). Here, the cursor drawing unit 113 draws a cursor on P2 of the desktop screen.

サーバ装置2では、入力イベント受信部221が、クライアント装置1から送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P2をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。   In the server device 2, the input event receiving unit 221 receives the input event transmitted from the client device 1. Then, the input event storage unit 222 holds the input event received by the input event reception unit 221 as an event history. Here, the input event storage unit 222 holds the coordinate P2 of the movement destination included in the input event as an event history. In addition, the input event execution unit 223 causes the OS 20 to process the input event received by the input event reception unit 221 (step S3).

そして、カーソル位置変更チェック部231は、OS20に処理させた結果であるマウスカーソルの座標を取得する(ステップS4)。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの座標P2が処理前のマウスカーソルの座標と一致していない、すなわちマウスカーソルが移動したと判定する。そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P2が入力イベント履歴として保持されているか否かを判定する(ステップS5)。ここでは、処理後のマウスカーソルの座標P2が入力イベント履歴として保持されているので、座標P2以前の履歴を削除する(ステップS6)。このように例えばマウスの移動先が座標P2となる入力イベントの場合には、処理後のマウスカーソルの座標P2がOS20によって自動的に変更されていないので、クライアント装置1に対して座標の補正をしないで、処理を終了することとなる。この結果、クライアント装置1およびサーバ装置2のそれぞれのマウスカーソルの座標は、P2に描画されている。   Then, the cursor position change check unit 231 acquires the coordinates of the mouse cursor that is the result of processing performed by the OS 20 (step S4). Then, the cursor position change check unit 231 determines that the acquired mouse cursor coordinates P2 do not match the coordinates of the mouse cursor before processing, that is, the mouse cursor has moved. Then, the cursor position history check unit 232 determines whether or not the coordinate P2 of the processed mouse cursor is held as an input event history (step S5). Here, since the coordinate P2 of the mouse cursor after processing is held as the input event history, the history before the coordinate P2 is deleted (step S6). As described above, for example, in the case of an input event in which the movement destination of the mouse is the coordinate P2, the coordinate P2 of the mouse cursor after the processing is not automatically changed by the OS 20, so the coordinate correction is performed on the client device 1. However, the process is terminated. As a result, the coordinates of the mouse cursors of the client device 1 and the server device 2 are drawn on P2.

次に、マウスの移動先が座標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 client device 1, the input event acquisition unit 111 passes the input event acquired from the mouse to the input event transmission unit 112 and the cursor drawing unit 113. Then, the input event transmission unit 112 transmits the delivered input event to the server device 2, and the cursor drawing unit 113 draws the delivered input event on the desktop screen via the OS 10 (step S2). Here, the cursor drawing unit 113 draws the cursor on P3 of the desktop screen.

サーバ装置2では、入力イベント受信部221が、クライアント装置1から送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P3をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。   In the server device 2, the input event receiving unit 221 receives the input event transmitted from the client device 1. Then, the input event storage unit 222 holds the input event received by the input event reception unit 221 as an event history. Here, the input event storage unit 222 holds the coordinate P3 of the movement destination included in the input event as an event history. In addition, the input event execution unit 223 causes the OS 20 to process the input event received by the input event reception unit 221 (step S3).

そして、カーソル位置変更チェック部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 change check unit 231 acquires the coordinates of the mouse cursor after being processed by the OS 20 (step S4). Here, it is assumed that the position of the mouse cursor is automatically changed from P3 to P4 (x4, y4) by the OS 20. Then, the cursor position change check unit 231 determines that the acquired mouse cursor coordinate P4 does not match the mouse cursor coordinate P2 before processing. Then, the cursor position history check unit 232 determines whether or not the coordinate P4 of the processed mouse cursor is held as an input event history (step S5). Here, since the coordinate P4 of the mouse cursor after the processing is automatically changed from the movement destination coordinate P3 included in the input event by the OS 20, the coordinate P4 is not held as the input event history. Thus, the cursor position history check unit 232 notifies the cursor position correction information transmission unit 233 of the changed mouse cursor coordinates P4 (step S7).

クライアント装置1では、カーソル位置補正情報受信部121が、変更されたマウスカーソルの座標P4を受信する。そして、カーソル位置補正部122は、カーソル描画部113によって、変更されたマウスカーソルの座標P4にマウスカーソルを再描画させる。このように、サーバ装置2がクライアント装置1から送信された入力イベントを処理した結果、処理後のマウスカーソルの座標がOS20によって自動的に変更されても、変更された座標をクライアント装置1に対応させることができる。   In the client device 1, the cursor position correction information receiving unit 121 receives the changed coordinates P4 of the mouse cursor. The cursor position correcting unit 122 causes the cursor drawing unit 113 to redraw the mouse cursor at the changed coordinate P4 of the mouse cursor. As described above, even if the coordinates of the mouse cursor after the processing are automatically changed by the OS 20 as a result of processing the input event transmitted from the client device 1 by the server device 2, the changed coordinates correspond to the client device 1. Can be made.

[クライアント装置における入力イベント処理の手順]
次に、クライアント装置1における入力イベント処理の手順について、図4を参照して説明する。図4は、実施例1に係るクライアント装置における入力イベント処理の手順を示すフローチャートである。
[Input event processing procedure in client device]
Next, the procedure of input event processing in the client device 1 will be described with reference to FIG. FIG. 4 is a flowchart illustrating the procedure of the input event process in the client device according to the first embodiment.

まず、入力イベント取得部111は、未処理の入力イベントが存在するか否かを判定する(ステップS11)。未処理の入力イベントが存在しないと判定した場合(ステップS11;No)、入力イベント取得部111は、未処理の入力イベントが存在すると判定するまで、判定処理を繰り返す。   First, the input event acquisition unit 111 determines whether there is an unprocessed input event (step S11). When it is determined that there is no unprocessed input event (step S11; No), the input event acquisition unit 111 repeats the determination process until it is determined that there is an unprocessed input event.

一方、未処理の入力イベントが存在すると判定した場合(ステップ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 event acquisition unit 111 acquires the input event (step S12). Then, the cursor drawing unit 113 redraws the mouse cursor on the desktop screen of its own device based on the input event acquired by the input event acquisition unit 111 (step S13). For example, the cursor drawing unit 113 extracts the position of the destination mouse cursor included in the input event, and redraws the mouse cursor at the extracted mouse cursor position.

そして、入力イベント送信部112は、入力イベント取得部111によって取得された入力イベントをサーバ装置2へ送信する(ステップS14)。そして、入力イベント処理部11は、次のイベントが発生するのを待つべく、ステップS11に移行する。   Then, the input event transmission unit 112 transmits the input event acquired by the input event acquisition unit 111 to the server device 2 (step S14). Then, the input event processing unit 11 proceeds to step S11 in order to wait for the next event to occur.

[クライアント装置における画面描画処理の手順]
次に、クライアント装置1における画面描画処理の手順について、図5を参照して説明する。図5は、実施例1に係るクライアント装置における画面描画処理の手順を示すフローチャートである。
[Procedure for screen drawing processing on client device]
Next, the procedure of the screen drawing process in the client device 1 will be described with reference to FIG. FIG. 5 is a flowchart illustrating the procedure of the screen drawing process in the client device according to the first embodiment.

まず、画面描画部12は、サーバ装置2から画面転送方式に関するデータを受信したか否かを判定する(ステップS21)。画面転送方式に関するデータを受信していないと判定した場合(ステップS21;No)、画面描画部12は、画面転送方式に関するデータを受信するまで、判定処理を繰り返す。   First, the screen drawing unit 12 determines whether or not data related to a screen transfer method has been received from the server device 2 (step S21). If it is determined that data related to the screen transfer method has not been received (step S21; No), the screen drawing unit 12 repeats the determination process until data related to the screen transfer method is received.

画面転送方式に関するデータを受信したと判定した場合(ステップ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 information receiving unit 121 has received the cursor position correction information (step S22). When it is determined that the cursor position correction information has been received (step S22; Yes), the cursor position correction information receiving unit 121 receives the cursor position correction information (step S23).

続いて、カーソル位置補正部122は、受信したカーソル位置補正情報から補正位置を抽出し、抽出した補正位置にマウスカーソルの位置を補正する(ステップS24)。そして、カーソル描画部113は、補正された位置にマウスカーソルを再描画する(ステップS25)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。   Subsequently, the cursor position correction unit 122 extracts a correction position from the received cursor position correction information, and corrects the position of the mouse cursor to the extracted correction position (step S24). The cursor drawing unit 113 redraws the mouse cursor at the corrected position (step S25). Then, the screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

ステップ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 information receiving unit 123 determines whether screen information has been received (step S26). When it is determined that the screen information has been received (step S26; Yes), the screen information receiving unit 123 receives the compressed screen display data (step S27).

続いて、画像展開処理部124は、圧縮後の画面表示データを展開する(ステップS28)。そして、画面情報描画部125は、展開して得られた画面表示データを使用してデスクトップ画面を再描画する(ステップS29)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。   Subsequently, the image expansion processing unit 124 expands the compressed screen display data (step S28). Then, the screen information drawing unit 125 redraws the desktop screen using the screen display data obtained by the expansion (step S29). Then, the screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

ステップ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 information receiving unit 123 has received data unrelated to the screen transfer method, so nothing is done here (step S30). . Then, the screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

[サーバ装置における入力イベント処理の手順]
次に、サーバ装置2における入力イベント処理の手順について、図6を参照して説明する。図6は、実施例1に係るサーバ装置における入力イベント処理の手順を示すフローチャートである。
[Procedure for input event processing in server device]
Next, the procedure of input event processing in the server device 2 will be described with reference to FIG. FIG. 6 is a flowchart illustrating the procedure of the input event process in the server apparatus according to the first embodiment.

まず、サーバ装置2の入力イベント受信部221は、クライアント装置1から入力イベントを受信したか否かを判定する(ステップS31)。入力イベントを受信していないと判定した場合(ステップS31;No)、入力イベント受信部221は、入力イベントを受信するまで、判定処理を繰り返す。   First, the input event receiving unit 221 of the server device 2 determines whether or not an input event has been received from the client device 1 (step S31). When it is determined that an input event has not been received (step S31; No), the input event reception unit 221 repeats the determination process until an input event is received.

一方、入力イベントを受信したと判定した場合(ステップ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 event receiving part 221 receives an input event (step S32). The input event storage unit 222 stores the received input event as an input event history in the input event history storage unit 21 (step S33).

続いて、入力イベント実行部223は、入力イベントをOS20へ受け渡してOS20に処理させる(ステップS34)。そして、入力イベント処理部22は、次のイベントを受信するのを待つべく、ステップS31に移行する。   Subsequently, the input event execution unit 223 delivers the input event to the OS 20 and causes the OS 20 to process it (step S34). Then, the input event processing unit 22 proceeds to step S31 in order to wait for reception of the next event.

[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置2におけるカーソル位置補正処理の手順について、図7を参照して説明する。図7は、実施例1に係るサーバ装置におけるカーソル位置補正処理の手順を示すフローチャートである。
[Procedure for cursor position correction processing in server device]
Next, the procedure of the cursor position correction process in the server device 2 will be described with reference to FIG. FIG. 7 is a flowchart illustrating the procedure of the cursor position correction process in the server apparatus according to the first embodiment.

カーソル位置変更チェック部231は、所定の時間経過したか否かを判定する(ステップS41)。所定の時間経過していないと判定した場合(ステップS41;No)、カーソル位置変更チェック部231は、所定の時間が経過するまで、判定処理を繰り返す。   The cursor position change checking unit 231 determines whether or not a predetermined time has elapsed (step S41). When it is determined that the predetermined time has not elapsed (step S41; No), the cursor position change check unit 231 repeats the determination process until the predetermined time has elapsed.

一方、所定の時間経過したと判定した場合(ステップ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 change check unit 231 checks whether or not the mouse cursor has moved (step S42). For example, as a result of causing the OS 20 to process the input event, the cursor position change check unit 231 acquires the position of the mouse cursor corresponding to the processing from the OS 20. Then, the cursor position change checking unit 231 determines whether or not the acquired position of the mouse cursor matches the position of the mouse cursor before the input event is processed. Here, the predetermined time indicates, for example, the update time of the screen display data of one frame, and is 33 ms as an example.

そして、マウスカーソルが移動していないと判定した場合(ステップ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 position correction unit 23 ends the cursor position correction process and proceeds to a screen information transfer process. On the other hand, when it is determined that the mouse cursor has moved (step S42; Yes), the cursor position history check unit 232 determines whether or not there is an input event corresponding to the position of the mouse cursor after the movement (step S43). ). For example, the cursor position history check unit 232 determines whether or not the position of the mouse cursor that has changed matches any of the coordinate positions held as the input event history in the input event history holding unit 21. .

そして、対応する入力イベントが存在すると判定した場合(ステップS43;Yes)、カーソル位置履歴チェック部232は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。   If it is determined that the corresponding input event exists (step S43; Yes), the cursor position history check unit 232 deletes the history before the history of the corresponding input event (step S44). Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

一方、対応する入力イベントが存在しないと判定した場合(ステップ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 history check unit 232 determines that the cursor position has been automatically changed by the OS 20. Then, the cursor position history check unit 232 causes the cursor position correction information transmission unit 233 to transmit the cursor position correction information to the client device 1 (step S45). For example, the cursor position correction information transmission unit 233 transmits the cursor position correction information including the changed cursor position to the client device 1. Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

[サーバ装置における画面情報転送処理の手順]
次に、サーバ装置2における画面情報転送処理の手順について、図8を参照して説明する。図8は、実施例1に係るサーバ装置における画面情報転送処理の手順を示すフローチャートである。
[Procedure for screen information transfer processing in server device]
Next, the procedure of the screen information transfer process in the server device 2 will be described with reference to FIG. FIG. 8 is a flowchart illustrating the procedure of the screen information transfer process in the server apparatus according to the first embodiment.

画面情報取得部241は、OS20を介して画面表示データを取得する(ステップS51)。そして、画面更新判定部242は、取得した画面表示データと前回に取得した画面表示データとを比較して、画面更新があったか否かを判定する(ステップS52)。画面更新がなかったと判定した場合(ステップS52;No)、画面情報転送部24は、カーソル位置補正処理に移行すべく、ステップS41に遷移する。   The screen information acquisition unit 241 acquires screen display data via the OS 20 (step S51). Then, the screen update determination unit 242 compares the acquired screen display data with the previously acquired screen display data to determine whether or not there has been a screen update (step S52). If it is determined that the screen has not been updated (step S52; No), the screen information transfer unit 24 transitions to step S41 to shift to the cursor position correction process.

一方、画面更新があったと判定した場合(ステップ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 compression processing unit 243 compresses the screen display data in the updated area (step S53). Then, the screen information transmitting unit 244 transmits the compressed screen display data to the client device 1 (Step S54). Then, the screen information transfer unit 24 transitions to step S41 to shift to the cursor position correction process.

[実施例1の効果]
上記実施例1によれば、シンクライアントシステム9のサーバ装置2は、クライアント装置1から受信した、マウスカーソルの移動を伴う入力イベントについて、移動後のカーソルの位置を含むイベント情報を入力イベント履歴保持部21に保存する。そして、サーバ装置2は、入力イベントに基づいて処理した結果、処理前後でカーソルの位置に変化があったとき、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致しているか否かを判定する。そして、サーバ装置2は、判定の結果、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置とも一致していない場合に、変化があったカーソルの位置をクライアント装置1に通知する。かかる構成によれば、サーバ装置2は、クライアント装置1から受信した入力イベントに基づく処理により処理前後で変化があったカーソルの位置が処理によって自動的に移動してしまう場合であっても、移動後のカーソルの位置をクライアント装置1に対応させることができる。
[Effect of Example 1]
According to the first embodiment, the server device 2 of the thin client system 9 holds the event information including the position of the cursor after the movement for the input event accompanied by the movement of the mouse cursor received from the client device 1 as the input event history. Stored in the unit 21. Then, as a result of processing based on the input event, when the cursor position has changed before and after processing, the server device 2 is one of the cursor positions that have changed are held in the input event history holding unit 21 It is determined whether or not it coincides with the position of the cursor. Then, the server device 2 determines that the changed cursor position does not coincide with any cursor position held in the input event history holding unit 21 as a result of the determination. The client device 1 is notified of the position. According to such a configuration, the server apparatus 2 can move even if the position of the cursor that has changed before and after the process is automatically moved by the process based on the input event received from the client apparatus 1. The position of the subsequent cursor can be made to correspond to the client device 1.

また、上記実施例1によれば、サーバ装置2が、判定の結果、変化があったカーソルの位置が入力イベント履歴保持部21に保持されているいずれかのカーソルの位置と一致した場合に、一致したカーソルの位置に係るイベント以前のイベント情報を削除する。かかる構成によれば、サーバ装置2は、入力イベントに関する次回の処理で、入力イベント履歴保持部21に保持されているカーソルの位置との比較回数を減らすことができるので、処理効率を上げることができる。   Further, according to the first embodiment, when the server apparatus 2 matches the position of any cursor held in the input event history holding unit 21 as a result of the determination, The event information before the event related to the position of the matched cursor is deleted. According to such a configuration, the server device 2 can reduce the number of comparisons with the position of the cursor held in the input event history holding unit 21 in the next process related to the input event, thereby increasing the processing efficiency. it can.

ところで、実施例1に係るサーバ装置2では、入力イベントの処理前後で変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、保持されていると判定した入力イベントの履歴以前の履歴を削除する場合を説明した。しかしながら、サーバ装置2は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、履歴を削除する前に保持されているキューの長さが長い場合には画面転送方式の処理間隔を調整するようにしても良い。   By the way, in the server device 2 according to the first embodiment, when it is determined that the position of the mouse cursor that has changed before and after the processing of the input event is held in the input event history holding unit 21, it is determined that it is held. Described the case of deleting the history before the input event history. However, if the server apparatus 2 determines that the position of the mouse cursor that has changed is held in the input event history holding unit 21, the server apparatus 2 has a long queue before the history is deleted. Alternatively, the processing interval of the screen transfer method may be adjusted.

つまり、サーバ装置2では、画面転送方式における処理負荷が高くなる場合がある。かかる場合には、サーバ装置2は、クライアント装置1から送信された入力イベントの処理時間が長くなり、入力イベント履歴保持部21に保持される入力イベントのキュー長が長くなることがある。このため、サーバ装置2は、キュー長が閾値より大きい場合には画面転送方式の処理間隔を調整して、処理負荷を低減するようにしても良い。   That is, in the server apparatus 2, the processing load in the screen transfer method may increase. In such a case, the server device 2 may have a longer processing time for the input event transmitted from the client device 1, and the input event queue held in the input event history holding unit 21 may be longer. Therefore, the server device 2 may reduce the processing load by adjusting the processing interval of the screen transfer method when the queue length is larger than the threshold value.

そこで、実施例2では、入力イベント履歴保持部21に保持される入力イベントのキュー長が閾値より大きい場合には画面転送方式の処理間隔を調整するサーバ装置2について説明する。   Therefore, in the second embodiment, a description will be given of the server device 2 that adjusts the processing interval of the screen transfer method when the queue length of the input event held in the input event history holding unit 21 is larger than the threshold value.

[シンクライアントシステムに含まれる各装置の構成]
図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 thin client system 9 shown in FIG. 1, the same code | symbol is shown, The description of the overlapping structure and operation | movement is abbreviate | omitted. The difference between the first embodiment and the second embodiment is that an input event history retention number check unit 301 is added to the cursor position correction unit 23 of the server device 2A.

カーソル位置履歴チェック部232は、入力イベントの実行前後でカーソルの位置に変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。   The cursor position history check unit 232 checks whether or not the cursor position where the cursor position has changed before and after execution of the input event is held in the input event history holding unit 21.

入力イベント履歴保持数チェック部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 history holding unit 21, the input event history holding number check unit 301 sets the queue length of the input event held in the input event history holding unit 21 as a threshold value. It is determined whether it is above. For example, the input event history holding number check unit 301 includes an input event before an input event related to a coordinate position that matches the position of the mouse cursor that has changed in the input event history held in the input event history holding unit 21. Count the number of. Also, the input event history retention number check unit 301 determines whether or not the counted number of input events is greater than a threshold value. If the input event history retention count check unit 301 determines that the number of input events counted is greater than the threshold, the input event history retention count check unit 301 determines that the processing load is high, and sets the processing interval of the screen transfer method to be greater than the current processing interval. Enlarge. On the other hand, if the input event history retention number check unit 301 determines that the number of input events counted is equal to or less than the threshold, the input event history retention number check unit 301 determines that the processing load is low, and sets the screen transfer method processing interval to be greater than the current processing interval. Decrease or keep the current processing interval. Then, the input event history retention number check unit 301 deletes the history before the input event history related to the coordinate position that matched.

なお、入力イベントの数と比較する閾値は、例えば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 change check unit 231 coincides with a predetermined time which is a time interval for checking whether or not the mouse cursor has moved. That is, if the processing interval of the screen transfer method increases, the predetermined time increases, and if the processing interval of the screen transfer method decreases, the predetermined time also decreases.

[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図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 client device 1A, the input event acquisition unit 111 acquires an input event from a mouse connected to the client device 1 (step S1). Here, the input event is assumed to be three events in which the movement destination of the mouse moves to (x1, y1), (x2, y2), and (x3, y3) in time series by the movement operation of the mouse.

入力イベント取得部111は、各入力イベントを時系列に取得し、取得した都度、取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された各入力イベントをサーバ装置2Aに送信し、カーソル描画部113は、引き渡された各入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP1にカーソルを描画した後、引き続きP2およびP3にカーソルを描画する。   The input event acquisition unit 111 acquires each input event in time series, and delivers the acquired input event to the input event transmission unit 112 and the cursor drawing unit 113 each time it is acquired. Then, the input event transmitting unit 112 transmits each delivered input event to the server device 2A, and the cursor drawing unit 113 renders each delivered input event on the desktop screen via the OS 10 (step S2). . Here, the cursor drawing unit 113 draws the cursor on P1 of the desktop screen, and then draws the cursor on P2 and P3.

サーバ装置2Aでは、入力イベント受信部221が、クライアント装置1Aから送信された各入力イベントを時系列に受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された各入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、各入力イベントに含まれる移動先の座標P1、P2およびP3をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された各入力イベントをOS20に処理させる(ステップS3)。   In the server device 2A, the input event receiving unit 221 receives each input event transmitted from the client device 1A in time series. Then, the input event storage unit 222 holds each input event received by the input event reception unit 221 as an event history. Here, the input event storage unit 222 holds the coordinates P1, P2, and P3 of the movement destination included in each input event as an event history. In addition, the input event execution unit 223 causes the OS 20 to process each input event received by the input event reception unit 221 (step S3).

そして、カーソル位置変更チェック部231は、OS20に処理させた結果であるマウスカーソルの座標を取得する(ステップS4)。そして、カーソル位置変更チェック部231は、取得したマウスカーソルの座標P1が処理前のマウスカーソルの座標と一致していない、すなわちマウスカーソルが移動したと判定する。そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P1が入力イベント履歴として保持されているか否かを判定する。ここでは、処理後のマウスカーソルの座標P1が入力イベント履歴として保持されていると判定される。そこで、入力イベント履歴保持数チェック部301は、入力イベント履歴の中で対応する入力イベント以前のキュー長をチェックし、キュー長が閾値よりも大きいか否かを判定する(ステップS5A)。ここでは、P1に対応する入力イベント以前の入力イベント(P1、Px、Py、Pzに対応)が4個あるので、キュー長が4となる。閾値を3とした場合、キュー長(4)が閾値(3)よりも大きいと判定される。   Then, the cursor position change check unit 231 acquires the coordinates of the mouse cursor that is the result of processing performed by the OS 20 (step S4). Then, the cursor position change check unit 231 determines that the acquired mouse cursor coordinates P1 do not match the coordinates of the mouse cursor before processing, that is, the mouse cursor has moved. Then, the cursor position history check unit 232 determines whether or not the coordinate P1 of the mouse cursor after processing is held as the input event history. Here, it is determined that the coordinate P1 of the processed mouse cursor is held as the input event history. Therefore, the input event history retention number check unit 301 checks the queue length before the corresponding input event in the input event history, and determines whether or not the queue length is larger than the threshold (step S5A). Here, since there are four input events (corresponding to P1, Px, Py, and Pz) before the input event corresponding to P1, the queue length is 4. When the threshold is 3, it is determined that the queue length (4) is larger than the threshold (3).

そして、入力イベント履歴保持数チェック部301は、キュー長が閾値よりも大きいと判定したので、処理負荷が高いと判断し、画面転送方式の処理間隔を大きくする。そして、入力イベント履歴保持数チェック部301は、処理後のマウスカーソルの座標P1に関する入力イベントの履歴以前の履歴を削除する(ステップS6)。ここでは、P1、Px、Py、Pzに関する入力イベントの履歴が削除される。そして、引き続き、画面情報転送部24の処理が実行される。このように、サーバ装置2Aは、入力イベント履歴のキュー長が長い場合には処理負荷が高いと判断し、画面転送方式の処理間隔を大きくするようにして処理負荷を低減することで、操作性を向上させることができる。   Since the input event history retention number check unit 301 determines that the queue length is greater than the threshold, it determines that the processing load is high and increases the processing interval of the screen transfer method. Then, the input event history retention number check unit 301 deletes the history before the input event history related to the coordinate P1 of the mouse cursor after processing (step S6). Here, the history of input events related to P1, Px, Py, and Pz is deleted. Subsequently, the process of the screen information transfer unit 24 is executed. As described above, the server device 2A determines that the processing load is high when the queue length of the input event history is long, and reduces the processing load by increasing the processing interval of the screen transfer method. Can be improved.

[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置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 change checking unit 231 determines whether or not a predetermined time has elapsed (step S41). When it is determined that the predetermined time has not elapsed (step S41; No), the cursor position change check unit 231 repeats the determination process until the predetermined time has elapsed.

一方、所定の時間経過したと判定した場合(ステップ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 change check unit 231 checks whether or not the mouse cursor has moved (step S42). For example, as a result of causing the OS 20 to process the input event, the cursor position change check unit 231 acquires the position of the mouse cursor corresponding to the processing from the OS 20. Then, the cursor position change check unit 231 determines whether or not the acquired position of the mouse cursor matches the position of the mouse cursor before the input event is processed (step S42). Here, the predetermined time indicates, for example, the update time of the screen display data of one frame.

そして、マウスカーソルが移動していないと判定した場合(ステップ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 position correction unit 23 ends the cursor position correction process and proceeds to a screen information transfer process. On the other hand, when it is determined that the mouse cursor has moved (step S42; Yes), the cursor position history check unit 232 determines whether or not there is an input event corresponding to the position of the mouse cursor after the movement (step S43). ). For example, the cursor position history check unit 232 determines whether or not the position of the mouse cursor that has changed matches any of the coordinate positions held as the input event history in the input event history holding unit 21. .

そして、対応する入力イベントが存在すると判定した場合(ステップ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 count checking unit 301 counts the number of input events (queue length) before the corresponding input event (step S401). For example, the input event history holding number check unit 301 includes an input event before an input event related to a coordinate position that matches the position of the mouse cursor that has changed in the input event history held in the input event history holding unit 21. Count the number of.

そして、入力イベント履歴保持数チェック部301は、キュー長が閾値よりも大きいか否かを判定する(ステップS402)。キュー長が閾値よりも大きいと判定した場合(ステップS402;Yes)、入力イベント履歴保持数チェック部301は、処理負荷が高いと判断し、画面転送方式の処理間隔を大きくする(ステップS403)。   Then, the input event history retention count checking unit 301 determines whether or not the queue length is larger than the threshold (step S402). When it is determined that the queue length is greater than the threshold (step S402; Yes), the input event history retention number check unit 301 determines that the processing load is high, and increases the processing interval of the screen transfer method (step S403).

一方、キュー長が閾値以下であると判定した場合(ステップ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 number check unit 301 determines that the processing load is low and reduces the processing interval of the screen transfer method (step S404). ). Then, the input event history retention number check unit 301 deletes the history before the history of the corresponding input event (step S44). Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

ステップ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 history check unit 232 determines that the cursor position has been automatically changed by the OS 20. Then, the cursor position history check unit 232 causes the cursor position correction information transmission unit 233 to transmit the cursor position correction information to the client device 1A (step S45). For example, the cursor position correction information transmission unit 233 transmits cursor position correction information including the changed cursor position to the client device 1A. Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

[実施例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 thin client system 9 holds the event information including the position of the cursor after the movement for the input event accompanied by the movement of the mouse cursor received from the client apparatus 1A. Stored in the unit 21. Then, as a result of processing based on the input event, when the cursor position has changed before and after processing, the server apparatus 2A is one of the cursor positions that have changed are held in the input event history holding unit 21. It is determined whether or not it coincides with the position of the cursor. Then, the server apparatus 2A determines that the event related to the matched cursor position when the position of the cursor that has changed as a result of the determination matches the position of any of the cursors held in the input event history holding unit 21. It is determined whether the number of previous events is greater than a threshold value. If the server device 2A determines that the number of events before the event related to the matched cursor position is greater than the threshold, the server device 2A sets the processing interval of the screen transfer method to be larger than the current processing interval. According to such a configuration, when the number of corresponding events held in the input event history holding unit 21 is larger than the threshold, the server apparatus 2A has a longer interval of input event processing accompanied by movement of the cursor position. Therefore, it is assumed that the processing load of the own device is high. Therefore, the server device 2 can reduce the processing load by increasing the processing interval of the screen transfer method. As a result, the server apparatus 2A can improve the operability of the thin client system 9.

ところで、実施例1に係るサーバ装置2では、入力イベントの処理でマウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置をクライアント装置1に送信する場合を説明した。しかしながら、サーバ装置2は、これに限定されず、マウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置と形状とをクライアント装置1に送信するようにしても良い。これは、マウスカーソルの位置が自動的に移動した場合に、移動後の位置によってはマウスカーソルの形状も変化する場合があるためである。   By the way, in the server device 2 according to the first embodiment, the case where the mouse cursor is automatically moved by the processing of the input event and the position of the automatically moved mouse cursor is transmitted to the client device 1 has been described. However, the server device 2 is not limited to this, and when the mouse cursor moves automatically, the server device 2 may transmit the position and shape of the automatically moved mouse cursor to the client device 1. This is because when the position of the mouse cursor is automatically moved, the shape of the mouse cursor may change depending on the position after the movement.

そこで、実施例3では、マウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置と形状とをクライアント装置1に送信するサーバ装置2について説明する。   Thus, in the third embodiment, a description will be given of the server device 2 that transmits the position and shape of the automatically moved mouse cursor to the client device 1 when the mouse cursor automatically moves.

[シンクライアントシステムに含まれる各装置の構成]
図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 thin client system 9 shown in FIG. 1, the same code | symbol is shown, The description of the overlapping structure and operation | movement is abbreviate | omitted. The difference between the first embodiment and the third embodiment is that a cursor shape check unit 401 and a cursor shape correction information transmission unit 402 are added to the cursor position correction unit 23 of the server device 2B. The difference between the first embodiment and the third embodiment is that a cursor shape correction information receiving unit 403 and a cursor shape correcting unit 404 are added to the screen drawing unit 12 of the client apparatus 1B.

カーソル位置履歴チェック部232は、入力イベントの実行前後でカーソルの位置に変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。   The cursor position history check unit 232 checks whether or not the cursor position where the cursor position has changed before and after execution of the input event is held in the input event history holding unit 21.

カーソル形状チェック部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 history holding unit 21, the cursor shape check unit 401 further checks whether or not the shape of the mouse cursor has changed. For example, the cursor shape check unit 401 uses the OS 20 to determine whether the shape of the mouse cursor has changed. Then, when the shape of the mouse cursor changes, the cursor shape check unit 401 notifies the cursor shape correction information transmission unit 402 of the changed shape of the mouse cursor. That is, the cursor shape check unit 401 notifies the cursor shape correction information transmission unit 402 of the changed shape when the shape also changes with the position of the mouse cursor automatically changed by the OS 20.

カーソル形状補正情報送信部402は、カーソル形状チェック部401によって通知されたカーソルの形状を含むカーソル形状補正情報をクライアント装置1Bに送信する。これによって、サーバ装置2Bは、OS20によって自動的に変更されたマウスカーソルの位置に伴い変化したマウスカーソルの形状をクライアント装置1Bに補正させることができる。   The cursor shape correction information transmission unit 402 transmits the cursor shape correction information including the cursor shape notified by the cursor shape check unit 401 to the client device 1B. Accordingly, the server apparatus 2B can cause the client apparatus 1B to correct the shape of the mouse cursor that has changed with the position of the mouse cursor automatically changed by the OS 20.

カーソル形状補正情報受信部403は、カーソル形状情報をサーバ装置2Bから受信する。ここで、カーソル形状補正情報とは、サーバ装置2Bによって補正されるカーソルの形状情報である。つまり、サーバ装置2Bでは、クライアント装置1Bから送信された入力イベントを処理した結果、処理後のマウスカーソルの位置および形状がOS20によって自動的に変更される場合がある。かかる場合に、カーソル形状補正情報受信部403は、カーソル形状補正情報をサーバ装置2Bから受信し、受信したカーソル形状補正情報を用いてカーソルの形状を補正させてサーバ装置2Bのカーソルの形状と対応させる。   The cursor shape correction information receiving unit 403 receives cursor shape information from the server device 2B. Here, the cursor shape correction information is cursor shape information corrected by the server device 2B. That is, in the server apparatus 2B, as a result of processing the input event transmitted from the client apparatus 1B, the position and shape of the mouse cursor after processing may be automatically changed by the OS 20. In such a case, the cursor shape correction information receiving unit 403 receives the cursor shape correction information from the server device 2B, corrects the cursor shape using the received cursor shape correction information, and corresponds to the cursor shape of the server device 2B. Let

カーソル形状補正部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 information reception unit 403. In addition, the cursor shape correcting unit 404 causes the cursor drawing unit 113 to redraw the mouse cursor having the extracted corrected shape.

[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図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 server apparatus 2B receives from the client apparatus 1B an input event in which the mouse display position is moved by a mouse movement operation. Then, for each input event whose destination moves to P1 and P2 in the input event, the position of the cursor after processing is not automatically moved by the OS 20. Furthermore, for input events in which the destination moves from P2 to P3 among the input events, the cursor position after processing is automatically moved from P3 to P4 by the OS 20, and the cursor shape also changes from an arrow shape to a triangular shape. Let's take an example. Hereinafter, the case of an input event in which the destination moves from P2 to P3 will be described.

図13に示すように、クライアント装置1Bでは、入力イベント取得部111が、クライアント装置1Bに接続されたマウスから入力イベントを取得する(ステップS1)。ここでは、入力イベント取得部111は、マウスの移動操作によりマウスの移動先が(x3、y3)となる入力イベントを取得する。   As illustrated in FIG. 13, in the client device 1B, the input event acquisition unit 111 acquires an input event from a mouse connected to the client device 1B (step S1). Here, the input event acquisition unit 111 acquires an input event whose mouse destination is (x3, y3) by a mouse movement operation.

入力イベント取得部111は、取得した入力イベントを入力イベント送信部112およびカーソル描画部113に引き渡す。そして、入力イベント送信部112は、引き渡された入力イベントをサーバ装置2Bに送信し、カーソル描画部113は、引き渡された入力イベントを、OS10を介してデスクトップ画面に描画する(ステップS2)。ここでは、カーソル描画部113は、デスクトップ画面のP3にカーソルを描画する。   The input event acquisition unit 111 passes the acquired input event to the input event transmission unit 112 and the cursor drawing unit 113. Then, the input event transmission unit 112 transmits the delivered input event to the server device 2B, and the cursor drawing unit 113 draws the delivered input event on the desktop screen via the OS 10 (step S2). Here, the cursor drawing unit 113 draws the cursor on P3 of the desktop screen.

サーバ装置2Bでは、入力イベント受信部221が、クライアント装置1Bから送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P3をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。   In the server device 2B, the input event receiving unit 221 receives the input event transmitted from the client device 1B. Then, the input event storage unit 222 holds the input event received by the input event reception unit 221 as an event history. Here, the input event storage unit 222 holds the coordinate P3 of the movement destination included in the input event as an event history. In addition, the input event execution unit 223 causes the OS 20 to process the input event received by the input event reception unit 221 (step S3).

そして、カーソル位置変更チェック部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 change check unit 231 acquires the coordinates of the mouse cursor after being processed by the OS 20 (step S4). Here, the OS 20 automatically changes the position of the mouse cursor from P3 to P4 (x4, y4). Then, the cursor position change check unit 231 determines that the changed coordinate P4 does not match the coordinate P2 of the mouse cursor before processing. Therefore, the cursor position history check unit 232 determines whether or not the coordinate P4 of the mouse cursor after processing is held as the input event history (step S5). Here, since the coordinate P4 of the mouse cursor after the processing is automatically changed from the coordinate P3 by the OS 20, it is not held as an input event history. Thus, the cursor position history check unit 232 notifies the cursor position correction information transmission unit 233 of the changed mouse cursor coordinates P4 (step S7).

さらに、カーソル形状チェック部401は、マウスカーソルの形状が変化したか否かを、OS20を用いて判定する。ここでは、処理後のマウスカーソルの形状が矢印形状から三角形状に変化している。そこで、カーソル形状チェック部401は、変化したマウスカーソルの三角形状をカーソル形状補正情報送信部402に通知させる(ステップS8)。   Furthermore, the cursor shape check unit 401 determines whether or not the shape of the mouse cursor has changed using the OS 20. Here, the shape of the mouse cursor after processing has changed from an arrow shape to a triangular shape. Therefore, the cursor shape check unit 401 notifies the cursor shape correction information transmission unit 402 of the changed triangular shape of the mouse cursor (step S8).

クライアント装置1Bでは、カーソル位置補正情報受信部121が、変更されたマウスカーソルの座標P4を受信する。そして、カーソル位置補正部122は、カーソル描画部113によって、変更されたマウスカーソルの座標P4にマウスカーソルを再描画させる。続いて、カーソル形状補正情報受信部403が、変化したマウスカーソルの形状を受信する。そして、カーソル形状補正部404は、カーソル描画部113によって、変化したマウスカーソルを再描画させる。   In the client device 1B, the cursor position correction information receiving unit 121 receives the changed mouse cursor coordinates P4. The cursor position correcting unit 122 causes the cursor drawing unit 113 to redraw the mouse cursor at the changed coordinate P4 of the mouse cursor. Subsequently, the cursor shape correction information receiving unit 403 receives the changed mouse cursor shape. Then, the cursor shape correcting unit 404 causes the cursor drawing unit 113 to redraw the changed mouse cursor.

このように、サーバ装置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 client device 1B by the server device 2B, the changed shape of the mouse cursor corresponds to the client device 1B. Can be made.

[クライアント装置における画面描画処理の手順]
次に、クライアント装置1Bにおける画面描画処理の手順について、図14を参照して説明する。図14は、実施例3に係るクライアント装置における画面描画処理の手順を示すフローチャートである。なお、図5に示す実施例1に係るサーバ装置における画面描画処理と同一の処理については同一符号を示す。
[Procedure for screen drawing processing on client device]
Next, the procedure of the screen drawing process in the client device 1B will be described with reference to FIG. FIG. 14 is a flowchart illustrating the procedure of the screen drawing process in the client device according to the third embodiment. In addition, the same code | symbol is shown about the process same as the screen drawing process in the server apparatus based on Example 1 shown in FIG.

まず、画面描画部12は、サーバ装置2から画面転送方式に関するデータを受信したか否かを判定する(ステップS21)。画面転送方式に関するデータを受信していないと判定した場合(ステップS21;No)、画面描画部12は、画面転送方式に関するデータを受信するまで、判定処理を繰り返す。   First, the screen drawing unit 12 determines whether or not data related to a screen transfer method has been received from the server device 2 (step S21). If it is determined that data related to the screen transfer method has not been received (step S21; No), the screen drawing unit 12 repeats the determination process until data related to the screen transfer method is received.

画面転送方式に関するデータを受信したと判定した場合(ステップ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 information receiving unit 121 has received the cursor position correction information (step S22). When it is determined that the cursor position correction information has been received (step S22; Yes), the cursor position correction information receiving unit 121 receives the cursor position correction information (step S23).

続いて、カーソル位置補正部122は、受信したカーソル位置補正情報から補正位置を抽出し、抽出した補正位置にマウスカーソルの位置を補正する(ステップS24)。そして、カーソル描画部113は、補正された位置にマウスカーソルを再描画する(ステップS25)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。   Subsequently, the cursor position correction unit 122 extracts a correction position from the received cursor position correction information, and corrects the position of the mouse cursor to the extracted correction position (step S24). The cursor drawing unit 113 redraws the mouse cursor at the corrected position (step S25). Then, the screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

ステップ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 information receiving unit 403 has received the cursor shape correction information (step S61). When it is determined that the cursor shape correction information has been received (step S61; Yes), the cursor shape correction information receiving unit 403 receives the cursor shape correction information (step S62).

続いて、カーソル形状補正部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 screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

ステップ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 information receiving unit 123 determines whether screen information has been received (step S26). When it is determined that the screen information has been received (step S26; Yes), the screen information receiving unit 123 receives the compressed screen display data (step S27).

続いて、画像展開処理部124は、圧縮後の画面表示データを展開する(ステップS28)。そして、画面情報描画部125は、展開して得られた画面表示データを使用してデスクトップ画面を再描画する(ステップS29)。そして、画面描画部12は、次の画面転送方式に関するデータを待つべく、ステップS21に移行する。   Subsequently, the image expansion processing unit 124 expands the compressed screen display data (step S28). Then, the screen information drawing unit 125 redraws the desktop screen using the screen display data obtained by the expansion (step S29). Then, the screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

ステップ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 information receiving unit 123 has received data unrelated to the screen transfer method, so nothing is done here (step S30). . Then, the screen drawing unit 12 proceeds to step S21 in order to wait for data relating to the next screen transfer method.

[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置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 server device 2B will be described with reference to FIG. FIG. 15 is a flowchart illustrating the procedure of the cursor position correction process in the server device according to the third 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 change checking unit 231 determines whether or not a predetermined time has elapsed (step S41). When it is determined that the predetermined time has not elapsed (step S41; No), the cursor position change check unit 231 repeats the determination process until the predetermined time has elapsed.

一方、所定の時間経過したと判定した場合(ステップ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 change check unit 231 checks whether or not the mouse cursor has moved (step S42). For example, as a result of causing the OS 20 to process the input event, the cursor position change check unit 231 acquires the position of the mouse cursor corresponding to the processing from the OS 20. Then, the cursor position change checking unit 231 determines whether or not the acquired position of the mouse cursor matches the position of the mouse cursor before the input event is processed. Here, the predetermined time indicates, for example, the update time of the screen display data of one frame.

そして、マウスカーソルが移動していないと判定した場合(ステップ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 position correction unit 23 ends the cursor position correction process and proceeds to a screen information transfer process. On the other hand, when it is determined that the mouse cursor has moved (step S42; Yes), the cursor position history check unit 232 determines whether or not there is an input event corresponding to the position of the mouse cursor after the movement (step S43). ). For example, the cursor position history check unit 232 determines whether or not the position of the mouse cursor that has changed matches any of the coordinate positions held as the input event history in the input event history holding unit 21. .

そして、対応する入力イベントが存在すると判定した場合(ステップS43;Yes)、カーソル位置履歴チェック部232は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。   If it is determined that the corresponding input event exists (step S43; Yes), the cursor position history check unit 232 deletes the history before the history of the corresponding input event (step S44). Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

一方、対応する入力イベントが存在しないと判定した場合(ステップ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 history check unit 232 determines that the cursor position has been automatically changed by the OS 20. Then, the cursor position history check unit 232 causes the cursor position correction information transmission unit 233 to transmit the cursor position correction information to the client device 1 (step S45). For example, the cursor position correction information transmission unit 233 transmits the cursor position correction information including the changed cursor position to the client device 1.

続いて、カーソル形状チェック部401は、マウスカーソルの形状が変化したか否かを判定する。マウスカーソルの形状が変化していないと判定した場合(ステップS71;No)、カーソル形状チェック部401は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。   Subsequently, the cursor shape check unit 401 determines whether or not the shape of the mouse cursor has changed. When it is determined that the shape of the mouse cursor has not changed (step S71; No), the cursor shape check unit 401 ends the cursor position correction process and proceeds to a screen information transfer process.

一方、マウスカーソルの形状が変化したと判定した場合(ステップ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 information transmission unit 402 causes the cursor shape correction information transmission unit 402 to transmit the cursor shape correction information to the client device 1B (step S71). S72). For example, the cursor shape correction information transmission unit 402 transmits the cursor shape correction information including the changed cursor shape to the client device 1B. Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

[実施例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 server apparatus 2B of the thin client system 9 receives an input event accompanied by the movement of the mouse cursor from the client apparatus 1B. Then, the server device 2B stores event information including the position of the cursor after movement for the received input event in the input event history holding unit 21. Then, as a result of processing based on the input event, as a result of processing based on the input event, the server device 2B has one of the cursor positions that have changed before and after the processing held in the input event history holding unit 21. It is determined whether or not it coincides with the position of the cursor. Then, the server apparatus 2B determines that the cursor position that has changed is found when the cursor position that has changed as a result of the determination does not match any cursor position that is held in the input event history holding unit 21. The position is notified to the client device 1B. Further, as a result of processing based on the input event, the server device 2B notifies the client device 1B of the changed cursor shape when the cursor shape changes before and after the processing. According to such a configuration, the server device 2B changes the cursor shape after the change to the client device 1B even if the cursor shape has changed before and after the processing based on the input event received from the client device 1B. It can be made to correspond.

ところで、実施例1に係るサーバ装置2では、入力イベントの処理でマウスカーソルが自動的に移動した場合、自動的に移動したマウスカーソルの位置をクライアント装置1に補正する場合を説明した。しかしながら、サーバ装置2では、マウスカーソルの移動領域が制限される場合がある。かかる場合に、クライアント装置1では、ローカルエコー方式で描画するマウスカーソルの位置がサーバ装置2で移動が制限された領域内であると、サーバ装置2から補正される位置を再描画すると、移動軌跡が不自然になる。   By the way, in the server device 2 according to the first embodiment, the case has been described in which, when the mouse cursor is automatically moved by the processing of the input event, the position of the automatically moved mouse cursor is corrected to the client device 1. However, in the server device 2, the movement area of the mouse cursor may be limited. In such a case, in the client device 1, if the position of the mouse cursor to be drawn by the local echo method is within an area where movement is restricted by the server device 2, if the position corrected from the server device 2 is redrawn, Becomes unnatural.

このローカルエコー方式における問題について、図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 thin client system 9 shown in FIG. 1, the same code | symbol is shown, The description of the overlapping structure and operation | movement is abbreviate | omitted. The difference between the first embodiment and the fourth embodiment is that a cursor movement direction determination unit 501 and a cursor movement direction notification unit 502 are added to the cursor position correction unit 23 of the server device 2C. Also, the difference between the first embodiment and the fourth embodiment is that a cursor movement direction restriction processing section 50 is added to the input event processing section 11 of the client apparatus 1C, and a cursor movement direction reception section 503 is added to the cursor movement direction restriction processing section 50. It is in the point that was added. Further, the difference between the first embodiment and the fourth embodiment is that a cursor movement direction limiting unit 504 is added to the input event processing unit 11 of the client device 1.

カーソル位置変更チェック部231は、入力イベント実行部223によって入力イベントが実行された結果、実行前後でカーソルの位置に変化があったか否かを判定する。   The cursor position change check unit 231 determines whether or not the cursor position has changed before and after execution as a result of the input event being executed by the input event execution unit 223.

カーソル移動方向判定部501は、実行前後でカーソルの位置に変化があった場合に、マウスカーソルの移動方向を判定する。カーソル移動方向判定部501は、マウスカーソルの移動方向がX軸方向のみに移動したと判定した場合、X軸方向をカーソル移動の限定方向と決定する。また、カーソル移動方向判定部501は、マウスカーソルの移動方向がY軸方向のみに移動したと判定した場合、Y軸方向をカーソル移動の限定方向と決定する。   The cursor movement direction determination unit 501 determines the movement direction of the mouse cursor when the cursor position changes before and after execution. When the cursor movement direction determination unit 501 determines that the movement direction of the mouse cursor has moved only in the X-axis direction, the cursor movement direction determination unit 501 determines the X-axis direction as a limited direction of cursor movement. If the cursor movement direction determination unit 501 determines that the movement direction of the mouse cursor has moved only in the Y-axis direction, the cursor movement direction determination unit 501 determines the Y-axis direction as a limited direction of 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 direction determining unit 501.

カーソル位置履歴チェック部232は、実行前後で変化があったカーソルの位置が入力イベント履歴保持部21に保持されているかどうかをチェックする。ここで、カーソル位置履歴チェック部232は、カーソル移動の限定方向が決定されている場合には、決定された限定方向のみでチェックする。例えば、カーソル位置履歴チェック部232は、カーソル移動の限定方向がX軸方向である場合、変化があったマウスカーソルのX軸の座標が入力イベント履歴保持部21のいずれかのX軸の座標と一致しているか否かを判定する。   The cursor position history check unit 232 checks whether or not the position of the cursor that has changed before and after execution is held in the input event history holding unit 21. Here, when the limited direction of cursor movement is determined, the cursor position history check unit 232 checks only in the determined limited direction. For example, when the limited direction of cursor movement is the X-axis direction, the cursor position history check unit 232 determines that the X-axis coordinate of the mouse cursor that has changed is the coordinate of any X-axis of the input event history holding unit 21. It is determined whether or not they match.

カーソル位置履歴チェック部232は、変化があったカーソルの位置が入力イベント履歴保持部21に保持されていると判定した場合、保持されていると判定した入力イベントの履歴以前の履歴を削除する。一方、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21に保持されていないと判定した場合、変化があったマウスカーソルの位置をカーソル位置補正情報送信部233に通知する。   When the cursor position history check unit 232 determines that the position of the cursor that has changed is held in the input event history holding unit 21, the cursor position history check unit 232 deletes the history before the input event history determined to be held. On the other hand, when the cursor position history check unit 232 determines that the changed mouse cursor position is not held in the input event history holding unit 21, the cursor position history check unit 232 indicates the changed mouse cursor position as the cursor position correction information transmission unit. 233 is notified.

カーソル移動方向受信部503は、カーソル移動の限定方向をサーバ装置2Cから受信する。カーソル移動方向限定部504は、自装置側でのマウスカーソルの移動方向を、カーソル移動方向受信部503によって受信されたカーソル移動の限定方向に限定する。   The cursor movement direction reception unit 503 receives a limited direction of cursor movement from the server device 2C. The cursor movement direction limiting unit 504 limits the movement direction of the mouse cursor on the device side to the limited direction of cursor movement received by the cursor movement direction reception unit 503.

[カーソル位置補正の具体例]
次に、カーソル位置補正の具体例について、図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 client apparatus 1 </ b> C, the Y-axis coordinate position “100” is corrected. Shall.

図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 event acquisition unit 111 acquires an input event in which the mouse destination is P2 (210, 100) (step S1). The input event acquisition unit 111 passes the acquired input event to the input event transmission unit 112 and the cursor movement direction limiting unit 504. When the movement direction of the mouse cursor is limited, the cursor movement direction limiting unit 504 limits the movement direction of the mouse cursor for the input event that has been handed over. Then, the cursor drawing unit 113 performs local echo with coordinates moved only in a limited movement direction from the immediately preceding coordinates. On the other hand, when the moving direction of the mouse cursor is not limited, the cursor movement direction limiting unit 504 draws the cursor at the coordinates of the input event via the cursor drawing unit 113. At the same time, the input event transmitting unit 112 transmits the delivered input event as it is to the server device 2C (step S2C). Here, since the moving direction of the mouse cursor is not limited, the cursor drawing unit 113 draws the cursor as it is at the position of P2 (210, 100).

サーバ装置2では、入力イベント受信部221が、クライアント装置1Cから送信された入力イベントを受信する。そして、入力イベント保存部222が、入力イベント受信部221によって受信された入力イベントをイベント履歴として保持する。ここでは、入力イベント保存部222は、入力イベントに含まれる移動先の座標P2をイベント履歴として保持する。加えて、入力イベント実行部223が、入力イベント受信部221によって受信された入力イベントをOS20に処理させる(ステップS3)。   In the server device 2, the input event receiving unit 221 receives the input event transmitted from the client device 1C. Then, the input event storage unit 222 holds the input event received by the input event reception unit 221 as an event history. Here, the input event storage unit 222 holds the coordinate P2 of the movement destination included in the input event as an event history. In addition, the input event execution unit 223 causes the OS 20 to process the input event received by the input event reception unit 221 (step S3).

そして、カーソル位置変更チェック部231は、OS20に処理させた結果であるマウスカーソルの座標を取得する(ステップS4)。そして、カーソル移動方向判定部501は、取得したマウスカーソルの座標が処理前のマウスカーソルの座標と一致していない、すなわちマウスカーソルが移動したので、マウスカーソル移動の限定方向を決定する(ステップS5C)。ここでは、カーソル移動方向判定部501は、前回の座標が(205、100)、今回の座標が(210、100)であるのでX軸方向をカーソル移動の限定方向と決定する。そこで、カーソル移動方向判定部501は、カーソル移動方向通知部502を介して、カーソル移動の限定方向(X軸)をクライアント装置1Cに通知する(ステップS6C)。   Then, the cursor position change check unit 231 acquires the coordinates of the mouse cursor that is the result of processing performed by the OS 20 (step S4). The cursor movement direction determination unit 501 determines the limited direction of mouse cursor movement because the acquired mouse cursor coordinates do not match the coordinates of the mouse cursor before processing, that is, the mouse cursor has moved (step S5C). ). Here, since the previous coordinates are (205, 100) and the current coordinates are (210, 100), the cursor movement direction determination unit 501 determines the X-axis direction as the cursor movement limited direction. Therefore, the cursor movement direction determination unit 501 notifies the client device 1C of the limited direction (X axis) of cursor movement via the cursor movement direction notification unit 502 (step S6C).

そして、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標P2が入力イベント履歴として保持されているか否かを、決定されたカーソル移動の限定方向を用いて判定する(ステップS7C)。ここでは、決定されたカーソル移動の限定方向がX軸方向であるので、処理後のマウスカーソルの座標P2のうちX軸の座標値「210」が入力イベント履歴として保持されているので、座標P2以前の履歴を削除する(ステップS8C)。このようにマウスの移動先が座標P2となる入力イベントの場合には、処理後のマウスカーソルの座標P2がOS20によって自動的に変更されていないので、クライアント装置1Cに対して座標の補正をしないで、処理を終了することとなる。なお、カーソル位置履歴チェック部232は、処理後のマウスカーソルの座標のうちカーソル移動の限定方向の座標値が入力イベント履歴として保持されていない場合、処理後のマウスカーソルの座標をクライアント装置1Cに送信する(ステップS9C)。   Then, the cursor position history check unit 232 determines whether or not the coordinate P2 of the processed mouse cursor is held as the input event history, using the determined limited direction of cursor movement (step S7C). Here, since the determined limited direction of cursor movement is the X-axis direction, the coordinate value “210” of the X-axis among the coordinates P2 of the mouse cursor after processing is held as the input event history, so the coordinate P2 The previous history is deleted (step S8C). As described above, in the case of an input event in which the movement destination of the mouse is the coordinate P2, the coordinate P2 of the processed mouse cursor is not automatically changed by the OS 20, and thus the coordinates of the client device 1C are not corrected. Thus, the process is terminated. Note that the cursor position history check unit 232 stores the coordinates of the mouse cursor after processing in the client device 1C when the coordinate value of the limited direction of cursor movement among the coordinates of the mouse cursor after processing is not held as the input event history. Transmit (step S9C).

クライアント装置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 event acquisition unit 111 acquires the next input event (step S1). Here, it is assumed that an input event in which the mouse destination is P3 ′ (215, 95), for example, is acquired. The input event acquisition unit 111 passes the acquired input event to the input event transmission unit 112 and the cursor movement direction limiting unit 504. The cursor movement direction limiting unit 504 limits the X axis direction, which is the movement direction of the mouse cursor, for the input event that has been handed over because the movement direction of the mouse cursor is limited to the X axis direction. Then, the cursor drawing unit 113 performs local echo at the coordinates P3 (215, 100) moved only in the limited X-axis direction from the immediately preceding coordinates P2. At the same time, the input event transmitting unit 112 transmits the delivered input event as it is to the server device 2C (step S2C).

以降、サーバ装置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 event acquisition unit 111 determines whether there is an unprocessed input event (step S11). When it is determined that there is no unprocessed input event (step S11; No), the input event acquisition unit 111 repeats the determination process until it is determined that there is an unprocessed input event. On the other hand, when it is determined that there is an unprocessed input event (step S11; Yes), the input event acquisition unit 111 acquires the input event (step S12).

続いて、カーソル移動方向限定部504は、マウスカーソルの移動方向を限定しているか否かを判定する(ステップS81)。マウスカーソルの移動方向を限定していると判定した場合(ステップS81;Yes)、カーソル移動方向限定部504は、限定中の移動方向と入力イベントからマウスカーソルの座標を算出する(ステップS82)。一方、マウスカーソルの移動方向を限定していないと判定した場合(ステップS81;No)、カーソル移動方向限定部504は、入力イベントからマウスカーソルの座標を抽出する(ステップS83)。   Subsequently, the cursor movement direction limiting unit 504 determines whether or not the movement direction of the mouse cursor is limited (step S81). When it is determined that the moving direction of the mouse cursor is limited (step S81; Yes), the cursor moving direction limiting unit 504 calculates the coordinates of the mouse cursor from the moving direction being limited and the input event (step S82). On the other hand, when it is determined that the moving direction of the mouse cursor is not limited (step S81; No), the cursor moving direction limiting unit 504 extracts the coordinates of the mouse cursor from the input event (step S83).

そして、カーソル描画部113は、算出または抽出したマウスカーソルの座標に基づいて、自装置のデスクトップ画面へマウスカーソルを再描画する(ステップS13)。   Then, the cursor drawing unit 113 redraws the mouse cursor on the desktop screen of its own device based on the calculated or extracted coordinates of the mouse cursor (step S13).

そして、入力イベント送信部112は、入力イベント取得部111によって取得された入力イベントをそのままサーバ装置2へ送信する(ステップS14)。そして、入力イベント処理部11は、次のイベントが発生するのを待つべく、ステップS11に移行する。   Then, the input event transmission unit 112 transmits the input event acquired by the input event acquisition unit 111 to the server device 2 as it is (step S14). Then, the input event processing unit 11 proceeds to step S11 in order to wait for the next event to occur.

[クライアント装置におけるカーソル移動方向限定処理の手順]
次に、クライアント装置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 direction receiving unit 503 determines whether or not a notification regarding the cursor movement direction has been received from the server device 2C (step S91). When it determines with not receiving the notification regarding a cursor movement direction (step S91; No), the cursor movement direction receiving part 503 repeats a determination process until the said notification is received.

一方、カーソル移動方向に関する通知を受信したと判定した場合(ステップ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 direction receiving part 503 receives the notification regarding the movement direction of a mouse cursor (step S92).

ここで、カーソル移動方向受信部503が、マウスカーソル移動の限定方向に関する通知を受信したか否かを判定する(ステップS93)。マウスカーソル移動の限定方向通知を受信したと判定した場合(ステップS93;Yes)、カーソル移動方向限定部504は、クライアント側でのマウスカーソルの移動方向を限定するように制御する(ステップS94)。そして、カーソル移動方向限定処理部50は、次のカーソル移動方向に関する通知を待つべく、ステップS91に移行する。   Here, it is determined whether the cursor movement direction receiving unit 503 has received a notification regarding the limited direction of mouse cursor movement (step S93). When it is determined that the limited direction notification of mouse cursor movement has been received (step S93; Yes), the cursor movement direction limiting unit 504 controls to limit the moving direction of the mouse cursor on the client side (step S94). Then, the cursor movement direction limiting processing unit 50 proceeds to step S91 to wait for a notification regarding the next cursor movement direction.

一方、マウスカーソル移動の限定方向に関する通知を受信していないと判定した場合(ステップ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 direction receiving unit 503 determines whether or not a limited release notification of mouse cursor movement has been received. (Step S95). When it is determined that the mouse cursor movement limitation release notification has not been received (step S95; No), the cursor movement direction limitation processing unit 50 proceeds to step S91 in order to wait for a notification regarding the next cursor movement direction.

一方、マウスカーソル移動の限定解除通知を受信したと判定した場合(ステップ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 direction limiting unit 504 performs control so as not to limit the movement direction of the mouse cursor on the client side (step S96). ). Then, the cursor movement direction limiting processing unit 50 proceeds to step S91 to wait for a notification regarding the next cursor movement direction.

[サーバ装置におけるカーソル位置補正処理の手順]
次に、サーバ装置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 change checking unit 231 determines whether or not a predetermined time has elapsed (step S41). When it is determined that the predetermined time has not elapsed (step S41; No), the cursor position change check unit 231 repeats the determination process until the predetermined time has elapsed.

一方、所定の時間経過したと判定した場合(ステップS41;Yes)、カーソル位置変更チェック部231は、マウスカーソルが移動したかどうかをチェックする(ステップS42)。   On the other hand, when it is determined that a predetermined time has elapsed (step S41; Yes), the cursor position change check unit 231 checks whether or not the mouse cursor has moved (step S42).

そして、マウスカーソルが移動していないと判定した場合(ステップ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 position correction unit 23 ends the cursor position correction process and proceeds to a screen information transfer process. On the other hand, when it is determined that the mouse cursor has moved (step S42; Yes), the cursor movement direction determination unit 501 determines the direction in which the mouse cursor has moved (step S101). Here, the cursor movement direction determination unit 501 determines whether or not the mouse cursor has moved only in the X-axis direction (step S102).

マウスカーソルが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 direction determination unit 501 has notified the limited direction (X-axis direction) of the mouse cursor movement at least once. Is determined (step S103). If it is determined that the notification has been made once or more (step S103; Yes), the cursor movement direction determination unit 501 determines that the notification is unnecessary, and proceeds to step S110. On the other hand, when it is determined that the notification has not been made once or more (step S103; No), the cursor movement direction notifying unit 502 notifies the client apparatus 1C of the X axis direction as the limited direction of cursor movement (step S104), and step S110. Migrate to

一方、マウスカーソルが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 direction determination unit 501 determines whether or not the mouse cursor has moved only in the Y-axis direction ( Step S105).

マウスカーソルが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 direction determination unit 501 has notified the limited direction (Y-axis direction) of the mouse cursor movement at least once. Is determined (step S106). When it is determined that the notification has been made once or more (step S106; Yes), the cursor movement direction determination unit 501 determines that the notification is unnecessary, and proceeds to step S110. On the other hand, when it is determined that the notification has not been made once or more (step S106; No), the cursor movement direction notifying unit 502 notifies the client apparatus 1C of the Y-axis direction as the cursor movement limited direction (step S107), and step S110. Migrate to

一方、マウスカーソルが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 direction determination unit 501 determines whether or not the restriction release of the movement direction of the mouse cursor has been notified. (Step S108). If it is determined that the restriction release of the movement direction of the mouse cursor has been notified (step S108; Yes), the cursor movement direction determination unit 501 determines that notification is not necessary, and proceeds to step S110. On the other hand, when it is determined that the restriction release of the movement direction of the mouse cursor has not been notified (step S108; No), the cursor movement direction notification unit 502 notifies the client device 1C of the restriction release of the cursor movement (step S109). The process proceeds to step S110.

カーソル位置履歴チェック部232は、移動後のマウスカーソルの位置に対応する入力イベントが存在するか否かを判定する(ステップS110)。例えば、カーソル位置履歴チェック部232は、変化があったマウスカーソルの位置が入力イベント履歴保持部21の入力イベントの履歴として保持されているいずれかの座標位置と一致しているか否かを判定する。このとき、カーソル位置履歴チェック部232は、カーソル移動方向が限定中である場合には、限定されている座標軸方向の座標値のみをチェックすれば良い。   The cursor position history check unit 232 determines whether there is an input event corresponding to the position of the mouse cursor after movement (step S110). For example, the cursor position history check unit 232 determines whether or not the position of the mouse cursor that has changed matches any of the coordinate positions held as the input event history in the input event history holding unit 21. . At this time, if the cursor movement direction is being limited, the cursor position history check unit 232 only needs to check the coordinate values in the limited coordinate axis direction.

そして、対応する入力イベントが存在すると判定した場合(ステップS110;Yes)、カーソル位置履歴チェック部232は、対応した入力イベントの履歴以前の履歴を削除する(ステップS44)。そして、カーソル位置補正部23は、カーソル位置補正処理を終了し、画面情報転送処理に移行する。   If it is determined that the corresponding input event exists (step S110; Yes), the cursor position history check unit 232 deletes the history before the history of the corresponding input event (step S44). Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

一方、対応する入力イベントが存在しないと判定した場合(ステップ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 history check unit 232 determines that the cursor position has been automatically changed by the OS 20. Then, the cursor position history check unit 232 causes the cursor position correction information transmission unit 233 to transmit the cursor position correction information to the client device 1C (step S45). Then, the cursor position correcting unit 23 ends the cursor position correcting process and proceeds to the screen information transfer process.

[実施例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 thin client system 9 performs processing based on the input event and the cursor position changes before and after processing, the cursor position before and after processing is one axis. It is determined whether or not only the direction has changed. If the server apparatus 2C determines that there is a change in only one axial direction, the position of the cursor that has changed in the changed axial direction is held in the input event history holding unit 21. It is determined whether or not it coincides with the cursor position. According to such a configuration, the server apparatus 2C reduces the cost of the comparison process by using the cursor position in the axial direction in which the comparison with the cursor position held in the input event history holding unit 21 has changed. can do.

また、サーバ装置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 OS 20 before and after the processing of the input event has been described. However, the present invention is not limited to this, and a driver or application software may be used instead of the OS 20, and any software or hardware may be used as long as the cursor position is automatically changed before and after the input event processing.

また、サーバ装置2は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した入力イベント処理部22と、カーソル位置補正部23と、画面情報転送部24等の各機能を搭載することによって実現することができる。また、クライアント装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した入力イベント処理部11と、画面描画部12等の各機能を搭載することによって実現することができる。   In addition, the server device 2 is equipped with functions such as the input event processing unit 22, the cursor position correction unit 23, and the screen information transfer unit 24 in an information processing apparatus such as a known personal computer or workstation. Can be realized. In addition, the client device 1 can be realized by mounting each function such as the input event processing unit 11 and the screen drawing unit 12 on an information processing apparatus such as a known personal computer or workstation.

また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、カーソル位置変更チェック部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 change check unit 231 and the cursor position history check unit 232 may be integrated as one unit. On the other hand, the cursor position history check unit 232 may be distributed to a determination unit that determines whether or not the cursor position is held in the history, a deletion unit that deletes the history when held, and the like. . Further, a storage unit such as the input event history holding unit 21 may be connected as an external device of the server device 2 via a network.

また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図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 server device 2 illustrated in FIG. 1 will be described. FIG. 22 is a diagram illustrating an example of a computer that executes a cursor position correction program.

図22に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207を有する。そして、各装置201〜207は、バス208に接続される。   As illustrated in FIG. 22, the computer 200 includes a CPU 201 that executes various arithmetic processes, an input device 202 that receives input of data from a user, and a display 203. The computer 200 also includes a reading device 204 that reads a program and the like from a storage medium, and an interface device 205 that exchanges data with other computers via a network. The computer 200 also includes a RAM 206 that temporarily stores various information and a hard disk device 207. The devices 201 to 207 are connected to the bus 208.

ハードディスク装置207は、カーソル位置補正プログラム207a、カーソル位置補正関連情報207bを記憶する。CPU201は、カーソル位置補正プログラム207aを読み出して、RAM206に展開する。カーソル位置補正プログラム207aは、カーソル位置補正プロセス206aとして機能する。   The hard disk device 207 stores a cursor position correction program 207a and cursor position correction related information 207b. The CPU 201 reads the cursor position correction program 207 a and develops it in the RAM 206. The cursor position correction program 207a functions as a cursor position correction process 206a.

例えば、カーソル位置補正プロセス206aは、入力イベント処理部22、カーソル位置補正部23および画面情報転送部24に対応する。カーソル位置補正関連情報207bは、入力イベント履歴保持部21に対応する。   For example, the cursor position correction process 206a corresponds to the input event processing unit 22, the cursor position correction unit 23, and the screen information transfer unit 24. The cursor position correction related information 207 b corresponds to the input event history holding unit 21.

なお、カーソル位置補正プログラム207aについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからカーソル位置補正プログラム207aを読み出して実行するようにしても良い。   The cursor position correction program 207a does not necessarily have to be stored in the hard disk device 207 from the beginning. For example, the program is stored in a “portable physical medium” such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card inserted into the computer 200. Then, the computer 200 may read out and execute the cursor position correction program 207a from these.

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 Client device 10, 20 OS
DESCRIPTION OF SYMBOLS 11 Input event process part 12 Screen drawing part 111 Input event acquisition part 112 Input event transmission part 113 Cursor drawing part 121 Cursor position correction information receiving part 122 Cursor position correction part 123 Screen information receiving part 124 Image expansion process part 125 Screen information drawing part 2 Server device 21 Input event history holding unit 22 Input event processing unit 23 Cursor position correction unit 24 Screen information transfer unit 221 Input event reception unit 222 Input event storage unit 223 Input event execution unit 231 Cursor position change check unit 232 Cursor position history check 233 Cursor position correction information transmission unit 241 Screen information acquisition unit 242 Screen update determination unit 243 Image compression processing unit 244 Screen information transmission unit

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つの軸方向のみに変化があったか否かを判定し、1つの軸方向のみに変化があったと判定した場合、変化があった軸方向について変化があったポインタの位置が前記イベント履歴に記憶されているいずれかのイベント情報のポインタの位置と一致しているか否かを判定する
処理を前記サーバが実行することを特徴とする請求項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.
前記判定する処理は、1つの軸方向のみに変化があったと判定した場合、変化があった軸方向にポインタの移動を限定する旨を前記クライアントに通知する
処理を前記サーバがさらに実行する
ことを特徴とする請求項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.
JP2011189651A 2011-08-31 2011-08-31 Pointer position correction method, pointer position correction program, and server apparatus Active JP5737082B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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