Web-based graphical user interface display system

A web-based graphical user interface system includes an embedded controller in a chassis that couples to a physical display device and input device, and creates a virtual display device and input device. When an input is received from the physical input device, the embedded controller generates a virtual input on the virtual input device. A chassis management controller in the chassis is coupled to the embedded controller, and views the virtual display device and input device as local devices. The chassis management controller may render a web-based graphical user interface and direct it to the virtual display device such that it is transmitted to the embedded controller for display on the physical display device. The chassis management controller may also identify the virtual input generated by the embedded controller on the virtual input device and, in response, translates the virtual input into a web-based graphical user interface event.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to the display of web-based graphical user interfaces for managing information handling systems.

Information handling systems are sometimes provided using a multi-devices chassis that house multiple computing devices. These types of information handling systems may allow for local management of their computing devices via a Keyboard Video Mouse (KVM) feature that allows an embedded controller in the multi-devices chassis to provide images generated by any of the computing devices for display on a display device that is locally connected to the multi-device chassis via the KVM feature. These types of information handlings systems often include a chassis management controller that is represented in the information handling system as one of the computing devices. The chassis management controller may be configured to provide a chassis management controller Command Line Interface (CLI) such as, for example, the Remote Access Controller Administrator (RACADM) available from Dell Inc. of Round Rock, Tex., United States, which allows a user to interact with the chassis management controller via the display of the chassis management controller CLI on the locally-connected display device in substantially the same manner as discussed above for the images generated by any of the other computing devices. However, chassis management controllers are now being provided with web-based graphical user interfaces that allow users to interact with the chassis management controller via a network (e.g., the Internet), but those web-based graphical user interfaces are inaccessible locally due to limitations in the image provisioning techniques discussed above.

Accordingly, it would be desirable to provide an improved web-based graphical user interface display system.

SUMMARY

According to one embodiment, an Information Handling System includes a first controller that is configured to couple to a physical display device and a physical input device, wherein the first controller is also configured to: create a virtual display device; create a virtual input device; receive an input from the physical input device; and generate a virtual input on the virtual input device; and a second controller that is coupled to the first controller, wherein the second controller is configured to: view the virtual display device and the virtual input device created by the first controller as local devices; render a web-based graphical user interface, and direct the web-based graphical user interface to the virtual display device such that the web-based graphical user interface is transmitted to the first controller for display on the physical display device; and identify the virtual input generated by the first controller on the virtual input device and, in response, translate the virtual input into a web-based graphical user interface event.

DETAILED DESCRIPTION

Referring now toFIG. 2, an embodiment of a web-based graphical user interface display system200is illustrated. In the illustrated embodiment, the web-based graphical user interface display system includes a multi-device chassis202that configured to house a plurality of computing devices204a,204b,204c, and up to204d. In an embodiment, any or all of the computing devices204a-dmay be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100. In a specific example, any or all of the computing devices204a-dmay be provided by a blade server or other modular server device, although one of skill in the art in possession of the present disclosure will recognize that storage devices, networking devices, and/or other computing devices may fall within the scope of the present disclosure as well. The multi-device chassis202may also house a chassis management controller206that may be provided by a variety of system management hardware and software that is configured to manage the computing devices204a-d. The chassis management controller206may be coupled to one or more network connections208that are accessible on the multi-device chassis202, and that may be configured to connect to a network such as, for example, a Local Area Network (LAN), the Internet, and/or other networks that would be apparent to one of skill in the art in possession of the present disclosure.

