USRE47717E1 - Serial output redirection using HTTP - Google Patents

Serial output redirection using HTTP Download PDF

Info

Publication number
USRE47717E1
USRE47717E1 US15/959,955 US201815959955A USRE47717E US RE47717 E1 USRE47717 E1 US RE47717E1 US 201815959955 A US201815959955 A US 201815959955A US RE47717 E USRE47717 E US RE47717E
Authority
US
United States
Prior art keywords
server
connection
serial output
proxy server
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US15/959,955
Inventor
Yen-Ping Tung
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quanta Computer Inc filed Critical Quanta Computer Inc
Priority to US15/959,955 priority Critical patent/USRE47717E1/en
Application granted granted Critical
Publication of USRE47717E1 publication Critical patent/USRE47717E1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • H04L51/24
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • G06F17/2247
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • H04L67/2814
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • G07F17/3204Player-machine interfaces
    • G07F17/3209Input means, e.g. buttons, touch screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • H04L67/2838
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers

Definitions

  • the disclosure generally relates to redirecting serial output of a computing device over a network.
  • Serial over LAN is a mechanism that enables the input and output of the serial port of a computing device to be redirected over an Internet protocol (IP) network.
  • IP Internet protocol
  • a client device In order to receive the redirected serial output (e.g., console messages, system log messages, etc.), a client device must be configured with an intelligent platform management interface (IPMI) compliant tool to connect to an IPMI compliant controller that is configured to perform the serial output redirection.
  • IPMI intelligent platform management interface
  • a service controller on a computing device can be configured to redirect serial output over a network using HTTP.
  • the service controller can be configured with a web server that can receive the serial output of the computing device and stream the serial output to a web browser over an HTTP connection.
  • the HTTP connection can be a WebSocket connection, as defined by the HTML5 specification.
  • a proxy server can be configured with a web server that can receive serial over LAN (SOL) output from multiple servers and stream the SOL to a web browser on a client device.
  • SOL serial over LAN
  • a server administrator no longer needs a special IPMI tool to access console messages generated by a computing device.
  • the server administrator can use any web browser, compliant with the HTTP connection, on any device to access the console messages and debug problems with a server.
  • FIG. 1 illustrates an example system for redirecting serial output over a network.
  • FIG. 2 illustrates an example system for redirecting serial output using HTTP.
  • FIG. 3 is an example system for redirecting serial output using HTTP and a proxy server.
  • FIG. 4 is an example process for redirecting serial output using HTTP.
  • FIG. 5 is an example process for redirecting serial output using HTTP and a proxy server.
  • FIG. 6 is a block diagram of an example system architecture implementing the features and processes of FIGS. 1-5 .
  • FIG. 1 illustrates an example system 100 for redirecting serial output over a network.
  • system 100 can include server rack 102 that includes multiple servers 104 .
  • Each server 104 can include central processing unit (CPU) 104 and a service controller 114 .
  • CPU 104 can be the main processor for server 104 .
  • at least one of servers 104 can include multiple CPUs.
  • service controller 114 can be, for example, a baseboard management controller (BMC).
  • BMC baseboard management controller
  • a baseboard management controller is a specialized service processor that monitors the physical state of server 104 using sensors and communicating with the system administrator through an independent connection (e.g., out-of-band).
  • the BMC is part of the intelligent platform management interface (IPMI) and is usually contained in the motherboard of server 104 .
  • IPMI intelligent platform management interface
  • the BMC can operate independently of CPU 112 . Further, the BMC can operate even when CPU 112 is powered down and server 104 is powered off.
  • service controller 114 can be configured to redirect serial output over a network connection.
  • service controller 114 can be configured to receive serial output (e.g., console messages) from CPU 112 , or other components of server 104 , and redirect the serial output to network 106 (e.g., a local area network, wide area network, the Internet, etc.).
  • network 106 e.g., a local area network, wide area network, the Internet, etc.
  • service controller 114 can implement serial over LAN serial output redirection.
  • the present technology is not limited in this regard and any type of network can be utilized and corresponding network connection types and protocols can be utilized to support the redirecting of the serial output.
  • client device 108 can access the serial output from server 104 using an IPMI compliant tool.
  • the IPMI compliant tool can be used to configure client device 108 to interface with the service controller 114 over network 106 to receive the serial messages redirected to network 106 by service controller 114 .
  • client device 108 can be a desktop computer, laptop computer, tablet device or handheld device.
  • client device 108 can present the serial output received from server 104 on a display coupled to client device 108 .
  • the serial output can include console messages generated by server 104 . These console messages can be displayed as lines of text 110 on the display of client device 108 .
  • the console messages can be presented in any other form or format by client device 108 .
  • the console messages can be presented using graphical elements or a combination of lines of text and graphical elements representing the console messages.
  • FIG. 2 illustrates an example system 200 for redirecting serial output using HTTP.
  • server 202 can be configured to redirect serial output to a browser on a client device using HTTP.
  • server 202 in system 200 can correspond to server 104 in FIG. 1 .
  • Server 202 can include CPU 204 and service controller 206 .
  • CPU 204 can be the main processor of server 202 , for example.
  • CPU 204 can be configured with a system logger function 208 .
  • the operating system, BIOS and other applications running on server 202 can be configured to send console output (e.g., logging, debugging) messages to system logger 208 .
  • System logger 208 can receive the console output messages and send the console messages to the serial port of server 202 .
  • service controller 206 can be configured to redirect serial output messages (e.g., messages destined for the serial port) to network interface controller 212 .
  • network interface controller 212 can be a network interface controller dedicated to service controller 206 .
  • the network interface controller 212 can be shared with other components in system 202 .
  • Network interface controller 212 can provide for out-of-band communication between service controller 206 and an IPMI compliant client application.
  • service controller 206 can be configured with web server 210 .
  • web server 210 can be configured to receive serial output messages from system logger 208 and redirect the serial output messages over the network using HTTP.
  • web server 210 can be an HTML5 compliant web server that provides for upgrading a regular HTTP session to a session compliant with the WebSocket protocol specification.
  • web server 210 can transmit serial output messages (e.g., console) messages using native HTML5 mechanisms and without using add-ons (e.g., embedded java, Flash, or other client-server mechanisms).
  • web server 210 can be configured transmit WebSocket messages using a full-duplex communication channel over a single TCP connection.
  • WebSocket messages allow the web server and web browser to maintain an open communication channel for transmission of data packets.
  • web server 210 can stream serial output messages generated by system logger 208 to the network in real-time or near real-time.
  • the communications channel can be opened as needed to transmit data packets.
  • client device 214 can be configured with web browser 216 .
  • web browser 216 can be an HTML5 compliant web browser that is capable of establishing a WebSocket connection with an HTML5 compliant web server.
  • Client device 214 can be any device configured with an HTML5 compliant web browser.
  • client device 214 can be a laptop computer, tablet computer, handheld device or other similar computing device.
  • a user can use web browser 216 to view serial output (e.g., console messages) generated by server 202 .
  • the system administrator can enter the IP address of web server 210 in web browser 216 .
  • Web browser 216 can use the IP address to connect to web server 210 over a network (e.g., the Internet) and through network interface controller 212 .
  • web browser 216 can perform a conventional HTTP handshake with web server 210 to establish a connection and then request an upgrade to a WebSocket protocol connection. Once the upgrade is complete, web server 210 can stream the serial output messages received from system logger 208 over a TCP connection to web browser 216 .
  • web server 210 can translate the serial output (e.g., terminal or console output) from server 202 into a WebSocket message using a built in HTML5 parser.
  • the WebSocket connection can be established through a web page provided by web server 210 according to a conventional techniques.
  • web browser 216 can display the serial output messages on the web page that is configured to work with the WebSocket connection.
  • FIG. 3 is an example system 300 for redirecting serial output using HTTP and a proxy server.
  • web server 304 can be configured on proxy server 302 .
  • Web server 304 can be configured to receive serial output from server 202 , or multiple servers 202 , and generate a web page including a WebSocket connection for streaming serial output from server 202 to web browser 216 on client device 214 .
  • web server 304 on proxy server 302 can be configured to interact with the IPMI interface of service controller 206 to request serial output from server 202 .
  • service controller 206 can be configured with serial over LAN function 210 to redirect system logger 208 output to network interface 212 so that system logger 208 output (e.g., serial output, console messages, etc.) can be received by web server 304 .
  • web server 304 can be configured with the IP address and port of each service controller 206 on each monitored server 202 (only one shown). Web server 304 can use the IP address and port of each service controller 206 to establish a connection to each respective service controller 206 and receive serial output from each respective server 202 .
  • web server 304 can maintain simultaneous IPMI connections to multiple servers 202 .
  • web server 304 can be configured to stream the serial output received from service controller 206 to web browser 216 on client device 214 .
  • client device 214 e.g., a server administrator
  • Web browser 216 can then use the IP address of web server 304 to connect to web server 304 over a network (e.g., the Internet).
  • web server 304 can send to web browser 216 a web page that identifies each server 202 to which web server 304 is currently connected.
  • the user can select a server 202 to monitor by providing input to the web page displayed in web browser 216 .
  • web browser 216 can establish a WebSocket connection with web server 304 to stream the serial output from the selected server 202 to web browser 216 .
  • web browser 216 can be configured to establish new connections to other servers through web server 304 .
  • the web page delivered to web browser 216 from web server 304 can include functionality to specify the IP address of service controllers of other servers.
  • Web browser 216 can send the specified IP address to web server 304 .
  • Web server 304 can use the specified IP address to establish a new connection to a new service controller and receive serial output from the specified service controller.
  • web browser 216 and web server 304 can establish multiple, simultaneous WebSocket connections.
  • the web page delivered to web browser 216 can be configured to support presenting serial output (e.g., console messages, system log messages, system error messages, etc.) from multiple servers 202 simultaneously.
  • serial output e.g., console messages, system log messages, system error messages, etc.
  • the user can select each server 202 that the user wishes to monitor and WebSockets can be established for each selected server 202 .
  • the web page can be configured with a single WebSocket connection that transmits serial output messages received from multiple servers.
  • the web page can be configured to organize and display the messages from multiple servers in an easy to read format, for example.
  • the client device 214 can use the TCP connection (e.g., WebSocket connection) established between client device 214 and the server (e.g., server 202 or proxy server 302 ) to send commands from client device 214 to service controller 206 .
  • TCP connection e.g., WebSocket connection
  • server e.g., server 202 or proxy server 302
  • client device 214 can use an interface (e.g., an emulated console interface on a webpage) of web browser 216 to enter commands (e.g., text, IPMI commands, etc.) to control server 202 .
  • Client device 214 can send the commands directly to web server 210 of service controller 206 .
  • Web server 210 can provide the commands to service controller 206 for execution.
  • client device 214 When client device 214 is connected to service controller 206 of server 202 through proxy server 302 , a user of client device 214 can use an interface (e.g., an emulated console interface on a webpage) of web browser 216 to enter commands (e.g., text, IPMI commands, etc.) to control server 202 .
  • Client device 214 can send a command to web server 304 on proxy server 302 .
  • web server 302 can invoke the corresponding service controller API (e.g., IMPI compliant function) and send the command to service controller 206 .
  • service controller 206 Upon receiving the command, service controller 206 can perform the corresponding function or operation.
  • service controller API e.g., IMPI compliant function
  • FIG. 4 is an example process 400 for redirecting serial output using HTTP.
  • process 400 can be performed by a service controller of a server, as described above.
  • the service controller of a computing device can establish a connection to a web browser.
  • the service controller can be configured with a web server.
  • the web server can be accessible to a web browser running on a client device when the web browser is provided with the IP address of the web server or the IP address of the service controller.
  • the web server can establish a WebSocket connection to the web browser on the client device in response to an HTTP request received from the web browser.
  • the service controller can receive console messages from other components of the computing device.
  • the web server configured on the service controller can receive serial output messages (e.g., console messages) from the main CPU (e.g., software running on the main CPU) of the computing device.
  • console messages e.g., console messages
  • the service controller can transmit the console message to the web browser on the client device.
  • the web server on the service controller can stream the console messages to the web browser in real-time or near real-time.
  • the console messages can be displayed on a web page provided by the web server and displayed on the web browser of the client device.
  • FIG. 5 is an example process 500 for redirecting serial output using HTTP and a proxy server.
  • process 500 can be performed by a web server running on a proxy server, as described above.
  • the proxy server can establish an IPMI connection to one or more managed servers.
  • a web server on the proxy server can be configured as an IPMI compliant client.
  • the web server can be configured with the IP addresses of each service controller of each server to be monitored.
  • the web server can connect to each server using the configured IP addresses through the IPMI interfaces of each service controller.
  • the proxy server can receive the console messages from each server. For example, once the web server on the proxy server establishes a connection to each server to be monitored, the web server can receive serial output (e.g., console messages) from each of the monitored servers.
  • serial output e.g., console messages
  • the proxy server can establish a connection to the web browser of a client device.
  • the web server on the proxy server can receive a request from the web browser on the client device for a web page for viewing console messages from the monitored servers.
  • the web server can return the requested web page to the web browser on the client device.
  • the user of the client device can view the web page and select (e.g., from a list presented on the web page) which servers the user wishes to monitor.
  • the proxy server can transmit the console messages received from the monitored servers to the web browser on the client device. For example, once the user selects the servers to monitor, the web browser can request that the web server on the proxy server establish a WebSocket connection with the web browser. Once the WebSocket connection is established, the web server can stream the console messages (e.g., serial output) for each selected server to the web browser on the client device. For example, the streamed console messages can be displayed on a web page presented by the web browser on the client device.
  • console messages e.g., serial output
  • serial output redirection using HTTP can be realized using the HTML5 WebSocket protocol to stream the serial output (e.g., console messages) to a web browser.
  • serial output e.g., console messages
  • client-server e.g., web server-browser, java applets, etc.
  • streaming technologies can be used to provide real-time or near real-time presentation of console messages on a web browser.
  • FIG. 6 is a block diagram of an example system architecture 600 implementing the features and processes of FIGS. 1-5 .
  • the architecture 600 can be implemented on any electronic device that runs software applications derived from compiled instructions, including without limitation personal computers, servers, smart phones, media players, electronic tablets, game consoles, email devices, etc.
  • the architecture 600 can include one or more processors 602 , one or more input devices 604 , one or more display devices 606 , one or more network interfaces 608 and one or more computer-readable mediums 610 . Each of these components can be coupled by bus 612 .
  • Display device 606 can be any known display technology, including but not limited to display devices using Liquid Crystal Display (LCD) or Light Emitting Diode (LED) technology.
  • Processor(s) 602 can use any known processor technology, including but are not limited to graphics processors and multi-core processors.
  • Input device 604 can be any known input device technology, including but not limited to a keyboard (including a virtual keyboard), mouse, track ball, and touch-sensitive pad or display.
  • Bus 612 can be any known internal or external bus technology, including but not limited to ISA, EISA, PCI, PCI Express, NuBus, USB, Serial ATA or FireWire.
  • Computer-readable medium 610 can be any medium that participates in providing instructions to processor(s) 602 for execution, including without limitation, non-volatile storage media (e.g., optical disks, magnetic disks, flash drives, etc.) or volatile media (e.g., SDRAM, ROM, etc.).
  • the computer-readable medium e.g., storage devices, mediums, and memories
  • non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
  • Computer-readable medium 610 can include various instructions for implementing an operating system 614 (e.g., Mac OS®, Windows®, Linux).
  • the operating system can be multi-user, multiprocessing, multitasking, multithreading, real-time and the like.
  • the operating system performs basic tasks, including but not limited to: recognizing input from input device 604 ; sending output to display device 606 ; keeping track of files and directories on computer-readable medium 610 ; controlling peripheral devices (e.g., disk drives, printers, etc.) which can be controlled directly or through an I/O controller; and managing traffic on bus 612 .
  • Network communications instructions 616 can establish and maintain network connections (e.g., software for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, etc.).
  • a graphics processing system 618 can include instructions that provide graphics and image processing capabilities.
  • the graphics processing system 618 can implement the processes described with reference to FIGS. 1-5 .
  • Application(s) 620 can be an application that uses or implements the processes described in reference to FIGS. 1-5 .
  • applications 620 can generate the console messages (e.g., serial output) that is redirected by the service controller using HTTP.
  • console messages e.g., serial output
  • Service controller 622 can be a controller that operates independently of processor(s) 602 and/or operating system 614 . In some implementations, service controller 622 can be powered and operational before processor(s) 602 are powered on and operating system 614 is loaded into processor(s) 602 . For example, service controller 622 can provide for pre-OS management of the computing device through a dedicated network interface or other input device.
  • service controller 622 can be a baseboard management controller (BMC) that monitors device sensors (e.g., voltages, temperature, fans, etc.), logs events for failure analysis, provides LED guided diagnostics, performs power management, and/or provides remote management capabilities through an intelligent platform management interface (IPMI), keyboard, video, and mouse (KVM) redirection, serial over LAN (SOL), and/or other interfaces.
  • BMC baseboard management controller
  • IPMI intelligent platform management interface
  • KVM keyboard, video, and mouse
  • SOL serial over LAN
  • service controller 622 be implement the processes described with reference to FIGS. 1-5 above.
  • service controller 622 can be configured with a web server for redirecting the serial output over a network using HTTP.
  • the described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
  • a computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.
  • a computer program can be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer.
  • a processor will receive instructions and data from a read-only memory or a random access memory or both.
  • the essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data.
  • a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
  • Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor memory devices such as EPROM, EEPROM, and flash memory devices
  • magnetic disks such as internal hard disks and removable disks
  • magneto-optical disks and CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
  • ASICs application-specific integrated circuits
  • the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
  • a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
  • the features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them.
  • the components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
  • the computer system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a network.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • An API can define on or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation.
  • software code e.g., an operating system, library routine, function
  • the API can be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document.
  • a parameter can be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call.
  • API calls and parameters can be implemented in any programming language.
  • the programming language can define the vocabulary and calling convention that a programmer will employ to access functions supporting the API.
  • an API call can report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc.

