Application-specific settings for hosted applications that use client-side and host-side tablet device drivers

The host computer system with application-specific tablet device drivers facilitates seamless switching between local and hosted applications, addressing setting mismatches and enhancing system flexibility and performance for pen input devices.

JP2024546001APending Publication Date: 2024-12-17WACOM CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024526721
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-11-11
Filing Date
2022-10-27
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

Existing systems face challenges in seamlessly switching between client-side and host-side applications for input devices like pen tablets due to mismatched device settings, leading to system complexity and limited flexibility.

Method used

A host computer system provides hosted application services with a host-side tablet device driver that includes application-specific settings, allowing for seamless switching between client-side and host-side applications by using dedicated driver-to-driver connections or monitoring the currently used application to apply appropriate settings.

Benefits of technology

Enables easy switching between local and hosted applications with optimized device settings, reducing system complexity and time delays, and supporting multiple tablet devices with consistent performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2024546001000001_ABST
    Figure 2024546001000001_ABST
Patent Text Reader

Abstract

The host system includes a device driver with application-specific settings for the hosted application. Input data is generated by one or more tablet devices in the client computer system. A host-side data transfer application receives and transfers the input data to a host-side driver, which sends the input data to the hosted application. The tablet data sent to the hosted application is configured according to the application-specific settings of the host-side driver, which may support multiple application programming interfaces. A dedicated inter-driver connection may also be used to transmit data between the client-side driver and the host-side driver. As another example, the host sends an identifier of the currently used hosted application to the client-side driver, which uses the identifier to reference and apply application-specific settings to the tablet data sent to the hosted application. This eliminates the need for a host-side driver while still allowing application-specific settings for the hosted application.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Patent Application No. 17 / 524,600, filed November 11, 2021, the entire disclosure of which is hereby incorporated by reference into this specification for all purposes.

[0002] In a typical remote or cloud computing scenario, an end user generates input data at a client computer system (e.g., via a touch screen, keyboard, or other input device), which transmits the input data to a host computer system, which provides the input data to an application running on the host. The hosted application processes the input data and generates output data, such as video data, that indicates the results of the input. In the case of an input device such as a pen tablet or touch screen, such results may include cursor movement, digitally linked handwriting or drawings, and the like.

[0003] In previous systems, input data is delivered to the host in a variety of ways, but these previous techniques have significant technical problems. In one example, the client system redirects input data obtained from a universal serial bus (USB) interface to a device driver on the host for processing. The client computer system may have a client-side device driver with unique device settings that match the local application, but those settings are not available to the host system. Separate device settings are required for client-side and hosted applications, which adds complexity in use cases where a user wants to seamlessly switch between client-side and hosted applications without manually adjusting device settings. In a second example, the client system processes the input data in a client-side device driver before transmitting the data to the host, which forwards the input data to the hosted application without using a host-side driver. In this second example, the client-side device driver will generate the data that is ultimately transmitted to the host system, but the application-specific settings are not available to the hosted application, which limits the flexibility of the system. Summary of the Invention [Problem to be solved by the invention]

[0004] This Summary is provided to provide a brief overview of a series of (various) aspects that are described in more detail below in the Detailed Description. This Summary is not intended to identify key features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. [Means for solving the problem]

[0005] In one aspect, a host computer system provides hosted application services to a client computer system including a pen input tablet device. The host computer system includes one or more processors, a network interface, and a non-volatile computer readable medium, the non-volatile computer readable medium including at least one hosted application configured to be accessed by a user of the client computer system, a host-side tablet device driver including application-specific settings of the at least one hosted application, a host-side data transfer application, and computer readable instructions configured to cause the host computer system to receive input data generated by a pen input tablet device at the client computer system by the host-side data transfer application via the client-side data transfer application, transmit the input data generated by the pen input tablet device from the host-side data transfer application to the host-side tablet device driver, and transmit the input data from the host-side tablet device driver to the at least one hosted application. The input data is configured according to the application-specific settings of the host-side tablet device driver. In some embodiments, the input data generated by the pen input tablet device is provided to the client-side data transfer application by the client-side tablet device driver.

[0006] In another aspect, a non-volatile computer readable medium has computer readable instructions stored thereon configured to cause a host computer system to perform a method including steps including receiving, by a host-side tablet device driver from a client-side tablet device driver, composite tablet data generated by a plurality of tablet devices at the client computer system, the plurality of tablet devices including at least one pen input tablet device, and transmitting the composite tablet data from the host-side tablet device driver to at least one hosted application at the host computer system, the at least one hosted application being configured to be accessed by a user of the client computer system and to process the composite tablet data, the composite tablet data being configured according to application specific settings defined by the host-side tablet device driver.

[0007] In some embodiments, the composite tablet data is received by the host-side tablet device driver from the client-side tablet device driver via a dedicated driver-to-driver connection, in other embodiments, the composite tablet data is received by the host-side tablet device driver via a client-side data transfer application, such as a web browser application or other data transfer module.

[0008] In another aspect, a host computer system provides hosted application services to a client computer system including a pen tablet device, the host computer system comprising one or more processors, a network interface, and a non-volatile computer readable medium, the non-volatile computer readable medium comprising a plurality of hosted applications configured to be accessed by users of the client computer systems, and computer readable instructions configured to cause the host computer system to receive input data generated by a pen tablet device at the client computer system, determine which one of the plurality of hosted applications is currently in use, transmit the input data generated by the pen tablet device to the currently in use hosted application, transmit an identifier of the currently in use hosted application from the host computer system to a client-side tablet device driver, receive input data generated by the pen tablet device at the client computer system, and transmit the input data generated by the pen tablet device to the currently in use hosted application.

[0009] In some embodiments, an identifier for the Hosted Application currently in use is configured to cause the client-side tablet device driver to define application-specific settings based on the identifier.