The multi-device chassis202may also house an embedded controller210that may be provided by a variety of microcontrollers that may be configured to handle various system tasks. The embedded controller210may be coupled to the chassis management controller206via a link212which, as discussed below, may be provided by an Ethernet link, although one of skill in the art will recognize that the link212may be provided via other link technologies while remaining within the scope of the present disclosure as well. The embedded controller210may also be coupled to one or more Keyboard/Video/Monitor (KVM) connections214that may be configured to provide a local connection for physical devices to the multi-device chassis202and computing devices204ad. For example, the KVM connection(s)214may include a physical display device connector that is configured to connect to a physical display device, a physical keyboard device connector that is configured to connect to a physical keyboard device, a physical mouse device connector that is configured to connect to a physical mouse device, other physical input device connectors that are configured to connect to other physical input devices (e.g., physical wireless device connectors that are configured to connect to physical wireless devices that may be configured to provide a wireless connection to a physical display device, a physical keyboard device, a physical mouse device, etc.), and/or any physical device connector that would be apparent to one of skill in the art in possession of the present disclosure. The embedded controller210may also be coupled to each of the computing devices204a-d. While a specific web-based graphical user interface display system200has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the teachings of the present disclosure may be applied to variety of web-based graphical user interface display systems that may include different components and/or component configurations for providing conventional functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure.