Abstract

A service controller on a computing device can be configured to redirect serial output over a network using HTTP. For example, the service controller can be configured with a web server that can receive the serial output and stream the serial output to a web browser over an HTTP connection. In some implementations, the HTTP connection can be a WebSocket connection, as defined by the HTML5 specification. In some implementations, a proxy server can be configured with a web server that can receive serial over LAN (SOL) output from multiple servers and stream the SOL to a web browser on a client device.

Description

The present application is a reissue of U.S. Pat. No. 9,282,072, issued on Mar. 8, 2016, from application Ser. No. 14/541,998, filed on Nov. 14, 2014.
TECHNICAL FIELD
The disclosure generally relates to redirecting serial output of a computing device over a network.
BACKGROUND
Serial over LAN (local area network) is a mechanism that enables the input and output of the serial port of a computing device to be redirected over an Internet protocol (IP) network. In order to receive the redirected serial output (e.g., console messages, system log messages, etc.), a client device must be configured with an intelligent platform management interface (IPMI) compliant tool to connect to an IPMI compliant controller that is configured to perform the serial output redirection. Not only must the client device be configured with an IPMI tool to receive the console messages, the user (e.g., server administrator) of the client device must know how to configure and use the IPMI tool.
SUMMARY
In some implementations, a service controller on a computing device can be configured to redirect serial output over a network using HTTP. For example, the service controller can be configured with a web server that can receive the serial output of the computing device and stream the serial output to a web browser over an HTTP connection. In some implementations, the HTTP connection can be a WebSocket connection, as defined by the HTML5 specification. In some implementations, a proxy server can be configured with a web server that can receive serial over LAN (SOL) output from multiple servers and stream the SOL to a web browser on a client device.
Particular implementations provide at least the following advantages. First, a server administrator no longer needs a special IPMI tool to access console messages generated by a computing device. Second, the server administrator can use any web browser, compliant with the HTTP connection, on any device to access the console messages and debug problems with a server.
Details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and potential advantages will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS
FIG. 1 illustrates an example system for redirecting serial output over a network.
FIG. 2 illustrates an example system for redirecting serial output using HTTP.
FIG. 3 is an example system for redirecting serial output using HTTP and a proxy server.
FIG. 4 is an example process for redirecting serial output using HTTP.
FIG. 5 is an example process for redirecting serial output using HTTP and a proxy server.
FIG. 6 is a block diagram of an example system architecture implementing the features and processes of FIGS. 1-5.
Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
FIG. 1 illustrates an example system 100 for redirecting serial output over a network. In some implementations, system 100 can include server rack 102 that includes multiple servers 104. Each server 104 can include central processing unit (CPU) 104 and a service controller 114. CPU 104 can be the main processor for server 104. In some embodiments, at least one of servers 104 can include multiple CPUs.
In some implementations, service controller 114 can be, for example, a baseboard management controller (BMC). A baseboard management controller is a specialized service processor that monitors the physical state of server 104 using sensors and communicating with the system administrator through an independent connection (e.g., out-of-band). The BMC is part of the intelligent platform management interface (IPMI) and is usually contained in the motherboard of server 104. The BMC can operate independently of CPU 112. Further, the BMC can operate even when CPU 112 is powered down and server 104 is powered off.
In some implementations, service controller 114 can be configured to redirect serial output over a network connection. For example, service controller 114 can be configured to receive serial output (e.g., console messages) from CPU 112, or other components of server 104, and redirect the serial output to network 106 (e.g., a local area network, wide area network, the Internet, etc.). For example, service controller 114 can implement serial over LAN serial output redirection. However, the present technology is not limited in this regard and any type of network can be utilized and corresponding network connection types and protocols can be utilized to support the redirecting of the serial output.
In some implementations, client device 108 can access the serial output from server 104 using an IPMI compliant tool. For example, the IPMI compliant tool can be used to configure client device 108 to interface with the service controller 114 over network 106 to receive the serial messages redirected to network 106 by service controller 114. For example, client device 108 can be a desktop computer, laptop computer, tablet device or handheld device. In some implementations, client device 108 can present the serial output received from server 104 on a display coupled to client device 108. For example, the serial output can include console messages generated by server 104. These console messages can be displayed as lines of text 110 on the display of client device 108. However, the present technology is not limited in this regard and the console messages can be presented in any other form or format by client device 108. For example, the console messages can be presented using graphical elements or a combination of lines of text and graphical elements representing the console messages.
FIG. 2 illustrates an example system 200 for redirecting serial output using HTTP. In some implementations, server 202 can be configured to redirect serial output to a browser on a client device using HTTP. For example, server 202 in system 200 can correspond to server 104 in FIG. 1. Server 202 can include CPU 204 and service controller 206. CPU 204 can be the main processor of server 202, for example. CPU 204 can be configured with a system logger function 208. For example, the operating system, BIOS and other applications running on server 202 can be configured to send console output (e.g., logging, debugging) messages to system logger 208. System logger 208 can receive the console output messages and send the console messages to the serial port of server 202.
In some implementations, service controller 206 can be configured to redirect serial output messages (e.g., messages destined for the serial port) to network interface controller 212. For example, network interface controller 212 can be a network interface controller dedicated to service controller 206. However, in some implementations, the network interface controller 212 can be shared with other components in system 202. Network interface controller 212 can provide for out-of-band communication between service controller 206 and an IPMI compliant client application.
In some implementations, service controller 206 can be configured with web server 210. For example, web server 210 can be configured to receive serial output messages from system logger 208 and redirect the serial output messages over the network using HTTP. For example, web server 210 can be an HTML5 compliant web server that provides for upgrading a regular HTTP session to a session compliant with the WebSocket protocol specification. Thus, web server 210 can transmit serial output messages (e.g., console) messages using native HTML5 mechanisms and without using add-ons (e.g., embedded java, Flash, or other client-server mechanisms). For example, web server 210 can be configured transmit WebSocket messages using a full-duplex communication channel over a single TCP connection. The WebSocket messages allow the web server and web browser to maintain an open communication channel for transmission of data packets. Thus, web server 210 can stream serial output messages generated by system logger 208 to the network in real-time or near real-time. However, in some implementations, the communications channel can be opened as needed to transmit data packets.
In some implementations, client device 214 can be configured with web browser 216. For example, web browser 216 can be an HTML5 compliant web browser that is capable of establishing a WebSocket connection with an HTML5 compliant web server. Client device 214 can be any device configured with an HTML5 compliant web browser. For example, client device 214 can be a laptop computer, tablet computer, handheld device or other similar computing device.
In some implementations, a user (e.g., server administrator) can use web browser 216 to view serial output (e.g., console messages) generated by server 202. For example, the system administrator can enter the IP address of web server 210 in web browser 216. Web browser 216 can use the IP address to connect to web server 210 over a network (e.g., the Internet) and through network interface controller 212. To establish a WebSocket connection, web browser 216 can perform a conventional HTTP handshake with web server 210 to establish a connection and then request an upgrade to a WebSocket protocol connection. Once the upgrade is complete, web server 210 can stream the serial output messages received from system logger 208 over a TCP connection to web browser 216. For example, web server 210 can translate the serial output (e.g., terminal or console output) from server 202 into a WebSocket message using a built in HTML5 parser. For example, the WebSocket connection can be established through a web page provided by web server 210 according to a conventional techniques. Once the serial output messages are received from server 202, web browser 216 can display the serial output messages on the web page that is configured to work with the WebSocket connection.
FIG. 3 is an example system 300 for redirecting serial output using HTTP and a proxy server. For example, rather than configuring service controller 206 with web server 210 as in FIG. 2, web server 304 can be configured on proxy server 302. Web server 304 can be configured to receive serial output from server 202, or multiple servers 202, and generate a web page including a WebSocket connection for streaming serial output from server 202 to web browser 216 on client device 214.
In some implementations, web server 304 on proxy server 302 can be configured to interact with the IPMI interface of service controller 206 to request serial output from server 202. For example, service controller 206 can be configured with serial over LAN function 210 to redirect system logger 208 output to network interface 212 so that system logger 208 output (e.g., serial output, console messages, etc.) can be received by web server 304. For example, web server 304 can be configured with the IP address and port of each service controller 206 on each monitored server 202 (only one shown). Web server 304 can use the IP address and port of each service controller 206 to establish a connection to each respective service controller 206 and receive serial output from each respective server 202. In some implementations, web server 304 can maintain simultaneous IPMI connections to multiple servers 202.
In some implementations, web server 304 can be configured to stream the serial output received from service controller 206 to web browser 216 on client device 214. For example, a user of client device 214 (e.g., a server administrator) can enter the IP address of web server 304 on proxy server 302 into web browser 216. Web browser 216 can then use the IP address of web server 304 to connect to web server 304 over a network (e.g., the Internet). Once web browser 216 connects to web server 304, web server 304 can send to web browser 216 a web page that identifies each server 202 to which web server 304 is currently connected. The user can select a server 202 to monitor by providing input to the web page displayed in web browser 216. Once the user makes a selection, web browser 216 can establish a WebSocket connection with web server 304 to stream the serial output from the selected server 202 to web browser 216.
In some implementations, web browser 216 can be configured to establish new connections to other servers through web server 304. For example, the web page delivered to web browser 216 from web server 304 can include functionality to specify the IP address of service controllers of other servers. Web browser 216 can send the specified IP address to web server 304. Web server 304 can use the specified IP address to establish a new connection to a new service controller and receive serial output from the specified service controller.
In some implementations, web browser 216 and web server 304 can establish multiple, simultaneous WebSocket connections. For example, the user of client device 214 may wish to monitor multiple servers 202 simultaneously. The web page delivered to web browser 216 can be configured to support presenting serial output (e.g., console messages, system log messages, system error messages, etc.) from multiple servers 202 simultaneously. Thus, the user can select each server 202 that the user wishes to monitor and WebSockets can be established for each selected server 202. Alternatively, the web page can be configured with a single WebSocket connection that transmits serial output messages received from multiple servers. The web page can be configured to organize and display the messages from multiple servers in an easy to read format, for example.
In some implementations, the client device 214 can use the TCP connection (e.g., WebSocket connection) established between client device 214 and the server (e.g., server 202 or proxy server 302) to send commands from client device 214 to service controller 206. For example, when client device 214 is directly connected to service controller 206 of server 202 (as in FIG. 2), a user of client device 214 can use an interface (e.g., an emulated console interface on a webpage) of web browser 216 to enter commands (e.g., text, IPMI commands, etc.) to control server 202. Client device 214 can send the commands directly to web server 210 of service controller 206. Web server 210 can provide the commands to service controller 206 for execution.
When client device 214 is connected to service controller 206 of server 202 through proxy server 302, a user of client device 214 can use an interface (e.g., an emulated console interface on a webpage) of web browser 216 to enter commands (e.g., text, IPMI commands, etc.) to control server 202. Client device 214 can send a command to web server 304 on proxy server 302. In response to receiving the command, web server 302 can invoke the corresponding service controller API (e.g., IMPI compliant function) and send the command to service controller 206. Upon receiving the command, service controller 206 can perform the corresponding function or operation.
FIG. 4 is an example process 400 for redirecting serial output using HTTP. For example, process 400 can be performed by a service controller of a server, as described above. At step 402, the service controller of a computing device can establish a connection to a web browser. For example, the service controller can be configured with a web server. The web server can be accessible to a web browser running on a client device when the web browser is provided with the IP address of the web server or the IP address of the service controller. The web server can establish a WebSocket connection to the web browser on the client device in response to an HTTP request received from the web browser.
At step 404, the service controller can receive console messages from other components of the computing device. For example, the web server configured on the service controller can receive serial output messages (e.g., console messages) from the main CPU (e.g., software running on the main CPU) of the computing device.
At step 406, the service controller can transmit the console message to the web browser on the client device. For example, the web server on the service controller can stream the console messages to the web browser in real-time or near real-time. The console messages can be displayed on a web page provided by the web server and displayed on the web browser of the client device.
FIG. 5 is an example process 500 for redirecting serial output using HTTP and a proxy server. For example, process 500 can be performed by a web server running on a proxy server, as described above. At step 502, the proxy server can establish an IPMI connection to one or more managed servers. For example, a web server on the proxy server can be configured as an IPMI compliant client. The web server can be configured with the IP addresses of each service controller of each server to be monitored. The web server can connect to each server using the configured IP addresses through the IPMI interfaces of each service controller.
At step 504, the proxy server can receive the console messages from each server. For example, once the web server on the proxy server establishes a connection to each server to be monitored, the web server can receive serial output (e.g., console messages) from each of the monitored servers.
At step 506, the proxy server can establish a connection to the web browser of a client device. For example, the web server on the proxy server can receive a request from the web browser on the client device for a web page for viewing console messages from the monitored servers. The web server can return the requested web page to the web browser on the client device. The user of the client device can view the web page and select (e.g., from a list presented on the web page) which servers the user wishes to monitor.
At step 508, the proxy server can transmit the console messages received from the monitored servers to the web browser on the client device. For example, once the user selects the servers to monitor, the web browser can request that the web server on the proxy server establish a WebSocket connection with the web browser. Once the WebSocket connection is established, the web server can stream the console messages (e.g., serial output) for each selected server to the web browser on the client device. For example, the streamed console messages can be displayed on a web page presented by the web browser on the client device.
As described above, in some implementations, serial output redirection using HTTP can be realized using the HTML5 WebSocket protocol to stream the serial output (e.g., console messages) to a web browser. In other implementations, more traditional client-server (e.g., web server-browser, java applets, etc.) streaming technologies can be used to provide real-time or near real-time presentation of console messages on a web browser.
Example System Architecture
FIG. 6 is a block diagram of an example system architecture 600 implementing the features and processes of FIGS. 1-5. The architecture 600 can be implemented on any electronic device that runs software applications derived from compiled instructions, including without limitation personal computers, servers, smart phones, media players, electronic tablets, game consoles, email devices, etc. In some implementations, the architecture 600 can include one or more processors 602, one or more input devices 604, one or more display devices 606, one or more network interfaces 608 and one or more computer-readable mediums 610. Each of these components can be coupled by bus 612.
Display device 606 can be any known display technology, including but not limited to display devices using Liquid Crystal Display (LCD) or Light Emitting Diode (LED) technology. Processor(s) 602 can use any known processor technology, including but are not limited to graphics processors and multi-core processors. Input device 604 can be any known input device technology, including but not limited to a keyboard (including a virtual keyboard), mouse, track ball, and touch-sensitive pad or display. Bus 612 can be any known internal or external bus technology, including but not limited to ISA, EISA, PCI, PCI Express, NuBus, USB, Serial ATA or FireWire.
Computer-readable medium 610 can be any medium that participates in providing instructions to processor(s) 602 for execution, including without limitation, non-volatile storage media (e.g., optical disks, magnetic disks, flash drives, etc.) or volatile media (e.g., SDRAM, ROM, etc.). The computer-readable medium (e.g., storage devices, mediums, and memories) can include, for example, a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
Computer-readable medium 610 can include various instructions for implementing an operating system 614 (e.g., Mac OS®, Windows®, Linux). The operating system can be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. The operating system performs basic tasks, including but not limited to: recognizing input from input device 604; sending output to display device 606; keeping track of files and directories on computer-readable medium 610; controlling peripheral devices (e.g., disk drives, printers, etc.) which can be controlled directly or through an I/O controller; and managing traffic on bus 612. Network communications instructions 616 can establish and maintain network connections (e.g., software for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, etc.).
A graphics processing system 618 can include instructions that provide graphics and image processing capabilities. For example, the graphics processing system 618 can implement the processes described with reference to FIGS. 1-5. Application(s) 620 can be an application that uses or implements the processes described in reference to FIGS. 1-5. For example, applications 620 can generate the console messages (e.g., serial output) that is redirected by the service controller using HTTP. The processes can also be implemented in operating system 614.
Service controller 622 can be a controller that operates independently of processor(s) 602 and/or operating system 614. In some implementations, service controller 622 can be powered and operational before processor(s) 602 are powered on and operating system 614 is loaded into processor(s) 602. For example, service controller 622 can provide for pre-OS management of the computing device through a dedicated network interface or other input device. For example, service controller 622 can be a baseboard management controller (BMC) that monitors device sensors (e.g., voltages, temperature, fans, etc.), logs events for failure analysis, provides LED guided diagnostics, performs power management, and/or provides remote management capabilities through an intelligent platform management interface (IPMI), keyboard, video, and mouse (KVM) redirection, serial over LAN (SOL), and/or other interfaces. Service controller 622 be implement the processes described with reference to FIGS. 1-5 above. For example, service controller 622 can be configured with a web server for redirecting the serial output over a network using HTTP.
The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
One or more features or steps of the disclosed embodiments can be implemented using an API. An API can define on or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation.
The API can be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. A parameter can be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call. API calls and parameters can be implemented in any programming language. The programming language can define the vocabulary and calling convention that a programmer will employ to access functions supporting the API.
In some implementations, an API call can report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.