[0010] In some embodiments, the host computer system further includes a monitoring utility, and an identifier of the Hosted Application currently in use is sent from the monitoring utility to the client-side tablet device driver, in other embodiments, the host-side driver includes functionality to identify the Hosted Application currently in use, and the identifier is sent from the host-side driver to the client computer system.

[0011] In some embodiments, the identifier is sent from the host computer system to the client-side tablet device driver over a dedicated connection, while in other embodiments, the identifier is sent from a host-side data transfer application to a client-side data transfer application, the client-side data transfer application configured to forward the identifier to the client-side tablet device driver.

[0012] In some embodiments, the input data is received by the host-side tablet device driver from the client-side tablet device driver via a dedicated driver-to-driver connection, while in other embodiments, the input data is received by the host-side data transfer application from the client-side data transfer application.

[0013] In some embodiments, input data generated by a pen input tablet device is included in composite tablet data generated by multiple tablet devices.

[0014] In some embodiments, the identifier of the currently used Hosted Application is configured to define to the client-side tablet device driver client-side application-specific settings associated with the currently used Hosted Application, in such embodiments, the client-side tablet device driver applies the client-side application-specific settings to further input data generated by the pen input tablet device and / or transmits the client-side application-specific settings to the host computer system to update corresponding settings in the host-side tablet device driver.

[0015] In some embodiments, the identifier is configured to cause the client-side tablet device driver to determine client-side application-specific settings for the client-side version of the application and to apply the same client-side application-specific settings to further input data generated by the pen input tablet device when the host computer system is running the host-side version of the application.

[0016] In another aspect, a host computer system includes a plurality of hosted applications configured to be accessed by a user of a client computer system, a host-side tablet device driver, a host-side data transfer application, and computer-readable instructions configured to cause the host computer system to receive input data generated by a pen input tablet device at the client computer system by the host-side data transfer application via the client-side data transfer application, transmit the input data generated by the pen input tablet device from the host-side data transfer application to the host-side tablet device driver, and transmit the input data from the host-side tablet device driver to a plurality of available application programming interfaces selected by each hosted application. In some embodiments, the input data is adjusted according to application-specific settings provided by the host-side tablet device driver. In other embodiments, the host computer system is configured to send an identifier of a currently used hosted application to the client-side tablet device driver, and the input data received by the host system is adjusted by the client-side tablet device driver according to application-specific settings for the currently used hosted application. [Brief description of the drawings]

[0017] The foregoing aspects and many of the attendant advantages will become more readily appreciated as the same becomes better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings.

[0018] [Figure 1] 1 is a block diagram of a computer system incorporating aspects of a first exemplary embodiment; [Diagram 2]FIG. 11 is a block diagram of a computer system incorporating aspects of a second exemplary embodiment. [Diagram 3] FIG. 11 is a block diagram of a computer system incorporating aspects of a third exemplary embodiment. [Figure 4] FIG. 11 is a block diagram of a computer system incorporating aspects of the fourth exemplary embodiment. [Diagram 5] FIG. 13 is a block diagram of a computer system including aspects of the fifth exemplary embodiment. [Figure 6] FIG. 13 is a block diagram of a computer system incorporating aspects of the sixth exemplary embodiment. [Figure 7] FIG. 2 is a flow diagram of an exemplary process performed by a host computer system including aspects of the exemplary embodiments described herein. [Figure 8] FIG. 2 is a flow diagram of an exemplary process performed by a host computer system including aspects of the exemplary embodiments described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] In the embodiments described herein, a client computer system (such as a desktop computer, a notebook computer, or any other suitable computing device or combination of computing devices) is configured to access one or more applications hosted by a host computer system, such as a cloud computing system. The client computer system is communicatively coupled to one or more tablet devices, such as a pen display, a pen tablet, or other tablet device. In some embodiments, the tablet device is configured to collect tablet data in the form of pen position or pressure data, pen or tablet button data, touch input data, and the like, which may be generated when a user produces drawings, handwritten notes or characters, signatures, gestures, and the like, in the context of the hosted application(s). The embodiments disclosed herein provide novel approaches to improve performance, simplify system design, and / or improve user experience in scenarios where a client computer system accesses hosted applications, such as drawing applications, digital painting applications, digital photo editing applications, and the like.

[0020] In the embodiments described herein, tablet device drivers support the operation of tablet devices by providing application-specific settings for those devices, either on the client side or the host side. A device driver is computer program code used by a computer system that controls or supports the operation of a hardware device. The driver functionality of a tablet device may be implemented in a variety of computer systems. For example, in some embodiments described herein, a client computer system to which a tablet device is communicatively coupled includes a client-side driver, while a host computer system that receives input data from the client computer system rather than directly from the tablet device includes a host-side driver with application-specific settings for hosted applications.

[0021] In one embodiment, a client-side driver receives input from one or more tablet devices and provides the input data to a client-side data transfer application, which transmits the input data to a host-side data transfer application. The host-side data transfer application then provides the input data to a host-side driver. The host-side driver includes application-specific tablet device settings for the hosted application (e.g., pen settings, touch settings, button settings, etc.). The host-side driver provides the input data to the hosted application(s), which processes the input data and generates output data. The output data may include, for example, video data showing the results of the input (e.g., cursor movement, lines drawn on a virtual canvas, etc.). The host computer system then transmits the output data to the client computer system for display in an efficient manner. This display allows a user to work on a digital illustration in a hosted application without having to manually configure device settings for the hosted application, for example, and without noticeable time delays. In another embodiment, the client-side data transfer application and the host-side data transfer application are omitted, allowing for a dedicated inter-driver connection between the client-side driver and the host-side driver, which may simplify the design and reduce time delays in some situations.

