WO2016186629A1 - Display of server capabilities - Google Patents
Display of server capabilities Download PDFInfo
- Publication number
- WO2016186629A1 WO2016186629A1 PCT/US2015/031205 US2015031205W WO2016186629A1 WO 2016186629 A1 WO2016186629 A1 WO 2016186629A1 US 2015031205 W US2015031205 W US 2015031205W WO 2016186629 A1 WO2016186629 A1 WO 2016186629A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- server
- computing device
- capabilities
- capability
- client
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Definitions
- a server runs a desktop session locally and provides the outputted graphics information to a remote client for display.
- the client may output the graphics on an available display and subsequently process input from the user for transmission back to the server.
- This process continues, with the server transmitting the graphics stream and the client transmitting input events.
- the client device may interact with a remote desktop processed by the server as if it were a local desktop processed by the client.
- a software application running on a remote server may appear to the user as if it were running locally on the client.
- FIG. 1 is a block diagram depicting an example system for displaying server capabilities.
- FIG. 2 is a block diagram depicting an example system for displaying server capabilities.
- FIG. 3 is a block diagram depicting an example machine-readable storage medium comprising instructions executable by a processor for providing server capabilities.
- FIG. 4 is a block diagram depicting an example machine-readable storage medium comprising instructions executable by a processor for displaying server capabilities.
- FIG. 5 is a flow diagram depicting an example method for displaying server capabilities.
- FIG. 6 is a flow diagram depicting an example method for displaying server capabilities.
- FIG. 7 is a flow diagram depicting an example method for displaying server capabilities.
- Remote desktop environments enable a user to interact with a remote desktop processed by a server (also referred herein as a "server computing device") as if it were a local desktop of a client (also referred herein as a "client computing device).
- server also referred herein as a "server computing device”
- client also referred herein as a "client computing device”
- a software application running on a remote server may appear to the user as if it were running locally on the client.
- a remote connection (e.g., connection to a remote desktop and/or to a remote application) may be established using at least one of various remote protocols.
- an administrator or other entity may be able to choose between the Microsoft Remote Desktop Protocol (RDP), VMware View, Citrix Independent Computing Architecture (ICA), or a number of other remote protocols.
- RDP Microsoft Remote Desktop Protocol
- ICA Citrix Independent Computing Architecture
- a set of capabilities may be exchanged between a server and a client.
- the set of capabilities may comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, or a combination thereof.
- the server may provide a set of server capabilities that are supported by the server and/or receive a set of client capabilities that are supported by the client.
- the exchange of these capabilities may occur during a capabilities negotiation phase (e.g., at the beginning of the remote connection session and/or immediately after the remote connection is established). Based on the exchanged information, the minimum set of capabilities supported by both of the server and the client may be identified and/or used for the remote connection session.
- a capability can be supported by both the server and the client, that capability may be disabled at the server and/or the client, making it unavailable for use during the remote connection session. Because information as to which capabilities are supported by the server and/or the client, which capabilities are enabled at the server and/or the client, and/or which capabilities are disabled at the server and/or the client is not readily available to the user, it may be challenging to diagnose the real cause of a missing capability.
- Examples disclosed herein provide technical solutions to these technical challenges by providing a technique to display server capabilities.
- Some examples disclosed herein may enable obtaining, by a client computing device, a set of server capabilities supported by a server computing device.
- a remote connection may be established between the server computing device and the client computing device.
- Some examples disclosed herein may enable triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device.
- a first server capability in the set of server capabilities that is supported by the client computing device may be displayed visually different from a second server capability in the set of server capabilities that is not supported by the client computing device.
- FIG. 1 is a block diagram depicting an example system for displaying server capabilities.
- the various components may include client computing devices 140 (illustrated as 140A, 140B, ..., 140N) and server computing devices 130 (illustrated as server computing device 130A, 130B, ..., 130N). Each client computing device 140A, 140B, ..., 140N may communicate requests to and/or receive responses from server computing device 130. Server computing device 130 may receive and/or respond to requests from client computing devices 140.
- Client computing devices 140 may include any type of computing device providing a user interface through which a user can interact with a software application.
- client computing devices 140 may include a laptop computing device, a desktop computing device, an all-in-one computing device, a thin client, a workstation, a tablet computing device, a mobile phone, an electronic book reader, a network-enabled appliance such as a "Smart" television, and/or other electronic device suitable for execution of the functionality described below.
- server computing device 130 is depicted as a single computing device, server computing device 130 may include any number of integrated or distributed computing devices.
- Network 50 may comprise any infrastructure or combination of infrastructures that enable electronic communication between the components.
- network 50 may include at least one of the Internet, an intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a MAN (Metropolitan Area Network), a wireless network, a cellular communications network, a Public Switched Telephone Network, and/or other network.
- system 100 and the various components described herein may be implemented in hardware and/or programming that configures hardware.
- FIG. 1 and other Figures described herein different numbers of components or entities than depicted may be used.
- server computing device 130 may comprise a capabilities provide engine 131 and/or other engines.
- engine refers to a combination of hardware and programming that performs a designated function.
- the hardware of each engine for example, may include one or both of a processor and a machine- readable storage medium, while the programming is instructions or code stored on the machine-readable storage medium and executable by the processor to perform the designated function.
- Capabilities provide engine 131 may provide a set of server capabilities supported by a server computing device (e.g., server computing device 130) to a client computing device (e.g., client computing device 140). Capabilities provide engine 131 may provide this set of server capabilities during a capabilities negotiation phase. The capabilities negotiation phase may occur after a remote connection is established between server computing device 130 and client computing device 140 (e.g., at the beginning of a remote connection session). In some instances, capabilities provide engine 131 may receive and/or obtain a set of client capabilities from client computing device 140 during the capabilities negotiation phase.
- the set of server (and/or client) capabilities may comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, and a combination thereof.
- the set of server capabilities may be displayed via a user interface of client computing device 140 such that a user may access and/or view the set of server capabilities that are supported by server computing device 130.
- the set of server capabilities may, for example, comprise a first server capability (e.g., an audio output) and a second server capability (e.g., clipboard functions). Assuming that the first server capability is also supported by client computing device 140 whereas the second server capability is not supported by client computing device 140, the first server capability may be displayed visually different from the second server capability in the user interface.
- a particular server capability may be said to be "visually different” from another server capability when different visual indicators are used to distinguish one from the other.
- a visual indicator may include not be limited to a visual icon and/or graphic (e.g., displayed adjacent to its corresponding capability), a color (e.g., a capability highlighted in a different color), and a font (e.g., a capability shown in a different font).
- a first visual indicator may indicate that a server capability is supported (or not supported) by client computing device 140.
- a second visual indicator may indicate that a server capability is enabled (or disabled) at server computing device 130.
- a third visual indicator may indicate that a server capability is enabled (or disabled) at client computing device 140.
- a fourth visual indicator may indicate that a help guide is available for instructions on how to enable a server capability at server computing device 130 (or at client computing device 140).
- engine 131 may access data storage 129, data storage 139, and/or other suitable database(s).
- Data storage 129 and/or 139 may represent any memory accessible to system 1 10 that can be used to store and retrieve data.
- client computing device 140 may comprise a capabilities identify engine 141 , a capabilities match engine 142, a user interface engine 143, and/or other engines.
- Capabilities identify engine 141 may receive, obtain, or otherwise identify a set of server capabilities supported by server computing device 130. The set of server capabilities may be provided by capabilities provide engine 131 as discussed above.
- capabilities identify engine 141 may identify the set of server capabilities during a capabilities negotiation phase. As discussed above, the capabilities negotiation phase may occur after a remote connection is established between server computing device 130 and client computing device 140 (e.g., at the beginning of a remote connection session). For example, capabilities identify engine 141 may identify data being exchanged between server computing device 130 and client computing device 140 during the capabilities negotiation phase. The data being exchanged may then be parsed by capabilities identify engine 141 to identify the set of server capabilities supported by server computing device 130.
- Capabilities identify engine 141 may identify a set of client capabilities supported by client computing device 140 during the capabilities negotiation phase. In some instances, capabilities identify engine 141 may provide the set of client capabilities to server computing device 130 during the capabilities negotiation phase.
- the set of server (and/or client) capabilities may comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, and a combination thereof.
- a capability of the set of server (and/or client) capabilities may be associated with an indication of whether the capability is supported (and/or not supported) by server computing device 130 and/or client computing device 140, an indication of whether the capability is enabled (and/or disabled) at server computing device 130 and/or client computing device 140, an indication of whether a help guide is available for enabling the capability, and/or other information.
- Capabilities match engine 142 may determine whether a particular server capability of the set of server capabilities matches at least one client capability of the set of client capabilities. In other words, this can determine whether the particular server capability that is supported by server computing device 130 is supported by client computing device 140 as well. For example, the server capability for hardware bus redirection may be compared to the set of client capabilities supported by client computing device 140. A matching client capability may be found if at least one client capability of the set of client capabilities is also directed to hardware bus redirection. In this way, capabilities match engine 142 may determine which server capabilities are supported by (and/or not supported by) client computing device 140.
- this determination of whether a particular server capability of the set of server capabilities matches at least one client capability of the set of client capabilities may be triggered at a user request. For example, a user may select the particular server capability from the set of capabilities being displayed via the user interface. Such an indication that the particular server capability is selected by the user via the user interface may be obtained by user interface engine 143 that is further discussed below. In response to this indication, capabilities match engine 142 may determine whether this selected server capability matches at least one client capability of the set of client capabilities.
- User interface engine 143 may trigger a display of the set of server capabilities via a user interface of client computing device 140. In this way, a user may access and/or view the set of server capabilities that are supported by server computing device 130. In some implementations, all of the server capabilities supported by server computing device 130 may be displayed via the user interface. In other implementations, the server capabilities that are supported by both server computing device 130 and client computing device 140 may be displayed via the user interface. In these implementations, any server capabilities not supported by client computing device 140 may be excluded from the display.
- information related to the set of server capabilities may be displayed along with the set of server capabilities.
- user interface engine 143 may visually communicate an indication of whether a particular capability is supported (and/or not supported) by server computing device 130 and/or client computing device 140, an indication of whether the capability is enabled (and/or disabled) at server computing device 130 and/or client computing device 140, and/or an indication of whether a help guide is available for enabling the capability by using different visual indicators.
- a visual indicator may include not be limited to a visual icon and/or graphic (e.g., displayed adjacent to its corresponding capability), a color (e.g., a capability highlighted in a different color), and a font (e.g., a capability shown in a different font).
- a first visual indicator may indicate that a server capability is supported (or not supported) by client computing device 140.
- a second visual indicator may indicate that a server capability is enabled (or disabled) at server computing device 130.
- a third visual indicator may indicate that a server capability is enabled (or disabled) at client computing device 140.
- a fourth visual indicator may indicate that a help guide is available for instructions on how to enable a server capability at server computing device 130 (or at client computing device 140).
- the set of server capabilities displayed may include a first server capability (e.g., audio output) that is also supported by client computing device 140 and a second server capability (e.g., clipboard functions) that is not supported by client computing device 140.
- user interface engine 143 may trigger the display of the first server capability such that the first server capability may be displayed visually different from the second server capability.
- a particular server capability may be said to be "visually different" from another server capability when different visual indicators are used to distinguish one from the other.
- user interface engine 143 may trigger the display of a help guide via the user interface where the help guide provides instructions on how to enable a particular server (and/or client) capability (e.g., that is currently disabled at server computing device 130 and/or client computing device 140) at its respective computing device.
- the help guide may comprise textual, video, and/or audio content that explain to the user how to enable the particular capability.
- engines 141 -143 may access data storage 129, data storage 149, and/or other suitable database(s).
- Data storage 129 and/or 149 may represent any memory accessible to system 1 10 that can be used to store and retrieve data.
- Data storage 129 and/or other database may comprise random access memory (RAM), read-only memory (ROM), electrically-erasable programmable read-only memory (EEPROM), cache memory, floppy disks, hard disks, optical disks, tapes, solid state drives, flash drives, portable compact disks, and/or other storage media for storing computer-executable instructions and/or data.
- Data storages 129 and/or other database may include a database to organize and store data. The database may reside in a single or multiple physical device(s) and in a single or multiple physical location(s). The database may store a plurality of types of data and/or files and associated data or file description, administrative information, or any other data.
- FIG. 2 is a block diagram depicting an example system 210 for displaying server capabilities.
- System 210 may comprise client computing device 240 comprising a capabilities identify engine 241 , a capabilities match engine 242, a user interface engine 243, and/or other engines.
- Engines 241 -243 represent engines 141 -143, respectively.
- FIG. 3 is a block diagram depicting an example machine-readable storage medium 310 comprising instructions executable by a processor for providing server capabilities.
- engine 131 was described as combinations of hardware and programming. Engine 131 may be implemented in a number of fashions.
- the programming may be processor executable instructions 321 stored on a machine-readable storage medium 310 and the hardware may include a processor 31 1 for executing those instructions.
- machine-readable storage medium 310 can be said to store program instructions or code that when executed by processor 31 1 implements engine 131 of FIG. 1 .
- the executable program instructions in machine-readable storage medium 310 are depicted as capabilities providing instructions 321 . Instructions 321 represent program instructions that, when executed, cause processor 31 1 to implement engine 131 .
- FIG. 4 is a block diagram depicting an example machine-readable storage medium 410 comprising instructions executable by a processor for displaying server capabilities.
- engines 141 -143 were described as combinations of hardware and programming. Engines 141 -143 may be implemented in a number of fashions. Referring to FIG. 4, the programming may be processor executable instructions 421 -423 stored on a machine-readable storage medium 410 and the hardware may include a processor 41 1 for executing those instructions. Thus, machine-readable storage medium 410 can be said to store program instructions or code that when executed by processor 41 1 implements engines 141 -143 of FIG. 1 .
- the executable program instructions in machine-readable storage medium 410 are depicted as capabilities identifying instructions 421 , capabilities matching instructions 422, and user interface instructions 423.
- Instructions 421 -423 represent program instructions that, when executed, cause processor 41 1 to implement engines 141 -143, respectively.
- Machine-readable storage medium 310 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
- machine-readable storage medium 310 (or machine-readable storage medium 410) may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals.
- Machine-readable storage medium 310 (or machine-readable storage medium 410) may be implemented in a single device or distributed across devices.
- processor 31 1 (or processor 41 1 ) may represent any number of processors capable of executing instructions stored by machine-readable storage medium 310 (or machine- readable storage medium 410).
- Processor 31 1 may be integrated in a single device or distributed across devices. Further, machine- readable storage medium 310 (or machine-readable storage medium 410) may be fully or partially integrated in the same device as processor 31 1 (or processor 41 1 ), or it may be separate but accessible to that device and processor 31 1 (or processor 41 1 ).
- the program instructions may be part of an installation package that when installed can be executed by processor 31 1 (or processor 41 1 ) to implement system 1 10.
- machine-readable storage medium 310 (or machine-readable storage medium 410) may be a portable medium such as a floppy disk, CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed.
- the program instructions may be part of an application or applications already installed.
- machine-readable storage medium 310 (or machine- readable storage medium 410) may include a hard disk, optical disk, tapes, solid state drives, RAM, ROM, EEPROM, or the like.
- Processor 31 1 may be at least one central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 310.
- Processor 31 1 may fetch, decode, and execute program instructions 321 , and/or other instructions.
- processor 31 1 may include at least one electronic circuit comprising a number of electronic components for performing the functionality of at least one of instructions 321 , and/or other instructions.
- Processor 41 1 may be at least one central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 410.
- Processor 41 1 may fetch, decode, and execute program instructions 421 -423, and/or other instructions.
- processor 41 1 may include at least one electronic circuit comprising a number of electronic components for performing the functionality of at least one of instructions 421 -423, and/or other instructions.
- FIG. 5 is a flow diagram depicting an example method 500 for displaying server capabilities.
- the various processing blocks and/or data flows depicted in FIG. 5 are described in greater detail herein.
- the described processing blocks may be accomplished using some or all of the system components described in detail above and, in some implementations, various processing blocks may be performed in different sequences and various processing blocks may be omitted. Additional processing blocks may be performed along with some or all of the processing blocks shown in the depicted flow diagrams. Some processing blocks may be performed simultaneously.
- method 500 as illustrated is meant to be an example and, as such, should not be viewed as limiting.
- Method 500 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.
- method 500 may include obtaining, by a client computing device, a set of server capabilities supported by a server computing device.
- a remote connection may be established between the server computing device and the client computing device.
- capabilities identify engine 141 may be responsible for implementing block 521 .
- method 500 may include triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device, wherein a first server capability in the set of server capabilities that is supported by the client computing device is displayed visually different from a second server capability in the set of server capabilities that is not supported by the client computing device.
- user interface engine 143 may be responsible for implementing block 522.
- FIG. 6 is a flow diagram depicting an example method 600 for displaying server capabilities.
- Method 600 as illustrated is meant be an example and, as such, should not be viewed as limiting.
- Method 600 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.
- method 600 may include obtaining, by a client computing device, a set of server capabilities supported by a server computing device.
- a remote connection may be established between the server computing device and the client computing device.
- capabilities identify engine 141 may be responsible for implementing block 621 .
- method 600 may include triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device.
- user interface engine 143 may be responsible for implementing block 622.
- method 600 may include obtaining, by the client computing device, an indication that a server capability is selected from the set of server capabilities by a user via the user interface.
- user interface engine 143 may be responsible for implementing block 623.
- method 600 may include, in block 624, determining whether the selected server capability is supported by the client computing device.
- capabilities match engine 142 may be responsible for implementing block 624.
- method 600 may proceed to block 625. Otherwise, method 600 may return to block 623.
- method 600 may include triggering, by the client computing device, the display of the server capability such that the server capability appears visually different from another server capability that is not supported by the client computing device.
- user interface engine 143 may be responsible for implementing block 625.
- FIG. 7 is a flow diagram depicting an example method 700 for displaying server capabilities.
- Method 700 as illustrated is meant be an example and, as such, should not be viewed as limiting.
- Method 700 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.
- method 700 may include obtaining, by a client computing device, a set of server capabilities supported by a server computing device.
- a remote connection may be established between the server computing device and the client computing device.
- capabilities identify engine 141 may be responsible for implementing block 721 .
- method 700 may include triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device.
- user interface engine 143 may be responsible for implementing block 722.
- method 700 may include determining whether a server capability (e.g., displayed via the user interface in block 722) is disabled at the server computing device.
- capabilities identify engine 141 may be responsible for implementing block 723.
- method 700 may proceed to block 724. Otherwise, method 700 may return to block 723.
- method 700 may include triggering, by the client computing device, the display of a help guide via the user interface.
- the help guide may provide instructions on how to enable the server capability at the server computing device.
- user interface engine 143 may be responsible for implementing block 724.
- the foregoing disclosure describes a number of example implementations for displaying server capabilities.
- the disclosed examples may include systems, devices, computer-readable storage media, and methods for displaying server capabilities.
- certain examples are described with reference to the components illustrated in FIGS. 1 -4.
- the functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Computer And Data Communications (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Examples disclosed herein relate to displaying server capabilities. Some examples disclosed herein may enable obtaining, by a client computing device, a set of server capabilities supported by a server computing device. A remote connection may be established between the server computing device and the client computing device. Some examples disclosed herein may enable triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device. A first server capability in the set of server capabilities that is supported by the client computing device may be displayed visually different from a second server capability in the set of server capabilities that is not supported by the client computing device.
Description
DISPLAY OF SERVER CAPABILITIES
BACKGROUND
[0001 ] In a remote desktop environment, a server runs a desktop session locally and provides the outputted graphics information to a remote client for display. In response, the client may output the graphics on an available display and subsequently process input from the user for transmission back to the server. This process continues, with the server transmitting the graphics stream and the client transmitting input events. In this manner, the client device may interact with a remote desktop processed by the server as if it were a local desktop processed by the client. Similarly, in a remote application environment, a software application running on a remote server may appear to the user as if it were running locally on the client.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram depicting an example system for displaying server capabilities.
[0004] FIG. 2 is a block diagram depicting an example system for displaying server capabilities.
[0005] FIG. 3 is a block diagram depicting an example machine-readable storage medium comprising instructions executable by a processor for providing server capabilities.
[0006] FIG. 4 is a block diagram depicting an example machine-readable storage medium comprising instructions executable by a processor for displaying server capabilities.
[0007] FIG. 5 is a flow diagram depicting an example method for displaying server capabilities.
[0008] FIG. 6 is a flow diagram depicting an example method for displaying server capabilities.
[0009] FIG. 7 is a flow diagram depicting an example method for displaying server capabilities.
DETAILED DESCRIPTION
[0010] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only. While several examples are described in this document, modifications, adaptations, and other implementations are possible. Accordingly, the following detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples may be defined by the appended claims.
[001 1 ] Remote desktop environments enable a user to interact with a remote desktop processed by a server (also referred herein as a "server computing device") as if it were a local desktop of a client (also referred herein as a "client computing device). Similarly, in remote application environments, a software application running on a remote server may appear to the user as if it were running locally on the client.
[0012] A remote connection (e.g., connection to a remote desktop and/or to a remote application) may be established using at least one of various remote protocols. For example, an administrator or other entity may be able to choose between the Microsoft Remote Desktop Protocol (RDP), VMware View, Citrix Independent Computing Architecture (ICA), or a number of other remote protocols.
[0013] In many of such remote protocols, a set of capabilities may be exchanged between a server and a client. The set of capabilities may comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, or a combination thereof. For example, the server may provide a set of server
capabilities that are supported by the server and/or receive a set of client capabilities that are supported by the client. The exchange of these capabilities may occur during a capabilities negotiation phase (e.g., at the beginning of the remote connection session and/or immediately after the remote connection is established). Based on the exchanged information, the minimum set of capabilities supported by both of the server and the client may be identified and/or used for the remote connection session. However, although a capability can be supported by both the server and the client, that capability may be disabled at the server and/or the client, making it unavailable for use during the remote connection session. Because information as to which capabilities are supported by the server and/or the client, which capabilities are enabled at the server and/or the client, and/or which capabilities are disabled at the server and/or the client is not readily available to the user, it may be challenging to diagnose the real cause of a missing capability.
[0014] Examples disclosed herein provide technical solutions to these technical challenges by providing a technique to display server capabilities. Some examples disclosed herein may enable obtaining, by a client computing device, a set of server capabilities supported by a server computing device. A remote connection may be established between the server computing device and the client computing device. Some examples disclosed herein may enable triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device. A first server capability in the set of server capabilities that is supported by the client computing device may be displayed visually different from a second server capability in the set of server capabilities that is not supported by the client computing device.
[0015] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. The term "plurality," as used herein, is defined as two or more than two. The term "another," as used herein, is defined as at least a second or more. The term "coupled," as used herein, is defined as
connected, whether directly without any intervening elements or indirectly with at least one intervening elements, unless otherwise indicated. Two elements can be coupled mechanically, electrically, or communicatively linked through a communication channel, pathway, network, or system. The term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will also be understood that, although the terms first, second, third, etc. may be used herein to describe various elements, these elements should not be limited by these terms, as these terms are only used to distinguish one element from another unless stated otherwise or the context indicates otherwise. As used herein, the term "includes" means includes but not limited to, the term "including" means including but not limited to. The term "based on" means based at least in part on.
[0016] FIG. 1 is a block diagram depicting an example system for displaying server capabilities.
[0017] The various components may include client computing devices 140 (illustrated as 140A, 140B, ..., 140N) and server computing devices 130 (illustrated as server computing device 130A, 130B, ..., 130N). Each client computing device 140A, 140B, ..., 140N may communicate requests to and/or receive responses from server computing device 130. Server computing device 130 may receive and/or respond to requests from client computing devices 140. Client computing devices 140 may include any type of computing device providing a user interface through which a user can interact with a software application. For example, client computing devices 140 may include a laptop computing device, a desktop computing device, an all-in-one computing device, a thin client, a workstation, a tablet computing device, a mobile phone, an electronic book reader, a network-enabled appliance such as a "Smart" television, and/or other electronic device suitable for execution of the functionality described below. While server computing device 130 is depicted as a single computing device, server computing device 130 may include any number of integrated or distributed computing devices.
[0018] The various components (e.g., components 129, 130, and 140) depicted in FIG. 1 may be coupled to at least one other component via a network
50. Network 50 may comprise any infrastructure or combination of infrastructures that enable electronic communication between the components. For example, network 50 may include at least one of the Internet, an intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a MAN (Metropolitan Area Network), a wireless network, a cellular communications network, a Public Switched Telephone Network, and/or other network. According to various implementations, system 100 and the various components described herein may be implemented in hardware and/or programming that configures hardware. Furthermore, in FIG. 1 and other Figures described herein, different numbers of components or entities than depicted may be used.
[0019] As detailed below, server computing device 130 may comprise a capabilities provide engine 131 and/or other engines. The term "engine", as used herein, refers to a combination of hardware and programming that performs a designated function. As is illustrated respect to FIGS. 3-4, the hardware of each engine, for example, may include one or both of a processor and a machine- readable storage medium, while the programming is instructions or code stored on the machine-readable storage medium and executable by the processor to perform the designated function.
[0020] Capabilities provide engine 131 may provide a set of server capabilities supported by a server computing device (e.g., server computing device 130) to a client computing device (e.g., client computing device 140). Capabilities provide engine 131 may provide this set of server capabilities during a capabilities negotiation phase. The capabilities negotiation phase may occur after a remote connection is established between server computing device 130 and client computing device 140 (e.g., at the beginning of a remote connection session). In some instances, capabilities provide engine 131 may receive and/or obtain a set of client capabilities from client computing device 140 during the capabilities negotiation phase. The set of server (and/or client) capabilities may comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, and a combination thereof.
[0021 ] As discussed below with respect to user interface engine 143, the set of server capabilities may be displayed via a user interface of client computing device 140 such that a user may access and/or view the set of server capabilities that are supported by server computing device 130. The set of server capabilities may, for example, comprise a first server capability (e.g., an audio output) and a second server capability (e.g., clipboard functions). Assuming that the first server capability is also supported by client computing device 140 whereas the second server capability is not supported by client computing device 140, the first server capability may be displayed visually different from the second server capability in the user interface.
[0022] As used herein, a particular server capability may be said to be "visually different" from another server capability when different visual indicators are used to distinguish one from the other. A visual indicator may include not be limited to a visual icon and/or graphic (e.g., displayed adjacent to its corresponding capability), a color (e.g., a capability highlighted in a different color), and a font (e.g., a capability shown in a different font).
[0023] For example, a first visual indicator may indicate that a server capability is supported (or not supported) by client computing device 140. A second visual indicator may indicate that a server capability is enabled (or disabled) at server computing device 130. A third visual indicator may indicate that a server capability is enabled (or disabled) at client computing device 140. A fourth visual indicator may indicate that a help guide is available for instructions on how to enable a server capability at server computing device 130 (or at client computing device 140).
[0024] In performing its functions, engine 131 may access data storage 129, data storage 139, and/or other suitable database(s). Data storage 129 and/or 139 may represent any memory accessible to system 1 10 that can be used to store and retrieve data.
[0025] As detailed below, client computing device 140 may comprise a capabilities identify engine 141 , a capabilities match engine 142, a user interface engine 143, and/or other engines.
[0026] Capabilities identify engine 141 may receive, obtain, or otherwise identify a set of server capabilities supported by server computing device 130. The set of server capabilities may be provided by capabilities provide engine 131 as discussed above. In some implementations, capabilities identify engine 141 may identify the set of server capabilities during a capabilities negotiation phase. As discussed above, the capabilities negotiation phase may occur after a remote connection is established between server computing device 130 and client computing device 140 (e.g., at the beginning of a remote connection session). For example, capabilities identify engine 141 may identify data being exchanged between server computing device 130 and client computing device 140 during the capabilities negotiation phase. The data being exchanged may then be parsed by capabilities identify engine 141 to identify the set of server capabilities supported by server computing device 130.
[0027] Capabilities identify engine 141 may identify a set of client capabilities supported by client computing device 140 during the capabilities negotiation phase. In some instances, capabilities identify engine 141 may provide the set of client capabilities to server computing device 130 during the capabilities negotiation phase. The set of server (and/or client) capabilities may comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, and a combination thereof.
[0028] A capability of the set of server (and/or client) capabilities may be associated with an indication of whether the capability is supported (and/or not supported) by server computing device 130 and/or client computing device 140, an indication of whether the capability is enabled (and/or disabled) at server computing device 130 and/or client computing device 140, an indication of whether a help guide is available for enabling the capability, and/or other information.
[0029] The set of server and/or client capabilities and/or their associated information may be stored in a data storage (e.g., data storage 129, 139, and/or 149).
[0030] Capabilities match engine 142 may determine whether a particular server capability of the set of server capabilities matches at least one client capability of the set of client capabilities. In other words, this can determine whether the particular server capability that is supported by server computing device 130 is supported by client computing device 140 as well. For example, the server capability for hardware bus redirection may be compared to the set of client capabilities supported by client computing device 140. A matching client capability may be found if at least one client capability of the set of client capabilities is also directed to hardware bus redirection. In this way, capabilities match engine 142 may determine which server capabilities are supported by (and/or not supported by) client computing device 140.
[0031 ] In some implementations, this determination of whether a particular server capability of the set of server capabilities matches at least one client capability of the set of client capabilities may be triggered at a user request. For example, a user may select the particular server capability from the set of capabilities being displayed via the user interface. Such an indication that the particular server capability is selected by the user via the user interface may be obtained by user interface engine 143 that is further discussed below. In response to this indication, capabilities match engine 142 may determine whether this selected server capability matches at least one client capability of the set of client capabilities.
[0032] User interface engine 143 may trigger a display of the set of server capabilities via a user interface of client computing device 140. In this way, a user may access and/or view the set of server capabilities that are supported by server computing device 130. In some implementations, all of the server capabilities supported by server computing device 130 may be displayed via the user interface. In other implementations, the server capabilities that are supported by both server computing device 130 and client computing device 140 may be displayed via the user interface. In these implementations, any server capabilities not supported by client computing device 140 may be excluded from the display.
[0033] In some implementations, information related to the set of server capabilities may be displayed along with the set of server capabilities. For
example, user interface engine 143 may visually communicate an indication of whether a particular capability is supported (and/or not supported) by server computing device 130 and/or client computing device 140, an indication of whether the capability is enabled (and/or disabled) at server computing device 130 and/or client computing device 140, and/or an indication of whether a help guide is available for enabling the capability by using different visual indicators. A visual indicator may include not be limited to a visual icon and/or graphic (e.g., displayed adjacent to its corresponding capability), a color (e.g., a capability highlighted in a different color), and a font (e.g., a capability shown in a different font).
[0034] For example, a first visual indicator may indicate that a server capability is supported (or not supported) by client computing device 140. A second visual indicator may indicate that a server capability is enabled (or disabled) at server computing device 130. A third visual indicator may indicate that a server capability is enabled (or disabled) at client computing device 140. A fourth visual indicator may indicate that a help guide is available for instructions on how to enable a server capability at server computing device 130 (or at client computing device 140).
[0035] Consider this example: the set of server capabilities displayed may include a first server capability (e.g., audio output) that is also supported by client computing device 140 and a second server capability (e.g., clipboard functions) that is not supported by client computing device 140. In some implementations, user interface engine 143 may trigger the display of the first server capability such that the first server capability may be displayed visually different from the second server capability. As used herein, a particular server capability may be said to be "visually different" from another server capability when different visual indicators are used to distinguish one from the other.
[0036] In some implementations, user interface engine 143 may trigger the display of a help guide via the user interface where the help guide provides instructions on how to enable a particular server (and/or client) capability (e.g., that is currently disabled at server computing device 130 and/or client computing device 140) at its respective computing device. For example, the help guide may
comprise textual, video, and/or audio content that explain to the user how to enable the particular capability.
[0037] In performing their respective functions, engines 141 -143 may access data storage 129, data storage 149, and/or other suitable database(s). Data storage 129 and/or 149 may represent any memory accessible to system 1 10 that can be used to store and retrieve data.
[0038] Data storage 129 and/or other database may comprise random access memory (RAM), read-only memory (ROM), electrically-erasable programmable read-only memory (EEPROM), cache memory, floppy disks, hard disks, optical disks, tapes, solid state drives, flash drives, portable compact disks, and/or other storage media for storing computer-executable instructions and/or data. Data storages 129 and/or other database may include a database to organize and store data. The database may reside in a single or multiple physical device(s) and in a single or multiple physical location(s). The database may store a plurality of types of data and/or files and associated data or file description, administrative information, or any other data.
[0039] FIG. 2 is a block diagram depicting an example system 210 for displaying server capabilities. System 210 may comprise client computing device 240 comprising a capabilities identify engine 241 , a capabilities match engine 242, a user interface engine 243, and/or other engines. Engines 241 -243 represent engines 141 -143, respectively.
[0040] FIG. 3 is a block diagram depicting an example machine-readable storage medium 310 comprising instructions executable by a processor for providing server capabilities.
[0041 ] In the foregoing discussion, engine 131 was described as combinations of hardware and programming. Engine 131 may be implemented in a number of fashions. Referring to FIG. 3, the programming may be processor executable instructions 321 stored on a machine-readable storage medium 310 and the hardware may include a processor 31 1 for executing those instructions. Thus, machine-readable storage medium 310 can be said to store program instructions or code that when executed by processor 31 1 implements engine 131 of FIG. 1 .
[0042] In FIG. 3, the executable program instructions in machine-readable storage medium 310 are depicted as capabilities providing instructions 321 . Instructions 321 represent program instructions that, when executed, cause processor 31 1 to implement engine 131 .
[0043] FIG. 4 is a block diagram depicting an example machine-readable storage medium 410 comprising instructions executable by a processor for displaying server capabilities.
[0044] In the foregoing discussion, engines 141 -143 were described as combinations of hardware and programming. Engines 141 -143 may be implemented in a number of fashions. Referring to FIG. 4, the programming may be processor executable instructions 421 -423 stored on a machine-readable storage medium 410 and the hardware may include a processor 41 1 for executing those instructions. Thus, machine-readable storage medium 410 can be said to store program instructions or code that when executed by processor 41 1 implements engines 141 -143 of FIG. 1 .
[0045] In FIG. 4, the executable program instructions in machine-readable storage medium 410 are depicted as capabilities identifying instructions 421 , capabilities matching instructions 422, and user interface instructions 423. Instructions 421 -423 represent program instructions that, when executed, cause processor 41 1 to implement engines 141 -143, respectively.
[0046] Machine-readable storage medium 310 (or machine-readable storage medium 410) may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. In some implementations, machine-readable storage medium 310 (or machine-readable storage medium 410) may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. Machine-readable storage medium 310 (or machine-readable storage medium 410) may be implemented in a single device or distributed across devices. Likewise, processor 31 1 (or processor 41 1 ) may represent any number of processors capable of executing instructions stored by machine-readable storage medium 310 (or machine- readable storage medium 410). Processor 31 1 (or processor 41 1 ) may be integrated in a single device or distributed across devices. Further, machine-
readable storage medium 310 (or machine-readable storage medium 410) may be fully or partially integrated in the same device as processor 31 1 (or processor 41 1 ), or it may be separate but accessible to that device and processor 31 1 (or processor 41 1 ).
[0047] In one example, the program instructions may be part of an installation package that when installed can be executed by processor 31 1 (or processor 41 1 ) to implement system 1 10. In this case, machine-readable storage medium 310 (or machine-readable storage medium 410) may be a portable medium such as a floppy disk, CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, machine-readable storage medium 310 (or machine- readable storage medium 410) may include a hard disk, optical disk, tapes, solid state drives, RAM, ROM, EEPROM, or the like.
[0048] Processor 31 1 may be at least one central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 310. Processor 31 1 may fetch, decode, and execute program instructions 321 , and/or other instructions. As an alternative or in addition to retrieving and executing instructions, processor 31 1 may include at least one electronic circuit comprising a number of electronic components for performing the functionality of at least one of instructions 321 , and/or other instructions.
[0049] Processor 41 1 may be at least one central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 410. Processor 41 1 may fetch, decode, and execute program instructions 421 -423, and/or other instructions. As an alternative or in addition to retrieving and executing instructions, processor 41 1 may include at least one electronic circuit comprising a number of electronic components for performing the functionality of at least one of instructions 421 -423, and/or other instructions.
[0050] FIG. 5 is a flow diagram depicting an example method 500 for displaying server capabilities. The various processing blocks and/or data flows
depicted in FIG. 5 (and in the other drawing figures such as FIGS. 6-7) are described in greater detail herein. The described processing blocks may be accomplished using some or all of the system components described in detail above and, in some implementations, various processing blocks may be performed in different sequences and various processing blocks may be omitted. Additional processing blocks may be performed along with some or all of the processing blocks shown in the depicted flow diagrams. Some processing blocks may be performed simultaneously. Accordingly, method 500 as illustrated (and described in greater detail below) is meant to be an example and, as such, should not be viewed as limiting. Method 500 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.
[0051 ] In block 521 , method 500 may include obtaining, by a client computing device, a set of server capabilities supported by a server computing device. A remote connection may be established between the server computing device and the client computing device. Referring back to FIG. 1 , capabilities identify engine 141 may be responsible for implementing block 521 .
[0052] In block 522, method 500 may include triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device, wherein a first server capability in the set of server capabilities that is supported by the client computing device is displayed visually different from a second server capability in the set of server capabilities that is not supported by the client computing device. Referring back to FIG. 1 , user interface engine 143 may be responsible for implementing block 522.
[0053] FIG. 6 is a flow diagram depicting an example method 600 for displaying server capabilities. Method 600 as illustrated (and described in greater detail below) is meant be an example and, as such, should not be viewed as limiting. Method 600 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.
[0054] In block 621 , method 600 may include obtaining, by a client computing device, a set of server capabilities supported by a server computing device. A
remote connection may be established between the server computing device and the client computing device. Referring back to FIG. 1 , capabilities identify engine 141 may be responsible for implementing block 621 .
[0055] In block 622, method 600 may include triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device. Referring back to FIG. 1 , user interface engine 143 may be responsible for implementing block 622.
[0056] In block 623, method 600 may include obtaining, by the client computing device, an indication that a server capability is selected from the set of server capabilities by a user via the user interface. Referring back to FIG. 1 , user interface engine 143 may be responsible for implementing block 623.
[0057] In response to the indication (e.g., obtained in block 623), method 600 may include, in block 624, determining whether the selected server capability is supported by the client computing device. Referring back to FIG. 1 , capabilities match engine 142 may be responsible for implementing block 624.
[0058] If determined that the selected server capability is supported by the client computing device, method 600 may proceed to block 625. Otherwise, method 600 may return to block 623.
[0059] In block 625, method 600 may include triggering, by the client computing device, the display of the server capability such that the server capability appears visually different from another server capability that is not supported by the client computing device. Referring back to FIG. 1 , user interface engine 143 may be responsible for implementing block 625.
[0060] FIG. 7 is a flow diagram depicting an example method 700 for displaying server capabilities. Method 700 as illustrated (and described in greater detail below) is meant be an example and, as such, should not be viewed as limiting. Method 700 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.
[0061 ] In block 721 , method 700 may include obtaining, by a client computing device, a set of server capabilities supported by a server computing device. A remote connection may be established between the server computing device and
the client computing device. Referring back to FIG. 1 , capabilities identify engine 141 may be responsible for implementing block 721 .
[0062] In block 722, method 700 may include triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device. Referring back to FIG. 1 , user interface engine 143 may be responsible for implementing block 722.
[0063] In block 723, method 700 may include determining whether a server capability (e.g., displayed via the user interface in block 722) is disabled at the server computing device. Referring back to FIG. 1 , capabilities identify engine 141 may be responsible for implementing block 723.
[0064] If determined that the server capability is disabled at the server computing device, method 700 may proceed to block 724. Otherwise, method 700 may return to block 723.
[0065] In block 724, method 700 may include triggering, by the client computing device, the display of a help guide via the user interface. The help guide may provide instructions on how to enable the server capability at the server computing device. Referring back to FIG. 1 , user interface engine 143 may be responsible for implementing block 724.
[0066] The foregoing disclosure describes a number of example implementations for displaying server capabilities. The disclosed examples may include systems, devices, computer-readable storage media, and methods for displaying server capabilities. For purposes of explanation, certain examples are described with reference to the components illustrated in FIGS. 1 -4. The functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components.
[0067] Further, all or part of the functionality of illustrated elements may coexist or be distributed among several geographically dispersed locations. Moreover, the disclosed examples may be implemented in various environments and are not limited to the illustrated examples. Further, the sequence of operations described in connection with FIGS. 5-7 are examples and are not intended to be limiting. Additional or fewer operations or combinations of operations may be used or may vary without departing from the scope of the
disclosed examples. Furthermore, implementations consistent with the disclosed examples need not perform the sequence of operations in any particular order. Thus, the present disclosure merely sets forth possible examples of implementations, and many variations and modifications may be made to the described examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.
Claims
1 . A method for displaying server capabilities, the method comprising: obtaining, by a client computing device, a set of server capabilities supported by a server computing device, a remote connection established between the server computing device and the client computing device; and triggering, by the client computing device, a display of the set of server capabilities via a user interface of the client computing device, wherein a first server capability in the set of server capabilities that is supported by the client computing device is displayed visually different from a second server capability in the set of server capabilities that is not supported by the client computing device.
2. The method of claim 1 , further comprising:
obtaining, by the client computing device, the set of server capabilities during a capabilities negotiation phase after the remote connection is established between the server computing device and the client computing device; and
providing, by the client computing device, a set of client capabilities supported by the client computing device to the server computing device during the capabilities negotiation phase.
3. The method of claim 2, wherein obtaining the set of server capabilities further comprises:
identifying, by the client computing device, data being exchanged between the client computing device and the server computing device during the capabilities negotiation phase;
parsing, by the client computing device, the data being exchanged to identify the set of server capabilities; and
triggering, by the client computing device, the display of the set of server capabilities via the user interface of the client computing device.
4. The method of claim 1 , wherein the set of server capabilities comprise an audio input, an audio output, a printer redirection, a hardware bus redirection, security protocols, multimedia compression algorithms, clipboard functions, or a combination thereof.
5. The method of claim 1 , further comprising:
obtaining, by the client computing device, an indication that the first server capability is selected by a user via the user interface;
in response to the indication that the first server capability is selected by the user via the user interface, determining, by the client computing device, whether the first server capability is supported by the client computing device; and
in response to determining that the first server capability is supported by the client computing device, triggering, by the client computing device, the display of the first server capability such that the first server capability appears visually different from the second server capability that is not supported by the client computing device.
6. The method of claim 1 , further comprising:
determining whether the first server capability is disabled at the server computing device; and
in response to determining that the first server capability is disabled at the server computing device, causing the first server capability to be enabled at the server computing device.
7. The method of claim 6, wherein causing the first server capability to be enabled at the server computing device comprises:
triggering the display of a help guide via the user interface, the help guide providing instructions on how to enable the first server capability at the server computing device.
8. A machine-readable storage medium comprising instructions executable by a processor of a server computing device for providing server capabilities, the machine-readable storage medium comprising:
instructions to provide a set of server capabilities supported by the server computing device to a client computing device during a capabilities negotiation phase after a remote connection is established between the server computing device and the client computing device,
wherein the set of server capabilities are displayed via a user interface of the client computing device, the set of server capabilities comprising a first server capability and a second server capability, and
wherein the first server capability that is supported by the client computing device is displayed visually different from the second server capability that is not supported by the client computing device.
9. The machine-readable storage medium of claim 8, wherein a first visual indicator is displayed via the user interface to indicate that the first server capability is supported by the client computing device.
10. The machine-readable storage medium of claim 8, wherein a second visual indicator is displayed via the user interface to indicate that the first server capability is disabled at the server computing device.
1 1 . The machine-readable storage medium of claim 10, wherein a third visual indicator is displayed via the user interface to indicate that a help guide is available for instructing on how to enable the first server capability at the server computing device.
12. A system for displaying server capabilities comprising:
a client computing device comprising:
a capabilities identify engine to:
identify a set of server capabilities supported by a server computing device during a capabilities negotiation phase after a remote connection is
established between the server computing device and the client computing device, and
identify a set of client capabilities supported by the client computing device during the capabilities negotiation phase;
a capabilities match engine to:
determine whether a first server capability of the set of server capabilities matches at least one client capability of the set of client capabilities; and a user interface engine to:
trigger a display of the set of server capabilities via a user interface of the client computing device, and
in response to determining that the first server capability matches at least one client capability of the set of client capabilities, trigger the display of the first server capability such that the first server capability appears visually different from a second server capability in the set of server capabilities that does not match at least one client capability of the set of client capabilities.
13. The system of claim 12, further comprising:
the user interface engine to:
obtain an indication that the first server capability is selected by a user via the user interface; and
the capabilities match engine to:
in response to the indication that the first server capability is selected by the user via the user interface, determine whether the first server capability matches at least one client capability of the set of client capabilities.
14. The system of claim 12, further comprising:
the capabilities identify engine to:
determine whether the first server capability is disabled at the server computing device; and
the user interface engine to:
in response to determining that the first server capability is disabled at the server computing device, trigger the display of a first help guide via the user
interface, the first help guide providing a first set of instructions on how to enable the first server capability at the server computing device.
15. The system of claim 14, further comprising:
the capabilities identify engine to:
determine whether the at least one client capability that matches the first server capability is disabled at the client computing device; and
the user interface engine to:
in response to determining that the at least one client capability is disabled, trigger the display of a second help guide via the user interface, the second help guide providing a second set of instructions on how to enable the at least one client capability at the client computing device.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2015/031205 WO2016186629A1 (en) | 2015-05-15 | 2015-05-15 | Display of server capabilities |
| US15/557,933 US20180062936A1 (en) | 2015-05-15 | 2015-05-15 | Display of Server Capabilities |
| TW105108300A TWI579711B (en) | 2015-05-15 | 2016-03-17 | Method and system for displaying server capabilities and associated machine readable storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2015/031205 WO2016186629A1 (en) | 2015-05-15 | 2015-05-15 | Display of server capabilities |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016186629A1 true WO2016186629A1 (en) | 2016-11-24 |
Family
ID=57318943
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2015/031205 Ceased WO2016186629A1 (en) | 2015-05-15 | 2015-05-15 | Display of server capabilities |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20180062936A1 (en) |
| TW (1) | TWI579711B (en) |
| WO (1) | WO2016186629A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10757079B2 (en) * | 2016-01-12 | 2020-08-25 | Jens Schmidt | Method and system for controlling remote session on computer systems using a virtual channel |
| US11212370B1 (en) * | 2020-08-07 | 2021-12-28 | Sap Se | Context aware capabilities |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050273508A1 (en) * | 1998-05-07 | 2005-12-08 | Samsung Electronics Co., Ltd. | Method and apparatus for universally accessible command and control information in a network |
| US20080104196A1 (en) * | 2006-10-31 | 2008-05-01 | Hewlett-Packard Development Company, L.P. | Network access device capability alert mechanism |
| US20100161741A1 (en) * | 2008-12-24 | 2010-06-24 | Juniper Networks, Inc. | Using a server's capability profile to establish a connection |
| US20130227272A1 (en) * | 2012-02-29 | 2013-08-29 | Microsoft Corporation | Dynamic Selection of Security Protocol |
| US20140342662A1 (en) * | 2013-05-16 | 2014-11-20 | Qualcomm Incorporated | Method for Adapting to Venue Positioning Capabilities |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6763395B1 (en) * | 1997-11-14 | 2004-07-13 | National Instruments Corporation | System and method for connecting to and viewing live data using a standard user agent |
| US8151280B2 (en) * | 2003-10-27 | 2012-04-03 | Microsoft Corporation | Simple and dynamic configuration of network devices |
| US7567542B2 (en) * | 2004-12-22 | 2009-07-28 | Research In Motion Limited | Handling attachment content on a mobile device |
| US8106742B2 (en) * | 2006-08-04 | 2012-01-31 | Tegic Communications, Inc. | Remotely controlling one or more client devices detected over a wireless network using a mobile device |
| US20100205529A1 (en) * | 2009-02-09 | 2010-08-12 | Emma Noya Butin | Device, system, and method for creating interactive guidance with execution of operations |
| US8843834B2 (en) * | 2009-08-28 | 2014-09-23 | Apple Inc. | Method and apparatus for initiating and managing chat sessions |
| US8667157B2 (en) * | 2011-07-29 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Hardware bus redirection switching |
| US8469816B2 (en) * | 2011-10-11 | 2013-06-25 | Microsoft Corporation | Device linking |
| TW201409347A (en) * | 2012-08-31 | 2014-03-01 | Teco Image Sys Co Ltd | Print system and print equipment and print method thereof for portable communication device |
| TWI486787B (en) * | 2012-12-24 | 2015-06-01 | Wistron Corp | Method and system for displaying pictures |
| TWM471617U (en) * | 2013-02-20 | 2014-02-01 | Syntrontech Information Co Ltd | Sever system which can support storage device for generating application interface |
| US11514228B2 (en) * | 2014-05-23 | 2022-11-29 | Microsoft Technology Licensing, Llc | Guides on a content generation system |
| US10911574B2 (en) * | 2015-03-25 | 2021-02-02 | Amazon Technologies, Inc. | Using multiple protocols in a virtual desktop infrastructure |
-
2015
- 2015-05-15 US US15/557,933 patent/US20180062936A1/en not_active Abandoned
- 2015-05-15 WO PCT/US2015/031205 patent/WO2016186629A1/en not_active Ceased
-
2016
- 2016-03-17 TW TW105108300A patent/TWI579711B/en not_active IP Right Cessation
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050273508A1 (en) * | 1998-05-07 | 2005-12-08 | Samsung Electronics Co., Ltd. | Method and apparatus for universally accessible command and control information in a network |
| US20080104196A1 (en) * | 2006-10-31 | 2008-05-01 | Hewlett-Packard Development Company, L.P. | Network access device capability alert mechanism |
| US20100161741A1 (en) * | 2008-12-24 | 2010-06-24 | Juniper Networks, Inc. | Using a server's capability profile to establish a connection |
| US20130227272A1 (en) * | 2012-02-29 | 2013-08-29 | Microsoft Corporation | Dynamic Selection of Security Protocol |
| US20140342662A1 (en) * | 2013-05-16 | 2014-11-20 | Qualcomm Incorporated | Method for Adapting to Venue Positioning Capabilities |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201640375A (en) | 2016-11-16 |
| US20180062936A1 (en) | 2018-03-01 |
| TWI579711B (en) | 2017-04-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10248548B2 (en) | Code coverage information | |
| US10635857B2 (en) | Card system framework | |
| CN109582405B (en) | Security survey using a card system framework | |
| EP2656210A2 (en) | Providing a persona-based application experience | |
| US10623450B2 (en) | Access to data on a remote device | |
| WO2016122632A1 (en) | Collaborative investigation of security indicators | |
| EP2959402B1 (en) | Architecture for remote access to content state | |
| CN108055141B (en) | Contextual interaction with an application | |
| US9792442B2 (en) | Visualization of security risks | |
| US20180062936A1 (en) | Display of Server Capabilities | |
| CN109582406B (en) | Script-based security survey using a card system framework | |
| US9954949B2 (en) | Cloud images | |
| US10606652B2 (en) | Determining tenant priority based on resource utilization in separate time intervals and selecting requests from a particular tenant based on the priority | |
| WO2016186628A1 (en) | Hardware bus redirection | |
| WO2016209291A1 (en) | Alerts for communities of a security information sharing platform | |
| US9699031B2 (en) | Cloud models based on logical network interface data | |
| US10572692B2 (en) | Detecting camera access breaches | |
| US9134930B2 (en) | Delayed content production | |
| US9992305B2 (en) | Cloud models based on network definition data | |
| GB2539384A (en) | Data search method and device | |
| WO2018031384A1 (en) | Interface menu presenting non-installed content sharing applications | |
| US20180189118A1 (en) | Systems and methods for transforming applications | |
| CN105468314A (en) | Information processing method and electronic device | |
| US20170371727A1 (en) | Execution of interaction flows | |
| US9699137B2 (en) | Naming of cloud components |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15892735 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 15892735 Country of ref document: EP Kind code of ref document: A1 |