Claims (20)

What is claimed is:
1. A method comprising:
receiving, at a service controller of a computing device, serial output messages from a processor of the computing device destined for a serial port;
monitoring the service controller with a web server on a proxy server;
redirecting, by the service controller of the computing device, the serial output messages to a the proxy server;
translating, using a HTML parser associated with the proxy server, the serial output messages into corresponding HTML messages;
establishing, by the proxy server, a connection with a web browser on a client device using a native HTML mechanism; and
streaming, by the proxy server, the corresponding HTML messages to the web browser using the native HTML connection.
2. The method of claim 1, wherein the service controller is configured with a web server.
3. The method of claim 1, wherein the connection is an HTML5 WebSocket connection.
4. The method of claim 1, wherein the service controller is a baseboard management controller.
5. The method of claim 1, wherein the connection is an out-of-band connection using a network interface controller dedicated to the service controller.
6. The method of claim 1, wherein the connection is established using hypertext transfer protocol.
7. A system comprising:
a baseboard management controller (BMC);
a first server, the first server comprising a processor;
the first server further comprising a serial output port; and
a computer-readable medium including one or more sequences of instructions which, when executed by the baseboard management controller, causes:
receiving, at via the BMC, serial output messages from the processor destined for the serial output port of the first server; and,
redirecting, by the BMC, the serial output messages to a proxy server, which the proxy server is independent of the first server;
translating, using a HTML parser associated with the proxy server, the serial output messages into corresponding HTML messages;
establishing, by the proxy server, a connection with a web browser on a client device using a native HTML mechanism; and
streaming, by the proxy server, the corresponding HTML messages to the web browser using the native HTML connection.
8. The system of claim 7, wherein the BMC comprises a web server.
9. The system of claim 7, wherein the connection is an HTML5 WebSocket connection.
10. The system of claim 7, wherein the connection is an out-of-band connection using a network interface controller dedicated to the BMC.
11. The system of claim 7, wherein the connection is established using hypertext transfer protocol.
12. A method comprising:
monitoring one or more managed servers by a web server running on a proxy server, which proxy server is independent from the one or more managed servers;
establishing, by a the proxy server, one or more first connections to the one or more managed servers via a respective service controller on each of the one or more managed servers, the proxy server being independent from the one or more managed servers;
receiving, at the proxy server, serial output messages from the one or more managed servers destined for a respective serial output port on each of the one or more managed servers and redirected the serial output messages to the proxy server by the respective service controller in response to a request from the web server;
translating, using a HTML parser associated with the proxy server, the serial output messages into corresponding HTML messages;
establishing, by the proxy server, a second connection to a web browser on a client device using a native HTML mechanism; and
streaming, by the proxy server, the corresponding HTML messages to the web browser using the native HTML connection.
13. The method of claim 12, wherein the proxy server includes a web server and the proxy server receives the serial output messages using an intelligent platform management interface connection to a the respective service controller on each of the one or more managed servers.
14. The method of claim 13, wherein the respective service controller is a baseboard management controller.
15. The method of claim 13, wherein each of the one or more first connections are out-of-band connections using a network interface controller dedicated to the respective service controller.
16. The method of claim 13, wherein each of the one or more first connections to the one or more managed servers uses an IPMI interface of the respective service controller.
17. The method of claim 12, wherein the second connection is an HTML5 WebSocket connection.
18. The method of claim 12, wherein the second connection is established using hypertext transfer protocol.
19. The method of claim 12, wherein the corresponding HTML messages are streamed to the web browser in near real-time.
20. The method of claim 12, wherein the serial output messages include console messages that are presented on a user interface of the web browser.
US15/959,955 2014-11-14 2018-04-23 Serial output redirection using HTTP Active USRE47717E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/959,955 USRE47717E1 (en) 2014-11-14 2018-04-23 Serial output redirection using HTTP

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/541,998 US9282072B1 (en) 2014-11-14 2014-11-14 Serial output redirection using HTTP
US15/959,955 USRE47717E1 (en) 2014-11-14 2018-04-23 Serial output redirection using HTTP

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/541,998 Reissue US9282072B1 (en) 2014-11-14 2014-11-14 Serial output redirection using HTTP