[0022] In another embodiment, instead of relying on the host-side driver for application-specific settings, the host computer system monitors which Hosted Applications are currently in use and sends an identifier for that application to the client computer system, which in turn selects device settings based on the identifier that ensure the proper configuration of the Hosted Application currently in use.

[0023] In another embodiment, a host computer system includes multiple Hosted Applications and a host-side driver that supports multiple application programming interfaces (APIs) for the Hosted Applications, where the host-side driver provides input data to the multiple APIs, and the Hosted Applications select from among the available APIs to obtain input data from the appropriate API for that application.

[0024] These embodiments, as well as other variations and alternatives, are described in further detail below.

[0025] In the embodiments described herein, the client computer system receives input data from one or more tablet devices (e.g., pen event data such as coordinate data and pressure data, or input data other than pen event data (e.g., context data, biometric data, touch data, button data, etc.)). The content of the input data (e.g., pen resolution, pressure level, pen tilt support, button input, etc.) may depend on the software being used with the tablet device or the configuration or capabilities of the tablet device itself. In some embodiments, the tablet device uses electromagnetic resonance (EMR) technology, in which case the tablet device incorporates a sensor substrate that detects the movement of the pen. Energy is induced in the resonant circuit of the pen by the electromagnetic field generated by the sensor substrate surface. The resonant circuit of the pen then utilizes this energy to return an electromagnetic signal to the sensor substrate surface. As long as the pen remains within close enough range of the sensor substrate to continue to receive signals from the pen, the substrate surface detects the coordinate position of the pen at regular time intervals, even if the electronic pen does not touch the sensor substrate surface. (The effective signal range may vary depending on the particular technology being used, but is typically on the order of a few millimeters.)

[0026] Alternatively, other input technologies can be used. For example, the electronic pen may use other wireless technologies or may be wired to the digitizer. As another example, the electronic pen may or may not be detectable away from the surface of the digitizer. As another example, the electronic pen may be powered or unpowered. A powered pen may receive power via a wire connected to an external power source or via an on-board battery. As another example, handwritten data can be input without the electronic pen (e.g., via a stylus on a pressure-sensitive digital writing pad, a touch screen, or some other input device that does not require an electronic pen).

[0027] Regardless of how the input data is collected, the input data provided by a tablet device may include pen event information, device information, and / or context information regarding the context in which the input was made. Pen event information may include the x / y position of the pen tip on or above the digitizer surface and the time since the start of handwriting. In addition to x / y coordinate values, pen event information may optionally include additional information subject to the capabilities of the electronic handwriting device, such as pressure (pen pressure), angle (azimuth, elevation, and / or rotation), and pen down status.

[0028] First Exemplary Embodiment

[0029] This section describes a first exemplary embodiment in which a client computer system (such as a desktop computer, a notebook computer, or any other suitable computing device or combination of devices) is communicatively coupled to multiple tablet devices that provide input in the context of one or more hosted applications. In the first exemplary embodiment, a host-side tablet device driver contains application-specific tablet device settings for the hosted application(s).

[0030] FIG. 1 is a block diagram of a system according to a first exemplary embodiment. In the example shown in FIG. 1, a client computer system 100 communicates with a host computer system 150 through a secure gateway 140 over a network such as the Internet. The client computer system 100 is configured to provide access to one or more hosted applications 170 hosted by the host computer system 150. The client computer system 100 displays a hosted application user interface (UI) 112 associated with the hosted application 170. In the example shown in FIG. 1, this is done in a cloud computing vendor (CCV) client agent 110, which also includes a client-side data transfer application 114. In an exemplary scenario, a user enters account data (e.g., account ID and password) through the hosted application UI 112, and the client computer system 100 transmits an authentication request to the host computer system 150, which checks that the authentication request is associated with a valid user before granting access to the hosted application 170. Optionally, the client computer system 100 may also run one or more local applications 120 .

[0031] The client computer system 100 receives input from a number of tablet devices that capture electronic pen input. In this example, the tablet devices include a pen display 102 (e.g., a Wacom® One, Cintiq, or Cintiq Pro creative pen display, or some other pen display device) and a pen tablet 106 (e.g., a Wacom® Intuos, Intuos Pro, or One by Wacom® creative pen tablet, or some other tablet device) with corresponding pens 104 and 108. The pen display 102 includes a display device (e.g., an LCD screen) that displays, for example, an electronic document, user interface, or graphic artwork for which the pen display 102 is used to provide input. Alternatively, other electronic handwriting capture devices may be used.

[0032] The tablet devices provide input data (also referred to herein as tablet data) to a client-side tablet device driver 130. In the embodiment shown in FIG. 1, the client-side tablet device driver 130 merges the tablet data from the pen display 102 and the pen tablet 106 into composite tablet data. In some embodiments, the composite tablet data is presented in the form of a virtual tablet dataset, which combines input data from different tablets into a single composite dataset as if associated with a single tablet device. The client-side tablet device driver 130 transfers the composite tablet data, possibly together with non-tablet data such as keyboard data, mouse data, etc., to the client-side data transfer application 114 for transmission to the host computer system 150. In this way, the system can handle input from multiple tablet devices using a single client-side tablet device driver 130.

[0033] Alternatively, if only one tablet device is present, the client-side tablet device driver 130 transfers the input data from the tablet device to the client-side data transfer application 114 for transmission to the host computer system 150.

