Concurrent user access computing system
The dual access system addresses the restriction of local user access by providing a secondary computing system with synchronized data and KVM functionality, enabling concurrent access and ensuring uninterrupted support during system malfunctions.
Patent Information
- Application Number
- PCT/US2023/026752
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-30
- Publication Date
- 2025-01-02
AI Technical Summary
Existing docking stations often restrict local user access to a computing system when providing remote access for technical support, limiting seamless access to computing resources during technical issues or malfunctions.
A dual access system that enables concurrent access by providing a secondary computing system with synchronized data and KVM functionality, allowing users to access computing resources even when the primary system is inaccessible, through a KVM controller and routing system that manages data communication paths between input/output devices, remote computing systems, and secondary computing systems.
Enables seamless and concurrent access to computing resources for both local users and remote technical support personnel, ensuring uninterrupted access and support during system malfunctions or technical issues.
Smart Images

Figure US2023026752_02012025_PF_FP_ABST
Abstract
Description
CONCURRENT USER ACCESS COMPUTING SYSTEMBACKGROUND
[0001] Docking stations have become prevalent in computing systems to allow a user to connect computing systems to additional input / output devices, such as a mouse, keyboard, display, printer, etc. The docking station may serve as a centralized hub to expand the connectivity of the computing system by providing access to various input / output interfaces that are not available directly on the computing system. In some examples, the docking station can provide a network interface that enables the user computing system to access a computer network. For example, the user computing system can transmit and receive data packets over the network via the network interface.BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Throughout the drawings, reference numbers are re-used to indicate correspondence between referenced elements. The drawings are provided to illustrate examples of the subject matter described herein and not to limit the scope thereof.
[0003] Figure 1 illustrates a block diagram of an example environment in which some examples of the present disclosure may be implemented.
[0004] Figure 2A illustrates a block diagram of the dual access system in accordance with some examples.
[0005] Figure 2B illustrates a block diagram with additional details of the dual access system of Figure 2A.
[0006] Figure 3 presents a flowchart of an access process in accordance with some examples.
[0007] Figure 4 presents a flowchart of a local access process in accordance with some examples.
[0008] Figure 5 presents a flowchart of a remote access process in accordance with some examples.
[0009] Figure 6 presents a flowchart of a concurrent access process in accordance with some examples.
[0010] Figure 7 presents a flowchart of a supplemental access process in accordance with some examples.DETAILED DESCRIPTIONIntroduction
[0011] A docking station can provide a centralized connection for connecting a computing system to various peripheral devices, such as a keyboard, mouse, monitor, printer, scanner, speaker, external hard drive, etc. Typically, the docking station includes a variety of ports, such as universal serial bus (USB) ports, video ports, ethernet ports, audio ports, etc. The docking station may be connected to a computing system (e.g., a computing system used by a user) and enables data communication between the computing system and one or more various peripheral devices. For example, the docking station can receive input signals from a keyboard and mouse and can provide the input signal to the computing system. In another example, the docking station can receive output signals (e.g., graphical images) generated from the computing system and can provide the output signals to a display device for display to a user.
[0012] In some examples, the docking station provides a network interface to enable the computing system to communicate over a network. The network can include any type of network, including, for example, local area network (LAN), wide area network (WAN), wireless local area network (WLAN), virtual private network (VPN), etc. In some examples, through the network interface, the docking station enables the computing system to communicate with a remote computing system and / or to access cloud services provided by various network service providers.
[0013] The docking station may enable a remote user to access the computing system through the network interface. In some examples, a remote user, by utilizing a remote computing system, may access the computing system to, for example, provide technical support or training. The remote user can generally refer to any person or system that canprovide technical support. For example, the docking station, upon authorizing the remote user, may allow the remote user to access the computing resources of the computing system.
[0014] To facilitate remote access to the computing resource of the computing system by the remote computing system (e.g., computing system utilized by the remote user), the docking station may enable the remote user to control the computing system by providing a keyboard, video, and mouse (KVM) functionality of the computing system. In some examples, the docking station may disable local input ports used to receive input from the user. For example, when the computing system is malfunctioning or not operating as desired, the remote user may provide technical support for a user of the computing system. The user may include a user of the computing system, a system administrator, or any person authorized to access the computing system. In some such cases, the docking station may disable the docking station interfaces that provide KVM functionality to the computing system and may provide the KVM functionality to the remote computing system. In some examples, the remote user can provide input to the computing system using the remote computing system, and the docking station may route the output generated from the computing system to the remote computing system.
[0015] However, there may be situations where a remote user has exclusive access to the computing system while the user is restricted from accessing it. Illustratively, when the docking station provides the KVM functionality to the remote user via the remote computing system to provide technical support for the computing system, the user cannot access the computing resources of the computing system.
[0016] In some cases, the operating system executed at the computing system may execute instructions to the docking station to provide the KVM functionality to the remote computing system. In some examples, the remote user may not be able to control the computing system when the operating system is not executed at the computing system. For example, when the remote user provides technical support for the computing system and the computing system is rebooted, the operating system may re-execute the instruction to the docking station to provide the KVM functionality to the remote computing system. For example, the remote user may reboot the operating system while performing technical support. Upon rebooting the operating system, the user may manually re-execute instructions on the operating system to provide the KVM functionality to the remote user. In some instances, theuser may manually control the power status of the computing system while the remote user provides technical support. For example, when the remote user reboots the operating system of the computing system during the technical support session, the user may manually reboot or power on or off the computing system.
[0017] To address the above technical limitations, it may be desirable to implement a dual access system mechanism to provide seamless access to computing resources for a user to access while the remote user provides technical support for the computing system. Embodiments of the present disclosure relate to a secondary computing system, which a user can access or use while the computing system is inaccessible by the user, such that the computing system is inaccessible when the remote user accesses the computing system, the computing system is malfunctioning due to a technical issue, or any other reason why the computing system may be inaccessible. In some cases, the secondary computing system may concurrently provide its computing resources to the user when the computing system is inaccessible from the user.
[0018] Embodiments of the secondary computing system, as disclosed herein, may provide a similar computing environment to the computing system. For example, the secondary computing system may provide the same type of operating system installed in the computing system. In some examples, the secondary computing system includes synchronized data and / or applications with the computing system. For example, the computing system may periodically transmit the current user data to the secondary computing system, and the secondary computing system can store the received user data as updated synchronized data.
[0019] In some examples, the secondary computing system provides a program interface that can direct the user to access cloud services associated with the user account, and the user can access the synchronized data or applications stored in the cloud service. For example, the user can select the program to access the remote server that stores the synchronized data.
[0020] Embodiments of the dual access system, as disclosed herein, may enable a remote user to have keyboard, video, and mouse (KVM) functionality to interact with the computing system. The KVM functionality generally refers to the ability to interact with a single computing system or multiple computing systems using a keyboard, video (e.g.,monitor), and mouse. Tn some cases, the remote user may interact with the computing system by using the remote computing system.
[0021] In some cases, the remote computing system can control the power status of the computing system while accessing the computing resources of the computing system. In some examples, the docking station provides the KVM functionality to the remote computing system independent from the operating system executed in the computing system. For example, the dual access system may communicate with a basic input / output system (BIOS) of the computing system, and the BIOS may configure the input / output system to receive input signal data, such as keyboard and mouse data, from the remote computing system. For example, when the BIOS is executed in the computing system, the docking station communicates with the BIOS to provide system configuration related to the KVM functionality, such that whether the computing system receives the KVM functionality from the local ports of the docking station or from the remote computing system via the network interface.
[0022] Embodiments of the dual access system, as disclosed herein, may be implemented in a peripheral device. The peripheral device may include, but is not limited to, a monitor, a printer, a scanner, a speaker, a webcam, a universal serial bus (USB) flash drive, a dongle, or any other peripheral that may be attached to or in communication with a computing system. In some implementations, the dual access system can be implemented in or embedded in the computing system. The present disclosure does not limit the types of devices that can implement the dual access system.
[0023] In some examples, the dual access system may be implemented in hardware, firmware, software, or any combination thereof. Some of the disclosed examples may be implemented as instructions stored in a transitory or non-transitory computer-readable storage medium, which may be read and executed by a processor core or thread.I. Example Operating Environment
[0024] Figure 1 illustrates a block diagram of an example operating environment 100 in which examples of the present disclosure may operate according to various embodiments. In some examples, the operating environment 100 includes a dual access system 110, a computing system 140, a remote server 150, a remote computing system 160, andinput / output devices 170. The dual access system 1 10 may communicate with the remote server 150 and the remote computing system 160 via a network 130. In addition, the dual access system 110 communicates with the computing system 140 and the input / output devices 170 via wired data communication, such as physical wired connections. In some examples, a user 145 can utilize or interact with the input / output devices 170 to access the computing resources of the computing system 140 through the dual access system 110. The user 145 may interact with the input / output devices 170, which may cause the input / output devices 170 to provide input signals to the dual access system 110. The input / output devices 170 may include any type of user interface device, such as a keyboard or mouse. The dual access system 110 may route the input signals to the computing system 140. Upon receiving the input signals, the computing system 140 may process the input signals and generate outputs, such as graphical images, and transmit the outputs to the dual access system 110 to display on the input / output devices 170, such as the monitor. In some examples, the remote user 165 can utilize the remote computing system 160 to access the computing resources of the computing system 140 through the dual access system 110. The remote user 165 can include the authorized person who can access the computing resources of the computing system 140 to provide remote technical support. In some examples, the remote user 165 may interact with the remote computing system 160, which may cause the remote computing system 160 to provide input signals to the dual access system 110 via the network 130. In some examples, the dual access system 110 can route the input signals to the computing system 140 to enable the remote user 165 to access the computing resources of the computing system 140.
[0025] To simplify the discussion and not to limit the present disclosure, Figure 1 illustrates one dual access system 110, one computing system 140, one remote server 150, one remote computing system 160, and input / output devices 170. However, it should be understood that multiple instances of each device or system may exist within the operating environment 100. For example, the input / output devices 170 can be implemented in the computing system 160. Further, the network 130 may represent one or multiple networks that may communicate with each other. In addition, Figure 1 illustrates the data communication via the network 130 or the physical wired connection. The dual access system 110 and the computing system 160 can be collocated such that the dual access system 110 is closely located to the computing system 160 via a wired connection. In some implementations, the dual accesssystem 1 10 is implemented in the computing system 160. However, it should be understood that the data communication between devices or systems is merely provided as illustrated examples, and the present disclosure does not limit the types of data communication and / or geographic locations between devices or systems. a. Computing System 140 and Remote computing system 160
[0026] The computing system 140 and remote computing system 160 may refer to the computing device that can provide a user with access to computing resources, such as a desktop, laptop, tablet computer, wearable computer, server, personal digital assistant (PDA), hybrid PDA / mobile phones, set-top boxes, voice command devices, smartphones, digital media players, and the like. The computing system 140 and remote computing system 160 may execute an operating system that may allow a user to utilize the computing resources of the computing system.
[0027] In some examples, the computing system 140 and remote computing system 160 is communicatively coupled with the dual access system 110, and a user 145 can access the computing resources of the computing system 140 via the dual access system 110m where a remote user 165 can access the computing resources of the computing system 140 via the network 130 and the dual access system 110. In some cases, the dual access system 110 provides an input / output interface connected with the input / output devices 170, such as the keyboard and mouse (e.g., input devices) and the display device (e.g., output devices). In some cases, the user 145 may provide the input using the input devices connected with the dual access system 110, and the computing system 140 may receive the input via the dual access system 110. The computing system 140 may process the input and generate output, and the output is displayed on the output device of the input / output devices 170.
[0028] A remote user 165 may access the computing system 140, for example, to provide technical support. The remote user 165 can generally refer to a technical support representative or technician who provides technical assistance regarding the technical issues of the computing system 140. In some examples, the remote user 165 accesses the computing resources of the computing system 140 to perform technical support, such as troubleshooting, data backup, program installation or setup, operating system recovery, etc.
[0029] The computing systems 140 may include a system processor, a basic input / output system (BIOS), and a memory. In some examples, the system processor, the BIOS, and the memory are communicatively coupled through a system bus of the computing system 140. In some embodiments, the BIOS is stored in a separate memory (not shown), such as a read only memory (ROM) or any other memory that can store boot code.
[0030] The system processor may be embodied as any type of single-core, singlethread, multi-core, or multi-thread processor capable of performing functions as described herein. The system processor may be embodied as a microprocessor, central processing unit (CPU), digital signal processor (DSP), microcontroller, or other processor or processing / controlling circuit.
[0031] The memory may be embodied as any type of volatile or non-volatile memory or data storage, such as dynamic random access memory (DRAM), static random access memory (SRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM). The memory may store various data and program codes used during the operation of the computing system 140, including operating systems, application programs, libraries, drivers, and the like.
[0032] As used herein, a basic input / output system (BIOS) may refer to hardware or hardware and instructions to initialize, control, or operate a computing system prior to execution of an operating system (OS) of the computing system 140. Instructions included within a BIOS may be software, firmware, microcode, or other programming that defines or controls the functionality or operation of a BIOS. In some examples, the BIOS may be implemented using instructions, such as platform firmware of a computing system, executable by a processor. The BIOS may operate or execute prior to the execution of the OS of a computing system. The BIOS may initialize, control, or operate components such as hardware components of a computing system and may load or boot the OS of a computing system. In some examples, the BIOS may provide or establish an interface between hardware devices or platform firmware of the computing system and an OS of the computing system 140, via which the OS of the computing system may control or operate hardware devices or platform firmware of the computing system 140. In some examples, the BIOS may implement the Unified Extensible Firmware Interface (UEFI) specification or another specification or standard forinitializing, controlling, or operating the computing system 140. The BIOS may be stored by a memory, such as a read-only memory (ROM) or other non-volatile memory. b. Dual access system 110
[0033] The dual access system 110 can be communicatively coupled with the computing system 140, the remote server 150, the remote computing system 160, and the input / output devices 170.
[0034] The dual access system 110 may manage data communication paths for providing the KVM functionality to access the computing system 140. For example, the dual access system 110 may enable the user 145 to access the computing system 140 by routing the input signals received from the input / output devices 170 to the computing system 140. In another example, the dual access system 110 may enable the remote user 165 to access the computing system 140 by routing the input signals received from the remote computing system 160 to the computing system 140. The KVM functionality can generally refer to controlling functions related to the input signals that can provide input to the computing system 140 and the functionality to display outputs generated from the computing system 140 after processing the input. For example, the dual access system 110 may provide the KVM functionality to the user 145, and the user 145 interacts with input / output devices 170 and provide input to the computing system 140 via the dual access system 110. In some examples, the dual access system 110 may provide the KVM functionality to the remote computing system 160. The remote user 165, by utilizing the remote computing system 160, may provide the input to the computing system 140. The computing system 140, after processing the input, may provide output (e.g., display output on the display of the remote computing system 160) to the remote computing system 160. c. Remote Server 150
[0035] In some implementations, the remote server 150 can be connected to the dual access system 110 via the network 130. The remote server 150 can store data, including the data from the user 145, and allow the user 145 to access the stored data. Illustratively, a network service provider may provide a cloud service, such as the remote server 150, that can store customer data remotely. The customer can store data in the remote server 150 via thenetwork service and can access the stored data through the network 130. For example, the user 145 may store data in the remote server 150 by accessing the remote server 150, using the network service (e.g., logging into the network service that provides the remote server 150 storage). In some examples, the user 145 may backup whole or a portion of the user data stored the computing system to the remote server 150, such that the data is automatically stored as backup data in the remote server 150, while the user 145 is accessing the computing system 140.
[0036] The remote server 150 may include a remote management service 152. In some examples, the remote management service 152 automatically synchronizes the stored data included in the data store 154 with the up to date data stored in the computing system 140. For example, the user 145 may run an application in the operating system of the computing system 140, and the application is to transmit the user data to the remote management service 152 while the user 145 uses the computing system 140. The remote management service, upon receiving the user data, may synchronize the user data stored in the data store 154 with the user data received from the computing system 140. In some implementations, when the computing system 140 is inaccessible by the user 145, the user 145 may access the stored data in the remote server 150 using another computing system. For example, when the remote user 165 is performing technical support on the computing system 140, and the user 145 is unable to access the data stored in the computing system 140, the user 145 may continuously access the data by utilizing a secondary computing system and connecting to the remote server 150 through the network 130.
[0037] The data store 154 may include a data structure (and / or combinations of multiple data structures) for storing and / or organizing the user data, such as in a data format including, but not limited to, relational databases (e.g., Oracle databases, PostgreSQL databases, etc.), non-relational databases (e.g., NoSQL databases, etc.), in-memory databases, spreadsheets, comma separated values (CSV) files, extensible markup language (XML) files, TeXT (TXT) files, flat files, spreadsheet files, and / or another widely used or proprietary format for data storage. Additionally, although the present disclosure may show or describe data as being stored in combined or separate databases, in various examples, such data may be combined and / or separated in an appropriate way into databases, tables of databases, etc. As used herein, a data source may refer to a table in a relational database, for example.
[0038] Tn some implementations, the remote server 150 can be a local data server that locally stores the user data. For example, the user 145 accesses the stored data of the remote server 150 within a local area network (LAN). The remote server 150 can also be provided by a cloud service provider. d. Network 130
[0039] The network 130 may include a combination of wired and / or wireless networks, such as a local area network, a wide area network, a personal area network, a cellular network, and the like. In some cases, the network 130 may include the Internet. In some examples, communication between the dual access system 110 and the remote server 150 may be via a short-range communication protocol, such as Bluetooth, Bluetooth low energy (“BLE”), and / or near field communications (“NFC”).
[0040] In some examples, the communication between the dual access system 110 and the remote computing system 160, and the remote server 150 occurs via the network 130, such as via secured networks, such as a local area network that communicates securely via the Internet with the remote server 150. The network 130 may include a wired network, wireless network, or combination thereof. For example, the network 130 may be a personal area network, local area network, wide area network, over-the-air broadcast network (e.g., for radio or television), cable network, satellite network, cellular telephone network, or a combination thereof. As a further example, the network 130 may be a publicly accessible network of linked networks, possibly operated by various distinct parties, such as the Internet. In some examples, the network 130 may be a private or semi-private network, such as a corporate or university intranet. The network 130 may include wireless networks, such as a Global System for Mobile Communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Long Term Evolution (LTE) network, or other types of wireless networks. In some examples, the network 130 can utilize a dedicated radio communication channel, such as Category-M (Cat- M) communication channel. The network 130 can use protocols and components for communicating via the Internet or other aforementioned types of networks. For example, the protocols used by the network 130 may include Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), Message Queue Telemetry Transport (MQTT), Constrained Application Protocol (CoAP), and the like. Protocols and components for communicating via the Internetor other aforementioned types of communication networks are well known to those skilled in the art and, thus, arc not described in more detail herein. Thus, although the discussion herein may describe communication between the dual access system 110 and the remote server 150 via the network 130, communications of the devices are not limited in this manner. The various communication protocols discussed herein are merely examples, and the present disclosure is not limited thereto. e. Input / Qutput Devices 170
[0041] The dual access system 110 may provide various types of interfaces for connecting various peripheral devices, such as the input / output devices 170. For example, the input / output devices 170 includes but is not limited to keyboards, mice, printers, external storage devices, monitors, etc. In some examples, the dual access system 110 provides the KVM functionality to the user 145 by routing the input signal data received from the input / output devices to the computing system 140. For example, the user 145 may provide input to the computing system 140 by utilizing the input devices of the input / output devices 170. In addition, upon the computing system 140 processes the input, the computing system 140 transmits the output data (e.g., processed results of the input) to the dual access system 110, and the dual access system 110 displays the output data on the monitor of the input / output devices 170.II. Examples of Dual access system 110
[0042] Figure 2A illustrates an example hardware configuration of the dual access system 110. As shown in Figure 2A, the dual access system 110 can include a KVM controller 220, a secondary computing system 230, and a routing system 240. In some implementations, the KVM controller 220, and / or the secondary computing system 230 communicate with each other through the routing system 240. The routing system 240 may include an operating mode switch 244 and a multiplexer 246 to route data or communication signal, such as an operating mode control signal that provides an operating mode. For example, if the user 145 selects an operating mode, using the operating mode switch 244, that enables the remote user 165 accesses to the computing system 140, the multiplexer 246 may receive the operating mode control signal from the operating mode switch 244 and route the KVM data between the remotecomputing system 160 and the computing system 140. The KVM data may include keyboard input, the mouse movement, and the display data. For example, the remote user 165 may interact with the remote computing system 160 to provide input data, such as keyboard input and mouse movement data through the remote computing system 160. Upon receiving the input data, the remote computing system 160 may transmit the input data to the dual access system 110, and the dual access system 110 route the input data to the computing system 140. The computing system 140 may process the input data and generate output data (e.g., a graphical representation of the processed results of the input data). The computing system 140 may transmit the output data to the dual access system 110, and the dual access system 110 may route the output data to the remote computing system 160 that is to display the output data on the display of the remote computing system 160. In some examples, when the remote computing system 160 accesses the computing system 140, the multiplexer 246 may direct the KVM data between the input / output devices 170 and the secondary computing system 230. For example, when the remote user 165 is performing a technical support session by accessing to the computing system 140, the multiplexer 246 may direct the input data from the input / output devices 170 to the secondary computing system 230. Upon receiving the input data, the secondary computing system 230 may process the input data and generate output data, such as a graphical representation. The secondary computing system 230 may transmit the output data to the dual access system 110, and the dual access system 110 can display the output through the input / output devices 170. Thus, the user 145 can simultaneously access the secondary computing system 230, while the remote computing system 160 accesses the computing resources of the computing system 140.
[0043] To simplify the discussion and not to limit the present disclosure, Figure 2A illustrates one KVM controller 220, one secondary computing system 230, and one routing system 240. However, it should be understood that multiple instances of each device or system may exist within the dual access system 110.
[0044] The dual access system 110 may enable the remote computing system 160 or the user 145 to access the computing resources of the computing system 140. Providing the KVM functionality of the computing system 140 to the remote computing system 160 may allow the remote user 165 (e.g., the remote user 165 by interacting with the remote computing system 160) to access the computing system 140. In addition, the dual access system 110 mayprovide the KVM functionality to the input / output devices 170 to allow the user 145 to access the computing resources of the computing system 140.
[0045] The KVM controller 220 can manage the data communication path or routing path associated with exchanging the KVM data between the dual access system 110 and the computing system 140, input / output devices 170, and / or the remote computing system 160. The KVM controller 220 may provide the KVM functionality by configuring the KVM data communication path configuration within the dual access system 110. In some implementations, when the user 145 is accessing the computing resources of the computing system 140, the KVM controller 220 may provide the KVM functionality by enabling the dual access system 110 to receive the input signal data from the input / output devices 170, such as the keyboard and mouse of the input / output devices 170. In other implementations, when the remote user 165 accesses the computing system 140, the KVM controller 220 may enable the network interface of the dual access system 110 to receive the input signal data from the remote computing system 160 and provide the received input signal data to the computing system 140. In some implementations, the KVM controller 220 exchanges the KVM data by using internet protocol. For example, the input data, such as the keyboard and mouse movement data, are provided as an internet packet, and the KVM controller 220 may process the packet and transmit the processed input data to the computing system 140. Also, the computing system 140 may generate output data and transmits the data to the dual access system 110. Then, the KVM controller 220 may process the output data to convert the data into IP format, and the dual access system 110 can transmit the converted output data to the remote computing system 160 via the IP address.
[0046] In some implementations, the dual access system 110 includes the secondary computing system 230. The secondary computing system 230 may provide its computing resources to the user 145, while the remote computing system 160 has the KVM functionality of the computing system 140. The KVM controller 220 may enable the data communication path to provide KVM functionality of the secondary computing system 230 to the user 145. For example, the KVM controller 220 enables a data communication path between the input / output devices 170 and the secondary computing system 230. Thus, the user 145 can provide the input signal data to the secondary computing system 230, and the secondary computing system 230, after processing the input signal data, transmits the outputdata (e.g., display data) and displays the output data on the output device of the input / output devices 170.
[0047] In some examples, the dual access system 110 provides the KVM functionality of the computing system 140 to the remote computing system 160 and also concurrently provides the KVM functionality of the secondary computing system 230 to the user 145. For example, the KVM controller 220 enables data communication paths between the remote computing system 160 and the computing system 140 and also between the input / output devices 170 and the secondary computing system 230.III. Detailed Examples of Dual access system 110
[0048] Figure 2B illustrates a detailed example block diagram of the dual access system 110 that can provide access to the secondary computing system 230 while a remote user 165 accesses computing resources of the computing system 140. a. KVM Controller 220
[0049] The KVM controller 220 may include a controller processor 222 and a controller memory 224. In some examples, the controller processor 222 may be embodied as any type of single-core, single-thread, multi-core, or multi-thread processor capable of performing functions as described herein. The controller processor 222 may be embodied as a microprocessor, central processing unit (CPU), digital signal processor (DSP), microcontroller, or other processor or processing / controlling circuit. In some examples, the controller memory 224 may be embodied as any type of volatile or non-volatile memory or data storage, such as dynamic random access memory (DRAM), static random access memory (SRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM). The controller memory 224 may store various data and program codes used during various operating modes of the dual access system 110, including operating systems, application programs, libraries, drivers, and the like.
[0050] In some examples, the controller memory 224 includes instructions for configuring a data communication path based on the selected mode of the dual access system 110 operations. For example, when the user 145 selects a mode that provides remote access to the computing resources of the computing system 140, the controller processor 222 mayexecute instructions stored in the memory to provide the KVM functionality of the computing system 140 to the remote user 165 to access the computing resources. In addition, when the user 145 selects a mode that provides the concurrent access mode that allows the user 145 access to the computing resources of the secondary computing system 230, the controller processor 222 may execute instructions stored in the memory to provide the KVM functionality of the computing system 140 to the remote user 165 and the KVM functionality of the secondary computing system 230 to the user 145. These instructions can be executed by configuring the data communication paths between the dual access system 110 and the remote computing system 160 and / or the computing system 140. For example, the controller processor 222 may enable the KVM functionality data communication between the remote computing system 160 and the computing system 140 or between the input / output devices 170 and the computing system 140 based on the selected mode.
[0051] In some examples, the KVM controller 220 is communicatively coupled with the remote computing system 160 through the network 130. In some examples, the KVM controller 220 may enable its functionality to exchange the KVM data from the remote computing system 160 over the Internet in the form of the Internet protocol. For example, the KVM controller 220 may exchange the KVM data over the internet protocol. In some examples, the remote user 165 may obtain the IP address from the user 145 or the system administrator to access the computing resources of the computing system 140 by obtaining the KVM functionality. The remote user 165 may access the IP address, and the KVM controller 220 may identify the access from the remote user 165. Upon identifying the access, the KVM controller 220 may configure KVM data communication path to receive the KVM data from the remote computing system 160. For example, upon identifying the access, the KVM controller 220 may disable the KVM data communication path between the input / output devices 170 and the computing system 140. Thus, the user 145 may not be able to access the computing resources of the computing system 140.
[0052] Upon identifying the access from the remote user 165, the KVM controller 220 may process the KVM data provided by the remote computing system 160. In some instances, the KVM controller 220 identifies the keyboard, video, and mouse data transmitted from the remote computing system 160 and encodes the received data to provide input signal data to the computing system 140. For example, the KVM controller 220 identifies the inputsignal data included in the TP packets transmitted from the remote computing system 160 and encodes the input signal data to provide the input to the computing system 140. Exchanging the KVM data may involve the KVM controller 220 to emulate the encoded KVM data to use the data as input signal data to the computing system 140. For example, upon encoding the KVM data received from the remote computing system 160, the KVM controller 220 emulates the encoded data to determine whether the encoded data can be transmitted to the computing system 140. If the remote computing system 160 has a different screen resolution from the screen resolution of the computing system 140, the KVM data, such as the mouse movement on the remote computing system 160, can be encoded to provide the same mouse movement in the display of the computing system 140. The KVM controller 220 may emulate the encoded mouse movements based on the computing system 140 screen resolution. After successfully completing the emulation, the KVM controller 220 provides the encoded mouse movement data to the computing system 140.
[0053] In some examples, the KVM controller 220 configures the KVM data communication path between the remote computing system 160 and the computing system 140 when the BIOS is executed and before the operating system is loaded on the computing system 140. For example, when the BIOS is initiated in the computing system 140, the BIOS and the KVM controller 220 can be communicatively coupled. The BIOS may configure its configuration setting (e.g., network setting of the computing system) to receive the KVM data from the remote computing system 160, such as the KVM controller 220. Thus, the remote user 165 can control the power status of the computing system 140 while providing technical support. For example, during access to the computing resources of the computing system 140, the remote user 165 may reboot the computing system 140 without severing the data communication path to the computing system 140.
[0054] In some examples, the KVM controller 220 provides the remote computing system with access input / output devices 170 (e.g., user interface device) that is communicatively coupled to the dual access system 110. For example, the remote computing system provides the KVM data to one of the input / output devices 170, and the device interacts with the computing system 140 by providing the KVM data to the computing system 140.b. Secondary Computing System 230
[0055] In some examples, the secondary computing system 230 includes a secondary processor 232 and the secondary memory 234. In some examples, the secondary memory includes an operating system, and the secondary processor 232 can execute the operating system. For example, a user 145 may turn on the power of the secondary computing system 230, and the secondary processor 232 may execute instructions to load the operating system. In some cases, the dual access system may enable data communication between the secondary computing system 230 and the remote server 150.
[0056] In some examples, the operating system of the secondary computing system provides an application to allow the user 145 to access the remote server 150. For example, upon loading the operating system, the user 145 may execute the application to access the remote server 150. In some examples, the remote server 150 is provided by a network service provider, and the remote server 150 may store the user data. For example, if the user 145 is using the computing system 140, the user data can be periodically stored in the remote server 150 provided by the network service provider. In some examples, the user 145 logs in to the cloud service provided by the network service provider and accesses the remote server 150. In some examples, the remote server 150 is provided as a local area network server.
[0057] In some examples, the user 145 may access the secondary computing system 230 while the remote user 165 accesses the computing system. For example, when the KVM controller 220 provides the KVM functionality of the computing system 140 to the remote user 165 to perform the technical support, the KVM controller 220 configures the KVM functionality data communication of the secondary computing system 230 to enable the user 145 to have the KVM functionality of the secondary computing system 230 through the input / output devices 170.
[0058] In some examples, the secondary computing system 230 is provided as a thin client computing system. In some examples, the thin client computing system provides access to a cloud service that provides remote computing resources and the remote server 150. For example, when the user 145 accesses the computing resource of the thin client computing system (e.g., the secondary computing system 230), the thin client computing system directs the user 145 to access the cloud service that provides remote computing resources to the user 145.
[0059] Tn some examples, the secondary computing system 230 is implemented as a backup computing system. For example, when the computing system 140 is inaccessible during the remote user 165 access to the computing system 140, the backup computing system allows the user 145 to access its computing resources.
[0060] In some implementations, the computing resources of the controller processor 222 and controller memory 224 are implemented to the secondary processor 232 and the secondary memory 234. For example, the KVM controller 220 may utilize the secondary computing system 230 to perform the examples described above. Thus, the dual access system 110 may include a single computing resource that can provide computing resources for the KVM controller 220, secondary computing system 230, and the routing system 240.
[0061] In some examples, the secondary computing system is implemented as computing resources of the dual access system 110. For example, the computing resources enable the user 145 to access at least some applications accessible by the computing system. c. Routing System 240
[0062] The routing system 240 includes a data interface 242, operating mode switch 244, and multiplexer 246. The data interface 242 can provide various types of physical connectors, data bus, or network interface used to connect devices or systems to the dual access system 110. These various types can include a universal serial bus (USB), a high-definition multimedia interface (HDMI), a display port, a thunderbolt, an ethernet, etc. To simplify the discussion, the present disclosure provides examples identifying particular numbers or types of ports. However, the present disclosure does not limit the types of ports nor the number of ports included in the dual access system 110.
[0063] The routing system 240 may include an operating mode switch 244. For example, the operating mode switch 244 is a physical switch implemented in the dual access system 110. The operating mode switch 244 can be a toggle switch, a push button switch, a rocker switch, a rotary switch, a slide switch, a touchscreen interface, or any other type of switch, button, or interface that may be used to select an operating mode. In some implementations where the dual access system 110 is implemented in a device, the operating mode switch 244 is implemented in a surface of the device, so that a user can select the operating mode by using the operating mode switch 244. For example, if the dual accesssystem 110 is implemented in lab top computer, the operating mode switch 244 can be positioned on the enclosure of the lap top computer.
[0064] The operating mode can include a local access mode, a remote access mode, a concurrent access mode, and a supplemental access mode. During the local access mode, the user 145 may access the computing resources of the computing system 140 through the input / output devices 170. For example, the dual access system 110 can provide a communication path to permit data communication between the input / output devices 170 and the computing system 140. In some examples, the multiplexer 246 may direct the KVM data between the dual access system 110, the computing system 140, the remote computing system 160, and the secondary computing system 230 based on the selected operating mode. For example,.
[0065] In some examples, during the remote access mode, the remote user 165 by utilizing the remote computing system 160 can access the computing resources of the computing system 140. For example, the multiplexer 246 can provide a communication path for the remote computing system 160 to communicate with the computing system 140.
[0066] In some examples, during the concurrent access mode, the dual access system 110 may permit the remote user 165 to access the computing resources of the computing system 140 while also permitting the user 145 to access the secondary computing resources of the secondary computing system 230 hosted by the dual access system 110. For example, when the remote user 165 is performing a technical support session by accessing the computing system 140, the multiplexer 246 may enable the remote computing system 160 to exchange the KVM data with the computing system 140, while the multiplexer 246 enable the secondary computing system 230 to exchange the KVM data associated with the secondary computing system 230 with the input / output device 170. Thus, the remote user 165, by interacting with the remote computing system 160, may access to the computing system 140, and the user 145, by using the input / output device 170, may concurrently access to the secondary computing system 230.
[0067] In some examples, during the supplemental access mode, the user 145 can utilize the computing resources of the secondary computing system 230 as a backup computing system, while the user 145 is using the computing system 140. For example, when the computing system 140 has a technical issue that causes the restriction for using the computingsystem 140, the multiplexer 246 may enable the second computing system 230 to exchange the KVM data associated with the second computing system 230 with the input / output device 170. Thus, user 145 may continuously use computing resources by accessing the secondary computing system 230. In some implementations, the user 145 may utilize the secondary computing system 230 in addition to the computing resources of the computing system 140. For example, the user 145 may run a portion of the task by utilizing the computing system 140 and other portion of the task by utilizing the secondary computing system 230.I. Examples of Dual access system Operating mode a. Local Access Mode
[0068] During the local access mode, the user 145 can access the computing resources of the computing system 140. In some examples, the user 145 selects the local access mode by using the operating mode switch 244. Upon selecting the local access mode by the user 145, the dual access system 110 enables the user 145 to access the computing system 140 through the input / output devices 170. In some implementations, upon selecting the local access mode, the KVM controller 220 configures the KVM data communication path between the input / output devices 170 and the computing system 140. This configuration can be performed by the routing system 240, such that the routing system 240 enables data paths for the dual access system 110 to receive the input signals from the input devices of the input / output devices 170. For example, the user 145 may interact with input / output devices 170 to provide the input data, such as the keyboard input and mouse movement, and the routing system 240 routs the input data to the computing system 140. In addition, the computing system 140 may process the input data and transmits the output data (e.g., graphical images) to the dual access system 110, and the dual access system 110 displays the output data on the output device of the input / output devices.
[0069] In some examples, the computing system 140 configures its interface setting to exchange (e.g., receive or transmit) the KVM data (e.g., input / output data) by using the BIOS. For example, upon selecting the local access mode, the computing system 140 can be powered on or rebooted and initiate the BIOS. The BIOS may communicate with the KVM controller 220 to identify the KVM data communication configurations. For example, uponinitiating the BIOS, the KVM controller 220 provides its interface port information, such as port numbers, associated with the input / output devices 170. The BIOS may configure its interface setting to exchange the KVM data through the ports. Thus, the user 145 can access the computing resources of the computing system 140 through the input / output devices 170. b. Remote Access Mode
[0070] In some implementations, when the computing system 140 has technical issues, the user 145 may select the remote access mode by using the operating mode switch 244. The remote access mode may enable the remote user 165 to access the computing system 140 to perform tasks related to the technical support. During the remote access mode, the remote user 165 can access the computing resources of the computing system 140.
[0071] In some implementations, upon selecting the remote access mode by the user 145, the dual access system 110 verifies whether the remote user 165 is authorized to access the computing system 140. For example, the dual access system 110 may utilize authentication platforms to verify whether the remote user 165 is authorized to access the computing resources of the computing system 140. The present disclosure does not limit the method of authentication, and any commercially available platform can be used.
[0072] Upon verifying that the remote user 165 is authorized to access the computing system 140, the KVM controller 220 may configure the KVM data communication path between the remote computing system 160 and the computing system 140. This configuration can be performed by the routing system 240, such that the routing system 240 enables data paths for the dual access system 110 to receive the input signals from the remote computing system 160. For example, the remote user 165 may provide the input signals using remote computing system 160, and the routing system 240 routs the input signals to the computing system 140. In addition, the computing system 140 may process the input signals and transmits the output signals (e.g., graphical images) to the dual access system 110, and the routing system 240 routs output signals to the remote computing system 160.
[0073] In some examples, upon selecting the remote access mode by the user 145, the computing system 140 can be powered on or rebooted and initiate the BIOS. The BIOS may communicate with the KVM controller 220 to identify the KVM data communication configurations. For example, upon initiating the BIOS, the KVM controller 220 may provideinformation related to the data interface 242, such as port numbers associated with the remote computing system 160. The BIOS may configure its interface setting to receive or transmit the KVM data through the ports. For example, if the interface port information includes the network interface port, the interface setting can be configured to exchange the KVM data through the network interface port. In other examples, if the data interface 242 information includes that the other data interface (e.g., other than the network port) receive or transmit the KVM data, the interface setting can be configured corresponding to the other data interface. Thus, the remote user 165 can have the KVM functionality to access the computing resource of the computing system 140 independent from the operating system of the computing system 140. For example, the remote user 165 may reboot the operating system during the remote access (e.g., while providing technical support) and automatically reconfigure the remote access configuration.
[0074] In some implementations, the KVM data can be provided as the internet protocol KVM (IPKVM). The remote user 165 may provide the data related to the KVM in IP based data packets, and the KVM controller 220 processes the IP based KVM data. For example, when the computing system 140 has technical issues, the user 145 may provide an IP address that can exchange the KVM data. In some examples, providing the IP address to the remote user 165 indicates that the remote user 165 is authorized to access the computing resources of the computing system 140 because the user 145 may provide the IP address to the verified remote user 165. In other examples, the dual access system 110 utilizes commercially available may utilize commercially available authentication platforms to authenticate the credential information of the remote user 165 before providing access to the computing system 140. The present disclosure does not limit the method of authentication, and any commercially available platform can be used.
[0075] After verifying the remote user 165, the KVM controller 220 configures the KVM data communication to enable the computing system 140 to receive the KVM data from the remote computing system 160. In some examples, the KVM controller 220 may execute instructions to reboot the computing system 140. In other examples, the KVM controller 220 may display a message on the display device of the input / output devices 170 (or display of the computing system 140) to provide an instruction to the user 145 to reboot the computing system 140. In some examples, when the computing system 140 is rebooted, the BIOS isinitiated, and the BIOS sets up its KVM data communication configuration to receive the KVM data from the remote computing system 160. Configuring the KVM data communication between the BIOS and the remote computing system 160 allows the remote computing system 160 to continuously (e.g., seamlessly) access the computing resources of the computing system 140. For example, during the technical support, the remote computing system 160 can reboot the computing system 140 without severing the KVM data communication connection because when the computing system 140 is rebooted, the BIOS of the computing system 140 automatically reconfigures the KVM data communication paths. c. Concurrent Access Mode
[0076] The concurrent access mode may enable the remote user 165 to access the computing resources of the computing system 140, as described above, and also enables the user 145 to access the computing resources of the secondary computing system 230.
[0077] In some examples, during the concurrent access mode, the dual access system 110 continuously provides computing resources for the user 145 to continuously use when the computing system 140 is inaccessible. For example, while the remote user 165 accesses the computing system 140, the user 145 may access the secondary computing system 230. The KVM controller 220 may enable the data communication path to provide KVM functionality for the user 145 to access the computing resources of the secondary computing system 230. For example, the KVM controller 220 enables a data communication path between the input / output devices 170 and the secondary computing system 230. Thus, the user 145 can provide the input signal data to the secondary computing system 230, and the secondary computing system 230, after processing the input signal data, transmits the output data (e.g., display data) and displays the output data on the output device of the input / output devices 170.
[0078] In some examples, the secondary computing system 230 provides a similar computing environment to the computing system 140. For example, the secondary computing system 230 provides the same type of operating system installed in the computing system 140. In some examples, the secondary computing system 230 includes synchronized data and / or applications with the computing system. For example, the computing system 140 may periodically transmit the current user data to the secondary computing system 230, and thesecondary computing system 230 can store the received user data as the synchronized data. Tn some examples, the user 145 may access the remote server 150 to access the whole or portion of the user data stored in the data store 154 of the remote server 150. d. Supplemental Access Mode
[0079] In some examples, the user 145 selects the supplemental access mode that provides the computing resources of the secondary computing system 230 when the user 145 is utilizing the computing resources of the computing system 140. In some examples, the secondary computing system 230 provides its computing resources as supplementary resources. For example, when the user 145 is utilizing the computing resources of the computing system 140, the user 145 further utilizes the computing resources of the secondary processor as supplemental resources.II. Example of Access Process
[0080] Figure 3 presents a flowchart of an access process for determining the access mode. The process 300 may be implemented by the dual access system 110 that can provide various access modes, such as the local access mode, the remote access mode, the concurrent access mode, and the supplemental access mode. The process 300, in whole or in part, can be implemented by, for example, the KVM controller 220, the secondary computing system 230, or the routing system 240, among others. Although any number of systems or additional systems, in whole or in part, can implement the process 300, to simplify the discussion, the process 300 will be described with respect to particular components implemented in the dual access system 110.
[0081] The process begins at block 302. At the block 302, the dual access system 110 provides the user to access the computing system 140. The user 145 may utilize the computing resource of the computing system 140, such that the dual access system 110 provides access for the user to access the computing system 140. As discussed above, the user 145 accesses the computing system 140 through the dual access system 110. In some examples, the dual access system 110 provides the functionality to control the KVM of the computing system 140. For example, the dual access system 110 receives input from the data interface 242 connected to the input / output devices 170. The user 145 may provide the inputthrough the input / output devices 170 to access the computing resources of the computing system 140. In addition, upon the computing system 140 processes the input, the computing system 140 may generate output, such as graphical representations, and the display device of the input / output devices 170 may display the output.
[0082] At decision block 304, the dual access system 110 determines whether the dual access system 110 received the operating mode control signal from the user 145. In some examples, the user 145 may select a mode by using the operating mode switch 244. If the user 145 selects the mode, the process 300 proceeds to blocks 306, 308, 310, and 312. If the user 145 did not select the mode, the process 300 may stay at block 304.
[0083] At block 306, the dual access system 110 determines an operating mode based on the received operating mode control signal. In some implementations, when the user 145 selects the operating mode by using the operating mode switch 244, the operating mode control signal associated with the selected operating mode can be generated. The switch position of the operating mode switch 244 may direct its signal to the KVM controller 220, and the KVM controller 220 can identify the signal as the operating mode control signal. For example, selecting an operating mode can correspond to a signal path associated with each operating mode by changing the switch position of the operating mode switch (e.g., selecting an operating mode can be related to configuring a signal path associated with the selected operating mode ). Thus, selecting the operating mode may result in connecting the signal path associated with the selected operating mode, where the operating mode control signal through the signal path can generate the operating mode control signal associated with the selected operating mode.
[0084] Upon determining that the determined operating mode is the local access process, the process 300 proceeds to local access process 400, as described in Figure 4.
[0085] Upon determining that the determined operating mode is the remote access process, the process 300 proceeds to the local access process 500, as described in Figure 5.
[0086] Upon determining that the determined operating mode is the concurrent access process, the process 300 proceeds to the concurrent access process 600, as described in Figure 6.
[0087] Upon determining that the determined operating mode is the supplemental access process, the process 300 proceeds to local access process 700, as described in Figure 7.
[0088] Although the operations of the process 300 are described in a particular order, it should be understood that the process 300 is not limited as such. Operations of the process 300 may be performed in an alternative order, serially, or at least partially in parallel.
[0089] Figure 4 presents a flowchart of a local access process. The process 400 may be implemented by the dual access system 110, which can provide various access modes, such as the local access mode, the remote access mode, the concurrent access mode, and the supplemental access mode. The process 400, in whole or in part, can be implemented by, for example, the KVM controller 220, the secondary computing system 230, or the routing system 240, among others. Although any number of systems or additional systems, in whole or in part, can implement the process 400, to simplify the discussion, the process 400 will be described with respect to particular components implemented in the dual access system 110.
[0090] The process 400 begins at block 402. At the block 402, the dual access system 110 identifies the local access mode control signal. In some implementations, when the user 145 selects the local access mode, the switch position of the operating mode switch 244 may direct its signal to the KVM controller 220, and the KVM controller 220 can identify the signal as the local access mode. For example, selecting an operating mode can correspond to a signal path associated with each operating mode by changing the switch position of the operating mode switch. Thus, selecting the local access mode may result in connecting the signal path associated with the local access mode by disconnecting other signal paths associated with other operating modes.
[0091] At block 404, the dual access system 110 provides the user 145 with access to the computing system 140. As discussed above, the user 145 accesses the computing system 140 through the dual access system 110. For example, the dual access system 110 receives input from the data interface 242 connected to the input / output devices 170. The user 145 may provide the input through the input / output devices 170 to access the computing resources of the computing system 140. In addition, upon the computing system 140 processing the input, the computing system 140 may generate output, such as graphical representations, and the display device of the input / output devices 170 may display the output. The process 400 is ended at block 406.
[0092] Although the operations of the process 400 are described in a particular order, it should be understood that the process 400 is not limited as such. Operations of theprocess 400 may be performed in an alternative order, serially, or at least partially in parallel. For example, the process 400 can proceed to block 304 of the process 300. For example, if the user 145 selects another operating mode during the block 404, the process can return to block 304.
[0093] Figure 5 presents a flowchart of a remote access process. The process 500 may be implemented by the dual access system 110, which can provide various access modes, such as the local access mode, the remote access mode, the concurrent access mode, and the supplemental access mode. The process 500, in whole or in part, can be implemented by, for example, the KVM controller 220, the secondary computing system 230, or the routing system 240, among others. Although any number of systems or additional systems, in whole or in part, can implement the process 500, to simplify the discussion, the process 500 will be described with respect to particular components implemented in the dual access system 110.
[0094] The process 500 begins at block 502. At the block 502, the dual access system 110 identifies the remote access mode control signal. In some implementations, when the user 145 selects the remote access mode, the switch position of the operating mode switch 244 may direct its signal to the KVM controller 220, and the KVM controller 220 can identify the signal as the remote access mode. For example, selecting an operating mode can correspond to a signal path associated with each operating mode by changing the switch position of the operating mode switch. Thus, selecting the remote access mode may result in connecting the signal path associated with the remote access mode by disconnecting other signal paths associated with other operating modes.
[0095] At block 504, the dual access system 110 provides the remote computing system with access to the computing system 140. As discussed above, the dual access system 110 provides the functionality to control the KVM of the computing system 140 to the remote user 165 through the remote computing system 160. For example, the dual access system 110 configures KVM data communication path between the remote computing system 160 and the computing system 140, so that the remote computing system 160 is enabled to access the computing resources of the computing system 140. The process 500 is ended at block 506.
[0096] Although the operations of the process 500 are described in a particular order, it should be understood that the process 500 is not limited as such. Operations of the process 500 may be performed in an alternative order, serially, or at least partially in parallel.For example, the process 500 can proceed to block 304 of the process 300. For example, if the user 145 selects another operating mode during the block 504, the process can return to block 304.
[0097] Figure 6 presents a flowchart of a concurrent access process. The process 600 may be implemented by the dual access system 110, which can provide various access modes, such as the local access mode, the remote access mode, the concurrent access mode, and the supplemental access mode. The process 600, in whole or in part, can be implemented by, for example, the KVM controller 220, the secondary computing system 230, or the routing system 240, among others. Although any number of systems or additional systems, in whole or in part, can implement the process 600, to simplify the discussion, the process 400 will be described with respect to particular components implemented in the dual access system 110.
[0098] Upon the user 145 selects the concurrent access mode at block 310 of the Figure 3, the process 600 begins at block 602. At block 602, the dual access system 110 identifies the concurrent access mode signal. In some implementations, when the user 145 selects the current access mode, the switch position associated with the current access mode may direct its signal to the KVM controller 220, and the KVM controller 220 can identify the signal as the concurrent access mode. For example, selecting an operating mode can correspond to a signal path associated with each operating mode by changing the switch position of the operating mode switch. Thus, selecting the concurrent access mode may result in connecting the signal path associated with the concurrent access mode by disconnecting other signal paths associated with other operating modes. Thus, the KVM controller 220 may identify the concurrent access mode based on the electrical characteristics of the signal that flows from the signal path.
[0099] At block 604, the dual access system 110 provides the remote computing system with access to the computing system 140. As discussed above, the dual access system 110 provides the functionality to control the KVM of the computing system 140 to the remote user 165 through the remote computing system 160. For example, the dual access system 110 configures KVM data communication path between the remote computing system 160 and the computing system 140, so that the remote computing system 160 is enabled to access the computing resources of the computing system 140.
[0100] At block 606, the dual access system 110 provides the user 145 with access to the secondary computing system 230. As discussed above, the user 145 accesses the secondary computing system 230 through the dual access system 110. In some examples, the dual access system 110 provides the functionality to control the KVM of the secondary computing system 230. For example, the dual access system 110 receives input from the data interface 242 connected to the input / output devices 170. The user 145 may provide the input through the input / output devices 170 to access the computing resources of the secondary computing system 230. In addition, upon the secondary computing system 230 processing the input, the secondary computing system 230 may generate output, such as graphical representations, and the display device of the input / output devices 170 may display the output.
[0101] At block 608, the dual access system 110 determines whether the remote computing system access is ended. Upon ending the remote access, the remote user 165 may terminate the connection between the remote computing system 160 and the dual access system 110. In some examples, the user 145 may end the remote computing system access by changing the operating mode. At the decision block 314, if the remote access to the computing system 140 from the remote computing system 160 is not ended, the process 600 continues to stay at block 604. If the remote access to the computing system 140 from the remote computing system 160 is ended, the process 600 proceeds to block 610.
[0102] At block 610, the dual access system 110 generates an output signal that indicates the ending of the remote access. The output signal can be associated with a light indicator that can flash a light, such as LED light, implemented in the dual access system 110, such that upon generating the output signal, the LED light is flashing. In some examples, the output signal is associated with generating a message on the display of the computing system 140. The process 600 is ended at block 612.
[0103] Although the operations of the process 600 are described in a particular order, it should be understood that the process 600 is not limited as such. Operations of the process 600 may be performed in an alternative order, serially, or at least partially in parallel. For example, the blocks 604 and 606 can be performed in parallel. Further, some operations may not be performed. For example, the block 610 may not be performed.
[0104] Figure 7 presents a flowchart of a supplemental access process 700. The process 700 may be implemented by the dual access system 110 that can provide various accessmodes, such as the local access mode, the remote access mode, the concurrent access mode, and the supplemental access mode. The process 700, in whole or in part, can be implemented by, for example, the KVM controller 220, the secondary computing system 230, or the routing system 240, among others. Although any number of systems or additional systems, in whole or in part, can implement the process 700, to simplify the discussion, the process 700 will be described with respect to particular components implemented in the dual access system 110.
[0105] The process 700 begins at block 702. At the block 702, the dual access system 110 identifies the supplemental access mode control signal. In some implementations, when the user 145 selects the supplemental access mode, the switch position of the operating mode switch 244 may direct its signal to the KVM controller 220, and the KVM controller 220 can identify the signal as the supplemental access mode. For example, selecting an operating mode can correspond to a signal path associated with each operating mode by changing the switch position of the operating mode switch. Thus, selecting the supplemental access mode may result in connecting the signal path associated with the remote access mode by disconnecting other signal paths associated with other operating modes.
[0106] At block 704, the dual access system 110 provides the user 145 with access to the secondary computing system 230. As discussed above, the user 145 accesses the secondary computing system 230 through the dual access system 110. In some examples, the dual access system 110 provides the functionality to control the KVM of the secondary computing system 230. For example, the dual access system 110 receives input from the data interface 242 connected to the input / output devices 170. The user 145 may provide the input through the input / output devices 170 to access the computing resources of the secondary computing system 230. In addition, upon the secondary computing system 230 processing the input, the secondary computing system 230 may generate output, such as graphical representations, and the display device of the input / output devices 170 may display the output. The process 700 is ended at block 706.
[0107] Although the operations of the process 700 are described in a particular order, it should be understood that the process 700 is not limited as such. Operations of the process 700 may be performed in an alternative order, serially, or at least partially in parallel. For example, the process 700 can proceed to block 304 of the process 300. For example, if theuser 145 selects another operating mode during the block 504, the process can return to block 304.III. Terminology
[0108] It is to be understood that not necessarily all objects or advantages may be achieved in accordance with any particular example described herein. Thus, for example, those skilled in the art will recognize that some examples may be operated in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.
[0109] All of the processes described herein may be embodied in, and fully automated via, software code modules executed by a computing system that includes computers or processors. The code modules may be stored in any type of non-transitory computer-readable medium or other computer storage device. Some or all the methods may be embodied in specialized computer hardware.
[0110] Many other variations than those described herein will be apparent from this disclosure. For example, depending on the example, some acts, events, or functions of any of the algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (for example, not all described acts or events are necessary for the practice of the algorithms). Moreover, in some examples, acts or events can be performed concurrently, for example, through multi-threaded processing, interrupt processing, or multiple processors or processor cores, or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and / or computing systems that can function together.
[0111] The various illustrative logical blocks and modules described in connection with the examples disclosed herein can be implemented or performed by a machine, such as a processing unit or processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combination of the same, or the like. A processor can include electrical circuitry to processcomputer-executable instructions. Tn some examples, a processor includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions. A processor can also be implemented as a combination of computing systems, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, microprocessors in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, a processor may also include primarily analog components. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing system, a device controller, or a computational engine within an appliance, to name a few.
[0112] Conditional language such as, among others, “can,” “could,” “might” or “may,” unless specifically stated otherwise, are otherwise understood within the context as used in general to convey that some examples include, while other examples do not include, some features, elements and / or steps. Thus, such conditional language is not generally intended to imply that features, elements and / or steps are in any way for examples or that examples necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and / or steps are included or are to be performed in any particular example.
[0113] Disjunctive languages such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (for example, X, Y, and / or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that some examples require at least one of X, at least one of Y, or at least one of Z to each be present.
[0114] Any process descriptions, elements or blocks in the flow diagrams described herein and / or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include executable instructions for implementing specific logical functions or elements in the process. Alternate examples are included within the scope of the examples described herein in which elements or functions may be deleted, executed out of order from that shown, or discussed, including substantiallyconcurrently or in reverse order, depending on the functionality involved as would be understood by those skilled in the art.
[0115] It should be emphasized that many variations and modifications may be made to the above-described examples, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure.
[0116] Any process descriptions, elements or blocks in the flow diagrams described herein and / or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include executable instructions for implementing specific logical functions or elements in the process. Alternate implementations are included within the scope of the examples described herein in which elements or functions may be deleted, executed out of order from that shown, or discussed, including substantially concurrently or in reverse order, depending on the functionality involved as would be understood by those skilled in the art.
[0117] Unless otherwise explicitly stated, articles such as “a” or “an” should generally be interpreted to include one or more described items. Accordingly, phrases such as “a device configured to” are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations. For example, “a processor configured to carry out recitations A, B, and C” can include a first processor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.
Claims
WHAT IS CLAIMED IS:
1. A dual access system comprising: a keyboard, video, and mouse (KVM) controller communicatively coupled with a remote computing system, the KVM controller is to enable the remote computing system to access the dual access system that interacts with a computing system, wherein the computing system is collocated with the dual access system; a thin client computing system comprising a hardware processor and memory, the thin computing system is to provide a user of the computing system with computing resources when the computing system is being accessed by the remote computing system or is inaccessible by the dual access system; and a routing system to connect to the computing system and the remote computing system, the routing system comprising an operating mode switch to switch between a plurality of operating modes, wherein the plurality of operating modes comprises a first operating mode where the user is provided with access to the computing system and a second operating mode where a remote user is provided with access to the computing system and the thin client computing system.
2. The dual access system of claim 1, wherein the thin client computing system is to store user data obtained from the computing system, and wherein the computing system is to periodically synchronize user data stored at the computing system with the user data at the thin client computing system.
3. The dual access system of claim 1, wherein the dual access system is implemented in a peripheral device.
4. The dual access system of claim 1, wherein the KVM controller is to control KVM functions of the computing system by: obtaining keyboard and mouse data from the remote computing system; emulating the keyboard and mouse data; providing the emulated keyboard and mouse data to the computing system;receiving display data from the computing system; emulating the display data; and transmitting the emulated display data to the remote computing system.
5. The dual access system of claim 1, wherein the KVM controller is to receive user interaction data from the remote computing system, and wherein the KVM controller is to transmit video data to the remote computing system.
6. The dual access system of claim 1, wherein, upon executing a BIOS of the computing system and before loading an operating system of the computing system, the BIOS and the KVM controller are communicatively coupled, wherein the BIOS is to configure an input / output setting of the computing system to communicate KVM data with the KVM controller.
7. The dual access system of claim 1, wherein, during the first operating mode, the dual access system provides the user access to the thin client computing system.
8. The dual access system of claim 1, wherein, upon initiating the thin client computing system, a network interface of the dual access system enables data communication between the thin client computing system and a remote server.
9. The dual access system of claim 1, wherein the routing system further comprises a multiplexer to route KVM data, wherein, during the first operating mode, the multiplexer is to route KVM data between input / output devices connected to the dual access system and the computing system, and wherein, during the second operating mode, the multiplexer is to route the KVM data between the remote computing system and the computing system.
10. A dual access system comprising: a routing system to connect to a computing system and a remote computing system;a keyboard, video, and mouse (KVM) controller communicatively coupled with the remote computing system, the KVM controller to provide the remote computing system with access a user interface device that is communicatively coupled to the dual access system and that interacts with the computing system through the dual access system; and a backup computing system comprising a hardware processor and memory, the backup computing system to provide a user of the computing system with computing resources when the computing system is not available to the user.
11. The dual access system of claim 10, wherein the KVM controller is to provide the remote computing system to control KVM functions of the computing system by: obtaining keyboard and mouse data from the remote computing system; emulating the keyboard and mouse data; providing the emulated keyboard and mouse data to the computing system; receiving display data from the computing system; emulating the display data; and transmitting the emulated display data to the remote computing system.
12. The dual access system of claim 10, wherein the KVM controller is to provide the backup computing system with access to the user interface device.
13. The dual access system of claim 10, wherein the backup computing system is to store synchronized data with the computing system, and wherein the computing system is to periodically update the synchronized data at the backup computing system.
14. A method of maintaining computing resource access, the method comprising: by a dual access system comprising computer hardware, providing access to a port of the dual access system to a computing system; providing access to a user to the computing system;receiving an operating mode control signal, wherein the operating mode control signal identifies an operating mode of the dual access system; determining that the operating mode control signal corresponds to a concurrent access mode; and in response to determining that the operating mode control signal corresponds to the concurrent access mode: providing a remote computing system with access to the computing system; and providing the user with access to computing resources of the dual access system, wherein the computing resources enable the user to access at least some applications accessible by the computing system without accessing the computing system.
15. The method of claim 14, wherein the dual access system provides the remote computing system with access to the computing system by: obtaining keyboard and mouse data from the remote computing system; emulating the keyboard and mouse data; providing the emulated keyboard and mouse data to the computing system; receiving display data from the computing system; emulating the display data; and transmitting the emulated display data to the remote computing system.