Publications (1)

Publication Number Publication Date
USRE47717E1 true USRE47717E1 (en) 2019-11-05

Family

ID=53189663

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/541,998 Ceased US9282072B1 (en) 2014-11-14 2014-11-14 Serial output redirection using HTTP
US15/959,955 Active USRE47717E1 (en) 2014-11-14 2018-04-23 Serial output redirection using HTTP

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/541,998 Ceased US9282072B1 (en) 2014-11-14 2014-11-14 Serial output redirection using HTTP

Country Status (5)

Country Link
US (2) US9282072B1 (en)
EP (1) EP3021548A1 (en)
JP (1) JP2016095830A (en)
CN (1) CN106034159A (en)
TW (1) TWI553485B (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6990897B2 (en) * 2016-03-09 2022-01-12 株式会社三洋物産 Pachinko machine
JP6990895B2 (en) * 2016-03-09 2022-01-12 株式会社三洋物産 Pachinko machine
JP6990898B2 (en) * 2016-03-09 2022-01-12 株式会社三洋物産 Pachinko machine
JP6990894B2 (en) * 2016-03-09 2022-01-12 株式会社三洋物産 Pachinko machine
JP7085741B2 (en) * 2016-03-09 2022-06-17 株式会社三洋物産 Pachinko machine
US11025453B2 (en) * 2018-03-23 2021-06-01 Vmware, Inc. Outside-of-network management of a component in a virtual data center using a remote display on a host management server
CN110427586A (en) * 2019-07-29 2019-11-08 苏州亿歌网络科技有限公司 A kind of page display method, device, equipment and storage medium
CN113810210A (en) * 2020-06-15 2021-12-17 戴尔产品有限公司 IPMI on REDFISH
JP2020168493A (en) * 2020-07-13 2020-10-15 株式会社三洋物産 Game machine
JP2020168495A (en) * 2020-07-13 2020-10-15 株式会社三洋物産 Game machine
JP2020168494A (en) * 2020-07-13 2020-10-15 株式会社三洋物産 Game machine
JP2020168522A (en) * 2020-07-15 2020-10-15 株式会社三洋物産 Game machine

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665731B1 (en) 2000-05-16 2003-12-16 Intel Corporation Method for remotely accessing component management information
US20050129035A1 (en) 2004-10-29 2005-06-16 Marcio Saito Service processor gateway system and appliance
US7234964B1 (en) 2005-12-20 2007-06-26 International Business Machines Corporation Systems, methods, and media for providing visual indication of a blade configuration
CN101114966A (en) 2007-07-11 2008-01-30 中兴通讯股份有限公司 Information indicating system and method of broadband access server system
US7447889B2 (en) 2005-04-20 2008-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a computer system utilizing a read only memory storing an option file containing selectable configuration options and a script file
US7478152B2 (en) 2004-06-29 2009-01-13 Avocent Fremont Corp. System and method for consolidating, securing and automating out-of-band access to nodes in a data network
US20090055157A1 (en) 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
US7543277B1 (en) 2003-06-27 2009-06-02 American Megatrends, Inc. Method and system for remote software debugging
US7552213B2 (en) 2005-05-12 2009-06-23 Avocent Fremont Corp. Remote network node management system and method
US7594144B2 (en) 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
US7660910B2 (en) 2004-08-30 2010-02-09 Lantronix, Inc. Secure communication port redirector
US20100281107A1 (en) * 2009-05-01 2010-11-04 Fallows John R Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US7950999B2 (en) * 2004-09-16 2011-05-31 Bally Gaming, Inc. User interface system and method for a gaming machine
US8346912B2 (en) * 2007-10-15 2013-01-01 Dell Products, Lp System and method of emulating a network controller within an information handling system
US8370748B1 (en) 2007-12-26 2013-02-05 American Megatrends, Inc. Web-based systems management architecture for server hardware (SMASH) command line protocol (CLP)
CN103049342A (en) 2011-10-12 2013-04-17 宏碁股份有限公司 Method of accessing starting information
US8484325B1 (en) 2006-06-23 2013-07-09 American Megatrends, Inc. Providing a common management console for managing the operation of a server computer
US20130185402A1 (en) 2012-01-13 2013-07-18 American Megatrends, Inc. Method and apparatus for developing service processor solutions
US20130238785A1 (en) 2012-03-06 2013-09-12 Rackspace Us, Inc. System and Method for Metadata Discovery and Metadata-Aware Scheduling
US8650273B2 (en) 2009-05-27 2014-02-11 Dell Products L.P. Virtual serial concentrator for virtual machine out-of-band management
US20140108618A1 (en) * 2012-10-15 2014-04-17 Lg Electronics Inc. Media share control apparatus, media reproducing apparatus, and method of providing user interface for media sharing thereof
US20140222890A1 (en) 2013-02-04 2014-08-07 Oracle International Corporation Real-time communication signaling gateway
US8805983B2 (en) 2009-10-19 2014-08-12 Dell Products L.P. Local externally accessible managed virtual network interface controller
US20140281894A1 (en) * 2013-03-15 2014-09-18 American Megatrends, Inc. System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186759A (en) * 2001-12-18 2003-07-04 Mitsubishi Electric Corp Computer system
US20060098622A1 (en) * 2004-11-05 2006-05-11 Vicotel, Inc. Architecture for a multi-media session controlled network
CN101483565B (en) * 2008-01-11 2011-04-27 财团法人工业技术研究院 Stream data network transmission system and method
CN101651711B (en) * 2009-09-11 2011-12-14 北京工业大学 HTTP network access achieving method based on serial communication
US8862769B2 (en) * 2010-11-23 2014-10-14 Qualcomm Incorporated Object-based transport protocol
US9026635B2 (en) * 2013-03-15 2015-05-05 American Megatrends, Inc. System and method of web-based virtual media redirection

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665731B1 (en) 2000-05-16 2003-12-16 Intel Corporation Method for remotely accessing component management information
US7543277B1 (en) 2003-06-27 2009-06-02 American Megatrends, Inc. Method and system for remote software debugging
US7478152B2 (en) 2004-06-29 2009-01-13 Avocent Fremont Corp. System and method for consolidating, securing and automating out-of-band access to nodes in a data network
US7660910B2 (en) 2004-08-30 2010-02-09 Lantronix, Inc. Secure communication port redirector
US7950999B2 (en) * 2004-09-16 2011-05-31 Bally Gaming, Inc. User interface system and method for a gaming machine
US20050129035A1 (en) 2004-10-29 2005-06-16 Marcio Saito Service processor gateway system and appliance
US7447889B2 (en) 2005-04-20 2008-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a computer system utilizing a read only memory storing an option file containing selectable configuration options and a script file
US7552213B2 (en) 2005-05-12 2009-06-23 Avocent Fremont Corp. Remote network node management system and method
US7234964B1 (en) 2005-12-20 2007-06-26 International Business Machines Corporation Systems, methods, and media for providing visual indication of a blade configuration
US8484325B1 (en) 2006-06-23 2013-07-09 American Megatrends, Inc. Providing a common management console for managing the operation of a server computer
US7594144B2 (en) 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
CN101114966A (en) 2007-07-11 2008-01-30 中兴通讯股份有限公司 Information indicating system and method of broadband access server system
US20090055157A1 (en) 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
US8346912B2 (en) * 2007-10-15 2013-01-01 Dell Products, Lp System and method of emulating a network controller within an information handling system
US8370748B1 (en) 2007-12-26 2013-02-05 American Megatrends, Inc. Web-based systems management architecture for server hardware (SMASH) command line protocol (CLP)
US20100281107A1 (en) * 2009-05-01 2010-11-04 Fallows John R Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US8650273B2 (en) 2009-05-27 2014-02-11 Dell Products L.P. Virtual serial concentrator for virtual machine out-of-band management
US8805983B2 (en) 2009-10-19 2014-08-12 Dell Products L.P. Local externally accessible managed virtual network interface controller
CN103049342A (en) 2011-10-12 2013-04-17 宏碁股份有限公司 Method of accessing starting information
US20130185402A1 (en) 2012-01-13 2013-07-18 American Megatrends, Inc. Method and apparatus for developing service processor solutions
US20130238785A1 (en) 2012-03-06 2013-09-12 Rackspace Us, Inc. System and Method for Metadata Discovery and Metadata-Aware Scheduling
US20140108618A1 (en) * 2012-10-15 2014-04-17 Lg Electronics Inc. Media share control apparatus, media reproducing apparatus, and method of providing user interface for media sharing thereof
US20140222890A1 (en) 2013-02-04 2014-08-07 Oracle International Corporation Real-time communication signaling gateway
US20140281894A1 (en) * 2013-03-15 2014-09-18 American Megatrends, Inc. System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same
WO2014143034A1 (en) 2013-03-15 2014-09-18 American Megatrends, Inc. System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Dell, "Configuring Intelligent Platform Management Interface (IPMI)", Retrieved on Dec. 4, 2014, from: http://web.mit.edu/cron/documentation/dell-server-admin/en/DRAC_5/racugc1j.htm. (8 pages).
European Search Report No. EP 15 16 7618, dated Mar. 2, 2016, 9 pages.
Hofstadtler, "Lessons learned with Supermicro's remote management/IPMI view", Retrieved from: http://christian.hofstaedtler.name/blog/2010/05/lessons-learned-with-supermicros-remote-managementipmi-view.html (2013). (2 pages).
Ovh, "Serial-Over-Lan", Retrieved from: https://www.ovh.co.uk/dedicated_servers/serial_over_lan.xml (Oct. 18, 2011). (1 page).

Also Published As

Publication number Publication date
EP3021548A1 (en) 2016-05-18
JP2016095830A (en) 2016-05-26
TW201617908A (en) 2016-05-16
CN106034159A (en) 2016-10-19
US9282072B1 (en) 2016-03-08
TWI553485B (en) 2016-10-11

Similar Documents

Publication Publication Date Title
USRE47717E1 (en) Serial output redirection using HTTP
TWI551997B (en) Computer-readable medium and multiple-protocol-system-management method and system
US10298435B2 (en) Server link state detection and notification
US10387174B2 (en) Extended desktops in virtual desktop environments
US9838460B2 (en) Tool for sharing applications across client devices
US20130139234A1 (en) System and method for remote management of a plurality of target computers from a common graphical interface
US8694992B2 (en) Traversing memory structures to parse guest operating system instrumentation information in a hypervisor
US10013382B2 (en) Smart plug node management
JP2013536518A (en) How to enable hypervisor control in a cloud computing environment
US11659042B1 (en) System and method for controlling remote sessions executing on other devices
TW201445449A (en) Computer host with a baseboard management controller to manage virtual machines and method thereof
US11789765B2 (en) Collaborative hosted virtual systems and methods
US20150161023A1 (en) Distributed debugging of an application in a distributed computing environment
US10178170B2 (en) Browser-based virtual media administration
US10747549B2 (en) Proxy application to transfer application protocol requests over IOCTL commands
KR102102169B1 (en) Appratus for a virtual desktop service and method thereof
US9936000B2 (en) Systems and methods for transmitting data
KR20200105174A (en) Virtual desktop system providing an environment at specific time and method thereof
US9191445B2 (en) Systems and methods for managing emulation sessions
US11042714B2 (en) Synchronizing the language of a remote session with a client's language
JP2017134827A (en) Long polling processing method, system, and recording medium
KR101951913B1 (en) System and service method for web virtualization
WO2016178681A1 (en) Pre-operating system content transmission
US20160080167A1 (en) Attached computing device
US20140143302A1 (en) File-opening system and method

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8