[0034] In the embodiment shown in FIG. 1, the host computer system 150 includes a CCV host agent 160, which includes a host-side data transfer application 164. In this embodiment, the host-side data transfer application 164 receives composite tablet data from the client-side data transfer application 114 and transfers the composite tablet data to a host-side tablet device driver 180 that includes application-specific tablet device settings (e.g., pen settings, touch settings, button settings, etc.) for the hosted applications. The host-side tablet device driver 180 adjusts the tablet data based on application-specific settings for one or more hosted applications 170 and provides the adjusted tablet data to a number of APIs 190 and 192. This allows an active hosted application to select an appropriate API to obtain the tablet data for that application. The APIs present on the host computer system 150 may vary depending on the requirements of the hosted application(s) 170. In one exemplary scenario, the available APIs include Windows Ink available from Microsoft Corporation, Wintab API available from Wacom Co., Ltd, and macOS API available from Apple Inc. Alternatively, other APIs or combinations of APIs may be used.

[0035] One or more hosted applications 170 process the conditioned tablet data and provide output to the CCV host agent 160. The CCV host agent 160 transmits the output to the client computer system 100 for display to a user via the CCV client agent 110.

[0036] Settings of the client-side tablet device driver 130 may be adjusted (e.g., by an end user or administrator) via a control panel 132. Similarly, settings of the host-side tablet device driver 180 may be adjusted using a control panel 182. Other options for adjusting settings using host-side or client-side device drivers are described in more detail below in the context of other exemplary embodiments.

[0037] The first exemplary embodiment has several technical advantages. First, the combination of the host-side tablet device driver 180 with application-specific settings for the hosted application(s) 170 on the host computer system 150 and the client-side tablet device driver 130 on the client computer system 100 allows a user to easily switch between using the tablet device to provide input to the client-side local application(s) 120 and the host-side hosted application(s) 170. In some embodiments, the host-side tablet device driver 180 supports multiple APIs and is not limited to the pen input API that is part of the operating system.

[0038] Second Exemplary Embodiment

[0039] This section describes a second exemplary embodiment, in which a client computer system is communicatively coupled to a tablet device that can be used to provide input to one or more hosted applications using a dedicated inter-driver connection. In the second exemplary embodiment, a host-side tablet device driver contains application-specific tablet device settings for the hosted application(s) and communicates with a client-side driver using a dedicated inter-driver connection.

[0040] In some embodiments, the dedicated inter-driver connection uses the same secure gateway that may be used to receive Hosted Application UI data for display, but is separate from the connection between the Client Agent and Host Agent that is used to carry non-tablet data (e.g., keyboard or mouse data) or output from the Hosted Application(s).

[0041] 2 is a block diagram of a system according to a second exemplary embodiment. In the example shown in FIG. 2, a CCV client agent 110 receives hosted application UI data, but the client-side data transfer application 114 is omitted. The client computer system 100 receives input from a tablet device, such as a pen tablet 106. Alternatively, other input devices may be used.

[0042] The tablet device provides tablet data to a client-side tablet device driver 130. In the embodiment shown in Figure 2, the client-side tablet device driver 130 transfers the tablet data to a host-side tablet device driver 180 in a host computer system 150 via a secure gateway 140 in a dedicated driver-to-driver connection. The host computer system 150 includes a CCV host agent 160, but the host-side data transfer application 164 is omitted in favor of the dedicated driver-to-driver connection. The host-side tablet device driver 180 includes application-specific settings for one or more hosted applications 170.

[0043] 2, the host-side tablet device driver 180 provides tablet data to a single API 192 through which one or more hosted applications 170 retrieve the tablet data. Alternatively, a multiple API arrangement may be used. One or more hosted applications 170 process the tablet data and provide output to the CCV host agent 160. The CCV host agent 160 transmits the output to the client computer system 100 for display.

[0044] The second exemplary embodiment has several technical advantages. As with the first exemplary embodiment, the combination of the host-side tablet device driver 180 with application-specific settings for the hosted application(s) 170 and the client-side tablet device driver 130 on the client computer system 100 allows the user to easily switch between the client-side local application(s) 120 and the host-side hosted application(s) 170. The dedicated inter-driver connection allows the second exemplary embodiment to omit modules such as the client-side data transfer application 114 and the host-side data transfer application 164, thus simplifying the system design. In some embodiments, the client-side tablet device driver 130 can send custom data to the host-side tablet device driver 180. Such custom data provided by the client-side tablet device driver 130 can be used, for example, to optimize the performance of the host-side tablet device driver 180 or to enable support of additional features such as ExpressKeys data available on Wacom Intuos Pro pen tablets. The second exemplary embodiment also provides the option of simplifying the design of systems that are limited to a single tablet device per client, since the client-side tablet device driver 130 does not need to be configured to provide composite tablet data, and the host-side tablet device driver 180 does not need to be configured to handle composite tablet data.

[0045] Third Exemplary Embodiment

[0046] This section describes a third exemplary embodiment in which a client computer system is communicatively coupled to multiple tablet devices that can be used to provide input to one or more hosted applications using dedicated inter-driver connections.

[0047] FIG. 3 is a block diagram of a system according to a third exemplary embodiment. In the embodiment shown in FIG. 3, a client computer system 100 receives input from multiple tablet devices, such as a pen display 102 and a pen tablet 106. Alternatively, other electronic handwriting capture devices may be used. In the embodiment shown in FIG. 3, similar to the embodiment shown in FIG. 1, a client-side tablet device driver 130 aggregates tablet data from the tablet devices into composite tablet data, but unlike the embodiment shown in FIG. 1, the client-side tablet device driver 130 transfers the composite tablet data to a host-side tablet device driver 180 of a host computer system 150 through a secure gateway 140 in a dedicated driver-to-driver connection. The host computer system 150 includes a CCV host agent 160, but the host-side data transfer application 164 is omitted in favor of a dedicated driver-to-driver connection.