Referring now toFIG. 3, an embodiment of a chassis management controller300is illustrated that may be the chassis management controller206discussed above with reference toFIG. 2. As such, the chassis management controller300may be provided by a variety of system management hardware and software that is configured to manage the computing devices204a-din the multi-device chassis200. In the illustrated embodiment, the chassis management controller300includes a chassis302that houses the components of the chassis management controller300, only some of which are illustrated inFIG. 3. For example, the chassis302may house a processing subsystem (not illustrated, but which may include the processor102discussed above with reference toFIG. 1), and a memory subsystem (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the processing subsystem and that includes instructions that, when executed by the processing subsystem, cause the processing subsystem to provide a graphical user interface engine304that is configured to perform the functions of the graphical user interface engines and chassis management controllers discussed below. In a specific example, the graphical user interface engine304may be provided, at least in part, by a LINUX operating system. However, one of skill in the art in possession of the present disclosure will recognize that other graphical user interface subsystems will fall within the scope of the present disclosure as well.

The chassis302may also house a storage subsystem (not illustrated, but which may include the storage device108discussed above with reference toFIG. 1) that is coupled to the graphical user interface engine304(e.g., via a coupling between the storage subsystem and the processing subsystem), and that includes a graphical user interface database306that may store any of the information utilized by the graphical user interface engine304as discussed below. The chassis302also includes a communication subsystem308that is coupled to the graphical user interface engine304(e.g., via a coupling between the communication subsystem308and the processing subsystem), and that may include a connection (e.g., within the multi-device chassis202) to the network connection(s)208, a connection to the link212(e.g., the Ethernet link discussed above) to the embedded controller210, and/or any other connections that would be apparent to one of skill in the art in possession of the present disclosure. While a specific chassis management controller300has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the teachings of the present disclosure may be applied to variety of controllers that include different components and/or component configurations for providing conventional functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure.

Referring now toFIG. 4, an embodiment of an embedded controller400is illustrated that may be the embedded controller210discussed above with reference toFIG. 2. As such, the embedded controller400may be provided by a variety of microcontrollers that may be configured to handle various system tasks in the multi-device chassis200. In the illustrated embodiment, the embedded controller400includes a chassis402that houses the components of the embedded controller400, only some of which are illustrated inFIG. 4. For example, the chassis402may house a processing subsystem (not illustrated, but which may include the processor102discussed above with reference toFIG. 1), and a memory subsystem (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the processing subsystem and that includes instructions that, when executed by the processing subsystem, cause the processing subsystem to provide a display engine404that is configured to perform the functions of the display engines and embedded controllers discussed below.

The chassis402may also house a storage subsystem (not illustrated, but which may include the storage device108discussed above with reference toFIG. 1) that is coupled to the display engine404(e.g., via a coupling between the storage subsystem and the processing subsystem), and that includes a display database406that may store any of the information utilized by the display engine404as discussed below. The chassis402also includes a communication subsystem408that is coupled to the display engine404(e.g., via a coupling between the communication subsystem408and the processing subsystem), and that may include a connection (e.g., within the multi-device chassis202) to the KVM connection(s)214, a connection to the link212(e.g., the Ethernet link discussed above) to the chassis management controller206, and/or any other connections that would be apparent to one of skill in the art in possession of the present disclosure. While a specific embedded controller400has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the teachings of the present disclosure may be applied to variety of controllers that include different components and/or component configurations for providing conventional functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure.

Referring now toFIG. 5, an embodiment of a method500for displaying a web-based graphical user interface is illustrated. As discussed below, the systems and methods of the present disclosure provide a multi-device chassis with a chassis management controller that includes software (e.g., an X-Windows-based application) that is configured to convert a web-based graphical user interface (e.g., HTML pages) that is provided by the chassis management controller to frame buffer formatted data, and then transmit the frame buffer formatted data to a virtual display device that is viewed by the chassis management controller as a local display device and that is created by an embedded controller coupled to the chassis management controller. The embedded controller receives the frame buffer formatted data that was transmitted to the virtual display device, and provides it to a driver that copies it to a graphics controller memory so that a graphics controller can provide it for display on a physical device that is locally connected to the multi-device chassis. The embedded controller is also configured to emulate virtual input devices (e.g., virtual keyboard devices and virtual mouse devices) for physical input devices that are locally connected to the multi-device chassis, with those virtual inputs devices also viewed by the software on the chassis management controller as local devices. When the embedded controller receive physical inputs to those physical input devices, it generates virtual inputs on the virtual input devices, which are identified by the software on the chassis management controller and translated into a web-based graphical user interface events for the web-based graphical user interface provided by the chassis management controller. As such, web-based graphical user interfaces provided by chassis management controllers may be accessed locally by physical devices connected to a multi-device chassis.

The method500begins at block502where a first controller coupled to a physical display device creates a virtual display device. With reference toFIGS. 2 and 6, in an embodiment of block502, a physical display device600may be locally connected to the KVM connection(s)214on the multi-device chassis202.FIG. 6illustrates how the local connection of the physical display device600to the KVM connection(s)214to the KVM connection(s)214couples the physical display device600to the embedded controller210/400via physical monitor/keyboard/mouse connector(s)408bprovided in the communication subsystem408in the embedded controller210/400. One of skill in the art in possession of the present disclosure will recognize that the local connection of the physical display device600to the KVM connection(s)214on the multi-device chassis202, which couple the physical display device600to the physical monitor/keyboard/mouse connector(s)408bprovided in the communication subsystem408, may be provided by physical cables connected to each of the KVM connections(s)214and the physical display device600, local wireless transmitters/receivers provided on each of the KVM connections(s)214and the physical display device600(e.g., BLUETOOTH® wireless subsystems, Near Field Communication (NFC) subsystems, and/or other wireless subsystems known in the art), and/or via any other local connection technology that would be apparent to one of skill in the art in possession of the present disclosure.

In response to the local connection of the physical display device600to the KVM connection(s)214on the multi-device chassis202, the display engine404in the embedded controller210/400will detect the physical display device600coupled to the physical monitor/keyboard/mouse connector(s)408bprovided in the communication subsystem408and, in response, may create a virtual display device such as, for example, the virtual Universal Serial Bus (USB) monitor602illustrated inFIG. 6that is coupled to an Ethernet communication interface408aprovided in the communication subsystem408, as well as to a graphics controller604via a driver606. While each of the graphics controller604and the driver606are illustrated as provided in the embedded controller210/400inFIG. 6(with the graphics controller604coupled to the physical monitor/keyboard/mouse connector(s)408b), one of skill in the art in possession of the present disclosure will recognize that the graphics controller604may be a separate device that is included in the multi-device chassis202and coupled to the embedded controller210/400while remaining within the scope of the present disclosure as well. For example, in a specific embodiment, the graphics controller604may be a graphics controller provided by MATROX® Electronics Systems of Dorval, Quebec, Canada, and may be coupled to the embedded controller210/400by an Advanced Microcontroller Bus Architecture (AMBA) High-performance Bus (AHB)-to-Peripheral Component Interconnect (PCI) bridge. Furthermore, the driver606may be provided by software included on the embedded controller210/400, and may be modified (i.e., relative to conventional drivers) to provide for the driver functionality discussed below.

In an embodiment, the creation of the virtual display device (e.g., the virtual USB monitor602) may include the display engine404performing of a variety of virtual display device creation operations. For example, the display engine404may read Extended Display Identification Data (EDID) parameters from the physical display device600such as a manufacturer name, a serial number, a product type, a phosphor type, a filter type, a display supported timings, a display size, luminance data, pixel mapping data, supported display resolutions, and/or other EDID metadata known in the art, and provide those EDID parameters on the virtual USB monitor602created at block502. While a specific example of the creation of a virtual display device at block502has been illustrated and discussed, one of skill in the art in possession of the present disclosure will recognize that virtual display devices may be created by a controller at block502in a variety of manners that will fall within the scope of the present disclosure as well.

The method500then proceeds to block504where the first controller coupled to physical input device(s) creates virtual input device(s). With reference toFIGS. 2 and 6, in an embodiment of block502, a physical keyboard device608and a physical mouse device610may be locally connected to the KVM connection(s)214on the multi-device chassis202.FIG. 6illustrates how the local connection of the physical keyboard device608and the physical mouse device610to the KVM connection(s)214couples the physical keyboard device608and the physical mouse device610to the embedded controller210/400via physical monitor/keyboard/mouse connector(s)408bprovided in the communication subsystem408in the embedded controller210/400. One of skill in the art in possession of the present disclosure will recognize that the local connection of the physical keyboard device608and the physical mouse device610to the KVM connection(s)214on the multi-device chassis202, which couple the physical display device600to the physical monitor/keyboard/mouse connector(s)408bprovided in the communication subsystem408, may be provided by physical cables connected to each of the KVM connections(s)214and the physical keyboard device608and/or the physical mouse device610, local wireless transmitters/receivers provided on each of the KVM connections(s)214and the physical keyboard device608and/or the physical mouse device610(e.g., BLUETOOTH® wireless subsystems, Near Field Communication (NFC) subsystems, and/or other wireless subsystems known in the art), and/or via any other local connection technology that would be apparent to one of skill in the art in possession of the present disclosure.

In response to the local connection of the physical keyboard device608and the physical mouse device610to the KVM connection(s)214on the multi-device chassis202, the display engine404in the embedded controller210/400will detect the physical keyboard device608and the physical mouse device610coupled to the physical monitor/keyboard/mouse connector(s)408bprovided in the communication subsystem408and, in response, may create virtual input devices such as, for example, the virtual USB keyboard/mouse612illustrated inFIG. 6that is coupled to the Ethernet communication interface408aprovided in the communication subsystem408, as well as to the physical monitor/keyboard/mouse connector(s)408b. While the virtual USB keyboard/mouse612is illustrated as a single virtual device, one of skill in the art in possession of the present disclosure will recognize that a separate virtual USB keyboard device and virtual USB mouse device may be created at block504while remaining within the scope of the present disclosure as well. In an embodiment, the creation of the virtual input device(s) (e.g., the virtual USB keyboard/mouse612) may include the display engine404performing of a variety of virtual input device creation operations. For example, the display engine404may configure itself to operate as a host controller for the virtual USB keyboard/mouse612so that physical inputs to the physical input devices cause virtual inputs to be generated on the virtual USB keyboard/mouse612, discussed in further detail below. While a specific example of the creation of virtual input device(s) at block504has been illustrated and discussed, one of skill in the art in possession of the present disclosure will recognize that virtual input devices may be created by a controller at block504in a variety of manners that will fall within the scope of the present disclosure as well

The method500then proceeds to block506where a second controller coupled to the first controller views the virtual display device and virtual input device(s) as local devices. In an embodiment, at block506, the virtual USB monitor602and virtual USB keyboard/mouse612created by the display engine404in the embedded controller210/300are accessible by the graphical user interface engine304in the chassis management controller206/300(and/or other components in the chassis management controller206/300) via an the Ethernet communication interface308ain the communication subsystem308and over the link212(e.g., the Ethernet link discussed above) to the embedded controller210/400. In particular, the virtual USB monitor602and virtual USB keyboard/mouse612may be emulated by the embedded controller210/400over a LAN provided on the link212(e.g., using USB-over-VLAN techniques) to the chassis management controller206/300. In an embodiment, the chassis management controller206/300may not include a USB and/or graphical subsystem, and at block506the graphical user interface engine304in the chassis management controller206/300may create or otherwise provide a virtual USB host controller618that is configured to perform device enumeration operations over the link212(e.g., via a VLAN provided on the link212between the chassis management controller206/300and the embedded controller210/400) for the virtual USB monitor602and virtual USB keyboard/mouse612, which causes the virtual USB monitor602and virtual USB keyboard/mouse612to be accessible to the graphical user interface engine304(and other components of the chassis management controller206/300) as a virtual/local USB monitor614that appears as a locally-connected USB monitor, and a virtual/local USB keyboard/mouse616that appears as a locally-connected USB keyboard/mouse, as illustrated inFIG. 6via dotted lines.

The method500then proceeds to block508where the second controller renders a web-based graphical user interface and directs the web-based graphical user interface to the virtual display device to transmit the web-based graphical user interface to the first controller. As discussed above, conventional chassis management controllers may provide web-based graphical user interfaces that allow users to interact with the chassis management controller via a network such as the Internet (e.g., via the network connections(s)208illustrated inFIG. 202), but those web-based graphical user interfaces are inaccessible locally. However, embodiments of the present disclosure provide for the operation of the graphical user interface engine304in the chassis management controller206/300to provide a web server618, an X-Windows-based application such as the X-Windows-based browser620illustrated inFIG. 6, and an X-Windows-based server622, any or all of which are configured to render the web-based graphical user interface (and/or other graphical user interface elements such as JPG files, CSS files, etc.) in a format used by the graphics controller604in the embedded controller210/400, and direct that formatted web-based graphical user interface to the virtual/local USB monitor614so that the formatted web-based graphical user interface is transmitted to the embedded controller210/400over the link212.

In a specific example, any or all of the X-Windows-based browser620(an X-Windows-based application) hosted on the chassis management controller206/300, the web server618, and/or the X-Windows-based server622, ay operate to render HTML pages (and/or other graphical user interface elements) that provide the web-based graphical user interface (and that are conventionally transmitted over the Internet via the network connection(s)208). The X-Windows-based browser620may then convert the HTML data that provides those HTML pages (and/or other graphical user interface elements) to a frame buffer format that is used by the graphics controller604in the embedded controller210/400. The X-Windows-based browser620may then direct the frame buffer formatted HTML data to the virtual/local USB monitor614. Furthermore, the X-Windows-based browser620may also detect a variety of HTML-related events (e.g., a “document load complete” event), and translate those HTML-related events into USB video data transfers that are directed to the virtual/local USB monitor614. Further still, the X-Windows-based browser620may generate partial packets (e.g., packets with less than the bulk endpoint First-In, First-Out (FIFO) size) or zero length packets and direct them to the virtual/local USB monitor614to indicate the end of a USB transaction. As would be understood by one of skill in the art in possession of the present disclosure, the directing of data and/or packets to the virtual/local USB monitor614will cause that data or those packets to be transmitted over the link212to the virtual USB monitor602in the embedded controller210/400.

The method500then proceeds to block510where the first controller provides the web-based graphical user interface for display on the physical display device. In an embodiment, at block510, the display engine404in the embedded controller210/400receives the formatted web-based graphical user interface that was directed to the virtual/local USB monitor614by the X-Windows-based browser620at block508, and provides it for display on the physical display device600. For example, at block510, the frame buffer formatted HTML data that was transmitted to the virtual USB monitor602at block508may be provided to the driver606, which operates to copy the frame buffer formatted HTML data to a graphics controller memory in the graphics controller604. For example, the frame buffer formatted HTML data may be provided by the X-Windows-based browser620in a USB payload, and the driver606may extract the frame buffer formatted HTML data from the USB payload, and copy that frame buffer formatted HTML data into the graphics controller memory.

As discussed above, the X-Windows-based browser620may generate partial packets or zero length packets, and direct them to the virtual/local USB monitor614to indicate an end of a USB transaction. The identification of the end of the USB transaction may indicate to the embedded controller210/400to render the frame buffer formatted HTML data, which was copied to the graphics controller memory by the driver606, on the physical display device600. As such, following the identification of the end of a USB transaction as discussed above, the graphics controller604may provide the frame buffer formatted HTML data that was copied to its graphics controller memory through the physical monitor/keyboard/mouse connector(s)408bin the communication subsystem408and via the KVM connection(s)214such that it is displayed on the physical display device600. As such, following block510, a user of the physical display device600that is locally connected to the multi-device chassis202may view the web-based graphical user interface (which is conventionally only viewable via a network connection) on the locally connected physical display device600.

The method500then proceeds to block512where the first controller receives input from physical input device(s) and generates virtual input(s) on the virtual input device(s). In an embodiment, at block512, the display engine404in the embedded controller210/400may detect a physical input that was provided to the physical keyboard device608and/or the physical mouse device610, and transmitted via the KVM connection(s)214and the physical monitor/keyboard/mouse connector(s)408bin the communication subsystem408b. In response to detecting the physical input, the display engine404in the embedded controller210/400may generate corresponding virtual input(s) on the virtual USB keyboard/mouse612.

The method500then proceeds to block514where the second controller identifies the virtual input(s) generated by the first controller on the virtual input device(s) and translates the virtual input(s) into web-based graphical user interface event(s). In an embodiment, at block514, the graphical user interface engine304in the chassis management controller206/300will identify the virtual input(s) that were generated on the virtual USB keyboard/mouse612at block512and, in response, translate those virtual inputs into web-based graphical user interface events. For example, a virtual input may have been generated on the virtual USB keyboard/mouse612at block512in response to a mouse-device-based selection (e.g., a “click”) on a hyperlink displayed on the web-based graphical user interface (e.g., a physical input provided using the physical mouse device610on a web-based graphical user interface displayed on the physical display device600as discussed above), and the identification of that virtual input by the graphical user interface engine304in the chassis management controller206/300may result in the translation of that virtual input to a web-based graphical user interface event that causes a Universal Resource Locator (URL) defined by the hyperlink to be loaded in a new HTML page (which may then be provided for display on the physical display device600in the manner described in detail above.) While a specific HTML page interaction has been described above, one of skill in the art in possession of the present disclosure will recognize that a variety of graphical user interface interactions (e.g., a user logging into the chassis management controller206/300by navigating those a “sign-in” graphical user interface, providing authentication credentials, etc.) may be provided according to the teachings of the present disclosure and will fall within its scope as well.

Thus, systems and methods have been described that provide a first controller in a multi-device chassis that is configured to convert a web-based graphical user interface (e.g., HTML pages) to frame buffer formatted data, and then transmit the frame buffer formatted data to a virtual display device that was created by a second controller in the multi-device chassis and that is viewed by the first controller as a local display device. The second controller receives the frame buffer formatted data that was transmitted to the virtual display device, and provides it for display on a physical device that is locally connected to the multi-device chassis. The second controller is also configured to emulate virtual input devices for physical input devices that are locally connected to the multi-device chassis, which are also viewed by the first controller as local devices. When the second controller receive physical inputs to those physical input devices, it generates virtual inputs on the virtual input devices, which are identified by the first controller and translated into a web-based graphical user interface events for the web-based graphical user interface provided by the first controller. As such, web-based graphical user interfaces provided for the multi-device chassis may be accessed locally by physical devices connected to the multi-device chassis.