[0048] The host-side tablet device driver 180 includes application-specific settings for one or more hosted applications 170. In the embodiment shown in FIG. 3, the host-side tablet device driver 180 adjusts the tablet data based on the application-specific settings and provides the adjusted tablet data to a single API 192, through which one or more hosted applications 170 retrieve the tablet data. Alternatively, an arrangement combining multiple APIs may be used. One or more hosted applications 170 process the tablet data and provide output to the CCV host agent 160. The CCV host agent 160 transmits the output to the client computer system 100 for display.

[0049] The third exemplary embodiment has several advantages. As in the first exemplary embodiment, the combination of the host-side tablet device driver 180 with application-specific settings for the hosted application(s) 170 and the client-side tablet device driver 130 on the client computer system 100 allows the user to easily switch between the client-side local application(s) 120 and the host-side hosted application(s) 170. The third exemplary embodiment also allows the use of multiple tablet devices, and the settings for the client-side tablet device driver 130 that are applicable to those devices can be automatically used on the host computer system 150. As in the second exemplary embodiment, the dedicated inter-driver connection allows the third exemplary embodiment to omit additional modules such as the client-side data transfer application 114 and the host-side data transfer application 164, or to avoid using additional modules at least for the transmission of composite tablet data, while allowing the client-side tablet device driver 130 to send custom data to the host-side tablet device driver 180. Such custom data provided by the client-side tablet device driver 130 can be used, for example, to optimize the performance of the host-side tablet device driver 180 or to enable support of additional features.

[0050] Fourth, Fifth, and Sixth Exemplary Embodiments

[0051] This section describes fourth, fifth, and sixth exemplary embodiments in which a host computer system includes multiple Hosted Applications and functionality to indicate to a client-side driver which of the Hosted Applications is currently in use, allowing the client computer system 100, via the client-side driver, to provide application-specific settings for both the local and Hosted versions of the applications.

[0052] FIG. 4 is a block diagram of a system according to a fourth exemplary embodiment. In the embodiment shown in FIG. 4, the client computer system 100 receives input from multiple tablet devices, such as a pen display 102 and a pen tablet 106. In the embodiment shown in FIG. 4, similar to the embodiment shown in FIG. 3, the client-side tablet device driver 130 aggregates tablet data from the tablet devices into composite tablet data and transfers the composite tablet data to the host-side tablet device driver 180 in a dedicated inter-driver connection. The host-side tablet device driver 180 adjusts the tablet data based on application-specific settings and provides the adjusted tablet data to a single API 192, through which the hosted application 170 retrieves the tablet data. Alternatively, an arrangement combining multiple APIs can be used. The hosted application 170 processes the tablet data and provides an output, which is transmitted by the host computer system 150 to the client computer system 100 for display.

[0053] In the embodiment shown in FIG. 4, the host-side tablet device driver 180 also monitors which of the Hosted Applications 170 is currently in use and sends the application's identifier back to the client-side tablet device driver 130, which receives the identifier and looks up the corresponding settings for the Hosted Application in use based on the identifier. This feature allows the client-side tablet device driver 130 to determine the settings for the Hosted Application in use. As an option, the client-side tablet device driver 130 can send application-specific settings to the host-side tablet device driver 180 using a dedicated driver-to-driver connection, allowing the host-side tablet device driver 180 to adjust the composite tablet data based on those settings. Alternatively, the client-side tablet device driver 130 can itself adjust the tablet data based on those application-specific settings and send the appropriately adjusted composite tablet data to the host-side tablet driver. This alternative is useful. This is because it eliminates the need for the host-side driver to adjust the tablet data based on application-specific settings, and it eliminates the need for the host-side tablet device driver 180 to store such settings separately.

[0054] FIG. 5 is a block diagram of a system according to a fifth exemplary embodiment. In the example shown in FIG. 5, as in the first exemplary embodiment, the client-side tablet device driver 130 transfers the composite tablet data to the client-side data transfer application 114 for transmission to the host computer system 150. In the host computer system 150, the host-side data transfer application 164 receives the composite tablet data and transfers it to the host-side tablet device driver 180. However, the fifth exemplary embodiment differs from the first exemplary embodiment in that, as in the fourth exemplary embodiment, the host-side tablet device driver 180 includes functionality to monitor which of the hosted applications 170 are currently in use so that the client-side driver can adjust the tablet data based on application-specific settings and then send the tablet data appropriately adjusted for that application to the host-side tablet driver. In the fifth exemplary embodiment, the host computer system 150 uses a dedicated inter-driver connection to return an identifier of the currently used application to the client-side tablet device driver 130.

[0055] FIG. 6 is a block diagram of a system according to a sixth exemplary embodiment. In the example shown in FIG. 6, a client computer system 100 communicates with a host computer system 150 through a network such as the Internet via a secure gateway 140. The client computer system 100 displays a UI 112 associated with a hosted application. The client computer system 100 also includes a local application 120. A client-side tablet device driver 130 consolidates tablet data from multiple tablet devices into composite tablet data and provides the composite tablet data to a CCV client agent 110, which forwards the composite tablet data to the host computer system 150 via a secure gateway 140. The host agent 160 then forwards the tablet data to a hosted application 170 via an API 192. The hosted application 170 processes the tablet data and generates an output. The output is sent back to the client computer system 100 via the secure gateway 140 for display.

[0056] In the embodiment shown in FIG. 6, similar to the fourth exemplary embodiment shown in FIG. 4, the host computer system 150 includes functionality to monitor which of the Hosted Applications 170 are currently in use and return an identifier of that application to the client-side tablet device driver 130 (e.g., via the secure gateway 140). However, in the embodiment shown in FIG. 6, this functionality is provided by the application monitor utility 680 rather than the host-side tablet device driver 180. The client-side tablet device driver 130 receives the identifier of the currently in use application from the application monitor utility 680 and looks up and applies the corresponding settings for the tablet data that are appropriate for use with that application. This design makes it possible to omit the host-side tablet device driver 180 entirely from the host computer system 150, while still providing the functionality to apply the appropriate device settings to the Hosted Applications 170.

[0057] The fourth, fifth, and sixth exemplary embodiments have several advantages. In addition to having some of the advantages described above with respect to the first, second, and third exemplary embodiments, by configuring the host computer system 150 to monitor and transmit (either by the host-side tablet device driver 180, the application monitor utility 680, or in some other manner) the identifier of the currently used hosted application, and by configuring the client-side tablet device driver 130 to look up and apply the appropriate tablet data settings for the application identified based on the identifier, the client can not only control the tablet settings for multiple tablets, but can also apply such settings to both the hosted and local applications. The same application-specific settings can be automatically applied for the hosted and local versions of the application. This allows the user to easily switch between using, for example, the local application(s) 120 on the client side and the hosted application 170 on the host side, and avoids the host computer system 150 storing application-specific settings for each individual client. In an exemplary scenario, a user may access a hosted application on a different host system based on an instruction of which hosted application to use and select appropriate tablet device settings for that hosted application based on information stored on the client computer system 100.

[0058] Many alternatives to the above-described embodiment are possible. As just one example, a web browser may be used to access a Hosted Application rather than a dedicated CCV client agent. In one such example, the web browser would function as a CCV client agent for purposes of accessing the Hosted Application. In this type of alternative implementation, the client computer system may communicate with the Hosted Computer System over a network, such as the Internet, via an HTTPS connection, and may display a UI associated with the Hosted Application in the browser. Whereas a browser may have limitations in terms of the types of protocols it can use to transmit data, a dedicated CCV client agent may not be so limited, although this may be an acceptable tradeoff in some scenarios, such as when a dedicated CCV client agent is not available or does not exist on the client computer system.

[0059] Example Process

[0060] The example processes described in this section may be performed by one or more of the embodiments of a computer system described herein, or by any other suitably configured computer system.

[0061] FIG. 7 is a flow diagram of an exemplary process 700 performed by a host computer system (e.g., host computer system 150 of FIG. 1, 2, 3, 4, or 5) according to one or more embodiments described herein. In step 710, a host-side tablet device driver of the host computer system receives tablet data generated by one or more tablet devices in the client computer system. In some embodiments, the tablet data is composite tablet data including input data from multiple tablet devices. In some embodiments, a host-side data transfer application (e.g., a data transfer application of a CCV host agent) receives tablet data from a client-side data transfer application (e.g., a web browser or a data transfer application of a CCV client agent) and sends the tablet data to the host-side tablet device driver. In some embodiments, the host-side tablet device driver receives the tablet data from the client-side tablet device driver via a dedicated inter-driver connection. In step 720, the host-side tablet device driver sends the tablet data to at least one hosted application, where the tablet data is configured according to application-specific settings defined by the host-side tablet device driver. The application-specific settings defined by the host-side tablet device driver can be manually or automatically updated. In some embodiments, the client computer system sends the client-side application-specific settings to the host computer system to update the corresponding settings in the host-side tablet device driver.For example, the client computer system receives an identifier of the currently used Hosted application, selects client-side application-specific settings based on the identifier, and then sends the client-side application-specific settings to the host computer system to update corresponding settings in the host-side tablet device driver. In step 730, the Hosted application processes the tablet data that is configured according to the application-specific settings defined by the host-side tablet device driver.

[0062] In some embodiments, the host-side tablet device driver sends the tablet data to multiple available APIs associated with the Hosted Applications. For example, a host computer system may include multiple Hosted Applications configured to select an appropriate one of the available APIs to obtain the tablet data for its respective Hosted Application.

[0063] FIG. 8 is a flow diagram of another exemplary process 800 performed by a host computer system (e.g., the host computer system 150 of FIG. 4, 5, or 6) according to one or more embodiments described herein. In step 810, the host computer system determines which of a plurality of Hosted Applications is currently in use. In step 820, the host computer system sends an identifier of the currently in use Hosted Application to the client-side tablet device driver. In some embodiments, the identifier of the currently in use Hosted Application is configured such that the client-side tablet device driver defines application-specific settings based on the identifier. For example, the identifier may be configured such that the client-side tablet device driver can determine client-side application-specific settings associated with the currently in use Hosted Application, apply the client-side application-specific settings to further input data generated by the pen input tablet device, and / or send the client-side application-specific settings to the host computer system to update corresponding settings in the host-side tablet device driver.

[0064] In some embodiments, the identifier is configured to enable the client-side tablet device driver to determine client-side application-specific settings for the client-side version of the application and to apply the same client-side application-specific settings to further input data generated by the pen input tablet device when the host computer system is running the host-side version of the application.

[0065] In some embodiments, the host-side client device driver includes functionality to determine which hosted applications are currently in use. Alternatively, the host computer system uses a dedicated monitoring utility or some other component to make this determination.

[0066] In some embodiments, the identifier is sent from a host-side data transfer application to a client-side data transfer application that is configured to transfer the identifier to the client-side tablet device driver. Alternatively, the identifier is sent from the host computer system to the client-side tablet device driver via a dedicated driver-to-driver connection or some other dedicated connection, such as from a monitoring utility to the client-side tablet device driver.

[0067] Exemplary Computing Environment

[0068] The embodiments described herein may be implemented individually or in combination by any suitably programmed and configured computing device. The following description is applicable to computing devices, such as servers, personal computers, mobile phones, smartphones, tablet computers, embedded computing devices, handwriting devices, and other currently available or yet to be developed devices, that may be used in accordance with embodiments of the present disclosure.

[0069] In its most basic configuration, a computing device includes at least one processor and a system memory, connected by a communications bus. Depending on the exact device configuration and type, the system memory may be volatile or non-volatile memory, such as read-only memory ("ROM"), random access memory ("RAM"), EEPROM, flash memory, or other memory technologies. Those skilled in the art will recognize that the system memory typically stores data and / or program modules that are immediately accessible and / or being acted upon by the processor. In this regard, the processor may act as the computational center of the computing device by supporting the execution of instructions.

[0070] A computing device may include a network interface that comprises one or more components that communicate with other devices over a network. An embodiment of the present disclosure may utilize the network interface to access basic services that perform communications using a common network protocol. The network interface also includes a wireless network interface configured to communicate via one or more wireless communication protocols, such as WiFi, 2G, 3G, 4G, LTE, 5G, WiMAX, Bluetooth, etc.

[0071] The computing device may also include a storage medium. However, the services may be accessed using a computing device that does not include a means for persisting data on a local storage medium. Thus, the storage medium is optional. In any case, the storage medium may be volatile or non-volatile, removable or non-removable, and may be implemented using any technology capable of storing information, such as, but not limited to, a hard drive, solid state drive, CD-ROM, DVD, or other disk storage, magnetic tape, magnetic disk storage, etc.

[0072] As used herein, the term "computer-readable media" includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology capable of storing information, such as computer-readable instructions, data structures, program modules, or other data. In this regard, system memory and storage media are examples of computer-readable media.

[0073] For ease of illustration and because they are not important to an understanding of the claimed subject matter, the figures do not show some of the components that many computing devices typically have. In this regard, a computing device may include input devices such as a keyboard, keypad, mouse, trackball, microphone, video camera, touchpad, touch screen, stylus, etc. Such input devices may be coupled to the computing device by RF, infrared, serial, parallel, Bluetooth, USB, or other suitable connection protocols using wireless or physical connections.

[0074] In any of the described embodiments, data may be captured by an input device (e.g., a tablet device or other electronic handwriting device) and transmitted or stored for subsequent processing. Processing may include encoded data that may be subsequently decoded for presentation by an output device. The input device may be separate from the computing device, communicatively coupled to the computing device, or may be an integral component of the computing device. The computing device may also include an output device, such as a display or touch screen. The output device may be separate from the computing device, communicatively coupled to the computing device, or may be an integral component of the computing device. Input and output functionality may be integrated into the same input / output device (e.g., a touch screen). Any suitable input device, output device, or combined input / output device, whether now known or developed in the future, may be used with the described systems.

[0075] In general, the functionality of the computing device described herein may be implemented with computing logic embodied in hardware or software instructions that may be written in a programming language such as C, C++, COBOL, JAVA, PHP, Perl, Python, Ruby, HTML, CSS, JavaScript, VBScript, ASPX, C#, or other Microsoft.NET™ languages. The computing logic may be compiled into an executable program or written in an interpreted programming language. In general, the functionality described herein may be implemented as logic modules that can be duplicated, merged with other modules, or divided into submodules to provide greater processing power. The computing logic may be stored in any type of computer-readable medium (e.g., non-volatile media such as memory or storage media) or computer storage device, and may be stored in and executed by one or more general-purpose or dedicated processors, thus creating a special-purpose computing device configured to provide the functionality described herein.

[0076] Extensions and Alternatives

[0077] Many alternatives to the systems and devices described herein are possible. For example, individual modules or subsystems can be separated into more modules or subsystems or combined into fewer modules or subsystems. As another example, modules or subsystems can be omitted or supplemented with other modules or subsystems. As another example, functions shown as being performed by a particular device, module, or subsystem may instead be performed by one or more other devices, modules, or subsystems. Although some embodiments in this disclosure include descriptions of devices with particular hardware components in particular arrangements, the techniques and tools described herein can be modified to accommodate different hardware components, combinations, or arrangements. Furthermore, although some embodiments in this disclosure include descriptions of particular usage scenarios, the techniques and tools described herein can be modified to accommodate different usage scenarios. Functionality described as being implemented in software may instead be implemented in hardware, and vice versa.

[0078] Many alternatives to the techniques described herein are possible. For example, processing steps in various techniques can be separated into more steps or combined into fewer steps. As another example, processing steps in various techniques can be omitted or supplemented with other techniques or processing steps. As another example, processing steps described as being performed in a particular order can instead be performed in a different order. As another example, processing steps described as being performed in a series of steps can instead be performed in parallel, with multiple modules or software processes operating simultaneously on one or more of the illustrated processing steps. As another example, processing steps shown as being performed by a particular device or module can instead be performed by one or more other devices or modules.

[0079] In this description, numerous specific details have been set forth to provide a thorough understanding of exemplary embodiments of the present disclosure. However, it will be apparent to one of ordinary skill in the art that many embodiments of the present disclosure may be practiced without some or all of the specific details. In some instances, well-known process steps have not been described in detail in order to not unnecessarily obscure various aspects of the present disclosure. Furthermore, it will be understood that embodiments of the present disclosure may employ any combination of the features described herein.

[0080] While illustrative embodiments have been illustrated and described, it will be understood that various changes can be made therein without departing from the spirit and scope of the invention.

[0081] The embodiments of the invention in which an exclusive property or privilege is claimed are set forth below.

Claims

1. 1. A host computer system for providing hosted application services to a client computer system including a pen input tablet device, comprising: The host computer system includes: one or more processors; A network interface; a non-volatile computer readable medium; The non-volatile computer readable medium comprises: at least one hosted application configured to be accessed by a user of the client computer system; a host-side tablet device driver including application-specific settings for the at least one hosted application; a host-side data transfer application; computer readable instructions for said host computer system, receiving, by the host-side data transfer application via a client-side data transfer application, input data generated by the pen input tablet device at the client computer system; transmitting the input data generated by the pen input tablet device from the host side data transfer application to a host side tablet device driver; transmitting the input data from the host-side tablet device driver to the at least one Hosted Application, the input data transmitted to the at least one Hosted Application being configured according to the application-specific settings of the host-side tablet device driver; and computer readable instructions configured to cause the A host computer system.

2. the client-side data transfer application comprises a web browser application; 2. The host computer system of claim 1.

3. the input data generated by the pen input tablet device is provided to the client-side data transfer application by a client-side tablet device driver in the form of composite tablet data combining input data from a plurality of tablet devices; 2. The host computer system of claim 1.

4. A non-volatile computer readable medium having computer readable instructions stored thereon, comprising: The computer readable instructions include instructions for: receiving, by a host-side tablet device driver from a client-side tablet device driver, composite tablet data generated by a plurality of tablet devices at a client computer system, the plurality of tablet devices including at least one pen input tablet device; adjusting the composite tablet data according to application specific settings of the host-side tablet device driver; transmitting the composite tablet data from the host-side tablet device driver to at least one hosted application in the host computer system, the at least one hosted application being accessed by a user of the client computer system and configured to receive the composite tablet data adjusted according to application-specific settings of the host-side tablet device driver; configured to execute steps including: A non-volatile computer-readable medium.

5. the composite tablet data is received by the host-side tablet device driver from the client-side tablet device driver via a dedicated inter-driver connection; The non-volatile computer readable medium of claim 4.

6. the composite tablet data is received by the host-side tablet device driver via the client-side data transfer application; The non-volatile computer readable medium of claim 4.

7. the client-side data transfer application comprises a web browser application; The non-volatile computer readable medium of claim 6.

8. 1. A host computer system for providing hosted application services to a client computer system including a pen input tablet device, comprising: The host computer system includes: one or more processors; A network interface; a non-volatile computer readable medium; The non-volatile computer readable medium comprises: a plurality of hosted applications configured to be accessed by users of the client computer systems; computer readable instructions for said host computer system, determining which of the plurality of hosted applications are currently in use; sending an identifier of the Hosted Application currently in use from the host computer system to a client-side tablet device driver; receiving input data generated by the pen input tablet device at the client computer system; transmitting the input data generated by the pen input tablet device to the Hosted Application currently in use; and computer readable instructions configured to cause the A host computer system.

9. the identifier of the Hosted Application currently in use is configured to configure the client-side tablet device driver to define application-specific settings based on the identifier; 9. The host computer system of claim 8.

10. the input data is received by a host-side tablet device driver from the client-side tablet device driver via a dedicated inter-driver connection; 9. The host computer system of claim 8.

11. the input data generated by the pen input tablet device is included in composite tablet data generated by a plurality of tablet devices; 9. The host computer system of claim 8.

12. the input data being received by a host-side data transfer application from a client-side data transfer application; 9. The host computer system of claim 8.

13. the identifier of the Hosted Application currently in use is configured to cause the client-side tablet device driver to determine client-side application-specific settings associated with the Hosted Application currently in use and to apply the client-side application-specific settings to further input data generated by the pen input tablet device.

9. The host computer system of claim 8.

14. the identifier of the currently used Hosted Application is configured to enable the client-side tablet device driver to determine client-side application-specific settings associated with the currently used Hosted Application and to transmit the client-side application-specific settings to the host computer system to update corresponding settings in the host-side tablet device driver.

9. The host computer system of claim 8.

15. the identifier of the Hosted Application currently in use is sent from the host computer system over a dedicated connection to the client-side tablet device driver; 9. The host computer system of claim 8.

16. the identifier of the Hosted Application currently in use is sent from a host-side Data Transfer Application to a client-side Data Transfer Application; the client-side data transfer application is configured to transfer the identifier to the client-side tablet device driver; 9. The host computer system of claim 8.

17. the identifier is configured to enable the client-side tablet device driver to determine client-side application-specific settings for a client-side version of the application and to apply the same client-side application-specific settings to further input data generated by the pen input tablet device when the host computer system is executing a host-side version of the application.

9. The host computer system of claim 8.

18. 10. The host computer system of claim 8, further comprising a monitoring utility, wherein the identifier of the Hosted Application currently in use is sent from the monitoring utility to a client-side tablet device driver.

19. 20. The host computer system of claim 18, wherein the identifier of the hosted application currently in use is configured to cause the client-side tablet device driver to determine client-side application-specific settings associated with the hosted application currently in use and to apply the client-side application-specific settings to input data generated by the pen input tablet device.

20. 1. A host computer system for providing hosted application services to a client computer system including a pen input tablet device, comprising: The host computer system includes: one or more processors; A network interface; a non-volatile computer readable medium; The non-volatile computer readable medium comprises: a plurality of hosted applications configured to be accessed by users of the client computer systems; The host-side tablet device driver, a host-side data transfer application; computer readable instructions for said host computer system, receiving, by the host-side data transfer application via a client-side data transfer application, input data generated by the pen input tablet device at the client computer system; transmitting the input data generated by the pen input tablet device from the host side data transfer application to a host side tablet device driver; transmitting the input data from the host-side tablet device driver to a plurality of available application programming interfaces selected by respective hosted applications; and computer readable instructions configured to cause the A host computer system.

21. the tablet data sent to the plurality of hosted applications is configured according to application-specific settings of the host-side tablet device driver.

21. The host computer system of claim 20.

22. The computer readable instructions are further configured to cause the host computer system to send an identifier of the currently used Hosted Application to a client-side tablet device driver; the input data is adjusted by the client-side tablet device driver according to application-specific settings for the currently used Hosted Application; 21. The host computer system of claim 20.

Citation Information

Patent Citations

  • Input system for information processor

    JP1994242877A

  • Touch input for hosted applications

    US20110122070A1

  • Remote Computing With A Low Latency Mouse Mode

    US20120011445A1